/* Highstock JS v11.1.0 (2023-06-05) (c) 2009-2021 Torstein Honsi License: www.highcharts.com/license */ 'use strict';(function(S,L){"object"===typeof module&&module.exports?(L["default"]=L,module.exports=S.document?L(S):L):"function"===typeof define&&define.amd?define("highcharts/highstock",function(){return L(S)}):(S.Highcharts&&S.Highcharts.error(16,!0),S.Highcharts=L(S))})("undefined"!==typeof window?window:this,function(S){function L(a,A,J,K){a.hasOwnProperty(A)||(a[A]=K.apply(null,J),"function"===typeof CustomEvent&&S.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:A,module:a[A]}})))} var a={};L(a,"Core/Globals.js",[],function(){var a;(function(a){a.SVG_NS="http://www.w3.org/2000/svg";a.product="Highcharts";a.version="11.1.0";a.win="undefined"!==typeof S?S:{};a.doc=a.win.document;a.svg=a.doc&&a.doc.createElementNS&&!!a.doc.createElementNS(a.SVG_NS,"svg").createSVGRect;a.userAgent=a.win.navigator&&a.win.navigator.userAgent||"";a.isChrome=-1!==a.userAgent.indexOf("Chrome");a.isFirefox=-1!==a.userAgent.indexOf("Firefox");a.isMS=/(edge|msie|trident)/i.test(a.userAgent)&&!a.win.opera; a.isSafari=!a.isChrome&&-1!==a.userAgent.indexOf("Safari");a.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(a.userAgent);a.isWebKit=-1!==a.userAgent.indexOf("AppleWebKit");a.deg2rad=2*Math.PI/360;a.hasBidiBug=a.isFirefox&&4>parseInt(a.userAgent.split("Firefox/")[1],10);a.hasTouch=!!a.win.TouchEvent;a.marginNames=["plotTop","marginRight","marginBottom","plotLeft"];a.noop=function(){};a.supportsPassiveEvents=function(){let u=!1;if(!a.isMS){const A=Object.defineProperty({},"passive",{get:function(){u= !0}});a.win.addEventListener&&a.win.removeEventListener&&(a.win.addEventListener("testPassive",a.noop,A),a.win.removeEventListener("testPassive",a.noop,A))}return u}();a.charts=[];a.dateFormats={};a.seriesTypes={};a.symbolSizes={};a.chartCount=0})(a||(a={}));"";return a});L(a,"Core/Utilities.js",[a["Core/Globals.js"]],function(a){function u(c,b,d,z){const k=b?"Highcharts error":"Highcharts warning";32===c&&(c=`${k}: Deprecated member`);const w=t(c);let r=w?`${k} #${c}: www.highcharts.com/errors/${c}/`: c.toString();if("undefined"!==typeof z){let c="";w&&(r+="?");M(z,function(b,k){c+=`\n - ${k}: ${b}`;w&&(r+=encodeURI(k)+"="+encodeURI(b))});r+=c}f(a,"displayError",{chart:d,code:c,message:r,params:z},function(){if(b)throw Error(r);l.console&&-1===u.messages.indexOf(r)&&console.warn(r)});u.messages.push(r)}function J(c,b){return parseInt(c,b||10)}function K(c){return"string"===typeof c}function G(c){c=Object.prototype.toString.call(c);return"[object Array]"===c||"[object Array Iterator]"===c}function D(c, b){return!!c&&"object"===typeof c&&(!b||!G(c))}function E(c){return D(c)&&"number"===typeof c.nodeType}function B(c){const b=c&&c.constructor;return!(!D(c,!0)||E(c)||!b||!b.name||"Object"===b.name)}function t(c){return"number"===typeof c&&!isNaN(c)&&Infinity>c&&-Infinity{q(b)?c.setAttribute(d,b):k?(F=c.getAttribute(d))||"class"!==d||(F=c.getAttribute(d+"Name")):c.removeAttribute(d)}; K(b)?w(d,b):M(b,w);return F}function p(c){return G(c)?c:[c]}function n(c,b){let k;c||(c={});for(k in b)c[k]=b[k];return c}function h(){const c=arguments,b=c.length;for(let k=0;k=b-1&&(b=Math.floor(d)),Math.max(0,b-(I(c,"padding-left",!0)||0)-(I(c,"padding-right",!0)||0));if("height"===b)return Math.max(0,Math.min(c.offsetHeight,c.scrollHeight)-(I(c,"padding-top",!0)||0)-(I(c,"padding-bottom",!0)||0));if(c=l.getComputedStyle(c,void 0))k=c.getPropertyValue(b),h(d,"opacity"!==b)&&(k=J(k));return k}function M(c,b,d){for(const k in c)Object.hasOwnProperty.call(c, k)&&b.call(d||c[k],c[k],k,c)}function C(c,b,d){function k(b,k){const d=c.removeEventListener;d&&d.call(c,b,k,!1)}function F(d){let F,w;c.nodeName&&(b?(F={},F[b]=!0):F=d,M(F,function(c,b){if(d[b])for(w=d[b].length;w--;)k(b,d[b][w].fn)}))}var w="function"===typeof c&&c.prototype||c;if(Object.hasOwnProperty.call(w,"hcEvents")){const c=w.hcEvents;b?(w=c[b]||[],d?(c[b]=w.filter(function(c){return d!==c.fn}),k(b,d)):(F(c),c[b]=[])):(F(c),delete w.hcEvents)}}function f(c,b,d,f){d=d||{};if(r.createEvent&& (c.dispatchEvent||c.fireEvent&&c!==a)){var k=r.createEvent("Events");k.initEvent(b,!0,!0);d=n(k,d);c.dispatchEvent?c.dispatchEvent(d):c.fireEvent(b,d)}else if(c.hcEvents){d.target||n(d,{preventDefault:function(){d.defaultPrevented=!0},target:c,type:b});k=[];let F=c,w=!1;for(;F.hcEvents;)Object.hasOwnProperty.call(F,"hcEvents")&&F.hcEvents[b]&&(k.length&&(w=!0),k.unshift.apply(k,F.hcEvents[b])),F=Object.getPrototypeOf(F);w&&k.sort((c,b)=>c.order-b.order);k.forEach(b=>{!1===b.fn.call(c,d)&&d.preventDefault()})}f&& !d.defaultPrevented&&f.call(c,d)}const {charts:y,doc:r,win:l}=a;(u||(u={})).messages=[];Math.easeInOutSine=function(c){return-.5*(Math.cos(Math.PI*c)-1)};var v=Array.prototype.find?function(c,b){return c.find(b)}:function(c,b){let k;const d=c.length;for(k=0;kc.order-b.order);return function(){C(c,b,d)}},arrayMax:function(c){let b=c.length,d=c[0];for(;b--;)c[b]>d&&(d=c[b]);return d},arrayMin:function(c){let b=c.length,d=c[0];for(;b--;)c[b]< d&&(d=c[b]);return d},attr:m,clamp:function(c,b,d){return c>b?c{if(1f&&!k?(null===b||void 0===b?void 0:b(),b=void 0):f&&("undefined"===typeof d||f=f&&(d=[1/f])));for(l=0;l=b||!F&&k<=(d[l]+(d[l+1]||d[l]))/2);l++);return c=x(c*f,-Math.round(Math.log(.001)/Math.LN10))},objectEach:M,offset:function(b){const c=r.documentElement;b=b.parentElement||b.parentNode?b.getBoundingClientRect():{top:0, left:0,width:0,height:0};return{top:b.top+(l.pageYOffset||c.scrollTop)-(c.clientTop||0),left:b.left+(l.pageXOffset||c.scrollLeft)-(c.clientLeft||0),width:b.width,height:b.height}},pad:function(b,d,f){return Array((d||2)+1-String(b).replace("-","").length).join(f||"0")+b},pick:h,pInt:J,pushUnique:function(b,d){return 0>b.indexOf(d)&&!!b.push(d)},relativeLength:function(b,d,f){return/%$/.test(b)?d*parseFloat(b)/100+(f||0):parseFloat(b)},removeEvent:C,splat:p,stableSort:function(b,d){const c=b.length; let k,F;for(F=0;Fnew D(m[1]));else if("string"===typeof a){this.input= a=D.names[a.toLowerCase()]||a;if("#"===a.charAt(0)){var q=a.length;var m=parseInt(a.substr(1),16);7===q?B=[(m&16711680)>>16,(m&65280)>>8,m&255,1]:4===q&&(B=[(m&3840)>>4|(m&3840)>>8,(m&240)>>4|m&240,(m&15)<<4|m&15,1])}if(!B)for(m=D.parsers.length;m--&&!B;)t=D.parsers[m],(q=t.regex.exec(a))&&(B=t.parse(q))}B&&(this.rgba=B)}get(a){const B=this.input,t=this.rgba;if("object"===typeof B&&"undefined"!==typeof this.stops){const q=K(B);q.stops=[].slice.call(q.stops);this.stops.forEach((m,p)=>{q.stops[p]=[q.stops[p][0], m.get(a)]});return q}return t&&u(t[0])?"rgb"===a||!a&&1===t[3]?"rgb("+t[0]+","+t[1]+","+t[2]+")":"a"===a?`${t[3]}`:"rgba("+t.join(",")+")":B}brighten(a){const B=this.rgba;if(this.stops)this.stops.forEach(function(t){t.brighten(a)});else if(u(a)&&0!==a)for(let t=0;3>t;t++)B[t]+=G(255*a),0>B[t]&&(B[t]=0),255y?"AM":"PM",P:12>y?"am":"pm",S:q(f.getSeconds()),L:q(Math.floor(g%1E3),3)},a.dateFormats);t(f,function(b,c){for(;-1!==e.indexOf("%"+c);)e=e.replace("%"+c,"function"===typeof b?b.call(x,g):b)});return h?e.substr(0,1).toUpperCase()+e.substr(1):e}resolveDTLFormat(e){return E(e,!0)?e:(e=p(e),{main:e[0],from:e[1], to:e[2]})}getTimeTicks(e,g,h,q){const f=this,y=[],r={};var l=new f.Date(g);const v=e.unitRange,d=e.count||1;let b;q=m(q,1);if(K(g)){f.set("Milliseconds",l,v>=n.second?0:d*Math.floor(f.get("Milliseconds",l)/d));v>=n.second&&f.set("Seconds",l,v>=n.minute?0:d*Math.floor(f.get("Seconds",l)/d));v>=n.minute&&f.set("Minutes",l,v>=n.hour?0:d*Math.floor(f.get("Minutes",l)/d));v>=n.hour&&f.set("Hours",l,v>=n.day?0:d*Math.floor(f.get("Hours",l)/d));v>=n.day&&f.set("Date",l,v>=n.month?1:Math.max(1,d*Math.floor(f.get("Date", l)/d)));if(v>=n.month){f.set("Month",l,v>=n.year?0:d*Math.floor(f.get("Month",l)/d));var c=f.get("FullYear",l)}v>=n.year&&f.set("FullYear",l,c-c%d);v===n.week&&(c=f.get("Day",l),f.set("Date",l,f.get("Date",l)-c+q+(c4*n.month||f.getTimezoneOffset(g)!==f.getTimezoneOffset(h));g=l.getTime();for(l=1;gy.length&&y.forEach(function(b){0===b%18E5&&"000000000"===f.dateFormat("%H%M%S%L",b)&&(r[b]="day")})}y.info=D(e,{higherRanks:r,totalRange:v*d});return y}getDateFormat(e,g,h,q){const f=this.dateFormat("%m-%d %H:%M:%S.%L",g),y={millisecond:15,second:12,minute:9,hour:6,day:3};let r,l="millisecond";for(r in n){if(e===n.week&&+this.dateFormat("%w", g)===h&&"00:00:00.000"===f.substr(6)){r="week";break}if(n[r]>e){r=l;break}if(y[r]&&f.substr(y[r])!=="01-01 00:00:00.000".substr(y[r]))break;"week"!==r&&(l=r)}return this.resolveDTLFormat(q[r]).main}}"";return e});L(a,"Core/Defaults.js",[a["Core/Chart/ChartDefaults.js"],a["Core/Color/Color.js"],a["Core/Globals.js"],a["Core/Color/Palettes.js"],a["Core/Time.js"],a["Core/Utilities.js"]],function(a,A,J,K,G,D){const {isTouchDevice:u,svg:B}=J,{merge:t}=D,q={colors:K.colors,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:{},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0, timezoneOffset:0,useUTC:!0},chart:a,title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",align:"center",margin:15,widthAdjust:-44},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:"",align:"center",widthAdjust:-44},caption:{margin:15,style:{color:"#666666",fontSize:"0.8em"},text:"",align:"left",verticalAlign:"bottom"},plotOptions:{},legend:{enabled:!0,align:"center",alignColumns:!0,className:"highcharts-no-tooltip",layout:"horizontal",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name}, borderColor:"#999999",borderRadius:0,navigation:{style:{fontSize:"0.8em"},activeColor:"#0022ff",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"0.8em",textDecoration:"none",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#666666",textDecoration:"line-through"},shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontSize:"0.8em",fontWeight:"bold"}}}, loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:B,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %e %b, %H:%M:%S.%L",second:"%A, %e %b, %H:%M:%S",minute:"%A, %e %b, %H:%M",hour:"%A, %e %b, %H:%M",day:"%A, %e %b %Y",week:"Week from %A, %e %b %Y",month:"%B %Y",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,shape:"callout",shared:!1, snap:u?25:10,headerFormat:'{point.key}
',pointFormat:'\u25cf {series.name}: {point.y}
',backgroundColor:"#ffffff",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:"#333333",cursor:"default",fontSize:"0.8em"},useHTML:!1},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"0.6em"}, text:"Highcharts.com"}};q.chart.styledMode=!1;"";const m=new G(q.time);a={defaultOptions:q,defaultTime:m,getOptions:function(){return q},setOptions:function(a){t(!0,q,a);if(a.time||a.global)J.time?J.time.update(t(q.global,q.time,a.global,a.time)):J.time=m;return q}};"";return a});L(a,"Core/Animation/Fx.js",[a["Core/Color/Color.js"],a["Core/Globals.js"],a["Core/Utilities.js"]],function(a,A,J){const {parse:u}=a,{win:G}=A,{isNumber:D,objectEach:E}=J;class B{constructor(a,q,m){this.pos=NaN;this.options= q;this.elem=a;this.prop=m}dSetter(){var a=this.paths;const q=a&&a[0];a=a&&a[1];const m=this.now||0;let p=[];if(1!==m&&q&&a)if(q.length===a.length&&1>m)for(let n=0;n=h+this.startTime?(this.now=this.end,this.pos=1,this.update(),e=g[this.prop]=!0,E(g,function(g){!0!==g&&(e=!1)}),e&&n&&n.call(p),a=!1):(this.pos=m.easing((q-this.startTime)/h),this.now=this.start+(this.end-this.start)*this.pos,this.update(),a=!0);return a}initPath(a, q,m){function p(f,y){for(;f.length{g=u(g.options.animation); x=h&&G(h.defer)?e.defer:Math.max(x,g.duration+g.defer);n=Math.min(e.duration,g.duration)});a.renderer.forExport&&(x=0);return{defer:Math.max(0,x-n),duration:Math.min(x,n)}},setAnimation:function(a,h){h.renderer.globalAnimation=p(a,h.options.chart.animation,!0)},stop:K}});L(a,"Core/Renderer/HTML/AST.js",[a["Core/Globals.js"],a["Core/Utilities.js"]],function(a,A){const {SVG_NS:u,win:K}=a,{attr:G,createElement:D,css:E,error:B,isFunction:t,isString:q,objectEach:m,splat:p}=A;({trustedTypes:A}=K);const n= A&&t(A.createPolicy)&&A.createPolicy("highcharts",{createHTML:e=>e});A=n?n.createHTML(""):"";try{var h=!!(new DOMParser).parseFromString(A,"text/html")}catch(x){h=!1}const g=h;class e{static filterUserAttributes(g){m(g,(x,h)=>{let a=!0;-1===e.allowedAttributes.indexOf(h)&&(a=!1);-1!==["background","dynsrc","href","lowsrc","src"].indexOf(h)&&(a=q(x)&&e.allowedReferences.some(f=>0===x.indexOf(f)));a||(B(33,!1,void 0,{"Invalid attribute in config":`${h}`}),delete g[h]);q(x)&&g[h]&&(g[h]=x.replace(/{g=g.split(":").map(f=>f.trim());const x=g.shift();x&&g.length&&(e[x.replace(/-([a-z])/g,f=>f[1].toUpperCase())]=g.join(":"));return e},{})}static setElementHTML(g,h){g.innerHTML=e.emptyHTML;h&&(new e(h)).addToDOM(g)}constructor(e){this.nodes="string"===typeof e?this.parseMarkup(e):e}addToDOM(g){function h(g,x){let f;p(g).forEach(function(y){var r=y.tagName;const l=y.textContent?a.doc.createTextNode(y.textContent):void 0,v= e.bypassHTMLFiltering;let d;if(r)if("#text"===r)d=l;else if(-1!==e.allowedTags.indexOf(r)||v){r=a.doc.createElementNS("svg"===r?u:x.namespaceURI||u,r);const b=y.attributes||{};m(y,function(c,d){"tagName"!==d&&"attributes"!==d&&"children"!==d&&"style"!==d&&"textContent"!==d&&(b[d]=c)});G(r,v?b:e.filterUserAttributes(b));y.style&&E(r,y.style);l&&r.appendChild(l);h(y.children||[],r);d=r}else B(33,!1,void 0,{"Invalid tagName in config":r});d&&x.appendChild(d);f=d});return f}return h(this.nodes,g)}parseMarkup(h){const x= [];h=h.trim().replace(/ style=(["'])/g," data-style=$1");if(g)h=(new DOMParser).parseFromString(n?n.createHTML(h):h,"text/html");else{const e=D("div");e.innerHTML=h;h={body:e}}const a=(g,f)=>{var y=g.nodeName.toLowerCase();const r={tagName:y};"#text"===y&&(r.textContent=g.textContent||"");if(y=g.attributes){const f={};[].forEach.call(y,l=>{"data-style"===l.name?r.style=e.parseStyle(l.value):f[l.name]=l.value});r.attributes=f}if(g.childNodes.length){const f=[];[].forEach.call(g.childNodes,l=>{a(l, f)});f.length&&(r.children=f)}f.push(r)};[].forEach.call(h.body.childNodes,e=>a(e,x));return x}}e.allowedAttributes="alt aria-controls aria-describedby aria-expanded aria-haspopup aria-hidden aria-label aria-labelledby aria-live aria-pressed aria-readonly aria-roledescription aria-selected class clip-path color colspan cx cy d dx dy disabled fill flood-color flood-opacity height href id in markerHeight markerWidth offset opacity orient padding paddingLeft paddingRight patternUnits r refX refY role scope slope src startOffset stdDeviation stroke stroke-linecap stroke-width style tableValues result rowspan summary target tabindex text-align text-anchor textAnchor textLength title type valign width x x1 x2 xlink:href y y1 y2 zIndex".split(" "); e.allowedReferences="https:// http:// mailto: / ../ ./ #".split(" ");e.allowedTags="a abbr b br button caption circle clipPath code dd defs div dl dt em feComponentTransfer feDropShadow feFuncA feFuncB feFuncG feFuncR feGaussianBlur feOffset feMerge feMergeNode filter h1 h2 h3 h4 h5 h6 hr i img li linearGradient marker ol p path pattern pre rect small span stop strong style sub sup svg table text textPath thead title tbody tspan td th tr u ul #text".split(" ");e.emptyHTML=A;e.bypassHTMLFiltering= !1;"";return e});L(a,"Core/Templating.js",[a["Core/Defaults.js"],a["Core/Utilities.js"]],function(a,A){function u(g="",e,x){const a=/\{([a-zA-Z0-9:\.,;\-\/<>%_@"'= #\(\)]+)\}/g,n=/\(([a-zA-Z0-9:\.,;\-\/<>%_@"'= ]+)\)/g,q=[],f=/f$/,y=/\.([0-9])/,r=G.lang,l=x&&x.time||D,v=x&&x.numberFormatter||K,d=(b="")=>{let c;return"true"===b?!0:"false"===b?!1:(c=Number(b)).toString()===b?c:B(b,e)};let b,c,k=0,w;for(;null!==(b=a.exec(g));){const d=n.exec(b[1]);d&&(b=d,w=!0);c&&c.isBlock||(c={ctx:e,expression:b[1], find:b[0],isBlock:"#"===b[1].charAt(0),start:b.index,startInner:b.index+b[0].length,length:b[0].length});var z=b[1].split(" ")[0].replace("#","");h[z]&&(c.isBlock&&z===c.fn&&k++,c.fn||(c.fn=z));z="else"===b[1];if(c.isBlock&&c.fn&&(b[1]===`/${c.fn}`||z))if(k)z||k--;else{var F=c.startInner;F=g.substr(F,b.index-F);void 0===c.body?(c.body=F,c.startInner=b.index+b[0].length):c.elseBody=F;c.find+=F+b[0];z||(q.push(c),c=void 0)}else c.isBlock||q.push(c);if(d&&(null===c||void 0===c||!c.isBlock))break}q.forEach(b=> {const {body:c,elseBody:k,expression:F,fn:w}=b;var H;if(w){var z=[b],x=F.split(" ");for(H=h[w].length;H--;)z.unshift(d(x[H+1]));H=h[w].apply(e,z);b.isBlock&&"boolean"===typeof H&&(H=u(H?c:k,e))}else z=F.split(":"),H=d(z.shift()||""),z.length&&"number"===typeof H&&(z=z.join(":"),f.test(z)?(x=parseInt((z.match(y)||["","-1"])[1],10),null!==H&&(H=v(H,x,r.decimalPoint,-1f[1]){var r=e+ +f[1];0<=r?(f[0]=(+f[0]).toExponential(r).split("e")[0],e=r):(f[0]=f[0].split(".")[0]||0,g=20>e?(f[0]*Math.pow(10,f[1])).toFixed(e):0,f[1]=0)}r=(Math.abs(f[1]?f[0]:g)+Math.pow(10,-Math.max(e,m)-1)).toFixed(e);m=String(n(r));const l=3 g?"-":"")+(l?m.substr(0,l)+a:"");g=0>+f[1]&&!y?"0":g+m.substr(l).replace(/(\d{3})(?=\d)/g,"$1"+a);e&&(g+=h+r.slice(-e));f[1]&&0!==+g&&(g+="e"+f[1]);return g}const {defaultOptions:G,defaultTime:D}=a,{extend:E,getNestedProperty:B,isArray:t,isNumber:q,isObject:m,pick:p,pInt:n}=A,h={add:(g,e)=>g+e,divide:(g,e)=>0!==e?g/e:"",eq:(g,e)=>g==e,each:function(g){const e=arguments[arguments.length-1];return t(g)?g.map((h,a)=>u(e.body,E(m(h)?h:{"@this":h},{"@index":a,"@first":0===a,"@last":a===g.length-1}))).join(""): !1},ge:(g,e)=>g>=e,gt:(g,e)=>g>e,"if":g=>!!g,le:(g,e)=>g<=e,lt:(g,e)=>gg*e,ne:(g,e)=>g!=e,subtract:(g,e)=>g-e,unless:g=>!g};return{dateFormat:function(g,e,h){return D.dateFormat(g,e,h)},format:u,helpers:h,numberFormat:K}});L(a,"Core/Renderer/RendererUtilities.js",[a["Core/Utilities.js"]],function(a){const {clamp:u,pick:J,stableSort:K}=a;var G;(function(a){function A(a,t,q){const m=a;var p=m.reducedLen||t,n=(e,g)=>(g.rank||0)-(e.rank||0);const h=(e,g)=>e.target-g.target;let g,e= !0,x=[],I=0;for(g=a.length;g--;)I+=a[g].size;if(I>p){K(a,n);for(I=g=0;I<=p;)I+=a[g].size,g++;x=a.splice(g-1,a.length)}K(a,h);for(a=a.map(e=>({size:e.size,targets:[e.target],align:J(e.align,.5)}));e;){for(g=a.length;g--;)p=a[g],n=(Math.min.apply(0,p.targets)+Math.max.apply(0,p.targets))/2,p.pos=u(n-p.size*p.align,0,t-p.size);g=a.length;for(e=!1;g--;)0a[g].pos&&(a[g-1].size+=a[g].size,a[g-1].targets=a[g-1].targets.concat(a[g].targets),a[g-1].align=.5,a[g-1].pos+a[g-1].size> t&&(a[g-1].pos=t-a[g-1].size),a.splice(g,1),e=!0)}m.push.apply(m,x);g=0;a.some(e=>{let a=0;return(e.targets||[]).some(()=>{m[g].pos=e.pos+a;if("undefined"!==typeof q&&Math.abs(m[g].pos-m[g].target)>q)return m.slice(0,g+1).forEach(f=>delete f.pos),m.reducedLen=(m.reducedLen||t)-.1*t,m.reducedLen>.1*t&&A(m,t,q),!0;a+=m[g].size;g++;return!1})});K(m,h);return m}a.distribute=A})(G||(G={}));return G});L(a,"Core/Renderer/SVG/SVGElement.js",[a["Core/Animation/AnimationUtilities.js"],a["Core/Color/Color.js"], a["Core/Globals.js"],a["Core/Utilities.js"]],function(a,A,J,K){const {animate:u,animObject:D,stop:E}=a,{deg2rad:B,doc:t,svg:q,SVG_NS:m,win:p}=J,{addEvent:n,attr:h,createElement:g,css:e,defined:x,erase:I,extend:M,fireEvent:C,isArray:f,isFunction:y,isObject:r,isString:l,merge:v,objectEach:d,pick:b,pInt:c,syncTimeout:k,uniqueKey:w}=K;class z{constructor(){this.element=void 0;this.onEvents={};this.opacity=1;this.renderer=void 0;this.SVG_NS=m}_defaultGetter(c){c=b(this[c+"Value"],this[c],this.element? this.element.getAttribute(c):null,0);/^[\-0-9\.]+$/.test(c)&&(c=parseFloat(c));return c}_defaultSetter(b,c,d){d.setAttribute(c,b)}add(b){const c=this.renderer,d=this.element;let k;b&&(this.parentGroup=b);"undefined"!==typeof this.textStr&&"text"===this.element.nodeName&&c.buildText(this);this.added=!0;if(!b||b.handleZ||this.zIndex)k=this.zIndexSetter();k||(b?b.element:c.box).appendChild(d);if(this.onAdd)this.onAdd();return this}addClass(b,c){const d=c?"":this.attr("class")||"";b=(b||"").split(/ /g).reduce(function(b, c){-1===d.indexOf(c)&&b.push(c);return b},d?[d]:[]).join(" ");b!==d&&this.attr("class",b);return this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(c,d,k){const F={};var f=this.renderer,e=f.alignedObjects,H;let w,r;if(c){if(this.alignOptions=c,this.alignByTranslate=d,!k||l(k))this.alignTo=H=k||"renderer",I(e,this),e.push(this),k=void 0}else c=this.alignOptions,d=this.alignByTranslate,H=this.alignTo;k=b(k,f[H],"scrollablePlotBox"===H?f.plotBox:void 0,f);H=c.align; const z=c.verticalAlign;f=(k.x||0)+(c.x||0);e=(k.y||0)+(c.y||0);"right"===H?w=1:"center"===H&&(w=2);w&&(f+=(k.width-(c.width||0))/w);F[d?"translateX":"x"]=Math.round(f);"bottom"===z?r=1:"middle"===z&&(r=2);r&&(e+=(k.height-(c.height||0))/r);F[d?"translateY":"y"]=Math.round(e);this[this.placed?"animate":"attr"](F);this.placed=!0;this.alignAttr=F;return this}alignSetter(b){const c={left:"start",center:"middle",right:"end"};c[b]&&(this.alignValue=b,this.element.setAttribute("text-anchor",c[b]))}animate(c, f,l){const F=D(b(f,this.renderer.globalAnimation,!0));f=F.defer;t.hidden&&(F.duration=0);0!==F.duration?(l&&(F.complete=l),k(()=>{this.element&&u(this,c,F)},f)):(this.attr(c,void 0,l||F.complete),d(c,function(b,c){F.step&&F.step.call(this,b,{prop:c,pos:1,elem:this})},this));return this}applyTextOutline(b){const c=this.element;-1!==b.indexOf("contrast")&&(b=b.replace(/contrast/g,this.renderer.getContrast(c.style.fill)));var d=b.split(" ");b=d[d.length-1];if((d=d[0])&&"none"!==d&&J.svg){this.fakeTS= !0;d=d.replace(/(^[\d\.]+)(.*?)$/g,function(b,c,d){return 2*Number(c)+d});this.removeTextOutline();const k=t.createElementNS(m,"tspan");h(k,{"class":"highcharts-text-outline",fill:b,stroke:b,"stroke-width":d,"stroke-linejoin":"round"});b=c.querySelector("textPath")||c;[].forEach.call(b.childNodes,b=>{const c=b.cloneNode(!0);c.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach(b=>c.removeAttribute(b));k.appendChild(c)});let F=0;[].forEach.call(b.querySelectorAll("text tspan"),b=>{F+= Number(b.getAttribute("dy"))});d=t.createElementNS(m,"tspan");d.textContent="\u200b";h(d,{x:Number(c.getAttribute("x")),dy:-F});k.appendChild(d);b.insertBefore(k,b.firstChild)}}attr(b,c,k,f){const F=this.element,l=z.symbolCustomAttribs;let H,e,w=this,r,v;"string"===typeof b&&"undefined"!==typeof c&&(H=b,b={},b[H]=c);"string"===typeof b?w=(this[b+"Getter"]||this._defaultGetter).call(this,b,F):(d(b,function(c,d){r=!1;f||E(this,d);this.symbolName&&-1!==l.indexOf(d)&&(e||(this.symbolAttr(b),e=!0),r=!0); !this.rotation||"x"!==d&&"y"!==d||(this.doTransform=!0);r||(v=this[d+"Setter"]||this._defaultSetter,v.call(this,c,d,F))},this),this.afterSetters());k&&k.call(this);return w}clip(b){return this.attr("clip-path",b?"url("+this.renderer.url+"#"+b.id+")":"none")}crisp(b,c){c=c||b.strokeWidth||0;const d=Math.round(c)%2/2;b.x=Math.floor(b.x||this.x||0)+d;b.y=Math.floor(b.y||this.y||0)+d;b.width=Math.floor((b.width||this.width||0)-2*d);b.height=Math.floor((b.height||this.height||0)-2*d);x(b.strokeWidth)&& (b.strokeWidth=c);return b}complexColor(b,c,k){const F=this.renderer;let l,e,H,r,z,y,g,N,a,h,n=[],q;C(this.renderer,"complexColor",{args:arguments},function(){b.radialGradient?e="radialGradient":b.linearGradient&&(e="linearGradient");if(e){H=b[e];z=F.gradients;y=b.stops;a=k.radialReference;f(H)&&(b[e]=H={x1:H[0],y1:H[1],x2:H[2],y2:H[3],gradientUnits:"userSpaceOnUse"});"radialGradient"===e&&a&&!x(H.gradientUnits)&&(r=H,H=v(H,F.getRadialAttr(a,r),{gradientUnits:"userSpaceOnUse"}));d(H,function(b,c){"id"!== c&&n.push(c,b)});d(y,function(b){n.push(b)});n=n.join(",");if(z[n])h=z[n].attr("id");else{H.id=h=w();const b=z[n]=F.createElement(e).attr(H).add(F.defs);b.radAttr=r;b.stops=[];y.forEach(function(c){0===c[1].indexOf("rgba")?(l=A.parse(c[1]),g=l.get("rgb"),N=l.get("a")):(g=c[1],N=1);c=F.createElement("stop").attr({offset:c[0],"stop-color":g,"stop-opacity":N}).add(b);b.stops.push(c)})}q="url("+F.url+"#"+h+")";k.setAttribute(c,q);k.gradient=n;b.toString=function(){return q}}})}css(b){const k=this.styles, f={},F=this.element;let l,w=!k;k&&d(b,function(b,c){k&&k[c]!==b&&(f[c]=b,w=!0)});if(w){k&&(b=M(k,f));null===b.width||"auto"===b.width?delete this.textWidth:"text"===F.nodeName.toLowerCase()&&b.width&&(l=this.textWidth=c(b.width));this.styles=b;l&&!q&&this.renderer.forExport&&delete b.width;const d=v(b);F.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","width"].forEach(b=>d&&delete d[b]),d.color&&(d.fill=d.color));e(F,d)}this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this), b.textOutline&&this.applyTextOutline(b.textOutline));return this}dashstyleSetter(d){let k=this["stroke-width"];"inherit"===k&&(k=1);if(d=d&&d.toLowerCase()){const f=d.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(d=f.length;d--;)f[d]=""+c(f[d])*b(k,NaN);d=f.join(",").replace(/NaN/g,"none");this.element.setAttribute("stroke-dasharray", d)}}destroy(){const b=this;var c=b.element||{};const k=b.renderer;var f=c.ownerSVGElement;let l="SPAN"===c.nodeName&&b.parentGroup||void 0;c.onclick=c.onmouseout=c.onmouseover=c.onmousemove=c.point=null;E(b);if(b.clipPath&&f){const c=b.clipPath;[].forEach.call(f.querySelectorAll("[clip-path],[CLIP-PATH]"),function(b){-1c&&c.join?(d?b+" ":"")+c.join(" "):(c||"").toString(),""));/(NaN| {2}|^$)/.test(b)&&(b="M 0 0");this[c]!==b&&(d.setAttribute(c, b),this[c]=b)}fadeOut(c){const d=this;d.animate({opacity:0},{duration:b(c,150),complete:function(){d.hide()}})}fillSetter(b,c,d){"string"===typeof b?d.setAttribute(c,b):b&&this.complexColor(b,c,d)}getBBox(c,d){const {alignValue:k,element:f,renderer:l,styles:F,textStr:H}=this,{cache:w,cacheKeys:r}=l;var v=f.namespaceURI===this.SVG_NS;d=b(d,this.rotation,0);var g=l.styledMode?f&&z.prototype.getStyle.call(f,"font-size"):F&&F.fontSize;let N;let a;x(H)&&(a=H.toString(),-1===a.indexOf("<")&&(a=a.replace(/[0-9]/g, "0")),a+=["",l.rootFontSize,g,d,this.textWidth,k,F&&F.textOverflow,F&&F.fontWeight].join());a&&!c&&(N=w[a]);if(!N){if(v||l.forExport){try{var h=this.fakeTS&&function(b){const c=f.querySelector(".highcharts-text-outline");c&&e(c,{display:b})};y(h)&&h("none");N=f.getBBox?M({},f.getBBox()):{width:f.offsetWidth,height:f.offsetHeight,x:0,y:0};y(h)&&h("")}catch(da){""}if(!N||0>N.width)N={x:0,y:0,width:0,height:0}}else N=this.htmlGetBBox();h=N.width;c=N.height;v&&(N.height=c={"11px,17":14,"13px,20":16}[`${g|| ""},${Math.round(c)}`]||c);if(d){v=Number(f.getAttribute("y")||0)-N.y;g={right:1,center:.5}[k||0]||0;var n=d*B,q=(d-90)*B,m=h*Math.cos(n);d=h*Math.sin(n);var p=Math.cos(q);n=Math.sin(q);h=N.x+g*(h-m)+v*p;q=h+m;p=q-c*p;m=p-m;v=N.y+v-g*d+v*n;g=v+d;c=g-c*n;d=c-d;N.x=Math.min(h,q,p,m);N.y=Math.min(v,g,c,d);N.width=Math.max(h,q,p,m)-N.x;N.height=Math.max(v,g,c,d)-N.y}}if(a&&(""===H||0{if(b&&H){let H=b.attr("id");H||b.attr("id",H=w());var f={x:0,y:0};x(l.dx)&&(f.dx=l.dx,delete l.dx);x(l.dy)&&(f.dy=l.dy,delete l.dy);k.attr(f);this.attr({transform:""});this.box&&(this.box=this.box.destroy());f=c.nodes.slice(0);c.nodes.length=0;c.nodes[0]={tagName:"textPath",attributes:M(l, {"text-anchor":l.textAnchor,href:`${d}#${H}`}),children:f}}}),k.textPath={path:b,undo:c}):(k.attr({dx:0,dy:0}),delete k.textPath);this.added&&(k.textCache="",this.renderer.buildText(k));return this}shadow(b){var c;const {renderer:d}=this,k=v(90===(null===(c=this.parentGroup)||void 0===c?void 0:c.rotation)?{offsetX:-1,offsetY:-1}:{},r(b)?b:{});c=d.shadowDefinition(k);return this.attr({filter:b?`url(${d.url}#${c})`:"none"})}show(b=!0){return this.attr({visibility:b?"inherit":"visible"})}["stroke-widthSetter"](b, c,d){this[c]=b;d.setAttribute(c,b)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;const b=this.getStyle("stroke-width");let d=0,k;b.indexOf("px")===b.length-2?d=c(b):""!==b&&(k=t.createElementNS(m,"rect"),h(k,{width:b,"stroke-width":0}),this.element.parentNode.appendChild(k),d=k.getBBox().width,k.parentNode.removeChild(k));return d}symbolAttr(c){const d=this;z.symbolCustomAttribs.forEach(function(k){d[k]=b(c[k],d[k])});d.attr({d:d.renderer.symbols[d.symbolName](d.x,d.y, d.width,d.height,d)})}textSetter(b){b!==this.textStr&&(delete this.textPxLength,this.textStr=b,this.added&&this.renderer.buildText(this))}titleSetter(c){const d=this.element,k=d.getElementsByTagName("title")[0]||t.createElementNS(this.SVG_NS,"title");d.insertBefore?d.insertBefore(k,d.firstChild):d.appendChild(k);k.textContent=String(b(c,"")).replace(/<[^>]*>/g,"").replace(/</g,"<").replace(/>/g,">")}toFront(){const b=this.element;b.parentNode.appendChild(b);return this}translate(b,c){return this.attr({translateX:b, translateY:c})}updateTransform(){const {element:c,matrix:d,rotation:k=0,scaleX:f,scaleY:l,translateX:e=0,translateY:H=0}=this,w=["translate("+e+","+H+")"];x(d)&&w.push("matrix("+d.join(",")+")");k&&w.push("rotate("+k+" "+b(this.rotationOriginX,c.getAttribute("x"),0)+" "+b(this.rotationOriginY,c.getAttribute("y")||0)+")");(x(f)||x(l))&&w.push("scale("+b(f,1)+" "+b(l,1)+")");w.length&&!(this.text||this).textPath&&c.setAttribute("transform",w.join(" "))}visibilitySetter(b,c,d){"inherit"===b?d.removeAttribute(c): this[c]!==b&&d.setAttribute(c,b);this[c]=b}xGetter(b){"circle"===this.element.nodeName&&("x"===b?b="cx":"y"===b&&(b="cy"));return this._defaultGetter(b)}zIndexSetter(b,d){var k=this.renderer,f=this.parentGroup;const l=(f||k).element||k.box,e=this.element;k=l===k.box;let H=!1,w;var r=this.added;let z;x(b)?(e.setAttribute("data-z-index",b),b=+b,this[d]===b&&(r=!1)):x(this[d])&&e.removeAttribute("data-z-index");this[d]=b;if(r){(b=this.zIndex)&&f&&(f.handleZ=!0);d=l.childNodes;for(z=d.length-1;0<=z&& !H;z--)if(f=d[z],r=f.getAttribute("data-z-index"),w=!x(r),f!==e)if(0>b&&w&&!k&&!z)l.insertBefore(e,d[z]),H=!0;else if(c(r)<=b||w&&(!x(b)||0<=b))l.insertBefore(e,d[z+1]),H=!0;H||(l.insertBefore(e,d[k?3:0]),H=!0)}return H}}z.symbolCustomAttribs="anchorX anchorY clockwise end height innerR r start width x y".split(" ");z.prototype.strokeSetter=z.prototype.fillSetter;z.prototype.yGetter=z.prototype.xGetter;z.prototype.matrixSetter=z.prototype.rotationOriginXSetter=z.prototype.rotationOriginYSetter=z.prototype.rotationSetter= z.prototype.scaleXSetter=z.prototype.scaleYSetter=z.prototype.translateXSetter=z.prototype.translateYSetter=z.prototype.verticalAlignSetter=function(b,c){this[c]=b;this.doTransform=!0};"";return z});L(a,"Core/Renderer/RendererRegistry.js",[a["Core/Globals.js"]],function(a){var u;(function(u){u.rendererTypes={};let A;u.getRendererType=function(a=A){return u.rendererTypes[a]||u.rendererTypes[A]};u.registerRendererType=function(G,D,E){u.rendererTypes[G]=D;if(!A||E)A=G,a.Renderer=D}})(u||(u={}));return u}); L(a,"Core/Renderer/SVG/SVGLabel.js",[a["Core/Renderer/SVG/SVGElement.js"],a["Core/Utilities.js"]],function(a,A){const {defined:u,extend:K,isNumber:G,merge:D,pick:E,removeEvent:B}=A;class t extends a{constructor(a,m,p,n,h,g,e,x,I,M){super();this.paddingRightSetter=this.paddingLeftSetter=this.paddingSetter;this.init(a,"g");this.textStr=m;this.x=p;this.y=n;this.anchorX=g;this.anchorY=e;this.baseline=I;this.className=M;this.addClass("button"===M?"highcharts-no-tooltip":"highcharts-label");M&&this.addClass("highcharts-"+ M);this.text=a.text(void 0,0,0,x).attr({zIndex:1});let q;"string"===typeof h&&((q=/^url\((.*?)\)$/.test(h))||this.renderer.symbols[h])&&(this.symbolKey=h);this.bBox=t.emptyBBox;this.padding=3;this.baselineOffset=0;this.needsBox=a.styledMode||q;this.deferredAttr={};this.alignFactor=0}alignSetter(a){a={left:0,center:.5,right:1}[a];a!==this.alignFactor&&(this.alignFactor=a,this.bBox&&G(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(a,m){this.anchorX=a;this.boxAttr(m,Math.round(a)-this.getCrispAdjust()- this.xSetting)}anchorYSetter(a,m){this.anchorY=a;this.boxAttr(m,a-this.ySetting)}boxAttr(a,m){this.box?this.box.attr(a,m):this.deferredAttr[a]=m}css(q){if(q){const a={};q=D(q);t.textProps.forEach(m=>{"undefined"!==typeof q[m]&&(a[m]=q[m],delete q[m])});this.text.css(a);"fontSize"in a||"fontWeight"in a?this.updateTextPadding():("width"in a||"textOverflow"in a)&&this.updateBoxSize()}return a.prototype.css.call(this,q)}destroy(){B(this.element,"mouseenter");B(this.element,"mouseleave");this.text&&this.text.destroy(); this.box&&(this.box=this.box.destroy());a.prototype.destroy.call(this)}fillSetter(a,m){a&&(this.needsBox=!0);this.fill=a;this.boxAttr(m,a)}getBBox(){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();const a=this.padding,m=E(this.paddingLeft,a);return{width:this.width,height:this.height,x:this.bBox.x-m,y:this.bBox.y-a}}getCrispAdjust(){return this.renderer.styledMode&&this.box?this.box.strokeWidth()%2/2:(this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(a){this.heightSetting= a}onAdd(){this.text.add(this);this.attr({text:E(this.textStr,""),x:this.x||0,y:this.y||0});this.box&&u(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(a,m){G(a)?a!==this[m]&&(this[m]=a,this.updateTextPadding()):this[m]=void 0}rSetter(a,m){this.boxAttr(m,a)}strokeSetter(a,m){this.stroke=a;this.boxAttr(m,a)}["stroke-widthSetter"](a,m){a&&(this.needsBox=!0);this["stroke-width"]=a;this.boxAttr(m,a)}["text-alignSetter"](a){this.textAlign=a}textSetter(a){"undefined"!== typeof a&&this.text.attr({text:a});this.updateTextPadding()}updateBoxSize(){var a=this.text;const m={},p=this.padding,n=this.bBox=G(this.widthSetting)&&G(this.heightSetting)&&!this.textAlign||!u(a.textStr)?t.emptyBBox:a.getBBox();this.width=this.getPaddedWidth();this.height=(this.heightSetting||n.height||0)+2*p;const h=this.renderer.fontMetrics(a);this.baselineOffset=p+Math.min((this.text.firstLineMetrics||h).b,n.height||Infinity);this.heightSetting&&(this.baselineOffset+=(this.heightSetting-h.h)/ 2);this.needsBox&&!a.textPath&&(this.box||(a=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect(),a.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),a.add(this)),a=this.getCrispAdjust(),m.x=a,m.y=(this.baseline?-this.baselineOffset:0)+a,m.width=Math.round(this.width),m.height=Math.round(this.height),this.box.attr(K(m,this.deferredAttr)),this.deferredAttr={})}updateTextPadding(){const a=this.text;if(!a.textPath){this.updateBoxSize(); const m=this.baseline?0:this.baselineOffset;let p=E(this.paddingLeft,this.padding);u(this.widthSetting)&&this.bBox&&("center"===this.textAlign||"right"===this.textAlign)&&(p+={center:.5,right:1}[this.textAlign]*(this.widthSetting-this.bBox.width));if(p!==a.x||m!==a.y)a.attr("x",p),a.hasBoxWidthChanged&&(this.bBox=a.getBBox(!0)),"undefined"!==typeof m&&a.attr("y",m);a.x=p;a.y=m}}widthSetter(a){this.widthSetting=G(a)?a:void 0}getPaddedWidth(){var a=this.padding;const m=E(this.paddingLeft,a);a=E(this.paddingRight, a);return(this.widthSetting||this.bBox.width||0)+m+a}xSetter(a){this.x=a;this.alignFactor&&(a-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0);this.xSetting=Math.round(a);this.attr("translateX",this.xSetting)}ySetter(a){this.ySetting=this.y=Math.round(a);this.attr("translateY",this.ySetting)}}t.emptyBBox={width:0,height:0,x:0,y:0};t.textProps="color direction fontFamily fontSize fontStyle fontWeight lineHeight textAlign textDecoration textOutline textOverflow whiteSpace width".split(" "); return t});L(a,"Core/Renderer/SVG/Symbols.js",[a["Core/Utilities.js"]],function(a){function u(a,t,q,m,p){const n=[];if(p){const h=p.start||0,g=E(p.r,q);q=E(p.r,m||q);m=(p.end||0)-.001;const e=p.innerR,x=E(p.open,.001>Math.abs((p.end||0)-h-2*Math.PI)),I=Math.cos(h),M=Math.sin(h),C=Math.cos(m),f=Math.sin(m),y=E(p.longArc,.001>m-h-Math.PI?0:1);let r=["A",g,q,0,y,E(p.clockwise,1),a+g*C,t+q*f];r.params={start:h,end:m,cx:a,cy:t};n.push(["M",a+g*I,t+q*M],r);G(e)&&(r=["A",e,e,0,y,G(p.clockwise)?1-p.clockwise: 0,a+e*I,t+e*M],r.params={start:m,end:h,cx:a,cy:t},n.push(x?["M",a+e*C,t+e*f]:["L",a+e*C,t+e*f],r));x||n.push(["Z"])}return n}function J(a,t,q,m,p){return p&&p.r?K(a,t,q,m,p):[["M",a,t],["L",a+q,t],["L",a+q,t+m],["L",a,t+m],["Z"]]}function K(a,t,q,m,p){p=(null===p||void 0===p?void 0:p.r)||0;return[["M",a+p,t],["L",a+q-p,t],["A",p,p,0,0,1,a+q,t+p],["L",a+q,t+m-p],["A",p,p,0,0,1,a+q-p,t+m],["L",a+p,t+m],["A",p,p,0,0,1,a,t+m-p],["L",a,t+p],["A",p,p,0,0,1,a+p,t],["Z"]]}const {defined:G,isNumber:D,pick:E}= a;return{arc:u,callout:function(a,t,q,m,p){const n=Math.min(p&&p.r||0,q,m),h=n+6,g=p&&p.anchorX;p=p&&p.anchorY||0;const e=K(a,t,q,m,{r:n});if(!D(g))return e;a+g>=q?p>t+h&&p=a+g?p>t+h&&pm&&g>a+h&&gp&&g>a+h&&g/g;var f=[x,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,h.getStyle("font-size"),this.width].join();if(f!==h.textCache){h.textCache=f;delete h.actualWidth;for(f=m.length;f--;)g.removeChild(m[f]);n||this.ellipsis||this.width||h.textPath||-1!==x.indexOf(" ")&&(!this.noWrap||C.test(x))? ""!==x&&(e&&e.appendChild(g),x=new a(x),this.modifyTree(x.nodes),x.addToDOM(g),this.modifyDOM(),this.ellipsis&&-1!==(g.textContent||"").indexOf("\u2026")&&h.attr("title",this.unescapeEntities(h.textStr||"",["<",">"])),e&&e.removeChild(g)):g.appendChild(u.createTextNode(this.unescapeEntities(x)));q(this.textOutline)&&h.applyTextOutline&&h.applyTextOutline(this.textOutline)}}modifyDOM(){const a=this.svgElement,g=E(a.element,"x");a.firstLineMetrics=void 0;let e;for(;e=a.element.firstChild;)if(/^[\s\u200B]*$/.test(e.textContent|| " "))a.element.removeChild(e);else break;[].forEach.call(a.element.querySelectorAll("tspan.highcharts-br"),(e,f)=>{e.nextSibling&&e.previousSibling&&(0===f&&1===e.previousSibling.nodeType&&(a.firstLineMetrics=a.renderer.fontMetrics(e.previousSibling)),E(e,{dy:this.getLineHeight(e.nextSibling),x:g}))});const x=this.width||0;if(x){var n=(e,f)=>{var y=e.textContent||"";const r=y.replace(/([^\^])-/g,"$1- ").split(" ");var l=!this.noWrap&&(1b.substring(0,d)+"\u2026");else if(l){y=[];for(l=[];f.firstChild&&f.firstChild!==e;)l.push(f.firstChild),f.removeChild(f.firstChild);for(;r.length;)r.length&&!this.noWrap&&0r.slice(0,d).join(" ").replace(/- /g,"-")),b=a.actualWidth,d++;l.forEach(b=>{f.insertBefore(b,e)});y.forEach(b=> {f.insertBefore(u.createTextNode(b),e);b=u.createElementNS(G,"tspan");b.textContent="\u200b";E(b,{dy:v,x:g});f.insertBefore(b,e)})}},m=e=>{[].slice.call(e.childNodes).forEach(f=>{f.nodeType===D.Node.TEXT_NODE?n(f,e):(-1!==f.className.baseVal.indexOf("highcharts-br")&&(a.actualWidth=0),m(f))})};m(a.element)}}getLineHeight(a){a=a.nodeType===D.Node.TEXT_NODE?a.parentElement:a;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(a||this.svgElement.element).h}modifyTree(a){const g= (e,h)=>{const {attributes:x={},children:n,style:m={},tagName:f}=e,y=this.renderer.styledMode;if("b"===f||"strong"===f)y?x["class"]="highcharts-strong":m.fontWeight="bold";else if("i"===f||"em"===f)y?x["class"]="highcharts-emphasized":m.fontStyle="italic";m&&m.color&&(m.fill=m.color);"br"===f?(x["class"]="highcharts-br",e.textContent="\u200b",(h=a[h+1])&&h.textContent&&(h.textContent=h.textContent.replace(/^ +/gm,""))):"a"===f&&n&&n.some(f=>"#text"===f.tagName)&&(e.children=[{children:n,tagName:"tspan"}]); "#text"!==f&&"a"!==f&&(e.tagName="tspan");B(e,{attributes:x,style:m});n&&n.filter(f=>"#text"!==f.tagName).forEach(g)};a.forEach(g);t(this.svgElement,"afterModifyTree",{nodes:a})}truncate(a,g,e,x,n,m){const h=this.svgElement,{rotation:f}=h,y=[];let r=e?1:0,l=(g||e||"").length,v=l,d,b;const c=function(b,c){b=c||b;if((c=a.parentNode)&&"undefined"===typeof y[b]&&c.getSubStringLength)try{y[b]=x+c.getSubStringLength(0,e?b+1:b)}catch(z){""}return y[b]};h.rotation=0;b=c(a.textContent.length);if(x+b>n){for(;r<= l;)v=Math.ceil((r+l)/2),e&&(d=m(e,v)),b=c(v,d&&d.length-1),r===l?r=l+1:b>n?l=v-1:r=v;0===l?a.textContent="":g&&l===g.length-1||(a.textContent=d||m(g||e,v))}e&&e.splice(0,v);h.actualWidth=b;h.rotation=f}unescapeEntities(a,g){m(this.renderer.escapes,function(e,h){g&&-1!==g.indexOf(e)||(a=a.toString().replace(new RegExp(e,"g"),h))});return a}}return n});L(a,"Core/Renderer/SVG/SVGRenderer.js",[a["Core/Renderer/HTML/AST.js"],a["Core/Color/Color.js"],a["Core/Globals.js"],a["Core/Renderer/RendererRegistry.js"], a["Core/Renderer/SVG/SVGElement.js"],a["Core/Renderer/SVG/SVGLabel.js"],a["Core/Renderer/SVG/Symbols.js"],a["Core/Renderer/SVG/TextBuilder.js"],a["Core/Utilities.js"]],function(a,A,J,K,G,D,E,B,t){const {charts:q,deg2rad:m,doc:p,isFirefox:n,isMS:h,isWebKit:g,noop:e,SVG_NS:x,symbolSizes:I,win:M}=J,{addEvent:C,attr:f,createElement:y,css:r,defined:l,destroyObjectProperties:v,extend:d,isArray:b,isNumber:c,isObject:k,isString:w,merge:z,pick:F,pInt:O,uniqueKey:P}=t;let T;class u{constructor(b,c,d,k,f,a, l){this.width=this.url=this.style=this.imgCount=this.height=this.gradients=this.globalAnimation=this.defs=this.chartIndex=this.cacheKeys=this.cache=this.boxWrapper=this.box=this.alignedObjects=void 0;this.init(b,c,d,k,f,a,l)}init(b,c,d,k,a,l,e){const H=this.createElement("svg").attr({version:"1.1","class":"highcharts-root"}),w=H.element;e||H.css(this.getStyle(k));b.appendChild(w);f(b,"dir","ltr");-1===b.innerHTML.indexOf("xmlns")&&f(w,"xmlns",this.SVG_NS);this.box=w;this.boxWrapper=H;this.alignedObjects= [];this.url=this.getReferenceURL();this.createElement("desc").add().element.appendChild(p.createTextNode("Created with Highcharts 11.1.0"));this.defs=this.createElement("defs").add();this.allowHTML=l;this.forExport=a;this.styledMode=e;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount=0;this.rootFontSize=H.getStyle("font-size");this.setSize(c,d,!1);let z;n&&b.getBoundingClientRect&&(c=function(){r(b,{left:0,top:0});z=b.getBoundingClientRect();r(b,{left:Math.ceil(z.left)-z.left+"px",top:Math.ceil(z.top)- z.top+"px"})},c(),this.unSubPixelFix=C(M,"resize",c))}definition(b){return(new a([b])).addToDOM(this.defs.element)}getReferenceURL(){if((n||g)&&p.getElementsByTagName("base").length){if(!l(T)){var b=P();b=(new a([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:b},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${b})`,fill:"rgba(0,0,0,0.001)"}}]}])).addToDOM(p.body); r(b,{position:"fixed",top:0,left:0,zIndex:9E5});const c=p.elementFromPoint(6,6);T="hitme"===(c&&c.id);p.body.removeChild(b)}if(T)return M.location.href.split("#")[0].replace(/<[^>]*>/g,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20")}return""}getStyle(b){return this.style=d({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"1rem"},b)}setStyle(b){this.boxWrapper.css(this.getStyle(b))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){const b=this.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy(); v(this.gradients||{});this.gradients=null;this.defs=b.destroy();this.unSubPixelFix&&this.unSubPixelFix();return this.alignedObjects=null}createElement(b){const c=new this.Element;c.init(this,b);return c}getRadialAttr(b,c){return{cx:b[0]-b[2]/2+(c.cx||0)*b[2],cy:b[1]-b[2]/2+(c.cy||0)*b[2],r:(c.r||0)*b[2]}}shadowDefinition(b){const c=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(b).map(c=>b[c])].join("-").replace(/[^a-z0-9\-]/g,""),d=z({color:"#000000",offsetX:1,offsetY:1,opacity:.15, width:5},b);this.defs.element.querySelector(`#${c}`)||this.definition({tagName:"filter",attributes:{id:c},children:[{tagName:"feDropShadow",attributes:{dx:d.offsetX,dy:d.offsetY,"flood-color":d.color,"flood-opacity":Math.min(5*d.opacity,1),stdDeviation:d.width/2}}]});return c}buildText(b){(new B(b)).buildSVG()}getContrast(b){b=A.parse(b).rgba.map(b=>{b/=255;return.03928>=b?b/12.92:Math.pow((b+.055)/1.055,2.4)});b=.2126*b[0]+.7152*b[1]+.0722*b[2];return 1.05/(b+.05)>(b+.05)/.05?"#FFFFFF":"#000000"}button(b, c,f,l,e={},w,r,v,y,g){const H=this.label(b,c,f,y,void 0,void 0,g,void 0,"button"),N=this.styledMode;b=e.states||{};let F=0;e=z(e);delete e.states;const x=z({color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},e.style);delete e.style;let n=a.filterUserAttributes(e);H.attr(z({padding:8,r:2},n));let m,p,Q;N||(n=z({fill:"#f7f7f7",stroke:"#cccccc","stroke-width":1},n),w=z(n,{fill:"#e6e6e6"},a.filterUserAttributes(w||b.hover||{})),m=w.style,delete w.style,r=z(n,{fill:"#e6e9ff",style:{color:"#000000", fontWeight:"bold"}},a.filterUserAttributes(r||b.select||{})),p=r.style,delete r.style,v=z(n,{style:{color:"#cccccc"}},a.filterUserAttributes(v||b.disabled||{})),Q=v.style,delete v.style);C(H.element,h?"mouseover":"mouseenter",function(){3!==F&&H.setState(1)});C(H.element,h?"mouseout":"mouseleave",function(){3!==F&&H.setState(F)});H.setState=function(b){1!==b&&(H.state=F=b);H.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed", "disabled"][b||0]);N||(H.attr([n,w,r,v][b||0]),b=[x,m,p,Q][b||0],k(b)&&H.css(b))};N||(H.attr(n).css(d({cursor:"default"},x)),g&&H.text.css({pointerEvents:"none"}));return H.on("touchstart",b=>b.stopPropagation()).on("click",function(b){3!==F&&l.call(H,b)})}crispLine(b,c,d="round"){const k=b[0],f=b[1];l(k[1])&&k[1]===f[1]&&(k[1]=f[1]=Math[d](k[1])-c%2/2);l(k[2])&&k[2]===f[2]&&(k[2]=f[2]=Math[d](k[2])+c%2/2);return b}path(c){const f=this.styledMode?{}:{fill:"none"};b(c)?f.d=c:k(c)&&d(f,c);return this.createElement("path").attr(f)}circle(b, c,d){b=k(b)?b:"undefined"===typeof b?{}:{x:b,y:c,r:d};c=this.createElement("circle");c.xSetter=c.ySetter=function(b,c,d){d.setAttribute("c"+c,b)};return c.attr(b)}arc(b,c,d,f,a,l){k(b)?(f=b,c=f.y,d=f.r,b=f.x):f={innerR:f,start:a,end:l};b=this.symbol("arc",b,c,d,d,f);b.r=d;return b}rect(b,c,a,l,e,w){b=k(b)?b:"undefined"===typeof b?{}:{x:b,y:c,r:e,width:Math.max(a||0,0),height:Math.max(l||0,0)};const H=this.createElement("rect");this.styledMode||("undefined"!==typeof w&&(b["stroke-width"]=w,d(b,H.crisp(b))), b.fill="none");H.rSetter=function(b,c,d){H.r=b;f(d,{rx:b,ry:b})};H.rGetter=function(){return H.r||0};return H.attr(b)}roundedRect(b){return this.symbol("roundedRect").attr(b)}setSize(b,c,d){this.width=b;this.height=c;this.boxWrapper.animate({width:b,height:c},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:F(d,!0)?void 0:0});this.alignElements()}g(b){const c=this.createElement("g");return b?c.attr({"class":"highcharts-"+b}):c}image(b,d,k,f,a,l){const H= {preserveAspectRatio:"none"};c(d)&&(H.x=d);c(k)&&(H.y=k);c(f)&&(H.width=f);c(a)&&(H.height=a);const e=this.createElement("image").attr(H);d=function(c){e.attr({href:b});l.call(e,c)};l?(e.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="}),k=new M.Image,C(k,"load",d),k.src=b,k.complete&&d({})):e.attr({href:b});return e}symbol(b,c,k,a,e,w){const H=this,z=/^url\((.*?)\)$/,v=z.test(b),g=!v&&(this.symbols[b]?b:"circle"),h=g&&this.symbols[g];let x,n,m,Y;if(h)"number"=== typeof c&&(n=h.call(this.symbols,Math.round(c||0),Math.round(k||0),a||0,e||0,w)),x=this.path(n),H.styledMode||x.attr("fill","none"),d(x,{symbolName:g||void 0,x:c,y:k,width:a,height:e}),w&&d(x,w);else if(v){m=b.match(z)[1];const d=x=this.image(m);d.imgwidth=F(w&&w.width,I[m]&&I[m].width);d.imgheight=F(w&&w.height,I[m]&&I[m].height);Y=b=>b.attr({width:b.width,height:b.height});["width","height"].forEach(function(b){d[b+"Setter"]=function(b,c){this[c]=b;const {alignByTranslate:d,element:k,width:a,height:H, imgwidth:e,imgheight:r}=this;b=this["img"+c];if(l(b)){let l=1;w&&"within"===w.backgroundSize&&a&&H?(l=Math.min(a/e,H/r),f(k,{width:Math.round(e*l),height:Math.round(r*l)})):k&&k.setAttribute(c,b);d||this.translate(((a||0)-e*l)/2,((H||0)-r*l)/2)}}});l(c)&&d.attr({x:c,y:k});d.isImg=!0;l(d.imgwidth)&&l(d.imgheight)?Y(d):(d.attr({width:0,height:0}),y("img",{onload:function(){const b=q[H.chartIndex];0===this.width&&(r(this,{position:"absolute",top:"-999em"}),p.body.appendChild(this));I[m]={width:this.width, height:this.height};d.imgwidth=this.width;d.imgheight=this.height;d.element&&Y(d);this.parentNode&&this.parentNode.removeChild(this);H.imgCount--;if(!H.imgCount&&b&&!b.hasLoaded)b.onload()},src:m}),this.imgCount++)}return x}clipRect(b,c,d,k){const f=P()+"-",a=this.createElement("clipPath").attr({id:f}).add(this.defs);b=this.rect(b,c,d,k,0).add(a);b.id=f;b.clipPath=a;b.count=0;return b}text(b,c,d,k){const f={};if(k&&(this.allowHTML||!this.forExport))return this.html(b,c,d);f.x=Math.round(c||0);d&& (f.y=Math.round(d));l(b)&&(f.text=b);b=this.createElement("text").attr(f);if(!k||this.forExport&&!this.allowHTML)b.xSetter=function(b,c,d){const k=d.getElementsByTagName("tspan"),f=d.getAttribute(c);for(let d=0,a;db?b+3:Math.round(1.2*b);return{h:c,b:Math.round(.8*c),f:b}}rotCorr(b,c,d){let k=b;c&&d&&(k=Math.max(k*Math.cos(c*m),4)); return{x:-b/3*Math.sin(c*m),y:k}}pathToSegments(b){const d=[],k=[],f={A:8,C:7,H:2,L:3,M:3,Q:5,S:5,T:3,V:2};for(let a=0;ab.align())}}d(u.prototype,{Element:G,SVG_NS:x, escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:E,draw:e});K.registerRendererType("svg",u,!0);"";return u});L(a,"Core/Renderer/HTML/HTMLElement.js",[a["Core/Globals.js"],a["Core/Renderer/SVG/SVGElement.js"],a["Core/Utilities.js"]],function(a,A,J){const {isFirefox:u,isMS:G,isWebKit:D,win:E}=a,{css:B,defined:t,extend:q,pick:m,pInt:p}=J,n=[];class h extends A{static compose(a){if(J.pushUnique(n,a)){const e=h.prototype,g=a.prototype;g.getSpanCorrection=e.getSpanCorrection; g.htmlCss=e.htmlCss;g.htmlGetBBox=e.htmlGetBBox;g.htmlUpdateTransform=e.htmlUpdateTransform;g.setSpanRotation=e.setSpanRotation}return a}getSpanCorrection(a,e,h){this.xCorr=-a*h;this.yCorr=-e}htmlCss(a){const e="SPAN"===this.element.tagName&&a&&"width"in a,g=m(e&&a.width,void 0);let h;e&&(delete a.width,this.textWidth=g,h=!0);a&&"ellipsis"===a.textOverflow&&(a.whiteSpace="nowrap",a.overflow="hidden");this.styles=q(this.styles,a);B(this.element,a);h&&this.htmlUpdateTransform();return this}htmlGetBBox(){const a= this.element;return{x:a.offsetLeft,y:a.offsetTop,width:a.offsetWidth,height:a.offsetHeight}}htmlUpdateTransform(){if(this.added){var a=this.renderer,e=this.element,h=this.x||0,n=this.y||0,m=this.textAlign||"left",q={left:0,center:.5,right:1}[m],f=this.styles,y=f&&f.whiteSpace;B(e,{marginLeft:this.translateX||0,marginTop:this.translateY||0});if("SPAN"===e.tagName){f=this.rotation;const l=this.textWidth&&p(this.textWidth),v=[f,m,e.innerHTML,this.textWidth,this.textAlign].join();let d=!1;if(l!==this.oldTextWidth){if(this.textPxLength)var r= this.textPxLength;else B(e,{width:"",whiteSpace:y||"nowrap"}),r=e.offsetWidth;(l>this.oldTextWidth||r>l)&&(/[ \-]/.test(e.textContent||e.innerText)||"ellipsis"===e.style.textOverflow)&&(B(e,{width:r>l||f?l+"px":"auto",display:"block",whiteSpace:y||"normal"}),this.oldTextWidth=l,d=!0)}this.hasBoxWidthChanged=d;v!==this.cTT&&(a=a.fontMetrics(e).b,!t(f)||f===(this.oldRotation||0)&&m===this.oldAlign||this.setSpanRotation(f,q,a),this.getSpanCorrection(!t(f)&&this.textPxLength||e.offsetWidth,a,q,f,m)); B(e,{left:h+(this.xCorr||0)+"px",top:n+(this.yCorr||0)+"px"});this.cTT=v;this.oldRotation=f;this.oldAlign=m}}else this.alignOnAdd=!0}setSpanRotation(a,e,h){const g={},x=G&&!/Edge/.test(E.navigator.userAgent)?"-ms-transform":D?"-webkit-transform":u?"MozTransform":E.opera?"-o-transform":void 0;x&&(g[x]=g.transform="rotate("+a+"deg)",g[x+(u?"Origin":"-origin")]=g.transformOrigin=100*e+"% "+h+"px",B(this.element,g))}}return h});L(a,"Core/Renderer/HTML/HTMLRenderer.js",[a["Core/Renderer/HTML/AST.js"], a["Core/Renderer/SVG/SVGElement.js"],a["Core/Renderer/SVG/SVGRenderer.js"],a["Core/Utilities.js"]],function(a,A,J,K){const {attr:u,createElement:D,extend:E,pick:B}=K,t=[];class q extends J{static compose(a){K.pushUnique(t,a)&&(a.prototype.html=q.prototype.html);return a}html(m,p,n){const h=this.createElement("span"),g=h.element,e=h.renderer,x=function(a,e){["opacity","visibility"].forEach(function(g){a[g+"Setter"]=function(f,y,r){const l=a.div?a.div.style:e;A.prototype[g+"Setter"].call(this,f,y,r); l&&(l[y]=f)}});a.addedSetters=!0};h.textSetter=function(e){e!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,a.setElementHTML(this.element,B(e,"")),this.textStr=e,h.doTransform=!0)};x(h,h.element.style);h.xSetter=h.ySetter=h.alignSetter=h.rotationSetter=function(a,e){"align"===e?h.alignValue=h.textAlign=a:h[e]=a;h.doTransform=!0};h.afterSetters=function(){this.doTransform&&(this.htmlUpdateTransform(),this.doTransform=!1)};h.attr({text:m,x:Math.round(p),y:Math.round(n)}).css({position:"absolute"}); e.styledMode||h.css({fontFamily:this.style.fontFamily,fontSize:this.style.fontSize});g.style.whiteSpace="nowrap";h.css=h.htmlCss;h.add=function(a){const n=e.box.parentNode,m=[];let f;if(this.parentGroup=a){if(f=a.div,!f){for(;a;)m.push(a),a=a.parentGroup;m.reverse().forEach(function(a){function e(b,c){a[c]=b;"translateX"===c?d.left=b+"px":d.top=b+"px";a.doTransform=!0}const l=u(a.element,"class"),v=a.styles||{};f=a.div=a.div||D("div",l?{className:l}:void 0,{position:"absolute",left:(a.translateX|| 0)+"px",top:(a.translateY||0)+"px",display:a.display,opacity:a.opacity,visibility:a.visibility},f||n);const d=f.style;E(a,{classSetter:function(b){return function(c){this.element.setAttribute("class",c);b.className=c}}(f),css:function(b){h.css.call(a,b);["cursor","pointerEvents"].forEach(c=>{b[c]&&(d[c]=b[c])});return a},on:function(){m[0].div&&h.on.apply({element:m[0].div,onEvents:a.onEvents},arguments);return a},translateXSetter:e,translateYSetter:e});a.addedSetters||x(a);a.css(v)})}}else f=n;f.appendChild(g); h.added=!0;h.alignOnAdd&&h.htmlUpdateTransform();return h};return h}}return q});L(a,"Core/Axis/AxisDefaults.js",[],function(){var a;(function(a){a.defaultXAxisOptions={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e %b"},week:{main:"%e %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid", gridZIndex:1,labels:{autoRotation:void 0,autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",padding:5,reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,opposite:!1,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0, startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",rotation:0,useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},type:"linear",uniqueNames:!0,visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"};a.defaultYAxisOptions={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05, tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{rotation:270,text:"Values"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){const {numberFormatter:a}=this.axis.chart;return a(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0};a.defaultLeftAxisOptions={title:{rotation:270}};a.defaultRightAxisOptions={title:{rotation:90}};a.defaultBottomAxisOptions= {labels:{autoRotation:[-45]},margin:15,title:{rotation:0}};a.defaultTopAxisOptions={labels:{autoRotation:[-45]},margin:15,title:{rotation:0}}})(a||(a={}));return a});L(a,"Core/Foundation.js",[a["Core/Utilities.js"]],function(a){const {addEvent:u,isFunction:J,objectEach:K,removeEvent:G}=a;var D;(function(a){a.registerEventOptions=function(a,t){a.eventOptions=a.eventOptions||{};K(t.events,function(q,m){a.eventOptions[m]!==q&&(a.eventOptions[m]&&(G(a,m,a.eventOptions[m]),delete a.eventOptions[m]),J(q)&& (a.eventOptions[m]=q,u(a,m,q,{order:0})))})}})(D||(D={}));return D});L(a,"Core/Axis/Tick.js",[a["Core/Templating.js"],a["Core/Globals.js"],a["Core/Utilities.js"]],function(a,A,J){const {deg2rad:u}=A,{clamp:G,correctFloat:D,defined:E,destroyObjectProperties:B,extend:t,fireEvent:q,isNumber:m,merge:p,objectEach:n,pick:h}=J;class g{constructor(a,g,h,n,m){this.isNewLabel=this.isNew=!0;this.axis=a;this.pos=g;this.type=h||"";this.parameters=m||{};this.tickmarkOffset=this.parameters.tickmarkOffset;this.options= this.parameters.options;q(this,"init");h||n||this.addLabel()}addLabel(){const e=this,g=e.axis;var n=g.options;const p=g.chart;var C=g.categories;const f=g.logarithmic,y=g.names,r=e.pos,l=h(e.options&&e.options.labels,n.labels);var v=g.tickPositions;const d=r===v[0],b=r===v[v.length-1],c=(!l.step||1===l.step)&&1===g.tickInterval;v=v.info;let k=e.label,w,z,F;C=this.parameters.category||(C?h(C[r],y[r],r):r);f&&m(C)&&(C=D(f.lin2log(C)));g.dateTime&&(v?(z=p.time.resolveDTLFormat(n.dateTimeLabelFormats[!n.grid&& v.higherRanks[r]||v.unitName]),w=z.main):m(C)&&(w=g.dateTime.getXDateFormat(C,n.dateTimeLabelFormats||{})));e.isFirst=d;e.isLast=b;const O={axis:g,chart:p,dateTimeLabelFormat:w,isFirst:d,isLast:b,pos:r,tick:e,tickPositionInfo:v,value:C};q(this,"labelFormat",O);const P=b=>l.formatter?l.formatter.call(b,b):l.format?(b.text=g.defaultLabelFormatter.call(b,b),a.format(l.format,b,p)):g.defaultLabelFormatter.call(b,b);n=P.call(O,O);const T=z&&z.list;e.shortenLabel=T?function(){for(F=0;Fl&&n-v*df&&(z=Math.round((m-n)/Math.cos(l*u)));else if(m=n+(1-v)*d,n-v*df&&(k=f-a.x+k*v,w=-1),k=Math.min(b,k),kk||e.autoRotation&&(r.styles||{}).width)z=k;z&& (this.shortenLabel?this.shortenLabel():(c.width=Math.floor(z)+"px",(g.style||{}).textOverflow||(c.textOverflow="ellipsis"),r.css(c)))}moveLabel(a,g){const e=this;var h=e.label;const m=e.axis;let f=!1;h&&h.textStr===a?(e.movedLabel=h,f=!0,delete e.label):n(m.ticks,function(g){f||g.isNew||g===e||!g.label||g.label.textStr!==a||(e.movedLabel=g.label,f=!0,g.labelPos=e.movedLabel.xy,delete g.label)});f||!e.labelPos&&!h||(h=e.labelPos||h.xy,e.movedLabel=e.createLabel(h,a,g),e.movedLabel&&e.movedLabel.attr({opacity:0}))}render(a, g,n){var e=this.axis,m=e.horiz,f=this.pos,y=h(this.tickmarkOffset,e.tickmarkOffset);f=this.getPosition(m,f,y,g);y=f.x;const r=f.y;e=m&&y===e.pos+e.len||!m&&r===e.pos?-1:1;m=h(n,this.label&&this.label.newOpacity,1);n=h(n,1);this.isActive=!0;this.renderGridLine(g,n,e);this.renderMark(f,n,e);this.renderLabel(f,g,m,a);this.isNew=!1;q(this,"afterRender")}renderGridLine(a,g,n){const e=this.axis,m=e.options,f={},y=this.pos,r=this.type,l=h(this.tickmarkOffset,e.tickmarkOffset),v=e.chart.renderer;let d=this.gridLine, b=m.gridLineWidth,c=m.gridLineColor,k=m.gridLineDashStyle;"minor"===this.type&&(b=m.minorGridLineWidth,c=m.minorGridLineColor,k=m.minorGridLineDashStyle);d||(e.chart.styledMode||(f.stroke=c,f["stroke-width"]=b||0,f.dashstyle=k),r||(f.zIndex=1),a&&(g=0),this.gridLine=d=v.path().attr(f).addClass("highcharts-"+(r?r+"-":"")+"grid-line").add(e.gridGroup));if(d&&(n=e.getPlotLinePath({value:y+l,lineWidth:d.strokeWidth()*n,force:"pass",old:a,acrossPanes:!1})))d[a||this.isNew?"attr":"animate"]({d:n,opacity:g})}renderMark(a, g,n){const e=this.axis;var m=e.options;const f=e.chart.renderer,y=this.type,r=e.tickSize(y?y+"Tick":"tick"),l=a.x;a=a.y;const v=h(m["minor"!==y?"tickWidth":"minorTickWidth"],!y&&e.isXAxis?1:0);m=m["minor"!==y?"tickColor":"minorTickColor"];let d=this.mark;const b=!d;r&&(e.opposite&&(r[0]=-r[0]),d||(this.mark=d=f.path().addClass("highcharts-"+(y?y+"-":"")+"tick").add(e.axisGroup),e.chart.styledMode||d.attr({stroke:m,"stroke-width":v})),d[b?"attr":"animate"]({d:this.getMarkPath(l,a,r[0],d.strokeWidth()* n,e.horiz,f),opacity:g}))}renderLabel(a,g,n,p){var e=this.axis;const f=e.horiz,y=e.options,r=this.label,l=y.labels,v=l.step;e=h(this.tickmarkOffset,e.tickmarkOffset);const d=a.x;a=a.y;let b=!0;r&&m(d)&&(r.xy=a=this.getLabelPosition(d,a,r,f,l,e,p,v),this.isFirst&&!this.isLast&&!y.showFirstLabel||this.isLast&&!this.isFirst&&!y.showLastLabel?b=!1:!f||l.step||l.rotation||g||0===n||this.handleOverflow(a),v&&p%v&&(b=!1),b&&m(a.y)?(a.opacity=n,r[this.isNewLabel?"attr":"animate"](a).show(!0),this.isNewLabel= !1):(r.hide(),this.isNewLabel=!0))}replaceMovedLabel(){const a=this.label,g=this.axis;a&&!this.isNew&&(a.animate({opacity:0},void 0,a.destroy),delete this.label);g.isDirty=!0;this.label=this.movedLabel;delete this.movedLabel}}"";return g});L(a,"Core/Axis/Axis.js",[a["Core/Animation/AnimationUtilities.js"],a["Core/Axis/AxisDefaults.js"],a["Core/Color/Color.js"],a["Core/Defaults.js"],a["Core/Foundation.js"],a["Core/Globals.js"],a["Core/Axis/Tick.js"],a["Core/Utilities.js"]],function(a,A,J,K,G,D,E,B){const {animObject:t}= a,{defaultOptions:q}=K,{registerEventOptions:m}=G,{deg2rad:p}=D,{arrayMax:n,arrayMin:h,clamp:g,correctFloat:e,defined:x,destroyObjectProperties:I,erase:u,error:C,extend:f,fireEvent:y,getClosestDistance:r,insertItem:l,isArray:v,isNumber:d,isString:b,merge:c,normalizeTickInterval:k,objectEach:w,pick:z,relativeLength:F,removeEvent:O,splat:P,syncTimeout:T}=B,U=(b,c)=>k(c,void 0,void 0,z(b.options.allowDecimals,.5>c||void 0!==b.tickAmount),!!b.tickAmount);class W{constructor(b,c,d){this.zoomEnabled=this.width= this.visible=this.userOptions=this.translationSlope=this.transB=this.transA=this.top=this.ticks=this.tickRotCorr=this.tickPositions=this.tickmarkOffset=this.tickInterval=this.tickAmount=this.side=this.series=this.right=this.positiveValuesOnly=this.pos=this.pointRangePadding=this.pointRange=this.plotLinesAndBandsGroups=this.plotLinesAndBands=this.paddedTicks=this.overlap=this.options=this.offset=this.names=this.minPixelPadding=this.minorTicks=this.minorTickInterval=this.min=this.maxLabelLength=this.max= this.len=this.left=this.labelFormatter=this.labelEdge=this.isLinked=this.index=this.height=this.hasVisibleSeries=this.hasNames=this.eventOptions=this.coll=this.closestPointRange=this.chart=this.bottom=this.alternateBands=void 0;this.init(b,c,d)}init(b,c,k=this.coll){const a="xAxis"===k;this.chart=b;this.horiz=this.isZAxis||(b.inverted?!a:a);this.isXAxis=a;this.coll=k;y(this,"init",{userOptions:c});this.opposite=z(c.opposite,this.opposite);this.side=z(c.side,this.side,this.horiz?this.opposite?0:2: this.opposite?1:3);this.setOptions(c);k=this.options;const f=k.labels,e=k.type;this.userOptions=c;this.minPixelPadding=0;this.reversed=z(k.reversed,this.reversed);this.visible=k.visible;this.zoomEnabled=k.zoomEnabled;this.hasNames="category"===e||!0===k.categories;this.categories=k.categories||(this.hasNames?[]:void 0);this.names||(this.names=[],this.names.keys={});this.plotLinesAndBandsGroups={};this.positiveValuesOnly=!!this.logarithmic;this.isLinked=x(k.linkedTo);this.ticks={};this.labelEdge=[]; this.minorTicks={};this.plotLinesAndBands=[];this.alternateBands={};this.len=0;this.minRange=this.userMinRange=k.minRange||k.maxZoom;this.range=k.range;this.offset=k.offset||0;this.min=this.max=null;c=z(k.crosshair,P(b.options.tooltip.crosshairs)[a?0:1]);this.crosshair=!0===c?{}:c;-1===b.axes.indexOf(this)&&(a?b.axes.splice(b.xAxis.length,0,this):b.axes.push(this),l(this,b[this.coll]));b.orderItems(this.coll);this.series=this.series||[];b.inverted&&!this.isZAxis&&a&&"undefined"===typeof this.reversed&& (this.reversed=!0);this.labelRotation=d(f.rotation)?f.rotation:void 0;m(this,k);y(this,"afterInit")}setOptions(b){this.options=c(A.defaultXAxisOptions,"yAxis"===this.coll&&A.defaultYAxisOptions,[A.defaultTopAxisOptions,A.defaultRightAxisOptions,A.defaultBottomAxisOptions,A.defaultLeftAxisOptions][this.side],c(q[this.coll],b));y(this,"afterSetOptions",{userOptions:b})}defaultLabelFormatter(b){var c=this.axis;({numberFormatter:b}=this.chart);const k=d(this.value)?this.value:NaN,a=c.chart.time,f=this.dateTimeLabelFormat; var e=q.lang;const l=e.numericSymbols;e=e.numericSymbolMagnitude||1E3;const H=c.logarithmic?Math.abs(k):c.tickInterval;let w=l&&l.length,g;if(c.categories)g=`${this.value}`;else if(f)g=a.dateFormat(f,k);else if(w&&1E3<=H)for(;w--&&"undefined"===typeof g;)c=Math.pow(e,w+1),H>=c&&0===10*k%c&&null!==l[w]&&0!==k&&(g=b(k/c,-1)+l[w]);"undefined"===typeof g&&(g=1E4<=Math.abs(k)?b(k,-1):b(k,-1,void 0,""));return g}getSeriesExtremes(){const b=this,c=b.chart;let k;y(this,"getSeriesExtremes",null,function(){b.hasVisibleSeries= !1;b.dataMin=b.dataMax=b.threshold=null;b.softThreshold=!b.isXAxis;b.series.forEach(function(a){if(a.visible||!c.options.chart.ignoreHiddenSeries){var f=a.options;let c=f.threshold,e,l;b.hasVisibleSeries=!0;b.positiveValuesOnly&&0>=c&&(c=null);if(b.isXAxis)(f=a.xData)&&f.length&&(f=b.logarithmic?f.filter(b=>0d)&&(n?b=g(b,c,d):O=!0);return b}const k=this, a=k.chart,f=k.left,e=k.top,l=b.old,w=b.value,H=b.lineWidth,r=l&&a.oldChartHeight||a.chartHeight,v=l&&a.oldChartWidth||a.chartWidth,F=k.transB;let h=b.translatedValue,n=b.force,m,x,p,q,O;b={value:w,lineWidth:H,old:l,force:n,acrossPanes:b.acrossPanes,translatedValue:h};y(this,"getPlotLinePath",b,function(b){h=z(h,k.translate(w,void 0,void 0,l));h=g(h,-1E5,1E5);m=p=Math.round(h+F);x=q=Math.round(r-h-F);d(h)?k.horiz?(x=e,q=r-k.bottom,m=p=c(m,f,f+k.width)):(m=f,p=v-k.right,x=q=c(x,e,e+k.height)):(O=!0, n=!1);b.path=O&&!n?null:a.renderer.crispLine([["M",m,x],["L",p,q]],H||1)});return b.path}getLinearTickPositions(b,c,d){const k=e(Math.floor(c/b)*b);d=e(Math.ceil(d/b)*b);const a=[];let f,l;e(k+b)===k&&(l=20);if(this.single)return[c];for(c=k;c<=d;){a.push(c);c=e(c+b,l);if(c===f)break;f=c}return a}getMinorTickInterval(){const b=this.options;return!0===b.minorTicks?z(b.minorTickInterval,"auto"):!1===b.minorTicks?null:b.minorTickInterval}getMinorTickPositions(){var b=this.options;const c=this.tickPositions, d=this.minorTickInterval;var k=this.pointRangePadding||0;const a=this.min-k;k=this.max+k;const f=k-a;let l=[];if(f&&f/d{var c;return(b.xIncrement?null===(c=b.xData)||void 0===c?void 0:c.slice(0,2):b.xData)||[]}))||0;this.minRange=Math.min(5*l,this.dataMax-this.dataMin)}k-d=this.minRange,f=this.minRange,k=(f-k+d)/ 2,a=[d-k,z(b.min,d-k)],l&&(a[2]=c?c.log2lin(this.dataMin):this.dataMin),d=n(a),k=[d+f,z(b.max,d+f)],l&&(k[2]=c?c.log2lin(this.dataMax):this.dataMax),k=h(k),k-db-c),b=r([d]))}return b&&c?Math.min(b,c):b||c}nameToX(b){const c=v(this.options.categories),d=c?this.categories:this.names;let k=b.options.x,a;b.series.requireSorting=!1;x(k)||(k=this.options.uniqueNames&&d?c?d.indexOf(b.name):z(d.keys[b.name],-1):b.series.autoIncrement());-1===k?!c&&d&&(a=d.length):a=k;"undefined"!==typeof a?(this.names[a]=b.name,this.names.keys[b.name]=a):b.x&&(a=b.x);return a}updateNames(){const b=this,c=this.names;0=H?(q=H,F=0):this.dataMax<=H&&(n=H,v=0)),this.min=z(m,q,this.dataMin),this.max=z(p,n,this.dataMax);k&&(this.positiveValuesOnly&&!b&&0>=Math.min(this.min,z(this.dataMin, this.min))&&C(10,1,c),this.min=e(k.log2lin(this.min),16),this.max=e(k.log2lin(this.max),16));this.range&&x(this.max)&&(this.userMin=this.min=m=Math.max(this.dataMin,this.minFromRange()),this.userMax=p=this.max,this.range=null);y(this,"foundExtremes");this.beforePadding&&this.beforePadding();this.adjustForMinRange();!d(this.userMin)&&d(a.softMin)&&a.softMinthis.max&&(this.max=p=a.softMax);!(g||this.axisPointRange||this.stacking&& this.stacking.usePercentage||l)&&x(this.min)&&x(this.max)&&(c=this.max-this.min)&&(!x(m)&&F&&(this.min-=c*F),!x(p)&&v&&(this.max+=c*v));!d(this.userMin)&&d(a.floor)&&(this.min=Math.max(this.min,a.floor));!d(this.userMax)&&d(a.ceiling)&&(this.max=Math.min(this.max,a.ceiling));r&&x(this.dataMin)&&(H=H||0,!x(m)&&this.min=H?this.min=this.options.minRange?Math.min(H,this.max-this.minRange):H:!x(p)&&this.max>H&&this.dataMax<=H&&(this.max=this.options.minRange?Math.max(H,this.min+this.minRange): H));d(this.min)&&d(this.max)&&!this.chart.polar&&this.min>this.max&&(x(this.options.min)?this.max=this.min:x(this.options.max)&&(this.min=this.max));this.tickInterval=this.min===this.max||"undefined"===typeof this.min||"undefined"===typeof this.max?1:l&&this.linkedParent&&!h&&w===this.linkedParent.options.tickPixelInterval?h=this.linkedParent.tickInterval:z(h,this.tickAmount?(this.max-this.min)/Math.max(this.tickAmount-1,1):void 0,g?1:(this.max-this.min)*w/Math.max(this.len,w));if(f&&!b){const b= this.min!==(this.old&&this.old.min)||this.max!==(this.old&&this.old.max);this.series.forEach(function(c){c.forceCrop=c.forceCropping&&c.forceCropping();c.processData(b)});y(this,"postProcessData",{hasExtremesChanged:b})}this.setAxisTranslation();y(this,"initialAxisTranslation");this.pointRange&&!h&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));b=z(a.minTickInterval,this.dateTime&&!this.series.some(b=>b.noSharedTooltip)?this.closestPointRange:0);!h&&this.tickIntervalMath.max(2*this.len,200)))if(this.dateTime)l=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,b.units),this.min,this.max,b.startOfWeek,this.ordinal&&this.ordinal.positions, this.closestPointRange,!0);else if(this.logarithmic)l=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else for(a=b=this.tickInterval;a<=2*b;)if(l=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&l.length>this.tickAmount)this.tickInterval=U(this,a*=1.1);else break;else l=[this.min,this.max],C(19,!1,this.chart);l.length>this.len&&(l=[l[0],l[l.length-1]],l[0]===l[1]&&(l.length=1));k&&(this.tickPositions=l,(w=k.apply(this,[this.min,this.max]))&& (l=w))}this.tickPositions=l;this.paddedTicks=l.slice(0);this.trimTicks(l,e,f);!this.isLinked&&d(this.min)&&d(this.max)&&(this.single&&2>l.length&&!this.categories&&!this.series.some(b=>b.is("heatmap")&&"between"===b.options.pointPlacement)&&(this.min-=.5,this.max+=.5),c||w||this.adjustTickAmount());y(this,"afterSetTickPositions")}trimTicks(b,c,d){const k=b[0],a=b[b.length-1],f=!this.isOrdinal&&this.minPointOffset||0;y(this,"trimTicks");if(!this.isLinked){if(c&&-Infinity!==k)this.min=k;else for(;this.min- f>b[0];)b.shift();if(d)this.max=a;else for(;this.max+f{const {horiz:c,options:d}=b;return[c?d.left:d.top,d.width,d.height,d.pane].join()}, k=d(this);this.chart[this.coll].forEach(function(a){const {series:f}=a;f.length&&f.some(b=>b.visible)&&a!==b&&d(a)===k&&(l=!0,c.push(a))})}if(l&&a){c.forEach(c=>{c=c.getThresholdAlignment(b);d(c)&&f.push(c)});const k=1b+c,0)/f.length:void 0;c.forEach(b=>{b.thresholdAlignment=k})}return l}getThresholdAlignment(b){(!d(this.dataMin)||this!==b&&this.series.some(b=>b.isDirty||b.isDirtyData))&&this.getSeriesExtremes();if(d(this.threshold))return b=g((this.threshold-(this.dataMin|| 0))/((this.dataMax||0)-(this.dataMin||0)),0,1),this.options.reversed&&(b=1-b),b}getTickAmount(){const b=this.options,c=b.tickPixelInterval;let d=b.tickAmount;!x(b.tickInterval)&&!d&&this.lend&&(this.finalTickAmt=d,d=5);this.tickAmount=d}adjustTickAmount(){const b=this,{finalTickAmt:c,max:k,min:a,options:f,tickPositions:l,tickAmount:w,thresholdAlignment:g}=b,r=l&&l.length; var v=z(b.threshold,b.softThreshold?0:null);var F=b.tickInterval;let h;d(g)&&(h=.5>g?Math.ceil(g*(w-1)):Math.floor(g*(w-1)),f.reversed&&(h=w-1-h));if(b.hasData()&&d(a)&&d(k)){const g=()=>{b.transA*=(r-1)/(w-1);b.min=f.startOnTick?l[0]:Math.min(a,l[0]);b.max=f.endOnTick?l[l.length-1]:Math.max(k,l[l.length-1])};if(d(h)&&d(b.threshold)){for(;l[h]!==v||l.length!==w||l[0]>a||l[l.length-1]b.threshold?l.unshift(e(l[0]-F)):l.push(e(l[l.length- 1]+F));if(F>8*b.tickInterval)break;F*=2}g()}else if(r=c&&0e&&(c=e)),x(a)&&(fe&&(f=e))),d.displayBtn= "undefined"!==typeof c||"undefined"!==typeof f,d.setExtremes(c,f,!1,void 0,{trigger:"zoom"});b.zoomed=!0});return b.zoomed}setAxisSize(){const b=this.chart;var c=this.options;const d=c.offsets||[0,0,0,0],k=this.horiz,a=this.width=Math.round(F(z(c.width,b.plotWidth-d[3]+d[1]),b.plotWidth)),f=this.height=Math.round(F(z(c.height,b.plotHeight-d[0]+d[2]),b.plotHeight)),l=this.top=Math.round(F(z(c.top,b.plotTop+d[0]),b.plotHeight,b.plotTop));c=this.left=Math.round(F(z(c.left,b.plotLeft+d[3]),b.plotWidth, b.plotLeft));this.bottom=b.chartHeight-f-l;this.right=b.chartWidth-a-c;this.len=Math.max(k?a:f,0);this.pos=k?c:l}getExtremes(){const b=this.logarithmic;return{min:b?e(b.lin2log(this.min)):this.min,max:b?e(b.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(b){var c=this.logarithmic;const d=c?c.lin2log(this.min):this.min;c=c?c.lin2log(this.max):this.max;null===b||-Infinity===b?b=d:Infinity===b?b=c:d>b?b=d:cc?b.align="right":195c&&(b.align="left")});return b.align}tickSize(b){const c=this.options,d=z(c["tick"===b?"tickWidth":"minorTickWidth"],"tick"===b&&this.isXAxis&&!this.categories?1:0);let k=c["tick"===b?"tickLength":"minorTickLength"],a;d&&k&&("inside"===c[b+"Position"]&&(k=-k),a=[k,d]);b={tickSize:a};y(this,"afterTickSize",b);return b.tickSize}labelMetrics(){const b= this.chart.renderer;var c=this.ticks;c=c[Object.keys(c)[0]]||{};return this.chart.renderer.fontMetrics(c.label||c.movedLabel||b.box)}unsquish(){const b=this.options.labels;var c=this.horiz;const k=this.tickInterval,a=this.len/(((this.categories?1:0)+this.max-this.min)/k),f=b.rotation,l=.75*this.labelMetrics().h,w=Math.max(this.max-this.min,0),g=function(b){let c=b/(a||1);c=1w&&Infinity!==b&&Infinity!==a&&w&&(c=Math.ceil(w/k));return e(c*k)};let r=k,v,F=Number.MAX_VALUE,h;if(c){if(b.staggerLines|| (d(f)?h=[f]:a=d)c=g(Math.abs(l/Math.sin(p*d))),b=c+Math.abs(d/360),ba.step)return a.rotation?0:(this.staggerLines|| 1)*this.len/f;if(!k){b=a.style.width;if(void 0!==b)return parseInt(String(b),10);if(l)return l-c.spacing[3]}return.33*c.chartWidth}renderUnsquish(){const c=this.chart,d=c.renderer,k=this.tickPositions,a=this.ticks,f=this.options.labels,l=f.style,e=this.horiz,w=this.getSlotWidth();var g=Math.max(1,Math.round(w-2*f.padding));const r={},z=this.labelMetrics(),v=l.textOverflow;let F,h,y=0;b(f.rotation)||(r.rotation=f.rotation||0);k.forEach(function(b){b=a[b];b.movedLabel&&b.replaceMovedLabel();b&&b.label&& b.label.textPxLength>y&&(y=b.label.textPxLength)});this.maxLabelLength=y;if(this.autoRotation)y>g&&y>z.h?r.rotation=this.labelRotation:this.labelRotation=0;else if(w&&(F=g,!v))for(h="clip",g=k.length;!e&&g--;){var n=k[g];if(n=a[n].label)n.styles&&"ellipsis"===n.styles.textOverflow?n.css({textOverflow:"clip"}):n.textPxLength>w&&n.css({width:w+"px"}),n.getBBox().height>this.len/k.length-(z.h-z.f)&&(n.specificTextOverflow="ellipsis")}r.rotation&&(F=y>.5*c.chartHeight?.33*c.chartHeight:y,v||(h="ellipsis")); if(this.labelAlign=f.align||this.autoLabelAlign(this.labelRotation))r.align=this.labelAlign;k.forEach(function(b){const c=(b=a[b])&&b.label,d=l.width,k={};c&&(c.attr(r),b.shortenLabel?b.shortenLabel():F&&!d&&"nowrap"!==l.whiteSpace&&(Fv.g(b).attr({zIndex:d}).addClass(`highcharts-${g.toLowerCase()}${c} `+(this.isRadial?`highcharts-radial-axis${c} `:"")+(t||"")).add(r);b.gridGroup=c("grid","-grid",a.gridZIndex);b.axisGroup=c("axis","",a.zIndex);b.labelGroup=c("axis-labels","-labels", m.zIndex)}h||b.isLinked?(e.forEach(function(c){b.generateTick(c)}),b.renderUnsquish(),b.reserveSpaceDefault=0===f||2===f||{1:"left",3:"right"}[f]===b.labelAlign,z(m.reserveSpace,p?!1:null,"center"===b.labelAlign?!0:null,b.reserveSpaceDefault)&&e.forEach(function(b){M=Math.max(l[b].getLabelSize(),M)}),b.staggerLines&&(M*=b.staggerLines),b.labelOffset=M*(b.opposite?-1:1)):w(l,function(b,c){b.destroy();delete l[c]});n&&n.text&&!1!==n.enabled&&(b.addTitle(P),P&&!p&&!1!==n.reserveSpace&&(b.titleOffset= T=b.axisTitle.getBBox()[k?"height":"width"],u=n.offset,C=x(u)?0:z(n.margin,k?5:10)));b.renderLine();b.offset=I*z(a.offset,q[f]?q[f]+(a.margin||0):0);b.tickRotCorr=b.tickRotCorr||{x:0,y:0};h=0===f?-b.labelMetrics().h:2===f?b.tickRotCorr.y:0;C=Math.abs(M)+C;M&&(C=C-h+I*(k?z(m.y,b.tickRotCorr.y+I*m.distance):z(m.x,I*m.distance)));b.axisTitleMargin=z(u,C);b.getMaxLabelDimensions&&(b.maxLabelDimensions=b.getMaxLabelDimensions(l,e));"colorAxis"!==g&&(m=this.tickSize("tick"),q[f]=Math.max(q[f],(b.axisTitleMargin|| 0)+T+I*b.offset,C,e&&e.length&&m?m[0]+I*b.offset:0),q=!b.axisLine||a.offset?0:2*Math.floor(b.axisLine.strokeWidth()/2),O[F]=Math.max(O[F],q));y(this,"afterGetOffset")}getLinePath(b){const c=this.chart,d=this.opposite;var k=this.offset;const a=this.horiz,f=this.left+(d?this.width:0)+k;k=c.chartHeight-this.bottom-(d?this.height:0)+k;d&&(b*=-1);return c.renderer.crispLine([["M",a?this.left:f,a?k:this.top],["L",a?c.chartWidth-this.right:f,a?k:c.chartHeight-this.bottom]],b)}renderLine(){this.axisLine|| (this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,"stroke-width":this.options.lineWidth,zIndex:7}))}getTitlePosition(b){var c=this.horiz,d=this.left;const k=this.top;var a=this.len;const f=this.options.title,l=c?d:k,e=this.opposite,w=this.offset,g=f.x,r=f.y,z=this.chart.renderer.fontMetrics(b);b=b?Math.max(b.getBBox(!1,0).height-z.h-1,0):0;a={low:l+(c?0:a),middle:l+a/2,high:l+(c?a: 0)}[f.align];d=(c?k+this.height:d)+(c?1:-1)*(e?-1:1)*(this.axisTitleMargin||0)+[-b,b,z.f,-b][this.side];c={x:c?a+g:d+(e?this.width:0)+w+g,y:c?d+r-(e?this.height:0)+w:a+r};y(this,"afterGetTitlePosition",{titlePosition:c});return c}renderMinorTick(b,c){const d=this.minorTicks;d[b]||(d[b]=new E(this,b,"minor"));c&&d[b].isNew&&d[b].render(null,!0);d[b].render(null,!1,1)}renderTick(b,c,d){const k=this.ticks;if(!this.isLinked||b>=this.min&&b<=this.max||this.grid&&this.grid.isColumn)k[b]||(k[b]=new E(this, b)),d&&k[b].isNew&&k[b].render(c,!0,-1),k[b].render(c)}render(){const b=this,c=b.chart,k=b.logarithmic,a=b.options,f=b.isLinked,l=b.tickPositions,e=b.axisTitle,g=b.ticks,r=b.minorTicks,z=b.alternateBands,v=a.stackLabels,F=a.alternateGridColor;var h=a.crossing;const n=b.tickmarkOffset,m=b.axisLine,x=b.showAxis,p=t(c.renderer.globalAnimation);let q,O;b.labelEdge.length=0;b.overlap=!1;[g,r,z].forEach(function(b){w(b,function(b){b.isActive=!1})});if(d(h)){const d=this.isXAxis?c.yAxis[0]:c.xAxis[0],k= [1,-1,-1,1][this.side];d&&(h=d.toPixels(h,!0),b.horiz&&(h=d.len-h),b.offset=k*h)}if(b.hasData()||f){const f=b.chart.hasRendered&&b.old&&d(b.old.min);b.minorTickInterval&&!b.categories&&b.getMinorTickPositions().forEach(function(c){b.renderMinorTick(c,f)});l.length&&(l.forEach(function(c,d){b.renderTick(c,d,f)}),n&&(0===b.min||b.single)&&(g[-1]||(g[-1]=new E(b,-1,null,!0)),g[-1].render(-1)));F&&l.forEach(function(d,a){O="undefined"!==typeof l[a+1]?l[a+1]+n:b.max-n;0===a%2&&dp&&(!h||y<=n)&&"undefined"!==typeof y&&q.push(y),y>n&&(r=!0),y=f}else p=this.lin2log(p),n=this.lin2log(n),a=h?g.getMinorTickInterval():m.tickInterval,a=K("auto"===a?null:a,this.minorAutoInterval,m.tickPixelInterval/(h?5:1)*(n-p)/((h?e/g.tickPositions.length:e)||1)),a=J(a),q=g.getLinearTickPositions(a,p,n).map(this.log2lin),h||(this.minorAutoInterval=a/5);h||(g.tickInterval=a);return q}lin2log(a){return Math.pow(10, a)}log2lin(a){return Math.log(a)/Math.LN10}}A.Additions=q})(G||(G={}));return G});L(a,"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js",[a["Core/Utilities.js"]],function(a){const {erase:u,extend:J,isNumber:K}=a;var G;(function(A){function E(a){return this.addPlotBandOrLine(a,"plotBands")}function B(a,h){const e=this.userOptions;let n=new g(this,a);this.visible&&(n=n.render());if(n){this._addedPlotLB||(this._addedPlotLB=!0,(e.plotLines||[]).concat(e.plotBands||[]).forEach(a=>{this.addPlotBandOrLine(a)})); if(h){const g=e[h]||[];g.push(a);e[h]=g}this.plotLinesAndBands.push(n)}return n}function t(a){return this.addPlotBandOrLine(a,"plotLines")}function q(a,g,h=this.options){const e=this.getPlotLinePath({value:g,force:!0,acrossPanes:h.acrossPanes}),n=[],f=this.horiz;g=!K(this.min)||!K(this.max)||athis.max&&g>this.max;a=this.getPlotLinePath({value:a,force:!0,acrossPanes:h.acrossPanes});h=1;let y;if(a&&e)for(g&&(y=a.toString()===e.toString(),h=0),g=0;g{const l="x"===k;return[k,l?r:h,l?a:f].concat(e?[l?a*v.scaleX:f*v.scaleY,l?v.left-c+(d.plotX+b.plotLeft)*v.scaleX:v.top-c+(d.plotY+b.plotTop)*v.scaleY,0,l?r:h]:[l?a:f,l?d.plotX+b.plotLeft:d.plotY+b.plotTop,l?b.plotLeft:b.plotTop,l?b.plotLeft+b.plotWidth:b.plotTop+b.plotHeight])};let y=g("y"),n=g("x"), m;g=!!d.negative;!b.polar&&b.hoverSeries&&b.hoverSeries.yAxis&&b.hoverSeries.yAxis.reversed&&(g=!g);const p=!this.followPointer&&C(d.ttBelow,!b.inverted===g),x=function(b,d,a,f,w,g,r){const z=e?"y"===b?c*v.scaleY:c*v.scaleX:c,h=(a-f)/2,F=fn-l?n:n-l);else if(y)k[b]=Math.max(g,w+l+a>d?w:w+l);else return!1},q=function(b,d,a,f,l){let e;ld-c?e=!1:k[b]=ld-f/2?d-f-2:l-a/2;return e},t=function(b){const c= y;y=n;n=c;m=b},N=function(){!1!==x.apply(0,y)?!1!==q.apply(0,n)||m||(t(!0),N()):m?k.x=k.y=0:(t(!0),N())};(b.inverted||1c.isDirectTouch||b.series.shouldShowTooltip(f, e)))r=this.getLabel(),b.style.width&&!v||r.css({width:(this.outside?this.getPlayingField():d.spacingBox).width+"px"}),r.attr({text:h&&h.join?h.join(""):h}),r.addClass(this.getClassName(l),!0),v||r.attr({stroke:b.borderColor||l.color||y.color||"#666666"}),this.updatePosition({plotX:p,plotY:x,negative:l.negative,ttBelow:l.ttBelow,h:a[2]||0});else{this.hide();return}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show();this.isHidden=!1}g(this,"refresh")}}renderSplit(a,f){function d(c,d,a,k, f=!0){a?(d=R?0:J,c=m(c-k/2,N.left,N.right-k-(b.outside?V:0))):(d-=D,c=f?c-k-u:c+u,c=m(c,f?c:N.left,N.right));return{x:c,y:d}}const b=this,{chart:c,chart:{chartWidth:k,chartHeight:l,plotHeight:e,plotLeft:g,plotTop:r,pointer:y,scrollablePixelsY:n=0,scrollablePixelsX:v,scrollingContainer:{scrollLeft:p,scrollTop:x}={scrollLeft:0,scrollTop:0},styledMode:q},distance:u,options:M,options:{positioner:A}}=b,N=b.outside&&"number"!==typeof v?E.documentElement.getBoundingClientRect():{left:p,right:p+k,top:x,bottom:x+ l},X=b.getLabel(),Q=this.renderer||c.renderer,R=!(!c.xAxis[0]||!c.xAxis[0].opposite),{left:V,top:G}=y.getChartPosition();let D=r+x,K=0,J=e-n;I(a)&&(a=[!1,a]);a=a.slice(0,f.length+1).reduce(function(c,a,k){if(!1!==a&&""!==a){k=f[k-1]||{isHeader:!0,plotX:f[0].plotX,plotY:e,series:{}};const n=k.isHeader;var l=n?b:k.series,w;{var h=k;a=a.toString();var z=l.tt;const {isHeader:c,series:d}=h;z||(z={padding:M.padding,r:M.borderRadius},q||(z.fill=M.backgroundColor,z["stroke-width"]=null!==(w=M.borderWidth)&& void 0!==w?w:1),z=Q.label("",0,0,M[c?"headerShape":"shape"],void 0,void 0,M.useHTML).addClass(b.getClassName(h,!0,c)).attr(z).add(X));z.isActive=!0;z.attr({text:a});q||z.css(M.style).attr({stroke:M.borderColor||h.color||d.color||"#333333"});w=z}w=l.tt=w;h=w.getBBox();l=h.width+w.strokeWidth();n&&(K=h.height,J+=K,R&&(D-=K));{const {isHeader:b,plotX:c=0,plotY:d=0,series:f}=k;if(b){a=g+c;var y=r+e/2}else{const {xAxis:b,yAxis:k}=f;a=b.pos+m(c,-u,b.len+u);f.shouldShowTooltip(0,k.pos-r+d,{ignoreX:!0})&& (y=k.pos+d)}a=m(a,N.left-u,N.right+u);y={anchorX:a,anchorY:y}}const {anchorX:v,anchorY:F}=y;"number"===typeof F?(y=h.height+1,h=A?A.call(b,l,y,k):d(v,F,n,l),c.push({align:A?0:void 0,anchorX:v,anchorY:F,boxWidth:l,point:k,rank:C(h.rank,n?1:0),size:y,target:h.y,tt:w,x:h.x})):w.isActive=!1}return c},[]);!A&&a.some(c=>{var {outside:d}=b;d=(d?V:0)+c.anchorX;return dd})&&(a=a.map(b=>{const {x:c,y:a}=d(b.anchorX,b.anchorY,b.point.isHeader, b.boxWidth,!1);return h(b,{target:a,x:c})}));b.cleanSplit();t(a,J);var ba=V,L=V;a.forEach(function(c){const {x:d,boxWidth:a,isHeader:k}=c;k||(b.outside&&V+dL&&(L=V+d))});a.forEach(function(c){const {x:d,anchorX:a,anchorY:k,pos:f,point:{isHeader:l}}=c,e={visibility:"undefined"===typeof f?"hidden":"inherit",x:d,y:(f||0)+D,anchorX:a,anchorY:k};if(b.outside&&d d[0]?Math.max(Math.abs(d[0]),c.width-d[0]):Math.max(Math.abs(d[0]),c.width);b.height=0>d[1]?Math.max(Math.abs(d[1]),c.height-Math.abs(d[1])):Math.max(Math.abs(d[1]),c.height);this.tracker?this.tracker.attr(b):(this.tracker=f.renderer.rect(b).addClass("highcharts-tracker").add(f),a.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}}else this.tracker&&(this.tracker=this.tracker.destroy())}styledModeFormat(a){return a.replace('style="font-size: 0.8em"','class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g, 'class="highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}"')}tooltipFooterHeaderFormatter(a,f){const d=a.series,b=d.tooltipOptions;var c=d.xAxis;const k=c&&c.dateTime;c={isFooter:f,labelConfig:a};let l=b.xDateFormat,e=b[f?"footerFormat":"headerFormat"];g(this,"headerFormatter",c,function(c){k&&!l&&x(a.key)&&(l=k.getXDateFormat(a.key,b.dateTimeLabelFormats));k&&l&&(a.point&&a.point.tooltipDateKeys||["key"]).forEach(function(b){e=e.replace("{point."+b+"}","{point."+ b+":"+l+"}")});d.chart.styledMode&&(e=this.styledModeFormat(e));c.text=u(e,{point:a,series:d},this.chart)});return c.text}update(a){this.destroy();this.init(this.chart,M(!0,this.options,a))}updatePosition(a){const {chart:f,distance:d,options:b}=this;var c=f.pointer;const k=this.getLabel(),{left:l,top:e,scaleX:g,scaleY:r}=c.getChartPosition();c=(b.positioner||this.getPosition).call(this,k.width,k.height,a);let h=(a.plotX||0)+f.plotLeft;a=(a.plotY||0)+f.plotTop;let y;if(this.outside){b.positioner&& (c.x+=l-d,c.y+=e-d);y=(b.borderWidth||0)+2*d;this.renderer.setSize(k.width+y,k.height+y,!1);if(1!==g||1!==r)p(this.container,{transform:`scale(${g}, ${r})`}),h*=g,a*=r;h+=l-c.x;a+=e-c.y}this.move(Math.round(c.x),Math.round(c.y||0),h,a)}}(function(a){const f=[];a.compose=function(d){G.pushUnique(f,d)&&q(d,"afterInit",function(){const b=this.chart;b.options.tooltip&&(b.tooltip=new a(b,b.options.tooltip))})}})(r||(r={}));"";return r});L(a,"Core/Series/Point.js",[a["Core/Renderer/HTML/AST.js"],a["Core/Animation/AnimationUtilities.js"], a["Core/Defaults.js"],a["Core/Templating.js"],a["Core/Utilities.js"]],function(a,A,J,K,G){const {animObject:u}=A,{defaultOptions:E}=J,{format:B}=K,{addEvent:t,defined:q,erase:m,extend:p,fireEvent:n,getNestedProperty:h,isArray:g,isFunction:e,isNumber:x,isObject:I,merge:M,objectEach:C,pick:f,syncTimeout:y,removeEvent:r,uniqueKey:l}=G;class v{constructor(){this.category=void 0;this.destroyed=!1;this.formatPrefix="point";this.id=void 0;this.isNull=!1;this.percentage=this.options=this.name=void 0;this.selected= !1;this.total=this.shapeArgs=this.series=void 0;this.visible=!0;this.x=void 0}animateBeforeDestroy(){const d=this,b={x:d.startXPos,opacity:0},c=d.getGraphicalProps();c.singular.forEach(function(c){d[c]=d[c].animate("dataLabel"===c?{x:d[c].startXPos,y:d[c].startYPos,opacity:0}:b)});c.plural.forEach(function(b){d[b].forEach(function(b){b.element&&b.animate(p({x:d.startXPos},b.startYPos?{x:b.startXPos,y:b.startYPos}:{}))})})}applyOptions(d,b){const c=this.series,a=c.options.pointValKey||c.pointValKey; d=v.prototype.optionsToObject.call(this,d);p(this,d);this.options=this.options?p(this.options,d):d;d.group&&delete this.group;d.dataLabels&&delete this.dataLabels;a&&(this.y=v.prototype.getNestedProperty.call(this,a));this.formatPrefix=(this.isNull=this.isValid&&!this.isValid())?"null":"point";this.selected&&(this.state="select");"name"in this&&"undefined"===typeof b&&c.xAxis&&c.xAxis.hasNames&&(this.x=c.xAxis.nameToX(this));"undefined"===typeof this.x&&c?this.x="undefined"===typeof b?c.autoIncrement(): b:x(d.x)&&c.options.relativeXValue&&(this.x=c.autoIncrement(d.x));return this}destroy(){if(!this.destroyed){const b=this;var d=b.series;const c=d.chart;d=d.options.dataSorting;const a=c.hoverPoints,f=u(b.series.chart.renderer.globalAnimation),l=()=>{if(b.graphic||b.graphics||b.dataLabel||b.dataLabels)r(b),b.destroyElements();for(const c in b)delete b[c]};b.legendItem&&c.legend.destroyItem(b);a&&(b.setState(),m(a,b),a.length||(c.hoverPoints=null));if(b===c.hoverPoint)b.onMouseOut();d&&d.enabled?(this.animateBeforeDestroy(), y(l,f.duration)):l();c.pointCount--}this.destroyed=!0}destroyElements(d){const b=this;d=b.getGraphicalProps(d);d.singular.forEach(function(c){b[c]=b[c].destroy()});d.plural.forEach(function(c){b[c].forEach(function(b){b&&b.element&&b.destroy()});delete b[c]})}firePointEvent(d,b,c){const a=this,f=this.series.options;(f.point.events[d]||a.options&&a.options.events&&a.options.events[d])&&a.importEvents();"click"===d&&f.allowPointSelect&&(c=function(b){a.select&&a.select(null,b.ctrlKey||b.metaKey||b.shiftKey)}); n(a,d,b,c)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+("undefined"!==typeof this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone&&this.zone.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(d){const b=this,c=[],a={singular:[],plural:[]};let f,l;d=d||{graphic:1,dataLabel:1}; d.graphic&&c.push("graphic");d.dataLabel&&c.push("dataLabel","dataLabelPath","dataLabelUpper","connector");for(l=c.length;l--;)f=c[l],b[f]&&a.singular.push(f);["graphic","dataLabel","connector"].forEach(function(c){const k=c+"s";d[c]&&b[k]&&a.plural.push(k)});return a}getLabelConfig(){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}}getNestedProperty(d){if(d)return 0=== d.indexOf("custom.")?h(d,this.options):this[d]}getZone(){var d=this.series;const b=d.zones;d=d.zoneAxis||"y";let c,a=0;for(c=b[a];this[d]>=c.value;)c=b[++a];this.nonZonedColor||(this.nonZonedColor=this.color);this.color=c&&c.color&&!this.options.color?c.color:this.nonZonedColor;return c}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}init(d,b,c){this.series=d;this.applyOptions(b,c);this.id=q(this.id)?this.id:l();this.resolveColor(); d.chart.pointCount++;n(this,"afterInit");return this}isValid(){return null!==this.x&&x(this.y)}optionsToObject(d){var b=this.series;const c=b.options.keys,a=c||b.pointArrayMap||["y"],f=a.length;let l={},e=0,r=0;if(x(d)||null===d)l[a[0]]=d;else if(g(d))for(!c&&d.length>f&&(b=typeof d[0],"string"===b?l.name=d[0]:"number"===b&&(l.x=d[0]),e++);ra());this.eventsToUnbind=[];A.chartCount||(C.unbindDocumentMouseUp&&(C.unbindDocumentMouseUp=C.unbindDocumentMouseUp()),C.unbindDocumentTouchEnd&&(C.unbindDocumentTouchEnd=C.unbindDocumentTouchEnd()));clearInterval(a.tooltipTimeout);e(a,function(f,e){a[e]=void 0})}getSelectionMarkerAttrs(a,e){const f={args:{chartX:a,chartY:e},attrs:{},shapeType:"rect"};n(this,"getSelectionMarkerAttrs",f,f=>{const {chart:l,mouseDownX:d=0,mouseDownY:b=0,zoomHor:c,zoomVert:k}=this; f=f.attrs;let g;f.x=l.plotLeft;f.y=l.plotTop;f.width=c?1:l.plotWidth;f.height=k?1:l.plotHeight;c&&(g=a-d,f.width=Math.abs(g),f.x=(0l+d&&(m=l+d),ph+b&&(p=h+b),this.hasDragged=Math.sqrt(Math.pow(c-m,2)+Math.pow(k-p,2)),10{f.result={x:a.attr?+a.attr("x"):a.x,y:a.attr?+a.attr("y"):a.y,width:a.attr?a.attr("width"):a.width,height:a.attr?a.attr("height"):a.height}});return f.result}drop(a){const f=this,e=this.chart,l=this.hasPinched;if(this.selectionMarker){const {x:g, y:d,width:b,height:c}=this.getSelectionBox(this.selectionMarker),k={originalEvent:a,xAxis:[],yAxis:[],x:g,y:d,width:b,height:c};let r=!!e.mapView;if(this.hasDragged||l)e.axes.forEach(function(e){if(e.zoomEnabled&&q(e.min)&&(l||f[{xAxis:"zoomX",yAxis:"zoomY"}[e.coll]])&&h(g)&&h(d)&&h(b)&&h(c)){var w=e.horiz;const f="touchend"===a.type?e.minPixelPadding:0,l=e.toValue((w?g:d)+f);w=e.toValue((w?g+b:d+c)-f);k[e.coll].push({axis:e,min:Math.min(l,w),max:Math.max(l,w)});r=!0}}),r&&n(e,"selection",k,function(b){e.zoom(m(b, l?{animation:!1}:null))});h(e.index)&&(this.selectionMarker=this.selectionMarker.destroy());l&&this.scaleGroups()}e&&h(e.index)&&(t(e.container,{cursor:e._cursor}),e.cancelClick=10a.options.findNearestPointBy.indexOf("y");a=a.searchPoint(r,d);if((d=g(a,!0)&&a.series)&&!(d=!g(f,!0))){{d=f.distX-a.distX;const b=f.dist-a.dist,c=(a.series.group&& a.series.group.zIndex)-(f.series.group&&f.series.group.zIndex);d=0!==d&&e?d:0!==b?b:0!==c?c:f.series.index>a.series.index?-1:1}d=0b.stickyTracking&&(f.filter||c)(b));const r=l||!d?a:this.findNearestKDPoint(k,m,d);e=r&&r.series;r&&(m&&!e.noSharedTooltip?(k=h.filter(function(b){return f.filter?f.filter(b):c(b)&&!b.noSharedTooltip}),k.forEach(function(c){let a=p(c.points,function(b){return b.x===r.x&&!b.isNull});g(a)&&(c.boosted&&c.boost&& (a=c.boost.getPoint(a)),b.push(a))})):b.push(r));f={hoverPoint:r};n(this,"afterGetHoverData",f);return{hoverPoint:f.hoverPoint,hoverSeries:e,hoverPoints:b}}getPointFromEvent(a){a=a.target;let f;for(;a&&!f;)f=a.point,a=a.parentNode;return f}onTrackerMouseOut(a){a=a.relatedTarget;const f=this.chart.hoverSeries;this.isDirectTouch=!1;if(!(!f||!a||f.stickyTracking||this.inClass(a,"highcharts-tooltip")||this.inClass(a,"highcharts-series-"+f.index)&&this.inClass(a,"highcharts-tracker")))f.onMouseOut()}inClass(a, e){let f;for(;a;){if(f=B(a,"class")){if(-1!==f.indexOf(e))return!0;if(-1!==f.indexOf("highcharts-container"))return!1}a=a.parentElement}}init(a,e){this.options=e;this.chart=a;this.runChartClick=!(!e.chart.events||!e.chart.events.click);this.pinchDown=[];this.lastValidTouch={};this.setDOMEvents();n(this,"afterInit")}normalize(a,e){var f=a.touches,l=f?f.length?f.item(0):I(f.changedTouches,a.changedTouches)[0]:a;e||(e=this.getChartPosition());f=l.pageX-e.left;l=l.pageY-e.top;f/=e.scaleX;l/=e.scaleY; return m(a,{chartX:Math.round(f),chartY:Math.round(l)})}onContainerClick(a){const f=this.chart,e=f.hoverPoint;a=this.normalize(a);const l=f.plotLeft,g=f.plotTop;f.cancelClick||(e&&this.inClass(a.target,"highcharts-tracker")?(n(e.series,"click",m(a,{point:e})),f.hoverPoint&&e.firePointEvent("click",a)):(m(a,this.getCoordinates(a)),f.isInsidePlot(a.chartX-l,a.chartY-g,{visiblePlotOnly:!0})&&n(f,"click",a)))}onContainerMouseDown(a){const f=1===((a.buttons||a.button)&1);a=this.normalize(a);if(A.isFirefox&& 0!==a.button)this.onContainerMouseMove(a);if("undefined"===typeof a.button||f)this.zoomOption(a),f&&a.preventDefault&&a.preventDefault(),this.dragStart(a)}onContainerMouseLeave(a){const f=G[I(C.hoverChartIndex,-1)];a=this.normalize(a);f&&a.relatedTarget&&!this.inClass(a.relatedTarget,"highcharts-tooltip")&&(f.pointer.reset(),f.pointer.chartPosition=void 0)}onContainerMouseEnter(a){delete this.chartPosition}onContainerMouseMove(a){const f=this.chart,e=f.tooltip;a=this.normalize(a);this.setHoverChartIndex(); ("mousedown"===f.mouseIsDown||this.touchSelect(a))&&this.drag(a);f.openMenu||!this.inClass(a.target,"highcharts-tracker")&&!f.isInsidePlot(a.chartX-f.plotLeft,a.chartY-f.plotTop,{visiblePlotOnly:!0})||e&&e.shouldStickOnContact(a)||(this.inClass(a.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(a))}onDocumentTouchEnd(a){const f=G[I(C.hoverChartIndex,-1)];f&&f.pointer.drop(a)}onContainerTouchMove(a){if(this.touchSelect(a))this.onContainerMouseMove(a);else this.touch(a)}onContainerTouchStart(a){if(this.touchSelect(a))this.onContainerMouseDown(a); else this.zoomOption(a),this.touch(a,!0)}onDocumentMouseMove(a){const f=this.chart,e=f.tooltip,l=this.chartPosition;a=this.normalize(a,l);!l||f.isInsidePlot(a.chartX-f.plotLeft,a.chartY-f.plotTop,{visiblePlotOnly:!0})||e&&e.shouldStickOnContact(a)||this.inClass(a.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(a){const f=G[I(C.hoverChartIndex,-1)];f&&f.pointer.drop(a)}pinch(a){const f=this,e=f.chart,l=f.pinchDown,g=a.touches||[],d=g.length,b=f.lastValidTouch,c=f.hasZoom,k={},h=1===d&& (f.inClass(a.target,"highcharts-tracker")&&e.runTrackerClick||f.runChartClick),z={};var F=f.chart.tooltip;F=1===d&&I(F&&F.options.followTouchMove,!0);let p=f.selectionMarker;1{p||(f.selectionMarker=p=m({destroy:D,touch:!0},e.plotBox));f.pinchTranslate(l,g,k,p,z,b);f.hasPinched=c;f.scaleGroups(k,z)}),f.res&&(f.res=!1,this.reset(!1, 0)))}pinchTranslate(a,e,g,l,h,d){this.zoomHor&&this.pinchTranslateDirection(!0,a,e,g,l,h,d);this.zoomVert&&this.pinchTranslateDirection(!1,a,e,g,l,h,d)}pinchTranslateDirection(a,e,g,l,h,d,b,c){const k=this.chart,f=a?"x":"y",r=a?"X":"Y",n="chart"+r,m=a?"width":"height",v=k["plot"+(a?"Left":"Top")],y=k.inverted,p=k.bounds[a?"h":"v"],q=1===e.length,x=e[0][n],t=!q&&e[1][n];e=function(){"number"===typeof X&&20p.max&&(g=p.max-u,Q=!0);Q?(N-=.8*(N-b[f][0]),"number"===typeof X&&(X-=.8*(X-b[f][1])),e()):b[f]=[N,X];y||(d[f]=I-v,d[m]=u);d=y?1/C:C;h[m]=u;h[f]=g;l[y?a?"scaleY":"scaleX":"scale"+r]=C;l["translate"+r]=d*v+(N-d*x)}reset(a,e){const f=this.chart,l=f.hoverSeries,g=f.hoverPoint,d=f.hoverPoints,b=f.tooltip,c=b&&b.shared?d:g;a&&c&&M(c).forEach(function(b){b.series.isCartesian&&"undefined"===typeof b.plotX&&(a=!1)});if(a)b&&c&& M(c).length&&(b.refresh(c),b.shared&&d?d.forEach(function(b){b.setState(b.state,!0);b.series.isCartesian&&(b.series.xAxis.crosshair&&b.series.xAxis.drawCrosshair(null,b),b.series.yAxis.crosshair&&b.series.yAxis.drawCrosshair(null,b))}):g&&(g.setState(g.state,!0),f.axes.forEach(function(b){b.crosshair&&g.series[b.coll]===b&&b.drawCrosshair(null,g)})));else{if(g)g.onMouseOut();d&&d.forEach(function(b){b.setState()});if(l)l.onMouseOut();b&&b.hide(e);this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()); f.axes.forEach(function(b){b.hideCrosshair()});this.hoverX=f.hoverPoints=f.hoverPoint=null}}runPointActions(a,e,g){const f=this.chart,h=f.tooltip&&f.tooltip.options.enabled?f.tooltip:void 0,d=h?h.shared:!1;let b=e||f.hoverPoint,c=b&&b.series||f.hoverSeries;e=this.getHoverData(b,c,f.series,(!a||"touchmove"!==a.type)&&(!!e||c&&c.directTouch&&this.isDirectTouch),d,a);b=e.hoverPoint;c=e.hoverSeries;const k=e.hoverPoints;e=c&&c.tooltipOptions.followPointer&&!c.tooltipOptions.split;const w=d&&c&&!c.noSharedTooltip; if(b&&(g||b!==f.hoverPoint||h&&h.isHidden)){(f.hoverPoints||[]).forEach(function(b){-1===k.indexOf(b)&&b.setState()});if(f.hoverSeries!==c)c.onMouseOver();this.applyInactiveState(k);(k||[]).forEach(function(b){b.setState("hover")});f.hoverPoint&&f.hoverPoint.firePointEvent("mouseOut");if(!b.series)return;f.hoverPoints=k;f.hoverPoint=b;b.firePointEvent("mouseOver",void 0,()=>{h&&b&&h.refresh(w?k:b,a)})}else e&&h&&!h.isHidden&&(g=h.getAnchor([{}],a),f.isInsidePlot(g[0],g[1],{visiblePlotOnly:!0})&&h.updatePosition({plotX:g[0], plotY:g[1]}));this.unDocMouseMove||(this.unDocMouseMove=E(f.container.ownerDocument,"mousemove",function(b){const c=G[C.hoverChartIndex];if(c)c.pointer.onDocumentMouseMove(b)}),this.eventsToUnbind.push(this.unDocMouseMove));f.axes.forEach(function(b){const c=I((b.crosshair||{}).snap,!0);let d;c&&((d=f.hoverPoint)&&d.series[b.coll]===b||(d=p(k,c=>c.series&&c.series[b.coll]===b)));d||!c?b.drawCrosshair(a,d):b.hideCrosshair()})}scaleGroups(a,e){const f=this.chart;f.series.forEach(function(l){const g= a||l.getPlotBox();l.group&&(l.xAxis&&l.xAxis.zoomEnabled||f.mapView)&&(l.group.attr(g),l.markerGroup&&(l.markerGroup.attr(g),l.markerGroup.clip(e?f.clipRect:null)),l.dataLabelsGroup&&l.dataLabelsGroup.attr(g))});f.clipRect.attr(e||f.clipBox)}setDOMEvents(){const a=this.chart.container,e=a.ownerDocument;a.onmousedown=this.onContainerMouseDown.bind(this);a.onmousemove=this.onContainerMouseMove.bind(this);a.onclick=this.onContainerClick.bind(this);this.eventsToUnbind.push(E(a,"mouseenter",this.onContainerMouseEnter.bind(this))); this.eventsToUnbind.push(E(a,"mouseleave",this.onContainerMouseLeave.bind(this)));C.unbindDocumentMouseUp||(C.unbindDocumentMouseUp=E(e,"mouseup",this.onDocumentMouseUp.bind(this)));let g=this.chart.renderTo.parentElement;for(;g&&"BODY"!==g.tagName;)this.eventsToUnbind.push(E(g,"scroll",()=>{delete this.chartPosition})),g=g.parentElement;A.hasTouch&&(this.eventsToUnbind.push(E(a,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1})),this.eventsToUnbind.push(E(a,"touchmove",this.onContainerTouchMove.bind(this), {passive:!1})),C.unbindDocumentTouchEnd||(C.unbindDocumentTouchEnd=E(e,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1})))}setHoverChartIndex(){const a=this.chart,e=A.charts[I(C.hoverChartIndex,-1)];if(e&&e!==a)e.pointer.onContainerMouseLeave({relatedTarget:a.container});e&&e.mouseIsDown||(C.hoverChartIndex=a.index)}touch(a,e){const f=this.chart;let l,g;this.setHoverChartIndex();1===a.touches.length?(a=this.normalize(a),(g=f.isInsidePlot(a.chartX-f.plotLeft,a.chartY-f.plotTop,{visiblePlotOnly:!0}))&& !f.openMenu?(e&&this.runPointActions(a),"touchmove"===a.type&&(e=this.pinchDown,l=e[0]?4<=Math.sqrt(Math.pow(e[0].chartX-a.chartX,2)+Math.pow(e[0].chartY-a.chartY,2)):!1),I(l,!0)&&this.pinch(a)):e&&this.reset()):2===a.touches.length&&this.pinch(a)}touchSelect(a){return!(!this.chart.zooming.singleTouch||!a.touches||1!==a.touches.length)}zoomOption(a){const f=this.chart,e=f.inverted;var l=f.zooming.type||"";/touch/.test(a.type)&&(l=I(f.zooming.pinchType,l));this.zoomX=a=/x/.test(l);this.zoomY=l=/y/.test(l); this.zoomHor=a&&!e||l&&e;this.zoomVert=l&&!e||a&&e;this.hasZoom=a||l}}(function(a){const f=[],e=[];a.compose=function(f){J.pushUnique(e,f)&&E(f,"beforeRender",function(){this.pointer=new a(this,this.options)})};a.dissolve=function(){for(let a=0,e=f.length;a{this.proximate&&(this.proximatePositions(), this.positionItems())}))}setOptions(a){const b=f(a.padding,8);this.options=a;this.chart.styledMode||(this.itemStyle=a.itemStyle,this.itemHiddenStyle=C(this.itemStyle,a.itemHiddenStyle));this.itemMarginTop=a.itemMarginTop;this.itemMarginBottom=a.itemMarginBottom;this.padding=b;this.initialItemY=b-5;this.symbolWidth=f(a.symbolWidth,16);this.pages=[];this.proximate="proximate"===a.layout&&!this.chart.inverted;this.baseline=void 0}update(a,b){const c=this.chart;this.setOptions(C(!0,this.options,a));this.destroy(); c.isDirtyLegend=c.isDirtyBox=!0;f(b,!0)&&c.redraw();I(this,"afterUpdate")}colorizeItem(a,b){const {group:c,label:d,line:f,symbol:e}=a.legendItem||{};if(c)c[b?"removeClass":"addClass"]("highcharts-legend-item-hidden");if(!this.chart.styledMode){const {itemHiddenStyle:c}=this,k=c.color,l=b?a.color||k:k,g=a.options&&a.options.marker;let h={fill:l};null===d||void 0===d?void 0:d.css(C(b?this.itemStyle:c));null===f||void 0===f?void 0:f.attr({stroke:l});e&&(g&&e.isMarker&&(h=a.pointAttribs(),b||(h.stroke= h.fill=k)),e.attr(h))}I(this,"afterColorizeItem",{item:a,visible:b})}positionItems(){this.allItems.forEach(this.positionItem,this);this.chart.isResizing||this.positionCheckboxes()}positionItem(a){const {group:b,x:c=0,y:d=0}=a.legendItem||{};var f=this.options,e=f.symbolPadding;const l=!f.rtl;f=a.checkbox;b&&b.element&&(e={translateX:l?c:this.legendWidth-c-2*e-4,translateY:d},b[g(b.translateY)?"animate":"attr"](e,void 0,()=>{I(this,"afterPositionItem",{item:a})}));f&&(f.x=c,f.y=d)}destroyItem(a){const b= a.checkbox,c=a.legendItem||{};for(const b of["group","label","line","symbol"])c[b]&&(c[b]=c[b].destroy());b&&e(b);a.legendItem=void 0}destroy(){for(const a of this.getAllItems())this.destroyItem(a);for(const a of"clipRect up down pager nav box title group".split(" "))this[a]&&(this[a]=this[a].destroy());this.display=null}positionCheckboxes(){const a=this.group&&this.group.alignAttr,b=this.clipHeight||this.legendHeight,c=this.titleHeight;let k;a&&(k=a.translateY,this.allItems.forEach(function(d){const f= d.checkbox;let e;f&&(e=k+c+f.y+(this.scrollOffset||0)+3,h(f,{left:a.translateX+d.checkboxOffset+f.x-20+"px",top:e+"px",display:this.proximate||e>k-6&&e1.5*d?c.height:d))}layoutItem(a){var b=this.options;const c=this.padding,d="horizontal"===b.layout, e=a.itemHeight,l=this.itemMarginBottom,g=this.itemMarginTop,h=d?f(b.itemDistance,20):0,n=this.maxLegendWidth;b=b.alignColumns&&this.totalItemWidth>n?this.maxItemWidth:a.itemWidth;const r=a.legendItem||{};d&&this.itemX-c+b>n&&(this.itemX=c,this.lastLineHeight&&(this.itemY+=g+this.lastLineHeight+l),this.lastLineHeight=0);this.lastItemY=g+this.itemY+l;this.lastLineHeight=Math.max(e,this.lastLineHeight);r.x=this.itemX;r.y=this.itemY;d?this.itemX+=b:(this.itemY+=g+e+l,this.lastLineHeight=e);this.offsetWidth= this.widthOption||Math.max((d?this.itemX-c-(a.checkbox?0:h):b)+c,this.offsetWidth)}getAllItems(){let a=[];this.chart.series.forEach(function(b){const c=b&&b.options;b&&f(c.showInLegend,g(c.linkedTo)?!1:void 0,!0)&&(a=a.concat((b.legendItem||{}).labels||("point"===c.legendType?b.data:b)))});I(this,"afterGetAllItems",{allItems:a});return a}getAlignment(){const a=this.options;return this.proximate?a.align.charAt(0)+"tv":a.floating?"":a.align.charAt(0)+a.verticalAlign.charAt(0)+a.layout.charAt(0)}adjustMargins(a, b){const c=this.chart,d=this.options,e=this.getAlignment();e&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(k,l){k.test(e)&&!g(a[l])&&(c[q[l]]=Math.max(c[q[l]],c.legend[(l+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][l]*d[l%2?"x":"y"]+f(d.margin,12)+b[l]+(c.titleOffset[l]||0)))})}proximatePositions(){const a=this.chart,b=[],c="left"===this.options.align;this.allItems.forEach(function(d){var k;var f=c;let e;d.yAxis&&(d.xAxis.options.reversed&&(f=!f),d.points&&(k= x(f?d.points:d.points.slice(0).reverse(),function(b){return M(b.plotY)})),f=this.itemMarginTop+d.legendItem.label.getBBox().height+this.itemMarginBottom,e=d.yAxis.top-a.plotTop,d.visible?(k=k?k.plotY:d.yAxis.height,k+=e-.3*f):k=e+d.yAxis.height,b.push({target:k,size:f,item:d}))},this);let k;for(const c of m(b,a.plotHeight))k=c.item.legendItem||{},M(c.pos)&&(k.y=a.plotTop-a.spacing[0]+c.pos)}render(){const a=this.chart,b=a.renderer,c=this.options,k=this.padding;var f=this.getAllItems();let e,l=this.group, g=this.box;this.itemX=k;this.itemY=this.initialItemY;this.lastItemY=this.offsetWidth=0;this.widthOption=y(c.width,a.spacingBox.width-k);var h=a.spacingBox.width-2*k-c.x;-1<["rm","lm"].indexOf(this.getAlignment().substring(0,2))&&(h/=2);this.maxLegendWidth=this.widthOption||h;l||(this.group=l=b.g("legend").addClass(c.className||"").attr({zIndex:7}).add(),this.contentGroup=b.g().attr({zIndex:1}).add(l),this.scrollGroup=b.g().add(this.contentGroup));this.renderTitle();r(f,(b,c)=>(b.options&&b.options.legendIndex|| 0)-(c.options&&c.options.legendIndex||0));c.reversed&&f.reverse();this.allItems=f;this.display=h=!!f.length;this.itemHeight=this.totalItemWidth=this.maxItemWidth=this.lastLineHeight=0;f.forEach(this.renderItem,this);f.forEach(this.layoutItem,this);f=(this.widthOption||this.offsetWidth)+k;e=this.lastItemY+this.lastLineHeight+this.titleHeight;e=this.handleOverflow(e);e+=k;g||(this.box=g=b.rect().addClass("highcharts-legend-box").attr({r:c.borderRadius}).add(l));a.styledMode||g.attr({stroke:c.borderColor, "stroke-width":c.borderWidth||0,fill:c.backgroundColor||"none"}).shadow(c.shadow);if(0l&&!1!==r.enabled?(this.clipHeight=t=Math.max(l-20-this.titleHeight-h,0),this.currentPage=f(this.currentPage,1),this.fullHeight=a,q.forEach((b,c)=>{u=b.legendItem||{};b=u.y||0;const a=Math.round(u.label.getBBox().height);let d=p.length;if(!d||b-p[d-1]>t&&(N||b)!==p[d-1])p.push(N||b),d++;u.pageIx=d-1;N&&((q[c-1].legendItem||{}).pageIx=d-1);c===q.length-1&&b+a-p[d-1]>t&&b>p[d-1]&&(p.push(b),u.pageIx=d);b!==N&&(N=b)}),I||(I=b.clipRect=d.clipRect(0,h-2,9999,0),b.contentGroup.clip(I)), y(t),Q||(this.nav=Q=d.g().attr({zIndex:1}).add(this.group),this.up=d.symbol("triangle",0,0,v,v).add(Q),x("upTracker").on("click",function(){b.scroll(-1,m)}),this.pager=d.text("",15,10).addClass("highcharts-legend-navigation"),!c.styledMode&&r.style&&this.pager.css(r.style),this.pager.add(Q),this.down=d.symbol("triangle-down",0,0,v,v).add(Q),x("downTracker").on("click",function(){b.scroll(1,m)})),b.scroll(0),a=l):Q&&(y(),this.nav=Q.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0); return a}scroll(a,b){const c=this.chart,d=this.pages,e=d.length,g=this.clipHeight,h=this.options.navigation,n=this.pager,r=this.padding;let m=this.currentPage+a;m>e&&(m=e);0{I(this,"afterScroll",{currentPage:m})},a.duration))}setItemEvents(a,b,c){const d=this,f=a.legendItem||{},e=d.chart.renderer.boxWrapper,l=a instanceof K,g="highcharts-legend-"+(l?"point":"series")+"-active",h=d.chart.styledMode;c=c?[b,f.symbol]:[f.group];const n=b=>{d.allItems.forEach(c=>{a!==c&&[c].concat(c.linkedSeries||[]).forEach(c=>{c.setState(b,!l)})})};for(const k of c)if(k)k.on("mouseover",function(){a.visible&&n("inactive");a.setState("hover"); a.visible&&e.addClass(g);h||b.css(d.options.itemHoverStyle)}).on("mouseout",function(){d.chart.styledMode||b.css(C(a.visible?d.itemStyle:d.itemHiddenStyle));n("");e.removeClass(g);a.setState()}).on("click",function(b){const c=function(){a.setVisible&&a.setVisible();n(a.visible?"inactive":"")};e.removeClass(g);b={browserEvent:b};a.firePointEvent?a.firePointEvent("legendItemClick",b,c):I(a,"legendItemClick",b,c)})}createCheckboxForItem(a){a.checkbox=n("input",{type:"checkbox",className:"highcharts-legend-checkbox", checked:a.selected,defaultChecked:a.selected},this.options.itemCheckboxStyle,this.chart.container);p(a.checkbox,"click",function(b){I(a.series||a,"checkboxClick",{checked:b.target.checked,item:a},function(){a.select()})})}}(function(a){const b=[];a.compose=function(c){D.pushUnique(b,c)&&p(c,"beforeMargins",function(){this.legend=new a(this,this.options.legend)})}})(v||(v={}));"";return v});L(a,"Core/Legend/LegendSymbol.js",[a["Core/Utilities.js"]],function(a){const {extend:u,merge:J,pick:K}=a;var G; (function(a){a.lineMarker=function(a,B){B=this.legendItem=this.legendItem||{};var t=this.options;const q=a.symbolWidth,m=a.symbolHeight,p=m/2,n=this.chart.renderer,h=B.group;a=a.baseline-Math.round(.3*a.fontMetrics.b);let g={},e=t.marker,x=0;this.chart.styledMode||(g={"stroke-width":Math.min(t.lineWidth||0,24)},t.dashStyle?g.dashstyle=t.dashStyle:"square"!==t.linecap&&(g["stroke-linecap"]="round"));B.line=n.path().addClass("highcharts-graph").attr(g).add(h);g["stroke-linecap"]&&(x=Math.min(B.line.strokeWidth(), q)/2);q&&B.line.attr({d:[["M",x,a],["L",q-x,a]]});e&&!1!==e.enabled&&q&&(t=Math.min(K(e.radius,p),p),0===this.symbol.indexOf("url")&&(e=J(e,{width:m,height:m}),t=0),B.symbol=B=n.symbol(this.symbol,q/2-t,a-t,2*t,2*t,u({context:"legend"},e)).addClass("highcharts-point").add(h),B.isMarker=!0)};a.rectangle=function(a,u){u=u.legendItem||{};const t=a.symbolHeight,q=a.options.squareSymbol;u.symbol=this.chart.renderer.rect(q?(a.symbolWidth-t)/2:0,a.baseline-t+1,q?t:a.symbolWidth,t,K(a.options.symbolRadius, t/2)).addClass("highcharts-point").attr({zIndex:3}).add(u.group)}})(G||(G={}));return G});L(a,"Core/Series/SeriesDefaults.js",[],function(){return{lineWidth:1,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1E3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}}, dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){const {numberFormatter:a}=this.series.chart;return"number"!==typeof this.y?"":a(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}}, inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1E3,findNearestPointBy:"x"}});L(a,"Core/Series/SeriesRegistry.js",[a["Core/Globals.js"],a["Core/Defaults.js"],a["Core/Series/Point.js"],a["Core/Utilities.js"]],function(a,A,J,K){const {defaultOptions:u}=A,{extendClass:D,merge:E}=K;var B;(function(t){function q(a,p){const n=u.plotOptions||{},h=p.defaultOptions,g=p.prototype;g.type=a;g.pointClass||(g.pointClass=J);h&&(n[a]=h);t.seriesTypes[a]=p}t.seriesTypes=a.seriesTypes; t.registerSeriesType=q;t.seriesType=function(a,p,n,h,g){const e=u.plotOptions||{};p=p||"";e[a]=E(e[p],n);q(a,D(t.seriesTypes[p]||function(){},h));t.seriesTypes[a].prototype.type=a;g&&(t.seriesTypes[a].prototype.pointClass=D(J,g));return t.seriesTypes[a]}})(B||(B={}));return B});L(a,"Core/Series/Series.js",[a["Core/Animation/AnimationUtilities.js"],a["Core/Defaults.js"],a["Core/Foundation.js"],a["Core/Globals.js"],a["Core/Legend/LegendSymbol.js"],a["Core/Series/Point.js"],a["Core/Series/SeriesDefaults.js"], a["Core/Series/SeriesRegistry.js"],a["Core/Renderer/SVG/SVGElement.js"],a["Core/Utilities.js"]],function(a,A,J,K,G,D,E,B,t,q){const {animObject:m,setAnimation:p}=a,{defaultOptions:n}=A,{registerEventOptions:h}=J,{hasTouch:g,svg:e,win:x}=K,{seriesTypes:u}=B,{arrayMax:M,arrayMin:C,clamp:f,correctFloat:y,defined:r,diffObjects:l,erase:v,error:d,extend:b,find:c,fireEvent:k,getClosestDistance:w,getNestedProperty:z,insertItem:F,isArray:O,isNumber:P,isString:T,merge:U,objectEach:W,pick:H,removeEvent:Y,splat:ea, syncTimeout:aa}=q;class Z{constructor(){this.zones=this.yAxis=this.xAxis=this.userOptions=this.tooltipOptions=this.processedYData=this.processedXData=this.points=this.options=this.linkedSeries=this.index=this.eventsToUnbind=this.eventOptions=this.data=this.chart=this._i=void 0}init(c,a){k(this,"init",{options:a});const d=this,f=c.series;this.eventsToUnbind=[];d.chart=c;d.options=d.setOptions(a);a=d.options;d.linkedSeries=[];d.bindAxes();b(d,{name:a.name,state:"",visible:!1!==a.visible,selected:!0=== a.selected});h(this,a);const e=a.events;if(e&&e.click||a.point&&a.point.events&&a.point.events.click||a.allowPointSelect)c.runTrackerClick=!0;d.getColor();d.getSymbol();d.parallelArrays.forEach(function(b){d[b+"Data"]||(d[b+"Data"]=[])});d.isCartesian&&(c.hasCartesianSeries=!0);let l;f.length&&(l=f[f.length-1]);d._i=H(l&&l._i,-1)+1;d.opacity=d.options.opacity;c.orderItems("series",F(this,f));a.dataSorting&&a.dataSorting.enabled?d.setDataSortingOptions():d.points||d.data||d.setData(a.data,!1);k(this, "afterInit")}is(b){return u[b]&&this instanceof u[b]}bindAxes(){const b=this,c=b.options,a=b.chart;let f;k(this,"bindAxes",null,function(){(b.axisTypes||[]).forEach(function(k){a[k].forEach(function(a){f=a.options;if(H(c[k],0)===a.index||"undefined"!==typeof c[k]&&c[k]===f.id)F(b,a.series),b[k]=a,a.isDirty=!0});b[k]||b.optionalAxis===k||d(18,!0,a)})});k(this,"afterBindAxes")}updateParallelArrays(b,c,a){const d=b.series,k=P(c)?function(a){const k="y"===a&&d.toYData?d.toYData(b):b[a];d[a+"Data"][c]= k}:function(b){Array.prototype[c].apply(d[b+"Data"],a)};d.parallelArrays.forEach(k)}hasData(){return this.visible&&"undefined"!==typeof this.dataMax&&"undefined"!==typeof this.dataMin||this.visible&&this.yData&&0!c.touched&&c.index===b.index,e&&e.matchByName?l=c=>!c.touched&&c.name===b.name: this.options.relativeXValue&&(l=c=>!c.touched&&c.options.x===b.x),l=c(f,l),!l)return;l&&(h=l&&l.index,"undefined"!==typeof h&&(g=!0));"undefined"===typeof h&&P(k)&&(h=this.xData.indexOf(k,a));-1!==h&&"undefined"!==typeof h&&this.cropped&&(h=h>=this.cropStart?h-this.cropStart:h);!g&&P(h)&&f[h]&&f[h].touched&&(h=void 0);return h}updateData(b,c){const a=this.options,d=a.dataSorting,k=this.points,f=[],e=this.requireSorting,l=b.length===k.length;let g,h,n,m=!0;this.xIncrement=null;b.forEach(function(b, c){var h=r(b)&&this.pointClass.prototype.optionsToObject.call({series:this},b)||{};const m=h.x;if(h.id||P(m)){if(h=this.findPointIndex(h,n),-1===h||"undefined"===typeof h?f.push(b):k[h]&&b!==a.data[h]?(k[h].update(b,!1,null,!1),k[h].touched=!0,e&&(n=h+1)):k[h]&&(k[h].touched=!0),!l||c!==h||d&&d.enabled||this.hasDerivedData)g=!0}else f.push(b)},this);if(g)for(b=k.length;b--;)(h=k[b])&&!h.touched&&h.remove&&h.remove(!1,c);else!l||d&&d.enabled?m=!1:(b.forEach(function(b,c){b===k[c].y||k[c].destroyed|| k[c].update(b,!1,null,!1)}),f.length=0);k.forEach(function(b){b&&(b.touched=!1)});if(!m)return!1;f.forEach(function(b){this.addPoint(b,!1,null,null,!1)},this);null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=M(this.xData),this.autoIncrement());return!0}setData(b,c=!0,a,k){var f;const e=this,l=e.points,g=l&&l.length||0,h=e.options,n=e.chart,r=h.dataSorting,m=e.xAxis,w=h.turboThreshold,v=this.xData,z=this.yData;var p=e.pointArrayMap;p=p&&p.length;const q=h.keys;let F,y=0,x=1, N=null;if(!n.options.chart.allowMutatingData){h.data&&delete e.options.data;e.userOptions.data&&delete e.userOptions.data;var t=U(!0,b)}b=t||b||[];t=b.length;r&&r.enabled&&(b=this.sortData(b));n.options.chart.allowMutatingData&&!1!==k&&t&&g&&!e.cropped&&!e.hasGroupedData&&e.visible&&!e.boosted&&(F=this.updateData(b,a));if(!F){e.xIncrement=null;e.colorCounter=0;this.parallelArrays.forEach(function(b){e[b+"Data"].length=0});if(w&&t>w)if(N=e.getFirstValidPoint(b),P(N))for(a=0;a {b=z(a,b);c=z(a,c);return cb?1:0}).forEach(function(b,c){b.x=c},this);c.linkedSeries&&c.linkedSeries.forEach(function(c){const a=c.options,k=a.data;a.dataSorting&&a.dataSorting.enabled||!k||(k.forEach(function(a,f){k[f]=d(c,a);b[f]&&(k[f].x=b[f].x,k[f].index=f)}),c.setData(k,!1))});return b}getProcessedData(b){const c=this;var a=c.xAxis,k=c.options;const f=k.cropThreshold,e=b||c.getExtremesFromAll||k.getExtremesFromAll,l=null===a||void 0===a?void 0:a.logarithmic,g=c.isCartesian;let h=0;let n; b=c.xData;k=c.yData;let r=!1;const m=b.length;if(a){var v=a.getExtremes();n=v.min;v=v.max;r=!(!a.categories||a.names.length)}if(g&&c.sorted&&!e&&(!f||m>f||c.forceCrop))if(b[m-1]v)b=[],k=[];else if(c.yData&&(b[0]v)){var z=this.cropData(c.xData,c.yData,n,v);b=z.xData;k=z.yData;h=z.start;z=!0}a=w([l?b.map(l.log2lin):b],()=>c.requireSorting&&!r&&d(15,!1,c.chart));return{xData:b,yData:k,cropped:z,cropStart:h,closestPointRange:a}}processData(b){const c=this.xAxis;if(this.isCartesian&& !this.isDirty&&!c.isDirty&&!this.yAxis.isDirty&&!b)return!1;b=this.getProcessedData();this.cropped=b.cropped;this.cropStart=b.cropStart;this.processedXData=b.xData;this.processedYData=b.yData;this.closestPointRange=this.basePointRange=b.closestPointRange;k(this,"afterProcessData")}cropData(b,c,a,d,k){const f=b.length;let e,l=0,g=f;k=H(k,this.cropShoulder);for(e=0;e=a){l=Math.max(0,e-k);break}for(a=e;ad){g=a+k;break}return{xData:b.slice(l,g),yData:c.slice(l,g),start:l, end:g}}generatePoints(){var c=this.options;const a=this.processedData||c.data,d=this.processedXData,f=this.processedYData,e=this.pointClass,l=d.length,g=this.cropStart||0,h=this.hasGroupedData,n=c.keys,r=[];c=c.dataGrouping&&c.dataGrouping.groupAll?g:0;let m;let w,v,z=this.data;if(!z&&!h){var p=[];p.length=a.length;z=this.data=p}n&&h&&(this.options.keys=!1);for(v=0;v=h&&(f[g-l]||v)<=n;if(z&&v)if(z=m.length)for(;z--;)P(m[z])&&(e[r++]=m[z]);else e[r++]=m}b={activeYData:e,dataMin:C(e),dataMax:M(e)};k(this,"afterGetExtremes",{dataExtremes:b}); return b}applyExtremes(){const b=this.getExtremes();this.dataMin=b.dataMin;this.dataMax=b.dataMax;return b}getFirstValidPoint(b){const c=b.length;let a=0,d=null;for(;null===d&&a=N&&(N=void 0),k.total=k.stackTotal= H(t.total),k.percentage=r(k.y)&&t.total?k.y/t.total*100:void 0,k.stackY=I,this.irregularWidths||t.setOffset(this.pointXOffset||0,this.barW||0,void 0,void 0,void 0,this.xAxis)));k.yBottom=r(N)?f(g.translate(N,!1,!0,!1,!0),-1E5,1E5):void 0;this.dataModify&&(I=this.dataModify.modifyValue(I,z));let ca;P(I)&&void 0!==k.plotX&&(ca=g.translate(I,!1,!0,!1,!0),ca=P(ca)?f(ca,-1E5,1E5):void 0);k.plotY=ca;k.isInside=this.isPointInside(k);k.clientX=w?y(d.translate(n,!1,!1,!1,!0,m)):p;k.negative=(k.y||0)<(v||0); k.category=H(e&&e[k.x],k.x);k.isNull||!1===k.visible||("undefined"!==typeof q&&(x=Math.min(x,Math.abs(p-q))),q=p);k.zone=this.zones.length?k.getZone():void 0;!k.graphic&&this.group&&l&&(k.isNew=!0)}this.closestPointRangePx=x;k(this,"afterTranslate")}getValidPoints(b,c,a){const d=this.chart;return(b||this.points||[]).filter(function(b){const {plotX:k,plotY:f}=b;return!a&&(b.isNull||!P(f))||c&&!d.isInsidePlot(k,f,{inverted:d.inverted})?!1:!1!==b.visible})}getClipBox(){const {chart:b,xAxis:c,yAxis:a}= this,d=U(b.clipBox);c&&c.len!==b.plotSizeX&&(d.width=c.len);a&&a.len!==b.plotSizeY&&(d.height=a.len);return d}getSharedClipKey(){return this.sharedClipKey=(this.options.xAxis||0)+","+(this.options.yAxis||0)}setClip(){const {chart:b,group:c,markerGroup:a}=this,d=b.sharedClips,k=b.renderer,f=this.getClipBox(),e=this.getSharedClipKey();let l=d[e];l?l.animate(f):d[e]=l=k.clipRect(f);c&&c.clip(!1===this.options.clip?void 0:l);a&&a.clip()}animate(b){const {chart:c,group:a,markerGroup:d}=this,k=c.inverted; var f=m(this.options.animation),e=[this.getSharedClipKey(),f.duration,f.easing,f.defer].join();let l=c.sharedClips[e],g=c.sharedClips[e+"m"];if(b&&a)f=this.getClipBox(),l?l.attr("height",f.height):(f.width=0,k&&(f.x=c.plotHeight),l=c.renderer.clipRect(f),c.sharedClips[e]=l,g=c.renderer.clipRect({x:-99,y:-99,width:k?c.plotWidth+199:99,height:k?99:c.plotHeight+199}),c.sharedClips[e+"m"]=g),a.clip(l),d&&d.clip(g);else if(l&&!l.hasClass("highcharts-animating")){e=this.getClipBox();const b=f.step;d&&d.element.childNodes.length&& (f.step=function(c,a){b&&b.apply(a,arguments);"width"===a.prop&&g&&g.element&&g.attr(k?"height":"width",c+99)});l.addClass("highcharts-animating").animate(e,f)}}afterAnimate(){this.setClip();W(this.chart.sharedClips,(b,c,a)=>{b&&!this.chart.container.querySelector(`[clip-path="url(#${b.id})"]`)&&(b.destroy(),delete a[c])});this.finishedAnimating=!0;k(this,"afterAnimate")}drawPoints(b=this.points){const c=this.chart,a=c.styledMode,{colorAxis:d,options:k}=this,f=k.marker,e=this[this.specialGroup||"markerGroup"], l=this.xAxis,g=H(f.enabled,!l||l.isRadial?!0:null,this.closestPointRangePx>=f.enabledThreshold*f.radius);let h,n,m,r;let w,v;if(!1!==f.enabled||this._hasPointMarkers)for(h=0;hb.destroy());q.clearTimeout(c.animationTimeout);W(c,function(b,c){b instanceof t&&!b.survive&&(e=d&&"group"===c?"hide":"destroy",b[e]())});a.hoverSeries===c&&(a.hoverSeries=void 0);v(a.series,c);a.orderItems("series");W(c,function(a,d){b&&"hcEvents"===d||delete c[d]})}applyZones(){const b= this,c=this.chart,a=c.renderer,d=this.zones,k=this.clips||[],e=this.graph,l=this.area,g=Math.max(c.plotWidth,c.plotHeight),h=this[(this.zoneAxis||"y")+"Axis"],n=c.inverted;let m,r,w,v,z,p,q,F,y,x,t,u=!1;d.length&&(e||l)&&h&&"undefined"!==typeof h.min?(z=h.reversed,p=h.horiz,e&&!this.showLine&&e.hide(),l&&l.hide(),v=h.getExtremes(),d.forEach(function(d,I){m=z?p?c.plotWidth:0:p?0:h.toPixels(v.min)||0;m=f(H(r,m),0,g);r=f(Math.round(h.toPixels(H(d.value,v.max),!0)||0),0,g);u&&(m=r=h.toPixels(v.max)); q=Math.abs(m-r);F=Math.min(m,r);y=Math.max(m,r);h.isXAxis?(w={x:n?y:F,y:0,width:q,height:g},p||(w.x=c.plotHeight-w.x)):(w={x:0,y:n?y:F,width:g,height:q},p&&(w.y=c.plotWidth-w.y));k[I]?k[I].animate(w):k[I]=a.clipRect(w);x=b["zone-area-"+I];t=b["zone-graph-"+I];e&&t&&t.clip(k[I]);l&&x&&x.clip(k[I]);u=d.value>v.max;b.resetZones&&0===r&&(r=void 0)}),this.clips=k):b.visible&&(e&&e.show(),l&&l.show())}plotGroup(b,c,a,d,k){let f=this[b];const e=!f;a={visibility:a,zIndex:d||.1};"undefined"===typeof this.opacity|| this.chart.styledMode||"inactive"===this.state||(a.opacity=this.opacity);e&&(this[b]=f=this.chart.renderer.g().add(k));f.addClass("highcharts-"+c+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(r(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(f.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0);f.attr(a)[e?"attr":"animate"](this.getPlotBox(c));return f}getPlotBox(b){let c=this.xAxis,a=this.yAxis;const d=this.chart;b=d.inverted&& !d.polar&&c&&!1!==this.invertible&&"series"===b;d.inverted&&(c=a,a=this.xAxis);return{translateX:c?c.left:d.plotLeft,translateY:a?a.top:d.plotTop,rotation:b?90:0,rotationOriginX:b?(c.len-a.len)/2:0,rotationOriginY:b?(c.len+a.len)/2:0,scaleX:b?-1:1,scaleY:1}}removeEvents(b){b||Y(this);this.eventsToUnbind.length&&(this.eventsToUnbind.forEach(function(b){b()}),this.eventsToUnbind.length=0)}render(){const b=this;var c=b.chart;const a=b.options,d=m(a.animation),f=b.visible?"inherit":"hidden",e=a.zIndex, l=b.hasRendered;c=c.seriesGroup;let g=b.finishedAnimating?0:d.duration;k(this,"render");b.plotGroup("group","series",f,e,c);b.markerGroup=b.plotGroup("markerGroup","markers",f,e,c);!1!==a.clip&&b.setClip();b.animate&&g&&b.animate(!0);b.drawGraph&&(b.drawGraph(),b.applyZones());b.visible&&b.drawPoints();b.drawDataLabels&&b.drawDataLabels();b.redrawPoints&&b.redrawPoints();b.drawTracker&&a.enableMouseTracking&&b.drawTracker();b.animate&&g&&b.animate();l||(g&&d.defer&&(g+=d.defer),b.animationTimeout= aa(function(){b.afterAnimate()},g||0));b.isDirty=!1;b.hasRendered=!0;k(b,"afterRender")}redraw(){const b=this.isDirty||this.isDirtyData;this.translate();this.render();b&&delete this.kdTree}searchPoint(b,c){const a=this.xAxis,d=this.yAxis,k=this.chart.inverted;return this.searchKDTree({clientX:k?a.len-b.chartY+a.pos:b.chartX-a.pos,plotY:k?d.len-b.chartX+d.pos:b.chartY-d.pos},c,b)}buildKDTree(b){function c(b,d,k){var f=b&&b.length;let e;if(f)return e=a.kdAxisArray[d%k],b.sort(function(b,c){return b[e]- c[e]}),f=Math.floor(f/2),{point:b[f],left:c(b.slice(0,f),d+1,k),right:c(b.slice(f+1),d+1,k)}}this.buildingKdTree=!0;const a=this,d=-1n?"left":"right";w=0>n?"right":"left";c[v]&&(v=d(b,c[v],a+1,g),m=v[l]z;)w--;this.updateParallelArrays(v,"splice",[w,0,0]);this.updateParallelArrays(v,w);h&&v.name&&(h[z]=v.name);n.splice(w,0,b);if(r||this.processedData)this.data.splice(w,0,null),this.processData();"point"===e.legendType&&this.generatePoints();a&&(l[0]&&l[0].remove?l[0].remove(!1):(l.shift(),this.updateParallelArrays(v,"shift"),n.shift()));!1!==f&&k(this,"addPoint",{point:v});this.isDirtyData=this.isDirty=!0;c&&g.redraw(d)}removePoint(b,c,a){const d= this,k=d.data,f=k[b],e=d.points,l=d.chart,g=function(){e&&e.length===k.length&&e.splice(b,1);k.splice(b,1);d.options.data.splice(b,1);d.updateParallelArrays(f||{series:d},"splice",[b,1]);f&&f.destroy();d.isDirty=!0;d.isDirtyData=!0;c&&l.redraw()};p(a,l);c=H(c,!0);f?f.firePointEvent("remove",null,g):g()}remove(b,c,a,d){function f(){e.destroy(d);l.isDirtyLegend=l.isDirtyBox=!0;l.linkSeries(d);H(b,!0)&&l.redraw(c)}const e=this,l=e.chart;!1!==a?k(e,"remove",null,f):f()}update(c,a){c=l(c,this.userOptions); k(this,"update",{options:c});const f=this,e=f.chart;var g=f.userOptions;const h=f.initialType||f.type;var n=e.options.plotOptions;const m=u[h].prototype;var w=f.finishedAnimating&&{animation:!1};const r={};let v,z=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],p=c.type||g.type||e.options.chart.type;const q=!(this.hasDerivedData||p&&p!==this.type||"undefined"!==typeof c.pointStart||"undefined"!==typeof c.pointInterval||"undefined"!==typeof c.relativeXValue||c.joinBy||c.mapData|| f.hasOptionChanged("dataGrouping")||f.hasOptionChanged("pointStart")||f.hasOptionChanged("pointInterval")||f.hasOptionChanged("pointIntervalUnit")||f.hasOptionChanged("keys"));p=p||h;q&&(z.push("data","isDirtyData","points","processedData","processedXData","processedYData","xIncrement","cropped","_hasPointMarkers","_hasPointLabels","clips","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX"),!1!==c.visible&&z.push("area","graph"),f.parallelArrays.forEach(function(b){z.push(b+"Data")}), c.data&&(c.dataSorting&&b(f.options.dataSorting,c.dataSorting),this.setData(c.data,!1)));c=U(g,w,{index:"undefined"===typeof g.index?f.index:g.index,pointStart:H(n&&n.series&&n.series.pointStart,g.pointStart,f.xData[0])},!q&&{data:f.options.data},c);q&&c.data&&(c.data=f.options.data);z=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(z);z.forEach(function(b){z[b]=f[b];delete f[b]});n=!1;if(u[p]){if(n=p!==f.type,f.remove(!1,!1,!1,!0),n)if(Object.setPrototypeOf)Object.setPrototypeOf(f, u[p].prototype);else{w=Object.hasOwnProperty.call(f,"hcEvents")&&f.hcEvents;for(v in m)f[v]=void 0;b(f,u[p].prototype);w?f.hcEvents=w:delete f.hcEvents}}else d(17,!0,e,{missingModuleFor:p});z.forEach(function(b){f[b]=z[b]});f.init(e,c);if(q&&this.points){c=f.options;if(!1===c.visible)r.graphic=1,r.dataLabel=1;else if(!f._hasPointLabels){const {marker:b,dataLabels:a}=c;g=g.marker||{};!b||!1!==b.enabled&&g.symbol===b.symbol&&g.height===b.height&&g.width===b.width||(r.graphic=1);a&&!1===a.enabled&&(r.dataLabel= 1)}for(const b of this.points)b&&b.series&&(b.resolveColor(),Object.keys(r).length&&b.destroyElements(r),!1===c.showInLegend&&b.legendItem&&e.legend.destroyItem(b))}f.initialType=h;e.linkSeries();n&&f.linkedSeries.length&&(f.isDirtyData=!0);k(this,"afterUpdate");H(a,!0)&&e.redraw(q?void 0:!1)}setName(b){this.name=this.options.name=this.userOptions.name=b;this.chart.isDirtyLegend=!0}hasOptionChanged(b){const c=this.options[b],a=this.chart.options.plotOptions,d=this.userOptions[b];return d?c!==d:c!== H(a&&a[this.type]&&a[this.type][b],a&&a.series&&a.series[b],c)}onMouseOver(){const b=this.chart,c=b.hoverSeries;b.pointer.setHoverChartIndex();if(c&&c!==this)c.onMouseOut();this.options.events.mouseOver&&k(this,"mouseOver");this.setState("hover");b.hoverSeries=this}onMouseOut(){const b=this.options,c=this.chart,a=c.tooltip,d=c.hoverPoint;c.hoverSeries=null;if(d)d.onMouseOut();this&&b.events.mouseOut&&k(this,"mouseOut");!a||this.stickyTracking||a.shared&&!this.noSharedTooltip||a.hide();c.series.forEach(function(b){b.setState("", !0)})}setState(b,c){const a=this;var d=a.options;const k=a.graph,f=d.inactiveOtherPoints,e=d.states,l=H(e[b||"normal"]&&e[b||"normal"].animation,a.chart.options.chart.animation);let g=d.lineWidth,h=0,n=d.opacity;b=b||"";if(a.state!==b&&([a.group,a.markerGroup,a.dataLabelsGroup].forEach(function(c){c&&(a.state&&c.removeClass("highcharts-series-"+a.state),b&&c.addClass("highcharts-series-"+b))}),a.state=b,!a.chart.styledMode)){if(e[b]&&!1===e[b].enabled)return;b&&(g=e[b].lineWidth||g+(e[b].lineWidthPlus|| 0),n=H(e[b].opacity,n));if(k&&!k.dashstyle&&P(g))for(d={"stroke-width":g},k.animate(d,l);a["zone-graph-"+h];)a["zone-graph-"+h].animate(d,l),h+=1;f||[a.group,a.markerGroup,a.dataLabelsGroup,a.labelBySeries].forEach(function(b){b&&b.animate({opacity:n},l)})}c&&f&&a.points&&a.setAllPointsToState(b||void 0)}setAllPointsToState(b){this.points.forEach(function(c){c.setState&&c.setState(b)})}setVisible(b,c){const a=this,d=a.chart,f=d.options.chart.ignoreHiddenSeries,e=a.visible,l=(a.visible=b=a.options.visible= a.userOptions.visible="undefined"===typeof b?!e:b)?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach(function(b){if(a[b])a[b][l]()});if(d.hoverSeries===a||(d.hoverPoint&&d.hoverPoint.series)===a)a.onMouseOut();a.legendItem&&d.legend.colorizeItem(a,b);a.isDirty=!0;a.options.stacking&&d.series.forEach(function(b){b.options.stacking&&b.visible&&(b.isDirty=!0)});a.linkedSeries.forEach(function(c){c.setVisible(b,!1)});f&&(d.isDirtyBox=!0);k(a,l);!1!==c&&d.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(b){this.selected= b=this.options.selected="undefined"===typeof b?!this.selected:b;this.checkbox&&(this.checkbox.checked=b);k(this,b?"select":"unselect")}shouldShowTooltip(b,c,a={}){a.series=this;a.visiblePlotOnly=!0;return this.chart.isInsidePlot(b,c,a)}drawLegendSymbol(b,c){var a;null===(a=G[this.options.legendSymbol||"rectangle"])||void 0===a?void 0:a.call(this,b,c)}}Z.defaultOptions=E;Z.types=B.seriesTypes;Z.registerType=B.registerSeriesType;b(Z.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0, cropShoulder:1,directTouch:!1,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:D,requireSorting:!0,sorted:!0});B.series=Z;"";"";return Z});L(a,"Core/Chart/Chart.js",[a["Core/Animation/AnimationUtilities.js"],a["Core/Axis/Axis.js"],a["Core/Defaults.js"],a["Core/Templating.js"],a["Core/Foundation.js"],a["Core/Globals.js"],a["Core/Renderer/RendererRegistry.js"],a["Core/Series/Series.js"],a["Core/Series/SeriesRegistry.js"],a["Core/Renderer/SVG/SVGRenderer.js"],a["Core/Time.js"], a["Core/Utilities.js"],a["Core/Renderer/HTML/AST.js"]],function(a,A,J,K,G,D,E,B,t,q,m,p,n){const {animate:h,animObject:g,setAnimation:e}=a,{defaultOptions:x,defaultTime:u}=J,{numberFormat:M}=K,{registerEventOptions:C}=G,{charts:f,doc:y,marginNames:r,svg:l,win:v}=D,{seriesTypes:d}=t,{addEvent:b,attr:c,createElement:k,css:w,defined:z,diffObjects:F,discardElement:O,erase:P,error:T,extend:U,find:W,fireEvent:H,getStyle:Y,isArray:ea,isNumber:aa,isObject:Z,isString:N,merge:L,objectEach:Q,pick:R,pInt:V,relativeLength:ha, removeEvent:ia,splat:da,syncTimeout:ja,uniqueKey:ba}=p;class S{static chart(b,c,a){return new S(b,c,a)}constructor(b,c,a){this.series=this.renderTo=this.renderer=this.pointer=this.pointCount=this.plotWidth=this.plotTop=this.plotLeft=this.plotHeight=this.plotBox=this.options=this.numberFormatter=this.margin=this.labelCollectors=this.isResizing=this.index=this.eventOptions=this.container=this.colorCounter=this.clipBox=this.chartWidth=this.chartHeight=this.bounds=this.axisOffset=this.axes=void 0;this.sharedClips= {};this.zooming=this.yAxis=this.xAxis=this.userOptions=this.titleOffset=this.time=this.symbolCounter=this.spacingBox=this.spacing=void 0;this.getArgs(b,c,a)}getArgs(b,c,a){N(b)||b.nodeName?(this.renderTo=b,this.init(c,a)):this.init(b,c)}setZoomOptions(){const b=this.options.chart,c=b.zooming;this.zooming=Object.assign(Object.assign({},c),{type:R(b.zoomType,c.type),key:R(b.zoomKey,c.key),pinchType:R(b.pinchType,c.pinchType),singleTouch:R(b.zoomBySingleTouch,c.singleTouch,!1),resetButton:L(c.resetButton, b.resetZoomButton)})}init(b,c){H(this,"init",{args:arguments},function(){const a=L(x,b),d=a.chart;this.userOptions=U({},b);this.margin=[];this.spacing=[];this.bounds={h:{},v:{}};this.labelCollectors=[];this.callback=c;this.isResizing=0;this.options=a;this.axes=[];this.series=[];this.time=b.time&&Object.keys(b.time).length?new m(b.time):D.time;this.numberFormatter=d.numberFormatter||M;this.styledMode=d.styledMode;this.hasCartesianSeries=d.showAxes;this.index=f.length;f.push(this);D.chartCount++;C(this, d);this.xAxis=[];this.yAxis=[];this.pointCount=this.colorCounter=this.symbolCounter=0;this.setZoomOptions();H(this,"afterInit");this.firstRender()})}initSeries(b){var c=this.options.chart;c=b.type||c.type;const a=d[c];a||T(17,!0,this,{missingModuleFor:c});c=new a;"function"===typeof c.init&&c.init(this,b);return c}setSeriesData(){this.getSeriesOrderByLinks().forEach(function(b){b.points||b.data||!b.enabledDataSorting||b.setData(b.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(b, c){return b.linkedSeries.length||c.linkedSeries.length?c.linkedSeries.length-b.linkedSeries.length:0})}orderItems(b,c=0){const a=this[b],d=this.options[b]=da(this.options[b]).slice();b=this.userOptions[b]=this.userOptions[b]?da(this.userOptions[b]).slice():[];this.hasRendered&&(d.splice(c),b.splice(c));if(a)for(let k=c,f=a.length;k=Math.max(g+f,c.pos)&&w<=Math.min(g+f+m.width,c.pos+c.len)||(b.isInsidePlot=!1)}!a.ignoreY&&b.isInsidePlot&& (g=!d&&a.axis&&!a.axis.isXAxis&&a.axis||n&&(d?n.xAxis:n.yAxis)||{pos:e,len:Infinity},a=a.paneCoordinates?g.pos+c:e+c,a>=Math.max(h+e,g.pos)&&a<=Math.min(h+e+m.height,g.pos+g.len)||(b.isInsidePlot=!1));H(this,"afterIsInsidePlot",b);return b.isInsidePlot}redraw(b){H(this,"beforeRedraw");const c=this.hasCartesianSeries?this.axes:this.colorAxis||[],a=this.series,d=this.pointer,k=this.legend,f=this.userOptions.legend,l=this.renderer,g=l.isHidden(),h=[];let n,m,w=this.isDirtyBox,r=this.isDirtyLegend,v; l.rootFontSize=l.boxWrapper.getStyle("font-size");this.setResponsive&&this.setResponsive(!1);e(this.hasRendered?b:!1,this);g&&this.temporaryDisplay();this.layOutTitles(!1);for(b=a.length;b--;)if(v=a[b],v.options.stacking||v.options.centerInCategory)if(m=!0,v.isDirty){n=!0;break}if(n)for(b=a.length;b--;)v=a[b],v.options.stacking&&(v.isDirty=!0);a.forEach(function(b){b.isDirty&&("point"===b.options.legendType?("function"===typeof b.updateTotals&&b.updateTotals(),r=!0):f&&(f.labelFormatter||f.labelFormat)&& (r=!0));b.isDirtyData&&H(b,"updatedData")});r&&k&&k.options.enabled&&(k.render(),this.isDirtyLegend=!1);m&&this.getStacks();c.forEach(function(b){b.updateNames();b.setScale()});this.getMargins();c.forEach(function(b){b.isDirty&&(w=!0)});c.forEach(function(b){const c=b.min+","+b.max;b.extKey!==c&&(b.extKey=c,h.push(function(){H(b,"afterSetExtremes",U(b.eventArgs,b.getExtremes()));delete b.eventArgs}));(w||m)&&b.redraw()});w&&this.drawChartBox();H(this,"predraw");a.forEach(function(b){(w||b.isDirty)&& b.visible&&b.redraw();b.isDirtyData=!1});d&&d.reset(!0);l.draw();H(this,"redraw");H(this,"render");g&&this.temporaryDisplay(!0);h.forEach(function(b){b.call()})}get(b){function c(c){return c.id===b||c.options&&c.options.id===b}const a=this.series;let d=W(this.axes,c)||W(this.series,c);for(let b=0;!d&&b{c.getPointsCollection().forEach(c=>{R(c.selectedStaging,c.selected)&&b.push(c)});return b},[])}getSelectedSeries(){return this.series.filter(function(b){return b.selected})}setTitle(b,c,a){this.applyDescription("title",b);this.applyDescription("subtitle",c);this.applyDescription("caption",void 0);this.layOutTitles(a)}applyDescription(b,c){const a=this,d=this.options[b]=L(this.options[b],c);let k=this[b];k&&c&&(this[b]=k=k.destroy());d&&!k&&(k=this.renderer.text(d.text,0,0,d.useHTML).attr({align:d.align, "class":"highcharts-"+b,zIndex:d.zIndex||4}).add(),k.update=function(c,d){a.applyDescription(b,c);a.layOutTitles(d)},this.styledMode||k.css(U("title"===b?{fontSize:this.options.isStock?"1em":"1.2em"}:{},d.style)),this[b]=k)}layOutTitles(b=!0){const c=[0,0,0],a=this.renderer,d=this.spacingBox;["title","subtitle","caption"].forEach(function(b){const k=this[b],f=this.options[b],e=f.verticalAlign||"top";b="title"===b?"top"===e?-3:0:"top"===e?c[0]+2:0;if(k){k.css({width:(f.width||d.width+(f.widthAdjust|| 0))+"px"});const l=a.fontMetrics(k).b,g=Math.round(k.getBBox(f.useHTML).height);k.align(U({y:"bottom"===e?l:b+l,height:g},f),!1,"spacingBox");f.floating||("top"===e?c[0]=Math.ceil(c[0]+g):"bottom"===e&&(c[2]=Math.ceil(c[2]+g)))}},this);c[0]&&"top"===(this.options.title.verticalAlign||"top")&&(c[0]+=this.options.title.margin);c[2]&&"bottom"===this.options.caption.verticalAlign&&(c[2]+=this.options.caption.margin);const k=!this.titleOffset||this.titleOffset.join(",")!==c.join(",");this.titleOffset= c;H(this,"afterLayOutTitles");!this.isDirtyBox&&k&&(this.isDirtyBox=this.isDirtyLegend=k,this.hasRendered&&b&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:Y(this.renderTo,"width",!0)||0,height:Y(this.renderTo,"height",!0)||0}}getChartSize(){var b=this.options.chart;const c=b.width;b=b.height;const a=this.getContainerBox();this.chartWidth=Math.max(0,c||a.width||600);this.chartHeight=Math.max(0,ha(b,this.chartWidth)||(1{var a;(null===(a=c.options)||void 0===a?0:a.chart.reflow)&&c.hasLoaded&&c.reflow(b)};"function"===typeof ResizeObserver?(new ResizeObserver(a)).observe(c.renderTo):(a=b(v,"resize",a),b(this,"destroy", a))}setSize(b,c,a){const d=this,k=d.renderer;d.isResizing+=1;e(a,d);a=k.globalAnimation;d.oldChartHeight=d.chartHeight;d.oldChartWidth=d.chartWidth;"undefined"!==typeof b&&(d.options.chart.width=b);"undefined"!==typeof c&&(d.options.chart.height=c);d.getChartSize();d.styledMode||(a?h:w)(d.container,{width:d.chartWidth+"px",height:d.chartHeight+"px"},a);d.setChartSize(!0);k.setSize(d.chartWidth,d.chartHeight,a);d.axes.forEach(function(b){b.isDirty=!0;b.setScale()});d.isDirtyLegend=!0;d.isDirtyBox= !0;d.layOutTitles();d.getMargins();d.redraw(a);d.oldChartHeight=null;H(d,"resize");ja(function(){d&&H(d,"endResize",null,function(){--d.isResizing})},g(a).duration)}setChartSize(b){var c=this.inverted;const a=this.renderer;var d=this.chartWidth,k=this.chartHeight;const f=this.options.chart,e=this.spacing,l=this.clipOffset;let g,h,n,m;this.plotLeft=g=Math.round(this.plotLeft);this.plotTop=h=Math.round(this.plotTop);this.plotWidth=n=Math.max(0,Math.round(d-g-this.marginRight));this.plotHeight=m=Math.max(0, Math.round(k-h-this.marginBottom));this.plotSizeX=c?m:n;this.plotSizeY=c?n:m;this.plotBorderWidth=f.plotBorderWidth||0;this.spacingBox=a.spacingBox={x:e[3],y:e[0],width:d-e[3]-e[1],height:k-e[0]-e[2]};this.plotBox=a.plotBox={x:g,y:h,width:n,height:m};c=2*Math.floor(this.plotBorderWidth/2);d=Math.ceil(Math.max(c,l[3])/2);k=Math.ceil(Math.max(c,l[0])/2);this.clipBox={x:d,y:k,width:Math.floor(this.plotSizeX-Math.max(c,l[1])/2-d),height:Math.max(0,Math.floor(this.plotSizeY-Math.max(c,l[2])/2-k))};b|| (this.axes.forEach(function(b){b.setAxisSize();b.setAxisTranslation()}),a.alignElements());H(this,"afterSetChartSize",{skipAxes:b})}resetMargins(){H(this,"resetMargins");const b=this,c=b.options.chart;["margin","spacing"].forEach(function(a){const d=c[a],k=Z(d)?d:[d,d,d,d];["Top","Right","Bottom","Left"].forEach(function(d,f){b[a][f]=R(c[a+d],k[f])})});r.forEach(function(c,a){b[c]=R(b.margin[a],b.spacing[a])});b.axisOffset=[0,0,0,0];b.clipOffset=[0,0,0,0]}drawChartBox(){const b=this.options.chart, c=this.renderer,a=this.chartWidth,d=this.chartHeight,k=this.styledMode,f=this.plotBGImage;var e=b.backgroundColor;const l=b.plotBackgroundColor,g=b.plotBackgroundImage,h=this.plotLeft,n=this.plotTop,m=this.plotWidth,w=this.plotHeight,r=this.plotBox,v=this.clipRect,z=this.clipBox;let p=this.chartBackground,q=this.plotBackground,F=this.plotBorder,y,x,t="animate";p||(this.chartBackground=p=c.rect().addClass("highcharts-background").add(),t="attr");if(k)y=x=p.strokeWidth();else{y=b.borderWidth||0;x=y+ (b.shadow?8:0);e={fill:e||"none"};if(y||p["stroke-width"])e.stroke=b.borderColor,e["stroke-width"]=y;p.attr(e).shadow(b.shadow)}p[t]({x:x/2,y:x/2,width:a-x-y%2,height:d-x-y%2,r:b.borderRadius});t="animate";q||(t="attr",this.plotBackground=q=c.rect().addClass("highcharts-plot-background").add());q[t](r);k||(q.attr({fill:l||"none"}).shadow(b.plotShadow),g&&(f?(g!==f.attr("href")&&f.attr("href",g),f.animate(r)):this.plotBGImage=c.image(g,h,n,m,w).add()));v?v.animate({width:z.width,height:z.height}): this.clipRect=c.clipRect(z);t="animate";F||(t="attr",this.plotBorder=F=c.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add());k||F.attr({stroke:b.plotBorderColor,"stroke-width":b.plotBorderWidth||0,fill:"none"});F[t](F.crisp({x:h,y:n,width:m,height:w},-F.strokeWidth()));this.isDirtyBox=!1;H(this,"afterDrawChartBox")}propFromSeries(){const b=this,c=b.options.chart,a=b.options.series;let k,f,e;["inverted","angular","polar"].forEach(function(l){f=d[c.type];e=c[l]||f&&f.prototype[l];for(k= a&&a.length;!e&&k--;)(f=d[a[k].type])&&f.prototype[l]&&(e=!0);b[l]=e})}linkSeries(b){const c=this,a=c.series;a.forEach(function(b){b.linkedSeries.length=0});a.forEach(function(b){let a=b.options.linkedTo;N(a)&&(a=":previous"===a?c.series[b.index-1]:c.get(a))&&a.linkedParent!==b&&(a.linkedSeries.push(b),b.linkedParent=a,a.enabledDataSorting&&b.setDataSortingOptions(),b.visible=R(b.options.visible,a.options.visible,b.visible))});H(this,"afterLinkSeries",{isUpdating:b})}renderSeries(){this.series.forEach(function(b){b.translate(); b.render()})}render(){const b=this.axes,c=this.colorAxis,a=this.renderer,d=function(b){b.forEach(function(b){b.visible&&b.render()})};let k=0;this.setTitle();H(this,"beforeMargins");this.getStacks&&this.getStacks();this.getMargins(!0);this.setChartSize();const f=this.plotWidth;b.some(function(b){if(b.horiz&&b.visible&&b.options.labels.enabled&&b.series.length)return k=21,!0});const e=this.plotHeight=Math.max(this.plotHeight-k,0);b.forEach(function(b){b.setScale()});this.getAxisMargins();const l=1.1< f/this.plotWidth,g=1.05c.pointCount))}pan(b,c){const a=this,d=a.hoverPoints;c="object"===typeof c?c:{enabled:c,type:"x"};const k=a.options.chart;k&&k.panning&&(k.panning=c);const f=c.type;let e;H(this,"pan",{originalEvent:b},function(){d&&d.forEach(function(b){b.setState()});let c=a.xAxis;"xy"===f?c=c.concat(a.yAxis):"y"===f&&(c=a.yAxis);const k={};c.forEach(function(c){if(c.options.panningEnabled&& !c.options.isInternal){var d=c.horiz,l=b[d?"chartX":"chartY"];d=d?"mouseDownX":"mouseDownY";var g=a[d],h=c.minPointOffset||0,n=c.reversed&&!a.inverted||!c.reversed&&a.inverted?-1:1,m=c.getExtremes(),w=c.toValue(g-l,!0)+h*n,r=c.toValue(g+c.len-l,!0)-(h*n||c.isXAxis&&c.pointRangePadding||0),v=r=n&&w<=r&&(c.setExtremes(g,w,!1,!1,{trigger:"pan"}),!a.resetZoomButton&&g!==n&&w!==r&&f.match("y")&&(a.showResetZoom(),c.displayBtn=!1),e=!0),k[d]=l)}});Q(k,(b,c)=>{a[c]=b});e&&a.redraw(!1);w(a.container,{cursor:"move"})})}}U(S.prototype,{callbacks:[],collectionsWithInit:{xAxis:[S.prototype.addAxis,[!0]],yAxis:[S.prototype.addAxis,[!1]],series:[S.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:"backgroundColor borderColor borderWidth borderRadius plotBackgroundColor plotBackgroundImage plotBorderColor plotBorderWidth plotShadow shadow".split(" "), propsRequireReflow:"margin marginTop marginRight marginBottom marginLeft spacing spacingTop spacingRight spacingBottom spacingLeft".split(" "),propsRequireUpdateSeries:"chart.inverted chart.polar chart.ignoreHiddenSeries chart.type colors plotOptions time tooltip".split(" ")});"";return S});L(a,"Extensions/ScrollablePlotArea.js",[a["Core/Animation/AnimationUtilities.js"],a["Core/Axis/Axis.js"],a["Core/Chart/Chart.js"],a["Core/Series/Series.js"],a["Core/Renderer/RendererRegistry.js"],a["Core/Utilities.js"]], function(a,A,J,K,G,D){const {stop:u}=a,{addEvent:B,createElement:t,defined:q,merge:m,pick:p}=D;B(J,"afterSetChartSize",function(a){var h=this.options.chart.scrollablePlotArea,g=h&&h.minWidth;h=h&&h.minHeight;let e;if(!this.renderer.forExport){if(g){if(this.scrollablePixelsX=g=Math.max(0,g-this.chartWidth))this.scrollablePlotBox=this.renderer.scrollablePlotBox=m(this.plotBox),this.plotBox.width=this.plotWidth+=g,this.inverted?this.clipBox.height+=g:this.clipBox.width+=g,e={1:{name:"right",value:g}}}else h&& (this.scrollablePixelsY=g=Math.max(0,h-this.chartHeight),q(g)&&(this.scrollablePlotBox=this.renderer.scrollablePlotBox=m(this.plotBox),this.plotBox.height=this.plotHeight+=g,this.inverted?this.clipBox.width+=g:this.clipBox.height+=g,e={2:{name:"bottom",value:g}}));e&&!a.skipAxes&&this.axes.forEach(function(a){e[a.side]?a.getPlotLinePath=function(){let g=e[a.side].name,h=this[g],n;this[g]=h-e[a.side].value;n=A.prototype.getPlotLinePath.apply(this,arguments);this[g]=h;return n}:(a.setAxisSize(),a.setAxisTranslation())})}}); B(J,"render",function(){this.scrollablePixelsX||this.scrollablePixelsY?(this.setUpScrolling&&this.setUpScrolling(),this.applyFixed()):this.fixedDiv&&this.applyFixed()});J.prototype.setUpScrolling=function(){const a={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};this.scrollablePixelsX&&(a.overflowX="auto");this.scrollablePixelsY&&(a.overflowY="auto");this.scrollingParent=t("div",{className:"highcharts-scrolling-parent"},{position:"relative"},this.renderTo);this.scrollingContainer= t("div",{className:"highcharts-scrolling"},a,this.scrollingParent);let h;B(this.scrollingContainer,"scroll",()=>{this.pointer&&(delete this.pointer.chartPosition,this.hoverPoint&&(h=this.hoverPoint),this.pointer.runPointActions(void 0,h,!0))});this.innerContainer=t("div",{className:"highcharts-inner-container"},null,this.scrollingContainer);this.innerContainer.appendChild(this.container);this.setUpScrolling=null};J.prototype.moveFixedElements=function(){let a=this.container,h=this.fixedRenderer,g= ".highcharts-breadcrumbs-group .highcharts-contextbutton .highcharts-credits .highcharts-legend .highcharts-legend-checkbox .highcharts-navigator-series .highcharts-navigator-xaxis .highcharts-navigator-yaxis .highcharts-navigator .highcharts-reset-zoom .highcharts-drillup-button .highcharts-scrollbar .highcharts-subtitle .highcharts-title".split(" "),e;this.scrollablePixelsX&&!this.inverted?e=".highcharts-yaxis":this.scrollablePixelsX&&this.inverted?e=".highcharts-xaxis":this.scrollablePixelsY&& !this.inverted?e=".highcharts-xaxis":this.scrollablePixelsY&&this.inverted&&(e=".highcharts-yaxis");e&&g.push(`${e}:not(.highcharts-radial-axis)`,`${e}-labels:not(.highcharts-radial-axis-labels)`);g.forEach(function(e){[].forEach.call(a.querySelectorAll(e),function(a){(a.namespaceURI===h.SVG_NS?h.box:h.box.parentNode).appendChild(a);a.style.pointerEvents="auto"})})};J.prototype.applyFixed=function(){var a=!this.fixedDiv,h=this.options.chart,g=h.scrollablePlotArea,e=G.getRendererType();a?(this.fixedDiv= t("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(h.style&&h.style.zIndex||0)+2,top:0},null,!0),this.scrollingContainer&&this.scrollingContainer.parentNode.insertBefore(this.fixedDiv,this.scrollingContainer),this.renderTo.style.overflow="visible",this.fixedRenderer=h=new e(this.fixedDiv,this.chartWidth,this.chartHeight,this.options.chart.style),this.scrollableMask=h.path().attr({fill:this.options.chart.backgroundColor||"#fff","fill-opacity":p(g.opacity, .85),zIndex:-1}).addClass("highcharts-scrollable-mask").add(),B(this,"afterShowResetZoom",this.moveFixedElements),B(this,"afterApplyDrilldown",this.moveFixedElements),B(this,"afterLayOutTitles",this.moveFixedElements)):this.fixedRenderer.setSize(this.chartWidth,this.chartHeight);if(this.scrollableDirty||a)this.scrollableDirty=!1,this.moveFixedElements();h=this.chartWidth+(this.scrollablePixelsX||0);e=this.chartHeight+(this.scrollablePixelsY||0);u(this.container);this.container.style.width=h+"px"; this.container.style.height=e+"px";this.renderer.boxWrapper.attr({width:h,height:e,viewBox:[0,0,h,e].join(" ")});this.chartBackground.attr({width:h,height:e});this.scrollingContainer.style.height=this.chartHeight+"px";a&&(g.scrollPositionX&&(this.scrollingContainer.scrollLeft=this.scrollablePixelsX*g.scrollPositionX),g.scrollPositionY&&(this.scrollingContainer.scrollTop=this.scrollablePixelsY*g.scrollPositionY));e=this.axisOffset;a=this.plotTop-e[0]-1;g=this.plotLeft-e[3]-1;h=this.plotTop+this.plotHeight+ e[2]+1;e=this.plotLeft+this.plotWidth+e[1]+1;let m=this.plotLeft+this.plotWidth-(this.scrollablePixelsX||0),q=this.plotTop+this.plotHeight-(this.scrollablePixelsY||0);a=this.scrollablePixelsX?[["M",0,a],["L",this.plotLeft-1,a],["L",this.plotLeft-1,h],["L",0,h],["Z"],["M",m,a],["L",this.chartWidth,a],["L",this.chartWidth,h],["L",m,h],["Z"]]:this.scrollablePixelsY?[["M",g,0],["L",g,this.plotTop-1],["L",e,this.plotTop-1],["L",e,0],["Z"],["M",g,q],["L",g,this.chartHeight],["L",e,this.chartHeight],["L", e,q],["Z"]]:[["M",0,0]];"adjustHeight"!==this.redrawTrigger&&this.scrollableMask.attr({d:a})};B(A,"afterInit",function(){this.chart.scrollableDirty=!0});B(K,"show",function(){this.chart.scrollableDirty=!0});""});L(a,"Core/Axis/Stacking/StackItem.js",[a["Core/Templating.js"],a["Core/Series/SeriesRegistry.js"],a["Core/Utilities.js"]],function(a,A,J){const {format:u}=a,{series:G}=A,{destroyObjectProperties:D,fireEvent:E,isNumber:B,pick:t}=J;class q{constructor(a,p,n,h,g){const e=a.chart.inverted,m=a.reversed; this.axis=a;a=this.isNegative=!!n!==!!m;this.options=p=p||{};this.x=h;this.cumulative=this.total=null;this.points={};this.hasValidPoints=!1;this.stack=g;this.rightCliff=this.leftCliff=0;this.alignOptions={align:p.align||(e?a?"left":"right":"center"),verticalAlign:p.verticalAlign||(e?"middle":a?"bottom":"top"),y:p.y,x:p.x};this.textAlign=p.textAlign||(e?a?"right":"left":"center")}destroy(){D(this,this.axis)}render(a){const m=this.axis.chart,n=this.options;var h=n.format;h=h?u(h,this,m):n.formatter.call(this); this.label?this.label.attr({text:h,visibility:"hidden"}):(this.label=m.renderer.label(h,null,void 0,n.shape,void 0,void 0,n.useHTML,!1,"stack-labels"),h={r:n.borderRadius||0,text:h,padding:t(n.padding,5),visibility:"hidden"},m.styledMode||(h.fill=n.backgroundColor,h.stroke=n.borderColor,h["stroke-width"]=n.borderWidth,this.label.css(n.style||{})),this.label.attr(h),this.label.added||this.label.add(a));this.label.labelrank=m.plotSizeY;E(this,"afterRender")}setOffset(a,p,n,h,g,e){const {alignOptions:m, axis:q,label:u,options:C,textAlign:f}=this,y=q.chart;n=this.getStackBox({xOffset:a,width:p,boxBottom:n,boxTop:h,defaultX:g,xAxis:e});var {verticalAlign:r}=m;if(u&&n){h=u.getBBox();g=u.padding;e="justify"===t(C.overflow,"justify");m.x=C.x||0;m.y=C.y||0;const {x:a,y:v}=this.adjustStackPosition({labelBox:h,verticalAlign:r,textAlign:f});n.x-=a;n.y-=v;u.align(m,!1,n);(r=y.isInsidePlot(u.alignAttr.x+m.x+a,u.alignAttr.y+m.y+v))||(e=!1);e&&G.prototype.justifyDataLabel.call(q,u,m,u.alignAttr,h,n);u.attr({x:u.alignAttr.x, y:u.alignAttr.y,rotation:C.rotation,rotationOriginX:h.width/2,rotationOriginY:h.height/2});t(!e&&C.crop,!0)&&(r=B(u.x)&&B(u.y)&&y.isInsidePlot(u.x-g+u.width,u.y)&&y.isInsidePlot(u.x+g,u.y));u[r?"show":"hide"]()}E(this,"afterSetOffset",{xOffset:a,width:p})}adjustStackPosition({labelBox:a,verticalAlign:p,textAlign:n}){const h={bottom:0,middle:1,top:2,right:1,center:0,left:-1};return{x:a.width/2+a.width/2*h[n],y:a.height/2*h[p]}}getStackBox(a){var m=this.axis;const n=m.chart,{boxTop:h,defaultX:g,xOffset:e, width:q,boxBottom:u}=a;var M=m.stacking.usePercentage?100:t(h,this.total,0);M=m.toPixels(M);a=a.xAxis||n.xAxis[0];const C=t(g,a.translate(this.x))+e;m=m.toPixels(u||B(m.min)&&m.logarithmic&&m.logarithmic.lin2log(m.min)||0);m=Math.abs(M-m);const f=this.isNegative;return n.inverted?{x:(f?M:M-m)-n.plotLeft,y:a.height-C-q,width:m,height:q}:{x:C+a.transB-n.plotLeft,y:(f?M-m:M)-n.plotTop,width:q,height:m}}}"";return q});L(a,"Core/Axis/Stacking/StackingAxis.js",[a["Core/Animation/AnimationUtilities.js"], a["Core/Axis/Axis.js"],a["Core/Series/SeriesRegistry.js"],a["Core/Axis/Stacking/StackItem.js"],a["Core/Utilities.js"]],function(a,A,J,K,G){function u(){const b=this,c=b.inverted;b.yAxis.forEach(b=>{b.stacking&&b.stacking.stacks&&b.hasVisibleSeries&&(b.stacking.oldStacks=b.stacking.stacks)});b.series.forEach(a=>{const d=a.xAxis&&a.xAxis.options||{};!a.options.stacking||!0!==a.visible&&!1!==b.options.chart.ignoreHiddenSeries||(a.stackKey=[a.type,l(a.options.stack,""),c?d.top:d.left,c?d.height:d.width].join())})} function E(){const b=this.stacking;if(b){var c=b.stacks;r(c,function(b,a){M(b);c[a]=null});b&&b.stackTotalGroup&&b.stackTotalGroup.destroy()}}function B(){"yAxis"!==this.coll||this.stacking||(this.stacking=new v(this))}function t(b,c,a,d){!I(b)||b.x!==c||d&&b.stackKey!==d?b={x:c,index:0,key:d,stackKey:d}:b.index++;b.key=[a,c,b.index].join();return b}function q(){const b=this,c=b.stackKey,a=b.yAxis.stacking.stacks,d=b.processedXData,f=b[b.options.stacking+"Stacker"];let e;f&&[c,"-"+c].forEach(c=>{let k= d.length;let l;for(;k--;){var g=d[k];e=b.getStackIndicator(e,g,b.index,c);(l=(g=a[c]&&a[c][g])&&g.points[e.key])&&f.call(b,l,g,k)}})}function m(b,c,a){c=c.total?100/c.total:0;b[0]=x(b[0]*c);b[1]=x(b[1]*c);this.stackedYData[a]=b[1]}function p(){const b=this.yAxis.stacking;this.options.centerInCategory&&(this.is("column")||this.is("columnrange"))&&!this.options.stacking&&1{"group"===a.slice(-5)&&(r(c,b=>b.destroy()), delete b.stacks[a])})}function n(b){var c=this.chart;const a=b||this.options.stacking;if(a&&(!0===this.visible||!1===c.options.chart.ignoreHiddenSeries)){var d=this.processedXData,e=this.processedYData,g=[],h=e.length,n=this.options,m=n.threshold,r=l(n.startFromThreshold&&m,0);n=n.stack;b=b?`${this.type},${a}`:this.stackKey;var v="-"+b,p=this.negStacks;c="group"===a?c.yAxis[0]:this.yAxis;var q=c.stacking.stacks,y=c.stacking.oldStacks,t,u;c.stacking.stacksTouched+=1;for(u=0;u{r(b,(c,a)=>{y(c.touched)&&c.touchedn&&u.shadow));g&&(g.startX=t.xMap,g.isArea=t.isArea)})}getGraphPath(a,B,t){const q=this,m=q.options,p=[],n=[];let h,g=m.step;a=a||q.points;const e=a.reversed;e&&a.reverse();(g={right:1,center:2}[g]||g&&3)&&e&&(g= 4-g);a=this.getValidPoints(a,!1,!(m.connectNulls&&!B&&!t));a.forEach(function(e,I){const x=e.plotX,C=e.plotY,f=a[I-1],y=e.isNull||"number"!==typeof C;(e.leftCliff||f&&f.rightCliff)&&!t&&(h=!0);y&&!u(B)&&0a.visible);n.forEach(function(a,l){let r=0,d,b;if(q[a]&&!q[a].isNull)p.push(q[a]),[-1,1].forEach(function(c){const k=1===c?"rightNull": "leftNull",g=e[n[l+c]];let h=0;if(g){let c=f;for(;0<=c&&ca&&h>m?(h=Math.max(a,m),g=2*m-h):ht&&g>m?(g=Math.max(t,m),h=2*m-g):g=Math.abs(f)&&.5{if("number"===typeof l.x){const f=a[l.x.toString()];f&&(a=f.points[this.index],d?(a&&(c=k),f.hasValidPoints&&(b?k++:k--)):e(a)&&(a=Object.keys(f.points).filter(b=>!b.match(",")&& f.points[b]&&1a-b),c=a.indexOf(this.index),k=a.length))}});a=(l.plotX||0)+((k-1)*g.paddedWidth+f)/2-f-c*g.paddedWidth}return a}translate(){const a=this,f=a.chart,e=a.options;var h=a.dense=2>a.closestPointRange*a.xAxis.transA;h=a.borderWidth=M(e.borderWidth,h?0:1);const d=a.xAxis,b=a.yAxis,c=e.threshold,k=M(e.minPointLength,5),m=a.getColumnMetrics(),z=m.width,q=a.pointXOffset=m.offset,t=a.dataMin,u=a.dataMax;let I=a.barW=Math.max(z,1+2*h),C=a.translatedThreshold= b.getThreshold(c);f.inverted&&(C-=.5);e.pointPadding&&(I=Math.ceil(I));G.prototype.translate.apply(a);a.points.forEach(function(l){const g=M(l.yBottom,C);var h=999+Math.abs(g),w=l.plotX||0;h=p(l.plotY,-h,b.len+h);let r=Math.min(h,g),v=Math.max(h,g)-r,F=z,y=w+q,O=I;k&&Math.abs(v)k?g-k:C-(w?k:0));n(l.options.pointWidth)&&(F=O=Math.ceil(l.options.pointWidth), y-=Math.round((F-z)/2));e.centerInCategory&&(y=a.adjustForMissingColumns(y,F,l,m));l.barX=y;l.pointWidth=F;l.tooltipPos=f.inverted?[p(b.len+b.pos-f.plotLeft-h,b.pos-f.plotLeft,b.len+b.pos-f.plotLeft),d.len+d.pos-f.plotTop-y-O/2,v]:[d.left-f.plotLeft+y+O/2,p(h+b.pos-f.plotTop,b.pos-f.plotTop,b.len+b.pos-f.plotTop),v];l.shapeType=a.pointClass.prototype.shapeType||"roundedRect";l.shapeArgs=a.crispCol(y,l.isNull?C:r,O,l.isNull?0:v)});g(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass": "removeClass"]("highcharts-dense-data")}pointAttribs(a,f){const e=this.options;var g=this.pointAttrToOptions||{},d=g.stroke||"borderColor";const b=g["stroke-width"]||"borderWidth";let c,k=a&&a.color||this.color,h=a&&a[d]||e[d]||k;g=a&&a.options.dashStyle||e.dashStyle;let n=a&&a[b]||e[b]||this[b]||0,m=M(a&&a.opacity,e.opacity,1);a&&this.zones.length&&(c=a.getZone(),k=a.options.color||c&&(c.color||a.nonZonedColor)||this.color,c&&(h=c.borderColor||h,g=c.dashStyle||g,n=c.borderWidth||n));f&&a&&(a=I(e.states[f], a.options.states&&a.options.states[f]||{}),f=a.brightness,k=a.color||"undefined"!==typeof f&&t(k).brighten(a.brightness).get()||k,h=a[d]||h,n=a[b]||n,g=a.dashStyle||g,m=M(a.opacity,m));d={fill:k,stroke:h,"stroke-width":n,opacity:m};g&&(d.dashstyle=g);return d}drawPoints(a=this.points){const f=this,e=this.chart,g=f.options,d=e.renderer,b=g.animationLimit||250;let c;a.forEach(function(a){let k=a.graphic,l=!!k,h=k&&e.pointCount"===b&&a>c||"<"===b&&a="===b&&a>=c||"<="===b&&a<=c||"=="===b&&a==c||"==="===b&&a===c?!0:!1):!0}function M(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex|| 6)}function C(a){const b=this.hasRendered||0,c=this.initDataLabelsGroup().attr({opacity:+b});!b&&c&&(this.visible&&c.show(),this.options.animation?c.animate({opacity:1},a):c.attr({opacity:1}));return c}function f(a=this.points){var b,c;const d=this,f=d.chart,e=d.options,l=f.renderer,{backgroundColor:m,plotBackgroundColor:v}=f.options.chart,x=f.options.plotOptions,y=l.getContrast(q(v)&&v||q(m)&&m||"#000000");let I=e.dataLabels,C,M;var A=h(I)[0];const E=A.animation;A=A.defer?u(f,E,d):{defer:0,duration:0}; I=r(r(null===(b=null===x||void 0===x?void 0:x.series)||void 0===b?void 0:b.dataLabels,null===(c=null===x||void 0===x?void 0:x[d.type])||void 0===c?void 0:c.dataLabels),I);B(this,"drawDataLabels");if(t(I)||I.enabled||d._hasPointLabels)M=this.initDataLabels(A),a.forEach(b=>{var a;const c=b.dataLabels||[];C=h(r(I,b.dlOptions||(null===(a=b.options)||void 0===a?void 0:a.dataLabels)));C.forEach((a,k)=>{var h,m=a.enabled&&(!b.isNull||b.dataLabelOnNull)&&g(b,a);const w=b.connectors?b.connectors[k]:b.connector, r=a.style||{};let v={},z=c[k],x=!z;const F=n(a.distance,b.labelDistance);if(m){var t=n(a[b.formatPrefix+"Format"],a.format);var u=b.getLabelConfig();u=D(t)?G(t,u,f):(a[b.formatPrefix+"Formatter"]||a.formatter).call(u,a);t=a.rotation;f.styledMode||(r.color=n(a.color,r.color,q(d.color)?d.color:void 0,"#000000"),"contrast"===r.color?(b.contrastColor=l.getContrast(b.color||d.color),r.color=!D(F)&&a.inside||0>(F||0)||e.stacking?b.contrastColor:y):delete b.contrastColor,e.cursor&&(r.cursor=e.cursor));v= {r:a.borderRadius||0,rotation:t,padding:a.padding,zIndex:1};if(!f.styledMode){const {backgroundColor:c,borderColor:d}=a;v.fill="auto"===c?b.color:c;v.stroke="auto"===d?b.color:d;v["stroke-width"]=a.borderWidth}p(v,(b,a)=>{"undefined"===typeof b&&delete v[a]})}!z||m&&D(u)&&!!z.div===!!a.useHTML&&(z.rotation&&a.rotation||z.rotation===a.rotation)||(z=void 0,x=!0,w&&b.connector&&(b.connector=b.connector.destroy(),b.connectors&&(1===b.connectors.length?delete b.connectors:delete b.connectors[k])));m&& D(u)&&(z?v.text=u:(z=t?l.text(u,0,0,a.useHTML).addClass("highcharts-data-label"):l.label(u,0,0,a.shape,void 0,void 0,a.useHTML,void 0,"data-label"))&&z.addClass(" highcharts-data-label-color-"+b.colorIndex+" "+(a.className||"")+(a.useHTML?" highcharts-tracker":"")),z&&(z.options=a,z.attr(v),f.styledMode||z.css(r).shadow(a.shadow),(m=a[b.formatPrefix+"TextPath"]||a.textPath)&&!a.useHTML&&(z.setTextPath((null===(h=b.getDataLabelPath)||void 0===h?void 0:h.call(b,z))||b.graphic,m),b.dataLabelPath&&!m.enabled&& (b.dataLabelPath=b.dataLabelPath.destroy())),z.added||z.add(M),d.alignDataLabel(b,z,a,void 0,x),z.isActive=!0,c[k]&&c[k]!==z&&c[k].destroy(),c[k]=z))});for(a=c.length;a--;)c[a].isActive?c[a].isActive=!1:(c[a].destroy(),c.splice(a,1));b.dataLabel=c[0];b.dataLabels=c});B(this,"afterDrawDataLabels")}function y(a,b,c,f,e,l){const d=this.chart,k=b.align,g=b.verticalAlign,h=a.box?0:a.padding||0;let {x:n=0,y:m=0}=b,w,r;w=(c.x||0)+h;0>w&&("right"===k&&0<=n?(b.align="left",b.inside=!0):n-=w,r=!0);w=(c.x|| 0)+f.width-h;w>d.plotWidth&&("left"===k&&0>=n?(b.align="right",b.inside=!0):n+=d.plotWidth-w,r=!0);w=c.y+h;0>w&&("bottom"===g&&0<=m?(b.verticalAlign="top",b.inside=!0):m-=w,r=!0);w=(c.y||0)+f.height-h;w>d.plotHeight&&("top"===g&&0>=m?(b.verticalAlign="bottom",b.inside=!0):m+=d.plotHeight-w,r=!0);r&&(b.x=n,b.y=m,a.placed=!l,a.align(b,void 0,e));return r}function r(a,b){let c=[],d;if(t(a)&&!t(b))c=a.map(function(a){return m(a,b)});else if(t(b)&&!t(a))c=b.map(function(b){return m(a,b)});else if(!t(a)&& !t(b))c=m(a,b);else if(t(a)&&t(b))for(d=Math.max(a.length,b.length);d--;)c[d]=m(a[d],b[d]);return c}function l(a,b,c,f,e){const d=this.chart,k=d.inverted,l=this.xAxis,g=l.reversed,h=k?b.height/2:b.width/2;a=(a=a.pointWidth)?a/2:0;b.startXPos=k?e.x:g?-h-a:l.width-h+a;b.startYPos=k?g?this.yAxis.height-h+a:-h-a:e.y;f?"hidden"===b.visibility&&(b.show(),b.attr({opacity:0}).animate({opacity:1})):b.attr({opacity:1}).animate({opacity:0},void 0,b.hide);d.hasRendered&&(c&&b.attr({x:b.startXPos,y:b.startYPos}), b.placed=!0)}const v=[];a.compose=function(a){J.pushUnique(v,a)&&(a=a.prototype,a.initDataLabelsGroup=M,a.initDataLabels=C,a.alignDataLabel=e,a.drawDataLabels=f,a.justifyDataLabel=y,a.setDataLabelStartPos=l)}})(g||(g={}));"";return g});L(a,"Series/Column/ColumnDataLabel.js",[a["Core/Series/DataLabel.js"],a["Core/Series/SeriesRegistry.js"],a["Core/Utilities.js"]],function(a,A,J){const {series:u}=A,{merge:G,pick:D}=J;var E;(function(B){function t(a,p,n,h,g){let e=this.chart.inverted;var m=a.series; let q=(m.xAxis?m.xAxis.len:this.chart.plotSizeX)||0;m=(m.yAxis?m.yAxis.len:this.chart.plotSizeY)||0;var t=a.dlBox||a.shapeArgs;let C=D(a.below,a.plotY>D(this.translatedThreshold,m)),f=D(n.inside,!!this.options.stacking);t&&(h=G(t),0>h.y&&(h.height+=h.y,h.y=0),t=h.y+h.height-m,0\u25cf {series.name}
',pointFormat:"x: {point.x}
y: {point.y}
"}}});L(a,"Series/Scatter/ScatterSeries.js", [a["Series/Scatter/ScatterSeriesDefaults.js"],a["Core/Series/SeriesRegistry.js"],a["Core/Utilities.js"]],function(a,A,J){const {column:u,line:G}=A.seriesTypes,{addEvent:D,extend:E,merge:B}=J;class t extends G{constructor(){super(...arguments);this.points=this.options=this.data=void 0}applyJitter(){const a=this,m=this.options.jitter,p=this.points.length;m&&this.points.forEach(function(n,h){["x","y"].forEach(function(g,e){let q="plot"+g.toUpperCase(),t,u;if(m[g]&&!n.isNull){var C=a[g+"Axis"];u=m[g]* C.transA;C&&!C.isLog&&(t=Math.max(0,n[q]-u),C=Math.min(C.len,n[q]+u),e=1E4*Math.sin(h+e*p),e-=Math.floor(e),n[q]=t+(C-t)*e,"x"===g&&(n.clientX=n.plotX))}})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}t.defaultOptions=B(G.defaultOptions,a);E(t.prototype,{drawTracker:u.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"],takeOrdinalPosition:!1});D(t,"afterTranslate",function(){this.applyJitter()}); A.registerSeriesType("scatter",t);return t});L(a,"Series/CenteredUtilities.js",[a["Core/Globals.js"],a["Core/Series/Series.js"],a["Core/Utilities.js"]],function(a,A,J){const {deg2rad:u}=a,{fireEvent:G,isNumber:D,pick:E,relativeLength:B}=J;var t;(function(a){a.getCenter=function(){var a=this.options,p=this.chart;const n=2*(a.slicedOffset||0),h=p.plotWidth-2*n,g=p.plotHeight-2*n;var e=a.center;const q=Math.min(h,g),t=a.thickness;var u=a.size;let C=a.innerSize||0;"string"===typeof u&&(u=parseFloat(u)); "string"===typeof C&&(C=parseFloat(C));a=[E(e[0],"50%"),E(e[1],"50%"),E(u&&0>u?void 0:a.size,"100%"),E(C&&0>C?void 0:a.innerSize||0,"0%")];!p.angular||this instanceof A||(a[3]=0);for(e=0;4>e;++e)u=a[e],p=2>e||2===e&&/%$/.test(u),a[e]=B(u,[h,g,q,a[2]][e])+(p?n:0);a[3]>a[2]&&(a[3]=a[2]);D(t)&&2*ta&&360>p-a?p:a+360;return{start:u*(a+-90),end:u*(p+-90)}}})(t||(t={})); "";return t});L(a,"Series/Pie/PiePoint.js",[a["Core/Animation/AnimationUtilities.js"],a["Core/Series/Point.js"],a["Core/Utilities.js"]],function(a,A,J){const {setAnimation:u}=a,{addEvent:G,defined:D,extend:E,isNumber:B,pick:t,relativeLength:q}=J;class m extends A{constructor(){super(...arguments);this.series=this.options=this.labelDistance=void 0}getConnectorPath(){const a=this.labelPosition,n=this.series.options.dataLabels,h=this.connectorShapes;let g=n.connectorShape;h[g]&&(g=h[g]);return g.call(this, {x:a.computed.x,y:a.computed.y,alignment:a.alignment},a.connectorPosition,n)}getTranslate(){return this.sliced?this.slicedTranslation:{translateX:0,translateY:0}}haloPath(a){const n=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(n.x,n.y,n.r+a,n.r+a,{innerR:n.r-1,start:n.start,end:n.end,borderRadius:n.borderRadius})}init(){super.init.apply(this,arguments);this.name=t(this.name,"Slice");const a=a=>{this.slice("select"===a.type)};G(this,"select",a);G(this, "unselect",a);return this}isValid(){return B(this.y)&&0<=this.y}setVisible(a,n){const h=this.series,g=h.chart,e=h.options.ignoreHiddenPoint;n=t(n,e);a!==this.visible&&(this.visible=this.options.visible=a="undefined"===typeof a?!this.visible:a,h.options.data[h.data.indexOf(this)]=this.options,["graphic","dataLabel","connector"].forEach(e=>{if(this[e])this[e][a?"show":"hide"](a)}),this.legendItem&&g.legend.colorizeItem(this,a),a||"hover"!==this.state||this.setState(""),e&&(h.isDirty=!0),n&&g.redraw())}slice(a, n,h){const g=this.series;u(h,g.chart);t(n,!0);this.sliced=this.options.sliced=D(a)?a:!this.sliced;g.options.data[g.data.indexOf(this)]=this.options;this.graphic&&this.graphic.animate(this.getTranslate())}}E(m.prototype,{connectorShapes:{fixedOffset:function(a,n,h){const g=n.breakAt;n=n.touchingSliceAt;return[["M",a.x,a.y],h.softConnector?["C",a.x+("left"===a.alignment?-5:5),a.y,2*g.x-n.x,2*g.y-n.y,g.x,g.y]:["L",g.x,g.y],["L",n.x,n.y]]},straight:function(a,n){n=n.touchingSliceAt;return[["M",a.x,a.y], ["L",n.x,n.y]]},crookedLine:function(a,n,h){const {breakAt:g,touchingSliceAt:e}=n;({series:n}=this);const [m,p,t]=n.center,u=t/2,f=n.chart.plotWidth,y=n.chart.plotLeft;n="left"===a.alignment;const {x:r,y:l}=a;h.crookDistance?(a=q(h.crookDistance,1),a=n?m+u+(f+y-m-u)*(1-a):y+(m-u)*a):a=m+(p-l)*Math.tan((this.angle||0)-Math.PI/2);h=[["M",r,l]];(n?a<=r&&a>=g.x:a>=r&&a<=g.x)&&h.push(["L",a,l]);h.push(["L",g.x,g.y],["L",e.x,e.y]);return h}}});return m});L(a,"Series/Pie/PieSeriesDefaults.js",[],function(){""; return{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{allowOverlap:!0,connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,lineWidth:void 0, states:{hover:{brightness:.1}}}});L(a,"Series/Pie/PieSeries.js",[a["Series/CenteredUtilities.js"],a["Series/Column/ColumnSeries.js"],a["Core/Globals.js"],a["Series/Pie/PiePoint.js"],a["Series/Pie/PieSeriesDefaults.js"],a["Core/Series/Series.js"],a["Core/Series/SeriesRegistry.js"],a["Core/Renderer/SVG/Symbols.js"],a["Core/Utilities.js"]],function(a,A,J,K,G,D,E,B,t){const {getStartAndEndRadians:q}=a;({noop:J}=J);const {clamp:m,extend:p,fireEvent:n,merge:h,pick:g,relativeLength:e}=t;class x extends D{constructor(){super(...arguments); this.points=this.options=this.maxLabelDistance=this.data=this.center=void 0}animate(a){const e=this,h=e.points,f=e.startAngleRad;a||h.forEach(function(a){const h=a.graphic,l=a.shapeArgs;h&&l&&(h.attr({r:g(a.startR,e.center&&e.center[3]/2),start:f,end:f}),h.animate({r:l.r,start:l.start,end:l.end},e.options.animation))})}drawEmpty(){const a=this.startAngleRad,e=this.endAngleRad,g=this.options;let f,h;0===this.total&&this.center?(f=this.center[0],h=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(f, h,this.center[1]/2,0,a,e).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:B.arc(f,h,this.center[2]/2,0,{start:a,end:e,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":g.borderWidth,fill:g.fillColor||"none",stroke:g.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){const a=this.chart.renderer;this.points.forEach(function(e){e.graphic&&e.hasNewShapeType()&&(e.graphic=e.graphic.destroy());e.graphic||(e.graphic=a[e.shapeType](e.shapeArgs).add(e.series.group), e.delayedRendering=!0)})}generatePoints(){super.generatePoints();this.updateTotals()}getX(a,e,g){const f=this.center,h=this.radii?this.radii[g.index]||0:f[2]/2;a=Math.asin(m((a-f[1])/(h+g.labelDistance),-1,1));return f[0]+(e?-1:1)*Math.cos(a)*(h+g.labelDistance)+(01.5*Math.PI?F-=2*Math.PI:F<-Math.PI/2&&(F+=2*Math.PI);k.slicedTranslation={translateX:Math.round(Math.cos(F)*m),translateY:Math.round(Math.sin(F)*m)};x=Math.cos(F)*a[2]/2;b=Math.sin(F)*a[2]/ 2;k.tooltipPos=[a[0]+.7*x,a[1]+.7*b];k.half=F<-Math.PI/2||F>Math.PI/2?1:0;k.angle=F;z=Math.min(f,k.labelDistance/5);k.labelPosition={natural:{x:a[0]+x+Math.cos(F)*k.labelDistance,y:a[1]+b+Math.sin(F)*k.labelDistance},computed:{},alignment:0>k.labelDistance?"center":k.half?"right":"left",connectorPosition:{breakAt:{x:a[0]+x+Math.cos(F)*z,y:a[1]+b+Math.sin(F)*z},touchingSliceAt:{x:a[0]+x,y:a[1]+b}}}}n(this,"afterTranslate")}updateTotals(){const a=this.points,e=a.length,g=this.options.ignoreHiddenPoint; let f,h,n=0;for(f=0;fh&&(b.dataLabel.css({width:Math.round(.7*h)+"px"}),b.dataLabel.shortened=!0)):(b.dataLabel=b.dataLabel.destroy(),b.dataLabels&&1===b.dataLabels.length&&delete b.dataLabels))}),u.forEach((f,l)=>{const h=f.length,w=[];let r,v=0;if(h){a.sortByAngle(f,l-.5);if(0b-d&&0===l&& (p=Math.round(L+D-b+d),C[1]=Math.max(p,C[1])),0>Q-K/2?C[0]=Math.max(Math.round(-Q+K/2),C[0]):Q+K/2>c&&(C[2]=Math.max(Math.round(Q+K/2-c),C[2])),M.sideOverflow=p)}}}),0===t(C)||this.verifyDataLabelOverflow(C))&&(this.placeDataLabels(),this.points.forEach(function(b){S=p(g,b.options.dataLabels);if(H=n(S.connectorWidth,1)){let c;G=b.connector;if((M=b.dataLabel)&&M._pos&&b.visible&&0f.bottom-2?g:e,f.half,f)},justify:function(a,f,e){return e[0]+(a.half?-1:1)*(f+a.labelDistance)},alignToPlotEdges:function(a,f,e,g){a=a.getBBox().width;return f?a+g:e-a-g},alignToConnectors:function(a,f,e,g){let d=0,b;a.forEach(function(a){b= a.dataLabel.getBBox().width;b>d&&(d=b)});return f?d+g:e-d-g}};e.compose=function(e){a.compose(B);G.pushUnique(C,e)&&(e=e.prototype,e.dataLabelPositioners=f,e.alignDataLabel=u,e.drawDataLabels=g,e.placeDataLabels=I,e.verifyDataLabelOverflow=A)}})(g||(g={}));return g});L(a,"Extensions/OverlappingDataLabels.js",[a["Core/Chart/Chart.js"],a["Core/Utilities.js"]],function(a,A){function u(a,m){let p,n=!1;a&&(p=a.newOpacity,a.oldOpacity!==p&&(a.alignAttr&&a.placed?(a[p?"removeClass":"addClass"]("highcharts-data-label-hidden"), n=!0,a.alignAttr.opacity=p,a[a.isOld?"animate":"attr"](a.alignAttr,null,function(){m.styledMode||a.css({pointerEvents:p?"auto":"none"})}),G(m,"afterHideOverlappingLabel")):a.attr({opacity:p})),a.isOld=!0);return n}const {addEvent:K,fireEvent:G,isArray:D,isNumber:E,objectEach:B,pick:t}=A;K(a,"render",function(){let a=this,m=[];(this.labelCollectors||[]).forEach(function(a){m=m.concat(a())});(this.yAxis||[]).forEach(function(a){a.stacking&&a.options.stackLabels&&!a.options.stackLabels.allowOverlap&& B(a.stacking.stacks,function(a){B(a,function(a){a.label&&m.push(a.label)})})});(this.series||[]).forEach(function(q){var n=q.options.dataLabels;q.visible&&(!1!==n.enabled||q._hasPointLabels)&&(n=h=>h.forEach(g=>{g.visible&&(D(g.dataLabels)?g.dataLabels:g.dataLabel?[g.dataLabel]:[]).forEach(function(e){const h=e.options;e.labelrank=t(h.labelrank,g.labelrank,g.shapeArgs&&g.shapeArgs.height);h.allowOverlap?(e.oldOpacity=e.opacity,e.newOpacity=1,u(e,a)):m.push(e)})}),n(q.nodes||[]),n(q.points))});this.hideOverlappingLabels(m)}); a.prototype.hideOverlappingLabels=function(a){let m=this,q=a.length,n=m.renderer;var h;let g;let e,x,t,A=!1;var C=function(a){let f,e;var g;let h=a.box?0:a.padding||0,d=g=0,b,c;if(a&&(!a.alignAttr||a.placed))return f=a.alignAttr||{x:a.attr("x"),y:a.attr("y")},e=a.parentGroup,a.width||(g=a.getBBox(),a.width=g.width,a.height=g.height,g=n.fontMetrics(a.element).h),b=a.width-2*h,(c={left:"0",center:"0.5",right:"1"}[a.alignValue])?d=+c*b:E(a.x)&&Math.round(a.x)!==a.translateX&&(d=a.x-a.translateX),{x:f.x+ (e.translateX||0)+h-(d||0),y:f.y+(e.translateY||0)+h-g,width:a.width-2*h,height:a.height-2*h}};for(g=0;g=x.x+x.width||t.x+t.width<=x.x||t.y>=x.y+x.height||t.y+t.height<=x.y|| ((C.labelrank{q(a)||(a={radius:a||0});return m(n,e,a)};if(-1===K.symbolCustomAttribs.indexOf("borderRadius")){K.symbolCustomAttribs.push("borderRadius","brBoxHeight","brBoxY");const g=G.prototype.symbols.arc;G.prototype.symbols.arc=function(a,e,h,n,f={}){a=g(a,e,h,n,f);const {innerR:m=0,r=h,start:l=0,end:v=0}=f;if(f.open||!f.borderRadius)return a;h=v-l;e=Math.sin(h/2);f=Math.max(Math.min(p(f.borderRadius||0,r-m),(r-m)/2,r*e/(1+e)),0);h=Math.min(f,h/Math.PI*2*m);for(e=a.length-1;e--;){{let g= void 0,l=void 0,m=void 0;n=a;var d=e,b=1this.borderWidth&&(w="all");w||(w="end");const v=Math.min(p(a.radius,d),d/2,"all"===w?b/2:Infinity)||0;"end"===w&&(k&&(n-=v),f+=v);t(g,{brBoxHeight:f,brBoxY:n,r:v})}}},{order:9})}A={optionsToObject:h};"";return A});L(a,"Core/Responsive.js",[a["Core/Utilities.js"]],function(a){const {diffObjects:u,extend:J,find:K,merge:G,pick:D,uniqueKey:E}=a;var B;(function(t){function q(a,h){const g=a.condition;(g.callback||function(){return this.chartWidth<= D(g.maxWidth,Number.MAX_VALUE)&&this.chartHeight<=D(g.maxHeight,Number.MAX_VALUE)&&this.chartWidth>=D(g.minWidth,0)&&this.chartHeight>=D(g.minHeight,0)}).call(this)&&h.push(a._id)}function m(a,h){const g=this.options.responsive;var e=this.currentResponsive;let n=[];!h&&g&&g.rules&&g.rules.forEach(a=>{"undefined"===typeof a._id&&(a._id=E());this.matchResponsiveRule(a,n)},this);h=G(...n.map(a=>K((g||{}).rules||[],e=>e._id===a)).map(a=>a&&a.chartOptions));h.isResponsiveOptions=!0;n=n.toString()||void 0; n!==(e&&e.ruleIds)&&(e&&this.update(e.undoOptions,a,!0),n?(e=u(h,this.options,!0,this.collectionsWithUpdate),e.isResponsiveOptions=!0,this.currentResponsive={ruleIds:n,mergedOptions:h,undoOptions:e},this.update(h,a,!0)):this.currentResponsive=void 0)}const p=[];t.compose=function(n){a.pushUnique(p,n)&&J(n.prototype,{matchResponsiveRule:q,setResponsive:m});return n}})(B||(B={}));"";"";return B});L(a,"masters/highcharts.src.js",[a["Core/Globals.js"],a["Core/Utilities.js"],a["Core/Defaults.js"],a["Core/Animation/Fx.js"], a["Core/Animation/AnimationUtilities.js"],a["Core/Renderer/HTML/AST.js"],a["Core/Templating.js"],a["Core/Renderer/RendererUtilities.js"],a["Core/Renderer/SVG/SVGElement.js"],a["Core/Renderer/SVG/SVGRenderer.js"],a["Core/Renderer/HTML/HTMLElement.js"],a["Core/Renderer/HTML/HTMLRenderer.js"],a["Core/Axis/Axis.js"],a["Core/Axis/DateTimeAxis.js"],a["Core/Axis/LogarithmicAxis.js"],a["Core/Axis/PlotLineOrBand/PlotLineOrBand.js"],a["Core/Axis/Tick.js"],a["Core/Tooltip.js"],a["Core/Series/Point.js"],a["Core/Pointer.js"], a["Core/Legend/Legend.js"],a["Core/Chart/Chart.js"],a["Core/Axis/Stacking/StackingAxis.js"],a["Core/Axis/Stacking/StackItem.js"],a["Core/Series/Series.js"],a["Core/Series/SeriesRegistry.js"],a["Series/Column/ColumnSeries.js"],a["Series/Column/ColumnDataLabel.js"],a["Series/Pie/PieSeries.js"],a["Series/Pie/PieDataLabel.js"],a["Core/Series/DataLabel.js"],a["Core/Responsive.js"],a["Core/Color/Color.js"],a["Core/Time.js"]],function(a,A,J,K,G,D,E,B,t,q,m,p,n,h,g,e,x,I,M,C,f,y,r,l,v,d,b,c,k,w,z,F,O,P){a.animate= G.animate;a.animObject=G.animObject;a.getDeferredAnimation=G.getDeferredAnimation;a.setAnimation=G.setAnimation;a.stop=G.stop;a.timers=K.timers;a.AST=D;a.Axis=n;a.Chart=y;a.chart=y.chart;a.Fx=K;a.Legend=f;a.PlotLineOrBand=e;a.Point=M;a.Pointer=C;a.Series=v;a.StackItem=l;a.SVGElement=t;a.SVGRenderer=q;a.Templating=E;a.Tick=x;a.Time=P;a.Tooltip=I;a.Color=O;a.color=O.parse;p.compose(q);m.compose(t);C.compose(y);f.compose(y);a.defaultOptions=J.defaultOptions;a.getOptions=J.getOptions;a.time=J.defaultTime; a.setOptions=J.setOptions;a.dateFormat=E.dateFormat;a.format=E.format;a.numberFormat=E.numberFormat;a.addEvent=A.addEvent;a.arrayMax=A.arrayMax;a.arrayMin=A.arrayMin;a.attr=A.attr;a.clearTimeout=A.clearTimeout;a.correctFloat=A.correctFloat;a.createElement=A.createElement;a.css=A.css;a.defined=A.defined;a.destroyObjectProperties=A.destroyObjectProperties;a.discardElement=A.discardElement;a.distribute=B.distribute;a.erase=A.erase;a.error=A.error;a.extend=A.extend;a.extendClass=A.extendClass;a.find= A.find;a.fireEvent=A.fireEvent;a.getMagnitude=A.getMagnitude;a.getStyle=A.getStyle;a.inArray=A.inArray;a.isArray=A.isArray;a.isClass=A.isClass;a.isDOMElement=A.isDOMElement;a.isFunction=A.isFunction;a.isNumber=A.isNumber;a.isObject=A.isObject;a.isString=A.isString;a.keys=A.keys;a.merge=A.merge;a.normalizeTickInterval=A.normalizeTickInterval;a.objectEach=A.objectEach;a.offset=A.offset;a.pad=A.pad;a.pick=A.pick;a.pInt=A.pInt;a.relativeLength=A.relativeLength;a.removeEvent=A.removeEvent;a.seriesType= d.seriesType;a.splat=A.splat;a.stableSort=A.stableSort;a.syncTimeout=A.syncTimeout;a.timeUnits=A.timeUnits;a.uniqueKey=A.uniqueKey;a.useSerialIds=A.useSerialIds;a.wrap=A.wrap;c.compose(b);z.compose(v);h.compose(n);g.compose(n);w.compose(k);e.compose(n);F.compose(y);r.compose(n,y,v);I.compose(C);return a});L(a,"Core/Axis/BrokenAxis.js",[a["Core/Axis/Stacking/StackItem.js"],a["Core/Utilities.js"]],function(a,A){const {addEvent:u,find:K,fireEvent:G,isArray:D,isNumber:E,pick:B}=A;var t;(function(q){function m(){"undefined"!== typeof this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function p(){this.brokenAxis&&this.brokenAxis.hasBreaks&&(this.options.ordinal=!1)}function n(){const a=this.brokenAxis;if(a&&a.hasBreaks){const f=this.tickPositions,e=this.tickPositions.info,g=[];for(let e=0;ee.to||d>e.from&&ce.from&&ce.from&&c>e.to&&cl&&g>=this.basePointRange&&(l=g);n--;)d&&!1!==d.visible||(d=e[n+1]),g=e[n],!1!==d.visible&&!1!==g.visible&&(d.x-g.x>l&&(d=(g.x+d.x)/2,e.splice(n+1,0,{isNull:!0,x:d}),h.stacking&&this.options.stacking&&(d=h.stacking.stacks[this.stackKey][d]=new a(h,h.options.stackLabels,!1,d,this.stack),d.total=0)),d=g);return this.getGraphPath(e)}const M=[];q.compose=function(a,q){A.pushUnique(M,a)&&(a.keepProps.push("brokenAxis"),u(a,"init",h),u(a,"afterInit",m),u(a,"afterSetTickPositions", n),u(a,"afterSetOptions",p));if(A.pushUnique(M,q)){const a=q.prototype;a.drawBreaks=t;a.gappedPath=I;u(q,"afterGeneratePoints",g);u(q,"afterRender",e)}return a};class C{static isInBreak(a,e){const f=a.repeat||Infinity,g=a.from,h=a.to-a.from;e=e>=g?(e-g)%f:f-(g-e)%f;return a.inclusive?e<=h:e=a);g++)f.to=a)break;else if(C.isInBreak(g,a)){f-=a-g.from;break}return f}constructor(a){this.hasBreaks=!1;this.axis=a}findBreakAt(a,e){return K(e,function(e){return e.fromm;)v-=n;for(;vthis.chart.plotSizeX/g||m&&p.forced)e=!0;return e?g:0}function G(){this.series.forEach(function(a){a.hasProcessed=!1})}function D(a,h){let g;h=q(h,!0);a||(a={forced:!1,units:null});if(this instanceof p)for(g=this.series.length;g--;)this.series[g].update({dataGrouping:a},!1);else this.chart.options.series.forEach(function(e){e.dataGrouping="boolean"===typeof a?a:t(a,e.dataGrouping)});this.ordinal&&(this.ordinal.slope=void 0);h&&this.chart.redraw()}const {addEvent:E,extend:B,merge:t,pick:q}=A,m=[]; let p;return{compose:function(a){p=a;A.pushUnique(m,a)&&(E(a,"afterSetScale",G),E(a,"postProcessData",u),B(a.prototype,{applyGrouping:u,getGroupPixelWidth:K,setDataGrouping:D}))}}});L(a,"Extensions/DataGrouping/DataGroupingSeriesComposition.js",[a["Extensions/DataGrouping/ApproximationRegistry.js"],a["Extensions/DataGrouping/DataGroupingDefaults.js"],a["Core/Axis/DateTimeAxis.js"],a["Core/Defaults.js"],a["Core/Series/SeriesRegistry.js"],a["Core/Utilities.js"]],function(a,A,J,K,G,D){function u(a){var f= this.chart,h=this.options.dataGrouping,d=!1!==this.allowDG&&h&&C(h.enabled,f.options.isStock),b=this.visible||!f.options.chart.ignoreHiddenSeries;const c=this.currentDataGrouping;var k=!1;d&&!this.requireSorting&&(this.requireSorting=k=!0);a=!1===!(this.isCartesian&&!this.isDirty&&!this.xAxis.isDirty&&!this.yAxis.isDirty&&!a)||!d;k&&(this.requireSorting=!1);if(!a){this.destroyGroupedData();a=h.groupAll?this.xData:this.processedXData;d=h.groupAll?this.yData:this.processedYData;var m=f.plotSizeX;k= this.xAxis;var r=k.options.ordinal,q=this.groupPixelWidth,p;let l;if(q&&a&&a.length&&m){this.isDirty=l=!0;this.points=null;var t=k.getExtremes();var x=t.min;t=t.max;r=r&&k.ordinal&&k.ordinal.getGroupIntervalFactor(x,t,this)||1;m=k.getTimeTicks(J.Additions.prototype.normalizeTimeTickInterval(q*(t-x)/m*r,h.units||A.units),Math.min(x,a[0]),Math.max(t,a[a.length-1]),k.options.startOfWeek,a,this.closestPointRange);q=n.groupData.apply(this,[a,d,m,h.approximation]);a=q.groupedXData;d=q.groupedYData;r=0; h&&h.smoothed&&a.length&&(h.firstAnchor="firstPoint",h.anchor="middle",h.lastAnchor="lastPoint",e(32,!1,f,{"dataGrouping.smoothed":"use dataGrouping.anchor"}));f=a;var u=t,y=this.options.dataGrouping;t=this.currentDataGrouping&&this.currentDataGrouping.gapSize;if(y&&this.xData&&t&&this.groupMap){x=f.length-1;var H=y.anchor;const b=C(y.firstAnchor,H);y=C(y.lastAnchor,H);if(H&&"start"!==H){var B=t*{middle:.5,end:1}[H];for(H=f.length-1;H--&&0=f[0]&&(H=this.groupMap[0].start, B=this.groupMap[0].length,I(H)&&I(B)&&(p=H+(B-1)),f[0]={middle:f[0]+.5*t,end:f[0]+t,firstPoint:this.xData[0],lastPoint:p&&this.xData[p]}[b]);y&&"start"!==y&&t&&f[x]>=u-t&&(p=this.groupMap[this.groupMap.length-1].start,f[x]={middle:f[x]+.5*t,end:f[x]+t,firstPoint:p&&this.xData[p],lastPoint:this.xData[this.xData.length-1]}[y])}for(p=1;pb.max){if(!g(b.options.max)&&I(b.dataMax)&&b.max>=b.dataMax||b.max===b.dataMax)b.max=Math.max(p[p.length-1],b.max);b.dataMax=Math.max(p[p.length-1],b.dataMax)}}h.groupAll&&(this.allGroupedData=d,h=this.cropData(a,d,k.min,k.max,1),a=h.xData,d=h.yData, this.cropStart=h.start);this.processedXData=a;this.processedYData=d}else this.groupMap=null;this.hasGroupedData=l;this.currentDataGrouping=t;this.preventGraphAnimation=(c&&c.totalRange)!==(t&&t.totalRange)}}function B(){this.groupedData&&(this.groupedData.forEach(function(a,e){a&&(this.groupedData[e]=a.destroy?a.destroy():null)},this),this.groupedData.length=0)}function t(){f.apply(this);this.destroyGroupedData();this.groupedData=this.hasGroupedData?this.points:null}function q(){return this.is("arearange")? "range":this.is("ohlc")?"ohlc":this.is("hlc")?"hlc":this.is("column")||this.options.cumulative?"sum":"average"}function m(e,f,h,d){const b=this,c=b.data,k=b.options&&b.options.data,l=[],n=[],m=[],r=e.length,p=!!f,v=[],q=b.pointArrayMap,t=q&&q.length,x=["x"].concat(q||["y"]),u=this.options.dataGrouping&&this.options.dataGrouping.groupAll;let y=0,C=0;d="function"===typeof d?d:d&&a[d]?a[d]:a[b.getDGApproximation&&b.getDGApproximation()||"average"];if(t)for(var A=q.length;A--;)v.push([]);else v.push([]); A=t||1;for(let a=0;a<=r;a++)if(!(e[a]=h[y+1]||a===r;){var B=h[y];b.dataGroupInfo={start:u?C:b.cropStart+C,length:v[0].length};var E=d.apply(b,v);b.pointClass&&!g(b.dataGroupInfo.options)&&(b.dataGroupInfo.options=M(b.pointClass.prototype.optionsToObject.call({series:b},b.options.data[b.cropStart+C])),x.forEach(function(a){delete b.dataGroupInfo.options[a]}));"undefined"!==typeof E&&(l.push(B),n.push(E),m.push(b.dataGroupInfo));C=a;for(B=0;B{g=this.pointer.normalize(g);if(a.isInsidePlot(g.chartX-a.plotLeft,g.chartY-a.plotTop)){const n= G(e.sensitivity,1.1);h(a,Math.pow(n,g.detail||(g.deltaY||0)/120),a.xAxis[0].toValue(g.chartX),a.yAxis[0].toValue(g.chartY),g.chartX,g.chartY,e)}g.preventDefault&&g.preventDefault()})}const {addEvent:J,isObject:K,pick:G,defined:D,merge:E}=a,B=[],t={enabled:!0,sensitivity:1.1},q=a=>K(a)?E(t,a):E(t,{enabled:D(a)?a:!0}),m=function(a,e){a.x+a.width>e.x+e.width&&(a.width>e.width?(a.width=e.width,a.x=e.x):a.x=e.x+e.width-a.width);a.width>e.width&&(a.width=e.width);a.xe.y+e.height&& (a.height>e.height?(a.height=e.height,a.y=e.y):a.y=e.y+e.height-a.height);a.height>e.height&&(a.height=e.height);a.y{if(n){r.setOptions(n);const {min:a,max:b}=r.getExtremes();r.forceRedraw=!0;r.setExtremes(a,b);n=void 0}},400)}if(a.inverted){var v=r.pos+r.len;h=g.toValue(u);q=r.toValue(t);var d=t;t=u;u=v-d+r.pos}t=t?(t-g.pos)/g.len:.5;if(g.reversed&&!a.inverted||a.inverted&&!g.reversed)t=1-t;u=1-(u?(u-r.pos)/r.len:.5);r.reversed&&(u=1-u);v=g.max-g.min;h=G(h,g.min+v/2);v*=e;d=r.max-r.min;q=G(q,r.min+d/2);const k=d*e;var b=g.dataMax-g.dataMin,c=r.dataMax- r.dataMin;d=g.dataMin-b*g.options.minPadding;b=b+b*g.options.minPadding+b*g.options.maxPadding;const w=r.dataMin-c*r.options.minPadding;c=c+c*r.options.minPadding+c*r.options.maxPadding;t=m({x:h-v*t,y:q-k*u,width:v,height:k},{x:d,y:w,width:b,height:c});u=t.x<=d&&t.width>=b&&t.y<=w&&t.height>=c;D(e)&&!u?(f&&g.setExtremes(t.x,t.x+t.width,!1),l&&r.setExtremes(t.y,t.y+t.height,!1)):(f&&g.setExtremes(void 0,void 0,!1),l&&r.setExtremes(void 0,void 0,!1));a.redraw(!1)}};"";return{compose:function(a){-1=== B.indexOf(a)&&(B.push(a),J(a,"afterGetContainer",u))}}});L(a,"masters/modules/mouse-wheel-zoom.src.js",[a["Core/Globals.js"],a["Extensions/MouseWheelZoom/MouseWheelZoom.js"]],function(a,A){A.compose(a.Chart)});L(a,"Series/DataModifyComposition.js",[a["Core/Axis/Axis.js"],a["Core/Series/Point.js"],a["Core/Series/Series.js"],a["Core/Utilities.js"]],function(a,A,J,K){const {prototype:{tooltipFormatter:u}}=A,{addEvent:D,arrayMax:E,arrayMin:B,correctFloat:t,defined:q,isArray:m,isNumber:p,isString:n,pick:h}= K;var g;(function(a){function e(a,b,d){this.isXAxis||(this.series.forEach(function(c){"compare"===a&&"boolean"!==typeof b?c.setCompare(b,!1):"cumulative"!==a||n(b)||c.setCumulative(b,!1)}),h(d,!0)&&this.chart.redraw())}function g(a){const b=this,{numberFormatter:c}=b.series.chart,d=function(d){a=a.replace("{point."+d+"}",(0{delete a.change}):this.dataModify.initCompare(a)}function y(){if(this.xAxis&&this.processedYData&&this.dataModify){const a=this.processedXData,b=this.processedYData,d=b.length,e=!0===this.options.compareStart?0:1;let f=-1,g;this.pointArrayMap&&(f=this.pointArrayMap.indexOf(this.options.pointValKey||this.pointValKey||"y"));for(g=0;g=(this.xAxis.min||0)){this.dataModify.compareValue=c;break}}}}function r(a,b){this.setModifier("compare",a,b)}function l(a,b){a=h(a,!1);this.options.cumulative=this.userOptions.cumulative=a;this.update({},h(b,!0));this.dataModify?this.dataModify.initCumulative():this.points.forEach(a=>{delete a.cumulativeSum})}function v(a,b){this.setModifier("cumulative",a,b)}const d=[];a.compose=function(a,b,h){if(K.pushUnique(d,a)){const b=a.prototype;b.setCompare=f;b.setCumulative=l;D(a,"afterInit", A);D(a,"afterGetExtremes",C);D(a,"afterProcessData",y)}K.pushUnique(d,b)&&(b=b.prototype,b.setCompare=r,b.setModifier=e,b.setCumulative=v);K.pushUnique(d,h)&&(h.prototype.tooltipFormatter=g);return a};class b{constructor(a){this.series=a}modifyValue(){return 0}static getCumulativeExtremes(a){let b=Infinity,c=-Infinity;a.reduce((a,d)=>{d=a+d;b=Math.min(b,d,a);c=Math.max(c,d,a);return d});return[b,c]}initCompare(a){this.modifyValue=function(b,c){null===b&&(b=0);const d=this.compareValue;return"undefined"!== typeof b&&"undefined"!==typeof d?(b="value"===a?b-d:b/d*100-(100===this.series.options.compareBase?0:100),"undefined"!==typeof c&&(c=this.series.points[c])&&(c.change=b),b):0}}initCumulative(){this.modifyValue=function(a,b){null===a&&(a=0);if(void 0!==a&&void 0!==b){const c=0=m.dataMax&&(a=E(m.dataMax-n)),a<=m.dataMin&&(h=E(m.dataMin+n)));t(a)&&t(h)||(a=h=void 0);return{min:a,max:h}}}return p});L(a,"Stock/Navigator/NavigatorDefaults.js",[a["Core/Color/Color.js"],a["Core/Series/SeriesRegistry.js"]],function(a,A){({parse:a}=a);({seriesTypes:A}=A);A={height:40,margin:25,maskInside:!0,handles:{width:7,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:a("#667aff").setOpacity(.3).get(), outlineColor:"#999999",outlineWidth:1,series:{type:"undefined"===typeof A.areaspline?"line":"areaspline",fillOpacity:.05,lineWidth:1,compare:null,sonification:{enabled:!1},dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",units:[["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,3,4]],["week",[1,2,3]],["month",[1,3,6]],["year", null]]},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{overscroll:0,className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#000000",fontSize:"0.7em",opacity:.6,textOutline:"2px contrast"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1, endOnTick:!1,minPadding:.1,maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}};"";return A});L(a,"Stock/Navigator/NavigatorSymbols.js",[],function(){return{"navigator-handle":function(a,A,J,K,G={}){a=G.width?G.width/2:J;A=Math.round(a/3)+.5;K=G.height||K;return[["M",-a-1,.5],["L",a,.5],["L",a,K+.5],["L",-a-1,K+.5],["L",-a-1,.5],["M",-A,4],["L",-A,K-3],["M",A-1,4],["L",A-1,K-3]]}}});L(a,"Stock/Navigator/NavigatorComposition.js",[a["Core/Defaults.js"],a["Core/Globals.js"], a["Core/Axis/NavigatorAxisComposition.js"],a["Stock/Navigator/NavigatorDefaults.js"],a["Stock/Navigator/NavigatorSymbols.js"],a["Core/Renderer/RendererRegistry.js"],a["Core/Utilities.js"]],function(a,A,J,K,G,D,E){function u(){this.navigator&&this.navigator.setBaseSeries(null,!1)}function t(){var a;const b=this.legend,c=this.navigator;let e,f,g;if(c){e=b&&b.options;f=c.xAxis;g=c.yAxis;const {scrollbarHeight:d,scrollButtonSize:k}=c;this.inverted?(c.left=c.opposite?this.chartWidth-d-c.height:this.spacing[3]+ d,c.top=this.plotTop+k):(c.left=r(f.left,this.plotLeft+k),c.top=c.navigatorOptions.top||this.chartHeight-c.height-d-((null===(a=this.scrollbar)||void 0===a?void 0:a.options.margin)||0)-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(e&&"bottom"===e.verticalAlign&&"proximate"!==e.layout&&e.enabled&&!e.floating?b.legendHeight+r(e.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0));f&&g&&(this.inverted?f.options.left=g.options.left=c.left:f.options.top= g.options.top=c.top,f.setAxisSize(),g.setAxisSize())}}function q(a){this.navigator||this.scroller||!this.options.navigator.enabled&&!this.options.scrollbar.enabled||(this.scroller=this.navigator=new v(this),r(a.redraw,!0)&&this.redraw(a.animation))}function m(){const a=this.options;if(a.navigator.enabled||a.scrollbar.enabled)this.scroller=this.navigator=new v(this)}function p(){var a=this.options;const b=a.navigator;a=a.rangeSelector;if((b&&b.enabled||a&&a.enabled)&&(!I&&"x"===this.zooming.type|| I&&"x"===this.zooming.pinchType))return!1}function n(a){const b=a.navigator;b&&a.xAxis[0]&&(a=a.xAxis[0].getExtremes(),b.render(a.min,a.max))}function h(a){const b=a.options.navigator||{},c=a.options.scrollbar||{};this.navigator||this.scroller||!b.enabled&&!c.enabled||(y(!0,this.options.navigator,b),y(!0,this.options.scrollbar,c),delete a.options.navigator,delete a.options.scrollbar)}function g(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}const {defaultOptions:e, setOptions:x}=a,{isTouchDevice:I}=A,{getRendererType:M}=D,{addEvent:C,extend:f,merge:y,pick:r}=E,l=[];let v;return{compose:function(a,b,c,k){J.compose(a);v=c;E.pushUnique(l,b)&&(b.prototype.callbacks.push(n),C(b,"afterAddSeries",u),C(b,"afterSetChartSize",t),C(b,"afterUpdate",q),C(b,"beforeRender",m),C(b,"beforeShowResetZoom",p),C(b,"update",h));E.pushUnique(l,k)&&C(k,"afterUpdate",g);E.pushUnique(l,M)&&f(M().prototype.symbols,G);E.pushUnique(l,x)&&f(e,{navigator:K})}}});L(a,"Core/Axis/ScrollbarAxis.js", [a["Core/Utilities.js"]],function(a){const {addEvent:u,defined:J,pick:K}=a,G=[];class D{static compose(A,B){if(!a.pushUnique(G,A))return A;const t=a=>{const m=K(a.options&&a.options.min,a.min),p=K(a.options&&a.options.max,a.max);return{axisMin:m,axisMax:p,scrollMin:J(a.dataMin)?Math.min(m,a.min,a.dataMin,K(a.threshold,Infinity)):m,scrollMax:J(a.dataMax)?Math.max(p,a.max,a.dataMax,K(a.threshold,-Infinity)):p}};u(A,"afterInit",function(){const a=this;a.options&&a.options.scrollbar&&a.options.scrollbar.enabled&& (a.options.scrollbar.vertical=!a.horiz,a.options.startOnTick=a.options.endOnTick=!1,a.scrollbar=new B(a.chart.renderer,a.options.scrollbar,a.chart),u(a.scrollbar,"changed",function(m){let {axisMin:p,axisMax:n,scrollMin:h,scrollMax:g}=t(a);var e=g-h;let q;J(p)&&J(n)&&(a.horiz&&!a.reversed||!a.horiz&&a.reversed?(q=h+e*this.to,e=h+e*this.from):(q=h+e*(1-this.from),e=h+e*(1-this.to)),this.shouldUpdateExtremes(m.DOMType)?a.setExtremes(e,q,!0,"mousemove"===m.DOMType||"touchmove"===m.DOMType?!1:void 0,m): this.setRange(this.from,this.to))}))});u(A,"afterRender",function(){let {scrollMin:a,scrollMax:m}=t(this),p=this.scrollbar;var n=this.axisTitleMargin+(this.titleOffset||0),h=this.chart.scrollbarsOffsets;let g=this.options.margin||0;p&&(this.horiz?(this.opposite||(h[1]+=n),p.position(this.left,this.top+this.height+2+h[1]-(this.opposite?g:0),this.width,this.height),this.opposite||(h[1]+=g),n=1):(this.opposite&&(h[0]+=n),p.position(p.options.opposite?this.left+this.width+2+h[0]-(this.opposite?0:g):this.opposite? 0:g,this.top,this.width,this.height),this.opposite&&(h[0]+=g),n=0),h[n]+=p.size+(p.options.margin||0),isNaN(a)||isNaN(m)||!J(this.min)||!J(this.max)||this.min===this.max?p.setRange(0,1):(h=(this.min-a)/(m-a),n=(this.max-a)/(m-a),this.horiz&&!this.reversed||!this.horiz&&this.reversed?p.setRange(h,n):p.setRange(1-n,1-h)))});u(A,"afterGetOffset",function(){const a=this.scrollbar;var m=a&&!a.options.opposite;m=this.horiz?2:m?3:1;a&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[m]+=a.size+ (a.options.margin||0))});return A}}return D});L(a,"Stock/Scrollbar/ScrollbarDefaults.js",[a["Core/Globals.js"]],function(a){return{height:10,barBorderRadius:5,buttonBorderRadius:0,buttonsEnabled:!1,liveRedraw:void 0,margin:void 0,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:0,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"none",trackBackgroundColor:"rgba(255, 255, 255, 0.001)", trackBorderColor:"#cccccc",trackBorderRadius:5,trackBorderWidth:1}});L(a,"Stock/Scrollbar/Scrollbar.js",[a["Core/Defaults.js"],a["Core/Globals.js"],a["Core/Axis/ScrollbarAxis.js"],a["Stock/Scrollbar/ScrollbarDefaults.js"],a["Core/Utilities.js"]],function(a,A,J,K,G){const {defaultOptions:u}=a,{addEvent:E,correctFloat:B,defined:t,destroyObjectProperties:q,fireEvent:m,merge:p,pick:n,removeEvent:h}=G;class g{static compose(a){J.compose(a,g)}static swapXY(a,g){g&&a.forEach(a=>{const e=a.length;let g;for(let f= 0;fthis.calculatedWidth?e.minWidth:0;return{chartX:(a.chartX-this.x-this.xOffset)/(this.barWidth-e),chartY:(a.chartY-this.y-this.yOffset)/(this.barWidth-e)}}destroy(){const a=this,g=a.chart.scroller;a.removeEvents();["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(e){a[e]&&a[e].destroy&&(a[e]=a[e].destroy())});g&&a===g.scrollbar&&(g.scrollbar=null,q(g.scrollbarButtons))}drawScrollbarButton(a){const e=this.renderer,h=this.scrollbarButtons,m=this.options, n=this.size;var f=e.g().add(this.group);h.push(f);m.buttonsEnabled&&(f=e.rect().addClass("highcharts-scrollbar-button").add(f),this.chart.styledMode||f.attr({stroke:m.buttonBorderColor,"stroke-width":m.buttonBorderWidth,fill:m.buttonBackgroundColor}),f.attr(f.crisp({x:-.5,y:-.5,width:n+1,height:n+1,r:m.buttonBorderRadius},f.strokeWidth())),a=e.path(g.swapXY([["M",n/2+(a?-1:1),n/2-3],["L",n/2+(a?-1:1),n/2+3],["L",n/2+(a?2:-2),n/2]],m.vertical)).addClass("highcharts-scrollbar-arrow").add(h[a]),this.chart.styledMode|| a.attr({fill:m.buttonArrowColor}))}init(a,g,h){this.scrollbarButtons=[];this.renderer=a;this.userOptions=g;this.options=p(K,u.scrollbar,g);this.options.margin=n(this.options.margin,10);this.chart=h;this.size=n(this.options.size,this.options.height);g.enabled&&(this.render(),this.addEvents())}mouseDownHandler(a){a=this.chart.pointer.normalize(a);a=this.cursorToScrollbarPosition(a);this.chartX=a.chartX;this.chartY=a.chartY;this.initPositions=[this.from,this.to];this.grabbedCenter=!0}mouseMoveHandler(a){var e= this.chart.pointer.normalize(a),g=this.options.vertical?"chartY":"chartX";const h=this.initPositions||[];!this.grabbedCenter||a.touches&&0===a.touches[0][g]||(e=this.cursorToScrollbarPosition(e)[g],g=this[g],g=e-g,this.hasDragged=!0,this.updatePosition(h[0]+g,h[1]+g),this.hasDragged&&m(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:a.type,DOMEvent:a}))}mouseUpHandler(a){this.hasDragged&&m(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:a.type,DOMEvent:a}); this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null}position(a,g,h,m){const {buttonsEnabled:e,margin:f=0,vertical:n}=this.options,p=this.rendered?"animate":"attr";let l=m,v=0;this.group.show();this.x=a;this.y=g+this.trackBorderWidth;this.width=h;this.height=m;this.xOffset=l;this.yOffset=v;n?(this.width=this.yOffset=h=this.size,this.xOffset=l=0,this.yOffset=v=e?this.size:0,this.barWidth=m-(e?2*h:0),this.x=a+=f):(this.height=m=this.size,this.xOffset=l=e?this.size:0,this.barWidth=h-(e?2* m:0),this.y+=f);this.group[p]({translateX:a,translateY:this.y});this.track[p]({width:h,height:m});this.scrollbarButtons[1][p]({translateX:n?0:h-l,translateY:n?m-v:0})}removeEvents(){this._events.forEach(function(a){h.apply(null,a)});this._events.length=0}render(){const a=this.renderer,h=this.options,m=this.size,n=this.chart.styledMode,p=a.g("scrollbar").attr({zIndex:h.zIndex}).hide().add();this.group=p;this.track=a.rect().addClass("highcharts-scrollbar-track").attr({r:h.trackBorderRadius||0,height:m, width:m}).add(p);n||this.track.attr({fill:h.trackBackgroundColor,stroke:h.trackBorderColor,"stroke-width":h.trackBorderWidth});const f=this.trackBorderWidth=this.track.strokeWidth();this.track.attr({x:-f%2/2,y:-f%2/2});this.scrollbarGroup=a.g().add(p);this.scrollbar=a.rect().addClass("highcharts-scrollbar-thumb").attr({height:m-f,width:m-f,r:h.barBorderRadius||0}).add(this.scrollbarGroup);this.scrollbarRifles=a.path(g.swapXY([["M",-3,m/4],["L",-3,2*m/3],["M",0,m/4],["L",0,2*m/3],["M",3,m/4],["L", 3,2*m/3]],h.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup);n||(this.scrollbar.attr({fill:h.barBackgroundColor,stroke:h.barBorderColor,"stroke-width":h.barBorderWidth}),this.scrollbarRifles.attr({stroke:h.rifleColor,"stroke-width":1}));this.scrollbarStrokeWidth=this.scrollbar.strokeWidth();this.scrollbarGroup.translate(-this.scrollbarStrokeWidth%2/2,-this.scrollbarStrokeWidth%2/2);this.drawScrollbarButton(0);this.drawScrollbarButton(1)}setRange(a,g){const e=this.options, h=e.vertical;var m=e.minWidth,f=this.barWidth;const n=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?"attr":"animate";if(t(f)){var p=f*Math.min(g,1);a=Math.max(a,0);var l=Math.ceil(f*a);this.calculatedWidth=p=B(p-l);p=p?this.scrollbarRifles.hide():this.scrollbarRifles.show();!1===e.showFull&&(0>=a&&1<=g?this.group.hide():this.group.show());this.rendered=!0}}shouldUpdateExtremes(a){return n(this.options.liveRedraw,A.svg&&!A.isTouchDevice&&!this.chart.boosted)||"mouseup"===a||"touchend"===a||!t(a)}trackClick(a){const e=this.chart.pointer.normalize(a),g=this.to- this.from,h=this.y+this.scrollbarTop,n=this.x+this.scrollbarLeft;this.options.vertical&&e.chartY>h||!this.options.vertical&&e.chartX>n?this.updatePosition(this.from+g,this.to+g):this.updatePosition(this.from-g,this.to-g);m(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:a})}update(a){this.destroy();this.init(this.chart.renderer,p(!0,this.options,a),this.chart)}updatePosition(a,g){1a&&(g=B(g-a),a=0);this.from=a;this.to=g}}g.defaultOptions=K;u.scrollbar= p(!0,g.defaultOptions,u.scrollbar);return g});L(a,"Stock/Navigator/Navigator.js",[a["Core/Axis/Axis.js"],a["Core/Defaults.js"],a["Core/Globals.js"],a["Core/Axis/NavigatorAxisComposition.js"],a["Stock/Navigator/NavigatorComposition.js"],a["Stock/Scrollbar/Scrollbar.js"],a["Core/Utilities.js"]],function(a,A,J,K,G,D,E){function u(a,...c){c=[].filter.call(c,f);if(c.length)return Math[a].apply(0,c)}const {defaultOptions:t}=A,{hasTouch:q,isTouchDevice:m}=J,{addEvent:p,clamp:n,correctFloat:h,defined:g,destroyObjectProperties:e, erase:x,extend:I,find:M,isArray:C,isNumber:f,merge:y,pick:r,removeEvent:l,splat:v}=E;class d{static compose(a,c,e){G.compose(a,c,d,e)}constructor(a){this.rendered=this.range=this.outline=this.opposite=this.navigatorSize=this.navigatorSeries=this.navigatorOptions=this.navigatorGroup=this.navigatorEnabled=this.left=this.height=this.handles=this.chart=this.baseSeries=void 0;this.scrollbarHeight=0;this.zoomedMin=this.zoomedMax=this.yAxis=this.xAxis=this.top=this.size=this.shades=this.scrollButtonSize= void 0;this.init(a)}drawHandle(a,c,d,e){const b=this.navigatorOptions.handles.height;this.handles[c][e](d?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(a,10)+.5-b)}:{translateX:Math.round(this.left+parseInt(a,10)),translateY:Math.round(this.top+this.height/2-b/2-1)})}drawOutline(a,c,d,e){const b=this.navigatorOptions.maskInside;var f=this.outline.strokeWidth();const k=f/2;var g=f%2/2;const h=this.scrollButtonSize,l=this.size,m=this.top;f=this.height;const n= m-k,w=m+f;let p=this.left;d?(d=m+c+g,c=m+a+g,g=[["M",p+f,m-h-g],["L",p+f,d],["L",p,d],["M",p,c],["L",p+f,c],["L",p+f,m+l+h]],b&&g.push(["M",p+f,d-k],["L",p+f,c+k])):(p-=h,a+=p+h-g,c+=p+h-g,g=[["M",p,n],["L",a,n],["L",a,w],["M",c,w],["L",c,n],["L",p+l+2*h,m+k]],b&&g.push(["M",a-k,n],["L",c+k,n]));this.outline[e]({d:g})}drawMasks(a,c,d,e){const b=this.left,f=this.top,k=this.height;let g,h,l,m;d?(l=[b,b,b],m=[f,f+a,f+c],h=[k,k,k],g=[a,c-a,this.size-c]):(l=[b,b+a,b+c],m=[f,f,f],h=[a,c-a,this.size-c], g=[k,k,k]);this.shades.forEach((a,b)=>{a[e]({x:l[b],y:m[b],width:h[b],height:g[b]})})}renderElements(){const a=this,c=a.navigatorOptions,d=c.maskInside,f=a.chart,e=f.renderer,g={cursor:f.inverted?"ns-resize":"ew-resize"},h=a.navigatorGroup=e.g("navigator").attr({zIndex:8,visibility:"hidden"}).add();[!d,d,!d].forEach((b,d)=>{const k=e.rect().addClass("highcharts-navigator-mask"+(1===d?"-inside":"-outside")).add(h);f.styledMode||(k.attr({fill:b?c.maskFill:"rgba(0,0,0,0)"}),1===d&&k.css(g));a.shades[d]= k});a.outline=e.path().addClass("highcharts-navigator-outline").add(h);f.styledMode||a.outline.attr({"stroke-width":c.outlineWidth,stroke:c.outlineColor});if(c.handles&&c.handles.enabled){const b=c.handles,{height:d,width:k}=b;[0,1].forEach(c=>{a.handles[c]=e.symbol(b.symbols[c],-k/2-1,0,k,d,b);f.inverted&&a.handles[c].attr({rotation:90,rotationOriginX:Math.floor(-k/2),rotationOriginY:(d+k)/2});a.handles[c].attr({zIndex:7-c}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left", "right"][c]).add(h);f.styledMode||a.handles[c].attr({fill:b.backgroundColor,stroke:b.borderColor,"stroke-width":b.lineWidth}).css(g)})}}update(a){(this.series||[]).forEach(a=>{a.baseSeries&&delete a.baseSeries.navigatorSeries});this.destroy();y(!0,this.chart.options.navigator,a);this.init(this.chart)}render(a,c,d,e){var b=this.chart;const k=this.xAxis,l=k.pointRange||0;var m=k.navigatorAxis.fake?b.xAxis[0]:k;const p=this.navigatorEnabled;var w=this.rendered,v=b.inverted;const q=b.xAxis[0].minRange, t=b.xAxis[0].options.maxRange,u=this.scrollButtonSize;let x=this.scrollbarHeight,y;if(!this.hasDragged||g(d)){a=h(a-l/2);c=h(c+l/2);if(!f(a)||!f(c))if(w)d=0,e=r(k.width,m.width);else return;this.left=r(k.left,b.plotLeft+u+(v?b.plotWidth:0));var A=this.size=y=r(k.len,(v?b.plotHeight:b.plotWidth)-2*u);b=v?x:y+2*u;d=r(d,k.toPixels(a,!0));e=r(e,k.toPixels(c,!0));f(d)&&Infinity!==Math.abs(d)||(d=0,e=b);a=k.toValue(d,!0);c=k.toValue(e,!0);var B=Math.abs(h(c-a));Bt&&(this.grabbedLeft?d=k.toPixels(c-t-l,!0):this.grabbedRight&&(e=k.toPixels(a+t+l,!0)));this.zoomedMax=n(Math.max(d,e),0,A);this.zoomedMin=n(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(d,e),0,A);this.range=this.zoomedMax-this.zoomedMin;A=Math.round(this.zoomedMax);d=Math.round(this.zoomedMin);p&&(this.navigatorGroup.attr({visibility:"inherit"}),w=w&&!this.hasDragged?"animate":"attr",this.drawMasks(d,A,v,w),this.drawOutline(d,A, v,w),this.navigatorOptions.handles.enabled&&(this.drawHandle(d,0,v,w),this.drawHandle(A,1,v,w)));this.scrollbar&&(v?(v=this.top-u,m=this.left-x+(p||!m.opposite?0:(m.titleOffset||0)+m.axisTitleMargin),x=y+2*u):(v=this.top+(p?this.height:-x),m=this.left-u),this.scrollbar.position(m,v,b,x),this.scrollbar.setRange(this.zoomedMin/(y||1),this.zoomedMax/(y||1)));this.rendered=!0}}addMouseEvents(){const a=this,c=a.chart,d=c.container;let e=[],f,g;a.mouseMoveHandler=f=function(b){a.onMouseMove(b)};a.mouseUpHandler= g=function(b){a.onMouseUp(b)};e=a.getPartsEvents("mousedown");e.push(p(c.renderTo,"mousemove",f),p(d.ownerDocument,"mouseup",g));q&&(e.push(p(c.renderTo,"touchmove",f),p(d.ownerDocument,"touchend",g)),e.concat(a.getPartsEvents("touchstart")));a.eventsToUnbind=e;a.series&&a.series[0]&&e.push(p(a.series[0].xAxis,"foundExtremes",function(){c.navigator.modifyNavigatorAxisExtremes()}))}getPartsEvents(a){const b=this,d=[];["shades","handles"].forEach(function(c){b[c].forEach(function(e,f){d.push(p(e.element, a,function(a){b[c+"Mousedown"](a,f)}))})});return d}shadesMousedown(a,c){a=this.chart.pointer.normalize(a);const b=this.chart,d=this.xAxis,e=this.zoomedMin,f=this.size,h=this.range;let l=this.left,m=a.chartX,n,p;b.inverted&&(m=a.chartY,l=this.top);1===c?(this.grabbedCenter=m,this.fixedWidth=h,this.dragOffset=m-e):(a=m-l-h/2,0===c?a=Math.max(0,a):2===c&&a+h>=f&&(a=f-h,this.reversedExtremes?(a-=h,p=this.getUnionExtremes().dataMin):n=this.getUnionExtremes().dataMax),a!==e&&(this.fixedWidth=h,c=d.navigatorAxis.toFixedRange(a, a+h,p,n),g(c.min)&&b.xAxis[0].setExtremes(Math.min(c.min,c.max),Math.max(c.min,c.max),!0,null,{trigger:"navigator"})))}handlesMousedown(a,c){this.chart.pointer.normalize(a);a=this.chart;const b=a.xAxis[0],d=this.reversedExtremes;0===c?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=d?b.min:b.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=d?b.max:b.min);a.fixedRange=null}onMouseMove(a){const b=this;var d=b.chart;const e=b.navigatorSize,f=b.range, g=b.dragOffset,h=d.inverted;let l=b.left;a.touches&&0===a.touches[0].pageX||(a=d.pointer.normalize(a),d=a.chartX,h&&(l=b.top,d=a.chartY),b.grabbedLeft?(b.hasDragged=!0,b.render(0,0,d-l,b.otherHandlePos)):b.grabbedRight?(b.hasDragged=!0,b.render(0,0,b.otherHandlePos,d-l)):b.grabbedCenter&&(b.hasDragged=!0,de+g-f&&(d=e+g-f),b.render(0,0,d-g,d-g+f)),b.hasDragged&&b.scrollbar&&r(b.scrollbar.options.liveRedraw,!m&&!this.chart.boosted)&&(a.DOMType=a.type,setTimeout(function(){b.onMouseUp(a)},0)))}onMouseUp(a){var b= this.chart,d=this.xAxis,e=this.scrollbar;const h=a.DOMEvent||a,l=b.inverted,m=this.rendered&&!this.hasDragged?"animate":"attr";let n,p;(!this.hasDragged||e&&e.hasDragged)&&"scrollbar"!==a.trigger||(e=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?n=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(p=this.fixedExtreme),this.zoomedMax===this.size&&(p=this.reversedExtremes?e.dataMin:e.dataMax),0===this.zoomedMin&&(n=this.reversedExtremes?e.dataMax:e.dataMin),d=d.navigatorAxis.toFixedRange(this.zoomedMin, this.zoomedMax,n,p),g(d.min)&&b.xAxis[0].setExtremes(Math.min(d.min,d.max),Math.max(d.min,d.max),!0,this.hasDragged?!1:null,{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:h}));"mousemove"!==a.DOMType&&"touchmove"!==a.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null);this.navigatorEnabled&&f(this.zoomedMin)&&f(this.zoomedMax)&&(b=Math.round(this.zoomedMin),a=Math.round(this.zoomedMax), this.shades&&this.drawMasks(b,a,l,m),this.outline&&this.drawOutline(b,a,l,m),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(b,0,l,m),this.drawHandle(a,1,l,m)))}removeEvents(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(a){a()}),this.eventsToUnbind=void 0);this.removeBaseSeriesEvents()}removeBaseSeriesEvents(){const a=this.baseSeries||[];this.navigatorEnabled&&a[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&a.forEach(function(a){l(a, "updatedData",this.updatedDataHandler)},this),a[0].xAxis&&l(a[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))}init(b){var c=b.options,d=c.navigator||{},e=d.enabled,g=c.scrollbar||{},h=g.enabled;c=e&&d.height||0;var l=h&&g.height||0;const m=g.buttonsEnabled&&l||0;this.handles=[];this.shades=[];this.chart=b;this.setBaseSeries();this.height=c;this.scrollbarHeight=l;this.scrollButtonSize=m;this.scrollbarEnabled=h;this.navigatorEnabled=e;this.navigatorOptions=d;this.scrollbarOptions=g;this.opposite= r(d.opposite,!(e||!b.inverted));const n=this;e=n.baseSeries;g=b.xAxis.length;h=b.yAxis.length;l=e&&e[0]&&e[0].xAxis||b.xAxis[0]||{options:{}};b.isDirtyBox=!0;n.navigatorEnabled?(n.xAxis=new a(b,y({breaks:l.options.breaks,ordinal:l.options.ordinal},d.xAxis,{id:"navigator-x-axis",yAxis:"navigator-y-axis",type:"datetime",index:g,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1},b.inverted?{offsets:[m,0,-m,0],width:c}:{offsets:[0,-m,0,m], height:c}),"xAxis"),n.yAxis=new a(b,y(d.yAxis,{id:"navigator-y-axis",alignTicks:!1,offset:0,index:h,isInternal:!0,reversed:r(d.yAxis&&d.yAxis.reversed,b.yAxis[0]&&b.yAxis[0].reversed,!1),zoomEnabled:!1},b.inverted?{width:c}:{height:c}),"yAxis"),e||d.series.data?n.updateNavigatorSeries(!1):0===b.series.length&&(n.unbindRedraw=p(b,"beforeRedraw",function(){0!a.options.isInternal).index:0);(b.series||[]).forEach((b,c)=>{b.options.isInternal||!b.options.showInNavigator&&(c!==a&&b.options.id!==a||!1===b.options.showInNavigator)||d.push(b)});this.xAxis&&!this.xAxis.navigatorAxis.fake&& this.updateNavigatorSeries(!0,c)}updateNavigatorSeries(a,c){const b=this,d=b.chart,e=b.baseSeries,f={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:"navigator-x-axis",yAxis:"navigator-y-axis",showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},g=b.series=(b.series||[]).filter(a=>{const c=a.baseSeries;return 0>e.indexOf(c)?(c&&(l(c,"updatedData",b.updatedDataHandler),delete c.navigatorSeries),a.chart&&a.destroy(),!1):!0});let h,m,n=b.navigatorOptions.series, p;e&&e.length&&e.forEach(a=>{const k=a.navigatorSeries;var l=I({color:a.color,visible:a.visible},C(n)?t.navigator.series:n);k&&!1===b.navigatorOptions.adaptToUpdatedData||(f.name="Navigator "+e.length,h=a.options||{},p=h.navigatorOptions||{},l.dataLabels=v(l.dataLabels),m=y(h,f,l,p),m.pointRange=r(l.pointRange,p.pointRange,t.plotOptions[m.type||"line"].pointRange),l=p.data||l.data,b.hasNavigatorData=b.hasNavigatorData||!!l,m.data=l||h.data&&h.data.slice(0),k&&k.options?k.update(m,c):(a.navigatorSeries= d.initSeries(m),a.navigatorSeries.baseSeries=a,g.push(a.navigatorSeries)))});if(n.data&&(!e||!e.length)||C(n))b.hasNavigatorData=!1,n=v(n),n.forEach((a,c)=>{f.name="Navigator "+(g.length+1);m=y(t.navigator.series,{color:d.series[c]&&!d.series[c].options.isInternal&&d.series[c].color||d.options.colors[c]||d.options.colors[0]},f,a);m.data=a.data;m.data&&(b.hasNavigatorData=!0,g.push(d.initSeries(m)))});a&&this.addBaseSeriesEvents()}addBaseSeriesEvents(){const a=this,c=a.baseSeries||[];c[0]&&c[0].xAxis&& c[0].eventsToUnbind.push(p(c[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes));c.forEach(b=>{b.eventsToUnbind.push(p(b,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)}));b.eventsToUnbind.push(p(b,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)}));!1!==this.navigatorOptions.adaptToUpdatedData&&b.xAxis&&b.eventsToUnbind.push(p(b,"updatedData",this.updatedDataHandler));b.eventsToUnbind.push(p(b,"remove",function(){this.navigatorSeries&& (x(a.series,this.navigatorSeries),g(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)}))})}getBaseSeriesMin(a){return this.baseSeries.reduce(function(a,b){return Math.min(a,b.xData&&b.xData.length?b.xData[0]:a)},a)}modifyNavigatorAxisExtremes(){const a=this.xAxis;if("undefined"!==typeof a.getExtremes){const b=this.getUnionExtremes(!0);!b||b.dataMin===a.min&&b.dataMax===a.max||(a.min=b.dataMin,a.max=b.dataMax)}}modifyBaseAxisExtremes(){const a=this.chart.navigator; var c=this.getExtremes();const d=c.dataMin,e=c.dataMax;c=c.max-c.min;const g=a.stickToMin,h=a.stickToMax,l=r(this.options.overscroll,0),m=a.series&&a.series[0],n=!!this.setExtremes;let p,v;this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger||(g&&(v=d,p=v+c),h&&(p=e+l,g||(v=Math.max(d,p-c,a.getBaseSeriesMin(m&&m.xData?m.xData[0]:-Number.MAX_VALUE)))),n&&(g||h)&&f(v)&&(this.min=this.userMin=v,this.max=this.userMax=p));a.stickToMin=a.stickToMax=null}updatedDataHandler(){const a=this.chart.navigator, c=this.navigatorSeries;a.stickToMax=r(this.chart.options.navigator&&this.chart.options.navigator.stickToMax,a.reversedExtremes?0===Math.round(a.zoomedMin):Math.round(a.zoomedMax)>=Math.round(a.size));a.stickToMin=a.shouldStickToMin(this,a);c&&!a.hasNavigatorData&&(c.options.pointStart=this.xData[0],c.setData(this.options.data,!1,null,!1))}shouldStickToMin(a,c){c=c.getBaseSeriesMin(a.xData[0]);var b=a.xAxis;a=b.max;const d=b.min;b=b.options.range;return f(a)&&f(d)?b&&0{a.destroy&&a.destroy()});"series xAxis yAxis shades outline scrollbarTrack scrollbarRifles scrollbarGroup scrollbar navigatorGroup rendered".split(" ").forEach(a=>{this[a]&&this[a].destroy&&this[a].destroy();this[a]=null});[this.handles].forEach(a=>{e(a)})}}return d});L(a,"Stock/RangeSelector/RangeSelectorDefaults.js",[], function(){return{lang:{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"",rangeSelectorTo:"\u2192"},rangeSelector:{allButtonsEnabled:!1,buttons:void 0,buttonSpacing:5,dropdown:"responsive",enabled:void 0,verticalAlign:"top",buttonTheme:{width:28,height:18,padding:2,zIndex:7},floating:!1,x:0,y:0,height:void 0,inputBoxBorderColor:"none",inputBoxHeight:17,inputBoxWidth:void 0,inputDateFormat:"%e %b %Y",inputDateParser:void 0,inputEditDateFormat:"%Y-%m-%d",inputEnabled:!0,inputPosition:{align:"right",x:0, y:0},inputSpacing:5,selected:void 0,buttonPosition:{align:"left",x:0,y:0},inputStyle:{color:"#334eff",cursor:"pointer",fontSize:"0.8em"},labelStyle:{color:"#666666",fontSize:"0.8em"}}}});L(a,"Stock/RangeSelector/RangeSelectorComposition.js",[a["Core/Defaults.js"],a["Stock/RangeSelector/RangeSelectorDefaults.js"],a["Core/Utilities.js"]],function(a,A,J){function u(){const a=this.range,e=a.type,d=this.max,b=this.chart.time,c=function(a,c){const d="year"===e?"FullYear":"Month",f=new b.Date(a),g=b.get(d, f);b.set(d,f,g+c);g===b.get(d,f)&&b.set("Date",f,0);return f.getTime()-a};let f,g;I(a)?(f=d-a,g=a):a&&(f=d+c(d,-(a.count||1)),this.chart&&(this.chart.fixedRange=d-f));const h=C(this.dataMin,Number.MIN_VALUE);I(f)||(f=h);f<=h&&(f=h,"undefined"===typeof g&&(g=c(f,a.count)),this.newMax=Math.min(f+g,C(this.dataMax,Number.MAX_VALUE)));I(d)?!I(a)&&a&&a._offsetMin&&(f+=a._offsetMin):f=void 0;return f}function G(){this.options.rangeSelector&&this.options.rangeSelector.enabled&&(this.rangeSelector=new r(this))} function D(){var a=this.axes;const e=this.rangeSelector;e&&(I(e.deferredYTDClick)&&(e.clickButton(e.deferredYTDClick),delete e.deferredYTDClick),a.forEach(a=>{a.updateNames();a.setScale()}),this.getAxisMargins(),e.render(),a=e.options.verticalAlign,e.options.floating||("bottom"===a?this.extraBottomMargin=!0:"middle"!==a&&(this.extraTopMargin=!0)))}function E(a){let e,d,b,c;const g=a.rangeSelector,l=()=>{g&&(e=a.xAxis[0].getExtremes(),d=a.legend,c=g&&g.options.verticalAlign,I(e.min)&&g.render(e.min, e.max),d.display&&"top"===c&&c===d.options.verticalAlign&&(b=M(a.spacingBox),b.y="vertical"===d.options.layout?a.plotTop:b.y+g.getHeight(),d.group.placed=!1,d.align(b)))};g&&(x(f,b=>b[0]===a)||f.push([a,[h(a.xAxis[0],"afterSetExtremes",function(a){g&&g.render(a.min,a.max)}),h(a,"redraw",l)]]),l())}function B(){for(let a=0,e=f.length;aa());f.splice(a,1);break}}}function t(){var a=this.rangeSelector;a&&(a=a.getHeight(),this.extraTopMargin&&(this.plotTop+= a),this.extraBottomMargin&&(this.marginBottom+=a))}function q(){var a=this.rangeSelector;a&&!a.options.floating&&(a.render(),a=a.options.verticalAlign,"bottom"===a?this.extraBottomMargin=!0:"middle"!==a&&(this.extraTopMargin=!0))}function m(a){var e=a.options.rangeSelector;a=this.extraBottomMargin;const d=this.extraTopMargin;let b=this.rangeSelector;e&&e.enabled&&!g(b)&&this.options.rangeSelector&&(this.options.rangeSelector.enabled=!0,this.rangeSelector=b=new r(this));this.extraTopMargin=this.extraBottomMargin= !1;b&&(E(this),e=e&&e.verticalAlign||b.options&&b.options.verticalAlign,b.options.floating||("bottom"===e?this.extraBottomMargin=!0:"middle"!==e&&(this.extraTopMargin=!0)),this.extraBottomMargin!==a||this.extraTopMargin!==d)&&(this.isDirtyBox=!0)}const {defaultOptions:p,setOptions:n}=a,{addEvent:h,defined:g,extend:e,find:x,isNumber:I,merge:M,pick:C}=J,f=[],y=[];let r;return{compose:function(a,f,d){r=d;J.pushUnique(y,a)&&(a.prototype.minFromRange=u);J.pushUnique(y,f)&&(h(f,"afterGetContainer",G),h(f, "beforeRender",D),h(f,"destroy",B),h(f,"getMargins",t),h(f,"render",q),h(f,"update",m),f.prototype.callbacks.push(E));J.pushUnique(y,n)&&(e(p,{rangeSelector:A.rangeSelector}),e(p.lang,A.lang))}}});L(a,"Stock/RangeSelector/RangeSelector.js",[a["Core/Axis/Axis.js"],a["Core/Defaults.js"],a["Core/Globals.js"],a["Stock/RangeSelector/RangeSelectorComposition.js"],a["Core/Renderer/SVG/SVGElement.js"],a["Core/Utilities.js"]],function(a,A,J,K,G,D){function u(a){if(-1!==a.indexOf("%L"))return"text";const d= "aAdewbBmoyY".split("").some(b=>-1!==a.indexOf("%"+b)),b="HkIlMS".split("").some(b=>-1!==a.indexOf("%"+b));return d&&b?"datetime-local":d?"date":b?"time":"text"}const {defaultOptions:B}=A,{addEvent:t,createElement:q,css:m,defined:p,destroyObjectProperties:n,discardElement:h,extend:g,fireEvent:e,isNumber:x,merge:I,objectEach:M,pad:C,pick:f,pInt:y,splat:r}=D;class l{static compose(a,d){K.compose(a,d,l)}constructor(a){this.buttons=void 0;this.buttonOptions=l.prototype.defaultButtons;this.initialButtonGroupWidth= 0;this.options=void 0;this.chart=a;this.init(a)}clickButton(g,d){const b=this.chart,c=this.buttonOptions[g],k=b.xAxis[0];var h=b.scroller&&b.scroller.getUnionExtremes()||k||{},l=c.type;const m=c.dataGrouping;let n=h.dataMin,v=h.dataMax,q,u=k&&Math.round(Math.min(k.max,f(v,k.max))),y;h=c._range;let A,B,C,E=!0;if(null!==n&&null!==v){b.fixedRange=h;this.setSelected(g);m&&(this.forcedDataGrouping=!0,a.prototype.setDataGrouping.call(k||{chart:this.chart},m,!1),this.frozenStates=c.preserveDataGrouping); if("month"===l||"year"===l)k?(l={range:c,max:u,chart:b,dataMin:n,dataMax:v},q=k.minFromRange.call(l),x(l.newMax)&&(u=l.newMax),E=!1):h=c;else if(h)q=Math.max(u-h,n),u=Math.min(q+h,v),E=!1;else if("ytd"===l)if(k){if("undefined"===typeof v||"undefined"===typeof n)n=Number.MAX_VALUE,v=Number.MIN_VALUE,b.series.forEach(a=>{if(a=a.xData)n=Math.min(a[0],n),v=Math.max(a[a.length-1],v)}),d=!1;l=this.getYTDExtremes(v,n,b.time.useUTC);q=A=l.min;u=l.max}else{this.deferredYTDClick=g;return}else"all"===l&&k&& (b.navigator&&b.navigator.baseSeries[0]&&(b.navigator.baseSeries[0].xAxis.options.range=void 0),q=n,u=v);E&&c._offsetMin&&p(q)&&(q+=c._offsetMin);c._offsetMax&&p(u)&&(u+=c._offsetMax);this.dropdown&&(this.dropdown.selectedIndex=g+1);k?k.setExtremes(q,u,f(d,!0),void 0,{trigger:"rangeSelectorButton",rangeSelectorButton:c}):(y=r(b.options.xAxis)[0],C=y.range,y.range=h,B=y.min,y.min=A,t(b,"load",function(){y.range=C;y.min=B}));e(this,"afterBtnClick")}}setSelected(a){this.selected=this.options.selected= a}init(a){const d=this,b=a.options.rangeSelector,c=b.buttons||d.defaultButtons.slice(),f=b.selected,g=function(){const a=d.minInput,b=d.maxInput;a&&a.blur&&e(a,"blur");b&&b.blur&&e(b,"blur")};d.chart=a;d.options=b;d.buttons=[];d.buttonOptions=c;this.eventsToUnbind=[];this.eventsToUnbind.push(t(a.container,"mousedown",g));this.eventsToUnbind.push(t(a,"resize",g));c.forEach(d.computeButtonRange);"undefined"!==typeof f&&c[f]&&this.clickButton(f,!1);this.eventsToUnbind.push(t(a,"load",function(){a.xAxis&& a.xAxis[0]&&t(a.xAxis[0],"setExtremes",function(b){this.max-this.min!==a.fixedRange&&"rangeSelectorButton"!==b.trigger&&"updatedData"!==b.trigger&&d.forcedDataGrouping&&!d.frozenStates&&this.setDataGrouping(!1,!1)})}))}updateButtonStates(){const a=this;var d=this.chart;const b=this.dropdown,c=d.xAxis[0],e=Math.round(c.max-c.min),f=!c.hasVisibleSeries,g=d.scroller&&d.scroller.getUnionExtremes()||c,h=g.dataMin,l=g.dataMax;d=a.getYTDExtremes(l,h,d.time.useUTC);const m=d.min,n=d.max,p=a.selected,r=a.options.allButtonsEnabled, q=a.buttons;let t=x(p);a.buttonOptions.forEach((d,g)=>{var k=d._range,w=d.type,v=d.count||1;const z=q[g],u=d._offsetMax-d._offsetMin,x=g===p,F=k>l-h,y=k=864E5*{month:28,year:365}[w]*v-u&&e-36E5<=864E5*{month:31,year:366}[w]*v+u?k=!0:"ytd"===w?(k=n-m+u===e,A=!x):"all"===w&&(k=c.max-c.min>=l-h,H=!x&&t&&k);w=!r&&(F||y||H||f);v=x&&k||k&&!t&&!A||x&&a.frozenStates;w?d=3:v&&(t=!0,d=2);z.state!==d&&(z.setState(d),b&&(b.options[g+1].disabled= w,2===d&&(b.selectedIndex=g+1)),0===d&&p===g&&a.setSelected())})}computeButtonRange(a){const d=a.type,b=a.count||1,c={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5};if(c[d])a._range=c[d]*b;else if("month"===d||"year"===d)a._range=864E5*{month:30,year:365}[d]*b;a._offsetMin=f(a.offsetMin,0);a._offsetMax=f(a.offsetMax,0);a._range+=a._offsetMax-a._offsetMin}getInputValue(a){a="min"===a?this.minInput:this.maxInput;const d=this.chart.options.rangeSelector,b=this.chart.time;return a? ("text"===a.type&&d.inputDateParser||this.defaultInputDateParser)(a.value,b.useUTC,b):0}setInputValue(a,d){const b=this.options,c=this.chart.time,e="min"===a?this.minInput:this.maxInput;a="min"===a?this.minDateBox:this.maxDateBox;if(e){var f=e.getAttribute("data-hc-time");f=p(f)?Number(f):void 0;p(d)&&(p(f)&&e.setAttribute("data-hc-time-previous",f),e.setAttribute("data-hc-time",d),f=d);e.value=c.dateFormat(this.inputTypeFormats[e.type]||b.inputEditDateFormat,f);a&&a.attr({text:c.dateFormat(b.inputDateFormat, f)})}}setInputExtremes(a,d,b){if(a="min"===a?this.minInput:this.maxInput){const c=this.inputTypeFormats[a.type],e=this.chart.time;c&&(d=e.dateFormat(c,d),a.min!==d&&(a.min=d),b=e.dateFormat(c,b),a.max!==b&&(a.max=b))}}showInput(a){const d="min"===a?this.minDateBox:this.maxDateBox;if((a="min"===a?this.minInput:this.maxInput)&&d&&this.inputGroup){const b="text"===a.type,{translateX:c,translateY:e}=this.inputGroup,{inputBoxWidth:f}=this.options;m(a,{width:b?d.width+(f?-2:20)+"px":"auto",height:d.height- 2+"px",border:"2px solid silver"});b&&f?m(a,{left:c+d.x+"px",top:e+"px"}):m(a,{left:Math.min(Math.round(d.x+c-(a.offsetWidth-d.width)/2),this.chart.chartWidth-a.offsetWidth)+"px",top:e-(a.offsetHeight-d.height)/2+"px"})}}hideInput(a){(a="min"===a?this.minInput:this.maxInput)&&m(a,{top:"-9999em",border:0,width:"1px",height:"1px"})}defaultInputDateParser(a,d,b){var c=a.split("/").join("-").split(" ").join("T");-1===c.indexOf("T")&&(c+="T00:00");if(d)c+="Z";else{var e;if(e=J.isSafari)e=c,e=!(6=e?`+${C(-e)}:00`:`-${C(e)}:00`)}c=Date.parse(c);x(c)||(a=a.split("-"),c=Date.UTC(y(a[0]),y(a[1])-1,y(a[2])));b&&d&&x(c)&&(c+=b.getTimezoneOffset(c));return c}drawInput(a){function d(){const {maxInput:c,minInput:d}=f,e=b.xAxis[0];var g=b.scroller&&b.scroller.xAxis?b.scroller.xAxis:e;const k=g.dataMin;g=g.dataMax;let h=f.getInputValue(a);h!==Number(t.getAttribute("data-hc-time-previous"))&& x(h)&&(t.setAttribute("data-hc-time-previous",h),p&&c&&x(k)?h>Number(c.getAttribute("data-hc-time"))?h=void 0:hg&&(h=g)),"undefined"!==typeof h&&e.setExtremes(p?h:e.min,p?e.max:h,void 0,void 0,{trigger:"rangeSelectorInput"}))}const {chart:b,div:c,inputGroup:e}=this,f=this,h=b.renderer.style||{};var l=b.renderer;const n=b.options.rangeSelector,p="min"===a;var r=B.lang[p?"rangeSelectorFrom":"rangeSelectorTo"]||"";r=l.label(r,0).addClass("highcharts-range-label").attr({padding:r? 2:0,height:r?n.inputBoxHeight:0}).add(e);l=l.label("",0).addClass("highcharts-range-input").attr({padding:2,width:n.inputBoxWidth,height:n.inputBoxHeight,"text-align":"center"}).on("click",function(){f.showInput(a);f[a+"Input"].focus()});b.styledMode||l.attr({stroke:n.inputBoxBorderColor,"stroke-width":1});l.add(e);const t=q("input",{name:a,className:"highcharts-range-selector"},void 0,c);t.setAttribute("type",u(n.inputDateFormat||"%e %b %Y"));b.styledMode||(r.css(I(h,n.labelStyle)),l.css(I({color:"#333333"}, h,n.inputStyle)),m(t,g({position:"absolute",border:0,boxShadow:"0 0 15px rgba(0,0,0,0.3)",width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:h.fontSize,fontFamily:h.fontFamily,top:"-9999em"},n.inputStyle)));t.onfocus=()=>{f.showInput(a)};t.onblur=()=>{t===J.doc.activeElement&&d();f.hideInput(a);f.setInputValue(a);t.blur()};let v=!1;t.onchange=()=>{v||(d(),f.hideInput(a),t.blur())};t.onkeypress=a=>{13===a.keyCode&&d()};t.onkeydown=a=>{v=!0;38!==a.keyCode&&40!==a.keyCode||d()};t.onkeyup= ()=>{v=!1};return{dateBox:l,input:t,label:r}}getPosition(){var a=this.chart;const d=a.options.rangeSelector;a="top"===d.verticalAlign?a.plotTop-a.axisOffset[0]:0;return{buttonTop:a+d.buttonPosition.y,inputTop:a+d.inputPosition.y-10}}getYTDExtremes(a,d,b){const c=this.chart.time;var e=new c.Date(a);const f=c.get("FullYear",e);b=b?c.Date.UTC(f,0,1):+new c.Date(f,0,1);d=Math.max(d,b);e=e.getTime();return{max:Math.min(a||e,e),min:d}}render(a,d){var b=this.chart,c=b.renderer;const e=b.container;var g= b.options;const h=g.rangeSelector,l=f(g.chart.style&&g.chart.style.zIndex,0)+1;g=h.inputEnabled;if(!1!==h.enabled){this.rendered||(this.group=c.g("range-selector-group").attr({zIndex:7}).add(),this.div=q("div",void 0,{position:"relative",height:0,zIndex:l}),this.buttonOptions.length&&this.renderButtons(),e.parentNode&&e.parentNode.insertBefore(this.div,e),g&&(this.inputGroup=c.g("input-group").add(this.group),c=this.drawInput("min"),this.minDateBox=c.dateBox,this.minLabel=c.label,this.minInput=c.input, c=this.drawInput("max"),this.maxDateBox=c.dateBox,this.maxLabel=c.label,this.maxInput=c.input));if(g&&(this.setInputValue("min",a),this.setInputValue("max",d),a=b.scroller&&b.scroller.getUnionExtremes()||b.xAxis[0]||{},p(a.dataMin)&&p(a.dataMax)&&(b=b.xAxis[0].minRange||0,this.setInputExtremes("min",a.dataMin,Math.min(a.dataMax,this.getInputValue("max"))-b),this.setInputExtremes("max",Math.max(a.dataMin,this.getInputValue("min"))+b,a.dataMax)),this.inputGroup)){let a=0;[this.minLabel,this.minDateBox, this.maxLabel,this.maxDateBox].forEach(b=>{if(b){const {width:c}=b.getBBox();c&&(b.attr({x:a}),a+=c+h.inputSpacing)}})}this.alignElements();this.rendered=!0}}renderButtons(){const {buttons:a,chart:d,options:b}=this,c=B.lang,g=d.renderer,h=I(b.buttonTheme),l=h&&h.states,m=h.width||28;delete h.width;delete h.states;this.buttonGroup=g.g("range-selector-buttons").add(this.group);const n=this.dropdown=q("select",void 0,{position:"absolute",width:"1px",height:"1px",padding:0,border:0,top:"-9999em",cursor:"pointer", opacity:.0001},this.div);t(n,"touchstart",()=>{n.style.fontSize="16px"});[[J.isMS?"mouseover":"mouseenter"],[J.isMS?"mouseout":"mouseleave"],["change","click"]].forEach(([b,c])=>{t(n,b,()=>{const d=a[this.currentButtonIndex()];d&&e(d.element,c||b)})});this.zoomText=g.label(c&&c.rangeSelectorZoom||"",0).attr({padding:b.buttonTheme.padding,height:b.buttonTheme.height,paddingLeft:0,paddingRight:0}).add(this.buttonGroup);this.chart.styledMode||(this.zoomText.css(b.labelStyle),h["stroke-width"]=f(h["stroke-width"], 0));q("option",{textContent:this.zoomText.textStr,disabled:!0},void 0,n);this.buttonOptions.forEach((b,c)=>{q("option",{textContent:b.title||b.text},void 0,n);a[c]=g.button(b.text,0,0,a=>{const d=b.events&&b.events.click;let e;d&&(e=d.call(b,a));!1!==e&&this.clickButton(c);this.isActive=!0},h,l&&l.hover,l&&l.select,l&&l.disabled).attr({"text-align":"center",width:m}).add(this.buttonGroup);b.title&&a[c].attr("title",b.title)})}alignElements(){const {buttonGroup:a,buttons:d,chart:b,group:c,inputGroup:e, options:g,zoomText:h}=this;var l=b.options;const m=l.exporting&&!1!==l.exporting.enabled&&l.navigation&&l.navigation.buttonOptions,{buttonPosition:n,inputPosition:p,verticalAlign:r}=g;l=(a,c)=>m&&this.titleCollision(b)&&"top"===r&&"right"===c.align&&c.y-a.getBBox().height-12<(m.y||0)+(m.height||0)+b.spacing[0]?-40:0;var t=b.plotLeft;if(c&&n&&p){var q=n.x-b.spacing[3];if(a){this.positionButtons();if(!this.initialButtonGroupWidth){let a=0;h&&(a+=h.getBBox().width+5);d.forEach((b,c)=>{a+=b.width;c!== d.length-1&&(a+=g.buttonSpacing)});this.initialButtonGroupWidth=a}t-=b.spacing[3];this.updateButtonStates();var u=l(a,n);this.alignButtonGroup(u);c.placed=a.placed=b.hasLoaded}u=0;e&&(u=l(e,p),"left"===p.align?q=t:"right"===p.align&&(q=-Math.max(b.axisOffset[1],-u)),e.align({y:p.y,width:e.getBBox().width,align:p.align,x:p.x+q-2},!0,b.spacingBox),e.placed=b.hasLoaded);this.handleCollision(u);c.align({verticalAlign:r},!0,b.spacingBox);l=c.alignAttr.translateY;t=c.getBBox().height+20;q=0;"bottom"=== r&&(q=(q=b.legend&&b.legend.options)&&"bottom"===q.verticalAlign&&q.enabled&&!q.floating?b.legend.legendHeight+f(q.margin,10):0,t=t+q-20,q=l-t-(g.floating?0:g.y)-(b.titleOffset?b.titleOffset[2]:0)-10);if("top"===r)g.floating&&(q=0),b.titleOffset&&b.titleOffset[0]&&(q=b.titleOffset[0]),q+=b.margin[0]-b.spacing[0]||0;else if("middle"===r)if(p.y===n.y)q=l;else if(p.y||n.y)q=0>p.y||0>n.y?q-Math.min(p.y,n.y):l-t;c.translate(g.x,g.y+Math.floor(q));const {minInput:k,maxInput:m,dropdown:w}=this;g.inputEnabled&& k&&m&&(k.style.marginTop=c.translateY+"px",m.style.marginTop=c.translateY+"px");w&&(w.style.marginTop=c.translateY+"px")}}alignButtonGroup(a,d){const {chart:b,options:c,buttonGroup:e}=this,{buttonPosition:g}=c,h=b.plotLeft-b.spacing[3];let l=g.x-b.spacing[3];"right"===g.align?l+=a-h:"center"===g.align&&(l-=h/2);e&&e.align({y:g.y,width:f(d,this.initialButtonGroupWidth),align:g.align,x:l},!0,b.spacingBox)}positionButtons(){const {buttons:a,chart:d,options:b,zoomText:c}=this,e=d.hasLoaded?"animate": "attr",{buttonPosition:g}=b,h=d.plotLeft;let l=h;c&&"hidden"!==c.visibility&&(c[e]({x:f(h+g.x,h)}),l+=g.x+c.getBBox().width+5);for(let c=0,d=this.buttonOptions.length;c{let a=0;this.buttons.forEach(b=>{b=b.getBBox();b.width>a&&(a=b.width)});return a},l=d=>{if(c&&b){const f= c.alignAttr.translateX+c.alignOptions.x-a+c.getBBox().x+2,h=c.alignOptions.width,k=b.alignAttr.translateX+b.getBBox().x;return k+d>f&&f+h>k&&e.y{c&&b&&c.attr({translateX:c.alignAttr.translateX+(d.axisOffset[1]>=-a?0:-a),translateY:c.alignAttr.translateY+b.getBBox().height+10})};if(b){if("always"===f){this.collapseButtons(a);l(h())&&m();return}"never"===f&&this.expandButtons()}c&&b?g.align===e.align||l(this.initialButtonGroupWidth+20)?"responsive"===f?(this.collapseButtons(a), l(h())&&m()):m():"responsive"===f&&this.expandButtons():b&&"responsive"===f&&(this.initialButtonGroupWidth>d.plotWidth?this.collapseButtons(a):this.expandButtons())}collapseButtons(a){const {buttons:d,buttonOptions:b,chart:c,dropdown:e,options:g,zoomText:h}=this,l=c.userOptions.rangeSelector&&c.userOptions.rangeSelector.buttonTheme||{},m=a=>({text:a?`${a} \u25be`:"\u25be",width:"auto",paddingLeft:f(g.buttonTheme.paddingLeft,l.padding,8),paddingRight:f(g.buttonTheme.paddingRight,l.padding,8)});h&& h.hide();let n=!1;b.forEach((a,b)=>{b=d[b];2!==b.state?b.hide():(b.show(),b.attr(m(a.text)),n=!0)});n||(e&&(e.selectedIndex=0),d[0].show(),d[0].attr(m(this.zoomText&&this.zoomText.textStr)));const {align:p}=g.buttonPosition;this.positionButtons();"right"!==p&&"center"!==p||this.alignButtonGroup(a,d[this.currentButtonIndex()].getBBox().width);this.showDropdown()}expandButtons(){const {buttons:a,buttonOptions:d,options:b,zoomText:c}=this;this.hideDropdown();c&&c.show();d.forEach((c,d)=>{d=a[d];d.show(); d.attr({text:c.text,width:b.buttonTheme.width||28,paddingLeft:f(b.buttonTheme.paddingLeft,"unset"),paddingRight:f(b.buttonTheme.paddingRight,"unset")});2>d.state&&d.setState(0)});this.positionButtons()}currentButtonIndex(){const {dropdown:a}=this;return a&&0e&&0>c||0a()),a.eventsToUnbind=void 0);n(a.buttons);d&&(d.onfocus=d.onblur=d.onchange=null);b&&(b.onfocus=b.onblur=b.onchange=null);M(a,function(b,d){b&&"chart"!==d&&(b instanceof G?b.destroy():b instanceof S.HTMLElement&&h(b));b!==l.prototype[d]&&(a[d]=null)},this)}}g(l.prototype,{defaultButtons:[{type:"month",count:1,text:"1m", title:"View 1 month"},{type:"month",count:3,text:"3m",title:"View 3 months"},{type:"month",count:6,text:"6m",title:"View 6 months"},{type:"ytd",text:"YTD",title:"View year to date"},{type:"year",count:1,text:"1y",title:"View 1 year"},{type:"all",text:"All",title:"View all"}],inputTypeFormats:{"datetime-local":"%Y-%m-%dT%H:%M:%S",date:"%Y-%m-%d",time:"%H:%M:%S"}});"";return l});L(a,"Core/Axis/OrdinalAxis.js",[a["Core/Axis/Axis.js"],a["Core/Globals.js"],a["Core/Series/Series.js"],a["Core/Utilities.js"]], function(a,A,J,K){const {addEvent:u,correctFloat:D,css:E,defined:B,error:t,pick:q,timeUnits:m}=K,p=[];var n;(function(a){function g(a,c,d,e,f=[],g=0,h){const b={},k=this.options.tickPixelInterval;var l=this.chart.time,n=[],p;let r;let q;var w=0;let u=[],v=-Number.MAX_VALUE;if(!this.options.ordinal&&!this.options.breaks||!f||3>f.length||"undefined"===typeof c)return l.getTimeTicks.apply(l,arguments);const z=f.length;for(p=0;pd;f[p]5*g||q){if(f[p]> v){for(r=l.getTimeTicks(a,f[w],f[p],e);r.length&&r[0]<=v;)r.shift();r.length&&(v=r[r.length-1]);n.push(u.length);u=u.concat(r)}w=p+1}if(q)break}if(r){f=r.info;if(h&&f.unitRange<=m.hour){p=u.length-1;for(w=1;wd?w-1:w;for(a=void 0;p--;)n=l[p],w=Math.abs(a-n),a&&w<.8*k&&(null===x||w<.8*x)?(b[u[p]]&&!b[u[p+1]]?(w=p+1,a=n):w=p,u.splice(w,1)):a=n}return u}function e(a){const b=this.ordinal.positions;if(!b)return a;let d=b.length-1,e;0>a?a=b[0]:a>d?a=b[d]:(d=Math.floor(a),e=a-d);return"undefined"!==typeof e&&"undefined"!==typeof b[d]?b[d]+(e?e*(b[d+1]-b[d]):0):a}function h(a){var b=this.ordinal,d=b.positions;if(!d)return a;var e=D((a-(this.old?this.old.min:this.min))*(this.old? this.old.transA:this.transA)+this.minPixelPadding);a>=d[0]&&a<=d[d.length-1]||(b.extendedOrdinalPositions||(b.extendedOrdinalPositions=b.getExtendedPositions()),d=b.extendedOrdinalPositions);if(d&&d.length){a=d.indexOf(a);b=-1!==a?a:D(b.getIndexOfPoint(e,d));e=D(b%1);if(0<=b&&b<=d.length-1)return d[Math.floor(b)]+e*(d[Math.ceil(b)]-d[Math.floor(b)]);e=d.length;a=d[0];d=d[e-1];const c=(d-a)/(e-1);return 0>b?a+c*b:d+c*(b-e)}return a}function n(b,c){const d=a.Additions.findIndexOf(b,c,!0);return b[d]=== c?d:d+(c-b[d])/(b[d+1]-b[d])}function G(){this.ordinal||(this.ordinal=new a.Additions(this))}function C(){this.isXAxis&&B(this.options.overscroll)&&this.max===this.dataMax&&(!this.chart.mouseIsDown||this.isInternal)&&(!this.eventArgs||this.eventArgs&&"navigator"!==this.eventArgs.trigger)&&(this.max+=this.options.overscroll,!this.isInternal&&B(this.userMin)&&(this.min+=this.options.overscroll))}function f(){this.horiz&&!this.isDirty&&(this.isDirty=this.isOrdinal&&this.chart.navigator&&!this.chart.navigator.adaptToUpdatedData)} function y(){this.ordinal&&(this.ordinal.beforeSetTickPositions(),this.tickInterval=this.ordinal.postProcessTickInterval(this.tickInterval))}function r(a){const b=this.xAxis[0],d=b.options.overscroll,e=a.originalEvent.chartX,f=this.options.chart.panning;let g=!1;if(f&&"y"!==f.type&&b.options.ordinal&&b.series.length){var h=this.mouseDownX;const a=b.getExtremes(),c=a.dataMax,f=a.min,k=a.max;var l=this.hoverPoints,n=b.closestPointRange||b.ordinal&&b.ordinal.overscrollPointsRange;h=Math.round((h-e)/ (b.translationSlope*(b.ordinal.slope||n)));n=b.ordinal.getExtendedPositions();var m={ordinal:{positions:n,extendedOrdinalPositions:n}};n=b.index2val;const p=b.val2lin;let r;m.ordinal.positions?1h?(l=m,r=b.ordinal.positions?b:m):(l=b.ordinal.positions?b:m,r=m),m=r.ordinal.positions,c>m[m.length-1]&&m.push(c),this.fixedRange=k-f,h=b.navigatorAxis.toFixedRange(void 0,void 0,n.apply(l,[p.apply(l,[f,!0])+h]),n.apply(r,[p.apply(r,[k,!0])+h])),h.min>= Math.min(a.dataMin,f)&&h.max<=Math.max(c,k)+d&&b.setExtremes(h.min,h.max,!0,!1,{trigger:"pan"}),this.mouseDownX=e,E(this.container,{cursor:"move"})):g=!0}else g=!0;g||f&&/y/.test(f.type)?d&&(b.max=b.dataMax+d):a.preventDefault()}function l(){const a=this.xAxis;a&&a.options.ordinal&&(delete a.ordinal.index,delete a.ordinal.extendedOrdinalPositions)}function v(a,c){const b=this.ordinal;var d=b.positions;let e=b.slope,f=b.extendedOrdinalPositions;if(!d)return a;var g=d.length;if(d[0]<=a&&d[g-1]>=a)a= n(d,a);else{f||(f=b.getExtendedPositions&&b.getExtendedPositions(),b.extendedOrdinalPositions=f);if(!f||!f.length)return a;g=f.length;e||(e=(f[g-1]-f[0])/g);d=n(f,d[0]);a=a>=f[0]&&a<=f[g-1]?n(f,a)-d:ax||f-p[p.length-1]>x)&&(t=!0)}else a.options.overscroll&&(2===l?r=p[1]-p[0]:1===l?(r=a.options.overscroll,p=[p[0],p[0]+r]):r=c.overscrollPointsRange);t||a.forceOrdinal?(a.options.overscroll&&(c.overscrollPointsRange=r,p=p.concat(c.getOverscrollPositions())),c.positions=p,x=a.ordinal2lin(Math.max(e,p[0]),!0),m=Math.max(a.ordinal2lin(Math.min(f,p[p.length-1]),!0),1),c.slope=f=(f-e)/(m-x),c.offset=e-x*f):(c.overscrollPointsRange=q(a.closestPointRange,c.overscrollPointsRange), c.positions=a.ordinal.slope=c.offset=void 0)}a.isOrdinal=d&&t;c.groupIntervalFactor=null}static findIndexOf(a,c,d){let b=0,e=a.length-1,f;for(;b!!a.isInside)};let g;b.series.forEach(a=>{var b;const c=null===(b=a.points)||void 0===b?void 0:b[0];B(null===c||void 0===c?void 0:c.plotX)&&(c.plotX\u25cf {series.name}
High: {point.high}
Low: {point.low}
Close: {point.close}
'},threshold:null,states:{hover:{lineWidth:3}},stickyTracking:!0}}); L(a,"Series/HLC/HLCSeries.js",[a["Series/HLC/HLCPoint.js"],a["Series/HLC/HLCSeriesDefaults.js"],a["Core/Series/SeriesRegistry.js"],a["Core/Utilities.js"]],function(a,A,J,K){const {column:u}=J.seriesTypes,{extend:D,merge:E}=K;class B extends u{constructor(){super(...arguments);this.yData=this.points=this.options=this.data=void 0}extendStem(a,q,m){const p=a[0];a=a[1];"number"===typeof p[2]&&(p[2]=Math.max(m+q,p[2]));"number"===typeof a[2]&&(a[2]=Math.min(m-q,a[2]))}getPointPath(a,q){q=q.strokeWidth(); const m=a.series,p=q%2/2,n=Math.round(a.plotX)-p,h=Math.round(a.shapeArgs.width/2),g=[["M",n,Math.round(a.yBottom)],["L",n,Math.round(a.plotHigh)]];null!==a.close&&(a=Math.round(a.plotClose)+p,g.push(["M",n,a],["L",n+h,a]),m.extendStem(g,q/2,a));return g}drawSinglePoint(a){var q=a.series;const m=q.chart;let p=a.graphic;"undefined"!==typeof a.plotY&&(p||(a.graphic=p=m.renderer.path().add(q.group)),m.styledMode||p.attr(q.pointAttribs(a,a.selected&&"select")),q=q.getPointPath(a,p),p[p?"animate":"attr"]({d:q}).addClass(a.getClassName(), !0))}drawPoints(){this.points.forEach(this.drawSinglePoint)}init(){super.init.apply(this,arguments);this.options.stacking=void 0}pointAttribs(a,q){a=super.pointAttribs.call(this,a,q);delete a.fill;return a}toYData(a){return[a.high,a.low,a.close]}translate(){const a=this,q=a.yAxis,m=this.pointArrayMap&&this.pointArrayMap.slice()||[],p=m.map(a=>`plot${a.charAt(0).toUpperCase()+a.slice(1)}`);p.push("yBottom");m.push("low");super.translate.apply(a);a.points.forEach(function(n){m.forEach(function(h,g){h= n[h];null!==h&&(a.dataModify&&(h=a.dataModify.modifyValue(h)),n[p[g]]=q.toPixels(h,!0))});n.tooltipPos[1]=n.plotHigh+q.pos-a.chart.plotTop})}}B.defaultOptions=E(u.defaultOptions,A);D(B.prototype,{pointClass:a,animate:null,directTouch:!1,pointArrayMap:["high","low","close"],pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"},pointValKey:"close"});J.registerSeriesType("hlc",B);return B});L(a,"Series/OHLC/OHLCPoint.js",[a["Core/Series/SeriesRegistry.js"]],function(a){({seriesTypes:{hlc:a}}= a);class u extends a.prototype.pointClass{constructor(){super(...arguments);this.series=this.plotOpen=this.options=this.open=void 0}getClassName(){return super.getClassName.call(this)+(this.open\u25cf {series.name}
Open: {point.open}
High: {point.high}
Low: {point.low}
Close: {point.close}
'}}});L(a,"Series/OHLC/OHLCSeries.js",[a["Series/OHLC/OHLCPoint.js"],a["Series/OHLC/OHLCSeriesDefaults.js"],a["Core/Series/SeriesRegistry.js"],a["Core/Utilities.js"]],function(a, A,J,K){function u(a){a=a.options;const h=a.dataGrouping;h&&a.useOhlcData&&"highcharts-navigator-series"!==a.id&&(h.approximation="ohlc")}function D(a){a=a.options;a.useOhlcData&&"highcharts-navigator-series"!==a.id&&t(this,{pointValKey:p.prototype.pointValKey,pointArrayMap:p.prototype.pointArrayMap,toYData:p.prototype.toYData})}const {seriesTypes:{hlc:E}}=J,{addEvent:B,extend:t,merge:q}=K,m=[];class p extends E{constructor(){super(...arguments);this.points=this.options=this.data=void 0}static compose(a, ...h){K.pushUnique(m,a)&&(B(a,"afterSetOptions",u),B(a,"init",D))}getPointPath(a,h){const g=super.getPointPath(a,h);h=h.strokeWidth();const e=h%2/2,m=Math.round(a.plotX)-e,n=Math.round(a.shapeArgs.width/2);null!==a.open&&(a=Math.round(a.plotOpen)+e,g.push(["M",m,a],["L",m-n,a]),super.extendStem(g,h/2,a));return g}pointAttribs(a,h){h=super.pointAttribs.call(this,a,h);const g=this.options;delete h.fill;!a.options.color&&g.upColor&&a.openm&&(t-=Math.round((p-m)/2),m=p);g=a[u](t,q,m,p);if(h&&n){let e=h;"circle"===u?e=t+m/2:(t=g[0],m=g[1],"M"===t[0]&&"L"===m[0]&&(e=(t[1]+m[1])/2));g.push(["M",e,q>n?q:q+p],["L",h, n]);g=g.concat(a.circle(h-1,n-1,2,2))}return g}}const D=[];u.compose=function(u){-1===D.indexOf(u)&&(D.push(u),u=u.prototype.symbols,u.flag=A,G(u,"circle"),G(u,"square"));u=a.getRendererType();D.indexOf(u)&&D.push(u)}})(u||(u={}));return u});L(a,"Series/OnSeriesComposition.js",[a["Series/Column/ColumnSeries.js"],a["Core/Series/Series.js"],a["Core/Utilities.js"]],function(a,A,J){const {prototype:u}=a,{prototype:G}=A,{defined:D,stableSort:E}=J;var B;(function(a){function q(a){return G.getPlotBox.call(this.options.onSeries&& this.chart.get(this.options.onSeries)||this,a)}function m(){u.translate.apply(this);const a=this;var h=a.options,g=a.chart;const e=a.points;var m=h.onSeries;const p=(m=m&&g.get(m))&&m.options.step,q=m&&m.points,t=g.inverted,f=a.xAxis,y=a.yAxis;g=e.length-1;let r;h=h.onKey||"y";let l=q&&q.length,v=0,d,b,c,k;if(m&&m.visible&&l){v=(m.pointXOffset||0)+(m.barW||0)/2;var w=m.currentDataGrouping;b=q[l-1].x+(w?w.totalRange:0);E(e,(a,b)=>a.x-b.x);for(h="plot"+h[0].toUpperCase()+h.substr(1);l--&&e[g]&&!(d= q[l],w=e[g],w.y=d.y,d.x<=w.x&&"undefined"!==typeof d[h]&&(w.x<=b&&(w.plotY=d[h],d.xg)););}e.forEach((b,c)=>{let d;b.plotX+=v;if("undefined"===typeof b.plotY||t)0<=b.plotX&&b.plotX<=f.len?t?(b.plotY=f.translate(b.x,0,1,0,1),b.plotX=D(b.y)?y.translate(b.y,0,0,0,1):0):b.plotY=(f.opposite?0:a.yAxis.len)+f.offset:b.shapeArgs={};(r=e[c-1])&&r.plotX===b.plotX&&("undefined"===typeof r.stackIndex&& (r.stackIndex=0),d=r.stackIndex+1);b.stackIndex=d});this.onSeries=m}const p=[];a.compose=function(a){if(J.pushUnique(p,a)){const h=a.prototype;h.getPlotBox=q;h.translate=m}return a};a.getPlotBox=q;a.translate=m})(B||(B={}));return B});L(a,"Series/Flags/FlagsSeries.js",[a["Series/Flags/FlagsPoint.js"],a["Series/Flags/FlagsSeriesDefaults.js"],a["Series/Flags/FlagsSymbols.js"],a["Core/Globals.js"],a["Series/OnSeriesComposition.js"],a["Core/Renderer/RendererUtilities.js"],a["Core/Series/SeriesRegistry.js"], a["Core/Renderer/SVG/SVGElement.js"],a["Core/Utilities.js"]],function(a,A,J,K,G,D,E,B,t){({noop:K}=K);const {distribute:q}=D,{series:m,seriesTypes:{column:p}}=E,{addEvent:n,defined:h,extend:g,merge:e,objectEach:u,wrap:I}=t;class L extends p{constructor(){super(...arguments);this.points=this.options=this.data=void 0}animate(a){a&&this.setClip()}drawPoints(){var a=this.points,f=this.chart;const g=f.renderer,m=f.inverted,l=this.options,n=l.y,d=this.yAxis,b={},c=[];let k,p;let t,x;let A,E,G;for(t=a.length;t--;){x= a[t];E=(m?x.plotY:x.plotX)>this.xAxis.len;k=x.plotX;var D=x.stackIndex;var J=x.options.shape||l.shape;p=x.plotY;"undefined"!==typeof p&&(p=x.plotY+n-("undefined"!==typeof D&&D*l.stackDistance));x.anchorX=D?void 0:x.plotX;A=D?void 0:x.plotY;G="flag"!==J;D=x.graphic;"undefined"!==typeof p&&0<=k&&!E?(D&&x.hasNewShapeType()&&(D=D.destroy()),D||(D=x.graphic=g.label("",null,null,J,null,null,l.useHTML).addClass("highcharts-point").add(this.markerGroup),x.graphic.div&&(x.graphic.div.point=x),D.isNew=!0), D.attr({align:G?"center":"left",width:l.width,height:l.height,"text-align":l.textAlign}),f.styledMode||D.attr(this.pointAttribs(x)).css(e(l.style,x.style)).shadow(l.shadow),0l+c.width)&&(E?n=q=e(n,l,l+c.width):b=!0);b||v.push(["M",n,p],["L",q,t])}):A.forEach(function(a){let b;n=a.pos;q=n+a.len;p=t=Math.round(m+c.height-G);"pass"!==E&&(pm+c.height)&&(E?p=t=e(p,m,m+c.height):b=!0);b||v.push(["M",n,p],["L",q,t])})),a.path=0B&&u=c&&(y=-(q.translateX+ f.width-c));q.attr({x:p+y,y:m,anchorX:g?p:this.opposite?0:d.chartWidth,anchorY:g?this.opposite?d.chartHeight:0:m+f.height/2})}});B.prototype.forceCropping=function(){const a=this.chart,b=this.options.dataGrouping;return!1!==this.allowDG&&b&&r(b.enabled,a.options.isStock)};g(A,"update",function(a){a=a.options;"scrollbar"in a&&this.navigator&&(y(!0,this.options.scrollbar,a.scrollbar),this.navigator.update({}),delete a.scrollbar)});return v});L(a,"masters/modules/stock.src.js",[a["Core/Globals.js"], a["Series/DataModifyComposition.js"],a["Stock/Navigator/Navigator.js"],a["Stock/RangeSelector/RangeSelector.js"],a["Stock/Scrollbar/Scrollbar.js"],a["Core/Axis/OrdinalAxis.js"],a["Series/OHLC/OHLCSeries.js"],a["Series/Flags/FlagsSeries.js"],a["Core/Chart/StockChart.js"]],function(a,A,J,K,G,D,E,B,t){a.Navigator=J;a.RangeSelector=K;a.Scrollbar=G;a.StockChart=a.stockChart=t.stockChart;A.compose(a.Series,a.Axis,a.Point);B.compose(a.Renderer);J.compose(a.Axis,a.Chart,a.Series);E.compose(a.Series);D.compose(a.Axis, a.Series,a.Chart);K.compose(a.Axis,a.Chart);G.compose(a.Axis)});L(a,"masters/highstock.src.js",[a["masters/highcharts.src.js"]],function(a){a.product="Highstock";return a});a["masters/highstock.src.js"]._modules=a;return a["masters/highstock.src.js"]}); //# sourceMappingURL=highstock.js.map