highcharts
Version:
JavaScript charting framework
105 lines (103 loc) • 303 kB
JavaScript
/*
Highcharts JS v7.1.0 (2019-04-01)
(c) 2009-2018 Torstein Honsi
License: www.highcharts.com/license
*/
(function(U,J){"object"===typeof module&&module.exports?(J["default"]=J,module.exports=U.document?J(U):J):"function"===typeof define&&define.amd?define("highcharts/highstock",function(){return J(U)}):(U.Highcharts&&U.Highcharts.error(16,!0),U.Highcharts=J(U))})("undefined"!==typeof window?window:this,function(U){function J(a,A,z,G){a.hasOwnProperty(A)||(a[A]=G.apply(null,z))}var H={};J(H,"parts/Globals.js",[],function(){var a="undefined"===typeof U?"undefined"!==typeof window?window:{}:U,A=a.document,
z=a.navigator&&a.navigator.userAgent||"",G=A&&A.createElementNS&&!!A.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,n=/(edge|msie|trident)/i.test(z)&&!a.opera,h=-1!==z.indexOf("Firefox"),t=-1!==z.indexOf("Chrome"),x=h&&4>parseInt(z.split("Firefox/")[1],10);return{product:"Highcharts",version:"7.1.0",deg2rad:2*Math.PI/360,doc:A,hasBidiBug:x,hasTouch:A&&void 0!==A.documentElement.ontouchstart,isMS:n,isWebKit:-1!==z.indexOf("AppleWebKit"),isFirefox:h,isChrome:t,isSafari:!t&&-1!==z.indexOf("Safari"),
isTouchDevice:/(Mobile|Android|Windows Phone)/.test(z),SVG_NS:"http://www.w3.org/2000/svg",chartCount:0,seriesTypes:{},symbolSizes:{},svg:G,win:a,marginNames:["plotTop","marginRight","marginBottom","plotLeft"],noop:function(){},charts:[],dateFormats:{}}});J(H,"parts/Utilities.js",[H["parts/Globals.js"]],function(a){a.timers=[];var A=a.charts,z=a.doc,G=a.win;a.error=function(n,h,t){var x=a.isNumber(n)?"Highcharts error #"+n+": www.highcharts.com/errors/"+n:n,v=function(){if(h)throw Error(x);G.console&&
console.log(x)};t?a.fireEvent(t,"displayError",{code:n,message:x},v):v()};a.Fx=function(a,h,t){this.options=h;this.elem=a;this.prop=t};a.Fx.prototype={dSetter:function(){var a=this.paths[0],h=this.paths[1],t=[],x=this.now,v=a.length,y;if(1===x)t=this.toD;else if(v===h.length&&1>x)for(;v--;)y=parseFloat(a[v]),t[v]=isNaN(y)?h[v]:x*parseFloat(h[v]-y)+y;else t=h;this.elem.attr("d",t,null,!0)},update:function(){var a=this.elem,h=this.prop,t=this.now,x=this.options.step;if(this[h+"Setter"])this[h+"Setter"]();
else a.attr?a.element&&a.attr(h,t,null,!0):a.style[h]=t+this.unit;x&&x.call(a,t,this)},run:function(n,h,t){var x=this,v=x.options,y=function(a){return y.stopped?!1:x.step(a)},q=G.requestAnimationFrame||function(a){setTimeout(a,13)},g=function(){for(var e=0;e<a.timers.length;e++)a.timers[e]()||a.timers.splice(e--,1);a.timers.length&&q(g)};n!==h||this.elem["forceAnimate:"+this.prop]?(this.startTime=+new Date,this.start=n,this.end=h,this.unit=t,this.now=this.start,this.pos=0,y.elem=this.elem,y.prop=
this.prop,y()&&1===a.timers.push(y)&&q(g)):(delete v.curAnim[this.prop],v.complete&&0===Object.keys(v.curAnim).length&&v.complete.call(this.elem))},step:function(n){var h=+new Date,t,x=this.options,v=this.elem,y=x.complete,q=x.duration,g=x.curAnim;v.attr&&!v.element?n=!1:n||h>=q+this.startTime?(this.now=this.end,this.pos=1,this.update(),t=g[this.prop]=!0,a.objectEach(g,function(a){!0!==a&&(t=!1)}),t&&y&&y.call(v),n=!1):(this.pos=x.easing((h-this.startTime)/q),this.now=this.start+(this.end-this.start)*
this.pos,this.update(),n=!0);return n},initPath:function(n,h,t){function x(a){var b,c;for(k=a.length;k--;)b="M"===a[k]||"L"===a[k],c=/[a-zA-Z]/.test(a[k+3]),b&&c&&a.splice(k+1,0,a[k+1],a[k+2],a[k+1],a[k+2])}function v(a,f){for(;a.length<b;){a[0]=f[b-a.length];var c=a.slice(0,u);[].splice.apply(a,[0,0].concat(c));d&&(c=a.slice(a.length-u),[].splice.apply(a,[a.length,0].concat(c)),k--)}a[0]="M"}function y(a,k){for(var c=(b-a.length)/u;0<c&&c--;)f=a.slice().splice(a.length/w-u,u*w),f[0]=k[b-u-c*u],m&&
(f[u-6]=f[u-2],f[u-5]=f[u-1]),[].splice.apply(a,[a.length/w,0].concat(f)),d&&c--}h=h||"";var q,g=n.startX,e=n.endX,m=-1<h.indexOf("C"),u=m?7:3,b,f,k;h=h.split(" ");t=t.slice();var d=n.isArea,w=d?2:1,D;m&&(x(h),x(t));if(g&&e){for(k=0;k<g.length;k++)if(g[k]===e[0]){q=k;break}else if(g[0]===e[e.length-g.length+k]){q=k;D=!0;break}void 0===q&&(h=[])}h.length&&a.isNumber(q)&&(b=t.length+q*w*u,D?(v(h,t),y(t,h)):(v(t,h),y(h,t)));return[h,t]},fillSetter:function(){a.Fx.prototype.strokeSetter.apply(this,arguments)},
strokeSetter:function(){this.elem.attr(this.prop,a.color(this.start).tweenTo(a.color(this.end),this.pos),null,!0)}};a.merge=function(){var n,h=arguments,t,x={},v=function(h,q){"object"!==typeof h&&(h={});a.objectEach(q,function(g,e){!a.isObject(g,!0)||a.isClass(g)||a.isDOMElement(g)?h[e]=q[e]:h[e]=v(h[e]||{},g)});return h};!0===h[0]&&(x=h[1],h=Array.prototype.slice.call(h,2));t=h.length;for(n=0;n<t;n++)x=v(x,h[n]);return x};a.pInt=function(a,h){return parseInt(a,h||10)};a.isString=function(a){return"string"===
typeof a};a.isArray=function(a){a=Object.prototype.toString.call(a);return"[object Array]"===a||"[object Array Iterator]"===a};a.isObject=function(n,h){return!!n&&"object"===typeof n&&(!h||!a.isArray(n))};a.isDOMElement=function(n){return a.isObject(n)&&"number"===typeof n.nodeType};a.isClass=function(n){var h=n&&n.constructor;return!(!a.isObject(n,!0)||a.isDOMElement(n)||!h||!h.name||"Object"===h.name)};a.isNumber=function(a){return"number"===typeof a&&!isNaN(a)&&Infinity>a&&-Infinity<a};a.erase=
function(a,h){for(var n=a.length;n--;)if(a[n]===h){a.splice(n,1);break}};a.defined=function(a){return void 0!==a&&null!==a};a.attr=function(n,h,t){var x;a.isString(h)?a.defined(t)?n.setAttribute(h,t):n&&n.getAttribute&&((x=n.getAttribute(h))||"class"!==h||(x=n.getAttribute(h+"Name"))):a.defined(h)&&a.isObject(h)&&a.objectEach(h,function(a,h){n.setAttribute(h,a)});return x};a.splat=function(n){return a.isArray(n)?n:[n]};a.syncTimeout=function(a,h,t){if(h)return setTimeout(a,h,t);a.call(0,t)};a.clearTimeout=
function(n){a.defined(n)&&clearTimeout(n)};a.extend=function(a,h){var n;a||(a={});for(n in h)a[n]=h[n];return a};a.pick=function(){var a=arguments,h,t,x=a.length;for(h=0;h<x;h++)if(t=a[h],void 0!==t&&null!==t)return t};a.css=function(n,h){a.isMS&&!a.svg&&h&&void 0!==h.opacity&&(h.filter="alpha(opacity\x3d"+100*h.opacity+")");a.extend(n.style,h)};a.createElement=function(n,h,t,x,v){n=z.createElement(n);var y=a.css;h&&a.extend(n,h);v&&y(n,{padding:0,border:"none",margin:0});t&&y(n,t);x&&x.appendChild(n);
return n};a.extendClass=function(n,h){var t=function(){};t.prototype=new n;a.extend(t.prototype,h);return t};a.pad=function(a,h,t){return Array((h||2)+1-String(a).replace("-","").length).join(t||0)+a};a.relativeLength=function(a,h,t){return/%$/.test(a)?h*parseFloat(a)/100+(t||0):parseFloat(a)};a.wrap=function(a,h,t){var n=a[h];a[h]=function(){var a=Array.prototype.slice.call(arguments),h=arguments,q=this;q.proceed=function(){n.apply(q,arguments.length?arguments:h)};a.unshift(n);a=t.apply(this,a);
q.proceed=null;return a}};a.datePropsToTimestamps=function(n){a.objectEach(n,function(h,t){a.isObject(h)&&"function"===typeof h.getTime?n[t]=h.getTime():(a.isObject(h)||a.isArray(h))&&a.datePropsToTimestamps(h)})};a.formatSingle=function(n,h,t){var x=/\.([0-9])/,v=a.defaultOptions.lang;/f$/.test(n)?(t=(t=n.match(x))?t[1]:-1,null!==h&&(h=a.numberFormat(h,t,v.decimalPoint,-1<n.indexOf(",")?v.thousandsSep:""))):h=(t||a.time).dateFormat(n,h);return h};a.format=function(n,h,t){for(var x="{",v=!1,y,q,g,
e,m=[],u;n;){x=n.indexOf(x);if(-1===x)break;y=n.slice(0,x);if(v){y=y.split(":");q=y.shift().split(".");e=q.length;u=h;for(g=0;g<e;g++)u&&(u=u[q[g]]);y.length&&(u=a.formatSingle(y.join(":"),u,t));m.push(u)}else m.push(y);n=n.slice(x+1);x=(v=!v)?"}":"{"}m.push(n);return m.join("")};a.getMagnitude=function(a){return Math.pow(10,Math.floor(Math.log(a)/Math.LN10))};a.normalizeTickInterval=function(n,h,t,x,v){var y,q=n;t=a.pick(t,1);y=n/t;h||(h=v?[1,1.2,1.5,2,2.5,3,4,5,6,8,10]:[1,2,2.5,5,10],!1===x&&(1===
t?h=h.filter(function(a){return 0===a%1}):.1>=t&&(h=[1/t])));for(x=0;x<h.length&&!(q=h[x],v&&q*t>=n||!v&&y<=(h[x]+(h[x+1]||h[x]))/2);x++);return q=a.correctFloat(q*t,-Math.round(Math.log(.001)/Math.LN10))};a.stableSort=function(a,h){var n=a.length,x,v;for(v=0;v<n;v++)a[v].safeI=v;a.sort(function(a,q){x=h(a,q);return 0===x?a.safeI-q.safeI:x});for(v=0;v<n;v++)delete a[v].safeI};a.arrayMin=function(a){for(var h=a.length,n=a[0];h--;)a[h]<n&&(n=a[h]);return n};a.arrayMax=function(a){for(var h=a.length,
n=a[0];h--;)a[h]>n&&(n=a[h]);return n};a.destroyObjectProperties=function(n,h){a.objectEach(n,function(a,x){a&&a!==h&&a.destroy&&a.destroy();delete n[x]})};a.discardElement=function(n){var h=a.garbageBin;h||(h=a.createElement("div"));n&&h.appendChild(n);h.innerHTML=""};a.correctFloat=function(a,h){return parseFloat(a.toPrecision(h||14))};a.setAnimation=function(n,h){h.renderer.globalAnimation=a.pick(n,h.options.chart.animation,!0)};a.animObject=function(n){return a.isObject(n)?a.merge(n):{duration:n?
500:0}};a.timeUnits={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5,month:24192E5,year:314496E5};a.numberFormat=function(n,h,t,x){n=+n||0;h=+h;var v=a.defaultOptions.lang,y=(n.toString().split(".")[1]||"").split("e")[0].length,q,g,e=n.toString().split("e");-1===h?h=Math.min(y,20):a.isNumber(h)?h&&e[1]&&0>e[1]&&(q=h+ +e[1],0<=q?(e[0]=(+e[0]).toExponential(q).split("e")[0],h=q):(e[0]=e[0].split(".")[0]||0,n=20>h?(e[0]*Math.pow(10,e[1])).toFixed(h):0,e[1]=0)):h=2;g=(Math.abs(e[1]?
e[0]:n)+Math.pow(10,-Math.max(h,y)-1)).toFixed(h);y=String(a.pInt(g));q=3<y.length?y.length%3:0;t=a.pick(t,v.decimalPoint);x=a.pick(x,v.thousandsSep);n=(0>n?"-":"")+(q?y.substr(0,q)+x:"");n+=y.substr(q).replace(/(\d{3})(?=\d)/g,"$1"+x);h&&(n+=t+g.slice(-h));e[1]&&0!==+n&&(n+="e"+e[1]);return n};Math.easeInOutSine=function(a){return-.5*(Math.cos(Math.PI*a)-1)};a.getStyle=function(n,h,t){if("width"===h)return Math.max(0,Math.min(n.offsetWidth,n.scrollWidth,n.getBoundingClientRect&&"none"===a.getStyle(n,
"transform",!1)?Math.floor(n.getBoundingClientRect().width):Infinity)-a.getStyle(n,"padding-left")-a.getStyle(n,"padding-right"));if("height"===h)return Math.max(0,Math.min(n.offsetHeight,n.scrollHeight)-a.getStyle(n,"padding-top")-a.getStyle(n,"padding-bottom"));G.getComputedStyle||a.error(27,!0);if(n=G.getComputedStyle(n,void 0))n=n.getPropertyValue(h),a.pick(t,"opacity"!==h)&&(n=a.pInt(n));return n};a.inArray=function(a,h,t){return h.indexOf(a,t)};a.find=Array.prototype.find?function(a,h){return a.find(h)}:
function(a,h){var n,x=a.length;for(n=0;n<x;n++)if(h(a[n],n))return a[n]};a.keys=Object.keys;a.offset=function(a){var h=z.documentElement;a=a.parentElement||a.parentNode?a.getBoundingClientRect():{top:0,left:0};return{top:a.top+(G.pageYOffset||h.scrollTop)-(h.clientTop||0),left:a.left+(G.pageXOffset||h.scrollLeft)-(h.clientLeft||0)}};a.stop=function(n,h){for(var t=a.timers.length;t--;)a.timers[t].elem!==n||h&&h!==a.timers[t].prop||(a.timers[t].stopped=!0)};a.objectEach=function(a,h,t){for(var n in a)a.hasOwnProperty(n)&&
h.call(t||a[n],a[n],n,a)};a.objectEach({map:"map",each:"forEach",grep:"filter",reduce:"reduce",some:"some"},function(n,h){a[h]=function(a){return Array.prototype[n].apply(a,[].slice.call(arguments,1))}});a.addEvent=function(n,h,t,x){var v,y=n.addEventListener||a.addEventListenerPolyfill;v="function"===typeof n&&n.prototype?n.prototype.protoEvents=n.prototype.protoEvents||{}:n.hcEvents=n.hcEvents||{};a.Point&&n instanceof a.Point&&n.series&&n.series.chart&&(n.series.chart.runTrackerClick=!0);y&&y.call(n,
h,t,!1);v[h]||(v[h]=[]);v[h].push(t);x&&a.isNumber(x.order)&&(t.order=x.order,v[h].sort(function(a,g){return a.order-g.order}));return function(){a.removeEvent(n,h,t)}};a.removeEvent=function(n,h,t){function x(g,e){var m=n.removeEventListener||a.removeEventListenerPolyfill;m&&m.call(n,g,e,!1)}function v(g){var e,m;n.nodeName&&(h?(e={},e[h]=!0):e=g,a.objectEach(e,function(a,b){if(g[b])for(m=g[b].length;m--;)x(b,g[b][m])}))}var y,q;["protoEvents","hcEvents"].forEach(function(a){var e=n[a];e&&(h?(y=
e[h]||[],t?(q=y.indexOf(t),-1<q&&(y.splice(q,1),e[h]=y),x(h,t)):(v(e),e[h]=[])):(v(e),n[a]={}))})};a.fireEvent=function(n,h,t,x){var v,y,q,g,e;t=t||{};z.createEvent&&(n.dispatchEvent||n.fireEvent)?(v=z.createEvent("Events"),v.initEvent(h,!0,!0),a.extend(v,t),n.dispatchEvent?n.dispatchEvent(v):n.fireEvent(h,v)):["protoEvents","hcEvents"].forEach(function(m){if(n[m])for(y=n[m][h]||[],q=y.length,t.target||a.extend(t,{preventDefault:function(){t.defaultPrevented=!0},target:n,type:h}),g=0;g<q;g++)(e=y[g])&&
!1===e.call(n,t)&&t.preventDefault()});x&&!t.defaultPrevented&&x.call(n,t)};a.animate=function(n,h,t){var x,v="",y,q,g;a.isObject(t)||(g=arguments,t={duration:g[2],easing:g[3],complete:g[4]});a.isNumber(t.duration)||(t.duration=400);t.easing="function"===typeof t.easing?t.easing:Math[t.easing]||Math.easeInOutSine;t.curAnim=a.merge(h);a.objectEach(h,function(e,g){a.stop(n,g);q=new a.Fx(n,t,g);y=null;"d"===g?(q.paths=q.initPath(n,n.d,h.d),q.toD=h.d,x=0,y=1):n.attr?x=n.attr(g):(x=parseFloat(a.getStyle(n,
g))||0,"opacity"!==g&&(v="px"));y||(y=e);y&&y.match&&y.match("px")&&(y=y.replace(/px/g,""));q.run(x,y,v)})};a.seriesType=function(n,h,t,x,v){var y=a.getOptions(),q=a.seriesTypes;y.plotOptions[n]=a.merge(y.plotOptions[h],t);q[n]=a.extendClass(q[h]||function(){},x);q[n].prototype.type=n;v&&(q[n].prototype.pointClass=a.extendClass(a.Point,v));return q[n]};a.uniqueKey=function(){var a=Math.random().toString(36).substring(2,9),h=0;return function(){return"highcharts-"+a+"-"+h++}}();a.isFunction=function(a){return"function"===
typeof a};G.jQuery&&(G.jQuery.fn.highcharts=function(){var n=[].slice.call(arguments);if(this[0])return n[0]?(new (a[a.isString(n[0])?n.shift():"Chart"])(this[0],n[0],n[1]),this):A[a.attr(this[0],"data-highcharts-chart")]})});J(H,"parts/Color.js",[H["parts/Globals.js"]],function(a){var A=a.isNumber,z=a.merge,G=a.pInt;a.Color=function(n){if(!(this instanceof a.Color))return new a.Color(n);this.init(n)};a.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(a){return[G(a[1]),G(a[2]),G(a[3]),parseFloat(a[4],10)]}},{regex:/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,parse:function(a){return[G(a[1]),G(a[2]),G(a[3]),1]}}],names:{white:"#ffffff",black:"#000000"},init:function(n){var h,t,x,v;if((this.input=n=this.names[n&&n.toLowerCase?n.toLowerCase():""]||n)&&n.stops)this.stops=n.stops.map(function(h){return new a.Color(h[1])});else if(n&&n.charAt&&"#"===n.charAt()&&(h=n.length,n=parseInt(n.substr(1),16),7===h?t=[(n&16711680)>>
16,(n&65280)>>8,n&255,1]:4===h&&(t=[(n&3840)>>4|(n&3840)>>8,(n&240)>>4|n&240,(n&15)<<4|n&15,1])),!t)for(x=this.parsers.length;x--&&!t;)v=this.parsers[x],(h=v.regex.exec(n))&&(t=v.parse(h));this.rgba=t||[]},get:function(a){var h=this.input,n=this.rgba,x;this.stops?(x=z(h),x.stops=[].concat(x.stops),this.stops.forEach(function(h,n){x.stops[n]=[x.stops[n][0],h.get(a)]})):x=n&&A(n[0])?"rgb"===a||!a&&1===n[3]?"rgb("+n[0]+","+n[1]+","+n[2]+")":"a"===a?n[3]:"rgba("+n.join(",")+")":h;return x},brighten:function(a){var h,
n=this.rgba;if(this.stops)this.stops.forEach(function(h){h.brighten(a)});else if(A(a)&&0!==a)for(h=0;3>h;h++)n[h]+=G(255*a),0>n[h]&&(n[h]=0),255<n[h]&&(n[h]=255);return this},setOpacity:function(a){this.rgba[3]=a;return this},tweenTo:function(a,h){var n=this.rgba,x=a.rgba;x.length&&n&&n.length?(a=1!==x[3]||1!==n[3],h=(a?"rgba(":"rgb(")+Math.round(x[0]+(n[0]-x[0])*(1-h))+","+Math.round(x[1]+(n[1]-x[1])*(1-h))+","+Math.round(x[2]+(n[2]-x[2])*(1-h))+(a?","+(x[3]+(n[3]-x[3])*(1-h)):"")+")"):h=a.input||
"none";return h}};a.color=function(n){return new a.Color(n)}});J(H,"parts/SvgRenderer.js",[H["parts/Globals.js"]],function(a){var A,z,G=a.addEvent,n=a.animate,h=a.attr,t=a.charts,x=a.color,v=a.css,y=a.createElement,q=a.defined,g=a.deg2rad,e=a.destroyObjectProperties,m=a.doc,u=a.extend,b=a.erase,f=a.hasTouch,k=a.isArray,d=a.isFirefox,w=a.isMS,D=a.isObject,F=a.isString,p=a.isWebKit,c=a.merge,l=a.noop,B=a.objectEach,C=a.pick,E=a.pInt,r=a.removeEvent,I=a.splat,S=a.stop,R=a.svg,L=a.SVG_NS,O=a.symbolSizes,
P=a.win;A=a.SVGElement=function(){return this};u(A.prototype,{opacity:1,SVG_NS:L,textProps:"direction fontSize fontWeight fontFamily fontStyle color lineHeight width textAlign textDecoration textOverflow textOutline cursor".split(" "),init:function(c,b){this.element="span"===b?y(b):m.createElementNS(this.SVG_NS,b);this.renderer=c;a.fireEvent(this,"afterInit")},animate:function(c,b,l){var K=a.animObject(C(b,this.renderer.globalAnimation,!0));C(m.hidden,m.msHidden,m.webkitHidden,!1)&&(K.duration=0);
0!==K.duration?(l&&(K.complete=l),n(this,c,K)):(this.attr(c,null,l),a.objectEach(c,function(a,c){K.step&&K.step.call(this,a,{prop:c,pos:1})},this));return this},complexColor:function(b,l,r){var K=this.renderer,f,d,p,I,e,u,g,E,w,m,C,L=[],D;a.fireEvent(this.renderer,"complexColor",{args:arguments},function(){b.radialGradient?d="radialGradient":b.linearGradient&&(d="linearGradient");d&&(p=b[d],e=K.gradients,g=b.stops,m=r.radialReference,k(p)&&(b[d]=p={x1:p[0],y1:p[1],x2:p[2],y2:p[3],gradientUnits:"userSpaceOnUse"}),
"radialGradient"===d&&m&&!q(p.gradientUnits)&&(I=p,p=c(p,K.getRadialAttr(m,I),{gradientUnits:"userSpaceOnUse"})),B(p,function(a,c){"id"!==c&&L.push(c,a)}),B(g,function(a){L.push(a)}),L=L.join(","),e[L]?C=e[L].attr("id"):(p.id=C=a.uniqueKey(),e[L]=u=K.createElement(d).attr(p).add(K.defs),u.radAttr=I,u.stops=[],g.forEach(function(c){0===c[1].indexOf("rgba")?(f=a.color(c[1]),E=f.get("rgb"),w=f.get("a")):(E=c[1],w=1);c=K.createElement("stop").attr({offset:c[0],"stop-color":E,"stop-opacity":w}).add(u);
u.stops.push(c)})),D="url("+K.url+"#"+C+")",r.setAttribute(l,D),r.gradient=L,b.toString=function(){return D})})},applyTextOutline:function(c){var b=this.element,l,r,K;-1!==c.indexOf("contrast")&&(c=c.replace(/contrast/g,this.renderer.getContrast(b.style.fill)));c=c.split(" ");l=c[c.length-1];(r=c[0])&&"none"!==r&&a.svg&&(this.fakeTS=!0,c=[].slice.call(b.getElementsByTagName("tspan")),this.ySetter=this.xSetter,r=r.replace(/(^[\d\.]+)(.*?)$/g,function(a,c,b){return 2*c+b}),this.removeTextOutline(c),
K=b.firstChild,c.forEach(function(a,c){0===c&&(a.setAttribute("x",b.getAttribute("x")),c=b.getAttribute("y"),a.setAttribute("y",c||0),null===c&&b.setAttribute("y",0));a=a.cloneNode(1);h(a,{"class":"highcharts-text-outline",fill:l,stroke:l,"stroke-width":r,"stroke-linejoin":"round"});b.insertBefore(a,K)}))},removeTextOutline:function(a){for(var c=a.length,l;c--;)l=a[c],"highcharts-text-outline"===l.getAttribute("class")&&b(a,this.element.removeChild(l))},symbolCustomAttribs:"x y width height r start end innerR anchorX anchorY rounded".split(" "),
attr:function(c,b,l,r){var K,d=this.element,f,k=this,p,I,e=this.symbolCustomAttribs;"string"===typeof c&&void 0!==b&&(K=c,c={},c[K]=b);"string"===typeof c?k=(this[c+"Getter"]||this._defaultGetter).call(this,c,d):(B(c,function(b,l){p=!1;r||S(this,l);this.symbolName&&-1!==a.inArray(l,e)&&(f||(this.symbolAttr(c),f=!0),p=!0);!this.rotation||"x"!==l&&"y"!==l||(this.doTransform=!0);p||(I=this[l+"Setter"]||this._defaultSetter,I.call(this,b,l,d),!this.styledMode&&this.shadows&&/^(width|height|visibility|x|y|d|transform|cx|cy|r)$/.test(l)&&
this.updateShadows(l,b,I))},this),this.afterSetters());l&&l.call(this);return k},afterSetters:function(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)},updateShadows:function(a,c,b){for(var l=this.shadows,r=l.length;r--;)b.call(l[r],"height"===a?Math.max(c-(l[r].cutHeight||0),0):"d"===a?this.d:c,a,l[r])},addClass:function(a,c){var b=this.attr("class")||"";c||(a=(a||"").split(/ /g).reduce(function(a,c){-1===b.indexOf(c)&&a.push(c);return a},b?[b]:[]).join(" "));a!==b&&this.attr("class",
a);return this},hasClass:function(a){return-1!==(this.attr("class")||"").split(" ").indexOf(a)},removeClass:function(a){return this.attr("class",(this.attr("class")||"").replace(a,""))},symbolAttr:function(a){var c=this;"x y r start end width height innerR anchorX anchorY clockwise".split(" ").forEach(function(b){c[b]=C(a[b],c[b])});c.attr({d:c.renderer.symbols[c.symbolName](c.x,c.y,c.width,c.height,c)})},clip:function(a){return this.attr("clip-path",a?"url("+this.renderer.url+"#"+a.id+")":"none")},
crisp:function(a,c){var b;c=c||a.strokeWidth||0;b=Math.round(c)%2/2;a.x=Math.floor(a.x||this.x||0)+b;a.y=Math.floor(a.y||this.y||0)+b;a.width=Math.floor((a.width||this.width||0)-2*b);a.height=Math.floor((a.height||this.height||0)-2*b);q(a.strokeWidth)&&(a.strokeWidth=c);return a},css:function(a){var c=this.styles,b={},l=this.element,r,d="",K,f=!c,k=["textOutline","textOverflow","width"];a&&a.color&&(a.fill=a.color);c&&B(a,function(a,l){a!==c[l]&&(b[l]=a,f=!0)});f&&(c&&(a=u(c,b)),a&&(null===a.width||
"auto"===a.width?delete this.textWidth:"text"===l.nodeName.toLowerCase()&&a.width&&(r=this.textWidth=E(a.width))),this.styles=a,r&&!R&&this.renderer.forExport&&delete a.width,l.namespaceURI===this.SVG_NS?(K=function(a,c){return"-"+c.toLowerCase()},B(a,function(a,c){-1===k.indexOf(c)&&(d+=c.replace(/([A-Z])/g,K)+":"+a+";")}),d&&h(l,"style",d)):v(l,a),this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),a&&a.textOutline&&this.applyTextOutline(a.textOutline)));return this},getStyle:function(a){return P.getComputedStyle(this.element||
this,"").getPropertyValue(a)},strokeWidth:function(){if(!this.renderer.styledMode)return this["stroke-width"]||0;var a=this.getStyle("stroke-width"),c;a.indexOf("px")===a.length-2?a=E(a):(c=m.createElementNS(L,"rect"),h(c,{width:a,"stroke-width":0}),this.element.parentNode.appendChild(c),a=c.getBBox().width,c.parentNode.removeChild(c));return a},on:function(a,c){var b=this,l=b.element;f&&"click"===a?(l.ontouchstart=function(a){b.touchEventFired=Date.now();a.preventDefault();c.call(l,a)},l.onclick=
function(a){(-1===P.navigator.userAgent.indexOf("Android")||1100<Date.now()-(b.touchEventFired||0))&&c.call(l,a)}):l["on"+a]=c;return this},setRadialReference:function(a){var c=this.renderer.gradients[this.element.gradient];this.element.radialReference=a;c&&c.radAttr&&c.animate(this.renderer.getRadialAttr(a,c.radAttr));return this},translate:function(a,c){return this.attr({translateX:a,translateY:c})},invert:function(a){this.inverted=a;this.updateTransform();return this},updateTransform:function(){var a=
this.translateX||0,c=this.translateY||0,b=this.scaleX,l=this.scaleY,r=this.inverted,d=this.rotation,f=this.matrix,k=this.element;r&&(a+=this.width,c+=this.height);a=["translate("+a+","+c+")"];q(f)&&a.push("matrix("+f.join(",")+")");r?a.push("rotate(90) scale(-1,1)"):d&&a.push("rotate("+d+" "+C(this.rotationOriginX,k.getAttribute("x"),0)+" "+C(this.rotationOriginY,k.getAttribute("y")||0)+")");(q(b)||q(l))&&a.push("scale("+C(b,1)+" "+C(l,1)+")");a.length&&k.setAttribute("transform",a.join(" "))},toFront:function(){var a=
this.element;a.parentNode.appendChild(a);return this},align:function(a,c,l){var r,d,f,k,p={};d=this.renderer;f=d.alignedObjects;var K,I;if(a){if(this.alignOptions=a,this.alignByTranslate=c,!l||F(l))this.alignTo=r=l||"renderer",b(f,this),f.push(this),l=null}else a=this.alignOptions,c=this.alignByTranslate,r=this.alignTo;l=C(l,d[r],d);r=a.align;d=a.verticalAlign;f=(l.x||0)+(a.x||0);k=(l.y||0)+(a.y||0);"right"===r?K=1:"center"===r&&(K=2);K&&(f+=(l.width-(a.width||0))/K);p[c?"translateX":"x"]=Math.round(f);
"bottom"===d?I=1:"middle"===d&&(I=2);I&&(k+=(l.height-(a.height||0))/I);p[c?"translateY":"y"]=Math.round(k);this[this.placed?"animate":"attr"](p);this.placed=!0;this.alignAttr=p;return this},getBBox:function(a,c){var b,l=this.renderer,r,d=this.element,f=this.styles,k,p=this.textStr,K,I=l.cache,B=l.cacheKeys,e=d.namespaceURI===this.SVG_NS,E;c=C(c,this.rotation);r=c*g;k=l.styledMode?d&&A.prototype.getStyle.call(d,"font-size"):f&&f.fontSize;q(p)&&(E=p.toString(),-1===E.indexOf("\x3c")&&(E=E.replace(/[0-9]/g,
"0")),E+=["",c||0,k,this.textWidth,f&&f.textOverflow].join());E&&!a&&(b=I[E]);if(!b){if(e||l.forExport){try{(K=this.fakeTS&&function(a){[].forEach.call(d.querySelectorAll(".highcharts-text-outline"),function(c){c.style.display=a})})&&K("none"),b=d.getBBox?u({},d.getBBox()):{width:d.offsetWidth,height:d.offsetHeight},K&&K("")}catch(Z){}if(!b||0>b.width)b={width:0,height:0}}else b=this.htmlGetBBox();l.isSVG&&(a=b.width,l=b.height,e&&(b.height=l={"11px,17":14,"13px,20":16}[f&&f.fontSize+","+Math.round(l)]||
l),c&&(b.width=Math.abs(l*Math.sin(r))+Math.abs(a*Math.cos(r)),b.height=Math.abs(l*Math.cos(r))+Math.abs(a*Math.sin(r))));if(E&&0<b.height){for(;250<B.length;)delete I[B.shift()];I[E]||B.push(E);I[E]=b}}return b},show:function(a){return this.attr({visibility:a?"inherit":"visible"})},hide:function(){return this.attr({visibility:"hidden"})},fadeOut:function(a){var c=this;c.animate({opacity:0},{duration:a||150,complete:function(){c.attr({y:-9999})}})},add:function(a){var c=this.renderer,b=this.element,
l;a&&(this.parentGroup=a);this.parentInverted=a&&a.inverted;void 0!==this.textStr&&c.buildText(this);this.added=!0;if(!a||a.handleZ||this.zIndex)l=this.zIndexSetter();l||(a?a.element:c.box).appendChild(b);if(this.onAdd)this.onAdd();return this},safeRemoveChild:function(a){var c=a.parentNode;c&&c.removeChild(a)},destroy:function(){var a=this,c=a.element||{},l=a.renderer,r=l.isSVG&&"SPAN"===c.nodeName&&a.parentGroup,d=c.ownerSVGElement,f=a.clipPath;c.onclick=c.onmouseout=c.onmouseover=c.onmousemove=
c.point=null;S(a);f&&d&&([].forEach.call(d.querySelectorAll("[clip-path],[CLIP-PATH]"),function(a){-1<a.getAttribute("clip-path").indexOf(f.element.id)&&a.removeAttribute("clip-path")}),a.clipPath=f.destroy());if(a.stops){for(d=0;d<a.stops.length;d++)a.stops[d]=a.stops[d].destroy();a.stops=null}a.safeRemoveChild(c);for(l.styledMode||a.destroyShadows();r&&r.div&&0===r.div.childNodes.length;)c=r.parentGroup,a.safeRemoveChild(r.div),delete r.div,r=c;a.alignTo&&b(l.alignedObjects,a);B(a,function(c,b){delete a[b]});
return null},shadow:function(a,c,b){var l=[],r,d,f=this.element,k,p,I,B;if(!a)this.destroyShadows();else if(!this.shadows){p=C(a.width,3);I=(a.opacity||.15)/p;B=this.parentInverted?"(-1,-1)":"("+C(a.offsetX,1)+", "+C(a.offsetY,1)+")";for(r=1;r<=p;r++)d=f.cloneNode(0),k=2*p+1-2*r,h(d,{stroke:a.color||"#000000","stroke-opacity":I*r,"stroke-width":k,transform:"translate"+B,fill:"none"}),d.setAttribute("class",(d.getAttribute("class")||"")+" highcharts-shadow"),b&&(h(d,"height",Math.max(h(d,"height")-
k,0)),d.cutHeight=k),c?c.element.appendChild(d):f.parentNode&&f.parentNode.insertBefore(d,f),l.push(d);this.shadows=l}return this},destroyShadows:function(){(this.shadows||[]).forEach(function(a){this.safeRemoveChild(a)},this);this.shadows=void 0},xGetter:function(a){"circle"===this.element.nodeName&&("x"===a?a="cx":"y"===a&&(a="cy"));return this._defaultGetter(a)},_defaultGetter:function(a){a=C(this[a+"Value"],this[a],this.element?this.element.getAttribute(a):null,0);/^[\-0-9\.]+$/.test(a)&&(a=parseFloat(a));
return a},dSetter:function(a,c,b){a&&a.join&&(a=a.join(" "));/(NaN| {2}|^$)/.test(a)&&(a="M 0 0");this[c]!==a&&(b.setAttribute(c,a),this[c]=a)},dashstyleSetter:function(a){var c,b=this["stroke-width"];"inherit"===b&&(b=1);if(a=a&&a.toLowerCase()){a=a.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot","3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(c=a.length;c--;)a[c]=
E(a[c])*b;a=a.join(",").replace(/NaN/g,"none");this.element.setAttribute("stroke-dasharray",a)}},alignSetter:function(a){var c={left:"start",center:"middle",right:"end"};c[a]&&(this.alignValue=a,this.element.setAttribute("text-anchor",c[a]))},opacitySetter:function(a,c,b){this[c]=a;b.setAttribute(c,a)},titleSetter:function(a){var c=this.element.getElementsByTagName("title")[0];c||(c=m.createElementNS(this.SVG_NS,"title"),this.element.appendChild(c));c.firstChild&&c.removeChild(c.firstChild);c.appendChild(m.createTextNode(String(C(a),
"").replace(/<[^>]*>/g,"").replace(/</g,"\x3c").replace(/>/g,"\x3e")))},textSetter:function(a){a!==this.textStr&&(delete this.bBox,this.textStr=a,this.added&&this.renderer.buildText(this))},setTextPath:function(b,r){var d=this.element,f={textAnchor:"text-anchor"},k,p=!1,I,B=this.textPathWrapper,e=!B;r=c(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},r);k=r.attributes;if(b&&r&&r.enabled){this.options&&this.options.padding&&(k.dx=-this.options.padding);B||(this.textPathWrapper=
B=this.renderer.createElement("textPath"),p=!0);I=B.element;(r=b.element.getAttribute("id"))||b.element.setAttribute("id",r=a.uniqueKey());if(e)for(b=d.getElementsByTagName("tspan");b.length;)b[0].setAttribute("y",0),I.appendChild(b[0]);p&&B.add({element:this.text?this.text.element:d});I.setAttributeNS("http://www.w3.org/1999/xlink","href",this.renderer.url+"#"+r);q(k.dy)&&(I.parentNode.setAttribute("dy",k.dy),delete k.dy);q(k.dx)&&(I.parentNode.setAttribute("dx",k.dx),delete k.dx);a.objectEach(k,
function(a,c){I.setAttribute(f[c]||c,a)});d.removeAttribute("transform");this.removeTextOutline.call(B,[].slice.call(d.getElementsByTagName("tspan")));this.applyTextOutline=this.updateTransform=l}else B&&(delete this.updateTransform,delete this.applyTextOutline,this.destroyTextPath(d,b));return this},destroyTextPath:function(a,c){var b;c.element.setAttribute("id","");for(b=this.textPathWrapper.element.childNodes;b.length;)a.firstChild.appendChild(b[0]);a.firstChild.removeChild(this.textPathWrapper.element);
delete c.textPathWrapper},fillSetter:function(a,c,b){"string"===typeof a?b.setAttribute(c,a):a&&this.complexColor(a,c,b)},visibilitySetter:function(a,c,b){"inherit"===a?b.removeAttribute(c):this[c]!==a&&b.setAttribute(c,a);this[c]=a},zIndexSetter:function(a,c){var b=this.renderer,l=this.parentGroup,r=(l||b).element||b.box,d,f=this.element,k,p,b=r===b.box;d=this.added;var I;q(a)?(f.setAttribute("data-z-index",a),a=+a,this[c]===a&&(d=!1)):q(this[c])&&f.removeAttribute("data-z-index");this[c]=a;if(d){(a=
this.zIndex)&&l&&(l.handleZ=!0);c=r.childNodes;for(I=c.length-1;0<=I&&!k;I--)if(l=c[I],d=l.getAttribute("data-z-index"),p=!q(d),l!==f)if(0>a&&p&&!b&&!I)r.insertBefore(f,c[I]),k=!0;else if(E(d)<=a||p&&(!q(a)||0<=a))r.insertBefore(f,c[I+1]||null),k=!0;k||(r.insertBefore(f,c[b?3:0]||null),k=!0)}return k},_defaultSetter:function(a,c,b){b.setAttribute(c,a)}});A.prototype.yGetter=A.prototype.xGetter;A.prototype.translateXSetter=A.prototype.translateYSetter=A.prototype.rotationSetter=A.prototype.verticalAlignSetter=
A.prototype.rotationOriginXSetter=A.prototype.rotationOriginYSetter=A.prototype.scaleXSetter=A.prototype.scaleYSetter=A.prototype.matrixSetter=function(a,c){this[c]=a;this.doTransform=!0};A.prototype["stroke-widthSetter"]=A.prototype.strokeSetter=function(a,c,b){this[c]=a;this.stroke&&this["stroke-width"]?(A.prototype.fillSetter.call(this,this.stroke,"stroke",b),b.setAttribute("stroke-width",this["stroke-width"]),this.hasStroke=!0):"stroke-width"===c&&0===a&&this.hasStroke&&(b.removeAttribute("stroke"),
this.hasStroke=!1)};z=a.SVGRenderer=function(){this.init.apply(this,arguments)};u(z.prototype,{Element:A,SVG_NS:L,init:function(a,c,b,l,r,f,k){var I;I=this.createElement("svg").attr({version:"1.1","class":"highcharts-root"});k||I.css(this.getStyle(l));l=I.element;a.appendChild(l);h(a,"dir","ltr");-1===a.innerHTML.indexOf("xmlns")&&h(l,"xmlns",this.SVG_NS);this.isSVG=!0;this.box=l;this.boxWrapper=I;this.alignedObjects=[];this.url=(d||p)&&m.getElementsByTagName("base").length?P.location.href.split("#")[0].replace(/<[^>]*>/g,
"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"";this.createElement("desc").add().element.appendChild(m.createTextNode("Created with Highcharts 7.1.0"));this.defs=this.createElement("defs").add();this.allowHTML=f;this.forExport=r;this.styledMode=k;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount=0;this.setSize(c,b,!1);var B;d&&a.getBoundingClientRect&&(c=function(){v(a,{left:0,top:0});B=a.getBoundingClientRect();v(a,{left:Math.ceil(B.left)-B.left+"px",top:Math.ceil(B.top)-B.top+
"px"})},c(),this.unSubPixelFix=G(P,"resize",c))},definition:function(a){function c(a,l){var r;I(a).forEach(function(a){var d=b.createElement(a.tagName),f={};B(a,function(a,c){"tagName"!==c&&"children"!==c&&"textContent"!==c&&(f[c]=a)});d.attr(f);d.add(l||b.defs);a.textContent&&d.element.appendChild(m.createTextNode(a.textContent));c(a.children||[],d);r=d});return r}var b=this;return c(a)},getStyle:function(a){return this.style=u({fontFamily:'"Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif',
fontSize:"12px"},a)},setStyle:function(a){this.boxWrapper.css(this.getStyle(a))},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var a=this.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();e(this.gradients||{});this.gradients=null;a&&(this.defs=a.destroy());this.unSubPixelFix&&this.unSubPixelFix();return this.alignedObjects=null},createElement:function(a){var c=new this.Element;c.init(this,a);return c},draw:l,getRadialAttr:function(a,c){return{cx:a[0]-a[2]/
2+c.cx*a[2],cy:a[1]-a[2]/2+c.cy*a[2],r:c.r*a[2]}},truncate:function(a,c,b,l,r,d,f){var k=this,p=a.rotation,I,B=l?1:0,e=(b||l).length,u=e,E=[],g=function(a){c.firstChild&&c.removeChild(c.firstChild);a&&c.appendChild(m.createTextNode(a))},w=function(d,p){p=p||d;if(void 0===E[p])if(c.getSubStringLength)try{E[p]=r+c.getSubStringLength(0,l?p+1:p)}catch(fa){}else k.getSpanWidth&&(g(f(b||l,d)),E[p]=r+k.getSpanWidth(a,c));return E[p]},C,L;a.rotation=0;C=w(c.textContent.length);if(L=r+C>d){for(;B<=e;)u=Math.ceil((B+
e)/2),l&&(I=f(l,u)),C=w(u,I&&I.length-1),B===e?B=e+1:C>d?e=u-1:B=u;0===e?g(""):b&&e===b.length-1||g(I||f(b||l,u))}l&&l.splice(0,u);a.actualWidth=C;a.rotation=p;return L},escapes:{"\x26":"\x26amp;","\x3c":"\x26lt;","\x3e":"\x26gt;","'":"\x26#39;",'"':"\x26quot;"},buildText:function(a){var c=a.element,b=this,l=b.forExport,r=C(a.textStr,"").toString(),d=-1!==r.indexOf("\x3c"),f=c.childNodes,k,p=h(c,"x"),I=a.styles,e=a.textWidth,u=I&&I.lineHeight,g=I&&I.textOutline,w=I&&"ellipsis"===I.textOverflow,q=
I&&"nowrap"===I.whiteSpace,K=I&&I.fontSize,D,F,S=f.length,I=e&&!a.added&&this.box,O=function(a){var l;b.styledMode||(l=/(px|em)$/.test(a&&a.style.fontSize)?a.style.fontSize:K||b.style.fontSize||12);return u?E(u):b.fontMetrics(l,a.getAttribute("style")?a:c).h},n=function(a,c){B(b.escapes,function(b,l){c&&-1!==c.indexOf(b)||(a=a.toString().replace(new RegExp(b,"g"),l))});return a},P=function(a,c){var b;b=a.indexOf("\x3c");a=a.substring(b,a.indexOf("\x3e")-b);b=a.indexOf(c+"\x3d");if(-1!==b&&(b=b+c.length+
1,c=a.charAt(b),'"'===c||"'"===c))return a=a.substring(b+1),a.substring(0,a.indexOf(c))};D=[r,w,q,u,g,K,e].join();if(D!==a.textCache){for(a.textCache=D;S--;)c.removeChild(f[S]);d||g||w||e||-1!==r.indexOf(" ")?(I&&I.appendChild(c),d?(r=b.styledMode?r.replace(/<(b|strong)>/g,'\x3cspan class\x3d"highcharts-strong"\x3e').replace(/<(i|em)>/g,'\x3cspan class\x3d"highcharts-emphasized"\x3e'):r.replace(/<(b|strong)>/g,'\x3cspan style\x3d"font-weight:bold"\x3e').replace(/<(i|em)>/g,'\x3cspan style\x3d"font-style:italic"\x3e'),
r=r.replace(/<a/g,"\x3cspan").replace(/<\/(b|strong|i|em|a)>/g,"\x3c/span\x3e").split(/<br.*?>/g)):r=[r],r=r.filter(function(a){return""!==a}),r.forEach(function(r,d){var f,I=0,B=0;r=r.replace(/^\s+|\s+$/g,"").replace(/<span/g,"|||\x3cspan").replace(/<\/span>/g,"\x3c/span\x3e|||");f=r.split("|||");f.forEach(function(r){if(""!==r||1===f.length){var u={},E=m.createElementNS(b.SVG_NS,"tspan"),g,C;(g=P(r,"class"))&&h(E,"class",g);if(g=P(r,"style"))g=g.replace(/(;| |^)color([ :])/,"$1fill$2"),h(E,"style",
g);(C=P(r,"href"))&&!l&&(h(E,"onclick",'location.href\x3d"'+C+'"'),h(E,"class","highcharts-anchor"),b.styledMode||v(E,{cursor:"pointer"}));r=n(r.replace(/<[a-zA-Z\/](.|\n)*?>/g,"")||" ");if(" "!==r){E.appendChild(m.createTextNode(r));I?u.dx=0:d&&null!==p&&(u.x=p);h(E,u);c.appendChild(E);!I&&F&&(!R&&l&&v(E,{display:"block"}),h(E,"dy",O(E)));if(e){var D=r.replace(/([^\^])-/g,"$1- ").split(" "),u=!q&&(1<f.length||d||1<D.length);C=0;var S=O(E);if(w)k=b.truncate(a,E,r,void 0,0,Math.max(0,e-parseInt(K||
12,10)),function(a,c){return a.substring(0,c)+"\u2026"});else if(u)for(;D.length;)D.length&&!q&&0<C&&(E=m.createElementNS(L,"tspan"),h(E,{dy:S,x:p}),g&&h(E,"style",g),E.appendChild(m.createTextNode(D.join(" ").replace(/- /g,"-"))),c.appendChild(E)),b.truncate(a,E,null,D,0===C?B:0,e,function(a,c){return D.slice(0,c).join(" ").replace(/- /g,"-")}),B=a.actualWidth,C++}I++}}});F=F||c.childNodes.length}),w&&k&&a.attr("title",n(a.textStr,["\x26lt;","\x26gt;"])),I&&I.removeChild(c),g&&a.applyTextOutline&&
a.applyTextOutline(g)):c.appendChild(m.createTextNode(n(r)))}},getContrast:function(a){a=x(a).rgba;a[0]*=1;a[1]*=1.2;a[2]*=.5;return 459<a[0]+a[1]+a[2]?"#000000":"#FFFFFF"},button:function(a,b,l,r,d,f,k,p,I,B){var e=this.label(a,b,l,I,null,null,B,null,"button"),E=0,g=this.styledMode;e.attr(c({padding:8,r:2},d));if(!g){var m,C,L,q;d=c({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1,style:{color:"#333333",cursor:"pointer",fontWeight:"normal"}},d);m=d.style;delete d.style;f=c(d,{fill:"#e6e6e6"},f);
C=f.style;delete f.style;k=c(d,{fill:"#e6ebf5",style:{color:"#000000",fontWeight:"bold"}},k);L=k.style;delete k.style;p=c(d,{style:{color:"#cccccc"}},p);q=p.style;delete p.style}G(e.element,w?"mouseover":"mouseenter",function(){3!==E&&e.setState(1)});G(e.element,w?"mouseout":"mouseleave",function(){3!==E&&e.setState(E)});e.setState=function(a){1!==a&&(e.state=E=a);e.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][a||
0]);g||e.attr([d,f,k,p][a||0]).css([m,C,L,q][a||0])};g||e.attr(d).css(u({cursor:"default"},m));return e.on("click",function(a){3!==E&&r.call(e,a)})},crispLine:function(a,c){a[1]===a[4]&&(a[1]=a[4]=Math.round(a[1])-c%2/2);a[2]===a[5]&&(a[2]=a[5]=Math.round(a[2])+c%2/2);return a},path:function(a){var c=this.styledMode?{}:{fill:"none"};k(a)?c.d=a:D(a)&&u(c,a);return this.createElement("path").attr(c)},circle:function(a,c,b){a=D(a)?a:void 0===a?{}:{x:a,y:c,r:b};c=this.createElement("circle");c.xSetter=
c.ySetter=function(a,c,b){b.setAttribute("c"+c,a)};return c.attr(a)},arc:function(a,c,b,l,r,d){D(a)?(l=a,c=l.y,b=l.r,a=l.x):l={innerR:l,start:r,end:d};a=this.symbol("arc",a,c,b,b,l);a.r=b;return a},rect:function(a,c,b,l,r,d){r=D(a)?a.r:r;var f=this.createElement("rect");a=D(a)?a:void 0===a?{}:{x:a,y:c,width:Math.max(b,0),height:Math.max(l,0)};this.styledMode||(void 0!==d&&(a.strokeWidth=d,a=f.crisp(a)),a.fill="none");r&&(a.r=r);f.rSetter=function(a,c,b){f.r=a;h(b,{rx:a,ry:a})};f.rGetter=function(){return f.r};
return f.attr(a)},setSize:function(a,c,b){var l=this.alignedObjects,r=l.length;this.width=a;this.height=c;for(this.boxWrapper.animate({width:a,height:c},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:C(b,!0)?void 0:0});r--;)l[r].align()},g:function(a){var c=this.createElement("g");return a?c.attr({"class":"highcharts-"+a}):c},image:function(a,c,b,l,r,d){var f={preserveAspectRatio:"none"},k,p=function(a,c){a.setAttributeNS?a.setAttributeNS("http://www.w3.org/1999/xlink",
"href",c):a.setAttribute("hc-svg-href",c)},I=function(c){p(k.element,a);d.call(k,c)};1<arguments.length&&u(f,{x:c,y:b,width:l,height:r});k=this.createElement("image").attr(f);d?(p(k.element,"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw\x3d\x3d"),f=new P.Image,G(f,"load",I),f.src=a,f.complete&&I({})):p(k.element,a);return k},symbol:function(a,c,b,l,r,d){var f=this,k,p=/^url\((.*?)\)$/,I=p.test(a),B=!I&&(this.symbols[a]?a:"circle"),e=B&&this.symbols[B],E=q(c)&&e&&e.call(this.symbols,
Math.round(c),Math.round(b),l,r,d),g,w;e?(k=this.path(E),f.styledMode||k.attr("fill","none"),u(k,{symbolName:B,x:c,y:b,width:l,height:r}),d&&u(k,d)):I&&(g=a.match(p)[1],k=this.image(g),k.imgwidth=C(O[g]&&O[g].width,d&&d.width),k.imgheight=C(O[g]&&O[g].height,d&&d.height),w=function(){k.attr({width:k.width,height:k.height})},["width","height"].forEach(function(a){k[a+"Setter"]=function(a,c){var b={},l=this["img"+c],r="width"===c?"translateX":"translateY";this[c]=a;q(l)&&(d&&"within"===d.backgroundSize&&
this.width&&this.height&&(l=Math.round(l*Math.min(this.width/this.imgwidth,this.height/this.imgheight))),this.element&&this.element.setAttribute(c,l),this.alignByTranslate||(b[r]=((this[c]||0)-l)/2,this.attr(b)))}}),q(c)&&k.attr({x:c,y:b}),k.isImg=!0,q(k.imgwidth)&&q(k.imgheight)?w():(k.attr({width:0,height:0}),y("img",{onload:function(){var a=t[f.chartIndex];0===this.width&&(v(this,{position:"absolute",top:"-999em"}),m.body.appendChild(this));O[g]={width:this.width,height:this.height};k.imgwidth=
this.width;k.imgheight=this.height;k.element&&w();this.parentNode&&this.parentNode.removeChild(this);f.imgCount--;if(!f.imgCount&&a&&a.onload)a.onload()},src:g}),this.imgCount++));return k},symbols:{circle:function(a,c,b,l){return this.arc(a+b/2,c+l/2,b/2,l/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},square:function(a,c,b,l){return["M",a,c,"L",a+b,c,a+b,c+l,a,c+l,"Z"]},triangle:function(a,c,b,l){return["M",a+b/2,c,"L",a+b,c+l,a,c+l,"Z"]},"triangle-down":function(a,c,b,l){return["M",a,c,"L",a+b,
c,a+b/2,c+l,"Z"]},diamond:function(a,c,b,l){return["M",a+b/2,c,"L",a+b,c+l/2,a+b/2,c+l,a,c+l/2,"Z"]},arc:function(a,c,b,l,r){var d=r.start,f=r.r||b,k=r.r||l||b,p=r.end-.001;b=r.innerR;l=C(r.open,.001>Math.abs(r.end-r.start-2*Math.PI));var I=Math.cos(d),B=Math.sin(d),e=Math.cos(p),p=Math.sin(p),d=.001>r.end-d-Math.PI?0:1;r=["M",a+f*I,c+k*B,"A",f,k,0,d,C(r.clockwise,1),a+f*e,c+k*p];q(b)&&r.push(l?"M":"L",a+b*e,c+b*p,"A",b,b,0,d,0,a+b*I,c+b*B);r.push(l?"":"Z");return r},callout:function(a,c,b,l,r){var d=
Math.min(r&&r.r||0,b,l),f=d+6,k=r&&r.anchorX;r=r&&r.anchorY;var p;p=["M",a+d,c,"L",a+b-d,c,"C",a+b,c,a+b,c,a+b,c+d,"L",a+b,c+l-d,"C",a+b,c+l,a+b,c+l,a+b-d,c+l,"L",a+d,c+l,"C",a,c+l,a,c+l,a,c+l-d,"L",a,c+d,"C",a,c,a,c,a+d,c];k&&k>b?r>c+f&&r<c+l-f?p.splice(13,3,"L",a+b,r-6,a+b+6,r,a+b,r+6,a+b,c+l-d):p.splice(13,3,"L",a+b,l/2,k,r,a+b,l/2,a+b,c+l-d):k&&0>k?r>c+f&&r<c+l-f?p.splice(33,3,"L",a,r+6,a-6,r,a,r-6,a,c+d):p.splice(33,3,"L",a,l/2,k,r,a,l/2,a,c+d):r&&r>l&&k>a+f&&k<a+b-f?p.splice(23,3,"L",k+6,c+
l,k,c+l+6,k-6,c+l,a+d,c+l):r&&0>r&&k>a+f&&k<a+b-f&&p.splice(3,3,"L",k-6,c,k,c-6,k+6,c,b-d,c);return p}},clipRect:function(c,b,l,r){var d=a.uniqueKey()+"-",f=this.createElement("clipPath").attr({id:d}).add(this.defs);c=this.rect(c,b,l,r,0).add(f);c.id=d;c.clipPath=f;c.count=0;return c},text:function(a,c,b,l){var r={};if(l&&(this.allowHTML||!this.forExport))return this.html(a,c,b);r.x=Math.round(c||0);b&&(r.y=Math.round(b));q(a)&&(r.text=a);a=this.createElement("text").attr(r);l||(a.xSetter=function(a,
c,b){var l=b.getElementsByTagName("tspan"),r,d=b.getAttribute(c),f;for(f=0;f<l.length;f++)r=l[f],r.getAttribute(c)===d&&r.setAttribute(c,a);b.setAttribute(c,a)});return a},fontMetrics:function(a,c){a=!this.styledMode&&/px/.test(a)||!P.getComputedStyle?a||c&&c.style&&c.style.fontSize||this.style&&this.style.fontSize:c&&A.prototype.getStyle.call(c,"font-size");a=/px/.test(a)?E(a):12;c=24>a?a+3:Math.round(1.2*a);return{h:c,b:Math.round(.8*c),f:a}},rotCorr:function(a,c,b){var l=a;c&&b&&(l=Math.max(l*
Math.cos(c*g),4));return{x:-a/3*Math.sin(c*g),y:l}},label:function(b,l,d,f,k,p,I,B,e){var E=this,g=E.styledMode,w=E.g("button"!==e&&"label"),m=w.text=E.text("",0,0,I).attr({zIndex:1}),C,L,D=0,R=3,F=0,h,S,O,n,P,K={},y,t,x=/^url\((.*?)\)$/.test(f),v=g||x,ea=function(){return g?C.strokeWidth()%2/2:(y?parseInt(y,10):0)%2/2},ba,N,z;e&&w.addClass("highcharts-"+e);ba=function(){var a=m.element.style,c={};L=(void 0===h||void 0===S||P)&&q(m.textStr)&&m.getBBox();w.width=(h||L.width||0)+2*R+F;w.height=(S||
L.height||0)+2*R;t=R+Math.min(E.fontMetrics(a&&a.fontSize,m).b,L?L.height:Infinity);v&&(C||(w.box=C=E.symbols[f]||x?E.symbol(f):E.rect(),C.addClass(("button"===e?"":"highcharts-label-box")+(e?" highcharts-"+e+"-box":"")),C.add(w),a=ea(),c.x=a,c.y=(B?-t:0)+a),c.width=Math.round(w.width),c.height=Math.round(w.height),C.attr(u(c,K)),K={})};N=function(){var a=F+R,c;c=B?0:t;q(h)&&L&&("center"===P||"right"===P)&&(a+={center:.5,right:1}[P]*(h-L.width));if(a!==m.x||c!==m.y)m.attr("x",a),m.hasBoxWidthChanged&&
(L=m.getBBox(!0),ba()),void 0!==c&&m.attr("y",c);m.x=a;m.y=c};z=function(a,c){C?C.attr(a,c):K[a]=c};w.onAdd=function(){m.add(w);w.attr({text:b||0===b?b:"",x:l,y:d});C&&q(k)&&w.attr({anchorX:k,anchorY:p})};w.widthSetter=function(c){h=a.isNumber(c)?c:null};w.heightSetter=function(a){S=a};w["text-alignSetter"]=function(a){P=a};w.paddingSetter=function(a){q(a)&&a!==R&&(R=w.padding=a,N())};w.paddingLeftSetter=function(a){q(a)&&a!==F&&(F=a,N())};w.alignSetter=function(a){a={left:0,center:.5,right:1}[a];
a!==D&&(D=a,L&&w.attr({x:O}))};w.textSetter=function(a){void 0!==a&&m.attr({text:a});ba();N()};w["stroke-widthSetter"]=function(a,c){a&&(v=!0);y=this["stroke-width"]=a;z(c,a)};g?w.rSetter=function(a,c){z(c,a)}:w.strokeSetter=w.fillSetter=w.rSetter=function(a,c){"r"!==c&&("fill"===c&&a&&(v=!0),w[c]=a);z(c,a)};w.anchorXSetter=function(a,c){k=w.anchorX=a;z(c,Math.round(a)-ea()-O)};w.anchorYSetter=function(a,c){p=w.anchorY=a;z(c,a-n)};w.xSetter=function(a){w.x=a;D&&(a-=D*((h||L.width)+2*R),w["forceAnimate:x"]=
!0);O=Math.round(a);w.attr("translateX",O)};w.ySetter=function(a){n=w.y=Math.round(a);w.attr("translateY",n)};var Q=w.css;I={css:function(a){if(a){var b={};a=c(a);w.textProps.forEach(function(c){void 0!==a[c]&&(b[c]=a[c],delete a[c])});m.css(b);"width"in b&&ba();"fontSize"in b&&(ba(),N())}return Q.call(w,a)},getBBox:function(){return{width:L.width+2*R,height:L.height+2*R,x:L.x-R,y:L.y-R}},destroy:function(){r(w.element,"mouseenter");r(w.element,"mouseleave");m&&(m=m.destroy());C&&(C=C.destroy());
A.prototype.destroy.call(w);w=E=ba=N=z=null}};g||(I.shadow=function(a){a&&(ba(),C&&C.shadow(a));return w});return u(w,I)}});a.Renderer=z});J(H,"parts/Html.js",[H["parts/Globals.js"]],function(a){var A=a.attr,z=a.createElement,G=a.css,n=a.defined,h=a.extend,t=a.isFirefox,x=a.isMS,v=a.isWebKit,y=a.pick,q=a.pInt,g=a.SVGElement,e=a.SVGRenderer,m=a.win;h(g.prototype,{htmlCss:function(a){var b="SPAN"===this.element.tagName&&a&&"width"in a,f=y(b&&a.width,void 0),k;b&&(delete a.width,this.textWidth=f,k=!0);
a&&"ellipsis"===a.textOverflow&&(a.whiteSpace="nowrap",a.overflow="hidden");this.styles=h(this.styles,a);G(this.element,a);k&&this.htmlUpdateTransform();return this},htmlGetBBox:function(){var a=this.element;return{x:a.offsetLeft,y:a.offsetTop,width:a.offsetWidth,height:a.offsetHeight}},htmlUpdateTransform:function(){if(this.added){var a=this.renderer,b=this.element,f=this.translateX||0,k=this.translateY||0,d=this.x||0,e=this.y||0,g=this.textAlign||"left",m={left:0,center:.5,right:1}[g],p=this.styles,
c=p&&p.whiteSpace;G(b,{marginLeft:f,marginTop:k});!a.styledMode&&this.shadows&&this.shadows.forEach(function(a){G(a,{marginLeft:f+1,marginTop:k+1})});this.inverted&&[].forEach.call(b.childNodes,function(c){a.invertChild(c,b)});if("SPAN"===b.tagName){var p=this.rotation,l=this.textWidth&&q(this.textWidth),B=[p,g,b.innerHTML,this.textWidth,this.textAlign].join(),C;(C=l!==this.oldTextWidth)&&!(C=l>this.oldTextWidth)&&((C=this.textPxLength)||(G(b,{width:"",whiteSpace:c||"nowrap"}),C=b.offsetWidth),C=
C>l);C&&(/[ \-]/.test(b.textContent||b.innerText)||"ellipsis"===b.style.textOverflow)?(G(b,{width:l+"px",display:"block",whiteSpace:c||"normal"}),this.oldTextWidth=l,this.hasBoxWidthChanged=!0):this.hasBoxWidthChanged=!1;B!==this.cTT&&(c=a.fontMetrics(b.style.fontSize,b).b,!n(p)||p===(this.oldRotation||0)&&g===this.oldAlign||this.setSpanRotation(p,m,c),this.getSpanCorrection(!n(p)&&this.textPxLength||b.offsetWidth,c,m,p,g));G(b,{left:d+(this.xCorr||0)+"px",top:e+(this.yCorr||0)+"px"});this.cTT=B;
this.oldRotation=p;this.oldAlign=g}}else this.alignOnAdd=!0},setSpanRotation:function(a,b,f){var k={},d=this.renderer.getTransformKey();k[d]=k.transform="rotate("+a+"deg)";k[d+(t?"Origin":"-origin")]=k.transformOrigin=100*b+"% "+f+"px";G(this.element,k)},getSpanCorrection:function(a,b,f){this.xCorr=-a*f;this.yCorr=-b}});h(e.prototype,{getTransformKey:function(){return x&&!/Edge/.test(m.navigator.userAgent)?"-ms-transform":v?"-webkit-transform":t?"MozTransform":m.opera?"-o-transform":""},html:function(e,
b,f){var k=this.createElement("span"),d=k.element,w=k.renderer,u=w.isSVG,m=function(a,b){["opacity","visibility"].forEach(function(c){a[c+"Setter"]=function(l,d,r){var f=a.div?a.div.style:b;g.prototype[c+"Setter"].call(this,l,d,r);f&&(f[d]=l)}});a.addedSetters=!0},p=a.charts[w.chartIndex],p=p&&p.styledMode;k.textSetter=function(a){a!==d.innerHTML&&(delete this.bBox,delete this.oldTextWidth);this.textStr=a;d.innerHTML=y(a,"");k.doTransform=!0};u&&m(k,k.element.style);k.xSetter=k.ySetter=k.alignSetter=
k.rotationSetter=function(a,b){"align"===b&&(b="textAlign");k[b]=a;k.doTransform=!0};k.afterSetters=function(){this.doTransform&&(this.htmlUpdateTransform(),this.doTransform=!1)};k.attr({text:e,x:Math.round(b),y:Math.round(f)}).css({position:"absolute"});p||k.css({fontFamily:this.style.fontFamily,fontSize:this.style.fontSize});d.style.whiteSpace="nowrap";k.css=k.htmlCss;u&&(k.add=function(a){var c,b=w.box.parentNode,f=[];if(this.parentGroup=a){if(c=a.div,!c){for(;a;)f.push(a),a=a.parentGroup;f.reverse().forEach(function(a){function l(c,
b){a[b]=c;"translateX"===b?d.left=c+"px":d.top=c+"px";a.doTransform=!0}var d,p=A(a.element,"class");p&&(p={className:p});c=a.div=a.div||z("div",p,{position:"absolute",left:(a.translateX||0)+"px",top:(a.translateY||0)+"px",display:a.display,opacity:a.opacity,pointerEvents:a.styles&&a.styles.pointerEvents},c||b);d=c.style;h(a,{classSetter:function(a){return function(c){this.element.setAttribute("class",c);a.className=c}}(c),on:function(){f[0].div&&k.on.apply({element:f[0].div},arguments);return a},
translateXSetter:l,translateYSetter:l});a.addedSetters||m(a)})}}else c=b;c.appendChild(d);k.added=!0;k.alignOnAdd&&k.htmlUpdateTransform();return k});return k}})});J(H,"parts/Time.js",[H["parts/Globals.js"]],function(a){var A=a.defined,z=a.extend,G=a.merge,n=a.pick,h=a.timeUnits,t=a.win;a.Time=function(a){this.update(a,!1)};a.Time.prototype