function addSeries(n,t){var u=$("#"+n),f=JSON.parse(t),i,r;for(i in f)r=f[i],i=="error"?r!=""&&alert("Entered invalid symbol(s): "+r):$(u).highcharts().addSeries({name:i,data:r},!1);$(u).highcharts().redraw()}function removeSeries(n){for(var t=$("#"+n);$(t).highcharts().series.length>0;)$(t).highcharts().series[0].remove(!0)}function setParams(n){selectedIDX=selectedFilters;var t=$("#txtSelectedIDX"+n);t.value=selectedIDX}function setTimeLineStyleIntraday(n,t){var i=null;switch(t){case"Intraday":i=$("#btnIntraday"+n);break;case"5D":i=$("#btnFiveD"+n);break;case"1M":i=$("#btnOneM"+n)}$(i).removeClass("buttonInactive");$(i).addClass("buttonActive")}function resetIntraday(n){var t=null;t=$("#btnIntraday"+n);$(t).removeClass("buttonActive buttonInactive");$(t).addClass("buttonInactive");t=$("#btnFiveD"+n);$(t).removeClass("buttonActive buttonInactive");$(t).addClass("buttonInactive");t=$("#btnOneM"+n);$(t).removeClass("buttonActive buttonInactive");$(t).addClass("buttonInactive")}function setParamsCP(n){selectedIDX=selectedFilters;var t=$("#txtSelectedEvents"+n);t.value=selectedIDX}function displayLegends(n,t){var f=$("#divLegend"+n),r,u;if(t!=null&&t!=""){for(r=t.split("~"),u="",i=0;i<r.length;i++)u=u==""?r[i].substring(0,2)+" - "+r[i]:u+"&nbsp;&nbsp;&nbsp;&nbsp;"+r[i].substring(0,2)+" - "+r[i];f.html(u)}else f.html("")}function addSeriesCP(n,t,i){var f=$("#"+n),e=JSON.parse(t),c="",l=0,o,r,u,s,h;for(o in e)l<e[o].length&&(c=o,l=e[o].length);for(r in e)if(u=e[r],r=="error")u!=""&&alert("Entered invalid symbol(s): "+u);else if(r!="flags"&&u!="")c==r?r==i?$(f).highcharts().addSeries({name:r,data:u,id:"PrimarySeries",showInNavigator:!0,color:"#082550"}):$(f).highcharts().addSeries({name:r,data:u,id:"PrimarySeries",showInNavigator:!0}):r==i?$(f).highcharts().addSeries({name:r,data:u,showInNavigator:!1,color:"#082550"}):$(f).highcharts().addSeries({name:r,data:u,showInNavigator:!1});else for(s=0;s<u.length;s++)h=u[s],$(f).highcharts().addSeries({type:"flags",data:[{x:h.Item1,title:h.Item2,text:h.Item3}],onSeries:"PrimarySeries",shape:"circlepin",shadow:!1},!1);$(f).highcharts().redraw()}function GetChartData(n,t,i,r,u,f){var e=$("#"+n);$.get("/chart/GetChartforSelectedPeriod",{Symbol:t,SelectedIDX:i,EnteredIDX:r,SelectedEvents:u,SelectedTimeLine:f}).done(function(i){i=="Invalid Symbol"?alert("Invalid symbol. Please enter one valid symbol."):(removeSeries(n),addSeriesCP(n,i,t),$(e).highcharts().zoomOut(!0),$(e).highcharts().hideLoading())})}function GetDownloadData(){$.get("chart/GetDownloadData",{RequestSymbol:selPCDefaultSymbolobj.value}).done(function(){})}function GetIntradayChartData(n,t,i){$.get("/chart/getIntradayChartforSelectedPeriod",{Symbol:t,SelectedTimeLine:i}).done(function(t){removeSeries(n);addSeries(n,t);resetIntraday(n);setTimeLineStyleIntraday(n,i)})}function CallRangebuttonevent(n,t,i){if(typeof n.rangeSelectorButton!="undefined"){if(i=="PC"?bPreTimelinePC!=n.rangeSelectorButton.text&&(bVisited=!1,bPreTimelinePC=n.rangeSelectorButton.text):i=="CP"&&bPreTimelineCP!=n.rangeSelectorButton.text&&(bVisited=!1,bPreTimelineCP=n.rangeSelectorButton.text),n.rangeSelectorButton.text!="All"&&bVisited==!1){$(t).highcharts().zoomOut();bVisited=!0;var r=7;switch(n.rangeSelectorButton.text){case"1M":r=0;break;case"3M":r=1;break;case"6M":r=2;break;case"YTD":r=3;break;case"1Y":r=4;break;case"5Y":r=5;break;case"10Y":r=6;break;default:r=7}$(t).highcharts().rangeSelector.clickButton(r,!0)}}else n.trigger=="navigator"&&(bVisited=!1)}function GetsearchFilters(n){var i="",r=$(n).find(".sol-selected-display-item-text"),u,t;if($(r).length>0)for(u=$(r).length,t=0;t<u;t++)i=t==0?$(r)[t].innerHTML:i+"~"+$(r)[t].innerHTML;else i="";return i}function ResetDropdown(n){var t=$(n);$(t).find("input:checkbox").each(function(){this.checked||$(this).trigger("click")})}function ResetDropdownPC(n){var t=$(n);$(t).find("input:checkbox").each(function(){this.checked&&$(this).trigger("click")})}function RemoveUnwantedCommas(n){n.val(n.val().replace(/,+/g,","));n.val(n.val().replace(/^,/,""));n.val(n.val().replace(/,\s*$/,""));n.val($.trim(n.val()))}function verifySearchBoxText(n){var u=$(n),t=u.find(".sol-input-container").find("input"),f=u.find(".sol-checkbox"),e,r,i;if(RemoveUnwantedCommas(t),t.val()!=null&&t.val().trim()!="")for(f.each(function(){this.checked=!1}),e=t.val().trim().toLowerCase(),r=e.split(","),i=0;i<r.length;i++)f.each(function(){$(this).parent().text().trim().toLowerCase()==r[i].trim()&&(this.checked=!0)})}var selectedEvents;(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=n.document,i=n.navigator&&n.navigator.userAgent||"",u=t&&t.createElementNS&&!!t.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,f=/(edge|msie|trident)/i.test(i)&&!n.opera,r=/Firefox/.test(i),e=r&&4>parseInt(i.split("Firefox/")[1],10);return n.Highcharts?n.Highcharts.error(16,!0):{product:"Highstock",version:"6.0.2",deg2rad:Math.PI/180,doc:t,hasBidiBug:e,hasTouch:t&&void 0!==t.documentElement.ontouchstart,isMS:f,isWebKit:/AppleWebKit/.test(i),isFirefox:r,isTouchDevice:/(Mobile|Android|Windows Phone)/.test(i),SVG_NS:"http://www.w3.org/2000/svg",chartCount:0,seriesTypes:{},symbolSizes:{},svg:u,win:n,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 r=this.paths[0],u=this.paths[1],t=[],f=this.now,n=r.length,i;if(1===f)t=this.toD;else if(n===u.length&&1>f)for(;n--;)i=parseFloat(r[n]),t[n]=isNaN(i)?r[n]:f*parseFloat(u[n]-i)+i;else t=u;this.elem.attr("d",t,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 o=this,e=o.options,f=function(n){return f.stopped?!1:o.step(n)},s=t.requestAnimationFrame||function(n){setTimeout(n,13)},h=function(){n.timers=n.grep(n.timers,function(n){return n()});n.timers.length&&s(h)};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(h))},step:function(t){var f=+new Date,r,i=this.options,u=this.elem,e=i.complete,o=i.duration,s=i.curAnim;return u.attr&&!u.element?t=!1:t||f>=o+this.startTime?(this.now=this.end,this.pos=1,this.update(),r=s[this.prop]=!0,n.objectEach(s,function(n){!0!==n&&(r=!1)}),r&&e&&e.call(u),t=!1):(this.pos=i.easing((f-this.startTime)/o),this.now=this.start+(this.end-this.start)*this.pos,this.update(),t=!0),t},initPath:function(t,i,r){function y(n){var t,i;for(u=n.length;u--;)t="M"===n[u]||"L"===n[u],i=/[a-zA-Z]/.test(n[u+3]),t&&i&&n.splice(u+1,0,n[u+1],n[u+2],n[u+1],n[u+2])}function p(n,t){for(;n.length<h;){n[0]=t[h-n.length];var i=n.slice(0,f);[].splice.apply(n,[0,0].concat(i));a&&(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=(h-n.length)/f;0<i&&i--;)e=n.slice().splice(n.length/c-f,f*c),e[0]=t[h-f-i*f],v&&(e[f-6]=e[f-2],e[f-5]=e[f-1]),[].splice.apply(n,[n.length/c,0].concat(e)),a&&i--}var a,c,b;i=i||"";var o,s=t.startX,l=t.endX,v=-1<i.indexOf("C"),f=v?7:3,h,e,u;if(i=i.split(" "),r=r.slice(),a=t.isArea,c=a?2:1,v&&(y(i),y(r)),s&&l){for(u=0;u<s.length;u++)if(s[u]===l[0]){o=u;break}else if(s[0]===l[l.length-s.length+u]){o=u;b=!0;break}void 0===o&&(i=[])}return i.length&&n.isNumber(o)&&(h=r.length+o*c*f,b?(p(i,r),w(r,i)):(p(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 i,t=arguments,u,r={},f=function(t,i){return"object"!=typeof t&&(t={}),n.objectEach(i,function(r,u){t[u]=!n.isObject(r,!0)||n.isClass(r)||n.isDOMElement(r)?i[u]:f(t[u]||{},r)}),t};for(!0===t[0]&&(r=t[1],t=Array.prototype.slice.call(t,2)),u=t.length,i=0;i<u;i++)r=f(r,t[i]);return r};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,t,r=i.length,n=0;n<r;n++)if(t=i[n],void 0!==t&&null!==t)return t};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 u=n.Date,e=new u(i-n.getTZOffset(i)),o=e[u.hcGetHours](),s=e[u.hcGetDay](),l=e[u.hcGetDate](),c=e[u.hcGetMonth](),a=e[u.hcGetFullYear](),h=n.defaultOptions.lang,v=h.weekdays,y=h.shortWeekdays,f=n.pad,u=n.extend({a:y?y[s]:v[s].substr(0,3),A:v[s],d:f(l),e:f(l,2," "),w:s,b:h.shortMonths[c],B:h.months[c],m:f(c+1),y:a.toString().substr(2,2),Y:a,H:f(o),k:o,I:f(o%12||12),l:o%12||12,M:f(e[u.hcGetMinutes]()),p:12>o?"AM":"PM",P:12>o?"am":"pm",S:f(e.getSeconds()),L:f(Math.round(i%1e3),3)},n.dateFormats);return n.objectEach(u,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,e,c,o=[],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,e=0;e<c;e++)u&&(u=u[h[e]]);r.length&&(u=n.formatSingle(r.join(":"),u));o.push(u)}else o.push(r);t=t.slice(f+1);f=(s=!s)?"}":"{"}return o.push(t),o.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 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 t=n.length,i=n[0];t--;)n[t]<i&&(i=n[t]);return i};n.arrayMax=function(n){for(var t=n.length,i=n[0];t--;)n[t]>i&&(i=n[t]);return i};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=t.hcEvents=t.hcEvents||{},f=t.addEventListener||n.addEventListenerPolyfill;return f&&f.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,o,s;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]||[],o=e.length,u.target||n.extend(u,{preventDefault:function(){u.defaultPrevented=!0},target:t,type:r}),r=0;r<o;r++)(s=e[r])&&!1===s.call(t,u)&&u.preventDefault();f&&!u.defaultPrevented&&f(u)};n.animate=function(t,i,r){var e,s="",u,f,o;n.isObject(r)||(o=arguments,r={duration:o[2],easing:o[3],complete:o[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(o,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,e=0,u=1):t.attr?e=t.attr(h):(e=parseFloat(n.getStyle(t,h))||0,"opacity"!==h&&(s="px"));u||(u=o);u&&u.match&&u.match("px")&&(u=u.replace(/px/g,""));f.run(e,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 n=Math.random().toString(36).substring(2,9),t=0;return function(){return"highcharts-"+n+"-"+t++}}();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 i=n.each,r=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,f,e;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(f=this.parsers.length;f--&&!i;)e=this.parsers[f],(r=e.regex.exec(t))&&(i=e.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),i(this.stops,function(t,i){u.stops[i]=[u.stops[i][0],t.get(n)]})):u=t&&r(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)i(this.stops,function(t){t.brighten(n)});else if(r(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 i,w,b=n.addEvent,ot=n.animate,u=n.attr,st=n.charts,ht=n.color,h=n.css,tt=n.createElement,t=n.defined,k=n.deg2rad,ct=n.destroyObjectProperties,f=n.doc,e=n.each,o=n.extend,d=n.erase,lt=n.grep,at=n.hasTouch,it=n.inArray,rt=n.isArray,ut=n.isFirefox,g=n.isMS,c=n.isObject,vt=n.isString,yt=n.isWebKit,nt=n.merge,pt=n.noop,s=n.objectEach,r=n.pick,l=n.pInt,ft=n.removeEvent,wt=n.splat,et=n.stop,v=n.svg,y=n.SVG_NS,a=n.symbolSizes,p=n.win;i=n.SVGElement=function(){return this};o(i.prototype,{opacity:1,SVG_NS:y,textProps:"direction fontSize fontWeight fontFamily fontStyle color lineHeight width textAlign textDecoration textOverflow textOutline".split(" "),init:function(n,t){this.element="span"===t?tt(t):f.createElementNS(this.SVG_NS,t);this.renderer=n},animate:function(t,i,u){return i=n.animObject(r(i,this.renderer.globalAnimation,!0)),0!==i.duration?(u&&(i.complete=u),ot(this,t,i)):(this.attr(t,null,u),i.step&&i.step.call(this)),this},colorGradient:function(i,r,u){var c=this.renderer,y,h,f,p,v,a,w,b,k,l,o=[],d;i.radialGradient?h="radialGradient":i.linearGradient&&(h="linearGradient");h&&(f=i[h],v=c.gradients,w=i.stops,l=u.radialReference,rt(f)&&(i[h]=f={x1:f[0],y1:f[1],x2:f[2],y2:f[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===h&&l&&!t(f.gradientUnits)&&(p=f,f=nt(f,c.getRadialAttr(l,p),{gradientUnits:"userSpaceOnUse"})),s(f,function(n,t){"id"!==t&&o.push(t,n)}),s(w,function(n){o.push(n)}),o=o.join(","),v[o]?l=v[o].attr("id"):(f.id=l=n.uniqueKey(),v[o]=a=c.createElement(h).attr(f).add(c.defs),a.radAttr=p,a.stops=[],e(w,function(t){0===t[1].indexOf("rgba")?(y=n.color(t[1]),b=y.get("rgb"),k=y.get("a")):(b=t[1],k=1);t=c.createElement("stop").attr({offset:t[0],"stop-color":b,"stop-opacity":k}).add(a);a.stops.push(t)})),d="url("+c.url+"#"+l+")",u.setAttribute(r,d),u.gradient=o,i.toString=function(){return d})},applyTextOutline:function(t){var i=this.element,f,o,r,h,s;if(-1!==t.indexOf("contrast")&&(t=t.replace(/contrast/g,this.renderer.getContrast(i.style.fill))),t=t.split(" "),o=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}),s=t.length;s--;)f=t[s],"highcharts-text-outline"===f.getAttribute("class")&&d(t,i.removeChild(f));h=i.firstChild;e(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:o,stroke:o,"stroke-width":r,"stroke-linejoin":"round"});i.insertBefore(n,h)})}},attr:function(n,t,i,r){var f,e=this.element,o,h=this,u,c;return"string"==typeof n&&void 0!==t&&(f=n,n={},n[f]=t),"string"==typeof n?h=(this[n+"Getter"]||this._defaultGetter).call(this,n,e):(s(n,function(t,i){u=!1;r||et(this,i);this.symbolName&&/^(x|y|width|height|r|start|end|innerR|anchorX|anchorY)$/.test(i)&&(o||(this.symbolAttr(n),o=!0),u=!0);this.rotation&&("x"===i||"y"===i)&&(this.doTransform=!0);u||(c=this[i+"Setter"]||this._defaultSetter,c.call(this,t,i,e))},this),this.afterSetters()),i&&i(),h},afterSetters:function(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)},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!==it(n,(this.attr("class")||"").split(" "))},removeClass:function(n){return this.attr("class",(this.attr("class")||"").replace(n,""))},symbolAttr:function(n){var t=this;e("x y r start end width height innerR anchorX anchorY".split(" "),function(i){t[i]=r(n[i],t[i])});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,r={},f=this.element,e,i="",c,a=!t,y=["textOutline","textOverflow","width"];return n&&n.color&&(n.fill=n.color),t&&s(n,function(n,i){n!==t[i]&&(r[i]=n,a=!0)}),a&&(t&&(n=o(t,r)),e=this.textWidth=n&&n.width&&"auto"!==n.width&&"text"===f.nodeName.toLowerCase()&&l(n.width),this.styles=n,e&&!v&&this.renderer.forExport&&delete n.width,g&&!v?h(this.element,n):(c=function(n,t){return"-"+t.toLowerCase()},s(n,function(n,t){-1===it(t,y)&&(i+=t.replace(/([A-Z])/g,c)+":"+n+";")}),i&&u(f,"style",i)),this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),n&&n.textOutline&&this.applyTextOutline(n.textOutline))),this},getStyle:function(n){return p.getComputedStyle(this.element||this,"").getPropertyValue(n)},strokeWidth:function(){var n=this.getStyle("stroke-width"),t;return n.indexOf("px")===n.length-2?n=l(n):(t=f.createElementNS(y,"rect"),u(t,{width:n,"stroke-width":0}),this.element.parentNode.appendChild(t),n=t.getBBox().width,t.parentNode.removeChild(t)),n},on:function(n,t){var r=this,i=r.element;return at&&"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,u=this.translateY||0,f=this.scaleX,e=this.scaleY,o=this.inverted,s=this.rotation,h=this.matrix,i=this.element;o&&(n+=this.width,u+=this.height);n=["translate("+n+","+u+")"];t(h)&&n.push("matrix("+h.join(",")+")");o?n.push("rotate(90) scale(-1,1)"):s&&n.push("rotate("+s+" "+r(this.rotationOriginX,i.getAttribute("x"),0)+" "+r(this.rotationOriginY,i.getAttribute("y")||0)+")");(t(f)||t(e))&&n.push("scale("+r(f,1)+" "+r(e,1)+")");n.length&&i.setAttribute("transform",n.join(" "))},toFront:function(){var n=this.element;return n.parentNode.appendChild(n),this},align:function(n,t,i){var f,u,e,c,o={},s,h;return u=this.renderer,e=u.alignedObjects,n?(this.alignOptions=n,this.alignByTranslate=t,!i||vt(i))&&(this.alignTo=f=i||"renderer",d(e,this),e.push(this),i=null):(n=this.alignOptions,t=this.alignByTranslate,f=this.alignTo),i=r(i,u[f],u),f=n.align,u=n.verticalAlign,e=(i.x||0)+(n.x||0),c=(i.y||0)+(n.y||0),"right"===f?s=1:"center"===f&&(s=2),s&&(e+=(i.width-(n.width||0))/s),o[t?"translateX":"x"]=Math.round(e),"bottom"===u?h=1:"middle"===u&&(h=2),h&&(c+=(i.height-(n.height||0))/h),o[t?"translateY":"y"]=Math.round(c),this[this.placed?"animate":"attr"](o),this.placed=!0,this.alignAttr=o,this},getBBox:function(n,t){var u,s=this.renderer,l,h=this.element,c=this.styles,p,w=this.textStr,a,v=s.cache,y=s.cacheKeys,f;if(t=r(t,this.rotation),l=t*k,p=h&&i.prototype.getStyle.call(h,"font-size"),void 0!==w&&(f=w.toString(),-1===f.indexOf("<")&&(f=f.replace(/[0-9]/g,"0")),f+=["",t||0,p,c&&c.width,c&&c.textOverflow].join()),f&&!n&&(u=v[f]),!u){if(h.namespaceURI===this.SVG_NS||s.forExport){try{(a=this.fakeTS&&function(n){e(h.querySelectorAll(".highcharts-text-outline"),function(t){t.style.display=n})})&&a("none");u=h.getBBox?o({},h.getBBox()):{width:h.offsetWidth,height:h.offsetHeight};a&&a("")}catch(b){}(!u||0>u.width)&&(u={width:0,height:0})}else u=this.htmlGetBBox();if(s.isSVG&&(n=u.width,s=u.height,c&&"11px"===c.fontSize&&17===Math.round(s)&&(u.height=s=14),t&&(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)))),f&&0<u.height){for(;250<y.length;)delete v[y.shift()];v[f]||y.push(f);v[f]=u}}return u},show:function(n){return this.attr({visibility:n?"inherit":"visible"})},hide:function(){return this.attr({visibility:"hidden"})},fadeOut:function(n){var t=this;t.animate({opacity:0},{duration:n||150,complete:function(){t.attr({y:-9999})}})},add:function(n){var t=this.renderer,r=this.element,i;return n&&(this.parentGroup=n),this.parentInverted=n&&n.inverted,void 0!==this.textStr&&t.buildText(this),this.added=!0,(!n||n.handleZ||this.zIndex)&&(i=this.zIndexSetter()),i||(n?n.element:t.box).appendChild(r),this.onAdd&&this.onAdd(),this},safeRemoveChild:function(n){var t=n.parentNode;t&&t.removeChild(n)},destroy:function(){var n=this,t=n.element||{},i=n.renderer.isSVG&&"SPAN"===t.nodeName&&n.parentGroup,r=t.ownerSVGElement;if(t.onclick=t.onmouseout=t.onmouseover=t.onmousemove=t.point=null,et(n),n.clipPath&&r&&(e(r.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(r=0;r<n.stops.length;r++)n.stops[r]=n.stops[r].destroy();n.stops=null}for(n.safeRemoveChild(t);i&&i.div&&0===i.div.childNodes.length;)t=i.parentGroup,n.safeRemoveChild(i.div),delete i.div,i=t;return n.alignTo&&d(n.renderer.alignedObjects,n),s(n,function(t,i){delete n[i]}),null},xGetter:function(n){return"circle"===this.element.nodeName&&("x"===n?n="cx":"y"===n&&(n="cy")),this._defaultGetter(n)},_defaultGetter:function(n){return n=r(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)},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=f.createElementNS(this.SVG_NS,"title"),this.element.appendChild(t));t.firstChild&&t.removeChild(t.firstChild);t.appendChild(f.createTextNode(String(r(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 u=this.renderer,f=this.parentGroup,s=(f||u).element||u.box,e,h=this.element,o,c,u=s===u.box,r;if(e=this.added,t(n)&&(h.zIndex=n,n=+n,this[i]===n&&(e=!1),this[i]=n),e){for((n=this.zIndex)&&f&&(f.handleZ=!0),i=s.childNodes,r=i.length-1;0<=r&&!o;r--)(f=i[r],e=f.zIndex,c=!t(e),f!==h)&&(0>n&&c&&!u&&!r?(s.insertBefore(h,i[r]),o=!0):(l(e)<=n||c&&(!t(n)||0<=n))&&(s.insertBefore(h,i[r+1]||null),o=!0));o||(s.insertBefore(h,i[u?3:0]||null),o=!0)}return o},_defaultSetter:function(n,t,i){i.setAttribute(t,n)}});i.prototype.yGetter=i.prototype.xGetter;i.prototype.translateXSetter=i.prototype.translateYSetter=i.prototype.rotationSetter=i.prototype.verticalAlignSetter=i.prototype.rotationOriginXSetter=i.prototype.rotationOriginYSetter=i.prototype.scaleXSetter=i.prototype.scaleYSetter=i.prototype.matrixSetter=function(n,t){this[t]=n;this.doTransform=!0};w=n.SVGRenderer=function(){this.init.apply(this,arguments)};o(w.prototype,{Element:i,SVG_NS:y,init:function(n,t,i,r,e,o){var c,s;r=this.createElement("svg").attr({version:"1.1","class":"highcharts-root"});c=r.element;n.appendChild(c);-1===n.innerHTML.indexOf("xmlns")&&u(c,"xmlns",this.SVG_NS);this.isSVG=!0;this.box=c;this.boxWrapper=r;this.alignedObjects=[];this.url=(ut||yt)&&f.getElementsByTagName("base").length?p.location.href.replace(/#.*?$/,"").replace(/<[^>]*>/g,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"";this.createElement("desc").add().element.appendChild(f.createTextNode("Created with Highstock 6.0.2"));this.defs=this.createElement("defs").add();this.allowHTML=o;this.forExport=e;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount=0;this.setSize(t,i,!1);ut&&n.getBoundingClientRect&&(t=function(){h(n,{left:0,top:0});s=n.getBoundingClientRect();h(n,{left:Math.ceil(s.left)-s.left+"px",top:Math.ceil(s.top)-s.top+"px"})},t(),this.unSubPixelFix=b(p,"resize",t))},definition:function(n){function t(n,r){var u;return e(wt(n),function(n){var e=i.createElement(n.tagName),o={};s(n,function(n,t){"tagName"!==t&&"children"!==t&&"textContent"!==t&&(o[t]=n)});e.attr(o);e.add(r||i.defs);n.textContent&&e.element.appendChild(f.createTextNode(n.textContent));t(n.children||[],e);u=e}),u}var i=this;return t(n)},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var n=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),ct(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:pt,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!v&&this.forExport&&(i=this.measureSpanWidth(t.firstChild.data,n.styles)),i},applyEllipsis:function(n,t,i,r){var l=n.rotation,u=i,s,o=0,e=i.length,h=function(n){t.removeChild(t.firstChild);n&&t.appendChild(f.createTextNode(n))},c;if(n.rotation=0,u=this.getSpanWidth(n,t),c=u>r){for(;o<=e;)s=Math.ceil((o+e)/2),u=i.substring(0,s)+"…",h(u),u=this.getSpanWidth(n,t),o===e?o=e+1:u>r?e=s-1:o=s;0===e&&h("")}return n.rotation=l,c},escapes:{"&":"&amp;","<":"&lt;",">":"&gt;","'":"&#39;",'"':"&quot"},buildText:function(n){var i=n.element,a=this,ft=a.forExport,o=r(n.textStr,"").toString(),et=-1!==o.indexOf("<"),ot=i.childNodes,d,g,nt,p,tt=u(i,"x"),t=n.styles,c=n.textWidth,it=t&&t.lineHeight,w=t&&t.textOutline,b=t&&"ellipsis"===t.textOverflow,rt=t&&"nowrap"===t.whiteSpace,ut,st=ot.length,k=c&&!n.added&&this.box,ht=function(n){return it?l(it):a.fontMetrics(void 0,n.getAttribute("style")?n:i).h},ct=function(n){return s(a.escapes,function(t,i){n=n.replace(new RegExp(t,"g"),i)}),n},t=[o,b,rt,it,w,t&&t.fontSize,c].join();if(t!==n.textCache){for(n.textCache=t;st--;)i.removeChild(ot[st]);et||w||b||c||-1!==o.indexOf(" ")?(d=/<.*class="([^"]+)".*>/,g=/<.*style="([^"]+)".*>/,nt=/<.*href="([^"]+)".*>/,k&&k.appendChild(i),o=et?o.replace(/<(b|strong)>/g,'<span class="highcharts-strong">').replace(/<(i|em)>/g,'<span class="highcharts-emphasized">').replace(/<a/g,"<span").replace(/<\/(b|strong|i|em|a)>/g,"<\/span>").split(/<br.*?>/g):[o],o=lt(o,function(n){return""!==n}),e(o,function(t,r){var o,s=0;t=t.replace(/^\s+|\s+$/g,"").replace(/<span/g,"|||<span").replace(/<\/span>/g,"<\/span>|||");o=t.split("|||");e(o,function(t){var l,e,w,k;if((""!==t||1===o.length)&&(l={},e=f.createElementNS(a.SVG_NS,"tspan"),d.test(t)&&(w=t.match(d)[1],u(e,"class",w)),g.test(t)&&(k=t.match(g)[1].replace(/(;| |^)color([ :])/,"$1fill$2"),u(e,"style",k)),nt.test(t)&&!ft&&(u(e,"onclick",'location.href="'+t.match(nt)[1]+'"'),u(e,"class","highcharts-anchor")),t=ct(t.replace(/<[a-zA-Z\/](.|\n)*?>/g,"")||" ")," "!==t)){if(e.appendChild(f.createTextNode(t)),s?l.dx=0:r&&null!==tt&&(l.x=tt),u(e,l),i.appendChild(e),!s&&ut&&(!v&&ft&&h(e,{display:"block"}),u(e,"dy",ht(e))),c){l=t.replace(/([^\^])-/g,"$1- ").split(" ");w=1<o.length||r||1<l.length&&!rt;var it=[],et,ot=ht(e),st=n.rotation;for(b&&(p=a.applyEllipsis(n,e,t,c));!b&&w&&(l.length||it.length);)n.rotation=0,et=a.getSpanWidth(n,e),t=et>c,void 0===p&&(p=t),t&&1!==l.length?(e.removeChild(e.firstChild),it.unshift(l.pop())):(l=it,it=[],l.length&&!rt&&(e=f.createElementNS(y,"tspan"),u(e,{dy:ot,x:tt}),k&&u(e,"style",k),i.appendChild(e)),et>c&&(c=et)),l.length&&e.appendChild(f.createTextNode(l.join(" ").replace(/- /g,"-")));n.rotation=st}s++}});ut=ut||i.childNodes.length}),p&&n.attr("title",n.textStr),k&&k.removeChild(i),w&&n.applyTextOutline&&n.applyTextOutline(w)):i.appendChild(f.createTextNode(ct(o)))}},getContrast:function(n){return n=ht(n).rgba,510<n[0]+n[1]+n[2]?"#000000":"#FFFFFF"},button:function(n,t,i,r,u,f,e,o,s){var h=this.label(n,t,i,s,null,null,null,null,"button"),c=0;h.attr(nt({padding:8,r:2},u));b(h.element,g?"mouseover":"mouseenter",function(){3!==c&&h.setState(1)});b(h.element,g?"mouseout":"mouseleave",function(){3!==c&&h.setState(c)});h.setState=function(n){1!==n&&(h.state=c=n);h.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][n||0])};return h.on("click",function(n){3!==c&&r.call(h,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={};return rt(n)?t.d=n:c(n)&&o(t,n),this.createElement("path").attr(t)},circle:function(n,t,i){return n=c(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 c(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){return f=c(n)?n.r:f,e=this.createElement("rect"),n=c(n)?n:void 0===n?{}:{x:n,y:t,width:Math.max(i,0),height:Math.max(r,0)},f&&(n.r=f),e.rSetter=function(n,t,i){u(i,{rx:n,ry:n})},e.attr(n)},setSize:function(n,t,i){var u=this.alignedObjects,f=u.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:r(i,!0)?void 0:0});f--;)u[f].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 f={preserveAspectRatio:"none"};return 1<arguments.length&&o(f,{x:t,y:i,width:r,height:u}),f=this.createElement("image").attr(f),f.element.setAttributeNS?f.element.setAttributeNS("http://www.w3.org/1999/xlink","href",n):f.element.setAttribute("hc-svg-href",n),f},symbol:function(n,i,u,s,c,l){var p=this,v,d=/^url\((.*?)\)$/,g=d.test(n),w=!g&&(this.symbols[n]?n:"circle"),b=w&&this.symbols[w],nt=t(i)&&b&&b.call(this.symbols,Math.round(i),Math.round(u),s,c,l),y,k;return b?(v=this.path(nt),o(v,{symbolName:w,x:i,y:u,width:s,height:c}),l&&o(v,l)):g&&(y=n.match(d)[1],v=this.image(y),v.imgwidth=r(a[y]&&a[y].width,l&&l.width),v.imgheight=r(a[y]&&a[y].height,l&&l.height),k=function(){v.attr({width:v.width,height:v.height})},e(["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(i)&&v.attr({x:i,y:u}),v.isImg=!0,t(v.imgwidth)&&t(v.imgheight)?k():(v.attr({width:0,height:0}),tt("img",{onload:function(){var n=st[p.chartIndex];0===this.width&&(h(this,{position:"absolute",top:"-999em"}),f.body.appendChild(this));a[y]={width:this.width,height:this.height};v.imgwidth=this.width;v.imgheight=this.height;v.element&&k();this.parentNode&&this.parentNode.removeChild(this);p.imgCount--;!p.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,i,u,f,e){var h=e.start,o=e.r||u,c=e.r||f||u,s=e.end-.001;u=e.innerR;f=r(e.open,.001>Math.abs(e.end-e.start-2*Math.PI));var l=Math.cos(h),a=Math.sin(h),v=Math.cos(s),s=Math.sin(s);return e=.001>e.end-h-Math.PI?0:1,o=["M",n+o*l,i+c*a,"A",o,c,0,e,1,n+o*v,i+c*s],t(u)&&o.push(f?"M":"L",n+u*v,i+u*s,"A",u,u,0,e,0,n+u*l,i+u*a),o.push(f?"":"Z"),o},callout:function(n,t,i,r,u){var f=Math.min(u&&u.r||0,i,r),o=f+6,e=u&&u.anchorX,s;return u=u&&u.anchorY,s=["M",n+f,t,"L",n+i-f,t,"C",n+i,t,n+i,t,n+i,t+f,"L",n+i,t+r-f,"C",n+i,t+r,n+i,t+r,n+i-f,t+r,"L",n+f,t+r,"C",n,t+r,n,t+r,n,t+r-f,"L",n,t+f,"C",n,t,n,t,n+f,t],e&&e>i?u>t+o&&u<t+r-o?s.splice(13,3,"L",n+i,u-6,n+i+6,u,n+i,u+6,n+i,t+r-f):s.splice(13,3,"L",n+i,r/2,e,u,n+i,r/2,n+i,t+r-f):e&&0>e?u>t+o&&u<t+r-o?s.splice(33,3,"L",n,u+6,n-6,u,n,u-6,n,t+f):s.splice(33,3,"L",n,r/2,e,u,n,r/2,n,t+f):u&&u>r&&e>n+o&&e<n+i-o?s.splice(23,3,"L",e+6,t+r,e,t+r+6,e-6,t+r,n+f,t+r):u&&0>u&&e>n+o&&e<n+i-o&&s.splice(3,3,"L",e-6,t,e,t-6,e+6,t,i-f,t),s}},clipRect:function(t,i,r,u){var f=n.uniqueKey(),e=this.createElement("clipPath").attr({id:f}).add(this.defs);return t=this.rect(t,i,r,u,0).add(e),t.id=f,t.clipPath=e,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=t&&i.prototype.getStyle.call(t,"font-size"),n=/px/.test(n)?l(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(r,u,f,s,h,c,l,a,v){var d=this,y=d.g("button"!==v&&"label"),p=y.text=d.text("",0,0,l).attr({zIndex:1}),w,b,ut=0,k=3,et=0,g,st,ot,ht,it,ct={},lt,pt=/^url\((.*?)\)$/.test(s),at=pt,vt,yt,rt,tt,wt;return v&&y.addClass("highcharts-"+v),at=!0,vt=function(){return w.strokeWidth()%2/2},yt=function(){var n=p.element.style,i={};b=(void 0===g||void 0===st||it)&&t(p.textStr)&&p.getBBox();y.width=(g||b.width||0)+2*k+et;y.height=(st||b.height||0)+2*k;lt=k+d.fontMetrics(n&&n.fontSize,p).b;at&&(w||(y.box=w=d.symbols[s]||pt?d.symbol(s):d.rect(),w.addClass(("button"===v?"":"highcharts-label-box")+(v?" highcharts-"+v+"-box":"")),w.add(y),n=vt(),i.x=n,i.y=(a?-lt:0)+n),i.width=Math.round(y.width),i.height=Math.round(y.height),w.attr(o(i,ct)),ct={})},rt=function(){var i=et+k,n;n=a?0:lt;t(g)&&b&&("center"===it||"right"===it)&&(i+={center:.5,right:1}[it]*(g-b.width));(i!==p.x||n!==p.y)&&(p.attr("x",i),void 0!==n&&p.attr("y",n));p.x=i;p.y=n},tt=function(n,t){w?w.attr(n,t):ct[n]=t},y.onAdd=function(){p.add(y);y.attr({text:r||0===r?r:"",x:u,y:f});w&&t(h)&&y.attr({anchorX:h,anchorY:c})},y.widthSetter=function(t){g=n.isNumber(t)?t:null},y.heightSetter=function(n){st=n},y["text-alignSetter"]=function(n){it=n},y.paddingSetter=function(n){t(n)&&n!==k&&(k=y.padding=n,rt())},y.paddingLeftSetter=function(n){t(n)&&n!==et&&(et=n,rt())},y.alignSetter=function(n){n={left:0,center:.5,right:1}[n];n!==ut&&(ut=n,b&&y.attr({x:ot}))},y.textSetter=function(n){void 0!==n&&p.textSetter(n);yt();rt()},y["stroke-widthSetter"]=function(n,t){n&&(at=!0);this["stroke-width"]=n;tt(t,n)},y.rSetter=function(n,t){tt(t,n)},y.anchorXSetter=function(n,t){h=y.anchorX=n;tt(t,Math.round(n)-vt()-ot)},y.anchorYSetter=function(n,t){c=y.anchorY=n;tt(t,n-ht)},y.xSetter=function(n){y.x=n;ut&&(n-=ut*((g||b.width)+2*k));ot=Math.round(n);y.attr("translateX",ot)},y.ySetter=function(n){ht=y.y=Math.round(n);y.attr("translateY",ht)},wt=y.css,o(y,{css:function(n){if(n){var t={};n=nt(n);e(y.textProps,function(i){void 0!==n[i]&&(t[i]=n[i],delete n[i])});p.css(t)}return wt.call(y,n)},getBBox:function(){return{width:b.width+2*k,height:b.height+2*k,x:b.x-k,y:b.y-k}},destroy:function(){ft(y.element,"mouseenter");ft(y.element,"mouseleave");p&&(p=p.destroy());w&&(w=w.destroy());i.prototype.destroy.call(y);y=d=yt=rt=tt=null}})}});n.Renderer=w}(t),function(n){var s=n.attr,h=n.createElement,t=n.css,c=n.defined,r=n.each,i=n.extend,u=n.isFirefox,f=n.isMS,e=n.isWebKit,l=n.pInt,a=n.SVGRenderer,o=n.win,v=n.wrap;i(n.SVGElement.prototype,{htmlCss:function(n){var r=this.element;return(r=n&&"SPAN"===r.tagName&&n.width)&&(delete n.width,this.textWidth=r,this.updateTransform()),n&&"ellipsis"===n.textOverflow&&(n.whiteSpace="nowrap",n.overflow="hidden"),this.styles=i(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 o=this.renderer,n=this.element,y=this.x||0,p=this.y||0,f=this.textAlign||"left",s={left:0,center:.5,right:1}[f],i=this.styles;if(t(n,{marginLeft:this.translateX||0,marginTop:this.translateY||0}),this.inverted&&r(n.childNodes,function(t){o.invertChild(t,n)}),"SPAN"===n.tagName){var u=this.rotation,h=l(this.textWidth),a=i&&i.whiteSpace,v=[u,f,n.innerHTML,this.textWidth,this.textAlign].join();v!==this.cTT&&(i=o.fontMetrics(n.style.fontSize).b,c(u)&&this.setSpanRotation(u,s,i),t(n,{width:"",whiteSpace:a||"nowrap"}),n.offsetWidth>h&&/[ \-]/.test(n.textContent||n.innerText)&&t(n,{width:h+"px",display:"block",whiteSpace:a||"normal"}),this.getSpanCorrection(n.offsetWidth,i,s,u,f));t(n,{left:y+(this.xCorr||0)+"px",top:p+(this.yCorr||0)+"px"});e&&(i=n.offsetHeight);this.cTT=v}}else this.alignOnAdd=!0},setSpanRotation:function(n,i,r){var f={},e=this.renderer.getTransformKey();f[e]=f.transform="rotate("+n+"deg)";f[e+(u?"Origin":"-origin")]=f.transformOrigin=100*i+"% "+r+"px";t(this.element,f)},getSpanCorrection:function(n,t,i){this.xCorr=-n*i;this.yCorr=-t}});i(a.prototype,{getTransformKey:function(){return f&&!/Edge/.test(o.navigator.userAgent)?"-ms-transform":e?"-webkit-transform":u?"MozTransform":o.opera?"-o-transform":""},html:function(n,t,u){var e=this.createElement("span"),o=e.element,c=e.renderer,l=c.isSVG,a=function(n,t){r(["opacity","visibility"],function(i){v(n,i+"Setter",function(n,i,r,u){n.call(this,i,r,u);t[r]=i})})};return e.textSetter=function(n){n!==o.innerHTML&&delete this.bBox;o.innerHTML=this.textStr=n;e.htmlUpdateTransform()},l&&a(e,e.element.style),e.xSetter=e.ySetter=e.alignSetter=e.rotationSetter=function(n,t){"align"===t&&(t="textAlign");e[t]=n;e.htmlUpdateTransform()},e.attr({text:n,x:Math.round(t),y:Math.round(u)}).css({position:"absolute"}),o.style.whiteSpace="nowrap",e.css=e.htmlCss,l&&(e.add=function(n){var t,l=c.box.parentNode,u=[];if(this.parentGroup=n){if(t=n.div,!t){for(;n;)u.push(n),n=n.parentGroup;r(u.reverse(),function(n){function v(t,i){n[i]=t;f?r[c.getTransformKey()]="translate("+(n.x||n.translateX)+"px,"+(n.y||n.translateY)+"px)":"translateX"===i?r.left=t+"px":r.top=t+"px";n.doTransform=!0}var r,o=s(n.element,"class");o&&(o={className:o});t=n.div=n.div||h("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||l);r=t.style;i(n,{classSetter:function(n){this.element.setAttribute("class",n);t.className=n},on:function(){return u[0].div&&e.on.apply({element:u[0].div},arguments),n},translateXSetter:v,translateYSetter:v});a(n,r)})}}else t=l;return t.appendChild(o),e.added=!0,e.alignOnAdd&&e.htmlUpdateTransform(),e}),e}})}(t),function(n){function u(){var t=n.defaultOptions.global,i=r.moment;if(t.timezone){if(i)return function(n){return-i.tz(n,t.timezone).utcOffset()};n.error(25)}return t.useUTC&&t.getTimezoneOffset}function i(){var i=n.defaultOptions.global,e,o=i.useUTC,c=o?"getUTC":"get",l=o?"setUTC":"set",s="Minutes Hours Day Date Month FullYear".split(" "),h=s.concat(["Milliseconds","Seconds"]);for(n.Date=e=i.Date||r.Date,e.hcTimezoneOffset=o&&i.timezoneOffset,e.hcGetTimezoneOffset=u(),e.hcMakeTime=function(n,i,r,u,s,h){var c;return o?(c=e.UTC.apply(0,arguments),c+=f(c)):c=new e(n,i,t(r,1),t(u,0),t(s,0),t(h,0)).getTime(),c},i=0;i<s.length;i++)e["hcGet"+s[i]]=c+s[i];for(i=0;i<h.length;i++)e["hcSet"+h[i]]=l+h[i]}var f=n.getTZOffset,e=n.merge,t=n.pick,r=n.win;n.defaultOptions={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,colorCount:10,defaultSeriesType:"line",ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{zIndex:20},position:{align:"right",x:-10,y:10}},width:null,height:null},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:{},itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{}},loading:{},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,headerFormat:'<span class="highcharts-header">{point.key}<\/span><br/>',pointFormat:'<span class="highcharts-color-{point.colorIndex}">●<\/span> {series.name}: <span class="highcharts-strong">{point.y}<\/span><br/>'},credits:{enabled:!0,href:"http://www.highcharts.com",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},text:"Highcharts.com"}};n.setOptions=function(t){return n.defaultOptions=e(!0,n.defaultOptions,t),i(),n.defaultOptions};n.getOptions=function(){return n.defaultOptions};n.defaultPlotOptions=n.defaultOptions.plotOptions;i()}(t),function(n){var f=n.correctFloat,i=n.defined,e=n.destroyObjectProperties,u=n.isNumber,t=n.pick,r=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,o=n.options,h=n.chart,r=n.categories,s=n.names,u=this.pos,c=o.labels,e=n.tickPositions,l=u===e[0],a=u===e[e.length-1],s=r?t(r[u],s[u],u):u,r=this.label,e=e.info,v;n.isDatetimeAxis&&e&&(v=o.dateTimeLabelFormats[e.higherRanks[u]||e.unitName]);this.isFirst=l;this.isLast=a;o=n.labelFormatter.call({axis:n,chart:h,isFirst:l,isLast:a,dateTimeLabelFormat:v,value:n.isLog?f(n.lin2log(s)):s,pos:u});i(r)?r&&r.attr({text:o}):(this.labelLength=(this.label=r=i(o)&&c.enabled?h.renderer.text(o,0,0,c.useHTML).add(n.labelGroup):null)&&r.getBBox().width,this.rotation=0)},getLabelSize:function(){return this.label?this.label.getBBox()[this.axis.horiz?"height":"width"]:0},handleOverflow:function(n){var i=this.axis,e=n.x,a=i.chart.chartWidth,o=i.chart.spacing,v=t(i.labelLeft,Math.min(i.pos,o[3])),o=t(i.labelRight,Math.max(i.pos+i.len,a-o[1])),y=this.label,h=this.rotation,f={left:0,center:.5,right:1}[i.labelAlign],s=y.getBBox().width,c=i.getSlotWidth(),u=c,w=1,l,p={};h?0>h&&e-f*s<v?l=Math.round(e/Math.cos(h*r)-v):0<h&&e+f*s>o&&(l=Math.round((a-e)/Math.cos(h*r))):(a=e+(1-f)*s,e-f*s<v?u=n.x+u*(1-f)-v:a>o&&(u=o-n.x+u*f,w=-1),u=Math.min(c,u),u<c&&"center"===i.labelAlign&&(n.x+=w*(c-u-f*(c-Math.min(s,u)))),s>u||i.autoRotation&&(y.styles||{}).width)&&(l=u);l&&(p.width=l,(i.options.labels.style||{}).textOverflow||(p.textOverflow="ellipsis"),y.css(p))},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,y=c.transA,p=c.reversed,l=c.staggerLines,a=c.tickRotCorr||{x:0,y:0},v=e.y;return i(v)||(v=0===c.side?u.rotation?-8:-u.getBBox().height:2===c.side?a.y+8:Math.cos(u.rotation*r)*(a.y-u.getBBox(!1,0).height/2)),n=n+e.x+a.x-(o&&f?o*y*(p?-1:1):0),t=t+v-(o&&!f?o*y*(p?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,r=this.gridLine,f={},o=this.pos,e=this.type,s=u.tickmarkOffset,h=u.chart.renderer;r||(e||(f.zIndex=1),n&&(f.opacity=0),this.gridLine=r=h.path().attr(f).addClass("highcharts-"+(e?e+"-":"")+"grid-line").add(u.gridGroup));!n&&r&&(n=u.getPlotLinePath(o+s,r.strokeWidth()*i,n,!0))&&r[this.isNew?"attr":"animate"]({d:n,opacity:t})},renderMark:function(n,t,i){var r=this.axis,o=r.chart.renderer,u=this.type,f=r.tickSize(u?u+"Tick":"tick"),e=this.mark,s=!e,h=n.x;n=n.y;f&&(r.opposite&&(f[0]=-f[0]),s&&(this.mark=e=o.path().addClass("highcharts-"+(u?u+"-":"")+"tick").add(r.axisGroup)),e[s?"attr":"animate"]({d:this.getMarkPath(h,n,f[0],e.strokeWidth()*i,r.horiz,o),opacity:t}))},renderLabel:function(n,i,r,f){var o=this.axis,a=o.horiz,h=o.options,e=this.label,s=h.labels,c=s.step,y=o.tickmarkOffset,l=!0,v=n.x;n=n.y;e&&u(v)&&(e.xy=n=this.getLabelPosition(v,n,e,a,s,y,f,c),this.isFirst&&!this.isLast&&!t(h.showFirstLabel,1)||this.isLast&&!this.isFirst&&!t(h.showLastLabel,1)?l=!1:!a||o.isRadial||s.step||s.rotation||i||0===r||this.handleOverflow(n),c&&f%c&&(l=!1),l&&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),o=f.x,s=f.y,u=e&&o===u.pos+u.len||!e&&s===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(){e(this,this.axis)}}}(t),i=function(n){var b=n.addEvent,k=n.animObject,s=n.arrayMax,h=n.arrayMin,f=n.correctFloat,a=n.defaultOptions,i=n.defined,d=n.deg2rad,v=n.destroyObjectProperties,r=n.each,g=n.extend,y=n.fireEvent,nt=n.format,tt=n.getMagnitude,it=n.grep,c=n.inArray,rt=n.isArray,u=n.isNumber,p=n.isString,l=n.merge,ut=n.normalizeTickInterval,e=n.objectEach,t=n.pick,ft=n.removeEvent,et=n.splat,ot=n.syncTimeout,o=n.Tick,w=function(){this.init.apply(this,arguments)};return n.extend(w.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,x:0},minPadding:.01,maxPadding:.01,minorTickLength:2,minorTickPosition:"outside",startOfWeek:1,startOnTick:!1,tickLength:10,tickmarkPlacement:"between",tickPixelInterval:100,tickPosition:"outside",title:{align:"middle"},type:"linear"},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)}}},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,et(n.options.tooltip.crosshairs)[o?0:1],!1);r=u.options.events;-1===c(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){b(u,t,n)});u.lin2log=f.linearToLogConverter||u.lin2log;u.isLog&&(u.val2lin=u.log2lin,u.lin2val=u.lin2log)},setOptions:function(n){this.options=l(this.defaultOptions,"yAxis"===this.coll&&this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],l(a[this.coll],n))},defaultLabelFormatter:function(){var r=this.axis,t=this.value,u=r.categories,s=this.dateTimeLabelFormat,e=a.lang,o=e.numericSymbols,e=e.numericSymbolMagnitude||1e3,f=o&&o.length,i,h=r.options.labels.format,r=r.isLog?Math.abs(t):r.tickInterval;if(h)i=nt(h,this);else if(u)i=t;else if(s)i=n.dateFormat(s,t);else if(f&&1e3<=r)for(;f--&&void 0===i;)u=Math.pow(e,f+1),r>=u&&0==10*t%u&&null!==o[f]&&0!==t&&(i=n.numberFormat(t/u,-1)+o[f]);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,o=e.threshold,c;n.hasVisibleSeries=!0;n.positiveValuesOnly&&0>=o&&(o=null);n.isXAxis?(e=r.xData,e.length&&(r=h(e),u(r)||r instanceof Date||(e=it(e,function(n){return u(n)}),r=h(e)),n.dataMin=Math.min(t(n.dataMin,e[0]),r),n.dataMax=Math.max(t(n.dataMax,e[0]),s(e)))):(r.getExtremes(),c=r.dataMax,r=r.dataMin,i(r)&&i(c)&&(n.dataMin=Math.min(t(n.dataMin,r),r),n.dataMax=Math.max(t(n.dataMax,c),c)),i(o)&&(n.threshold=o),!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,c=this.left,l=this.top,o,h,y=r&&s.oldChartHeight||s.chartHeight,p=r&&s.oldChartWidth||s.chartWidth,a,v;return o=this.transB,v=function(n,t,i){return(n<t||n>i)&&(f?n=Math.min(Math.max(t,n),i):a=!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=l,h=y-this.bottom,n=r=v(n,c,c+this.width)):(n=c,r=p-this.right,o=h=v(o,l,l+this.height)):(a=!0,f=!1),a&&!f?null:s.renderer.crispLine(["M",n,o,"L",r,h],i||1)},getLinearTickPositions:function(n,t,i){var u,e=f(Math.floor(t/n)*n),r;if(i=f(Math.ceil(i/n)*n),r=[],this.single)return[t];for(t=e;t<=i;){if(r.push(t),t=f(t+n),t===u)break;u=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 o=this.options,n=this.min,u=this.max,f,v,l,c,y,a,p,e;this.isXAxis&&void 0===this.minRange&&!this.isLog&&(i(o.min)||i(o.max)?this.minRange=null:(r(this.series,function(n){for(a=n.xData,c=p=n.xIncrement?1:a.length-1;0<c;c--)(y=a[c]-a[c-1],void 0===l||y<l)&&(l=y)}),this.minRange=Math.min(5*l,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(o.min,n-f)],v&&(f[2]=this.isLog?this.log2lin(this.dataMin):this.dataMin),n=s(f),u=[n+e,t(o.max,n+e)],v&&(u[2]=this.isLog?this.log2lin(this.dataMax):this.dataMax),u=h(u),u-n<e&&(f[0]=u-e,f[1]=t(o.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 u=rt(this.categories),f=u?this.categories:this.names,r=n.options.x,t;return n.series.requireSorting=!1,i(r)||(r=!1===this.options.uniqueNames?n.series.autoIncrement():c(n.name,f)),-1===r?u||(t=f.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,f,e=0,o=0,u=i.linkedParent,a=!!i.categories,h=i.transA,c=i.isXAxis;(c||a||s)&&(f=i.getClosest(),u?(e=u.minPointOffset,o=u.pointRangePadding):r(i.series,function(n){var r=a?1:c?t(n.options.pointRange,f,0):i.axisPointRange||0;n=n.options.pointPlacement;s=Math.max(s,r);i.single||(e=Math.max(e,p(n)?0:r/2),o=Math.max(o,"on"===n?0:r))}),u=i.ordinalSlope&&f?i.ordinalSlope/f:1,i.minPointOffset=e*=u,i.pointRangePadding=o*=u,i.pointRange=Math.min(s,l),c&&(i.closestPointRange=f));n&&(i.oldTransA=h);i.translationSlope=i.transA=h=i.options.staticScale||i.len/(l+o||1);i.transB=i.horiz?i.left:i.bottom;i.minPixelPadding=h*e},minFromRange:function(){return this.max-this.range},setTickInterval:function(e){var o=this,c=o.chart,s=o.options,nt=o.isLog,a=o.log2lin,it=o.isDatetimeAxis,ot=o.isXAxis,w=o.isLinked,b=s.maxPadding,k=s.minPadding,l=s.tickInterval,d=s.tickPixelInterval,g=o.categories,h=o.threshold,rt=o.softThreshold,ft,et,v,p;it||g||w||this.getTickAmount();v=t(o.userMin,s.min);p=t(o.userMax,s.max);w?(o.linkedParent=c[o.coll][s.linkedTo],c=o.linkedParent.getExtremes(),o.min=t(c.min,c.dataMin),o.max=t(c.max,c.dataMax),s.type!==o.linkedParent.options.type&&n.error(11,1)):(!rt&&i(h)&&(o.dataMin>=h?(ft=h,k=0):o.dataMax<=h&&(et=h,b=0)),o.min=t(v,ft,o.dataMin),o.max=t(p,et,o.dataMax));nt&&(o.positiveValuesOnly&&!e&&0>=Math.min(o.min,t(o.dataMin,o.min))&&n.error(10,1),o.min=f(a(o.min),15),o.max=f(a(o.max),15));o.range&&i(o.max)&&(o.userMin=o.min=v=Math.max(o.dataMin,o.minFromRange()),o.userMax=p=o.max,o.range=null);y(o,"foundExtremes");o.beforePadding&&o.beforePadding();o.adjustForMinRange();!(g||o.axisPointRange||o.usePercentage||w)&&i(o.min)&&i(o.max)&&(a=o.max-o.min)&&(!i(v)&&k&&(o.min-=a*k),!i(p)&&b&&(o.max+=a*b));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));rt&&i(o.dataMin)&&(h=h||0,!i(v)&&o.min<h&&o.dataMin>=h?o.min=h:!i(p)&&o.max>h&&o.dataMax<=h&&(o.max=h));o.tickInterval=o.min===o.max||void 0===o.min||void 0===o.max?1:w&&!l&&d===o.linkedParent.options.tickPixelInterval?l=o.linkedParent.tickInterval:t(l,this.tickAmount?(o.max-o.min)/Math.max(this.tickAmount-1,1):void 0,g?1:(o.max-o.min)*d/Math.max(o.len,d));ot&&!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&&!l&&(o.tickInterval=Math.max(o.pointRange,o.tickInterval));e=t(s.minTickInterval,o.isDatetimeAxis&&o.closestPointRange);!l&&o.tickInterval<e&&(o.tickInterval=e);it||nt||l||(o.tickInterval=ut(o.tickInterval,null,tt(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,f=t.startOnTick,e=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()]),this.tickPositions=n,r&&(r=r.apply(this,[this.min,this.max])))&&(this.tickPositions=n=r);this.paddedTicks=n.slice(0);this.trimTicks(n,f,e);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],f=n[n.length-1],e=this.minPointOffset||0;if(!this.isLinked){if(t&&-Infinity!==u)this.min=u;else for(;this.min-e>n[0];)n.shift();if(r)this.max=f;else for(;this.max+e<n[n.length-1];)n.pop();0===n.length&&i(u)&&n.push((f+u)/2)}},alignToOthers:function(){var n={},t,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&&(n[r]?t=!0:n[r]=1)}),t},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,u=this.finalTickAmt,e=n&&n.length;if(e<r){for(;n.length<r;)n.push(f(n[n.length-1]+t));this.transA*=(e-1)/(r-1);this.max=n[n.length-1]}else e>r&&(this.tickInterval*=2,this.setTickPositions());if(i(u)){for(t=r=n.length;t--;)(3===u&&1==t%2||2>=u&&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=g(e,{min:n,max:i});y(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],f=this.horiz,e=this.width=Math.round(n.relativeLength(t(r.width,i.plotWidth-u[3]+u[1]),i.plotWidth)),o=this.height=Math.round(n.relativeLength(t(r.height,i.plotHeight-u[0]+u[2]),i.plotHeight)),s=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-o-s;this.right=i.chartWidth-e-r;this.len=Math.max(f?e:o,0);this.pos=f?r:s},getExtremes:function(){var n=this.isLog,t=this.lin2log;return{min:n?f(t(this.min)):this.min,max:n?f(t(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(n){var t=this.isLog,r=this.lin2log,i=t?r(this.min):this.min,t=t?r(this.max):this.max;return 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,f=this.tickInterval,e=f,h=this.len/(((this.categories?1:0)+this.max-this.min)/f),c,u=n.rotation,l=this.labelMetrics(),o,a=Number.MAX_VALUE,s,v=function(n){return n/=h||1,n=1<n?Math.ceil(n):1,n*f};return y?(s=!n.staggerLines&&!n.step&&(i(u)?[u]:h<t(n.autoRotationLimit,80)&&n.autoRotation))&&r(s,function(n){var t;(n===u||n&&-90<=n&&90>=n)&&(o=v(Math.abs(l.h/Math.sin(d*n))),t=o+Math.abs(n/360),t<a&&(a=t,c=n,e=o))}):n.step||(e=v(l.h)),this.autoRotation=s,this.labelRotation=t(c,u),e},getSlotWidth:function(){var t=this.chart,i=this.horiz,n=this.options.labels,u=Math.max(this.tickPositions.length-(this.categories?0:1),1),r=t.margin[3];return i&&2>(n.step||0)&&!n.rotation&&(this.staggerLines||1)*this.len/u||!i&&(n.style&&parseInt(n.style.width,10)||r&&r-t.spacing[3]||.33*t.chartWidth)},renderUnsquish:function(){var o=this.chart,w=o.renderer,e=this.tickPositions,s=this.ticks,t=this.options.labels,b=this.horiz,h=this.getSlotWidth(),n=Math.max(1,Math.round(h-2*(t.padding||5))),i={},c=this.labelMetrics(),y=t.style&&t.style.textOverflow,u,f=0,a,v;if(p(t.rotation)||(i.rotation=t.rotation||0),r(e,function(n){(n=s[n])&&n.labelLength>f&&(f=n.labelLength)}),this.maxLabelLength=f,this.autoRotation)f>n&&f>c.h?i.rotation=this.labelRotation:this.labelRotation=0;else if(h&&(u={width:n+"px"},!y))for(u.textOverflow="clip",a=e.length;!b&&a--;)(v=e[a],n=s[v].label)&&(n.styles&&"ellipsis"===n.styles.textOverflow?n.css({textOverflow:"clip"}):s[v].labelLength>h&&n.css({width:h+"px"}),n.getBBox().height>this.len/e.length-(c.h-c.f)&&(n.specCss={textOverflow:"ellipsis"}));i.rotation&&(u={width:(f>.5*o.chartHeight?.33*o.chartHeight:o.chartHeight)+"px"},y||(u.textOverflow="ellipsis"));(this.labelAlign=t.align||this.autoLabelAlign(this.labelRotation))&&(i.align=this.labelAlign);r(e,function(n){var t=(n=s[n])&&n.label;t&&(t.attr(i),u&&t.css(l(u,t.specCss)),delete t.specCss,n.rotation=i.rotation)});this.tickRotCorr=w.rotCorr(c.b,this.labelRotation||0,0!==this.side)},hasData:function(){return this.hasVisibleSeries||i(this.min)&&i(this.max)&&!!this.tickPositions},addTitle:function(n){var u=this.chart.renderer,f=this.horiz,r=this.opposite,t=this.options.title,i;this.axisTitle||((i=t.textAlign)||(i=(f?{low:"left",middle:"center",high:"right"}:{low:r?"right":"left",middle:"center",high:r?"left":"right"})[t.align]),this.axisTitle=u.text(t.text,0,0,t.useHTML).attr({zIndex:7,rotation:t.rotation||0,align:i}).addClass("highcharts-axis-title").add(this.axisGroup),this.axisTitle.isNew=!0);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,o=n.chart,l=o.renderer,f=n.options,p=n.tickPositions,w=n.ticks,b=n.horiz,u=n.side,it=o.inverted&&!n.isZAxis?[1,0,3,2][u]:u,y,k,rt=0,d,s=0,h=f.title,a=f.labels,c=0,g=o.axisOffset,o=o.clipOffset,v=[-1,1,1,-1][u],nt=f.className,tt=n.axisParent,ut=this.tickSize("tick");y=n.hasData();n.showAxis=k=y||t(f.showEmpty,!0);n.staggerLines=n.horiz&&a.staggerLines;n.axisGroup||(n.gridGroup=l.g("grid").attr({zIndex:f.gridZIndex||1}).addClass("highcharts-"+this.coll.toLowerCase()+"-grid "+(nt||"")).add(tt),n.axisGroup=l.g("axis").attr({zIndex:f.zIndex||2}).addClass("highcharts-"+this.coll.toLowerCase()+" "+(nt||"")).add(tt),n.labelGroup=l.g("axis-labels").attr({zIndex:a.zIndex||7}).addClass("highcharts-"+n.coll.toLowerCase()+"-labels "+(nt||"")).add(tt));y||n.isLinked?(r(p,function(t,i){n.generateTick(t,i)}),n.renderUnsquish(),!1===a.reserveSpace||0!==u&&2!==u&&{1:"left",3:"right"}[u]!==n.labelAlign&&"center"!==n.labelAlign||r(p,function(n){c=Math.max(w[n].getLabelSize(),c)}),n.staggerLines&&(c*=n.staggerLines,n.labelOffset=c*(n.opposite?-1:1))):e(w,function(n,t){n.destroy();delete w[t]});h&&h.text&&!1!==h.enabled&&(n.addTitle(k),k&&!1!==h.reserveSpace&&(n.titleOffset=rt=n.axisTitle.getBBox()[b?"height":"width"],d=h.offset,s=i(d)?0:t(h.margin,b?5:10)));n.renderLine();n.offset=v*t(f.offset,g[u]);n.tickRotCorr=n.tickRotCorr||{x:0,y:0};l=0===u?-n.labelMetrics().h:2===u?n.tickRotCorr.y:0;s=Math.abs(c)+s;c&&(s=s-l+v*(b?t(a.y,n.tickRotCorr.y+8*v):a.x));n.axisTitleMargin=t(d,s);g[u]=Math.max(g[u],n.axisTitleMargin+rt+v*n.offset,s,y&&p.length&&ut?ut[0]+v*n.offset:0);f=f.offset?0:2*Math.floor(n.axisLine.strokeWidth()/2);o[it]=Math.max(o[it],f)},getLinePath:function(n){var i=this.chart,u=this.opposite,t=this.offset,r=this.horiz,f=this.left+(u?this.width:0)+t,t=i.chartHeight-this.bottom-(u?this.height:0)+t;return u&&(n*=-1),i.renderer.crispLine(["M",r?this.left:f,r?t:this.top,"L",r?i.chartWidth-this.right:f,r?t:i.chartHeight-this.bottom],n)},renderLine:function(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup))},getTitlePosition:function(){var n=this.horiz,r=this.left,o=this.top,t=this.len,u=this.options.title,f=n?r:o,e=this.opposite,s=this.offset,h=u.x||0,c=u.y||0,i=this.axisTitle,l=this.chart.renderer.fontMetrics(u.style&&u.style.fontSize,i),i=Math.max(i.getBBox(null,0).height-l.h-1,0),t={low:f+(n?0:t),middle:f+t/2,high:f+(n?t:0)}[u.align],r=(n?o+this.height:r)+(n?1:-1)*(e?-1:1)*this.axisTitleMargin+[-i,i,l.f,-i][this.side];return{x:n?t+h:r+(e?this.width:0)+s+h,y:n?r+c-(e?this.height:0)+s:t+c}},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 r=this.isLinked,i=this.ticks,f=this.chart.hasRendered&&u(this.oldMin);(!r||n>=this.min&&n<=this.max)&&(i[n]||(i[n]=new o(this,n)),f&&i[n].isNew&&i[n].render(t,!0,.1),i[n].render(t))},render:function(){var t=this,y=t.chart,f=t.options,w=t.isLog,b=t.lin2log,it=t.isLinked,l=t.tickPositions,s=t.axisTitle,a=t.ticks,d=t.minorTicks,i=t.alternateBands,g=f.stackLabels,nt=f.alternateGridColor,h=t.tickmarkOffset,c=t.axisLine,tt=t.showAxis,rt=k(y.renderer.globalAnimation),p,v;t.labelEdge.length=0;t.overlap=!1;r([a,d,i],function(n){e(n,function(n){n.isActive=!1})});(t.hasData()||it)&&(t.minorTickInterval&&!t.categories&&r(t.getMinorTickPositions(),function(n){t.renderMinorTick(n)}),l.length&&(r(l,function(n,i){t.renderTick(n,i)}),h&&(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]+h:t.max-h;0==u%2&&r<t.max&&v<=t.max+(y.polar?-h:h)&&(i[r]||(i[r]=new n.PlotLineOrBand(t)),p=r+h,i[r].options={from:w?b(p):p,to:w?b(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,d,i],function(n){var t,r=[],u=rt.duration;e(n,function(n,t){n.isActive||(n.render(t,!1,0),n.isActive=!1,r.push(t))});ot(function(){for(t=r.length;t--;)n[r[t]]&&!n[r[t]].isActive&&(n[r[t]].destroy(),delete n[r[t]])},n!==i&&y.hasRendered&&u?u:0)});c&&(c[c.isPlaced?"animate":"attr"]({d:this.getLinePath(c.strokeWidth())}),c.isPlaced=!0,c[tt?"show":"hide"](!0));s&&tt&&(f=t.getTitlePosition(),u(f.y)?(s[s.isNew?"attr":"animate"](f),s.isNew=!1):(s.attr("y",-9999),s.isNew=!0));g&&g.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||ft(t),e(f,function(n,t){v(n);f[t]=null}),r([t.ticks,t.minorTicks,t.alternateBands],function(n){v(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===c(i,t.keepProps)&&delete t[i]})},drawCrosshair:function(n,r){var o,u=this.crosshair,s=t(u.snap,!0),f,e=this.cross;n||(n=this.cross&&this.cross.e);this.crosshair&&!1!==(i(r)||!s)?(s?i(r)&&(f=this.isXAxis?r.plotX:this.len-r.plotY):f=n&&(this.horiz?n.chartX-this.pos:this.len-n.chartY+this.pos),i(f)&&(o=this.getPlotLinePath(r&&(this.isXAxis?r.x:t(r.stackY,r.y)),null,null,null,f)||null),i(o)?(r=this.categories&&!this.isRadial,e||(this.cross=e=this.chart.renderer.path().addClass("highcharts-crosshair highcharts-crosshair-"+(r?"category ":"thin ")+u.className).attr({zIndex:t(u.zIndex,2)}).add()),e.show().attr({d:o}),r&&!u.width&&e.attr({"stroke-width":this.transA}),this.cross.e=n):this.hideCrosshair()):this.hideCrosshair()},hideCrosshair:function(){this.cross&&this.cross.hide()}}),n.Axis=w}(t),function(n){var u=n.Axis,t=n.Date,f=n.dateFormat,e=n.defaultOptions,o=n.defined,s=n.each,h=n.extend,c=n.getMagnitude,r=n.getTZOffset,l=n.normalizeTickInterval,a=n.pick,i=n.timeUnits;u.prototype.getTimeTicks=function(n,u,c,l){var k=[],it={},b=e.global.useUTC,w,v=new t(u-Math.max(r(u),r(c))),d=t.hcMakeTime,y=n.unitRange,p=n.count,g,nt,tt,rt;if(o(u)){for(v[t.hcSetMilliseconds](y>=i.second?0:p*Math.floor(v.getMilliseconds()/p)),y>=i.second&&v[t.hcSetSeconds](y>=i.minute?0:p*Math.floor(v.getSeconds()/p)),y>=i.minute&&v[t.hcSetMinutes](y>=i.hour?0:p*Math.floor(v[t.hcGetMinutes]()/p)),y>=i.hour&&v[t.hcSetHours](y>=i.day?0:p*Math.floor(v[t.hcGetHours]()/p)),y>=i.day&&v[t.hcSetDate](y>=i.month?1:p*Math.floor(v[t.hcGetDate]()/p)),y>=i.month&&(v[t.hcSetMonth](y>=i.year?0:p*Math.floor(v[t.hcGetMonth]()/p)),w=v[t.hcGetFullYear]()),y>=i.year&&v[t.hcSetFullYear](w-w%p),y===i.week&&v[t.hcSetDate](v[t.hcGetDate]()-v[t.hcGetDay]()+a(l,1)),w=v[t.hcGetFullYear](),l=v[t.hcGetMonth](),tt=v[t.hcGetDate](),rt=v[t.hcGetHours](),(t.hcTimezoneOffset||t.hcGetTimezoneOffset)&&(nt=(!b||!!t.hcGetTimezoneOffset)&&(c-u>4*i.month||r(u)!==r(c)),v=v.getTime(),g=r(v),v=new t(v+g)),b=v.getTime(),u=1;b<c;)k.push(b),b=y===i.year?d(w+u*p,0):y===i.month?d(w,l+u*p):!nt||y!==i.day&&y!==i.week?nt&&y===i.hour?d(w,l,tt,rt+u*p,0,0,g)-g:b+y*p:d(w,l,tt+u*p*(y===i.day?1:7)),u++;k.push(b);y<=i.hour&&1e4>k.length&&s(k,function(n){0==n%18e5&&"000000000"===f("%H%M%S%L",n)&&(it[n]="day")})}return k.info=h(n,{higherRanks:it,totalRange:y*p}),k};u.prototype.normalizeTimeTickInterval=function(n,t){var u=t||[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2]],["week",[1,2]],["month",[1,2,3,4,6]],["year",null]],r,f,e;for(t=u[u.length-1],r=i[t[0]],f=t[1],e=0;e<u.length&&!(t=u[e],r=i[t[0]],f=t[1],u[e+1]&&n<=(r*f[f.length-1]+i[u[e+1][0]])/2);e++);return r===i.year&&n<5*r&&(f=[1,2,5]),n=l(n/r,f,"year"===t[0]?Math.max(c(n/r),1):1),{unitRange:r,count:n,unitName:t[0]}}}(t),function(n){var t=n.Axis,i=n.getMagnitude,r=n.map,u=n.normalizeTickInterval,f=n.pick;t.prototype.getLogTickPositions=function(n,t,e,o){var h=this.options,s=this.len,v=this.lin2log,w=this.log2lin,l=[],a,b,y,c,p;if(o||(this._minorAutoInterval=null),.5<=n)n=Math.round(n),l=this.getLinearTickPositions(n,t,e);else if(.08<=n)for(s=Math.floor(t),h=.3<n?[1,2,4]:.15<n?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9];s<e+1&&!p;s++)for(b=h.length,a=0;a<b&&!p;a++)y=w(v(s)*h[a]),y>t&&(!o||c<=e)&&void 0!==c&&l.push(c),c>e&&(p=!0),c=y;else t=v(t),e=v(e),n=o?this.getMinorTickInterval():h.tickInterval,n=f("auto"===n?null:n,this._minorAutoInterval,h.tickPixelInterval/(o?5:1)*(e-t)/((o?s/this.tickPositions.length:s)||1)),n=u(n,null,i(n)),l=r(this.getLinearTickPositions(n,t,e),w),o||(this._minorAutoInterval=n/5);return o||(this.tickInterval=n),l};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 r=n.arrayMax,u=n.arrayMin,i=n.defined,e=n.destroyObjectProperties,o=n.each,f=n.erase,s=n.merge,h=n.pick;n.PlotLineOrBand=function(n,t){this.axis=n;t&&(this.options=t,this.id=t.id)};n.PlotLineOrBand.prototype={render:function(){var e=this,r=e.axis,l=r.horiz,o=e.options,a=o.label,v=e.label,y=o.to,p=o.from,w=o.value,u=i(p)&&i(y),it=i(w),f=e.svgElem,g=!f,t=[],k=h(o.zIndex,0),d=o.events,t={"class":"highcharts-plot-"+(u?"band ":"line ")+(o.className||"")},nt={},tt=r.chart.renderer,b=u?"bands":"lines",c;if(c=r.log2lin,r.isLog&&(p=c(p),y=c(y),w=c(w)),nt.zIndex=k,b+="-"+k,(c=r.plotLinesAndBandsGroups[b])||(r.plotLinesAndBandsGroups[b]=c=tt.g("plot-"+b).attr(nt).add()),g&&(e.svgElem=f=tt.path().attr(t).add(c)),it)t=r.getPlotLinePath(w,f.strokeWidth());else if(u)t=r.getPlotBandPath(p,y,o);else return;return g&&t&&t.length?(f.attr({d:t}),d&&n.objectEach(d,function(n,t){f.on(t,function(n){d[t].apply(e,[n])})})):f&&(t?(f.show(),f.animate({d:t})):(f.hide(),v&&(e.label=v=v.destroy()))),a&&i(a.text)&&t&&t.length&&0<r.width&&0<r.height&&!t.flat?(a=s({align:l&&u&&"center",x:l?!u&&4:10,verticalAlign:!l&&u&&"middle",y:l?u?16:10:u?6:-4,rotation:l&&!u&&90},a),this.renderLabel(a,t,u,k)):v&&v.hide(),e},renderLabel:function(n,t,i,f){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=f,this.label=e=o.text(n.text,0,0,n.useHTML).attr(e).add());f=t.xBounds||[t[1],t[4],i?t[6]:t[1]];t=t.yBounds||[t[2],t[5],i?t[7]:t[2]];i=u(f);o=u(t);e.align(n,!1,{x:i,y:o,width:r(f)-i,height:r(t)-o});e.show()},destroy:function(){f(this.axis.plotLinesAndBands,this);delete this.axis;e(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=[],e=this.horiz,u=1,o;if(n=n<this.min&&t<this.min||n>this.max&&t>this.max,r&&i)for(n&&(o=r.toString()===i.toString(),u=0),n=0;n<r.length;n+=6)e&&i[n+1]===r[n+1]?(i[n+1]+=u,i[n+4]+=u):e||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=o;return f},addPlotBand:function(n){return this.addPlotBandOrLine(n,"plotBands")},addPlotLine:function(n){return this.addPlotBandOrLine(n,"plotLines")},addPlotBandOrLine:function(t,i){var r=new n.PlotLineOrBand(this,t).render(),u=this.userOptions;return r&&(i&&(u[i]=u[i]||[],u[i].push(t)),this.plotLinesAndBands.push(r)),r},removePlotBandOrLine:function(n){for(var i=this.plotLinesAndBands,r=this.options,u=this.userOptions,t=i.length;t--;)i[t].id===n&&i[t].destroy();o([r.plotLines||[],u.plotLines||[],r.plotBands||[],u.plotBands||[]],function(i){for(t=i.length;t--;)i[t].id===n&&f(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,s=n.extend,h=n.format,c=n.isNumber,e=n.map,o=n.merge,t=n.pick,r=n.splat,l=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)})},applyFilter:function(){var n=this.chart;n.renderer.definition({tagName:"filter",id:"drop-shadow-"+n.index,opacity:.5,children:[{tagName:"feGaussianBlur","in":"SourceAlpha",stdDeviation:1},{tagName:"feOffset",dx:1,dy:1},{tagName:"feComponentTransfer",children:[{tagName:"feFuncA",type:"linear",slope:.3}]},{tagName:"feMerge",children:[{tagName:"feMergeNode"},{tagName:"feMergeNode","in":"SourceGraphic"}]}]});n.renderer.definition({tagName:"style",textContent:".highcharts-tooltip-"+n.index+"{filter:url(#drop-shadow-"+n.index+")}"})},getLabel:function(){var t=this.chart.renderer,n=this.options;return this.label||(this.label=this.split?t.g("tooltip"):t.label("",0,0,n.shape||"callout",null,null,n.useHTML,null,"tooltip").attr({padding:n.padding,r:n.borderRadius}),this.applyFilter(),this.label.addClass("highcharts-tooltip-"+this.chart.index),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 u=this,f=u.now,e=!1!==u.options.animation&&!u.isHidden&&(1<Math.abs(n-f.x)||1<Math.abs(t-f.y)),o=u.followPointer||1<u.len;s(f,{x:e?(2*f.x+n)/3:n,y:e?(f.y+t)/2:t,anchorX:o?void 0:e?(2*f.anchorX+i)/3:i,anchorY:o?void 0:e?(f.anchorY+r)/2:r});u.getLabel().attr(f);e&&(clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){u&&u.move(n,t,i,r)},32))},hide:function(n){var i=this;clearTimeout(this.hideTimer);n=t(n,this.options.hideDelay,500);this.isHidden||(this.hideTimer=l(function(){i.getLabel()[n?"fadeOut":"hide"]();i.isHidden=!0},n))},getAnchor:function(n,t){var f,u=this.chart,o=u.inverted,c=u.plotTop,v=u.plotLeft,s=0,h=0,l,a;return n=r(n),f=n[0].tooltipPos,this.followPointer&&t&&(void 0===t.chartX&&(t=u.pointer.normalize(t)),f=[t.chartX-u.plotLeft,t.chartY-c]),f||(i(n,function(n){l=n.series.yAxis;a=n.series.xAxis;s+=n.plotX+(!o&&a?a.left-v:0);h+=(n.plotLow?(n.plotLow+n.plotHigh)/2:n.plotY)+(!o&&l?l.top-c:0)}),s/=n.length,h/=n.length,f=[o?u.plotWidth-h:s,this.shared&&!o&&1<n.length&&t?t.chartY-c:o?u.plotHeight-s:h]),e(f,Math.round)},getPosition:function(n,i,r){var u=this.chart,e=this.distance,f={},o=u.inverted&&r.h||0,s,h=["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),y=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},p=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},l=function(n){var t=h;h=c;c=t;s=n},a=function(){!1!==y.apply(0,h)?!1!==p.apply(0,c)||s||(l(!0),a()):s?f.x=f.y=0:(l(!0),a())};return(u.inverted||1<this.len)&&l(),a(),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,s=this.options,f=n,h,e={},c=[],l;o=s.formatter||this.defaultFormatter;e=this.shared;s.enabled&&(clearTimeout(this.hideTimer),this.followPointer=r(f)[0].series.tooltipOptions.followPointer,h=this.getAnchor(f,u),u=h[0],s=h[1],!e||f.series&&f.series.noSharedTooltip?e=f.getLabelConfig():(i(f,function(n){n.setState("hover");c.push(n.getLabelConfig())}),e={x:f[0].category,y:f[0].y},e.points=c,f=f[0]),this.len=c.length,e=o.call(e,this),l=f.series,this.distance=t(l.tooltipOptions.distance,16),!1===e?this.hide():(o=this.getLabel(),this.isHidden&&o.attr({opacity:1}).show(),this.split?this.renderSplit(e,r(n)):(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,l.colorIndex)),this.updatePosition({plotX:u,plotY:s,negative:f.negative,ttBelow:f.ttBelow,h:h[2]||0})),this.isHidden=!1))},renderSplit:function(r,u){var c=this,o=[],f=this.chart,l=f.renderer,h=!0,e=this.options,s=0,a=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||c,v=y.tt,r="highcharts-color-"+t(i.colorIndex,(i.series||{}).colorIndex,"none");v||(y.tt=v=l.label(null,null,null,"callout",null,null,e.useHTML).addClass("highcharts-tooltip-box "+r).attr({padding:e.padding,r:e.borderRadius}).add(a));v.isActive=!0;v.attr({text:n});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 s=f("%m-%d %H:%M:%S.%L",t),h,e,o={millisecond:15,second:12,minute:9,hour:6,day:3},c="millisecond";for(e in u){if(n===u.week&&+f("%w",t)===i&&"00:00:00.000"===s.substr(6)){e="week";break}if(u[e]>n){e=c;break}if(o[e]&&s.substr(o[e])!=="01-01 00:00:00.000".substr(o[e]))break;"week"!==e&&(c=e)}return e&&(h=r[e]),h},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 u=n.series,f=u.tooltipOptions,r=f.xDateFormat,e=u.xAxis,s=e&&"datetime"===e.options.type&&c(n.key),o=f[t+"Format"];return s&&!r&&(r=this.getXDateFormat(n,f,e)),s&&r&&i(n.point&&n.point.tooltipDateKeys||["key"],function(n){o=o.replace("{point."+n+"}","{point."+n+":"+r+"}")}),h(o,{point:n,series:u})},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,l=n.attr,i=n.charts,a=n.css,h=n.defined,t=n.each,f=n.extend,v=n.find,e=n.fireEvent,o=n.isObject,y=n.offset,r=n.pick,s=n.removeEvent,p=n.splat,c=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={};c&&(n.tooltip=new c(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=y(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=o(n,!0))&&!(t=!o(u,!0)))var t=u.distX-n.distX,f=u.dist-n.dist,e=(n.series.group&&n.series.group.zIndex)-(u.series.group&&u.series.group.zIndex),t=0<(0!==t&&i?t:0!==f?f:0!==e?e: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,r=i.xAxis,i=i.yAxis;if(r&&i)return t?{chartX:r.len+r.pos-n.clientX,chartY:i.len+i.pos-n.plotY}:{chartX:n.clientX+r.pos,chartY:n.plotY+i.pos}},getHoverData:function(i,u,f,e,s,h,c){var l,a=[],y=c&&c.isBoosting;return e=!(!e||!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=e?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});o(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 i=r(t.crosshair.snap,!0),u=i?n.find(l,function(n){return n.series[t.coll]===t}):void 0;u||!i?t.drawCrosshair(f,u):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(p(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 r=this.chart,u;t(r.series,function(t){u=n||t.getPlotBox();t.xAxis&&t.xAxis.zoomEnabled&&t.group&&(t.group.attr(u),t.markerGroup&&(t.markerGroup.attr(u),t.markerGroup.clip(i?r.clipRect:null)),t.dataLabelsGroup&&t.dataLabelsGroup.attr(u))});r.clipRect.attr(i||r.clipBox)},dragStart:function(n){var t=this.chart;t.mouseIsDown=n.type;t.cancelClick=!1;t.mouseDownX=this.mouseDownX=n.chartX;t.mouseDownY=this.mouseDownY=n.chartY},drag:function(n){var i=this.chart,o=i.options.chart,t=n.chartX,u=n.chartY,v=this.zoomHor,y=this.zoomVert,f=i.plotLeft,e=i.plotTop,c=i.plotWidth,l=i.plotHeight,a,r=this.selectionMarker,s=this.mouseDownX,h=this.mouseDownY,p=o.panKey&&n[o.panKey+"Key"];r&&r.touch||(t<f?t=f:t>f+c&&(t=f+c),u<e?u=e:u>e+l&&(u=e+l),this.hasDragged=Math.sqrt(Math.pow(s-t,2)+Math.pow(h-u,2)),10<this.hasDragged&&(a=i.isInsidePlot(s-f,h-e),i.hasCartesianSeries&&(this.zoomX||this.zoomY)&&a&&!p&&!r&&(this.selectionMarker=r=i.renderer.rect(f,e,v?1:c,y?1:l,0).attr({"class":"highcharts-selection-marker",zIndex:7}).add()),r&&v&&(t-=s,r.attr({width:Math.abs(t),x:(0<t?0:t)+s})),r&&y&&(t=u-h,r.attr({height:Math.abs(t),y:(0<t?0:t)+h})),a&&!r&&o.panning&&i.pan(n,o.panning)))},drop:function(n){var v=this,r=this.chart,u=this.hasPinched;if(this.selectionMarker){var o={originalEvent:n,xAxis:[],yAxis:[]},i=this.selectionMarker,s=i.attr?i.attr("x"):i.x,c=i.attr?i.attr("y"):i.y,y=i.attr?i.attr("width"):i.width,p=i.attr?i.attr("height"):i.height,l;(this.hasDragged||u)&&(t(r.axes,function(t){if(t.zoomEnabled&&h(t.min)&&(u||v[{xAxis:"zoomX",yAxis:"zoomY"}[t.coll]])){var i=t.horiz,r="touchend"===n.type?t.minPixelPadding:0,f=t.toValue((i?s:c)+r),i=t.toValue((i?s+y:c+p)-r);o[t.coll].push({axis:t,min:Math.min(f,i),max:Math.max(f,i)});l=!0}}),l&&e(r,"selection",o,function(n){r.zoom(f(n,u?{animation:!1}:null))}));this.selectionMarker=this.selectionMarker.destroy();u&&this.scaleGroups()}r&&(a(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=l(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,r=t.plotLeft,u=t.plotTop;n=this.normalize(n);t.cancelClick||(i&&this.inClass(n.target,"highcharts-tracker")?(e(i.series,"click",f(n,{point:i})),t.hoverPoint&&i.firePointEvent("click",n)):(f(n,this.getCoordinates(n)),t.isInsidePlot(n.chartX-r,n.chartY-u)&&e(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)};u(i,"mouseleave",t.onContainerMouseLeave);1===n.chartCount&&u(r,"mouseup",t.onDocumentMouseUp);n.hasTouch&&(i.ontouchstart=function(n){t.onContainerTouchStart(n)},i.ontouchmove=function(n){t.onContainerTouchMove(n)},1===n.chartCount&&u(r,"touchend",t.onDocumentTouchEnd))},destroy:function(){var t=this,i=this.chart.container.ownerDocument;t.unDocMouseMove&&t.unDocMouseMove();s(t.chart.container,"mouseleave",t.onContainerMouseLeave);n.chartCount||(s(i,"mouseup",t.onDocumentMouseUp),n.hasTouch&&s(i,"touchend",t.onDocumentTouchEnd));clearInterval(t.tooltipTimeout);n.objectEach(t,function(n,i){t[i]=null})}}}(t),function(n){var i=n.charts,r=n.each,u=n.extend,f=n.map,e=n.noop,t=n.pick;u(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 a=this.chart,c=n?"x":"y",k=n?"X":"Y",v="chart"+k,it=n?"width":"height",d=a["plot"+(n?"Left":"Top")],l,g,s=o||1,nt=a.inverted,y=a.bounds[n?"h":"v"],p=1===t.length,w=t[0][v],h=i[0][v],rt=!p&&t[1][v],b=!p&&i[1][v],tt;i=function(){!p&&20<Math.abs(w-rt)&&(s=o||Math.abs(h-b)/Math.abs(w-rt));g=(d-h)/s+w;l=a["plot"+(n?"Width":"Height")]/s};i();t=g;t<y.min?(t=y.min,tt=!0):t+l>y.max&&(t=y.max-l,tt=!0);tt?(h-=.8*(h-e[c][0]),p||(b-=.8*(b-e[c][1])),i()):e[c]=[h,b];nt||(f[c]=g-d,f[it]=l);f=nt?1/s:s;u[it]=l;u[c]=t;r[nt?n?"scaleY":"scaleX":"scale"+k]=s;r["translate"+k]=f*d+(h-f*w)},pinch:function(n){var i=this,s=i.chart,o=i.pinchDown,h=n.touches,c=h.length,l=i.lastValidTouch,v=i.hasZoom,a=i.selectionMarker,y={},w=1===c&&(i.inClass(n.target,"highcharts-tracker")&&s.runTrackerClick||i.runChartClick),p={};1<c&&(i.initiated=!0);v&&i.initiated&&!w&&n.preventDefault();f(h,function(n){return i.normalize(n)});"touchstart"===n.type?(r(h,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],r(s.axes,function(n){if(n.zoomEnabled){var i=s.bounds[n.horiz?"h":"v"],r=n.minPixelPadding,u=n.toPixels(t(n.options.min,n.dataMin)),f=n.toPixels(t(n.options.max,n.dataMax)),e=Math.max(u,f);i.min=Math.min(n.pos,Math.min(u,f)-r);i.max=Math.max(n.pos+n.len,e+r)}}),i.res=!0):i.followTouchMove&&1===c?this.runPointActions(i.normalize(n)):o.length&&(a||(i.selectionMarker=a=u({destroy:e,touch:!0},s.plotBox)),i.pinchTranslate(o,h,y,a,p,l),i.hasPinched=v,i.scaleGroups(y,p),i.res&&(i.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){i[n.hoverChartIndex]&&i[n.hoverChartIndex].pointer.drop(t)}})}(t),function(n){var s=n.addEvent,o=n.charts,h=n.css,c=n.doc,l=n.extend,a=n.noop,i=n.Pointer,v=n.removeEvent,r=n.win,u=n.wrap;if(!n.hasTouch&&(r.PointerEvent||r.MSPointerEvent)){var t={},f=!!r.PointerEvent,y=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:a,touches:y()}))};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,f?"pointerdown":"MSPointerDown",this.onContainerPointerDown);n(this.chart.container,f?"pointermove":"MSPointerMove",this.onContainerPointerMove);n(c,f?"pointerup":"MSPointerUp",this.onDocumentPointerUp)}});u(i.prototype,"init",function(n,t,i){n.call(this,t,i);this.hasZoom&&h(t.container,{"-ms-touch-action":"none","touch-action":"none"})});u(i.prototype,"setDOMEvents",function(n){n.apply(this);(this.hasZoom||this.followTouchMove)&&this.batchMSEvents(s)});u(i.prototype,"destroy",function(n){this.batchMSEvents(v);n.call(this)})}}(t),function(n){var e=n.addEvent,o=n.css,s=n.discardElement,u=n.defined,t=n.each,h=n.isFirefox,f=n.marginNames,r=n.merge,i=n.pick,c=n.setAnimation,l=n.stableSort,a=n.win,v=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(),e(this.chart,"endResize",function(){this.legend.positionCheckboxes()}))},setOptions:function(n){var t=i(n.padding,8);this.options=n;this.itemMarginTop=n.itemMarginTop||0;this.padding=t;this.initialItemY=t-5;this.itemHeight=this.maxItemWidth=0;this.symbolWidth=i(n.symbolWidth,16);this.pages=[]},update:function(n,t){var u=this.chart;this.setOptions(r(!0,this.options,n));this.destroy();u.isDirtyLegend=u.isDirtyBox=!0;i(t,!0)&&u.redraw()},colorizeItem:function(n,t){n.legendGroup[t?"removeClass":"addClass"]("highcharts-legend-item-hidden")},positionItem:function(n){var i=this.options,f=i.symbolPadding,i=!i.rtl,t=n._legendItemPos,r=t[0],t=t[1],u=n.checkbox;(n=n.legendGroup)&&n.element&&n.translate(i?r:this.legendWidth-r-2*f-4,t);u&&(u.x=r,u.y=t)},destroyItem:function(n){var i=n.checkbox;t(["legendItem","legendLine","legendSymbol","legendGroup"],function(t){n[t]&&(n[t]=n[t].destroy())});i&&s(n.checkbox)},destroy:function(){function n(n){this[n]&&(this[n]=this[n].destroy())}t(this.getAllItems(),function(i){t(["legendItem","legendGroup"],n,i)});t("clipRect up down pager nav box title group".split(" "),n,this);this.display=null},positionCheckboxes:function(n){var r=this.group&&this.group.alignAttr,i,u=this.clipHeight||this.legendHeight,f=this.titleHeight;r&&(i=r.translateY,t(this.allItems,function(t){var e=t.checkbox,s;e&&(s=i+f+e.y+(n||0)+3,o(e,{left:r.translateX+t.checkboxOffset+e.x-20+"px",top:s+"px",display:s>i-6&&s<i+u-6?"":"none"}))}))},renderTitle:function(){var n=this.options,i=this.padding,r=n.title,t=0;r.text&&(this.title||(this.title=this.chart.renderer.label(r.text,i-3,i-4,null,null,null,n.useHTML,null,"legend-title").attr({zIndex:1}).add(this.group)),n=this.title.getBBox(),t=n.height,this.offsetWidth=n.width,this.contentGroup.attr({translateY:t}));this.titleHeight=t},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 c=this.chart,r=c.renderer,t=this.options,s="horizontal"===t.layout,u=this.symbolWidth,l=t.symbolPadding,e=this.padding,y=s?i(t.itemDistance,20):0,p=!t.rtl,w=t.width,a=t.itemMarginBottom||0,h=this.itemMarginTop,f=n.legendItem,b=!n.series,v=!b&&n.series.drawLegendSymbol?n.series:n,o=v.options,k=this.createCheckboxForItem&&o&&o.showCheckbox,o=u+l+y+(k?20:0),d=t.useHTML,g=n.options.className;f||(n.legendGroup=r.g("legend-item").addClass("highcharts-"+v.type+"-series highcharts-color-"+n.colorIndex+(g?" "+g:"")+(b?" highcharts-series-"+n.index:"")).attr({zIndex:1}).add(this.scrollGroup),n.legendItem=f=r.text("",p?u+l:-l,this.baseline||0,d).attr({align:p?"left":"right",zIndex:2}).add(n.legendGroup),this.baseline||(this.fontMetrics=r.fontMetrics(12,f),this.baseline=this.fontMetrics.f+3+h,f.attr("y",this.baseline)),this.symbolHeight=t.symbolHeight||this.fontMetrics.f,v.drawLegendSymbol(this,n),this.setItemEvents&&this.setItemEvents(n,f,d),k&&this.createCheckboxForItem(n));this.colorizeItem(n,n.visible);f.css({width:(t.itemWidth||t.width||c.spacingBox.width)-o});this.setText(n);r=f.getBBox();u=n.checkboxOffset=t.itemWidth||n.legendItemWidth||r.width+o;this.itemHeight=r=Math.round(n.legendItemHeight||r.height||this.symbolHeight);s&&this.itemX-e+u>(w||c.spacingBox.width-2*e-t.x)&&(this.itemX=e,this.itemY+=h+this.lastLineHeight+a,this.lastLineHeight=0);this.maxItemWidth=Math.max(this.maxItemWidth,u);this.lastItemY=h+this.itemY+a;this.lastLineHeight=Math.max(r,this.lastLineHeight);n._legendItemPos=[this.itemX,this.itemY];s?this.itemX+=u:(this.itemY+=h+r+a,this.lastLineHeight=r);this.offsetWidth=w||Math.max((s?this.itemX-e-(n.checkbox?0:y):u)+e,this.offsetWidth)},getAllItems:function(){var n=[];return t(this.chart.series,function(t){var r=t&&t.options;t&&i(r.showInLegend,u(r.linkedTo)?!1:void 0,!0)&&(n=n.concat(t.legendItems||("point"===r.legendType?t.data:t)))}),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||t([/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/],function(t,h){t.test(s)&&!u(n[h])&&(o[f[h]]=Math.max(o[f[h]],o.legend[(h+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][h]*e[h%2?"x":"y"]+i(e.margin,12)+r[h]))})},render:function(){var n=this,v=n.chart,s=v.renderer,e=n.group,f,c,o,i,u=n.box,h=n.options,a=n.padding;n.itemX=a;n.itemY=n.initialItemY;n.offsetWidth=0;n.lastItemY=0;e||(n.group=e=s.g("legend").attr({zIndex:7}).add(),n.contentGroup=s.g().attr({zIndex:1}).add(e),n.scrollGroup=s.g().add(n.contentGroup));n.renderTitle();f=n.getAllItems();l(f,function(n,t){return(n.options&&n.options.legendIndex||0)-(t.options&&t.options.legendIndex||0)});h.reversed&&f.reverse();n.allItems=f;n.display=c=!!f.length;n.lastLineHeight=0;t(f,function(t){n.renderItem(t)});o=(h.width||n.offsetWidth)+a;i=n.lastItemY+n.lastLineHeight+n.titleHeight;i=n.handleOverflow(i);i+=a;u||(n.box=u=s.rect().addClass("highcharts-legend-box").attr({r:h.borderRadius}).add(e),u.isNew=!0);0<o&&0<i&&(u[u.isNew?"attr":"animate"](u.crisp.call({},{x:0,y:0,width:o,height:i},u.strokeWidth())),u.isNew=!1);u[c?"show":"hide"]();"none"===e.getStyle("display")&&(o=i=0);n.legendWidth=o;n.legendHeight=i;t(f,function(t){n.positionItem(t)});c&&e.align(r(h,{width:o,height:i}),!0,"spacingBox");v.isResizing||this.positionCheckboxes()},handleOverflow:function(n){var r=this,u=this.chart,h=u.renderer,f=this.options,c=f.y,l=this.padding,u=u.spacingBox.height+("top"===f.verticalAlign?-c:c)-l,c=f.maxHeight,a,s=this.clipRect,p=f.navigation,w=i(p.animation,!0),v=p.arrowSize||12,e=this.nav,o=this.pages,y,b=this.allItems,k=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("+l+"px,9999px,"+(l+n)+"px,0)":"auto")};return"horizontal"!==f.layout||"middle"===f.verticalAlign||f.floating||(u/=2),c&&(u=Math.min(u,c)),o.length=0,n>u&&!1!==p.enabled?(this.clipHeight=a=Math.max(u-20-this.titleHeight-l,0),this.currentPage=i(this.currentPage,1),this.fullHeight=n,t(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]>a&&(y||i)!==o[r-1])&&(o.push(y||i),r++);t===b.length-1&&i+n-o[r-1]>a&&o.push(i);i!==y&&(y=i)}),s||(s=r.clipRect=h.clipRect(0,l,9999,0),r.contentGroup.clip(s)),k(a),e||(this.nav=e=h.g().attr({zIndex:1}).add(this.group),this.up=h.symbol("triangle",0,0,v,v).on("click",function(){r.scroll(-1,w)}).add(e),this.pager=h.text("",15,10).addClass("highcharts-legend-navigation").add(e),this.down=h.symbol("triangle-down",0,0,v,v).on("click",function(){r.scroll(1,w)}).add(e)),r.scroll(0),n=u):e&&(k(),this.nav=e.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),n},scroll:function(n,t){var r=this.pages,i=r.length;n=this.currentPage+n;var u=this.clipHeight,f=this.pager,e=this.padding;n>i&&(n=i);0<n&&(void 0!==t&&c(t,this.chart),this.nav.attr({translateX:e,translateY:u+this.padding+7+this.titleHeight,visibility:"visible"}),this.up.attr({"class":1===n?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"}),f.attr({text:n+"/"+i}),this.down.attr({x:18+this.pager.getBBox().width,"class":n===i?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"}),t=-r[n-1]+this.initialItemY,this.scrollGroup.animate({translateY:t}),this.currentPage=n,this.positionCheckboxes(t))}};n.LegendSymbolMixin={drawRectangle:function(n,t){var r=n.symbolHeight,u=n.options.squareSymbol;t.legendSymbol=this.chart.renderer.rect(u?(n.symbolWidth-r)/2:0,n.baseline-r+1,u?r:n.symbolWidth,r,i(n.options.symbolRadius,r/2)).addClass("highcharts-point").attr({zIndex:3}).add(t.legendGroup)},drawLineMarker:function(n){var u=this.options.marker,t,s=n.symbolWidth,f=n.symbolHeight,e,o;t=f/2;e=this.chart.renderer;o=this.legendGroup;n=n.baseline-Math.round(.3*n.fontMetrics.b);this.legendLine=e.path(["M",0,n,"L",s,n]).addClass("highcharts-graph").attr({}).add(o);u&&!1!==u.enabled&&(t=Math.min(i(u.radius,t),t),0===this.symbol.indexOf("url")&&(u=r(u,{width:f,height:f}),t=0),this.legendSymbol=u=e.symbol(this.symbol,s/2-t,n-t,2*t,2*t,u).addClass("highcharts-point").add(o),u.isMarker=!0)}};(/Trident\/7\.0/.test(a.navigator.userAgent)||h)&&v(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 c=n.addEvent,rt=n.animObject,p=n.attr,r=n.doc,ut=n.Axis,ft=n.createElement,et=n.defaultOptions,ot=n.discardElement,u=n.charts,f=n.defined,t=n.each,s=n.extend,l=n.find,i=n.fireEvent,w=n.grep,st=n.isNumber,ht=n.isObject,a=n.isString,ct=n.Legend,b=n.marginNames,o=n.merge,k=n.objectEach,d=n.Pointer,h=n.pick,v=n.pInt,g=n.removeEvent,y=n.seriesTypes,nt=n.splat,lt=n.svg,tt=n.syncTimeout,e=n.win,it=n.Chart=function(){this.getArgs.apply(this,arguments)};n.chart=function(n,t,i){return new it(n,t,i)};s(it.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 f,e,h=t.series,s=t.plotOptions||{},r;t.series=null;f=o(et,t);for(e in f.plotOptions)f.plotOptions[e].tooltip=s[e]&&o(s[e].tooltip)||void 0;f.tooltip.userOptions=t.chart&&t.chart.forExport&&t.tooltip.userOptions||t.tooltip;f.series=t.series=h;this.userOptions=t;t=f.chart;e=t.events;this.margin=[];this.spacing=[];this.bounds={h:{},v:{}};this.labelCollectors=[];this.callback=i;this.isResizing=0;this.options=f;this.axes=[];this.series=[];this.hasCartesianSeries=t.showAxes;r=this;r.index=u.length;u.push(r);n.chartCount++;e&&k(e,function(n,t){c(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=y[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 o=this.axes,u=this.series,c=this.pointer,l=this.legend,a=this.isDirtyLegend,h,v,y=this.hasCartesianSeries,e=this.isDirtyBox,f,p=this.renderer,w=p.isHidden(),b=[];for(this.setResponsive&&this.setResponsive(!1),n.setAnimation(r,this),w&&this.temporaryDisplay(),this.layOutTitles(),r=u.length;r--;)if(f=u[r],f.options.stacking&&(h=!0,f.isDirty)){v=!0;break}if(v)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(),a=!0);n.isDirtyData&&i(n,"updatedData")});a&&l.options.enabled&&(l.render(),this.isDirtyLegend=!1);h&&this.getStacks();y&&t(o,function(n){n.updateNames();n.setScale()});this.getMargins();y&&(t(o,function(n){n.isDirty&&(e=!0)}),t(o,function(n){var t=n.min+","+n.max;n.extKey!==t&&(n.extKey=t,b.push(function(){i(n,"afterSetExtremes",s(n.eventArgs,n.getExtremes()));delete n.eventArgs}));(e||h)&&n.redraw()}));e&&this.drawChartBox();i(this,"predraw");t(u,function(n){(e||n.isDirty)&&n.visible&&n.redraw();n.isDirtyData=!1});c&&c.reset(!0);p.draw();i(this,"redraw");i(this,"render");w&&this.temporaryDisplay(!0);t(b,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,t=l(this.axes,r)||l(this.series,r),i=0;!t&&i<u.length;i++)t=l(u[i].points||[],r);return t},getAxes:function(){var r=this,n=this.options,i=n.xAxis=nt(n.xAxis||{}),n=n.yAxis=nt(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 ut(r,n)})},getSelectedPoints:function(){var n=[];return t(this.series,function(t){n=n.concat(w(t.data||[],function(n){return n.selected}))}),n},getSelectedSeries:function(){return w(this.series,function(n){return n.selected})},setTitle:function(n,i,r){var u=this,f=u.options,e;e=f.title=o(f.title,n);f=f.subtitle=o(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.layOutTitles(r)},layOutTitles:function(n){var i=0,r,u=this.renderer,f=this.spacingBox;t(["title","subtitle"],function(n){var r=this[n],t=this.options[n],e;n="title"===n?-3:t.verticalAlign?0:i+2;r&&(e=u.fontMetrics(e,r).b,r.css({width:(t.width||f.width+t.widthAdjust)+"px"}).align(s({y:n+e},t),!1,"spacingBox"),t.floating||t.verticalAlign||(i=Math.ceil(i+r.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,i=t.width,t=t.height,r=this.renderTo;f(i)||(this.containerWidth=n.getStyle(r,"width"));f(t)||(this.containerHeight=n.getStyle(r,"height"));this.chartWidth=Math.max(0,i||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,f=this.options,e=f.chart,i,o,s,h;t=this.renderTo;s=n.uniqueKey();t||(this.renderTo=t=e.renderTo);a(t)&&(this.renderTo=t=r.getElementById(t));t||n.error(13,!0);i=v(p(t,"data-highcharts-chart"));st(i)&&u[i]&&u[i].hasRendered&&u[i].destroy();p(t,"data-highcharts-chart",this.index);t.innerHTML="";e.skipClone||t.offsetWidth||this.temporaryDisplay();this.getChartSize();i=this.chartWidth;o=this.chartHeight;this.container=t=ft("div",{id:s},void 0,t);this._cursor=t.style.cursor;this.renderer=new(n[e.renderer]||n.Renderer)(t,i,o,null,e.forExport,f.exporting&&f.exporting.allowHTML);this.setClassName(e.className);for(h in f.defs)this.renderer.definition(f.defs[h]);this.renderer.chartIndex=this.index},getMargins:function(n){var t=this.spacing,i=this.margin,r=this.titleOffset;this.resetMargins();r&&!f(i[0])&&(this.plotTop=Math.max(this.plotTop,r+this.options.title.margin+t[0]));this.legend&&this.legend.display&&this.legend.adjustMargins(i,t);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,i=n.axisOffset=[0,0,0,0],r=n.margin;n.hasCartesianSeries&&t(n.axes,function(n){n.visible&&n.getOffset()});t(b,function(t,u){f(r[u])||(n[t]+=i[u])});n.setChartSize()},reflow:function(t){var i=this,u=i.options.chart,o=i.renderTo,h=f(u.width)&&f(u.height),s=u.width||n.getStyle(o,"width"),u=u.height||n.getStyle(o,"height"),o=t?t.target:e;!h&&!i.isPrinting&&s&&u&&(o===e||o===r)&&((s!==i.containerWidth||u!==i.containerHeight)&&(clearTimeout(i.reflowTimeout),i.reflowTimeout=tt(function(){i.container&&i.setSize(void 0,void 0,!1)},t?100:0)),i.containerWidth=s,i.containerHeight=u)},initReflow:function(){var n=this,t;t=c(e,"resize",function(t){n.reflow(t)});c(n,"destroy",t)},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();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");tt(function(){e&&i(e,"endResize",null,function(){--e.isResizing})},rt(void 0).duration)},setChartSize:function(n){var u=this.inverted,f=this.renderer,i=this.chartWidth,l=this.chartHeight,a=this.options.chart,r=this.spacing,e=this.clipOffset,h,c,o,s;this.plotLeft=h=Math.round(this.plotLeft);this.plotTop=c=Math.round(this.plotTop);this.plotWidth=o=Math.max(0,Math.round(i-h-this.marginRight));this.plotHeight=s=Math.max(0,Math.round(l-c-this.marginBottom));this.plotSizeX=u?s:o;this.plotSizeY=u?o:s;this.plotBorderWidth=a.plotBorderWidth||0;this.spacingBox=f.spacingBox={x:r[3],y:r[0],width:i-r[3]-r[1],height:l-r[0]-r[2]};this.plotBox=f.plotBox={x:h,y:c,width:o,height:s};i=2*Math.floor(this.plotBorderWidth/2);u=Math.ceil(Math.max(i,e[3])/2);f=Math.ceil(Math.max(i,e[0])/2);this.clipBox={x:u,y:f,width:Math.floor(this.plotSizeX-Math.max(i,e[1])/2-u),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(i,e[2])/2-f))};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(b,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 h=this.options.chart,r=this.renderer,c=this.chartWidth,l=this.chartHeight,u=this.chartBackground,f=this.plotBackground,t=this.plotBorder,e,i,a=this.plotLeft,v=this.plotTop,y=this.plotWidth,p=this.plotHeight,w=this.plotBox,s=this.clipRect,o=this.clipBox,n="animate";u||(this.chartBackground=u=r.rect().addClass("highcharts-background").add(),n="attr");e=i=u.strokeWidth();u[n]({x:i/2,y:i/2,width:c-i-e%2,height:l-i-e%2,r:h.borderRadius});n="animate";f||(n="attr",this.plotBackground=f=r.rect().addClass("highcharts-plot-background").add());f[n](w);s?s.animate({width:o.width,height:o.height}):this.clipRect=r.clipRect(o);n="animate";t||(n="attr",this.plotBorder=t=r.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add());t[n](t.crisp({x:a,y:v,width:y,height:p},-t.strokeWidth()));this.isDirtyBox=!1},propFromSeries:function(){var r=this,u=r.options.chart,n,f=r.options.series,e,i;t(["inverted","angular","polar"],function(t){for(n=y[u.type||u.defaultSeriesType],i=u[t]||n&&n.prototype[t],e=f&&f.length;!i&&e--;)(n=y[f[e].type])&&n.prototype[t]&&(i=!0);r[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),u=v(r.left)+n.plotLeft,f=v(r.top)+n.plotTop+12;delete r.left;delete r.top;n.renderer.text(t.html,u,f).attr({zIndex:2}).css(r).add()})},render:function(){var n=this.axes,e=this.renderer,i=this.options,f,r,u;this.setTitle();this.legend=new ct(this,i.legend);this.getStacks&&this.getStacks();this.getMargins(!0);this.setChartSize();i=this.plotWidth;f=this.plotHeight-=21;t(n,function(n){n.setScale()});this.getAxisMargins();r=1.1<i/this.plotWidth;u=1.05<f/this.plotHeight;(r||u)&&(t(n,function(n){(n.horiz&&r||!n.horiz&&u)&&n.setTickInterval(!0)}),this.getMargins());this.drawChartBox();this.hasCartesianSeries&&t(n,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}).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,f,h=e&&e.parentNode;for(i(r,"destroy"),r.renderer.forExport?n.erase(u,r):u[r.index]=void 0,n.chartCount--,r.renderTo.removeAttribute("data-highcharts-chart"),g(r),f=o.length;f--;)o[f]=o[f].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),f=s.length;f--;)s[f]=s[f].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="",g(e),h&&ot(e));k(r,function(n,t){delete r[t]})},isReadyToRender:function(){var n=this;return lt||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"),d&&(n.pointer=new d(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");f(this.index)&&!1!==this.options.chart.reflow&&this.initReflow();this.onload=null}})}(t),function(n){var i,f=n.each,r=n.extend,e=n.erase,o=n.fireEvent,s=n.format,h=n.isArray,u=n.isNumber,t=n.pick,c=n.removeEvent;n.Point=i=function(){};n.Point.prototype={init:function(n,i,r){var u=n.chart.options.chart.colorCount;return this.series=n,this.applyOptions(i,r),n.options.colorByPoint?(i=n.colorCounter,n.colorCounter++,n.colorCounter===u&&(n.colorCounter=0)):i=n.colorIndex,this.colorIndex=t(this.colorIndex,i),n.chart.pointCount++,this},applyOptions:function(n,f){var e=this.series,o=e.options.pointValKey||e.pointValKey;return n=i.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||!u(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 i={},t=this.series,f=t.options.keys,e=f||t.pointArrayMap||["y"],s=e.length,r=0,o=0;if(u(n)||null===n)i[e[0]]=n;else if(h(n))for(!f&&n.length>s&&(t=typeof n[0],"string"===t?i.name=n[0]:"number"===t&&(i.x=n[0]),r++);o<s;)f&&void 0===n[r]||(i[e[o]]=n[r]),r++,o++;else"object"==typeof n&&(i=n,n.dataLabels&&(t._hasPointLabels=!0),n.marker&&(t._hasPointMarkers=!0));return i},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(),e(t,this),t.length||(n.hoverPoints=null));this===n.hoverPoint&&this.onMouseOut();(this.graphic||this.dataLabel)&&(c(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 r=this.series,i=r.tooltipOptions,o=t(i.valueDecimals,""),u=i.valuePrefix||"",e=i.valueSuffix||"";return f(r.pointArrayMap||["y"],function(t){t="{point."+t;(u||e)&&(n=n.replace(t+"}",u+t+"}"+e));n=n.replace(t+"}",t+":,."+o+"f}")}),s(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)});o(this,n,t,i)},visible:!0}}(t),function(n){var o=n.addEvent,h=n.animObject,w=n.arrayMax,b=n.arrayMin,c=n.correctFloat,u=n.Date,e=n.defaultOptions,r=n.defined,i=n.each,l=n.erase,k=n.extend,a=n.fireEvent,d=n.grep,v=n.isArray,f=n.isNumber,g=n.isString,y=n.merge,s=n.objectEach,t=n.pick,nt=n.removeEvent,tt=n.splat,it=n.SVGElement,p=n.syncTimeout,rt=n.win;n.Series=n.seriesType("line",null,{allowPointSelect:!1,showCheckbox:!1,animation:{duration:1e3},events:{},marker:{radius:4,states:{hover:{animation:{duration:50},enabled:!0,radiusPlus:2}}},point:{events:{}},dataLabels:{align:"center",formatter:function(){return null===this.y?"":n.numberFormat(this.y,-1)},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}},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,f,e=n.series,h;u.chart=n;u.options=r=u.setOptions(r);u.linkedSeries=[];u.bindAxes();k(u,{name:r.name,state:"",visible:!1!==r.visible,selected:!0===r.selected});f=r.events;s(f,function(n,t){o(u,t,n)});(f&&f.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);e.length&&(h=e[e.length-1]);u._i=t(h&&h._i,-1)+1;n.orderSeries(this.insert(e))},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,r=t.options,f=t.chart,u;i(t.axisTypes||[],function(e){i(f[e],function(n){u=n.options;(r[e]===u.index||void 0!==r[e]&&r[e]===u.id||void 0===r[e]&&0===u.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,u=arguments,e=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(u,2))};i(r.parallelArrays,e)},autoIncrement:function(){var n=this.options,i=this.xIncrement,r,f=n.pointIntervalUnit,i=t(i,n.pointStart,0);return this.pointInterval=r=t(this.pointInterval,n.pointInterval,1),f&&(n=new u(i),"day"===f?n=+n[u.hcSetDate](n[u.hcGetDate]()+r):"month"===f?n=+n[u.hcSetMonth](n[u.hcGetMonth]()+r):"year"===f&&(n=+n[u.hcSetFullYear](n[u.hcGetFullYear]()+r)),r=n-i),this.xIncrement=i+r,i},setOptions:function(n){var i=this.chart,o=i.options,u=o.plotOptions,f=(i.userOptions||{}).plotOptions||{},s=u[this.type];return this.userOptions=n,i=y(s,u.series,n),this.tooltipOptions=y(e.tooltip,e.plotOptions.series&&e.plotOptions.series.tooltip,e.plotOptions[this.type].tooltip,o.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===s.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"}),n.length&&r(n[n.length-1].value)&&n.push({}),i},getCyclic:function(n,i,u){var f,e=this.chart,s=this.userOptions,o=n+"Index",h=n+"Counter",c=u?u.length:t(e.options.chart[n+"Count"],e[n+"Count"]);i||(f=t(s[o],s["_"+o]),r(f)||(e.series.length||(e[h]=0),s["_"+o]=f=e[h]%c,e[h]+=1),u&&(i=u[f]));void 0!==f&&(this[o]=f);this[n]=i},getColor:function(){this.getCyclic("color")},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,l=s.points,b=l&&l.length||0,c,y=s.options,k=s.chart,h=null,p=s.xAxis,d=y.turboThreshold,w=this.xData,a=this.yData,nt=(c=s.pointArrayMap)&&c.length;if(r=r||[],c=r.length,u=t(u,!0),!1!==o&&c&&b===c&&!s.cropped&&!s.hasGroupedData&&s.visible)i(r,function(n,t){l[t].update&&n!==y.data[t]&&l[t].update(n,!1,null,!1)});else{if(s.xIncrement=null,s.colorCounter=0,i(this.parallelArrays,function(n){s[n+"Data"].length=0}),d&&c>d){for(e=0;null===h&&e<c;)h=r[e],e++;if(f(h))for(e=0;e<c;e++)w[e]=this.autoIncrement(),a[e]=r[e];else if(v(h))if(nt)for(e=0;e<c;e++)h=r[e],w[e]=h[0],a[e]=h.slice(1,nt+1);else for(e=0;e<c;e++)h=r[e],w[e]=h[0],a[e]=h[1];else n.error(12)}else for(e=0;e<c;e++)void 0!==r[e]&&(h={series:s},s.pointClass.prototype.applyOptions.apply(h,[r[e]]),s.updateParallelArrays(h,e));for(a&&g(a[0])&&n.error(14,!0),s.data=[],s.options.data=s.userOptions.data=r,e=b;e--;)l[e]&&l[e].destroy&&l[e].destroy();p&&(p.minRange=p.userMinRange);s.isDirty=k.isDirtyBox=!0;s.isDirtyData=!!l;e=!1}"point"===y.legendType&&(this.processData(),this.generatePoints());u&&k.redraw(e)},processData:function(t){var i=this.xData,l=this.yData,u=i.length,e,a,s,f,r,o;e=0;f=this.xAxis;o=this.options;r=o.cropThreshold;var y=this.getExtremesFromAll||o.getExtremesFromAll,v=this.isCartesian,o=f&&f.val2lin,p=f&&f.isLog,h,c;if(v&&!this.isDirty&&!f.isDirty&&!this.yAxis.isDirty&&!t)return!1;for(f&&(t=f.getExtremes(),h=t.min,c=t.max),v&&this.sorted&&!y&&(!r||u>r||this.forceCrop)&&(i[u-1]<h||i[0]>c?(i=[],l=[]):(i[0]<h||i[u-1]>c)&&(e=this.cropData(this.xData,this.yData,h,c),i=e.xData,l=e.yData,e=e.start,a=!0)),r=i.length||1;--r;)u=p?o(i[r])-o(i[r-1]):i[r]-i[r-1],0<u&&(void 0===s||u<s)?s=u:0>u&&this.requireSorting&&n.error(15);this.cropped=a;this.cropStart=e;this.processedXData=i;this.processedYData=l;this.closestPointRange=s},cropData:function(n,i,r,u){for(var s=n.length,e=0,o=s,h=t(this.cropShoulder,1),f=0;f<s;f++)if(n[f]>=r){e=Math.max(0,f-h);break}for(r=f;r<s;r++)if(n[r]>u){o=r+h;break}return{xData:n.slice(e,o),yData:i.slice(e,o),start:e,end:o}},generatePoints:function(){var u=this.options,e=u.data,t=this.data,h,o=this.processedXData,v=this.processedYData,c=this.pointClass,s=o.length,l=this.cropStart||0,r,f=this.hasGroupedData,u=u.keys,i,a=[],n;for(t||f||(t=[],t.length=e.length,t=this.data=t),u&&f&&(this.options.keys=!1),n=0;n<s;n++)r=l+n,f?(i=(new c).init(this,[o[n]].concat(tt(v[n]))),i.dataGroup=this.groupMap[n]):(i=t[r])||void 0===e[r]||(t[r]=i=(new c).init(this,e[r],o[n])),i&&(i.index=r,a[n]=i);if(this.options.keys=u,t&&(s!==(h=t.length)||f))for(n=0;n<h;n++)n!==l||f||(n+=s),t[n]&&(t[n].destroyElements(),t[n].plotX=void 0);this.data=t;this.points=a},getExtremes:function(n){var a=this.yAxis,s=this.processedXData,u,o=[],h=0,c,l,r,e,t,i;for(u=this.xAxis.getExtremes(),c=u.min,l=u.max,n=n||this.stackedYData||this.processedYData||[],u=n.length,i=0;i<u;i++)if(e=s[i],t=n[i],r=(f(t,!0)||v(t))&&(!a.positiveValuesOnly||t.length||0<t),e=this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||(s[i+1]||e)>=c&&(s[i-1]||e)<=l,r&&e)if(r=t.length)for(;r--;)null!==t[r]&&(o[h++]=t[r]);else o[h++]=t;this.dataMin=b(o);this.dataMax=w(o)},translate:function(){var y,a;this.processedXData||this.processData();this.generatePoints();var e=this.options,g=e.stacking,v=this.xAxis,b=v.categories,s=this.yAxis,nt=this.points,it=nt.length,rt=!!this.modifyValue,o=e.pointPlacement,ut="between"===o||f(o),p=e.threshold,tt=e.startFromThreshold?p:0,h,u,k,w,d=Number.MAX_VALUE;for("between"===o&&(o=.5),f(o)&&(o*=t(e.pointRange||v.pointRange)),e=0;e<it;e++){var n=nt[e],l=n.x,i=n.y;u=n.low;y=g&&s.stacks[(this.negStacks&&i<(tt?0:p)?"-":"")+this.stackKey];s.positiveValuesOnly&&null!==i&&0>=i&&(n.isNull=!0);n.plotX=h=c(Math.min(Math.max(-1e5,v.translate(l,0,0,0,1,o,"flags"===this.type)),1e5));g&&this.visible&&!n.isNull&&y&&y[l]&&(w=this.getStackIndicator(w,l,this.index),a=y[l],i=a.points[w.key],u=i[0],i=i[1],u===tt&&w.key===y[l].base&&(u=t(p,s.min)),s.positiveValuesOnly&&0>=u&&(u=null),n.total=n.stackTotal=a.total,n.percentage=a.total&&n.y/a.total*100,n.stackY=i,a.setOffset(this.pointXOffset||0,this.barW||0));n.yBottom=r(u)?s.translate(u,0,1,0,1):null;rt&&(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<=h&&h<=v.len;n.clientX=ut?c(v.translate(l,0,0,0,1,o)):h;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(h-k))),k=h);n.zone=this.zones.length&&n.getZone()}this.closestPointRangePx=d},getValidPoints:function(n,t){var i=this.chart;return d(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,s=t.renderer,u=t.inverted,o=this.clipBox,f=o||t.clipBox,i=this.sharedClipKey||["_sharedClip",n&&n.duration,n&&n.easing,f.height,e.xAxis,e.yAxis].join(),r=t[i],h=t[i+"m"];r||(n&&(f.width=0,u&&(f.x=t.plotSizeX),t[i+"m"]=h=s.clipRect(u?t.plotSizeX+99:-99,u?-t.plotLeft:-t.plotTop,99,u?t.chartWidth:t.chartHeight)),t[i]=r=s.clipRect(f),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(h),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=h(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();a(this,"afterAnimate");this.finishedAnimating=!0},drawPoints:function(){var c=this.points,a=this.chart,u,o,n,r,s=this.options.marker,e,l,i,h,v=this[this.specialGroup]||this.markerGroup,y=t(s.enabled,this.xAxis.isRadial?!0:null,this.closestPointRangePx>=2*s.radius);if(!1!==s.enabled||this._hasPointMarkers)for(o=0;o<c.length;o++)n=c[o],u=n.plotY,r=n.graphic,e=n.marker||{},l=!!n.marker,i=y&&void 0===e.enabled||e.enabled,h=n.isInside,i&&f(u)&&null!==n.y?(u=t(e.symbol,this.symbol),n.hasImage=0===u.indexOf("url"),i=this.markerAttribs(n,n.selected&&"select"),r?r[h?"show":"hide"](!0).animate(i):h&&(0<i.width||n.hasImage)&&(n.graphic=r=a.renderer.symbol(u,i.x,i.y,i.width,i.height,l?e:s).add(v)),r&&r.addClass(n.getClassName(),!0)):r&&(n.graphic=r.destroy())},markerAttribs:function(n,i){var r=this.options.marker,f=n.marker||{},u=t(f.radius,r.radius);return i&&(r=r.states[i],i=f.states&&f.states[i],u=t(i&&i.radius,r&&r.radius,u+(r&&r.radiusPlus||0))),n.hasImage&&(u=0),n={x:Math.floor(n.plotX)-u,y:n.plotY-u},u&&(n.width=n.height=2*u),n},destroy:function(){var n=this,r=n.chart,h=/AppleWebKit\/533/.test(rt.navigator.userAgent),e,u,o=n.data||[],f,t;for(a(n,"destroy"),nt(n),i(n.axisTypes||[],function(i){(t=n[i])&&t.series&&(l(t.series,n),t.isDirty=t.forceRedraw=!0)}),n.legendItem&&n.chart.legend.destroyItem(n),u=o.length;u--;)(f=o[u])&&f.destroy&&f.destroy();n.points=null;clearTimeout(n.animationTimeout);s(n,function(n,t){n instanceof it&&!n.survive&&(e=h&&"group"===t?"hide":"destroy",n[e]())});r.hoverSeries===n&&(r.hoverSeries=null);l(r.series,n);r.orderSeries();s(n,function(t,i){delete n[i]})},getGraphPath:function(n,t,u){var e=this,h=e.options,f=h.step,l,s=[],c=[],o;return n=n||e.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&&(o=!0);i.isNull&&!r(t)&&0<l?o=!h.connectNulls:i.isNull&&!t?o=!0:(0===l||o?l=["M",i.plotX,i.plotY]:e.getPointSpline?l=e.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),o=!1)}),s.xMap=c,e.graphPath=s},drawGraph:function(){var t=this,n=(this.gappedPath||this.getGraphPath).call(this),r=[["graph","highcharts-graph"]];i(this.zones,function(n,t){r.push(["zone-graph-"+t,"highcharts-graph highcharts-zone-graph-"+t+" "+(n.className||"")])});i(r,function(i,r){r=i[0];var u=t[r];u?(u.endX=n.xMap,u.animate({d:n})):n.length&&(t[r]=t.chart.renderer.path(n).addClass(i[1]).attr({zIndex:1}).add(t.group));u&&(u.startX=n.xMap,u.isArea=n.isArea)})},applyZones:function(){var w=this,u=this.chart,nt=u.renderer,b=this.zones,f,e,o=this.clips||[],r,c=this.graph,l=this.area,a=Math.max(u.chartWidth,u.chartHeight),n=this[(this.zoneAxis||"y")+"Axis"],s,k,d=u.inverted,h,v,y,p,g=!1;b.length&&(c||l)&&n&&void 0!==n.min&&(k=n.reversed,h=n.horiz,c&&c.hide(),l&&l.hide(),s=n.getExtremes(),i(b,function(i,b){f=k?h?u.plotWidth:0:h?0:n.toPixels(s.min);f=Math.min(Math.max(t(e,f),0),a);e=Math.min(Math.max(Math.round(n.toPixels(t(i.value,s.max),!0)),0),a);g&&(f=e=n.toPixels(s.max));v=Math.abs(f-e);y=Math.min(f,e);p=Math.max(f,e);n.isXAxis?(r={x:d?p:y,y:0,width:v,height:a},h||(r.x=u.plotHeight-r.x)):(r={x:0,y:d?p:y,width:a,height:v},h&&(r.y=u.plotWidth-r.y));o[b]?o[b].animate(r):(o[b]=nt.clipRect(r),c&&w["zone-graph-"+b].clip(o[b]),l&&w["zone-area-"+b].clip(o[b]));g=i.value>s.max}),this.clips=o)},invertGroups:function(n){function r(){i(["group","markerGroup"],function(i){t[i]&&(u.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,u=t.chart,f;t.xAxis&&(f=o(u,"resize",r),o(t,"destroy",f),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,i,r=n.options,u=!!n.animate&&t.renderer.isSVG&&h(r.animation).duration,f=n.visible?"inherit":"hidden",e=r.zIndex,o=n.hasRendered,s=t.seriesGroup,c=t.inverted;i=n.plotGroup("group","series",f,e,s);n.markerGroup=n.plotGroup("markerGroup","markers",f,e,s);u&&n.animate(!0);i.inverted=n.isCartesian?c:!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(c);!1===r.clip||n.sharedClipKey||o||i.clip(t.clipRect);u&&n.animate();o||(n.animationTimeout=p(function(){n.afterAnimate()},u));n.isDirty=!1;n.hasRendered=!0},redraw:function(){var n=this.chart,f=this.isDirty||this.isDirtyData,i=this.group,r=this.xAxis,u=this.yAxis;i&&(n.inverted&&i.attr({width:n.plotWidth,height:n.plotHeight}),i.animate({translateX:t(r&&r.left,n.plotLeft),translateY:t(u&&u.top,n.plotTop)}));this.translate();this.render();f&&delete this.kdTree},kdAxisArray:["clientX","plotY"],searchPoint:function(n,t){var i=this.xAxis,r=this.yAxis,u=this.chart.inverted;return this.searchKDTree({clientX:u?i.len-n.chartY+i.pos:n.chartX-i.pos,plotY:u?r.len-n.chartX+r.pos:n.chartY-r.pos},t)},buildKDTree:function(){function t(i,r,u){var e,f;if(f=i&&i.length)return e=n.kdAxisArray[r%u],i.sort(function(n,t){return n[e]-t[e]}),f=Math.floor(f/2),{point:i[f],left:t(i.slice(0,f),r+1,u),right:t(i.slice(f+1),r+1,u)}}this.buildingKdTree=!0;var n=this,i=-1<n.options.findNearestPointBy.indexOf("y")?2:1;delete n.kdTree;p(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,a=o.kdAxisArray[s%h],c,v,y=l;return v=r(n[u])&&r(l[u])?Math.pow(n[u]-l[u],2):null,c=r(n[f])&&r(l[f])?Math.pow(n[f]-l[f],2):null,c=(v||0)+(c||0),l.dist=r(c)?Math.sqrt(c):Number.MAX_VALUE,l.distX=r(v)?Math.sqrt(v):Number.MAX_VALUE,a=n[a]-l[a],c=0>a?"left":"right",v=0>a?"right":"left",t[c]&&(c=e(n,t[c],s+1,h),y=c[i]<y[i]?c:l),t[v]&&Math.sqrt(a*a)<y[i]&&(n=e(n,t[v],s+1,h),y=n[i]<y[i]?n:y),y}var o=this,u=this.kdAxisArray[0],f=this.kdAxisArray[1],i=t?"distX":"dist";return 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 r=n.Axis,s=n.Chart,u=n.correctFloat,o=n.defined,h=n.destroyObjectProperties,e=n.each,c=n.format,t=n.objectEach,i=n.pick,f=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(){h(this,this.axis)},render:function(n){var t=this.options,i=t.format,i=i?c(i,this):t.formatter.call(this);this.label?this.label.attr({text:i,visibility:"hidden"}):this.label=this.axis.chart.renderer.text(i,null,null,t.useHTML).css(t.style).attr({align:this.textAlign,rotation:t.rotation,visibility:"hidden"}).add(n)},setOffset:function(n,t){var i=this.axis,u=i.chart,r=i.translate(i.usePercentage?100:this.total,0,0,0,1),i=i.translate(0),i=Math.abs(r-i);n=u.xAxis[0].translate(this.x)+n;r=this.getStackBox(u,this,n,r,t,i);(t=this.label)&&(t.align(this.alignOptions,null,r),r=t.alignAttr,t[!1===this.options.crop||u.isInsidePlot(r.x,r.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}}};s.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,""))})};r.prototype.buildStacks=function(){var t=this.series,u=i(this.options.reversedStacks,!0),r=t.length,n;if(!this.isXAxis){for(this.usePercentage=!1,n=r;n--;)t[u?n:r-n-1].setStackedPoints();for(n=0;n<r;n++)t[n].modifyStacks()}};r.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)})})};r.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)})})};r.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})}))};f.prototype.setStackedPoints=function(){if(this.options.stacking&&(!0===this.visible||!1===this.chart.options.chart.ignoreHiddenSeries)){var tt=this.processedXData,b=this.processedYData,k=[],it=b.length,c=this.options,d=c.threshold,y=c.startFromThreshold?d:0,rt=c.stack,c=c.stacking,p=this.stackKey,g="-"+p,nt=this.negStacks,s=this.yAxis,f=s.stacks,w=s.oldStacks,v,e,t,a,l,r,h;for(s.stacksTouched+=1,l=0;l<it;l++)r=tt[l],h=b[l],v=this.getStackIndicator(v,r,this.index),a=v.key,t=(e=nt&&h<(y?0:d))?g:p,f[t]||(f[t]={}),f[t][r]||(w[t]&&w[t][r]?(f[t][r]=w[t][r],f[t][r].total=null):f[t][r]=new n.StackItem(s,s.options.stackLabels,e,r,rt)),t=f[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"===c?(e=e?p:g,nt&&f[e]&&f[e][r]?(e=f[e][r],t.total=e.total=Math.max(e.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[l]=t.cum);"percent"===c&&(s.usePercentage=!0);this.stackedYData=k;s.oldStacks={}}};f.prototype.modifyStacks=function(){var n=this,i=n.stackKey,r=n.yAxis.stacks,u=n.processedXData,t,f=n.options.stacking;n[f+"Stacker"]&&e([i,"-"+i],function(i){for(var o=u.length,e,s;o--;)(e=u[o],t=n.getStackIndicator(t,e,n.index,i),s=(e=r[i]&&r[i][e])&&e.points[t.key])&&n[f+"Stacker"](s,e,o)})};f.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]};f.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 p=n.addEvent,o=n.Axis,s=n.createElement,w=n.css,b=n.defined,i=n.each,h=n.erase,r=n.extend,c=n.fireEvent,f=n.inArray,l=n.isNumber,e=n.isObject,k=n.isArray,u=n.merge,a=n.objectEach,t=n.pick,d=n.Point,g=n.Series,v=n.seriesTypes,nt=n.setAnimation,y=n.splat;r(n.Chart.prototype,{addSeries:function(n,i,r){var f,u=this;return n&&(i=t(i,!0),c(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",s=this.options;return n=u(n,{index:this[e].length,isX:i}),i=new o(this,n),s[e]=y(s[e]||{}),s[e].push(n),t(r,!0)&&this.redraw(f),i},showLoading:function(n){var t=this,u=t.options,i=t.loadingDiv,r=function(){i&&w(i,{left:t.plotLeft+"px",top:t.plotTop+"px",width:t.plotWidth+"px",height:t.plotHeight+"px"})};i||(t.loadingDiv=i=s("div",{className:"highcharts-loading highcharts-loading-hidden"},null,t.container),t.loadingSpan=s("span",{className:"highcharts-loading-inner"},null,i),p(t,"redraw",r));i.className="highcharts-loading";t.loadingSpan.innerHTML=n||u.lang.loading;t.loadingShown=!0;r()},hideLoading:function(){var n=this.loadingDiv;n&&(n.className="highcharts-loading highcharts-loading-hidden");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,e){var o=this,v={credits:"addCredits",title:"setTitle",subtitle:"setSubtitle"},s=n.chart,h,c,p=[];s&&(u(!0,o.options.chart,s),"className"in s&&o.setClassName(s.className),("inverted"in s||"polar"in s)&&(o.propFromSeries(),h=!0),"alignTicks"in s&&(h=!0),a(s,function(n,t){-1!==f("chart."+t,o.propsRequireUpdateSeries)&&(c=!0);-1!==f(t,o.propsRequireDirtyBox)&&(o.isDirtyBox=!0)}));n.plotOptions&&u(!0,this.options.plotOptions,n.plotOptions);a(n,function(n,t){o[t]&&"function"==typeof o[t].update?o[t].update(n,!1):"function"==typeof o[v[t]]&&o[v[t]](n);"chart"!==t&&-1!==f(t,o.propsRequireUpdateSeries)&&(c=!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),e&&(i.touched=!0));!i&&e&&("series"===t?o.addSeries(n,!1).touched=!0:("xAxis"===t||"yAxis"===t)&&(o.addAxis(n,"xAxis"===t,!1).touched=!0))}),e&&i(o[t],function(n){n.touched?delete n.touched:p.push(n)}))});i(p,function(n){n.remove(!1)});h&&i(o.axes,function(n){n.update({},!1)});c&&i(o.series,function(n){n.update({},!1)});n.loading&&u(!0,o.options.loading,n.loading);h=s&&s.width;s=s&&s.height;l(h)&&h!==o.chartWidth||l(s)&&s!==o.chartHeight?o.setSize(h,s):t(r,!0)&&o.redraw()},setSubtitle:function(n){this.setTitle(void 0,n)}});r(d.prototype,{update:function(n,i,r,u){function a(){f.applyOptions(n);null===f.y&&s&&(f.graphic=s.destroy());e(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;o.updateParallelArrays(f,h);l.data[h]=e(l.data[h],!0)||e(n,!0)?f.options:n;o.isDirty=o.isDirtyData=!0;!o.fixedBox&&o.hasCartesianSeries&&(c.isDirtyBox=!0);"point"===l.legendType&&(c.isDirtyLegend=!0);i&&c.redraw(r)}var f=this,o=f.series,s=f.graphic,h,c=o.chart,l=o.options;i=t(i,!0);!1===u?a():f.firePointEvent("update",{options:n},a)},remove:function(n,t){this.series.removePoint(f(this,this.series.data),n,t)}});r(g.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,e=u.data,f=e[n],o=u.points,s=u.chart,h=function(){o&&o.length===e.length&&o.splice(n,1);e.splice(n,1);u.options.data.splice(n,1);u.updateParallelArrays(f||{series:u},"splice",n,1);f&&f.destroy();u.isDirty=!0;u.isDirtyData=!0;i&&s.redraw()};nt(r,s);i=t(i,!0);f?f.firePointEvent("remove",null,h):h()},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?c(f,"remove",null,e):e()},update:function(n,f){var e=this,s=e.chart,l=e.userOptions,h=e.oldType||e.type,c=n.type||l.type||s.options.chart.type,p=v[h].prototype,a,y=["group","markerGroup","dataLabelsGroup"],o=["navigatorSeries","baseSeries"],w=e.finishedAnimating&&{animation:!1};if(Object.keys&&"data"===Object.keys(n).toString())return this.setData(n.data,f);(c&&c!==h||void 0!==n.zIndex)&&(y.length=0);e.options.isInternal&&(o.length=0);o=y.concat(o);i(o,function(n){o[n]=e[n];delete e[n]});n=u(l,w,{index:e.index,pointStart:e.xData[0]},{data:e.options.data},n);e.remove(!1,null,!1);for(a in p)e[a]=void 0;r(e,v[c||h].prototype);i(o,function(n){e[n]=o[n]});e.init(s,n);e.oldType=h;s.linkSeries();t(f,!0)&&s.redraw(!1)}});r(o.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,f=this.series,e=f.length;e--;)f[e]&&f[e].remove(!1);h(r.axes,this);h(r[u],this);k(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 t=n.each,u=n.map,i=n.pick,r=n.Series,f=n.seriesType;f("area","line",{softThreshold:!1,threshold:0},{singleStacks:!1,getStackPoints:function(r){var c=[],o=[],w=this.xAxis,s=this.yAxis,h=s.stacks[this.stackKey],e={},l=this.index,a=s.series,v=a.length,y,p=i(s.options.reversedStacks,!0)?1:-1,f;if(r=r||this.points,this.options.stacking){for(f=0;f<r.length;f++)e[r[f].x]=r[f];n.objectEach(h,function(n,t){null!==n.total&&o.push(t)});o.sort(function(n,t){return n-t});y=u(a,function(){return this.visible});t(o,function(n,i){var r=0,u,a;if(e[n]&&!e[n].isNull)c.push(e[n]),t([-1,1],function(t){var c=1===t?"rightNull":"leftNull",r=0,s=h[o[i+t]];if(s)for(f=l;0<=f&&f<v;)u=s.points[f],u||(f===l?e[n][c]=!0:y[f]&&(a=h[n].points[f])&&(r-=a[1]-a[0])),f+=p;e[n][1===t?"rightCliff":"leftCliff"]=r});else{for(f=l;0<=f&&f<v;){if(u=h[n].points[f]){r=u[1];break}f+=p}r=s.translate(r,0,1,0,1);c.push({isNull:!0,plotX:w.translate(n,0,0,0,1),x:n,plotY:r,yBottom:r})}})}return c},getGraphPath:function(n){var e=r.prototype.getGraphPath,u=this.options,o=u.stacking,s=this.yAxis,t,f,h=[],c=[],p=this.index,l,w=s.stacks[this.stackKey],b=u.threshold,a=s.getThreshold(u.threshold),v,u=u.connectNulls||"percent"===o,y=function(t,i,r){var u=n[t],e,f,v;t=o&&w[u.x].points[p];e=u[r+"Null"]||0;r=u[r+"Cliff"]||0;u=!0;r||e?(f=(e?t[0]:t[1])+r,v=t[0]+r,u=!!e):!o&&n[i]&&n[i].isNull&&(f=v=b);void 0!==f&&(c.push({plotX:l,plotY:null===f?a:s.getThreshold(f),isNull:u,isCliff:!0}),h.push({plotX:l,plotY:null===v?a:s.getThreshold(v),doCurve:!1}))};for(n=n||this.points,o&&(n=this.getStackPoints(n)),t=0;t<n.length;t++)(f=n[t].isNull,l=i(n[t].rectPlotX,n[t].plotX),v=i(n[t].yBottom,a),!f||u)&&(u||y(t,t-1,"left"),f&&!o&&u||(c.push(n[t]),h.push({x:t,plotX:l,plotY:v})),u||y(t,t+1,"right"));return t=e.call(this,c,!0,!0),h.reversed=!0,f=e.call(this,h,!0,!0),f.length&&(f[0]="L"),f=t.concat(f),e=e.call(this,c,!1,u),f.xMap=t.xMap,this.areaPath=f,e},drawGraph:function(){this.areaPath=[];r.prototype.drawGraph.apply(this);var n=this,i=this.areaPath,f=this.options,u=[["area","highcharts-area"]];t(this.zones,function(n,t){u.push(["zone-area-"+t,"highcharts-area highcharts-zone-area-"+t+" "+n.className])});t(u,function(t){var u=t[0],r=n[u];r?(r.endX=i.xMap,r.animate({d:i})):(r=n[u]=n.chart.renderer.path(i).addClass(t[1]).attr({zIndex:0}).add(n.group),r.isArea=!0);r.startX=i.xMap;r.shiftUnit=f.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],c,e,s,f,l;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,l=0,c=(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!==c&&(l=(f-e)*(s-h)/(s-c)+u-f),e+=l,f+=l,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(c,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 u=n.animObject,t=n.each,f=n.extend,e=n.isNumber,o=n.merge,i=n.pick,r=n.Series,s=n.seriesType,h=n.svg;s("column","line",{borderRadius:0,crisp:!0,groupPadding:.2,marker:null,pointPadding:.1,minPointLength:0,cropThreshold:50,pointRange:null,states:{hover:{halo:!1}},dataLabels:{align:null,verticalAlign:null,y:null},softThreshold:!1,startFromThreshold:!0,stickyTracking:!1,tooltip:{distance:6},threshold:0},{cropShoulder:0,directTouch:!0,trackerGroups:["group","dataLabelsGroup"],negStacks:!0,init:function(){r.prototype.init.apply(this,arguments);var n=this,i=n.chart;i.hasRendered&&t(i.series,function(t){t.type===n.type&&(t.isDirty=!0)})},getColumnMetrics:function(){var n=this,r=n.options,u=n.xAxis,c=n.yAxis,l=u.reversed,f,o={},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||c.len!==u.len||c.pos!==u.pos||(r.stacking?(f=t.stackKey,void 0===o[f]&&(o[f]=e++),i=o[f]):!1!==r.grouping&&(i=e++),t.columnIndex=i)});var s=Math.min(Math.abs(u.transA)*(u.ordinalSlope||r.pointRange||u.closestPointRange||u.tickInterval||1),u.len),a=s*r.groupPadding,h=(s-2*a)/(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+(a+((n.columnIndex||0)+(l?1:0))*h-s/2)*(l?-1:1)},n.columnMetrics},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,o=n.chart,s=n.options,h=n.dense=2>n.closestPointRange*n.xAxis.transA,h=n.borderWidth=i(s.borderWidth,h?0:1),u=n.yAxis,e=n.translatedThreshold=u.getThreshold(s.threshold),f=i(s.minPointLength,5),l=n.getColumnMetrics(),a=l.width,c=n.barW=Math.max(a,1+2*h),v=n.pointXOffset=l.offset;o.inverted&&(e-=.5);s.pointPadding&&(c=Math.ceil(c));r.prototype.translate.apply(n);t(n.points,function(t){var l=i(t.yBottom,e),r=999+Math.abs(l),r=Math.min(Math.max(-r,t.plotY),u.len+r),s=t.plotX+v,y=c,p=Math.min(r,l),w,h=Math.max(r,l)-p;f&&Math.abs(h)<f&&(h=f,w=!u.reversed&&!t.negative||u.reversed&&t.negative,0===t.y&&0>=n.dataMax&&(w=!w),p=Math.abs(p-e)>f?l-f:e-(w?f:0));t.barX=s;t.pointWidth=a;t.tooltipPos=o.inverted?[u.len+u.pos-o.plotLeft-r,n.xAxis.len-s-y/2,h]:[s+y/2,r+u.pos-o.plotTop,h];t.shapeType="rect";t.shapeArgs=n.crispCol.apply(n,t.isNull?[s,e,y,0]:[s,p,y,h])})},getSymbol:n.noop,drawLegendSymbol:n.LegendSymbolMixin.drawRectangle,drawGraph:function(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")},drawPoints:function(){var n=this,u=this.chart,i=n.options,f=u.renderer,s=i.animationLimit||250,r;t(n.points,function(t){var h=t.graphic;e(t.plotY)&&null!==t.y?(r=t.shapeArgs,h?h[u.pointCount<s?"animate":"attr"](o(r)):t.graphic=h=f[t.shapeType](r).add(t.group||n.group),i.borderRadius&&h.attr({r:i.borderRadius}),h.addClass(t.getClassName(),!0)):h&&(t.graphic=h.destroy())})},animate:function(n){var t=this,i=this.yAxis,c=t.options,o=this.chart.inverted,r={},s=o?"translateX":"translateY",e;h&&(n?(r.scaleY=.001,n=Math.min(i.pos+i.len,Math.max(i.pos,i.toPixels(c.threshold))),o?r.translateX=n-i.len:r.translateY=n,t.group.attr(r)):(e=t.group.attr(s),t.group.animate({scaleY:1},f(u(t.options.animation),{step:function(n,u){r[s]=e+u.pos*(i.pos-e);t.group.attr(r)}})),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 class="highcharts-color-{point.colorIndex}">●<\/span> <span class="highcharts-header"> {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 t=n.deg2rad,i=n.isNumber,r=n.pick,u=n.relativeLength;n.CenteredSeriesMixin={getCenter:function(){for(var i=this.options,f=this.chart,e=2*(i.slicedOffset||0),s=f.plotWidth-2*e,f=f.plotHeight-2*e,n=i.center,n=[r(n[0],"50%"),r(n[1],"50%"),i.size||"100%",i.innerSize||0],h=Math.min(s,f),o,t=0;4>t;++t)o=n[t],i=2>t||2===t&&/%$/.test(o),n[t]=u(o,[s,f,h,n[2]][t])+(i?e:0);return n[3]>n[2]&&(n[3]=n[2]),n},getStartAndEndRadians:function(n,r){return n=i(n)?n:0,r=i(r)&&r>n&&360>r-n?r:n+360,{start:t*(n+-90),end:t*(r+-90)}}}}(t),function(n){var r=n.addEvent,u=n.CenteredSeriesMixin,o=n.defined,i=n.each,s=n.extend,h=u.getStartAndEndRadians,f=n.inArray,e=n.noop,t=n.pick,c=n.Point,l=n.Series,a=n.seriesType,v=n.setAnimation;a("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}},{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 i=n.graphic,u=n.shapeArgs;i&&(i.attr({r:n.startR||t.center[3]/2,start:r,end:r}),i.animate({r:u.r,start:u.start,end:u.end},t.options.animation))}),t.animate=null)},updateTotals:function(){for(var i=0,r=this.points,u=r.length,n,f=this.options.ignoreHiddenPoint,t=0;t<u;t++)n=r[t],i+=f&&!n.visible?0:n.isNull?0:n.y;for(this.total=i,t=0;t<u;t++)n=r[t],n.percentage=0<i&&(n.visible||!f)?n.y/i*100:0,n.total=i},generatePoints:function(){l.prototype.generatePoints.call(this);this.updateTotals()},translate:function(n){this.generatePoints();var l=0,u=this.options,a=u.slicedOffset,p=a+(u.borderWidth||0),e,f,i,o=h(u.startAngle,u.endAngle),v=this.startAngleRad=o.start,o=(this.endAngleRad=o.end)-v,y=this.points,s,w=u.dataLabels.distance,u=u.ignoreHiddenPoint,c,b=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)},c=0;c<b;c++)r=y[c],r.labelDistance=t(r.options.dataLabels&&r.options.dataLabels.distance,w),this.maxLabelDistance=Math.max(this.maxLabelDistance||0,r.labelDistance),e=v+l*o,(!u||r.visible)&&(l+=r.percentage/100),f=v+l*o,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*f)/1e3},i=(f+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)},f=Math.cos(i)*n[2]/2,s=Math.sin(i)*n[2]/2,r.tooltipPos=[n[0]+.7*f,n[1]+.7*s],r.half=i<-Math.PI/2||i>Math.PI/2?1:0,r.angle=i,e=Math.min(p,r.labelDistance/5),r.labelPos=[n[0]+f+Math.cos(i)*r.labelDistance,n[1]+s+Math.sin(i)*r.labelDistance,n[0]+f+Math.cos(i)*e,n[1]+s+Math.sin(i)*e,n[0]+f,n[1]+s,0>r.labelDistance?"center":r.half?"right":"left",i]},drawGraph:null,drawPoints:function(){var t=this,f=t.chart.renderer,r,n,u;i(t.points,function(i){n=i.graphic;i.isNull?n&&(i.graphic=n.destroy()):(u=i.shapeArgs,r=i.getTranslate(),n?n.setRadialReference(t.center).animate(s(u,r)):(i.graphic=n=f[i.shapeType](u).setRadialReference(t.center).attr(r).add(t.group),i.visible||n.attr({visibility:"hidden"})),n.addClass(i.getClassName()))})},searchPoint:e,sortByAngle:function(n,t){n.sort(function(n,i){return void 0!==n.angle&&(i.angle-n.angle)*t})},drawLegendSymbol:n.LegendSymbolMixin.drawRectangle,getCenter:u.getCenter,getSymbol:e},{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)},r(n,"select",i),r(n,"unselect",i),n},isValid:function(){return n.isNumber(this.y,!0)&&0<=this.y},setVisible:function(n,r){var u=this,e=u.series,o=e.chart,s=e.options.ignoreHiddenPoint;r=t(r,s);n!==u.visible&&(u.visible=u.options.visible=n=void 0===n?!u.visible:n,e.options.data[f(u,e.data)]=u.options,i(["graphic","dataLabel","connector","shadowGroup"],function(t){u[t]&&u[t][n?"show":"hide"](!0)}),u.legendItem&&o.legend.colorizeItem(u,n),n||"hover"!==u.state||u.setState(""),s&&(e.isDirty=!0),r&&o.redraw())},slice:function(n,i,r){var u=this.series;v(r,u.chart);t(i,!0);this.sliced=this.options.sliced=o(n)?n:!this.sliced;u.options.data[f(this,u.data)]=this.options;this.graphic.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 h=n.addEvent,c=n.arrayMax,f=n.defined,i=n.each,o=n.extend,l=n.format,a=n.map,s=n.merge,v=n.noop,t=n.pick,y=n.relativeLength,u=n.Series,r=n.seriesTypes,e=n.stableSort;n.distribute=function(n,t){function s(n,t){return n.target-t.target}for(var u=!0,o=n,h=[],f=0,r=n.length;r--;)f+=n[r].size;if(f>t){for(e(n,function(n,t){return(t.rank||0)-(n.rank||0)}),f=r=0;f<=t;)f+=n[r].size,r++;h=n.splice(r-1,n.length)}for(e(n,s),n=a(n,function(n){return{size:n.size,targets:[n.target]}});u;){for(r=n.length;r--;)u=n[r],f=(Math.min.apply(0,u.targets)+Math.max.apply(0,u.targets))/2,u.pos=Math.min(Math.max(0,f-u.size/2),t-u.size);for(r=n.length,u=!1;r--;)0<r&&n[r-1].pos+n[r-1].size>n[r].pos&&(n[r-1].size+=n[r].size,n[r-1].targets=n[r-1].targets.concat(n[r].targets),n[r-1].pos+n[r-1].size>t&&(n[r-1].pos=t-n[r-1].size),n.splice(r,1),u=!0)}r=0;i(n,function(n){var t=0;i(n.targets,function(){o[r].pos=n.pos+t;t+=o[r].size;r++})});o.push.apply(o,h);e(o,s)};u.prototype.drawDataLabels=function(){var u=this,a=u.options,r=a.dataLabels,w=u.points,c,v,y=u.hasRendered||0,e,o,p=t(r.defer,!!a.animation),b=u.chart.renderer;(r.enabled||u._hasPointLabels)&&(u.dlProcessOptions&&u.dlProcessOptions(r),o=u.plotGroup("dataLabelsGroup","data-labels",p&&!y?"hidden":"visible",r.zIndex||6),p&&(o.attr({opacity:+y}),y||h(u,"afterAnimate",function(){u.visible&&o.show(!0);o[a.animation?"animate":"attr"]({opacity:1},{duration:200})})),v=r,i(w,function(i){var p,h=i.dataLabel,a,y,k=i.connector,d=!h,w;c=i.dlOptions||i.options&&i.options.dataLabels;(p=t(c&&c.enabled,v.enabled)&&!i.isNull)&&(r=s(v,c),a=i.getLabelConfig(),w=r[i.formatPrefix+"Format"]||r.format,e=f(w)?l(w,a):(r[i.formatPrefix+"Formatter"]||r.formatter).call(a,r),a=r.rotation,y={r:r.borderRadius||0,rotation:a,padding:r.padding,zIndex:1},n.objectEach(y,function(n,t){void 0===n&&delete y[t]}));!h||p&&f(e)?p&&f(e)&&(h?y.text=e:(h=i.dataLabel=b[a?"text":"label"](e,0,-9999,r.shape,null,null,r.useHTML,null,"data-label"),h.addClass("highcharts-data-label-color-"+i.colorIndex+" "+(r.className||"")+(r.useHTML?"highcharts-tracker":""))),h.attr(y),h.added||h.add(o),u.alignDataLabel(i,h,r,null,d)):(i.dataLabel=h=h.destroy(),k&&(i.connector=k.destroy()))}))};u.prototype.alignDataLabel=function(n,i,r,u,f){var h=this.chart,l=h.inverted,e=t(n.plotX,-9999),c=t(n.plotY,-9999),s=i.getBBox(),p,a=r.rotation,v=r.align,y=this.visible&&(n.series.forceDL||h.isInsidePlot(e,Math.round(c),l)||u&&h.isInsidePlot(e,l?u.x+1:u.y+u.height-1,l)),w="justify"===t(r.overflow,"justify");y&&(p=h.renderer.fontMetrics(void 0,i).b,u=o({x:l?this.yAxis.len-c:e,y:Math.round(l?this.xAxis.len-e:c),width:0,height:0},u),o(r,{width:s.width,height:s.height}),a?(w=!1,e=h.renderer.rotCorr(p,a),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:v}),c=(a+720)%360,c=180<c&&360>c,"left"===v?e.y-=c?s.height:0:"center"===v?(e.x-=s.width/2,e.y-=s.height/2):"right"===v&&(e.x-=s.width,e.y-=c?0:s.height)):(i.align(r,null,u),e=i.alignAttr),w?n.isLabelJustified=this.justifyDataLabel(i,r,e,s,u,f):t(r.crop,!0)&&(y=h.isInsidePlot(e.x,e.y)&&h.isInsidePlot(e.x+s.width,e.y+s.height)),r.shape&&!a)&&i[f?"attr":"animate"]({anchorX:l?h.plotWidth-n.plotY:n.plotX,anchorY:l?h.plotHeight-n.plotX:n.plotY});y||(i.attr({y:-9999}),i.placed=!1)};u.prototype.justifyDataLabel=function(n,t,i,r,u,f){var s=this.chart,c=t.align,l=t.verticalAlign,e,o,h=n.box?0:n.padding||0;return e=i.x+h,0>e&&("right"===c?t.align="left":t.x=-e,o=!0),e=i.x+r.width-h,e>s.plotWidth&&("left"===c?t.align="right":t.x=s.plotWidth-e,o=!0),e=i.y+h,0>e&&("bottom"===l?t.verticalAlign="top":t.y=-e,o=!0),e=i.y+r.height-h,e>s.plotHeight&&("top"===l?t.verticalAlign="bottom":t.y=s.plotHeight-e,o=!0),o&&(n.placed=!f,n.align(t,null,u)),o};r.pie&&(r.pie.prototype.drawDataLabels=function(){var r=this,rt=r.data,e,w=r.chart,l=r.options.dataLabels,y=t(l.connectorPadding,10),ot=t(l.connectorWidth,1),ut=w.plotWidth,ft=w.plotHeight,a,it=r.center,b=it[2]/2,nt=it[1],h,k,p,d,et=[[],[]],v,o,g,tt,s=[0,0,0,0];r.visible&&(l.enabled||r._hasPointLabels)&&(i(rt,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(rt,function(n){n.dataLabel&&n.visible&&(et[n.half].push(n),n.dataLabel._pos=null)}),i(et,function(u,c){var a,rt,st=u.length,et=[],ot;if(st)for(r.sortByAngle(u,c-.5),0<r.maxLabelDistance&&(a=Math.max(0,nt-b-r.maxLabelDistance),rt=Math.min(nt+b+r.maxLabelDistance,w.plotHeight),i(u,function(n){0<n.labelDistance&&n.dataLabel&&(n.top=Math.max(0,nt-b-n.labelDistance),n.bottom=Math.min(nt+b+n.labelDistance,w.plotHeight),ot=n.dataLabel.getBBox().height||21,n.positionsIndex=et.push({target:n.labelPos[1]-n.top+ot/2,size:ot,rank:n.y})-1)}),n.distribute(et,rt+ot-a)),tt=0;tt<st;tt++)e=u[tt],rt=e.positionsIndex,p=e.labelPos,h=e.dataLabel,g=!1===e.visible?"hidden":"inherit",o=a=p[1],et&&f(et[rt])&&(void 0===et[rt].pos?g="hidden":(d=et[rt].size,o=e.top+et[rt].pos)),delete e.positionIndex,v=l.justify?it[0]+(c?-1:1)*(b+e.labelDistance):r.getX(o<e.top+2||o>e.bottom-2?a:o,c,e),h._attr={visibility:g,align:p[6]},h._pos={x:v+l.x+({left:y,right:-y}[p[6]]||0),y:o+l.y-10},p.x=v,p.y=o,t(l.crop,!0)&&(k=h.getBBox().width,a=null,v-k<y?(a=Math.round(k-v+y),s[3]=Math.max(a,s[3])):v+k>ut-y&&(a=Math.round(v+k-ut+y),s[1]=Math.max(a,s[1])),0>o-d/2?s[0]=Math.max(Math.round(-o+d/2),s[0]):o+d/2>ft&&(s[2]=Math.max(Math.round(o+d/2-ft),s[2])),h.sideOverflow=a)}),0===c(s)||this.verifyDataLabelOverflow(s))&&(this.placeDataLabels(),ot&&i(this.points,function(n){var t;a=n.connector;(h=n.dataLabel)&&h._pos&&n.visible&&0<n.labelDistance?(g=h._attr.visibility,(t=!a)&&(n.connector=a=w.renderer.path().addClass("highcharts-data-label-connector  highcharts-color-"+n.colorIndex).add(r.dataLabelsGroup)),a[t?"attr":"animate"]({d:r.connectorPath(n.labelPos)}),a.attr("visibility",g)):a&&(n.connector=a.destroy())}))},r.pie.prototype.connectorPath=function(n){var i=n.x,r=n.y;return t(this.options.dataLabels.softConnector,!0)?["M",i+("left"===n[6]?5:-5),r,"C",i,r,2*n[2]-n[4],2*n[3]-n[5],n[2],n[3],"L",n[4],n[5]]:["M",i+("left"===n[6]?5:-5),r,"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=v,r.pie.prototype.verifyDataLabelOverflow=function(n){var t=this.center,r=this.options,e=r.center,u=r.minSize||80,i,f=null!==r.size;return f||(null!==e[0]?i=Math.max(t[2]-Math.max(n[1],n[3]),u):(i=Math.max(t[2]-n[1]-n[3],u),t[0]+=(n[3]-n[1])/2),null!==e[1]?i=Math.max(Math.min(i,t[2]-Math.max(n[0],n[2])),u):(i=Math.max(Math.min(i,t[2]-n[0]-n[2]),u),t[1]+=(n[0]-n[2])/2),i<t[2]?(t[2]=i,t[3]=Math.min(y(r.innerSize||0,i),i),this.translate(t),this.drawDataLabels&&this.drawDataLabels()):f=!0),f});r.column&&(r.column.prototype.alignDataLabel=function(n,i,r,f,e){var h=this.chart.inverted,c=n.series,o=n.dlBox||n.shapeArgs,l=t(n.below,n.plotY>t(this.translatedThreshold,c.yAxis.len)),a=t(r.inside,!!this.options.stacking);o&&(f=s(o),0>f.y&&(f.height+=f.y,f.y=0),o=f.y+f.height-c.yAxis.len,0<o&&(f.height-=o),h&&(f={x:c.yAxis.len-f.y-f.height,y:c.xAxis.len-f.x-f.width,width:f.height,height:f.width}),a||(h?(f.x+=l?0:f.width,f.width=0):(f.y+=l?f.height:0,f.height=0)));r.align=t(r.align,!h||a?"center":l?"right":"left");r.verticalAlign=t(r.verticalAlign,h||a?"middle":l?"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 i=n.Chart,t=n.each,r=n.objectEach,u=n.pick,f=n.addEvent;i.prototype.callbacks.push(function(n){f(n,"render",function(){var i=[];t(n.labelCollectors||[],function(n){i=i.concat(n())});t(n.yAxis||[],function(n){n.options.stackLabels&&!n.options.stackLabels.allowOverlap&&r(n.stacks,function(n){r(n,function(n){i.push(n.label)})})});t(n.series||[],function(n){var r=n.options.dataLabels,f=n.dataLabelCollections||["dataLabel"];(r.enabled||n._hasPointLabels)&&!r.allowOverlap&&n.visible&&t(f,function(r){t(n.points,function(n){n[r]&&(n[r].labelrank=u(n.labelrank,n.shapeArgs&&n.shapeArgs.height),i.push(n[r]))})})});n.hideOverlappingLabels(i)})});i.prototype.hideOverlappingLabels=function(n){for(var s=n.length,r,i,u,o,h,c,l,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<s;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<s;f++)for(i=n[f],r=f+1;r<s;++r)(u=n[r],i&&u&&i!==u&&i.placed&&u.placed&&0!==i.newOpacity&&0!==u.newOpacity&&(o=i.alignAttr,h=u.alignAttr,c=i.parentGroup,l=u.parentGroup,e=2*(i.box?0:i.padding||0),o=a(o.x+c.translateX,o.y+c.translateY,i.width-e,i.height-e,h.x+l.translateX,h.y+l.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 o=n.addEvent,c=n.Chart,l=n.createElement,a=n.css,v=n.defaultOptions,y=n.defaultPlotOptions,t=n.each,f=n.extend,i=n.fireEvent,s=n.hasTouch,h=n.inArray,p=n.isObject,w=n.Legend,b=n.merge,e=n.pick,k=n.Point,d=n.Series,r=n.seriesTypes,g=n.svg,u;u=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)}),s))n[t].on("touchstart",r)}),n._hasTracking=!0)},drawTrackerGraph:function(){var n=this,u=n.options.trackByArea,r=[].concat(u?n.areaPath:n.graphPath),e=r.length,f=n.chart,a=f.pointer,v=f.renderer,o=f.options.tooltip.snap,h=n.tracker,i,c=function(){f.hoverSeries!==n&&n.onMouseOver()},l="rgba(192,192,192,"+(g?.0001:.002)+")";if(e&&!u)for(i=e+1;i--;)"M"===r[i]&&r.splice(i+1,0,r[i+1]-o,r[i+2],"L"),(i&&"M"===r[i]||i===e)&&r.splice(i,0,"L",r[i-2]+o,r[i-1]);h?h.attr({d:r}):n.graph&&(n.tracker=v.path(r).attr({"stroke-linejoin":"round",visibility:n.visible?"visible":"hidden",stroke:l,fill:u?l:"none","stroke-width":n.graph.strokeWidth()+(u?0:2*o),zIndex:2}).add(n.group),t([n.tracker,n.markerGroup],function(n){n.addClass("highcharts-tracker").on("mouseover",c).on("mouseout",function(n){a.onTrackerMouseOut(n)});if(s)n.on("touchstart",c)}))}};r.column&&(r.column.prototype.drawTracker=u.drawTrackerPoint);r.pie&&(r.pie.prototype.drawTracker=u.drawTrackerPoint);r.scatter&&(r.scatter.prototype.drawTracker=u.drawTrackerPoint);f(w.prototype,{setItemEvents:function(n,t,r){var u=this.chart.renderer.boxWrapper,f="highcharts-legend-"+(n.series?"point":"series")+"-active";(r?t:n.legendGroup).on("mouseover",function(){n.setState("hover");u.addClass(f)}).on("mouseout",function(){u.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=l("input",{type:"checkbox",checked:n.selected,defaultChecked:n.selected},this.options.itemCheckboxStyle,this.chart.container);o(n.checkbox,"click",function(t){i(n.series||n,"checkboxClick",{checked:t.target.checked,item:n},function(){n.select()})})}});f(c.prototype,{showResetZoom:function(){var t=this,i=v.lang,n=t.options.chart.resetZoomButton,r=n.theme,u=r.states,f="chart"===n.relativeTo?null:"plotBox";this.resetZoomButton=t.renderer.button(i.resetZoom,null,null,function(){t.zoomOut()},r,u&&u.hover).attr({align:n.position.align,title:i.resetZoomTitle}).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 r,f=this.pointer,u=!1,i;!n||n.resetSelection?(t(this.axes,function(n){r=n.zoom()}),f.initiated=!1):t(n.xAxis.concat(n.yAxis),function(n){var t=n.axis;f[t.isXAxis?"zoomX":"zoomY"]&&(r=t.zoom(n.min,n.max),t.displayBtn&&(u=!0))});i=this.resetZoomButton;u&&!i?this.showResetZoom():!u&&p(i)&&(this.resetZoomButton=i.destroy());r&&this.redraw(e(this.options.chart.animation,n&&n.animation,100>this.pointCount))},pan:function(n,i){var r=this,u=r.hoverPoints,f;u&&t(u,function(n){n.setState()});t("xy"===i?[1,0]:[1],function(t){t=r[t?"xAxis":"yAxis"][0];var h=t.horiz,l=n[h?"chartX":"chartY"],h=h?"mouseDownX":"mouseDownY",e=r[h],i=(t.pointRange||0)/2,o=t.getExtremes(),u=t.toValue(e-l,!0)+i,i=t.toValue(e+t.len-l,!0)-i,c=i<u,e=c?i:u,u=c?u:i,i=Math.min(o.dataMin,t.toValue(t.toPixels(o.min)-t.minPixelPadding)),c=Math.max(o.dataMax,t.toValue(t.toPixels(o.max)+t.minPixelPadding)),s;s=i-e;0<s&&(u+=s,e=i);s=u-c;0<s&&(u=c,e-=s);t.series.length&&e!==o.min&&u!==o.max&&(t.setExtremes(e,u,!1,!1,{trigger:"pan"}),f=!0);r[h]=l});f&&r.redraw(!1);a(r.container,{cursor:"move"})}});f(k.prototype,{select:function(n,i){var r=this,u=r.series,f=u.chart;n=e(n,!r.selected);r.firePointEvent(n?"select":"unselect",{accumulate:i},function(){r.selected=r.options.selected=n;u.options.data[h(r,u.data)]=r.options;r.setState(n&&"select");i||t(f.getSelectedPoints(),function(n){n.selected&&n!==r&&(n.selected=n.options.selected=!1,u.options.data[h(n,u.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=b(t.series.options.point,t.options).events;t.events=i;n.objectEach(i,function(n,i){o(t,i,n)});this.hasImportedEvents=!0}},setState:function(n,t){var h=Math.floor(this.plotX),v=this.plotY,r=this.series,a=r.options.states[n]||{},u=y[r.type].marker&&r.options.marker,p=u&&!1===u.enabled,c=u&&u.states&&u.states[n]||{},w=!1===c.enabled,i=r.stateMarkerGraphic,l=this.marker||{},s=r.chart,f=r.halo,o,b=u&&r.markerAttribs;n=n||"";n===this.state&&!t||this.selected&&"select"!==n||!1===a.enabled||n&&(w||p&&!1===c.enabled)||n&&l.states&&l.states[n]&&!1===l.states[n].enabled||(b&&(o=r.markerAttribs(this,n)),this.graphic?(this.state&&this.graphic.removeClass("highcharts-point-"+this.state),n&&this.graphic.addClass("highcharts-point-"+n),o&&this.graphic.animate(o,e(s.options.chart.animation,c.animation,u.animation)),i&&i.hide()):(n&&c&&((u=l.symbol||r.symbol,i&&i.currentSymbol!==u&&(i=i.destroy()),i)?i[t?"animate":"attr"]({x:o.x,y:o.y}):u&&(r.stateMarkerGraphic=i=s.renderer.symbol(u,o.x,o.y,o.width,o.height).add(r.markerGroup),i.currentSymbol=u)),i&&(i[n&&s.isInsidePlot(h,v,s.inverted)?"show":"hide"](),i.element.point=this)),(h=a.halo)&&h.size?(f||(r.halo=f=s.renderer.path().add((this.graphic||i).parentGroup)),f[t?"animate":"attr"]({d:this.haloPath(h.size)}),f.attr({"class":"highcharts-halo highcharts-color-"+e(this.colorIndex,r.colorIndex)}),f.point=this):f&&f.point&&f.point.haloPath&&f.animate({d:f.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)}});f(d.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,n=this.chart,t=n.tooltip,r=n.hoverPoint;n.hoverSeries=null;r&&r.onMouseOut();this&&u.events.mouseOut&&i(this,"mouseOut");!t||this.stickyTracking||t.shared&&!this.noSharedTooltip||t.hide();this.setState()},setState:function(n){var i=this;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)},setVisible:function(n,r){var u=this,f=u.chart,o=u.legendItem,e,s=f.options.chart.ignoreHiddenSeries,h=u.visible;e=(u.visible=n=u.options.visible=u.userOptions.visible=void 0===n?!h: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();o&&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,{redraw:r})},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:u.drawTrackerGraph})}(t),function(n){var i=n.Chart,r=n.each,u=n.inArray,f=n.isArray,e=n.isObject,t=n.pick,o=n.splat;i.prototype.setResponsive=function(t){var u=this.options.responsive,i=[],f=this.currentResponsive,e;u&&u.rules&&r(u.rules,function(r){void 0===r._id&&(r._id=n.uniqueKey());this.matchResponsiveRule(r,i,t)},this);e=n.merge.apply(0,n.map(i,function(t){return n.find(u.rules,function(n){return n._id===t}).chartOptions}));i=i.toString()||void 0;i!==(f&&f.ruleIds)&&(f&&this.update(f.undoOptions,t),i?(this.currentResponsive={ruleIds:i,mergedOptions:e,undoOptions:this.currentOptions(e)},this.update(e,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,r,s,h){var c;n.objectEach(t,function(n,l){if(!h&&-1<u(l,["series","xAxis","yAxis"]))for(t[l]=o(t[l]),s[l]=[],c=0;c<t[l].length;c++)r[l][c]&&(s[l][c]={},i(n[c],r[l][c],s[l][c],h+1));else e(n)?(s[l]=f(n)?[]:{},i(n,r[l]||{},s[l],h+1)):s[l]=r[l]||null})}var r={};return i(t,this.options,r,0),r}}(t),function(n){var o=n.addEvent,t=n.Axis,s=n.Chart,h=n.css,u=n.dateFormat,f=n.defined,i=n.each,c=n.extend,l=n.noop,e=n.pick,a=n.timeUnits,r=n.wrap;r(n.Series.prototype,"init",function(n){var t;n.apply(this,Array.prototype.slice.call(arguments,1));(t=this.xAxis)&&t.options.ordinal&&o(this,"updatedData",function(){delete t.ordinalIndex})});r(t.prototype,"getTimeTicks",function(n,t,i,r,e,o,s,h){var l=0,c,p,b={},y,k,d,v=[],g=-Number.MAX_VALUE,nt=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,e);for(k=o.length,c=0;c<k;c++){if(d=c&&o[c-1]>r,o[c]<i&&(l=c),c===k-1||o[c+1]-o[c]>5*s||d){if(o[c]>g){for(p=n.call(this,t,o[l],o[c],e);p.length&&p[0]<=g;)p.shift();p.length&&(g=p[p.length-1]);v=v.concat(p)}l=c+1}if(d)break}if(n=p.info,h&&n.unitRange<=a.hour){for(c=v.length-1,l=1;l<c;l++)u("%d",v[l])!==u("%d",v[l-1])&&(b[v[l]]="day",y=!0);y&&(b[v[0]]="day");n.higherRanks=b}if(v.info=n,h&&f(nt)){for(h=n=v.length,c=[],y=[];h--;)l=this.translate(v[h]),w&&(y[h]=w-l),c[h]=w=l;for(y.sort(),y=y[Math.floor(y.length/2)],y<.6*nt&&(y=null),h=v[n-1]>r?n-1:n,w=void 0;h--;)l=c[h],r=Math.abs(w-l),w&&r<.8*nt&&(null===y||r<.8*y)?(b[v[h]]&&!b[v[h+1]]?(r=h+1,w=l):r=h,v.splice(r,1)):w=l}return v});c(t.prototype,{beforeSetTickPositions:function(){var r,n=[],s=!1,t,h=this.getExtremes(),l=h.min,c=h.max,o,a=this.isXAxis&&!!this.options.breaks,h=this.options.ordinal,u=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&&f(this.userMin)&&(this.min+=this.options.overscroll)),h||a){if(i(this.series,function(t,i){if(!(v&&!1===t.visible||!1===t.takeOrdinalPosition&&!a)&&(n=n.concat(t.processedXData),r=n.length,n.sort(function(n,t){return n-t}),u=Math.min(u,e(t.closestPointRange,u)),r))for(i=r-1;i--;)n[i]===n[i+1]&&n.splice(i,1)}),r=n.length,2<r){for(t=n[1]-n[0],o=r-1;o--&&!s;)n[o+1]-n[o]!==t&&(s=!0);!this.options.keepOrdinalPadding&&(n[0]-l>t||c-n[n.length-1]>t)&&(s=!0)}else this.options.overscroll&&(2===r?u=n[1]-n[0]:1===r?(u=this.options.overscroll,n=[n[0],n[0]+u]):u=this.overscrollPointsRange);s?(this.options.overscroll&&(this.overscrollPointsRange=u,n=n.concat(this.getOverscrollPositions())),this.ordinalPositions=n,t=this.ordinal2lin(Math.max(l,n[0]),!0),o=Math.max(this.ordinal2lin(Math.min(c,n[n.length-1]),!0),1),this.ordinalSlope=c=(c-l)/(o-t),this.ordinalOffset=l-t*c):(this.overscrollPointsRange=e(this.closestPointRange,this.overscrollPointsRange),this.ordinalPositions=this.ordinalSlope=this.ordinalOffset=void 0)}this.isOrdinal=h&&s;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,r=n.series[0].currentDataGrouping,f=n.ordinalIndex,o=r?r.count+r.unitName:"raw",c=n.options.overscroll,h=n.getExtremes(),e,u;return f||(f=n.ordinalIndex={}),f[o]||(e={series:[],chart:s,getExtremes:function(){return{min:h.dataMin,max:h.dataMax+c}},options:{ordinal:!0},val2lin:t.prototype.val2lin,ordinal2lin:t.prototype.ordinal2lin},i(n.series,function(t){u={xAxis:e,xData:t.xData.slice(),chart:s,destroyGroupedData:l};u.xData=u.xData.concat(n.getOverscrollPositions());u.options={dataGrouping:r?{enabled:!0,forced:!0,approximation:"open",units:[[r.unitName,[r.count]]]}:{enabled:!1}};t.processData.apply(u);e.series.push(u)}),n.beforeSetTickPositions.apply(e),f[o]=e.ordinalPositions),f[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/(t/this.closestPointRange):n}});t.prototype.ordinal2lin=t.prototype.val2lin;r(s.prototype,"pan",function(n,t){var r=this.xAxis[0],l=r.options.overscroll,w=t.chartX,a=!1;if(r.options.ordinal&&r.series.length){var u=this.mouseDownX,s=r.getExtremes(),v=s.dataMax,y=s.min,p=s.max,e=this.hoverPoints,c=r.closestPointRange||r.overscrollPointsRange,u=(u-w)/(r.translationSlope*(r.ordinalSlope||c)),f={ordinalPositions:r.getExtendedPositions()},c=r.lin2val,b=r.val2lin,o;f.ordinalPositions?1<Math.abs(u)&&(e&&i(e,function(n){n.setState()}),0>u?(e=f,o=r.ordinalPositions?r:f):(e=r.ordinalPositions?r:f,o=f),f=o.ordinalPositions,v>f[f.length-1]&&f.push(v),this.fixedRange=p-y,u=r.toFixedRange(null,null,c.apply(e,[b.apply(e,[y,!0])+u,!0]),c.apply(o,[b.apply(o,[p,!0])+u,!0])),u.min>=Math.min(s.dataMin,y)&&u.max<=Math.max(v,p)+l&&r.setExtremes(u.min,u.max,!0,!1,{trigger:"pan"}),this.mouseDownX=w,h(this.container,{cursor:"move"})):a=!0}else a=!0;a&&(l&&(r.max=r.dataMax+l),n.apply(this,Array.prototype.slice.call(arguments,1)))})}(t),function(n){function o(){return Array.prototype.slice.call(arguments,1)}function f(n){n.apply(this);this.drawBreaks(this.xAxis,["x"]);this.drawBreaks(this.yAxis,i(this.pointArrayMap,["y"]))}var i=n.pick,r=n.wrap,t=n.each,s=n.extend,h=n.isArray,e=n.fireEvent,u=n.Axis,c=n.Series;s(u.prototype,{isInBreak:function(n,t){var i=n.repeat||Infinity,r=n.from,u=n.to-n.from;return t=t>=r?(t-r)%i:i-(r-t)%i,n.inclusive?t<=u:t<u&&0!==t},isInAnyBreak:function(n,t){var r=this.options.breaks,u=r&&r.length,f,e,o;if(u){for(;u--;)this.isInBreak(r[u],n)&&(f=!0,e||(e=i(r[u].showPoints,this.isXAxis?!1:!0)));o=f&&t?f&&!e:f}return o}});r(u.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}});r(u.prototype,"init",function(n,r,f){var o=this;f.breaks&&f.breaks.length&&(f.ordinal=!1);n.call(this,r,f);n=this.options.breaks;o.isBroken=h(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,i,r,f){for(;this.isInAnyBreak(n);)n-=this.closestPointRange;for(;this.isInAnyBreak(t);)t-=this.closestPointRange;u.prototype.setExtremes.call(this,n,t,i,r,f)},o.setAxisTranslation=function(n){u.prototype.setAxisTranslation.call(this,n);n=o.options.breaks;var l=[],y=[],p=0,a,f,s=o.userMin||o.min,h=o.userMax||o.max,v=i(o.pointRangePadding,0),r,c;t(n,function(n){f=n.repeat||Infinity;o.isInBreak(n,s)&&(s+=n.to%f-s%f);o.isInBreak(n,h)&&(h-=h%f-n.from%f)});t(n,function(n){for(r=n.from,f=n.repeat||Infinity;r-f>s;)r-=f;for(;r<s;)r+=f;for(c=r;c<h;c+=f)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;r=s;t(l,function(n){a+="in"===n.move?1:-1;1===a&&"in"===n.move&&(r=n.value);0===a&&(y.push({from:r,to:n.value,len:n.value-r-(n.size||0)}),p+=n.value-r-(n.size||0))});o.breakArray=y;o.unitLength=h-s-p+v;e(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})});r(c.prototype,"generatePoints",function(n){n.apply(this,o(arguments));var r=this.xAxis,u=this.yAxis,f=this.points,i,t=f.length,s=this.options.connectNulls,e;if(r&&u&&(r.options.breaks||u.options.breaks))for(;t--;)i=f[t],e=null===i.y&&!1===s,e||!r.isInAnyBreak(i.x,!0)&&!u.isInAnyBreak(i.y,!0)||(f.splice(t,1),this.data[t]&&this.data[t].destroyElements())});n.Series.prototype.drawBreaks=function(n,r){var s=this,c=s.points,h,f,o,u;n&&t(r,function(r){h=n.breakArray||[];f=n.isXAxis?n.min:i(s.options.threshold,n.min);t(c,function(s){u=i(s["stack"+r.toUpperCase()],s[r]);t(h,function(t){o=!1;f<t.from&&u>t.to||f>t.from&&u<t.from?o="pointBreak":(f<t.from&&u>t.from&&u<t.to||f>t.from&&u>t.to&&u<t.from)&&(o="pointInBreak");o&&e(n,o,{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)};r(n.seriesTypes.column.prototype,"drawPoints",f);r(n.Series.prototype,"drawPoints",f)}(t),function(n){var l=n.arrayMax,a=n.arrayMin,f=n.Axis,v=n.defaultPlotOptions,y=n.defined,u=n.each,p=n.extend,w=n.format,i=n.isNumber,s=n.merge,h=n.pick,b=n.Point,k=n.Tooltip,e=n.wrap,r=n.Series.prototype,d=r.processData,g=r.generatePoints,nt=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"]}},o={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}},tt=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 t=n.length,i;if(!t&&n.hasNulls)i=null;else if(t)for(i=0;t--;)i+=n[t];return i},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))}),n},open:function(n){return n.length?n[0]:n.hasNulls?null:void 0},high:function(n){return n.length?l(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,f,e){var k=this.data,rt=this.options.data,d=[],g=[],nt=[],v=n.length,s,a,ut=!!r,l=[],tt,h,it,w;e="function"==typeof e?e:t[e]||o[this.type]&&t[o[this.type].approximation]||t[c.approximation];var y=this.pointArrayMap,b=y&&y.length,p=0;for(a=0,b?u(y,function(){l.push([])}):l.push([]),tt=b||1,h=0;h<=v&&!(n[h]>=f[0]);h++);for(h;h<=v;h++){for(;void 0!==f[p+1]&&n[h]>=f[p+1]||h===v;){for(s=f[p],this.dataGroupInfo={start:a,length:l[0].length},a=e.apply(this,l),void 0!==a&&(d.push(s),g.push(a),nt.push(this.dataGroupInfo)),a=h,s=0;s<tt;s++)l[s].length=0,l[s].hasNulls=!1;if(p+=1,h===v)break}if(h===v)break;if(y)for(s=this.cropStart+h,it=k&&k[s]||this.pointClass.prototype.applyOptions.apply({series:this},[rt[s]]),s=0;s<b;s++)w=it[y[s]],i(w)?l[s].push(w):null===w&&(l[s].hasNulls=!0);else s=ut?r[h]:null,i(s)?l[0].push(s):null===s&&(l[0].hasNulls=!0)}return[d,g,nt]};r.processData=function(){var n=this.chart,i=this.options.dataGrouping,f=!1!==this.allowDG&&i&&h(i.enabled,n.options.isStock),a=this.visible||!n.options.chart.ignoreHiddenSeries,l;if(this.forceCrop=f,this.groupPixelWidth=null,this.hasProcessed=!0,!1!==d.apply(this,arguments)&&f){this.destroyGroupedData();var u=this.processedXData,t=this.processedYData,c=n.plotSizeX,n=this.xAxis,s=n.options.ordinal,o=this.groupPixelWidth=n.getGroupPixelWidth&&n.getGroupPixelWidth();if(o){this.isDirty=l=!0;this.points=null;var e=n.getExtremes(),f=e.min,e=e.max,s=s&&n.getGroupIntervalFactor(f,e,this)||1,c=o*(e-f)/c*s,o=n.getTimeTicks(n.normalizeTimeTickInterval(c,i.units||tt),Math.min(f,u[0]),Math.max(e,u[u.length-1]),n.options.startOfWeek,u,this.closestPointRange),u=r.groupData.apply(this,[u,t,o,i.approximation]),t=u[0],s=u[1];if(i.smoothed&&t.length){for(i=t.length-1,t[i]=Math.min(t[i],e);i--&&0<i;)t[i]+=c/2;t[0]=Math.max(t[0],f)}this.currentDataGrouping=o.info;this.closestPointRange=o.info.totalRange;this.groupMap=u[2];y(t[0])&&t[0]<n.dataMin&&a&&(n.min===n.dataMin&&(n.min=t[0]),n.dataMin=t[0]);this.processedXData=t;this.processedYData=s}else this.currentDataGrouping=this.groupMap=null;this.hasGroupedData=l}};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(){g.apply(this);this.destroyGroupedData();this.groupedData=this.hasGroupedData?this.points:null};e(b.prototype,"update",function(t){this.dataGroup?n.error(24):t.apply(this,[].slice.call(arguments,1))});e(k.prototype,"tooltipFooterHeaderFormatter",function(t,r,u){var o=r.series,h=o.tooltipOptions,s=o.options.dataGrouping,f=h.xDateFormat,c,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],c=e[2])):!f&&s&&(f=this.getXDateFormat(r,h,e)),f=l(f,r.key),c&&(f+=l(c,r.key+t.totalRange-1)),w(h[(u?"footer":"header")+"Format"],{point:p(r.point,{key:f}),series:o})):t.call(this,r,u)});r.destroy=function(){for(var n=this.groupedData||[],t=n.length;t--;)n[t]&&n[t].destroy();nt.apply(this)};e(r,"setOptions",function(n,t){n=n.call(this,t);var i=this.type,r=this.chart.options.plotOptions,u=v[i].dataGrouping;return o[i]&&(u||(u=s(c,o[i])),n.dataGrouping=s(u,r.series&&r.series.dataGrouping,r[i].dataGrouping,t.dataGrouping)),this.chart.options.isStock&&(this.requireSorting=!0),n});e(f.prototype,"setScale",function(n){n.call(this);u(this.series,function(n){n.hasProcessed=!1})});f.prototype.getGroupPixelWidth=function(){for(var t=this.series,i=t.length,r=0,f=!1,u,n=i;n--;)(u=t[n].options.dataGrouping)&&(r=Math.max(r,u.groupPixelWidth));for(n=i;n--;)(u=t[n].options.dataGrouping)&&t[n].hasProcessed&&(i=(t[n].processedXData||t[n].data).length,t[n].groupPixelWidth||i>this.chart.plotSizeX/r||i&&u.forced)&&(f=!0);return f?r:0};f.prototype.setDataGrouping=function(n,t){var i;if(t=h(t,!0),n||(n={forced:!1,units:null}),this instanceof f)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,i=n.Point,r=n.seriesType,u=n.seriesTypes;r("ohlc","column",{lineWidth:1,tooltip:{pointFormat:'<span class="highcharts-color-{point.colorIndex}">●<\/span> <b> {series.name}<\/b><br/>Open: {point.open}<br/>High: {point.high}<br/>Low: {point.low}<br/>Close: {point.close}<br/>'},threshold:null,stickyTracking:!0},{directTouch:!1,pointArrayMap:["open","high","low","close"],toYData:function(n){return[n.open,n.high,n.low,n.close]},pointValKey:"close",translate:function(){var n=this,i=n.yAxis,r=!!n.modifyValue,f=["plotOpen","plotHigh","plotLow","plotClose","yBottom"];u.column.prototype.translate.apply(n);t(n.points,function(u){t([u.open,u.high,u.low,u.close,u.low],function(t,e){null!==t&&(r&&(t=n.modifyValue(t)),u[f[e]]=i.toPixels(t,!0))});u.tooltipPos[1]=u.plotHigh+i.pos-n.chart.plotTop})},drawPoints:function(){var n=this,i=n.chart;t(n.points,function(t){var u,e,s,o,f=t.graphic,r,h=!f;void 0!==t.plotY&&(f||(t.graphic=f=i.renderer.path().add(n.group)),e=f.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&&(u=Math.round(t.plotOpen)+e,o.push("M",r,u,"L",r-s,u)),null!==t.close&&(u=Math.round(t.plotClose)+e,o.push("M",r,u,"L",r+s,u)),f[h?"attr":"animate"]({d:o}).addClass(t.getClassName(),!0))})},animate:null},{getClassName:function(){return i.prototype.getClassName.call(this)+(this.open<this.close?" highcharts-point-up":" highcharts-point-down")}})}(t),function(n){var t=n.defaultPlotOptions,i=n.each,r=n.merge;n=n.seriesType;n("candlestick","ohlc",r(t.column,{states:{hover:{lineWidth:2}},tooltip:t.ohlc.tooltip,threshold:null}),{drawPoints:function(){var n=this,t=n.chart;i(n.points,function(i){var o=i.graphic,r,s,f,c,e,u,h,l=!o;void 0!==i.plotY&&(o||(i.graphic=o=t.renderer.path().add(n.group)),e=o.strokeWidth()%2/2,u=Math.round(i.plotX)-e,r=i.plotOpen,s=i.plotClose,f=Math.min(r,s),r=Math.max(r,s),h=Math.round(i.shapeArgs.width/2),s=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-h,r,"L",u-h,f,"L",u+h,f,"L",u+h,r,"Z","M",u,f,"L",u,s?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 t=n.each,i=n.seriesTypes,r=n.stableSort;return{translate:function(){i.column.prototype.translate.apply(this);var u=this.options,y=this.chart,e=this.points,l=e.length-1,n,s,a=u.onSeries;n=a&&y.get(a);var u=u.onKey||"y",a=n&&n.options.step,h=n&&n.points,o=h&&h.length,c=this.xAxis,k=this.yAxis,p=c.getExtremes(),w=0,f,b,v;if(n&&n.visible&&o)for(w=(n.pointXOffset||0)+(n.barW||0)/2,n=n.currentDataGrouping,b=h[o-1].x+(n?n.totalRange:0),r(e,function(n,t){return n.x-t.x}),u="plot"+u[0].toUpperCase()+u.substr(1);o--&&e[l]&&!(n=e[l],f=h[o],f.x<=n.x&&void 0!==f[u]&&(n.x<=b&&(n.plotY=f[u],f.x<n.x&&!a&&(v=h[o+1])&&void 0!==v[u]&&(n.plotY+=(n.x-f.x)/(v.x-f.x)*(v[u]-f[u]))),l--,o++,0>l)););t(e,function(n,t){var i;void 0===n.plotY&&(n.x>=p.min&&n.x<=p.max?n.plotY=y.chartHeight-c.bottom-(c.opposite?c.height:0)+c.offset-k.top:n.shapeArgs={});n.plotX+=w;(s=e[t-1])&&s.plotX===n.plotX&&(void 0===s.stackIndex&&(s.stackIndex=0),i=s.stackIndex+1);n.stackIndex=i})}}}(t),function(n,t){var f=n.addEvent,i=n.each,r=n.noop,e=n.seriesType,o=n.TrackerMixin,u=n.SVGRenderer.prototype.symbols;e("flags","column",{pointRange:0,shape:"flag",stackDistance:12,textAlign:"center",tooltip:{pointFormat:"{point.text}<br/>"},threshold:null,y:-30},{sorted:!1,noSharedTooltip:!0,allowDG:!1,takeOrdinalPosition:!1,trackerGroups:["markerGroup"],forceCrop:!0,init:n.Series.prototype.init,translate:t.translate,drawPoints:function(){for(var c=this.points,e=this.chart,y=e.renderer,u,f,r=this.options,p=r.y,o,t,i,l,a,v,h=this.yAxis,s=c.length;s--;)t=c[s],v=t.plotX>this.xAxis.len,u=t.plotX,i=t.stackIndex,o=t.options.shape||r.shape,f=t.plotY,void 0!==f&&(f=t.plotY+p-(void 0!==i&&i*r.stackDistance)),l=i?void 0:t.plotX,a=i?void 0:t.plotY,i=t.graphic,void 0!==f&&0<=u&&!v?(i||(i=t.graphic=y.label("",null,null,o,null,null,r.useHTML).attr({align:"flag"===o?"left":"center",width:r.width,height:r.height,"text-align":r.textAlign}).addClass("highcharts-point").add(this.markerGroup),t.graphic.div&&(t.graphic.div.point=t)),0<u&&(u-=i.strokeWidth()%2),i.attr({text:t.options.title||r.title||"A",x:u,y:f,anchorX:l,anchorY:a}),t.tooltipPos=e.inverted?[h.len+h.pos-e.plotLeft-f,this.xAxis.len-u]:[u,f+h.pos-e.plotTop]):i&&(t.graphic=i.destroy());r.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;o.drawTrackerPoint.apply(this);i(n,function(t){var r=t.graphic;r&&f(r.element,"mouseover",function(){0<t.stackIndex&&!t.raised&&(t._y=r.y,r.attr({y:t._y-8}),t.raised=!0);i(n,function(n){n!==t&&n.raised&&n.graphic&&(n.graphic.attr({y:n._y}),n.raised=!1)})})})},animate:r,buildKDTree:r,setClip:r});u.flag=function(n,t,i,r,u){return["M",u&&u.anchorX||n,u&&u.anchorY||t,"L",n,t+r,n,t,n+i,t,n+i,t+r,n,t+r,"Z"]};i(["circle","square"],function(n){u[n+"pin"]=function(t,i,r,f,e){var o=e&&e.anchorX;return e=e&&e.anchorY,"circle"===n&&f>r&&(t-=Math.round((f-r)/2),r=f),t=u[n](t,i,r,f),o&&e&&t.push("M",o,i>e?i:i+f,"L",o,e),t}})}(t,i),function(n){function e(n,t,i){this.init(n,t,i)}var l=n.addEvent,u=n.Axis,t=n.correctFloat,a=n.defaultOptions,o=n.defined,p=n.destroyObjectProperties,s=n.each,r=n.fireEvent,w=n.hasTouch,v=n.isTouchDevice,h=n.merge,i=n.pick,b=n.removeEvent,f=n.wrap,c,y={height:v?20:14,barBorderRadius:0,buttonBorderRadius:0,liveRedraw:n.svg&&!v,margin:10,minWidth:6,step:.2,zIndex:3};a.scrollbar=h(!0,y,a.scrollbar);n.swapXY=c=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};e.prototype={init:function(n,t,r){this.scrollbarButtons=[];this.renderer=n;this.userOptions=t;this.options=h(y,t);this.chart=r;this.size=i(this.options.size,this.options.height);t.enabled&&(this.render(),this.initEvents(),this.addEvents())},render:function(){var t=this.renderer,i=this.options,n=this.size,r;this.group=r=t.g("scrollbar").attr({zIndex:i.zIndex,translateY:-99999}).add();this.track=t.rect().addClass("highcharts-scrollbar-track").attr({x:0,r:i.trackBorderRadius||0,height:n,width:n}).add(r);this.trackBorderWidth=this.track.strokeWidth();this.track.attr({y:-this.trackBorderWidth%2/2});this.scrollbarGroup=t.g().add(r);this.scrollbar=t.rect().addClass("highcharts-scrollbar-thumb").attr({height:n,width:n,r:i.barBorderRadius||0}).add(this.scrollbarGroup);this.scrollbarRifles=t.path(c(["M",-3,n/4,"L",-3,2*n/3,"M",0,n/4,"L",0,2*n/3,"M",3,n/4,"L",3,2*n/3],i.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup);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 u=this.options.vertical,f=0,e=this.rendered?"animate":"attr";this.x=n;this.y=t+this.trackBorderWidth;this.width=i;this.xOffset=this.height=r;this.yOffset=f;u?(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[e]({translateX:n,translateY:this.y});this.track[e]({width:i,height:r});this.scrollbarButtons[1][e]({translateX:u?0:i-t,translateY:u?r-f:0})},drawScrollbarButton:function(n){var r=this.renderer,u=this.scrollbarButtons,f=this.options,t=this.size,i;i=r.g().add(this.group);u.push(i);i=r.rect().addClass("highcharts-scrollbar-button").add(i);i.attr(i.crisp({x:-.5,y:-.5,width:t+1,height:t+1,r:f.buttonBorderRadius},i.strokeWidth()));r.path(c(["M",t/2+(n?-1:1),t/2-3,"L",t/2+(n?-1:1),t/2+3,"L",t/2+(n?2:-2),t/2],f.vertical)).addClass("highcharts-scrollbar-arrow").add(u[n])},setRange:function(n,i){var h=this.options,c=h.vertical,r=h.minWidth,f=this.barWidth,s,u,e=this.rendered&&!this.hasDragged?"animate":"attr";o(f)&&(n=Math.max(n,0),s=Math.ceil(f*n),this.calculatedWidth=u=t(f*Math.min(i,1)-s),u<r&&(s=(f-r+u)*n,u=r),r=Math.floor(s+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===h.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,f=n.y+n.scrollbarTop,e=n.x+n.scrollbarLeft;n.options.vertical&&u.chartY>f||!n.options.vertical&&u.chartX>e?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,h(!0,this.options,n),this.chart)},addEvents:function(){var n=this.options.inverted?[1,0]:[0,1],i=this.scrollbarButtons,t=this.scrollbarGroup.element,r=this.mouseDownHandler,u=this.mouseMoveHandler,f=this.mouseUpHandler,n=[[i[n[0]].element,"click",this.buttonToMinClick],[i[n[1]].element,"click",this.buttonToMaxClick],[this.track.element,"click",this.trackClick],[t,"mousedown",r],[t.ownerDocument,"mousemove",u],[t.ownerDocument,"mouseup",f]];w&&n.push([t,"touchstart",r],[t.ownerDocument,"touchmove",u],[t.ownerDocument,"touchend",f]);s(n,function(n){l.apply(null,n)});this._events=n},removeEvents:function(){s(this._events,function(n){b.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 e(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 t=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,r=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:r+this.axisTitleMargin+this.offset),this.width,this.height),r=1):(u.position(this.left+this.width+2+this.chart.scrollbarsOffsets[0]+(this.opposite?r+this.axisTitleMargin+this.offset:0),this.top,this.width,this.height),r=0),(!this.opposite&&!this.horiz||this.opposite&&this.horiz)&&(this.chart.scrollbarsOffsets[r]+=this.scrollbar.size+this.scrollbar.options.margin),isNaN(t)||isNaN(f)||!o(this.min)||!o(this.max)?u.setRange(0,0):(r=(this.min-t)/(f-t),t=(this.max-t)/(f-t),this.horiz&&!this.reversed||!this.horiz&&this.reversed?u.setRange(r,t):u.setRange(1-t,1-r)))});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=e}(t),function(n){function a(n){this.init(n)}var i=n.addEvent,s=n.Axis,h=n.Chart,v=n.defaultOptions,c=n.defined,d=n.destroyObjectProperties,t=n.each,o=n.erase,g=n.error,w=n.extend,nt=n.grep,tt=n.hasTouch,b=n.isArray,f=n.isNumber,it=n.isObject,e=n.merge,r=n.pick,y=n.removeEvent,rt=n.Scrollbar,k=n.Series,ut=n.seriesTypes,u=n.wrap,p=[].concat(n.defaultDataGroupingUnits),l=function(n){var t=nt(arguments,f);if(t.length)return Math[n].apply(0,t)};p[4]=["day",[1,2,3,4]];p[5]=["week",[1,2,3]];w(v,{navigator:{height:40,margin:25,maskInside:!0,handles:{width:7,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0},series:{type:void 0===ut.areaspline?"line":"areaspline",compare:null,dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,smoothed:!0,units:p},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,tickPixelInterval:200,labels:{align:"left",x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",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]};a.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 c=this.navigatorOptions.maskInside,e=this.outline.strokeWidth(),s=e/2,e=e%2/2,o=this.outlineHeight,h=this.scrollbarHeight,l=this.size,u=this.left-h,f=this.top;i?(u-=s,i=f+t+e,t=f+n+e,n=["M",u+o,f-h-e,"L",u+o,i,"L",u,i,"L",u,t,"L",u+o,t,"L",u+o,f+l+h].concat(c?["M",u+o,i-s,"L",u+o,t+s]:[])):(n+=u+h-e,t+=u+h-e,f+=s,n=["M",u,f,"L",n,f,"L",n,f+o,"L",t,f+o,"L",t,f,"L",u+l+2*h,f].concat(c?["M",n-s,f,"L",t+s,f]:[]));this.outline[r]({d:n})},drawMasks:function(n,i,r,u){var f=this.left,e=this.top,o=this.height,s,h,c,l;r?(c=[f,f,f],l=[e,e+n,e+i],h=[o,o,o],s=[n,i-n,this.size-i]):(c=[f,f+n,f+i],l=[e,e,e],h=[n,i-n,this.size-i],s=[o,o,o]);t(this.shades,function(n,t){n[u]({x:c[t],y:l[t],width:h[t],height:s[t]})})},renderElements:function(){var i=this,n=i.navigatorOptions,f=n.maskInside,e=i.chart,r=e.renderer,u;i.navigatorGroup=u=r.g("navigator").attr({zIndex:8,visibility:"hidden"}).add();t([!f,f,!f],function(n,t){i.shades[t]=r.rect().addClass("highcharts-navigator-mask"+(1===t?"-inside":"-outside")).add(u)});i.outline=r.path().addClass("highcharts-navigator-outline").add(u);n.handles.enabled&&t([0,1],function(t){n.handles.inverted=e.inverted;i.handles[t]=r.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(u)})},update:function(n){t(this.series||[],function(n){n.baseSeries&&delete n.baseSeries.navigatorSeries});this.destroy();e(!0,this.chart.options.navigator,this.options,n);this.init(this.chart)},render:function(t,i,u,e){var h=this.chart,v,s,l=this.scrollbarHeight,p,o=this.xAxis,b,y,a,d,k,w;if(v=o.fake?h.xAxis[0]:o,b=this.navigatorEnabled,a=this.rendered,s=h.inverted,k=h.xAxis[0].minRange,w=h.xAxis[0].options.maxRange,!this.hasDragged||c(u)){if(!f(t)||!f(i))if(a)u=0,e=o.width;else return;this.left=r(o.left,h.plotLeft+l+(s?h.plotWidth:0));this.size=y=p=r(o.len,(s?h.plotHeight:h.plotWidth)-2*l);h=s?l:p+2*l;u=r(u,o.toPixels(t,!0));e=r(e,o.toPixels(i,!0));f(u)&&Infinity!==Math.abs(u)||(u=0,e=h);t=o.toValue(u,!0);i=o.toValue(e,!0);d=Math.abs(n.correctFloat(i-t));d<k?this.grabbedLeft?u=o.toPixels(i-k,!0):this.grabbedRight&&(e=o.toPixels(t+k,!0)):c(w)&&d>w&&(this.grabbedLeft?u=o.toPixels(i-w,!0):this.grabbedRight&&(e=o.toPixels(t+w,!0)));this.zoomedMax=Math.min(Math.max(u,e,0),y);this.zoomedMin=Math.min(Math.max(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(u,e),0),y);this.range=this.zoomedMax-this.zoomedMin;y=Math.round(this.zoomedMax);u=Math.round(this.zoomedMin);b&&(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-l,v=this.left-l+(b||!v.opposite?0:(v.titleOffset||0)+v.axisTitleMargin),l=p+2*l):(s=this.top+(b?this.height:-l),v=this.left-l),this.scrollbar.position(v,s,h,l),this.scrollbar.setRange(this.zoomedMin/p,this.zoomedMax/p));this.rendered=!0}},addMouseEvents:function(){var n=this,e=n.chart,r=e.container,t=[],u,f;n.mouseMoveHandler=u=function(t){n.onMouseMove(t)};n.mouseUpHandler=f=function(t){n.onMouseUp(t)};t=n.getPartsEvents("mousedown");t.push(i(r,"mousemove",u),i(r.ownerDocument,"mouseup",f));tt&&(t.push(i(r,"touchmove",u),i(r.ownerDocument,"touchend",f)),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 r=this,u=[];return t(["shades","handles"],function(f){t(r[f],function(t,e){u.push(i(t.element,n,function(n){r[f+"Mousedown"](n,e)}))})}),u},shadesMousedown:function(n,t){n=this.chart.pointer.normalize(n);var u=this.chart,h=this.xAxis,f=this.zoomedMin,e=this.left,o=this.size,i=this.range,r=n.chartX,s;u.inverted&&(r=n.chartY,e=this.top);1===t?(this.grabbedCenter=r,this.fixedWidth=i,this.dragOffset=r-f):(n=r-e-i/2,0===t?n=Math.max(0,n):2===t&&n+i>=o&&(n=o-i,s=this.getUnionExtremes().dataMax),n!==f&&(this.fixedWidth=i,t=h.toFixedRange(n,n+i,null,s),u.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,u=t.left,e=t.navigatorSize,f=t.range,r=t.dragOffset,o=i.inverted;n.touches&&0===n.touches[0].pageX||(n=i.pointer.normalize(n),i=n.chartX,o&&(u=t.top,i=n.chartY),t.grabbedLeft?(t.hasDragged=!0,t.render(0,0,i-u,t.otherHandlePos)):t.grabbedRight?(t.hasDragged=!0,t.render(0,0,t.otherHandlePos,i-u)):t.grabbedCenter&&(t.hasDragged=!0,i<r?i=r:i>e+r-f&&(i=e+r-f),t.render(0,0,i-r,i-r+f)),t.hasDragged&&t.scrollbar&&t.scrollbar.options.liveRedraw&&(n.DOMType=n.type,setTimeout(function(){t.onMouseUp(n)},0)))},onMouseUp:function(n){var f=this.chart,t=this.xAxis,r=this.scrollbar,u,i,e=n.DOMEvent||n;(!this.hasDragged||r&&r.hasDragged)&&"scrollbar"!==n.trigger||(this.zoomedMin===this.otherHandlePos?u=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(i=this.fixedExtreme),this.zoomedMax===this.size&&(i=this.getUnionExtremes().dataMax),t=t.toFixedRange(this.zoomedMin,this.zoomedMax,u,i),c(t.min)&&f.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:e}));"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){y(n,"updatedData",this.updatedDataHandler)},this),n[0].xAxis&&y(n[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))},init:function(n){var f=n.options,o=f.navigator,a=o.enabled,h=f.scrollbar,v=h.enabled,f=a?o.height:0,c=v?h.height:0;this.handles=[];this.shades=[];this.chart=n;this.setBaseSeries();this.height=f;this.scrollbarHeight=c;this.scrollbarEnabled=v;this.navigatorEnabled=a;this.navigatorOptions=o;this.scrollbarOptions=h;this.outlineHeight=f+c;this.opposite=r(o.opposite,!a&&n.inverted);var t=this,h=t.baseSeries,v=n.xAxis.length,p=n.yAxis.length,y=h&&h[0]&&h[0].xAxis||n.xAxis[0];n.extraMargin={type:t.opposite?"plotTop":"marginBottom",value:(a||!n.inverted?t.outlineHeight:0)+o.margin};n.inverted&&(n.extraMargin.type=t.opposite?"marginRight":"plotLeft");n.isDirtyBox=!0;t.navigatorEnabled?(t.xAxis=new s(n,e({breaks:y.options.breaks,ordinal:y.options.ordinal},o.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:[c,0,-c,0],width:f}:{offsets:[0,-c,0,c],height:f})),t.yAxis=new s(n,e(o.yAxis,{id:"navigator-y-axis",alignTicks:!1,offset:0,index:p,zoomEnabled:!1},n.inverted?{width:f}:{height:f})),h||o.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*c,u=l("min",r.options.min,f.dataMin),r=l("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:s.prototype.toFixedRange,fake:!0};n.options.scrollbar.enabled&&(n.scrollbar=t.scrollbar=new rt(n.renderer,e(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 i=this.chart.xAxis[0],t=this.xAxis,u=t.options,f=i.options,e;return n&&null===i.dataMin||(e={dataMin:r(u&&u.min,l("min",f.min,i.dataMin,t.dataMin,t.min)),dataMax:r(u&&u.max,l("max",f.max,i.dataMax,t.dataMax,t.max))}),e},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,f=r.chart,o=r.baseSeries,h,u,s=r.navigatorOptions.series,l,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},a=r.series=n.grep(r.series||[],function(t){var i=t.baseSeries;return 0>n.inArray(i,o)?(i&&(y(i,"updatedData",r.updatedDataHandler),delete i.navigatorSeries),t.destroy(),!1):!0});o&&o.length&&t(o,function(n){var y=n.navigatorSeries,t=w({color:n.color},b(s)?v.navigator.series:s);y&&!1===r.navigatorOptions.adaptToUpdatedData||(c.name="Navigator "+o.length,h=n.options||{},l=h.navigatorOptions||{},u=e(h,c,t,l),t=l.data||t.data,r.hasNavigatorData=r.hasNavigatorData||!!t,u.data=t||h.data&&h.data.slice(0),y&&y.options?y.update(u,i):(n.navigatorSeries=f.initSeries(u),n.navigatorSeries.baseSeries=n,a.push(n.navigatorSeries)))});(s.data&&(!o||!o.length)||b(s))&&(r.hasNavigatorData=!1,s=n.splat(s),t(s,function(n,t){c.name="Navigator "+(a.length+1);u=e(v.navigator.series,{color:f.series[t]&&!f.series[t].options.isInternal&&f.series[t].color||f.options.colors[t]||f.options.colors[0]},c,n);u.data=n.data;u.data&&(r.hasNavigatorData=!0,a.push(f.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(n){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,n.redraw)});i(n,"hide",function(n){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,n.redraw)});!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 n=this.xAxis,t;n.getExtremes&&(!(t=this.getUnionExtremes(!0))||t.dataMin===n.min&&t.dataMax===n.max||(n.min=t.dataMin,n.max=t.dataMax))},modifyBaseAxisExtremes:function(){var t=this.chart.navigator,n=this.getExtremes(),s=n.dataMin,h=n.dataMax,n=n.max-n.min,u=t.stickToMin,o=t.stickToMax,c=this.options.overscroll,r,i,e=t.series&&t.series[0],l=!!this.setExtremes;this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger||(u&&(i=s,r=i+n),o&&(r=h+c,u||(i=Math.max(r-n,e&&e.xData?e.xData[0]:-Number.MAX_VALUE))),l&&(u||o)&&f(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=f(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){d(n)},this)}};n.Navigator=a;u(s.prototype,"zoom",function(n,t,i){var r=this.chart,u=r.options,f=u.chart.zoomType,o=u.navigator,u=u.rangeSelector,e;return this.isXAxis&&(o&&o.enabled||u&&u.enabled)&&("x"===f?r.resetZoomButton="blocked":"y"===f?e=!1:"xy"===f&&(r=this.previousZoom,c(t)?this.previousZoom=[this.min,this.max]:r&&(t=r[0],i=r[1],delete this.previousZoom))),void 0!==e?e: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 a(this))});n.call(this,t,r)});u(h.prototype,"setChartSize",function(n){var o=this.legend,t=this.navigator,i,u,f,e;n.apply(this,[].slice.call(arguments,1));t&&(u=o&&o.options,f=t.xAxis,e=t.yAxis,i=t.scrollbarHeight,this.inverted?(t.left=t.opposite?this.chartWidth-i-t.height:this.spacing[3]+i,t.top=this.plotTop+i):(t.left=this.plotLeft+i,t.top=t.navigatorOptions.top||this.chartHeight-t.height-i-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(u&&"bottom"===u.verticalAlign&&u.enabled&&!u.floating?o.legendHeight+r(u.margin,10):0)),f&&e&&(this.inverted?f.options.left=e.options.left=t.left:f.options.top=e.options.top=t.top,f.setAxisSize(),e.setAxisSize()))});u(k.prototype,"addPoint",function(n,t,i,r,u){var f=this.options.turboThreshold;f&&this.xData.length>f&&it(t,!0)&&this.chart.navigator&&g(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(k.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 o(n){this.init(n)}var i=n.addEvent,c=n.Axis,u=n.Chart,v=n.css,y=n.createElement,p=n.dateFormat,f=n.defaultOptions,l=f.global.useUTC,k=n.defined,d=n.destroyObjectProperties,g=n.discardElement,e=n.each,nt=n.extend,w=n.fireEvent,s=n.Date,r=n.isNumber,b=n.merge,t=n.pick,a=n.pInt,tt=n.splat,h=n.wrap;nt(f,{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}}});f.lang=b(f.lang,{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"From",rangeSelectorTo:"To"});o.prototype={clickButton:function(n,u){var k=this,a=k.chart,v=k.buttonOptions[n],f=a.xAxis[0],h=a.scroller&&a.scroller.getUnionExtremes()||f||{},y=h.dataMin,s=h.dataMax,w,o=f&&Math.round(Math.min(f.max,t(s,f.max))),p=v.type,b,h=v._range,d,g,nt,it=v.dataGrouping;if(null!==y&&null!==s){if(a.fixedRange=h,it&&(this.forcedDataGrouping=!0,c.prototype.setDataGrouping.call(f||{chart:this.chart},it,!1)),"month"===p||"year"===p)f?(p={range:v,max:o,dataMin:y,dataMax:s},w=f.minFromRange.call(p),r(p.newMax)&&(o=p.newMax)):h=v;else if(h)w=Math.max(o-h,y),o=Math.min(w+h,s);else if("ytd"===p)if(f)void 0===s&&(y=Number.MAX_VALUE,s=Number.MIN_VALUE,e(a.series,function(n){n=n.xData;y=Math.min(n[0],y);s=Math.max(n[n.length-1],s)}),u=!1),o=k.getYTDExtremes(s,y,l),w=d=o.min,o=o.max;else{i(a,"beforeRender",function(){k.clickButton(n)});return}else"all"===p&&f&&(w=y,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=tt(a.options.xAxis)[0],nt=b.range,b.range=h,g=b.min,b.min=d,i(a,"load",function(){b.range=nt;b.min=g}))}},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,u=r.buttons||[].concat(t.defaultButtons),f=r.selected,o=function(){var n=t.minInput,i=t.maxInput;n&&n.blur&&w(n,"blur");i&&i.blur&&w(i,"blur")};t.chart=n;t.options=r;t.buttons=[];n.extraTopMargin=r.height;t.buttonOptions=u;this.unMouseDown=i(n.container,"mousedown",o);this.unResize=i(n,"resize",o);e(u,t.computeButtonRange);void 0!==f&&u[f]&&this.clickButton(f,!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 n=this.chart,t=n.xAxis[0],i=Math.round(t.max-t.min),h=!t.hasVisibleSeries,n=n.scroller&&n.scroller.getUnionExtremes()||t,u=n.dataMin,f=n.dataMax,n=this.getYTDExtremes(f,u,l),c=n.min,a=n.max,s=this.selected,o=r(s),v=this.options.allButtonsEnabled,y=this.buttons;e(this.buttonOptions,function(n,r){var e=n._range,l=n.type,p=n.count||1,b=y[r],w=0;n=n._offsetMax-n._offsetMin;r=r===s;var g=e>f-u,nt=e<t.minRange,k=!1,d=!1,e=e===i;("month"===l||"year"===l)&&i>=864e5*{month:28,year:365}[l]*p+n&&i<=864e5*{month:31,year:366}[l]*p+n?e=!0:"ytd"===l?(e=a-c+n===i,k=!r):"all"===l&&(e=t.max-t.min>=f-u,d=!r&&o&&e);l=!v&&(g||nt||d||h);p=r&&e||e&&!o&&!k;l?w=3:p&&(o=!0,w=2);b.state!==w&&b.setState(w)})},computeButtonRange:function(n){var i=n.type,r=n.count||1,u={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5};u[i]?n._range=u[i]*r:("month"===i||"year"===i)&&(n._range=864e5*{month:30,year:365}[i]*r);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"];k(t)&&(i.previousValue=i.HCTime,i.HCTime=t);i.value=p(r.inputEditDateFormat||"%Y-%m-%d",i.HCTime);this[n+"DateBox"].attr({text:p(r.inputDateFormat||"%b %e, %Y",i.HCTime)})},showInput:function(n){var i=this.inputGroup,t=this[n+"DateBox"];v(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){v(this[n+"Input"],{border:0,width:"1px",height:"1px"});this.setInputValue(n)},drawInput:function(n){function c(){var s=i.value,n=(h.inputDateParser||Date.parse)(s),o=u.xAxis[0],f=u.scroller&&u.scroller.xAxis?u.scroller.xAxis:o,c=f.dataMin,f=f.dataMax;n!==i.previousValue&&(i.previousValue=n,r(n)||(n=s.split("-"),n=Date.UTC(a(n[0]),a(n[1])-1,a(n[2]))),r(n)&&(l||(n+=6e4*(new Date).getTimezoneOffset()),e?n>t.maxInput.HCTime?n=void 0:n<c&&(n=c):n<t.minInput.HCTime?n=void 0:n>f&&(n=f),void 0!==n&&o.setExtremes(e?n:o.min,e?o.max:n,void 0,void 0,{trigger:"rangeSelectorInput"})))}var t=this,u=t.chart,s=u.renderer,h=u.options.rangeSelector,p=t.div,e="min"===n,i,v,o=this.inputGroup;this[n+"Label"]=v=s.label(f.lang[e?"rangeSelectorFrom":"rangeSelectorTo"],this.inputGroup.offset).addClass("highcharts-range-label").attr({padding:2}).add(o);o.offset+=v.width+5;this[n+"DateBox"]=s=s.label("",o.offset).addClass("highcharts-range-input").attr({padding:2,width:h.inputBoxWidth||90,height:h.inputBoxHeight||17,stroke:h.inputBoxBorderColor||"#cccccc","stroke-width":1,"text-align":"center"}).on("click",function(){t.showInput(n);t[n+"Input"].focus()}).add(o);o.offset+=s.width+(e?10:0);this[n+"Input"]=i=y("input",{name:n,className:"highcharts-range-selector",type:"text"},{top:u.plotTop+"px"},p);i.onfocus=function(){t.showInput(n)};i.onblur=function(){t.hideInput(n)};i.onchange=c;i.onkeypress=function(n){13===n.keyCode&&c()}},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 s(n),u=r[s.hcGetFullYear]();return i=i?s.UTC(u,0,1):+new s(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,u=r.chart,tt=u.renderer,it=u.container,a=u.options,v=a.exporting&&!1!==a.exporting.enabled&&a.navigation&&a.navigation.buttonOptions,ot=f.lang,o=r.div,h=a.rangeSelector,a=h.floating,at=r.buttons,o=r.inputGroup,st=h.buttonTheme,s=h.buttonPosition,l=h.inputPosition,ht=h.inputEnabled,k=st&&st.states,d=u.plotLeft,ct,c=r.buttonGroup,rt=r.rendered;var g=r.options.verticalAlign,ut=u.legend,ft=ut&&ut.options,et=s.y,nt=l.y,lt=rt||!1,b=0,p=0,w;!1!==h.enabled&&(rt||(r.group=rt=tt.g("range-selector-group").attr({zIndex:7}).add(),r.buttonGroup=c=tt.g("range-selector-buttons").add(rt),r.zoomText=tt.text(ot.rangeSelectorZoom,t(d+s.x,d),15).css(h.labelStyle).add(c),ct=t(d+s.x,d)+r.zoomText.getBBox().width+5,e(r.buttonOptions,function(n,i){at[i]=tt.button(n.text,ct,0,function(){var t=n.events&&n.events.click,u;t&&(u=t.call(n));!1!==u&&r.clickButton(i);r.isActive=!0},st,k&&k.hover,k&&k.select,k&&k.disabled).attr({"text-align":"center"}).add(c);ct+=at[i].width+t(h.buttonSpacing,5)}),!1!==ht&&(r.div=o=y("div",null,{position:"relative",height:0,zIndex:1}),it.parentNode.insertBefore(o,it),r.inputGroup=o=tt.g("input-group").add(rt),o.offset=0,r.drawInput("min"),r.drawInput("max"))),d=u.plotLeft-u.spacing[3],r.updateButtonStates(),v&&this.titleCollision(u)&&"top"===g&&"right"===s.align&&s.y+c.getBBox().height-12<(v.y||0)+v.height&&(b=-40),"left"===s.align?w=s.x-u.spacing[3]:"right"===s.align&&(w=s.x+b-u.spacing[1]),c.align({y:s.y,width:c.getBBox().width,align:s.align,x:w},!0,u.spacingBox),r.group.placed=lt,r.buttonGroup.placed=lt,!1!==ht&&(b=v&&this.titleCollision(u)&&"top"===g&&"right"===l.align&&l.y-o.getBBox().height-12<(v.y||0)+v.height+u.spacing[0]?-40:0,"left"===l.align?w=d:"right"===l.align&&(w=-Math.max(u.axisOffset[1],-b)),o.align({y:l.y,width:o.getBBox().width,align:l.align,x:l.x+w-2},!0,u.spacingBox),it=o.alignAttr.translateX+o.alignOptions.x-b+o.getBBox().x+2,v=o.alignOptions.width,ot=c.alignAttr.translateX+c.getBBox().x,w=c.getBBox().width+20,(l.align===s.align||ot+w>it&&it+v>ot&&et<nt+o.getBBox().height)&&o.attr({translateX:o.alignAttr.translateX+(u.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:g},!0,u.spacingBox),n=r.group.getBBox().height+20,i=r.group.alignAttr.translateY,"bottom"===g&&(ut=ft&&"bottom"===ft.verticalAlign&&ft.enabled&&!ft.floating?ut.legendHeight+t(ft.margin,10):0,n=n+ut-20,p=i-n-(a?0:h.y)-10),"top"===g?(a&&(p=0),u.titleOffset&&(p=u.titleOffset+u.options.title.margin),p+=u.margin[0]-u.spacing[0]||0):"middle"===g&&(nt===et?p=0>nt?i+void 0:i:(nt||et)&&(p=0>nt||0>et?p-Math.min(nt,et):i-n+NaN)),r.group.translate(h.x,h.y+Math.floor(p)),!1!==ht&&(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,i=n.y,r=n.buttonPosition.y,n=n.inputPosition.y,t=t?t.getBBox(!0).height+13+i:0,i=Math.min(n,r);return(0>n&&0>r||0<n&&0<r)&&(t+=Math.abs(i)),t},titleCollision:function(n){return!(n.options.title.text||n.options.subtitle.text)},update:function(n){var t=this.chart;b(!0,t.options.rangeSelector,n);this.destroy();this.init(t);t.rangeSelector.render()},destroy:function(){var t=this,i=t.minInput,r=t.maxInput;t.unMouseDown();t.unResize();d(t.buttons);i&&(i.onfocus=i.onblur=i.onchange=null);r&&(r.onfocus=r.onblur=r.onchange=null);n.objectEach(t,function(n,i){n&&"chart"!==i&&(n.destroy?n.destroy():n.nodeType&&g(this[i]));n!==o.prototype[i]&&(t[i]=null)},this)}};c.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}};c.prototype.minFromRange=function(){var i=this.range,o={month:"Month",year:"FullYear"}[i.type],n,u=this.max,f,e,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,e=i):(n=u+s(u,-i.count),this.chart&&(this.chart.fixedRange=u-n)),f=t(this.dataMin,Number.MIN_VALUE),r(n)||(n=f),n<=f&&(n=f,void 0===e&&(e=s(n,i.count)),this.newMax=Math.min(n+e,this.dataMax)),r(u)||(n=void 0),n};h(u.prototype,"init",function(n,t,r){i(this,"init",function(){this.options.rangeSelector.enabled&&(this.rangeSelector=new o(this))});n.call(this,t,r)});h(u.prototype,"render",function(n,t,i){var r=this.axes,u=this.rangeSelector;u&&(e(r,function(n){n.updateNames();n.setScale()}),this.getAxisMargins(),u.render(),r=u.options.verticalAlign,u.options.floating||("bottom"===r?this.extraBottomMargin=!0:"middle"!==r&&(this.extraTopMargin=!0)));n.call(this,t,i)});h(u.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)});h(u.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)});u.prototype.adjustPlotArea=function(){var n=this.rangeSelector;this.rangeSelector&&(n=n.getHeight(),this.extraTopMargin&&(this.plotTop+=n),this.extraBottomMargin&&(this.marginBottom+=n))};u.prototype.callbacks.push(function(n){function f(){t=n.xAxis[0].getExtremes();r(t.min)&&u.render(t.min,t.max)}var t,u=n.rangeSelector,e,o;u&&(o=i(n.xAxis[0],"afterSetExtremes",function(n){u.render(n.min,n.max)}),e=i(n,"redraw",f),f());i(n,"destroy",function(){u&&(e(),o())})});n.RangeSelector=o}(t),function(n){var w=n.arrayMax,b=n.arrayMin,r=n.Axis,o=n.Chart,s=n.defined,u=n.each,k=n.format,d=n.grep,h=n.inArray,c=n.isNumber,a=n.isString,l=n.map,e=n.merge,t=n.pick,v=n.Point,y=n.Series,p=n.splat,g=n.SVGRenderer,i=n.wrap,f=y.prototype,nt=f.init,tt=f.processData,it=v.prototype.tooltipFormatter;n.StockChart=n.stockChart=function(i,r,u){var v=a(i)||i.nodeName,f=arguments[v?1:0],b=f.series,h=n.getOptions(),y,w=t(f.navigator&&f.navigator.enabled,h.navigator.enabled,!0),k=w?{startOnTick:!1,endOnTick:!1}:null,s={marker:{enabled:!1,radius:2}},c={shadow:!1,borderWidth:0};return f.xAxis=l(p(f.xAxis||{}),function(n){return e({minPadding:0,maxPadding:0,overscroll:0,ordinal:!0,title:{text:null},labels:{overflow:"justify"},showLastLabel:!0},h.xAxis,n,{type:"datetime",categories:null},k)}),f.yAxis=l(p(f.yAxis||{}),function(n){return y=t(n.opposite,!0),e({labels:{y:-2},opposite:y,showLastLabel:!1,title:{text:null}},h.yAxis,n)}),f.series=null,f=e({chart:{panning:!0,pinchType:"x"},navigator:{enabled:w},scrollbar:{enabled:t(h.scrollbar.enabled,!0)},rangeSelector:{enabled:t(h.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:c,columnrange:c,candlestick:c,ohlc:c}},f,{isStock:!0}),f.series=b,v?new o(i,f,u):new o(f,r)};i(r.prototype,"autoLabelAlign",function(n){var t=this.chart,i=this.options,t=t._labelPanes=t._labelPanes||{},r=this.options.labels;return this.chart.options.isStock&&"yAxis"===this.coll&&(i=i.top+","+i.height,!t[i]&&r.enabled)?(15===r.x&&(r.x=0),void 0===r.align&&(r.align="right"),t[i]=this,"right"):n.apply(this,[].slice.call(arguments,1))});i(r.prototype,"destroy",function(n){var t=this.chart,i=this.options&&this.options.top+","+this.options.height;return i&&t._labelPanes&&t._labelPanes[i]===this&&delete t._labelPanes[i],n.apply(this,Array.prototype.slice.call(arguments,1))});i(r.prototype,"getPlotLinePath",function(i,r,f,e,o,v){var y=this,ft=this.isLinked&&!this.series?this.linkedParent.series:this.series,p=y.chart,et=p.renderer,nt=y.left,tt=y.top,w,b,d,g,it=[],rt=[],k,ut;return"xAxis"!==y.coll&&"yAxis"!==y.coll?i.apply(this,[].slice.call(arguments,1)):(rt=function(n){var t="xAxis"===n?"yAxis":"xAxis";return n=y.options[t],c(n)?[p[t][n]]:a(n)?[p.get(n)]:l(ft,function(n){return n[t]})}(y.coll),u(y.isXAxis?p.yAxis:p.xAxis,function(n){if(s(n.options.id)?-1===n.options.id.indexOf("navigator"):1){var t=n.isXAxis?"yAxis":"xAxis",t=s(n.options[t])?p[t][n.options[t]]:p[t][0];y===t&&rt.push(n)}}),k=rt.length?[]:[y.isXAxis?p.yAxis[0]:p.xAxis[0]],u(rt,function(t){-1!==h(t,k)||n.find(k,function(n){return n.pos===t.pos&&n.len&&t.len})||k.push(t)}),ut=t(v,y.translate(r,null,null,e)),c(ut)&&(y.horiz?u(k,function(n){var t;b=n.pos;g=b+n.len;w=d=Math.round(ut+y.transB);(w<nt||w>nt+y.width)&&(o?w=d=Math.min(Math.max(nt,w),nt+y.width):t=!0);t||it.push("M",w,b,"L",d,g)}):u(k,function(n){var t;w=n.pos;d=w+n.len;b=g=Math.round(tt+y.height-ut);(b<tt||b>tt+y.height)&&(o?b=g=Math.min(Math.max(tt,b),y.top+y.height):t=!0);t||it.push("M",w,b,"L",d,g)})),0<it.length?et.crispPolyLine(it,f||1):null)});g.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};i(r.prototype,"hideCrosshair",function(n,t){n.call(this,t);this.crossLabel&&(this.crossLabel=this.crossLabel.hide())});i(r.prototype,"drawCrosshair",function(n,i,r){var e,u,o,h;if(n.call(this,i,r),s(this.crosshair.label)&&this.crosshair.label.enabled&&this.cross){n=this.chart;o=this.options.crosshair.label;h=this.horiz;e=this.opposite;u=this.left;var c=this.top,f=this.crossLabel,l,a=o.format,v="",w="inside"===this.options.tickPosition,y=!1!==this.crosshair.snap,p=0;i||(i=this.cross&&this.cross.e);l=h?"center":e?"right"===this.labelAlign?"right":"left":"left"===this.labelAlign?"left":"center";f||(f=this.crossLabel=n.renderer.label(null,null,null,o.shape||"callout").addClass("highcharts-crosshair-label"+(this.series[0]&&" highcharts-color-"+this.series[0].colorIndex)).attr({align:o.align||l,padding:t(o.padding,8),r:t(o.borderRadius,3),zIndex:2}).add(this.labelGroup));h?(l=y?r.plotX+u:i.chartX,c+=e?0:this.height):(l=e?this.width+u:0,c=y?r.plotY+c:i.chartY);a||o.formatter||(this.isDatetimeAxis&&(v="%b %d, %Y"),a="{value"+(v?":"+v:"")+"}");i=y?r[this.isXAxis?"x":"y"]:this.toValue(h?i.chartX:i.chartY);f.attr({text:a?k(a,{value:i}):o.formatter.call(this,i),x:l,y:c,visibility:"visible"});i=f.getBBox();h?(w&&!e||!w&&e)&&(c=f.y-i.height):c=f.y-i.height/2;h?(e=u-i.x,u=u+this.width-i.x):(e="left"===this.labelAlign?u:0,u="right"===this.labelAlign?u+this.width:n.chartWidth);f.translateX<e&&(p=e-f.translateX);f.translateX+i.width>=u&&(p=-(f.translateX+i.width-u));f.attr({x:l+p,y:c,anchorX:h?l:this.opposite?0:n.chartWidth,anchorY:h?this.opposite?n.chartHeight:0:c+i.height/2})}});f.init=function(){nt.apply(this,arguments);this.setCompare(this.options.compare)};f.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)};f.processData=function(){var n,t=-1,u,i,f=!0===this.options.compareStart?0:1,e,r;if(tt.apply(this,arguments),this.xAxis&&this.processedYData)for(u=this.processedXData,i=this.processedYData,e=i.length,this.pointArrayMap&&(t=h("close",this.pointArrayMap),-1===t&&(t=h(this.pointValKey||"y",this.pointArrayMap))),n=0;n<e-f;n++)if(r=i[n]&&-1<t?i[n][t]:i[n],c(r)&&u[n+f]>=this.xAxis.min&&0!==r){this.compareValue=r;break}};i(f,"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=b(t),this.dataMax=w(t))});r.prototype.setCompare=function(n,i){this.isXAxis||(u(this.series,function(t){t.setCompare(n)}),t(i,!0)&&this.chart.redraw())};v.prototype.tooltipFormatter=function(i){return i=i.replace("{point.change}",(0<this.change?"+":"")+n.numberFormat(this.change,t(this.series.tooltipOptions.changeDecimals,2))),it.apply(this,[i])};i(y.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)});i(o.prototype,"getSelectedPoints",function(n){var t=n.call(this);return u(this.series,function(n){n.hasGroupedData&&(t=t.concat(d(n.points||[],function(n){return n.selected})))}),t});i(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}),function(n){"object"==typeof module&&module.exports?module.exports=n:n(Highcharts)}(function(n){(function(n){var h=n.defaultOptions,r=n.doc,s=n.Chart,e=n.addEvent,b=n.removeEvent,y=n.fireEvent,u=n.createElement,c=n.discardElement,p=n.css,i=n.merge,l=n.pick,t=n.each,a=n.objectEach,o=n.extend,f=n.win,w=f.navigator.userAgent,v=n.SVGRenderer,k=n.Renderer.prototype.symbols,d=/Edge\/|Trident\/|MSIE /.test(w),g=/firefox/i.test(w);o(h.lang,{printChart:"Print chart",downloadPNG:"Download PNG image",downloadJPEG:"Download JPEG image",downloadPDF:"Download PDF document",downloadSVG:"Download SVG vector image",contextButtonTitle:"Chart context menu"});h.navigation={buttonOptions:{theme:{},symbolSize:14,symbolX:12.5,symbolY:10.5,align:"right",buttonSpacing:3,height:22,verticalAlign:"top",width:24}};h.exporting={type:"image/png",url:"https://export.highcharts.com/",printMaxWidth:780,scale:2,buttons:{contextButton:{className:"highcharts-contextbutton",menuClassName:"highcharts-contextmenu",symbol:"menu",_titleKey:"contextButtonTitle",menuItems:"printChart separator downloadPNG downloadJPEG downloadPDF downloadSVG".split(" ")}},menuItemDefinitions:{printChart:{textKey:"printChart",onclick:function(){this.print()}},separator:{separator:!0},downloadPNG:{textKey:"downloadPNG",onclick:function(){this.exportChart()}},downloadJPEG:{textKey:"downloadJPEG",onclick:function(){this.exportChart({type:"image/jpeg"})}},downloadPDF:{textKey:"downloadPDF",onclick:function(){this.exportChart({type:"application/pdf"})}},downloadSVG:{textKey:"downloadSVG",onclick:function(){this.exportChart({type:"image/svg+xml"})}}}};n.post=function(n,t,f){var e=u("form",i({method:"post",action:n,enctype:"multipart/form-data"},f),{display:"none"},r.body);a(t,function(n,t){u("input",{type:"hidden",name:t,value:n},null,e)});e.submit();c(e)};o(s.prototype,{sanitizeSVG:function(n,t){if(t&&t.exporting&&t.exporting.allowHTML){var i=n.match(/<\/svg>(.*?$)/);i&&i[1]&&(i='<foreignObject x="0" y="0" width="'+t.chart.width+'" height="'+t.chart.height+'"><body xmlns="http://www.w3.org/1999/xhtml">'+i[1]+"<\/body><\/foreignObject>",n=n.replace("<\/svg>",i+"<\/svg>"))}return n.replace(/zIndex="[^"]+"/g,"").replace(/isShadow="[^"]+"/g,"").replace(/symbolName="[^"]+"/g,"").replace(/jQuery[0-9]+="[^"]+"/g,"").replace(/url\(("|&quot;)(\S+)("|&quot;)\)/g,"url($2)").replace(/url\([^#]+#/g,"url(#").replace(/<svg /,'<svg xmlns:xlink="http://www.w3.org/1999/xlink" ').replace(/ (NS[0-9]+\:)?href=/g," xlink:href=").replace(/\n/," ").replace(/<\/svg>.*?$/,"<\/svg>").replace(/(fill|stroke)="rgba\(([ 0-9]+,[ 0-9]+,[ 0-9]+),([ 0-9\.]+)\)"/g,'$1="rgb($2)" $1-opacity="$3"').replace(/&nbsp;/g," ").replace(/&shy;/g,"­")},getChartHTML:function(){return this.inlineStyles(),this.container.innerHTML},getSVG:function(f){var h,a,s,v,l,e=i(this.options,f);return a=u("div",null,{position:"absolute",top:"-9999em",width:this.chartWidth+"px",height:this.chartHeight+"px"},r.body),s=this.renderTo.style.width,l=this.renderTo.style.height,s=e.exporting.sourceWidth||e.chart.width||/px$/.test(s)&&parseInt(s,10)||600,l=e.exporting.sourceHeight||e.chart.height||/px$/.test(l)&&parseInt(l,10)||400,o(e.chart,{animation:!1,renderTo:a,forExport:!0,renderer:"SVGRenderer",width:s,height:l}),e.exporting.enabled=!1,delete e.data,e.series=[],t(this.series,function(n){v=i(n.userOptions,{animation:!1,enableMouseTracking:!1,showCheckbox:!1,visible:n.visible});v.isInternal||e.series.push(v)}),t(this.axes,function(t){t.userOptions.internalKey||(t.userOptions.internalKey=n.uniqueKey())}),h=new n.Chart(e,this.callback),f&&t(["xAxis","yAxis","series"],function(n){var t={};f[n]&&(t[n]=f[n],h.update(t))}),t(this.axes,function(t){var r=n.find(h.axes,function(n){return n.options.internalKey===t.userOptions.internalKey}),i=t.getExtremes(),u=i.userMin,i=i.userMax;r&&(void 0!==u||void 0!==i)&&r.setExtremes(u,i,!0,!1)}),s=h.getChartHTML(),s=this.sanitizeSVG(s,e),e=null,h.destroy(),c(a),s},getSVGForExport:function(n,t){var r=this.options.exporting;return this.getSVG(i({chart:{borderRadius:0}},r.chartOptions,t,{exporting:{sourceWidth:n&&n.sourceWidth||r.sourceWidth,sourceHeight:n&&n.sourceHeight||r.sourceHeight}}))},exportChart:function(t,r){r=this.getSVGForExport(t,r);t=i(this.options.exporting,t);n.post(t.url,{filename:t.filename||"chart",type:t.type,width:t.width||0,scale:t.scale,svg:r},t.formAttributes)},print:function(){var n=this,i=n.container,e=[],l=i.parentNode,o=r.body,s=o.childNodes,u=n.options.exporting.printMaxWidth,h,c;n.isPrinting||(n.isPrinting=!0,n.pointer.reset(null,0),y(n,"beforePrint"),(c=u&&n.chartWidth>u)&&(h=[n.options.chart.width,void 0,!1],n.setSize(u,void 0,!1)),t(s,function(n,t){1===n.nodeType&&(e[t]=n.style.display,n.style.display="none")}),o.appendChild(i),f.focus(),f.print(),setTimeout(function(){l.appendChild(i);t(s,function(n,t){1===n.nodeType&&(n.style.display=e[t])});n.isPrinting=!1;c&&n.setSize.apply(n,h);y(n,"afterPrint")},1e3))},contextMenu:function(i,f,o,s,h,c,l){var a=this,k=a.chartWidth,d=a.chartHeight,g="cache-"+i,v=a[g],y=Math.max(h,c),w,b;v||(a[g]=v=u("div",{className:i},{position:"absolute",zIndex:1e3,padding:y+"px"},a.container),w=u("div",{className:"highcharts-menu"},null,v),b=function(){p(v,{display:"none"});l&&l.setState(0);a.openMenu=!1},a.exportEvents.push(e(v,"mouseleave",function(){v.hideTimer=setTimeout(b,500)}),e(v,"mouseenter",function(){clearTimeout(v.hideTimer)}),e(r,"mouseup",function(n){a.pointer.inClass(n.target,i)||b()})),t(f,function(t){if("string"==typeof t&&(t=a.options.exporting.menuItemDefinitions[t]),n.isObject(t,!0)){var i;i=t.separator?u("hr",null,null,w):u("div",{className:"highcharts-menu-item",onclick:function(n){n&&n.stopPropagation();b();t.onclick&&t.onclick.apply(a,arguments)},innerHTML:t.text||a.options.lang[t.textKey]},null,w);a.exportDivElements.push(i)}}),a.exportDivElements.push(w,v),a.exportMenuWidth=v.offsetWidth,a.exportMenuHeight=v.offsetHeight);f={display:"block"};o+a.exportMenuWidth>k?f.right=k-o-h-y+"px":f.left=o-y+"px";s+c+a.exportMenuHeight>d&&"top"!==l.alignOptions.verticalAlign?f.bottom=d-s-y+"px":f.top=s+c-y+"px";p(v,f);a.openMenu=!0},addButton:function(n){var r=this,c=r.renderer,t=i(r.options.navigation.buttonOptions,n),a=t.onclick,v=t.menuItems,y,u,s=t.symbolSize||12;if(r.btnCount||(r.btnCount=0),r.exportDivElements||(r.exportDivElements=[],r.exportSVGElements=[]),!1!==t.enabled){var f=t.theme,e=f.states,p=e&&e.hover,e=e&&e.select,h;delete f.states;a?h=function(n){n.stopPropagation();a.call(r,n)}:v&&(h=function(){r.contextMenu(u.menuClassName,v,u.translateX,u.translateY,u.width,u.height,u);u.setState(2)});t.text&&t.symbol?f.paddingLeft=l(f.paddingLeft,25):t.text||o(f,{width:t.width,height:t.height,padding:0});u=c.button(t.text,0,0,h,f,p,e).addClass(n.className).attr({title:r.options.lang[t._titleKey],zIndex:3});u.menuClassName=n.menuClassName||"highcharts-menu-"+r.btnCount++;t.symbol&&(y=c.symbol(t.symbol,t.symbolX-s/2,t.symbolY-s/2,s,s).addClass("highcharts-button-symbol").attr({zIndex:1}).add(u));u.add().align(o(t,{width:u.width,x:l(t.x,r.buttonOffset)}),!0,"spacingBox");r.buttonOffset+=(u.width+t.buttonSpacing)*("right"===t.align?-1:1);r.exportSVGElements.push(u,y)}},destroyExport:function(n){var i=n?n.target:this,r,u,f;n=i.exportSVGElements;r=i.exportDivElements;u=i.exportEvents;n&&(t(n,function(n,t){n&&(n.onclick=n.ontouchstart=null,f="cache-"+n.menuClassName,i[f]&&delete i[f],i.exportSVGElements[t]=n.destroy())}),n.length=0);r&&(t(r,function(n,t){clearTimeout(n.hideTimer);b(n,"mouseleave");i.exportDivElements[t]=n.onmouseout=n.onmouseover=n.ontouchstart=n.onclick=null;c(n)}),r.length=0);u&&(t(u,function(n){n()}),u.length=0)}});v.prototype.inlineToAttributes="fill stroke strokeLinecap strokeLinejoin strokeWidth textAnchor x y".split(" ");v.prototype.inlineBlacklist=[/-/,/^(clipPath|cssText|d|height|width)$/,/^font$/,/[lL]ogical(Width|Height)$/,/perspective/,/TapHighlightColor/,/^transition/];v.prototype.unstyledElements=["clipPath","defs","desc"];s.prototype.inlineStyles=function(){function h(n){return n.replace(/([A-Z])/g,function(n,t){return"-"+t.toLowerCase()})}function c(e){function rt(n,t){if(w=nt=!1,o){for(b=o.length;b--&&!nt;)nt=o[b].test(t);w=!nt}for("transform"===t&&"none"===n&&(w=!0),b=l.length;b--&&!w;)w=l[b].test(t)||"function"==typeof n;w||ut[t]!==n&&s[e.nodeName][t]!==n&&(-1!==v.indexOf(t)?e.setAttribute(h(t),n):tt+=h(t)+":"+n+";")}var p,ut,tt="",k,w,nt,b,it;if(1===e.nodeType&&-1===y.indexOf(e.nodeName)){if(p=f.getComputedStyle(e,null),ut="svg"===e.nodeName?{}:f.getComputedStyle(e.parentNode,null),s[e.nodeName]||(u||(u=r.createElementNS(n.SVG_NS,"svg"),u.setAttribute("version","1.1"),r.body.appendChild(u)),k=r.createElementNS(e.namespaceURI,e.nodeName),u.appendChild(k),s[e.nodeName]=i(f.getComputedStyle(k,null)),u.removeChild(k)),g||d)for(it in p)rt(p[it],it);else a(p,rt);tt&&(p=e.getAttribute("style"),e.setAttribute("style",(p?p+";":"")+tt));"svg"===e.nodeName&&e.setAttribute("stroke-width","1px");"text"!==e.nodeName&&t(e.children||e.childNodes,c)}}var e=this.renderer,v=e.inlineToAttributes,l=e.inlineBlacklist,o=e.inlineWhitelist,y=e.unstyledElements,s={},u;c(this.container.querySelector("svg"));u.parentNode.removeChild(u)};k.menu=function(n,t,i,r){return["M",n,t+2.5,"L",n+i,t+2.5,"M",n,t+r/2+.5,"L",n+i,t+r/2+.5,"M",n,t+r-1.5,"L",n+i,t+r-1.5]};s.prototype.renderExporting=function(){var n=this,t=n.options.exporting,i=t.buttons,r=n.isDirtyExporting||!n.exportSVGElements;n.buttonOffset=0;n.isDirtyExporting&&n.destroyExport();r&&!1!==t.enabled&&(n.exportEvents=[],a(i,function(t){n.addButton(t)}),n.isDirtyExporting=!1);e(n,"destroy",n.destroyExport)};s.prototype.callbacks.push(function(n){n.renderExporting();e(n,"redraw",n.renderExporting);t(["exporting","navigation"],function(t){n[t]={update:function(r,u){n.isDirtyExporting=!0;i(!0,n.options[t],r);l(u,!0)&&n.redraw()}}})})})(n)});var bPreTimelinePC="",bVisited=!1,bPreTimelineCP="";(function(){var n,t;t=function(){function n(n){return(this.$el=$(n),this.value=this.$el.data("numericcolor-index"),this.value==null)?!1:(this.value=this.clean(this.value),this.value!=0&&!this.value)?!1:(this.check(),t=this)}var t;return t=void 0,n.prototype.clean=function(n){return n=String(n),parseFloat(n.replace(",",""))},n.prototype.check=function(){return this.value>=0?this.positive():this.negative()},n.prototype.positive=function(){return this.$el.addClass("numeric-positive-index"),this.$el.trigger("numeric",!0)},n.prototype.negative=function(){return this.$el.addClass("numeric-negative-index"),this.$el.trigger("numeric",!1)},n}();n=$("[data-numericcolor-index]");n.each(function(){return new t(this)})}).call(this),function(n){n(jQuery)}(function(n){function e(r){var f=r||window.event,w=h.call(arguments,1),l=0,o=0,e=0,a=0,b=0,k=0,v,y,p;if(r=n.event.fix(f),r.type="mousewheel","detail"in f&&(e=f.detail*-1),"wheelDelta"in f&&(e=f.wheelDelta),"wheelDeltaY"in f&&(e=f.wheelDeltaY),"wheelDeltaX"in f&&(o=f.wheelDeltaX*-1),"axis"in f&&f.axis===f.HORIZONTAL_AXIS&&(o=e*-1,e=0),l=e===0?o:e,"deltaY"in f&&(e=f.deltaY*-1,l=e),"deltaX"in f&&(o=f.deltaX,e===0&&(l=o*-1)),e!==0||o!==0)return f.deltaMode===1?(v=n.data(this,"mousewheel-line-height"),l*=v,e*=v,o*=v):f.deltaMode===2&&(y=n.data(this,"mousewheel-page-height"),l*=y,e*=y,o*=y),a=Math.max(Math.abs(e),Math.abs(o)),(!t||a<t)&&(t=a,s(f,a)&&(t/=40)),s(f,a)&&(l/=40,o/=40,e/=40),l=Math[l>=1?"floor":"ceil"](l/t),o=Math[o>=1?"floor":"ceil"](o/t),e=Math[e>=1?"floor":"ceil"](e/t),i.settings.normalizeOffset&&this.getBoundingClientRect&&(p=this.getBoundingClientRect(),b=r.clientX-p.left,k=r.clientY-p.top),r.deltaX=o,r.deltaY=e,r.deltaFactor=t,r.offsetX=b,r.offsetY=k,r.deltaMode=0,w.unshift(r,l,o,e),u&&clearTimeout(u),u=setTimeout(c,200),(n.event.dispatch||n.event.handle).apply(this,w)}function c(){t=null}function s(n,t){return i.settings.adjustOldDeltas&&n.type==="mousewheel"&&t%120==0}var o=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],r="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],h=Array.prototype.slice,u,t,f,i;if(n.event.fixHooks)for(f=o.length;f;)n.event.fixHooks[o[--f]]=n.event.mouseHooks;i=n.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var t=r.length;t;)this.addEventListener(r[--t],e,!1);else this.onmousewheel=e;n.data(this,"mousewheel-line-height",i.getLineHeight(this));n.data(this,"mousewheel-page-height",i.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var t=r.length;t;)this.removeEventListener(r[--t],e,!1);else this.onmousewheel=null;n.removeData(this,"mousewheel-line-height");n.removeData(this,"mousewheel-page-height")},getLineHeight:function(t){var r=n(t),i=r["offsetParent"in n.fn?"offsetParent":"parent"]();return i.length||(i=n("body")),parseInt(i.css("fontSize"),10)||parseInt(r.css("fontSize"),10)||16},getPageHeight:function(t){return n(t).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};n.fn.extend({mousewheel:function(n){return n?this.bind("mousewheel",n):this.trigger("mousewheel")},unmousewheel:function(n){return this.unbind("mousewheel",n)}})});!function(n){"function"==n(jQuery)}(function(n){n.fn.jScrollPane=function(t){function i(t,i){function fi(i){var c,k,d,v,y,w,g=!1,nt=!1;if(r=i,void 0===u)y=t.scrollTop(),w=t.scrollLeft(),t.css({overflow:"hidden",padding:0}),o=t.innerWidth()+et,e=t.innerHeight(),t.width(o),u=n('<div class="jspPane" />').css("padding",ci).append(t.children()),f=n('<div class="jspContainer" />').css({width:o+"px",height:e+"px"}).append(u).appendTo(t);else{if(t.css("width",""),g=r.stickToBottom&&fr(),nt=r.stickToRight&&er(),v=t.innerWidth()+et!=o||t.outerHeight()!=e,v&&(o=t.innerWidth()+et,e=t.innerHeight(),f.css({width:o+"px",height:e+"px"})),!v&&ki==a&&u.outerHeight()==l)return void t.width(o);ki=a;u.css("width","");t.width(o);f.find(">.jspVerticalBar,>.jspHorizontalBar").remove().end()}u.css("overflow","auto");a=i.contentWidth?i.contentWidth:u[0].scrollWidth;l=u[0].scrollHeight;u.css("overflow","");si=a/o;dt=l/e;b=dt>1;p=si>1;p||b?(t.addClass("jspScrollable"),c=r.maintainPosition&&(s||h),c&&(k=it(),d=rt()),di(),gi(),nr(),c&&(ct(nt?a-o:k,!1),tt(g?l-e:d,!1)),hr(),or(),pr(),r.enableKeyboardNavigation&&lr(),r.clickOnTrack&&ir(),vr(),r.hijackInternalLinks&&yr()):(t.removeClass("jspScrollable"),u.css({top:0,left:0,width:f.width()-et}),sr(),cr(),ar(),wi());r.autoReinitialise&&!vt?vt=setInterval(function(){fi(r)},r.autoReinitialiseDelay):!r.autoReinitialise&&vt&&clearInterval(vt);y&&t.scrollTop(0)&&tt(y,!1);w&&t.scrollLeft(0)&&ct(w,!1);t.trigger("jsp-initialised",[p||b])}function di(){b&&(f.append(n('<div class="jspVerticalBar" />').append(n('<div class="jspCap jspCapTop" />'),n('<div class="jspTrack" />').append(n('<div class="jspDrag" />').append(n('<div class="jspDragTop" />'),n('<div class="jspDragBottom" />'))),n('<div class="jspCap jspCapBottom" />'))),gt=f.find(">.jspVerticalBar"),d=gt.find(">.jspTrack"),v=d.find(">.jspDrag"),r.showArrows&&(yt=n('<a class="jspArrow jspArrowUp" />').bind("mousedown.jsp",nt(0,-1)).bind("click.jsp",lt),pt=n('<a class="jspArrow jspArrowDown" />').bind("mousedown.jsp",nt(0,1)).bind("click.jsp",lt),r.arrowScrollOnHover&&(yt.bind("mouseover.jsp",nt(0,-1,yt)),pt.bind("mouseover.jsp",nt(0,1,pt))),pi(d,r.verticalArrowPositions,yt,pt)),at=e,f.find(">.jspVerticalBar>.jspCap:visible,>.jspVerticalBar>.jspArrow").each(function(){at-=n(this).outerHeight()}),v.hover(function(){v.addClass("jspHover")},function(){v.removeClass("jspHover")}).bind("mousedown.jsp",function(t){n("html").bind("dragstart.jsp selectstart.jsp",lt);v.addClass("jspActive");var i=t.pageY-v.position().top;return n("html").bind("mousemove.jsp",function(n){ot(n.pageY-i,!1)}).bind("mouseup.jsp mouseleave.jsp",bi),!1}),vi())}function vi(){d.height(at+"px");s=0;hi=r.verticalGutter+d.outerWidth();u.width(o-hi-et);try{0===gt.position().left&&u.css("margin-left",hi+"px")}catch(n){}}function gi(){p&&(f.append(n('<div class="jspHorizontalBar" />').append(n('<div class="jspCap jspCapLeft" />'),n('<div class="jspTrack" />').append(n('<div class="jspDrag" />').append(n('<div class="jspDragLeft" />'),n('<div class="jspDragRight" />'))),n('<div class="jspCap jspCapRight" />'))),ni=f.find(">.jspHorizontalBar"),g=ni.find(">.jspTrack"),y=g.find(">.jspDrag"),r.showArrows&&(wt=n('<a class="jspArrow jspArrowLeft" />').bind("mousedown.jsp",nt(-1,0)).bind("click.jsp",lt),bt=n('<a class="jspArrow jspArrowRight" />').bind("mousedown.jsp",nt(1,0)).bind("click.jsp",lt),r.arrowScrollOnHover&&(wt.bind("mouseover.jsp",nt(-1,0,wt)),bt.bind("mouseover.jsp",nt(1,0,bt))),pi(g,r.horizontalArrowPositions,wt,bt)),y.hover(function(){y.addClass("jspHover")},function(){y.removeClass("jspHover")}).bind("mousedown.jsp",function(t){n("html").bind("dragstart.jsp selectstart.jsp",lt);y.addClass("jspActive");var i=t.pageX-y.position().left;return n("html").bind("mousemove.jsp",function(n){ht(n.pageX-i,!1)}).bind("mouseup.jsp mouseleave.jsp",bi),!1}),st=f.innerWidth(),yi())}function yi(){f.find(">.jspHorizontalBar>.jspCap:visible,>.jspHorizontalBar>.jspArrow").each(function(){st-=n(this).outerWidth()});g.width(st+"px");h=0}function nr(){if(p&&b){var t=g.outerHeight(),i=d.outerWidth();at-=t;n(ni).find(">.jspCap:visible,>.jspArrow").each(function(){st+=n(this).outerWidth()});st-=i;e-=i;o-=t;g.parent().append(n('<div class="jspCorner" />').css("width",t+"px"));vi();yi()}p&&u.width(f.outerWidth()-et+"px");l=u.outerHeight();dt=l/e;p&&(ft=Math.ceil(1/si*st),ft>r.horizontalDragMaxWidth?ft=r.horizontalDragMaxWidth:ft<r.horizontalDragMinWidth&&(ft=r.horizontalDragMinWidth),y.width(ft+"px"),k=st-ft,oi(h));b&&(ut=Math.ceil(1/dt*at),ut>r.verticalDragMaxHeight?ut=r.verticalDragMaxHeight:ut<r.verticalDragMinHeight&&(ut=r.verticalDragMinHeight),v.height(ut+"px"),w=at-ut,ei(s))}function pi(n,t,i,r){var e,u="before",f="after";"os"==t&&(t=/Mac/.test(navigator.platform)?"after":"split");t==u?f=t:t==f&&(u=t,e=i,i=r,r=e);n[u](i)[f](r)}function nt(n,t,i){return function(){return tr(n,t,this,i),this.blur(),!1}}function tr(t,i,u,f){u=n(u).addClass("jspActive");var o,e,s=!0,h=function(){0!==t&&c.scrollByX(t*r.arrowButtonSpeed);0!==i&&c.scrollByY(i*r.arrowButtonSpeed);e=setTimeout(h,s?r.initialDelay:r.arrowRepeatFreq);s=!1};h();o=f?"mouseout.jsp":"mouseup.jsp";f=f||n("html");f.bind(o,function(){u.removeClass("jspActive");e&&clearTimeout(e);e=null;f.unbind(o)})}function ir(){wi();b&&d.bind("mousedown.jsp",function(t){if(void 0===t.originalTarget||t.originalTarget==t.currentTarget){var i,f=n(this),v=f.offset(),o=t.pageY-v.top-s,h=!0,a=function(){var p=f.offset(),n=t.pageY-p.top-ut/2,v=e*r.scrollPagePercent,y=w*v/(l-e);if(0>o)s-y>n?c.scrollByY(-v):ot(n);else{if(!(o>0))return void u();n>s+y?c.scrollByY(v):ot(n)}i=setTimeout(a,h?r.initialDelay:r.trackClickRepeatFreq);h=!1},u=function(){i&&clearTimeout(i);i=null;n(document).unbind("mouseup.jsp",u)};return a(),n(document).bind("mouseup.jsp",u),!1}});p&&g.bind("mousedown.jsp",function(t){if(void 0===t.originalTarget||t.originalTarget==t.currentTarget){var i,f=n(this),v=f.offset(),e=t.pageX-v.left-h,s=!0,l=function(){var p=f.offset(),n=t.pageX-p.left-ft/2,v=o*r.scrollPagePercent,y=k*v/(a-o);if(0>e)h-y>n?c.scrollByX(-v):ht(n);else{if(!(e>0))return void u();n>h+y?c.scrollByX(v):ht(n)}i=setTimeout(l,s?r.initialDelay:r.trackClickRepeatFreq);s=!1},u=function(){i&&clearTimeout(i);i=null;n(document).unbind("mouseup.jsp",u)};return l(),n(document).bind("mouseup.jsp",u),!1}})}function wi(){g&&g.unbind("mousedown.jsp");d&&d.unbind("mousedown.jsp")}function bi(){n("html").unbind("dragstart.jsp selectstart.jsp mousemove.jsp mouseup.jsp mouseleave.jsp");v&&v.removeClass("jspActive");y&&y.removeClass("jspActive")}function ot(i,u){var f;if(b&&(0>i?i=0:i>w&&(i=w),f=new n.Event("jsp-will-scroll-y"),t.trigger(f,[i]),!f.isDefaultPrevented())){var o=i||0,s=0===o,h=o==w,y=i/w,a=-y*(l-e);void 0===u&&(u=r.animateScroll);u?c.animate(v,"top",i,ei,function(){t.trigger("jsp-user-scroll-y",[-a,s,h])}):(v.css("top",i),ei(i),t.trigger("jsp-user-scroll-y",[-a,s,h]))}}function ei(n){void 0===n&&(n=v.position().top);f.scrollTop(0);s=n||0;var i=0===s,r=s==w,h=n/w,o=-h*(l-e);(ti!=i||ri!=r)&&(ti=i,ri=r,t.trigger("jsp-arrow-change",[ti,ri,ii,ui]));rr(i,r);u.css("top",o);t.trigger("jsp-scroll-y",[-o,i,r]).trigger("scroll")}function ht(i,u){var f;if(p&&(0>i?i=0:i>k&&(i=k),f=new n.Event("jsp-will-scroll-x"),t.trigger(f,[i]),!f.isDefaultPrevented())){var e=i||0,s=0===e,h=e==k,v=i/k,l=-v*(a-o);void 0===u&&(u=r.animateScroll);u?c.animate(y,"left",i,oi,function(){t.trigger("jsp-user-scroll-x",[-l,s,h])}):(y.css("left",i),oi(i),t.trigger("jsp-user-scroll-x",[-l,s,h]))}}function oi(n){void 0===n&&(n=y.position().left);f.scrollTop(0);h=n||0;var i=0===h,r=h==k,s=n/k,e=-s*(a-o);(ii!=i||ui!=r)&&(ii=i,ui=r,t.trigger("jsp-arrow-change",[ti,ri,ii,ui]));ur(i,r);u.css("left",e);t.trigger("jsp-scroll-x",[-e,i,r]).trigger("scroll")}function rr(n,t){r.showArrows&&(yt[n?"addClass":"removeClass"]("jspDisabled"),pt[t?"addClass":"removeClass"]("jspDisabled"))}function ur(n,t){r.showArrows&&(wt[n?"addClass":"removeClass"]("jspDisabled"),bt[t?"addClass":"removeClass"]("jspDisabled"))}function tt(n,t){var i=n/(l-e);ot(i*w,t)}function ct(n,t){var i=n/(a-o);ht(i*k,t)}function kt(t,i,u){var s,v,y,p,w,b,k,l,a,h=0,c=0;try{s=n(t)}catch(d){return}for(v=s.outerHeight(),y=s.outerWidth(),f.scrollTop(0),f.scrollLeft(0);!s.is(".jspPane");)if(h+=s.position().top,c+=s.position().left,s=s.offsetParent(),/^body|html$/i.test(s[0].nodeName))return;p=rt();b=p+e;p>h||i?l=h-r.horizontalGutter:h+v>b&&(l=h-e+v+r.horizontalGutter);isNaN(l)||tt(l,u);w=it();k=w+o;w>c||i?a=c-r.horizontalGutter:c+y>k&&(a=c-o+y+r.horizontalGutter);isNaN(a)||ct(a,u)}function it(){return-u.position().left}function rt(){return-u.position().top}function fr(){var n=l-e;return n>20&&n-rt()<10}function er(){var n=a-o;return n>20&&n-it()<10}function or(){f.unbind(ai).bind(ai,function(n,t,i,u){h||(h=0);s||(s=0);var e=h,o=s,f=n.deltaFactor||r.mouseWheelSpeed;return c.scrollBy(i*f,-u*f,!1),e==h&&o==s})}function sr(){f.unbind(ai)}function lt(){return!1}function hr(){u.find(":input,a").unbind("focus.jsp").bind("focus.jsp",function(n){kt(n.target,!1)})}function cr(){u.find(":input,a").unbind("focus.jsp")}function lr(){function v(){var n=h,t=s;switch(i){case 40:c.scrollByY(r.keyboardSpeed,!1);break;case 38:c.scrollByY(-r.keyboardSpeed,!1);break;case 34:case 32:c.scrollByY(e*r.scrollPagePercent,!1);break;case 33:c.scrollByY(-e*r.scrollPagePercent,!1);break;case 39:c.scrollByX(r.keyboardSpeed,!1);break;case 37:c.scrollByX(-r.keyboardSpeed,!1)}return a=n!=h||t!=s}var i,a,o=[];p&&o.push(ni[0]);b&&o.push(gt[0]);u.bind("focus.jsp",function(){t.focus()});t.attr("tabindex",0).unbind("keydown.jsp keypress.jsp").bind("keydown.jsp",function(t){if(t.target===this||o.length&&n(t.target).closest(o).length){var r=h,u=s;switch(t.keyCode){case 40:case 38:case 34:case 32:case 33:case 39:case 37:i=t.keyCode;v();break;case 35:tt(l-e);i=null;break;case 36:tt(0);i=null}return a=t.keyCode==i&&r!=h||u!=s,!a}}).bind("keypress.jsp",function(t){return t.keyCode==i&&v(),t.target===this||o.length&&n(t.target).closest(o).length?!a:void 0});r.hideFocus?(t.css("outline","none"),"hideFocus"in f[0]&&t.attr("hideFocus",!0)):(t.css("outline",""),"hideFocus"in f[0]&&t.attr("hideFocus",!1))}function ar(){t.attr("tabindex","-1").removeAttr("tabindex").unbind("keydown.jsp keypress.jsp");u.unbind(".jsp")}function vr(){if(location.hash&&location.hash.length>1){var t,r,i=escape(location.hash.substr(1));try{t=n("#"+i+', a[name="'+i+'"]')}catch(e){return}t.length&&u.find(i)&&(0===f.scrollTop()?r=setInterval(function(){f.scrollTop()>0&&(kt(t,!0),n(document).scrollTop(f.position().top),clearInterval(r))},50):(kt(t,!0),n(document).scrollTop(f.position().top)))}}function yr(){n(document.body).data("jspHijack")||(n(document.body).data("jspHijack",!0),n(document.body).delegate('a[href*="#"]',"click",function(t){var u,i,r,o,f,e,h=this.href.substr(0,this.href.indexOf("#")),s=location.href;if(-1!==location.href.indexOf("#")&&(s=location.href.substr(0,location.href.indexOf("#"))),h===s){u=escape(this.href.substr(this.href.indexOf("#")+1));try{i=n("#"+u+', a[name="'+u+'"]')}catch(c){return}i.length&&(r=i.closest(".jspScrollable"),o=r.data("jsp"),o.scrollToElement(i,!0),r[0].scrollIntoView&&(f=n(window).scrollTop(),e=i.offset().top,(f>e||e>f+n(window).height())&&r[0].scrollIntoView()),t.preventDefault())}}))}function pr(){var u,e,t,i,n,r=!1;f.unbind("touchstart.jsp touchmove.jsp touchend.jsp click.jsp-touchclick").bind("touchstart.jsp",function(f){var o=f.originalEvent.touches[0];u=it();e=rt();t=o.pageX;i=o.pageY;n=!1;r=!0}).bind("touchmove.jsp",function(f){if(r){var o=f.originalEvent.touches[0],l=h,a=s;return c.scrollTo(u+t-o.pageX,e+i-o.pageY),n=n||Math.abs(t-o.pageX)>5||Math.abs(i-o.pageY)>5,l==h&&a==s}}).bind("touchend.jsp",function(){r=!1}).bind("click.jsp-touchclick",function(){if(n)return(n=!1,!1)})}function wr(){var n=rt(),i=it();t.removeClass("jspScrollable").unbind(".jsp");u.unbind(".jsp");t.replaceWith(li.append(u.children()));li.scrollTop(n);li.scrollLeft(i);vt&&clearInterval(vt)}var r,u,o,e,f,a,l,si,dt,b,p,v,w,s,y,k,h,gt,d,hi,at,ut,yt,pt,ni,g,st,ft,wt,bt,vt,ci,et,ki,c=this,ti=!0,ii=!0,ri=!1,ui=!1,li=t.clone(!1,!1).empty(),ai=n.fn.mwheelIntent?"mwheelIntent.jsp":"mousewheel.jsp";"border-box"===t.css("box-sizing")?(ci=0,et=0):(ci=t.css("paddingTop")+" "+t.css("paddingRight")+" "+t.css("paddingBottom")+" "+t.css("paddingLeft"),et=(parseInt(t.css("paddingLeft"),10)||0)+(parseInt(t.css("paddingRight"),10)||0));n.extend(c,{reinitialise:function(t){t=n.extend({},r,t);fi(t)},scrollToElement:function(n,t,i){kt(n,t,i)},scrollTo:function(n,t,i){ct(n,i);tt(t,i)},scrollToX:function(n,t){ct(n,t)},scrollToY:function(n,t){tt(n,t)},scrollToPercentX:function(n,t){ct(n*(a-o),t)},scrollToPercentY:function(n,t){tt(n*(l-e),t)},scrollBy:function(n,t,i){c.scrollByX(n,i);c.scrollByY(t,i)},scrollByX:function(n,t){var i=it()+Math[0>n?"floor":"ceil"](n),r=i/(a-o);ht(r*k,t)},scrollByY:function(n,t){var i=rt()+Math[0>n?"floor":"ceil"](n),r=i/(l-e);ot(r*w,t)},positionDragX:function(n,t){ht(n,t)},positionDragY:function(n,t){ot(n,t)},animate:function(n,t,i,u,f){var e={};e[t]=i;n.animate(e,{duration:r.animateDuration,easing:r.animateEase,queue:!1,step:u,complete:f})},getContentPositionX:function(){return it()},getContentPositionY:function(){return rt()},getContentWidth:function(){return a},getContentHeight:function(){return l},getPercentScrolledX:function(){return it()/(a-o)},getPercentScrolledY:function(){return rt()/(l-e)},getIsScrollableH:function(){return p},getIsScrollableV:function(){return b},getContentPane:function(){return u},scrollToBottom:function(n){ot(w,n)},hijackInternalLinks:n.noop,destroy:function(){wr()}});fi(i)}return t=n.extend({},n.fn.jScrollPane.defaults,t),n.each(["arrowButtonSpeed","trackClickSpeed","keyboardSpeed"],function(){t[this]=t[this]||t.speed}),this.each(function(){var r=n(this),u=r.data("jsp");u?u.reinitialise(t):(n("script",r).filter('[type="text/javascript"],:not([type])').remove(),u=new i(r,t),r.data("jsp",u))})};n.fn.jScrollPane.defaults={showArrows:!1,maintainPosition:!0,stickToBottom:!1,stickToRight:!1,clickOnTrack:!0,autoReinitialise:1,autoReinitialiseDelay:100,verticalDragMinHeight:0,verticalDragMaxHeight:99999,horizontalDragMinWidth:0,horizontalDragMaxWidth:99999,contentWidth:void 0,animateScroll:!1,animateDuration:300,animateEase:"linear",hijackInternalLinks:!1,verticalGutter:4,horizontalGutter:4,mouseWheelSpeed:3,arrowButtonSpeed:0,arrowRepeatFreq:50,arrowScrollOnHover:!1,trackClickSpeed:0,trackClickRepeatFreq:70,verticalArrowPositions:"split",horizontalArrowPositions:"split",enableKeyboardNavigation:!0,hideFocus:1,keyboardSpeed:0,initialDelay:300,speed:30,scrollPagePercent:.8}});$(document).ready(function(){$("#FeaturedIndices").attr("checked",!0);$(".list-idxhome").jScrollPane();$("#MyIndices").bind("click",function(){$("#FeaturedIndices").attr("checked",!1);$("#dlFeaturedIndices").removeClass("active");$("#dlMyIndices").addClass("active")});$("#FeaturedIndices").bind("click",function(){$("#MyIndices").attr("checked",!1);$("#dlMyIndices").removeClass("active");$("#dlFeaturedIndices").addClass("active")})});selectedEvents="",function(n,t,i){"use strict";var r=function(n,t){this.$originalElement=n;this.options=t;this.metadata=this.$originalElement.data("sol-options");this.allowTyping="false";this.$originalElement.attr("allowTyping")!=null&&this.$originalElement.attr("allowTyping").trim()!=""&&(this.allowTyping=this.$originalElement.attr("allowTyping"));this.allowSearch="true";this.$originalElement.attr("allowSearch")!=null&&this.$originalElement.attr("allowSearch").trim()!=""&&(this.allowSearch=this.$originalElement.attr("allowSearch"));this.placeHolderText="Click here to select";this.$originalElement.attr("placeHolderText")!=null&&this.$originalElement.attr("placeHolderText").trim()!=""&&(this.placeHolderText=this.$originalElement.attr("placeHolderText"));this.showTextInTextBox="false";this.$originalElement.attr("showTextInTextBox")!=null&&this.$originalElement.attr("showTextInTextBox").trim()!=""&&(this.showTextInTextBox=this.$originalElement.attr("showTextInTextBox"))};r.prototype={SOL_OPTION_FORMAT:{type:"option",value:undefined,selected:!1,disabled:!1,label:undefined,tooltip:undefined,cssClass:""},SOL_OPTIONGROUP_FORMAT:{type:"optiongroup",label:undefined,tooltip:undefined,disabled:!1,children:undefined},DATA_KEY:"sol-element",WINDOW_EVENTS_KEY:"sol-window-events",defaults:{data:undefined,name:undefined,texts:{noItemsAvailable:"No entries found",selectAll:"Select all",selectNone:"Select none",quickDelete:"&times;",searchplaceholder:"Click here to select",loadingData:"Still loading data...",itemsSelected:"{$a} items selected"},events:{onInitialized:undefined,onRendered:undefined,onOpen:undefined,onClose:undefined,onChange:undefined,onScroll:function(){var n=this.$input.offset().top-this.config.scrollTarget.scrollTop()+this.$input.outerHeight(!1),f=this.$selectionContainer.outerHeight(!1),e=n+f,t=this.config.displayContainerAboveInput||i.documentElement.clientHeight-this.config.scrollTarget.scrollTop()<e,r=this.$innerContainer.outerWidth(!1)-parseInt(this.$selectionContainer.css("border-left-width"),10)-parseInt(this.$selectionContainer.css("border-right-width"),10),u;t?(n=this.$input.offset().top-f-this.config.scrollTarget.scrollTop()+parseInt(this.$selectionContainer.css("border-bottom-width"),10),this.$container.removeClass("sol-selection-bottom").addClass("sol-selection-top")):this.$container.removeClass("sol-selection-top").addClass("sol-selection-bottom");this.$innerContainer.css("display")!=="block"?r=r*1.2:(u=t?"border-bottom-right-radius":"border-top-right-radius",this.$selectionContainer.css(u,"initial"),this.$actionButtons&&this.$actionButtons.css(u,"initial"));this.$selectionContainer.css("top",Math.floor(n)).css("left",Math.floor(this.$container.offset().left)).css("width",r);this.config.displayContainerAboveInput=t}},selectAllMaxItemsThreshold:30,showSelectAll:function(){return this.config.multiple&&this.config.selectAllMaxItemsThreshold&&this.items&&this.items.length<=this.config.selectAllMaxItemsThreshold},useBracketParameters:!1,multiple:undefined,resultsContainer:undefined,closeOnClick:!0,showSelectionBelowList:!1,allowNullSelection:!1,scrollTarget:undefined,maxHeight:undefined,converter:undefined,asyncBatchSize:300,maxShow:0},init:function(){this.config=n.extend(!0,{},this.defaults,this.options,this.metadata);var r=this._getNameAttribute(),i=this;if(!r){this._showErrorLabel("name attribute is required");return}return typeof String.prototype.trim!="function"&&(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}),this.config.multiple=this.config.multiple||this.$originalElement.attr("multiple"),this.config.scrollTarget||(this.config.scrollTarget=n(t)),this._registerWindowEventsIfNeccessary(),this._initializeUiElements(),this._initializeInputEvents(),setTimeout(function(){i._initializeData();i.$originalElement.data(i.DATA_KEY,i).removeAttr("name").data("sol-name",r)},0),this.$originalElement.hide(),this.$container.css("visibility","initial").show(),this},_getNameAttribute:function(){return this.config.name||this.$originalElement.data("sol-name")||this.$originalElement.attr("name")},_showErrorLabel:function(t){var i=n('<div style="color: red; font-weight: bold;" />').html(t);this.$container?this.$container.append(i):i.insertAfter(this.$originalElement)},_registerWindowEventsIfNeccessary:function(){t[this.WINDOW_EVENTS_KEY]||(n(i).click(function(t){var u=n(t.target),f=u.closest(".sol-selection-container"),e=u.closest(".sol-inner-container"),i;e.length?i=e.first().parent(".sol-container"):f.length&&(i=f.first().parent(".sol-container"));n(".sol-active").not(i).each(function(t,i){n(i).data(r.prototype.DATA_KEY).close()})}),t[this.WINDOW_EVENTS_KEY]=!0)},_initializeUiElements:function(){var r=this,h,u,t,i;this.internalScrollWrapper=function(){n.isFunction(r.config.events.onScroll)&&r.config.events.onScroll.call(r)};this.config.texts.searchplaceholder=this.placeHolderText;this.$input=n('<input type="text"/>').attr("placeholder",this.config.texts.searchplaceholder);this.$noResultsItem=n('<div class="sol-no-results"/>').html(this.config.texts.noItemsAvailable).hide();this.$loadingData=n('<div class="sol-loading-data"/>').html(this.config.texts.loadingData);this.$xItemsSelected=n('<div class="sol-results-count"/>');this.$caret=n('<div class="sol-caret-container"><b class="sol-caret"/><\/div>').click(function(n){return r.toggle(),n.preventDefault(),!1});h=n('<div class="sol-input-container"/>').append(this.$input);this.$innerContainer=n('<div class="sol-inner-container"/>').append(h).append(this.$caret);this.$selection=n('<div class="sol-selection"/>');this.$selectionContainer=n('<div class="sol-selection-container"/>').append(this.$noResultsItem).append(this.$loadingData).append(this.$selection);this.$container=n('<div class="sol-container"/>').hide().data(this.DATA_KEY,this).append(this.$selectionContainer).append(this.$innerContainer).insertBefore(this.$originalElement);this.$showSelectionContainer=n('<div class="sol-current-selection"/>');u=this.config.resultsContainer||this.$innerContainer;this.config.resultsContainer?this.$showSelectionContainer.appendTo(u):this.config.showSelectionBelowList?this.$showSelectionContainer.insertAfter(u):this.$showSelectionContainer.insertBefore(u);this.config.maxHeight&&this.$selection.css("max-height",this.config.maxHeight);var f=this.$originalElement.attr("class"),e=this.$originalElement.attr("style"),o=[],s=[];if(f&&f.length>0)for(o=f.split(/\s+/),t=0;t<o.length;t++)this.$container.addClass(o[t]);if(e&&e.length>0)for(s=e.split(/\;/),t=0;t<s.length;t++)i=s[t].split(/\s*\:\s*/g),i.length===2&&(i[0].toLowerCase().indexOf("height")>=0?this.$innerContainer.css(i[0].trim(),i[1].trim()):this.$container.css(i[0].trim(),i[1].trim()));this.$originalElement.css("display")!=="block"&&this.$container.css("width",this._getActualCssPropertyValue(this.$originalElement,"width"));n.isFunction(this.config.events.onRendered)&&this.config.events.onRendered.call(this,this)},_getActualCssPropertyValue:function(n,r){var u=n.get(0),f=n.css("display");return(n.css("display","none"),u.currentStyle)?u.currentStyle[r]:t.getComputedStyle?i.defaultView.getComputedStyle(u,null).getPropertyValue(r):(n.css("display",f),n.css(r))},_initializeInputEvents:function(){var t=this,i=this.$input.parents("form").first(),r;if(i&&i.length===1&&!i.data(this.WINDOW_EVENTS_KEY)){r=function(){var r=[];i.find(".sol-option input").each(function(t,i){var u=n(i),f=u.data("sol-item").selected;u.prop("checked")!==f&&(u.prop("checked",f).trigger("sol-change",!0),r.push(u))});r.length>0&&n.isFunction(t.config.events.onChange)&&t.config.events.onChange.call(t,t,r)};i.on("reset",function(){r.call(t);setTimeout(function(){r.call(t)},100)});i.data(this.WINDOW_EVENTS_KEY,!0)}this.$input.focus(function(){t.open()}).on("propertychange input",function(n){var i=!0;n.type=="propertychange"&&(i=n.originalEvent.propertyName.toLowerCase()=="value");i&&t._applySearchTermFilter()});this.$container.on("keydown",function(i){var e=i.keyCode,r,s,h,o,f,u;if(!t.$noResultsItem.is(":visible")&&(o=!1,f=t.$selection.find(".sol-option:visible"),e===40||e===38?(t._setKeyBoardNavigationMode(!0),r=t.$selection.find(".sol-option.keyboard-selection"),h=e===38?-1:1,u=f.index(r)+h,u<0?u=f.length-1:u>=f.length&&(u=0),r.removeClass("keyboard-selection"),s=n(f[u]).addClass("keyboard-selection"),t.$selection.scrollTop(t.$selection.scrollTop()+s.position().top),o=!0):t.keyboardNavigationMode===!0&&e===32&&(r=t.$selection.find(".sol-option.keyboard-selection input"),r.prop("checked",!r.prop("checked")).trigger("change"),o=!0),o))return i.preventDefault(),!1}).on("keyup",function(i){var r=i.keyCode;if(r===27)t.keyboardNavigationMode===!0?t._setKeyBoardNavigationMode(!1):t.$input.val()===""?(t.$caret.trigger("click"),t.$input.trigger("blur")):t.$input.val("").trigger("input");else if(r===16||r===17||r===18||r===20)return;t.showTextInTextBox=="true"&&(r==8||r==46)&&(t.$input.val()==null||t.$input.val().trim()=="")&&n(t.items).each(function(){this.element[0].selected=!1;n(t.$selection.children()).each(function(){n(this).find(".sol-checkbox")[0].checked=!1})})})},_setKeyBoardNavigationMode:function(n){n?(this.keyboardNavigationMode=!0,this.$selection.addClass("sol-keyboard-navigation")):(this.keyboardNavigationMode=!1,this.$selection.find(".sol-option.keyboard-selection"),this.$selection.removeClass("sol-keyboard-navigation"),this.$selectionContainer.find(".sol-option.keyboard-selection").removeClass("keyboard-selection"),this.$selection.scrollTop(0))},_applySearchTermFilter:function(){if(this.allowSearch.trim().toLowerCase()=="true"){if(!this.items||this.items.length===0)return;var i=this.$input.val(),t=(i||"").toLowerCase();this.$selectionContainer.find(".sol-filtered-search").removeClass("sol-filtered-search");this._setNoResultsItemVisible(!1);t.trim().length>0&&this._findTerms(this.items,t);n.isFunction(this.config.events.onScroll)&&this.config.events.onScroll.call(this)}},_findTerms:function(t,i){if(t&&n.isArray(t)&&t.length!==0){var r=this;this._setKeyBoardNavigationMode(!1);n.each(t,function(n,t){var u,f,e;t.type==="option"?(u=t.displayElement,f=(t.label+" "+t.tooltip).trim().toLowerCase(),f.indexOf(i)===-1&&u.addClass("sol-filtered-search")):(r._findTerms(t.children,i),e=t.displayElement.find(".sol-option:not(.sol-filtered-search)"),e.length===0&&t.displayElement.addClass("sol-filtered-search"))});this._setNoResultsItemVisible(this.$selectionContainer.find(".sol-option:not(.sol-filtered-search)").length===0)}},_initializeData:function(){this.config.data?n.isFunction(this.config.data)?this.items=this._fetchDataFromFunction(this.config.data):n.isArray(this.config.data)?this.items=this._fetchDataFromArray(this.config.data):typeof this.config.data=="string"?this._loadItemsFromUrl(this.config.data):this._showErrorLabel("Unknown data type"):this.items=this._detectDataFromOriginalElement();this.items&&this._processDataItems(this.items)},_detectDataFromOriginalElement:function(){var t,i,r;if(this.$originalElement.prop("tagName").toLowerCase()==="select")return t=this,i=[],n.each(this.$originalElement.children(),function(r,u){var e=n(u),o=e.prop("tagName").toLowerCase(),f;o==="option"?(f=t._processSelectOption(e),f&&i.push(f)):o==="optgroup"?(f=t._processSelectOptgroup(e),f&&i.push(f)):t._showErrorLabel("Invalid element found in select: "+o+". Only option and optgroup are allowed")}),this._invokeConverterIfNeccessary(i);if(this.$originalElement.data("sol-data"))return r=this.$originalElement.data("sol-data"),this._invokeConverterIfNeccessary(r);this._showErrorLabel('Could not determine data from original element. Must be a select or data must be provided as data-sol-data="" attribute')},_processSelectOption:function(t){return n.extend({},this.SOL_OPTION_FORMAT,{value:t.val(),selected:t.prop("selected"),disabled:t.prop("disabled"),cssClass:t.attr("class"),label:t.html(),tooltip:t.attr("title"),element:t})},_processSelectOptgroup:function(t){var r=this,i=n.extend({},this.SOL_OPTIONGROUP_FORMAT,{label:t.attr("label"),tooltip:t.attr("title"),disabled:t.prop("disabled"),children:[]}),u=t.children("option");return n.each(u,function(t,u){var e=n(u),f=r._processSelectOption(e);i.disabled&&(f.disabled=!0);i.children.push(f)}),i},_fetchDataFromFunction:function(n){return this._invokeConverterIfNeccessary(n(this))},_fetchDataFromArray:function(n){return this._invokeConverterIfNeccessary(n)},_loadItemsFromUrl:function(t){var i=this;n.ajax(t,{success:function(n){i.items=i._invokeConverterIfNeccessary(n);i.items&&i._processDataItems(i.items)},error:function(n,r,u){i._showErrorLabel("Error loading from url "+t+": "+u)},dataType:"json"})},_invokeConverterIfNeccessary:function(t){return n.isFunction(this.config.converter)?this.config.converter.call(this,this,t):t},_processDataItems:function(t){if(!t){this._showErrorLabel("Data items not present. Maybe the converter did not return any values");return}if(t.length===0){this._setNoResultsItemVisible(!0);this.$loadingData.remove();return}var i=this,r=0,f=function(){this.$loadingData.remove();this._initializeSelectAll();n.isFunction(this.config.events.onInitialized)&&this.config.events.onInitialized.call(this,this,t)},u=function(){for(var e=0,n;e++<i.config.asyncBatchSize&&r<t.length;)if(n=t[r++],n.type===i.SOL_OPTION_FORMAT.type)i._renderOption(n);else if(n.type===i.SOL_OPTIONGROUP_FORMAT.type)i._renderOptiongroup(n);else{i._showErrorLabel("Invalid item type found "+n.type);return}r>=t.length?f.call(i):setTimeout(u,0)};u.call(this)},_renderOption:function(t,i){var u=this,s=i||this.$selection,r,h=n('<div class="sol-label-text"/>').html(t.label.trim().length===0?"&nbsp;":t.label).addClass(t.cssClass),o,f,e=this._getNameAttribute();this.config.multiple?(r=n('<input type="checkbox" class="sol-checkbox"/>'),this.config.useBracketParameters&&(e+="[]")):r=n('<input type="radio" class="sol-radio"/>').on("change",function(){u.$selectionContainer.find('input[type="radio"][name="'+e+'"]').not(n(this)).trigger("sol-deselect")}).on("sol-deselect",function(){u._removeSelectionDisplayItem(n(this))});r.on("change",function(t,i){n(this).trigger("sol-change",i)}).on("sol-change",function(t,i){u._selectionChange(n(this),i)}).data("sol-item",t).prop("checked",t.selected).prop("disabled",t.disabled).attr("name",e).val(t.value);o=n('<label class="sol-label"/>').attr("title",t.tooltip).append(r).append(h);f=n('<div class="sol-option"/>').append(o);t.displayElement=f;s.append(f);t.selected&&this._addSelectionDisplayItem(r)},_renderOptiongroup:function(t){var r=this,u=n('<div class="sol-optiongroup-label"/>').attr("title",t.tooltip).html(t.label),i=n('<div class="sol-optiongroup"/>').append(u);t.disabled&&i.addClass("disabled");n.isArray(t.children)&&n.each(t.children,function(n,t){r._renderOption(t,i)});t.displayElement=i;this.$selection.append(i)},_initializeSelectAll:function(){if(this.config.showSelectAll===!0||n.isFunction(this.config.showSelectAll)&&this.config.showSelectAll.call(this)){var t=this,i=n('<a href="#" class="sol-deselect-all"/>').html(this.config.texts.selectNone).click(function(n){return t.deselectAll(),n.preventDefault(),!1}),r=n('<a href="#" class="sol-select-all"/>').html(this.config.texts.selectAll).click(function(n){return t.selectAll(),n.preventDefault(),!1});this.$actionButtons=n('<div class="sol-action-buttons"/>').append(r).append(i).append('<div class="sol-clearfix"/>');this.$selectionContainer.prepend(this.$actionButtons)}},_selectionChange:function(t,i){var u,r,f;this.$originalElement&&this.$originalElement.prop("tagName").toLowerCase()==="select"&&(u=this,this.$originalElement.find("option").each(function(i,r){var f=n(r);if(f.val()===t.val()){f.prop("selected",t.prop("checked"));u.$originalElement.trigger("change");return}}));t.prop("checked")?this._addSelectionDisplayItem(t):this._removeSelectionDisplayItem(t);this.config.multiple?this.config.scrollTarget.trigger("scroll"):this.close();r=this.$showSelectionContainer.children(".sol-selected-display-item");this.config.maxShow!=0&&r.length>this.config.maxShow?(r.hide(),f=this.config.texts.itemsSelected.replace("{$a}",r.length),this.$xItemsSelected.html('<div class="sol-selected-display-item-text">'+f+"<div>"),this.$showSelectionContainer.append(this.$xItemsSelected),this.$xItemsSelected.show()):(r.show(),this.$xItemsSelected.hide());!i&&n.isFunction(this.config.events.onChange)&&this.config.events.onChange.call(this,this,t)},_addSelectionDisplayItem:function(t){var i=t.data("sol-item"),r=i.displaySelectionItem,u;this.showTextInTextBox=="true"&&(this.$input.val()==null||this.$input.val().trim()==""?this.$input.val(i.label):this.$input.val()!=null&&this.$input.val().trim()!=""&&(this.$input.val(this.$input.val()+","+i.label),this._removeUnwantedCommas()));r||(u=n('<span class="sol-selected-display-item-text" />').html(i.label),r=n('<div class="sol-selected-display-item"/>').append(u).attr("title",i.tooltip).appendTo(this.$showSelectionContainer),(this.config.multiple||this.config.allowNullSelection)&&!t.prop("disabled")&&n('<span class="sol-quick-delete"/>').html(this.config.texts.quickDelete).click(function(){t.prop("checked",!1).trigger("change")}).prependTo(r),i.displaySelectionItem=r)},_removeSelectionDisplayItem:function(n){var t=n.data("sol-item"),i=t.displaySelectionItem;this.showTextInTextBox=="true"&&(this.$input.val()==null||this.$input.val().trim()==""||this.$input.val()!=null&&this.$input.val().trim()!=""&&(this.$input.val(this.$input.val().replace(t.label,"")),this._removeUnwantedCommas()));i&&(i.remove(),t.displaySelectionItem=undefined)},_removeUnwantedCommas:function(){this.$input.val(this.$input.val().replace(/,+/g,","));this.$input.val(this.$input.val().replace(/^,/,""));this.$input.val(this.$input.val().replace(/,\s*$/,""));this.$input.val(n.trim(this.$input.val()))},_setNoResultsItemVisible:function(n){n?(this.$noResultsItem.show(),this.$selection.hide(),this.$actionButtons&&this.$actionButtons.hide()):(this.$noResultsItem.hide(),this.$selection.show(),this.$actionButtons&&this.$actionButtons.show())},isOpen:function(){return this.$container.hasClass("sol-active")},isClosed:function(){return!this.isOpen()},toggle:function(){this.isOpen()?this.close():this.open()},open:function(){if(this.isClosed()){this.$container.addClass("sol-active");this.config.scrollTarget.bind("scroll",this.internalScrollWrapper).trigger("scroll");n(t).on("resize",this.internalScrollWrapper);n.isFunction(this.config.events.onOpen)&&this.config.events.onOpen.call(this,this)}},close:function(){this.isOpen()&&(this._setKeyBoardNavigationMode(!1),this.$container.removeClass("sol-active"),this.config.scrollTarget.unbind("scroll",this.internalScrollWrapper),n(t).off("resize"),this.allowTyping.trim().toLowerCase()=="true"?this.$input.val()!=null&&this.$input.val().trim()!=""&&this.$input.val().trim().toLowerCase()!=this.config.texts.searchplaceholder.toLowerCase()||this.$input.val(""):this.$input.val(""),this._applySearchTermFilter(),this.config.displayContainerAboveInput=undefined,n.isFunction(this.config.events.onClose)&&this.config.events.onClose.call(this,this))},selectAll:function(){if(this.config.multiple){var t=this.$selectionContainer.find('input[type="checkbox"]:not([disabled], :checked)').prop("checked",!0).trigger("change",!0);this.config.closeOnClick&&this.close();n.isFunction(this.config.events.onChange)&&this.config.events.onChange.call(this,this,t)}},invert:function(){if(this.config.multiple){var t=this.$selectionContainer.find('input[type="checkbox"]:not([disabled], :checked)'),i=this.$selectionContainer.find('input[type="checkbox"]').filter("[disabled], :checked");i.prop("checked",!1).trigger("change",!0);t.prop("checked",!0).trigger("change",!0);this.options.closeOnClick&&this.close();n.isFunction(this.config.events.onChange)&&this.config.events.onChange.call(this,this,i.add(t))}},deselectAll:function(){if(this.config.multiple){var t=this.$selectionContainer.find('input[type="checkbox"]:not([disabled]):checked').prop("checked",!1).trigger("change",!0);this.config.closeOnClick&&this.close();n.isFunction(this.config.events.onChange)&&this.config.events.onChange.call(this,this,t)}},getSelection:function(){return this.$selection.find("input:checked")}};r.defaults=r.prototype.defaults;t.SearchableOptionList=r;n.fn.searchableOptionList=function(t){var i=[];return(this.each(function(){var f=n(this),e=f.data(r.prototype.DATA_KEY),u;e?i.push(e):(u=new r(f,t),i.push(u),setTimeout(function(){u.init()},0))}),i.length===1)?i[0]:i};n(i).ready(function(){n(".drpdwn-cntr-cls").find("select").each(function(){n(this).searchableOptionList()});n("#sel-Options").searchableOptionList();var t="";selectedEvents!=null&&selectedEvents.trim()!=""&&(t=selectedEvents.split("~"));t!=""&&n("#seloptions > option").each(function(){for(var n=0,i=t.length;n<i;){if(t[n].trim().toLowerCase()==this.text.trim().toLowerCase()){this.selected=!0;break}n++}});n(".drpdwn-cntr-cls").each(function(){n(this).on("DOMNodeInserted",".sol-container",function(){n(this).bind("keydown",function(t){var i=t.keyCode||t.which;i==9&&(t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation(),n(this).removeClass("sol-active"),n(this).parent().find("button").focus())})})})})}(jQuery,window,document)