(self.webpackChunk=self.webpackChunk||[]).push([[271],{78840:function(t){var e,i;e="undefined"==typeof window?this:window,i=()=>(()=>{"use strict";let t,e;var i,s,o,r,n,a,l,h,d,c,p,u,g,m,f,x,y,b,v={d:(t,e)=>{for(var i in e)v.o(e,i)&&!v.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e)},w={};v.d(w,{default:()=>pc}),function(t){t.SVG_NS="http://www.w3.org/2000/svg",t.product="Highcharts",t.version="12.2.0",t.win="undefined"!=typeof window?window:{},t.doc=t.win.document,t.svg=!!t.doc?.createElementNS?.(t.SVG_NS,"svg")?.createSVGRect,t.pageLang=t.doc?.documentElement?.closest("[lang]")?.lang,t.userAgent=t.win.navigator?.userAgent||"",t.isChrome=t.win.chrome,t.isFirefox=-1!==t.userAgent.indexOf("Firefox"),t.isMS=/(edge|msie|trident)/i.test(t.userAgent)&&!t.win.opera,t.isSafari=!t.isChrome&&-1!==t.userAgent.indexOf("Safari"),t.isTouchDevice=/(Mobile|Android|Windows Phone)/.test(t.userAgent),t.isWebKit=-1!==t.userAgent.indexOf("AppleWebKit"),t.deg2rad=2*Math.PI/360,t.marginNames=["plotTop","marginRight","marginBottom","plotLeft"],t.noop=function(){},t.supportsPassiveEvents=function(){let e=!1;if(!t.isMS){let i=Object.defineProperty({},"passive",{get:function(){e=!0}});t.win.addEventListener&&t.win.removeEventListener&&(t.win.addEventListener("testPassive",t.noop,i),t.win.removeEventListener("testPassive",t.noop,i))}return e}(),t.charts=[],t.composed=[],t.dateFormats={},t.seriesTypes={},t.symbolSizes={},t.chartCount=0}(i||(i={}));let M=i,{charts:k,doc:S,win:T}=M;function A(t,e,i,s){let o=e?"Highcharts error":"Highcharts warning";32===t&&(t=`${o}: Deprecated member`);let r=I(t),n=r?`${o} #${t}: www.highcharts.com/errors/${t}/`:t.toString();if(void 0!==s){let t="";r&&(n+="?"),H(s,(function(e,i){t+=`\n - ${i}: ${e}`,r&&(n+=encodeURI(i)+"="+encodeURI(e))})),n+=t}V(M,"displayError",{chart:i,code:t,message:n,params:s},(function(){if(e)throw Error(n);T.console&&-1===A.messages.indexOf(n)&&console.warn(n)})),A.messages.push(n)}function C(t,e){return parseInt(t,e||10)}function P(t){return"string"==typeof t}function L(t){let e=Object.prototype.toString.call(t);return"[object Array]"===e||"[object Array Iterator]"===e}function E(t,e){return!(!t||"object"!=typeof t||e&&L(t))}function O(t){return E(t)&&"number"==typeof t.nodeType}function D(t){let e=t?.constructor;return!(!E(t,!0)||O(t)||!e?.name||"Object"===e.name)}function I(t){return"number"==typeof t&&!isNaN(t)&&t<1/0&&t>-1/0}function z(t){return null!=t}function B(t,e,i){let s,o=P(e)&&!z(i),r=(e,i)=>{z(e)?t.setAttribute(i,e):o?(s=t.getAttribute(i))||"class"!==i||(s=t.getAttribute(i+"Name")):t.removeAttribute(i)};return P(e)?r(i,e):H(e,r),s}function N(t){return L(t)?t:[t]}function R(t,e){let i;for(i in t||(t={}),e)t[i]=e[i];return t}function j(){let t=arguments,e=t.length;for(let i=0;i1e14?t:parseFloat(t.toPrecision(e||14))}(A||(A={})).messages=[],Math.easeInOutSine=function(t){return-.5*(Math.cos(Math.PI*t)-1)};let X=Array.prototype.find?function(t,e){return t.find(e)}:function(t,e){let i,s=t.length;for(i=0;it.order-e.order)),s.forEach((e=>{!1===e.fn.call(t,i)&&i.preventDefault()}))}s&&!i.defaultPrevented&&s.call(t,i)}let Y=function(){let e=Math.random().toString(36).substring(2,9)+"-",i=0;return function(){return"highcharts-"+(t?"":e)+i++}}();T.jQuery&&(T.jQuery.fn.highcharts=function(){let t=[].slice.call(arguments);if(this[0])return t[0]?(new(M[P(t[0])?t.shift():"Chart"])(this[0],t[0],t[1]),this):k[B(this[0],"data-highcharts-chart")]});let _={addEvent:function(t,e,i,s={}){let o="function"==typeof t&&t.prototype||t;Object.hasOwnProperty.call(o,"hcEvents")||(o.hcEvents={});let r=o.hcEvents;M.Point&&t instanceof M.Point&&t.series&&t.series.chart&&(t.series.chart.runTrackerClick=!0);let n=t.addEventListener;n&&n.call(t,e,i,!!M.supportsPassiveEvents&&{passive:void 0===s.passive?-1!==e.indexOf("touch"):s.passive,capture:!1}),r[e]||(r[e]=[]);let a={fn:i,order:"number"==typeof s.order?s.order:1/0};return r[e].push(a),r[e].sort(((t,e)=>t.order-e.order)),function(){U(t,e,i)}},arrayMax:function(t){let e=t.length,i=t[0];for(;e--;)t[e]>i&&(i=t[e]);return i},arrayMin:function(t){let e=t.length,i=t[0];for(;e--;)t[e]e?t-1&&o[l]){i=N(i),r[l]=[];for(let e=0;e({center:.5,right:1,middle:.5,bottom:1}[t]||0),getClosestDistance:function(t,e){let i,s,o,r,n=!e;return t.forEach((t=>{if(t.length>1)for(r=s=t.length-1;r>0;r--)(o=t[r]-t[r-1])<0&&!n?(e?.(),e=void 0):o&&(void 0===i||o=i-1&&(i=Math.floor(s)),Math.max(0,i-(t(e,"padding-left",!0)||0)-(t(e,"padding-right",!0)||0))}if("height"===i)return Math.max(0,Math.min(e.offsetHeight,e.scrollHeight)-(t(e,"padding-top",!0)||0)-(t(e,"padding-bottom",!0)||0));let r=T.getComputedStyle(e,void 0);return r&&(o=r.getPropertyValue(i),j(s,"opacity"!==i)&&(o=C(o))),o},insertItem:function(t,e){let i,s=t.options.index,o=e.length;for(i=t.options.isInternal?o:0;i=t))&&(o||!(a<=(e[r]+(e[r+1]||e[r]))/2)));r++);return F(n*i,-Math.round(Math.log(.001)/Math.LN10))},objectEach:H,offset:function(t){let e=S.documentElement,i=t.parentElement||t.parentNode?t.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:i.top+(T.pageYOffset||e.scrollTop)-(e.clientTop||0),left:i.left+(T.pageXOffset||e.scrollLeft)-(e.clientLeft||0),width:i.width,height:i.height}},pad:function(t,e,i){return Array((e||2)+1-String(t).replace("-","").length).join(i||"0")+t},pick:j,pInt:C,pushUnique:function(t,e){return 0>t.indexOf(e)&&!!t.push(e)},relativeLength:function(t,e,i){return/%$/.test(t)?e*parseFloat(t)/100+(i||0):parseFloat(t)},removeEvent:U,replaceNested:function(t,...e){let i,s;do{for(s of(i=t,e))t=t.replace(s[0],s[1])}while(t!==i);return t},splat:N,stableSort:function(t,e){let i,s,o=t.length;for(s=0;s0?setTimeout(t,e,i):(t.call(0,i),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},ucfirst:function(t){return P(t)?t.substring(0,1).toUpperCase()+t.substring(1):String(t)},uniqueKey:Y,useSerialIds:function(e){return t=j(e,t)},wrap:function(t,e,i){let s=t[e];t[e]=function(){let t=arguments,e=this;return i.apply(this,[function(){return s.apply(e,arguments.length?arguments:t)}].concat([].slice.call(arguments)))}}},{pageLang:Z,win:$}=M,{defined:q,error:K,extend:J,isNumber:Q,isObject:tt,isString:et,merge:it,objectEach:st,pad:ot,splat:rt,timeUnits:nt,ucfirst:at}=_,lt=M.isSafari&&$.Intl&&!$.Intl.DateTimeFormat.prototype.formatRange,ht=class{constructor(t,e){this.options={timezone:"UTC"},this.variableTimezone=!1,this.Date=$.Date,this.update(t),this.lang=e}update(t={}){this.dTLCache={},this.options=t=it(!0,this.options,t);let{timezoneOffset:e,useUTC:i}=t;this.Date=t.Date||$.Date||Date;let s=t.timezone;q(i)&&(s=i?"UTC":void 0),e&&e%60==0&&(s="Etc/GMT"+(e>0?"+":"")+e/60),this.variableTimezone="UTC"!==s&&0!==s?.indexOf("Etc/GMT"),this.timezone=s,["months","shortMonths","weekdays","shortWeekdays"].forEach((t=>{let e=/months/i.test(t),i=/short/.test(t),s={timeZone:"UTC"};s[e?"month":"weekday"]=i?"short":"long",this[t]=(e?[0,1,2,3,4,5,6,7,8,9,10,11]:[3,4,5,6,7,8,9]).map((t=>this.dateFormat(s,24*(e?31:1)*36e5*t)))}))}toParts(t){let[e,i,s,o,r,n,a]=this.dateTimeFormat({weekday:"narrow",day:"numeric",month:"numeric",year:"numeric",hour:"numeric",minute:"numeric",second:"numeric"},t,"es").split(/(?:, | |\/|:)/g);return[o,+s-1,i,r,n,a,Math.floor(Number(t)||0)%1e3,"DLMXJVS".indexOf(e)].map(Number)}dateTimeFormat(t,e,i=this.options.locale||Z){let s=JSON.stringify(t)+i;et(t)&&(t=this.str2dtf(t));let o=this.dTLCache[s];if(!o){t.timeZone??(t.timeZone=this.timezone);try{o=new Intl.DateTimeFormat(i,t)}catch(e){/Invalid time zone/i.test(e.message)?(K(34),t.timeZone="UTC",o=new Intl.DateTimeFormat(i,t)):K(e.message,!1)}}return this.dTLCache[s]=o,o?.format(e)||""}str2dtf(t,e={}){let i={L:{fractionalSecondDigits:3},S:{second:"2-digit"},M:{minute:"numeric"},H:{hour:"2-digit"},k:{hour:"numeric"},E:{weekday:"narrow"},a:{weekday:"short"},A:{weekday:"long"},d:{day:"2-digit"},e:{day:"numeric"},b:{month:"short"},B:{month:"long"},m:{month:"2-digit"},o:{month:"numeric"},y:{year:"2-digit"},Y:{year:"numeric"}};return Object.keys(i).forEach((s=>{-1!==t.indexOf(s)&&J(e,i[s])})),e}makeTime(t,e,i=1,s=0,o,r,n){let a=this.Date.UTC(t,e,i,s,o||0,r||0,n||0);if("UTC"!==this.timezone){let t=this.getTimezoneOffset(a);if(a+=t,-1!==[2,3,8,9,10,11].indexOf(e)&&(s<5||s>20)){let e=this.getTimezoneOffset(a);t!==e?a+=e-t:t-36e5!==this.getTimezoneOffset(a-36e5)||lt||(a-=36e5)}}return a}parse(t){if(!et(t))return t??void 0;let e=(t=t.replace(/\//g,"-").replace(/(GMT|UTC)/,"")).indexOf("Z")>-1||/([+-][0-9]{2}):?[0-9]{2}$/.test(t),i=/^[0-9]{4}-[0-9]{2}(-[0-9]{2}|)$/.test(t);e||i||(t+="Z");let s=Date.parse(t);return Q(s)?s+(!e||i?this.getTimezoneOffset(s):0):void 0}getTimezoneOffset(t){if("UTC"!==this.timezone){let[e,i,s,o,r=0]=this.dateTimeFormat({timeZoneName:"shortOffset"},t,"en").split(/(GMT|:)/).map(Number),n=-36e5*(s+r/60);if(Q(n))return n}return 0}dateFormat(t,e,i){let s=this.lang;if(!q(e)||isNaN(e))return s?.invalidDate||"";if(et(t=t??"%Y-%m-%d %H:%M:%S")){let i,o=/%\[([a-zA-Z]+)\]/g;for(;i=o.exec(t);)t=t.replace(i[0],this.dateTimeFormat(i[1],e,s?.locale))}if(et(t)&&-1!==t.indexOf("%")){let i=this,[o,r,n,a,l,h,d,c]=this.toParts(e),p=s?.weekdays||this.weekdays,u=s?.shortWeekdays||this.shortWeekdays,g=s?.months||this.months,m=s?.shortMonths||this.shortMonths;st(J({a:u?u[c]:p[c].substr(0,3),A:p[c],d:ot(n),e:ot(n,2," "),w:c,v:s?.weekFrom??"",b:m[r],B:g[r],m:ot(r+1),o:r+1,y:o.toString().substr(2,2),Y:o,H:ot(a),k:a,I:ot(a%12||12),l:a%12||12,M:ot(l),p:a<12?"AM":"PM",P:a<12?"am":"pm",S:ot(h),L:ot(d,3)},M.dateFormats),(function(s,o){if(et(t))for(;-1!==t.indexOf("%"+o);)t=t.replace("%"+o,"function"==typeof s?s.call(i,e):s)}))}else if(tt(t)){let i=(this.getTimezoneOffset(e)||0)/36e5,s=this.timezone||"Etc/GMT"+(i>=0?"+":"")+i,{prefix:o="",suffix:r=""}=t;t=o+this.dateTimeFormat(J({timeZone:s},t),e)+r}return i?at(t):t}resolveDTLFormat(t){return tt(t,!0)?tt(t,!0)&&(t=>void 0===t.main)(t)?{main:t}:t:{main:(t=rt(t))[0],from:t[1],to:t[2]}}getDateFormat(t,e,i,s){let o=this.dateFormat("%m-%d %H:%M:%S.%L",e),r="01-01 00:00:00.000",n={millisecond:15,second:12,minute:9,hour:6,day:3},a="millisecond",l=a;for(a in nt){if(t&&t===nt.week&&+this.dateFormat("%w",e)===i&&o.substr(6)===r.substr(6)){a="week";break}if(t&&nt[a]>t){a=l;break}if(n[a]&&o.substr(n[a])!==r.substr(n[a]))break;"week"!==a&&(l=a)}return this.resolveDTLFormat(s[a]).main}},{defined:dt,extend:ct,timeUnits:pt}=_,ut=class extends ht{getTimeTicks(t,e,i,s){let o,r=this,n=[],a={},{count:l=1,unitRange:h}=t,[d,c,p,u,g,m]=r.toParts(e),f=(e||0)%1e3;if(s??(s=1),dt(e)){if(f=h>=pt.second?0:l*Math.floor(f/l),h>=pt.second&&(m=h>=pt.minute?0:l*Math.floor(m/l)),h>=pt.minute&&(g=h>=pt.hour?0:l*Math.floor(g/l)),h>=pt.hour&&(u=h>=pt.day?0:l*Math.floor(u/l)),h>=pt.day&&(p=h>=pt.month?1:Math.max(1,l*Math.floor(p/l))),h>=pt.month&&(c=h>=pt.year?0:l*Math.floor(c/l)),h>=pt.year&&(d-=d%l),h===pt.week){l&&(e=r.makeTime(d,c,p,u,g,m,f));let t=this.dateTimeFormat({timeZone:this.timezone,weekday:"narrow"},e,"es"),i="DLMXJVS".indexOf(t);p+=-i+s+(i4*pt.month||r.getTimezoneOffset(e)!==r.getTimezoneOffset(i));let t=e,x=1;for(;t1?t=r.makeTime(d,c,p,u+x*l):t+=h*l:t=r.makeTime(d,c,p+x*l*(h===pt.day?1:7)),x++;n.push(t),h<=pt.hour&&n.length<1e4&&n.forEach((t=>{t%18e5==0&&"000000000"===r.dateFormat("%H%M%S%L",t)&&(a[t]="day")}))}return n.info=ct(t,{higherRanks:a,totalRange:h*l}),n}},{isTouchDevice:gt}=M,{fireEvent:mt,merge:ft}=_,xt={colors:["#2caffe","#544fc5","#00e272","#fe6a35","#6b8abc","#d568fb","#2ee0ca","#fa4b42","#feb56a","#91e8e1"],symbols:["circle","diamond","square","triangle","triangle-down"],lang:{weekFrom:"week from",chartTitle:"Chart title",locale:void 0,loading:"Loading...",months:void 0,seriesName:"Series {add index 1}",shortMonths:void 0,weekdays:void 0,numericSymbols:["k","M","G","T","P","E"],pieSliceName:"Slice",resetZoom:"Reset zoom",yAxisTitle:"Values",resetZoomTitle:"Reset zoom level 1:1"},global:{buttonTheme:{fill:"#f7f7f7",padding:8,r:2,stroke:"#cccccc","stroke-width":1,style:{color:"#333333",cursor:"pointer",fontSize:"0.8em",fontWeight:"normal"},states:{hover:{fill:"#e6e6e6"},select:{fill:"#e6e9ff",style:{color:"#000000",fontWeight:"bold"}},disabled:{style:{color:"#cccccc"}}}}},time:{Date:void 0,timezone:"UTC",timezoneOffset:0,useUTC:void 0},chart:{alignThresholds:!1,panning:{enabled:!1,type:"x"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:"line",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}}},width:null,height:null,borderColor:"#334eff",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"},title:{style:{color:"#333333",fontWeight:"bold"},text:"Chart title",margin:15,minScale:.67},subtitle:{style:{color:"#666666",fontSize:"0.8em"},text:""},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",events:{},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:{duration:300,easing:t=>Math.sqrt(1-Math.pow(t-1,2))},borderRadius:3,dateTimeLabelFormats:{millisecond:"%[AebHMSL]",second:"%[AebHMS]",minute:"%[AebHM]",hour:"%[AebHM]",day:"%[AebY]",week:"%v %[AebY]",month:"%[BY]",year:"%Y"},footerFormat:"",headerShape:"callout",hideDelay:500,padding:8,position:{x:0,y:3},shared:!1,snap:gt?25:10,headerFormat:'{ucfirst point.key}
',pointFormat:' {series.name}: {point.y}
',backgroundColor:"#ffffff",borderWidth:void 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"}},yt=new ut(xt.time,xt.lang),bt={defaultOptions:xt,defaultTime:yt,getOptions:function(){return xt},setOptions:function(t){return mt(M,"setOptions",{options:t}),ft(!0,xt,t),t.time&&yt.update(xt.time),t.lang&&"locale"in t.lang&&yt.update({locale:t.lang.locale}),t.lang?.chartTitle&&(xt.title={...xt.title,text:t.lang.chartTitle}),xt}},{win:vt}=M,{isNumber:wt,isString:Mt,merge:kt,pInt:St,defined:Tt}=_,At=(t,e,i)=>`color-mix(in srgb,${t},${e} ${100*i}%)`,Ct=t=>Mt(t)&&!!t&&"none"!==t;class Pt{static parse(t){return t?new Pt(t):Pt.None}constructor(t){let e,i,s,o;this.rgba=[NaN,NaN,NaN,NaN],this.input=t;let r=M.Color;if(r&&r!==Pt)return new r(t);if("object"==typeof t&&void 0!==t.stops)this.stops=t.stops.map((t=>new Pt(t[1])));else if("string"==typeof t)for(this.input=t=Pt.names[t.toLowerCase()]||t,s=Pt.parsers.length;s--&&!i;)(e=(o=Pt.parsers[s]).regex.exec(t))&&(i=o.parse(e));i&&(this.rgba=i)}get(t){let e=this.input,i=this.rgba;if(this.output)return this.output;if("object"==typeof e&&void 0!==this.stops){let i=kt(e);return i.stops=[].slice.call(i.stops),this.stops.forEach(((e,s)=>{i.stops[s]=[i.stops[s][0],e.get(t)]})),i}return i&&wt(i[0])?"rgb"===t||!t&&1===i[3]?"rgb("+i[0]+","+i[1]+","+i[2]+")":"a"===t?`${i[3]}`:"rgba("+i.join(",")+")":e}brighten(t){let e=this.rgba;if(this.stops)this.stops.forEach((function(e){e.brighten(t)}));else if(wt(t)&&0!==t)if(wt(e[0]))for(let i=0;i<3;i++)e[i]+=St(255*t),e[i]<0&&(e[i]=0),e[i]>255&&(e[i]=255);else Pt.useColorMix&&Ct(this.input)&&(this.output=At(this.input,t>0?"white":"black",Math.abs(t)));return this}setOpacity(t){return this.rgba[3]=t,this}tweenTo(t,e){let i=this.rgba,s=t.rgba;if(!wt(i[0])||!wt(s[0]))return Pt.useColorMix&&Ct(this.input)&&Ct(t.input)&&e<.99?At(this.input,t.input,e):t.input||"none";let o=1!==s[3]||1!==i[3],r=(t,s)=>t+(i[s]-t)*(1-e),n=s.slice(0,3).map(r).map(Math.round);return o&&n.push(r(s[3],3)),(o?"rgba(":"rgb(")+n.join(",")+")"}}Pt.names={white:"#ffffff",black:"#000000"},Pt.parsers=[{regex:/rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d?(?:\.\d+)?)\s*\)/,parse:function(t){return[St(t[1]),St(t[2]),St(t[3]),parseFloat(t[4],10)]}},{regex:/rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/,parse:function(t){return[St(t[1]),St(t[2]),St(t[3]),1]}},{regex:/^#([a-f0-9])([a-f0-9])([a-f0-9])([a-f0-9])?$/i,parse:function(t){return[St(t[1]+t[1],16),St(t[2]+t[2],16),St(t[3]+t[3],16),Tt(t[4])?St(t[4]+t[4],16)/255:1]}},{regex:/^#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})?$/i,parse:function(t){return[St(t[1],16),St(t[2],16),St(t[3],16),Tt(t[4])?St(t[4],16)/255:1]}}],Pt.useColorMix=vt.CSS?.supports("color","color-mix(in srgb,red,blue 9%)"),Pt.None=new Pt("");let{parse:Lt}=Pt,{win:Et}=M,{isNumber:Ot,objectEach:Dt}=_;class It{constructor(t,e,i){this.pos=NaN,this.options=e,this.elem=t,this.prop=i}dSetter(){let t=this.paths,e=t?.[0],i=t?.[1],s=this.now||0,o=[];if(1!==s&&e&&i)if(e.length===i.length&&s<1)for(let t=0;t=a+this.startTime?(this.now=this.end,this.pos=1,this.update(),l[this.prop]=!0,i=!0,Dt(l,(function(t){!0!==t&&(i=!1)})),i&&n&&n.call(r),e=!1):(this.pos=o.easing((s-this.startTime)/a),this.now=this.start+(this.end-this.start)*this.pos,this.update(),e=!0),e}initPath(t,e,i){let s,o,r,n,a=t.startX,l=t.endX,h=i.slice(),d=t.isArea,c=d?2:1,p=e&&i.length>e.length&&i.hasStackedCliffs,u=e?.slice();if(!u||p)return[h,h];function g(t,e){for(;t.length{let i=Xt(t.options.animation);r=jt(e)&&zt(e.defer)?s.defer:Math.max(r,i.duration+i.defer),n=Math.min(s.duration,i.duration)})),t.renderer.forExport&&(r=0),{defer:Math.max(0,r-n),duration:Math.min(r,n)}},setAnimation:function(t,e){e.renderer.globalAnimation=Ft(t,e.options.chart.animation,!0)},stop:Ht},{SVG_NS:Vt,win:Yt}=M,{attr:_t,createElement:Zt,css:$t,error:qt,isFunction:Kt,isString:Jt,objectEach:Qt,splat:te}=_,{trustedTypes:ee}=Yt,ie=ee&&Kt(ee.createPolicy)&&ee.createPolicy("highcharts",{createHTML:t=>t}),se=ie?ie.createHTML(""):"";class oe{static filterUserAttributes(t){return Qt(t,((e,i)=>{let s=!0;-1===oe.allowedAttributes.indexOf(i)&&(s=!1),-1!==["background","dynsrc","href","lowsrc","src"].indexOf(i)&&(s=Jt(e)&&oe.allowedReferences.some((t=>0===e.indexOf(t)))),s||(qt(33,!1,void 0,{"Invalid attribute in config":`${i}`}),delete t[i]),Jt(e)&&t[i]&&(t[i]=e.replace(/{let i=e.split(":").map((t=>t.trim())),s=i.shift();return s&&i.length&&(t[s.replace(/-([a-z])/g,(t=>t[1].toUpperCase()))]=i.join(":")),t}),{})}static setElementHTML(t,e){t.innerHTML=oe.emptyHTML,e&&new oe(e).addToDOM(t)}constructor(t){this.nodes="string"==typeof t?this.parseMarkup(t):t}addToDOM(t){return function t(e,i){let s;return te(e).forEach((function(e){let o,r=e.tagName,n=e.textContent?M.doc.createTextNode(e.textContent):void 0,a=oe.bypassHTMLFiltering;if(r)if("#text"===r)o=n;else if(-1!==oe.allowedTags.indexOf(r)||a){let s="svg"===r?Vt:i.namespaceURI||Vt,l=M.doc.createElementNS(s,r),h=e.attributes||{};Qt(e,(function(t,e){"tagName"!==e&&"attributes"!==e&&"children"!==e&&"style"!==e&&"textContent"!==e&&(h[e]=t)})),_t(l,a?h:oe.filterUserAttributes(h)),e.style&&$t(l,e.style),n&&l.appendChild(n),t(e.children||[],l),o=l}else qt(33,!1,void 0,{"Invalid tagName in config":r});o&&i.appendChild(o),s=o})),s}(this.nodes,t)}parseMarkup(t){let e,i=[];t=t.trim().replace(/ style=(["'])/g," data-style=$1");try{e=(new DOMParser).parseFromString(ie?ie.createHTML(t):t,"text/html")}catch(t){}if(!e){let i=Zt("div");i.innerHTML=t,e={body:i}}let s=(t,e)=>{let i=t.nodeName.toLowerCase(),o={tagName:i};"#text"===i&&(o.textContent=t.textContent||"");let r=t.attributes;if(r){let t={};[].forEach.call(r,(e=>{"data-style"===e.name?o.style=oe.parseStyle(e.value):t[e.name]=e.value})),o.attributes=t}if(t.childNodes.length){let e=[];[].forEach.call(t.childNodes,(t=>{s(t,e)})),e.length&&(o.children=e)}e.push(o)};return[].forEach.call(e.body.childNodes,(t=>s(t,i))),i}}oe.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","filterUnits","flood-color","flood-opacity","height","href","id","in","in2","markerHeight","markerWidth","offset","opacity","operator","orient","padding","paddingLeft","paddingRight","patternUnits","r","radius","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"],oe.allowedReferences=["https://","http://","mailto:","/","../","./","#"],oe.allowedTags=["a","abbr","b","br","button","caption","circle","clipPath","code","dd","defs","div","dl","dt","em","feComponentTransfer","feComposite","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feMorphology","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"],oe.emptyHTML=se,oe.bypassHTMLFiltering=!1;let{defaultOptions:re,defaultTime:ne}=bt,{pageLang:ae}=M,{extend:le,getNestedProperty:he,isArray:de,isNumber:ce,isObject:pe,isString:ue,pick:ge,ucfirst:me}=_,fe={add:(t,e)=>t+e,divide:(t,e)=>0!==e?t/e:"",eq:(t,e)=>t==e,each:function(t){let e=arguments[arguments.length-1];return!!de(t)&&t.map(((i,s)=>be(e.body,le(pe(i)?i:{"@this":i},{"@index":s,"@first":0===s,"@last":s===t.length-1})))).join("")},ge:(t,e)=>t>=e,gt:(t,e)=>t>e,if:t=>!!t,le:(t,e)=>t<=e,lt:(t,e)=>tt*e,ne:(t,e)=>t!=e,subtract:(t,e)=>t-e,ucfirst:me,unless:t=>!t},xe={},ye=t=>/^["'].+["']$/.test(t);function be(t="",e,i){let s,o,r,n=/\{([a-zA-Z\u00C0-\u017F\d:\.,;\-\/<>\[\]%_@+"'’= #\(\)]+)\}/g,a=/\(([a-zA-Z\u00C0-\u017F\d:\.,;\-\/<>\[\]%_@+"'= ]+)\)/g,l=[],h=/f$/,d=/\.(\d)/,c=i?.options?.lang||re.lang,p=i?.time||ne,u=i?.numberFormatter||ve,g=(t="")=>{let i;return"true"===t||"false"!==t&&((i=Number(t)).toString()===t?i:ye(t)?t.slice(1,-1):he(t,e))},m=0;for(;null!==(s=n.exec(t));){let i=s,n=a.exec(s[1]);n&&(s=n,r=!0),o?.isBlock||(o={ctx:e,expression:s[1],find:s[0],isBlock:"#"===s[1].charAt(0),start:s.index,startInner:s.index+s[0].length,length:s[0].length});let h=(o.isBlock?i:s)[1].split(" ")[0].replace("#","");fe[h]&&(o.isBlock&&h===o.fn&&m++,o.fn||(o.fn=h));let d="else"===s[1];if(o.isBlock&&o.fn&&(s[1]===`/${o.fn}`||d))if(m)!d&&m--;else{let e=o.startInner,i=t.substr(e,s.index-e);void 0===o.body?(o.body=i,o.startInner=s.index+s[0].length):o.elseBody=i,o.find+=i+s[0],d||(l.push(o),o=void 0)}else o.isBlock||l.push(o);if(n&&!o?.isBlock)break}return l.forEach((s=>{let o,r,{body:n,elseBody:l,expression:m,fn:f}=s;if(f){let t,a=[s],h=[],d=m.length,c=0;for(r=0;r<=d;r++){let e=m.charAt(r);t||'"'!==e&&"'"!==e?t===e&&(t=""):t=e,t||" "!==e&&r!==d||(h.push(m.substr(c,r-c)),c=r+1)}for(r=fe[f].length;r--;)a.unshift(g(h[r+1]));o=fe[f].apply(e,a),s.isBlock&&"boolean"==typeof o&&(o=be(o?n:l,e,i))}else{let t=ye(m)?[m]:m.split(":");if(o=g(t.shift()||""),t.length&&"number"==typeof o){let e=t.join(":");if(h.test(e)){let t=parseInt((e.match(d)||["","-1"])[1],10);null!==o&&(o=u(o,t,c.decimalPoint,e.indexOf(",")>-1?c.thousandsSep:""))}else o=p.dateFormat(e,o)}a.lastIndex=0,a.test(s.find)&&ue(o)&&(o=`"${o}"`)}t=t.replace(s.find,ge(o,""))})),r?be(t,e,i):t}function ve(t,e,i,s){e*=1;let o,r,[n,a]=(t=+t||0).toString().split("e").map(Number),l=this?.options?.lang||re.lang,h=(t.toString().split(".")[1]||"").split("e")[0].length,d=e,c={};i??(i=l.decimalPoint),s??(s=l.thousandsSep),-1===e?e=Math.min(h,20):ce(e)?e&&a<0&&((r=e+a)>=0?(n=+n.toExponential(r).split("e")[0],e=r):(n=Math.floor(n),t=e<20?+(n*Math.pow(10,a)).toFixed(e):0,a=0)):e=2,a&&(e??(e=2),t=n),ce(e)&&e>=0&&(c.minimumFractionDigits=e,c.maximumFractionDigits=e),""===s&&(c.useGrouping=!1);let p=s||i,u=p?"en":this?.locale||l.locale||ae,g=JSON.stringify(c)+u;return o=(xe[g]??(xe[g]=new Intl.NumberFormat(u,c))).format(t),p&&(o=o.replace(/([,\.])/g,"_$1").replace(/_\,/g,s??",").replace("_.",i??".")),(e||0!=+o)&&(!(a<0)||d)||(o="0"),a&&0!=+o&&(o+="e"+(a<0?"":"+")+a),o}let we={dateFormat:function(t,e,i){return ne.dateFormat(t,e,i)},format:be,helpers:fe,numberFormat:ve};!function(t){let e;t.rendererTypes={},t.getRendererType=function(i=e){return t.rendererTypes[i]||t.rendererTypes[e]},t.registerRendererType=function(i,s,o){t.rendererTypes[i]=s,(!e||o)&&(e=i,M.Renderer=s)}}(s||(s={}));let Me=s,{clamp:ke,pick:Se,pushUnique:Te,stableSort:Ae}=_;(o||(o={})).distribute=function t(e,i,s){let o,r,n,a,l,h,d=e,c=d.reducedLen||i,p=(t,e)=>t.target-e.target,u=[],g=e.length,m=[],f=u.push,x=!0,y=0;for(o=g;o--;)y+=e[o].size;if(y>c){for(Ae(e,((t,e)=>(e.rank||0)-(t.rank||0))),n=(h=e[0].rank===e[e.length-1].rank)?g/2:-1,r=h?n:g-1;n&&y>c;)a=e[o=Math.floor(r)],Te(m,o)&&(y-=a.size),r+=n,h&&r>=e.length&&(n/=2,r=n);m.sort(((t,e)=>e-t)).forEach((t=>f.apply(u,e.splice(t,1))))}for(Ae(e,p),e=e.map((t=>({size:t.size,targets:[t.target],align:Se(t.align,.5)})));x;){for(o=e.length;o--;)a=e[o],l=(Math.min.apply(0,a.targets)+Math.max.apply(0,a.targets))/2,a.pos=ke(l-a.size*a.align,0,i-a.size);for(o=e.length,x=!1;o--;)o>0&&e[o-1].pos+e[o-1].size>e[o].pos&&(e[o-1].size+=e[o].size,e[o-1].targets=e[o-1].targets.concat(e[o].targets),e[o-1].align=.5,e[o-1].pos+e[o-1].size>i&&(e[o-1].pos=i-e[o-1].size),e.splice(o,1),x=!0)}return f.apply(d,u),o=0,e.some((e=>{let r=0;return(e.targets||[]).some((()=>(d[o].pos=e.pos+r,void 0!==s&&Math.abs(d[o].pos-d[o].target)>s?(d.slice(0,o+1).forEach((t=>delete t.pos)),d.reducedLen=(d.reducedLen||i)-.1*i,d.reducedLen>.1*i&&t(d,i,s),!0):(r+=d[o].size,o++,!1))))})),Ae(d,p),d};let Ce=o,{animate:Pe,animObject:Le,stop:Ee}=Ut,{deg2rad:Oe,doc:De,svg:Ie,SVG_NS:ze,win:Be,isFirefox:Ne}=M,{addEvent:Re,attr:je,createElement:We,crisp:Ge,css:Fe,defined:Xe,erase:He,extend:Ue,fireEvent:Ve,getAlignFactor:Ye,isArray:_e,isFunction:Ze,isNumber:$e,isObject:qe,isString:Ke,merge:Je,objectEach:Qe,pick:ti,pInt:ei,pushUnique:ii,replaceNested:si,syncTimeout:oi,uniqueKey:ri}=_;class ni{_defaultGetter(t){let e=ti(this[t+"Value"],this[t],this.element?this.element.getAttribute(t):null,0);return/^-?[\d\.]+$/.test(e)&&(e=parseFloat(e)),e}_defaultSetter(t,e,i){i.setAttribute(e,t)}add(t){let e,i=this.renderer,s=this.element;return t&&(this.parentGroup=t),void 0!==this.textStr&&"text"===this.element.nodeName&&i.buildText(this),this.added=!0,(!t||t.handleZ||this.zIndex)&&(e=this.zIndexSetter()),e||(t?t.element:i.box).appendChild(s),this.onAdd&&this.onAdd(),this}addClass(t,e){let i=e?"":this.attr("class")||"";return(t=(t||"").split(/ /g).reduce((function(t,e){return-1===i.indexOf(e)&&t.push(e),t}),i?[i]:[]).join(" "))!==i&&this.attr("class",t),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(t,e,i,s=!0){let o=this.renderer,r=o.alignedObjects,n=!!t;t?(this.alignOptions=t,this.alignByTranslate=e,this.alignTo=i):(t=this.alignOptions||{},e=this.alignByTranslate,i=this.alignTo);let a=!i||Ke(i)?i||"renderer":void 0;a&&(n&&ii(r,this),i=void 0);let l=ti(i,o[a],o),h=(l.x||0)+(t.x||0)+((l.width||0)-(t.width||0))*Ye(t.align),d=(l.y||0)+(t.y||0)+((l.height||0)-(t.height||0))*Ye(t.verticalAlign),c={"text-align":t?.align};return c[e?"translateX":"x"]=Math.round(h),c[e?"translateY":"y"]=Math.round(d),s&&(this[this.placed?"animate":"attr"](c),this.placed=!0),this.alignAttr=c,this}alignSetter(t){let e={left:"start",center:"middle",right:"end"};e[t]&&(this.alignValue=t,this.element.setAttribute("text-anchor",e[t]))}animate(t,e,i){let s=Le(ti(e,this.renderer.globalAnimation,!0)),o=s.defer;return De.hidden&&(s.duration=0),0!==s.duration?(i&&(s.complete=i),oi((()=>{this.element&&Pe(this,t,s)}),o)):(this.attr(t,void 0,i||s.complete),Qe(t,(function(t,e){s.step&&s.step.call(this,t,{prop:e,pos:1,elem:this})}),this)),this}applyTextOutline(t){let e=this.element;-1!==t.indexOf("contrast")&&(t=t.replace(/contrast/g,this.renderer.getContrast(e.style.fill)));let i=t.indexOf(" "),s=t.substring(i+1),o=t.substring(0,i);if(o&&"none"!==o&&M.svg){this.fakeTS=!0,o=o.replace(/(^[\d\.]+)(.*?)$/g,(function(t,e,i){return 2*Number(e)+i})),this.removeTextOutline();let t=De.createElementNS(ze,"tspan");je(t,{class:"highcharts-text-outline",fill:s,stroke:s,"stroke-width":o,"stroke-linejoin":"round"});let i=e.querySelector("textPath")||e;[].forEach.call(i.childNodes,(e=>{let i=e.cloneNode(!0);i.removeAttribute&&["fill","stroke","stroke-width","stroke"].forEach((t=>i.removeAttribute(t))),t.appendChild(i)}));let r=0;[].forEach.call(i.querySelectorAll("text tspan"),(t=>{r+=Number(t.getAttribute("dy"))}));let n=De.createElementNS(ze,"tspan");n.textContent="​",je(n,{x:Number(e.getAttribute("x")),dy:-r}),t.appendChild(n),i.insertBefore(t,i.firstChild)}}attr(t,e,i,s){let o,r,n,{element:a}=this,l=ni.symbolCustomAttribs,h=this;return"string"==typeof t&&void 0!==e&&(o=t,(t={})[o]=e),"string"==typeof t?h=(this[t+"Getter"]||this._defaultGetter).call(this,t,a):(Qe(t,(function(e,i){n=!1,s||Ee(this,i),this.symbolName&&-1!==l.indexOf(i)&&(r||(this.symbolAttr(t),r=!0),n=!0),this.rotation&&("x"===i||"y"===i)&&(this.doTransform=!0),n||(this[i+"Setter"]||this._defaultSetter).call(this,e,i,a)}),this),this.afterSetters()),i&&i.call(this),h}clip(t){if(t&&!t.clipPath){let e=ri()+"-",i=this.renderer.createElement("clipPath").attr({id:e}).add(this.renderer.defs);Ue(t,{clipPath:i,id:e,count:0}),t.add(i)}return this.attr("clip-path",t?`url(${this.renderer.url}#${t.id})`:"none")}crisp(t,e){e=Math.round(e||t.strokeWidth||0);let i=t.x||this.x||0,s=t.y||this.y||0,o=(t.width||this.width||0)+i,r=(t.height||this.height||0)+s,n=Ge(i,e),a=Ge(s,e);return Ue(t,{x:n,y:a,width:Ge(o,e)-n,height:Ge(r,e)-a}),Xe(t.strokeWidth)&&(t.strokeWidth=e),t}complexColor(t,e,i){let s,o,r,n,a,l,h,d,c,p,u,g=this.renderer,m=[];Ve(this.renderer,"complexColor",{args:arguments},(function(){if(t.radialGradient?o="radialGradient":t.linearGradient&&(o="linearGradient"),o){if(r=t[o],a=g.gradients,l=t.stops,c=i.radialReference,_e(r)&&(t[o]=r={x1:r[0],y1:r[1],x2:r[2],y2:r[3],gradientUnits:"userSpaceOnUse"}),"radialGradient"===o&&c&&!Xe(r.gradientUnits)&&(n=r,r=Je(r,g.getRadialAttr(c,n),{gradientUnits:"userSpaceOnUse"})),Qe(r,(function(t,e){"id"!==e&&m.push(e,t)})),Qe(l,(function(t){m.push(t)})),a[m=m.join(",")])p=a[m].attr("id");else{r.id=p=ri();let t=a[m]=g.createElement(o).attr(r).add(g.defs);t.radAttr=n,t.stops=[],l.forEach((function(e){0===e[1].indexOf("rgba")?(h=(s=Pt.parse(e[1])).get("rgb"),d=s.get("a")):(h=e[1],d=1);let i=g.createElement("stop").attr({offset:e[0],"stop-color":h,"stop-opacity":d}).add(t);t.stops.push(i)}))}u="url("+g.url+"#"+p+")",i.setAttribute(e,u),i.gradient=m,t.toString=function(){return u}}}))}css(t){let e,i=this.styles,s={},o=this.element,r=!i;if(i&&Qe(t,(function(t,e){i&&i[e]!==t&&(s[e]=t,r=!0)})),r){i&&(t=Ue(i,s)),null===t.width||"auto"===t.width?delete this.textWidth:"text"===o.nodeName.toLowerCase()&&t.width&&(e=this.textWidth=ei(t.width)),Ue(this.styles,t),e&&!Ie&&this.renderer.forExport&&delete t.width;let r=Ne&&t.fontSize||null;r&&($e(r)||/^\d+$/.test(r))&&(t.fontSize+="px");let n=Je(t);o.namespaceURI===this.SVG_NS&&(["textOutline","textOverflow","whiteSpace","width"].forEach((t=>n&&delete n[t])),n.color&&(n.fill=n.color,delete n.color)),Fe(o,n)}return this.added&&("text"===this.element.nodeName&&this.renderer.buildText(this),t.textOutline&&this.applyTextOutline(t.textOutline)),this}dashstyleSetter(t){let e,i=this["stroke-width"];if("inherit"===i&&(i=1),t){let s=(t=t.toLowerCase()).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(e=s.length;e--;)s[e]=""+ei(s[e])*ti(i,NaN);t=s.join(",").replace(/NaN/g,"none"),this.element.setAttribute("stroke-dasharray",t)}}destroy(){let t,e,i=this,s=i.element||{},o=i.renderer,r=s.ownerSVGElement,n="SPAN"===s.nodeName&&i.parentGroup||void 0;if(s.onclick=s.onmouseout=s.onmouseover=s.onmousemove=s.point=null,Ee(i),i.clipPath&&r){let t=i.clipPath;[].forEach.call(r.querySelectorAll("[clip-path],[CLIP-PATH]"),(function(e){e.getAttribute("clip-path").indexOf(t.element.id)>-1&&e.removeAttribute("clip-path")})),i.clipPath=t.destroy()}if(i.stops){for(e=0;e{(i[e]?.parentGroup===i||-1!==["connector","foreignObject"].indexOf(e))&&i[e]?.destroy?.(),delete i[e]}))}dSetter(t,e,i){_e(t)&&("string"==typeof t[0]&&(t=this.renderer.pathToSegments(t)),this.pathArray=t,t=t.reduce(((t,e,i)=>e?.join?(i?t+" ":"")+e.join(" "):(e||"").toString()),"")),/(NaN| {2}|^$)/.test(t)&&(t="M 0 0"),this[e]!==t&&(i.setAttribute(e,t),this[e]=t)}fillSetter(t,e,i){"string"==typeof t?i.setAttribute(e,t):t&&this.complexColor(t,e,i)}hrefSetter(t,e,i){i.setAttributeNS("http://www.w3.org/1999/xlink",e,t)}getBBox(t,e){let i,s,o,r,{alignValue:n,element:a,renderer:l,styles:h,textStr:d}=this,{cache:c,cacheKeys:p}=l,u=a.namespaceURI===this.SVG_NS,g=ti(e,this.rotation,0),m=l.styledMode?a&&ni.prototype.getStyle.call(a,"font-size"):h.fontSize;if(Xe(d)&&(-1===(r=d.toString()).indexOf("<")&&(r=r.replace(/\d/g,"0")),r+=["",l.rootFontSize,m,g,this.textWidth,n,h.lineClamp,h.textOverflow,h.fontWeight].join(",")),r&&!t&&(i=c[r]),!i||i.polygon){if(u||l.forExport){try{o=this.fakeTS&&function(t){let e=a.querySelector(".highcharts-text-outline");e&&Fe(e,{display:t})},Ze(o)&&o("none"),i=a.getBBox?Ue({},a.getBBox()):{width:a.offsetWidth,height:a.offsetHeight,x:0,y:0},Ze(o)&&o("")}catch(t){}(!i||i.width<0)&&(i={x:0,y:0,width:0,height:0})}else i=this.htmlGetBBox();s=i.height,u&&(i.height=s={"11px,17":14,"13px,20":16}[`${m||""},${Math.round(s)}`]||s),g&&(i=this.getRotatedBox(i,g));let e={bBox:i};Ve(this,"afterGetBBox",e),i=e.bBox}if(r&&(""===d||i.height>0)){for(;p.length>250;)delete c[p.shift()];c[r]||p.push(r),c[r]=i}return i}getRotatedBox(t,e){let{x:i,y:s,width:o,height:r}=t,{alignValue:n,translateY:a,rotationOriginX:l=0,rotationOriginY:h=0}=this,d=Ye(n),c=Number(this.element.getAttribute("y")||0)-(a?0:s),p=e*Oe,u=(e-90)*Oe,g=Math.cos(p),m=Math.sin(p),f=o*g,x=o*m,y=Math.cos(u),b=Math.sin(u),[[v,w],[M,k]]=[l,h].map((t=>[t-t*g,t*m])),S=i+d*(o-f)+v+k+c*y,T=S+f,A=T-r*y,C=A-f,P=s+c-d*x-w+M+c*b,L=P+x,E=L-r*b,O=E-x,D=Math.min(S,T,A,C),I=Math.min(P,L,E,O);return{x:D,y:I,width:Math.max(S,T,A,C)-D,height:Math.max(P,L,E,O)-I,polygon:[[S,P],[T,L],[A,E],[C,O]]}}getStyle(t){return Be.getComputedStyle(this.element||this,"").getPropertyValue(t)}hasClass(t){return-1!==(""+this.attr("class")).split(" ").indexOf(t)}hide(){return this.attr({visibility:"hidden"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(t,e){this.onEvents={},this.opacity=1,this.SVG_NS=ze,this.element="span"===e||"body"===e?We(e):De.createElementNS(this.SVG_NS,e),this.renderer=t,this.styles={},Ve(this,"afterInit")}on(t,e){let{onEvents:i}=this;return i[t]&&i[t](),i[t]=Re(this.element,t,e),this}opacitySetter(t,e,i){let s=Number(Number(t).toFixed(3));this.opacity=s,i.setAttribute(e,s)}reAlign(){this.alignOptions?.width&&"left"!==this.alignOptions.align&&(this.alignOptions.width=this.getBBox().width,this.placed=!1,this.align())}removeClass(t){return this.attr("class",(""+this.attr("class")).replace(Ke(t)?RegExp(`(^| )${t}( |$)`):t," ").replace(/ +/g," ").trim())}removeTextOutline(){let t=this.element.querySelector("tspan.highcharts-text-outline");t&&this.safeRemoveChild(t)}safeRemoveChild(t){let e=t.parentNode;e&&e.removeChild(t)}setRadialReference(t){let e=this.element.gradient&&this.renderer.gradients[this.element.gradient]||void 0;return this.element.radialReference=t,e?.radAttr&&e.animate(this.renderer.getRadialAttr(t,e.radAttr)),this}shadow(t){let{renderer:e}=this,i=Je(90===this.parentGroup?.rotation?{offsetX:-1,offsetY:-1}:{},qe(t)?t:{}),s=e.shadowDefinition(i);return this.attr({filter:t?`url(${e.url}#${s})`:"none"})}show(t=!0){return this.attr({visibility:t?"inherit":"visible"})}"stroke-widthSetter"(t,e,i){this[e]=t,i.setAttribute(e,t)}strokeWidth(){if(!this.renderer.styledMode)return this["stroke-width"]||0;let t,e=this.getStyle("stroke-width"),i=0;return/px$/.test(e)?i=ei(e):""!==e&&(je(t=De.createElementNS(ze,"rect"),{width:e,"stroke-width":0}),this.element.parentNode.appendChild(t),i=t.getBBox().width,t.parentNode.removeChild(t)),i}symbolAttr(t){let e=this;ni.symbolCustomAttribs.forEach((function(i){e[i]=ti(t[i],e[i])})),e.attr({d:e.renderer.symbols[e.symbolName](e.x,e.y,e.width,e.height,e)})}textSetter(t){t!==this.textStr&&(delete this.textPxLength,this.textStr=t,this.added&&this.renderer.buildText(this),this.reAlign())}titleSetter(t){let e=this.element,i=e.getElementsByTagName("title")[0]||De.createElementNS(this.SVG_NS,"title");e.insertBefore?e.insertBefore(i,e.firstChild):e.appendChild(i),i.textContent=si(ti(t,""),[/<[^>]*>/g,""]).replace(/</g,"<").replace(/>/g,">")}toFront(){let t=this.element;return t.parentNode.appendChild(t),this}translate(t,e){return this.attr({translateX:t,translateY:e})}updateTransform(t="transform"){let{element:e,foreignObject:i,matrix:s,padding:o,rotation:r=0,rotationOriginX:n,rotationOriginY:a,scaleX:l,scaleY:h,text:d,translateX:c=0,translateY:p=0}=this,u=["translate("+c+","+p+")"];Xe(s)&&u.push("matrix("+s.join(",")+")"),r&&(u.push("rotate("+r+" "+(n??e.getAttribute("x")??this.x??0)+" "+(a??e.getAttribute("y")??this.y??0)+")"),"SPAN"!==d?.element.tagName||d?.foreignObject||d.attr({rotation:r,rotationOriginX:(n||0)-o,rotationOriginY:(a||0)-o})),(Xe(l)||Xe(h))&&u.push("scale("+ti(l,1)+" "+ti(h,1)+")"),u.length&&!(d||this).textPath&&(i?.element||e).setAttribute(t,u.join(" "))}visibilitySetter(t,e,i){"inherit"===t?i.removeAttribute(e):this[e]!==t&&i.setAttribute(e,t),this[e]=t}xGetter(t){return"circle"===this.element.nodeName&&("x"===t?t="cx":"y"===t&&(t="cy")),this._defaultGetter(t)}zIndexSetter(t,e){let i,s,o,r,n,a=this.renderer,l=this.parentGroup,h=(l||a).element||a.box,d=this.element,c=h===a.box,p=!1,u=this.added;if(Xe(t)?(d.setAttribute("data-z-index",t),t*=1,this[e]===t&&(u=!1)):Xe(this[e])&&d.removeAttribute("data-z-index"),this[e]=t,u){for((t=this.zIndex)&&l&&(l.handleZ=!0),n=(i=h.childNodes).length-1;n>=0&&!p;n--)r=!Xe(o=(s=i[n]).getAttribute("data-z-index")),s!==d&&(t<0&&r&&!c&&!n?(h.insertBefore(d,i[n]),p=!0):(ei(o)<=t||r&&(!Xe(t)||t>=0))&&(h.insertBefore(d,i[n+1]),p=!0));p||(h.insertBefore(d,i[3*!!c]),p=!0)}return p}}ni.symbolCustomAttribs=["anchorX","anchorY","clockwise","end","height","innerR","r","start","width","x","y"],ni.prototype.strokeSetter=ni.prototype.fillSetter,ni.prototype.yGetter=ni.prototype.xGetter,ni.prototype.matrixSetter=ni.prototype.rotationOriginXSetter=ni.prototype.rotationOriginYSetter=ni.prototype.rotationSetter=ni.prototype.scaleXSetter=ni.prototype.scaleYSetter=ni.prototype.translateXSetter=ni.prototype.translateYSetter=ni.prototype.verticalAlignSetter=function(t,e){this[e]=t,this.doTransform=!0};let ai=ni,{defined:li,extend:hi,getAlignFactor:di,isNumber:ci,merge:pi,pick:ui,removeEvent:gi}=_;class mi extends ai{constructor(t,e,i,s,o,r,n,a,l,h){let d;super(t,"g"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.doUpdate=!1,this.textStr=e,this.x=i,this.y=s,this.anchorX=r,this.anchorY=n,this.baseline=l,this.className=h,this.addClass("button"===h?"highcharts-no-tooltip":"highcharts-label"),h&&this.addClass("highcharts-"+h),this.text=t.text(void 0,0,0,a).attr({zIndex:1}),"string"==typeof o&&((d=/^url\((.*?)\)$/.test(o))||this.renderer.symbols[o])&&(this.symbolKey=o),this.bBox=mi.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=t.styledMode||d,this.deferredAttr={},this.alignFactor=0}alignSetter(t){let e=di(t);this.textAlign=t,e!==this.alignFactor&&(this.alignFactor=e,this.bBox&&ci(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(t,e){this.anchorX=t,this.boxAttr(e,Math.round(t)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(t,e){this.anchorY=t,this.boxAttr(e,t-this.ySetting)}boxAttr(t,e){this.box?this.box.attr(t,e):this.deferredAttr[t]=e}css(t){if(t){let e={};t=pi(t),mi.textProps.forEach((i=>{void 0!==t[i]&&(e[i]=t[i],delete t[i])})),this.text.css(e),"fontSize"in e||"fontWeight"in e?this.updateTextPadding():("width"in e||"textOverflow"in e)&&this.updateBoxSize()}return ai.prototype.css.call(this,t)}destroy(){gi(this.element,"mouseenter"),gi(this.element,"mouseleave"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),ai.prototype.destroy.call(this)}fillSetter(t,e){t&&(this.needsBox=!0),this.fill=t,this.boxAttr(e,t)}getBBox(t,e){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:i,height:s=0,translateX:o=0,translateY:r=0,width:n=0}=this,a=ui(this.paddingLeft,i),l=e??(this.rotation||0),h={width:n,height:s,x:o+this.bBox.x-a,y:r+this.bBox.y-i+this.baselineOffset};return l&&(h=this.getRotatedBox(h,l)),h}getCrispAdjust(){return(this.renderer.styledMode&&this.box?this.box.strokeWidth():this["stroke-width"]?parseInt(this["stroke-width"],10):0)%2/2}heightSetter(t){this.heightSetting=t,this.doUpdate=!0}afterSetters(){super.afterSetters(),this.doUpdate&&(this.updateBoxSize(),this.doUpdate=!1)}onAdd(){this.text.add(this),this.attr({text:ui(this.textStr,""),x:this.x||0,y:this.y||0}),this.box&&li(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(t,e){ci(t)?t!==this[e]&&(this[e]=t,this.updateTextPadding()):this[e]=void 0}rSetter(t,e){this.boxAttr(e,t)}strokeSetter(t,e){this.stroke=t,this.boxAttr(e,t)}"stroke-widthSetter"(t,e){t&&(this.needsBox=!0),this["stroke-width"]=t,this.boxAttr(e,t)}"text-alignSetter"(t){this.textAlign=this["text-align"]=t,this.updateTextPadding()}textSetter(t){void 0!==t&&this.text.attr({text:t}),this.updateTextPadding(),this.reAlign()}updateBoxSize(){let t,e=this.text,i={},s=this.padding,o=this.bBox=ci(this.widthSetting)&&ci(this.heightSetting)&&!this.textAlign||!li(e.textStr)?mi.emptyBBox:e.getBBox(void 0,0);this.width=this.getPaddedWidth(),this.height=(this.heightSetting||o.height||0)+2*s;let r=this.renderer.fontMetrics(e);if(this.baselineOffset=s+Math.min((this.text.firstLineMetrics||r).b,o.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-r.h)/2),this.needsBox&&!e.textPath){if(!this.box){let t=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();t.addClass(("button"===this.className?"":"highcharts-label-box")+(this.className?" highcharts-"+this.className+"-box":"")),t.add(this)}i.x=t=this.getCrispAdjust(),i.y=(this.baseline?-this.baselineOffset:0)+t,i.width=Math.round(this.width),i.height=Math.round(this.height),this.box.attr(hi(i,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let t=this.text,e=t.styles.textAlign||this.textAlign;if(!t.textPath){this.updateBoxSize();let i=this.baseline?0:this.baselineOffset,s=(this.paddingLeft??this.padding)+di(e)*(this.widthSetting??this.bBox.width);(s!==t.x||i!==t.y)&&(t.attr({align:e,x:s}),void 0!==i&&t.attr("y",i)),t.x=s,t.y=i}}widthSetter(t){this.widthSetting=ci(t)?t:void 0,this.doUpdate=!0}getPaddedWidth(){let t=this.padding,e=ui(this.paddingLeft,t),i=ui(this.paddingRight,t);return(this.widthSetting||this.bBox.width||0)+e+i}xSetter(t){this.x=t,this.alignFactor&&(t-=this.alignFactor*this.getPaddedWidth(),this["forceAnimate:x"]=!0),this.xSetting=Math.round(t),this.attr("translateX",this.xSetting)}ySetter(t){this.ySetting=this.y=Math.round(t),this.attr("translateY",this.ySetting)}}mi.emptyBBox={width:0,height:0,x:0,y:0},mi.textProps=["color","direction","fontFamily","fontSize","fontStyle","fontWeight","lineClamp","lineHeight","textAlign","textDecoration","textOutline","textOverflow","whiteSpace","width"];let{defined:fi,isNumber:xi,pick:yi}=_;function bi(t,e,i,s,o){let r=[];if(o){let n=o.start||0,a=o.end||0,l=yi(o.r,i),h=yi(o.r,s||i),d=2e-4/(o.borderRadius?1:Math.max(l,1)),c=Math.abs(a-n-2*Math.PI)0&&l0)return h;if(t+a>i-n)if(l>e+n&&le+n&&l0){let i=ls&&an&&h.splice(1,1,["L",a-6,e],["L",a,e-6],["L",a+6,e],["L",i-r,e]);return h},circle:function(t,e,i,s){return bi(t+i/2,e+s/2,i/2,s/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(t,e,i,s){return[["M",t+i/2,e],["L",t+i,e+s/2],["L",t+i/2,e+s],["L",t,e+s/2],["Z"]]},rect:vi,roundedRect:wi,square:vi,triangle:function(t,e,i,s){return[["M",t+i/2,e],["L",t+i,e+s],["L",t,e+s],["Z"]]},"triangle-down":function(t,e,i,s){return[["M",t,e],["L",t+i,e],["L",t+i/2,e+s],["Z"]]}},{doc:ki,SVG_NS:Si,win:Ti}=M,{attr:Ai,extend:Ci,fireEvent:Pi,isString:Li,objectEach:Ei,pick:Oi}=_,Di=(t,e)=>t.substring(0,e)+"…",Ii=class{constructor(t){let e=t.styles;this.renderer=t.renderer,this.svgElement=t,this.width=t.textWidth,this.textLineHeight=e?.lineHeight,this.textOutline=e?.textOutline,this.ellipsis="ellipsis"===e?.textOverflow,this.lineClamp=e?.lineClamp,this.noWrap="nowrap"===e?.whiteSpace}buildSVG(){let t=this.svgElement,e=t.element,i=t.renderer,s=Oi(t.textStr,"").toString(),o=-1!==s.indexOf("<"),r=e.childNodes,n=!t.added&&i.box,a=[s,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,t.getStyle("font-size"),t.styles.lineClamp,this.width].join(",");if(a!==t.textCache){t.textCache=a,delete t.actualWidth;for(let t=r.length;t--;)e.removeChild(r[t]);if(o||this.ellipsis||this.width||t.textPath||-1!==s.indexOf(" ")&&(!this.noWrap||//g.test(s))){if(""!==s){n&&n.appendChild(e);let i=new oe(s);this.modifyTree(i.nodes),i.addToDOM(e),this.modifyDOM(),this.ellipsis&&-1!==(e.textContent||"").indexOf("…")&&t.attr("title",this.unescapeEntities(t.textStr||"",["<",">"])),n&&n.removeChild(e)}}else e.appendChild(ki.createTextNode(this.unescapeEntities(s)));Li(this.textOutline)&&t.applyTextOutline&&t.applyTextOutline(this.textOutline)}}modifyDOM(){let t,e=this.svgElement,i=Ai(e.element,"x");for(e.firstLineMetrics=void 0;(t=e.element.firstChild)&&/^[\s\u200B]*$/.test(t.textContent||" ");)e.element.removeChild(t);[].forEach.call(e.element.querySelectorAll("tspan.highcharts-br"),((t,s)=>{t.nextSibling&&t.previousSibling&&(0===s&&1===t.previousSibling.nodeType&&(e.firstLineMetrics=e.renderer.fontMetrics(t.previousSibling)),Ai(t,{dy:this.getLineHeight(t.nextSibling),x:i}))}));let s=this.width||0;if(!s)return;let o=(t,o)=>{let r=t.textContent||"",n=r.replace(/([^\^])-/g,"$1- ").split(" "),a=!this.noWrap&&(n.length>1||e.element.childNodes.length>1),l=this.getLineHeight(o),h=Math.max(0,s-.8*l),d=0,c=e.actualWidth;if(a){let r=[],a=[];for(;o.firstChild&&o.firstChild!==t;)a.push(o.firstChild),o.removeChild(o.firstChild);for(;n.length;)if(n.length&&!this.noWrap&&d>0&&(r.push(t.textContent||""),t.textContent=n.join(" ").replace(/- /g,"-")),this.truncate(t,void 0,n,0===d&&c||0,s,h,((t,e)=>n.slice(0,e).join(" ").replace(/- /g,"-"))),c=e.actualWidth,d++,this.lineClamp&&d>=this.lineClamp){n.length&&(this.truncate(t,t.textContent||"",void 0,0,s,h,Di),t.textContent=t.textContent?.replace("…","")+"…");break}a.forEach((e=>{o.insertBefore(e,t)})),r.forEach((e=>{o.insertBefore(ki.createTextNode(e),t);let s=ki.createElementNS(Si,"tspan");s.textContent="​",Ai(s,{dy:l,x:i}),o.insertBefore(s,t)}))}else this.ellipsis&&r&&this.truncate(t,r,void 0,0,s,h,Di)},r=t=>{[].slice.call(t.childNodes).forEach((i=>{i.nodeType===Ti.Node.TEXT_NODE?o(i,t):(-1!==i.className.baseVal.indexOf("highcharts-br")&&(e.actualWidth=0),r(i))}))};r(e.element)}getLineHeight(t){let e=t.nodeType===Ti.Node.TEXT_NODE?t.parentElement:t;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(e||this.svgElement.element).h}modifyTree(t){let e=(i,s)=>{let{attributes:o={},children:r,style:n={},tagName:a}=i,l=this.renderer.styledMode;if("b"===a||"strong"===a?l?o.class="highcharts-strong":n.fontWeight="bold":("i"===a||"em"===a)&&(l?o.class="highcharts-emphasized":n.fontStyle="italic"),n?.color&&(n.fill=n.color),"br"===a){o.class="highcharts-br",i.textContent="​";let e=t[s+1];e?.textContent&&(e.textContent=e.textContent.replace(/^ +/gm,""))}else"a"===a&&r&&r.some((t=>"#text"===t.tagName))&&(i.children=[{children:r,tagName:"tspan"}]);"#text"!==a&&"a"!==a&&(i.tagName="tspan"),Ci(i,{attributes:o,style:n}),r&&r.filter((t=>"#text"!==t.tagName)).forEach(e)};t.forEach(e),Pi(this.svgElement,"afterModifyTree",{nodes:t})}truncate(t,e,i,s,o,r,n){let a,l,h=this.svgElement,{rotation:d}=h,c=[],p=i&&!s?1:0,u=(e||i||"").length,g=u;i||(o=r);let m=function(e,o){let r=o||e,n=t.parentNode;if(n&&void 0===c[r]&&n.getSubStringLength)try{c[r]=s+n.getSubStringLength(0,i?r+1:r)}catch(t){}return c[r]};if(h.rotation=0,s+(l=m(t.textContent.length))>o){for(;p<=u;)g=Math.ceil((p+u)/2),i&&(a=n(i,g)),l=m(g,a&&a.length-1),p===u?p=u+1:l>o?u=g-1:p=g;0===u?t.textContent="":e&&u===e.length-1||(t.textContent=a||n(e||i,g)),this.ellipsis&&l>o&&this.truncate(t,t.textContent||"",void 0,0,o,r,Di)}i&&i.splice(0,g),h.actualWidth=l,h.rotation=d}unescapeEntities(t,e){return Ei(this.renderer.escapes,(function(i,s){e&&-1!==e.indexOf(i)||(t=t.toString().replace(RegExp(i,"g"),s))})),t}},{defaultOptions:zi}=bt,{charts:Bi,deg2rad:Ni,doc:Ri,isFirefox:ji,isMS:Wi,isWebKit:Gi,noop:Fi,SVG_NS:Xi,symbolSizes:Hi,win:Ui}=M,{addEvent:Vi,attr:Yi,createElement:_i,crisp:Zi,css:$i,defined:qi,destroyObjectProperties:Ki,extend:Ji,isArray:Qi,isNumber:ts,isObject:es,isString:is,merge:ss,pick:os,pInt:rs,replaceNested:ns,uniqueKey:as}=_;class ls{constructor(t,e,i,s,o,r,n){let a,l;this.x=0,this.y=0;let h=this.createElement("svg").attr({version:"1.1",class:"highcharts-root"}),d=h.element;n||h.css(this.getStyle(s||{})),t.appendChild(d),Yi(t,"dir","ltr"),-1===t.innerHTML.indexOf("xmlns")&&Yi(d,"xmlns",this.SVG_NS),this.box=d,this.boxWrapper=h,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement("desc").add().element.appendChild(Ri.createTextNode("Created with Highcharts 12.2.0")),this.defs=this.createElement("defs").add(),this.allowHTML=r,this.forExport=o,this.styledMode=n,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=h.getStyle("font-size"),this.setSize(e,i,!1),ji&&t.getBoundingClientRect&&((a=function(){$i(t,{left:0,top:0}),l=t.getBoundingClientRect(),$i(t,{left:Math.ceil(l.left)-l.left+"px",top:Math.ceil(l.top)-l.top+"px"})})(),this.unSubPixelFix=Vi(Ui,"resize",a))}definition(t){return new oe([t]).addToDOM(this.defs.element)}getReferenceURL(){if((ji||Gi)&&Ri.getElementsByTagName("base").length){if(!qi(e)){let t=as(),i=new oe([{tagName:"svg",attributes:{width:8,height:8},children:[{tagName:"defs",children:[{tagName:"clipPath",attributes:{id:t},children:[{tagName:"rect",attributes:{width:4,height:4}}]}]},{tagName:"rect",attributes:{id:"hitme",width:8,height:8,"clip-path":`url(#${t})`,fill:"rgba(0,0,0,0.001)"}}]}]).addToDOM(Ri.body);$i(i,{position:"fixed",top:0,left:0,zIndex:9e5});let s=Ri.elementFromPoint(6,6);e="hitme"===s?.id,Ri.body.removeChild(i)}if(e)return ns(Ui.location.href.split("#")[0],[/<[^>]*>/g,""],[/([\('\)])/g,"\\$1"],[/ /g,"%20"])}return""}getStyle(t){return this.style=Ji({fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif',fontSize:"1rem"},t),this.style}setStyle(t){this.boxWrapper.css(this.getStyle(t))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let t=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),Ki(this.gradients||{}),this.gradients=null,this.defs=t.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(t){return new this.Element(this,t)}getRadialAttr(t,e){return{cx:t[0]-t[2]/2+(e.cx||0)*t[2],cy:t[1]-t[2]/2+(e.cy||0)*t[2],r:(e.r||0)*t[2]}}shadowDefinition(t){let e=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(t).map((e=>`${e}-${t[e]}`))].join("-").toLowerCase().replace(/[^a-z\d\-]/g,""),i=ss({color:"#000000",offsetX:1,offsetY:1,opacity:.15,width:5},t);return this.defs.element.querySelector(`#${e}`)||this.definition({tagName:"filter",attributes:{id:e,filterUnits:i.filterUnits},children:this.getShadowFilterContent(i)}),e}getShadowFilterContent(t){return[{tagName:"feDropShadow",attributes:{dx:t.offsetX,dy:t.offsetY,"flood-color":t.color,"flood-opacity":Math.min(5*t.opacity,1),stdDeviation:t.width/2}}]}buildText(t){new Ii(t).buildSVG()}getContrast(t){let e=Pt.parse(t).rgba,i=" clamp(0,calc(9e9*(0.5 - (0.2126*r + 0.7152*g + 0.0722*b))),1)";if(ts(e[0])||!Pt.useColorMix){let t=e.map((t=>{let e=t/255;return e<=.04?e/12.92:Math.pow((e+.055)/1.055,2.4)})),i=.2126*t[0]+.7152*t[1]+.0722*t[2];return 1.05/(i+.05)>(i+.05)/.05?"#FFFFFF":"#000000"}return"color(from "+t+" srgb"+i+i+i+")"}button(t,e,i,s,o={},r,n,a,l,h){let d=this.label(t,e,i,l,void 0,void 0,h,void 0,"button"),c=this.styledMode,p=arguments,u=0;o=ss(zi.global.buttonTheme,o),c&&(delete o.fill,delete o.stroke,delete o["stroke-width"]);let g=o.states||{},m=o.style||{};delete o.states,delete o.style;let f=[oe.filterUserAttributes(o)],x=[m];return c||["hover","select","disabled"].forEach(((t,e)=>{f.push(ss(f[0],oe.filterUserAttributes(p[e+5]||g[t]||{}))),x.push(f[e+1].style),delete f[e+1].style})),Vi(d.element,Wi?"mouseover":"mouseenter",(function(){3!==u&&d.setState(1)})),Vi(d.element,Wi?"mouseout":"mouseleave",(function(){3!==u&&d.setState(u)})),d.setState=(t=0)=>{if(1!==t&&(d.state=u=t),d.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass("highcharts-button-"+["normal","hover","pressed","disabled"][t]),!c){d.attr(f[t]);let e=x[t];es(e)&&d.css(e)}},d.attr(f[0]),!c&&(d.css(Ji({cursor:"default"},m)),h&&d.text.css({pointerEvents:"none"})),d.on("touchstart",(t=>t.stopPropagation())).on("click",(function(t){3!==u&&s?.call(d,t)}))}crispLine(t,e){let[i,s]=t;return qi(i[1])&&i[1]===s[1]&&(i[1]=s[1]=Zi(i[1],e)),qi(i[2])&&i[2]===s[2]&&(i[2]=s[2]=Zi(i[2],e)),t}path(t){let e=this.styledMode?{}:{fill:"none"};return Qi(t)?e.d=t:es(t)&&Ji(e,t),this.createElement("path").attr(e)}circle(t,e,i){let s=es(t)?t:void 0===t?{}:{x:t,y:e,r:i},o=this.createElement("circle");return o.xSetter=o.ySetter=function(t,e,i){i.setAttribute("c"+e,t)},o.attr(s)}arc(t,e,i,s,o,r){let n;es(t)?(e=(n=t).y,i=n.r,s=n.innerR,o=n.start,r=n.end,t=n.x):n={innerR:s,start:o,end:r};let a=this.symbol("arc",t,e,i,i,n);return a.r=i,a}rect(t,e,i,s,o,r){let n=es(t)?t:void 0===t?{}:{x:t,y:e,r:o,width:Math.max(i||0,0),height:Math.max(s||0,0)},a=this.createElement("rect");return this.styledMode||(void 0!==r&&(n["stroke-width"]=r,Ji(n,a.crisp(n))),n.fill="none"),a.rSetter=function(t,e,i){a.r=t,Yi(i,{rx:t,ry:t})},a.rGetter=function(){return a.r||0},a.attr(n)}roundedRect(t){return this.symbol("roundedRect").attr(t)}setSize(t,e,i){this.width=t,this.height=e,this.boxWrapper.animate({width:t,height:e},{step:function(){this.attr({viewBox:"0 0 "+this.attr("width")+" "+this.attr("height")})},duration:os(i,!0)?void 0:0}),this.alignElements()}g(t){let e=this.createElement("g");return t?e.attr({class:"highcharts-"+t}):e}image(t,e,i,s,o,r){let n={preserveAspectRatio:"none"};ts(e)&&(n.x=e),ts(i)&&(n.y=i),ts(s)&&(n.width=s),ts(o)&&(n.height=o);let a=this.createElement("image").attr(n),l=function(e){a.attr({href:t}),r.call(a,e)};if(r){a.attr({href:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="});let e=new Ui.Image;Vi(e,"load",l),e.src=t,e.complete&&l({})}else a.attr({href:t});return a}symbol(t,e,i,s,o,r){let n,a,l,h,d=this,c=/^url\((.*?)\)$/,p=c.test(t),u=!p&&(this.symbols[t]?t:"circle"),g=u&&this.symbols[u];if(g)"number"==typeof e&&(a=g.call(this.symbols,e||0,i||0,s||0,o||0,r)),n=this.path(a),d.styledMode||n.attr("fill","none"),Ji(n,{symbolName:u||void 0,x:e,y:i,width:s,height:o}),r&&Ji(n,r);else if(p){l=t.match(c)[1];let s=n=this.image(l);s.imgwidth=os(r?.width,Hi[l]?.width),s.imgheight=os(r?.height,Hi[l]?.height),h=t=>t.attr({width:t.width,height:t.height}),["width","height"].forEach((t=>{s[`${t}Setter`]=function(t,e){this[e]=t;let{alignByTranslate:i,element:s,width:o,height:n,imgwidth:a,imgheight:l}=this,h="width"===e?a:l,d=1;r&&"within"===r.backgroundSize&&o&&n&&a&&l?(d=Math.min(o/a,n/l),Yi(s,{width:Math.round(a*d),height:Math.round(l*d)})):s&&h&&s.setAttribute(e,h),!i&&a&&l&&this.translate(((o||0)-a*d)/2,((n||0)-l*d)/2)}})),qi(e)&&s.attr({x:e,y:i}),s.isImg=!0,s.symbolUrl=t,qi(s.imgwidth)&&qi(s.imgheight)?h(s):(s.attr({width:0,height:0}),_i("img",{onload:function(){let t=Bi[d.chartIndex];0===this.width&&($i(this,{position:"absolute",top:"-999em"}),Ri.body.appendChild(this)),Hi[l]={width:this.width,height:this.height},s.imgwidth=this.width,s.imgheight=this.height,s.element&&h(s),this.parentNode&&this.parentNode.removeChild(this),d.imgCount--,d.imgCount||!t||t.hasLoaded||t.onload()},src:l}),this.imgCount++)}return n}clipRect(t,e,i,s){return this.rect(t,e,i,s,0)}text(t,e,i,s){let o={};if(s&&(this.allowHTML||!this.forExport))return this.html(t,e,i);o.x=Math.round(e||0),i&&(o.y=Math.round(i)),qi(t)&&(o.text=t);let r=this.createElement("text").attr(o);return s&&(!this.forExport||this.allowHTML)||(r.xSetter=function(t,e,i){let s=i.getElementsByTagName("tspan"),o=i.getAttribute(e);for(let i,r=0;rt.align()))}}Ji(ls.prototype,{Element:ai,SVG_NS:Xi,escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},symbols:Mi,draw:Fi}),Me.registerRendererType("svg",ls,!0);let{composed:hs,isFirefox:ds}=M,{attr:cs,css:ps,createElement:us,defined:gs,extend:ms,getAlignFactor:fs,isNumber:xs,pInt:ys,pushUnique:bs}=_;function vs(t,e,i){let s=this.div?.style||i.style;ai.prototype[`${e}Setter`].call(this,t,e,i),s&&(s[e]=t)}let ws=(t,e)=>{if(!t.div){let i=cs(t.element,"class"),s=t.css,o=us("div",i?{className:i}:void 0,{position:"absolute",left:`${t.translateX||0}px`,top:`${t.translateY||0}px`,...t.styles,display:t.display,opacity:t.opacity,visibility:t.visibility},t.parentGroup?.div||e);t.classSetter=(t,e,i)=>{i.setAttribute("class",t),o.className=t},t.translateXSetter=t.translateYSetter=(e,i)=>{t[i]=e,o.style["translateX"===i?"left":"top"]=`${e}px`,t.doTransform=!0},t.opacitySetter=t.visibilitySetter=vs,t.css=e=>(s.call(t,e),e.cursor&&(o.style.cursor=e.cursor),e.pointerEvents&&(o.style.pointerEvents=e.pointerEvents),t),t.on=function(){return ai.prototype.on.apply({element:o,onEvents:t.onEvents},arguments),t},t.div=o}return t.div};class Ms extends ai{static compose(t){bs(hs,this.compose)&&(t.prototype.html=function(t,e,i){return new Ms(this,"span").attr({text:t,x:Math.round(e),y:Math.round(i)})})}constructor(t,e){super(t,e),Ms.useForeignObject?this.foreignObject=t.createElement("foreignObject").attr({zIndex:2}):this.css({position:"absolute",...t.styledMode?{}:{fontFamily:t.style.fontFamily,fontSize:t.style.fontSize}}),this.element.style.whiteSpace="nowrap"}getSpanCorrection(t,e,i){this.xCorr=-t*i,this.yCorr=-e}css(t){let e,{element:i}=this,s="SPAN"===i.tagName&&t&&"width"in t,o=s&&t.width;return s&&(delete t.width,this.textWidth=ys(o)||void 0,e=!0),"ellipsis"===t?.textOverflow&&(t.overflow="hidden",t.whiteSpace="nowrap"),t?.lineClamp&&(t.display="-webkit-box",t.WebkitLineClamp=t.lineClamp,t.WebkitBoxOrient="vertical",t.overflow="hidden"),xs(Number(t?.fontSize))&&(t.fontSize+="px"),ms(this.styles,t),ps(i,t),e&&this.updateTransform(),this}htmlGetBBox(){let{element:t}=this;return{x:t.offsetLeft,y:t.offsetTop,width:t.offsetWidth,height:t.offsetHeight}}updateTransform(){if(!this.added)return void(this.alignOnAdd=!0);let{element:t,foreignObject:e,oldTextWidth:i,renderer:s,rotation:o,rotationOriginX:r,rotationOriginY:n,scaleX:a,scaleY:l,styles:{display:h="inline-block",whiteSpace:d},textAlign:c="left",textWidth:p,translateX:u=0,translateY:g=0,x:m=0,y:f=0}=this;if(e||ps(t,{marginLeft:`${u}px`,marginTop:`${g}px`}),"SPAN"===t.tagName){let u,g=[o,c,t.innerHTML,p,this.textAlign].join(","),x=-1*this.parentGroup?.padding||0;if(p!==i){let e=this.textPxLength?this.textPxLength:(ps(t,{width:"",whiteSpace:d||"nowrap"}),t.offsetWidth),s=p||0,r=""===t.style.textOverflow&&t.style.webkitLineClamp;(s>i||e>s||r)&&(/[\-\s\u00AD]/.test(t.textContent||t.innerText)||"ellipsis"===t.style.textOverflow)&&(ps(t,{width:(o||a||e>s||r)&&xs(p)?p+"px":"auto",display:h,whiteSpace:d||"normal"}),this.oldTextWidth=p)}e&&(ps(t,{display:"inline-block",verticalAlign:"top"}),e.attr({width:s.width,height:s.height})),g!==this.cTT&&(u=s.fontMetrics(t).b,gs(o)&&!e&&(o!==(this.oldRotation||0)||c!==this.oldAlign)&&ps(t,{transform:`rotate(${o}deg)`,transformOrigin:`${x}% ${x}px`}),this.getSpanCorrection(!gs(o)&&!this.textWidth&&this.textPxLength||t.offsetWidth,u,fs(c)));let{xCorr:y=0,yCorr:b=0}=this,v={left:`${m+y}px`,top:`${f+b}px`,textAlign:c,transformOrigin:`${(r??m)-y-m-x}px ${(n??f)-b-f-x}px`};(a||l)&&(v.transform=`scale(${a??1},${l??1})`),e?(super.updateTransform(),xs(m)&&xs(f)?(e.attr({x:m+y,y:f+b,width:t.offsetWidth+3,height:t.offsetHeight,"transform-origin":t.getAttribute("transform-origin")||"0 0"}),ps(t,{display:h,textAlign:c})):ds&&e.attr({width:0,height:0})):ps(t,v),this.cTT=g,this.oldRotation=o,this.oldAlign=c}}add(t){let{foreignObject:e,renderer:i}=this,s=i.box.parentNode,o=[];if(e)e.add(t),super.add(i.createElement("body").attr({xmlns:"http://www.w3.org/1999/xhtml"}).css({background:"transparent",margin:"0 3px 0 0"}).add(e));else{let e;if(this.parentGroup=t,t&&!(e=t.div)){let i=t;for(;i;)o.push(i),i=i.parentGroup;for(let t of o.reverse())e=ws(t,s)}(e||s).appendChild(this.element)}return this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(t){t!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,oe.setElementHTML(this.element,t??""),this.textStr=t,this.doTransform=!0)}alignSetter(t){this.alignValue=this.textAlign=t,this.doTransform=!0}xSetter(t,e){this[e]=t,this.doTransform=!0}}let ks=Ms.prototype;ks.visibilitySetter=ks.opacitySetter=vs,ks.ySetter=ks.rotationSetter=ks.rotationOriginXSetter=ks.rotationOriginYSetter=ks.xSetter,function(t){t.xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:"%[HMSL]",range:!1},second:{main:"%[HMS]",range:!1},minute:{main:"%[HM]",range:!1},hour:{main:"%[HM]",range:!1},day:{main:"%[eb]"},week:{main:"%[eb]"},month:{main:"%[bY]"},year:{main:"%Y"}},endOnTick:!1,gridLineDashStyle:"Solid",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:"justify",reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:"#333333",cursor:"default",fontSize:"0.8em",textOverflow:"ellipsis"}},maxPadding:.01,minorGridLineDashStyle:"Solid",minorTickLength:2,minorTickPosition:"outside",minorTicksPerMajor:5,minPadding:.01,offset:void 0,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",useHTML:!1,x:0,y:0,style:{color:"#666666",fontSize:"0.8em"}},visible:!0,minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#333333",lineWidth:1,gridLineColor:"#e6e6e6",gridLineWidth:void 0,tickColor:"#333333"},t.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){let{numberFormatter:t}=this.axis.chart;return t(this.total||0,-1)},style:{color:"#000000",fontSize:"0.7em",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0}}(r||(r={}));let Ss=r,{addEvent:Ts,isFunction:As,objectEach:Cs,removeEvent:Ps}=_;(n||(n={})).registerEventOptions=function(t,e){t.eventOptions=t.eventOptions||{},Cs(e.events,(function(e,i){t.eventOptions[i]!==e&&(t.eventOptions[i]&&(Ps(t,i,t.eventOptions[i]),delete t.eventOptions[i]),As(e)&&(t.eventOptions[i]=e,Ts(t,i,e,{order:0})))}))};let Ls=n,{deg2rad:Es}=M,{clamp:Os,correctFloat:Ds,defined:Is,destroyObjectProperties:zs,extend:Bs,fireEvent:Ns,getAlignFactor:Rs,isNumber:js,merge:Ws,objectEach:Gs,pick:Fs}=_,Xs=class{constructor(t,e,i,s,o){this.isNew=!0,this.isNewLabel=!0,this.axis=t,this.pos=e,this.type=i||"",this.parameters=o||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,Ns(this,"init"),i||s||this.addLabel()}addLabel(){let t,e,i,s=this,o=s.axis,r=o.options,n=o.chart,a=o.categories,l=o.logarithmic,h=o.names,d=s.pos,c=Fs(s.options?.labels,r.labels),p=o.tickPositions,u=d===p[0],g=d===p[p.length-1],m=(!c.step||1===c.step)&&1===o.tickInterval,f=p.info,x=s.label,y=this.parameters.category||(a?Fs(a[d],h[d],d):d);l&&js(y)&&(y=Ds(l.lin2log(y))),o.dateTime&&(f?t=(e=n.time.resolveDTLFormat(r.dateTimeLabelFormats[!r.grid&&f.higherRanks[d]||f.unitName])).main:js(y)&&(t=o.dateTime.getXDateFormat(y,r.dateTimeLabelFormats||{}))),s.isFirst=u,s.isLast=g;let b={axis:o,chart:n,dateTimeLabelFormat:t,isFirst:u,isLast:g,pos:d,tick:s,tickPositionInfo:f,value:y};Ns(this,"labelFormat",b);let v=t=>c.formatter?c.formatter.call(t,t):c.format?(t.text=o.defaultLabelFormatter.call(t),we.format(c.format,t,n)):o.defaultLabelFormatter.call(t),w=v.call(b,b),M=e?.list;s.shortenLabel=M?function(){for(i=0;i0&&o+c*p>l&&(e=Math.round((r-o)/Math.cos(d*Es))):(o-c*pl&&(g=l-t.x+g*c,m=-1),(g=Math.min(u,g))g||i.autoRotation&&h?.styles?.width)&&(e=g)),e&&h&&(this.shortenLabel?this.shortenLabel():h.css(Bs({},{width:Math.floor(e)+"px",lineClamp:+!i.isRadial})))}moveLabel(t,e){let i,s=this,o=s.label,r=s.axis,n=!1;o&&o.textStr===t?(s.movedLabel=o,n=!0,delete s.label):Gs(r.ticks,(function(e){n||e.isNew||e===s||!e.label||e.label.textStr!==t||(s.movedLabel=e.label,n=!0,e.labelPos=s.movedLabel.xy,delete e.label)})),!n&&(s.labelPos||o)&&(i=s.labelPos||o.xy,s.movedLabel=s.createLabel(t,e,i),s.movedLabel&&s.movedLabel.attr({opacity:0}))}render(t,e,i){let s=this.axis,o=s.horiz,r=this.pos,n=Fs(this.tickmarkOffset,s.tickmarkOffset),a=this.getPosition(o,r,n,e),l=a.x,h=a.y,d=s.pos,c=d+s.len,p=o?l:h,u=Fs(i,this.label?.newOpacity,1);!s.chart.polar&&(Ds(p)c)&&(i=0),i??(i=1),this.isActive=!0,this.renderGridLine(e,i),this.renderMark(a,i),this.renderLabel(a,e,u,t),this.isNew=!1,Ns(this,"afterRender")}renderGridLine(t,e){let i,s=this.axis,o=s.options,r={},n=this.pos,a=this.type,l=Fs(this.tickmarkOffset,s.tickmarkOffset),h=s.chart.renderer,d=this.gridLine,c=o.gridLineWidth,p=o.gridLineColor,u=o.gridLineDashStyle;"minor"===this.type&&(c=o.minorGridLineWidth,p=o.minorGridLineColor,u=o.minorGridLineDashStyle),d||(s.chart.styledMode||(r.stroke=p,r["stroke-width"]=c||0,r.dashstyle=u),a||(r.zIndex=1),t&&(e=0),this.gridLine=d=h.path().attr(r).addClass("highcharts-"+(a?a+"-":"")+"grid-line").add(s.gridGroup)),d&&(i=s.getPlotLinePath({value:n+l,lineWidth:d.strokeWidth(),force:"pass",old:t,acrossPanes:!1}))&&d[t||this.isNew?"attr":"animate"]({d:i,opacity:e})}renderMark(t,e){let i=this.axis,s=i.options,o=i.chart.renderer,r=this.type,n=i.tickSize(r?r+"Tick":"tick"),a=t.x,l=t.y,h=Fs(s["minor"!==r?"tickWidth":"minorTickWidth"],!r&&i.isXAxis?1:0),d=s["minor"!==r?"tickColor":"minorTickColor"],c=this.mark,p=!c;n&&(i.opposite&&(n[0]=-n[0]),c||(this.mark=c=o.path().addClass("highcharts-"+(r?r+"-":"")+"tick").add(i.axisGroup),i.chart.styledMode||c.attr({stroke:d,"stroke-width":h})),c[p?"attr":"animate"]({d:this.getMarkPath(a,l,n[0],c.strokeWidth(),i.horiz,o),opacity:e}))}renderLabel(t,e,i,s){let o=this.axis,r=o.horiz,n=o.options,a=this.label,l=n.labels,h=l.step,d=Fs(this.tickmarkOffset,o.tickmarkOffset),c=t.x,p=t.y,u=!0;a&&js(c)&&(a.xy=t=this.getLabelPosition(c,p,a,r,l,d,s,h),this.isFirst&&!this.isLast&&!n.showFirstLabel||this.isLast&&!this.isFirst&&!n.showLastLabel?u=!1:!r||l.step||l.rotation||e||0===i||this.handleOverflow(t),h&&s%h&&(u=!1),u&&js(t.y)?(t.opacity=i,a[this.isNewLabel?"attr":"animate"](t).show(!0),this.isNewLabel=!1):(a.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let t=this.label,e=this.axis;t&&!this.isNew&&(t.animate({opacity:0},void 0,t.destroy),delete this.label),e.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}},{animObject:Hs}=Ut,{xAxis:Us,yAxis:Vs}=Ss,{defaultOptions:Ys}=bt,{registerEventOptions:_s}=Ls,{deg2rad:Zs}=M,{arrayMax:$s,arrayMin:qs,clamp:Ks,correctFloat:Js,defined:Qs,destroyObjectProperties:to,erase:eo,error:io,extend:so,fireEvent:oo,getClosestDistance:ro,insertItem:no,isArray:ao,isNumber:lo,isString:ho,merge:co,normalizeTickInterval:po,objectEach:uo,pick:go,relativeLength:mo,removeEvent:fo,splat:xo,syncTimeout:yo}=_,bo=(t,e)=>po(e,void 0,void 0,go(t.options.allowDecimals,e<.5||void 0!==t.tickAmount),!!t.tickAmount);so(Ys,{xAxis:Us,yAxis:co(Us,Vs)});class vo{constructor(t,e,i){this.init(t,e,i)}init(t,e,i=this.coll){let s="xAxis"===i,o=this.isZAxis||(t.inverted?!s:s);this.chart=t,this.horiz=o,this.isXAxis=s,this.coll=i,oo(this,"init",{userOptions:e}),this.opposite=go(e.opposite,this.opposite),this.side=go(e.side,this.side,o?2*!this.opposite:this.opposite?1:3),this.setOptions(e);let r=this.options,n=r.labels;this.type??(this.type=r.type||"linear"),this.uniqueNames??(this.uniqueNames=r.uniqueNames??!0),oo(this,"afterSetType"),this.userOptions=e,this.minPixelPadding=0,this.reversed=go(r.reversed,this.reversed),this.visible=r.visible,this.zoomEnabled=r.zoomEnabled,this.hasNames="category"===this.type||!0===r.categories,this.categories=ao(r.categories)&&r.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=Qs(r.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len??(this.len=0),this.minRange=this.userMinRange=r.minRange||r.maxZoom,this.range=r.range,this.offset=r.offset||0,this.max=void 0,this.min=void 0;let a=go(r.crosshair,xo(t.options.tooltip.crosshairs)[+!s]);this.crosshair=!0===a?{}:a,-1===t.axes.indexOf(this)&&(s?t.axes.splice(t.xAxis.length,0,this):t.axes.push(this),no(this,t[this.coll])),t.orderItems(this.coll),this.series=this.series||[],t.inverted&&!this.isZAxis&&s&&!Qs(this.reversed)&&(this.reversed=!0),this.labelRotation=lo(n.rotation)?n.rotation:void 0,_s(this,r),oo(this,"afterInit")}setOptions(t){let e=this.horiz?{labels:{autoRotation:[-45],padding:3},margin:15}:{labels:{padding:1},title:{rotation:90*this.side}};this.options=co(e,"yAxis"===this.coll?{title:{text:this.chart.options.lang.yAxisTitle}}:{},Ys[this.coll],t),oo(this,"afterSetOptions",{userOptions:t})}defaultLabelFormatter(){let t,e,i=this.axis,{numberFormatter:s}=this.chart,o=lo(this.value)?this.value:NaN,r=i.chart.time,n=i.categories,a=this.dateTimeLabelFormat,l=Ys.lang,h=l.numericSymbols,d=l.numericSymbolMagnitude||1e3,c=i.logarithmic?Math.abs(o):i.tickInterval,p=h?.length;if(n)e=`${this.value}`;else if(a)e=r.dateFormat(a,o,!0);else if(p&&h&&c>=1e3)for(;p--&&void 0===e;)c>=(t=Math.pow(d,p+1))&&10*o%t==0&&null!==h[p]&&0!==o&&(e=s(o/t,-1)+h[p]);return void 0===e&&(e=Math.abs(o)>=1e4?s(o,-1):s(o,-1,void 0,"")),e}getSeriesExtremes(){let t,e=this;oo(this,"getSeriesExtremes",null,(function(){e.hasVisibleSeries=!1,e.dataMin=e.dataMax=e.threshold=void 0,e.softThreshold=!e.isXAxis,e.series.forEach((i=>{if(i.reserveSpace()){let s,o,r,n=i.options,a=n.threshold;if(e.hasVisibleSeries=!0,e.positiveValuesOnly&&0>=(a||0)&&(a=void 0),e.isXAxis)(s=i.getColumn("x")).length&&(s=e.logarithmic?s.filter((t=>t>0)):s,o=(t=i.getXExtremes(s)).min,r=t.max,lo(o)||o instanceof Date||(s=s.filter(lo),o=(t=i.getXExtremes(s)).min,r=t.max),s.length&&(e.dataMin=Math.min(go(e.dataMin,o),o),e.dataMax=Math.max(go(e.dataMax,r),r)));else{let t=i.applyExtremes();lo(t.dataMin)&&(o=t.dataMin,e.dataMin=Math.min(go(e.dataMin,o),o)),lo(t.dataMax)&&(r=t.dataMax,e.dataMax=Math.max(go(e.dataMax,r),r)),Qs(a)&&(e.threshold=a),(!n.softThreshold||e.positiveValuesOnly)&&(e.softThreshold=!1)}}}))})),oo(this,"afterGetSeriesExtremes")}translate(t,e,i,s,o,r){let n=this.linkedParent||this,a=s&&n.old?n.old.min:n.min;if(!lo(a))return NaN;let l=n.minPixelPadding,h=(n.isOrdinal||n.brokenAxis?.hasBreaks||n.logarithmic&&o)&&n.lin2val,d=1,c=0,p=s&&n.old?n.old.transA:n.transA,u=0;return p||(p=n.transA),i&&(d*=-1,c=n.len),n.reversed&&(d*=-1,c-=d*(n.sector||n.len)),e?(u=(t=t*d+c-l)/p+a,h&&(u=n.lin2val(u))):(h&&(t=n.val2lin(t)),u=d*(t-a)*p+c+d*l+(lo(r)?p*r:0),n.isRadial||(u=Js(u))),u}toPixels(t,e){return this.translate(this.chart?.time.parse(t)??NaN,!1,!this.horiz,void 0,!0)+(e?0:this.pos)}toValue(t,e){return this.translate(t-(e?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(t){let e,i,s,o,r,n=this,a=n.chart,l=n.left,h=n.top,d=t.old,c=t.value,p=t.lineWidth,u=d&&a.oldChartHeight||a.chartHeight,g=d&&a.oldChartWidth||a.chartWidth,m=n.transB,f=t.translatedValue,x=t.force;function y(t,e,i){return"pass"!==x&&(ti)&&(x?t=Ks(t,e,i):r=!0),t}let b={value:c,lineWidth:p,old:d,force:x,acrossPanes:t.acrossPanes,translatedValue:f};return oo(this,"getPlotLinePath",b,(function(t){e=s=(f=Ks(f=go(f,n.translate(c,void 0,void 0,d)),-1e9,1e9))+m,i=o=u-f-m,lo(f)?n.horiz?(i=h,o=u-n.bottom+(n.options.isInternal?0:a.scrollablePixelsY||0),e=s=y(e,l,l+n.width)):(e=l,s=g-n.right+(a.scrollablePixelsX||0),i=o=y(i,h,h+n.height)):(r=!0,x=!1),t.path=r&&!x?void 0:a.renderer.crispLine([["M",e,i],["L",s,o]],p||1)})),b.path}getLinearTickPositions(t,e,i){let s,o,r,n=Js(Math.floor(e/t)*t),a=Js(Math.ceil(i/t)*t),l=[];if(Js(n+t)===n&&(r=20),this.single)return[e];for(s=n;s<=a&&(l.push(s),(s=Js(s+t,r))!==o);)o=s;return l}getMinorTickInterval(){let{minorTicks:t,minorTickInterval:e}=this.options;return!0===t?go(e,"auto"):!1!==t?e:void 0}getMinorTickPositions(){let t,e=this.options,i=this.tickPositions,s=this.minorTickInterval,o=this.pointRangePadding||0,r=(this.min||0)-o,n=(this.max||0)+o,a=this.brokenAxis?.hasBreaks?this.brokenAxis.unitLength:n-r,l=[];if(a&&a/s{let e=t.getColumn("x");return t.xIncrement?e.slice(0,2):e})))||0),this.dataMax-this.dataMin)),lo(a)&&lo(l)&&lo(h)&&a-l=h,t=(h-a+l)/2,i=[l-t,n.parse(o.min)??l-t],e&&(i[2]=r?r.log2lin(this.dataMin):this.dataMin),s=[(l=$s(i))+h,n.parse(o.max)??l+h],e&&(s[2]=r?r.log2lin(this.dataMax):this.dataMax),(a=qs(s))-lt-e)),t=ro([i]))}return t&&e?Math.min(t,e):t||e}nameToX(t){let e,i=ao(this.options.categories),s=i?this.categories:this.names,o=t.options.x;return t.series.requireSorting=!1,Qs(o)||(o=this.uniqueNames&&s?i?s.indexOf(t.name):go(s.keys[t.name],-1):t.series.autoIncrement()),-1===o?!i&&s&&(e=s.length):lo(o)&&(e=o),void 0!==e?(this.names[e]=t.name,this.names.keys[t.name]=e):t.x&&(e=t.x),e}updateNames(){let t=this,e=this.names;e.length>0&&(Object.keys(e.keys).forEach((function(t){delete e.keys[t]})),e.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach((e=>{e.xIncrement=null,(!e.points||e.isDirtyData)&&(t.max=Math.max(t.max||0,e.dataTable.rowCount-1),e.processData(),e.generatePoints());let i=e.getColumn("x").slice();e.data.forEach(((e,s)=>{let o=i[s];e?.options&&void 0!==e.name&&void 0!==(o=t.nameToX(e))&&o!==e.x&&(i[s]=e.x=o)})),e.dataTable.setColumn("x",i)})))}setAxisTranslation(){let t,e,i=this,s=i.max-i.min,o=i.linkedParent,r=!!i.categories,n=i.isXAxis,a=i.axisPointRange||0,l=0,h=0,d=i.transA;(n||r||a)&&(t=i.getClosest(),o?(l=o.minPointOffset,h=o.pointRangePadding):i.series.forEach((function(e){let s=r?1:n?go(e.options.pointRange,t,0):i.axisPointRange||0,o=e.options.pointPlacement;if(a=Math.max(a,s),!i.single||r){let t=e.is("xrange")?!n:n;l=Math.max(l,t&&ho(o)?0:s/2),h=Math.max(h,t&&"on"===o?0:s)}})),e=i.ordinal?.slope&&t?i.ordinal.slope/t:1,i.minPointOffset=l*=e,i.pointRangePadding=h*=e,i.pointRange=Math.min(a,i.single&&r?1:s),n&&(i.closestPointRange=t)),i.translationSlope=i.transA=d=i.staticScale||i.len/(s+h||1),i.transB=i.horiz?i.left:i.bottom,i.minPixelPadding=d*l,oo(this,"afterSetAxisTranslation")}minFromRange(){let{max:t,min:e}=this;return lo(t)&&lo(e)&&t-e||void 0}setTickInterval(t){let e,i,s,o,r,{categories:n,chart:a,dataMax:l,dataMin:h,dateTime:d,isXAxis:c,logarithmic:p,options:u,softThreshold:g}=this,m=a.time,f=lo(this.threshold)?this.threshold:void 0,x=this.minRange||0,{ceiling:y,floor:b,linkedTo:v,softMax:w,softMin:M}=u,k=lo(v)&&a[this.coll]?.[v],S=u.tickPixelInterval,T=u.maxPadding,A=u.minPadding,C=0,P=lo(u.tickInterval)&&u.tickInterval>=0?u.tickInterval:void 0;if(d||n||k||this.getTickAmount(),o=go(this.userMin,m.parse(u.min)),r=go(this.userMax,m.parse(u.max)),k?(this.linkedParent=k,e=k.getExtremes(),this.min=go(e.min,e.dataMin),this.max=go(e.max,e.dataMax),this.type!==k.type&&io(11,!0,a)):(g&&Qs(f)&&lo(l)&&lo(h)&&(h>=f?(i=f,A=0):l<=f&&(s=f,T=0)),this.min=go(o,i,h),this.max=go(r,s,l)),lo(this.max)&&lo(this.min)&&(p&&(this.positiveValuesOnly&&!t&&0>=Math.min(this.min,go(h,this.min))&&io(10,!0,a),this.min=Js(p.log2lin(this.min),16),this.max=Js(p.log2lin(this.max),16)),this.range&&lo(h)&&(this.userMin=this.min=o=Math.max(h,this.minFromRange()||0),this.userMax=r=this.max,this.range=void 0)),oo(this,"foundExtremes"),this.adjustForMinRange(),lo(this.min)&&lo(this.max)){if(!lo(this.userMin)&&lo(M)&&Mthis.max&&(this.max=r=w),n||this.axisPointRange||this.stacking?.usePercentage||k||!(C=this.max-this.min)||(!Qs(o)&&A&&(this.min-=C*A),Qs(r)||!T||(this.max+=C*T)),!lo(this.userMin)&&lo(b)&&(this.min=Math.max(this.min,b)),!lo(this.userMax)&&lo(y)&&(this.max=Math.min(this.max,y)),g&&lo(h)&&lo(l)){let t=f||0;!Qs(o)&&this.min=t?this.min=u.minRange?Math.min(t,this.max-x):t:!Qs(r)&&this.max>t&&l<=t&&(this.max=u.minRange?Math.max(t,this.min+x):t)}!a.polar&&this.min>this.max&&(Qs(u.min)?this.max=this.min:Qs(u.max)&&(this.min=this.max)),C=this.max-this.min}if(this.min!==this.max&&lo(this.min)&&lo(this.max)?k&&!P&&S===k.options.tickPixelInterval?this.tickInterval=P=k.tickInterval:this.tickInterval=go(P,this.tickAmount?C/Math.max(this.tickAmount-1,1):void 0,n?1:C*S/Math.max(this.len,S)):this.tickInterval=1,c&&!t){let t=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach((function(e){e.forceCrop=e.forceCropping?.(),e.processData(t)})),oo(this,"postProcessData",{hasExtremesChanged:t})}this.setAxisTranslation(),oo(this,"initialAxisTranslation"),this.pointRange&&!P&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let L=go(u.minTickInterval,d&&!this.series.some((t=>!t.sorted))?this.closestPointRange:0);!P&&L&&this.tickIntervalMath.max(2*this.len,200))l=[this.min,this.max],io(19,!1,this.chart);else if(this.dateTime)l=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,e.units),this.min,this.max,e.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)l=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let t=this.tickInterval,e=t;for(;e<=2*t&&(l=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&l.length>this.tickAmount);)this.tickInterval=bo(this,e*=1.1)}l.length>this.len&&(l=[l[0],l[l.length-1]])[0]===l[1]&&(l.length=1),s&&(this.tickPositions=l,(t=s.apply(this,[this.min,this.max]))&&(l=t))}this.tickPositions=l,this.minorTickInterval="auto"===o&&this.tickInterval?this.tickInterval/e.minorTicksPerMajor:o,this.paddedTicks=l.slice(0),this.trimTicks(l,n,a),!this.isLinked&&lo(this.min)&&lo(this.max)&&(this.single&&l.length<2&&!this.categories&&!this.series.some((t=>t.is("heatmap")&&"between"===t.options.pointPlacement))&&(this.min-=.5,this.max+=.5),i||t||this.adjustTickAmount()),oo(this,"afterSetTickPositions")}trimTicks(t,e,i){let s=t[0],o=t[t.length-1],r=!this.isOrdinal&&this.minPointOffset||0;if(oo(this,"trimTicks"),!this.isLinked||!this.grid){if(e&&s!==-1/0)this.min=s;else for(;this.min-r>t[0];)t.shift();if(i)this.max=o;else for(;this.max+r{let{horiz:e,options:i}=t;return[e?i.left:i.top,i.width,i.height,i.pane].join(",")},r=o(this);i[this.coll].forEach((function(i){let{series:n}=i;n.length&&n.some((t=>t.visible))&&i!==e&&o(i)===r&&(t=!0,s.push(i))}))}if(t&&n){s.forEach((t=>{let i=t.getThresholdAlignment(e);lo(i)&&a.push(i)}));let t=a.length>1?a.reduce(((t,e)=>t+e),0)/a.length:void 0;s.forEach((e=>{e.thresholdAlignment=t}))}return t}getThresholdAlignment(t){if((!lo(this.dataMin)||this!==t&&this.series.some((t=>t.isDirty||t.isDirtyData)))&&this.getSeriesExtremes(),lo(this.threshold)){let t=Ks((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(t=1-t),t}}getTickAmount(){let t=this.options,e=t.tickPixelInterval,i=t.tickAmount;Qs(t.tickInterval)||i||!(this.lenl.push(Js(l[l.length-1]+u)),m=()=>l.unshift(Js(l[0]-u));if(lo(d)&&(i=d<.5?Math.ceil(d*(h-1)):Math.floor(d*(h-1)),a.reversed&&(i=h-1-i)),s.hasData()&&lo(n)&&lo(r)){let d=()=>{s.transA*=(c-1)/(h-1),s.min=a.startOnTick?l[0]:Math.min(n,l[0]),s.max=a.endOnTick?l[l.length-1]:Math.max(r,l[l.length-1])};if(lo(i)&&lo(s.threshold)){for(;l[i]!==p||l.length!==h||l[0]>n||l[l.length-1]s.threshold?m():g();if(u>8*s.tickInterval)break;u*=2}d()}else if(c0&&e{i=i||t.isDirtyData||t.isDirty,s=s||t.xAxis?.isDirty||!1})),this.setAxisSize();let o=this.len!==this.old?.len;o||i||s||this.isLinked||this.forceRedraw||this.userMin!==this.old?.userMin||this.userMax!==this.old?.userMax||this.alignToOthers()?(e&&"yAxis"===t&&e.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),e&&"xAxis"===t&&e.buildStacks(),this.isDirty||(this.isDirty=o||this.min!==this.old?.min||this.max!==this.old?.max)):e&&e.cleanStacks(),i&&delete this.allExtremes,oo(this,"afterSetScale")}setExtremes(t,e,i=!0,s,o){let r=this.chart;this.series.forEach((t=>{delete t.kdTree})),t=r.time.parse(t),e=r.time.parse(e),oo(this,"setExtremes",o=so(o,{min:t,max:e}),(t=>{this.userMin=t.min,this.userMax=t.max,this.eventArgs=t,i&&r.redraw(s)}))}setAxisSize(){let t=this.chart,e=this.options,i=e.offsets||[0,0,0,0],s=this.horiz,o=this.width=Math.round(mo(go(e.width,t.plotWidth-i[3]+i[1]),t.plotWidth)),r=this.height=Math.round(mo(go(e.height,t.plotHeight-i[0]+i[2]),t.plotHeight)),n=this.top=Math.round(mo(go(e.top,t.plotTop+i[0]),t.plotHeight,t.plotTop)),a=this.left=Math.round(mo(go(e.left,t.plotLeft+i[3]),t.plotWidth,t.plotLeft));this.bottom=t.chartHeight-r-n,this.right=t.chartWidth-o-a,this.len=Math.max(s?o:r,0),this.pos=s?a:n}getExtremes(){let t=this.logarithmic;return{min:t?Js(t.lin2log(this.min)):this.min,max:t?Js(t.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(t){let e=this.logarithmic,i=e?e.lin2log(this.min):this.min,s=e?e.lin2log(this.max):this.max;return null===t||t===-1/0?t=i:t===1/0?t=s:i>t?t=i:s15&&e<165?t.align="right":e>195&&e<345&&(t.align="left")})),i.align}tickSize(t){let e,i=this.options,s=go(i["tick"===t?"tickWidth":"minorTickWidth"],"tick"===t&&this.isXAxis&&!this.categories?1:0),o=i["tick"===t?"tickLength":"minorTickLength"];s&&o&&("inside"===i[t+"Position"]&&(o=-o),e=[o,s]);let r={tickSize:e};return oo(this,"afterTickSize",r),r.tickSize}labelMetrics(){let t=this.chart.renderer,e=this.ticks,i=e[Object.keys(e)[0]]||{};return this.chart.renderer.fontMetrics(i.label||i.movedLabel||t.box)}unsquish(){let t,e,i=this.options.labels,s=i.padding||0,o=this.horiz,r=this.tickInterval,n=this.len/((+!!this.categories+this.max-this.min)/r),a=i.rotation,l=Js(.8*this.labelMetrics().h),h=Math.max(this.max-this.min,0),d=function(t){let e=(t+2*s)/(n||1);return(e=e>1?Math.ceil(e):1)*r>h&&t!==1/0&&n!==1/0&&h&&(e=Math.ceil(h/r)),Js(e*r)},c=r,p=Number.MAX_VALUE;if(o){if(!i.staggerLines&&(lo(a)?e=[a]:n=-90&&o<=90)&&(s=(i=d(Math.abs(l/Math.sin(Zs*o))))+Math.abs(o/360))g&&(g=i)})),this.maxLabelLength=g,this.autoRotation?g>h&&g>c.h?d.rotation=this.labelRotation:this.labelRotation=0:l&&(t=h),d.rotation&&(t=g>.5*e.chartHeight?.33*e.chartHeight:g,p||(u=1)),this.labelAlign=r.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(d.align=this.labelAlign),s.forEach((function(e){let i=o[e],s=i?.label,r=n.width,a={};s&&(s.attr(d),i.shortenLabel?i.shortenLabel():t&&!r&&"nowrap"!==n.whiteSpace&&(t<(s.textPxLength||0)||"SPAN"===s.element.tagName)?s.css(so(a,{width:`${t}px`,lineClamp:u})):!s.styles.width||a.width||r||s.css({width:"auto"}),i.rotation=d.rotation)}),this),this.tickRotCorr=i.rotCorr(c.b,this.labelRotation||0,0!==this.side)}hasData(){return this.series.some((function(t){return t.hasData()}))||this.options.showEmpty&&Qs(this.min)&&Qs(this.max)}addTitle(t){let e,i=this.chart.renderer,s=this.horiz,o=this.opposite,r=this.options.title,n=this.chart.styledMode;this.axisTitle||((e=r.textAlign)||(e=(s?{low:"left",middle:"center",high:"right"}:{low:o?"right":"left",middle:"center",high:o?"left":"right"})[r.align]),this.axisTitle=i.text(r.text||"",0,0,r.useHTML).attr({zIndex:7,rotation:r.rotation||0,align:e}).addClass("highcharts-axis-title"),n||this.axisTitle.css(co(r.style)),this.axisTitle.add(this.axisGroup),this.axisTitle.isNew=!0),n||r.style.width||this.isRadial||this.axisTitle.css({width:this.len+"px"}),this.axisTitle[t?"show":"hide"](t)}generateTick(t){let e=this.ticks;e[t]?e[t].addLabel():e[t]=new Xs(this,t)}createGroups(){let{axisParent:t,chart:e,coll:i,options:s}=this,o=e.renderer,r=(e,r,n)=>o.g(e).attr({zIndex:n}).addClass(`highcharts-${i.toLowerCase()}${r} `+(this.isRadial?`highcharts-radial-axis${r} `:"")+(s.className||"")).add(t);this.axisGroup||(this.gridGroup=r("grid","-grid",s.gridZIndex),this.axisGroup=r("axis","",s.zIndex),this.labelGroup=r("axis-labels","-labels",s.labels.zIndex))}getOffset(){let t,e,i,s,o=this,{chart:r,horiz:n,options:a,side:l,ticks:h,tickPositions:d,coll:c}=o,p=r.inverted&&!o.isZAxis?[1,0,3,2][l]:l,u=o.hasData(),g=a.title,m=a.labels,f=lo(a.crossing),x=r.axisOffset,y=r.clipOffset,b=[-1,1,1,-1][l],v=0,w=0,M=0;if(o.showAxis=t=u||a.showEmpty,o.staggerLines=o.horiz&&m.staggerLines||void 0,o.createGroups(),u||o.isLinked?(d.forEach((function(t){o.generateTick(t)})),o.renderUnsquish(),o.reserveSpaceDefault=0===l||2===l||{1:"left",3:"right"}[l]===o.labelAlign,go(m.reserveSpace,!f&&null,"center"===o.labelAlign||null,o.reserveSpaceDefault)&&d.forEach((function(t){M=Math.max(h[t].getLabelSize(),M)})),o.staggerLines&&(M*=o.staggerLines),o.labelOffset=M*(o.opposite?-1:1)):uo(h,(function(t,e){t.destroy(),delete h[e]})),g?.text&&!1!==g.enabled&&(o.addTitle(t),t&&!f&&!1!==g.reserveSpace&&(o.titleOffset=v=o.axisTitle.getBBox()[n?"height":"width"],w=Qs(e=g.offset)?0:go(g.margin,n?5:10))),o.renderLine(),o.offset=b*go(a.offset,x[l]?x[l]+(a.margin||0):0),o.tickRotCorr=o.tickRotCorr||{x:0,y:0},s=0===l?-o.labelMetrics().h:2===l?o.tickRotCorr.y:0,i=Math.abs(M)+w,M&&(i-=s,i+=b*(n?go(m.y,o.tickRotCorr.y+b*m.distance):go(m.x,b*m.distance))),o.axisTitleMargin=go(e,i),o.getMaxLabelDimensions&&(o.maxLabelDimensions=o.getMaxLabelDimensions(h,d)),"colorAxis"!==c&&y){let t=this.tickSize("tick");x[l]=Math.max(x[l],(o.axisTitleMargin||0)+v+b*o.offset,i,d?.length&&t?t[0]+b*o.offset:0);let e=!o.axisLine||a.offset?0:o.axisLine.strokeWidth()/2;y[p]=Math.max(y[p],e)}oo(this,"afterGetOffset")}getLinePath(t){let e=this.chart,i=this.opposite,s=this.offset,o=this.horiz,r=this.left+(i?this.width:0)+s,n=e.chartHeight-this.bottom-(i?this.height:0)+s;return i&&(t*=-1),e.renderer.crispLine([["M",o?this.left:r,o?n:this.top],["L",o?e.chartWidth-this.right:r,o?n:e.chartHeight-this.bottom]],t)}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(t){let e=this.horiz,i=this.left,s=this.top,o=this.len,r=this.options.title,n=e?i:s,a=this.opposite,l=this.offset,h=r.x,d=r.y,c=this.chart.renderer.fontMetrics(t),p=t?Math.max(t.getBBox(!1,0).height-c.h-1,0):0,u={low:n+(e?0:o),middle:n+o/2,high:n+(e?o:0)}[r.align],g=(e?s+this.height:i)+(e?1:-1)*(a?-1:1)*(this.axisTitleMargin||0)+[-p,p,c.f,-p][this.side],m={x:e?u+h:g+(a?this.width:0)+l+h,y:e?g+d-(a?this.height:0)+l:u+d};return oo(this,"afterGetTitlePosition",{titlePosition:m}),m}renderMinorTick(t,e){let i=this.minorTicks;i[t]||(i[t]=new Xs(this,t,"minor")),e&&i[t].isNew&&i[t].render(null,!0),i[t].render(null,!1,1)}renderTick(t,e,i){let s=this.isLinked,o=this.ticks;(!s||t>=this.min&&t<=this.max||this.grid?.isColumn)&&(o[t]||(o[t]=new Xs(this,t)),i&&o[t].isNew&&o[t].render(e,!0,-1),o[t].render(e))}render(){let t,e,i=this,s=i.chart,o=i.logarithmic,r=s.renderer,n=i.options,a=i.isLinked,l=i.tickPositions,h=i.axisTitle,d=i.ticks,c=i.minorTicks,p=i.alternateBands,u=n.stackLabels,g=n.alternateGridColor,m=n.crossing,f=i.tickmarkOffset,x=i.axisLine,y=i.showAxis,b=Hs(r.globalAnimation);if(i.labelEdge.length=0,i.overlap=!1,[d,c,p].forEach((function(t){uo(t,(function(t){t.isActive=!1}))})),lo(m)){let t=this.isXAxis?s.yAxis[0]:s.xAxis[0],e=[1,-1,-1,1][this.side];if(t){let s=t.toPixels(m,!0);i.horiz&&(s=t.len-s),i.offset=e*s}}if(i.hasData()||a){let r=i.chart.hasRendered&&i.old&&lo(i.old.min);i.minorTickInterval&&!i.categories&&i.getMinorTickPositions().forEach((function(t){i.renderMinorTick(t,r)})),l.length&&(l.forEach((function(t,e){i.renderTick(t,e,r)})),f&&(0===i.min||i.single)&&(d[-1]||(d[-1]=new Xs(i,-1,null,!0)),d[-1].render(-1))),g&&l.forEach((function(r,n){e=void 0!==l[n+1]?l[n+1]+f:i.max-f,n%2==0&&r=.5)t=Math.round(t),a=o.getLinearTickPositions(t,e,i);else if(t>=.08){let o,r,n,l,h,d,c;for(o=t>.3?[1,2,4]:t>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],r=Math.floor(e);re&&(!s||d<=i)&&void 0!==d&&a.push(d),d>i&&(c=!0),d=h}else{let l=this.lin2log(e),h=this.lin2log(i),d=s?o.getMinorTickInterval():n.tickInterval,c=n.tickPixelInterval/(s?5:1),p=s?r/o.tickPositions.length:r;t=Co(t=Po("auto"===d?null:d,this.minorAutoInterval,(h-l)*c/(p||1))),a=o.getLinearTickPositions(t,l,h).map(this.log2lin),s||(this.minorAutoInterval=t/5)}return s||(o.tickInterval=t),a}lin2log(t){return Math.pow(10,t)}log2lin(t){return Math.log(t)/Math.LN10}}t.Additions=s}(l||(l={}));let Lo=l,{erase:Eo,extend:Oo,isNumber:Do}=_;!function(t){let e;function i(t){return this.addPlotBandOrLine(t,"plotBands")}function s(t,i){let s=this.userOptions,o=new e(this,t);if(this.visible&&(o=o.render()),o){if(this._addedPlotLB||(this._addedPlotLB=!0,(s.plotLines||[]).concat(s.plotBands||[]).forEach((t=>{this.addPlotBandOrLine(t)}))),i){let e=s[i]||[];e.push(t),s[i]=e}this.plotLinesAndBands.push(o)}return o}function o(t){return this.addPlotBandOrLine(t,"plotLines")}function r(t,e,i){i=i||this.options;let s,o,r=this.getPlotLinePath({value:e,force:!0,acrossPanes:i.acrossPanes}),n=[],a=this.horiz,l=!Do(this.min)||!Do(this.max)||tthis.max&&e>this.max,h=this.getPlotLinePath({value:t,force:!0,acrossPanes:i.acrossPanes}),d=1;if(h&&r)for(l&&(o=h.toString()===r.toString(),d=0),s=0;s{let t=[];for(let e of this.axes)for(let{label:i,options:s}of e.plotLinesAndBands)i&&!s?.label?.allowOverlap&&t.push(i);return t}))})),Io.compose(Uo,e)}constructor(t,e){this.axis=t,this.options=e,this.id=e.id}render(){Go(this,"render");let t,{axis:e,options:i}=this,{horiz:s,logarithmic:o}=e,{color:r,events:n,zIndex:a=0}=i,{renderer:l,time:h}=e.chart,d={},c=h.parse(i.to),p=h.parse(i.from),u=h.parse(i.value),g=i.borderWidth,m=i.label,{label:f,svgElem:x}=this,y=[],b=Ro(p)&&Ro(c),v=Ro(u),w=!x,M={class:"highcharts-plot-"+(b?"band ":"line ")+(i.className||"")},k=b?"bands":"lines";if(!e.chart.styledMode&&(v?(M.stroke=r||"#999999",M["stroke-width"]=Ho(i.width,1),i.dashStyle&&(M.dashstyle=i.dashStyle)):b&&(M.fill=r||"#e6e9ff",g&&(M.stroke=i.borderColor,M["stroke-width"]=g))),d.zIndex=a,k+="-"+a,(t=e.plotLinesAndBandsGroups[k])||(e.plotLinesAndBandsGroups[k]=t=l.g("plot-"+k).attr(d).add()),x||(this.svgElem=x=l.path().attr(M).add(t)),Ro(u))y=e.getPlotLinePath({value:o?.log2lin(u)??u,lineWidth:x.strokeWidth(),acrossPanes:i.acrossPanes});else{if(!Ro(p)||!Ro(c))return;y=e.getPlotBandPath(o?.log2lin(p)??p,o?.log2lin(c)??c,i)}return!this.eventsAdded&&n&&(Xo(n,((t,e)=>{x?.on(e,(t=>{n[e].apply(this,[t])}))})),this.eventsAdded=!0),!w&&x.d||!y?.length?x&&(y?(x.show(),x.animate({d:y})):x.d&&(x.hide(),f&&(this.label=f=f.destroy()))):x.attr({d:y}),m&&(Ro(m.text)||Ro(m.formatter))&&y?.length&&e.width>0&&e.height>0&&!y.isFlat?(m=Fo({align:s&&b?"center":void 0,x:s?!b&&4:10,verticalAlign:!s&&b?"middle":void 0,y:s?b?16:10:b?6:-4,rotation:s&&!b?90:0,...b?{inside:!0}:{}},m),this.renderLabel(m,y,b,a)):f&&f.hide(),this}renderLabel(t,e,i,s){let o=this.axis,r=o.chart.renderer,n=t.inside,a=this.label;a||(this.label=a=r.text(this.getLabelText(t),0,0,t.useHTML).attr({align:t.textAlign||t.align,rotation:t.rotation,class:"highcharts-plot-"+(i?"band":"line")+"-label "+(t.className||""),zIndex:s}),o.chart.styledMode||a.css(Fo({fontSize:"0.8em",textOverflow:i&&!n?"":"ellipsis"},t.style)),a.add());let l=e.xBounds||[e[0][1],e[1][1],i?e[2][1]:e[0][1]],h=e.yBounds||[e[0][2],e[1][2],i?e[2][2]:e[0][2]],d=No(l),c=No(h),p=Bo(l)-d;a.align(t,!1,{x:d,y:c,width:p,height:Bo(h)-c}),a.alignAttr.y-=r.fontMetrics(a).b,(!a.alignValue||"left"===a.alignValue||Ro(n))&&a.css({width:(t.style?.width||(i&&n?p:90===a.rotation?o.height-(a.alignAttr.y-o.top):(t.clip?o.width:o.chart.chartWidth)-(a.alignAttr.x-o.left)))+"px"}),a.show(!0)}getLabelText(t){return Ro(t.formatter)?t.formatter.call(this):t.text}destroy(){Wo(this.axis.plotLinesAndBands,this),delete this.axis,jo(this)}}let{animObject:Vo}=Ut,{format:Yo}=we,{composed:_o,dateFormats:Zo,doc:$o,isSafari:qo}=M,{distribute:Ko}=Ce,{addEvent:Jo,clamp:Qo,css:tr,discardElement:er,extend:ir,fireEvent:sr,getAlignFactor:or,isArray:rr,isNumber:nr,isObject:ar,isString:lr,merge:hr,pick:dr,pushUnique:cr,splat:pr,syncTimeout:ur}=_;class gr{constructor(t,e,i){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.options={},this.outside=!1,this.chart=t,this.init(t,e),this.pointer=i}bodyFormatter(t){return t.map((t=>{let e=t.series.tooltipOptions,i=t.formatPrefix||"point";return(e[i+"Formatter"]||t.tooltipFormatter).call(t,e[i+"Format"]||"")}))}cleanSplit(t){this.chart.series.forEach((function(e){let i=e?.tt;i&&(!i.isActive||t?e.tt=i.destroy():i.isActive=!1)}))}defaultFormatter(t){let e,i=this.points||pr(this);return(e=(e=[t.headerFooterFormatter(i[0])]).concat(t.bodyFormatter(i))).push(t.headerFooterFormatter(i[0],!0)),e}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),er(this.container)),_.clearTimeout(this.hideTimer)}getAnchor(t,e){let i,{chart:s,pointer:o}=this,r=s.inverted,n=s.plotTop,a=s.plotLeft;if(t=pr(t),t[0].series?.yAxis&&!t[0].series.yAxis.options.reversedStacks&&(t=t.slice().reverse()),this.followPointer&&e)void 0===e.chartX&&(e=o.normalize(e)),i=[e.chartX-a,e.chartY-n];else if(t[0].tooltipPos)i=t[0].tooltipPos;else{let s=0,o=0;t.forEach((function(t){let e=t.pos(!0);e&&(s+=e[0],o+=e[1])})),s/=t.length,o/=t.length,this.shared&&t.length>1&&e&&(r?s=e.chartX:o=e.chartY),i=[s-a,o-n]}return i.map(Math.round)}getClassName(t,e,i){let s=this.options,o=t.series,r=o.options;return[s.className,"highcharts-label",i&&"highcharts-tooltip-header",e?"highcharts-tooltip-box":"highcharts-tooltip",!i&&"highcharts-color-"+dr(t.colorIndex,o.colorIndex),r?.className].filter(lr).join(" ")}getLabel({anchorX:t,anchorY:e}={anchorX:0,anchorY:0}){let i=this,s=this.chart.styledMode,o=this.options,r=this.split&&this.allowShared,n=this.container,a=this.chart.renderer;if(this.label){let t=!this.label.hasClass("highcharts-label");(!r&&t||r&&!t)&&this.destroy()}if(!this.label){if(this.outside){let t=this.chart,e=t.options.chart.style,i=Me.getRendererType();this.container=n=M.doc.createElement("div"),n.className="highcharts-tooltip-container "+(t.renderTo.className.match(/(highcharts[a-zA-Z0-9-]+)\s?/gm)||""),tr(n,{position:"absolute",top:"1px",pointerEvents:"none",zIndex:Math.max(this.options.style.zIndex||0,(e?.zIndex||0)+3)}),this.renderer=a=new i(n,0,0,e,void 0,void 0,a.styledMode)}if(r?this.label=a.g("tooltip"):(this.label=a.label("",t,e,o.shape||"callout",void 0,void 0,o.useHTML,void 0,"tooltip").attr({padding:o.padding,r:o.borderRadius}),s||this.label.attr({fill:o.backgroundColor,"stroke-width":o.borderWidth||0}).css(o.style).css({pointerEvents:o.style.pointerEvents||(this.shouldStickOnContact()?"auto":"none")})),i.outside){let t=this.label;[t.xSetter,t.ySetter].forEach(((e,s)=>{t[s?"ySetter":"xSetter"]=o=>{e.call(t,i.distance),t[s?"y":"x"]=o,n&&(n.style[s?"top":"left"]=`${o}px`)}}))}this.label.attr({zIndex:8}).shadow(o.shadow??!o.fixed).add()}return n&&!n.parentElement&&M.doc.body.appendChild(n),this.label}getPlayingField(){let{body:t,documentElement:e}=$o,{chart:i,distance:s,outside:o}=this;return{width:o?Math.max(t.scrollWidth,e.scrollWidth,t.offsetWidth,e.offsetWidth,e.clientWidth)-2*s-2:i.chartWidth,height:o?Math.max(t.scrollHeight,e.scrollHeight,t.offsetHeight,e.offsetHeight,e.clientHeight):i.chartHeight}}getPosition(t,e,i){let s,{distance:o,chart:r,outside:n,pointer:a}=this,{inverted:l,plotLeft:h,plotTop:d,polar:c}=r,{plotX:p=0,plotY:u=0}=i,g={},m=l&&i.h||0,{height:f,width:x}=this.getPlayingField(),y=a.getChartPosition(),b=t=>t*y.scaleX,v=t=>t*y.scaleY,w=i=>{let s="x"===i;return[i,s?x:f,s?t:e].concat(n?[s?b(t):v(e),s?y.left-o+b(p+h):y.top-o+v(u+d),0,s?x:f]:[s?t:e,s?p+h:u+d,s?h:d,s?h+r.plotWidth:d+r.plotHeight])},M=w("y"),k=w("x"),S=!!i.negative;!c&&r.hoverSeries?.yAxis?.reversed&&(S=!S);let T=!this.followPointer&&dr(i.ttBelow,!c&&!l===S),A=function(t,e,i,s,r,a,l){let h=n?"y"===t?v(o):b(o):o,d=(i-s)/2,c=se?f:f+m)}},C=function(t,e,i,s,r){if(re-o)return!1;g[t]=re-s/2?e-s-2:r-i/2},P=function(t){[M,k]=[k,M],s=t},L=()=>{!1!==A.apply(0,M)?!1!==C.apply(0,k)||s||(P(!0),L()):s?g.x=g.y=0:(P(!0),L())};return(l&&!c||this.len>1)&&P(),L(),g}getFixedPosition(t,e,i){let s=i.series,{chart:o,options:r,split:n}=this,a=r.position,l=a.relativeTo,h=r.shared||s?.yAxis?.isRadial&&("pane"===l||!l)?"plotBox":l,d="chart"===h?o.renderer:o[h]||o.getClipBox(s,!0);return{x:d.x+(d.width-t)*or(a.align)+a.x,y:d.y+(d.height-e)*or(a.verticalAlign)+(!n&&a.y||0)}}hide(t){let e=this;_.clearTimeout(this.hideTimer),t=dr(t,this.options.hideDelay),this.isHidden||(this.hideTimer=ur((function(){let i=e.getLabel();e.getLabel().animate({opacity:0},{duration:t?150:t,complete:()=>{i.hide(),e.container&&e.container.remove()}}),e.isHidden=!0}),t))}init(t,e){this.chart=t,this.options=e,this.crosshairs=[],this.isHidden=!0,this.split=e.split&&!t.inverted&&!t.polar,this.shared=e.shared||this.split,this.outside=dr(e.outside,!(!t.scrollablePixelsX&&!t.scrollablePixelsY))}shouldStickOnContact(t){return!(this.followPointer||!this.options.stickOnContact||t&&!this.pointer.inClass(t.target,"highcharts-tooltip"))}move(t,e,i,s){let{followPointer:o,options:r}=this,n=Vo(!o&&!this.isHidden&&!r.fixed&&r.animation),a={x:t,y:e};o||(this.len||0)>1?a.anchorX=a.anchorY=NaN:(a.anchorX=i,a.anchorY=s),n.step=()=>this.drawTracker(),this.getLabel().animate(a,n)}refresh(t,e){let{chart:i,options:s,pointer:o,shared:r}=this,n=pr(t),a=n[0],l=s.format,h=s.formatter||this.defaultFormatter,d=i.styledMode,c=this.allowShared;if(!s.enabled||!a.series)return;_.clearTimeout(this.hideTimer),this.allowShared=!(!rr(t)&&t.series&&t.series.noSharedTooltip),c=c&&!this.allowShared,this.followPointer=!this.split&&a.series.tooltipOptions.followPointer;let p=this.getAnchor(t,e),u=p[0],g=p[1];r&&this.allowShared&&(o.applyInactiveState(n),n.forEach((t=>t.setState("hover"))),a.points=n),this.len=n.length;let m=lr(l)?Yo(l,a,i):h.call(a,this);a.points=void 0;let f=a.series;if(this.distance=dr(f.tooltipOptions.distance,16),!1===m)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(m,n);else{let t=u,r=g;if(e&&o.isDirectTouch&&(t=e.chartX-i.plotLeft,r=e.chartY-i.plotTop),!i.polar&&!1!==f.options.clip&&!n.some((e=>o.isDirectTouch||e.series.shouldShowTooltip(t,r))))return void this.hide();{let t=this.getLabel(c&&this.tt||{});(!s.style.width||d)&&t.css({width:(this.outside?this.getPlayingField():i.spacingBox).width+"px"}),t.attr({class:this.getClassName(a),text:m&&m.join?m.join(""):m}),this.outside&&t.attr({x:Qo(t.x||0,0,this.getPlayingField().width-(t.width||0)-1)}),d||t.attr({stroke:s.borderColor||a.color||f.color||"#666666"}),this.updatePosition({plotX:u,plotY:g,negative:a.negative,ttBelow:a.ttBelow,series:f,h:p[2]||0})}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}sr(this,"refresh")}renderSplit(t,e){let i=this,{chart:s,chart:{chartWidth:o,chartHeight:r,plotHeight:n,plotLeft:a,plotTop:l,scrollablePixelsY:h=0,scrollablePixelsX:d,styledMode:c},distance:p,options:u,options:{fixed:g,position:m,positioner:f},pointer:x}=i,{scrollLeft:y=0,scrollTop:b=0}=s.scrollablePlotArea?.scrollingContainer||{},v=i.outside&&"number"!=typeof d?$o.documentElement.getBoundingClientRect():{left:y,right:y+o,top:b,bottom:b+r},w=i.getLabel(),M=this.renderer||s.renderer,k=!!s.xAxis[0]?.opposite,{left:S,top:T}=x.getChartPosition(),A=f||g,C=l+b,P=0,L=n-h,E=function(t,e,s,o=[0,0],r=!0){let n,a;if(s.isHeader)a=k?0:L,n=Qo(o[0]-t/2,v.left,v.right-t-(i.outside?S:0));else if(g&&s){let o=i.getFixedPosition(t,e,s);n=o.x,a=o.y-C}else a=o[1]-C,n=Qo(n=r?o[0]-t-p:o[0]+p,r?n:v.left,v.right);return{x:n,y:a}};lr(t)&&(t=[!1,t]);let O=t.slice(0,e.length+1).reduce((function(t,s,o){if(!1!==s&&""!==s){let r=e[o-1]||{isHeader:!0,plotX:e[0].plotX,plotY:n,series:{}},h=r.isHeader,d=h?i:r.series,m=d.tt=function(t,e,s){let o=t,{isHeader:r,series:n}=e,a=n.tooltipOptions||u;if(!o){let t={padding:a.padding,r:a.borderRadius};c||(t.fill=a.backgroundColor,t["stroke-width"]=a.borderWidth??(g&&!r?0:1)),o=M.label("",0,0,a[r?"headerShape":"shape"]||(g&&!r?"rect":"callout"),void 0,void 0,a.useHTML).addClass(i.getClassName(e,!0,r)).attr(t).add(w)}return o.isActive=!0,o.attr({text:s}),c||o.css(a.style).attr({stroke:a.borderColor||e.color||n.color||"#333333"}),o}(d.tt,r,s.toString()),x=m.getBBox(),y=x.width+m.strokeWidth();h&&(P=x.height,L+=P,k&&(C-=P));let{anchorX:b,anchorY:S}=function(t){let e,i,{isHeader:s,plotX:o=0,plotY:r=0,series:h}=t;if(s)e=Math.max(a+o,a),i=l+n/2;else{let{xAxis:t,yAxis:s}=h;e=t.pos+Qo(o,-p,t.len+p),h.shouldShowTooltip(0,s.pos-l+r,{ignoreX:!0})&&(i=s.pos+r)}return{anchorX:e=Qo(e,v.left-p,v.right+p),anchorY:i}}(r);if("number"==typeof S){let e=x.height+1,s=(f||E).call(i,y,e,r,[b,S]);t.push({align:A?0:void 0,anchorX:b,anchorY:S,boxWidth:y,point:r,rank:dr(s.rank,+!!h),size:e,target:s.y,tt:m,x:s.x})}else m.isActive=!1}return t}),[]);!A&&O.some((t=>{let{outside:e}=i,s=(e?S:0)+t.anchorX;return ss}))&&(O=O.map((t=>{let{x:e,y:i}=E.call(this,t.boxWidth,t.size,t.point,[t.anchorX,t.anchorY],!1);return ir(t,{target:i,x:e})}))),i.cleanSplit(),Ko(O,L);let D={left:S,right:S};O.forEach((function(t){let{x:e,boxWidth:s,isHeader:o}=t;!o&&(i.outside&&S+eD.right&&(D.right=S+e))})),O.forEach((function(t){let{x:e,anchorX:s,anchorY:o,pos:r,point:{isHeader:n}}=t,a={visibility:void 0===r?"hidden":"inherit",x:e,y:(r||0)+C+(g&&m.y||0),anchorX:s,anchorY:o};if(i.outside&&e0&&(n||(a.x=e+t,a.anchorX=s+t),n&&(a.x=(D.right-D.left)/2,a.anchorX=s+t))}t.tt.attr(a)}));let{container:I,outside:z,renderer:B}=i;if(z&&I&&B){let{width:t,height:e,x:i,y:s}=w.getBBox();B.setSize(t+i,e+s,!1),I.style.left=D.left+"px",I.style.top=T+"px"}qo&&w.attr({opacity:1===w.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact())return void(this.tracker&&(this.tracker=this.tracker.destroy()));let t=this.chart,e=this.label,i=this.shared?t.hoverPoints:t.hoverPoint;if(!e||!i)return;let s={x:0,y:0,width:0,height:0},o=this.getAnchor(i),r=e.getBBox();o[0]+=t.plotLeft-(e.translateX||0),o[1]+=t.plotTop-(e.translateY||0),s.x=Math.min(0,o[0]),s.y=Math.min(0,o[1]),s.width=o[0]<0?Math.max(Math.abs(o[0]),r.width-o[0]):Math.max(Math.abs(o[0]),r.width),s.height=o[1]<0?Math.max(Math.abs(o[1]),r.height-Math.abs(o[1])):Math.max(Math.abs(o[1]),r.height),this.tracker?this.tracker.attr(s):(this.tracker=e.renderer.rect(s).addClass("highcharts-tracker").add(e),t.styledMode||this.tracker.attr({fill:"rgba(0,0,0,0)"}))}styledModeFormat(t){return t.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}"')}headerFooterFormatter(t,e){let i=t.series,s=i.tooltipOptions,o=i.xAxis,r=o?.dateTime,n={isFooter:e,point:t},a=s.xDateFormat||"",l=s[e?"footerFormat":"headerFormat"];return sr(this,"headerFormatter",n,(function(e){if(r&&!a&&nr(t.key)&&(a=r.getXDateFormat(t.key,s.dateTimeLabelFormats)),r&&a){if(ar(a)){let t=a;Zo[0]=e=>i.chart.time.dateFormat(t,e),a="%0"}(t.tooltipDateKeys||["key"]).forEach((t=>{l=l.replace(RegExp("point\\."+t+"([ \\)}])"),`(point.${t}:${a})$1`)}))}i.chart.styledMode&&(l=this.styledModeFormat(l)),e.text=Yo(l,t,this.chart)})),n.text||""}update(t){this.destroy(),this.init(this.chart,hr(!0,this.options,t))}updatePosition(t){let e,{chart:i,container:s,distance:o,options:r,pointer:n,renderer:a}=this,{height:l=0,width:h=0}=this.getLabel(),{fixed:d,positioner:c}=r,{left:p,top:u,scaleX:g,scaleY:m}=n.getChartPosition(),f=(c||d&&this.getFixedPosition||this.getPosition).call(this,h,l,t),x=M.doc,y=(t.plotX||0)+i.plotLeft,b=(t.plotY||0)+i.plotTop;if(a&&s){if(c||d){let{scrollLeft:t=0,scrollTop:e=0}=i.scrollablePlotArea?.scrollingContainer||{};f.x+=t+p-o,f.y+=e+u-o}e=(r.borderWidth||0)+2*o+2,a.setSize(Qo(h+e,0,x.documentElement.clientWidth)-1,l+e,!1),(1!==g||1!==m)&&(tr(s,{transform:`scale(${g}, ${m})`}),y*=g,b*=m),y+=p-f.x,b+=u-f.y}this.move(Math.round(f.x),Math.round(f.y||0),y,b)}}!function(t){t.compose=function(e){cr(_o,"Core.Tooltip")&&Jo(e,"afterInit",(function(){let e=this.chart;e.options.tooltip&&(e.tooltip=new t(e,e.options.tooltip,this))}))}}(gr||(gr={}));let mr=gr,{animObject:fr}=Ut,{defaultOptions:xr}=bt,{format:yr}=we,{addEvent:br,crisp:vr,erase:wr,extend:Mr,fireEvent:kr,getNestedProperty:Sr,isArray:Tr,isFunction:Ar,isNumber:Cr,isObject:Pr,merge:Lr,pick:Er,syncTimeout:Or,removeEvent:Dr,uniqueKey:Ir}=_;class zr{animateBeforeDestroy(){let t=this,e={x:t.startXPos,opacity:0},i=t.getGraphicalProps();i.singular.forEach((function(i){t[i]=t[i].animate("dataLabel"===i?{x:t[i].startXPos,y:t[i].startYPos,opacity:0}:e)})),i.plural.forEach((function(e){t[e].forEach((function(e){e.element&&e.animate(Mr({x:t.startXPos},e.startYPos?{x:e.startXPos,y:e.startYPos}:{}))}))}))}applyOptions(t,e){let i=this.series,s=i.options.pointValKey||i.pointValKey;return Mr(this,t=zr.prototype.optionsToObject.call(this,t)),this.options=this.options?Mr(this.options,t):t,t.group&&delete this.group,t.dataLabels&&delete this.dataLabels,s&&(this.y=zr.prototype.getNestedProperty.call(this,s)),this.selected&&(this.state="select"),"name"in this&&void 0===e&&i.xAxis&&i.xAxis.hasNames&&(this.x=i.xAxis.nameToX(this)),void 0===this.x&&i?this.x=e??i.autoIncrement():Cr(t.x)&&i.options.relativeXValue?this.x=i.autoIncrement(t.x):"string"==typeof this.x&&(e??(e=i.chart.time.parse(this.x)),Cr(e)&&(this.x=e)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?"null":"point",this}destroy(){if(!this.destroyed){let t=this,e=t.series,i=e.chart,s=e.options.dataSorting,o=i.hoverPoints,r=fr(t.series.chart.renderer.globalAnimation),n=()=>{for(let e in(t.graphic||t.graphics||t.dataLabel||t.dataLabels)&&(Dr(t),t.destroyElements()),t)delete t[e]};t.legendItem&&i.legend.destroyItem(t),o&&(t.setState(),wr(o,t),o.length||(i.hoverPoints=null)),t===i.hoverPoint&&t.onMouseOut(),s?.enabled?(this.animateBeforeDestroy(),Or(n,r.duration)):n(),i.pointCount--}this.destroyed=!0}destroyElements(t){let e=this,i=e.getGraphicalProps(t);i.singular.forEach((function(t){e[t]=e[t].destroy()})),i.plural.forEach((function(t){e[t].forEach((function(t){t?.element&&t.destroy()})),delete e[t]}))}firePointEvent(t,e,i){let s=this,o=this.series.options;s.manageEvent(t),"click"===t&&o.allowPointSelect&&(i=function(t){!s.destroyed&&s.select&&s.select(null,t.ctrlKey||t.metaKey||t.shiftKey)}),kr(s,t,e,i)}getClassName(){return"highcharts-point"+(this.selected?" highcharts-point-select":"")+(this.negative?" highcharts-negative":"")+(this.isNull?" highcharts-null-point":"")+(void 0!==this.colorIndex?" highcharts-color-"+this.colorIndex:"")+(this.options.className?" "+this.options.className:"")+(this.zone?.className?" "+this.zone.className.replace("highcharts-negative",""):"")}getGraphicalProps(t){let e,i,s=this,o=[],r={singular:[],plural:[]};for((t=t||{graphic:1,dataLabel:1}).graphic&&o.push("graphic","connector"),t.dataLabel&&o.push("dataLabel","dataLabelPath","dataLabelUpper"),i=o.length;i--;)s[e=o[i]]&&r.singular.push(e);return["graphic","dataLabel"].forEach((function(e){let i=e+"s";t[e]&&s[i]&&r.plural.push(i)})),r}getNestedProperty(t){return t?0===t.indexOf("custom.")?Sr(t,this.options):this[t]:void 0}getZone(){let t,e=this.series,i=e.zones,s=e.zoneAxis||"y",o=0;for(t=i[0];this[s]>=t.value;)t=i[++o];return this.nonZonedColor||(this.nonZonedColor=this.color),t?.color&&!this.options.color?this.color=t.color:this.color=this.nonZonedColor,t}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(t,e,i){this.formatPrefix="point",this.visible=!0,this.point=this,this.series=t,this.applyOptions(e,i),this.id??(this.id=Ir()),this.resolveColor(),this.dataLabelOnNull??(this.dataLabelOnNull=t.options.nullInteraction),t.chart.pointCount++,kr(this,"afterInit")}isValid(){return(Cr(this.x)||this.x instanceof Date)&&Cr(this.y)}optionsToObject(t){let e,i=this.series,s=i.options.keys,o=s||i.pointArrayMap||["y"],r=o.length,n={},a=0,l=0;if(Cr(t)||null===t)n[o[0]]=t;else if(Tr(t))for(!s&&t.length>r&&("string"==(e=typeof t[0])?i.xAxis?.dateTime?n.x=i.chart.time.parse(t[0]):n.name=t[0]:"number"===e&&(n.x=t[0]),a++);l0?zr.prototype.setNestedProperty(n,t[a],o[l]):n[o[l]]=t[a]),a++,l++;else"object"==typeof t&&(n=t,t.dataLabels&&(i.hasDataLabels=()=>!0),t.marker&&(i._hasPointMarkers=!0));return n}pos(t,e=this.plotY){if(!this.destroyed){let{plotX:i,series:s}=this,{chart:o,xAxis:r,yAxis:n}=s,a=0,l=0;if(Cr(i)&&Cr(e))return t&&(a=r?r.pos:o.plotLeft,l=n?n.pos:o.plotTop),o.inverted&&r&&n?[n.len-e+l,r.len-i+a]:[i+a,e+l]}}resolveColor(){let t,e,i,s=this.series,o=s.chart.options.chart,r=s.chart.styledMode,n=o.colorCount;delete this.nonZonedColor,s.options.colorByPoint?(r||(t=(e=s.options.colors||s.chart.options.colors)[s.colorCounter],n=e.length),i=s.colorCounter,s.colorCounter++,s.colorCounter===n&&(s.colorCounter=0)):(r||(t=s.color),i=s.colorIndex),this.colorIndex=Er(this.options.colorIndex,i),this.color=Er(this.options.color,t)}setNestedProperty(t,e,i){return i.split(".").reduce((function(t,i,s,o){let r=o.length-1===s;return t[i]=r?e:Pr(t[i],!0)?t[i]:{},t[i]}),t),t}shouldDraw(){return!this.isNull}tooltipFormatter(t){let{chart:e,pointArrayMap:i=["y"],tooltipOptions:s}=this.series,{valueDecimals:o="",valuePrefix:r="",valueSuffix:n=""}=s;return e.styledMode&&(t=e.tooltip?.styledModeFormat(t)||t),i.forEach((e=>{e="{point."+e,(r||n)&&(t=t.replace(RegExp(e+"}","g"),r+e+"}"+n)),t=t.replace(RegExp(e+"}","g"),e+":,."+o+"f}")})),yr(t,this,e)}update(t,e,i,s){let o,r=this,n=r.series,a=r.graphic,l=n.chart,h=n.options;function d(){r.applyOptions(t);let s=a&&r.hasMockGraphic,d=null===r.y?!s:s;a&&d&&(r.graphic=a.destroy(),delete r.hasMockGraphic),Pr(t,!0)&&(a?.element&&t&&t.marker&&void 0!==t.marker.symbol&&(r.graphic=a.destroy()),t?.dataLabels&&r.dataLabel&&(r.dataLabel=r.dataLabel.destroy())),o=r.index;let c={};for(let t of n.dataColumnKeys())c[t]=r[t];n.dataTable.setRow(c,o),h.data[o]=Pr(h.data[o],!0)||Pr(t,!0)?r.options:Er(t,h.data[o]),n.isDirty=n.isDirtyData=!0,!n.fixedBox&&n.hasCartesianSeries&&(l.isDirtyBox=!0),"point"===h.legendType&&(l.isDirtyLegend=!0),e&&l.redraw(i)}e=Er(e,!0),!1===s?d():r.firePointEvent("update",{options:t},d)}remove(t,e){this.series.removePoint(this.series.data.indexOf(this),t,e)}select(t,e){let i=this,s=i.series,o=s.chart;t=Er(t,!i.selected),this.selectedStaging=t,i.firePointEvent(t?"select":"unselect",{accumulate:e},(function(){i.selected=i.options.selected=t,s.options.data[s.data.indexOf(i)]=i.options,i.setState(t&&"select"),e||o.getSelectedPoints().forEach((function(t){let e=t.series;t.selected&&t!==i&&(t.selected=t.options.selected=!1,e.options.data[e.data.indexOf(t)]=t.options,t.setState(o.hoverPoints&&e.options.inactiveOtherPoints?"inactive":""),t.firePointEvent("unselect"))}))})),delete this.selectedStaging}onMouseOver(t){let{inverted:e,pointer:i}=this.series.chart;i&&(t=t?i.normalize(t):i.getChartCoordinatesFromPoint(this,e),i.runPointActions(t,this))}onMouseOut(){let t=this.series.chart;this.firePointEvent("mouseOut"),this.series.options.inactiveOtherPoints||(t.hoverPoints||[]).forEach((function(t){t.setState()})),t.hoverPoints=t.hoverPoint=null}manageEvent(t){let e=Lr(this.series.options.point,this.options),i=e.events?.[t];!Ar(i)||this.hcEvents?.[t]&&-1!==this.hcEvents?.[t]?.map((t=>t.fn)).indexOf(i)?this.importedUserEvent&&!i&&this.hcEvents?.[t]&&this.hcEvents?.[t].userEvent&&(Dr(this,t),delete this.hcEvents[t],Object.keys(this.hcEvents)||delete this.importedUserEvent):(this.importedUserEvent?.(),this.importedUserEvent=br(this,t,i),this.hcEvents&&(this.hcEvents[t].userEvent=!0))}setState(t,e){let i,s,o,r,n=this.series,a=this.state,l=n.options.states[t||"normal"]||{},h=xr.plotOptions[n.type].marker&&n.options.marker,d=h&&!1===h.enabled,c=h?.states?.[t||"normal"]||{},p=!1===c.enabled,u=this.marker||{},g=n.chart,m=h&&n.markerAttribs,f=n.halo,x=n.stateMarkerGraphic;if((t=t||"")===this.state&&!e||this.selected&&"select"!==t||!1===l.enabled||t&&(p||d&&!1===c.enabled)||t&&u.states&&u.states[t]&&!1===u.states[t].enabled)return;if(this.state=t,m&&(i=n.markerAttribs(this,t)),this.graphic&&!this.hasMockGraphic){if(a&&this.graphic.removeClass("highcharts-point-"+a),t&&this.graphic.addClass("highcharts-point-"+t),!g.styledMode){s=n.pointAttribs(this,t),o=Er(g.options.chart.animation,l.animation);let e=s.opacity;n.options.inactiveOtherPoints&&Cr(e)&&(this.dataLabels||[]).forEach((function(t){t&&!t.hasClass("highcharts-data-label-hidden")&&(t.animate({opacity:e},o),t.connector&&t.connector.animate({opacity:e},o))})),this.graphic.animate(s,o)}i&&this.graphic.animate(i,Er(g.options.chart.animation,c.animation,h.animation)),x&&x.hide()}else t&&c&&(r=u.symbol||n.symbol,x&&x.currentSymbol!==r&&(x=x.destroy()),i&&(x?x[e?"animate":"attr"]({x:i.x,y:i.y}):r&&(n.stateMarkerGraphic=x=g.renderer.symbol(r,i.x,i.y,i.width,i.height,Lr(h,c)).add(n.markerGroup),x.currentSymbol=r)),!g.styledMode&&x&&"inactive"!==this.state&&x.attr(n.pointAttribs(this,t))),x&&(x[t&&this.isInside?"show":"hide"](),x.element.point=this,x.addClass(this.getClassName(),!0));let y=l.halo,b=this.graphic||x,v=b?.visibility||"inherit";y?.size&&b&&"hidden"!==v&&!this.isCluster?(f||(n.halo=f=g.renderer.path().add(b.parentGroup)),f.show()[e?"animate":"attr"]({d:this.haloPath(y.size)}),f.attr({class:"highcharts-halo highcharts-color-"+Er(this.colorIndex,n.colorIndex)+(this.className?" "+this.className:""),visibility:v,zIndex:-1}),f.point=this,g.styledMode||f.attr(Mr({fill:this.color||n.color,"fill-opacity":y.opacity},oe.filterUserAttributes(y.attributes||{})))):f?.point?.haloPath&&!f.point.destroyed&&f.animate({d:f.point.haloPath(0)},null,f.hide),kr(this,"afterSetState",{state:t})}haloPath(t){let e=this.pos();return e?this.series.chart.renderer.symbols.circle(vr(e[0],1)-t,e[1]-t,2*t,2*t):[]}}let Br=zr,{parse:Nr}=Pt,{charts:Rr,composed:jr,isTouchDevice:Wr}=M,{addEvent:Gr,attr:Fr,css:Xr,extend:Hr,find:Ur,fireEvent:Vr,isNumber:Yr,isObject:_r,objectEach:Zr,offset:$r,pick:qr,pushUnique:Kr,splat:Jr}=_;class Qr{applyInactiveState(t=[]){let e=[];t.forEach((t=>{let i=t.series;e.push(i),i.linkedParent&&e.push(i.linkedParent),i.linkedSeries&&e.push.apply(e,i.linkedSeries),i.navigatorSeries&&e.push(i.navigatorSeries),i.boosted&&i.markerGroup&&e.push.apply(e,this.chart.series.filter((t=>t.markerGroup===i.markerGroup)))})),this.chart.series.forEach((t=>{-1===e.indexOf(t)?t.setState("inactive",!0):t.options.inactiveOtherPoints&&t.setAllPointsToState("inactive")}))}destroy(){let t=this;this.eventsToUnbind.forEach((t=>t())),this.eventsToUnbind=[],!M.chartCount&&(Qr.unbindDocumentMouseUp.forEach((t=>t.unbind())),Qr.unbindDocumentMouseUp.length=0,Qr.unbindDocumentTouchEnd&&(Qr.unbindDocumentTouchEnd=Qr.unbindDocumentTouchEnd())),clearInterval(t.tooltipTimeout),Zr(t,(function(e,i){t[i]=void 0}))}getSelectionMarkerAttrs(t,e){let i={args:{chartX:t,chartY:e},attrs:{},shapeType:"rect"};return Vr(this,"getSelectionMarkerAttrs",i,(i=>{let s,{chart:o,zoomHor:r,zoomVert:n}=this,{mouseDownX:a=0,mouseDownY:l=0}=o,h=i.attrs;h.x=o.plotLeft,h.y=o.plotTop,h.width=r?1:o.plotWidth,h.height=n?1:o.plotHeight,r&&(h.width=Math.max(1,Math.abs(s=t-a)),h.x=(s>0?0:s)+a),n&&(h.height=Math.max(1,Math.abs(s=e-l)),h.y=(s>0?0:s)+l)})),i}drag(t){let e,{chart:i}=this,{mouseDownX:s=0,mouseDownY:o=0}=i,{panning:r,panKey:n,selectionMarkerFill:a}=i.options.chart,l=i.plotLeft,h=i.plotTop,d=i.plotWidth,c=i.plotHeight,p=_r(r)?r.enabled:r,u=n&&t[`${n}Key`],g=t.chartX,m=t.chartY,f=this.selectionMarker;if((!f||!f.touch)&&(gl+d&&(g=l+d),mh+c&&(m=h+c),this.hasDragged=Math.sqrt(Math.pow(s-g,2)+Math.pow(o-m,2)),this.hasDragged>10)){e=i.isInsidePlot(s-l,o-h,{visiblePlotOnly:!0});let{shapeType:n,attrs:d}=this.getSelectionMarkerAttrs(g,m);(i.hasCartesianSeries||i.mapView)&&this.hasZoom&&e&&!u&&!f&&(this.selectionMarker=f=i.renderer[n](),f.attr({class:"highcharts-selection-marker",zIndex:7}).add(),i.styledMode||f.attr({fill:a||Nr("#334eff").setOpacity(.25).get()})),f&&f.attr(d),e&&!f&&p&&i.pan(t,r)}}dragStart(t){let e=this.chart;e.mouseIsDown=t.type,e.cancelClick=!1,e.mouseDownX=t.chartX,e.mouseDownY=t.chartY}getSelectionBox(t){let e={args:{marker:t},result:t.getBBox()};return Vr(this,"getSelectionBox",e),e.result}drop(t){let e,{chart:i,selectionMarker:s}=this;for(let t of i.axes)t.isPanning&&(t.isPanning=!1,(t.options.startOnTick||t.options.endOnTick||t.series.some((t=>t.boosted)))&&(t.forceRedraw=!0,t.setExtremes(t.userMin,t.userMax,!1),e=!0));if(e&&i.redraw(),s&&t){if(this.hasDragged){let e=this.getSelectionBox(s);i.transform({axes:i.axes.filter((t=>t.zoomEnabled&&("xAxis"===t.coll&&this.zoomX||"yAxis"===t.coll&&this.zoomY))),selection:{originalEvent:t,xAxis:[],yAxis:[],...e},from:e})}Yr(i.index)&&(this.selectionMarker=s.destroy())}i&&Yr(i.index)&&(Xr(i.container,{cursor:i._cursor}),i.cancelClick=this.hasDragged>10,i.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(t,e,i){let s;return t.forEach((function(t){let o=!(t.noSharedTooltip&&e)&&0>t.options.findNearestPointBy.indexOf("y"),r=t.searchPoint(i,o);_r(r,!0)&&r.series&&(!_r(s,!0)||function(t,i){let s=t.distX-i.distX,o=t.dist-i.dist,r=i.series.group?.zIndex-t.series.group?.zIndex;return 0!==s&&e?s:0!==o?o:0!==r?r:t.series.index>i.series.index?-1:1}(s,r)>0)&&(s=r)})),s}getChartCoordinatesFromPoint(t,e){let{xAxis:i,yAxis:s}=t.series,o=t.shapeArgs;if(i&&s){let r=t.clientX??t.plotX??0,n=t.plotY||0;return t.isNode&&o&&Yr(o.x)&&Yr(o.y)&&(r=o.x,n=o.y),e?{chartX:s.len+s.pos-n,chartY:i.len+i.pos-r}:{chartX:r+i.pos,chartY:n+s.pos}}if(o?.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:t}=this.chart,e=$r(t);this.chartPosition={left:e.left,top:e.top,scaleX:1,scaleY:1};let{offsetHeight:i,offsetWidth:s}=t;return s>2&&i>2&&(this.chartPosition.scaleX=e.width/s,this.chartPosition.scaleY=e.height/i),this.chartPosition}getCoordinates(t){let e={xAxis:[],yAxis:[]};for(let i of this.chart.axes)e[i.isXAxis?"xAxis":"yAxis"].push({axis:i,value:i.toValue(t[i.horiz?"chartX":"chartY"])});return e}getHoverData(t,e,i,s,o,r){let n,a=[],l=function(t){return t.visible&&!(!o&&t.directTouch)&&qr(t.options.enableMouseTracking,!0)},h=e,d={chartX:r?r.chartX:void 0,chartY:r?r.chartY:void 0,shared:o};Vr(this,"beforeGetHoverData",d),n=h&&!h.stickyTracking?[h]:i.filter((t=>t.stickyTracking&&(d.filter||l)(t)));let c=s&&t||!r?t:this.findNearestKDPoint(n,o,r);return h=c?.series,c&&(o&&!h.noSharedTooltip?(n=i.filter((function(t){return d.filter?d.filter(t):l(t)&&!t.noSharedTooltip}))).forEach((function(t){let e=t.options?.nullInteraction,i=Ur(t.points,(function(t){return!(t.x!==c.x||t.isNull&&!e)}));_r(i)&&(t.boosted&&t.boost&&(i=t.boost.getPoint(i)),a.push(i))})):a.push(c)),Vr(this,"afterGetHoverData",d={hoverPoint:c}),{hoverPoint:d.hoverPoint,hoverSeries:h,hoverPoints:a}}getPointFromEvent(t){let e,i=t.target;for(;i&&!e;)e=i.point,i=i.parentNode;return e}onTrackerMouseOut(t){let e=this.chart,i=t.relatedTarget,s=e.hoverSeries;this.isDirectTouch=!1,!s||!i||s.stickyTracking||this.inClass(i,"highcharts-tooltip")||this.inClass(i,"highcharts-series-"+s.index)&&this.inClass(i,"highcharts-tracker")||s.onMouseOut()}inClass(t,e){let i,s=t;for(;s;){if(i=Fr(s,"class")){if(-1!==i.indexOf(e))return!0;if(-1!==i.indexOf("highcharts-container"))return!1}s=s.parentElement}}constructor(t,e){this.hasDragged=0,this.pointerCaptureEventsToUnbind=[],this.eventsToUnbind=[],this.options=e,this.chart=t,this.runChartClick=!!e.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),Vr(this,"afterInit")}normalize(t,e){let i=t.touches,s=i?i.length?i.item(0):qr(i.changedTouches,t.changedTouches)[0]:t;e||(e=this.getChartPosition());let o=s.pageX-e.left,r=s.pageY-e.top;return Hr(t,{chartX:Math.round(o/=e.scaleX),chartY:Math.round(r/=e.scaleY)})}onContainerClick(t){let e=this.chart,i=e.hoverPoint,s=this.normalize(t),o=e.plotLeft,r=e.plotTop;!e.cancelClick&&(i&&this.inClass(s.target,"highcharts-tracker")?(Vr(i.series,"click",Hr(s,{point:i})),e.hoverPoint&&i.firePointEvent("click",s)):(Hr(s,this.getCoordinates(s)),e.isInsidePlot(s.chartX-o,s.chartY-r,{visiblePlotOnly:!0})&&Vr(e,"click",s)))}onContainerMouseDown(t){let e=1==(1&(t.buttons||t.button));t=this.normalize(t),M.isFirefox&&0!==t.button&&this.onContainerMouseMove(t),(void 0===t.button||e)&&(this.zoomOption(t),e&&t.preventDefault?.(),this.dragStart(t))}onContainerMouseLeave(t){let{pointer:e}=Rr[qr(Qr.hoverChartIndex,-1)]||{};t=this.normalize(t),this.onContainerMouseMove(t),e&&!this.inClass(t.relatedTarget,"highcharts-tooltip")&&(e.reset(),e.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(t){let e=this.chart,i=e.tooltip,s=this.normalize(t);this.setHoverChartIndex(t),("mousedown"===e.mouseIsDown||this.touchSelect(s))&&this.drag(s),!e.openMenu&&(this.inClass(s.target,"highcharts-tracker")||e.isInsidePlot(s.chartX-e.plotLeft,s.chartY-e.plotTop,{visiblePlotOnly:!0}))&&!i?.shouldStickOnContact(s)&&(this.inClass(s.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(s))}onDocumentTouchEnd(t){this.onDocumentMouseUp(t)}onContainerTouchMove(t){this.touchSelect(t)?this.onContainerMouseMove(t):this.touch(t)}onContainerTouchStart(t){this.touchSelect(t)?this.onContainerMouseDown(t):(this.zoomOption(t),this.touch(t,!0))}onDocumentMouseMove(t){let e=this.chart,i=e.tooltip,s=this.chartPosition,o=this.normalize(t,s);!s||e.isInsidePlot(o.chartX-e.plotLeft,o.chartY-e.plotTop,{visiblePlotOnly:!0})||i?.shouldStickOnContact(o)||o.target!==e.container.ownerDocument&&this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(t){Rr[qr(Qr.hoverChartIndex,-1)]?.pointer?.drop(t)}pinch(t){let e=this,{chart:i,hasZoom:s,lastTouches:o}=e,r=[].map.call(t.touches||[],(t=>e.normalize(t))),n=r.length,a=1===n&&(e.inClass(t.target,"highcharts-tracker")&&i.runTrackerClick||e.runChartClick),l=i.tooltip,h=1===n&&qr(l?.options.followTouchMove,!0);n>1?e.initiated=!0:h&&(e.initiated=!1),s&&e.initiated&&!a&&!1!==t.cancelable&&t.preventDefault(),"touchstart"===t.type?(e.pinchDown=r,e.res=!0,i.mouseDownX=t.chartX):h?this.runPointActions(e.normalize(t)):o&&(Vr(i,"touchpan",{originalEvent:t,touches:r},(()=>{let e=t=>{let e=t[0],i=t[1]||e;return{x:e.chartX,y:e.chartY,width:i.chartX-e.chartX,height:i.chartY-e.chartY}};i.transform({axes:i.axes.filter((t=>t.zoomEnabled&&(this.zoomHor&&t.horiz||this.zoomVert&&!t.horiz))),to:e(r),from:e(o),trigger:t.type})})),e.res&&(e.res=!1,this.reset(!1,0))),e.lastTouches=r}reset(t,e){let i=this.chart,s=i.hoverSeries,o=i.hoverPoint,r=i.hoverPoints,n=i.tooltip,a=n?.shared?r:o;t&&a&&Jr(a).forEach((function(e){e.series.isCartesian&&void 0===e.plotX&&(t=!1)})),t?n&&a&&Jr(a).length&&(n.refresh(a),n.shared&&r?r.forEach((function(t){t.setState(t.state,!0),t.series.isCartesian&&(t.series.xAxis.crosshair&&t.series.xAxis.drawCrosshair(null,t),t.series.yAxis.crosshair&&t.series.yAxis.drawCrosshair(null,t))})):o&&(o.setState(o.state,!0),i.axes.forEach((function(t){t.crosshair&&o.series[t.coll]===t&&t.drawCrosshair(null,o)})))):(o&&o.onMouseOut(),r&&r.forEach((function(t){t.setState()})),s&&s.onMouseOut(),n&&n.hide(e),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),i.axes.forEach((function(t){t.hideCrosshair()})),i.hoverPoints=i.hoverPoint=void 0)}runPointActions(t,e,i){let s=this.chart,o=s.series,r=s.tooltip?.options.enabled?s.tooltip:void 0,n=!!r&&r.shared,a=e||s.hoverPoint,l=a?.series||s.hoverSeries,h=(!t||"touchmove"!==t.type)&&(!!e||l?.directTouch&&this.isDirectTouch),d=this.getHoverData(a,l,o,h,n,t);a=d.hoverPoint,l=d.hoverSeries;let c=d.hoverPoints,p=l?.tooltipOptions.followPointer&&!l.tooltipOptions.split,u=n&&l&&!l.noSharedTooltip;if(a&&(i||a!==s.hoverPoint||r?.isHidden)){if((s.hoverPoints||[]).forEach((function(t){-1===c.indexOf(t)&&t.setState()})),s.hoverSeries!==l&&l.onMouseOver(),this.applyInactiveState(c),(c||[]).forEach((function(t){t.setState("hover")})),s.hoverPoint&&s.hoverPoint.firePointEvent("mouseOut"),!a.series)return;s.hoverPoints=c,s.hoverPoint=a,a.firePointEvent("mouseOver",void 0,(()=>{r&&a&&r.refresh(u?c:a,t)}))}else if(p&&r&&!r.isHidden){let e=r.getAnchor([{}],t);s.isInsidePlot(e[0],e[1],{visiblePlotOnly:!0})&&r.updatePosition({plotX:e[0],plotY:e[1]})}this.unDocMouseMove||(this.unDocMouseMove=Gr(s.container.ownerDocument,"mousemove",(t=>Rr[Qr.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(t))),this.eventsToUnbind.push(this.unDocMouseMove)),s.axes.forEach((function(e){let i,o=e.crosshair?.snap??!0;!o||(i=s.hoverPoint)&&i.series[e.coll]===e||(i=Ur(c,(t=>t.series?.[e.coll]===e))),i||!o?e.drawCrosshair(t,i):e.hideCrosshair()}))}setDOMEvents(){let t=this.chart.container,e=t.ownerDocument;t.onmousedown=this.onContainerMouseDown.bind(this),t.onmousemove=this.onContainerMouseMove.bind(this),t.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(Gr(t,"mouseenter",this.onContainerMouseEnter.bind(this)),Gr(t,"mouseleave",this.onContainerMouseLeave.bind(this))),Qr.unbindDocumentMouseUp.some((t=>t.doc===e))||Qr.unbindDocumentMouseUp.push({doc:e,unbind:Gr(e,"mouseup",this.onDocumentMouseUp.bind(this))});let i=this.chart.renderTo.parentElement;for(;i&&"BODY"!==i.tagName;)this.eventsToUnbind.push(Gr(i,"scroll",(()=>{delete this.chartPosition}))),i=i.parentElement;this.eventsToUnbind.push(Gr(t,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),Gr(t,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),Qr.unbindDocumentTouchEnd||(Qr.unbindDocumentTouchEnd=Gr(e,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1})),this.setPointerCapture(),Gr(this.chart,"redraw",this.setPointerCapture.bind(this))}setPointerCapture(){if(!Wr)return;let t=this.pointerCaptureEventsToUnbind,e=this.chart,i=e.container,s=qr(e.options.tooltip?.followTouchMove,!0)&&e.series.some((t=>t.options.findNearestPointBy.indexOf("y")>-1));!this.hasPointerCapture&&s?(t.push(Gr(i,"pointerdown",(t=>{t.target?.hasPointerCapture(t.pointerId)&&t.target?.releasePointerCapture(t.pointerId)})),Gr(i,"pointermove",(t=>{e.pointer?.getPointFromEvent(t)?.onMouseOver(t)}))),e.styledMode||Xr(i,{"touch-action":"none"}),i.className+=" highcharts-no-touch-action",this.hasPointerCapture=!0):this.hasPointerCapture&&!s&&(t.forEach((t=>t())),t.length=0,e.styledMode||Xr(i,{"touch-action":qr(e.options.chart.style?.["touch-action"],"manipulation")}),i.className=i.className.replace(" highcharts-no-touch-action",""),this.hasPointerCapture=!1)}setHoverChartIndex(t){let e=this.chart,i=M.charts[qr(Qr.hoverChartIndex,-1)];if(i&&i!==e){let s={relatedTarget:e.container};t&&!t?.relatedTarget&&Object.assign({},t,s),i.pointer?.onContainerMouseLeave(t||s)}i?.mouseIsDown||(Qr.hoverChartIndex=e.index)}touch(t,e){let i,{chart:s,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===(t=this.normalize(t)).touches.length?s.isInsidePlot(t.chartX-s.plotLeft,t.chartY-s.plotTop,{visiblePlotOnly:!0})&&!s.openMenu?(e&&this.runPointActions(t),"touchmove"===t.type&&(i=!!o[0]&&Math.pow(o[0].chartX-t.chartX,2)+Math.pow(o[0].chartY-t.chartY,2)>=16),qr(i,!0)&&this.pinch(t)):e&&this.reset():2===t.touches.length&&this.pinch(t)}touchSelect(t){return!(!this.chart.zooming.singleTouch||!t.touches||1!==t.touches.length)}zoomOption(t){let e,i,s=this.chart,o=s.inverted,r=s.zooming.type||"";/touch/.test(t.type)&&(r=qr(s.zooming.pinchType,r)),this.zoomX=e=/x/.test(r),this.zoomY=i=/y/.test(r),this.zoomHor=e&&!o||i&&o,this.zoomVert=i&&!o||e&&o,this.hasZoom=e||i}}Qr.unbindDocumentMouseUp=[],function(t){t.compose=function(e){Kr(jr,"Core.Pointer")&&Gr(e,"beforeRender",(function(){this.pointer=new t(this,this.options)}))}}(Qr||(Qr={}));let tn=Qr;!function(t){t.setLength=function(t,e,i){return Array.isArray(t)?(t.length=e,t):t[i?"subarray":"slice"](0,e)},t.splice=function(t,e,i,s,o=[]){if(Array.isArray(t))return Array.isArray(o)||(o=Array.from(o)),{removed:t.splice(e,i,...o),array:t};let r=Object.getPrototypeOf(t).constructor,n=t[s?"subarray":"slice"](e,e+i),a=new r(t.length-i+o.length);return a.set(t.subarray(0,e),0),a.set(o,e),a.set(t.subarray(e+i),e+o.length),{removed:n,array:a}}}(d||(d={}));let{setLength:en,splice:sn}=d,{fireEvent:on,objectEach:rn,uniqueKey:nn}=_,an=class{constructor(t={}){this.autoId=!t.id,this.columns={},this.id=t.id||nn(),this.modified=this,this.rowCount=0,this.versionTag=nn();let e=0;rn(t.columns||{},((t,i)=>{this.columns[i]=t.slice(),e=Math.max(e,t.length)})),this.applyRowCount(e)}applyRowCount(t){this.rowCount=t,rn(this.columns,((e,i)=>{e.length!==t&&(this.columns[i]=en(e,t))}))}deleteRows(t,e=1){if(e>0&&t{this.columns[o]=sn(s,t,e).array,i=s.length})),this.rowCount=i}on(this,"afterDeleteRows",{rowIndex:t,rowCount:e}),this.versionTag=nn()}getColumn(t,e){return this.columns[t]}getColumns(t,e){return(t||Object.keys(this.columns)).reduce(((t,e)=>(t[e]=this.columns[e],t)),{})}getRow(t,e){return(e||Object.keys(this.columns)).map((e=>this.columns[e]?.[t]))}setColumn(t,e=[],i=0,s){this.setColumns({[t]:e},i,s)}setColumns(t,e,i){let s=this.rowCount;rn(t,((t,e)=>{this.columns[e]=t.slice(),s=t.length})),this.applyRowCount(s),i?.silent||(on(this,"afterSetColumns"),this.versionTag=nn())}setRow(t,e=this.rowCount,i,s){let{columns:o}=this,r=i?this.rowCount+1:e+1;rn(t,((t,n)=>{let a=o[n]||!1!==s?.addColumns&&Array(r);a&&(i?a=sn(a,e,0,!0,[t]).array:a[e]=t,o[n]=a)})),r>this.rowCount&&this.applyRowCount(r),s?.silent||(on(this,"afterSetRows"),this.versionTag=nn())}},{extend:ln,merge:hn,pick:dn}=_;!function(t){function e(t,e,i){let s,o=this.legendItem=this.legendItem||{},{chart:r,options:n}=this,{baseline:a=0,symbolWidth:l,symbolHeight:h}=t,d=this.symbol||"circle",c=h/2,p=r.renderer,u=o.group,g=a-Math.round((t.fontMetrics?.b||h)*(i?.4:.3)),m={},f=n.marker,x=0;if(r.styledMode||(m["stroke-width"]=Math.min(n.lineWidth||0,24),n.dashStyle?m.dashstyle=n.dashStyle:"square"===n.linecap||(m["stroke-linecap"]="round")),o.line=p.path().addClass("highcharts-graph").attr(m).add(u),i&&(o.area=p.path().addClass("highcharts-area").add(u)),m["stroke-linecap"]&&(x=Math.min(o.line.strokeWidth(),l)/2),l){let t=[["M",x,g],["L",l-x,g]];o.line.attr({d:t}),o.area?.attr({d:[...t,["L",l-x,a],["L",x,a]]})}if(f&&!1!==f.enabled&&l){let t=Math.min(dn(f.radius,c),c);0===d.indexOf("url")&&(f=hn(f,{width:h,height:h}),t=0),o.symbol=s=p.symbol(d,l/2-t,g-t,2*t,2*t,ln({context:"legend"},f)).addClass("highcharts-point").add(u),s.isMarker=!0}}t.areaMarker=function(t,i){e.call(this,t,i,!0)},t.lineMarker=e,t.rectangle=function(t,e){let i=e.legendItem||{},s=t.options,o=t.symbolHeight,r=s.squareSymbol,n=r?o:t.symbolWidth;i.symbol=this.chart.renderer.rect(r?(t.symbolWidth-o)/2:0,t.baseline-o+1,n,o,dn(t.options.symbolRadius,o/2)).addClass("highcharts-point").attr({zIndex:3}).add(i.group)}}(c||(c={}));let cn=c,{defaultOptions:pn}=bt,{extend:un,extendClass:gn,merge:mn}=_;!function(t){function e(e,i){let s=pn.plotOptions||{},o=i.defaultOptions,r=i.prototype;return r.type=e,r.pointClass||(r.pointClass=Br),!t.seriesTypes[e]&&(o&&(s[e]=o),t.seriesTypes[e]=i,!0)}t.seriesTypes=M.seriesTypes,t.registerSeriesType=e,t.seriesType=function(i,s,o,r,n){let a=pn.plotOptions||{};if(s=s||"",a[i]=mn(a[s],o),delete t.seriesTypes[i],e(i,gn(t.seriesTypes[s]||function(){},r)),t.seriesTypes[i].prototype.type=i,n){class e extends Br{}un(e.prototype,n),t.seriesTypes[i].prototype.pointClass=e}return t.seriesTypes[i]}}(p||(p={}));let fn=p,{animObject:xn,setAnimation:yn}=Ut,{defaultOptions:bn}=bt,{registerEventOptions:vn}=Ls,{svg:wn,win:Mn}=M,{seriesTypes:kn}=fn,{format:Sn}=we,{arrayMax:Tn,arrayMin:An,clamp:Cn,correctFloat:Pn,crisp:Ln,defined:En,destroyObjectProperties:On,diffObjects:Dn,erase:In,error:zn,extend:Bn,find:Nn,fireEvent:Rn,getClosestDistance:jn,getNestedProperty:Wn,insertItem:Gn,isArray:Fn,isNumber:Xn,isString:Hn,merge:Un,objectEach:Vn,pick:Yn,removeEvent:_n,syncTimeout:Zn}=_;class $n{constructor(){this.zoneAxis="y"}init(t,e){let i;Rn(this,"init",{options:e}),this.dataTable??(this.dataTable=new an);let s=t.series;this.eventsToUnbind=[],this.chart=t,this.options=this.setOptions(e);let o=this.options,r=!1!==o.visible;this.linkedSeries=[],this.bindAxes(),Bn(this,{name:o.name,state:"",visible:r,selected:!0===o.selected}),vn(this,o);let n=o.events;(n?.click||o.point?.events?.click||o.allowPointSelect)&&(t.runTrackerClick=!0),this.getColor(),this.getSymbol(),this.isCartesian&&(t.hasCartesianSeries=!0),s.length&&(i=s[s.length-1]),this._i=Yn(i?._i,-1)+1,this.opacity=this.options.opacity,t.orderItems("series",Gn(this,s)),o.dataSorting?.enabled?this.setDataSortingOptions():this.points||this.data||this.setData(o.data,!1),Rn(this,"afterInit")}is(t){return kn[t]&&this instanceof kn[t]}bindAxes(){let t,e=this,i=e.options,s=e.chart;Rn(this,"bindAxes",null,(function(){(e.axisTypes||[]).forEach((function(o){(s[o]||[]).forEach((function(s){t=s.options,(Yn(i[o],0)===s.index||void 0!==i[o]&&i[o]===t.id)&&(Gn(e,s.series),e[o]=s,s.isDirty=!0)})),e[o]||e.optionalAxis===o||zn(18,!0,s)}))})),Rn(this,"afterBindAxes")}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.dataTable.rowCount>0}hasMarkerChanged(t,e){let i=t.marker,s=e.marker||{};return i&&(s.enabled&&!i.enabled||s.symbol!==i.symbol||s.height!==i.height||s.width!==i.width)}autoIncrement(t){let e,i=this.options,{pointIntervalUnit:s,relativeXValue:o}=this.options,r=this.chart.time,n=this.xIncrement??r.parse(i.pointStart)??0;if(this.pointInterval=e=Yn(this.pointInterval,i.pointInterval,1),o&&Xn(t)&&(e*=t),s){let t=r.toParts(n);"day"===s?t[2]+=e:"month"===s?t[1]+=e:"year"===s&&(t[0]+=e),e=r.makeTime.apply(r,t)-n}return o&&Xn(t)?n+e:(this.xIncrement=n+e,n)}setDataSortingOptions(){let t=this.options;Bn(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),En(t.pointRange)||(t.pointRange=1)}setOptions(t){let e,i=this.chart,s=i.options.plotOptions,o=i.userOptions||{},r=Un(t),n=i.styledMode,a={plotOptions:s,userOptions:r};Rn(this,"setOptions",a);let l=a.plotOptions[this.type],h=o.plotOptions||{},d=h.series||{},c=bn.plotOptions[this.type]||{},p=h[this.type]||{};l.dataLabels=this.mergeArrays(c.dataLabels,l.dataLabels),this.userOptions=a.userOptions;let u=Un(l,s.series,p,r);this.tooltipOptions=Un(bn.tooltip,bn.plotOptions.series?.tooltip,c?.tooltip,i.userOptions.tooltip,h.series?.tooltip,p.tooltip,r.tooltip),this.stickyTracking=Yn(r.stickyTracking,p.stickyTracking,d.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||u.stickyTracking),null===l.marker&&delete u.marker,this.zoneAxis=u.zoneAxis||"y";let g=this.zones=(u.zones||[]).map((t=>({...t})));return(u.negativeColor||u.negativeFillColor)&&!u.zones&&(e={value:u[this.zoneAxis+"Threshold"]||u.threshold||0,className:"highcharts-negative"},n||(e.color=u.negativeColor,e.fillColor=u.negativeFillColor),g.push(e)),g.length&&En(g[g.length-1].value)&&g.push(n?{}:{color:this.color,fillColor:this.fillColor}),Rn(this,"afterSetOptions",{options:u}),u}getName(){return this.options.name??Sn(this.chart.options.lang.seriesName,this,this.chart)}getCyclic(t,e,i){let s,o,r=this.chart,n=`${t}Index`,a=`${t}Counter`,l=i?.length||r.options.chart.colorCount;!e&&(En(o=Yn("color"===t?this.options.colorIndex:void 0,this[n]))?s=o:(r.series.length||(r[a]=0),s=r[a]%l,r[a]+=1),i&&(e=i[s])),void 0!==s&&(this[n]=s),this[t]=e}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||bn.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){let t=this.options.marker;this.getCyclic("symbol",t.symbol,this.chart.options.symbols)}getColumn(t,e){return(e?this.dataTable.modified:this.dataTable).getColumn(t,!0)||[]}findPointIndex(t,e){let i,s,o,{id:r,x:n}=t,a=this.points,l=this.options.dataSorting,h=this.cropStart||0;if(r){let t=this.chart.get(r);t instanceof Br&&(i=t)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let e=e=>!e.touched&&e.index===t.index;if(l?.matchByName?e=e=>!e.touched&&e.name===t.name:this.options.relativeXValue&&(e=e=>!e.touched&&e.options.x===t.x),!(i=Nn(a,e)))return}return i&&void 0!==(o=i?.index)&&(s=!0),void 0===o&&Xn(n)&&(o=this.getColumn("x").indexOf(n,e)),-1!==o&&void 0!==o&&this.cropped&&(o=o>=h?o-h:o),!s&&Xn(o)&&a[o]?.touched&&(o=void 0),o}updateData(t,e){let i,s,o,r,{options:n,requireSorting:a}=this,l=n.dataSorting,h=this.points,d=[],c=t.length===h.length,p=!0;if(this.xIncrement=null,t.forEach(((t,e)=>{let s,o=En(t)&&this.pointClass.prototype.optionsToObject.call({series:this},t)||{},{id:p,x:u}=o;p||Xn(u)?(-1===(s=this.findPointIndex(o,r))||void 0===s?d.push(t):h[s]&&t!==n.data?.[s]?(h[s].update(t,!1,void 0,!1),h[s].touched=!0,a&&(r=s+1)):h[s]&&(h[s].touched=!0),(!c||e!==s||l?.enabled||this.hasDerivedData)&&(i=!0)):d.push(t)}),this),i)for(s=h.length;s--;)(o=h[s])&&!o.touched&&o.remove?.(!1,e);else c&&!l?.enabled?(t.forEach(((t,e)=>{t===h[e].y||h[e].destroyed||h[e].update(t,!1,void 0,!1)})),d.length=0):p=!1;if(h.forEach((t=>{t&&(t.touched=!1)})),!p)return!1;d.forEach((t=>{this.addPoint(t,!1,void 0,void 0,!1)}),this);let u=this.getColumn("x");return null===this.xIncrement&&u.length&&(this.xIncrement=Tn(u),this.autoIncrement()),!0}dataColumnKeys(){return["x",...this.pointArrayMap||["y"]]}setData(t,e=!0,i,s){let o,r,n,a=this.points,l=a?.length||0,h=this.options,d=this.chart,c=h.dataSorting,p=this.xAxis,u=h.turboThreshold,g=this.dataTable,m=this.dataColumnKeys(),f=this.pointValKey||"y",x=(this.pointArrayMap||[]).length,y=h.keys,b=0,v=1;d.options.chart.allowMutatingData||(h.data&&delete this.options.data,this.userOptions.data&&delete this.userOptions.data,n=Un(!0,t));let w=(t=n||t||[]).length;if(c?.enabled&&(t=this.sortData(t)),d.options.chart.allowMutatingData&&!1!==s&&w&&l&&!this.cropped&&!this.hasGroupedData&&this.visible&&!this.boosted&&(r=this.updateData(t,i)),!r){this.xIncrement=null,this.colorCounter=0;let e=u&&w>u;if(e){let i=this.getFirstValidPoint(t),s=this.getFirstValidPoint(t,w-1,-1),o=t=>!(!Fn(t)||!y&&!Xn(t[0]));if(Xn(i)&&Xn(s)){let e=[],i=[];for(let s of t)e.push(this.autoIncrement()),i.push(s);g.setColumns({x:e,[f]:i})}else if(o(i)&&o(s))if(x){let e=+(i.length===x),s=Array(m.length).fill(0).map((()=>[]));for(let i of t){e&&s[0].push(this.autoIncrement());for(let t=e;t<=x;t++)s[t]?.push(i[t-e])}g.setColumns(m.reduce(((t,e,i)=>(t[e]=s[i],t)),{}))}else{y&&(b=y.indexOf("x"),v=y.indexOf("y"),b=b>=0?b:0,v=v>=0?v:1),1===i.length&&(v=0);let e=[],s=[];if(b===v)for(let i of t)e.push(this.autoIncrement()),s.push(i[v]);else for(let i of t)e.push(i[b]),s.push(i[v]);g.setColumns({x:e,[f]:s})}else e=!1}if(!e){let e=m.reduce(((t,e)=>(t[e]=[],t)),{});for(o=0;o{let s=Wn(i,t),o=Wn(i,e);return os)})).forEach((function(t,e){t.x=e}),this),e.linkedSeries&&e.linkedSeries.forEach((function(e){let i=e.options,o=i.data;!i.dataSorting?.enabled&&o&&(o.forEach((function(i,r){o[r]=s(e,i),t[r]&&(o[r].x=t[r].x,o[r].index=r)})),e.setData(o,!1))})),t}getProcessedData(t){let e,i,s,o,r,n=this,{dataTable:a,isCartesian:l,options:h,xAxis:d}=n,c=h.cropThreshold,p=t||n.getExtremesFromAll,u=d?.logarithmic,g=a.rowCount,m=0,f=n.getColumn("x"),x=a,y=!1;return d&&(o=(s=d.getExtremes()).min,r=s.max,y=!(!d.categories||d.names.length),l&&n.sorted&&!p&&(!c||g>c||n.forceCrop)&&(f[g-1]r?x=new an:n.getColumn(n.pointValKey||"y").length&&(f[0]r)&&(x=(e=this.cropData(a,o,r)).modified,m=e.start,i=!0))),f=x.getColumn("x")||[],{modified:x,cropped:i,cropStart:m,closestPointRange:jn([u?f.map(u.log2lin):f],(()=>n.requireSorting&&!y&&zn(15,!1,n.chart)))}}processData(t){let e=this.xAxis,i=this.dataTable;if(this.isCartesian&&!this.isDirty&&!e.isDirty&&!this.yAxis.isDirty&&!t)return!1;let s=this.getProcessedData();i.modified=s.modified,this.cropped=s.cropped,this.cropStart=s.cropStart,this.closestPointRange=this.basePointRange=s.closestPointRange,Rn(this,"afterProcessData")}cropData(t,e,i){let s,o,r=t.getColumn("x",!0)||[],n=r.length,a={},l=0,h=n;for(s=0;s=e){l=Math.max(0,s-1);break}for(o=s;oi){h=o+1;break}for(let e of this.dataColumnKeys()){let i=t.getColumn(e,!0);i&&(a[e]=i.slice(l,h))}return{modified:new an({columns:a}),start:l,end:h}}generatePoints(){let t,e,i,s,o,r=this.options,n=this.processedData||r.data,a=this.dataTable.modified,l=this.getColumn("x",!0),h=this.pointClass,d=a.rowCount,c=this.cropStart||0,p=this.hasGroupedData,u=r.keys,g=[],m=r.dataGrouping?.groupAll?c:0,f=this.xAxis?.categories,x=this.pointArrayMap||["y"],y=this.dataColumnKeys(),b=this.data;if(!b&&!p){let t=[];t.length=n?.length||0,b=this.data=t}for(u&&p&&(this.options.keys=!1),s=0;sl.getColumn(t,!0)||[]))||[],p=this.getColumn("x",!0),u=[],g=this.requireSorting&&!this.is("column")?1:0,m=!!n&&n.positiveValuesOnly,f=a||this.cropped||!r,x=0,y=0;for(r&&(x=(i=r.getExtremes()).min,y=i.max),o=0;o=x&&(p[o-g]||s)<=y)for(let t of c){let e=t[o];Xn(e)&&(e>0||!m)&&u.push(e)}let b={activeYData:u,dataMin:An(u),dataMax:Tn(u)};return Rn(this,"afterGetExtremes",{dataExtremes:b}),b}applyExtremes(){let t=this.getExtremes();return this.dataMin=t.dataMin,this.dataMax=t.dataMax,t}getFirstValidPoint(t,e=0,i=1){let s=t.length,o=e;for(;o>=0&&o1)&&(r.step=function(t,e){i&&i.apply(e,arguments),"width"===e.prop&&l?.element&&l.attr(o?"height":"width",t+99)}),a.addClass("highcharts-animating").animate(t,r)}}afterAnimate(){this.setClip(),Vn(this.chart.sharedClips,((t,e,i)=>{t&&!this.chart.container.querySelector(`[clip-path="url(#${t.id})"]`)&&(t.destroy(),delete i[e])})),this.finishedAnimating=!0,Rn(this,"afterAnimate")}drawPoints(t=this.points){let e,i,s,o,r,n,a,l=this.chart,h=l.styledMode,{colorAxis:d,options:c}=this,p=c.marker,u=c.nullInteraction,g=this[this.specialGroup||"markerGroup"],m=this.xAxis,f=Yn(p.enabled,!m||!!m.isRadial||null,this.closestPointRangePx>=p.enabledThreshold*p.radius);if(!1!==p.enabled||this._hasPointMarkers)for(e=0;e0||i.hasImage)&&(i.graphic=s=l.renderer.symbol(t,a.x,a.y,a.width,a.height,n?r:p).add(g),this.enabledDataSorting&&l.hasRendered&&(s.attr({x:i.startXPos}),o="animate")),s&&"animate"===o&&s[e?"show":"hide"](e).animate(a),s){let t=this.pointAttribs(i,h||!i.selected?void 0:"select");h?d&&s.css({fill:t.fill}):s[o](t)}s&&s.addClass(i.getClassName(),!0)}}}markerAttribs(t,e){let i,s,o=this.options,r=o.marker,n=t.marker||{},a=n.symbol||r.symbol,l={},h=Yn(n.radius,r?.radius);e&&(i=r.states[e],s=n.states&&n.states[e],h=Yn(s?.radius,i?.radius,h&&h+(i?.radiusPlus||0))),t.hasImage=a&&0===a.indexOf("url"),t.hasImage&&(h=0);let d=t.pos();return Xn(h)&&d&&(o.crisp&&(d[0]=Ln(d[0],t.hasImage?0:"rect"===a?r?.lineWidth||0:1)),l.x=d[0]-h,l.y=d[1]-h),h&&(l.width=l.height=2*h),l}pointAttribs(t,e){let i,s,o,r,n=this.options,a=n.marker,l=t?.options,h=l?.marker||{},d=l?.color,c=t?.color,p=t?.zone?.color,u=this.color,g=Yn(h.lineWidth,a.lineWidth),m=t?.isNull&&n.nullInteraction?0:1;return u=d||p||c||u,o=h.fillColor||a.fillColor||u,r=h.lineColor||a.lineColor||u,e=e||"normal",i=a.states[e]||{},g=Yn((s=h.states&&h.states[e]||{}).lineWidth,i.lineWidth,g+Yn(s.lineWidthPlus,i.lineWidthPlus,0)),o=s.fillColor||i.fillColor||o,r=s.lineColor||i.lineColor||r,{stroke:r,"stroke-width":g,fill:o,opacity:m=Yn(s.opacity,i.opacity,m)}}destroy(t){let e,i,s=this,o=s.chart,r=/AppleWebKit\/533/.test(Mn.navigator.userAgent),n=s.data||[];for(Rn(s,"destroy",{keepEventsForUpdate:t}),this.removeEvents(t),(s.axisTypes||[]).forEach((function(t){i=s[t],i?.series&&(In(i.series,s),i.isDirty=i.forceRedraw=!0)})),s.legendItem&&s.chart.legend.destroyItem(s),e=n.length;e--;)n[e]?.destroy?.();for(let t of s.zones)On(t,void 0,!0);_.clearTimeout(s.animationTimeout),Vn(s,(function(t,e){t instanceof ai&&!t.survive&&t[r&&"group"===e?"hide":"destroy"]()})),o.hoverSeries===s&&(o.hoverSeries=void 0),In(o.series,s),o.orderItems("series"),Vn(s,(function(e,i){t&&"hcEvents"===i||delete s[i]}))}applyZones(){let{area:t,chart:e,graph:i,zones:s,points:o,xAxis:r,yAxis:n,zoneAxis:a}=this,{inverted:l,renderer:h}=e,d=this[`${a}Axis`],{isXAxis:c,len:p=0,minPointOffset:u=0}=d||{},g=(i?.strokeWidth()||0)/2+1,m=(t,e=0,i=0)=>{l&&(i=p-i);let{translated:s=0,lineClip:o}=t,r=i-s;o?.push(["L",e,Math.abs(r){t.forEach(((e,i)=>{("M"===e[0]||"L"===e[0])&&(t[i]=[e[0],c?p-e[1]:e[1],c?e[2]:p-e[2]])}))};if(s.forEach((t=>{t.lineClip=[],t.translated=Cn(d.toPixels(Yn(t.value,e),!0)||0,0,p)})),i&&!this.showLine&&i.hide(),t&&t.hide(),"y"===a&&o.length{let s=e.lineClip||[],o=Math.round(e.translated||0);r.reversed&&s.reverse();let{clip:a,simpleClip:d}=e,p=0,u=0,m=r.len,y=n.len;c?(p=o,m=x):(u=o,y=x);let b=[["M",p,u],["L",m,u],["L",m,y],["L",p,y],["Z"]],v=[b[0],...s,b[1],b[2],...f,b[3],b[4]];f=s.reverse(),x=o,l&&(g(v),t&&g(b)),a?(a.animate({d:v}),d?.animate({d:b})):(a=e.clip=h.path(v),t&&(d=e.simpleClip=h.path(b))),i&&e.graph?.clip(a),t&&e.area?.clip(d)}))}else this.visible&&(i&&i.show(),t&&t.show())}plotGroup(t,e,i,s,o){let r=this[t],n=!r,a={visibility:i,zIndex:s||.1};return En(this.opacity)&&!this.chart.styledMode&&"inactive"!==this.state&&(a.opacity=this.opacity),r||(this[t]=r=this.chart.renderer.g().add(o)),r.addClass("highcharts-"+e+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(En(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(r.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0),r.attr(a)[n?"attr":"animate"](this.getPlotBox(e)),r}getPlotBox(t){let e=this.xAxis,i=this.yAxis,s=this.chart,o=s.inverted&&!s.polar&&e&&this.invertible&&"series"===t;return s.inverted&&(e=i,i=this.xAxis),{translateX:e?e.left:s.plotLeft,translateY:i?i.top:s.plotTop,rotation:90*!!o,rotationOriginX:o?(e.len-i.len)/2:0,rotationOriginY:o?(e.len+i.len)/2:0,scaleX:o?-1:1,scaleY:1}}removeEvents(t){let{eventsToUnbind:e}=this;t||_n(this),e.length&&(e.forEach((t=>{t()})),e.length=0)}render(){let t=this,{chart:e,options:i,hasRendered:s}=t,o=xn(i.animation),r=t.visible?"inherit":"hidden",n=i.zIndex,a=e.seriesGroup,l=t.finishedAnimating?0:o.duration;Rn(this,"render"),t.plotGroup("group","series",r,n,a),t.markerGroup=t.plotGroup("markerGroup","markers",r,n,a),!1!==i.clip&&t.setClip(),l&&t.animate?.(!0),t.drawGraph&&(t.drawGraph(),t.applyZones()),t.visible&&t.drawPoints(),t.drawDataLabels?.(),t.redrawPoints?.(),i.enableMouseTracking&&t.drawTracker?.(),l&&t.animate?.(),s||(l&&o.defer&&(l+=o.defer),t.animationTimeout=Zn((()=>{t.afterAnimate()}),l||0)),t.isDirty=!1,t.hasRendered=!0,Rn(t,"afterRender")}redraw(){let t=this.isDirty||this.isDirtyData;this.translate(),this.render(),t&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(t,e){let{xAxis:i,yAxis:s}=this,o=this.chart.inverted;return this.searchKDTree({clientX:o?i.len-t.chartY+i.pos:t.chartX-i.pos,plotY:o?s.len-t.chartX+s.pos:t.chartY-s.pos},e,t)}buildKDTree(t){this.buildingKdTree=!0;let e=this,i=e.options,s=i.findNearestPointBy.indexOf("y")>-1?2:1;delete e.kdTree,Zn((function(){e.kdTree=function t(i,s,o){let r,n,a=i?.length;if(a)return r=e.kdAxisArray[s%o],i.sort(((t,e)=>(t[r]||0)-(e[r]||0))),{point:i[n=Math.floor(a/2)],left:t(i.slice(0,n),s+1,o),right:t(i.slice(n+1),s+1,o)}}(e.getValidPoints(void 0,!e.directTouch,i?.nullInteraction),s,s),e.buildingKdTree=!1}),i.kdNow||"touchstart"===t?.type?0:1)}searchKDTree(t,e,i,s,o){let r=this,[n,a]=this.kdAxisArray,l=e?"distX":"dist",h=(r.options.findNearestPointBy||"").indexOf("y")>-1?2:1,d=!!r.isBubble,c=s||((t,e,i)=>{let s=t[i]||0,o=e[i]||0;return[s===o&&t.index>e.index||st=0&&r<=(s?s.len:e.plotHeight)&&o>=0&&o<=(i?i.len:e.plotWidth)}drawTracker(){let t=this,e=t.options,i=e.trackByArea,s=[].concat((i?t.areaPath:t.graphPath)||[]),o=t.chart,r=o.pointer,n=o.renderer,a=o.options.tooltip?.snap||0,l=()=>{e.enableMouseTracking&&o.hoverSeries!==t&&t.onMouseOver()},h="rgba(192,192,192,"+(wn?1e-4:.002)+")",d=t.tracker;d?d.attr({d:s}):t.graph&&(t.tracker=d=n.path(s).attr({visibility:t.visible?"inherit":"hidden",zIndex:2}).addClass(i?"highcharts-tracker-area":"highcharts-tracker-line").add(t.group),o.styledMode||d.attr({"stroke-linecap":"round","stroke-linejoin":"round",stroke:h,fill:i?h:"none","stroke-width":t.graph.strokeWidth()+(i?0:2*a)}),[t.tracker,t.markerGroup,t.dataLabelsGroup].forEach((t=>{t&&(t.addClass("highcharts-tracker").on("mouseover",l).on("mouseout",(t=>{r?.onTrackerMouseOut(t)})),e.cursor&&!o.styledMode&&t.css({cursor:e.cursor}),t.on("touchstart",l))}))),Rn(this,"afterDrawTracker")}addPoint(t,e,i,s,o){let r,n,a=this.options,{chart:l,data:h,dataTable:d,xAxis:c}=this,p=c?.hasNames&&c.names,u=a.data,g=this.getColumn("x");e=Yn(e,!0);let m={series:this};this.pointClass.prototype.applyOptions.apply(m,[t]);let f=m.x;if(n=g.length,this.requireSorting&&ff;)n--;d.setRow(m,n,!0,{addColumns:!1}),p&&m.name&&(p[f]=m.name),u?.splice(n,0,t),(r||this.processedData)&&(this.data.splice(n,0,null),this.processData()),"point"===a.legendType&&this.generatePoints(),i&&(h[0]&&h[0].remove?h[0].remove(!1):([h,u].filter(En).forEach((t=>{t.shift()})),d.deleteRows(0))),!1!==o&&Rn(this,"addPoint",{point:m}),this.isDirty=!0,this.isDirtyData=!0,e&&l.redraw(s)}removePoint(t,e,i){let s=this,{chart:o,data:r,points:n,dataTable:a}=s,l=r[t],h=function(){[n?.length===r.length?n:void 0,r,s.options.data].filter(En).forEach((e=>{e.splice(t,1)})),a.deleteRows(t),l?.destroy(),s.isDirty=!0,s.isDirtyData=!0,e&&o.redraw()};yn(i,o),e=Yn(e,!0),l?l.firePointEvent("remove",null,h):h()}remove(t,e,i,s){let o=this,r=o.chart;function n(){o.destroy(s),r.isDirtyLegend=r.isDirtyBox=!0,r.linkSeries(s),Yn(t,!0)&&r.redraw(e)}!1!==i?Rn(o,"remove",null,n):n()}update(t,e){Rn(this,"update",{options:t=Dn(t,this.userOptions)});let i,s,o=this,r=o.chart,n=o.userOptions,a=o.initialType||o.type,l=r.options.plotOptions,h=kn[a].prototype,d=o.finishedAnimating&&{animation:!1},c={},p=$n.keepProps.slice(),u=t.type||n.type||r.options.chart.type,g=!(this.hasDerivedData||u&&u!==this.type||void 0!==t.keys||void 0!==t.pointStart||void 0!==t.pointInterval||void 0!==t.relativeXValue||t.joinBy||t.mapData||["dataGrouping","pointStart","pointInterval","pointIntervalUnit","keys"].some((t=>o.hasOptionChanged(t))));u=u||a,g?(p.push.apply(p,$n.keepPropsForPoints),!1!==t.visible&&p.push("area","graph"),o.parallelArrays.forEach((function(t){p.push(t+"Data")})),t.data&&(t.dataSorting&&Bn(o.options.dataSorting,t.dataSorting),this.setData(t.data,!1))):this.dataTable.modified=this.dataTable,t=Un(n,{index:void 0===n.index?o.index:n.index,pointStart:l?.series?.pointStart??n.pointStart??o.getColumn("x")[0]},!g&&{data:o.options.data},t,d),g&&t.data&&(t.data=o.options.data),(p=["group","markerGroup","dataLabelsGroup","transformGroup"].concat(p)).forEach((function(t){p[t]=o[t],delete o[t]}));let m=!1;if(kn[u]){if(m=u!==o.type,o.remove(!1,!1,!1,!0),m)if(r.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(o,kn[u].prototype);else{let t=Object.hasOwnProperty.call(o,"hcEvents")&&o.hcEvents;for(s in h)o[s]=void 0;Bn(o,kn[u].prototype),t?o.hcEvents=t:delete o.hcEvents}}else zn(17,!0,r,{missingModuleFor:u});if(p.forEach((function(t){o[t]=p[t]})),o.init(r,t),g&&this.points)for(let t of(!1===(i=o.options).visible?(c.graphic=1,c.dataLabel=1):(this.hasMarkerChanged(i,n)&&(c.graphic=1),o.hasDataLabels?.()||(c.dataLabel=1)),this.points))t?.series&&(t.resolveColor(),Object.keys(c).length&&t.destroyElements(c),!1===i.showInLegend&&t.legendItem&&r.legend.destroyItem(t));o.initialType=a,r.linkSeries(),r.setSortedData(),m&&o.linkedSeries.length&&(o.isDirtyData=!0),Rn(this,"afterUpdate"),Yn(e,!0)&&r.redraw(!!g&&void 0)}setName(t){this.name=this.options.name=this.userOptions.name=t,this.chart.isDirtyLegend=!0}hasOptionChanged(t){let e=this.chart,i=this.options[t],s=e.options.plotOptions,o=this.userOptions[t],r=Yn(s?.[this.type]?.[t],s?.series?.[t]);return o&&!En(r)?i!==o:i!==Yn(r,i)}onMouseOver(){let t=this.chart,e=t.hoverSeries,i=t.pointer;i?.setHoverChartIndex(),e&&e!==this&&e.onMouseOut(),this.options.events.mouseOver&&Rn(this,"mouseOver"),this.setState("hover"),t.hoverSeries=this}onMouseOut(){let t=this.options,e=this.chart,i=e.tooltip,s=e.hoverPoint;e.hoverSeries=null,s&&s.onMouseOut(),this&&t.events.mouseOut&&Rn(this,"mouseOut"),i&&!this.stickyTracking&&(!i.shared||this.noSharedTooltip)&&i.hide(),e.series.forEach((function(t){t.setState("",!0)}))}setState(t,e){let i=this,s=i.options,o=i.graph,r=s.inactiveOtherPoints,n=s.states,a=Yn(n[t||"normal"]&&n[t||"normal"].animation,i.chart.options.chart.animation),l=s.lineWidth,h=s.opacity;if(t=t||"",i.state!==t&&([i.group,i.markerGroup,i.dataLabelsGroup].forEach((function(e){e&&(i.state&&e.removeClass("highcharts-series-"+i.state),t&&e.addClass("highcharts-series-"+t))})),i.state=t,!i.chart.styledMode)){if(n[t]&&!1===n[t].enabled)return;if(t&&(l=n[t].lineWidth||l+(n[t].lineWidthPlus||0),h=Yn(n[t].opacity,h)),o&&!o.dashstyle&&Xn(l))for(let t of[o,...this.zones.map((t=>t.graph))])t?.animate({"stroke-width":l},a);r||[i.group,i.markerGroup,i.dataLabelsGroup,i.labelBySeries].forEach((function(t){t&&t.animate({opacity:h},a)}))}e&&r&&i.points&&i.setAllPointsToState(t||void 0)}setAllPointsToState(t){this.points.forEach((function(e){e.setState&&e.setState(t)}))}setVisible(t,e){let i=this,s=i.chart,o=s.options.chart.ignoreHiddenSeries,r=i.visible;i.visible=t=i.options.visible=i.userOptions.visible=void 0===t?!r:t;let n=t?"show":"hide";["group","dataLabelsGroup","markerGroup","tracker","tt"].forEach((t=>{i[t]?.[n]()})),(s.hoverSeries===i||s.hoverPoint?.series===i)&&i.onMouseOut(),i.legendItem&&s.legend.colorizeItem(i,t),i.isDirty=!0,i.options.stacking&&s.series.forEach((t=>{t.options.stacking&&t.visible&&(t.isDirty=!0)})),i.linkedSeries.forEach((e=>{e.setVisible(t,!1)})),o&&(s.isDirtyBox=!0),Rn(i,n),!1!==e&&s.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(t){this.selected=t=this.options.selected=void 0===t?!this.selected:t,this.checkbox&&(this.checkbox.checked=t),Rn(this,t?"select":"unselect")}shouldShowTooltip(t,e,i={}){return i.series=this,i.visiblePlotOnly=!0,this.chart.isInsidePlot(t,e,i)}drawLegendSymbol(t,e){cn[this.options.legendSymbol||"rectangle"]?.call(this,t,e)}}$n.defaultOptions={lineWidth:2,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(){let{numberFormatter:t}=this.series.chart;return"number"!=typeof this.y?"":t(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"},$n.types=fn.seriesTypes,$n.registerType=fn.registerSeriesType,$n.keepProps=["colorIndex","eventOptions","navigatorSeries","symbolIndex","baseSeries"],$n.keepPropsForPoints=["data","isDirtyData","isDirtyCanvas","points","dataTable","processedData","xIncrement","cropped","_hasPointMarkers","hasDataLabels","nodes","layout","level","mapMap","mapData","minY","maxY","minX","maxX","transformGroups"],Bn($n.prototype,{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:["clientX","plotY"],parallelArrays:["x","y"],pointClass:Br,requireSorting:!0,sorted:!0}),fn.series=$n;let qn=$n,{animObject:Kn,setAnimation:Jn}=Ut,{registerEventOptions:Qn}=Ls,{composed:ta,marginNames:ea}=M,{distribute:ia}=Ce,{format:sa}=we,{addEvent:oa,createElement:ra,css:na,defined:aa,discardElement:la,find:ha,fireEvent:da,isNumber:ca,merge:pa,pick:ua,pushUnique:ga,relativeLength:ma,stableSort:fa,syncTimeout:xa}=_;class ya{constructor(t,e){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=t,this.setOptions(e),e.enabled&&(this.render(),Qn(this,e),oa(this.chart,"endResize",(function(){this.legend.positionCheckboxes()}))),oa(this.chart,"render",(()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())}))}setOptions(t){let e=ua(t.padding,8);this.options=t,this.chart.styledMode||(this.itemStyle=t.itemStyle,this.itemHiddenStyle=pa(this.itemStyle,t.itemHiddenStyle)),this.itemMarginTop=t.itemMarginTop,this.itemMarginBottom=t.itemMarginBottom,this.padding=e,this.initialItemY=e-5,this.symbolWidth=ua(t.symbolWidth,16),this.pages=[],this.proximate="proximate"===t.layout&&!this.chart.inverted,this.baseline=void 0}update(t,e){let i=this.chart;this.setOptions(pa(!0,this.options,t)),"events"in this.options&&Qn(this,this.options),this.destroy(),i.isDirtyLegend=i.isDirtyBox=!0,ua(e,!0)&&i.redraw(),da(this,"afterUpdate",{redraw:e})}colorizeItem(t,e){let i=t.color,{area:s,group:o,label:r,line:n,symbol:a}=t.legendItem||{};if((t instanceof qn||t instanceof Br)&&(t.color=t.options?.legendSymbolColor||i),o?.[e?"removeClass":"addClass"]("highcharts-legend-item-hidden"),!this.chart.styledMode){let{itemHiddenStyle:i={}}=this,o=i.color,{fillColor:l,fillOpacity:h,lineColor:d,marker:c}=t.options,p=t=>(!e&&(t.fill&&(t.fill=o),t.stroke&&(t.stroke=o)),t);r?.css(pa(e?this.itemStyle:i)),n?.attr(p({stroke:d||t.color})),a&&a.attr(p(c&&a.isMarker?t.pointAttribs():{fill:t.color})),s?.attr(p({fill:l||t.color,"fill-opacity":l?1:h??.75}))}t.color=i,da(this,"afterColorizeItem",{item:t,visible:e})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(t){let{group:e,x:i=0,y:s=0}=t.legendItem||{},o=this.options,r=o.symbolPadding,n=!o.rtl,a=t.checkbox;if(e?.element){let o={translateX:n?i:this.legendWidth-i-2*r-4,translateY:s};e[aa(e.translateY)?"animate":"attr"](o,void 0,(()=>{da(this,"afterPositionItem",{item:t})}))}a&&(a.x=i,a.y=s)}destroyItem(t){let e=t.checkbox,i=t.legendItem||{};for(let t of["group","label","line","symbol"])i[t]&&(i[t]=i[t].destroy());e&&la(e),t.legendItem=void 0}destroy(){for(let t of this.getAllItems())this.destroyItem(t);for(let t of["clipRect","up","down","pager","nav","box","title","group"])this[t]&&(this[t]=this[t].destroy());this.display=null}positionCheckboxes(){let t,e=this.group?.alignAttr,i=this.clipHeight||this.legendHeight,s=this.titleHeight;e&&(t=e.translateY,this.allItems.forEach((function(o){let r,n=o.checkbox;n&&(r=t+s+n.y+(this.scrollOffset||0)+3,na(n,{left:e.translateX+o.checkboxOffset+n.x-20+"px",top:r+"px",display:this.proximate||r>t-6&&r1.5*w?v.height:w))}layoutItem(t){let e=this.options,i=this.padding,s="horizontal"===e.layout,o=t.itemHeight,r=this.itemMarginBottom,n=this.itemMarginTop,a=s?ua(e.itemDistance,20):0,l=this.maxLegendWidth,h=e.alignColumns&&this.totalItemWidth>l?this.maxItemWidth:t.itemWidth,d=t.legendItem||{};s&&this.itemX-i+h>l&&(this.itemX=i,this.lastLineHeight&&(this.itemY+=n+this.lastLineHeight+r),this.lastLineHeight=0),this.lastItemY=n+this.itemY+r,this.lastLineHeight=Math.max(o,this.lastLineHeight),d.x=this.itemX,d.y=this.itemY,s?this.itemX+=h:(this.itemY+=n+o+r,this.lastLineHeight=o),this.offsetWidth=this.widthOption||Math.max((s?this.itemX-i-(t.checkbox?0:a):h)+i,this.offsetWidth)}getAllItems(){let t=[];return this.chart.series.forEach((function(e){let i=e?.options;e&&ua(i.showInLegend,!aa(i.linkedTo)&&void 0,!0)&&(t=t.concat(e.legendItem?.labels||("point"===i.legendType?e.data:e)))})),da(this,"afterGetAllItems",{allItems:t}),t}getAlignment(){let t=this.options;return this.proximate?t.align.charAt(0)+"tv":t.floating?"":t.align.charAt(0)+t.verticalAlign.charAt(0)+t.layout.charAt(0)}adjustMargins(t,e){let i=this.chart,s=this.options,o=this.getAlignment();o&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach((function(r,n){r.test(o)&&!aa(t[n])&&(i[ea[n]]=Math.max(i[ea[n]],i.legend[(n+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][n]*s[n%2?"x":"y"]+ua(s.margin,12)+e[n]+(i.titleOffset[n]||0)))}))}proximatePositions(){let t,e=this.chart,i=[],s="left"===this.options.align;for(let o of(this.allItems.forEach((function(t){let o,r,n,a,l=s;t.yAxis&&(t.xAxis.options.reversed&&(l=!l),t.points&&(o=ha(l?t.points:t.points.slice(0).reverse(),(function(t){return ca(t.plotY)}))),r=this.itemMarginTop+t.legendItem.label.getBBox().height+this.itemMarginBottom,a=t.yAxis.top-e.plotTop,n=t.visible?(o?o.plotY:t.yAxis.height)+(a-.3*r):a+t.yAxis.height,i.push({target:n,size:r,item:t}))}),this),ia(i,e.plotHeight)))t=o.item.legendItem||{},ca(o.pos)&&(t.y=e.plotTop-e.spacing[0]+o.pos)}render(){let t,e,i,s,o=this.chart,r=o.renderer,n=this.options,a=this.padding,l=this.getAllItems(),h=this.group,d=this.box;this.itemX=a,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=ma(n.width,o.spacingBox.width-a),s=o.spacingBox.width-2*a-n.x,["rm","lm"].indexOf(this.getAlignment().substring(0,2))>-1&&(s/=2),this.maxLegendWidth=this.widthOption||s,h||(this.group=h=r.g("legend").addClass(n.className||"").attr({zIndex:7}).add(),this.contentGroup=r.g().attr({zIndex:1}).add(h),this.scrollGroup=r.g().add(this.contentGroup)),this.renderTitle(),fa(l,((t,e)=>(t.options?.legendIndex||0)-(e.options?.legendIndex||0))),n.reversed&&l.reverse(),this.allItems=l,this.display=t=!!l.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,l.forEach(this.renderItem,this),l.forEach(this.layoutItem,this),e=(this.widthOption||this.offsetWidth)+a,i=this.lastItemY+this.lastLineHeight+this.titleHeight,i=this.handleOverflow(i)+a,d||(this.box=d=r.rect().addClass("highcharts-legend-box").attr({r:n.borderRadius}).add(h)),o.styledMode||d.attr({stroke:n.borderColor,"stroke-width":n.borderWidth||0,fill:n.backgroundColor||"none"}).shadow(n.shadow),e>0&&i>0&&d[d.placed?"animate":"attr"](d.crisp.call({},{x:0,y:0,width:e,height:i},d.strokeWidth())),h[t?"show":"hide"](),o.styledMode&&"none"===h.getStyle("display")&&(e=i=0),this.legendWidth=e,this.legendHeight=i,t&&this.align(),this.proximate||this.positionItems(),da(this,"afterRender")}align(t=this.chart.spacingBox){let e=this.chart,i=this.options,s=t.y;/(lth|ct|rth)/.test(this.getAlignment())&&e.titleOffset[0]>0?s+=e.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&e.titleOffset[2]>0&&(s-=e.titleOffset[2]),s!==t.y&&(t=pa(t,{y:s})),e.hasRendered||(this.group.placed=!1),this.group.align(pa(i,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?"top":i.verticalAlign}),!0,t)}handleOverflow(t){let e,i,s,o,r=this,n=this.chart,a=n.renderer,l=this.options,h=l.y,d="top"===l.verticalAlign,c=this.padding,p=l.maxHeight,u=l.navigation,g=ua(u.animation,!0),m=u.arrowSize||12,f=this.pages,x=this.allItems,y=function(t){"number"==typeof t?M.attr({height:t}):M&&(r.clipRect=M.destroy(),r.contentGroup.clip()),r.contentGroup.div&&(r.contentGroup.div.style.clip=t?"rect("+c+"px,9999px,"+(c+t)+"px,0)":"auto")},b=function(t){return r[t]=a.circle(0,0,1.3*m).translate(m/2,m/2).add(w),n.styledMode||r[t].attr("fill","rgba(0,0,0,0.0001)"),r[t]},v=n.spacingBox.height+(d?-h:h)-c,w=this.nav,M=this.clipRect;return"horizontal"!==l.layout||"middle"===l.verticalAlign||l.floating||(v/=2),p&&(v=Math.min(v,p)),f.length=0,t&&v>0&&t>v&&!1!==u.enabled?(this.clipHeight=e=Math.max(v-20-this.titleHeight-c,0),this.currentPage=ua(this.currentPage,1),this.fullHeight=t,x.forEach(((t,r)=>{let n=(s=t.legendItem||{}).y||0,a=Math.round(s.label.getBBox().height),l=f.length;(!l||n-f[l-1]>e&&(i||n)!==f[l-1])&&(f.push(i||n),l++),s.pageIx=l-1,i&&o&&(o.pageIx=l-1),r===x.length-1&&n+a-f[l-1]>e&&n>f[l-1]&&(f.push(n),s.pageIx=l),n!==i&&(i=n),o=s})),M||(M=r.clipRect=a.clipRect(0,c-2,9999,0),r.contentGroup.clip(M)),y(e),w||(this.nav=w=a.g().attr({zIndex:1}).add(this.group),this.up=a.symbol("triangle",0,0,m,m).add(w),b("upTracker").on("click",(function(){r.scroll(-1,g)})),this.pager=a.text("",15,10).addClass("highcharts-legend-navigation"),!n.styledMode&&u.style&&this.pager.css(u.style),this.pager.add(w),this.down=a.symbol("triangle-down",0,0,m,m).add(w),b("downTracker").on("click",(function(){r.scroll(1,g)}))),r.scroll(0),t=v):w&&(y(),this.nav=w.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),t}scroll(t,e){let i=this.chart,s=this.pages,o=s.length,r=this.clipHeight,n=this.options.navigation,a=this.pager,l=this.padding,h=this.currentPage+t;h>o&&(h=o),h>0&&(void 0!==e&&Jn(e,i),this.nav.attr({translateX:l,translateY:r+this.padding+7+this.titleHeight,visibility:"inherit"}),[this.up,this.upTracker].forEach((function(t){t.attr({class:1===h?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})})),a.attr({text:h+"/"+o}),[this.down,this.downTracker].forEach((function(t){t.attr({x:18+this.pager.getBBox().width,class:h===o?"highcharts-legend-nav-inactive":"highcharts-legend-nav-active"})}),this),i.styledMode||(this.up.attr({fill:1===h?n.inactiveColor:n.activeColor}),this.upTracker.css({cursor:1===h?"default":"pointer"}),this.down.attr({fill:h===o?n.inactiveColor:n.activeColor}),this.downTracker.css({cursor:h===o?"default":"pointer"})),this.scrollOffset=-s[h-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=h,this.positionCheckboxes(),xa((()=>{da(this,"afterScroll",{currentPage:h})}),Kn(ua(e,i.renderer.globalAnimation,!0)).duration))}setItemEvents(t,e,i){let s=this,o=t.legendItem||{},r=s.chart.renderer.boxWrapper,n=t instanceof Br,a=t instanceof qn,l="highcharts-legend-"+(n?"point":"series")+"-active",h=s.chart.styledMode,d=i?[e,o.symbol]:[o.group],c=e=>{s.allItems.forEach((i=>{t!==i&&[i].concat(i.linkedSeries||[]).forEach((t=>{t.setState(e,!n)}))}))};for(let i of d)i&&i.on("mouseover",(function(){t.visible&&c("inactive"),t.setState("hover"),t.visible&&r.addClass(l),h||e.css(s.options.itemHoverStyle)})).on("mouseout",(function(){s.chart.styledMode||e.css(pa(t.visible?s.itemStyle:s.itemHiddenStyle)),c(""),r.removeClass(l),t.setState()})).on("click",(function(e){r.removeClass(l),da(s,"itemClick",{browserEvent:e,legendItem:t},(function(){t.setVisible&&t.setVisible(),c(t.visible?"inactive":"")})),n?t.firePointEvent("legendItemClick",{browserEvent:e}):a&&da(t,"legendItemClick",{browserEvent:e})}))}createCheckboxForItem(t){t.checkbox=ra("input",{type:"checkbox",className:"highcharts-legend-checkbox",checked:t.selected,defaultChecked:t.selected},this.options.itemCheckboxStyle,this.chart.container),oa(t.checkbox,"click",(function(e){let i=e.target;da(t.series||t,"checkboxClick",{checked:i.checked,item:t},(function(){t.select()}))}))}}!function(t){t.compose=function(e){ga(ta,"Core.Legend")&&oa(e,"beforeMargins",(function(){this.legend=new t(this,this.options.legend)}))}}(ya||(ya={}));let ba=ya,{animate:va,animObject:wa,setAnimation:Ma}=Ut,{defaultOptions:ka}=bt,{numberFormat:Sa}=we,{registerEventOptions:Ta}=Ls,{charts:Aa,doc:Ca,marginNames:Pa,svg:La,win:Ea}=M,{seriesTypes:Oa}=fn,{addEvent:Da,attr:Ia,createElement:za,css:Ba,defined:Na,diffObjects:Ra,discardElement:ja,erase:Wa,error:Ga,extend:Fa,find:Xa,fireEvent:Ha,getAlignFactor:Ua,getStyle:Va,isArray:Ya,isNumber:_a,isObject:Za,isString:$a,merge:qa,objectEach:Ka,pick:Ja,pInt:Qa,relativeLength:tl,removeEvent:el,splat:il,syncTimeout:sl,uniqueKey:ol}=_;class rl{static chart(t,e,i){return new rl(t,e,i)}constructor(t,e,i){this.sharedClips={};let s=[...arguments];($a(t)||t.nodeName)&&(this.renderTo=s.shift()),this.init(s[0],s[1])}setZoomOptions(){let t=this.options.chart,e=t.zooming;this.zooming={...e,type:Ja(t.zoomType,e.type),key:Ja(t.zoomKey,e.key),pinchType:Ja(t.pinchType,e.pinchType),singleTouch:Ja(t.zoomBySingleTouch,e.singleTouch,!1),resetButton:qa(e.resetButton,t.resetZoomButton)}}init(t,e){Ha(this,"init",{args:arguments},(function(){let i=qa(ka,t),s=i.chart,o=this.renderTo||s.renderTo;this.userOptions=Fa({},t),(this.renderTo=$a(o)?Ca.getElementById(o):o)||Ga(13,!0,this),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=e,this.isResizing=0,this.options=i,this.axes=[],this.series=[],this.locale=i.lang.locale??this.renderTo.closest("[lang]")?.lang,this.time=new ut(Fa(i.time||{},{locale:this.locale}),i.lang),i.time=this.time.options,this.numberFormatter=(s.numberFormatter||Sa).bind(this),this.styledMode=s.styledMode,this.hasCartesianSeries=s.showAxes,this.index=Aa.length,Aa.push(this),M.chartCount++,Ta(this,s),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),Ha(this,"afterInit"),this.firstRender()}))}initSeries(t){let e=this.options.chart,i=t.type||e.type,s=Oa[i];s||Ga(17,!0,this,{missingModuleFor:i});let o=new s;return"function"==typeof o.init&&o.init(this,t),o}setSortedData(){this.getSeriesOrderByLinks().forEach((function(t){t.points||t.data||!t.enabledDataSorting||t.setData(t.options.data,!1)}))}getSeriesOrderByLinks(){return this.series.concat().sort((function(t,e){return t.linkedSeries.length||e.linkedSeries.length?e.linkedSeries.length-t.linkedSeries.length:0}))}orderItems(t,e=0){let i=this[t],s=this.options[t]=il(this.options[t]).slice(),o=this.userOptions[t]=this.userOptions[t]?il(this.userOptions[t]).slice():[];if(this.hasRendered&&(s.splice(e),o.splice(e)),i)for(let t=e,r=i.length;t=Math.max(l+r,t.pos)&&e<=Math.min(l+r+c.width,t.pos+t.len)||(g.isInsidePlot=!1)}if(!i.ignoreY&&g.isInsidePlot){let t=!s&&i.axis&&!i.axis.isXAxis&&i.axis||d&&(s?d.xAxis:d.yAxis)||{pos:n,len:1/0},e=i.paneCoordinates?t.pos+u:n+u;e>=Math.max(h+n,t.pos)&&e<=Math.min(h+n+c.height,t.pos+t.len)||(g.isInsidePlot=!1)}return Ha(this,"afterIsInsidePlot",g),g.isInsidePlot}redraw(t){Ha(this,"beforeRedraw");let e,i,s,o,r=this.hasCartesianSeries?this.axes:this.colorAxis||[],n=this.series,a=this.pointer,l=this.legend,h=this.userOptions.legend,d=this.renderer,c=d.isHidden(),p=[],u=this.isDirtyBox,g=this.isDirtyLegend;for(d.rootFontSize=d.boxWrapper.getStyle("font-size"),this.setResponsive&&this.setResponsive(!1),Ma(!!this.hasRendered&&t,this),c&&this.temporaryDisplay(),this.layOutTitles(!1),s=n.length;s--;)if(((o=n[s]).options.stacking||o.options.centerInCategory)&&(i=!0,o.isDirty)){e=!0;break}if(e)for(s=n.length;s--;)(o=n[s]).options.stacking&&(o.isDirty=!0);n.forEach((function(t){t.isDirty&&("point"===t.options.legendType?("function"==typeof t.updateTotals&&t.updateTotals(),g=!0):h&&(h.labelFormatter||h.labelFormat)&&(g=!0)),t.isDirtyData&&Ha(t,"updatedData")})),g&&l&&l.options.enabled&&(l.render(),this.isDirtyLegend=!1),i&&this.getStacks(),r.forEach((function(t){t.updateNames(),t.setScale()})),this.getMargins(),r.forEach((function(t){t.isDirty&&(u=!0)})),r.forEach((function(t){let e=t.min+","+t.max;t.extKey!==e&&(t.extKey=e,p.push((function(){Ha(t,"afterSetExtremes",Fa(t.eventArgs,t.getExtremes())),delete t.eventArgs}))),(u||i)&&t.redraw()})),u&&this.drawChartBox(),Ha(this,"predraw"),n.forEach((function(t){(u||t.isDirty)&&t.visible&&t.redraw(),t.isDirtyData=!1})),a&&a.reset(!0),d.draw(),Ha(this,"redraw"),Ha(this,"render"),c&&this.temporaryDisplay(!0),p.forEach((function(t){t.call()}))}get(t){let e=this.series;function i(e){return e.id===t||e.options&&e.options.id===t}let s=Xa(this.axes,i)||Xa(this.series,i);for(let t=0;!s&&t(e.getPointsCollection().forEach((e=>{Ja(e.selectedStaging,e.selected)&&t.push(e)})),t)),[])}getSelectedSeries(){return this.series.filter((t=>t.selected))}setTitle(t,e,i){this.applyDescription("title",t),this.applyDescription("subtitle",e),this.applyDescription("caption",void 0),this.layOutTitles(i)}applyDescription(t,e){let i=this,s=this.options[t]=qa(this.options[t],e),o=this[t];o&&e&&(this[t]=o=o.destroy()),s&&!o&&((o=this.renderer.text(s.text,0,0,s.useHTML).attr({align:s.align,class:"highcharts-"+t,zIndex:s.zIndex||4}).css({textOverflow:"ellipsis",whiteSpace:"nowrap"}).add()).update=function(e,s){i.applyDescription(t,e),i.layOutTitles(s)},this.styledMode||o.css(Fa("title"===t?{fontSize:this.options.isStock?"1em":"1.2em"}:{},s.style)),o.textPxLength=o.getBBox().width,o.css({whiteSpace:s.style?.whiteSpace}),this[t]=o)}layOutTitles(t=!0){let e=[0,0,0],{options:i,renderer:s,spacingBox:o}=this;["title","subtitle","caption"].forEach((t=>{let i=this[t],r=this.options[t],n=qa(o),a=i?.textPxLength||0;if(i&&r){Ha(this,"layOutTitle",{alignTo:n,key:t,textPxLength:a});let o=s.fontMetrics(i),l=o.b,h=o.h,d=r.verticalAlign||"top",c="top"===d,p=c&&r.minScale||1,u="title"===t?c?-3:0:c?e[0]+2:0,g=Math.min(n.width/a,1),m=Math.max(p,g),f=qa({y:"bottom"===d?l:u+l},{align:"title"===t?gp?this.chartWidth:n.width)/m)+"px";i.alignValue!==f.align&&(i.placed=!1);let y=Math.round(i.css({width:x}).getBBox(r.useHTML).height);if(f.height=y,i.align(f,!1,n).attr({align:f.align,scaleX:m,scaleY:m,"transform-origin":`${n.x+a*m*Ua(f.align)} ${h}`}),!r.floating){let t=y*(y<1.2*h?1:m);"top"===d?e[0]=Math.ceil(e[0]+t):"bottom"===d&&(e[2]=Math.ceil(e[2]+t))}}}),this),e[0]&&"top"===(i.title?.verticalAlign||"top")&&(e[0]+=i.title?.margin||0),e[2]&&"bottom"===i.caption?.verticalAlign&&(e[2]+=i.caption?.margin||0);let r=!this.titleOffset||this.titleOffset.join(",")!==e.join(",");this.titleOffset=e,Ha(this,"afterLayOutTitles"),!this.isDirtyBox&&r&&(this.isDirtyBox=this.isDirtyLegend=r,this.hasRendered&&t&&this.isDirtyBox&&this.redraw())}getContainerBox(){let t=[].map.call(this.renderTo.children,(t=>{if(t!==this.container){let e=t.style.display;return t.style.display="none",[t,e]}})),e={width:Va(this.renderTo,"width",!0)||0,height:Va(this.renderTo,"height",!0)||0};return t.filter(Boolean).forEach((([t,e])=>{t.style.display=e})),e}getChartSize(){let t=this.options.chart,e=t.width,i=t.height,s=this.getContainerBox(),o=s.height<=1||!this.renderTo.parentElement?.style.height&&"100%"===this.renderTo.style.height;this.chartWidth=Math.max(0,e||s.width||600),this.chartHeight=Math.max(0,tl(i,this.chartWidth)||(o?400:s.height)),this.containerBox=s}temporaryDisplay(t){let e,i=this.renderTo;if(t)for(;i?.style;)i.hcOrigStyle&&(Ba(i,i.hcOrigStyle),delete i.hcOrigStyle),i.hcOrigDetached&&(Ca.body.removeChild(i),i.hcOrigDetached=!1),i=i.parentNode;else for(;i?.style&&(Ca.body.contains(i)||i.parentNode||(i.hcOrigDetached=!0,Ca.body.appendChild(i)),("none"===Va(i,"display",!1)||i.hcOricDetached)&&(i.hcOrigStyle={display:i.style.display,height:i.style.height,overflow:i.style.overflow},e={display:"block",overflow:"hidden"},i!==this.renderTo&&(e.height=0),Ba(i,e),i.offsetWidth||i.style.setProperty("display","block","important")),(i=i.parentNode)!==Ca.body););}setClassName(t){this.container.className="highcharts-container "+(t||"")}getContainer(){let t,e=this.options,i=e.chart,s="data-highcharts-chart",o=ol(),r=this.renderTo,n=Qa(Ia(r,s));_a(n)&&Aa[n]&&Aa[n].hasRendered&&Aa[n].destroy(),Ia(r,s,this.index),r.innerHTML=oe.emptyHTML,i.skipClone||r.offsetWidth||this.temporaryDisplay(),this.getChartSize();let a=this.chartHeight,l=this.chartWidth;Ba(r,{overflow:"hidden"}),this.styledMode||(t=Fa({position:"relative",overflow:"hidden",width:l+"px",height:a+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)",userSelect:"none","touch-action":"manipulation",outline:"none",padding:"0px"},i.style||{}));let h=za("div",{id:o},t,r);this.container=h,this.getChartSize(),l===this.chartWidth||(l=this.chartWidth,this.styledMode||Ba(h,{width:Ja(i.style?.width,l+"px")})),this.containerBox=this.getContainerBox(),this._cursor=h.style.cursor;let d=i.renderer||!La?Me.getRendererType(i.renderer):ls;if(this.renderer=new d(h,l,a,void 0,i.forExport,e.exporting?.allowHTML,this.styledMode),Ma(void 0,this),this.setClassName(i.className),this.styledMode)for(let t in e.defs)this.renderer.definition(e.defs[t]);else this.renderer.setStyle(i.style);this.renderer.chartIndex=this.index,Ha(this,"afterGetContainer")}getMargins(t){let{spacing:e,margin:i,titleOffset:s}=this;this.resetMargins(),s[0]&&!Na(i[0])&&(this.plotTop=Math.max(this.plotTop,s[0]+e[0])),s[2]&&!Na(i[2])&&(this.marginBottom=Math.max(this.marginBottom,s[2]+e[2])),this.legend?.display&&this.legend.adjustMargins(i,e),Ha(this,"getMargins"),t||this.getAxisMargins()}getAxisMargins(){let t=this,e=t.axisOffset=[0,0,0,0],i=t.colorAxis,s=t.margin,o=function(t){t.forEach((function(t){t.visible&&t.getOffset()}))};t.hasCartesianSeries?o(t.axes):i?.length&&o(i),Pa.forEach((function(i,o){Na(s[o])||(t[i]+=e[o])})),t.setChartSize()}getOptions(){return Ra(this.userOptions,ka)}reflow(t){let e=this,i=e.containerBox,s=e.getContainerBox();delete e.pointer?.chartPosition,!e.isPrinting&&!e.isResizing&&i&&s.width&&((s.width!==i.width||s.height!==i.height)&&(_.clearTimeout(e.reflowTimeout),e.reflowTimeout=sl((function(){e.container&&e.setSize(void 0,void 0,!1)}),100*!!t)),e.containerBox=s)}setReflow(){let t=this,e=e=>{t.options?.chart.reflow&&t.hasLoaded&&t.reflow(e)};if("function"==typeof ResizeObserver)new ResizeObserver(e).observe(t.renderTo);else{let t=Da(Ea,"resize",e);Da(this,"destroy",t)}}setSize(t,e,i){let s=this,o=s.renderer;s.isResizing+=1,Ma(i,s);let r=o.globalAnimation;s.oldChartHeight=s.chartHeight,s.oldChartWidth=s.chartWidth,void 0!==t&&(s.options.chart.width=t),void 0!==e&&(s.options.chart.height=e),s.getChartSize();let{chartWidth:n,chartHeight:a,scrollablePixelsX:l=0,scrollablePixelsY:h=0}=s;(s.isDirtyBox||n!==s.oldChartWidth||a!==s.oldChartHeight)&&(s.styledMode||(r?va:Ba)(s.container,{width:`${n+l}px`,height:`${a+h}px`},r),s.setChartSize(!0),o.setSize(n,a,r),s.axes.forEach((function(t){t.isDirty=!0,t.setScale()})),s.isDirtyLegend=!0,s.isDirtyBox=!0,s.layOutTitles(),s.getMargins(),s.redraw(r),s.oldChartHeight=void 0,Ha(s,"resize"),setTimeout((()=>{s&&Ha(s,"endResize")}),wa(r).duration)),s.isResizing-=1}setChartSize(t){let e,i,s,o,{chartHeight:r,chartWidth:n,inverted:a,spacing:l,renderer:h}=this,d=this.clipOffset,c=Math[a?"floor":"round"];this.plotLeft=e=Math.round(this.plotLeft),this.plotTop=i=Math.round(this.plotTop),this.plotWidth=s=Math.max(0,Math.round(n-e-(this.marginRight??0))),this.plotHeight=o=Math.max(0,Math.round(r-i-(this.marginBottom??0))),this.plotSizeX=a?o:s,this.plotSizeY=a?s:o,this.spacingBox=h.spacingBox={x:l[3],y:l[0],width:n-l[3]-l[1],height:r-l[0]-l[2]},this.plotBox=h.plotBox={x:e,y:i,width:s,height:o},d&&(this.clipBox={x:c(d[3]),y:c(d[0]),width:c(this.plotSizeX-d[1]-d[3]),height:c(this.plotSizeY-d[0]-d[2])}),t||(this.axes.forEach((function(t){t.setAxisSize(),t.setAxisTranslation()})),h.alignElements()),Ha(this,"afterSetChartSize",{skipAxes:t})}resetMargins(){Ha(this,"resetMargins");let t=this,e=t.options.chart,i=e.plotBorderWidth||0,s=Math.round(i)/2;["margin","spacing"].forEach((function(i){let s=e[i],o=Za(s)?s:[s,s,s,s];["Top","Right","Bottom","Left"].forEach((function(s,r){t[i][r]=Ja(e[i+s],o[r])}))})),Pa.forEach((function(e,i){t[e]=Ja(t.margin[i],t.spacing[i])})),t.axisOffset=[0,0,0,0],t.clipOffset=[s,s,s,s],t.plotBorderWidth=i}drawChartBox(){let t,e,i,s=this.options.chart,o=this.renderer,r=this.chartWidth,n=this.chartHeight,a=this.styledMode,l=this.plotBGImage,h=s.backgroundColor,d=s.plotBackgroundColor,c=s.plotBackgroundImage,p=this.plotLeft,u=this.plotTop,g=this.plotWidth,m=this.plotHeight,f=this.plotBox,x=this.clipRect,y=this.clipBox,b=this.chartBackground,v=this.plotBackground,w=this.plotBorder,M="animate";b||(this.chartBackground=b=o.rect().addClass("highcharts-background").add(),M="attr"),a?t=e=b.strokeWidth():(e=(t=s.borderWidth||0)+8*!!s.shadow,i={fill:h||"none"},(t||b["stroke-width"])&&(i.stroke=s.borderColor,i["stroke-width"]=t),b.attr(i).shadow(s.shadow)),b[M]({x:e/2,y:e/2,width:r-e-t%2,height:n-e-t%2,r:s.borderRadius}),M="animate",v||(M="attr",this.plotBackground=v=o.rect().addClass("highcharts-plot-background").add()),v[M](f),!a&&(v.attr({fill:d||"none"}).shadow(s.plotShadow),c&&(l?(c!==l.attr("href")&&l.attr("href",c),l.animate(f)):this.plotBGImage=o.image(c,p,u,g,m).add())),x?x.animate({width:y.width,height:y.height}):this.clipRect=o.clipRect(y),M="animate",w||(M="attr",this.plotBorder=w=o.rect().addClass("highcharts-plot-border").attr({zIndex:1}).add()),a||w.attr({stroke:s.plotBorderColor,"stroke-width":s.plotBorderWidth||0,fill:"none"}),w[M](w.crisp(f,-w.strokeWidth())),this.isDirtyBox=!1,Ha(this,"afterDrawChartBox")}propFromSeries(){let t,e,i,s=this,o=s.options.chart,r=s.options.series;["inverted","angular","polar"].forEach((function(n){for(e=Oa[o.type],i=o[n]||e&&e.prototype[n],t=r?.length;!i&&t--;)(e=Oa[r[t].type])&&e.prototype[n]&&(i=!0);s[n]=i}))}linkSeries(t){let e=this,i=e.series;i.forEach((function(t){t.linkedSeries.length=0})),i.forEach((function(t){let{linkedTo:i}=t.options;if($a(i)){let s;(s=":previous"===i?e.series[t.index-1]:e.get(i))&&s.linkedParent!==t&&(s.linkedSeries.push(t),t.linkedParent=s,s.enabledDataSorting&&t.setDataSortingOptions(),t.visible=Ja(t.options.visible,s.options.visible,t.visible))}})),Ha(this,"afterLinkSeries",{isUpdating:t})}renderSeries(){this.series.forEach((function(t){t.translate(),t.render()}))}render(){let t,e=this.axes,i=this.colorAxis,s=this.renderer,o=this.options.chart.axisLayoutRuns||2,r=t=>{t.forEach((t=>{t.visible&&t.render()}))},n=0,a=!0,l=0;for(let t of(this.setTitle(),Ha(this,"beforeMargins"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),e)){let{options:e}=t,{labels:i}=e;if(this.hasCartesianSeries&&t.horiz&&t.visible&&i.enabled&&t.series.length&&"colorAxis"!==t.coll&&!this.polar){n=e.tickLength,t.createGroups();let s=new Xs(t,0,"",!0),o=s.createLabel("x",i);if(s.destroy(),o&&Ja(i.reserveSpace,!_a(e.crossing))&&(n=o.getBBox().height+i.distance+Math.max(e.offset||0,0)),n){o?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-n,0);(a||t||o>1)&&l(l?1:1.1),t=s/this.plotHeight>(l?1:1.05),l++}this.drawChartBox(),this.hasCartesianSeries?r(e):i?.length&&r(i),this.seriesGroup||(this.seriesGroup=s.g("series-group").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(t){let e=this,i=qa(!0,this.options.credits,t);i.enabled&&!this.credits&&(this.credits=this.renderer.text(i.text+(this.mapCredits||""),0,0).addClass("highcharts-credits").on("click",(function(){i.href&&(Ea.location.href=i.href)})).attr({align:i.position.align,zIndex:8}),e.styledMode||this.credits.css(i.style),this.credits.add().align(i.position),this.credits.update=function(t){e.credits=e.credits.destroy(),e.addCredits(t)})}destroy(){let t,e=this,i=e.axes,s=e.series,o=e.container,r=o?.parentNode;for(Ha(e,"destroy"),e.renderer.forExport?Wa(Aa,e):Aa[e.index]=void 0,M.chartCount--,e.renderTo.removeAttribute("data-highcharts-chart"),el(e),t=i.length;t--;)i[t]=i[t].destroy();for(this.scroller?.destroy?.(),t=s.length;t--;)s[t]=s[t].destroy();["title","subtitle","chartBackground","plotBackground","plotBGImage","plotBorder","seriesGroup","clipRect","credits","pointer","rangeSelector","legend","resetZoomButton","tooltip","renderer"].forEach((t=>{e[t]=e[t]?.destroy?.()})),o&&(o.innerHTML=oe.emptyHTML,el(o),r&&ja(o)),Ka(e,(function(t,i){delete e[i]}))}firstRender(){let t=this,e=t.options;t.getContainer(),t.resetMargins(),t.setChartSize(),t.propFromSeries(),t.createAxes();let i=Ya(e.series)?e.series:[];e.series=[],i.forEach((function(e){t.initSeries(e)})),t.linkSeries(),t.setSortedData(),Ha(t,"beforeRender"),t.render(),t.pointer?.getChartPosition(),t.renderer.imgCount||t.hasLoaded||t.onload(),t.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach((function(t){t&&void 0!==this.index&&t.apply(this,[this])}),this),Ha(this,"load"),Ha(this,"render"),Na(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:t,title:e}=this;!t||this.accessibility||(this.renderer.boxWrapper.attr({role:"img","aria-label":(e?.element.textContent||"").replace(/this.transform({reset:!0,trigger:"zoom"})))}pan(t,e){let i=this,s="object"==typeof e?e:{enabled:e,type:"x"},o=s.type,r=o&&i[{x:"xAxis",xy:"axes",y:"yAxis"}[o]].filter((t=>t.options.panningEnabled&&!t.options.isInternal)),n=i.options.chart;n?.panning&&(n.panning=s),Ha(this,"pan",{originalEvent:t},(()=>{i.transform({axes:r,event:t,to:{x:t.chartX-(i.mouseDownX||0),y:t.chartY-(i.mouseDownY||0)},trigger:"pan"}),Ba(i.container,{cursor:"move"})}))}transform(t){let e,i,{axes:s=this.axes,event:o,from:r={},reset:n,selection:a,to:l={},trigger:h}=t,{inverted:d,time:c}=this,p=!1;for(let t of(this.hoverPoints?.forEach((t=>t.setState())),s)){let{horiz:s,len:u,minPointOffset:g=0,options:m,reversed:f}=t,x=s?"width":"height",y=s?"x":"y",b=Ja(l[x],t.len),v=Ja(r[x],t.len),w=10>Math.abs(b)?1:b/v,M=(r[y]||0)+v/2-t.pos,k=M-((l[y]??t.pos)+b/2-t.pos)/w,S=f&&!d||!f&&d?-1:1;if(!n&&(M<0||M>t.len))continue;let T=t.toValue(k,!0)+(a||t.isOrdinal?0:g*S),A=t.toValue(k+u/w,!0)-(a||t.isOrdinal?0:g*S||0),C=t.allExtremes;if(T>A&&([T,A]=[A,T]),1===w&&!n&&"yAxis"===t.coll&&!C){for(let e of t.series){let t=e.getExtremes(e.getProcessedData(!0).modified.getColumn("y")||[],!0);C??(C={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),_a(t.dataMin)&&_a(t.dataMax)&&(C.dataMin=Math.min(t.dataMin,C.dataMin),C.dataMax=Math.max(t.dataMax,C.dataMax))}t.allExtremes=C}let{dataMin:P,dataMax:L,min:E,max:O}=Fa(t.getExtremes(),C||{}),D=c.parse(m.min),I=c.parse(m.max),z=P??D,B=L??I,N=A-T,R=t.categories?0:Math.min(N,B-z),j=z-R*(Na(D)?0:m.minPadding),W=B+R*(Na(I)?0:m.maxPadding),G=t.allowZoomOutside||1===w||"zoom"!==h&&w>1,F=Math.min(D??j,j,G?E:j),X=Math.max(I??W,W,G?O:W);(!t.isOrdinal||t.options.overscroll||1!==w||n)&&(T=1&&(A=T+N)),A>X&&(A=X,w>=1&&(T=A-N)),(n||t.series.length&&(T!==E||A!==O)&&T>=F&&A<=X)&&(a?a[t.coll].push({axis:t,min:T,max:A}):(t.isPanning="zoom"!==h,t.isPanning&&(i=!0),t.setExtremes(n?void 0:T,n?void 0:A,!1,!1,{move:k,trigger:h,scale:w}),!n&&(T>F||A{delete t.selection,t.trigger="zoom",this.transform(t)})):(!e||i||this.resetZoomButton?!e&&this.resetZoomButton&&(this.resetZoomButton=this.resetZoomButton.destroy()):this.showResetZoom(),this.redraw("zoom"===h&&(this.options.chart.animation??this.pointCount<100)))),p}}Fa(rl.prototype,{callbacks:[],collectionsWithInit:{xAxis:[rl.prototype.addAxis,[!0]],yAxis:[rl.prototype.addAxis,[!1]],series:[rl.prototype.addSeries]},collectionsWithUpdate:["xAxis","yAxis","series"],propsRequireDirtyBox:["backgroundColor","borderColor","borderWidth","borderRadius","plotBackgroundColor","plotBackgroundImage","plotBorderColor","plotBorderWidth","plotShadow","shadow"],propsRequireReflow:["margin","marginTop","marginRight","marginBottom","marginLeft","spacing","spacingTop","spacingRight","spacingBottom","spacingLeft"],propsRequireUpdateSeries:["chart.inverted","chart.polar","chart.ignoreHiddenSeries","chart.type","colors","plotOptions","time","tooltip"]});let{stop:nl}=Ut,{composed:al}=M,{addEvent:ll,createElement:hl,css:dl,defined:cl,erase:pl,merge:ul,pushUnique:gl}=_;function ml(){let t=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!t&&(this.scrollablePlotArea=t=new xl(this)),t?.applyFixed()}function fl(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class xl{static compose(t,e,i){gl(al,this.compose)&&(ll(t,"afterInit",fl),ll(e,"afterSetChartSize",(t=>this.afterSetSize(t.target,t))),ll(e,"render",ml),ll(i,"show",fl))}static afterSetSize(t,e){let i,s,o,{minWidth:r,minHeight:n}=t.options.chart.scrollablePlotArea||{},{clipBox:a,plotBox:l,inverted:h,renderer:d}=t;if(!d.forExport&&(r?(t.scrollablePixelsX=i=Math.max(0,r-t.chartWidth),i&&(t.scrollablePlotBox=ul(t.plotBox),l.width=t.plotWidth+=i,a[h?"height":"width"]+=i,o=!0)):n&&(t.scrollablePixelsY=s=Math.max(0,n-t.chartHeight),cl(s)&&(t.scrollablePlotBox=ul(t.plotBox),l.height=t.plotHeight+=s,a[h?"width":"height"]+=s,o=!1)),cl(o)&&!e.skipAxes))for(let e of t.axes)(e.horiz===o||t.hasParallelCoordinates&&"yAxis"===e.coll)&&(e.setAxisSize(),e.setAxisTranslation())}constructor(t){let e,i=t.options.chart,s=Me.getRendererType(),o=i.scrollablePlotArea||{},r=this.moveFixedElements.bind(this),n={WebkitOverflowScrolling:"touch",overflowX:"hidden",overflowY:"hidden"};t.scrollablePixelsX&&(n.overflowX="auto"),t.scrollablePixelsY&&(n.overflowY="auto"),this.chart=t;let a=this.parentDiv=hl("div",{className:"highcharts-scrolling-parent"},{position:"relative"},t.renderTo),l=this.scrollingContainer=hl("div",{className:"highcharts-scrolling"},n,a),h=this.innerContainer=hl("div",{className:"highcharts-inner-container"},void 0,l),d=this.fixedDiv=hl("div",{className:"highcharts-fixed"},{position:"absolute",overflow:"hidden",pointerEvents:"none",zIndex:(i.style?.zIndex||0)+2,top:0},void 0,!0),c=this.fixedRenderer=new s(d,t.chartWidth,t.chartHeight,i.style);this.mask=c.path().attr({fill:i.backgroundColor||"#fff","fill-opacity":o.opacity??.85,zIndex:-1}).addClass("highcharts-scrollable-mask").add(),l.parentNode.insertBefore(d,l),dl(t.renderTo,{overflow:"visible"}),ll(t,"afterShowResetZoom",r),ll(t,"afterApplyDrilldown",r),ll(t,"afterLayOutTitles",r),ll(l,"scroll",(()=>{let{pointer:i,hoverPoint:s}=t;i&&(delete i.chartPosition,s&&(e=s),i.runPointActions(void 0,e,!0))})),h.appendChild(t.container)}applyFixed(){let{chart:t,fixedRenderer:e,isDirty:i,scrollingContainer:s}=this,{axisOffset:o,chartWidth:r,chartHeight:n,container:a,plotHeight:l,plotLeft:h,plotTop:d,plotWidth:c,scrollablePixelsX:p=0,scrollablePixelsY:u=0}=t,{scrollPositionX:g=0,scrollPositionY:m=0}=t.options.chart.scrollablePlotArea||{},f=r+p,x=n+u;e.setSize(r,n),(i??!0)&&(this.isDirty=!1,this.moveFixedElements()),nl(t.container),dl(a,{width:`${f}px`,height:`${x}px`}),t.renderer.boxWrapper.attr({width:f,height:x,viewBox:[0,0,f,x].join(" ")}),t.chartBackground?.attr({width:f,height:x}),dl(s,{width:`${r}px`,height:`${n}px`}),cl(i)||(s.scrollLeft=p*g,s.scrollTop=u*m);let y=d-o[0]-1,b=h-o[3]-1,v=d+l+o[2]+1,w=h+c+o[1]+1,M=h+c-p,k=d+l-u,S=[["M",0,0]];p?S=[["M",0,y],["L",h-1,y],["L",h-1,v],["L",0,v],["Z"],["M",M,y],["L",r,y],["L",r,v],["L",M,v],["Z"]]:u&&(S=[["M",b,0],["L",b,d-1],["L",w,d-1],["L",w,0],["Z"],["M",b,k],["L",b,n],["L",w,n],["L",w,k],["Z"]]),"adjustHeight"!==t.redrawTrigger&&this.mask.attr({d:S})}moveFixedElements(){let t,{container:e,inverted:i,scrollablePixelsX:s,scrollablePixelsY:o}=this.chart,r=this.fixedRenderer,n=xl.fixedSelectors;if(s&&!i?t=".highcharts-yaxis":s&&i||o&&!i?t=".highcharts-xaxis":o&&i&&(t=".highcharts-yaxis"),!t||this.chart.hasParallelCoordinates&&".highcharts-yaxis"===t)for(let t of[".highcharts-xaxis",".highcharts-yaxis"])for(let e of[`${t}:not(.highcharts-radial-axis)`,`${t}-labels:not(.highcharts-radial-axis-labels)`])pl(n,e);else for(let e of[`${t}:not(.highcharts-radial-axis)`,`${t}-labels:not(.highcharts-radial-axis-labels)`])gl(n,e);for(let t of n)[].forEach.call(e.querySelectorAll(t),(t=>{(t.namespaceURI===r.SVG_NS?r.box:r.box.parentNode).appendChild(t),t.style.pointerEvents="auto"}))}}xl.fixedSelectors=[".highcharts-breadcrumbs-group",".highcharts-contextbutton",".highcharts-caption",".highcharts-credits",".highcharts-drillup-button",".highcharts-legend",".highcharts-legend-checkbox",".highcharts-navigator-series",".highcharts-navigator-xaxis",".highcharts-navigator-yaxis",".highcharts-navigator",".highcharts-range-selector-group",".highcharts-reset-zoom",".highcharts-scrollbar",".highcharts-subtitle",".highcharts-title"];let{format:yl}=we,{series:bl}=fn,{destroyObjectProperties:vl,fireEvent:wl,getAlignFactor:Ml,isNumber:kl,pick:Sl}=_,Tl=class{constructor(t,e,i,s,o){let r=t.chart.inverted,n=t.reversed;this.axis=t;let a=this.isNegative=!!i!=!!n;this.options=e=e||{},this.x=s,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=o,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:e.align||(r?a?"left":"right":"center"),verticalAlign:e.verticalAlign||(r?"middle":a?"bottom":"top"),y:e.y,x:e.x},this.textAlign=e.textAlign||(r?a?"right":"left":"center")}destroy(){vl(this,this.axis)}render(t){let e=this.axis.chart,i=this.options,s=i.format,o=s?yl(s,this,e):i.formatter.call(this);if(this.label)this.label.attr({text:o,visibility:"hidden"});else{this.label=e.renderer.label(o,null,void 0,i.shape,void 0,void 0,i.useHTML,!1,"stack-labels");let s={r:i.borderRadius||0,text:o,padding:Sl(i.padding,5),visibility:"hidden"};e.styledMode||(s.fill=i.backgroundColor,s.stroke=i.borderColor,s["stroke-width"]=i.borderWidth,this.label.css(i.style||{})),this.label.attr(s),this.label.added||this.label.add(t)}this.label.labelrank=e.plotSizeY,wl(this,"afterRender")}setOffset(t,e,i,s,o,r){let{alignOptions:n,axis:a,label:l,options:h,textAlign:d}=this,c=a.chart,p=this.getStackBox({xOffset:t,width:e,boxBottom:i,boxTop:s,defaultX:o,xAxis:r}),{verticalAlign:u}=n;if(l&&p){let t,e=l.getBBox(void 0,0),i=l.padding,s="justify"===Sl(h.overflow,"justify");n.x=h.x||0,n.y=h.y||0;let{x:o,y:r}=this.adjustStackPosition({labelBox:e,verticalAlign:u,textAlign:d});p.x-=o,p.y-=r,l.align(n,!1,p),(t=c.isInsidePlot(l.alignAttr.x+n.x+o,l.alignAttr.y+n.y+r))||(s=!1),s&&bl.prototype.justifyDataLabel.call(a,l,n,l.alignAttr,e,p),l.attr({x:l.alignAttr.x,y:l.alignAttr.y,rotation:h.rotation,rotationOriginX:e.width*Ml(h.textAlign||"center"),rotationOriginY:e.height/2}),Sl(!s&&h.crop,!0)&&(t=kl(l.x)&&kl(l.y)&&c.isInsidePlot(l.x-i+(l.width||0),l.y)&&c.isInsidePlot(l.x+i,l.y)),l[t?"show":"hide"]()}wl(this,"afterSetOffset",{xOffset:t,width:e})}adjustStackPosition({labelBox:t,verticalAlign:e,textAlign:i}){return{x:t.width/2+t.width/2*(2*Ml(i)-1),y:t.height/2*2*(1-Ml(e))}}getStackBox(t){let e=this.axis,i=e.chart,{boxTop:s,defaultX:o,xOffset:r,width:n,boxBottom:a}=t,l=e.stacking.usePercentage?100:Sl(s,this.total,0),h=e.toPixels(l),d=t.xAxis||i.xAxis[0],c=Sl(o,d.translate(this.x))+r,p=Math.abs(h-e.toPixels(a||kl(e.min)&&e.logarithmic&&e.logarithmic.lin2log(e.min)||0)),u=i.inverted,g=this.isNegative;return u?{x:(g?h:h-p)-i.plotLeft,y:d.height-c-n+d.top-i.plotTop,width:p,height:n}:{x:c+d.transB-i.plotLeft,y:(g?h-p:h)-i.plotTop,width:n,height:p}}},{getDeferredAnimation:Al}=Ut,{series:{prototype:Cl}}=fn,{addEvent:Pl,correctFloat:Ll,defined:El,destroyObjectProperties:Ol,fireEvent:Dl,isNumber:Il,objectEach:zl,pick:Bl}=_;function Nl(){let t=this.inverted;this.axes.forEach((t=>{t.stacking?.stacks&&t.hasVisibleSeries&&(t.stacking.oldStacks=t.stacking.stacks)})),this.series.forEach((e=>{let i=e.xAxis?.options||{};e.options.stacking&&e.reserveSpace()&&(e.stackKey=[e.type,Bl(e.options.stack,""),t?i.top:i.left,t?i.height:i.width].join(","))}))}function Rl(){let t=this.stacking;if(t){let e=t.stacks;zl(e,((t,i)=>{Ol(t),delete e[i]})),t.stackTotalGroup?.destroy()}}function jl(){this.stacking||(this.stacking=new Ul(this))}function Wl(t,e,i,s){return!El(t)||t.x!==e||s&&t.stackKey!==s?t={x:e,index:0,key:s,stackKey:s}:t.index++,t.key=[i,e,t.index].join(","),t}function Gl(){let t,e=this,i=e.yAxis,s=e.stackKey||"",o=i.stacking.stacks,r=e.getColumn("x",!0),n=e.options.stacking,a=e[n+"Stacker"];a&&[s,"-"+s].forEach((i=>{let s,n,l,h=r.length;for(;h--;)s=r[h],t=e.getStackIndicator(t,s,e.index,i),n=o[i]?.[s],(l=n?.points[t.key||""])&&a.call(e,l,n,h)}))}function Fl(t,e,i){let s=e.total?100/e.total:0;t[0]=Ll(t[0]*s),t[1]=Ll(t[1]*s),this.stackedYData[i]=t[1]}function Xl(t){(this.is("column")||this.is("columnrange"))&&(this.options.centerInCategory&&this.chart.series.length>1?Cl.setStackedPoints.call(this,t,"group"):t.stacking.resetStacks())}function Hl(t,e){let i,s,o,r,n,a,l,h=e||this.options.stacking;if(!h||!this.reserveSpace()||({group:"xAxis"}[h]||"yAxis")!==t.coll)return;let d=this.getColumn("x",!0),c=this.getColumn(this.pointValKey||"y",!0),p=[],u=c.length,g=this.options,m=g.threshold||0,f=g.startFromThreshold?m:0,x=g.stack,y=e?`${this.type},${h}`:this.stackKey||"",b="-"+y,v=this.negStacks,w=t.stacking,M=w.stacks,k=w.oldStacks;for(w.stacksTouched+=1,l=0;l0&&!1===this.singleStacks&&(o.points[a][0]=o.points[this.index+","+e+",0"][0])):(delete o.points[a],delete o.points[this.index]);let S=o.total||0;"percent"===h?(r=s?y:b,S=v&&M[r]?.[e]?(r=M[r][e]).total=Math.max(r.total||0,S)+Math.abs(g):Ll(S+Math.abs(g))):"group"===h?Il(u)&&S++:S=Ll(S+g),o.cumulative="group"===h?(S||1)-1:Ll(Bl(o.cumulative,f)+g),o.total=S,null!==u&&(o.points[a].push(o.cumulative),p[l]=o.cumulative,o.hasValidPoints=!0)}"percent"===h&&(w.usePercentage=!0),"group"!==h&&(this.stackedYData=p),w.oldStacks={}}class Ul{constructor(t){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=t}buildStacks(){let t,e,i=this.axis,s=i.series,o="xAxis"===i.coll,r=i.options.reversedStacks,n=s.length;for(this.resetStacks(),this.usePercentage=!1,e=n;e--;)t=s[r?e:n-e-1],o&&t.setGroupedPoints(i),t.setStackedPoints(i);if(!o)for(e=0;e{zl(t,(t=>{t.cumulative=t.total}))})))}resetStacks(){zl(this.stacks,(t=>{zl(t,((e,i)=>{Il(e.touched)&&e.touched{zl(t,(t=>{t.render(r)}))})),r.animate({opacity:1},o)}}(u||(u={})).compose=function(t,e,i){let s=e.prototype,o=i.prototype;s.getStacks||(Pl(t,"init",jl),Pl(t,"destroy",Rl),s.getStacks=Nl,o.getStackIndicator=Wl,o.modifyStacks=Gl,o.percentStacker=Fl,o.setGroupedPoints=Xl,o.setStackedPoints=Hl)};let Vl=u,{defined:Yl,merge:_l,isObject:Zl}=_;class $l extends qn{drawGraph(){let t=this.options,e=(this.gappedPath||this.getGraphPath).call(this),i=this.chart.styledMode;[this,...this.zones].forEach(((s,o)=>{let r,n=s.graph,a=n?"animate":"attr",l=s.dashStyle||t.dashStyle;n?(n.endX=this.preventGraphAnimation?null:e.xMap,n.animate({d:e})):e.length&&(s.graph=n=this.chart.renderer.path(e).addClass("highcharts-graph"+(o?` highcharts-zone-graph-${o-1} `:" ")+(o&&s.className||"")).attr({zIndex:1}).add(this.group)),n&&!i&&(r={stroke:!o&&t.lineColor||s.color||this.color||"#cccccc","stroke-width":t.lineWidth||0,fill:this.fillGraph&&this.color||"none"},l?r.dashstyle=l:"square"!==t.linecap&&(r["stroke-linecap"]=r["stroke-linejoin"]="round"),n[a](r).shadow(t.shadow&&_l({filterUnits:"userSpaceOnUse"},Zl(t.shadow)?t.shadow:{}))),n&&(n.startX=e.xMap,n.isArea=e.isArea)}))}getGraphPath(t,e,i){let s,o=this,r=o.options,n=[],a=[],l=r.step,h=(t=t||o.points).reversed;return h&&t.reverse(),(l={right:1,center:2}[l]||l&&3)&&h&&(l=4-l),(t=this.getValidPoints(t,!1,r.nullInteraction||!(r.connectNulls&&!e&&!i))).forEach((function(h,d){let c,p=h.plotX,u=h.plotY,g=t[d-1],m=h.isNull||"number"!=typeof u;(h.leftCliff||g?.rightCliff)&&!i&&(s=!0),m&&!Yl(e)&&d>0?s=!r.connectNulls:m&&!e?s=!0:(0===d||s?c=[["M",h.plotX,h.plotY]]:o.getPointSpline?c=[o.getPointSpline(t,h,d)]:l?(c=1===l?[["L",g.plotX,u]]:2===l?[["L",(g.plotX+p)/2,g.plotY],["L",(g.plotX+p)/2,u]]:[["L",p,g.plotY]]).push(["L",p,u]):c=[["L",p,u]],a.push(h.x),l&&(a.push(h.x),2===l&&a.push(h.x)),n.push.apply(n,c),s=!1)})),n.xMap=a,o.graphPath=n,n}}$l.defaultOptions=_l(qn.defaultOptions,{legendSymbol:"lineMarker"}),fn.registerSeriesType("line",$l);let{seriesTypes:{line:ql}}=fn,{extend:Kl,merge:Jl,objectEach:Ql,pick:th}=_;class eh extends ql{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:t,options:e}=this;[this,...this.zones].forEach(((i,s)=>{let o={},r=i.fillColor||e.fillColor,n=i.area,a=n?"animate":"attr";n?(n.endX=this.preventGraphAnimation?null:t.xMap,n.animate({d:t})):(o.zIndex=0,(n=i.area=this.chart.renderer.path(t).addClass("highcharts-area"+(s?` highcharts-zone-area-${s-1} `:" ")+(s&&i.className||"")).add(this.group)).isArea=!0),this.chart.styledMode||(o.fill=r||i.color||this.color,o["fill-opacity"]=r?1:e.fillOpacity??.75,n.css({pointerEvents:this.stickyTracking?"none":"auto"})),n[a](o),n.startX=t.xMap,n.shiftUnit=e.step?2:1}))}getGraphPath(t){let e,i,s,o=ql.prototype.getGraphPath,r=this.options,n=r.stacking,a=this.yAxis,l=[],h=[],d=this.index,c=a.stacking.stacks[this.stackKey],p=r.threshold,u=Math.round(a.getThreshold(r.threshold)),g=th(r.connectNulls,"percent"===n),m=function(i,s,o){let r,g,m=t[i],f=n&&c[m.x].points[d],x=m[o+"Null"]||0,y=m[o+"Cliff"]||0,b=!0;y||x?(r=(x?f[0]:f[1])+y,g=f[0]+y,b=!!x):!n&&t[s]&&t[s].isNull&&(r=g=p),void 0!==r&&(h.push({plotX:e,plotY:null===r?u:a.getThreshold(r),isNull:b,isCliff:!0}),l.push({plotX:e,plotY:null===g?u:a.getThreshold(g),doCurve:!1}))};t=t||this.points,n&&(t=this.getStackPoints(t));for(let o=0,r=t.length;o1&&n&&h.some((t=>t.isCliff))&&(b.hasStackedCliffs=v.hasStackedCliffs=!0),b.xMap=f.xMap,this.areaPath=b,v}getStackPoints(t){let e=this,i=[],s=[],o=this.xAxis,r=this.yAxis,n=r.stacking.stacks[this.stackKey],a={},l=r.series,h=l.length,d=r.options.reversedStacks?1:-1,c=l.indexOf(e);if(t=t||this.points,this.options.stacking){for(let e=0;et.visible));s.forEach((function(t,u){let g,m,f=0;if(a[t]&&!a[t].isNull)i.push(a[t]),[-1,1].forEach((function(i){let o=1===i?"rightNull":"leftNull",r=n[s[u+i]],f=0;if(r){let i=c;for(;i>=0&&i=0&&ei&&o>l?(o=Math.max(i,l),n=2*l-o):op&&n>l?(n=Math.max(p,l),o=2*l-n):n1){let o=this.xAxis.series.filter((t=>t.visible)).map((t=>t.index)),r=0,n=0;Sh(this.xAxis.stacking?.stacks,(t=>{let e="number"==typeof i.x?t[i.x.toString()]?.points:void 0,s=e?.[this.index],a={};if(e&&vh(s)){let t=this.index,i=Object.keys(e).filter((t=>!t.match(",")&&e[t]&&e[t].length>1)).map(parseFloat).filter((t=>-1!==o.indexOf(t))).filter((e=>{let i=this.chart.series[e].options,s=i.stacking&&i.stack;if(xh(s)){if(wh(a[s]))return t===e&&(t=a[s]),!1;a[s]=e}return!0})).sort(((t,e)=>e-t));r=i.indexOf(t),n=i.length}})),r=this.xAxis.reversed?n-1-r:r;let a=(n-1)*s.paddedWidth+e;t=(i.plotX||0)+a/2-e-r*s.paddedWidth}return t}translate(){let t=this,e=t.chart,i=t.options,s=t.dense=t.closestPointRange*t.xAxis.transA<2,o=t.borderWidth=kh(i.borderWidth,+!s),r=t.xAxis,n=t.yAxis,a=i.threshold,l=kh(i.minPointLength,5),h=t.getColumnMetrics(),d=h.width,c=t.pointXOffset=h.offset,p=t.dataMin,u=t.dataMax,g=t.translatedThreshold=n.getThreshold(a),m=t.barW=Math.max(d,1+2*o);i.pointPadding&&i.crisp&&(m=Math.ceil(m)),qn.prototype.translate.apply(t),t.points.forEach((function(s){let o,f=kh(s.yBottom,g),x=999+Math.abs(f),y=s.plotX||0,b=mh(s.plotY,-x,n.len+x),v=Math.min(b,f),w=Math.max(b,f)-v,M=d,k=y+c,S=m;l&&Math.abs(w)l?f-l:g-(o?l:0)),xh(s.options.pointWidth)&&(k-=Math.round(((M=S=Math.ceil(s.options.pointWidth))-d)/2)),i.centerInCategory&&(k=t.adjustForMissingColumns(k,M,s,h)),s.barX=k,s.pointWidth=M,s.tooltipPos=e.inverted?[mh(n.len+n.pos-e.plotLeft-b,n.pos-e.plotLeft,n.len+n.pos-e.plotLeft),r.len+r.pos-e.plotTop-k-S/2,w]:[r.left-e.plotLeft+k+S/2,mh(b+n.pos-e.plotTop,n.pos-e.plotTop,n.len+n.pos-e.plotTop),w],s.shapeType=t.pointClass.prototype.shapeType||"roundedRect",s.shapeArgs=t.crispCol(k,v,S,s.isNull?0:w)})),bh(this,"afterColumnTranslate")}drawGraph(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")}pointAttribs(t,e){let i,s,o,r=this.options,n=this.pointAttrToOptions||{},a=n.stroke||"borderColor",l=n["stroke-width"]||"borderWidth",h=t&&t.color||this.color,d=t&&t[a]||r[a]||h,c=t&&t.options.dashStyle||r.dashStyle,p=t&&t[l]||r[l]||this[l]||0,u=t?.isNull&&r.nullInteraction?0:t?.opacity??r.opacity??1;t&&this.zones.length&&(s=t.getZone(),h=t.options.color||s&&(s.color||t.nonZonedColor)||this.color,s&&(d=s.borderColor||d,c=s.dashStyle||c,p=s.borderWidth||p)),e&&t&&(o=(i=Mh(r.states[e],t.options.states&&t.options.states[e]||{})).brightness,h=i.color||void 0!==o&&uh(h).brighten(i.brightness).get()||h,d=i[a]||d,p=i[l]||p,c=i.dashStyle||c,u=kh(i.opacity,u));let g={fill:h,stroke:d,"stroke-width":p,opacity:u};return c&&(g.dashstyle=c),g}drawPoints(t=this.points){let e,i=this,s=this.chart,o=i.options,r=o.nullInteraction,n=s.renderer,a=o.animationLimit||250;t.forEach((function(t){let l=t.plotY,h=t.graphic,d=!!h,c=h&&s.pointCountt?.enabled))}function i(t,e,i,s,o){let{chart:r,enabledDataSorting:n}=this,a=this.isCartesian&&r.inverted,l=t.plotX,h=t.plotY,d=i.rotation||0,c=Lh(l)&&Lh(h)&&r.isInsidePlot(l,Math.round(h),{inverted:a,paneCoordinates:!0,series:this}),p=0===d&&"justify"===Rh(i.overflow,n?"none":"justify"),u=this.visible&&!1!==t.visible&&Lh(l)&&(t.series.forceDL||n&&!p||c||Rh(i.inside,!!this.options.stacking)&&s&&r.isInsidePlot(l,a?s.x+1:s.y+s.height-1,{inverted:a,paneCoordinates:!0,series:this})),g=t.pos();if(u&&g){var m;let l=e.getBBox(),h=e.getBBox(void 0,0);if(s=Eh({x:g[0],y:Math.round(g[1]),width:0,height:0},s||{}),"plotEdges"===i.alignTo&&this.isCartesian&&(s[a?"x":"y"]=0,s[a?"width":"height"]=this.yAxis?.len||0),Eh(i,{width:l.width,height:l.height}),m=s,n&&this.xAxis&&!p&&this.setDataLabelStartPos(t,e,o,c,m),e.align(Bh(i,{width:h.width,height:h.height}),!1,s,!1),e.alignAttr.x+=Dh(i.align)*(h.width-l.width),e.alignAttr.y+=Dh(i.verticalAlign)*(h.height-l.height),e[e.placed?"animate":"attr"]({"text-align":e.alignAttr["text-align"]||"center",x:e.alignAttr.x+(l.width-h.width)/2,y:e.alignAttr.y+(l.height-h.height)/2,rotationOriginX:(e.width||0)/2,rotationOriginY:(e.height||0)/2}),p&&s.height>=0)this.justifyDataLabel(e,i,e.alignAttr,l,s,o);else if(Rh(i.crop,!0)){let{x:t,y:i}=e.alignAttr;u=r.isInsidePlot(t,i,{paneCoordinates:!0,series:this})&&r.isInsidePlot(t+l.width-1,i+l.height-1,{paneCoordinates:!0,series:this})}i.shape&&!d&&e[o?"attr":"animate"]({anchorX:g[0],anchorY:g[1]})}o&&n&&(e.placed=!1),u||n&&!p?(e.show(),e.placed=!0):(e.hide(),e.placed=!1)}function s(){return this.plotGroup("dataLabelsGroup","data-labels",this.hasRendered?"inherit":"hidden",this.options.dataLabels.zIndex||6)}function o(t){let e=this.hasRendered||0,i=this.initDataLabelsGroup().attr({opacity:+e});return!e&&i&&(this.visible&&i.show(),this.options.animation?i.animate({opacity:1},t):i.attr({opacity:1})),i}function r(t){let e;t=t||this.points;let i=this,s=i.chart,o=i.options,r=s.renderer,{backgroundColor:n,plotBackgroundColor:h}=s.options.chart,d=r.getContrast(zh(h)&&h||zh(n)&&n||"#000000"),c=l(i),{animation:p,defer:u}=c[0],g=u?Ch(s,p,i):{defer:0,duration:0};Oh(this,"drawDataLabels"),i.hasDataLabels?.()&&(e=this.initDataLabels(g),t.forEach((t=>{let n=t.dataLabels||[],l=t.color||i.color;Wh(a(c,t.dlOptions||t.options?.dataLabels)).forEach(((a,h)=>{let c,p,u,g,m=a.enabled&&(t.visible||t.dataLabelOnHidden)&&(!t.isNull||t.dataLabelOnNull)&&function(t,e){let i=e.filter;if(i){let e=i.operator,s=t[i.property],o=i.value;return">"===e&&s>o||"<"===e&&s="===e&&s>=o||"<="===e&&s<=o||"=="===e&&s==o||"==="===e&&s===o||"!="===e&&s!=o||"!=="===e&&s!==o||!1}return!0}(t,a),{backgroundColor:f,borderColor:x,distance:y,style:b={}}=a,v={},w=n[h],M=!w;m&&(p=Lh(c=Rh(a[t.formatPrefix+"Format"],a.format))?Ph(c,t,s):(a[t.formatPrefix+"Formatter"]||a.formatter).call(t,a),u=a.rotation,!s.styledMode&&(b.color=Rh(a.color,b.color,zh(i.color)?i.color:void 0,"#000000"),"contrast"===b.color?("none"!==f&&(g=f),t.contrastColor=r.getContrast("auto"!==g&&zh(g)&&g||(zh(l)?l:"")),b.color=g||!Lh(y)&&a.inside||0>jh(y||0)||o.stacking?t.contrastColor:d):delete t.contrastColor,o.cursor&&(b.cursor=o.cursor)),v={r:a.borderRadius||0,rotation:u,padding:a.padding,zIndex:1},s.styledMode||(v.fill="auto"===f?t.color:f,v.stroke="auto"===x?t.color:x,v["stroke-width"]=a.borderWidth),Nh(v,((t,e)=>{void 0===t&&delete v[e]}))),!w||m&&Lh(p)&&!(!w.div&&!w.text?.foreignObject)==!!a.useHTML&&(w.rotation&&a.rotation||w.rotation===a.rotation)||(w=void 0,M=!0),m&&Lh(p)&&(w?v.text=p:(w=r.label(p,0,0,a.shape,void 0,void 0,a.useHTML,void 0,"data-label")).addClass(" highcharts-data-label-color-"+t.colorIndex+" "+(a.className||"")+(a.useHTML?" highcharts-tracker":"")),w&&(w.options=a,w.attr(v),s.styledMode?b.width&&w.css({width:b.width,textOverflow:b.textOverflow,whiteSpace:b.whiteSpace}):w.css(b).shadow(a.shadow),Oh(w,"beforeAddingDataLabel",{labelOptions:a,point:t}),w.added||w.add(e),i.alignDataLabel(t,w,a,void 0,M),w.isActive=!0,n[h]&&n[h]!==w&&n[h].destroy(),n[h]=w))}));let h=n.length;for(;h--;)n[h]?.isActive?n[h].isActive=!1:(n[h]?.destroy(),n.splice(h,1));t.dataLabel=n[0],t.dataLabels=n}))),Oh(this,"afterDrawDataLabels")}function n(t,e,i,s,o,r){let n,a,l=this.chart,h=e.align,d=e.verticalAlign,c=t.box?0:t.padding||0,p=l.inverted?this.yAxis:this.xAxis,u=p?p.left-l.plotLeft:0,g=l.inverted?this.xAxis:this.yAxis,m=g?g.top-l.plotTop:0,{x:f=0,y:x=0}=e;return(n=(i.x||0)+c+u)<0&&("right"===h&&f>=0?(e.align="left",e.inside=!0):f-=n,a=!0),(n=(i.x||0)+s.width-c+u)>l.plotWidth&&("left"===h&&f<=0?(e.align="right",e.inside=!0):f+=l.plotWidth-n,a=!0),(n=i.y+c+m)<0&&("bottom"===d&&x>=0?(e.verticalAlign="top",e.inside=!0):x-=n,a=!0),(n=(i.y||0)+s.height-c+m)>l.plotHeight&&("top"===d&&x<=0?(e.verticalAlign="bottom",e.inside=!0):x+=l.plotHeight-n,a=!0),a&&(e.x=f,e.y=x,t.placed=!r,t.align(e,void 0,o)),a}function a(t,e){let i,s=[];if(Ih(t)&&!Ih(e))s=t.map((function(t){return Bh(t,e)}));else if(Ih(e)&&!Ih(t))s=e.map((function(e){return Bh(t,e)}));else if(Ih(t)||Ih(e)){if(Ih(t)&&Ih(e))for(i=Math.max(t.length,e.length);i--;)s[i]=Bh(t[i],e[i])}else s=Bh(t,e);return s}function l(t){let e=t.chart.options.plotOptions;return Wh(a(a(e?.series?.dataLabels,e?.[t.type]?.dataLabels),t.options.dataLabels))}function h(t,e,i,s,o){let r=this.chart,n=r.inverted,a=this.xAxis,l=a.reversed,h=((n?e.height:e.width)||0)/2,d=t.pointWidth,c=d?d/2:0;e.startXPos=n?o.x:l?-h-c:a.width-h+c,e.startYPos=n?l?this.yAxis.height-h+c:-h-c:o.y,s?"hidden"===e.visibility&&(e.show(),e.attr({opacity:0}).animate({opacity:1})):e.attr({opacity:1}).animate({opacity:0},void 0,e.hide),r.hasRendered&&(i&&e.attr({x:e.startXPos,y:e.startYPos}),e.placed=!0)}t.compose=function(t){let l=t.prototype;l.initDataLabels||(l.initDataLabels=o,l.initDataLabelsGroup=s,l.alignDataLabel=i,l.drawDataLabels=r,l.justifyDataLabel=n,l.mergeArrays=a,l.setDataLabelStartPos=h,l.hasDataLabels=e)}}(g||(g={}));let Gh=g,{composed:Fh}=M,{series:Xh}=fn,{merge:Hh,pushUnique:Uh}=_;!function(t){function e(t,e,i,s,o){let{chart:r,options:n}=this,a=r.inverted,l=this.xAxis?.len||r.plotSizeX||0,h=this.yAxis?.len||r.plotSizeY||0,d=t.dlBox||t.shapeArgs,c=t.below??(t.plotY||0)>(this.translatedThreshold??h),p=i.inside??!!n.stacking;if(d){if(s=Hh(d),"allow"!==i.overflow||!1!==i.crop||!1!==n.clip){s.y<0&&(s.height+=s.y,s.y=0);let t=s.y+s.height-h;t>0&&t {series.name}
',pointFormat:"x: {point.x}
y: {point.y}
"}}),Jh(td.prototype,{drawTracker:$h.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),Kh(td,"afterTranslate",(function(){this.applyJitter()})),fn.registerSeriesType("scatter",td);let{deg2rad:ed}=M,{fireEvent:id,isNumber:sd,pick:od,relativeLength:rd}=_;!function(t){t.getCenter=function(){let t,e,i,s=this.options,o=this.chart,r=2*(s.slicedOffset||0),n=o.plotWidth-2*r,a=o.plotHeight-2*r,l=s.center,h=Math.min(n,a),d=s.thickness,c=s.size,p=s.innerSize||0;"string"==typeof c&&(c=parseFloat(c)),"string"==typeof p&&(p=parseFloat(p));let u=[od(l?.[0],"50%"),od(l?.[1],"50%"),od(c&&c<0?void 0:s.size,"100%"),od(p&&p<0?void 0:s.innerSize||0,"0%")];for(!o.angular||this instanceof qn||(u[3]=0),e=0;e<4;++e)i=u[e],t=e<2||2===e&&/%$/.test(i),u[e]=rd(i,[n,a,h,u[2]][e])+(t?r:0);return u[3]>u[2]&&(u[3]=u[2]),sd(d)&&2*d0&&(u[3]=u[2]-2*d),id(this,"afterGetCenter",{positions:u}),u},t.getStartAndEndRadians=function(t,e){let i=sd(t)?t:0,s=sd(e)&&e>i&&e-i<360?e:i+360;return{start:ed*(i+-90),end:ed*(s+-90)}}}(f||(f={}));let nd=f,{setAnimation:ad}=Ut,{addEvent:ld,defined:hd,extend:dd,isNumber:cd,pick:pd,relativeLength:ud}=_;class gd extends Br{getConnectorPath(t){let e=t.dataLabelPosition,i=t.options||{},s=i.connectorShape,o=this.connectorShapes[s]||s;return e&&o.call(this,{...e.computed,alignment:e.alignment},e.connectorPosition,i)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(t){let e=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(e.x,e.y,e.r+t,e.r+t,{innerR:e.r-1,start:e.start,end:e.end,borderRadius:e.borderRadius})}constructor(t,e,i){super(t,e,i),this.half=0,this.name??(this.name=t.chart.options.lang.pieSliceName);let s=t=>{this.slice("select"===t.type)};ld(this,"select",s),ld(this,"unselect",s)}isValid(){return cd(this.y)&&this.y>=0}setVisible(t,e=!0){t!==this.visible&&this.update({visible:t??!this.visible},e,void 0,!1)}slice(t,e,i){let s=this.series;ad(i,s.chart),e=pd(e,!0),this.sliced=this.options.sliced=t=hd(t)?t:!this.sliced,s.options.data[s.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}dd(gd.prototype,{connectorShapes:{fixedOffset:function(t,e,i){let s=e.breakAt,o=e.touchingSliceAt,r=i.softConnector?["C",t.x+("left"===t.alignment?-5:5),t.y,2*s.x-o.x,2*s.y-o.y,s.x,s.y]:["L",s.x,s.y];return[["M",t.x,t.y],r,["L",o.x,o.y]]},straight:function(t,e){let i=e.touchingSliceAt;return[["M",t.x,t.y],["L",i.x,i.y]]},crookedLine:function(t,e,i){let{angle:s=this.angle||0,breakAt:o,touchingSliceAt:r}=e,{series:n}=this,[a,l,h]=n.center,d=h/2,{plotLeft:c,plotWidth:p}=n.chart,u="left"===t.alignment,{x:g,y:m}=t,f=o.x;if(i.crookDistance){let t=ud(i.crookDistance,1);f=u?a+d+(p+c-a-d)*(1-t):c+(a-d)*t}else f=a+(l-m)*Math.tan(s-Math.PI/2);let x=[["M",g,m]];return(u?f<=g&&f>=o.x:f>=g&&f<=o.x)&&x.push(["L",f,m]),x.push(["L",o.x,o.y],["L",r.x,r.y]),x}}});let{getStartAndEndRadians:md}=nd,{noop:fd}=M,{clamp:xd,extend:yd,fireEvent:bd,merge:vd,pick:wd}=_;class Md extends qn{animate(t){let e=this,i=e.points,s=e.startAngleRad;t||i.forEach((function(t){let i=t.graphic,o=t.shapeArgs;i&&o&&(i.attr({r:wd(t.startR,e.center&&e.center[3]/2),start:s,end:s}),i.animate({r:o.r,start:o.start,end:o.end},e.options.animation))}))}drawEmpty(){let t,e,i=this.startAngleRad,s=this.endAngleRad,o=this.options;0===this.total&&this.center?(t=this.center[0],e=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(t,e,this.center[1]/2,0,i,s).addClass("highcharts-empty-series").add(this.group)),this.graph.attr({d:Mi.arc(t,e,this.center[2]/2,0,{start:i,end:s,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":o.borderWidth,fill:o.fillColor||"none",stroke:o.color||"#cccccc"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let t=this.chart.renderer;this.points.forEach((function(e){e.graphic&&e.hasNewShapeType()&&(e.graphic=e.graphic.destroy()),e.graphic||(e.graphic=t[e.shapeType](e.shapeArgs).add(e.series.group),e.delayedRendering=!0)}))}generatePoints(){super.generatePoints(),this.updateTotals()}getX(t,e,i,s){let o=this.center,r=this.radii?this.radii[i.index]||0:o[2]/2,n=s.dataLabelPosition,a=n?.distance||0,l=Math.asin(xd((t-o[1])/(r+a),-1,1));return o[0]+Math.cos(l)*(r+a)*(e?-1:1)+(a>0?(e?-1:1)*(s.padding||0):0)}hasData(){return!!this.dataTable.rowCount}redrawPoints(){let t,e,i,s,o=this,r=o.chart;this.drawEmpty(),o.group&&!r.styledMode&&o.group.shadow(o.options.shadow),o.points.forEach((function(n){let a={};e=n.graphic,!n.isNull&&e?(s=n.shapeArgs,t=n.getTranslate(),r.styledMode||(i=o.pointAttribs(n,n.selected&&"select")),n.delayedRendering?(e.setRadialReference(o.center).attr(s).attr(t),r.styledMode||e.attr(i).attr({"stroke-linejoin":"round"}),n.delayedRendering=!1):(e.setRadialReference(o.center),r.styledMode||vd(!0,a,i),vd(!0,a,s,t),e.animate(a)),e.attr({visibility:n.visible?"inherit":"hidden"}),e.addClass(n.getClassName(),!0)):e&&(n.graphic=e.destroy())}))}sortByAngle(t,e){t.sort((function(t,i){return void 0!==t.angle&&(i.angle-t.angle)*e}))}translate(t){bd(this,"translate"),this.generatePoints();let e,i,s,o,r,n,a,l=this.options,h=l.slicedOffset,d=md(l.startAngle,l.endAngle),c=this.startAngleRad=d.start,p=(this.endAngleRad=d.end)-c,u=this.points,g=l.ignoreHiddenPoint,m=u.length,f=0;for(t||(this.center=t=this.getCenter()),n=0;n1.5*Math.PI?s-=2*Math.PI:s<-Math.PI/2&&(s+=2*Math.PI),a.slicedTranslation={translateX:Math.round(Math.cos(s)*h),translateY:Math.round(Math.sin(s)*h)},o=Math.cos(s)*t[2]/2,r=Math.sin(s)*t[2]/2,a.tooltipPos=[t[0]+.7*o,t[1]+.7*r],a.half=+(s<-Math.PI/2||s>Math.PI/2),a.angle=s}bd(this,"afterTranslate")}updateTotals(){let t,e,i=this.points,s=i.length,o=this.options.ignoreHiddenPoint,r=0;for(t=0;t0&&(e.visible||!o)?e.y/r*100:0,e.total=r}}Md.defaultOptions=vd(qn.defaultOptions,{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:"crookedLine",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.isNull?void 0:this.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}}}),yd(Md.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:Ah.prototype.drawTracker,getCenter:nd.getCenter,getSymbol:fd,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:Ah.prototype.pointAttribs,pointClass:gd,requireSorting:!1,searchPoint:fd,trackerGroups:["group","dataLabelsGroup"]}),fn.registerSeriesType("pie",Md);let{composed:kd,noop:Sd}=M,{distribute:Td}=Ce,{series:Ad}=fn,{arrayMax:Cd,clamp:Pd,defined:Ld,pick:Ed,pushUnique:Od,relativeLength:Dd}=_;!function(t){let e={radialDistributionY:function(t,e){return(e.dataLabelPosition?.top||0)+t.distributeBox.pos},radialDistributionX:function(t,e,i,s,o){let r=o.dataLabelPosition;return t.getX(i<(r?.top||0)+2||i>(r?.bottom||0)-2?s:i,e.half,e,o)},justify:function(t,e,i,s){return s[0]+(t.half?-1:1)*(i+(e.dataLabelPosition?.distance||0))},alignToPlotEdges:function(t,e,i,s){let o=t.getBBox().width;return e?o+s:i-o-s},alignToConnectors:function(t,e,i,s){let o,r=0;return t.forEach((function(t){(o=t.dataLabel.getBBox().width)>r&&(r=o)})),e?r+s:i-r-s}};function i(t,e){let i=Math.PI/2,{start:s=0,end:o=0}=t.shapeArgs||{},r=t.angle||0;e>0&&si&&r>i/2&&r<1.5*i&&(r=r<=i?Math.max(i/2,(s+i)/2):Math.min(1.5*i,(i+o)/2));let{center:n,options:a}=this,l=n[2]/2,h=Math.cos(r),d=Math.sin(r),c=n[0]+h*l,p=n[1]+d*l,u=Math.min((a.slicedOffset||0)+(a.borderWidth||0),e/5);return{natural:{x:c+h*e,y:p+d*e},computed:{},alignment:e<0?"center":t.half?"right":"left",connectorPosition:{angle:r,breakAt:{x:c+h*u,y:p+d*u},touchingSliceAt:{x:c,y:p}},distance:e}}function s(){let t,e,i,s=this,o=s.points,r=s.chart,n=r.plotWidth,a=r.plotHeight,l=r.plotLeft,h=Math.round(r.chartWidth/3),d=s.center,c=d[2]/2,p=d[1],u=[[],[]],g=[0,0,0,0],m=s.dataLabelPositioners,f=0;s.visible&&s.hasDataLabels?.()&&(o.forEach((t=>{(t.dataLabels||[]).forEach((t=>{t.shortened&&(t.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),t.shortened=!1)}))})),Ad.prototype.drawDataLabels.apply(s),o.forEach((t=>{(t.dataLabels||[]).forEach(((e,i)=>{let s=d[2]/2,o=e.options,r=Dd(o?.distance||0,s);0===i&&u[t.half].push(t),!Ld(o?.style?.width)&&e.getBBox().width>h&&(e.css({width:Math.round(.7*h)+"px"}),e.shortened=!0),e.dataLabelPosition=this.getDataLabelPosition(t,r),f=Math.max(f,r)}))})),u.forEach(((t,o)=>{let h,u,x,y=t.length,b=[],v=0;y&&(s.sortByAngle(t,o-.5),f>0&&(h=Math.max(0,p-c-f),u=Math.min(p+c+f,r.plotHeight),t.forEach((t=>{(t.dataLabels||[]).forEach((e=>{let i=e.dataLabelPosition;i&&i.distance>0&&(i.top=Math.max(0,p-c-i.distance),i.bottom=Math.min(p+c+i.distance,r.plotHeight),v=e.getBBox().height||21,e.lineHeight=r.renderer.fontMetrics(e.text||e).h+2*e.padding,t.distributeBox={target:(e.dataLabelPosition?.natural.y||0)-i.top+e.lineHeight/2,size:v,rank:t.y},b.push(t.distributeBox))}))})),Td(b,x=u+v-h,x/5)),t.forEach((r=>{(r.dataLabels||[]).forEach((h=>{let p=h.options||{},u=r.distributeBox,f=h.dataLabelPosition,x=f?.natural.y||0,y=p.connectorPadding||0,v=h.lineHeight||21,w=(v-h.getBBox().height)/2,M=0,k=x,S="inherit";if(f){if(b&&Ld(u)&&f.distance>0&&(void 0===u.pos?S="hidden":(i=u.size,k=m.radialDistributionY(r,h))),p.justify)M=m.justify(r,h,c,d);else switch(p.alignTo){case"connectors":M=m.alignToConnectors(t,o,n,l);break;case"plotEdges":M=m.alignToPlotEdges(h,o,n,l);break;default:M=m.radialDistributionX(s,r,k-w,x,h)}if(f.attribs={visibility:S,align:f.alignment},f.posAttribs={x:M+(p.x||0)+({left:y,right:-y}[f.alignment]||0),y:k+(p.y||0)-v/2},f.computed.x=M,f.computed.y=k-w,Ed(p.crop,!0)){let t;M-(e=h.getBBox().width)n-y&&0===o&&(t=Math.round(M+e-n+y),g[1]=Math.max(t,g[1])),k-i/2<0?g[0]=Math.max(Math.round(i/2-k),g[0]):k+i/2>a&&(g[2]=Math.max(Math.round(k+i/2-a),g[2])),f.sideOverflow=t}}}))})))})),(0===Cd(g)||this.verifyDataLabelOverflow(g))&&(this.placeDataLabels(),this.points.forEach((e=>{(e.dataLabels||[]).forEach((i=>{let{connectorColor:o,connectorWidth:n=1}=i.options||{},a=i.dataLabelPosition;if(n){let l;t=i.connector,a&&a.distance>0?(l=!t,t||(i.connector=t=r.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+e.colorIndex+(e.className?" "+e.className:"")).add(s.dataLabelsGroup)),r.styledMode||t.attr({"stroke-width":n,stroke:o||e.color||"#666666"}),t[l?"attr":"animate"]({d:e.getConnectorPath(i)}),t.attr({visibility:a.attribs?.visibility})):t&&(i.connector=t.destroy())}}))}))))}function o(){this.points.forEach((t=>{(t.dataLabels||[]).forEach((t=>{let e=t.dataLabelPosition;e?(e.sideOverflow&&(t.css({width:Math.max(t.getBBox().width-e.sideOverflow,0)+"px",textOverflow:t.options?.style?.textOverflow||"ellipsis"}),t.shortened=!0),t.attr(e.attribs),t[t.moved?"animate":"attr"](e.posAttribs),t.moved=!0):t&&t.attr({y:-9999})})),delete t.distributeBox}),this)}function r(t){let e=this.center,i=this.options,s=i.center,o=i.minSize||80,r=o,n=null!==i.size;return!n&&(null!==s[0]?r=Math.max(e[2]-Math.max(t[1],t[3]),o):(r=Math.max(e[2]-t[1]-t[3],o),e[0]+=(t[3]-t[1])/2),null!==s[1]?r=Pd(r,o,e[2]-Math.max(t[0],t[2])):(r=Pd(r,o,e[2]-t[0]-t[2]),e[1]+=(t[0]-t[2])/2),r(t.x+=e.x,t.y+=e.y,t)),{x:0,y:0});return{x:e.x/t.length,y:e.y/t.length}},t.getDistanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},t.getAngleBetweenPoints=function(t,e){return Math.atan2(e.x-t.x,e.y-t.y)},t.pointInPolygon=function({x:t,y:e},i){let s,o,r=i.length,n=!1;for(s=0,o=r-1;se!=h>e&&t<(l-r)*(e-a)/(h-a)+r&&(n=!n)}return n}}(y||(y={}));let{pointInPolygon:zd}=y,{addEvent:Bd,getAlignFactor:Nd,fireEvent:Rd,objectEach:jd,pick:Wd}=_;function Gd(t){let e,i,s,o,r,n=t.length,a=(t,e)=>!(e.x>=t.x+t.width||e.x+e.width<=t.x||e.y>=t.y+t.height||e.y+e.height<=t.y),l=(t,e)=>{for(let i of t)if(zd({x:i[0],y:i[1]},e))return!0;return!1},h=!1;for(let i=0;i(e.labelrank||0)-(t.labelrank||0)));for(let e=0;e{jd(t,(t=>{t.label&&e.push(t.label)}))}));for(let i of t.series||[])if(i.visible&&i.hasDataLabels?.()){let s=i=>{for(let s of i)s.visible&&(s.dataLabels||[]).forEach((i=>{let o=i.options||{};i.labelrank=Wd(o.labelrank,s.labelrank,s.shapeArgs?.height),o.allowOverlap??Number(o.distance)>0?(i.oldOpacity=i.opacity,i.newOpacity=1,Fd(i,t)):e.push(i)}))};s(i.nodes||[]),s(i.points)}this.hideOverlappingLabels(e)}let Hd={compose:function(t){let e=t.prototype;e.hideOverlappingLabels||(e.hideOverlappingLabels=Gd,Bd(t,"render",Xd))}},{defaultOptions:Ud}=bt,{noop:Vd}=M,{addEvent:Yd,extend:_d,isObject:Zd,merge:$d,relativeLength:qd}=_,Kd={radius:0,scope:"stack",where:void 0},Jd=Vd,Qd=Vd;function tc(t,e,i,s,o={}){let r=Jd(t,e,i,s,o),{innerR:n=0,r:a=i,start:l=0,end:h=0}=o;if(o.open||!o.borderRadius)return r;let d=h-l,c=Math.sin(d/2),p=Math.max(Math.min(qd(o.borderRadius||0,a-n),(a-n)/2,a*c/(1+c)),0),u=Math.min(p,d/Math.PI*2*n),g=r.length-1;for(;g--;)!function(t,e,i){let s,o,r,n=t[e],a=t[e+1];if("Z"===a[0]&&(a=t[0]),"M"!==n[0]&&"L"!==n[0]||"A"!==a[0]?"A"===n[0]&&("M"===a[0]||"L"===a[0])&&(s=a,o=n):(s=n,o=a,r=!0),s&&o&&o.params){let n=o[1],a=o[5],l=o.params,{start:h,end:d,cx:c,cy:p}=l,u=a?n-i:n+i,g=u?Math.asin(i/u):0,m=a?g:-g,f=Math.cos(g)*u;r?(l.start=h+m,s[1]=c+f*Math.cos(h),s[2]=p+f*Math.sin(h),t.splice(e+1,0,["A",i,i,0,0,1,c+n*Math.cos(l.start),p+n*Math.sin(l.start)])):(l.end=d-m,o[6]=c+n*Math.cos(l.end),o[7]=p+n*Math.sin(l.end),t.splice(e+1,0,["A",i,i,0,0,1,c+f*Math.cos(d),p+f*Math.sin(d)])),o[4]=Math.abs(l.end-l.start)1?u:p);return r}function ec(){if(this.options.borderRadius&&(!this.chart.is3d||!this.chart.is3d())){let{options:t,yAxis:e}=this,i="percent"===t.stacking,s=Ud.plotOptions?.[this.type]?.borderRadius,o=ic(t.borderRadius,Zd(s)?s:{}),r=e.options.reversed;for(let s of this.points){let{shapeArgs:n}=s;if("roundedRect"===s.shapeType&&n){let{width:a=0,height:l=0,y:h=0}=n,d=h,c=l;if("stack"===o.scope&&s.stackTotal){let o=e.translate(i?100:s.stackTotal,!1,!0,!1,!0),r=e.translate(t.threshold||0,!1,!0,!1,!0),n=this.crispCol(0,Math.min(o,r),0,Math.abs(o-r));d=n.y,c=n.height}let p=(s.negative?-1:1)*(r?-1:1)==-1,u=o.where;!u&&this.is("waterfall")&&Math.abs((s.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(u="all"),u||(u="end");let g=Math.min(qd(o.radius,a),a/2,"all"===u?l/2:1/0)||0;"end"===u&&(p&&(d-=g),c+=g),_d(n,{brBoxHeight:c,brBoxY:d,r:g})}}}}function ic(t,e){return Zd(t)||(t={radius:t||0}),$d(Kd,e,t)}function sc(){let t=ic(this.options.borderRadius);for(let e of this.points){let i=e.shapeArgs;i&&(i.borderRadius=qd(t.radius,(i.r||0)-(i.innerR||0)))}}function oc(t,e,i,s,o={}){let r=Qd(t,e,i,s,o),{r:n=0,brBoxHeight:a=s,brBoxY:l=e}=o,h=e-l,d=l+a-(e+s),c=h-n>-.1?0:n,p=d-n>-.1?0:n,u=Math.max(c&&h,0),g=Math.max(p&&d,0),m=[t+c,e],f=[t+i-c,e],x=[t+i,e+c],y=[t+i,e+s-p],b=[t+i-p,e+s],v=[t+p,e+s],w=[t,e+s-p],M=[t,e+c],k=(t,e)=>Math.sqrt(Math.pow(t,2)-Math.pow(e,2));if(u){let t=k(c,c-u);m[0]-=t,f[0]+=t,x[1]=M[1]=e+c-u}if(s=hc(i.minWidth,0)&&this.chartHeight>=hc(i.minHeight,0)}).call(this)&&e.push(t._id)}function i(t,e){let i,s=this.options.responsive,o=this.currentResponsive,r=[];!e&&s&&s.rules&&s.rules.forEach((t=>{void 0===t._id&&(t._id=dc()),this.matchResponsiveRule(t,r)}),this);let n=lc(...r.map((t=>ac(s?.rules||[],(e=>e._id===t)))).map((t=>t?.chartOptions)));n.isResponsiveOptions=!0,r=r.toString()||void 0;let a=o?.ruleIds;r===a||(o&&(this.currentResponsive=void 0,this.updatingResponsive=!0,this.update(o.undoOptions,t,!0),this.updatingResponsive=!1),r?((i=rc(n,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:r,mergedOptions:n,undoOptions:i},this.updatingResponsive||this.update(n,t,!0)):this.currentResponsive=void 0)}t.compose=function(t){let s=t.prototype;return s.matchResponsiveRule||nc(s,{matchResponsiveRule:e,setResponsive:i}),t}}(b||(b={}));let cc=b;M.AST=oe,M.Axis=vo,M.Chart=rl,M.Color=Pt,M.DataLabel=Gh,M.DataTableCore=an,M.Fx=It,M.HTMLElement=Ms,M.Legend=ba,M.LegendSymbol=cn,M.OverlappingDataLabels=M.OverlappingDataLabels||Hd,M.PlotLineOrBand=Uo,M.Point=Br,M.Pointer=tn,M.RendererRegistry=Me,M.Series=qn,M.SeriesRegistry=fn,M.StackItem=Tl,M.SVGElement=ai,M.SVGRenderer=ls,M.Templating=we,M.Tick=Xs,M.Time=ut,M.Tooltip=mr,M.animate=Ut.animate,M.animObject=Ut.animObject,M.chart=rl.chart,M.color=Pt.parse,M.dateFormat=we.dateFormat,M.defaultOptions=bt.defaultOptions,M.distribute=Ce.distribute,M.format=we.format,M.getDeferredAnimation=Ut.getDeferredAnimation,M.getOptions=bt.getOptions,M.numberFormat=we.numberFormat,M.seriesType=fn.seriesType,M.setAnimation=Ut.setAnimation,M.setOptions=bt.setOptions,M.stop=Ut.stop,M.time=bt.defaultTime,M.timers=It.timers,function(t,e,i){let s=t.types.pie;if(!e.symbolCustomAttribs.includes("borderRadius")){let o=i.prototype.symbols;Yd(t,"afterColumnTranslate",ec,{order:9}),Yd(s,"afterTranslate",sc),e.symbolCustomAttribs.push("borderRadius","brBoxHeight","brBoxY"),Jd=o.arc,Qd=o.roundedRect,o.arc=tc,o.roundedRect=oc}}(M.Series,M.SVGElement,M.SVGRenderer),Vh.compose(M.Series.types.column),Gh.compose(M.Series),To.compose(M.Axis),Ms.compose(M.SVGRenderer),ba.compose(M.Chart),Lo.compose(M.Axis),Hd.compose(M.Chart),Id.compose(M.Series.types.pie),Uo.compose(M.Chart,M.Axis),tn.compose(M.Chart),cc.compose(M.Chart),xl.compose(M.Axis,M.Chart,M.Series),Vl.compose(M.Axis,M.Chart,M.Series),mr.compose(M.Pointer),_.extend(M,_);let pc=M;return w.default})(),e._Highcharts=i(),t.exports=e._Highcharts},60195:function(t){var e,i;e="undefined"==typeof window?this:window,i=(t,e)=>(()=>{"use strict";let i,s;var o,r={620:t=>{t.exports=e},944:e=>{e.exports=t}},n={};function a(t){var e=n[t];if(void 0!==e)return e.exports;var i=n[t]={exports:{}};return r[t](i,i.exports,a),i.exports}a.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return a.d(e,{a:e}),e},a.d=(t,e)=>{for(var i in e)a.o(e,i)&&!a.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},a.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var l={};a.d(l,{default:()=>jt});var h=a(944),d=a.n(h);let c=["area","areaspline","arearange","column","columnrange","bar","line","scatter","heatmap","bubble","treemap"],p={};c.forEach((t=>{p[t]=!0}));let{composed:u}=d(),{addEvent:g,pick:m,pushUnique:f}=d();function x(t){let e=t.series,i=t.boost=t.boost||{},s=t.options.boost||{},o=m(s.seriesThreshold,50);if(e.length>=o)return!0;if(1===e.length)return!1;let r=s.allowForce;if(void 0===r)for(let e of(r=!0,t.xAxis))if(m(e.min,-1/0)>m(e.dataMin,-1/0)||m(e.max,1/0){if(null!=t&&void 0!==t.length&&t.length>0)return e=t.length,!0})),e}(t.getColumn("x",!0),n.data,t.points)>=(n.boostThreshold||Number.MAX_VALUE)&&++l);return i.forceChartBoost=r&&(a===e.length&&l===a||l>5),i.forceChartBoost}function y(t){function e(){t.boost&&t.boost.wgl&&x(t)&&t.boost.wgl.render(t)}g(t,"predraw",(function(){t.boost=t.boost||{},t.boost.forceChartBoost=void 0,t.boosted=!1,t.axes.some((t=>t.isPanning))||t.boost.clear?.(),t.boost.canvas&&t.boost.wgl&&x(t)&&t.boost.wgl.allocateBuffer(t),t.boost.markerGroup&&t.xAxis&&t.xAxis.length>0&&t.yAxis&&t.yAxis.length>0&&t.boost.markerGroup.translate(t.xAxis[0].pos,t.yAxis[0].pos)})),g(t,"load",e,{order:-1}),g(t,"redraw",e);let i=-1,s=-1;g(t.pointer,"afterGetHoverData",(e=>{let o=e.hoverPoint?.series;if(t.boost=t.boost||{},t.boost.markerGroup&&o){let e=t.inverted?o.yAxis:o.xAxis,r=t.inverted?o.xAxis:o.yAxis;(e&&e.pos!==i||r&&r.pos!==s)&&(t.series.forEach((t=>{t.halo?.hide()})),t.boost.markerGroup.translate(e.pos,r.pos),i=e.pos,s=r.pos)}}))}let b={compose:function(t,e){return e&&f(u,"Boost.Chart")&&t.prototype.callbacks.push(y),t},getBoostClipRect:function(t,e){let i=t.navigator,s={x:t.plotLeft,y:t.plotTop,width:t.plotWidth,height:t.plotHeight};if(i&&t.inverted?(s.width+=i.top+i.height,i.opposite||(s.x=i.left)):i&&!t.inverted&&(s.height=i.top+i.height-t.plotTop),e.is){let{xAxis:i,yAxis:o}=e;if(s=t.getClipBox(e),t.inverted){let t=s.width;s.width=s.height,s.height=t,s.x=o.pos,s.y=i.pos}else s.x=i.pos,s.y=o.pos}if(e===t){let e=t.inverted?t.xAxis:t.yAxis;e.length<=1&&(s.y=Math.min(e[0].pos,s.y),s.height=e[0].pos-t.plotTop+e[0].len)}return s},isChartSeriesBoosting:x};var v=a(620),w=a.n(v);let M={area:"LINES",arearange:"LINES",areaspline:"LINES",column:"LINES",columnrange:"LINES",bar:"LINES",line:"LINE_STRIP",scatter:"POINTS",heatmap:"TRIANGLES",treemap:"TRIANGLES",bubble:"POINTS"},{clamp:k,error:S,pick:T}=d(),A=class{constructor(t){this.errors=[],this.uLocations={},this.gl=t,!t||this.createShader()}bind(){this.gl&&this.shaderProgram&&this.gl.useProgram(this.shaderProgram)}createShader(){let t=this.stringToProgram("#version 100\n#define LN10 2.302585092994046\nprecision highp float;\nattribute vec4 aVertexPosition;\nattribute vec4 aColor;\nvarying highp vec2 position;\nvarying highp vec4 vColor;\nuniform mat4 uPMatrix;\nuniform float pSize;\nuniform float translatedThreshold;\nuniform bool hasThreshold;\nuniform bool skipTranslation;\nuniform float xAxisTrans;\nuniform float xAxisMin;\nuniform float xAxisMinPad;\nuniform float xAxisPointRange;\nuniform float xAxisLen;\nuniform bool xAxisPostTranslate;\nuniform float xAxisOrdinalSlope;\nuniform float xAxisOrdinalOffset;\nuniform float xAxisPos;\nuniform bool xAxisCVSCoord;\nuniform bool xAxisIsLog;\nuniform bool xAxisReversed;\nuniform float yAxisTrans;\nuniform float yAxisMin;\nuniform float yAxisMinPad;\nuniform float yAxisPointRange;\nuniform float yAxisLen;\nuniform bool yAxisPostTranslate;\nuniform float yAxisOrdinalSlope;\nuniform float yAxisOrdinalOffset;\nuniform float yAxisPos;\nuniform bool yAxisCVSCoord;\nuniform bool yAxisIsLog;\nuniform bool yAxisReversed;\nuniform bool isBubble;\nuniform bool bubbleSizeByArea;\nuniform float bubbleZMin;\nuniform float bubbleZMax;\nuniform float bubbleZThreshold;\nuniform float bubbleMinSize;\nuniform float bubbleMaxSize;\nuniform bool bubbleSizeAbs;\nuniform bool isInverted;\nfloat bubbleRadius(){\nfloat value = aVertexPosition.w;\nfloat zMax = bubbleZMax;\nfloat zMin = bubbleZMin;\nfloat radius = 0.0;\nfloat pos = 0.0;\nfloat zRange = zMax - zMin;\nif (bubbleSizeAbs){\nvalue = value - bubbleZThreshold;\nzMax = max(zMax - bubbleZThreshold, zMin - bubbleZThreshold);\nzMin = 0.0;\n}\nif (value < zMin){\nradius = bubbleZMin / 2.0 - 1.0;\n} else {\npos = zRange > 0.0 ? (value - zMin) / zRange : 0.5;\nif (bubbleSizeByArea && pos > 0.0){\npos = sqrt(pos);\n}\nradius = ceil(bubbleMinSize + pos * (bubbleMaxSize - bubbleMinSize)) / 2.0;\n}\nreturn radius * 2.0;\n}\nfloat translate(float val,\nfloat pointPlacement,\nfloat localA,\nfloat localMin,\nfloat minPixelPadding,\nfloat pointRange,\nfloat len,\nbool cvsCoord,\nbool isLog,\nbool reversed\n){\nfloat sign = 1.0;\nfloat cvsOffset = 0.0;\nif (cvsCoord) {\nsign *= -1.0;\ncvsOffset = len;\n}\nif (isLog) {\nval = log(val) / LN10;\n}\nif (reversed) {\nsign *= -1.0;\ncvsOffset -= sign * len;\n}\nreturn sign * (val - localMin) * localA + cvsOffset + \n(sign * minPixelPadding);\n}\nfloat xToPixels(float value) {\nif (skipTranslation){\nreturn value;// + xAxisPos;\n}\nreturn translate(value, 0.0, xAxisTrans, xAxisMin, xAxisMinPad, xAxisPointRange, xAxisLen, xAxisCVSCoord, xAxisIsLog, xAxisReversed);// + xAxisPos;\n}\nfloat yToPixels(float value, float checkTreshold) {\nfloat v;\nif (skipTranslation){\nv = value;// + yAxisPos;\n} else {\nv = translate(value, 0.0, yAxisTrans, yAxisMin, yAxisMinPad, yAxisPointRange, yAxisLen, yAxisCVSCoord, yAxisIsLog, yAxisReversed);// + yAxisPos;\nif (v > yAxisLen) {\nv = yAxisLen;\n}\n}\nif (checkTreshold > 0.0 && hasThreshold) {\nv = min(v, translatedThreshold);\n}\nreturn v;\n}\nvoid main(void) {\nif (isBubble){\ngl_PointSize = bubbleRadius();\n} else {\ngl_PointSize = pSize;\n}\nvColor = aColor;\nif (skipTranslation && isInverted) {\ngl_Position = uPMatrix * vec4(aVertexPosition.y + yAxisPos, aVertexPosition.x + xAxisPos, 0.0, 1.0);\n} else if (isInverted) {\ngl_Position = uPMatrix * vec4(yToPixels(aVertexPosition.y, aVertexPosition.z) + yAxisPos, xToPixels(aVertexPosition.x) + xAxisPos, 0.0, 1.0);\n} else {\ngl_Position = uPMatrix * vec4(xToPixels(aVertexPosition.x) + xAxisPos, yToPixels(aVertexPosition.y, aVertexPosition.z) + yAxisPos, 0.0, 1.0);\n}\n}","vertex"),e=this.stringToProgram("precision highp float;\nuniform vec4 fillColor;\nvarying highp vec2 position;\nvarying highp vec4 vColor;\nuniform sampler2D uSampler;\nuniform bool isCircle;\nuniform bool hasColor;\nvoid main(void) {\nvec4 col = fillColor;\nvec4 tcol = texture2D(uSampler, gl_PointCoord.st);\nif (hasColor) {\ncol = vColor;\n}\nif (isCircle) {\ncol *= tcol;\nif (tcol.r < 0.0) {\ndiscard;\n} else {\ngl_FragColor = col;\n}\n} else {\ngl_FragColor = col;\n}\n}","fragment"),i=t=>this.gl.getUniformLocation(this.shaderProgram,t);return t&&e?(this.shaderProgram=this.gl.createProgram(),this.gl.attachShader(this.shaderProgram,t),this.gl.attachShader(this.shaderProgram,e),this.gl.linkProgram(this.shaderProgram),this.gl.getProgramParameter(this.shaderProgram,this.gl.LINK_STATUS)?(this.gl.useProgram(this.shaderProgram),this.gl.bindAttribLocation(this.shaderProgram,0,"aVertexPosition"),this.pUniform=i("uPMatrix"),this.psUniform=i("pSize"),this.fcUniform=i("fillColor"),this.isBubbleUniform=i("isBubble"),this.bubbleSizeAbsUniform=i("bubbleSizeAbs"),this.bubbleSizeAreaUniform=i("bubbleSizeByArea"),this.uSamplerUniform=i("uSampler"),this.skipTranslationUniform=i("skipTranslation"),this.isCircleUniform=i("isCircle"),this.isInverted=i("isInverted"),!0):(this.errors.push(this.gl.getProgramInfoLog(this.shaderProgram)),this.handleErrors(),this.shaderProgram=!1,!1)):(this.shaderProgram=!1,this.handleErrors(),!1)}handleErrors(){this.errors.length&&S("[highcharts boost] shader error - "+this.errors.join("\n"))}stringToProgram(t,e){let i=this.gl.createShader("vertex"===e?this.gl.VERTEX_SHADER:this.gl.FRAGMENT_SHADER);return this.gl.shaderSource(i,t),this.gl.compileShader(i),this.gl.getShaderParameter(i,this.gl.COMPILE_STATUS)?i:(this.errors.push("when compiling "+e+" shader:\n"+this.gl.getShaderInfoLog(i)),!1)}destroy(){this.gl&&this.shaderProgram&&(this.gl.deleteProgram(this.shaderProgram),this.shaderProgram=!1)}fillColorUniform(){return this.fcUniform}getProgram(){return this.shaderProgram}pointSizeUniform(){return this.psUniform}perspectiveUniform(){return this.pUniform}reset(){this.gl&&this.shaderProgram&&(this.gl.uniform1i(this.isBubbleUniform,0),this.gl.uniform1i(this.isCircleUniform,0))}setBubbleUniforms(t,e,i,s=1){let o=t.options,r=Number.MAX_VALUE,n=-Number.MAX_VALUE;if(this.gl&&this.shaderProgram&&t.is("bubble")){let a=t.getPxExtremes();r=T(o.zMin,k(e,!1===o.displayNegative?o.zThreshold:-Number.MAX_VALUE,r)),n=T(o.zMax,Math.max(n,i)),this.gl.uniform1i(this.isBubbleUniform,1),this.gl.uniform1i(this.isCircleUniform,1),this.gl.uniform1i(this.bubbleSizeAreaUniform,"width"!==t.options.sizeBy),this.gl.uniform1i(this.bubbleSizeAbsUniform,t.options.sizeByAbsoluteValue),this.setUniform("bubbleMinSize",a.minPxSize*s),this.setUniform("bubbleMaxSize",a.maxPxSize*s),this.setUniform("bubbleZMin",r),this.setUniform("bubbleZMax",n),this.setUniform("bubbleZThreshold",t.options.zThreshold)}}setColor(t){this.gl&&this.shaderProgram&&this.gl.uniform4f(this.fcUniform,t[0]/255,t[1]/255,t[2]/255,t[3])}setDrawAsCircle(t){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.isCircleUniform,+!!t)}setInverted(t){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.isInverted,t)}setPMatrix(t){this.gl&&this.shaderProgram&&this.gl.uniformMatrix4fv(this.pUniform,!1,t)}setPointSize(t){this.gl&&this.shaderProgram&&this.gl.uniform1f(this.psUniform,t)}setSkipTranslation(t){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.skipTranslationUniform,+(!0===t))}setTexture(t){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.uSamplerUniform,t)}setUniform(t,e){if(this.gl&&this.shaderProgram){let i=this.uLocations[t]=this.uLocations[t]||this.gl.getUniformLocation(this.shaderProgram,t);this.gl.uniform1f(i,e)}}},C=class{constructor(t,e,i){this.buffer=!1,this.iterator=0,this.preAllocated=!1,this.vertAttribute=!1,this.components=i||2,this.dataComponents=i,this.gl=t,this.shader=e}allocate(t){this.iterator=-1,this.preAllocated=new Float32Array(4*t)}bind(){if(!this.buffer)return!1;this.gl.vertexAttribPointer(this.vertAttribute,this.components,this.gl.FLOAT,!1,0,0)}build(t,e,i){let s;return this.data=t||[],this.data&&0!==this.data.length||this.preAllocated?(this.components=i||this.components,this.buffer&&this.gl.deleteBuffer(this.buffer),this.preAllocated||(s=new Float32Array(this.data)),this.buffer=this.gl.createBuffer(),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.buffer),this.gl.bufferData(this.gl.ARRAY_BUFFER,this.preAllocated||s,this.gl.STATIC_DRAW),this.vertAttribute=this.gl.getAttribLocation(this.shader.getProgram(),e),this.gl.enableVertexAttribArray(this.vertAttribute),s=!1,!0):(this.destroy(),!1)}destroy(){this.buffer&&(this.gl.deleteBuffer(this.buffer),this.buffer=!1,this.vertAttribute=!1),this.iterator=0,this.components=this.dataComponents||2,this.data=[]}push(t,e,i,s){this.preAllocated&&(this.preAllocated[++this.iterator]=t,this.preAllocated[++this.iterator]=e,this.preAllocated[++this.iterator]=i,this.preAllocated[++this.iterator]=s)}render(t,e,i){let s=this.preAllocated?this.preAllocated.length:this.data.length;return!(!this.buffer||!s||((!t||t>s||t<0)&&(t=0),(!e||e>s)&&(e=s),t>=e||(i=i||"POINTS",this.gl.drawArrays(this.gl[i],t/this.components,(e-t)/this.components),0)))}},{parse:P}=w(),{doc:L,win:E}=d(),{isNumber:O,isObject:D,merge:I,objectEach:z,pick:B}=d(),N={column:!0,columnrange:!0,bar:!0,area:!0,areaspline:!0,arearange:!0},R={scatter:!0,bubble:!0},j=["webgl","experimental-webgl","moz-webgl","webkit-3d"];class W{static orthoMatrix(t,e){return[2/t,0,0,0,0,-2/e,0,0,0,0,-2,0,-1,1,-1,1]}static seriesPointCount(t){let e,i,s;return t.boosted?(e=!!t.options.stacking,i=(t.getColumn("x").length?t.getColumn("x"):void 0)||t.options.xData||t.getColumn("x",!0),s=(e?t.data:i||t.options.data).length,"treemap"===t.type?s*=12:"heatmap"===t.type?s*=6:N[t.type]&&(s*=2),s):0}constructor(t){this.data=[],this.height=0,this.isInited=!1,this.markerData=[],this.series=[],this.textureHandles={},this.width=0,this.postRenderCallback=t,this.settings={pointSize:1,lineWidth:1,fillColor:"#AA00AA",useAlpha:!0,usePreallocated:!1,useGPUTranslations:!1,debug:{timeRendering:!1,timeSeriesProcessing:!1,timeSetup:!1,timeBufferCopy:!1,timeKDTree:!1,showSkipSummary:!1}}}getPixelRatio(){return this.settings.pixelRatio||E.devicePixelRatio||1}setOptions(t){"pixelRatio"in t||(t.pixelRatio=1),I(!0,this.settings,t)}allocateBuffer(t){let e=this.vbuffer,i=0;this.settings.usePreallocated&&(t.series.forEach((t=>{t.boosted&&(i+=W.seriesPointCount(t))})),e&&e.allocate(i))}allocateBufferForSingleSeries(t){let e=this.vbuffer,i=0;this.settings.usePreallocated&&(t.boosted&&(i=W.seriesPointCount(t)),e&&e.allocate(i))}clear(){let t=this.gl;t&&t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT)}pushSeriesData(t,e){let i,s,o,r,n,a,l,h,d=this.data,c=this.settings,p=this.vbuffer,u=t.pointArrayMap&&"low,high"===t.pointArrayMap.join(","),{chart:g,options:m,sorted:f,xAxis:x,yAxis:y}=t,b=!!m.stacking,v=m.data,w=t.xAxis.getExtremes(),M=w.min-(t.xAxis.minPointOffset||0),k=w.max+(t.xAxis.minPointOffset||0),S=t.yAxis.getExtremes(),T=S.min-(t.yAxis.minPointOffset||0),A=S.max+(t.yAxis.minPointOffset||0),C=(t.getColumn("x").length?t.getColumn("x"):void 0)||m.xData||t.getColumn("x",!0),L=(t.getColumn("y").length?t.getColumn("y"):void 0)||m.yData||t.getColumn("y",!0),E=(t.getColumn("z").length?t.getColumn("z"):void 0)||m.zData||t.getColumn("z",!0),O=!C||0===C.length,I=m.connectNulls,z=t.points||!1,B=b?t.data:C||v,R={x:Number.MAX_VALUE,y:0},j={x:-Number.MAX_VALUE,y:0},W=void 0===g.index,G=N[t.type],F=m.zoneAxis||"y",X=m.zones||!1,H=m.threshold,U=this.getPixelRatio(),V=t.chart.plotWidth,Y=!1,_=!1,Z=0,$=!1,q=-1,K=!1,J=!1,Q=!1,tt=!1,et=!1,it=!1,st=!0,ot=!0,rt=!1,nt=!1,at=0;if(m.boostData&&m.boostData.length>0)return;m.gapSize&&(nt="value"!==m.gapUnit?m.gapSize*t.closestPointRange:m.gapSize),X&&(h=[],X.forEach(((t,e)=>{if(t.color){let i=P(t.color).rgba;i[0]/=255,i[1]/=255,i[2]/=255,h[e]=i,rt||void 0!==t.value||(rt=i)}})),rt||(rt=P(t.pointAttribs&&t.pointAttribs().fill||t.color).rgba,rt[0]/=255,rt[1]/=255,rt[2]/=255)),g.inverted&&(V=t.chart.plotHeight),t.closestPointRangePx=Number.MAX_VALUE;let lt=t=>{t&&(e.colorData.push(t[0]),e.colorData.push(t[1]),e.colorData.push(t[2]),e.colorData.push(t[3]))},ht=(t,i,s,o=1,r)=>{lt(r),1!==U&&(!c.useGPUTranslations||e.skipTranslation)&&(t*=U,i*=U,o*=U),c.usePreallocated&&p?(p.push(t,i,+!!s,o),at+=4):(d.push(t),d.push(i),d.push(s?U:0),d.push(o))},dt=()=>{e.segments.length&&(e.segments[e.segments.length-1].to=d.length||at)},ct=()=>{(!e.segments.length||e.segments[e.segments.length-1].from!==(d.length||at))&&(dt(),e.segments.push({from:d.length||at}))},pt=(t,e,i,s,o)=>{lt(o),ht(t+i,e),lt(o),ht(t,e),lt(o),ht(t,e+s),lt(o),ht(t,e+s),lt(o),ht(t+i,e+s),lt(o),ht(t+i,e)};if(ct(),z&&z.length>0)return e.skipTranslation=!0,e.drawMode="TRIANGLES",z[0].node&&z[0].node.levelDynamic&&z.sort(((t,e)=>{if(t.node){if(t.node.levelDynamic>e.node.levelDynamic)return 1;if(t.node.levelDynamic{let i,o,r=e.plotY;if(void 0!==r&&!isNaN(r)&&null!==e.y&&e.shapeArgs){let{x:r=0,y:n=0,width:a=0,height:l=0}=e.shapeArgs;i=(o=g.styledMode?e.series.colorAttribs(e):o=e.series.pointAttribs(e))["stroke-width"]||0,et=P(o.fill).rgba,et[0]/=255,et[1]/=255,et[2]/=255,t.is("treemap")&&(i=i||1,s=P(o.stroke).rgba,s[0]/=255,s[1]/=255,s[2]/=255,pt(r,n,a,l,s),i/=2),t.is("heatmap")&&g.inverted&&(r=x.len-r,n=y.len-n,a=-a,l=-l),pt(r+i,n+i,a-2*i,l-2*i,et)}})),void dt();for(;q=3&&(a=n[2],n[2]>e.zMax&&(e.zMax=n[2]),n[2]e.zMax&&(e.zMax=E[q]),E[q]=M&&J<=k&&(Q=!0),K&&K>=M&&K<=k&&(tt=!0),u?(O&&(r=n.slice(1,3)),l=t.getColumn("low",!0)?.[q],r=t.getColumn("high",!0)?.[q]||0):b&&(o=n.x,l=(r=n.stackY)-n.y),null!=T&&null!=A&&(st=r>=T&&r<=A),(f||st)&&(o>k&&j.xM&&(R.x=o,R.y=r),null!==r||!I))if(null===r||!st&&B.length>1&&!Q&&!tt)ct();else if((f&&(J>=M||o>=M)&&(K<=k||o<=k)||!f&&o>=M&&o<=k)&&(it=!0),it||Q||tt){if(nt&&o-K>nt&&ct(),X){let t;X.some(((e,i)=>{let s=X[i-1];return"x"===F?void 0!==e.value&&o<=e.value&&(h[i]&&(!s||o>=s.value)&&(t=h[i]),!0):void 0!==e.value&&r<=e.value&&(h[i]&&(!s||r>=s.value)&&(t=h[i]),!0)})),et=t||rt||et}if(c.useGPUTranslations||(e.skipTranslation=!0,o=x.toPixels(o,!0),r=y.toPixels(r,!0),!(o>V)||"POINTS"!==e.drawMode)){if(e.hasMarkers&&it&&!1!==Y&&(t.closestPointRangePx=Math.min(t.closestPointRangePx,Math.abs(o-Y))),!c.useGPUTranslations&&!c.usePreallocated&&Y&&1>Math.abs(o-Y)&&_&&1>Math.abs(r-_)){c.debug.showSkipSummary&&++Z;continue}G&&(i=l||0,(!1===l||void 0===l)&&(i=r<0?r:0),(u||b)&&!y.logarithmic||(i=Math.max(null===H?T:H,T)),c.useGPUTranslations||(i=y.toPixels(i,!0)),ht(o,i,0,0,et)),m.step&&!ot&&ht(o,_,0,2,et),ht(o,r,0,"bubble"===t.type?a||1:2,et),Y=o,_=r,$=!0,ot=!1}}}else ct()}c.debug.showSkipSummary&&console.log("skipped points:",Z);let ut=(t,i)=>{c.useGPUTranslations||(e.skipTranslation=!0,t.x=x.toPixels(t.x,!0),t.y=y.toPixels(t.y,!0)),i?this.data=[t.x,t.y,0,2].concat(this.data):ht(t.x,t.y,0,2)};!$&&!1!==I&&"line_strip"===t.drawMode&&(R.x-Number.MAX_VALUE&&ut(j)),dt()}pushSeries(t){let e=this.markerData,i=this.series,s=this.settings;i.length>0&&i[i.length-1].hasMarkers&&(i[i.length-1].markerTo=e.length),s.debug.timeSeriesProcessing&&console.time("building "+t.type+" series");let o={segments:[],markerFrom:e.length,colorData:[],series:t,zMin:Number.MAX_VALUE,zMax:-Number.MAX_VALUE,hasMarkers:!!t.options.marker&&!1!==t.options.marker.enabled,showMarkers:!0,drawMode:M[t.type]||"LINE_STRIP"};t.index>=i.length?i.push(o):i[t.index]=o,this.pushSeriesData(t,o),s.debug.timeSeriesProcessing&&console.timeEnd("building "+t.type+" series")}flush(){let t=this.vbuffer;this.data=[],this.markerData=[],this.series=[],t&&t.destroy()}setXAxis(t){let e=this.shader;if(!e)return;let i=this.getPixelRatio();e.setUniform("xAxisTrans",t.transA*i),e.setUniform("xAxisMin",t.min),e.setUniform("xAxisMinPad",t.minPixelPadding*i),e.setUniform("xAxisPointRange",t.pointRange),e.setUniform("xAxisLen",t.len*i),e.setUniform("xAxisPos",t.pos*i),e.setUniform("xAxisCVSCoord",!t.horiz),e.setUniform("xAxisIsLog",!!t.logarithmic),e.setUniform("xAxisReversed",!!t.reversed)}setYAxis(t){let e=this.shader;if(!e)return;let i=this.getPixelRatio();e.setUniform("yAxisTrans",t.transA*i),e.setUniform("yAxisMin",t.min),e.setUniform("yAxisMinPad",t.minPixelPadding*i),e.setUniform("yAxisPointRange",t.pointRange),e.setUniform("yAxisLen",t.len*i),e.setUniform("yAxisPos",t.pos*i),e.setUniform("yAxisCVSCoord",!t.horiz),e.setUniform("yAxisIsLog",!!t.logarithmic),e.setUniform("yAxisReversed",!!t.reversed)}setThreshold(t,e){let i=this.shader;i&&(i.setUniform("hasThreshold",t),i.setUniform("translatedThreshold",e))}renderChart(t){let e=this.gl,i=this.settings,s=this.shader,o=this.vbuffer,r=this.getPixelRatio();if(!t)return!1;this.width=t.chartWidth*r,this.height=t.chartHeight*r;let n=this.height,a=this.width;if(!(e&&s&&a&&n))return!1;i.debug.timeRendering&&console.time("gl rendering"),e.canvas.width=a,e.canvas.height=n,s.bind(),e.viewport(0,0,a,n),s.setPMatrix(W.orthoMatrix(a,n)),i.lineWidth>1&&!d().isMS&&e.lineWidth(i.lineWidth),o&&(o.build(this.data,"aVertexPosition",4),o.bind()),s.setInverted(t.inverted),this.series.forEach(((n,a)=>{let l,h,d,c=n.series.options,p=c.marker,u=void 0!==c.lineWidth?c.lineWidth:1,g=c.threshold,m=O(g),f=n.series.yAxis.getThreshold(g),x=B(c.marker?c.marker.enabled:null,!!n.series.xAxis.isRadial||null,n.series.closestPointRangePx>2*((c.marker?c.marker.radius:10)||10)),y=this.textureHandles[p&&p.symbol||n.series.symbol]||this.textureHandles.circle,b=[];if(0!==n.segments.length&&n.segments[0].from!==n.segments[0].to&&(y.isReady&&(e.bindTexture(e.TEXTURE_2D,y.handle),s.setTexture(y.handle)),t.styledMode?n.series.markerGroup===n.series.chart.boost?.markerGroup?(delete n.series.markerGroup,n.series.markerGroup=n.series.plotGroup("markerGroup","markers","visible",1,t.seriesGroup).addClass("highcharts-tracker"),d=n.series.markerGroup.getStyle("fill"),n.series.markerGroup.destroy(),n.series.markerGroup=n.series.chart.boost?.markerGroup):d=n.series.markerGroup?.getStyle("fill"):(d="POINTS"===n.drawMode&&n.series.pointAttribs&&n.series.pointAttribs().fill||n.series.color,c.colorByPoint&&(d=n.series.chart.options.colors[a])),n.series.fillOpacity&&c.fillOpacity&&(d=new(w())(d).setOpacity(B(c.fillOpacity,1)).get()),b=P(d).rgba,i.useAlpha||(b[3]=1),"add"===c.boostBlending?(e.blendFunc(e.SRC_ALPHA,e.ONE),e.blendEquation(e.FUNC_ADD)):"mult"===c.boostBlending||"multiply"===c.boostBlending?e.blendFunc(e.DST_COLOR,e.ZERO):"darken"===c.boostBlending?(e.blendFunc(e.ONE,e.ONE),e.blendEquation(e.FUNC_MIN)):e.blendFuncSeparate(e.SRC_ALPHA,e.ONE_MINUS_SRC_ALPHA,e.ONE,e.ONE_MINUS_SRC_ALPHA),s.reset(),n.colorData.length>0?(s.setUniform("hasColor",1),(h=new C(e,s)).build(Array(n.segments[0].from).concat(n.colorData),"aColor",4),h.bind()):(s.setUniform("hasColor",0),e.disableVertexAttribArray(e.getAttribLocation(s.getProgram(),"aColor"))),s.setColor(b),this.setXAxis(n.series.xAxis),this.setYAxis(n.series.yAxis),this.setThreshold(m,f),"POINTS"===n.drawMode&&s.setPointSize(2*B(c.marker&&c.marker.radius,.5)*r),s.setSkipTranslation(n.skipTranslation),"bubble"===n.series.type&&s.setBubbleUniforms(n.series,n.zMin,n.zMax,r),s.setDrawAsCircle(R[n.series.type]||!1),o)){if(u>0||"LINE_STRIP"!==n.drawMode)for(l=0;l{this.render(t)}),1)}setSize(t,e){let i=this.shader;i&&(this.width!==t||this.height!==e)&&(this.width=t,this.height=e,i.bind(),i.setPMatrix(W.orthoMatrix(t,e)))}init(t,e){let i=this.settings;if(this.isInited=!1,!t)return!1;i.debug.timeSetup&&console.time("gl setup");for(let e=0;e{let i={isReady:!1,texture:L.createElement("canvas"),handle:s.createTexture()},o=i.texture.getContext("2d");this.textureHandles[t]=i,i.texture.width=512,i.texture.height=512,o.mozImageSmoothingEnabled=!1,o.webkitImageSmoothingEnabled=!1,o.msImageSmoothingEnabled=!1,o.imageSmoothingEnabled=!1,o.strokeStyle="rgba(255, 255, 255, 0)",o.fillStyle="#FFF",e(o);try{s.activeTexture(s.TEXTURE0),s.bindTexture(s.TEXTURE_2D,i.handle),s.texImage2D(s.TEXTURE_2D,0,s.RGBA,s.RGBA,s.UNSIGNED_BYTE,i.texture),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_S,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_T,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MAG_FILTER,s.LINEAR),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MIN_FILTER,s.LINEAR),s.bindTexture(s.TEXTURE_2D,null),i.isReady=!0}catch(t){}};return r("circle",(t=>{t.beginPath(),t.arc(256,256,256,0,2*Math.PI),t.stroke(),t.fill()})),r("square",(t=>{t.fillRect(0,0,512,512)})),r("diamond",(t=>{t.beginPath(),t.moveTo(256,0),t.lineTo(512,256),t.lineTo(256,512),t.lineTo(0,256),t.lineTo(256,0),t.fill()})),r("triangle",(t=>{t.beginPath(),t.moveTo(0,512),t.lineTo(256,0),t.lineTo(512,512),t.lineTo(0,512),t.fill()})),r("triangle-down",(t=>{t.beginPath(),t.moveTo(0,0),t.lineTo(256,512),t.lineTo(512,0),t.lineTo(0,0),t.fill()})),this.isInited=!0,i.debug.timeSetup&&console.timeEnd("gl setup"),!0}destroy(){let t=this.gl,e=this.shader,i=this.vbuffer;this.flush(),i&&i.destroy(),e&&e.destroy(),t&&(z(this.textureHandles,(e=>{e.handle&&t.deleteTexture(e.handle)})),t.canvas.width=1,t.canvas.height=1)}}!function(t){t.setLength=function(t,e,i){return Array.isArray(t)?(t.length=e,t):t[i?"subarray":"slice"](0,e)},t.splice=function(t,e,i,s,o=[]){if(Array.isArray(t))return Array.isArray(o)||(o=Array.from(o)),{removed:t.splice(e,i,...o),array:t};let r=Object.getPrototypeOf(t).constructor,n=t[s?"subarray":"slice"](e,e+i),a=new r(t.length-i+o.length);return a.set(t.subarray(0,e),0),a.set(o,e),a.set(t.subarray(e+i),e+o.length),{removed:n,array:a}}}(o||(o={}));let{setLength:G,splice:F}=o,{fireEvent:X,objectEach:H,uniqueKey:U}=d(),V=class{constructor(t={}){this.autoId=!t.id,this.columns={},this.id=t.id||U(),this.modified=this,this.rowCount=0,this.versionTag=U();let e=0;H(t.columns||{},((t,i)=>{this.columns[i]=t.slice(),e=Math.max(e,t.length)})),this.applyRowCount(e)}applyRowCount(t){this.rowCount=t,H(this.columns,((e,i)=>{e.length!==t&&(this.columns[i]=G(e,t))}))}deleteRows(t,e=1){if(e>0&&t{this.columns[o]=F(s,t,e).array,i=s.length})),this.rowCount=i}X(this,"afterDeleteRows",{rowIndex:t,rowCount:e}),this.versionTag=U()}getColumn(t,e){return this.columns[t]}getColumns(t,e){return(t||Object.keys(this.columns)).reduce(((t,e)=>(t[e]=this.columns[e],t)),{})}getRow(t,e){return(e||Object.keys(this.columns)).map((e=>this.columns[e]?.[t]))}setColumn(t,e=[],i=0,s){this.setColumns({[t]:e},i,s)}setColumns(t,e,i){let s=this.rowCount;H(t,((t,e)=>{this.columns[e]=t.slice(),s=t.length})),this.applyRowCount(s),i?.silent||(X(this,"afterSetColumns"),this.versionTag=U())}setRow(t,e=this.rowCount,i,s){let{columns:o}=this,r=i?this.rowCount+1:e+1;H(t,((t,n)=>{let a=o[n]||!1!==s?.addColumns&&Array(r);a&&(i?a=F(a,e,0,!0,[t]).array:a[e]=t,o[n]=a)})),r>this.rowCount&&this.applyRowCount(r),s?.silent||(X(this,"afterSetRows"),this.versionTag=U())}},{getBoostClipRect:Y,isChartSeriesBoosting:_}=b,{getOptions:Z}=d(),{composed:$,doc:q,noop:K,win:J}=d(),{addEvent:Q,destroyObjectProperties:tt,error:et,extend:it,fireEvent:st,isArray:ot,isNumber:rt,pick:nt,pushUnique:at,wrap:lt,defined:ht}=d();function dt(t,e){let i=e.boost;t&&i&&i.target&&i.canvas&&!_(e.chart)&&t.allocateBufferForSingleSeries(e)}function ct(t){return nt(t&&t.options&&t.options.boost&&t.options.boost.enabled,!0)}function pt(t,e){let i=t.constructor,o=t.seriesGroup||e.group,r=t.chartWidth,n=t.chartHeight,a=t,l="undefined"!=typeof SVGForeignObjectElement,h=!1;_(t)?a=t:(a=e,h=!(!e.options.events?.click&&!e.options.point?.events?.click));let d=a.boost=a.boost||{};if(l=!1,s||(s=q.createElement("canvas")),!d.target&&(d.canvas=s,t.renderer.forExport,a.renderTarget=d.target=t.renderer.image("",0,0,r,n).addClass("highcharts-boost-canvas").add(o),d.clear=function(){d.target.attr({href:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="})},d.copy=function(){d.resize(),d.target.attr({href:d.canvas.toDataURL("image/png")})},d.resize=function(){r=t.chartWidth,n=t.chartHeight,(d.targetFo||d.target).attr({x:0,y:0,width:r,height:n}).css({pointerEvents:h?void 0:"none",mixedBlendMode:"normal",opacity:1}).addClass(h?"highcharts-tracker":""),a instanceof i&&a.boost?.markerGroup?.translate(t.plotLeft,t.plotTop)},d.clipRect=t.renderer.clipRect(),(d.targetFo||d.target).attr({zIndex:e.options.zIndex}),a instanceof i&&(a.boost.markerGroup=a.renderer.g().add(o).translate(e.xAxis.pos,e.yAxis.pos))),d.canvas.width=r,d.canvas.height=n,d.clipRect){let e=Y(t,a),i=e.width===t.clipBox.width&&e.height===t.clipBox.height?o:d.targetFo||d.target;d.clipRect.attr(e),i?.clip(d.clipRect)}return d.resize(),d.clear(),!d.wgl&&(d.wgl=new W((t=>{t.settings.debug.timeBufferCopy&&console.time("buffer copy"),d.copy(),t.settings.debug.timeBufferCopy&&console.timeEnd("buffer copy")})),d.wgl.init(d.canvas)||et("[highcharts boost] - unable to init WebGL renderer"),d.wgl.setOptions(t.options.boost||{}),a instanceof i&&d.wgl.allocateBuffer(t)),d.wgl.setSize(r,n),d.wgl}function ut(t){let e=t.points;if(e){let t,i;for(i=0;i{let i=t[e];i&&(t[e]=i.destroy())})),t.zones))tt(e,void 0,!0)}function gt(t,e,i,s,o,r){let n=(o=o||0)+(s=s||3e3),a=!0;for(;a&&o(i.boostThreshold||Number.MAX_VALUE)&&rt(r.min)&&rt(r.max)&&(!e||rt(o.min)&&rt(o.max))&&(!n||rt(n.min)&&rt(n.max))}let ft=(t,e)=>!t.forceCrop&&(_(t.chart)||(e?e.length:0)>=(t.options.boostThreshold||Number.MAX_VALUE));function xt(){let t=this,e=t.chart;e.boost&&e.boost.markerGroup===t.markerGroup&&(t.markerGroup=null),e.hoverPoints&&(e.hoverPoints=e.hoverPoints.filter((function(e){return e.series===t}))),e.hoverPoint&&e.hoverPoint.series===t&&(e.hoverPoint=null)}function yt(){let t=this.boost;t&&t.canvas&&t.target&&(t.wgl&&t.wgl.clear(),t.clear&&t.clear())}function bt(t){let e=t.boost;e&&e.canvas&&e.target&&e.wgl&&!_(t.chart)&&e.wgl.render(t.chart)}function vt(t,e){let i=t.options,s=t.xAxis,o=t.pointClass;if(e instanceof o)return e;let r=t.is("scatter"),n=(r&&t.getColumn("x",!0).length?t.getColumn("x",!0):void 0)||(t.getColumn("x").length?t.getColumn("x"):void 0)||i.xData||t.getColumn("x",!0)||!1,a=t.getColumn("y",!0)||i.yData||!1,l=new o(t,r&&n&&a?[n[e.i],a[e.i]]:(ot(t.options.data)?t.options.data:[])[e.i],n?n[e.i]:void 0);return l.category=nt(s.categories?s.categories[l.x]:l.x,l.x),l.key=l.name??l.category,l.dist=e.dist,l.distX=e.distX,l.plotX=e.plotX,l.plotY=e.plotY,l.index=e.i,l.percentage=e.percentage,l.isInside=t.isPointInside(l),l}function wt(t){let{options:e,xAxis:i,yAxis:s}=this;if(!(this.isDirty||i.isDirty||s.isDirty||t))return!1;this.yAxis.setTickInterval();let o=e.boostThreshold||0,r=e.cropThreshold,n=this.getColumn("x"),a=i.getExtremes(),l=a.max??Number.MAX_VALUE,h=a.min??-Number.MAX_VALUE,d=this.getColumn("y"),c=s.getExtremes(),p=c.max??Number.MAX_VALUE,u=c.min??-Number.MAX_VALUE;if(!this.boosted&&i.old&&s.old&&h>=(i.old.min??-Number.MAX_VALUE)&&l<=(i.old.max??Number.MAX_VALUE)&&u>=(s.old.min??-Number.MAX_VALUE)&&p<=(s.old.max??Number.MAX_VALUE))return this.dataTable.modified.setColumns({x:n,y:d}),!0;let g=this.dataTable.rowCount;if(!o||g=h&&m<=l&&f>=u&&f<=p?(x.push({x:m,y:f}),y.push(m),b.push(f),v&&(k=Math.max(k,m),S=Math.min(S,m)),w&&(T=Math.max(T,f),A=Math.min(A,f))):M=!0;return v&&(i.dataMax=Math.max(k,i.dataMax||0),i.dataMin=Math.min(S,i.dataMin||0)),w&&(s.dataMax=Math.max(T,s.dataMax||0),s.dataMin=Math.min(A,s.dataMin||0)),this.cropped=M,this.cropStart=0,M&&this.dataTable.modified===this.dataTable&&(this.dataTable.modified=new V),this.dataTable.modified.setColumns({x:y,y:b}),ft(this,y)||(this.processedData=x),!0}function Mt(){let t,e,s,o,r,n=this.options||{},a=this.chart,l=a.boost,h=this.boost,d=this.xAxis,c=this.yAxis,p=n.xData||this.getColumn("x",!0),u=n.yData||this.getColumn("y",!0),g=this.getColumn("low",!0),m=this.getColumn("high",!0),f=this.processedData||n.data,x=d.getExtremes(),y=x.min-(d.minPointOffset||0),b=x.max+(d.minPointOffset||0),v=c.getExtremes(),w=v.min-(c.minPointOffset||0),M=v.max+(c.minPointOffset||0),k={},S=!!this.sampling,T=n.enableMouseTracking,A=n.threshold,C=this.pointArrayMap&&"low,high"===this.pointArrayMap.join(","),P=!!n.stacking,L=this.cropStart||0,E=this.requireSorting,O=!p,D="x"===n.findNearestPointBy,I=(this.getColumn("x").length?this.getColumn("x"):void 0)||this.options.xData||this.getColumn("x",!0),z=nt(n.lineWidth,1),B=n.nullInteraction&&w,N=!1,R=c.getThreshold(A);if(d.isPanning||c.isPanning||(N=pt(a,this),a.boosted=!0,!this.visible))return;(this.points||this.graph)&&ut(this),_(a)?(this.markerGroup&&this.markerGroup!==l?.markerGroup&&this.markerGroup.destroy(),this.markerGroup=l?.markerGroup,h&&h.target&&(this.renderTarget=h.target=h.target.destroy())):(this.markerGroup===l?.markerGroup&&(this.markerGroup=void 0),this.markerGroup=this.plotGroup("markerGroup","markers","visible",1,a.seriesGroup).addClass("highcharts-tracker"));let j=this.points=[],W=(t,e,s,o)=>{let r=!!I&&I[L+s],n=t=>{a.inverted&&(t=d.len-t,e=c.len-e),j.push({destroy:K,x:r,clientX:t,plotX:t,plotY:e,i:L+s,percentage:o})};t=Math.ceil(t),i=D?t:t+","+e,T&&(k[i]?r===I[I.length-1]&&(j.length--,n(t)):(k[i]=!0,n(t)))};this.buildKDTree=K,st(this,"renderCanvas"),this.is("line")&&z>1&&h?.target&&l&&!l.lineWidthFilter&&(l.lineWidthFilter=a.renderer.definition({tagName:"filter",children:[{tagName:"feMorphology",attributes:{operator:"dilate",radius:.25*z}}],attributes:{id:"linewidth"}}),h.target.attr({filter:"url(#linewidth)"})),N&&(dt(N,this),N.pushSeries(this),bt(this));let G=N.settings;a.renderer.forExport||(G.debug.timeKDTree&&console.time("kd tree building"),gt(P?this.data.slice(L):p||f,(function(i,n){let l,h,p,f,x,v=void 0===a.index,k=!1,T=!0;return!ht(i)||(!v&&(O?(l=i[0],h=i[1]):(l=i,h=u[n]??B??null),C?(O&&(h=i.slice(1,3)),k=g[n],h=m[n]):P&&(l=i.x,k=(h=i.stackY)-i.y,x=i.percentage),E||(T=(h||0)>=w&&h<=M),null!==h&&l>=y&&l<=b&&T&&(p=d.toPixels(l,!0),S?((void 0===o||p===t)&&(C||(k=h),(void 0===r||h>s)&&(s=h,r=n),(void 0===o||k{st(this,"renderedCanvas"),delete this.buildKDTree,this.options&&this.buildKDTree(),G.debug.timeKDTree&&console.timeEnd("kd tree building")})))}function kt(t){let e=!0;if(this.chart.options&&this.chart.options.boost&&(e=void 0===this.chart.options.boost.enabled||this.chart.options.boost.enabled),!e||!this.boosted)return t.call(this);this.chart.boosted=!0;let i=pt(this.chart,this);i&&(dt(i,this),i.pushSeries(this)),bt(this)}function St(t){if(this.boosted){if(mt(this))return{};if(this.xAxis.isPanning||this.yAxis.isPanning)return this}return t.apply(this,[].slice.call(arguments,1))}function Tt(t){let e=this.options.data;if(ct(this.chart)&&p[this.type]){let i=this.is("scatter")&&!this.is("bubble")&&!this.is("treemap")&&!this.is("heatmap");if(!ft(this,e)||i||this.is("treemap")||this.options.stacking||!mt(this,!0)){if(this.boosted&&(this.xAxis?.isPanning||this.yAxis?.isPanning))return;i&&"treegrid"!==this.yAxis.type?wt.call(this,arguments[1]):t.apply(this,[].slice.call(arguments,1)),e=this.getColumn("x",!0)}if(this.boosted=ft(this,e),this.boosted){let t;!this.options.data?.length||rt(t=this.getFirstValidPoint(this.options.data))||ot(t)||this.is("treemap")||et(12,!1,this.chart),function(t){t.boost=t.boost||{getPoint:e=>vt(t,e)};let e=t.boost.altered=[];if(["allowDG","directTouch","stickyTracking"].forEach((i=>{e.push({prop:i,val:t[i],own:Object.hasOwnProperty.call(t,i)})})),t.allowDG=!1,t.directTouch=!1,t.stickyTracking=!0,t.finishedAnimating=!0,t.labelBySeries&&(t.labelBySeries=t.labelBySeries.destroy()),t.is("scatter")&&!t.is("treemap")&&t.data.length){for(let e of t.data)e?.destroy?.();t.data.length=0,t.points.length=0,delete t.processedData}}(this)}else!function(t){let e=t.boost,i=t.chart,s=i.boost;if(s?.markerGroup)for(let t of(s.markerGroup.destroy(),s.markerGroup=void 0,i.series))t.markerGroup=void 0,t.markerGroup=t.plotGroup("markerGroup","markers","visible",1,i.seriesGroup).addClass("highcharts-tracker");e&&((e.altered||[]).forEach((e=>{e.own?t[e.prop]=e.val:delete t[e.prop]})),e.clear&&e.clear()),(i.seriesGroup||t.group)?.clip()}(this)}else t.apply(this,[].slice.call(arguments,1))}function At(t){let e=t.apply(this,[].slice.call(arguments,1));return this.boost&&e?this.boost.getPoint(e):e}let Ct=function(t,e,i,s){if(at($,"Boost.Series")){let o=Z().plotOptions,r=t.prototype;if(Q(t,"destroy",xt),Q(t,"hide",yt),s&&(r.renderCanvas=Mt),lt(r,"getExtremes",St),lt(r,"processData",Tt),lt(r,"searchPoint",At),["translate","generatePoints","drawTracker","drawPoints","render"].forEach((t=>function(t,e,i){function s(t){let e=this.options.stacking&&("translate"===i||"generatePoints"===i);this.boosted&&!e&&ct(this.chart)&&"heatmap"!==this.type&&"treemap"!==this.type&&p[this.type]&&0!==this.options.boostThreshold?"render"===i&&this.renderCanvas&&this.renderCanvas():t.call(this)}if(lt(t,i,s),"translate"===i)for(let t of["column","arearange","columnrange","heatmap","treemap"])e[t]&<(e[t].prototype,i,s)}(r,e,t))),lt(i.prototype,"firePointEvent",(function(t,e,i){if("click"===e&&this.series.boosted){let t=i.point;if((t.dist||t.distX)>=(t.series.options.marker?.radius??10))return}return t.apply(this,[].slice.call(arguments,1))})),c.forEach((t=>{let i=o[t];i&&(i.boostThreshold=5e3,i.boostData=[],e[t].prototype.fillOpacity=!0)})),s){let{area:t,areaspline:i,bubble:s,column:o,heatmap:r,scatter:n,treemap:a}=e;if(t&&it(t.prototype,{fill:!0,fillOpacity:!0,sampling:!0}),i&&it(i.prototype,{fill:!0,fillOpacity:!0,sampling:!0}),s){let t=s.prototype;delete t.buildKDTree,lt(t,"markerAttribs",(function(t){return!this.boosted&&t.apply(this,[].slice.call(arguments,1))}))}o&&it(o.prototype,{fill:!0,sampling:!0}),n&&(n.prototype.fill=!0),[r,a].forEach((t=>{t&<(t.prototype,"drawPoints",kt)}))}}return t},Pt={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",feldspar:"#d19275",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",grey:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslateblue:"#8470ff",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",violetred:"#d02090",wheat:"#f5deb3",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},{doc:Lt,win:Et}=d(),{addEvent:Ot,error:Dt}=d(),It=["webgl","experimental-webgl","moz-webgl","webkit-3d"];function zt(){let t;if(void 0!==Et.WebGLRenderingContext){t=Lt.createElement("canvas");for(let e=0;et.renderTarget)).filter(Boolean)){let{horiz:i,pos:s}=this,o=i?"scaleX":"scaleY",r=i?"translateX":"translateY",n=e?.[o]??1,a=1,l=0,h=1,d="none";this.isPanning&&(a=(t.scale??1)*n,l=(e?.[r]||0)-a*(t.move||0)+n*s-a*s,h=.7,d="blur(3px)"),e?.attr({[o]:a,[r]:l}).css({transition:"250ms filter, 250ms opacity",filter:d,opacity:h})}}))},Nt=zt,Rt=d();Rt.hasWebGLSupport=Nt,Bt(Rt.Chart,Rt.Axis,Rt.Series,Rt.seriesTypes,Rt.Point,Rt.Color);let jt=d();return l.default})(),t.exports=i(e._Highcharts,e._Highcharts.Color)},9662:function(t){var e,i;e="undefined"==typeof window?this:window,i=(t,e)=>(()=>{"use strict";var i={660:t=>{t.exports=e},944:e=>{e.exports=t}},s={};function o(t){var e=s[t];if(void 0!==e)return e.exports;var r=s[t]={exports:{}};return i[t](r,r.exports,o),r.exports}o.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return o.d(e,{a:e}),e},o.d=(t,e)=>{for(var i in e)o.o(e,i)&&!o.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},o.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var r={};o.d(r,{default:()=>U});var n=o(944),a=o.n(n);let{isSafari:l,win:h,win:{document:d}}=a(),c=h.URL||h.webkitURL||h;function p(t){let e=t.replace(/filename=.*;/,"").match(/data:([^;]*)(;base64)?,([A-Z+\d\/]+)/i);if(e&&e.length>3&&h.atob&&h.ArrayBuffer&&h.Uint8Array&&h.Blob&&c.createObjectURL){let t=h.atob(e[3]),i=new h.ArrayBuffer(t.length),s=new h.Uint8Array(i);for(let e=0;e1e3)throw Error("Input too long");let o=/Edge\/\d+/.test(i.userAgent);if((l&&"string"==typeof t&&0===t.indexOf("data:application/pdf")||o||t.length>2e6)&&!(t=p(t)||""))throw Error("Failed to convert to blob");if(void 0!==s.download)s.href=t,s.download=e,d.body.appendChild(s),s.click(),d.body.removeChild(s);else try{if(!h.open(t,"chart"))throw Error("Failed to open window")}catch{h.location.href=t}}};var g=o(660),m=o.n(g);let f={exporting:{csv:{annotations:{itemDelimiter:"; ",join:!1},columnHeaderFormatter:null,dateFormat:"%Y-%m-%d %H:%M:%S",decimalPoint:null,itemDelimiter:null,lineDelimiter:"\n"},showTable:!1,useMultiLevelHeaders:!0,useRowspanHeaders:!0,showExportInProgress:!0},lang:{downloadCSV:"Download CSV",downloadXLS:"Download XLS",exportData:{annotationHeader:"Annotations",categoryHeader:"Category",categoryDatetimeHeader:"DateTime"},viewData:"View data table",hideData:"Hide data table",exportInProgress:"Exporting..."}},{getOptions:x,setOptions:y}=a(),{downloadURL:b}=u,{doc:v,win:w}=a(),{addEvent:M,defined:k,extend:S,find:T,fireEvent:A,isNumber:C,pick:P}=a();function L(t){let e=!!this.options.exporting?.showExportInProgress,i=w.requestAnimationFrame||setTimeout;i((()=>{e&&this.showLoading(this.options.lang.exportInProgress),i((()=>{try{t.call(this)}finally{e&&this.hideLoading()}}))}))}function E(){L.call(this,(()=>{let t=this.getCSV(!0);b(W(t,"text/csv")||"data:text/csv,\ufeff"+encodeURIComponent(t),this.getFilename()+".csv")}))}function O(){L.call(this,(()=>{let t='\x3c!--[if gte mso 9]>Ark1td{border:none;font-family: Calibri, sans-serif;} .number{mso-number-format:"0.00";} .text{ mso-number-format:"@";}'+this.getTable(!0)+"";b(W(t,"application/vnd.ms-excel")||"data:application/vnd.ms-excel;base64,"+w.btoa(unescape(encodeURIComponent(t))),this.getFilename()+".xls")}))}function D(t){let e="",i=this.getDataRows(),s=this.options.exporting.csv,o=P(s.decimalPoint,","!==s.itemDelimiter&&t?1.1.toLocaleString()[1]:"."),r=P(s.itemDelimiter,","===o?";":","),n=s.lineDelimiter;return i.forEach(((t,s)=>{let a="",l=t.length;for(;l--;)"string"==typeof(a=t[l])&&(a=`"${a}"`),"number"==typeof a&&"."!==o&&(a=a.toString().replace(".",o)),t[l]=a;t.length=i.length?i[0].length:0,e+=t.join(r),s1?i:e.name,topLevelColumnTitle:e.name}:e.name+(s>1?" ("+i+")":""):e.options.title&&e.options.title.text||(e.dateTime?y:x):x},v=function(t,e,i){let s={},o={};return e.forEach((function(e){let r=(t.keyToAxis&&t.keyToAxis[e]||e)+"Axis",n=C(i)?t.chart[r][i]:t[r];s[e]=n&&n.categories||[],o[e]=n&&n.dateTime})),{categoryMap:s,dateTimeValueAxisMap:o}},w=[],M=0;for(n in this.series.forEach((function(e){let i,s,o=e.options.keys,n=e.xAxis,a=o||function(t,e){let i=t.pointArrayMap||["y"];return t.data.some((t=>void 0!==t.y&&t.name))&&e&&!e.categories&&"name"!==t.exportKey?["x",...i]:i}(e,n),u=a.length,f=!e.requireSorting&&{},x=c.indexOf(n),y=v(e,a);if(!1!==e.options.includeInDataExport&&!e.options.isInternal&&!1!==e.visible){for(T(w,(function(t){return t[0]===x}))||w.push([x,M]),s=0;s{if(!t.tagName||"#text"===t.tagName)return t.textContent||"";let i=t.attributes,s=`<${t.tagName}`;return i&&Object.keys(i).forEach((t=>{let e=i[t];s+=` ${t}="${e}"`})),s+=">",s+=t.textContent||"",(t.children||[]).forEach((t=>{s+=e(t)})),s+=``};return e(this.getTableAST(t))}function B(t){let e=0,i=[],s=this.options,o=t?1.1.toLocaleString()[1]:".",r=P(s.exporting.useMultiLevelHeaders,!0),n=this.getDataRows(r),a=r?n.shift():null,l=n.shift(),h=function(t,e,i,s){let r=P(s,""),n="highcharts-text"+(e?" "+e:"");return"number"==typeof r?(r=r.toString(),","===o&&(r=r.replace(".",o)),n="highcharts-number"):s||(n="highcharts-empty"),{tagName:t,attributes:i=S({class:n},i),textContent:r}},{tableCaption:d}=s.exporting||{};!1!==d&&i.push({tagName:"caption",attributes:{class:"highcharts-table-caption"},textContent:"string"==typeof d?d:s.title?.text||s.lang.chartTitle});for(let t=0,i=n.length;te&&(e=n[t].length);i.push(function(t,e,i){let o,n,a=[],l=0,d=i||e&&e.length,c=0;if(r&&t&&e&&!function(t,e){let i=t.length;if(e.length!==i)return!1;for(;i--;)if(t[i]!==e[i])return!1;return!0}(t,e)){let i=[];for(;l1&&t.attributes&&(t.attributes.valign="top",t.attributes.rowspan=n),i.push(t)}a.push({tagName:"tr",children:i})}if(e){let t=[];for(l=0,d=e.length;lt.children[e].textContent,s=(t,e)=>(s,o)=>{let r,n;return r=i(e?s:o,t),n=i(e?o:s,t),""===r||""===n||isNaN(r)||isNaN(n)?r.toString().localeCompare(n):r-n};if(e&&t.options.exporting&&t.options.exporting.allowTableSorting){let i=e.querySelector("thead tr");i&&i.childNodes.forEach((i=>{let o=i.closest("table");i.addEventListener("click",(function(){let r=[...e.querySelectorAll("tr:not(thead tr)")],n=[...i.parentNode.children];r.sort(s(n.indexOf(i),t.ascendingOrderInTable=!t.ascendingOrderInTable)).forEach((t=>{o.appendChild(t)})),n.forEach((t=>{["highcharts-sort-ascending","highcharts-sort-descending"].forEach((e=>{t.classList.contains(e)&&t.classList.remove(e)}))})),i.classList.add(t.ascendingOrderInTable?"highcharts-sort-ascending":"highcharts-sort-descending")}))}))}}function F(){this.options&&this.options.exporting&&this.options.exporting.showTable&&!this.options.chart.forExport&&this.viewData()}function X(){this.dataTableDiv?.remove()}let H=a();H.dataURLtoBlob=H.dataURLtoBlob||u.dataURLtoBlob,H.downloadURL=H.downloadURL||u.downloadURL,function(t,e){let i=t.prototype;if(!i.getCSV){let s=x().exporting;M(t,"afterViewData",G),M(t,"render",F),M(t,"destroy",X),i.downloadCSV=E,i.downloadXLS=O,i.getCSV=D,i.getDataRows=I,i.getTable=z,i.getTableAST=B,i.hideData=N,i.toggleDataTable=R,i.viewData=j,s&&(S(s.menuItemDefinitions,{downloadCSV:{textKey:"downloadCSV",onclick:function(){this.downloadCSV()}},downloadXLS:{textKey:"downloadXLS",onclick:function(){this.downloadXLS()}},viewData:{textKey:"viewData",onclick:function(){L.call(this,this.toggleDataTable)}}}),s.buttons&&s.buttons.contextButton.menuItems&&s.buttons.contextButton.menuItems.push("separator","downloadCSV","downloadXLS","viewData")),y(f);let{arearange:o,gantt:r,map:n,mapbubble:a,treemap:l,xrange:h}=e.types;o&&(o.prototype.keyToAxis={low:"y",high:"y"}),r&&(r.prototype.exportKey="name",r.prototype.keyToAxis={start:"x",end:"x"}),n&&(n.prototype.exportKey="name"),a&&(a.prototype.exportKey="name"),l&&(l.prototype.exportKey="name"),h&&(h.prototype.keyToAxis={x2:"x"})}}(H.Chart,H.Series);let U=a();return r.default})(),t.exports=i(e._Highcharts,e._Highcharts.AST)},18393:function(t){var e,i;e="undefined"==typeof window?this:window,i=(t,e,i)=>(()=>{"use strict";var s,o,r,n={660:t=>{t.exports=e},944:e=>{e.exports=t},960:t=>{t.exports=i}},a={};function l(t){var e=a[t];if(void 0!==e)return e.exports;var i=a[t]={exports:{}};return n[t](i,i.exports,l),i.exports}l.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return l.d(e,{a:e}),e},l.d=(t,e)=>{for(var i in e)l.o(e,i)&&!l.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},l.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var h={};l.d(h,{default:()=>Z});var d=l(944),c=l.n(d),p=l(660),u=l.n(p);l(960),function(t){t.compose=function(t){return t.navigation||(t.navigation=new e(t)),t};class e{constructor(t){this.updates=[],this.chart=t}addUpdate(t){this.chart.navigation.updates.push(t)}update(t,e){this.updates.forEach((i=>{i.call(this.chart,t,e)}))}}t.Additions=e}(s||(s={}));let g=s,{isTouchDevice:m}=c(),f={exporting:{allowTableSorting:!0,type:"image/png",url:`https://export-svg.highcharts.com?v=${c().version}`,pdfFont:{normal:void 0,bold:void 0,bolditalic:void 0,italic:void 0},printMaxWidth:780,scale:2,buttons:{contextButton:{className:"highcharts-contextbutton",menuClassName:"highcharts-contextmenu",symbol:"menu",titleKey:"contextButtonTitle",menuItems:["viewFullscreen","printChart","separator","downloadPNG","downloadJPEG","downloadSVG"]}},menuItemDefinitions:{viewFullscreen:{textKey:"viewFullscreen",onclick:function(){this.fullscreen&&this.fullscreen.toggle()}},printChart:{textKey:"printChart",onclick:function(){this.print()}},separator:{separator:!0},downloadPNG:{textKey:"downloadPNG",onclick:function(){this.exportChart()}},downloadJPEG:{textKey:"downloadJPEG",onclick:function(){this.exportChart({type:"image/jpeg"})}},downloadPDF:{textKey:"downloadPDF",onclick:function(){this.exportChart({type:"application/pdf"})}},downloadSVG:{textKey:"downloadSVG",onclick:function(){this.exportChart({type:"image/svg+xml"})}}}},lang:{viewFullscreen:"View in full screen",exitFullscreen:"Exit from full screen",printChart:"Print chart",downloadPNG:"Download PNG image",downloadJPEG:"Download JPEG image",downloadPDF:"Download PDF document",downloadSVG:"Download SVG vector image",contextButtonTitle:"Chart context menu"},navigation:{buttonOptions:{symbolSize:14,symbolX:14.5,symbolY:13.5,align:"right",buttonSpacing:5,height:28,y:-5,verticalAlign:"top",width:28,symbolFill:"#666666",symbolStroke:"#666666",symbolStrokeWidth:3,theme:{fill:"#ffffff",padding:5,stroke:"none","stroke-linecap":"round"}},menuStyle:{border:"none",borderRadius:"3px",background:"#ffffff",padding:"0.5em"},menuItemStyle:{background:"none",borderRadius:"3px",color:"#333333",padding:"0.5em",fontSize:m?"0.9em":"0.8em",transition:"background 250ms, color 250ms"},menuItemHoverStyle:{background:"#f2f2f2"}}};!function(t){let e=[];function i(t,e,i,s){return[["M",t,e+2.5],["L",t+i,e+2.5],["M",t,e+s/2+.5],["L",t+i,e+s/2+.5],["M",t,e+s-1.5],["L",t+i,e+s-1.5]]}function s(t,e,i,s){let o=s/3-2;return[].concat(this.circle(i-o,e,o,o),this.circle(i-o,e+o+4,o,o),this.circle(i-o,e+2*(o+4),o,o))}t.compose=function(t){if(-1===e.indexOf(t)){e.push(t);let o=t.prototype.symbols;o.menu=i,o.menuball=s.bind(o)}}}(o||(o={}));let x=o,{composed:y}=c(),{addEvent:b,fireEvent:v,pushUnique:w}=c();function M(){this.fullscreen=new k(this)}class k{static compose(t){w(y,"Fullscreen")&&b(t,"beforeRender",M)}constructor(t){this.chart=t,this.isOpen=!1;let e=t.renderTo;!this.browserProps&&("function"==typeof e.requestFullscreen?this.browserProps={fullscreenChange:"fullscreenchange",requestFullscreen:"requestFullscreen",exitFullscreen:"exitFullscreen"}:e.mozRequestFullScreen?this.browserProps={fullscreenChange:"mozfullscreenchange",requestFullscreen:"mozRequestFullScreen",exitFullscreen:"mozCancelFullScreen"}:e.webkitRequestFullScreen?this.browserProps={fullscreenChange:"webkitfullscreenchange",requestFullscreen:"webkitRequestFullScreen",exitFullscreen:"webkitExitFullscreen"}:e.msRequestFullscreen&&(this.browserProps={fullscreenChange:"MSFullscreenChange",requestFullscreen:"msRequestFullscreen",exitFullscreen:"msExitFullscreen"}))}close(){let t=this,e=t.chart,i=e.options.chart;v(e,"fullscreenClose",null,(function(){t.isOpen&&t.browserProps&&e.container.ownerDocument instanceof Document&&e.container.ownerDocument[t.browserProps.exitFullscreen](),t.unbindFullscreenEvent&&(t.unbindFullscreenEvent=t.unbindFullscreenEvent()),e.setSize(t.origWidth,t.origHeight,!1),t.origWidth=void 0,t.origHeight=void 0,i.width=t.origWidthOption,i.height=t.origHeightOption,t.origWidthOption=void 0,t.origHeightOption=void 0,t.isOpen=!1,t.setButtonText()}))}open(){let t=this,e=t.chart,i=e.options.chart;v(e,"fullscreenOpen",null,(function(){if(i&&(t.origWidthOption=i.width,t.origHeightOption=i.height),t.origWidth=e.chartWidth,t.origHeight=e.chartHeight,t.browserProps){let i=b(e.container.ownerDocument,t.browserProps.fullscreenChange,(function(){t.isOpen?(t.isOpen=!1,t.close()):(e.setSize(null,null,!1),t.isOpen=!0,t.setButtonText())})),s=b(e,"destroy",i);t.unbindFullscreenEvent=()=>{i(),s()};let o=e.renderTo[t.browserProps.requestFullscreen]();o&&o.catch((function(){alert("Full screen is not supported inside a frame.")}))}}))}setButtonText(){let t=this.chart,e=t.exportDivElements,i=t.options.exporting,s=i&&i.buttons&&i.buttons.contextButton.menuItems,o=t.options.lang;if(i&&i.menuItemDefinitions&&o&&o.exitFullscreen&&o.viewFullscreen&&s&&e){let t=e[s.indexOf("viewFullscreen")];t&&u().setElementHTML(t,this.isOpen?o.exitFullscreen:i.menuItemDefinitions.viewFullscreen.text||o.viewFullscreen)}}toggle(){this.isOpen?this.close():this.open()}}let{win:S}=c(),{discardElement:T,objectEach:A}=c(),C={ajax:function(t){let e={json:"application/json",xml:"application/xml",text:"text/plain",octet:"application/octet-stream"},i=new XMLHttpRequest;function s(e,i){t.error&&t.error(e,i)}if(!t.url)return!1;i.open((t.type||"get").toUpperCase(),t.url,!0),t.headers?.["Content-Type"]||i.setRequestHeader("Content-Type",e[t.dataType||"json"]||e.text),A(t.headers,(function(t,e){i.setRequestHeader(e,t)})),t.responseType&&(i.responseType=t.responseType),i.onreadystatechange=function(){let e;if(4===i.readyState){if(200===i.status){if("blob"!==t.responseType&&(e=i.responseText,"json"===t.dataType))try{e=JSON.parse(e)}catch(t){if(t instanceof Error)return s(i,t)}return t.success?.(e,i)}s(i,i.responseText)}},t.data&&"string"!=typeof t.data&&(t.data=JSON.stringify(t.data)),i.send(t.data)},getJSON:function(t,e){C.ajax({url:t,success:e,dataType:"json",headers:{"Content-Type":"text/plain"}})},post:function(t,e,i){let s=new S.FormData;A(e,(function(t,e){s.append(e,t)})),s.append("b64","true");let{filename:o,type:r}=e;return S.fetch(t,{method:"POST",body:s,...i}).then((t=>{t.ok&&t.text().then((t=>{let e=document.createElement("a");e.href=`data:${r};base64,${t}`,e.download=o,e.click(),T(e)}))}))}},{defaultOptions:P}=c(),{doc:L,SVG_NS:E,win:O}=c(),{addEvent:D,css:I,createElement:z,discardElement:B,extend:N,find:R,fireEvent:j,isObject:W,merge:G,objectEach:F,pick:X,removeEvent:H,splat:U,uniqueKey:V}=c();!function(t){let e,i=[/-/,/^(clipPath|cssText|d|height|width)$/,/^font$/,/[lL]ogical(Width|Height)$/,/^parentRule$/,/^(cssRules|ownerRules)$/,/perspective/,/TapHighlightColor/,/^transition/,/^length$/,/^\d+$/],s=["fill","stroke","strokeLinecap","strokeLinejoin","strokeWidth","textAnchor","x","y"];t.inlineAllowlist=[];let o=["clipPath","defs","desc"];function r(t){let e,i,s=this,o=s.renderer,r=G(s.options.navigation.buttonOptions,t),n=r.onclick,a=r.menuItems,l=r.symbolSize||12;if(s.btnCount||(s.btnCount=0),s.exportDivElements||(s.exportDivElements=[],s.exportSVGElements=[]),!1===r.enabled||!r.theme)return;let h=s.styledMode?{}:r.theme;n?i=function(t){t&&t.stopPropagation(),n.call(s,t)}:a&&(i=function(t){t&&t.stopPropagation(),s.contextMenu(d.menuClassName,a,d.translateX||0,d.translateY||0,d.width||0,d.height||0,d),d.setState(2)}),r.text&&r.symbol?h.paddingLeft=X(h.paddingLeft,30):r.text||N(h,{width:r.width,height:r.height,padding:0});let d=o.button(r.text,0,0,i,h,void 0,void 0,void 0,void 0,r.useHTML).addClass(t.className).attr({title:X(s.options.lang[r._titleKey||r.titleKey],"")});d.menuClassName=t.menuClassName||"highcharts-menu-"+s.btnCount++,r.symbol&&(e=o.symbol(r.symbol,Math.round((r.symbolX||0)-l/2),Math.round((r.symbolY||0)-l/2),l,l,{width:l,height:l}).addClass("highcharts-button-symbol").attr({zIndex:1}).add(d),s.styledMode||e.attr({stroke:r.symbolStroke,fill:r.symbolFill,"stroke-width":r.symbolStrokeWidth||1})),d.add(s.exportingGroup).align(N(r,{width:d.width,x:X(r.x,s.buttonOffset)}),!0,"spacingBox"),s.buttonOffset+=((d.width||0)+r.buttonSpacing)*("right"===r.align?-1:1),s.exportSVGElements.push(d,e)}function n(){if(!this.printReverseInfo)return;let{childNodes:t,origDisplay:i,resetParams:s}=this.printReverseInfo;this.moveContainers(this.renderTo),[].forEach.call(t,(function(t,e){1===t.nodeType&&(t.style.display=i[e]||"")})),this.isPrinting=!1,s&&this.setSize.apply(this,s),delete this.printReverseInfo,e=void 0,j(this,"afterPrint")}function a(){let t=L.body,e=this.options.exporting.printMaxWidth,i={childNodes:t.childNodes,origDisplay:[],resetParams:void 0};this.isPrinting=!0,this.pointer?.reset(void 0,0),j(this,"beforePrint"),e&&this.chartWidth>e&&(i.resetParams=[this.options.chart.width,void 0,!1],this.setSize(e,void 0,!1)),[].forEach.call(i.childNodes,(function(t,e){1===t.nodeType&&(i.origDisplay[e]=t.style.display,t.style.display="none")})),this.moveContainers(t),this.printReverseInfo=i}function l(t){t.renderExporting(),D(t,"redraw",t.renderExporting),D(t,"destroy",t.destroyExport)}function h(t,e,i,s,o,r,n){let a,l=this,h=l.options.navigation,d=l.chartWidth,p=l.chartHeight,g="cache-"+t,m=Math.max(o,r),f=l[g];f||(l.exportContextMenu=l[g]=f=z("div",{className:t},{position:"absolute",zIndex:1e3,padding:m+"px",pointerEvents:"auto",...l.renderer.style},l.scrollablePlotArea?.fixedDiv||l.container),a=z("ul",{className:"highcharts-menu"},l.styledMode?{}:{listStyle:"none",margin:0,padding:0},f),l.styledMode||I(a,N({MozBoxShadow:"3px 3px 10px #888",WebkitBoxShadow:"3px 3px 10px #888",boxShadow:"3px 3px 10px #888"},h.menuStyle)),f.hideMenu=function(){I(f,{display:"none"}),n&&n.setState(0),l.openMenu=!1,I(l.renderTo,{overflow:"hidden"}),I(l.container,{overflow:"hidden"}),c().clearTimeout(f.hideTimer),j(l,"exportMenuHidden")},l.exportEvents.push(D(f,"mouseleave",(function(){f.hideTimer=O.setTimeout(f.hideMenu,500)})),D(f,"mouseenter",(function(){c().clearTimeout(f.hideTimer)})),D(L,"mouseup",(function(e){l.pointer?.inClass(e.target,t)||f.hideMenu()})),D(f,"click",(function(){l.openMenu&&f.hideMenu()}))),e.forEach((function(t){if("string"==typeof t&&(t=l.options.exporting.menuItemDefinitions[t]),W(t,!0)){let e;t.separator?e=z("hr",void 0,void 0,a):("viewData"===t.textKey&&l.isDataTableVisible&&(t.textKey="hideData"),e=z("li",{className:"highcharts-menu-item",onclick:function(e){e&&e.stopPropagation(),f.hideMenu(),"string"!=typeof t&&t.onclick&&t.onclick.apply(l,arguments)}},void 0,a),u().setElementHTML(e,t.text||l.options.lang[t.textKey]),l.styledMode||(e.onmouseover=function(){I(this,h.menuItemHoverStyle)},e.onmouseout=function(){I(this,h.menuItemStyle)},I(e,N({cursor:"pointer"},h.menuItemStyle||{})))),l.exportDivElements.push(e)}})),l.exportDivElements.push(a,f),l.exportMenuWidth=f.offsetWidth,l.exportMenuHeight=f.offsetHeight);let x={display:"block"};i+(l.exportMenuWidth||0)>d?x.right=d-i-o-m+"px":x.left=i-m+"px",s+r+(l.exportMenuHeight||0)>p&&"top"!==n.alignOptions?.verticalAlign?x.bottom=p-s-m+"px":x.top=s+r-m+"px",I(f,x),I(l.renderTo,{overflow:""}),I(l.container,{overflow:""}),l.openMenu=!0,j(l,"exportMenuShown")}function d(t){let e,i=t?t.target:this,s=i.exportSVGElements,o=i.exportDivElements,r=i.exportEvents;s&&(s.forEach(((t,o)=>{t&&(t.onclick=t.ontouchstart=null,i[e="cache-"+t.menuClassName]&&delete i[e],s[o]=t.destroy())})),s.length=0),i.exportingGroup&&(i.exportingGroup.destroy(),delete i.exportingGroup),o&&(o.forEach((function(t,e){t&&(c().clearTimeout(t.hideTimer),H(t,"mouseleave"),o[e]=t.onmouseout=t.onmouseover=t.ontouchstart=t.onclick=null,B(t))})),o.length=0),r&&(r.forEach((function(t){t()})),r.length=0)}function p(t,e){let i=this.getSVGForExport(t,e);t=G(this.options.exporting,t),C.post(t.url,{filename:t.filename?t.filename.replace(/\//g,"-"):this.getFilename(),type:t.type,width:t.width,scale:t.scale,svg:i},t.fetchOptions)}function m(t){return t&&this.inlineStyles(),this.resolveCSSVariables(),this.container.innerHTML}function y(){let t=this.userOptions.title&&this.userOptions.title.text,e=this.options.exporting.filename;return e?e.replace(/\//g,"-"):("string"==typeof t&&(e=t.toLowerCase().replace(/<\/?[^>]+(>|$)/g,"").replace(/[\s_]+/g,"-").replace(/[^a-z\d\-]/g,"").replace(/^[\-]+/g,"").replace(/[\-]+/g,"-").substr(0,24).replace(/[\-]+$/g,"")),(!e||e.length<5)&&(e="chart"),e)}function b(t){let e,i,s=G(this.options,t);s.plotOptions=G(this.userOptions.plotOptions,t&&t.plotOptions),s.time=G(this.userOptions.time,t&&t.time);let o=z("div",null,{position:"absolute",top:"-9999em",width:this.chartWidth+"px",height:this.chartHeight+"px"},L.body),r=this.renderTo.style.width,n=this.renderTo.style.height,a=s.exporting.sourceWidth||s.chart.width||/px$/.test(r)&&parseInt(r,10)||(s.isGantt?800:600),l=s.exporting.sourceHeight||s.chart.height||/px$/.test(n)&&parseInt(n,10)||400;N(s.chart,{animation:!1,renderTo:o,forExport:!0,renderer:"SVGRenderer",width:a,height:l}),s.exporting.enabled=!1,delete s.data,s.series=[],this.series.forEach((function(t){(i=G(t.userOptions,{animation:!1,enableMouseTracking:!1,showCheckbox:!1,visible:t.visible})).isInternal||s.series.push(i)}));let h={};this.axes.forEach((function(t){t.userOptions.internalKey||(t.userOptions.internalKey=V()),t.options.isInternal||(h[t.coll]||(h[t.coll]=!0,s[t.coll]=[]),s[t.coll].push(G(t.userOptions,{visible:t.visible,type:t.type,uniqueNames:t.uniqueNames})))})),s.colorAxis=this.userOptions.colorAxis;let d=new this.constructor(s,this.callback);return t&&["xAxis","yAxis","series"].forEach((function(e){let i={};t[e]&&(i[e]=t[e],d.update(i))})),this.axes.forEach((function(e){let i=R(d.axes,(t=>t.options.internalKey===e.userOptions.internalKey));if(i){let s=e.getExtremes(),o=U(t?.[e.coll]||{})[0],r="min"in o?o.min:s.userMin,n="max"in o?o.max:s.userMax;(void 0!==r&&r!==i.min||void 0!==n&&n!==i.max)&&i.setExtremes(r??void 0,n??void 0,!0,!1)}})),e=d.getChartHTML(this.styledMode||s.exporting?.applyStyleSheets),j(this,"getSVG",{chartCopy:d}),e=this.sanitizeSVG(e,s),s=null,d.destroy(),B(o),e}function v(t,e){let i=this.options.exporting;return this.getSVG(G({chart:{borderRadius:0}},i.chartOptions,e,{exporting:{sourceWidth:t&&t.sourceWidth||i.sourceWidth,sourceHeight:t&&t.sourceHeight||i.sourceHeight}}))}function w(){let e,r=t.inlineAllowlist,n={},a=L.createElement("iframe");I(a,{width:"1px",height:"1px",visibility:"hidden"}),L.body.appendChild(a);let l=a.contentWindow&&a.contentWindow.document;l&&l.body.appendChild(l.createElementNS(E,"svg")),function t(a){let h,d,p,u,g,m,f={};if(l&&1===a.nodeType&&-1===o.indexOf(a.nodeName)){if(h=O.getComputedStyle(a,null),d="svg"===a.nodeName?{}:O.getComputedStyle(a.parentNode,null),!n[a.nodeName]){e=l.getElementsByTagName("svg")[0],p=l.createElementNS(a.namespaceURI,a.nodeName),e.appendChild(p);let t=O.getComputedStyle(p,null),i={};for(let e in t)e.length<1e3&&"string"==typeof t[e]&&!/^\d+$/.test(e)&&(i[e]=t[e]);n[a.nodeName]=i,"text"===a.nodeName&&delete n.text.fill,e.removeChild(p)}for(let t in h)(c().isFirefox||c().isMS||c().isSafari||Object.hasOwnProperty.call(h,t))&&function(t,e){if(u=g=!1,r.length){for(m=r.length;m--&&!g;)g=r[m].test(e);u=!g}for("transform"===e&&"none"===t&&(u=!0),m=i.length;m--&&!u;){if(e.length>1e3)throw Error("Input too long");u=i[m].test(e)||"function"==typeof t}!u&&(d[e]!==t||"svg"===a.nodeName)&&n[a.nodeName][e]!==t&&(s&&-1===s.indexOf(e)?f[e]=t:t&&a.setAttribute(e.replace(/[A-Z]/g,(function(t){return"-"+t.toLowerCase()})),t))}(h[t],t);if(I(a,f),"svg"===a.nodeName&&a.setAttribute("stroke-width","1px"),"text"===a.nodeName)return;[].forEach.call(a.children||a.childNodes,t)}}(this.container.querySelector("svg")),e.parentNode.removeChild(e),a.parentNode.removeChild(a)}function M(){let t=this.container.querySelectorAll("*"),e=["color","fill","stop-color","stroke"];Array.from(t).forEach((t=>{e.forEach((e=>{let i=t.getAttribute(e);i?.includes("var(")&&t.setAttribute(e,getComputedStyle(t).getPropertyValue(e))}))}))}function S(t){let{scrollablePlotArea:e}=this;(e?[e.fixedDiv,e.scrollingContainer]:[this.container]).forEach((function(e){t.appendChild(e)}))}function T(){let t=this,e=(e,i,s)=>{t.isDirtyExporting=!0,G(!0,t.options[e],i),X(s,!0)&&t.redraw()};t.exporting={update:function(t,i){e("exporting",t,i)}},g.compose(t).navigation.addUpdate(((t,i)=>{e("navigation",t,i)}))}function A({alignTo:t,key:e,textPxLength:i}){let s=this.options.exporting,{align:o,buttonSpacing:r=0,verticalAlign:n,width:a=0}=G(this.options.navigation?.buttonOptions,s?.buttons?.contextButton),l=t.width-i,h=a+r;(s?.enabled??1)&&"title"===e&&"right"===o&&"top"===n&&l<2*h&&(l{O.focus(),O.print(),c().isSafari||setTimeout((()=>{t.afterPrint()}),1e3)}),1))}function _(){let t=this,e=t.options.exporting,i=e.buttons,s=t.isDirtyExporting||!t.exportSVGElements;t.buttonOffset=0,t.isDirtyExporting&&t.destroyExport(),s&&!1!==e.enabled&&(t.exportEvents=[],t.exportingGroup=t.exportingGroup||t.renderer.g("exporting-group").attr({zIndex:3}).add(),F(i,(function(e){t.addButton(e)})),t.isDirtyExporting=!1)}function Z(t,e){let i=t.indexOf("")+6,s=t.indexOf("-1,o=t.substr(i);return t=t.substr(0,i),s?t=t.replace(/(<(?:img|br).*?(?=\>))>/g,"$1 />"):o&&e?.exporting?.allowHTML&&(o=''+o.replace(/(<(?:img|br).*?(?=\>))>/g,"$1 />")+"",t=t.replace("",o+"")),t.replace(/zIndex="[^"]+"/g,"").replace(/symbolName="[^"]+"/g,"").replace(/jQuery\d+="[^"]+"/g,"").replace(/url\(("|")(.*?)("|")\;?\)/g,"url($2)").replace(/url\([^#]+#/g,"url(#").replace(/(()=>{"use strict";var s,o={512:t=>{t.exports=i},820:t=>{t.exports=e},944:e=>{e.exports=t}},r={};function n(t){var e=r[t];if(void 0!==e)return e.exports;var i=r[t]={exports:{}};return o[t](i,i.exports,n),i.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var i in e)n.o(e,i)&&!n.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var a={};n.d(a,{default:()=>D});var l=n(944),h=n.n(l),d=n(820),c=n.n(d);let{noop:p}=h(),{addEvent:u,defined:g}=h();!function(t){function e(){c().prototype.init.apply(this,arguments),this.initialised=!1,this.baseSeries=null,this.eventRemovers=[],this.addEvents()}function i(){let t=this.chart,e=this.options.baseSeries,i=g(e)&&(t.series[e]||t.get(e));this.baseSeries=i||null}function s(){this.eventRemovers.push(u(this.chart,"afterLinkSeries",(()=>{this.setBaseSeries(),this.baseSeries&&!this.initialised&&(this.setDerivedData(),this.addBaseSeriesEvents(),this.initialised=!0)})))}function o(){this.eventRemovers.push(u(this.baseSeries,"updatedData",(()=>{this.setDerivedData()})),u(this.baseSeries,"destroy",(()=>{this.baseSeries=null,this.initialised=!1})))}function r(){this.eventRemovers.forEach((t=>{t()})),c().prototype.destroy.apply(this,arguments)}t.hasDerivedData=!0,t.setDerivedData=p,t.compose=function(t){let n=t.prototype;return n.addBaseSeriesEvents=o,n.addEvents=s,n.destroy=r,n.init=e,n.setBaseSeries=i,t},t.init=e,t.setBaseSeries=i,t.addEvents=s,t.addBaseSeriesEvents=o,t.destroy=r}(s||(s={}));let m=s;var f=n(512),x=n.n(f);let{column:y}=x().seriesTypes,{arrayMax:b,arrayMin:v,correctFloat:w,extend:M,isNumber:k,merge:S}=h(),T={"square-root":function(t){return Math.ceil(Math.sqrt(t.options.data.length))},sturges:function(t){return Math.ceil(Math.log(t.options.data.length)*Math.LOG2E)},rice:function(t){return Math.ceil(2*Math.pow(t.options.data.length,1/3))}};class A extends y{binsNumber(){let t=this.options.binsNumber,e=T[t]||"function"==typeof t&&t;return Math.ceil(e&&e(this.baseSeries)||(k(t)?t:T["square-root"](this.baseSeries)))}derivedData(t,e,i){var s;let o,r=w(b(t)),n=w(v(t)),a=[],l={},h=[];for(i=this.binWidth=w(k(i)?i||1:(r-n)/e),this.options.pointRange=Math.max(i,0),o=n;o=i||0>=w(w(n+a.length*i)-o));o=w(o+i))a.push(o),l[o]=0;0!==l[n]&&(a.push(n),l[n]=0);let d=(s=a.map((t=>parseFloat(t))),function(t){let e=1;for(;s[e]<=t;)e++;return s[--e]});for(let e of t)l[w(d(e))]++;for(let t of Object.keys(l))h.push({x:Number(t),y:l[t],x2:w(Number(t)+i)});return h.sort(((t,e)=>t.x-e.x)),h[h.length-1].x2=r,h}setDerivedData(){let t=this.baseSeries?.getColumn("y");if(!t?.length)return void this.setData([]);let e=this.derivedData(t,this.binsNumber(),this.options.binWidth);this.setData(e,!1)}}A.defaultOptions=S(y.defaultOptions,{binsNumber:"square-root",binWidth:void 0,pointPadding:0,groupPadding:0,grouping:!1,pointPlacement:"between",tooltip:{headerFormat:"",pointFormat:'{point.x} - {point.x2}
{series.name} {point.y}
'}}),M(A.prototype,{hasDerivedData:m.hasDerivedData}),m.compose(A),x().registerSeriesType("histogram",A);let{areaspline:C}=x().seriesTypes,{correctFloat:P,isNumber:L,merge:E}=h();class O extends C{static mean(t){let e=t.length,i=t.reduce((function(t,e){return t+e}),0);return e>0&&i/e}static standardDeviation(t,e){let i=t.length;e=L(e)?e:O.mean(t);let s=t.reduce(((t,i)=>{let s=i-e;return t+s*s}),0);return i>1&&Math.sqrt(s/(i-1))}static normalDensity(t,e,i){let s=t-e;return Math.exp(-s*s/(2*i*i))/(i*Math.sqrt(2*Math.PI))}derivedData(t,e){let i=this.options,s=i.intervals,o=i.pointsInInterval,r=s*o*2+1,n=e/o,a=[],l=t-s*e;for(let i=0;i(()=>{"use strict";let p;var u,g,m,f,x,y,b,v={28:t=>{t.exports=r},260:t=>{t.exports=c},500:t=>{t.exports=s},512:t=>{t.exports=o},532:t=>{t.exports=e},540:t=>{t.exports=l},620:t=>{t.exports=i},632:t=>{t.exports=d},820:t=>{t.exports=n},944:e=>{e.exports=t},960:t=>{t.exports=a},984:t=>{t.exports=h}},w={};function M(t){var e=w[t];if(void 0!==e)return e.exports;var i=w[t]={exports:{}};return v[t](i,i.exports,M),i.exports}M.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return M.d(e,{a:e}),e},M.d=(t,e)=>{for(var i in e)M.o(e,i)&&!M.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},M.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var k={};M.d(k,{default:()=>eo});var S=M(944),T=M.n(S),A=M(532),C=M.n(A),P=M(620),L=M.n(P);let{parse:E}=L(),{addEvent:O,extend:D,merge:I,pick:z,splat:B}=T();!function(t){let e;function i(){let{userOptions:t}=this;this.colorAxis=[],t.colorAxis&&(t.colorAxis=B(t.colorAxis),t.colorAxis.map((t=>new e(this,t))))}function s(t){let e,i,s=this.chart.colorAxis||[],o=e=>{let i=t.allItems.indexOf(e);-1!==i&&(this.destroyItem(t.allItems[i]),t.allItems.splice(i,1))},r=[];for(s.forEach((function(t){e=t.options,e?.showInLegend&&(e.dataClasses&&e.visible?r=r.concat(t.getDataClassLegendSymbols()):e.visible&&r.push(t),t.series.forEach((function(t){(!t.options.showInLegend||e.dataClasses)&&("point"===t.options.legendType?t.points.forEach((function(t){o(t)})):o(t))})))})),i=r.length;i--;)t.allItems.unshift(r[i])}function o(t){t.visible&&t.item.legendColor&&t.item.legendItem.symbol.attr({fill:t.item.legendColor})}function r(t){this.chart.colorAxis?.forEach((e=>{e.update({},t.redraw)}))}function n(){(this.chart.colorAxis?.length||this.colorAttribs)&&this.translateColors()}function a(){let t=this.axisTypes;t?-1===t.indexOf("colorAxis")&&t.push("colorAxis"):this.axisTypes=["colorAxis"]}function l(t){let e=this,i=t?"show":"hide";e.visible=e.options.visible=!!t,["graphic","dataLabel"].forEach((function(t){e[t]&&e[t][i]()})),this.series.buildKDTree()}function h(){let t=this,e=this.getPointsCollection(),i=this.options.nullColor,s=this.colorAxis,o=this.colorKey;e.forEach((e=>{let r=e.getNestedProperty(o),n=e.options.color||(e.isNull||null===e.value?i:s&&void 0!==r?s.toColor(r,e):e.color||t.color);n&&e.color!==n&&(e.color=n,"point"===t.options.legendType&&e.legendItem&&e.legendItem.label&&t.chart.legend.colorizeItem(e,e.visible))}))}function d(){this.elem.attr("fill",E(this.start).tweenTo(E(this.end),this.pos),void 0,!0)}function c(){this.elem.attr("stroke",E(this.start).tweenTo(E(this.end),this.pos),void 0,!0)}t.compose=function(t,p,u,g,m){let f=p.prototype,x=u.prototype,y=m.prototype;f.collectionsWithUpdate.includes("colorAxis")||(e=t,f.collectionsWithUpdate.push("colorAxis"),f.collectionsWithInit.colorAxis=[f.addColorAxis],O(p,"afterCreateAxes",i),function(t){let i=t.prototype.createAxis;t.prototype.createAxis=function(t,s){if("colorAxis"!==t)return i.apply(this,arguments);let o=new e(this,I(s.axis,{index:this[t].length,isX:!1}));return this.isDirtyLegend=!0,this.axes.forEach((t=>{t.series=[]})),this.series.forEach((t=>{t.bindAxes(),t.isDirtyData=!0})),z(s.redraw,!0)&&this.redraw(s.animation),o}}(p),x.fillSetter=d,x.strokeSetter=c,O(g,"afterGetAllItems",s),O(g,"afterColorizeItem",o),O(g,"afterUpdate",r),D(y,{optionalAxis:"colorAxis",translateColors:h}),D(y.pointClass.prototype,{setVisible:l}),O(m,"afterTranslate",n,{order:1}),O(m,"bindAxes",a))},t.pointSetVisible=l}(u||(u={}));let N=u,{parse:R}=L(),{merge:j}=T();!function(t){t.initDataClasses=function(t){let e,i,s,o=this.chart,r=this.legendItem=this.legendItem||{},n=this.options,a=t.dataClasses||[],l=o.options.chart.colorCount,h=0;this.dataClasses=i=[],r.labels=[];for(let t=0,r=a.length;t=s)&&(void 0===o||t<=o)){r=n.color,e&&(e.dataClass=a,e.colorIndex=n.colorIndex);break}}else{for(i=this.normalizedValue(t),a=h.length;a--&&!(i>h[a][0]););s=h[a]||h[a+1],i=1-((o=h[a+1]||s)[0]-i)/(o[0]-s[0]||1),r=s.color.tweenTo(o.color,i)}return r}}(g||(g={}));let W=g;var G=M(500),F=M.n(G),X=M(512),H=M.n(X);let{defaultOptions:U}=T(),{series:V}=H(),{defined:Y,extend:_,fireEvent:Z,isArray:$,isNumber:q,merge:K,pick:J,relativeLength:Q}=T();U.colorAxis=K(U.xAxis,{lineWidth:0,minPadding:0,maxPadding:0,gridLineColor:"#ffffff",gridLineWidth:1,tickPixelInterval:72,startOnTick:!0,endOnTick:!0,offset:0,marker:{animation:{duration:50},width:.01,color:"#999999"},labels:{distance:8,overflow:"justify",rotation:0},minColor:"#e6e9ff",maxColor:"#0022ff",tickLength:5,showInLegend:!0});class tt extends(C()){static compose(t,e,i,s){N.compose(tt,t,e,i,s)}constructor(t,e){super(t,e),this.coll="colorAxis",this.visible=!0,this.init(t,e)}init(t,e){let i=t.options.legend||{},s=e.layout?"vertical"!==e.layout:"vertical"!==i.layout;this.side=e.side||s?2:1,this.reversed=e.reversed||!s,this.opposite=!s,super.init(t,e,"colorAxis"),this.userOptions=e,$(t.userOptions.colorAxis)&&(t.userOptions.colorAxis[this.index]=e),e.dataClasses&&this.initDataClasses(e),this.initStops(),this.horiz=s,this.zoomEnabled=!1}hasData(){return!!(this.tickPositions||[]).length}setTickPositions(){if(!this.dataClasses)return super.setTickPositions()}setOptions(t){let e=K(U.colorAxis,t,{showEmpty:!1,title:null,visible:this.chart.options.legend.enabled&&!1!==t.visible});super.setOptions(e),this.options.crosshair=this.options.marker}setAxisSize(){let t=this.chart,e=this.legendItem?.symbol,{width:i,height:s}=this.getSize();e&&(this.left=+e.attr("x"),this.top=+e.attr("y"),this.width=i=+e.attr("width"),this.height=s=+e.attr("height"),this.right=t.chartWidth-this.left-i,this.bottom=t.chartHeight-this.top-s,this.pos=this.horiz?this.left:this.top),this.len=(this.horiz?i:s)||tt.defaultLegendLength}getOffset(){let t=this.legendItem?.group,e=this.chart.axisOffset[this.side];if(t){this.axisParent=t,super.getOffset();let i=this.chart.legend;i.allItems.forEach((function(t){t instanceof tt&&t.drawLegendSymbol(i,t)})),i.render(),this.chart.getMargins(!0),this.chart.series.some((t=>t.isDrilling))||(this.isDirty=!0),this.added||(this.added=!0,this.labelLeft=0,this.labelRight=this.width),this.chart.axisOffset[this.side]=e}}setLegendColor(){let t=this.horiz,e=this.reversed,i=+!!e,s=+!e,o=t?[i,0,s,0]:[0,s,0,i];this.legendColor={linearGradient:{x1:o[0],y1:o[1],x2:o[2],y2:o[3]},stops:this.stops}}drawLegendSymbol(t,e){let i=e.legendItem||{},s=t.padding,o=t.options,r=this.options.labels,n=J(o.itemDistance,10),a=this.horiz,{width:l,height:h}=this.getSize(),d=J(o.labelPadding,a?16:30);this.setLegendColor(),i.symbol||(i.symbol=this.chart.renderer.symbol("roundedRect").attr({r:o.symbolRadius??3,zIndex:1}).add(i.group)),i.symbol.attr({x:0,y:(t.baseline||0)-11,width:l,height:h}),i.labelWidth=l+s+(a?n:J(r.x,r.distance)+(this.maxLabelLength||0)),i.labelHeight=h+s+(a?d:0)}setState(t){this.series.forEach((function(e){e.setState(t)}))}setVisible(){}getSeriesExtremes(){let t,e,i,s,o=this.series,r=o.length;for(this.dataMin=1/0,this.dataMax=-1/0;r--;){for(let n of(e=(s=o[r]).colorKey=J(s.options.colorKey,s.colorKey,s.pointValKey,s.zoneAxis,"y"),i=s[e+"Min"]&&s[e+"Max"],[e,"value","y"]))if((t=s.getColumn(n)).length)break;if(i)s.minColorValue=s[e+"Min"],s.maxColorValue=s[e+"Max"];else{let e=V.prototype.getExtremes.call(s,t);s.minColorValue=e.dataMin,s.maxColorValue=e.dataMax}Y(s.minColorValue)&&Y(s.maxColorValue)&&(this.dataMin=Math.min(this.dataMin,s.minColorValue),this.dataMax=Math.max(this.dataMax,s.maxColorValue)),i||V.prototype.applyExtremes.call(s)}}drawCrosshair(t,e){let i,s=this.legendItem||{},o=e?.plotX,r=e?.plotY,n=this.pos,a=this.len;e&&((i=this.toPixels(e.getNestedProperty(e.series.colorKey)))n+a&&(i=n+a+2),e.plotX=i,e.plotY=this.len-i,super.drawCrosshair(t,e),e.plotX=o,e.plotY=r,this.cross&&!this.cross.addedToColorAxis&&s.group&&(this.cross.addClass("highcharts-coloraxis-marker").add(s.group),this.cross.addedToColorAxis=!0,this.chart.styledMode||"object"!=typeof this.crosshair||this.cross.attr({fill:this.crosshair.color})))}getPlotLinePath(t){let e=this.left,i=t.translatedValue,s=this.top;return q(i)?this.horiz?[["M",i-4,s-6],["L",i+4,s-6],["L",i,s],["Z"]]:[["M",e,i],["L",e-6,i+6],["L",e-6,i-6],["Z"]]:super.getPlotLinePath(t)}update(t,e){let i=this.chart.legend;this.series.forEach((t=>{t.isDirtyData=!0})),(t.dataClasses&&i.allItems||this.dataClasses)&&this.destroyItems(),super.update(t,e),this.legendItem?.label&&(this.setLegendColor(),i.colorizeItem(this,!0))}destroyItems(){let t=this.chart,e=this.legendItem||{};if(e.label)t.legend.destroyItem(this);else if(e.labels)for(let i of e.labels)t.legend.destroyItem(i);t.isDirtyLegend=!0}destroy(){this.chart.isDirtyLegend=!0,this.destroyItems(),super.destroy(...[].slice.call(arguments))}remove(t){this.destroyItems(),super.remove(t)}getDataClassLegendSymbols(){let t,e=this,i=e.chart,s=e.legendItem&&e.legendItem.labels||[],o=i.options.legend,r=J(o.valueDecimals,-1),n=J(o.valueSuffix,""),a=t=>e.series.reduce(((e,i)=>(e.push(...i.points.filter((e=>e.dataClass===t))),e)),[]);return s.length||e.dataClasses.forEach(((o,l)=>{let h=o.from,d=o.to,{numberFormatter:c}=i,p=!0;t="",void 0===h?t="< ":void 0===d&&(t="> "),void 0!==h&&(t+=c(h,r)+n),void 0!==h&&void 0!==d&&(t+=" - "),void 0!==d&&(t+=c(d,r)+n),s.push(_({chart:i,name:t,options:{},drawLegendSymbol:F().rectangle,visible:!0,isDataClass:!0,setState:t=>{for(let e of a(l))e.setState(t)},setVisible:function(){this.visible=p=e.visible=!p;let t=[];for(let e of a(l))e.setVisible(p),e.hiddenInDataClass=!p,-1===t.indexOf(e.series)&&t.push(e.series);i.legend.colorizeItem(this,p),t.forEach((t=>{Z(t,"afterDataClassLegendClick")}))}},o))})),s}getSize(){let{chart:t,horiz:e}=this,{height:i,width:s}=this.options,{legend:o}=t.options;return{width:J(Y(s)?Q(s,t.chartWidth):void 0,o?.symbolWidth,e?tt.defaultLegendLength:12),height:J(Y(i)?Q(i,t.chartHeight):void 0,o?.symbolHeight,e?12:tt.defaultLegendLength)}}}tt.defaultLegendLength=200,tt.keepProps=["legendItem"],_(tt.prototype,W),Array.prototype.push.apply(C().keepProps,tt.keepProps);let et=T();et.ColorAxis=et.ColorAxis||tt,et.ColorAxis.compose(et.Chart,et.Fx,et.Legend,et.Series);let it={lang:{zoomIn:"Zoom in",zoomOut:"Zoom out"},mapNavigation:{buttonOptions:{alignTo:"plotBox",align:"left",verticalAlign:"top",x:0,width:18,height:18,padding:5,style:{color:"#666666",fontSize:"1em",fontWeight:"bold"},theme:{fill:"#ffffff",stroke:"#e6e6e6","stroke-width":1,"text-align":"center"}},buttons:{zoomIn:{onclick:function(){this.mapZoom(.5)},text:"+",y:0},zoomOut:{onclick:function(){this.mapZoom(2)},text:"-",y:28}},mouseWheelSensitivity:1.1}},{defined:st,extend:ot,pick:rt,wrap:nt}=T();!function(t){let e,i=0;function s(t){let e=this.chart;t=this.normalize(t),e.options.mapNavigation.enableDoubleClickZoomTo?e.pointer.inClass(t.target,"highcharts-tracker")&&e.hoverPoint&&e.hoverPoint.zoomTo():e.isInsidePlot(t.chartX-e.plotLeft,t.chartY-e.plotTop)&&e.mapZoom(.5,void 0,void 0,t.chartX,t.chartY)}function o(t){let s=this.chart,o=st((t=this.normalize(t)).wheelDelta)&&-t.wheelDelta/120||t.deltaY||t.detail;Math.abs(o)>=1&&(i+=Math.abs(o),e&&clearTimeout(e),e=setTimeout((()=>{i=0}),50)),i<10&&s.isInsidePlot(t.chartX-s.plotLeft,t.chartY-s.plotTop)&&s.mapView&&s.mapView.zoomBy(-(s.options.mapNavigation.mouseWheelSensitivity-1)*o,void 0,[t.chartX,t.chartY],!(1>Math.abs(o))&&void 0)}function r(t,e,i){let s=this.chart;if(e=t.call(this,e,i),s&&s.mapView){let t=s.mapView.pixelsToLonLat({x:e.chartX-s.plotLeft,y:e.chartY-s.plotTop});t&&ot(e,t)}return e}function n(t){let e=this.chart.options.mapNavigation;e&&rt(e.enableTouchZoom,e.enabled)&&(this.chart.zooming.pinchType="xy"),t.apply(this,[].slice.call(arguments,1))}t.compose=function(t){let e=t.prototype;e.onContainerDblClick||(ot(e,{onContainerDblClick:s,onContainerMouseWheel:o}),nt(e,"normalize",r),nt(e,"zoomOption",n))}}(m||(m={}));let at=m;function lt(t,e,i,s,o){if(o){let t=o?.r||0;o.brBoxY=e-t,o.brBoxHeight=s+t}return p.roundedRect(t,e,i,s,o)}function ht(t,e,i,s,o){if(o){let t=o?.r||0;o.brBoxHeight=s+t}return p.roundedRect(t,e,i,s,o)}let dt=function(t){(p=t.prototype.symbols).bottombutton=lt,p.topbutton=ht},{setOptions:ct}=T(),{composed:pt}=T(),{addEvent:ut,extend:gt,merge:mt,objectEach:ft,pick:xt,pushUnique:yt}=T();function bt(t){t&&(t.preventDefault?.(),t.stopPropagation?.(),t.cancelBubble=!0)}class vt{static compose(t,e,i){at.compose(e),dt(i),yt(pt,"Map.Navigation")&&(ut(t,"beforeRender",(function(){this.mapNavigation=new vt(this),this.mapNavigation.update()})),ct(it))}constructor(t){this.chart=t,this.navButtons=[]}update(t){let e=this,i=e.chart,s=e.navButtons,o=function(t){this.handler.call(i,t),bt(t)},r=i.options.mapNavigation;for(t&&(r=i.options.mapNavigation=mt(i.options.mapNavigation,t));s.length;)s.pop()?.destroy();if(!i.renderer.forExport&&xt(r.enableButtons,r.enabled)){e.navButtonsGroup||(e.navButtonsGroup=i.renderer.g().attr({zIndex:7}).add()),ft(r.buttons,((t,n)=>{let a={padding:(t=mt(r.buttonOptions,t)).padding};!i.styledMode&&t.theme&&(gt(a,t.theme),a.style=mt(t.theme.style,t.style));let{text:l,width:h=0,height:d=0,padding:c=0}=t,p=i.renderer.button("+"!==l&&"-"!==l&&l||"",0,0,o,a,void 0,void 0,void 0,"zoomIn"===n?"topbutton":"bottombutton").addClass("highcharts-map-navigation highcharts-"+{zoomIn:"zoom-in",zoomOut:"zoom-out"}[n]).attr({width:h,height:d,title:i.options.lang[n],zIndex:5}).add(e.navButtonsGroup);if("+"===l||"-"===l){let e=h+1,s=[["M",c+3,c+d/2],["L",c+e-3,c+d/2]];"+"===l&&s.push(["M",c+e/2,c+3],["L",c+e/2,c+d-3]),i.renderer.path(s).addClass("highcharts-button-symbol").attr(i.styledMode?{}:{stroke:t.style?.color,"stroke-width":3,"stroke-linecap":"round"}).add(p)}if(p.handler=t.onclick,ut(p.element,"dblclick",bt),s.push(p),gt(t,{width:p.width,height:2*(p.height||0)}),i.hasLoaded)p.align(t,!1,t.alignTo);else{let e=ut(i,"load",(()=>{p.element&&p.align(t,!1,t.alignTo),e()}))}}));let t=(t,e)=>!(e.x>=t.x+t.width||e.x+e.width<=t.x||e.y>=t.y+t.height||e.y+e.height<=t.y);i.hasLoaded||ut(i,"render",(function(){let s=i.exportingGroup?.getBBox();if(s){let i=e.navButtonsGroup.getBBox();if(t(s,i)){let t=-i.y-i.height+s.y-5,o=s.y+s.height-i.y+5,n=r.buttonOptions&&r.buttonOptions.verticalAlign;e.navButtonsGroup.attr({translateY:"bottom"===n?t:o})}}}))}this.updateEvents(r)}updateEvents(t){let e=this.chart;xt(t.enableDoubleClickZoom,t.enabled)||t.enableDoubleClickZoomTo?this.unbindDblClick=this.unbindDblClick||ut(e.container,"dblclick",(function(t){e.pointer.onContainerDblClick(t)})):this.unbindDblClick&&(this.unbindDblClick=this.unbindDblClick()),xt(t.enableMouseWheelZoom,t.enabled)?this.unbindMouseWheel=this.unbindMouseWheel||ut(e.container,"wheel",(function(t){if(!e.pointer.inClass(t.target,"highcharts-no-mousewheel")){let i=e.mapView?.zoom;e.pointer.onContainerMouseWheel(t),i!==e.mapView?.zoom&&bt(t)}return!1})):this.unbindMouseWheel&&(this.unbindMouseWheel=this.unbindMouseWheel())}}var wt=M(28),Mt=M.n(wt);let{column:{prototype:kt}}=H().seriesTypes,{addEvent:St,defined:Tt}=T();!function(t){function e(t){let e=this.series,i=e.chart.renderer;this.moveToTopOnHover&&this.graphic&&(e.stateMarkerGraphic||(e.stateMarkerGraphic=new(Mt())(i,"use").css({pointerEvents:"none"}).add(this.graphic.parentGroup)),"hover"===t?.state?(this.graphic.attr({id:this.id}),e.stateMarkerGraphic.attr({href:`${i.url}#${this.id}`,visibility:"visible"})):e.stateMarkerGraphic.attr({href:""}))}t.pointMembers={dataLabelOnNull:!0,moveToTopOnHover:!0,isValid:function(){return null!==this.value&&this.value!==1/0&&this.value!==-1/0&&(void 0===this.value||!isNaN(this.value))}},t.seriesMembers={colorKey:"value",axisTypes:["xAxis","yAxis","colorAxis"],parallelArrays:["x","y","value"],pointArrayMap:["value"],trackerGroups:["group","markerGroup","dataLabelsGroup"],colorAttribs:function(t){let e={};return Tt(t.color)&&(!t.state||"normal"===t.state)&&(e[this.colorProp||"fill"]=t.color),e},pointAttribs:kt.pointAttribs},t.compose=function(t){return St(t.prototype.pointClass,"afterSetState",e),t}}(f||(f={}));let At=f;var Ct=M(820),Pt=M.n(Ct);let{deg2rad:Lt}=T(),{fireEvent:Et,isNumber:Ot,pick:Dt,relativeLength:It}=T();!function(t){t.getCenter=function(){let t,e,i,s=this.options,o=this.chart,r=2*(s.slicedOffset||0),n=o.plotWidth-2*r,a=o.plotHeight-2*r,l=s.center,h=Math.min(n,a),d=s.thickness,c=s.size,p=s.innerSize||0;"string"==typeof c&&(c=parseFloat(c)),"string"==typeof p&&(p=parseFloat(p));let u=[Dt(l?.[0],"50%"),Dt(l?.[1],"50%"),Dt(c&&c<0?void 0:s.size,"100%"),Dt(p&&p<0?void 0:s.innerSize||0,"0%")];for(!o.angular||this instanceof Pt()||(u[3]=0),e=0;e<4;++e)i=u[e],t=e<2||2===e&&/%$/.test(i),u[e]=It(i,[n,a,h,u[2]][e])+(t?r:0);return u[3]>u[2]&&(u[3]=u[2]),Ot(d)&&2*d0&&(u[3]=u[2]-2*d),Et(this,"afterGetCenter",{positions:u}),u},t.getStartAndEndRadians=function(t,e){let i=Ot(t)?t:0,s=Ot(e)&&e>i&&e-i<360?e:i+360;return{start:Lt*(i+-90),end:Lt*(s+-90)}}}(x||(x={}));let zt=x;var Bt=M(960),Nt=M.n(Bt),Rt=M(540),jt=M.n(Rt);let{getOptions:Wt}=T(),{isNumber:Gt,merge:Ft,pick:Xt}=T();class Ht extends(Nt()){init(t,e){let i=Wt().credits,s=Ft({chart:{panning:{enabled:!0,type:"xy"},type:"map"},credits:{mapText:Xt(i.mapText,' © {geojson.copyrightShort}'),mapTextFull:Xt(i.mapTextFull,"{geojson.copyright}")},mapView:{},tooltip:{followTouchMove:!1}},t);super.init(s,e)}mapZoom(t,e,i,s,o){this.mapView&&(Gt(t)&&(t=Math.log(t)/Math.log(.5)),this.mapView.zoomBy(t,Gt(e)&&Gt(i)?this.mapView.projection.inverse([e,i]):void 0,Gt(s)&&Gt(o)?[s,o]:void 0))}update(t){t.chart&&"map"in t.chart&&this.mapView?.recommendMapView(this,[t.chart.map,...(this.options.series||[]).map((t=>t.mapData))],!0),super.update.apply(this,arguments)}}!function(t){t.maps={},t.mapChart=function(e,i,s){return new t(e,i,s)},t.splitPath=function(t){let e;return e="string"==typeof t?(t=t.replace(/([A-Z])/gi," $1 ").replace(/^\s*/,"").replace(/\s*$/,"")).split(/[ ,;]+/).map((t=>/[A-Z]/i.test(t)?t:parseFloat(t))):t,jt().prototype.pathToSegments(e)}}(Ht||(Ht={}));let Ut=Ht,Vt={boundsFromPath:function(t){let e,i=-Number.MAX_VALUE,s=Number.MAX_VALUE,o=-Number.MAX_VALUE,r=Number.MAX_VALUE;if(t.forEach((t=>{let n=t[t.length-2],a=t[t.length-1];"number"==typeof n&&"number"==typeof a&&(s=Math.min(s,n),i=Math.max(i,n),r=Math.min(r,a),o=Math.max(o,a),e=!0)})),e)return{x1:s,y1:r,x2:i,y2:o}}},{boundsFromPath:Yt}=Vt,_t=H().seriesTypes.scatter.prototype.pointClass,{extend:Zt,isNumber:$t,pick:qt}=T();class Kt extends _t{static getProjectedPath(t,e){return t.projectedPath||(e&&t.geometry?(e.hasCoordinates=!0,t.projectedPath=e.path(t.geometry)):t.projectedPath=t.path),t.projectedPath||[]}applyOptions(t,e){let i=this.series,s=super.applyOptions(t,e),o=i.joinBy;if(i.mapData&&i.mapMap){let t=o[1],e=super.getNestedProperty(t),r=void 0!==e&&i.mapMap[e];r?Zt(s,{...r,name:s.name??r.name}):-1!==i.pointArrayMap.indexOf("value")&&(s.value=s.value||null)}return s}getProjectedBounds(t){let e=Yt(Kt.getProjectedPath(this,t)),i=this.properties,s=this.series.chart.mapView;if(e){let o=i?.["hc-middle-lon"],r=i?.["hc-middle-lat"];if(s&&$t(o)&&$t(r)){let i=t.forward([o,r]);e.midX=i[0],e.midY=i[1]}else{let t=i?.["hc-middle-x"],s=i?.["hc-middle-y"];e.midX=e.x1+(e.x2-e.x1)*qt(this.middleX,$t(t)?t:.5);let o=qt(this.middleY,$t(s)?s:.5);this.geometry||(o=1-o),e.midY=e.y2-(e.y2-e.y1)*o}return e}}onMouseOver(t){T().clearTimeout(this.colorInterval),!this.isNull&&this.visible||this.series.options.nullInteraction?super.onMouseOver.call(this,t):this.series.onMouseOut()}setVisible(t){this.visible=this.options.visible=!!t,this.dataLabel&&this.dataLabel[t?"show":"hide"](),this.graphic&&this.graphic.attr(this.series.pointAttribs(this))}zoomTo(t){let e=this.series.chart,i=e.mapView,s=this.bounds;if(i&&s){let o=$t(this.insetIndex)&&i.insets[this.insetIndex];if(o){let t=o.projectedUnitsToPixels({x:s.x1,y:s.y1}),e=o.projectedUnitsToPixels({x:s.x2,y:s.y2}),r=i.pixelsToProjectedUnits({x:t.x,y:t.y}),n=i.pixelsToProjectedUnits({x:e.x,y:e.y});s={x1:r.x,y1:r.y,x2:n.x,y2:n.y}}i.fitToBounds(s,void 0,!1),this.series.isDirty=!0,e.redraw(t)}}}Zt(Kt.prototype,{dataLabelOnNull:At.pointMembers.dataLabelOnNull,moveToTopOnHover:At.pointMembers.moveToTopOnHover,isValid:At.pointMembers.isValid});let{isNumber:Jt}=T(),Qt={center:[0,0],fitToGeometry:void 0,maxZoom:void 0,padding:0,projection:{name:void 0,parallels:void 0,rotation:void 0},zoom:void 0,insetOptions:{borderColor:"#cccccc",borderWidth:1,padding:"10%",relativeTo:"mapBoundingBox",units:"percent"}};var te=M(984),ee=M.n(te);let{win:ie}=T(),{format:se}=ee(),{error:oe,extend:re,merge:ne,wrap:ae}=T();!function(t){function e(t){return this.mapView&&this.mapView.lonLatToProjectedUnits(t)}function i(t){return this.mapView&&this.mapView.projectedUnitsToLonLat(t)}function s(t,e){let i=this.options.chart.proj4||ie.proj4;if(!i)return void oe(21,!1,this);let{jsonmarginX:s=0,jsonmarginY:o=0,jsonres:r=1,scale:n=1,xoffset:a=0,xpan:l=0,yoffset:h=0,ypan:d=0}=e,c=i(e.crs,[t.lon,t.lat]),p=e.cosAngle||e.rotation&&Math.cos(e.rotation),u=e.sinAngle||e.rotation&&Math.sin(e.rotation),g=e.rotation?[c[0]*p+c[1]*u,-c[0]*u+c[1]*p]:c;return{x:((g[0]-a)*n+l)*r+s,y:-(((h-g[1])*n+d)*r-o)}}function o(t,e){let i=this.options.chart.proj4||ie.proj4;if(!i)return void oe(21,!1,this);if(null===t.y)return;let{jsonmarginX:s=0,jsonmarginY:o=0,jsonres:r=1,scale:n=1,xoffset:a=0,xpan:l=0,yoffset:h=0,ypan:d=0}=e,c={x:((t.x-s)/r-l)/n+a,y:((t.y-o)/r+d)/n+h},p=e.cosAngle||e.rotation&&Math.cos(e.rotation),u=e.sinAngle||e.rotation&&Math.sin(e.rotation),g=i(e.crs,"WGS84",e.rotation?{x:c.x*p+-c.y*u,y:c.x*u+c.y*p}:c);return{lat:g.y,lon:g.x}}function r(t,e){e||(e=Object.keys(t.objects)[0]);let i=t.objects[e];if(i["hc-decoded-geojson"]&&i["hc-decoded-geojson"].title===t.title)return i["hc-decoded-geojson"];let s=t.arcs;if(t.transform){let e,i,o,r=t.arcs,{scale:n,translate:a}=t.transform;s=[];for(let t=0,l=r.length;t"number"==typeof t[0]?t.reduce(((t,e,i)=>{let o=e<0?s[~e]:s[e];return e<0?(o=o.slice(0,0===i?o.length:o.length-1)).reverse():i&&(o=o.slice(1)),t.concat(o)}),[]):t.map(o),r=i.geometries,n=[];for(let t=0,e=r.length;t(t.x+=e.x,t.y+=e.y,t)),{x:0,y:0});return{x:e.x/t.length,y:e.y/t.length}},t.getDistanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},t.getAngleBetweenPoints=function(t,e){return Math.atan2(e.x-t.x,e.y-t.y)},t.pointInPolygon=function({x:t,y:e},i){let s,o,r=i.length,n=!1;for(s=0,o=r-1;se!=h>e&&t<(l-r)*(e-a)/(h-a)+r&&(n=!n)}return n}}(b||(b={}));let he=b;function de(t,e,i=!0){let s,o,r,n=e[e.length-1],a=t;for(let t=0;t(e[1]-t[1])*(i[0]-t[0])}function pe(t,e,i,s){let o=[t[0]-e[0],t[1]-e[1]],r=[i[0]-s[0],i[1]-s[1]],n=t[0]*e[1]-t[1]*e[0],a=i[0]*s[1]-i[1]*s[0],l=1/(o[0]*r[1]-o[1]*r[0]),h=[(n*r[0]-a*o[0])*l,(n*r[1]-a*o[1])*l];return h.isIntersection=!0,h}let ue=Math.sign||(t=>0===t?0:t>0?1:-1),ge=Math.PI/180,me=Math.PI/2,fe=t=>Math.tan((me+t)/2),xe=Math.sqrt(3)/2,ye=Math.PI/4,be=Math.PI/180,ve=Math.PI/180,we=Math.PI/180,{clipLineString:Me,clipPolygon:ke}={clipLineString:function(t,e){let i=[],s=de(t,e,!1);for(let t=1;t(t<-180&&(t+=360),t>180&&(t-=360),t),Pe=t=>(1-Math.cos(t))/2;class Le{static add(t,e){Le.registry[t]=e}static distance(t,e){let{atan2:i,sqrt:s}=Math,o=((t,e)=>{let i=Math.cos,s=t[1]*Ae,o=t[0]*Ae,r=e[1]*Ae,n=e[0]*Ae;return Pe(r-s)+i(s)*i(r)*Pe(n-o)})(t,e);return 2*i(s(o),s(1-o))*6371e3}static geodesic(t,e,i,s=5e5){let{atan2:o,cos:r,sin:n,sqrt:a}=Math,l=Le.distance,h=t[1]*Ae,d=t[0]*Ae,c=e[1]*Ae,p=e[0]*Ae,u=r(h)*r(d),g=r(c)*r(p),m=r(h)*n(d),f=r(c)*n(p),x=n(h),y=n(c),b=l(t,e),v=b/6371e3,w=n(v),M=Math.round(b/s),k=[];if(i&&k.push(t),M>1){let t=1/M;for(let e=t;e<.999;e+=t){let t=n((1-e)*v)/w,i=n(e*v)/w,s=t*u+i*g,r=t*m+i*f,l=o(t*x+i*y,a(s*s+r*r)),h=o(r,s);k.push([h/Ae,l/Ae])}}return i&&k.push(e),k}static insertGeodesics(t){let e=t.length-1;for(;e--;)if(Math.max(Math.abs(t[e][0]-t[e+1][0]),Math.abs(t[e][1]-t[e+1][1]))>10){let i=Le.geodesic(t[e],t[e+1]);i.length&&t.splice(e+1,0,...i)}}static toString(t){let{name:e,rotation:i}=t||{};return[e,i&&i.join(",")].join(";")}constructor(t={}){this.hasCoordinates=!1,this.hasGeoProjection=!1,this.maxLatitude=90,this.options=t;let{name:e,projectedBounds:i,rotation:s}=t;this.rotator=s?this.getRotator(s):void 0;let o=e?Le.registry[e]:void 0;o&&(this.def=new o(t));let{def:r,rotator:n}=this;r&&(this.maxLatitude=r.maxLatitude||90,this.hasGeoProjection=!0),n&&r?(this.forward=t=>r.forward(n.forward(t)),this.inverse=t=>n.inverse(r.inverse(t))):r?(this.forward=t=>r.forward(t),this.inverse=t=>r.inverse(t)):n&&(this.forward=n.forward,this.inverse=n.inverse),this.bounds="world"===i?r&&r.bounds:i}lineIntersectsBounds(t){let e,{x1:i,x2:s,y1:o,y2:r}=this.bounds||{},n=(t,e,i)=>{let[s,o]=t,r=+!e;if("number"==typeof i&&s[e]>=i!=o[e]>=i){let t=(i-s[e])/(o[e]-s[e]),n=s[r]+t*(o[r]-s[r]);return e?[n,i]:[i,n]}},a=t[0];return((e=n(t,0,i))||(e=n(t,0,s)))&&(a=e,t[1]=e),((e=n(t,1,o))||(e=n(t,1,r)))&&(a=e),a}getRotator(t){let e=t[0]*Ae,i=(t[1]||0)*Ae,s=(t[2]||0)*Ae,o=Math.cos(i),r=Math.sin(i),n=Math.cos(s),a=Math.sin(s);if(0!==e||0!==i||0!==s)return{forward:t=>{let i=t[0]*Ae+e,s=t[1]*Ae,l=Math.cos(s),h=Math.cos(i)*l,d=Math.sin(i)*l,c=Math.sin(s),p=c*o+h*r;return[Math.atan2(d*n-p*a,h*o-c*r)/Ae,Math.asin(p*n+d*a)/Ae]},inverse:t=>{let i=t[0]*Ae,s=t[1]*Ae,l=Math.cos(s),h=Math.cos(i)*l,d=Math.sin(i)*l,c=Math.sin(s),p=c*n-d*a;return[(Math.atan2(d*n+c*a,h*o+p*r)-e)/Ae,Math.asin(p*o-h*r)/Ae]}}}forward(t){return t}inverse(t){return t}cutOnAntimeridian(t,e){let i,s=[],o=[t];for(let i=0,o=t.length;i90)&&(a<-90||a>90)&&n>0!=a>0){let t=Se((180-(n+360)%360)/((a+360)%360-(n+360)%360),0,1),e=r[1]+t*(o[1]-r[1]);s.push({i,lat:e,direction:n<0?1:-1,previousLonLat:r,lonLat:o})}}if(s.length)if(e){s.length%2==1&&(i=s.slice().sort(((t,e)=>Math.abs(e.lat)-Math.abs(t.lat)))[0],Te(s,i));let e=s.length-2;for(;e>=0;){let i=s[e].i,r=Ce(180+1e-6*s[e].direction),n=Ce(180-1e-6*s[e].direction),a=t.splice(i,s[e+1].i-i,...Le.geodesic([r,s[e].lat],[r,s[e+1].lat],!0));a.push(...Le.geodesic([n,s[e+1].lat],[n,s[e].lat],!0)),o.push(a),e-=2}if(i)for(let t=0;t-1){let t=(s<0?-1:1)*this.maxLatitude,o=Ce(180+1e-6*e),a=Ce(180-1e-6*e),l=Le.geodesic([o,s],[o,t],!0);for(let i=o+120*e;i>-180&&i<180;i+=120*e)l.push([i,t]);l.push(...Le.geodesic([a,t],[a,i.lat],!0)),r.splice(n,0,...l);break}}}else{let e=s.length;for(;e--;){let i=s[e].i,r=t.splice(i,t.length,[Ce(180+1e-6*s[e].direction),s[e].lat]);r.unshift([Ce(180-1e-6*s[e].direction),s[e].lat]),o.push(r)}}return o}path(t){let e,{bounds:i,def:s,rotator:o}=this,r=[],n="Polygon"===t.type||"MultiPolygon"===t.type,a=this.hasGeoProjection,l=!s||!1!==s.antimeridianCutting,h=l?o:void 0,d=l&&s||this;i&&(e=[[i.x1,i.y1],[i.x2,i.y1],[i.x2,i.y2],[i.x1,i.y2]]);let c=t=>{let s=t.map((t=>{if(l){h&&(t=h.forward(t));let e=t[0];1e-6>Math.abs(e-180)&&(e=e<180?179.999999:180.000001),t=[e,t[1]]}return t})),o=[s];a&&(Le.insertGeodesics(s),l&&(o=this.cutOnAntimeridian(s,n))),o.forEach((t=>{let s,o;if(t.length<2)return;let h=!1,c=!1,p=t=>{h?r.push(["L",t[0],t[1]]):(r.push(["M",t[0],t[1]]),h=!0)},u=!1,g=!1,m=t.map((t=>{let e=d.forward(t);return e.outside?u=!0:g=!0,e[1]===1/0?e[1]=1e10:e[1]===-1/0&&(e[1]=-1e10),e}));if(l){if(n&&m.push(m[0]),u){if(!g)return;if(e)if(n)m=ke(m,e);else if(i)return void Me(m,e).forEach((t=>{h=!1,t.forEach(p)}))}m.forEach(p)}else for(let e=0;ep(d.forward(t)))):h=!1),p(r),o=i,c=!1)}}))};return"LineString"===t.type?c(t.coordinates):"MultiLineString"===t.type?t.coordinates.forEach((t=>c(t))):"Polygon"===t.type?(t.coordinates.forEach((t=>c(t))),r.length&&r.push(["Z"])):"MultiPolygon"===t.type&&(t.coordinates.forEach((t=>{t.forEach((t=>c(t)))})),r.length&&r.push(["Z"])),r}}Le.registry={EqualEarth:class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-97.52595454902263,y2:97.52595454902263}}forward(t){let e=Math.PI/180,i=Math.asin(xe*Math.sin(t[1]*e)),s=i*i,o=s*s*s;return[t[0]*e*Math.cos(i)*74.03120656864502/(xe*(1.340264+-.24331799999999998*s+o*(.0062510000000000005+.034164*s))),74.03120656864502*i*(1.340264+-.081106*s+o*(893e-6+.003796*s))]}inverse(t){let e,i,s,o,r=t[0]/74.03120656864502,n=t[1]/74.03120656864502,a=180/Math.PI,l=n;for(let t=0;t<12&&(i=(e=l*l)*e*e,s=l*(1.340264+-.081106*e+i*(893e-6+.003796*e))-n,l-=o=s/(1.340264+-.24331799999999998*e+i*(.0062510000000000005+.034164*e)),!(1e-9>Math.abs(o)));++t);i=(e=l*l)*e*e;let h=a*xe*r*(1.340264+-.24331799999999998*e+i*(.0062510000000000005+.034164*e))/Math.cos(l),d=a*Math.asin(Math.sin(l)/xe);return Math.abs(h)>180?[NaN,NaN]:[h,d]}},LambertConformalConic:class{constructor(t){let e=(t.parallels||[]).map((t=>t*ge)),i=e[0]||0,s=e[1]??i,o=Math.cos(i);"object"==typeof t.projectedBounds&&(this.projectedBounds=t.projectedBounds);let r=i===s?Math.sin(i):Math.log(o/Math.cos(s))/Math.log(fe(s)/fe(i));1e-10>Math.abs(r)&&(r=1e-10*(ue(r)||1)),this.n=r,this.c=o*Math.pow(fe(i),r)/r}forward(t){let{c:e,n:i,projectedBounds:s}=this,o=t[0]*ge,r=t[1]*ge;e>0?r<1e-6-me&&(r=1e-6-me):r>me-1e-6&&(r=me-1e-6);let n=e/Math.pow(fe(r),i),a=n*Math.sin(i*o)*63.78137,l=63.78137*(e-n*Math.cos(i*o)),h=[a,l];return s&&(as.x2||ls.y2)&&(h.outside=!0),h}inverse(t){let{c:e,n:i}=this,s=t[0]/63.78137,o=e-t[1]/63.78137,r=ue(i)*Math.sqrt(s*s+o*o),n=Math.atan2(s,Math.abs(o))*ue(o);return o*i<0&&(n-=Math.PI*ue(s)*ue(o)),[n/i/ge,(2*Math.atan(Math.pow(e/r,1/i))-me)/ge]}},Miller:class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-146.91480769173063,y2:146.91480769173063}}forward(t){return[t[0]*be*63.78137,79.7267125*Math.log(Math.tan(ye+.4*t[1]*be))]}inverse(t){return[t[0]/63.78137/be,2.5*(Math.atan(Math.exp(t[1]/63.78137*.8))-ye)/be]}},Orthographic:class{constructor(){this.antimeridianCutting=!1,this.bounds={x1:-63.78460826781007,x2:63.78460826781007,y1:-63.78460826781007,y2:63.78460826781007}}forward(t){let e=t[0],i=t[1]*ve,s=[Math.cos(i)*Math.sin(e*ve)*63.78460826781007,63.78460826781007*Math.sin(i)];return(e<-90||e>90)&&(s.outside=!0),s}inverse(t){let e=t[0]/63.78460826781007,i=t[1]/63.78460826781007,s=Math.sqrt(e*e+i*i),o=Math.asin(s),r=Math.sin(o);return[Math.atan2(e*r,s*Math.cos(o))/ve,Math.asin(s&&i*r/s)/ve]}},WebMercator:class{constructor(){this.bounds={x1:-200.37508342789243,x2:200.37508342789243,y1:-200.3750834278071,y2:200.3750834278071},this.maxLatitude=85.0511287798}forward(t){let e=Math.sin(t[1]*we),i=[63.78137*t[0]*we,63.78137*Math.log((1+e)/(1-e))/2];return Math.abs(t[1])>this.maxLatitude&&(i.outside=!0),i}inverse(t){return[t[0]/(63.78137*we),(2*Math.atan(Math.exp(t[1]/63.78137))-Math.PI/2)/we]}}};let{composed:Ee}=T(),{pointInPolygon:Oe}=he,{topo2geo:De}=le,{boundsFromPath:Ie}=Vt,{addEvent:ze,clamp:Be,crisp:Ne,fireEvent:Re,isArray:je,isNumber:We,isObject:Ge,isString:Fe,merge:Xe,pick:He,pushUnique:Ue,relativeLength:Ve}=T(),Ye={};function _e(t,e){let{width:i,height:s}=e;return Math.log(400.979322/Math.max((t.x2-t.x1)/(i/256),(t.y2-t.y1)/(s/256)))/Math.log(2)}function Ze(t){t.seriesOptions.mapData&&this.mapView?.recommendMapView(this,[this.options.chart.map,t.seriesOptions.mapData],this.options.drilldown?.mapZooming)}class $e{static compose(t){Ue(Ee,"MapView")&&(Ye=t.maps,ze(t,"afterInit",(function(){this.mapView=new $e(this,this.options.mapView)}),{order:0}),ze(t,"addSeriesAsDrilldown",Ze),ze(t,"afterDrillUp",Ze))}static compositeBounds(t){if(t.length)return t.slice(1).reduce(((t,e)=>(t.x1=Math.min(t.x1,e.x1),t.y1=Math.min(t.y1,e.y1),t.x2=Math.max(t.x2,e.x2),t.y2=Math.max(t.y2,e.y2),t)),Xe(t[0]))}static mergeInsets(t,e){let i=t=>{let e={};return t.forEach(((t,i)=>{e[t&&t.id||`i${i}`]=t})),e},s=Xe(i(t),i(e));return Object.keys(s).map((t=>s[t]))}constructor(t,e){this.allowTransformAnimation=!0,this.eventsToUnbind=[],this.insets=[],this.padding=[0,0,0,0],this.recommendedMapView={},this instanceof qe||this.recommendMapView(t,[t.options.chart.map,...(t.options.series||[]).map((t=>t.mapData))]),this.userOptions=e||{};let i=Xe(Qt,this.recommendedMapView,e),s=this.recommendedMapView?.insets,o=e&&e.insets;s&&o&&(i.insets=$e.mergeInsets(s,o)),this.chart=t,this.center=i.center,this.options=i,this.projection=new Le(i.projection),this.playingField=t.plotBox,this.zoom=i.zoom||0,this.minZoom=i.minZoom,this.createInsets(),this.eventsToUnbind.push(ze(t,"afterSetChartSize",(()=>{this.playingField=this.getField(),(void 0===this.minZoom||this.minZoom===this.zoom)&&(this.fitToBounds(void 0,void 0,!1),!this.chart.hasRendered&&We(this.userOptions.zoom)&&(this.zoom=this.userOptions.zoom),this.userOptions.center&&Xe(!0,this.center,this.userOptions.center))}))),this.setUpEvents()}createInsets(){let t=this.options,e=t.insets;e&&e.forEach((e=>{let i=new qe(this,Xe(t.insetOptions,e));this.insets.push(i)}))}fitToBounds(t,e,i=!0,s){let o=t||this.getProjectedBounds();if(o){let r=He(e,t?0:this.options.padding),n=this.getField(!1),a=je(r)?r:[r,r,r,r];this.padding=[Ve(a[0],n.height),Ve(a[1],n.width),Ve(a[2],n.height),Ve(a[3],n.width)],this.playingField=this.getField();let l=_e(o,this.playingField);t||(this.minZoom=l);let h=this.projection.inverse([(o.x2+o.x1)/2,(o.y2+o.y1)/2]);this.setView(h,l,i,s)}}getField(t=!0){let e=t?this.padding:[0,0,0,0];return{x:e[3],y:e[0],width:this.chart.plotWidth-e[1]-e[3],height:this.chart.plotHeight-e[0]-e[2]}}getGeoMap(t){if(Fe(t))return Ye[t]&&"Topology"===Ye[t].type?De(Ye[t]):Ye[t];if(Ge(t,!0)){if("FeatureCollection"===t.type)return t;if("Topology"===t.type)return De(t)}}getMapBBox(){let t=this.getProjectedBounds(),e=this.getScale();if(t){let i=this.padding,s=this.projectedUnitsToPixels({x:t.x1,y:t.y2});return{width:(t.x2-t.x1)*e+i[1]+i[3],height:(t.y2-t.y1)*e+i[0]+i[2],x:s.x-i[3],y:s.y-i[0]}}}getProjectedBounds(){let t=this.projection,e=this.chart.series.reduce(((t,e)=>{let i=e.getProjectedBounds&&e.getProjectedBounds();return i&&!1!==e.options.affectsMapView&&t.push(i),t}),[]),i=this.options.fitToGeometry;if(i){if(!this.fitToGeometryCache)if("MultiPoint"===i.type){let e=i.coordinates.map((e=>t.forward(e))),s=e.map((t=>t[0])),o=e.map((t=>t[1]));this.fitToGeometryCache={x1:Math.min.apply(0,s),x2:Math.max.apply(0,s),y1:Math.min.apply(0,o),y2:Math.max.apply(0,o)}}else this.fitToGeometryCache=Ie(t.path(i));return this.fitToGeometryCache}return this.projection.bounds||$e.compositeBounds(e)}getScale(){return 256/400.979322*Math.pow(2,this.zoom)}getSVGTransform(){let{x:t,y:e,width:i,height:s}=this.playingField,o=this.projection.forward(this.center),r=this.projection.hasCoordinates?-1:1,n=this.getScale(),a=n*r;return{scaleX:n,scaleY:a,translateX:t+i/2-o[0]*n,translateY:e+s/2-o[1]*a}}lonLatToPixels(t){let e=this.lonLatToProjectedUnits(t);if(e)return this.projectedUnitsToPixels(e)}lonLatToProjectedUnits(t){let e=this.chart,i=e.mapTransforms;if(i){for(let s in i)if(Object.hasOwnProperty.call(i,s)&&i[s].hitZone){let o=e.transformFromLatLon(t,i[s]);if(o&&Oe(o,i[s].hitZone.coordinates[0]))return o}return e.transformFromLatLon(t,i.default)}for(let e of this.insets)if(e.options.geoBounds&&Oe({x:t.lon,y:t.lat},e.options.geoBounds.coordinates[0])){let i=e.projection.forward([t.lon,t.lat]),s=e.projectedUnitsToPixels({x:i[0],y:i[1]});return this.pixelsToProjectedUnits(s)}let s=this.projection.forward([t.lon,t.lat]);if(!s.outside)return{x:s[0],y:s[1]}}projectedUnitsToLonLat(t){let e=this.chart,i=e.mapTransforms;if(i){for(let s in i)if(Object.hasOwnProperty.call(i,s)&&i[s].hitZone&&Oe(t,i[s].hitZone.coordinates[0]))return e.transformToLatLon(t,i[s]);return e.transformToLatLon(t,i.default)}let s=this.projectedUnitsToPixels(t);for(let t of this.insets)if(t.hitZone&&Oe(s,t.hitZone.coordinates[0])){let e=t.pixelsToProjectedUnits(s),i=t.projection.inverse([e.x,e.y]);return{lon:i[0],lat:i[1]}}let o=this.projection.inverse([t.x,t.y]);return{lon:o[0],lat:o[1]}}recommendMapView(t,e,i=!1){this.recommendedMapView={};let s=e.map((t=>this.getGeoMap(t))),o=[];s.forEach((t=>{if(t&&(Object.keys(this.recommendedMapView).length||(this.recommendedMapView=t["hc-recommended-mapview"]||{}),t.bbox)){let[e,i,s,r]=t.bbox;o.push({x1:e,y1:i,x2:s,y2:r})}}));let r=o.length&&$e.compositeBounds(o);Re(this,"onRecommendMapView",{geoBounds:r,chart:t},(function(){if(r&&this.recommendedMapView){if(!this.recommendedMapView.projection){let{x1:t,y1:e,x2:i,y2:s}=r;this.recommendedMapView.projection=i-t>180&&s-e>90?{name:"EqualEarth",parallels:[0,0],rotation:[0]}:{name:"LambertConformalConic",parallels:[e,s],rotation:[-(t+i)/2]}}this.recommendedMapView.insets||(this.recommendedMapView.insets=void 0)}})),this.geoMap=s[0],i&&t.hasRendered&&!t.userOptions.mapView?.projection&&this.recommendedMapView&&this.update(this.recommendedMapView)}redraw(t){this.chart.series.forEach((t=>{t.useMapGeometry&&(t.isDirty=!0)})),this.chart.redraw(t)}setView(t,e,i=!0,s){t&&(this.center=t),"number"==typeof e&&("number"==typeof this.minZoom&&(e=Math.max(e,this.minZoom)),"number"==typeof this.options.maxZoom&&(e=Math.min(e,this.options.maxZoom)),We(e)&&(this.zoom=e));let o=this.getProjectedBounds();if(o){let t=this.projection.forward(this.center),{x:e,y:i,width:s,height:r}=this.playingField,n=this.getScale(),a=this.projectedUnitsToPixels({x:o.x1,y:o.y1}),l=this.projectedUnitsToPixels({x:o.x2,y:o.y2}),h=[(o.x1+o.x2)/2,(o.y1+o.y2)/2];if(!this.chart.series.some((t=>t.isDrilling))){let o=a.x,d=l.y,c=l.x,p=a.y;c-oe+s&&o>e&&(t[0]+=Math.min(c-s-e,o-e)/n),p-di+r&&d>i&&(t[1]-=Math.min(p-r-i,d-i)/n),this.center=this.projection.inverse(t)}this.insets.forEach((t=>{t.options.field&&(t.hitZone=t.getHitZone(),t.playingField=t.getField())})),this.render()}Re(this,"afterSetView"),i&&this.redraw(s)}projectedUnitsToPixels(t){let e=this.getScale(),i=this.projection.forward(this.center),s=this.playingField,o=s.x+s.width/2,r=s.y+s.height/2;return{x:o-e*(i[0]-t.x),y:r+e*(i[1]-t.y)}}pixelsToLonLat(t){return this.projectedUnitsToLonLat(this.pixelsToProjectedUnits(t))}pixelsToProjectedUnits(t){let{x:e,y:i}=t,s=this.getScale(),o=this.projection.forward(this.center),r=this.playingField,n=r.x+r.width/2,a=r.y+r.height/2;return{x:o[0]+(e-n)/s,y:o[1]-(i-a)/s}}setUpEvents(){let t,e,i,{chart:s}=this,o=o=>{let{lastTouches:r,pinchDown:n}=s.pointer,a=this.projection,l=o.touches,{mouseDownX:h,mouseDownY:d}=s,c=0;if(1===n?.length?(h=n[0].chartX,d=n[0].chartY):2===n?.length&&(h=(n[0].chartX+n[1].chartX)/2,d=(n[0].chartY+n[1].chartY)/2),2===l?.length&&r&&(c=Math.log(Math.sqrt(Math.pow(r[0].chartX-r[1].chartX,2)+Math.pow(r[0].chartY-r[1].chartY,2))/Math.sqrt(Math.pow(l[0].chartX-l[1].chartX,2)+Math.pow(l[0].chartY-l[1].chartY,2)))/Math.log(.5)),We(h)&&We(d)){let r=`${h},${d}`,{chartX:n,chartY:p}=o.originalEvent;2===l?.length&&(n=(l[0].chartX+l[1].chartX)/2,p=(l[0].chartY+l[1].chartY)/2),r!==e&&(e=r,t=this.projection.forward(this.center),i=(this.projection.options.rotation||[0,0]).slice());let u=a.def&&a.def.bounds,g=u&&_e(u,this.playingField)||-1/0;if("Orthographic"===a.options.name&&2>(l?.length||0)&&(this.minZoom||1/0)<1.3*g){let t=440/(this.getScale()*Math.min(s.plotWidth,s.plotHeight));if(i){let e=(h-n)*t-i[0],o=Be(-i[1]-(d-p)*t,-80,80),r=this.zoom;this.update({projection:{rotation:[-e,-o]}},!1),this.fitToBounds(void 0,void 0,!1),this.zoom=r,s.redraw(!1)}}else if(We(n)&&We(p)){let e=this.getScale(),i=this.projection.hasCoordinates?1:-1,s=this.projection.inverse([t[0]+(h-n)/e,t[1]-(d-p)/e*i]);isNaN(s[0]+s[1])||this.zoomBy(c,s,void 0,!1)}o.preventDefault()}};ze(s,"pan",o),ze(s,"touchpan",o),ze(s,"selection",(t=>{if(t.resetSelection)this.zoomBy();else{let e=t.x-s.plotLeft,i=t.y-s.plotTop,{y:o,x:r}=this.pixelsToProjectedUnits({x:e,y:i}),{y:n,x:a}=this.pixelsToProjectedUnits({x:e+t.width,y:i+t.height});this.fitToBounds({x1:r,y1:o,x2:a,y2:n},void 0,!0,!t.originalEvent.touches&&void 0),/^touch/.test(t.originalEvent.type)||s.showResetZoom(),t.preventDefault()}}))}render(){this.group||(this.group=this.chart.renderer.g("map-view").attr({zIndex:4}).add())}update(t,e=!0,i){let s=t.projection,o=s&&Le.toString(s)!==Le.toString(this.options.projection),r=!1;Xe(!0,this.userOptions,t),Xe(!0,this.options,t),"insets"in t&&(this.insets.forEach((t=>t.destroy())),this.insets.length=0,r=!0),(o||"fitToGeometry"in t)&&delete this.fitToGeometryCache,(o||r)&&(this.chart.series.forEach((t=>{let e=t.transformGroups;if(t.clearBounds&&t.clearBounds(),t.isDirty=!0,t.isDirtyData=!0,r&&e)for(;e.length>1;){let t=e.pop();t&&t.destroy()}})),o&&(this.projection=new Le(this.options.projection)),r&&this.createInsets(),!t.center&&Object.hasOwnProperty.call(t,"zoom")&&!We(t.zoom)&&this.fitToBounds(void 0,void 0,!1)),t.center||We(t.zoom)?this.setView(this.options.center,t.zoom,!1):"fitToGeometry"in t&&this.fitToBounds(void 0,void 0,!1),e&&this.chart.redraw(i)}zoomBy(t,e,i,s){let o=this.chart,r=this.projection.forward(this.center);if("number"==typeof t){let n,a,l,h=this.zoom+t;if(i){let[t,e]=i,s=this.getScale(),n=t-o.plotLeft-o.plotWidth/2,h=e-o.plotTop-o.plotHeight/2;a=r[0]+n/s,l=r[1]+h/s}if("number"==typeof a&&"number"==typeof l){let t=1-Math.pow(2,this.zoom)/Math.pow(2,h),e=r[0]-a,i=r[1]-l;r[0]-=e*t,r[1]+=i*t,n=this.projection.inverse(r)}this.setView(e||n,h,void 0,s)}else this.fitToBounds(void 0,void 0,void 0,s)}}class qe extends $e{constructor(t,e){if(super(t.chart,e),this.id=e.id,this.mapView=t,this.options=Xe({center:[0,0]},t.options.insetOptions,e),this.allBounds=[],this.options.geoBounds){let e=t.projection.path(this.options.geoBounds);this.geoBoundsProjectedBox=Ie(e),this.geoBoundsProjectedPolygon=e.map((t=>[t[1]||0,t[2]||0]))}}getField(t=!0){let e=this.hitZone;if(e){let i=t?this.padding:[0,0,0,0],s=e.coordinates[0],o=s.map((t=>t[0])),r=s.map((t=>t[1])),n=Math.min.apply(0,o)+i[3],a=Math.max.apply(0,o)-i[1],l=Math.min.apply(0,r)+i[0],h=Math.max.apply(0,r)-i[2];if(We(n)&&We(l))return{x:n,y:l,width:a-n,height:h-l}}return super.getField.call(this,t)}getHitZone(){let{chart:t,mapView:e,options:i}=this,{coordinates:s}=i.field||{};if(s){let o=s[0];if("percent"===i.units){let s="mapBoundingBox"===i.relativeTo&&e.getMapBBox()||Xe(t.plotBox,{x:0,y:0});o=o.map((t=>[Ve(`${t[0]}%`,s.width,s.x),Ve(`${t[1]}%`,s.height,s.y)]))}return{type:"Polygon",coordinates:[o]}}}getProjectedBounds(){return $e.compositeBounds(this.allBounds)}isInside(t){let{geoBoundsProjectedBox:e,geoBoundsProjectedPolygon:i}=this;return!!(e&&t.x>=e.x1&&t.x<=e.x2&&t.y>=e.y1&&t.y<=e.y2&&i&&Oe(t,i))}render(){let{chart:t,mapView:e,options:i}=this,s=i.borderPath||i.field;if(s&&e.group){let o=!0;this.border||(this.border=t.renderer.path().addClass("highcharts-mapview-inset-border").add(e.group),o=!1),t.styledMode||this.border.attr({stroke:i.borderColor,"stroke-width":i.borderWidth});let r=this.border.strokeWidth(),n="mapBoundingBox"===i.relativeTo&&e.getMapBBox()||e.playingField,a=(s.coordinates||[]).reduce(((e,s)=>s.reduce(((e,s,o)=>{let[a,l]=s;return"percent"===i.units&&(a=t.plotLeft+Ve(`${a}%`,n.width,n.x),l=t.plotTop+Ve(`${l}%`,n.height,n.y)),a=Ne(a,r),l=Ne(l,r),e.push(0===o?["M",a,l]:["L",a,l]),e}),e)),[]);this.border[o?"animate":"attr"]({d:a})}}destroy(){this.border&&(this.border=this.border.destroy()),this.eventsToUnbind.forEach((t=>t()))}setUpEvents(){}}let{animObject:Ke,stop:Je}=T(),{noop:Qe}=T(),{splitPath:ti}=Ut,{column:ei,scatter:ii}=H().seriesTypes,{extend:si,find:oi,fireEvent:ri,getNestedProperty:ni,isArray:ai,defined:li,isNumber:hi,isObject:di,merge:ci,objectEach:pi,pick:ui,splat:gi}=T();class mi extends ii{constructor(){super(...arguments),this.processedData=[]}animate(t){let{chart:e,group:i}=this,s=Ke(this.options.animation);t?i.attr({translateX:e.plotLeft+e.plotWidth/2,translateY:e.plotTop+e.plotHeight/2,scaleX:.001,scaleY:.001}):i.animate({translateX:e.plotLeft,translateY:e.plotTop,scaleX:1,scaleY:1},s)}clearBounds(){this.points.forEach((t=>{delete t.bounds,delete t.insetIndex,delete t.projectedPath})),delete this.bounds}doFullTranslate(){return!(!this.isDirtyData&&!this.chart.isResizing&&this.hasRendered)}drawMapDataLabels(){super.drawDataLabels(),this.dataLabelsGroup&&this.dataLabelsGroup.clip(this.chart.clipRect)}drawPoints(){let t=this,{chart:e,group:i,transformGroups:s=[]}=this,{mapView:o,renderer:r}=e;if(o){this.transformGroups=s,s[0]||(s[0]=r.g().add(i));for(let t=0,e=o.insets.length;t{let{graphic:e}=t;t.group=s["number"==typeof t.insetIndex?t.insetIndex+1:0],e&&e.parentGroup!==t.group&&e.add(t.group)})),ei.prototype.drawPoints.apply(this),this.points.forEach((i=>{let s=i.graphic;if(s){let o=s.animate,r="";i.name&&(r+="highcharts-name-"+i.name.replace(/ /g,"-").toLowerCase()),i.properties?.["hc-key"]&&(r+=" highcharts-key-"+i.properties["hc-key"].toString().toLowerCase()),r&&s.addClass(r),e.styledMode&&s.css(this.pointAttribs(i,i.selected?"select":void 0)),s.attr({visibility:i.visible||!i.visible&&!i.isNull?"inherit":"hidden"}),s.animate=function(i,r,n){let a=hi(i["stroke-width"])&&!hi(s["stroke-width"]),l=hi(s["stroke-width"])&&!hi(i["stroke-width"]);if(a||l){let o=ui(t.getStrokeWidth(t.options),1)/(e.mapView?.getScale()||1);a&&(s["stroke-width"]=o),l&&(i["stroke-width"]=o)}return o.call(s,i,r,l?function(){s.element.removeAttribute("stroke-width"),delete s["stroke-width"],n&&n.apply(this,arguments)}:n)}}}))),s.forEach(((i,s)=>{let n=(0===s?o:o.insets[s-1]).getSVGTransform(),a=ui(this.getStrokeWidth(this.options),1),l=n.scaleX,h=n.scaleY>0?1:-1,d=e=>{(t.points||[]).forEach((t=>{let i,s=t.graphic;s?.["stroke-width"]&&(i=this.getStrokeWidth(t.options))&&s.attr({"stroke-width":i/e})}))};if(r.globalAnimation&&e.hasRendered&&o.allowTransformAnimation){let t=Number(i.attr("translateX")),e=Number(i.attr("translateY")),s=Number(i.attr("scaleX")),o=(o,r)=>{let c=s+(l-s)*r.pos;i.attr({translateX:t+(n.translateX-t)*r.pos,translateY:e+(n.translateY-e)*r.pos,scaleX:c,scaleY:c*h,"stroke-width":a/c}),d(c)},c=ci(Ke(r.globalAnimation)),p=c.step;c.step=function(){p&&p.apply(this,arguments),o.apply(this,arguments)},i.attr({animator:0}).animate({animator:1},c,function(){"boolean"!=typeof r.globalAnimation&&r.globalAnimation.complete&&r.globalAnimation.complete({applyDrilldown:!0}),ri(this,"mapZoomComplete")}.bind(this))}else Je(i),i.attr(ci(n,{"stroke-width":a/l})),d(l)})),this.isDrilling||this.drawMapDataLabels()}}getProjectedBounds(){if(!this.bounds&&this.chart.mapView){let{insets:t,projection:e}=this.chart.mapView,i=[];(this.points||[]).forEach((s=>{if(s.path||s.geometry){if("string"==typeof s.path?s.path=ti(s.path):ai(s.path)&&"M"===s.path[0]&&(s.path=this.chart.renderer.pathToSegments(s.path)),!s.bounds){let i=s.getProjectedBounds(e);if(i){s.labelrank=ui(s.labelrank,(i.x2-i.x1)*(i.y2-i.y1));let{midX:e,midY:o}=i;if(t&&hi(e)&&hi(o)){let r=oi(t,(t=>t.isInside({x:e,y:o})));r&&(delete s.projectedPath,(i=s.getProjectedBounds(r.projection))&&r.allBounds.push(i),s.insetIndex=t.indexOf(r))}s.bounds=i}}s.bounds&&void 0===s.insetIndex&&i.push(s.bounds)}})),this.bounds=$e.compositeBounds(i)}return this.bounds}getStrokeWidth(t){let e=this.pointAttrToOptions;return t[e?.["stroke-width"]||"borderWidth"]}hasData(){return!!this.dataTable.rowCount}pointAttribs(t,e){let{mapView:i,styledMode:s}=t.series.chart,o=s?this.colorAttribs(t):ei.prototype.pointAttribs.call(this,t,e),r=this.getStrokeWidth(t.options);if(e){let i=ci(this.options.states&&this.options.states[e],t.options.states&&t.options.states[e]||{}),s=this.getStrokeWidth(i);li(s)&&(r=s),o.stroke=i.borderColor??t.color}r&&i&&(r/=i.getScale());let n=this.getStrokeWidth(this.options);return o.dashstyle&&i&&hi(n)&&(r=n/i.getScale()),t.visible||(o.fill=this.options.nullColor),li(r)?o["stroke-width"]=r:delete o["stroke-width"],o["stroke-linecap"]=o["stroke-linejoin"]=this.options.linecap,o}updateData(){return!this.processedData&&super.updateData.apply(this,arguments)}setData(t,e=!0,i,s){delete this.bounds,super.setData(t,!1,void 0,s),this.processData(),this.generatePoints(),e&&this.chart.redraw(i)}dataColumnKeys(){return this.pointArrayMap}processData(){let t,e,i,s=this.options,o=s.data,r=this.chart,n=r.options.chart,a=this.joinBy,l=s.keys||this.pointArrayMap,h=[],d={},c=this.chart.mapView,p=c&&(di(s.mapData,!0)?c.getGeoMap(s.mapData):c.geoMap),u=r.mapTransforms=n.mapTransforms||p?.["hc-transform"]||r.mapTransforms;u&&pi(u,(t=>{t.rotation&&(t.cosAngle=Math.cos(t.rotation),t.sinAngle=Math.sin(t.rotation))})),ai(s.mapData)?i=s.mapData:p&&"FeatureCollection"===p.type&&(this.mapTitle=p.title,i=T().geojson(p,this.type,this)),this.processedData=[];let g=this.processedData;if(o){let t;for(let e=0,i=o.length;el.length&&"string"==typeof t[0]&&(g[e]["hc-key"]=t[0],++i);for(let s=0;s0?Kt.prototype.setNestedProperty(g[e],t[i],l[s]):g[e][l[s]]=t[i])}else g[e]=o[e];a&&"_i"===a[0]&&(g[e]._i=e)}}if(i){this.mapData=i,this.mapMap={};for(let s=0;s{let i=ni(t,e);d[i]&&h.push(d[i])}))}if(s.allAreas){if(a[1]){let t=a[1];g.forEach((e=>{h.push(ni(t,e))}))}let t="|"+h.map((function(t){return t&&t[a[0]]})).join("|")+"|";i.forEach((e=>{a[0]&&-1!==t.indexOf("|"+e[a[0]]+"|")||g.push(ci(e,{value:null}))}))}}this.dataTable.rowCount=g.length}setOptions(t){let e=super.setOptions(t),i=e.joinBy;return null===e.joinBy&&(i="_i"),i&&(this.joinBy=gi(i),this.joinBy[1]||(this.joinBy[1]=this.joinBy[0])),e}translate(){let t=this.doFullTranslate(),e=this.chart.mapView,i=e?.projection;if(this.chart.hasRendered&&(this.isDirtyData||!this.hasRendered)&&(this.processData(),this.generatePoints(),delete this.bounds,!e||e.userOptions.center||hi(e.userOptions.zoom)||e.zoom!==e.minZoom?this.getProjectedBounds():e.fitToBounds(void 0,void 0,!1)),e){let s=e.getSVGTransform();this.points.forEach((o=>{let r=hi(o.insetIndex)&&e.insets[o.insetIndex].getSVGTransform()||s;r&&o.bounds&&hi(o.bounds.midX)&&hi(o.bounds.midY)&&(o.plotX=o.bounds.midX*r.scaleX+r.translateX,o.plotY=o.bounds.midY*r.scaleY+r.translateY),t&&(o.shapeType="path",o.shapeArgs={d:Kt.getProjectedPath(o,i)}),o.hiddenInDataClass||(o.projectedPath&&!o.projectedPath.length?o.setVisible(!1):o.visible||o.setVisible(!0))}))}ri(this,"afterTranslate")}update(t){t.mapData&&this.chart.mapView?.recommendMapView(this.chart,[this.chart.options.chart.map,...(this.chart.options.series||[]).map(((e,i)=>i===this._i?t.mapData:e.mapData))],!0),super.update.apply(this,arguments)}}mi.defaultOptions=ci(ii.defaultOptions,{affectsMapView:!0,animation:!1,dataLabels:{crop:!1,formatter:function(){let{numberFormatter:t}=this.series.chart,{value:e}=this.point;return Jt(e)?t(e,-1):this.point.name||""},inside:!0,overflow:!1,padding:0,verticalAlign:"middle"},linecap:"round",marker:null,nullColor:"#f7f7f7",stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:"{point.name}: {point.value}
"},turboThreshold:0,allAreas:!0,borderColor:"#e6e6e6",borderWidth:1,joinBy:"hc-key",states:{hover:{halo:void 0,borderColor:"#666666",borderWidth:2},normal:{animation:!0},select:{color:"#cccccc"}},legendSymbol:"rectangle"}),si(mi.prototype,{type:"map",axisTypes:At.seriesMembers.axisTypes,colorAttribs:At.seriesMembers.colorAttribs,colorKey:At.seriesMembers.colorKey,directTouch:!0,drawDataLabels:Qe,drawGraph:Qe,forceDL:!0,getCenter:zt.getCenter,getExtremesFromAll:!0,getSymbol:Qe,isCartesian:!1,parallelArrays:At.seriesMembers.parallelArrays,pointArrayMap:At.seriesMembers.pointArrayMap,pointClass:Kt,preserveAspectRatio:!0,searchPoint:Qe,trackerGroups:At.seriesMembers.trackerGroups,useMapGeometry:!0}),At.compose(mi),H().registerSeriesType("map",mi);let fi=mi,{extend:xi,merge:yi}=T();class bi extends fi{pointAttribs(t,e){let i=super.pointAttribs(t,e);return i.fill=this.options.fillColor,i}}bi.defaultOptions=yi(fi.defaultOptions,{lineWidth:1,fillColor:"none",legendSymbol:"lineMarker"}),xi(bi.prototype,{type:"mapline",colorProp:"stroke",pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"}}),H().registerSeriesType("mapline",bi);let{scatter:vi}=H().seriesTypes,{isNumber:wi}=T();class Mi extends vi.prototype.pointClass{isValid(){return!!(this.options.geometry||wi(this.x)&&wi(this.y)||wi(this.options.lon)&&wi(this.options.lat))}}M(632);let{noop:ki}=T(),{map:Si,scatter:Ti}=H().seriesTypes,{extend:Ai,fireEvent:Ci,isNumber:Pi,merge:Li}=T();class Ei extends Ti{constructor(){super(...arguments),this.clearBounds=Si.prototype.clearBounds}drawDataLabels(){super.drawDataLabels(),this.dataLabelsGroup&&this.dataLabelsGroup.clip(this.chart.clipRect)}projectPoint(t){let e=this.chart.mapView;if(e){let{geometry:i,lon:s,lat:o}=t,r=i&&"Point"===i.type&&i.coordinates;if(Pi(s)&&Pi(o)&&(r=[s,o]),r)return e.lonLatToProjectedUnits({lon:r[0],lat:r[1]})}}translate(){let t=this.chart.mapView;if(this.generatePoints(),this.getProjectedBounds&&this.isDirtyData&&(delete this.bounds,this.getProjectedBounds()),t){let e=t.getSVGTransform(),{hasCoordinates:i}=t.projection;this.points.forEach((s=>{let o,{x:r,y:n}=s,a=Pi(s.insetIndex)&&t.insets[s.insetIndex].getSVGTransform()||e,l=this.projectPoint(s.options)||s.properties&&this.projectPoint(s.properties);if(l?(r=l.x,n=l.y):s.bounds&&(r=s.bounds.midX,n=s.bounds.midY,a&&Pi(r)&&Pi(n)&&(s.plotX=r*a.scaleX+a.translateX,s.plotY=n*a.scaleY+a.translateY,o=!0)),Pi(r)&&Pi(n)){if(!o){let e=t.projectedUnitsToPixels({x:r,y:n});s.plotX=e.x,s.plotY=i?e.y:this.chart.plotHeight-e.y}}else s.y=s.plotX=s.plotY=void 0;s.isInside=this.isPointInside(s),s.zone=this.zones.length?s.getZone():void 0}))}Ci(this,"afterTranslate")}}Ei.defaultOptions=Li(Ti.defaultOptions,{dataLabels:{crop:!1,defer:!1,enabled:!0,formatter:function(){return this.point.name},overflow:!1,style:{color:"#000000"}},legendSymbol:"lineMarker"}),jt().prototype.symbols.mapmarker=(t,e,i,s,o)=>{let r,n,a=o&&"legend"===o.context;a?(r=t+i/2,n=e+s):o&&"number"==typeof o.anchorX&&"number"==typeof o.anchorY?(r=o.anchorX,n=o.anchorY):(r=t+i/2,n=e+s/2,e-=s);let l=a?s/3:s/2;return[["M",r,n],["C",r,n,r-l,e+1.5*l,r-l,e+l],["A",l,l,1,1,1,r+l,e+l],["C",r+l,e+1.5*l,r,n,r,n],["Z"]]},Ai(Ei.prototype,{type:"mappoint",axisTypes:["colorAxis"],forceDL:!0,isCartesian:!1,pointClass:Mi,searchPoint:ki,useMapGeometry:!0}),H().registerSeriesType("mappoint",Ei);let Oi={borderColor:void 0,borderWidth:2,className:void 0,color:void 0,connectorClassName:void 0,connectorColor:void 0,connectorDistance:60,connectorWidth:1,enabled:!1,labels:{className:void 0,allowOverlap:!1,format:"",formatter:void 0,align:"right",style:{fontSize:"0.9em",color:"#000000"},x:0,y:0},maxSize:60,minSize:10,legendIndex:0,ranges:{value:void 0,borderColor:void 0,color:void 0,connectorColor:void 0},sizeBy:"area",sizeByAbsoluteValue:!1,zIndex:1,zThreshold:0},{noop:Di}=T(),{arrayMax:Ii,arrayMin:zi,isNumber:Bi,merge:Ni,pick:Ri,stableSort:ji}=T(),Wi=class{constructor(t,e){this.setState=Di,this.init(t,e)}init(t,e){this.options=t,this.visible=!0,this.chart=e.chart,this.legend=e}addToLegend(t){t.splice(this.options.legendIndex,0,this)}drawLegendSymbol(t){let e,i=Ri(t.options.itemDistance,20),s=this.legendItem||{},o=this.options,r=o.ranges,n=o.connectorDistance;if(!r||!r.length||!Bi(r[0].value))return void(t.options.bubbleLegend.autoRanges=!0);ji(r,(function(t,e){return e.value-t.value})),this.ranges=r,this.setOptions(),this.render();let a=this.getMaxLabelSize(),l=this.ranges[0].radius,h=2*l;e=(e=n-l+a.width)>0?e:0,this.maxLabel=a,this.movementX="left"===o.labels.align?e:0,s.labelWidth=h+e+i,s.labelHeight=h+a.height/2}setOptions(){let t=this.ranges,e=this.options,i=this.chart.series[e.seriesIndex],s=this.legend.baseline,o={zIndex:e.zIndex,"stroke-width":e.borderWidth},r={zIndex:e.zIndex,"stroke-width":e.connectorWidth},n={align:this.legend.options.rtl||"left"===e.labels.align?"right":"left",zIndex:e.zIndex},a=i.options.marker.fillOpacity,l=this.chart.styledMode;t.forEach((function(h,d){l||(o.stroke=Ri(h.borderColor,e.borderColor,i.color),o.fill=h.color||e.color,o.fill||(o.fill=i.color,o["fill-opacity"]=a??1),r.stroke=Ri(h.connectorColor,e.connectorColor,i.color)),t[d].radius=this.getRangeRadius(h.value),t[d]=Ni(t[d],{center:t[0].radius-t[d].radius+s}),l||Ni(!0,t[d],{bubbleAttribs:Ni(o),connectorAttribs:Ni(r),labelAttribs:n})}),this)}getRangeRadius(t){let e=this.options,i=this.options.seriesIndex,s=this.chart.series[i],o=e.ranges[0].value,r=e.ranges[e.ranges.length-1].value,n=e.minSize,a=e.maxSize;return s.getRadius.call(this,r,o,n,a,t)}render(){let t=this.legendItem||{},e=this.chart.renderer,i=this.options.zThreshold;for(let s of(this.symbols||(this.symbols={connectors:[],bubbleItems:[],labels:[]}),t.symbol=e.g("bubble-legend"),t.label=e.g("bubble-legend-item").css(this.legend.itemStyle||{}),t.symbol.translateX=0,t.symbol.translateY=0,t.symbol.add(t.label),t.label.add(t.group),this.ranges))s.value>=i&&this.renderRange(s);this.hideOverlappingLabels()}renderRange(t){let e=this.ranges[0],i=this.legend,s=this.options,o=s.labels,r=this.chart,n=r.series[s.seriesIndex],a=r.renderer,l=this.symbols,h=l.labels,d=t.center,c=Math.abs(t.radius),p=s.connectorDistance||0,u=o.align,g=i.options.rtl,m=s.borderWidth,f=s.connectorWidth,x=e.radius||0,y=d-c-m/2+f/2,b=(y%1?1:.5)-(f%2?0:.5),v=a.styledMode,w=g||"left"===u?-p:p;"center"===u&&(w=0,s.connectorDistance=0,t.labelAttribs.align="center"),l.bubbleItems.push(a.circle(x,d+b,c).attr(v?{}:t.bubbleAttribs).addClass((v?"highcharts-color-"+n.colorIndex+" ":"")+"highcharts-bubble-legend-symbol "+(s.className||"")).add(this.legendItem.symbol)),l.connectors.push(a.path(a.crispLine([["M",x,y],["L",x+w,y]],s.connectorWidth)).attr(v?{}:t.connectorAttribs).addClass((v?"highcharts-color-"+this.options.seriesIndex+" ":"")+"highcharts-bubble-legend-connectors "+(s.connectorClassName||"")).add(this.legendItem.symbol));let M=a.text(this.formatLabel(t)).attr(v?{}:t.labelAttribs).css(v?{}:o.style).addClass("highcharts-bubble-legend-labels "+(s.labels.className||"")).add(this.legendItem.symbol),k={x:x+w+s.labels.x,y:y+s.labels.y+.4*M.getBBox().height};M.attr(k),h.push(M),M.placed=!0,M.alignAttr=k}getMaxLabelSize(){let t,e;return this.symbols.labels.forEach((function(i){e=i.getBBox(!0),t=t?e.width>t.width?e:t:e})),t||{}}formatLabel(t){let e=this.options,i=e.labels.formatter,s=e.labels.format,{numberFormatter:o}=this.chart;return s?ee().format(s,t,this.chart):i?i.call(t):o(t.value,1)}hideOverlappingLabels(){let t=this.chart,e=this.options.labels.allowOverlap,i=this.symbols;!e&&i&&(t.hideOverlappingLabels(i.labels),i.labels.forEach((function(t,e){t.newOpacity?t.newOpacity!==t.oldOpacity&&i.connectors[e].show():i.connectors[e].hide()})))}getRanges(){let t,e,i=this.legend.bubbleLegend,s=i.chart.series,o=i.options.ranges,r=Number.MAX_VALUE,n=-Number.MAX_VALUE;return s.forEach((function(t){t.isBubble&&!t.ignoreSeries&&(e=t.getColumn("z").filter(Bi)).length&&(r=Ri(t.options.zMin,Math.min(r,Math.max(zi(e),!1===t.options.displayNegative?t.options.zThreshold:-Number.MAX_VALUE))),n=Ri(t.options.zMax,Math.max(n,Ii(e))))})),t=r===n?[{value:n}]:[{value:r},{value:(r+n)/2},{value:n,autoRanges:!0}],o.length&&o[0].radius&&t.reverse(),t.forEach((function(e,i){o&&o[i]&&(t[i]=Ni(o[i],e))})),t}predictBubbleSizes(){let t,e=this.chart,i=e.legend.options,s=i.floating,o="horizontal"===i.layout,r=o?e.legend.lastLineHeight:0,n=e.plotSizeX,a=e.plotSizeY,l=e.series[this.options.seriesIndex],h=l.getPxExtremes(),d=Math.ceil(h.minPxSize),c=Math.ceil(h.maxPxSize),p=Math.min(a,n),u=l.options.maxSize;return s||!/%$/.test(u)?t=c:(t=(p+r)*(u=parseFloat(u))/100/(u/100+1),(o&&a-t>=n||!o&&n-t>=a)&&(t=c)),[d,Math.ceil(t)]}updateRanges(t,e){let i=this.legend.options.bubbleLegend;i.minSize=t,i.maxSize=e,i.ranges=this.getRanges()}correctSizes(){let t=this.legend,e=this.chart.series[this.options.seriesIndex].getPxExtremes();Math.abs(Math.ceil(e.maxPxSize)-this.options.maxSize)>1&&(this.updateRanges(this.options.minSize,e.maxPxSize),t.render())}},{setOptions:Gi}=T(),{composed:Fi}=T(),{addEvent:Xi,objectEach:Hi,pushUnique:Ui,wrap:Vi}=T();function Yi(t,e,i){let s,o,r,n=this.legend,a=_i(this)>=0;n&&n.options.enabled&&n.bubbleLegend&&n.options.bubbleLegend.autoRanges&&a?(s=n.bubbleLegend.options,o=n.bubbleLegend.predictBubbleSizes(),n.bubbleLegend.updateRanges(o[0],o[1]),s.placed||(n.group.placed=!1,n.allItems.forEach((t=>{(r=t.legendItem||{}).group&&(r.group.translateY=void 0)}))),n.render(),s.placed||(this.getMargins(),this.axes.forEach((t=>{t.setScale(),t.updateNames(),Hi(t.ticks,(function(t){t.isNew=!0,t.isNewLabel=!0}))})),this.getMargins()),s.placed=!0,t.call(this,e,i),n.bubbleLegend.correctSizes(),Ki(n,Zi(n))):(t.call(this,e,i),n&&n.options.enabled&&n.bubbleLegend&&(n.render(),Ki(n,Zi(n))))}function _i(t){let e=t.series,i=0;for(;ie.height&&(e.height=o[l].itemHeight);e.step=a}return r}function $i(t){let e=this.bubbleLegend,i=this.options,s=i.bubbleLegend,o=_i(this.chart);e&&e.ranges&&e.ranges.length&&(s.ranges.length&&(s.autoRanges=!!s.ranges[0].autoRanges),this.destroyItem(e)),o>=0&&i.enabled&&s.enabled&&(s.seriesIndex=o,this.bubbleLegend=new Wi(s,this),this.bubbleLegend.addToLegend(t.allItems))}function qi(t){let e;if(t.defaultPrevented)return!1;let i=t.legendItem,s=this.chart,o=i.visible;this&&this.bubbleLegend&&(i.visible=!o,i.ignoreSeries=o,e=_i(s)>=0,this.bubbleLegend.visible!==e&&(this.update({bubbleLegend:{enabled:e}}),this.bubbleLegend.visible=e),i.visible=o)}function Ki(t,e){let i,s,o,r,n=t.allItems,a=t.options.rtl,l=0;n.forEach(((t,n)=>{(r=t.legendItem||{}).group&&(i=r.group.translateX||0,s=r.y||0,((o=t.movementX)||a&&t.ranges)&&(o=a?i-t.options.maxSize/2:i+o,r.group.attr({translateX:o})),n>e[l].step&&l++,r.group.attr({translateY:Math.round(s+e[l].height/2)}),r.y=s+e[l].height/2)}))}let Ji=function(t,e){Ui(Fi,"Series.BubbleLegend")&&(Gi({legend:{bubbleLegend:Oi}}),Vi(t.prototype,"drawChartBox",Yi),Xi(e,"afterGetAllItems",$i),Xi(e,"itemClick",qi))};var Qi=M(260),ts=M.n(Qi);let{seriesTypes:{scatter:{prototype:{pointClass:es}}}}=H(),{extend:is}=T();class ss extends es{haloPath(t){let e=(t&&this.marker&&this.marker.radius||0)+t;if(this.series.chart.inverted){let t=this.pos()||[0,0],{xAxis:i,yAxis:s,chart:o}=this.series;return o.renderer.symbols.circle(i.len-t[1]-e,s.len-t[0]-e,2*e,2*e)}return ts().prototype.haloPath.call(this,e)}}is(ss.prototype,{ttBelow:!1});let os=ss,{composed:rs,noop:ns}=T(),{series:as,seriesTypes:{column:{prototype:ls},scatter:hs}}=H(),{addEvent:ds,arrayMax:cs,arrayMin:ps,clamp:us,extend:gs,isNumber:ms,merge:fs,pick:xs,pushUnique:ys}=T();function bs(){let t,e=this.len,{coll:i,isXAxis:s,min:o}=this,r=(this.max||0)-(o||0),n=0,a=e,l=e/r;("xAxis"===i||"yAxis"===i)&&(this.series.forEach((e=>{if(e.bubblePadding&&e.reserveSpace()){this.allowZoomOutside=!0,t=!0;let i=e.getColumn(s?"x":"y");if(s&&((e.onPoint||e).getRadii(0,0,e),e.onPoint&&(e.radii=e.onPoint.radii)),r>0){let t=i.length;for(;t--;)if(ms(i[t])&&this.dataMin<=i[t]&&i[t]<=this.max){let s=e.radii&&e.radii[t]||0;n=Math.min((i[t]-o)*l-s,n),a=Math.max((i[t]-o)*l+s,a)}}}})),t&&r>0&&!this.logarithmic&&(a-=e,l*=(e+Math.max(0,n)-Math.min(a,e))/e,[["min","userMin",n],["max","userMax",a]].forEach((t=>{void 0===xs(this.options[t[0]],this[t[1]])&&(this[t[0]]+=t[2]/l)}))))}function vs(){let{ticks:t,tickPositions:e,dataMin:i=0,dataMax:s=0,categories:o}=this,r=this.options.type;if((o?.length||"category"===r)&&this.series.find((t=>t.bubblePadding))){let o=e.length;for(;o--;){let r=t[e[o]],n=r.pos||0;(n>s||n{if(s.bubblePadding&&s.reserveSpace()){let o=(s.onPoint||s).getZExtremes();o&&(e=Math.min(xs(e,o.zMin),o.zMin),i=Math.max(xs(i,o.zMax),o.zMax),t=!0)}})),t?(n={zMin:e,zMax:i},this.chart.bubbleZExtremes=n):n={zMin:0,zMax:0}}for(e=0,t=s.length;e0&&(d=(o-t)/h)}return a&&d>=0&&(d=Math.sqrt(d)),Math.ceil(i+d*(s-i))/2}hasData(){return!!this.dataTable.rowCount}markerAttribs(t,e){let i=super.markerAttribs(t,e),{height:s=0,width:o=0}=i;return this.chart.inverted?gs(i,{x:(t.plotX||0)-o/2,y:(t.plotY||0)-s/2}):i}pointAttribs(t,e){let i=this.options.marker,s=i?.fillOpacity,o=as.prototype.pointAttribs.call(this,t,e);return o["fill-opacity"]=s??1,o}translate(){super.translate.call(this),this.getRadii(),this.translateBubble()}translateBubble(){let{data:t,options:e,radii:i}=this,{minPxSize:s}=this.getPxExtremes(),o=t.length;for(;o--;){let r=t[o],n=i?i[o]:0;"z"===this.zoneAxis&&(r.negative=(r.z||0)<(e.zThreshold||0)),ms(n)&&n>=s/2?(r.marker=gs(r.marker,{radius:n,width:2*n,height:2*n}),r.dlBox={x:r.plotX-n,y:r.plotY-n,width:2*n,height:2*n}):(r.shapeArgs=r.plotY=r.dlBox=void 0,r.isInside=!1)}}getPxExtremes(){let t=Math.min(this.chart.plotWidth,this.chart.plotHeight),e=e=>{let i;return"string"==typeof e&&(i=/%$/.test(e),e=parseInt(e,10)),i?t*e/100:e},i=e(xs(this.options.minSize,8));return{minPxSize:i,maxPxSize:Math.max(e(xs(this.options.maxSize,"20%")),i)}}getZExtremes(){let t=this.options,e=this.getColumn("z").filter(ms);if(e.length){let i=xs(t.zMin,us(ps(e),!1===t.displayNegative?t.zThreshold||0:-Number.MAX_VALUE,Number.MAX_VALUE)),s=xs(t.zMax,cs(e));if(ms(i)&&ms(s))return{zMin:i,zMax:s}}}searchKDTree(t,e,i,s=ns,o=ns){return s=(t,e,i)=>{let s,o=t[i]||0,r=e[i]||0,n=!1;return o===r?s=t.index>e.index?t:e:o<0&&r<0?(s=o-(t.marker?.radius||0)>=r-(e.marker?.radius||0)?t:e,n=!0):s=o!i&&t>e||t{delete t.target.chart.bubbleZExtremes})),ds(ws,"remove",(t=>{delete t.target.chart.bubbleZExtremes})),H().registerSeriesType("bubble",ws);let Ms=ws,{seriesTypes:{map:{prototype:{pointClass:{prototype:ks}}}}}=H(),{extend:Ss}=T();class Ts extends os{isValid(){return"number"==typeof this.z}}Ss(Ts.prototype,{applyOptions:ks.applyOptions,getProjectedBounds:ks.getProjectedBounds});let{seriesTypes:{map:{prototype:As},mappoint:{prototype:Cs}}}=H(),{extend:Ps,merge:Ls}=T();class Es extends Ms{constructor(){super(...arguments),this.clearBounds=As.clearBounds}searchPoint(t,e){return this.searchKDTree({plotX:t.chartX-this.chart.plotLeft,plotY:t.chartY-this.chart.plotTop},e,t)}translate(){Cs.translate.call(this),this.getRadii(),this.translateBubble()}}Es.defaultOptions=Ls(Ms.defaultOptions,{lineWidth:0,animationLimit:500,joinBy:"hc-key",tooltip:{pointFormat:"{point.name}: {point.z}"}}),Ps(Es.prototype,{type:"mapbubble",axisTypes:["colorAxis"],getProjectedBounds:As.getProjectedBounds,isCartesian:!1,pointArrayMap:["z"],pointClass:Ts,processData:As.processData,projectPoint:Cs.projectPoint,kdAxisArray:["plotX","plotY"],setData:As.setData,setOptions:As.setOptions,updateData:As.updateData,useMapGeometry:!0,xyFromShape:!0}),H().registerSeriesType("mapbubble",Es);let{scatter:{prototype:{pointClass:Os}}}=H().seriesTypes,{clamp:Ds,defined:Is,extend:zs,pick:Bs}=T();class Ns extends Os{applyOptions(t,e){return(this.isNull||null===this.value)&&delete this.color,super.applyOptions(t,e),this.formatPrefix=this.isNull||null===this.value?"null":"point",this}getCellAttributes(){let t=this.series,e=t.options,i=(e.colsize||1)/2,s=(e.rowsize||1)/2,o=t.xAxis,r=t.yAxis,n=this.options.marker||t.options.marker,a=t.pointPlacementToXValue(),l=Bs(this.pointPadding,e.pointPadding,0),h={x1:Ds(Math.round(o.len-o.translate(this.x-i,!1,!0,!1,!0,-a)),-o.len,2*o.len),x2:Ds(Math.round(o.len-o.translate(this.x+i,!1,!0,!1,!0,-a)),-o.len,2*o.len),y1:Ds(Math.round(r.translate(this.y-s,!1,!0,!1,!0)),-r.len,2*r.len),y2:Ds(Math.round(r.translate(this.y+s,!1,!0,!1,!0)),-r.len,2*r.len)};for(let t of[["width","x"],["height","y"]]){let e=t[0],i=t[1],s=i+"1",a=i+"2",d=Math.abs(h[s]-h[a]),c=n&&n.lineWidth||0,p=Math.abs(h[s]+h[a])/2,u=n&&n[e];if(Is(u)&&uGs(parseFloat(t),parseInt(t,10))));return s[3]=255*Gs(s[3],1),Ws(t)&&e.visible||(s[3]=0),s}return[0,0,0,0]},getContext:function(t){let{canvas:e,context:i}=t;return e&&i?(i.clearRect(0,0,e.width,e.height),i):(t.canvas=js.createElement("canvas"),t.context=t.canvas.getContext("2d",{willReadFrequently:!0})||void 0,t.context)}};class Qs extends Hs{constructor(){super(...arguments),this.valueMax=NaN,this.valueMin=NaN,this.isDirtyCanvas=!0}drawPoints(){let t=this,e=t.options,i=e.interpolation,s=e.marker||{};if(i){let{image:e,chart:i,xAxis:s,yAxis:o}=t,{reversed:r=!1,len:n}=s,{reversed:a=!1,len:l}=o,h={width:n,height:l};if(!e||t.isDirtyData||t.isDirtyCanvas){let n=Js(t),{canvas:l,options:{colsize:d=1,rowsize:c=1},points:p,points:{length:u}}=t,g=i.colorAxis&&i.colorAxis[0];if(l&&n&&g){let{min:g,max:m}=s.getExtremes(),{min:f,max:x}=o.getExtremes(),y=m-g,b=x-f,v=Math.round(y/d/8*8),w=Math.round(b/c/8*8),[M,k]=[[v,v/y,r,"ceil"],[w,w/b,!a,"floor"]].map((([t,e,i,s])=>i?i=>Math[s](t-e*i):t=>Math[s](e*t))),S=l.width=v+1,T=S*(l.height=w+1),A=(u-1)/T,C=new Uint8ClampedArray(4*T),P=(t,e)=>4*Math.ceil(S*k(e-f)+M(t-g));t.buildKDTree();for(let t=0;t{e.graphic&&(e.graphic[t.chart.styledMode?"css":"animate"](t.colorAttribs(e)),null===e.value&&e.graphic.addClass("highcharts-null-point"))})))}getExtremes(){let{dataMin:t,dataMax:e}=Fs.prototype.getExtremes.call(this,this.getColumn("value"));return Zs(t)&&(this.valueMin=t),Zs(e)&&(this.valueMax=e),Fs.prototype.getExtremes.call(this)}getValidPoints(t,e){return Fs.prototype.getValidPoints.call(this,t,e,!0)}hasData(){return!!this.dataTable.rowCount}init(){super.init.apply(this,arguments);let t=this.options;t.pointRange=qs(t.pointRange,t.colsize||1),this.yAxis.axisPointRange=t.rowsize||1,Us.ellipse=Us.circle,t.marker&&Zs(t.borderRadius)&&(t.marker.r=t.borderRadius)}markerAttribs(t,e){let i=t.shapeArgs||{};if(t.hasImage)return{x:t.plotX,y:t.plotY};if(e&&"normal"!==e){let s=t.options.marker||{},o=this.options.marker||{},r=o.states?.[e]||{},n=s.states?.[e]||{},a=(n.width||r.width||i.width||0)+(n.widthPlus||r.widthPlus||0),l=(n.height||r.height||i.height||0)+(n.heightPlus||r.heightPlus||0);return{x:(i.x||0)+((i.width||0)-a)/2,y:(i.y||0)+((i.height||0)-l)/2,width:a,height:l}}return i}pointAttribs(t,e){let i=Fs.prototype.pointAttribs.call(this,t,e),s=this.options||{},o=this.chart.options.plotOptions||{},r=o.series||{},n=o.heatmap||{},a=t?.options.borderColor||s.borderColor||n.borderColor||r.borderColor,l=t?.options.borderWidth||s.borderWidth||n.borderWidth||r.borderWidth||i["stroke-width"];if(i.stroke=t?.marker?.lineColor||s.marker?.lineColor||a||this.color,i["stroke-width"]=l,e&&"normal"!==e){let o=$s(s.states?.[e],s.marker?.states?.[e],t?.options.states?.[e]||{});i.fill=o.color||L().parse(i.fill).brighten(o.brightness||0).get(),i.stroke=o.lineColor||i.stroke}return i}translate(){let{borderRadius:t,marker:e}=this.options,i=e?.symbol||"rect",s=Us[i]?i:"rect",o=-1!==["circle","square"].indexOf(s);for(let e of(this.generatePoints(),this.points)){let r=e.getCellAttributes(),n=Math.min(r.x1,r.x2),a=Math.min(r.y1,r.y2),l=Math.max(Math.abs(r.x2-r.x1),0),h=Math.max(Math.abs(r.y2-r.y1),0);if(e.hasImage=0===(e.marker?.symbol||i||"").indexOf("url"),o){let t=Math.abs(l-h);n=Math.min(r.x1,r.x2)+(l"},states:{hover:{halo:!1,brightness:.2}},legendSymbol:"rectangle"}),Vs(Qs,"afterDataClassLegendClick",(function(){this.isDirtyCanvas=!0,this.drawPoints()})),Ys(Qs.prototype,{axisTypes:At.seriesMembers.axisTypes,colorKey:At.seriesMembers.colorKey,directTouch:!0,getExtremesFromAll:!0,keysAffectYAxis:["y"],parallelArrays:At.seriesMembers.parallelArrays,pointArrayMap:["y","value"],pointClass:Ns,specialGroup:"group",trackerGroups:At.seriesMembers.trackerGroups,alignDataLabel:Xs.prototype.alignDataLabel,colorAttribs:At.seriesMembers.colorAttribs,getSymbol:Fs.prototype.getSymbol}),At.compose(Qs),H().registerSeriesType("heatmap",Qs);let to=T();to.ColorMapComposition=At,to.MapChart=to.MapChart||Ut,to.MapNavigation=to.MapNavigation||vt,to.MapView=to.MapView||$e,to.Projection=to.Projection||Le,to.mapChart=to.Map=to.MapChart.mapChart,to.maps=to.MapChart.maps,to.geojson=le.geojson,to.topo2geo=le.topo2geo,le.compose(to.Chart),Es.compose(to.Axis,to.Chart,to.Legend),vt.compose(Ut,to.Pointer,to.SVGRenderer),$e.compose(Ut);let eo=T();return k.default})(),t.exports=i(e._Highcharts,e._Highcharts.Axis,e._Highcharts.Color,e._Highcharts.LegendSymbol,e._Highcharts.SeriesRegistry,e._Highcharts.SVGElement,e._Highcharts.Series,e._Highcharts.Chart,e._Highcharts.SVGRenderer,e._Highcharts.Templating,e._Highcharts.Series.types.scatter,e._Highcharts.Point)},61159:function(t){var e,i;e="undefined"==typeof window?this:window,i=(t,e)=>(()=>{"use strict";var i={512:t=>{t.exports=e},944:e=>{e.exports=t}},s={};function o(t){var e=s[t];if(void 0!==e)return e.exports;var r=s[t]={exports:{}};return i[t](r,r.exports,o),r.exports}o.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return o.d(e,{a:e}),e},o.d=(t,e)=>{for(var i in e)o.o(e,i)&&!o.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},o.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var r={};o.d(r,{default:()=>M});var n=o(944),a=o.n(n);let l={Esri:class{constructor(){this.defaultCredits="Tiles © Esri — Source: Esri, DeLorme, NAVTEQ, USGS, Intermap, iPC, NRCAN, Esri Japan, METI, Esri China (Hong Kong), Esri (Thailand), TomTom, 2012",this.initialProjectionName="WebMercator",this.themes={WorldStreetMap:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:20},DeLorme:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/Specialty/DeLorme_World_Base_Map/MapServer/tile/{z}/{y}/{x}",minZoom:1,maxZoom:11,credits:"Tiles © Esri — Copyright: ©2012 DeLorme"},WorldTopoMap:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:20,credits:"Tiles © Esri — Esri, DeLorme, NAVTEQ, TomTom, Intermap, iPC, USGS, FAO, NPS, NRCAN, GeoBase, Kadaster NL, Ordnance Survey, Esri Japan, METI, Esri China (Hong Kong), and the GIS User Community"},WorldImagery:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:20,credits:"Tiles © Esri — Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community"},WorldTerrain:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Terrain_Base/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:13,credits:"Tiles © Esri — Source: USGS, Esri, TANA, DeLorme, and NPS"},WorldShadedRelief:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Shaded_Relief/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:13,credits:"Tiles © Esri — Source: Esri"},WorldPhysical:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Physical_Map/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:8,credits:"Tiles © Esri — Source: US National Park Service"},NatGeoWorldMap:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:16,credits:"Tiles © Esri — National Geographic, Esri, DeLorme, NAVTEQ, UNEP-WCMC, USGS, NASA, ESA, METI, NRCAN, GEBCO, NOAA, iPC"},WorldGrayCanvas:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Base/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:16,credits:"Tiles © Esri — Esri, DeLorme, NAVTEQ"}}}},LimaLabs:class{constructor(){this.defaultCredits='Map data ©2023 LimaLabs',this.initialProjectionName="WebMercator",this.requiresApiKey=!0,this.themes={Standard:{url:"https://cdn.lima-labs.com/{zoom}/{x}/{y}.png?api={apikey}",minZoom:0,maxZoom:20}}}},OpenStreetMap:class{constructor(){this.defaultCredits='Map data ©2023 OpenStreetMap',this.initialProjectionName="WebMercator",this.subdomains=["a","b","c"],this.themes={Standard:{url:"https://tile.openstreetmap.org/{zoom}/{x}/{y}.png",minZoom:0,maxZoom:19},Hot:{url:"https://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png",minZoom:0,maxZoom:19},OpenTopoMap:{url:"https://{s}.tile.opentopomap.org/{z}/{x}/{y}.png",minZoom:0,maxZoom:17,credits:'Map data: © \n OpenStreetMap contributors, SRTM \n | Map style: © OpenTopoMap \n (CC-BY-SA)'}}}},Stamen:class{constructor(){this.defaultCredits='© Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under ODbL',this.initialProjectionName="WebMercator",this.subdomains=["a","b","c","d"],this.themes={Toner:{url:"https://stamen-tiles-{s}.a.ssl.fastly.net/toner/{z}/{x}/{y}.png",minZoom:0,maxZoom:20},TonerBackground:{url:"https://stamen-tiles-{s}.a.ssl.fastly.net/toner-background/{z}/{x}/{y}.png",minZoom:0,maxZoom:20},TonerLite:{url:"https://stamen-tiles-{s}.a.ssl.fastly.net/toner-lite/{z}/{x}/{y}.png",minZoom:0,maxZoom:20},Terrain:{url:"https://stamen-tiles-{s}.a.ssl.fastly.net/terrain/{z}/{x}/{y}.png",minZoom:0,maxZoom:18},TerrainBackground:{url:"https://stamen-tiles-{s}.a.ssl.fastly.net/terrain-background/{z}/{x}/{y}.png",minZoom:0,maxZoom:18},Watercolor:{url:"https://stamen-tiles-{s}.a.ssl.fastly.net/watercolor/{z}/{x}/{y}.png",minZoom:1,maxZoom:16,credits:'© Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under CC BY SA'}}}},Thunderforest:class{constructor(){this.defaultCredits='Maps © Thunderforest, Data © OpenStreetMap contributors',this.initialProjectionName="WebMercator",this.requiresApiKey=!0,this.subdomains=["a","b","c"],this.themes={OpenCycleMap:{url:"https://{s}.tile.thunderforest.com/cycle/{z}/{x}/{y}.png?apikey={apikey}",minZoom:0,maxZoom:22},Transport:{url:"https://{s}.tile.thunderforest.com/transport/{z}/{x}/{y}.png?apikey={apikey}",minZoom:0,maxZoom:22},TransportDark:{url:"https://{s}.tile.thunderforest.com/transport-dark/{z}/{x}/{y}.png?apikey={apikey}",minZoom:0,maxZoom:22},SpinalMap:{url:"https://{s}.tile.thunderforest.com/spinal-map/{z}/{x}/{y}.png?apikey={apikey}",minZoom:0,maxZoom:22},Landscape:{url:"https://{s}.tile.thunderforest.com/landscape/{z}/{x}/{y}.png?apikey={apikey}",minZoom:0,maxZoom:22},Outdoors:{url:"https://{s}.tile.thunderforest.com/outdoors/{z}/{x}/{y}.png?apikey={apikey}",minZoom:0,maxZoom:22},Pioneer:{url:"https://{s}.tile.thunderforest.com/pioneer/{z}/{x}/{y}.png?apikey={apikey}",minZoom:0,maxZoom:22},MobileAtlas:{url:"https://{s}.tile.thunderforest.com/mobile-atlas/{z}/{x}/{y}.png?apikey={apikey}",minZoom:0,maxZoom:22},Neighbourhood:{url:"https://{s}.tile.thunderforest.com/neighbourhood/{z}/{x}/{y}.png?apikey={apikey}",minZoom:0,maxZoom:22}}}},USGS:class{constructor(){this.defaultCredits='Tiles courtesy of the U.S. GeologicalSurvey',this.initialProjectionName="WebMercator",this.themes={USTopo:{url:"https://basemap.nationalmap.gov/arcgis/rest/services/USGSTopo/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:20},USImagery:{url:"https://basemap.nationalmap.gov/arcgis/rest/services/USGSImageryOnly/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:20},USImageryTopo:{url:"https://basemap.nationalmap.gov/arcgis/rest/services/USGSImageryTopo/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:20}}}}};var h=o(512),d=o.n(h);let{composed:c}=a(),{map:p}=d().seriesTypes,{addEvent:u,defined:g,error:m,merge:f,pick:x,pushUnique:y}=a();function b(t){let{geoBounds:e,chart:i}=t,s=(i.options.series||[]).filter((t=>"tiledwebmap"===t.type))[0];if(s&&s.provider&&s.provider.type&&!s.provider.url){let t=l[s.provider.type];if(g(t)){let{initialProjectionName:i}=new t;if(e){let{x1:t,y1:s,x2:o,y2:r}=e;this.recommendedMapView={projection:{name:i,parallels:[s,r],rotation:[-(t+o)/2]}}}else this.recommendedMapView={projection:{name:i},minZoom:0};return!1}m("Highcharts warning: Tiles Provider not defined in the Provider Registry.",!1)}return!0}class v extends p{constructor(){super(...arguments),this.redrawTiles=!1,this.isAnimating=!1}static compose(t){y(c,"TiledWebMapSeries")&&u(t,"onRecommendMapView",b)}lonLatToTile(t,e){let{lon:i,lat:s}=t;return{x:Math.floor((i+180)/360*Math.pow(2,e)),y:Math.floor((1-Math.log(Math.tan(s*Math.PI/180)+1/Math.cos(s*Math.PI/180))/Math.PI)/2*Math.pow(2,e))}}tileToLonLat(t,e,i){let s=t/Math.pow(2,i)*360-180,o=Math.PI-2*Math.PI*e/Math.pow(2,i);return{lon:s,lat:180/Math.PI*Math.atan(.5*(Math.exp(o)-Math.exp(-o)))}}drawPoints(){let t=this.chart,e=t.mapView;if(!e)return;let i=this.tiles=this.tiles||{},s=this.transformGroups=this.transformGroups||[],o=this,r=this.options.provider,{zoom:n}=e,a=x(e.projection.options.rotation&&e.projection.options.rotation[0],0),h=200*!t.renderer.forExport,d=t=>{for(let s of Object.keys(i))parseFloat(s)===(e.zoom<0?0:Math.floor(e.zoom))||o.minZoom&&(e.zoom<0?0:Math.floor(e.zoom))o.maxZoom&&parseFloat(s)===o.maxZoom?Object.keys(i[s].tiles).forEach(((e,o)=>{i[s].tiles[e].animate({opacity:1},{duration:t},(()=>{o===Object.keys(i[s].tiles).length-1&&(i[s].isActive=!0)}))})):Object.keys(i[s].tiles).forEach(((e,o)=>{i[s].tiles[e].animate({opacity:0},{duration:t,defer:t/2},(()=>{i[s].tiles[e].destroy(),delete i[s].tiles[e],o===Object.keys(i[s].tiles).length-1&&(i[s].isActive=!1,i[s].loaded=!1)}))}))},c=n<0?0:Math.floor(n),p=Math.pow(2,c),u=.638436911716859*Math.pow(2,n)/(.638436911716859*Math.pow(2,c)),f=256*u;if(r&&(r.type||r.url)){if(r.type&&!r.url){let i=l[r.type];if(!g(i))return void m("Highcharts warning: Tiles Provider '"+r.type+"' not defined in the ProviderRegistry.",!1);let s,o=new i,n=o.initialProjectionName,a="";if(r.theme&&g(o.themes[r.theme]))s=o.themes[r.theme];else{let t=Object.keys(o.themes)[0];s=o.themes[t],m("Highcharts warning: The Tiles Provider's Theme '"+r.theme+"' is not defined in the Provider definition - falling back to '"+t+"'.",!1)}r.subdomain&&o.subdomains&&-1!==o.subdomains.indexOf(r.subdomain)?a=r.subdomain:g(o.subdomains)&&-1!==s.url.indexOf("{s}")&&(a=x(o.subdomains&&o.subdomains[0],""),m("Highcharts warning: The Tiles Provider's Subdomain '"+r.subdomain+"' is not defined in the Provider definition - falling back to '"+a+"'.",!1)),o.requiresApiKey&&(r.apiKey?s.url=s.url.replace("{apikey}",r.apiKey):(m("Highcharts warning: The Tiles Provider requires API Key to use tiles, use provider.apiKey to provide a token.",!1),s.url=s.url.replace("?apikey={apikey}",""))),r.url=s.url.replace("{s}",a),this.minZoom=s.minZoom,this.maxZoom=s.maxZoom;let h=x(t.userOptions.credits&&t.userOptions.credits.text,"Highcharts.com "+x(s.credits,o.defaultCredits));t.credits?t.credits.update({text:h}):t.addCredits({text:h,style:x(t.options.credits?.style,{})}),e.projection.options.name!==n&&m("Highcharts warning: The set projection is different than supported by Tiles Provider.",!1)}else e.projection.options.name||m("Highcharts warning: The set projection is different than supported by Tiles Provider.",!1);if(g(this.minZoom)&&cthis.maxZoom&&(p=Math.pow(2,c=this.maxZoom),f=256*(u=.638436911716859*Math.pow(2,n)/(.638436911716859*Math.pow(2,c)))),e.projection&&e.projection.def){e.projection.hasCoordinates=!0,s[c]||(s[c]=t.renderer.g().add(this.group));let n=(t,e,i,s)=>t.replace("{x}",e.toString()).replace("{y}",i.toString()).replace("{zoom}",s.toString()).replace("{z}",s.toString()),l=(a,l,c,u,g)=>{let m=a%p,x=l%p,y=m<0?m+p:m,b=x<0?x+p:x;if(!i[`${c}`].tiles[`${a},${l}`]&&r.url){let p=n(r.url,y,b,c);i[c].loaded=!1,i[`${c}`].tiles[`${a},${l}`]=t.renderer.image(p,a*f-u,l*f-g,f,f).attr({zIndex:2,opacity:0}).on("load",(function(){r.onload&&r.onload.apply(this),(c===(e.zoom<0?0:Math.floor(e.zoom))||c===o.minZoom)&&(i[`${c}`].actualTilesCount++,i[`${c}`].howManyTiles===i[`${c}`].actualTilesCount&&(i[c].loaded=!0,o.isAnimating?o.redrawTiles=!0:(o.redrawTiles=!1,d(h)),i[`${c}`].actualTilesCount=0))})).add(s[c]),i[`${c}`].tiles[`${a},${l}`].posX=a,i[`${c}`].tiles[`${a},${l}`].posY=l,i[`${c}`].tiles[`${a},${l}`].originalURL=p}},u=e.pixelsToProjectedUnits({x:0,y:0}),g=e.projection.def.inverse([u.x,u.y]),m={lon:g[0]-a,lat:g[1]},x=e.pixelsToProjectedUnits({x:t.plotWidth,y:t.plotHeight}),y=e.projection.def.inverse([x.x,x.y]),b={lon:y[0]-a,lat:y[1]};(m.lat>e.projection.maxLatitude||b.lat<-1*e.projection.maxLatitude)&&(m.lat=e.projection.maxLatitude,b.lat=-1*e.projection.maxLatitude);let v=this.lonLatToTile(m,c),w=this.lonLatToTile(b,c),M=this.tileToLonLat(v.x,v.y,c),k=e.projection.def.forward([M.lon+a,M.lat]),S=e.projectedUnitsToPixels({x:k[0],y:k[1]}),T=v.x*f-S.x,A=v.y*f-S.y;i[`${c}`]||(i[`${c}`]={tiles:{},isActive:!1,howManyTiles:0,actualTilesCount:0,loaded:!1}),i[`${c}`].howManyTiles=(w.x-v.x+1)*(w.y-v.y+1),i[`${c}`].actualTilesCount=0;for(let t=v.x;t<=w.x;t++)for(let e=v.y;e<=w.y;e++)l(t,e,c,T,A)}for(let s of Object.keys(i))for(let r of Object.keys(i[s].tiles))if(e.projection&&e.projection.def){let l=.638436911716859*Math.pow(2,n)/(.638436911716859*Math.pow(2,parseFloat(s)))*256,p=i[s].tiles[Object.keys(i[s].tiles)[0]],{posX:u,posY:m}=i[s].tiles[r];if(g(u)&&g(m)&&g(p.posX)&&g(p.posY)){let n=this.tileToLonLat(p.posX,p.posY,parseFloat(s)),g=e.projection.def.forward([n.lon+a,n.lat]),f=e.projectedUnitsToPixels({x:g[0],y:g[1]}),x=p.posX*l-f.x,y=p.posY*l-f.y;if(t.renderer.globalAnimation&&t.hasRendered){let t=Number(i[s].tiles[r].attr("x")),e=Number(i[s].tiles[r].attr("y")),n=Number(i[s].tiles[r].attr("width")),a=Number(i[s].tiles[r].attr("height")),c=(o,h)=>{i[s].tiles[r].attr({x:t+(u*l-x-t)*h.pos,y:e+(m*l-y-e)*h.pos,width:n+(Math.ceil(l)+1-n)*h.pos,height:a+(Math.ceil(l)+1-a)*h.pos})};o.isAnimating=!0,i[s].tiles[r].attr({animator:0}).animate({animator:1},{step:c},(function(){o.isAnimating=!1,o.redrawTiles&&(o.redrawTiles=!1,d(h))}))}else(o.redrawTiles||parseFloat(s)!==c||(i[s].isActive||parseFloat(s)===c)&&Object.keys(i[s].tiles).map((t=>i[s].tiles[t])).some((t=>0===t.opacity)))&&(o.redrawTiles=!1,d(h)),i[s].tiles[r].attr({x:u*l-x,y:m*l-y,width:Math.ceil(l)+1,height:Math.ceil(l)+1})}}}else m("Highcharts warning: Tiles Provider not defined in the Provider Registry.",!1)}update(){let{transformGroups:t}=this,e=this.chart,i=e.mapView,s=arguments[0],{provider:o}=s;if(t&&(t.forEach((t=>{0!==Object.keys(t).length&&t.destroy()})),this.transformGroups=[]),i&&!g(e.userOptions.mapView?.projection)&&o&&o.type){let t=l[o.type];if(t){let{initialProjectionName:e}=new t;i.update({projection:{name:e}})}}super.update.apply(this,arguments)}}v.defaultOptions=f(p.defaultOptions,{states:{inactive:{enabled:!1}}}),d().registerSeriesType("tiledwebmap",v);let w=a();w.TilesProviderRegistry=w.TilesProviderRegistry||l,v.compose(w.MapView);let M=a();return r.default})(),t.exports=i(e._Highcharts,e._Highcharts.SeriesRegistry)}}]);