From c61736b44e515ea4d590bf2aae3e04ddecc192e7 Mon Sep 17 00:00:00 2001 From: Aiden
>1)+fe+W+ge+Re.slice(Ie);break;default:W=Re+fe+W+ge;break}return E(W)}return ne.toString=function(){return D+""},ne}function P(D,q){var N=I((D=s(D),D.type="f",D)),U=Math.max(-8,Math.min(8,Math.floor(n(q)/3)))*3,G=Math.pow(10,-U),ee=b[8+U/3];return function(Q){return N(G*Q)+ee}}return{format:I,formatPrefix:P}}var _;T({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"});function T(M){return _=g(M),e.format=_.format,e.formatPrefix=_.formatPrefix,_}function w(M){return Math.max(0,-n(Math.abs(M)))}function k(M,A){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(n(A)/3)))*3-n(Math.abs(M)))}function x(M,A){return M=Math.abs(M),A=Math.abs(A)-M,Math.max(0,n(A)-n(M))+1}e.FormatSpecifier=l,e.formatDefaultLocale=T,e.formatLocale=g,e.formatSpecifier=s,e.precisionFixed=w,e.precisionPrefix=k,e.precisionRound=x,Object.defineProperty(e,"__esModule",{value:!0})})});var LV=J((uLt,EV)=>{"use strict";EV.exports=function(e){for(var t=e.length,r,n=0;n13)&&r!==32&&r!==133&&r!==160&&r!==5760&&r!==6158&&(r<8192||r>8205)&&r!==8232&&r!==8233&&r!==8239&&r!==8287&&r!==8288&&r!==12288&&r!==65279)return!1;return!0}});var dn=J((fLt,DV)=>{"use strict";var HHe=LV();DV.exports=function(e){var t=typeof e;if(t==="string"){var r=e;if(e=+e,e===0&&HHe(r))return!1}else if(t!=="number")return!1;return e-e<1}});var oi=J((cLt,RV)=>{"use strict";RV.exports={BADNUM:void 0,FP_SAFE:Number.MAX_VALUE*1e-4,ONEMAXYEAR:316224e5,ONEAVGYEAR:315576e5,ONEMINYEAR:31536e6,ONEMAXQUARTER:79488e5,ONEAVGQUARTER:78894e5,ONEMINQUARTER:76896e5,ONEMAXMONTH:26784e5,ONEAVGMONTH:26298e5,ONEMINMONTH:24192e5,ONEWEEK:6048e5,ONEDAY:864e5,ONEHOUR:36e5,ONEMIN:6e4,ONESEC:1e3,ONEMILLI:1,ONEMICROSEC:.001,EPOCHJD:24405875e-1,ALMOST_EQUAL:1-1e-6,LOG_CLIP:10,MINUS_SIGN:"\u2212"}});var uE=J((fT,PV)=>{(function(e,t){typeof fT=="object"&&typeof PV<"u"?t(fT):typeof define=="function"&&define.amd?define(["exports"],t):(e=typeof globalThis<"u"?globalThis:e||self,t(e["base64-arraybuffer"]={}))})(fT,function(e){"use strict";for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r=typeof Uint8Array>"u"?[]:new Uint8Array(256),n=0;n>2],f+=t[(s[l]&3)<<4|s[l+1]>>4],f+=t[(s[l+1]&15)<<2|s[l+2]>>6],f+=t[s[l+2]&63];return u%3===2?f=f.substring(0,f.length-1)+"=":u%3===1&&(f=f.substring(0,f.length-2)+"=="),f},a=function(o){var s=o.length*.75,l=o.length,u,f=0,c,h,d,v;o[o.length-1]==="="&&(s--,o[o.length-2]==="="&&s--);var m=new ArrayBuffer(s),b=new Uint8Array(m);for(u=0;u>4,b[f++]=(h&15)<<4|d>>2,b[f++]=(d&3)<<6|v&63;return m};e.decode=a,e.encode=i,Object.defineProperty(e,"__esModule",{value:!0})})});var Bv=J((hLt,IV)=>{"use strict";IV.exports=function(t){return window&&window.process&&window.process.versions?Object.prototype.toString.call(t)==="[object Object]":Object.prototype.toString.call(t)==="[object Object]"&&Object.getPrototypeOf(t).hasOwnProperty("hasOwnProperty")}});var fl=J(Kc=>{"use strict";var jHe=uE().decode,VHe=Bv(),fE=Array.isArray,YHe=ArrayBuffer,GHe=DataView;function qV(e){return YHe.isView(e)&&!(e instanceof GHe)}Kc.isTypedArray=qV;function cT(e){return fE(e)||qV(e)}Kc.isArrayOrTypedArray=cT;function WHe(e){return!cT(e[0])}Kc.isArray1D=WHe;Kc.ensureArray=function(e,t){return fE(e)||(e=[]),e.length=t,e};var ks={u1c:typeof Uint8ClampedArray>"u"?void 0:Uint8ClampedArray,i1:typeof Int8Array>"u"?void 0:Int8Array,u1:typeof Uint8Array>"u"?void 0:Uint8Array,i2:typeof Int16Array>"u"?void 0:Int16Array,u2:typeof Uint16Array>"u"?void 0:Uint16Array,i4:typeof Int32Array>"u"?void 0:Int32Array,u4:typeof Uint32Array>"u"?void 0:Uint32Array,f4:typeof Float32Array>"u"?void 0:Float32Array,f8:typeof Float64Array>"u"?void 0:Float64Array};ks.uint8c=ks.u1c;ks.uint8=ks.u1;ks.int8=ks.i1;ks.uint16=ks.u2;ks.int16=ks.i2;ks.uint32=ks.u4;ks.int32=ks.i4;ks.float32=ks.f4;ks.float64=ks.f8;function cE(e){return e.constructor===ArrayBuffer}Kc.isArrayBuffer=cE;Kc.decodeTypedArraySpec=function(e){var t=[],r=XHe(e),n=r.dtype,i=ks[n];if(!i)throw new Error('Error in dtype: "'+n+'"');var a=i.BYTES_PER_ELEMENT,o=r.bdata;cE(o)||(o=jHe(o));var s=r.shape===void 0?[o.byteLength/a]:(""+r.shape).split(",");s.reverse();var l=s.length,u,f,c=+s[0],h=a*c,d=0;if(l===1)t=new i(o);else if(l===2)for(u=+s[1],f=0;f{"use strict";var zV=dn(),vE=fl().isArrayOrTypedArray;UV.exports=function(t,r){if(zV(r))r=String(r);else if(typeof r!="string"||r.substr(r.length-4)==="[-1]")throw"bad property string";var n=r.split("."),i,a,o,s;for(s=0;s{"use strict";var y1=Rb(),QHe=/^\w*$/,eje=0,HV=1,hT=2,jV=3,Rp=4;VV.exports=function(t,r,n,i){n=n||"name",i=i||"value";var a,o,s,l={};r&&r.length?(s=y1(t,r),o=s.get()):o=t,r=r||"";var u={};if(o)for(a=0;a2)return l[d]=l[d]|hT,c.set(h,null);if(f){for(a=d;a{"use strict";var tje=/^(.*)(\.[^\.\[\]]+|\[\d\])$/,rje=/^[^\.\[\]]+$/;GV.exports=function(e,t){for(;t;){var r=e.match(tje);if(r)e=r[1];else if(e.match(rje))e="";else throw new Error("bad relativeAttr call:"+[e,t]);if(t.charAt(0)==="^")t=t.slice(1);else break}return e&&t.charAt(0)!=="["?e+"."+t:e+t}});var vT=J((mLt,XV)=>{"use strict";var nje=dn();XV.exports=function(t,r){if(t>0)return Math.log(t)/Math.LN10;var n=Math.log(Math.min(r[0],r[1]))/Math.LN10;return nje(n)||(n=Math.log(Math.max(r[0],r[1]))/Math.LN10-6),n}});var $V=J((yLt,JV)=>{"use strict";var ZV=fl().isArrayOrTypedArray,Pb=Bv();JV.exports=function e(t,r){for(var n in r){var i=r[n],a=t[n];if(a!==i)if(n.charAt(0)==="_"||typeof i=="function"){if(n in t)continue;t[n]=i}else if(ZV(i)&&ZV(a)&&Pb(i[0])){if(n==="customdata"||n==="ids")continue;for(var o=Math.min(i.length,a.length),s=0;s{"use strict";function ije(e,t){var r=e%t;return r<0?r+t:r}function aje(e,t){return Math.abs(e)>t/2?e-Math.round(e/t)*t:e}KV.exports={mod:ije,modHalf:aje}});var ls=J((bLt,dT)=>{(function(e){var t=/^\s+/,r=/\s+$/,n=0,i=e.round,a=e.min,o=e.max,s=e.random;function l(V,ne){if(V=V||"",ne=ne||{},V instanceof l)return V;if(!(this instanceof l))return new l(V,ne);var W=u(V);this._originalInput=V,this._r=W.r,this._g=W.g,this._b=W.b,this._a=W.a,this._roundA=i(100*this._a)/100,this._format=ne.format||W.format,this._gradientType=ne.gradientType,this._r<1&&(this._r=i(this._r)),this._g<1&&(this._g=i(this._g)),this._b<1&&(this._b=i(this._b)),this._ok=W.ok,this._tc_id=n++}l.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var V=this.toRgb();return(V.r*299+V.g*587+V.b*114)/1e3},getLuminance:function(){var V=this.toRgb(),ne,W,fe,ge,Ce,Ne;return ne=V.r/255,W=V.g/255,fe=V.b/255,ne<=.03928?ge=ne/12.92:ge=e.pow((ne+.055)/1.055,2.4),W<=.03928?Ce=W/12.92:Ce=e.pow((W+.055)/1.055,2.4),fe<=.03928?Ne=fe/12.92:Ne=e.pow((fe+.055)/1.055,2.4),.2126*ge+.7152*Ce+.0722*Ne},setAlpha:function(V){return this._a=D(V),this._roundA=i(100*this._a)/100,this},toHsv:function(){var V=d(this._r,this._g,this._b);return{h:V.h*360,s:V.s,v:V.v,a:this._a}},toHsvString:function(){var V=d(this._r,this._g,this._b),ne=i(V.h*360),W=i(V.s*100),fe=i(V.v*100);return this._a==1?"hsv("+ne+", "+W+"%, "+fe+"%)":"hsva("+ne+", "+W+"%, "+fe+"%, "+this._roundA+")"},toHsl:function(){var V=c(this._r,this._g,this._b);return{h:V.h*360,s:V.s,l:V.l,a:this._a}},toHslString:function(){var V=c(this._r,this._g,this._b),ne=i(V.h*360),W=i(V.s*100),fe=i(V.l*100);return this._a==1?"hsl("+ne+", "+W+"%, "+fe+"%)":"hsla("+ne+", "+W+"%, "+fe+"%, "+this._roundA+")"},toHex:function(V){return m(this._r,this._g,this._b,V)},toHexString:function(V){return"#"+this.toHex(V)},toHex8:function(V){return b(this._r,this._g,this._b,this._a,V)},toHex8String:function(V){return"#"+this.toHex8(V)},toRgb:function(){return{r:i(this._r),g:i(this._g),b:i(this._b),a:this._a}},toRgbString:function(){return this._a==1?"rgb("+i(this._r)+", "+i(this._g)+", "+i(this._b)+")":"rgba("+i(this._r)+", "+i(this._g)+", "+i(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:i(q(this._r,255)*100)+"%",g:i(q(this._g,255)*100)+"%",b:i(q(this._b,255)*100)+"%",a:this._a}},toPercentageRgbString:function(){return this._a==1?"rgb("+i(q(this._r,255)*100)+"%, "+i(q(this._g,255)*100)+"%, "+i(q(this._b,255)*100)+"%)":"rgba("+i(q(this._r,255)*100)+"%, "+i(q(this._g,255)*100)+"%, "+i(q(this._b,255)*100)+"%, "+this._roundA+")"},toName:function(){return this._a===0?"transparent":this._a<1?!1:I[m(this._r,this._g,this._b,!0)]||!1},toFilter:function(V){var ne="#"+g(this._r,this._g,this._b,this._a),W=ne,fe=this._gradientType?"GradientType = 1, ":"";if(V){var ge=l(V);W="#"+g(ge._r,ge._g,ge._b,ge._a)}return"progid:DXImageTransform.Microsoft.gradient("+fe+"startColorstr="+ne+",endColorstr="+W+")"},toString:function(V){var ne=!!V;V=V||this._format;var W=!1,fe=this._a<1&&this._a>=0,ge=!ne&&fe&&(V==="hex"||V==="hex6"||V==="hex3"||V==="hex4"||V==="hex8"||V==="name");return ge?V==="name"&&this._a===0?this.toName():this.toRgbString():(V==="rgb"&&(W=this.toRgbString()),V==="prgb"&&(W=this.toPercentageRgbString()),(V==="hex"||V==="hex6")&&(W=this.toHexString()),V==="hex3"&&(W=this.toHexString(!0)),V==="hex4"&&(W=this.toHex8String(!0)),V==="hex8"&&(W=this.toHex8String()),V==="name"&&(W=this.toName()),V==="hsl"&&(W=this.toHslString()),V==="hsv"&&(W=this.toHsvString()),W||this.toHexString())},clone:function(){return l(this.toString())},_applyModification:function(V,ne){var W=V.apply(null,[this].concat([].slice.call(ne)));return this._r=W._r,this._g=W._g,this._b=W._b,this.setAlpha(W._a),this},lighten:function(){return this._applyModification(k,arguments)},brighten:function(){return this._applyModification(x,arguments)},darken:function(){return this._applyModification(M,arguments)},desaturate:function(){return this._applyModification(_,arguments)},saturate:function(){return this._applyModification(T,arguments)},greyscale:function(){return this._applyModification(w,arguments)},spin:function(){return this._applyModification(A,arguments)},_applyCombination:function(V,ne){return V.apply(null,[this].concat([].slice.call(ne)))},analogous:function(){return this._applyCombination(C,arguments)},complement:function(){return this._applyCombination(p,arguments)},monochromatic:function(){return this._applyCombination(L,arguments)},splitcomplement:function(){return this._applyCombination(E,arguments)},triad:function(){return this._applyCombination(S,arguments)},tetrad:function(){return this._applyCombination(y,arguments)}},l.fromRatio=function(V,ne){if(typeof V=="object"){var W={};for(var fe in V)V.hasOwnProperty(fe)&&(fe==="a"?W[fe]=V[fe]:W[fe]=j(V[fe]));V=W}return l(V,ne)};function u(V){var ne={r:0,g:0,b:0},W=1,fe=null,ge=null,Ce=null,Ne=!1,pe=!1;return typeof V=="string"&&(V=oe(V)),typeof V=="object"&&($(V.r)&&$(V.g)&&$(V.b)?(ne=f(V.r,V.g,V.b),Ne=!0,pe=String(V.r).substr(-1)==="%"?"prgb":"rgb"):$(V.h)&&$(V.s)&&$(V.v)?(fe=j(V.s),ge=j(V.v),ne=v(V.h,fe,ge),Ne=!0,pe="hsv"):$(V.h)&&$(V.s)&&$(V.l)&&(fe=j(V.s),Ce=j(V.l),ne=h(V.h,fe,Ce),Ne=!0,pe="hsl"),V.hasOwnProperty("a")&&(W=V.a)),W=D(W),{ok:Ne,format:V.format||pe,r:a(255,o(ne.r,0)),g:a(255,o(ne.g,0)),b:a(255,o(ne.b,0)),a:W}}function f(V,ne,W){return{r:q(V,255)*255,g:q(ne,255)*255,b:q(W,255)*255}}function c(V,ne,W){V=q(V,255),ne=q(ne,255),W=q(W,255);var fe=o(V,ne,W),ge=a(V,ne,W),Ce,Ne,pe=(fe+ge)/2;if(fe==ge)Ce=Ne=0;else{var me=fe-ge;switch(Ne=pe>.5?me/(2-fe-ge):me/(fe+ge),fe){case V:Ce=(ne-W)/me+(ne1&&(ze-=1),ze<1/6?Ie+(Re-Ie)*6*ze:ze<1/2?Re:ze<2/3?Ie+(Re-Ie)*(2/3-ze)*6:Ie}if(ne===0)fe=ge=Ce=W;else{var pe=W<.5?W*(1+ne):W+ne-W*ne,me=2*W-pe;fe=Ne(me,pe,V+1/3),ge=Ne(me,pe,V),Ce=Ne(me,pe,V-1/3)}return{r:fe*255,g:ge*255,b:Ce*255}}function d(V,ne,W){V=q(V,255),ne=q(ne,255),W=q(W,255);var fe=o(V,ne,W),ge=a(V,ne,W),Ce,Ne,pe=fe,me=fe-ge;if(Ne=fe===0?0:me/fe,fe==ge)Ce=0;else{switch(fe){case V:Ce=(ne-W)/me+(ne>1)+720)%360;--ne;)fe.h=(fe.h+ge)%360,Ce.push(l(fe));return Ce}function L(V,ne){ne=ne||6;for(var W=l(V).toHsv(),fe=W.h,ge=W.s,Ce=W.v,Ne=[],pe=1/ne;ne--;)Ne.push(l({h:fe,s:ge,v:Ce})),Ce=(Ce+pe)%1;return Ne}l.mix=function(V,ne,W){W=W===0?0:W||50;var fe=l(V).toRgb(),ge=l(ne).toRgb(),Ce=W/100,Ne={r:(ge.r-fe.r)*Ce+fe.r,g:(ge.g-fe.g)*Ce+fe.g,b:(ge.b-fe.b)*Ce+fe.b,a:(ge.a-fe.a)*Ce+fe.a};return l(Ne)},l.readability=function(V,ne){var W=l(V),fe=l(ne);return(e.max(W.getLuminance(),fe.getLuminance())+.05)/(e.min(W.getLuminance(),fe.getLuminance())+.05)},l.isReadable=function(V,ne,W){var fe=l.readability(V,ne),ge,Ce;switch(Ce=!1,ge=te(W),ge.level+ge.size){case"AAsmall":case"AAAlarge":Ce=fe>=4.5;break;case"AAlarge":Ce=fe>=3;break;case"AAAsmall":Ce=fe>=7;break}return Ce},l.mostReadable=function(V,ne,W){var fe=null,ge=0,Ce,Ne,pe,me;W=W||{},Ne=W.includeFallbackColors,pe=W.level,me=W.size;for(var Ie=0;Iege&&(ge=Ce,fe=l(ne[Ie]));return l.isReadable(V,fe,{level:pe,size:me})||!Ne?fe:(W.includeFallbackColors=!1,l.mostReadable(V,["#fff","#000"],W))};var R=l.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",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",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",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:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},I=l.hexNames=P(R);function P(V){var ne={};for(var W in V)V.hasOwnProperty(W)&&(ne[V[W]]=W);return ne}function D(V){return V=parseFloat(V),(isNaN(V)||V<0||V>1)&&(V=1),V}function q(V,ne){G(V)&&(V="100%");var W=ee(V);return V=a(ne,o(0,parseFloat(V))),W&&(V=parseInt(V*ne,10)/100),e.abs(V-ne)<1e-6?1:V%ne/parseFloat(ne)}function N(V){return a(1,o(0,V))}function U(V){return parseInt(V,16)}function G(V){return typeof V=="string"&&V.indexOf(".")!=-1&&parseFloat(V)===1}function ee(V){return typeof V=="string"&&V.indexOf("%")!=-1}function Q(V){return V.length==1?"0"+V:""+V}function j(V){return V<=1&&(V=V*100+"%"),V}function O(V){return e.round(parseFloat(V)*255).toString(16)}function Z(V){return U(V)/255}var K=function(){var V="[-\\+]?\\d+%?",ne="[-\\+]?\\d*\\.\\d+%?",W="(?:"+ne+")|(?:"+V+")",fe="[\\s|\\(]+("+W+")[,|\\s]+("+W+")[,|\\s]+("+W+")\\s*\\)?",ge="[\\s|\\(]+("+W+")[,|\\s]+("+W+")[,|\\s]+("+W+")[,|\\s]+("+W+")\\s*\\)?";return{CSS_UNIT:new RegExp(W),rgb:new RegExp("rgb"+fe),rgba:new RegExp("rgba"+ge),hsl:new RegExp("hsl"+fe),hsla:new RegExp("hsla"+ge),hsv:new RegExp("hsv"+fe),hsva:new RegExp("hsva"+ge),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function $(V){return!!K.CSS_UNIT.exec(V)}function oe(V){V=V.replace(t,"").replace(r,"").toLowerCase();var ne=!1;if(R[V])V=R[V],ne=!0;else if(V=="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var W;return(W=K.rgb.exec(V))?{r:W[1],g:W[2],b:W[3]}:(W=K.rgba.exec(V))?{r:W[1],g:W[2],b:W[3],a:W[4]}:(W=K.hsl.exec(V))?{h:W[1],s:W[2],l:W[3]}:(W=K.hsla.exec(V))?{h:W[1],s:W[2],l:W[3],a:W[4]}:(W=K.hsv.exec(V))?{h:W[1],s:W[2],v:W[3]}:(W=K.hsva.exec(V))?{h:W[1],s:W[2],v:W[3],a:W[4]}:(W=K.hex8.exec(V))?{r:U(W[1]),g:U(W[2]),b:U(W[3]),a:Z(W[4]),format:ne?"name":"hex8"}:(W=K.hex6.exec(V))?{r:U(W[1]),g:U(W[2]),b:U(W[3]),format:ne?"name":"hex"}:(W=K.hex4.exec(V))?{r:U(W[1]+""+W[1]),g:U(W[2]+""+W[2]),b:U(W[3]+""+W[3]),a:Z(W[4]+""+W[4]),format:ne?"name":"hex8"}:(W=K.hex3.exec(V))?{r:U(W[1]+""+W[1]),g:U(W[2]+""+W[2]),b:U(W[3]+""+W[3]),format:ne?"name":"hex"}:!1}function te(V){var ne,W;return V=V||{level:"AA",size:"small"},ne=(V.level||"AA").toUpperCase(),W=(V.size||"small").toLowerCase(),ne!=="AA"&&ne!=="AAA"&&(ne="AA"),W!=="small"&&W!=="large"&&(W="small"),{level:ne,size:W}}typeof dT<"u"&&dT.exports?dT.exports=l:typeof define=="function"&&define.amd?define(function(){return l}):window.tinycolor=l})(Math)});var cn=J(Fb=>{"use strict";var QV=Bv(),Ib=Array.isArray;function oje(e,t){var r,n;for(r=0;r{"use strict";eY.exports=function(e){var t=e.variantValues,r=e.editType,n=e.colorEditType;n===void 0&&(n=r);var i={editType:r,valType:"integer",min:1,max:1e3,extras:["normal","bold"],dflt:"normal",description:["Sets the weight (or boldness) of the font."].join(" ")};e.noNumericWeightValues&&(i.valType="enumerated",i.values=i.extras,i.extras=void 0,i.min=void 0,i.max=void 0);var a={family:{valType:"string",noBlank:!0,strict:!0,editType:r,description:["HTML font family - the typeface that will be applied by the web browser.","The web browser will only be able to apply a font if it is available on the system","which it operates. Provide multiple font families, separated by commas, to indicate","the preference in which to apply fonts if they aren't available on the system.","The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server,","where only a select number of","fonts are installed and supported.","These include *Arial*, *Balto*, *Courier New*, *Droid Sans*, *Droid Serif*,","*Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*,","*PT Sans Narrow*, *Raleway*, *Times New Roman*."].join(" ")},size:{valType:"number",min:1,editType:r},color:{valType:"color",editType:n},weight:i,style:{editType:r,valType:"enumerated",values:["normal","italic"],dflt:"normal",description:["Sets whether a font should be styled with a normal or italic face from its family."].join(" ")},variant:e.noFontVariant?void 0:{editType:r,valType:"enumerated",values:t||["normal","small-caps","all-small-caps","all-petite-caps","petite-caps","unicase"],dflt:"normal",description:["Sets the variant of the font."].join(" ")},textcase:e.noFontTextcase?void 0:{editType:r,valType:"enumerated",values:["normal","word caps","upper","lower"],dflt:"normal",description:["Sets capitalization of text.","It can be used to make text appear in all-uppercase or all-lowercase,","or with each word capitalized."].join(" ")},lineposition:e.noFontLineposition?void 0:{editType:r,valType:"flaglist",flags:["under","over","through"],extras:["none"],dflt:"none",description:["Sets the kind of decoration line(s) with text,","such as an *under*, *over* or *through*","as well as combinations e.g. *under+over*, etc."].join(" ")},shadow:e.noFontShadow?void 0:{editType:r,valType:"string",dflt:e.autoShadowDflt?"auto":"none",description:["Sets the shape and color of the shadow behind text.","*auto* places minimal shadow and applies contrast text font color.","See https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow for additional options."].join(" ")},editType:r,description:""+(e.description||"")};return e.autoSize&&(a.size.dflt="auto"),e.autoColor&&(a.color.dflt="auto"),e.arrayOk&&(a.family.arrayOk=!0,a.weight.arrayOk=!0,a.style.arrayOk=!0,e.noFontVariant||(a.variant.arrayOk=!0),e.noFontTextcase||(a.textcase.arrayOk=!0),e.noFontLineposition||(a.lineposition.arrayOk=!0),e.noFontShadow||(a.shadow.arrayOk=!0),a.size.arrayOk=!0,a.color.arrayOk=!0),a}});var zb=J((TLt,tY)=>{"use strict";tY.exports={YANGLE:60,HOVERARROWSIZE:6,HOVERTEXTPAD:3,HOVERFONTSIZE:13,HOVERFONT:"Arial, sans-serif",HOVERMINTIME:50,HOVERID:"-hover"}});var Uv=J((ALt,iY)=>{"use strict";var rY=zb(),nY=xa(),dE=nY({editType:"none",description:"Sets the default hover label font used by all traces on the graph."});dE.family.dflt=rY.HOVERFONT;dE.size.dflt=rY.HOVERFONTSIZE;iY.exports={clickmode:{valType:"flaglist",flags:["event","select"],dflt:"event",editType:"plot",extras:["none"],description:["Determines the mode of single click interactions.","*event* is the default value and emits the `plotly_click`","event. In addition this mode emits the `plotly_selected` event","in drag modes *lasso* and *select*, but with no event data attached","(kept for compatibility reasons).","The *select* flag enables selecting single","data points via click. This mode also supports persistent selections,","meaning that pressing Shift while clicking, adds to / subtracts from an","existing selection. *select* with `hovermode`: *x* can be confusing, consider","explicitly setting `hovermode`: *closest* when using this feature.","Selection events are sent accordingly as long as *event* flag is set as well.","When the *event* flag is missing, `plotly_click` and `plotly_selected`","events are not fired."].join(" ")},dragmode:{valType:"enumerated",values:["zoom","pan","select","lasso","drawclosedpath","drawopenpath","drawline","drawrect","drawcircle","orbit","turntable",!1],dflt:"zoom",editType:"modebar",description:["Determines the mode of drag interactions.","*select* and *lasso* apply only to scatter traces with","markers or text. *orbit* and *turntable* apply only to","3D scenes."].join(" ")},hovermode:{valType:"enumerated",values:["x","y","closest",!1,"x unified","y unified"],dflt:"closest",editType:"modebar",description:["Determines the mode of hover interactions.","If *closest*, a single hoverlabel will appear","for the *closest* point within the `hoverdistance`.","If *x* (or *y*), multiple hoverlabels will appear for multiple points","at the *closest* x- (or y-) coordinate within the `hoverdistance`,","with the caveat that no more than one hoverlabel will appear per trace.","If *x unified* (or *y unified*), a single hoverlabel will appear","multiple points at the closest x- (or y-) coordinate within the `hoverdistance`","with the caveat that no more than one hoverlabel will appear per trace.","In this mode, spikelines are enabled by default perpendicular to the specified axis.","If false, hover interactions are disabled."].join(" ")},hoversubplots:{valType:"enumerated",values:["single","overlaying","axis"],dflt:"overlaying",editType:"none",description:["Determines expansion of hover effects to other subplots","If *single* just the axis pair of the primary point is included without overlaying subplots.","If *overlaying* all subplots using the main axis and occupying the same space are included.","If *axis*, also include stacked subplots using the same axis","when `hovermode` is set to *x*, *x unified*, *y* or *y unified*."].join(" ")},hoverdistance:{valType:"integer",min:-1,dflt:20,editType:"none",description:["Sets the default distance (in pixels) to look for data","to add hover labels (-1 means no cutoff, 0 means no looking for data).","This is only a real distance for hovering on point-like objects,","like scatter points. For area-like objects (bars, scatter fills, etc)","hovering is on inside the area and off outside, but these objects","will not supersede hover on point-like objects in case of conflict."].join(" ")},spikedistance:{valType:"integer",min:-1,dflt:-1,editType:"none",description:["Sets the default distance (in pixels) to look for data to draw","spikelines to (-1 means no cutoff, 0 means no looking for data).","As with hoverdistance, distance does not apply to area-like objects.","In addition, some objects can be hovered on but will not generate","spikelines, such as scatter fills."].join(" ")},hoverlabel:{bgcolor:{valType:"color",editType:"none",description:["Sets the background color of all hover labels on graph"].join(" ")},bordercolor:{valType:"color",editType:"none",description:["Sets the border color of all hover labels on graph."].join(" ")},font:dE,grouptitlefont:nY({editType:"none",description:["Sets the font for group titles in hover (unified modes).","Defaults to `hoverlabel.font`."].join(" ")}),align:{valType:"enumerated",values:["left","right","auto"],dflt:"auto",editType:"none",description:["Sets the horizontal alignment of the text content within hover label box.","Has an effect only if the hover label text spans more two or more lines"].join(" ")},namelength:{valType:"integer",min:-1,dflt:15,editType:"none",description:["Sets the default length (in number of characters) of the trace name in","the hover labels for all traces. -1 shows the whole name","regardless of length. 0-3 shows the first 0-3 characters, and","an integer >3 will show the whole name if it is less than that","many characters, but if it is longer, will truncate to","`namelength - 3` characters and add an ellipsis."].join(" ")},editType:"none"},selectdirection:{valType:"enumerated",values:["h","v","d","any"],dflt:"any",description:["When `dragmode` is set to *select*, this limits the selection of the drag to","horizontal, vertical or diagonal. *h* only allows horizontal selection,","*v* only vertical, *d* only diagonal and *any* sets no limit."].join(" "),editType:"none"}}});var b1=J((MLt,aY)=>{"use strict";var sje=xa(),pT=Uv().hoverlabel,gT=cn().extendFlat;aY.exports={hoverlabel:{bgcolor:gT({},pT.bgcolor,{arrayOk:!0,description:"Sets the background color of the hover labels for this trace"}),bordercolor:gT({},pT.bordercolor,{arrayOk:!0,description:"Sets the border color of the hover labels for this trace."}),font:sje({arrayOk:!0,editType:"none",description:"Sets the font used in hover labels."}),align:gT({},pT.align,{arrayOk:!0}),namelength:gT({},pT.namelength,{arrayOk:!0}),editType:"none"}}});var Qi=J((kLt,oY)=>{"use strict";var lje=xa(),uje=b1();oY.exports={type:{valType:"enumerated",values:[],dflt:"scatter",editType:"calc+clearAxisTypes",_noTemplating:!0},visible:{valType:"enumerated",values:[!0,!1,"legendonly"],dflt:!0,editType:"calc",description:["Determines whether or not this trace is visible.","If *legendonly*, the trace is not drawn,","but can appear as a legend item","(provided that the legend itself is visible)."].join(" ")},showlegend:{valType:"boolean",dflt:!0,editType:"style",description:["Determines whether or not an item corresponding to this","trace is shown in the legend."].join(" ")},legend:{valType:"subplotid",dflt:"legend",editType:"style",description:["Sets the reference to a legend to show this trace in.","References to these legends are *legend*, *legend2*, *legend3*, etc.","Settings for these legends are set in the layout, under","`layout.legend`, `layout.legend2`, etc."].join(" ")},legendgroup:{valType:"string",dflt:"",editType:"style",description:["Sets the legend group for this trace.","Traces and shapes part of the same legend group hide/show at the same time","when toggling legend items."].join(" ")},legendgrouptitle:{text:{valType:"string",dflt:"",editType:"style",description:["Sets the title of the legend group."].join(" ")},font:lje({editType:"style",description:["Sets this legend group's title font."].join(" ")}),editType:"style"},legendrank:{valType:"number",dflt:1e3,editType:"style",description:["Sets the legend rank for this trace.","Items and groups with smaller ranks are presented on top/left side while","with *reversed* `legend.traceorder` they are on bottom/right side.","The default legendrank is 1000,","so that you can use ranks less than 1000 to place certain items before all unranked items,","and ranks greater than 1000 to go after all unranked items.","When having unranked or equal rank items shapes would be displayed after traces","i.e. according to their order in data and layout."].join(" ")},legendwidth:{valType:"number",min:0,editType:"style",description:"Sets the width (in px or fraction) of the legend for this trace."},opacity:{valType:"number",min:0,max:1,dflt:1,editType:"style",description:"Sets the opacity of the trace."},name:{valType:"string",editType:"style",description:["Sets the trace name.","The trace name appears as the legend item and on hover."].join(" ")},uid:{valType:"string",editType:"plot",anim:!0,description:["Assign an id to this trace,","Use this to provide object constancy between traces during animations","and transitions."].join(" ")},ids:{valType:"data_array",editType:"calc",anim:!0,description:["Assigns id labels to each datum.","These ids for object constancy of data points during animation.","Should be an array of strings, not numbers or any other type."].join(" ")},customdata:{valType:"data_array",editType:"calc",description:["Assigns extra data each datum.","This may be useful when listening to hover, click and selection events.","Note that, *scatter* traces also appends customdata items in the markers","DOM elements"].join(" ")},meta:{valType:"any",arrayOk:!0,editType:"plot",description:["Assigns extra meta information associated with this trace","that can be used in various text attributes.","Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text`","`rangeselector`, `updatemenues` and `sliders` `label` text","all support `meta`.","To access the trace `meta` values in an attribute in the same trace, simply use","`%{meta[i]}` where `i` is the index or key of the `meta`","item in question.","To access trace `meta` in layout attributes, use","`%{data[n[.meta[i]}` where `i` is the index or key of the `meta`","and `n` is the trace index."].join(" ")},selectedpoints:{valType:"any",editType:"calc",description:["Array containing integer indices of selected points.","Has an effect only for traces that support selections.","Note that an empty array means an empty selection where the `unselected`","are turned on for all points, whereas, any other non-array values means no","selection all where the `selected` and `unselected` styles have no effect."].join(" ")},hoverinfo:{valType:"flaglist",flags:["x","y","z","text","name"],extras:["all","none","skip"],arrayOk:!0,dflt:"all",editType:"none",description:["Determines which trace information appear on hover.","If `none` or `skip` are set, no information is displayed upon hovering.","But, if `none` is set, click and hover events are still fired."].join(" ")},hoverlabel:uje.hoverlabel,stream:{token:{valType:"string",noBlank:!0,strict:!0,editType:"calc",description:["The stream id number links a data trace on a plot with a stream.","See https://chart-studio.plotly.com/settings for more details."].join(" ")},maxpoints:{valType:"number",min:0,max:1e4,dflt:500,editType:"calc",description:["Sets the maximum number of points to keep on the plots from an","incoming stream.","If `maxpoints` is set to *50*, only the newest 50 points will","be displayed on the plot."].join(" ")},editType:"calc"},transforms:{_isLinkedToArray:"transform",editType:"calc",description:["WARNING: All transforms are deprecated and may be removed from the API in next major version.","An array of operations that manipulate the trace data,","for example filtering or sorting the data arrays."].join(" ")},uirevision:{valType:"any",editType:"none",description:["Controls persistence of some user-driven changes to the trace:","`constraintrange` in `parcoords` traces, as well as some","`editable: true` modifications such as `name` and `colorbar.title`.","Defaults to `layout.uirevision`.","Note that other user-driven trace attribute changes are controlled","by `layout` attributes:","`trace.visible` is controlled by `layout.legend.uirevision`,","`selectedpoints` is controlled by `layout.selectionrevision`,","and `colorbar.(x|y)` (accessible with `config: {editable: true}`)","is controlled by `layout.editrevision`.","Trace changes are tracked by `uid`, which only falls back on trace","index if no `uid` is provided. So if your app can add/remove traces","before the end of the `data` array, such that the same trace has a","different index, you can still preserve user-driven changes if you","give each trace a `uid` that stays with it as it moves."].join(" ")}}});var Pp=J((SLt,uY)=>{"use strict";var fje=ls(),mT={Greys:[[0,"rgb(0,0,0)"],[1,"rgb(255,255,255)"]],YlGnBu:[[0,"rgb(8,29,88)"],[.125,"rgb(37,52,148)"],[.25,"rgb(34,94,168)"],[.375,"rgb(29,145,192)"],[.5,"rgb(65,182,196)"],[.625,"rgb(127,205,187)"],[.75,"rgb(199,233,180)"],[.875,"rgb(237,248,217)"],[1,"rgb(255,255,217)"]],Greens:[[0,"rgb(0,68,27)"],[.125,"rgb(0,109,44)"],[.25,"rgb(35,139,69)"],[.375,"rgb(65,171,93)"],[.5,"rgb(116,196,118)"],[.625,"rgb(161,217,155)"],[.75,"rgb(199,233,192)"],[.875,"rgb(229,245,224)"],[1,"rgb(247,252,245)"]],YlOrRd:[[0,"rgb(128,0,38)"],[.125,"rgb(189,0,38)"],[.25,"rgb(227,26,28)"],[.375,"rgb(252,78,42)"],[.5,"rgb(253,141,60)"],[.625,"rgb(254,178,76)"],[.75,"rgb(254,217,118)"],[.875,"rgb(255,237,160)"],[1,"rgb(255,255,204)"]],Bluered:[[0,"rgb(0,0,255)"],[1,"rgb(255,0,0)"]],RdBu:[[0,"rgb(5,10,172)"],[.35,"rgb(106,137,247)"],[.5,"rgb(190,190,190)"],[.6,"rgb(220,170,132)"],[.7,"rgb(230,145,90)"],[1,"rgb(178,10,28)"]],Reds:[[0,"rgb(220,220,220)"],[.2,"rgb(245,195,157)"],[.4,"rgb(245,160,105)"],[1,"rgb(178,10,28)"]],Blues:[[0,"rgb(5,10,172)"],[.35,"rgb(40,60,190)"],[.5,"rgb(70,100,245)"],[.6,"rgb(90,120,245)"],[.7,"rgb(106,137,247)"],[1,"rgb(220,220,220)"]],Picnic:[[0,"rgb(0,0,255)"],[.1,"rgb(51,153,255)"],[.2,"rgb(102,204,255)"],[.3,"rgb(153,204,255)"],[.4,"rgb(204,204,255)"],[.5,"rgb(255,255,255)"],[.6,"rgb(255,204,255)"],[.7,"rgb(255,153,255)"],[.8,"rgb(255,102,204)"],[.9,"rgb(255,102,102)"],[1,"rgb(255,0,0)"]],Rainbow:[[0,"rgb(150,0,90)"],[.125,"rgb(0,0,200)"],[.25,"rgb(0,25,255)"],[.375,"rgb(0,152,255)"],[.5,"rgb(44,255,150)"],[.625,"rgb(151,255,0)"],[.75,"rgb(255,234,0)"],[.875,"rgb(255,111,0)"],[1,"rgb(255,0,0)"]],Portland:[[0,"rgb(12,51,131)"],[.25,"rgb(10,136,186)"],[.5,"rgb(242,211,56)"],[.75,"rgb(242,143,56)"],[1,"rgb(217,30,30)"]],Jet:[[0,"rgb(0,0,131)"],[.125,"rgb(0,60,170)"],[.375,"rgb(5,255,255)"],[.625,"rgb(255,255,0)"],[.875,"rgb(250,0,0)"],[1,"rgb(128,0,0)"]],Hot:[[0,"rgb(0,0,0)"],[.3,"rgb(230,0,0)"],[.6,"rgb(255,210,0)"],[1,"rgb(255,255,255)"]],Blackbody:[[0,"rgb(0,0,0)"],[.2,"rgb(230,0,0)"],[.4,"rgb(230,210,0)"],[.7,"rgb(255,255,255)"],[1,"rgb(160,200,255)"]],Earth:[[0,"rgb(0,0,130)"],[.1,"rgb(0,180,180)"],[.2,"rgb(40,210,40)"],[.4,"rgb(230,230,50)"],[.6,"rgb(120,70,20)"],[1,"rgb(255,255,255)"]],Electric:[[0,"rgb(0,0,0)"],[.15,"rgb(30,0,100)"],[.4,"rgb(120,0,100)"],[.6,"rgb(160,90,0)"],[.8,"rgb(230,200,0)"],[1,"rgb(255,250,220)"]],Viridis:[[0,"#440154"],[.06274509803921569,"#48186a"],[.12549019607843137,"#472d7b"],[.18823529411764706,"#424086"],[.25098039215686274,"#3b528b"],[.3137254901960784,"#33638d"],[.3764705882352941,"#2c728e"],[.4392156862745098,"#26828e"],[.5019607843137255,"#21918c"],[.5647058823529412,"#1fa088"],[.6274509803921569,"#28ae80"],[.6901960784313725,"#3fbc73"],[.7529411764705882,"#5ec962"],[.8156862745098039,"#84d44b"],[.8784313725490196,"#addc30"],[.9411764705882353,"#d8e219"],[1,"#fde725"]],Cividis:[[0,"rgb(0,32,76)"],[.058824,"rgb(0,42,102)"],[.117647,"rgb(0,52,110)"],[.176471,"rgb(39,63,108)"],[.235294,"rgb(60,74,107)"],[.294118,"rgb(76,85,107)"],[.352941,"rgb(91,95,109)"],[.411765,"rgb(104,106,112)"],[.470588,"rgb(117,117,117)"],[.529412,"rgb(131,129,120)"],[.588235,"rgb(146,140,120)"],[.647059,"rgb(161,152,118)"],[.705882,"rgb(176,165,114)"],[.764706,"rgb(192,177,109)"],[.823529,"rgb(209,191,102)"],[.882353,"rgb(225,204,92)"],[.941176,"rgb(243,219,79)"],[1,"rgb(255,233,69)"]]},sY=mT.RdBu;function cje(e,t){if(t||(t=sY),!e)return t;function r(){try{e=mT[e]||JSON.parse(e)}catch{e=t}}return typeof e=="string"&&(r(),typeof e=="string"&&r()),lY(e)?e:t}function lY(e){var t=0;if(!Array.isArray(e)||e.length<2||!e[0]||!e[e.length-1]||+e[0][0]!=0||+e[e.length-1][0]!=1)return!1;for(var r=0;r{"use strict";Ip.defaults=["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"];Ip.defaultLine="#444";Ip.lightLine="#eee";Ip.background="#fff";Ip.borderLine="#BEC8D9";Ip.lightFraction=100*(14-4)/(15-4)});var qr=J((ELt,fY)=>{"use strict";var Iu=ls(),vje=dn(),dje=fl().isTypedArray,us=fY.exports={},yT=Ho();us.defaults=yT.defaults;var pje=us.defaultLine=yT.defaultLine;us.lightLine=yT.lightLine;var gE=us.background=yT.background;us.tinyRGB=function(e){var t=e.toRgb();return"rgb("+Math.round(t.r)+", "+Math.round(t.g)+", "+Math.round(t.b)+")"};us.rgb=function(e){return us.tinyRGB(Iu(e))};us.opacity=function(e){return e?Iu(e).getAlpha():0};us.addOpacity=function(e,t){var r=Iu(e).toRgb();return"rgba("+Math.round(r.r)+", "+Math.round(r.g)+", "+Math.round(r.b)+", "+t+")"};us.combine=function(e,t){var r=Iu(e).toRgb();if(r.a===1)return Iu(e).toRgbString();var n=Iu(t||gE).toRgb(),i=n.a===1?n:{r:255*(1-n.a)+n.r*n.a,g:255*(1-n.a)+n.g*n.a,b:255*(1-n.a)+n.b*n.a},a={r:i.r*(1-r.a)+r.r*r.a,g:i.g*(1-r.a)+r.g*r.a,b:i.b*(1-r.a)+r.b*r.a};return Iu(a).toRgbString()};us.interpolate=function(e,t,r){var n=Iu(e).toRgb(),i=Iu(t).toRgb(),a={r:r*n.r+(1-r)*i.r,g:r*n.g+(1-r)*i.g,b:r*n.b+(1-r)*i.b};return Iu(a).toRgbString()};us.contrast=function(e,t,r){var n=Iu(e);n.getAlpha()!==1&&(n=Iu(us.combine(e,gE)));var i=n.isDark()?t?n.lighten(t):gE:r?n.darken(r):pje;return i.toString()};us.stroke=function(e,t){var r=Iu(t);e.style({stroke:us.tinyRGB(r),"stroke-opacity":r.getAlpha()})};us.fill=function(e,t){var r=Iu(t);e.style({fill:us.tinyRGB(r),"fill-opacity":r.getAlpha()})};us.clean=function(e){if(!(!e||typeof e!="object")){var t=Object.keys(e),r,n,i,a;for(r=0;r=0)))return e;if(a===3)n[a]>1&&(n[a]=1);else if(n[a]>=1)return e}var o=Math.round(n[0]*255)+", "+Math.round(n[1]*255)+", "+Math.round(n[2]*255);return i?"rgba("+o+", "+n[3]+")":"rgb("+o+")"}});var w1=J((LLt,cY)=>{"use strict";cY.exports={SHOW_PLACEHOLDER:100,HIDE_PLACEHOLDER:1e3,DESELECTDIM:.2}});var _1=J(hY=>{"use strict";hY.counter=function(e,t,r,n){var i=(t||"")+(r?"":"$"),a=n===!1?"":"^";return e==="xy"?new RegExp(a+"x([2-9]|[1-9][0-9]+)?y([2-9]|[1-9][0-9]+)?"+i):new RegExp(a+e+"([2-9]|[1-9][0-9]+)?"+i)}});var mY=J(qu=>{"use strict";var mE=dn(),vY=ls(),dY=cn().extendFlat,gje=Qi(),pY=Pp(),mje=qr(),yje=w1().DESELECTDIM,T1=Rb(),gY=_1().counter,xje=x1().modHalf,jh=fl().isArrayOrTypedArray,Jd=fl().isTypedArraySpec,$d=fl().decodeTypedArraySpec;qu.valObjectMeta={data_array:{description:["An {array} of data.","The value must represent an {array} or it will be ignored,","but this array can be provided in several forms:","(1) a regular {array} object","(2) a typed array (e.g. Float32Array)","(3) an object with keys dtype, bdata, and optionally shape.","In this 3rd form, dtype is one of","*f8*, *f4*.","*i4*, *u4*,","*i2*, *u2*,","*i1*, *u1* or *u1c* for Uint8ClampedArray.","In addition to shorthand `dtype` above one could also use the following forms:","*float64*, *float32*,","*int32*, *uint32*,","*int16*, *uint16*,","*int8*, *uint8* or *uint8c* for Uint8ClampedArray.","`bdata` is either a base64-encoded string or the ArrayBuffer of","an integer or float typed array.","For either multi-dimensional arrays you must also","provide its dimensions separated by comma via `shape`.","For example using `dtype`: *f4* and `shape`: *5,100* you can","declare a 2-D array that has 5 rows and 100 columns","containing float32 values i.e. 4 bits per value.","`shape` is optional for one dimensional arrays."].join(" "),requiredOpts:[],otherOpts:["dflt"],coerceFunction:function(e,t,r){t.set(jh(e)?e:Jd(e)?$d(e):r)}},enumerated:{description:["Enumerated value type. The available values are listed","in `values`."].join(" "),requiredOpts:["values"],otherOpts:["dflt","coerceNumber","arrayOk"],coerceFunction:function(e,t,r,n){n.coerceNumber&&(e=+e),n.values.indexOf(e)===-1?t.set(r):t.set(e)},validateFunction:function(e,t){t.coerceNumber&&(e=+e);for(var r=t.values,n=0;nn.max?t.set(r):t.set(+e)}},integer:{description:["An integer or an integer inside a string.","When applicable, values greater (less) than `max` (`min`)","are coerced to the `dflt`."].join(" "),requiredOpts:[],otherOpts:["dflt","min","max","arrayOk","extras"],coerceFunction:function(e,t,r,n){if((n.extras||[]).indexOf(e)!==-1){t.set(e);return}Jd(e)&&(e=$d(e)),e%1||!mE(e)||n.min!==void 0&&en.max?t.set(r):t.set(+e)}},string:{description:["A string value.","Numbers are converted to strings except for attributes with","`strict` set to true."].join(" "),requiredOpts:[],otherOpts:["dflt","noBlank","strict","arrayOk","values"],coerceFunction:function(e,t,r,n){if(typeof e!="string"){var i=typeof e=="number";n.strict===!0||!i?t.set(r):t.set(String(e))}else n.noBlank&&!e?t.set(r):t.set(e)}},color:{description:["A string describing color.","Supported formats:","- hex (e.g. '#d3d3d3')","- rgb (e.g. 'rgb(255, 0, 0)')","- rgba (e.g. 'rgb(255, 0, 0, 0.5)')","- hsl (e.g. 'hsl(0, 100%, 50%)')","- hsv (e.g. 'hsv(0, 100%, 100%)')","- named colors (full list: http://www.w3.org/TR/css3-color/#svg-color)"].join(" "),requiredOpts:[],otherOpts:["dflt","arrayOk"],coerceFunction:function(e,t,r){Jd(e)&&(e=$d(e)),vY(e).isValid()?t.set(e):t.set(r)}},colorlist:{description:["A list of colors.","Must be an {array} containing valid colors."].join(" "),requiredOpts:[],otherOpts:["dflt"],coerceFunction:function(e,t,r){function n(i){return vY(i).isValid()}!Array.isArray(e)||!e.length?t.set(r):e.every(n)?t.set(e):t.set(r)}},colorscale:{description:["A Plotly colorscale either picked by a name:","(any of",Object.keys(pY.scales).join(", "),")","customized as an {array} of 2-element {arrays} where","the first element is the normalized color level value","(starting at *0* and ending at *1*),","and the second item is a valid color string."].join(" "),requiredOpts:[],otherOpts:["dflt"],coerceFunction:function(e,t,r){t.set(pY.get(e,r))}},angle:{description:["A number (in degree) between -180 and 180."].join(" "),requiredOpts:[],otherOpts:["dflt","arrayOk"],coerceFunction:function(e,t,r){Jd(e)&&(e=$d(e)),e==="auto"?t.set("auto"):mE(e)?t.set(xje(+e,360)):t.set(r)}},subplotid:{description:["An id string of a subplot type (given by dflt), optionally","followed by an integer >1. e.g. if dflt='geo', we can have","'geo', 'geo2', 'geo3', ..."].join(" "),requiredOpts:["dflt"],otherOpts:["regex"],coerceFunction:function(e,t,r,n){var i=n.regex||gY(r);if(typeof e=="string"&&i.test(e)){t.set(e);return}t.set(r)},validateFunction:function(e,t){var r=t.dflt;return e===r?!0:typeof e!="string"?!1:!!gY(r).test(e)}},flaglist:{description:["A string representing a combination of flags","(order does not matter here).","Combine any of the available `flags` with *+*.","(e.g. ('lines+markers')).","Values in `extras` cannot be combined."].join(" "),requiredOpts:["flags"],otherOpts:["dflt","extras","arrayOk"],coerceFunction:function(e,t,r,n){if((n.extras||[]).indexOf(e)!==-1){t.set(e);return}if(typeof e!="string"){t.set(r);return}for(var i=e.split("+"),a=0;a{"use strict";var yY={staticPlot:{valType:"boolean",dflt:!1,description:["Determines whether the graphs are interactive or not.","If *false*, no interactivity, for export or image generation."].join(" ")},typesetMath:{valType:"boolean",dflt:!0,description:["Determines whether math should be typeset or not,","when MathJax (either v2 or v3) is present on the page."].join(" ")},plotlyServerURL:{valType:"string",dflt:"",description:["When set it determines base URL for","the 'Edit in Chart Studio' `showEditInChartStudio`/`showSendToCloud` mode bar button","and the showLink/sendData on-graph link.","To enable sending your data to Chart Studio Cloud, you need to","set both `plotlyServerURL` to 'https://chart-studio.plotly.com' and","also set `showSendToCloud` to true."].join(" ")},editable:{valType:"boolean",dflt:!1,description:["Determines whether the graph is editable or not.","Sets all pieces of `edits`","unless a separate `edits` config item overrides individual parts."].join(" ")},edits:{annotationPosition:{valType:"boolean",dflt:!1,description:["Determines if the main anchor of the annotation is editable.","The main anchor corresponds to the","text (if no arrow) or the arrow (which drags the whole thing leaving","the arrow length & direction unchanged)."].join(" ")},annotationTail:{valType:"boolean",dflt:!1,description:["Has only an effect for annotations with arrows.","Enables changing the length and direction of the arrow."].join(" ")},annotationText:{valType:"boolean",dflt:!1,description:"Enables editing annotation text."},axisTitleText:{valType:"boolean",dflt:!1,description:"Enables editing axis title text."},colorbarPosition:{valType:"boolean",dflt:!1,description:"Enables moving colorbars."},colorbarTitleText:{valType:"boolean",dflt:!1,description:"Enables editing colorbar title text."},legendPosition:{valType:"boolean",dflt:!1,description:"Enables moving the legend."},legendText:{valType:"boolean",dflt:!1,description:"Enables editing the trace name fields from the legend"},shapePosition:{valType:"boolean",dflt:!1,description:"Enables moving shapes."},titleText:{valType:"boolean",dflt:!1,description:"Enables editing the global layout title."}},editSelection:{valType:"boolean",dflt:!0,description:"Enables moving selections."},autosizable:{valType:"boolean",dflt:!1,description:["Determines whether the graphs are plotted with respect to","layout.autosize:true and infer its container size."].join(" ")},responsive:{valType:"boolean",dflt:!1,description:["Determines whether to change the layout size when window is resized.","In v3, this option will be removed and will always be true."].join(" ")},fillFrame:{valType:"boolean",dflt:!1,description:["When `layout.autosize` is turned on, determines whether the graph","fills the container (the default) or the screen (if set to *true*)."].join(" ")},frameMargins:{valType:"number",dflt:0,min:0,max:.5,description:["When `layout.autosize` is turned on, set the frame margins","in fraction of the graph size."].join(" ")},scrollZoom:{valType:"flaglist",flags:["cartesian","gl3d","geo","mapbox"],extras:[!0,!1],dflt:"gl3d+geo+mapbox",description:["Determines whether mouse wheel or two-finger scroll zooms is enable.","Turned on by default for gl3d, geo and mapbox subplots","(as these subplot types do not have zoombox via pan),","but turned off by default for cartesian subplots.","Set `scrollZoom` to *false* to disable scrolling for all subplots."].join(" ")},doubleClick:{valType:"enumerated",values:[!1,"reset","autosize","reset+autosize"],dflt:"reset+autosize",description:["Sets the double click interaction mode.","Has an effect only in cartesian plots.","If *false*, double click is disable.","If *reset*, double click resets the axis ranges to their initial values.","If *autosize*, double click set the axis ranges to their autorange values.","If *reset+autosize*, the odd double clicks resets the axis ranges","to their initial values and even double clicks set the axis ranges","to their autorange values."].join(" ")},doubleClickDelay:{valType:"number",dflt:300,min:0,description:["Sets the delay for registering a double-click in ms.","This is the time interval (in ms) between first mousedown and","2nd mouseup to constitute a double-click.","This setting propagates to all on-subplot double clicks","(except for geo and mapbox) and on-legend double clicks."].join(" ")},showAxisDragHandles:{valType:"boolean",dflt:!0,description:["Set to *false* to omit cartesian axis pan/zoom drag handles."].join(" ")},showAxisRangeEntryBoxes:{valType:"boolean",dflt:!0,description:["Set to *false* to omit direct range entry at the pan/zoom drag points,","note that `showAxisDragHandles` must be enabled to have an effect."].join(" ")},showTips:{valType:"boolean",dflt:!0,description:["Determines whether or not tips are shown while interacting","with the resulting graphs."].join(" ")},showLink:{valType:"boolean",dflt:!1,description:["Determines whether a link to Chart Studio Cloud is displayed","at the bottom right corner of resulting graphs.","Use with `sendData` and `linkText`."].join(" ")},linkText:{valType:"string",dflt:"Edit chart",noBlank:!0,description:["Sets the text appearing in the `showLink` link."].join(" ")},sendData:{valType:"boolean",dflt:!0,description:["If *showLink* is true, does it contain data","just link to a Chart Studio Cloud file?"].join(" ")},showSources:{valType:"any",dflt:!1,description:["Adds a source-displaying function to show sources on","the resulting graphs."].join(" ")},displayModeBar:{valType:"enumerated",values:["hover",!0,!1],dflt:"hover",description:["Determines the mode bar display mode.","If *true*, the mode bar is always visible.","If *false*, the mode bar is always hidden.","If *hover*, the mode bar is visible while the mouse cursor","is on the graph container."].join(" ")},showSendToCloud:{valType:"boolean",dflt:!1,description:['Should we include a ModeBar button, labeled "Edit in Chart Studio",',"that sends this chart to chart-studio.plotly.com (formerly plot.ly) or another plotly server","as specified by `plotlyServerURL` for editing, export, etc? Prior to version 1.43.0","this button was included by default, now it is opt-in using this flag.","Note that this button can (depending on `plotlyServerURL` being set) send your data","to an external server. However that server does not persist your data",'until you arrive at the Chart Studio and explicitly click "Save".'].join(" ")},showEditInChartStudio:{valType:"boolean",dflt:!1,description:["Same as `showSendToCloud`, but use a pencil icon instead of a floppy-disk.","Note that if both `showSendToCloud` and `showEditInChartStudio` are turned,","only `showEditInChartStudio` will be honored."].join(" ")},modeBarButtonsToRemove:{valType:"any",dflt:[],description:["Remove mode bar buttons by name.","See ./components/modebar/buttons.js for the list of names."].join(" ")},modeBarButtonsToAdd:{valType:"any",dflt:[],description:["Add mode bar button using config objects","See ./components/modebar/buttons.js for list of arguments.","To enable predefined modebar buttons e.g. shape drawing, hover and spikelines,","simply provide their string name(s). This could include:","*v1hovermode*, *hoverclosest*, *hovercompare*, *togglehover*, *togglespikelines*,","*drawline*, *drawopenpath*, *drawclosedpath*, *drawcircle*, *drawrect* and *eraseshape*.","Please note that these predefined buttons will only be shown if they are compatible","with all trace types used in a graph."].join(" ")},modeBarButtons:{valType:"any",dflt:!1,description:["Define fully custom mode bar buttons as nested array,","where the outer arrays represents button groups, and","the inner arrays have buttons config objects or names of default buttons","See ./components/modebar/buttons.js for more info."].join(" ")},toImageButtonOptions:{valType:"any",dflt:{},description:["Statically override options for toImage modebar button","allowed keys are format, filename, width, height, scale","see ../components/modebar/buttons.js"].join(" ")},displaylogo:{valType:"boolean",dflt:!0,description:["Determines whether or not the plotly logo is displayed","on the end of the mode bar."].join(" ")},watermark:{valType:"boolean",dflt:!1,description:"watermark the images with the company's logo"},plotGlPixelRatio:{valType:"number",dflt:2,min:1,max:4,description:["Set the pixel ratio during WebGL image export.","This config option was formerly named `plot3dPixelRatio`","which is now deprecated."].join(" ")},setBackground:{valType:"any",dflt:"transparent",description:["Set function to add the background color (i.e. `layout.paper_color`)","to a different container.","This function take the graph div as first argument and the current background","color as second argument.","Alternatively, set to string *opaque* to ensure there is white behind it."].join(" ")},topojsonURL:{valType:"string",noBlank:!0,dflt:"https://cdn.plot.ly/",description:["Set the URL to topojson used in geo charts.","By default, the topojson files are fetched from cdn.plot.ly.","For example, set this option to:","/dist/topojson/","to render geographical feature using the topojson files","that ship with the plotly.js module."].join(" ")},mapboxAccessToken:{valType:"string",dflt:null,description:["Mapbox access token (required to plot mapbox trace types)","If using an Mapbox Atlas server, set this option to ''","so that plotly.js won't attempt to authenticate to the public Mapbox server."].join(" ")},logging:{valType:"integer",min:0,max:2,dflt:1,description:["Turn all console logging on or off (errors will be thrown)","This should ONLY be set via Plotly.setPlotConfig","Available levels:","0: no logs","1: warnings and errors, but not informational messages","2: verbose logs"].join(" ")},notifyOnLogging:{valType:"integer",min:0,max:2,dflt:0,description:["Set on-graph logging (notifier) level","This should ONLY be set via Plotly.setPlotConfig","Available levels:","0: no on-graph logs","1: warnings and errors, but not informational messages","2: verbose logs"].join(" ")},queueLength:{valType:"integer",min:0,dflt:0,description:"Sets the length of the undo/redo queue."},globalTransforms:{valType:"any",dflt:[],description:["Set global transform to be applied to all traces with no","specification needed"].join(" ")},locale:{valType:"string",dflt:"en-US",description:["Which localization should we use?","Should be a string like 'en' or 'en-US'."].join(" ")},locales:{valType:"any",dflt:{},description:["Localization definitions","Locales can be provided either here (specific to one chart) or globally","by registering them as modules.","Should be an object of objects {locale: {dictionary: {...}, format: {...}}}","{"," da: {"," dictionary: {'Reset axes': 'Nulstil aksler', ...},"," format: {months: [...], shortMonths: [...]}"," },"," ...","}","All parts are optional. When looking for translation or format fields, we","look first for an exact match in a config locale, then in a registered","module. If those fail, we strip off any regionalization ('en-US' -> 'en')","and try each (config, registry) again. The final fallback for translation","is untranslated (which is US English) and for formats is the base English","(the only consequence being the last fallback date format %x is DD/MM/YYYY","instead of MM/DD/YYYY). Currently `grouping` and `currency` are ignored","for our automatic number formatting, but can be used in custom formats."].join(" ")}},xY={};function bY(e,t){for(var r in e){var n=e[r];n.valType?t[r]=n.dflt:(t[r]||(t[r]={}),bY(n,t[r]))}}bY(yY,xY);wY.exports={configAttributes:yY,dfltConfig:xY}});var xE=J((ILt,_Y)=>{"use strict";var yE=Nr(),bje=dn(),Nb=[];_Y.exports=function(e,t){if(Nb.indexOf(e)!==-1)return;Nb.push(e);var r=1e3;bje(t)?r=t:t==="long"&&(r=3e3);var n=yE.select("body").selectAll(".plotly-notifier").data([0]);n.enter().append("div").classed("plotly-notifier",!0);var i=n.selectAll(".notifier-note").data(Nb);function a(o){o.duration(700).style("opacity",0).each("end",function(s){var l=Nb.indexOf(s);l!==-1&&Nb.splice(l,1),yE.select(this).remove()})}i.enter().append("div").classed("notifier-note",!0).style("opacity",0).each(function(o){var s=yE.select(this);s.append("button").classed("notifier-close",!0).html("×").on("click",function(){s.transition().call(a)});for(var l=s.append("p"),u=o.split(//g),f=0;f{"use strict";var A1=qp().dfltConfig,bE=xE(),wE=TY.exports={};wE.log=function(){var e;if(A1.logging>1){var t=["LOG:"];for(e=0;e1){var r=[];for(e=0;e"),"long")}};wE.warn=function(){var e;if(A1.logging>0){var t=["WARN:"];for(e=0;e0){var r=[];for(e=0;e"),"stick")}};wE.error=function(){var e;if(A1.logging>0){var t=["ERROR:"];for(e=0;e0){var r=[];for(e=0;e"),"stick")}}});var bT=J((FLt,AY)=>{"use strict";AY.exports=function(){}});var _E=J((zLt,MY)=>{"use strict";MY.exports=function(t,r){if(r instanceof RegExp){for(var n=r.toString(),i=0;i{kY.exports=wje;function wje(){var e=new Float32Array(16);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}});var EY=J((OLt,CY)=>{CY.exports=_je;function _je(e){var t=new Float32Array(16);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}});var DY=J((BLt,LY)=>{LY.exports=Tje;function Tje(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}});var TE=J((ULt,RY)=>{RY.exports=Aje;function Aje(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}});var IY=J((HLt,PY)=>{PY.exports=Mje;function Mje(e,t){if(e===t){var r=t[1],n=t[2],i=t[3],a=t[6],o=t[7],s=t[11];e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=r,e[6]=t[9],e[7]=t[13],e[8]=n,e[9]=a,e[11]=t[14],e[12]=i,e[13]=o,e[14]=s}else e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15];return e}});var FY=J((jLt,qY)=>{qY.exports=kje;function kje(e,t){var r=t[0],n=t[1],i=t[2],a=t[3],o=t[4],s=t[5],l=t[6],u=t[7],f=t[8],c=t[9],h=t[10],d=t[11],v=t[12],m=t[13],b=t[14],g=t[15],_=r*s-n*o,T=r*l-i*o,w=r*u-a*o,k=n*l-i*s,x=n*u-a*s,M=i*u-a*l,A=f*m-c*v,p=f*b-h*v,S=f*g-d*v,y=c*b-h*m,E=c*g-d*m,C=h*g-d*b,L=_*C-T*E+w*y+k*S-x*p+M*A;return L?(L=1/L,e[0]=(s*C-l*E+u*y)*L,e[1]=(i*E-n*C-a*y)*L,e[2]=(m*M-b*x+g*k)*L,e[3]=(h*x-c*M-d*k)*L,e[4]=(l*S-o*C-u*p)*L,e[5]=(r*C-i*S+a*p)*L,e[6]=(b*w-v*M-g*T)*L,e[7]=(f*M-h*w+d*T)*L,e[8]=(o*E-s*S+u*A)*L,e[9]=(n*S-r*E-a*A)*L,e[10]=(v*x-m*w+g*_)*L,e[11]=(c*w-f*x-d*_)*L,e[12]=(s*p-o*y-l*A)*L,e[13]=(r*y-n*p+i*A)*L,e[14]=(m*T-v*k-b*_)*L,e[15]=(f*k-c*T+h*_)*L,e):null}});var NY=J((VLt,zY)=>{zY.exports=Sje;function Sje(e,t){var r=t[0],n=t[1],i=t[2],a=t[3],o=t[4],s=t[5],l=t[6],u=t[7],f=t[8],c=t[9],h=t[10],d=t[11],v=t[12],m=t[13],b=t[14],g=t[15];return e[0]=s*(h*g-d*b)-c*(l*g-u*b)+m*(l*d-u*h),e[1]=-(n*(h*g-d*b)-c*(i*g-a*b)+m*(i*d-a*h)),e[2]=n*(l*g-u*b)-s*(i*g-a*b)+m*(i*u-a*l),e[3]=-(n*(l*d-u*h)-s*(i*d-a*h)+c*(i*u-a*l)),e[4]=-(o*(h*g-d*b)-f*(l*g-u*b)+v*(l*d-u*h)),e[5]=r*(h*g-d*b)-f*(i*g-a*b)+v*(i*d-a*h),e[6]=-(r*(l*g-u*b)-o*(i*g-a*b)+v*(i*u-a*l)),e[7]=r*(l*d-u*h)-o*(i*d-a*h)+f*(i*u-a*l),e[8]=o*(c*g-d*m)-f*(s*g-u*m)+v*(s*d-u*c),e[9]=-(r*(c*g-d*m)-f*(n*g-a*m)+v*(n*d-a*c)),e[10]=r*(s*g-u*m)-o*(n*g-a*m)+v*(n*u-a*s),e[11]=-(r*(s*d-u*c)-o*(n*d-a*c)+f*(n*u-a*s)),e[12]=-(o*(c*b-h*m)-f*(s*b-l*m)+v*(s*h-l*c)),e[13]=r*(c*b-h*m)-f*(n*b-i*m)+v*(n*h-i*c),e[14]=-(r*(s*b-l*m)-o*(n*b-i*m)+v*(n*l-i*s)),e[15]=r*(s*h-l*c)-o*(n*h-i*c)+f*(n*l-i*s),e}});var BY=J((YLt,OY)=>{OY.exports=Cje;function Cje(e){var t=e[0],r=e[1],n=e[2],i=e[3],a=e[4],o=e[5],s=e[6],l=e[7],u=e[8],f=e[9],c=e[10],h=e[11],d=e[12],v=e[13],m=e[14],b=e[15],g=t*o-r*a,_=t*s-n*a,T=t*l-i*a,w=r*s-n*o,k=r*l-i*o,x=n*l-i*s,M=u*v-f*d,A=u*m-c*d,p=u*b-h*d,S=f*m-c*v,y=f*b-h*v,E=c*b-h*m;return g*E-_*y+T*S+w*p-k*A+x*M}});var HY=J((GLt,UY)=>{UY.exports=Eje;function Eje(e,t,r){var n=t[0],i=t[1],a=t[2],o=t[3],s=t[4],l=t[5],u=t[6],f=t[7],c=t[8],h=t[9],d=t[10],v=t[11],m=t[12],b=t[13],g=t[14],_=t[15],T=r[0],w=r[1],k=r[2],x=r[3];return e[0]=T*n+w*s+k*c+x*m,e[1]=T*i+w*l+k*h+x*b,e[2]=T*a+w*u+k*d+x*g,e[3]=T*o+w*f+k*v+x*_,T=r[4],w=r[5],k=r[6],x=r[7],e[4]=T*n+w*s+k*c+x*m,e[5]=T*i+w*l+k*h+x*b,e[6]=T*a+w*u+k*d+x*g,e[7]=T*o+w*f+k*v+x*_,T=r[8],w=r[9],k=r[10],x=r[11],e[8]=T*n+w*s+k*c+x*m,e[9]=T*i+w*l+k*h+x*b,e[10]=T*a+w*u+k*d+x*g,e[11]=T*o+w*f+k*v+x*_,T=r[12],w=r[13],k=r[14],x=r[15],e[12]=T*n+w*s+k*c+x*m,e[13]=T*i+w*l+k*h+x*b,e[14]=T*a+w*u+k*d+x*g,e[15]=T*o+w*f+k*v+x*_,e}});var VY=J((WLt,jY)=>{jY.exports=Lje;function Lje(e,t,r){var n=r[0],i=r[1],a=r[2],o,s,l,u,f,c,h,d,v,m,b,g;return t===e?(e[12]=t[0]*n+t[4]*i+t[8]*a+t[12],e[13]=t[1]*n+t[5]*i+t[9]*a+t[13],e[14]=t[2]*n+t[6]*i+t[10]*a+t[14],e[15]=t[3]*n+t[7]*i+t[11]*a+t[15]):(o=t[0],s=t[1],l=t[2],u=t[3],f=t[4],c=t[5],h=t[6],d=t[7],v=t[8],m=t[9],b=t[10],g=t[11],e[0]=o,e[1]=s,e[2]=l,e[3]=u,e[4]=f,e[5]=c,e[6]=h,e[7]=d,e[8]=v,e[9]=m,e[10]=b,e[11]=g,e[12]=o*n+f*i+v*a+t[12],e[13]=s*n+c*i+m*a+t[13],e[14]=l*n+h*i+b*a+t[14],e[15]=u*n+d*i+g*a+t[15]),e}});var GY=J((XLt,YY)=>{YY.exports=Dje;function Dje(e,t,r){var n=r[0],i=r[1],a=r[2];return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*i,e[5]=t[5]*i,e[6]=t[6]*i,e[7]=t[7]*i,e[8]=t[8]*a,e[9]=t[9]*a,e[10]=t[10]*a,e[11]=t[11]*a,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}});var XY=J((ZLt,WY)=>{WY.exports=Rje;function Rje(e,t,r,n){var i=n[0],a=n[1],o=n[2],s=Math.sqrt(i*i+a*a+o*o),l,u,f,c,h,d,v,m,b,g,_,T,w,k,x,M,A,p,S,y,E,C,L,R;return Math.abs(s)<1e-6?null:(s=1/s,i*=s,a*=s,o*=s,l=Math.sin(r),u=Math.cos(r),f=1-u,c=t[0],h=t[1],d=t[2],v=t[3],m=t[4],b=t[5],g=t[6],_=t[7],T=t[8],w=t[9],k=t[10],x=t[11],M=i*i*f+u,A=a*i*f+o*l,p=o*i*f-a*l,S=i*a*f-o*l,y=a*a*f+u,E=o*a*f+i*l,C=i*o*f+a*l,L=a*o*f-i*l,R=o*o*f+u,e[0]=c*M+m*A+T*p,e[1]=h*M+b*A+w*p,e[2]=d*M+g*A+k*p,e[3]=v*M+_*A+x*p,e[4]=c*S+m*y+T*E,e[5]=h*S+b*y+w*E,e[6]=d*S+g*y+k*E,e[7]=v*S+_*y+x*E,e[8]=c*C+m*L+T*R,e[9]=h*C+b*L+w*R,e[10]=d*C+g*L+k*R,e[11]=v*C+_*L+x*R,t!==e&&(e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e)}});var JY=J((JLt,ZY)=>{ZY.exports=Pje;function Pje(e,t,r){var n=Math.sin(r),i=Math.cos(r),a=t[4],o=t[5],s=t[6],l=t[7],u=t[8],f=t[9],c=t[10],h=t[11];return t!==e&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[4]=a*i+u*n,e[5]=o*i+f*n,e[6]=s*i+c*n,e[7]=l*i+h*n,e[8]=u*i-a*n,e[9]=f*i-o*n,e[10]=c*i-s*n,e[11]=h*i-l*n,e}});var KY=J(($Lt,$Y)=>{$Y.exports=Ije;function Ije(e,t,r){var n=Math.sin(r),i=Math.cos(r),a=t[0],o=t[1],s=t[2],l=t[3],u=t[8],f=t[9],c=t[10],h=t[11];return t!==e&&(e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=a*i-u*n,e[1]=o*i-f*n,e[2]=s*i-c*n,e[3]=l*i-h*n,e[8]=a*n+u*i,e[9]=o*n+f*i,e[10]=s*n+c*i,e[11]=l*n+h*i,e}});var eG=J((KLt,QY)=>{QY.exports=qje;function qje(e,t,r){var n=Math.sin(r),i=Math.cos(r),a=t[0],o=t[1],s=t[2],l=t[3],u=t[4],f=t[5],c=t[6],h=t[7];return t!==e&&(e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=a*i+u*n,e[1]=o*i+f*n,e[2]=s*i+c*n,e[3]=l*i+h*n,e[4]=u*i-a*n,e[5]=f*i-o*n,e[6]=c*i-s*n,e[7]=h*i-l*n,e}});var rG=J((QLt,tG)=>{tG.exports=Fje;function Fje(e,t,r){var n,i,a,o=r[0],s=r[1],l=r[2],u=Math.sqrt(o*o+s*s+l*l);return Math.abs(u)<1e-6?null:(u=1/u,o*=u,s*=u,l*=u,n=Math.sin(t),i=Math.cos(t),a=1-i,e[0]=o*o*a+i,e[1]=s*o*a+l*n,e[2]=l*o*a-s*n,e[3]=0,e[4]=o*s*a-l*n,e[5]=s*s*a+i,e[6]=l*s*a+o*n,e[7]=0,e[8]=o*l*a+s*n,e[9]=s*l*a-o*n,e[10]=l*l*a+i,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e)}});var iG=J((eDt,nG)=>{nG.exports=zje;function zje(e,t,r){var n=t[0],i=t[1],a=t[2],o=t[3],s=n+n,l=i+i,u=a+a,f=n*s,c=n*l,h=n*u,d=i*l,v=i*u,m=a*u,b=o*s,g=o*l,_=o*u;return e[0]=1-(d+m),e[1]=c+_,e[2]=h-g,e[3]=0,e[4]=c-_,e[5]=1-(f+m),e[6]=v+b,e[7]=0,e[8]=h+g,e[9]=v-b,e[10]=1-(f+d),e[11]=0,e[12]=r[0],e[13]=r[1],e[14]=r[2],e[15]=1,e}});var oG=J((tDt,aG)=>{aG.exports=Nje;function Nje(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=t[1],e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=t[2],e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}});var lG=J((rDt,sG)=>{sG.exports=Oje;function Oje(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=t[0],e[13]=t[1],e[14]=t[2],e[15]=1,e}});var fG=J((nDt,uG)=>{uG.exports=Bje;function Bje(e,t){var r=Math.sin(t),n=Math.cos(t);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=n,e[6]=r,e[7]=0,e[8]=0,e[9]=-r,e[10]=n,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}});var hG=J((iDt,cG)=>{cG.exports=Uje;function Uje(e,t){var r=Math.sin(t),n=Math.cos(t);return e[0]=n,e[1]=0,e[2]=-r,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=r,e[9]=0,e[10]=n,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}});var dG=J((aDt,vG)=>{vG.exports=Hje;function Hje(e,t){var r=Math.sin(t),n=Math.cos(t);return e[0]=n,e[1]=r,e[2]=0,e[3]=0,e[4]=-r,e[5]=n,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}});var AE=J((oDt,pG)=>{pG.exports=jje;function jje(e,t){var r=t[0],n=t[1],i=t[2],a=t[3],o=r+r,s=n+n,l=i+i,u=r*o,f=n*o,c=n*s,h=i*o,d=i*s,v=i*l,m=a*o,b=a*s,g=a*l;return e[0]=1-c-v,e[1]=f+g,e[2]=h-b,e[3]=0,e[4]=f-g,e[5]=1-u-v,e[6]=d+m,e[7]=0,e[8]=h+b,e[9]=d-m,e[10]=1-u-c,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}});var mG=J((sDt,gG)=>{gG.exports=Vje;function Vje(e,t,r,n,i,a,o){var s=1/(r-t),l=1/(i-n),u=1/(a-o);return e[0]=a*2*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=a*2*l,e[6]=0,e[7]=0,e[8]=(r+t)*s,e[9]=(i+n)*l,e[10]=(o+a)*u,e[11]=-1,e[12]=0,e[13]=0,e[14]=o*a*2*u,e[15]=0,e}});var xG=J((lDt,yG)=>{yG.exports=Yje;function Yje(e,t,r,n,i){var a=1/Math.tan(t/2),o=1/(n-i);return e[0]=a/r,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=a,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=(i+n)*o,e[11]=-1,e[12]=0,e[13]=0,e[14]=2*i*n*o,e[15]=0,e}});var wG=J((uDt,bG)=>{bG.exports=Gje;function Gje(e,t,r,n){var i=Math.tan(t.upDegrees*Math.PI/180),a=Math.tan(t.downDegrees*Math.PI/180),o=Math.tan(t.leftDegrees*Math.PI/180),s=Math.tan(t.rightDegrees*Math.PI/180),l=2/(o+s),u=2/(i+a);return e[0]=l,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=u,e[6]=0,e[7]=0,e[8]=-((o-s)*l*.5),e[9]=(i-a)*u*.5,e[10]=n/(r-n),e[11]=-1,e[12]=0,e[13]=0,e[14]=n*r/(r-n),e[15]=0,e}});var TG=J((fDt,_G)=>{_G.exports=Wje;function Wje(e,t,r,n,i,a,o){var s=1/(t-r),l=1/(n-i),u=1/(a-o);return e[0]=-2*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*l,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*u,e[11]=0,e[12]=(t+r)*s,e[13]=(i+n)*l,e[14]=(o+a)*u,e[15]=1,e}});var MG=J((cDt,AG)=>{var Xje=TE();AG.exports=Zje;function Zje(e,t,r,n){var i,a,o,s,l,u,f,c,h,d,v=t[0],m=t[1],b=t[2],g=n[0],_=n[1],T=n[2],w=r[0],k=r[1],x=r[2];return Math.abs(v-w)<1e-6&&Math.abs(m-k)<1e-6&&Math.abs(b-x)<1e-6?Xje(e):(f=v-w,c=m-k,h=b-x,d=1/Math.sqrt(f*f+c*c+h*h),f*=d,c*=d,h*=d,i=_*h-T*c,a=T*f-g*h,o=g*c-_*f,d=Math.sqrt(i*i+a*a+o*o),d?(d=1/d,i*=d,a*=d,o*=d):(i=0,a=0,o=0),s=c*o-h*a,l=h*i-f*o,u=f*a-c*i,d=Math.sqrt(s*s+l*l+u*u),d?(d=1/d,s*=d,l*=d,u*=d):(s=0,l=0,u=0),e[0]=i,e[1]=s,e[2]=f,e[3]=0,e[4]=a,e[5]=l,e[6]=c,e[7]=0,e[8]=o,e[9]=u,e[10]=h,e[11]=0,e[12]=-(i*v+a*m+o*b),e[13]=-(s*v+l*m+u*b),e[14]=-(f*v+c*m+h*b),e[15]=1,e)}});var SG=J((hDt,kG)=>{kG.exports=Jje;function Jje(e){return"mat4("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+", "+e[6]+", "+e[7]+", "+e[8]+", "+e[9]+", "+e[10]+", "+e[11]+", "+e[12]+", "+e[13]+", "+e[14]+", "+e[15]+")"}});var ME=J((vDt,CG)=>{CG.exports={create:SY(),clone:EY(),copy:DY(),identity:TE(),transpose:IY(),invert:FY(),adjoint:NY(),determinant:BY(),multiply:HY(),translate:VY(),scale:GY(),rotate:XY(),rotateX:JY(),rotateY:KY(),rotateZ:eG(),fromRotation:rG(),fromRotationTranslation:iG(),fromScaling:oG(),fromTranslation:lG(),fromXRotation:fG(),fromYRotation:hG(),fromZRotation:dG(),fromQuat:AE(),frustum:mG(),perspective:xG(),perspectiveFromFieldOfView:wG(),ortho:TG(),lookAt:MG(),str:SG()}});var wT=J(co=>{"use strict";var $je=ME();co.init2dArray=function(e,t){for(var r=new Array(e),n=0;n{"use strict";var Kje=Nr(),Qje=Kd(),eVe=wT(),tVe=ME();function rVe(e){var t;if(typeof e=="string"){if(t=document.getElementById(e),t===null)throw new Error("No DOM element with id '"+e+"' exists on the page.");return t}else if(e==null)throw new Error("DOM element provided is null or undefined");return e}function nVe(e){var t=Kje.select(e);return t.node()instanceof HTMLElement&&t.size()&&t.classed("js-plotly-plot")}function EG(e){var t=e&&e.parentNode;t&&t.removeChild(e)}function iVe(e,t){LG("global",e,t)}function LG(e,t,r){var n="plotly.js-style-"+e,i=document.getElementById(n);i||(i=document.createElement("style"),i.setAttribute("id",n),i.appendChild(document.createTextNode("")),document.head.appendChild(i));var a=i.sheet;a.insertRule?a.insertRule(t+"{"+r+"}",0):a.addRule?a.addRule(t,r,0):Qje.warn("addStyleRule failed")}function aVe(e){var t="plotly.js-style-"+e,r=document.getElementById(t);r&&EG(r)}function oVe(e){var t=RG(e),r=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];return t.forEach(function(n){var i=DG(n);if(i){var a=eVe.convertCssMatrix(i);r=tVe.multiply(r,r,a)}}),r}function DG(e){var t=window.getComputedStyle(e,null),r=t.getPropertyValue("-webkit-transform")||t.getPropertyValue("-moz-transform")||t.getPropertyValue("-ms-transform")||t.getPropertyValue("-o-transform")||t.getPropertyValue("transform");return r==="none"?null:r.replace("matrix","").replace("3d","").slice(1,-1).split(",").map(function(n){return+n})}function RG(e){for(var t=[];sVe(e);)t.push(e),e=e.parentNode,typeof ShadowRoot=="function"&&e instanceof ShadowRoot&&(e=e.host);return t}function sVe(e){return e&&(e instanceof Element||e instanceof HTMLElement)}function lVe(e,t){return e&&t&&e.top===t.top&&e.left===t.left&&e.right===t.right&&e.bottom===t.bottom}PG.exports={getGraphDiv:rVe,isPlotDiv:nVe,removeElement:EG,addStyleRule:iVe,addRelatedStyleRule:LG,deleteRelatedStyleRule:aVe,getFullTransformMatrix:oVe,getElementTransformMatrix:DG,getElementAndAncestors:RG,equalDomRects:lVe}});var Bb=J((gDt,IG)=>{"use strict";IG.exports={mode:{valType:"enumerated",dflt:"afterall",values:["immediate","next","afterall"],description:["Describes how a new animate call interacts with currently-running","animations. If `immediate`, current animations are interrupted and","the new animation is started. If `next`, the current frame is allowed","to complete, after which the new animation is started. If `afterall`","all existing frames are animated to completion before the new animation","is started."].join(" ")},direction:{valType:"enumerated",values:["forward","reverse"],dflt:"forward",description:["The direction in which to play the frames triggered by the animation call"].join(" ")},fromcurrent:{valType:"boolean",dflt:!1,description:["Play frames starting at the current frame instead of the beginning."].join(" ")},frame:{duration:{valType:"number",min:0,dflt:500,description:["The duration in milliseconds of each frame. If greater than the frame","duration, it will be limited to the frame duration."].join(" ")},redraw:{valType:"boolean",dflt:!0,description:["Redraw the plot at completion of the transition. This is desirable","for transitions that include properties that cannot be transitioned,","but may significantly slow down updates that do not require a full","redraw of the plot"].join(" ")}},transition:{duration:{valType:"number",min:0,dflt:500,editType:"none",description:["The duration of the transition, in milliseconds. If equal to zero,","updates are synchronous."].join(" ")},easing:{valType:"enumerated",dflt:"cubic-in-out",values:["linear","quad","cubic","sin","exp","circle","elastic","back","bounce","linear-in","quad-in","cubic-in","sin-in","exp-in","circle-in","elastic-in","back-in","bounce-in","linear-out","quad-out","cubic-out","sin-out","exp-out","circle-out","elastic-out","back-out","bounce-out","linear-in-out","quad-in-out","cubic-in-out","sin-in-out","exp-in-out","circle-in-out","elastic-in-out","back-in-out","bounce-in-out"],editType:"none",description:"The easing function used for the transition"},ordering:{valType:"enumerated",values:["layout first","traces first"],dflt:"layout first",editType:"none",description:["Determines whether the figure's layout or traces smoothly transitions","during updates that make both traces and layout change."].join(" ")}}}});var La=J((mDt,UG)=>{"use strict";var FG=cn().extendFlat,uVe=Bv(),zG={valType:"flaglist",extras:["none"],flags:["calc","clearAxisTypes","plot","style","markerSize","colorbars"],description:["trace attributes should include an `editType` string matching this flaglist.","*calc* is the most extensive: a full (re)plot starting by clearing `gd.calcdata`","to force it to be regenerated","*clearAxisTypes* resets the types of the axes this trace is on, because new data could","cause the automatic axis type detection to change. Log type will not be cleared, as that","is never automatically chosen so must have been user-specified.","*plot* (re)plots but without first clearing `gd.calcdata`.","*style* only calls `module.style` (or module.editStyle) for all trace modules and redraws the legend.","*markerSize* is like *style*, but propagate axis-range changes due to scatter `marker.size`","*colorbars* only redraws colorbars."].join(" ")},NG={valType:"flaglist",extras:["none"],flags:["calc","plot","legend","ticks","axrange","layoutstyle","modebar","camera","arraydraw","colorbars"],description:["layout attributes should include an `editType` string matching this flaglist.","*calc* is the most extensive: a full (re)plot starting by clearing `gd.calcdata`","to force it to be regenerated","*plot* (re)plots but without first clearing `gd.calcdata`.","*legend* only redraws the legend.","*ticks* only redraws axis ticks, labels, and gridlines.","*axrange* minimal sequence when updating axis ranges.","*layoutstyle* reapplies global and SVG cartesian axis styles.","*modebar* just updates the modebar.","*camera* just updates the camera settings for gl3d scenes.","*arraydraw* allows component arrays to invoke the redraw routines just for the","component(s) that changed.","*colorbars* only redraws colorbars."].join(" ")},fVe=zG.flags.slice().concat(["fullReplot"]),cVe=NG.flags.slice().concat("layoutReplot");UG.exports={traces:zG,layout:NG,traceFlags:function(){return qG(fVe)},layoutFlags:function(){return qG(cVe)},update:function(e,t){var r=t.editType;if(r&&r!=="none")for(var n=r.split("+"),i=0;i{"use strict";kE.dash={valType:"string",values:["solid","dot","dash","longdash","dashdot","longdashdot"],dflt:"solid",editType:"style",description:["Sets the dash style of lines. Set to a dash type string","(*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*)","or a dash length list in px (eg *5px,10px,2px,2px*)."].join(" ")};kE.pattern={shape:{valType:"enumerated",values:["","/","\\","x","-","|","+","."],dflt:"",arrayOk:!0,editType:"style",description:["Sets the shape of the pattern fill.","By default, no pattern is used for filling the area."].join(" ")},fillmode:{valType:"enumerated",values:["replace","overlay"],dflt:"replace",editType:"style",description:["Determines whether `marker.color` should be used","as a default to `bgcolor` or a `fgcolor`."].join(" ")},bgcolor:{valType:"color",arrayOk:!0,editType:"style",description:["When there is no colorscale sets the color of background pattern fill.","Defaults to a `marker.color` background when `fillmode` is *overlay*.","Otherwise, defaults to a transparent background."].join(" ")},fgcolor:{valType:"color",arrayOk:!0,editType:"style",description:["When there is no colorscale sets the color of foreground pattern fill.","Defaults to a `marker.color` background when `fillmode` is *replace*.","Otherwise, defaults to dark grey or white","to increase contrast with the `bgcolor`."].join(" ")},fgopacity:{valType:"number",editType:"style",min:0,max:1,description:["Sets the opacity of the foreground pattern fill.","Defaults to a 0.5 when `fillmode` is *overlay*.","Otherwise, defaults to 1."].join(" ")},size:{valType:"number",min:0,dflt:8,arrayOk:!0,editType:"style",description:["Sets the size of unit squares of the pattern fill in pixels,","which corresponds to the interval of repetition of the pattern."].join(" ")},solidity:{valType:"number",min:0,max:1,dflt:.3,arrayOk:!0,editType:"style",description:["Sets the solidity of the pattern fill.","Solidity is roughly the fraction of the area filled by the pattern.","Solidity of 0 shows only the background color without pattern","and solidty of 1 shows only the foreground color without pattern."].join(" ")},editType:"style",description:["Sets the pattern within the marker."].join(" ")}});var SE=J((xDt,HG)=>{"use strict";HG.exports={FORMAT_LINK:"https://github.com/d3/d3-format/tree/v1.4.5#d3-format",DATE_FORMAT_LINK:"https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format"}});var Jn=J(_T=>{"use strict";var jG=SE(),VG=jG.FORMAT_LINK,YG=jG.DATE_FORMAT_LINK;function GG(e){var t=e&&e.supportOther;return["Variables are inserted using %{variable},",'for example "y: %{y}"'+(t?" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown.":"."),`Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example "Price: %{y:$.2f}".`,VG,"for details on the formatting syntax.",`Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example "Day: %{2019-01-01|%A}".`,YG,"for details on the date formatting syntax."].join(" ")}function hVe(){return["Variables are inserted using %{variable},",'for example "x0: %{x0}".',`Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example "Price: %{x0:$.2f}". See`,VG,"for details on the formatting syntax.",`Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example "Day: %{x0|%m %b %Y}". See`,YG,"for details on the date formatting syntax.","A single multiplication or division operation may be applied to numeric variables, and combined with",'d3 number formatting, for example "Length in cm: %{x0*2.54}", "%{slope*60:.1f} meters per second."',"For log axes, variable values are given in log units.","For date axes, x/y coordinate variables and center variables use datetimes, while all other variable values use values in ms."].join(" ")}function CE(e){var t=e.description?" "+e.description:"",r=e.keys||[];if(r.length>0){for(var n=[],i=0;i` is displayed in the secondary box, for example "{fullData.name}".',"To hide the secondary box completely, use an empty tag ``."].join(" ")};return e.arrayOk!==!1&&(n.arrayOk=!0),n};_T.texttemplateAttrs=function(e,t){e=e||{},t=t||{};var r=CE(t),n={valType:"string",dflt:"",editType:e.editType||"calc",description:["Template string used for rendering the information text that appear on points.","Note that this will override `textinfo`.",GG(),"Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available.",r].join(" ")};return e.arrayOk!==!1&&(n.arrayOk=!0),n};_T.shapeTexttemplateAttrs=function(e,t){e=e||{},t=t||{};var r=e.newshape?"new ":"",n=CE(t),i={valType:"string",dflt:"",editType:e.editType||"arraydraw",description:["Template string used for rendering the "+r+"shape's label.","Note that this will override `text`.",hVe(),n].join(" ")};return i}});var MT=J((wDt,KG)=>{"use strict";function Qd(e,t){return t?t.d2l(e):e}function WG(e,t){return t?t.l2d(e):e}function vVe(e){return e.x0}function dVe(e){return e.x1}function pVe(e){return e.y0}function gVe(e){return e.y1}function XG(e){return e.x0shift||0}function ZG(e){return e.x1shift||0}function JG(e){return e.y0shift||0}function $G(e){return e.y1shift||0}function TT(e,t){return Qd(e.x1,t)+ZG(e)-Qd(e.x0,t)-XG(e)}function AT(e,t,r){return Qd(e.y1,r)+$G(e)-Qd(e.y0,r)-JG(e)}function mVe(e,t){return Math.abs(TT(e,t))}function yVe(e,t,r){return Math.abs(AT(e,t,r))}function xVe(e,t,r){return e.type!=="line"?void 0:Math.sqrt(Math.pow(TT(e,t),2)+Math.pow(AT(e,t,r),2))}function bVe(e,t){return WG((Qd(e.x1,t)+ZG(e)+Qd(e.x0,t)+XG(e))/2,t)}function wVe(e,t,r){return WG((Qd(e.y1,r)+$G(e)+Qd(e.y0,r)+JG(e))/2,r)}function _Ve(e,t,r){return e.type!=="line"?void 0:AT(e,t,r)/TT(e,t)}KG.exports={x0:vVe,x1:dVe,y0:pVe,y1:gVe,slope:_Ve,dx:TT,dy:AT,width:mVe,height:yVe,length:xVe,xcenter:bVe,ycenter:wVe}});var tW=J((_Dt,eW)=>{"use strict";var TVe=La().overrideAll,Fp=Qi(),QG=xa(),AVe=Ss().dash,e0=cn().extendFlat,MVe=Jn().shapeTexttemplateAttrs,kVe=MT();eW.exports=TVe({newshape:{visible:e0({},Fp.visible,{description:["Determines whether or not new shape is visible.","If *legendonly*, the shape is not drawn,","but can appear as a legend item","(provided that the legend itself is visible)."].join(" ")}),showlegend:{valType:"boolean",dflt:!1,description:["Determines whether or not new","shape is shown in the legend."].join(" ")},legend:e0({},Fp.legend,{description:["Sets the reference to a legend to show new shape in.","References to these legends are *legend*, *legend2*, *legend3*, etc.","Settings for these legends are set in the layout, under","`layout.legend`, `layout.legend2`, etc."].join(" ")}),legendgroup:e0({},Fp.legendgroup,{description:["Sets the legend group for new shape.","Traces and shapes part of the same legend group hide/show at the same time","when toggling legend items."].join(" ")}),legendgrouptitle:{text:e0({},Fp.legendgrouptitle.text,{}),font:QG({description:["Sets this legend group's title font."].join(" ")})},legendrank:e0({},Fp.legendrank,{description:["Sets the legend rank for new shape.","Items and groups with smaller ranks are presented on top/left side while","with *reversed* `legend.traceorder` they are on bottom/right side.","The default legendrank is 1000,","so that you can use ranks less than 1000 to place certain items before all unranked items,","and ranks greater than 1000 to go after all unranked items."].join(" ")}),legendwidth:e0({},Fp.legendwidth,{description:"Sets the width (in px or fraction) of the legend for new shape."}),line:{color:{valType:"color",description:["Sets the line color.","By default uses either dark grey or white","to increase contrast with background color."].join(" ")},width:{valType:"number",min:0,dflt:4,description:"Sets the line width (in px)."},dash:e0({},AVe,{dflt:"solid"})},fillcolor:{valType:"color",dflt:"rgba(0,0,0,0)",description:["Sets the color filling new shapes' interior.","Please note that if using a fillcolor with alpha greater than half,","drag inside the active shape starts moving the shape underneath,","otherwise a new shape could be started over."].join(" ")},fillrule:{valType:"enumerated",values:["evenodd","nonzero"],dflt:"evenodd",description:["Determines the path's interior.","For more info please visit https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/fill-rule"].join(" ")},opacity:{valType:"number",min:0,max:1,dflt:1,description:"Sets the opacity of new shapes."},layer:{valType:"enumerated",values:["below","above","between"],dflt:"above",description:["Specifies whether new shapes are drawn below gridlines (*below*),","between gridlines and traces (*between*) or above traces (*above*)."].join(" ")},drawdirection:{valType:"enumerated",values:["ortho","horizontal","vertical","diagonal"],dflt:"diagonal",description:["When `dragmode` is set to *drawrect*, *drawline* or *drawcircle*","this limits the drag to be horizontal, vertical or diagonal.","Using *diagonal* there is no limit e.g. in drawing lines in any direction.","*ortho* limits the draw to be either horizontal or vertical.","*horizontal* allows horizontal extend.","*vertical* allows vertical extend."].join(" ")},name:e0({},Fp.name,{description:["Sets new shape name.","The name appears as the legend item."].join(" ")}),label:{text:{valType:"string",dflt:"",description:["Sets the text to display with the new shape.","It is also used for legend item if `name` is not provided."].join(" ")},texttemplate:MVe({newshape:!0},{keys:Object.keys(kVe)}),font:QG({description:"Sets the new shape label text font."}),textposition:{valType:"enumerated",values:["top left","top center","top right","middle left","middle center","middle right","bottom left","bottom center","bottom right","start","middle","end"],description:["Sets the position of the label text relative to the new shape.","Supported values for rectangles, circles and paths are","*top left*, *top center*, *top right*, *middle left*,","*middle center*, *middle right*, *bottom left*, *bottom center*,","and *bottom right*.","Supported values for lines are *start*, *middle*, and *end*.","Default: *middle center* for rectangles, circles, and paths; *middle* for lines."].join(" ")},textangle:{valType:"angle",dflt:"auto",description:["Sets the angle at which the label text is drawn","with respect to the horizontal. For lines, angle *auto*","is the same angle as the line. For all other shapes,","angle *auto* is horizontal."].join(" ")},xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"auto",description:["Sets the label's horizontal position anchor","This anchor binds the specified `textposition` to the *left*, *center*","or *right* of the label text.","For example, if `textposition` is set to *top right* and","`xanchor` to *right* then the right-most portion of the","label text lines up with the right-most edge of the","new shape."].join(" ")},yanchor:{valType:"enumerated",values:["top","middle","bottom"],description:["Sets the label's vertical position anchor","This anchor binds the specified `textposition` to the *top*, *middle*","or *bottom* of the label text.","For example, if `textposition` is set to *top right* and","`yanchor` to *top* then the top-most portion of the","label text lines up with the top-most edge of the","new shape."].join(" ")},padding:{valType:"number",dflt:3,min:0,description:"Sets padding (in px) between edge of label and edge of new shape."}}},activeshape:{fillcolor:{valType:"color",dflt:"rgb(255,0,255)",description:"Sets the color filling the active shape' interior."},opacity:{valType:"number",min:0,max:1,dflt:.5,description:"Sets the opacity of the active shape."}}},"none","from-root")});var nW=J((TDt,rW)=>{"use strict";var SVe=Ss().dash,CVe=cn().extendFlat;rW.exports={newselection:{mode:{valType:"enumerated",values:["immediate","gradual"],dflt:"immediate",editType:"none",description:["Describes how a new selection is created.","If `immediate`, a new selection is created after first mouse up.","If `gradual`, a new selection is not created after first mouse.","By adding to and subtracting from the initial selection,","this option allows declaring extra outlines of the selection."].join(" ")},line:{color:{valType:"color",editType:"none",description:["Sets the line color.","By default uses either dark grey or white","to increase contrast with background color."].join(" ")},width:{valType:"number",min:1,dflt:1,editType:"none",description:"Sets the line width (in px)."},dash:CVe({},SVe,{dflt:"dot",editType:"none"}),editType:"none"},editType:"none"},activeselection:{fillcolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"none",description:"Sets the color filling the active selection' interior."},opacity:{valType:"number",min:0,max:1,dflt:.5,editType:"none",description:"Sets the opacity of the active selection."},editType:"none"}}});var kT=J((ADt,iW)=>{"use strict";iW.exports=function(e){var t=e.editType;return{t:{valType:"number",dflt:0,editType:t,description:"The amount of padding (in px) along the top of the component."},r:{valType:"number",dflt:0,editType:t,description:"The amount of padding (in px) on the right side of the component."},b:{valType:"number",dflt:0,editType:t,description:"The amount of padding (in px) along the bottom of the component."},l:{valType:"number",dflt:0,editType:t,description:"The amount of padding (in px) on the left side of the component."},editType:t}}});var zp=J((MDt,lW)=>{"use strict";var ST=xa(),EVe=Bb(),CT=Ho(),aW=tW(),oW=nW(),LVe=kT(),sW=cn().extendFlat,ET=ST({editType:"calc",description:["Sets the global font.","Note that fonts used in traces and other","layout components inherit from the global font."].join(" ")});ET.family.dflt='"Open Sans", verdana, arial, sans-serif';ET.size.dflt=12;ET.color.dflt=CT.defaultLine;lW.exports={font:ET,title:{text:{valType:"string",editType:"layoutstyle",description:["Sets the plot's title.","Note that before the existence of `title.text`, the title's","contents used to be defined as the `title` attribute itself.","This behavior has been deprecated."].join(" ")},font:ST({editType:"layoutstyle",description:["Sets the title font.","Note that the title's font used to be customized","by the now deprecated `titlefont` attribute."].join(" ")}),subtitle:{text:{valType:"string",editType:"layoutstyle",description:"Sets the plot's subtitle."},font:ST({editType:"layoutstyle",description:"Sets the subtitle font."}),editType:"layoutstyle"},xref:{valType:"enumerated",dflt:"container",values:["container","paper"],editType:"layoutstyle",description:["Sets the container `x` refers to.","*container* spans the entire `width` of the plot.","*paper* refers to the width of the plotting area only."].join(" ")},yref:{valType:"enumerated",dflt:"container",values:["container","paper"],editType:"layoutstyle",description:["Sets the container `y` refers to.","*container* spans the entire `height` of the plot.","*paper* refers to the height of the plotting area only."].join(" ")},x:{valType:"number",min:0,max:1,dflt:.5,editType:"layoutstyle",description:["Sets the x position with respect to `xref` in normalized","coordinates from *0* (left) to *1* (right)."].join(" ")},y:{valType:"number",min:0,max:1,dflt:"auto",editType:"layoutstyle",description:["Sets the y position with respect to `yref` in normalized","coordinates from *0* (bottom) to *1* (top).","*auto* places the baseline of the title onto the","vertical center of the top margin."].join(" ")},xanchor:{valType:"enumerated",dflt:"auto",values:["auto","left","center","right"],editType:"layoutstyle",description:["Sets the title's horizontal alignment with respect to its x position.","*left* means that the title starts at x,","*right* means that the title ends at x","and *center* means that the title's center is at x.","*auto* divides `xref` by three and calculates the `xanchor`","value automatically based on the value of `x`."].join(" ")},yanchor:{valType:"enumerated",dflt:"auto",values:["auto","top","middle","bottom"],editType:"layoutstyle",description:["Sets the title's vertical alignment with respect to its y position.","*top* means that the title's cap line is at y,","*bottom* means that the title's baseline is at y","and *middle* means that the title's midline is at y.","*auto* divides `yref` by three and calculates the `yanchor`","value automatically based on the value of `y`."].join(" ")},pad:sW(LVe({editType:"layoutstyle"}),{description:["Sets the padding of the title.","Each padding value only applies when the corresponding","`xanchor`/`yanchor` value is set accordingly. E.g. for left","padding to take effect, `xanchor` must be set to *left*.","The same rule applies if `xanchor`/`yanchor` is determined automatically.","Padding is muted if the respective anchor value is *middle*/*center*."].join(" ")}),automargin:{valType:"boolean",dflt:!1,editType:"plot",description:["Determines whether the title can automatically push the figure margins.","If `yref='paper'` then the margin will expand to ensure that the title doesn\u2019t","overlap with the edges of the container. If `yref='container'` then the margins","will ensure that the title doesn\u2019t overlap with the plot area, tick labels,","and axis titles. If `automargin=true` and the margins need to be expanded,","then y will be set to a default 1 and yanchor will be set to an appropriate","default to ensure that minimal margin space is needed. Note that when `yref='paper'`,","only 1 or 0 are allowed y values. Invalid values will be reset to the default 1."].join(" ")},editType:"layoutstyle"},uniformtext:{mode:{valType:"enumerated",values:[!1,"hide","show"],dflt:!1,editType:"plot",description:["Determines how the font size for various text","elements are uniformed between each trace type.","If the computed text sizes were smaller than","the minimum size defined by `uniformtext.minsize`","using *hide* option hides the text; and","using *show* option shows the text without further downscaling.","Please note that if the size defined by `minsize` is greater than","the font size defined by trace, then the `minsize` is used."].join(" ")},minsize:{valType:"number",min:0,dflt:0,editType:"plot",description:["Sets the minimum text size between traces of the same type."].join(" ")},editType:"plot"},autosize:{valType:"boolean",dflt:!1,editType:"none",description:["Determines whether or not a layout width or height","that has been left undefined by the user","is initialized on each relayout.","Note that, regardless of this attribute,","an undefined layout width or height","is always initialized on the first call to plot."].join(" ")},width:{valType:"number",min:10,dflt:700,editType:"plot",description:["Sets the plot's width (in px)."].join(" ")},height:{valType:"number",min:10,dflt:450,editType:"plot",description:["Sets the plot's height (in px)."].join(" ")},minreducedwidth:{valType:"number",min:2,dflt:64,editType:"plot",description:"Minimum width of the plot with margin.automargin applied (in px)"},minreducedheight:{valType:"number",min:2,dflt:64,editType:"plot",description:"Minimum height of the plot with margin.automargin applied (in px)"},margin:{l:{valType:"number",min:0,dflt:80,editType:"plot",description:"Sets the left margin (in px)."},r:{valType:"number",min:0,dflt:80,editType:"plot",description:"Sets the right margin (in px)."},t:{valType:"number",min:0,dflt:100,editType:"plot",description:"Sets the top margin (in px)."},b:{valType:"number",min:0,dflt:80,editType:"plot",description:"Sets the bottom margin (in px)."},pad:{valType:"number",min:0,dflt:0,editType:"plot",description:["Sets the amount of padding (in px)","between the plotting area and the axis lines"].join(" ")},autoexpand:{valType:"boolean",dflt:!0,editType:"plot",description:["Turns on/off margin expansion computations.","Legends, colorbars, updatemenus, sliders, axis rangeselector and rangeslider","are allowed to push the margins by defaults."].join(" ")},editType:"plot"},computed:{valType:"any",editType:"none",description:["Placeholder for exporting automargin-impacting values namely","`margin.t`, `margin.b`, `margin.l` and `margin.r` in *full-json* mode."].join(" ")},paper_bgcolor:{valType:"color",dflt:CT.background,editType:"plot",description:"Sets the background color of the paper where the graph is drawn."},plot_bgcolor:{valType:"color",dflt:CT.background,editType:"layoutstyle",description:["Sets the background color of the plotting area in-between x and y axes."].join(" ")},autotypenumbers:{valType:"enumerated",values:["convert types","strict"],dflt:"convert types",editType:"calc",description:["Using *strict* a numeric string in trace data is not converted to a number.","Using *convert types* a numeric string in trace data may be","treated as a number during automatic axis `type` detection.","This is the default value; however it could be overridden for individual axes."].join(" ")},separators:{valType:"string",editType:"plot",description:["Sets the decimal and thousand separators.","For example, *. * puts a '.' before decimals and a space","between thousands. In English locales, dflt is *.,* but","other locales may alter this default."].join(" ")},hidesources:{valType:"boolean",dflt:!1,editType:"plot",description:["Determines whether or not a text link citing the data source is","placed at the bottom-right cored of the figure.","Has only an effect only on graphs that have been generated via","forked graphs from the Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise)."].join(" ")},showlegend:{valType:"boolean",editType:"legend",description:["Determines whether or not a legend is drawn.","Default is `true` if there is a trace to show and any of these:","a) Two or more traces would by default be shown in the legend.","b) One pie trace is shown in the legend.","c) One trace is explicitly given with `showlegend: true`."].join(" ")},colorway:{valType:"colorlist",dflt:CT.defaults,editType:"calc",description:"Sets the default trace colors."},datarevision:{valType:"any",editType:"calc",description:["If provided, a changed value tells `Plotly.react` that","one or more data arrays has changed. This way you can modify","arrays in-place rather than making a complete new copy for an","incremental change.","If NOT provided, `Plotly.react` assumes that data arrays are","being treated as immutable, thus any data array with a","different identity from its predecessor contains new data."].join(" ")},uirevision:{valType:"any",editType:"none",description:["Used to allow user interactions with the plot to persist after","`Plotly.react` calls that are unaware of these interactions.","If `uirevision` is omitted, or if it is given and it changed from","the previous `Plotly.react` call, the exact new figure is used.","If `uirevision` is truthy and did NOT change, any attribute","that has been affected by user interactions and did not receive a","different value in the new figure will keep the interaction value.","`layout.uirevision` attribute serves as the default for","`uirevision` attributes in various sub-containers. For finer","control you can set these sub-attributes directly. For example,","if your app separately controls the data on the x and y axes you","might set `xaxis.uirevision=*time*` and `yaxis.uirevision=*cost*`.","Then if only the y data is changed, you can update","`yaxis.uirevision=*quantity*` and the y axis range will reset but","the x axis range will retain any user-driven zoom."].join(" ")},editrevision:{valType:"any",editType:"none",description:["Controls persistence of user-driven changes in `editable: true`","configuration, other than trace names and axis titles.","Defaults to `layout.uirevision`."].join(" ")},selectionrevision:{valType:"any",editType:"none",description:["Controls persistence of user-driven changes in selected points","from all traces."].join(" ")},template:{valType:"any",editType:"calc",description:["Default attributes to be applied to the plot. Templates can be","created from existing plots using `Plotly.makeTemplate`, or","created manually. They should be objects with format:","`{layout: layoutTemplate, data: {[type]: [traceTemplate, ...]}, ...}`","`layoutTemplate` and `traceTemplate` are objects matching the","attribute structure of `layout` and a data trace. ","Trace templates are applied cyclically to traces of each type.","Container arrays (eg `annotations`) have special handling:","An object ending in `defaults` (eg `annotationdefaults`) is applied","to each array item. But if an item has a `templateitemname` key","we look in the template array for an item with matching `name` and","apply that instead. If no matching `name` is found we mark the item","invisible. Any named template item not referenced is appended to","the end of the array, so you can use this for a watermark annotation","or a logo image, for example. To omit one of these items on the plot,","make an item with matching `templateitemname` and `visible: false`."].join(" ")},newshape:aW.newshape,activeshape:aW.activeshape,newselection:oW.newselection,activeselection:oW.activeselection,meta:{valType:"any",arrayOk:!0,editType:"plot",description:["Assigns extra meta information that can be used in various `text` attributes.","Attributes such as the graph, axis and colorbar `title.text`, annotation `text`","`trace.name` in legend items, `rangeselector`, `updatemenus` and `sliders` `label` text","all support `meta`. One can access `meta` fields using template strings:","`%{meta[i]}` where `i` is the index of the `meta`","item in question.","`meta` can also be an object for example `{key: value}` which can be accessed","%{meta[key]}."].join(" ")},transition:sW({},EVe.transition,{description:["Sets transition options used during Plotly.react updates."].join(" "),editType:"none"}),_deprecated:{title:{valType:"string",editType:"layoutstyle",description:["Value of `title` is no longer a simple *string* but a set of sub-attributes.","To set the contents of the title, please use `title.text` now."].join(" ")},titlefont:ST({editType:"layoutstyle",description:["Former `titlefont` is now the sub-attribute `font` of `title`.","To customize title font properties, please use `title.font` now."].join(" ")})}}});var zr=J(In=>{"use strict";var M1=Kd(),uW=bT(),fW=_E(),DVe=Bv(),RVe=Ob().addStyleRule,cW=cn(),PVe=Qi(),IVe=zp(),qVe=cW.extendFlat,LT=cW.extendDeepAll;In.modules={};In.allCategories={};In.allTypes=[];In.subplotsRegistry={};In.transformsRegistry={};In.componentsRegistry={};In.layoutArrayContainers=[];In.layoutArrayRegexes=[];In.traceLayoutAttributes={};In.localeRegistry={};In.apiMethodRegistry={};In.collectableSubplotTypes=null;In.register=function(t){if(In.collectableSubplotTypes=null,t)t&&!Array.isArray(t)&&(t=[t]);else throw new Error("No argument passed to Plotly.register.");for(var r=0;r{"use strict";var UVe=m1().timeFormat,TW=dn(),EE=Kd(),r0=x1().mod,C1=oi(),Jf=C1.BADNUM,Fu=C1.ONEDAY,Ub=C1.ONEHOUR,t0=C1.ONEMIN,S1=C1.ONESEC,Hb=C1.EPOCHJD,Hv=zr(),mW=m1().utcFormat,HVe=/^\s*(-?\d\d\d\d|\d\d)(-(\d?\d)(-(\d?\d)([ Tt]([01]?\d|2[0-3])(:([0-5]\d)(:([0-5]\d(\.\d+)?))?(Z|z|[+\-]\d\d(:?\d\d)?)?)?)?)?)?\s*$/m,jVe=/^\s*(-?\d\d\d\d|\d\d)(-(\d?\di?)(-(\d?\d)([ Tt]([01]?\d|2[0-3])(:([0-5]\d)(:([0-5]\d(\.\d+)?))?(Z|z|[+\-]\d\d(:?\d\d)?)?)?)?)?)?\s*$/m,yW=new Date().getFullYear()-70;function jv(e){return e&&Hv.componentsRegistry.calendars&&typeof e=="string"&&e!=="gregorian"}ho.dateTick0=function(e,t){var r=VVe(e,!!t);if(t<2)return r;var n=ho.dateTime2ms(r,e);return n+=Fu*(t-1),ho.ms2DateTime(n,0,e)};function VVe(e,t){return jv(e)?t?Hv.getComponentMethod("calendars","CANONICAL_SUNDAY")[e]:Hv.getComponentMethod("calendars","CANONICAL_TICK")[e]:t?"2000-01-02":"2000-01-01"}ho.dfltRange=function(e){return jv(e)?Hv.getComponentMethod("calendars","DFLTRANGE")[e]:["2000-01-01","2001-01-01"]};ho.isJSDate=function(e){return typeof e=="object"&&e!==null&&typeof e.getTime=="function"};var RT,PT;ho.dateTime2ms=function(e,t){if(ho.isJSDate(e)){var r=e.getTimezoneOffset()*t0,n=(e.getUTCMinutes()-e.getMinutes())*t0+(e.getUTCSeconds()-e.getSeconds())*S1+(e.getUTCMilliseconds()-e.getMilliseconds());if(n){var i=3*t0;r=r-i/2+r0(n-r+i/2,i)}return e=Number(e)-r,e>=RT&&e<=PT?e:Jf}if(typeof e!="string"&&typeof e!="number")return Jf;e=String(e);var a=jv(t),o=e.charAt(0);a&&(o==="G"||o==="g")&&(e=e.substr(1),t="");var s=a&&t.substr(0,7)==="chinese",l=e.match(s?jVe:HVe);if(!l)return Jf;var u=l[1],f=l[3]||"1",c=Number(l[5]||1),h=Number(l[7]||0),d=Number(l[9]||0),v=Number(l[11]||0);if(a){if(u.length===2)return Jf;u=Number(u);var m;try{var b=Hv.getComponentMethod("calendars","getCal")(t);if(s){var g=f.charAt(f.length-1)==="i";f=parseInt(f,10),m=b.newDate(u,b.toMonthIndex(u,f,g),c)}else m=b.newDate(u,Number(f),c)}catch{return Jf}return m?(m.toJD()-Hb)*Fu+h*Ub+d*t0+v*S1:Jf}u.length===2?u=(Number(u)+2e3-yW)%100+yW:u=Number(u),f-=1;var _=new Date(Date.UTC(2e3,f,c,h,d));return _.setUTCFullYear(u),_.getUTCMonth()!==f||_.getUTCDate()!==c?Jf:_.getTime()+v*S1};RT=ho.MIN_MS=ho.dateTime2ms("-9999");PT=ho.MAX_MS=ho.dateTime2ms("9999-12-31 23:59:59.9999");ho.isDateTime=function(e,t){return ho.dateTime2ms(e,t)!==Jf};function k1(e,t){return String(e+Math.pow(10,t)).substr(1)}var DT=90*Fu,xW=3*Ub,bW=5*t0;ho.ms2DateTime=function(e,t,r){if(typeof e!="number"||!(e>=RT&&e<=PT))return Jf;t||(t=0);var n=Math.floor(r0(e+.05,1)*10),i=Math.round(e-n/10),a,o,s,l,u,f;if(jv(r)){var c=Math.floor(i/Fu)+Hb,h=Math.floor(r0(e,Fu));try{a=Hv.getComponentMethod("calendars","getCal")(r).fromJD(c).formatDate("yyyy-mm-dd")}catch{a=mW("G%Y-%m-%d")(new Date(i))}if(a.charAt(0)==="-")for(;a.length<11;)a="-0"+a.substr(1);else for(;a.length<10;)a="0"+a;o=t=RT+Fu&&e<=PT-Fu))return Jf;var t=Math.floor(r0(e+.05,1)*10),r=new Date(Math.round(e-t/10)),n=UVe("%Y-%m-%d")(r),i=r.getHours(),a=r.getMinutes(),o=r.getSeconds(),s=r.getUTCMilliseconds()*10+t;return AW(n,i,a,o,s)};function AW(e,t,r,n,i){if((t||r||n||i)&&(e+=" "+k1(t,2)+":"+k1(r,2),(n||i)&&(e+=":"+k1(n,2),i))){for(var a=4;i%10===0;)a-=1,i/=10;e+="."+k1(i,a)}return e}ho.cleanDate=function(e,t,r){if(e===Jf)return t;if(ho.isJSDate(e)||typeof e=="number"&&isFinite(e)){if(jv(r))return EE.error("JS Dates and milliseconds are incompatible with world calendars",e),t;if(e=ho.ms2DateTimeLocal(+e),!e&&t!==void 0)return t}else if(!ho.isDateTime(e,r))return EE.error("unrecognized date",e),t;return e};var YVe=/%\d?f/g,GVe=/%h/g,WVe={1:"1",2:"1",3:"2",4:"2"};function wW(e,t,r,n){e=e.replace(YVe,function(a){var o=Math.min(+a.charAt(1)||6,6),s=(t/1e3%1+2).toFixed(o).substr(2).replace(/0+$/,"")||"0";return s});var i=new Date(Math.floor(t+.05));if(e=e.replace(GVe,function(){return WVe[r("%q")(i)]}),jv(n))try{e=Hv.getComponentMethod("calendars","worldCalFmt")(e,t,n)}catch{return"Invalid"}return r(e)(i)}var XVe=[59,59.9,59.99,59.999,59.9999];function ZVe(e,t){var r=r0(e+.05,Fu),n=k1(Math.floor(r/Ub),2)+":"+k1(r0(Math.floor(r/t0),60),2);if(t!=="M"){TW(t)||(t=0);var i=Math.min(r0(e/S1,60),XVe[t]),a=(100+i).toFixed(t).substr(1);t>0&&(a=a.replace(/0+$/,"").replace(/[\.]$/,"")),n+=":"+a}return n}ho.formatDate=function(e,t,r,n,i,a){if(i=jv(i)&&i,!t)if(r==="y")t=a.year;else if(r==="m")t=a.month;else if(r==="d")t=a.dayMonth+` +`+a.year;else return ZVe(e,r)+` +`+wW(a.dayMonthYear,e,n,i);return wW(t,e,n,i)};var _W=3*Fu;ho.incrementMonth=function(e,t,r){r=jv(r)&&r;var n=r0(e,Fu);if(e=Math.round(e-n),r)try{var i=Math.round(e/Fu)+Hb,a=Hv.getComponentMethod("calendars","getCal")(r),o=a.fromJD(i);return t%12?a.add(o,t,"m"):a.add(o,t/12,"y"),(o.toJD()-Hb)*Fu+n}catch{EE.error("invalid ms "+e+" in calendar "+r)}var s=new Date(e+_W);return s.setUTCMonth(s.getUTCMonth()+t)+n-_W};ho.findExactDates=function(e,t){for(var r=0,n=0,i=0,a=0,o,s,l=jv(t)&&Hv.getComponentMethod("calendars","getCal")(t),u=0;u{"use strict";kW.exports=function(t){return t}});var IT=J(Vv=>{"use strict";var JVe=dn(),$Ve=Kd(),KVe=jb(),QVe=oi().BADNUM,LE=1e-9;Vv.findBin=function(e,t,r){if(JVe(t.start))return r?Math.ceil((e-t.start)/t.size-LE)-1:Math.floor((e-t.start)/t.size+LE);var n=0,i=t.length,a=0,o=i>1?(t[i-1]-t[0])/(i-1):1,s,l;for(o>=0?l=r?eYe:tYe:l=r?nYe:rYe,e+=o*LE*(r?-1:1)*(o>=0?1:-1);n90&&$Ve.log("Long binary search..."),n-1};function eYe(e,t){return et}function nYe(e,t){return e>=t}Vv.sorterAsc=function(e,t){return e-t};Vv.sorterDes=function(e,t){return t-e};Vv.distinctVals=function(e){var t=e.slice();t.sort(Vv.sorterAsc);var r;for(r=t.length-1;r>-1&&t[r]===QVe;r--);for(var n=t[r]-t[0]||1,i=n/(r||1)/1e4,a=[],o,s=0;s<=r;s++){var l=t[s],u=l-o;o===void 0?(a.push(l),o=l):u>i&&(n=Math.min(n,u),a.push(l),o=l)}return{vals:a,minDiff:n}};Vv.roundUp=function(e,t,r){for(var n=0,i=t.length-1,a,o=0,s=r?0:1,l=r?1:0,u=r?Math.ceil:Math.floor;n0&&(n=1),r&&n)return e.sort(t)}return n?e:e.reverse()};Vv.findIndexOfMin=function(e,t){t=t||KVe;for(var r=1/0,n,i=0;i{"use strict";SW.exports=function(t){return Object.keys(t).sort()}});var CW=J(vo=>{"use strict";var Yb=dn(),iYe=fl().isArrayOrTypedArray;vo.aggNums=function(e,t,r,n){var i,a;if((!n||n>r.length)&&(n=r.length),Yb(t)||(t=!1),iYe(r[0])){for(a=new Array(n),i=0;ie.length-1)return e[e.length-1];var r=t%1;return r*e[Math.ceil(t)]+(1-r)*e[Math.floor(t)]}});var PW=J((RDt,RW)=>{"use strict";var EW=x1(),DE=EW.mod,aYe=EW.modHalf,Gb=Math.PI,n0=2*Gb;function oYe(e){return e/180*Gb}function sYe(e){return e/Gb*180}function RE(e){return Math.abs(e[1]-e[0])>n0-1e-14}function LW(e,t){return aYe(t-e,n0)}function lYe(e,t){return Math.abs(LW(e,t))}function DW(e,t){if(RE(t))return!0;var r,n;t[0]n&&(n+=n0);var i=DE(e,n0),a=i+n0;return i>=r&&i<=n||a>=r&&a<=n}function uYe(e,t,r,n){if(!DW(t,n))return!1;var i,a;return r[0]=i&&e<=a}function PE(e,t,r,n,i,a,o){i=i||0,a=a||0;var s=RE([r,n]),l,u,f,c,h;s?(l=0,u=Gb,f=n0):r{"use strict";Np.isLeftAnchor=function(t){return t.xanchor==="left"||t.xanchor==="auto"&&t.x<=1/3};Np.isCenterAnchor=function(t){return t.xanchor==="center"||t.xanchor==="auto"&&t.x>1/3&&t.x<2/3};Np.isRightAnchor=function(t){return t.xanchor==="right"||t.xanchor==="auto"&&t.x>=2/3};Np.isTopAnchor=function(t){return t.yanchor==="top"||t.yanchor==="auto"&&t.y>=2/3};Np.isMiddleAnchor=function(t){return t.yanchor==="middle"||t.yanchor==="auto"&&t.y>1/3&&t.y<2/3};Np.isBottomAnchor=function(t){return t.yanchor==="bottom"||t.yanchor==="auto"&&t.y<=1/3}});var zW=J(Op=>{"use strict";var IE=x1().mod;Op.segmentsIntersect=FW;function FW(e,t,r,n,i,a,o,s){var l=r-e,u=i-e,f=o-i,c=n-t,h=a-t,d=s-a,v=l*d-f*c;if(v===0)return null;var m=(u*d-f*h)/v,b=(u*c-l*h)/v;return b<0||b>1||m<0||m>1?null:{x:e+l*m,y:t+c*m}}Op.segmentDistance=function(t,r,n,i,a,o,s,l){if(FW(t,r,n,i,a,o,s,l))return 0;var u=n-t,f=i-r,c=s-a,h=l-o,d=u*u+f*f,v=c*c+h*h,m=Math.min(qT(u,f,d,a-t,o-r),qT(u,f,d,s-t,l-r),qT(c,h,v,t-a,r-o),qT(c,h,v,n-a,i-o));return Math.sqrt(m)};function qT(e,t,r,n,i){var a=n*e+i*t;if(a<0)return n*n+i*i;if(a>r){var o=n-e,s=i-t;return o*o+s*s}else{var l=n*t-i*e;return l*l/r}}var FT,qE,qW;Op.getTextLocation=function(t,r,n,i){if((t!==qE||i!==qW)&&(FT={},qE=t,qW=i),FT[n])return FT[n];var a=t.getPointAtLength(IE(n-i/2,r)),o=t.getPointAtLength(IE(n+i/2,r)),s=Math.atan((o.y-a.y)/(o.x-a.x)),l=t.getPointAtLength(IE(n,r)),u=(l.x*4+a.x+o.x)/6,f=(l.y*4+a.y+o.y)/6,c={x:u,y:f,theta:s};return FT[n]=c,c};Op.clearLocationCache=function(){qE=null};Op.getVisibleSegment=function(t,r,n){var i=r.left,a=r.right,o=r.top,s=r.bottom,l=0,u=t.getTotalLength(),f=u,c,h;function d(m){var b=t.getPointAtLength(m);m===0?c=b:m===u&&(h=b);var g=b.xa?b.x-a:0,_=b.ys?b.y-s:0;return Math.sqrt(g*g+_*_)}for(var v=d(l);v;){if(l+=v+n,l>f)return;v=d(l)}for(v=d(f);v;){if(f-=v+n,l>f)return;v=d(f)}return{min:l,max:f,len:f-l,total:u,isClosed:l===0&&f===u&&Math.abs(c.x-h.x)<.1&&Math.abs(c.y-h.y)<.1}};Op.findPointOnPath=function(t,r,n,i){i=i||{};for(var a=i.pathLength||t.getTotalLength(),o=i.tolerance||.001,s=i.iterationLimit||30,l=t.getPointAtLength(0)[n]>t.getPointAtLength(a)[n]?-1:1,u=0,f=0,c=a,h,d,v;u0?c=h:f=h,u++}return d}});var zT=J(Wb=>{"use strict";var Yv={};Wb.throttle=function(t,r,n){var i=Yv[t],a=Date.now();if(!i){for(var o in Yv)Yv[o].tsi.ts+r){s();return}i.timer=setTimeout(function(){s(),i.timer=null},r)};Wb.done=function(e){var t=Yv[e];return!t||!t.timer?Promise.resolve():new Promise(function(r){var n=t.onDone;t.onDone=function(){n&&n(),r(),t.onDone=null}})};Wb.clear=function(e){if(e)NW(Yv[e]),delete Yv[e];else for(var t in Yv)Wb.clear(t)};function NW(e){e&&e.timer!==null&&(clearTimeout(e.timer),e.timer=null)}});var BW=J((FDt,OW)=>{"use strict";OW.exports=function(t){t._responsiveChartHandler&&(window.removeEventListener("resize",t._responsiveChartHandler),delete t._responsiveChartHandler)}});var UW=J((zDt,NT)=>{"use strict";NT.exports=FE;NT.exports.isMobile=FE;NT.exports.default=FE;var vYe=/(android|bb\d+|meego).+mobile|armv7l|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series[46]0|samsungbrowser.*mobile|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i,dYe=/CrOS/,pYe=/android|ipad|playbook|silk/i;function FE(e){e||(e={});let t=e.ua;if(!t&&typeof navigator<"u"&&(t=navigator.userAgent),t&&t.headers&&typeof t.headers["user-agent"]=="string"&&(t=t.headers["user-agent"]),typeof t!="string")return!1;let r=vYe.test(t)&&!dYe.test(t)||!!e.tablet&&pYe.test(t);return!r&&e.tablet&&e.featureDetect&&navigator&&navigator.maxTouchPoints>1&&t.indexOf("Macintosh")!==-1&&t.indexOf("Safari")!==-1&&(r=!0),r}});var jW=J((NDt,HW)=>{"use strict";var gYe=dn(),mYe=UW();HW.exports=function(t){var r;if(t&&t.hasOwnProperty("userAgent")?r=t.userAgent:r=yYe(),typeof r!="string")return!0;var n=mYe({ua:{headers:{"user-agent":r}},tablet:!0,featureDetect:!1});if(!n)for(var i=r.split(" "),a=1;a-1;s--){var l=i[s];if(l.substr(0,8)==="Version/"){var u=l.substr(8).split(".")[0];if(gYe(u)&&(u=+u),u>=13)return!0}}}return n};function yYe(){var e;return typeof navigator<"u"&&(e=navigator.userAgent),e&&e.headers&&typeof e.headers["user-agent"]=="string"&&(e=e.headers["user-agent"]),e}});var YW=J((ODt,VW)=>{"use strict";var xYe=Nr();VW.exports=function(t,r,n){var i=t.selectAll("g."+n.replace(/\s/g,".")).data(r,function(o){return o[0].trace.uid});i.exit().remove(),i.enter().append("g").attr("class",n),i.order();var a=t.classed("rangeplot")?"nodeRangePlot3":"node3";return i.each(function(o){o[0][a]=xYe.select(this)}),i}});var WW=J((BDt,GW)=>{"use strict";var bYe=zr();GW.exports=function(t,r){for(var n=t._context.locale,i=0;i<2;i++){for(var a=t._context.locales,o=0;o<2;o++){var s=(a[n]||{}).dictionary;if(s){var l=s[r];if(l)return l}a=bYe.localeRegistry}var u=n.split("-")[0];if(u===n)break;n=u}return r}});var zE=J((UDt,XW)=>{"use strict";XW.exports=function(t){for(var r={},n=[],i=0,a=0;a{"use strict";ZW.exports=function(t){for(var r=TYe(t)?_Ye:wYe,n=[],i=0;i{"use strict";$W.exports=function(t,r){if(!r)return t;var n=1/Math.abs(r),i=n>1?(n*t+n*r)/n:t+r,a=String(i).length;if(a>16){var o=String(r).length,s=String(t).length;if(a>=s+o){var l=parseFloat(i).toPrecision(12);l.indexOf("e+")===-1&&(i=+l)}}return i}});var eX=J((VDt,QW)=>{"use strict";var AYe=dn(),MYe=oi().BADNUM,kYe=/^['"%,$#\s']+|[, ]|['"%,$#\s']+$/g;QW.exports=function(t){return typeof t=="string"&&(t=t.replace(kYe,"")),AYe(t)?Number(t):MYe}});var gt=J((YDt,vX)=>{"use strict";var Xb=Nr(),SYe=m1().utcFormat,CYe=lE().format,oX=dn(),sX=oi(),lX=sX.FP_SAFE,EYe=-lX,tX=sX.BADNUM,Pt=vX.exports={};Pt.adjustFormat=function(t){return!t||/^\d[.]\df/.test(t)||/[.]\d%/.test(t)?t:t==="0.f"?"~f":/^\d%/.test(t)?"~%":/^\ds/.test(t)?"~s":!/^[~,.0$]/.test(t)&&/[&fps]/.test(t)?"~"+t:t};var rX={};Pt.warnBadFormat=function(e){var t=String(e);rX[t]||(rX[t]=1,Pt.warn('encountered bad format: "'+t+'"'))};Pt.noFormat=function(e){return String(e)};Pt.numberFormat=function(e){var t;try{t=CYe(Pt.adjustFormat(e))}catch{return Pt.warnBadFormat(e),Pt.noFormat}return t};Pt.nestedProperty=Rb();Pt.keyedContainer=YV();Pt.relativeAttr=WV();Pt.isPlainObject=Bv();Pt.toLogRange=vT();Pt.relinkPrivateKeys=$V();var i0=fl();Pt.isArrayBuffer=i0.isArrayBuffer;Pt.isTypedArray=i0.isTypedArray;Pt.isArrayOrTypedArray=i0.isArrayOrTypedArray;Pt.isArray1D=i0.isArray1D;Pt.ensureArray=i0.ensureArray;Pt.concat=i0.concat;Pt.maxRowLength=i0.maxRowLength;Pt.minRowLength=i0.minRowLength;var uX=x1();Pt.mod=uX.mod;Pt.modHalf=uX.modHalf;var a0=mY();Pt.valObjectMeta=a0.valObjectMeta;Pt.coerce=a0.coerce;Pt.coerce2=a0.coerce2;Pt.coerceFont=a0.coerceFont;Pt.coercePattern=a0.coercePattern;Pt.coerceHoverinfo=a0.coerceHoverinfo;Pt.coerceSelectionMarkerOpacity=a0.coerceSelectionMarkerOpacity;Pt.validate=a0.validate;var Af=MW();Pt.dateTime2ms=Af.dateTime2ms;Pt.isDateTime=Af.isDateTime;Pt.ms2DateTime=Af.ms2DateTime;Pt.ms2DateTimeLocal=Af.ms2DateTimeLocal;Pt.cleanDate=Af.cleanDate;Pt.isJSDate=Af.isJSDate;Pt.formatDate=Af.formatDate;Pt.incrementMonth=Af.incrementMonth;Pt.dateTick0=Af.dateTick0;Pt.dfltRange=Af.dfltRange;Pt.findExactDates=Af.findExactDates;Pt.MIN_MS=Af.MIN_MS;Pt.MAX_MS=Af.MAX_MS;var Bp=IT();Pt.findBin=Bp.findBin;Pt.sorterAsc=Bp.sorterAsc;Pt.sorterDes=Bp.sorterDes;Pt.distinctVals=Bp.distinctVals;Pt.roundUp=Bp.roundUp;Pt.sort=Bp.sort;Pt.findIndexOfMin=Bp.findIndexOfMin;Pt.sortObjectKeys=Vb();var Gv=CW();Pt.aggNums=Gv.aggNums;Pt.len=Gv.len;Pt.mean=Gv.mean;Pt.geometricMean=Gv.geometricMean;Pt.median=Gv.median;Pt.midRange=Gv.midRange;Pt.variance=Gv.variance;Pt.stdev=Gv.stdev;Pt.interp=Gv.interp;var Qc=wT();Pt.init2dArray=Qc.init2dArray;Pt.transposeRagged=Qc.transposeRagged;Pt.dot=Qc.dot;Pt.translationMatrix=Qc.translationMatrix;Pt.rotationMatrix=Qc.rotationMatrix;Pt.rotationXYMatrix=Qc.rotationXYMatrix;Pt.apply3DTransform=Qc.apply3DTransform;Pt.apply2DTransform=Qc.apply2DTransform;Pt.apply2DTransform2=Qc.apply2DTransform2;Pt.convertCssMatrix=Qc.convertCssMatrix;Pt.inverseTransformMatrix=Qc.inverseTransformMatrix;var Vh=PW();Pt.deg2rad=Vh.deg2rad;Pt.rad2deg=Vh.rad2deg;Pt.angleDelta=Vh.angleDelta;Pt.angleDist=Vh.angleDist;Pt.isFullCircle=Vh.isFullCircle;Pt.isAngleInsideSector=Vh.isAngleInsideSector;Pt.isPtInsideSector=Vh.isPtInsideSector;Pt.pathArc=Vh.pathArc;Pt.pathSector=Vh.pathSector;Pt.pathAnnulus=Vh.pathAnnulus;var L1=IW();Pt.isLeftAnchor=L1.isLeftAnchor;Pt.isCenterAnchor=L1.isCenterAnchor;Pt.isRightAnchor=L1.isRightAnchor;Pt.isTopAnchor=L1.isTopAnchor;Pt.isMiddleAnchor=L1.isMiddleAnchor;Pt.isBottomAnchor=L1.isBottomAnchor;var D1=zW();Pt.segmentsIntersect=D1.segmentsIntersect;Pt.segmentDistance=D1.segmentDistance;Pt.getTextLocation=D1.getTextLocation;Pt.clearLocationCache=D1.clearLocationCache;Pt.getVisibleSegment=D1.getVisibleSegment;Pt.findPointOnPath=D1.findPointOnPath;var UT=cn();Pt.extendFlat=UT.extendFlat;Pt.extendDeep=UT.extendDeep;Pt.extendDeepAll=UT.extendDeepAll;Pt.extendDeepNoArrays=UT.extendDeepNoArrays;var NE=Kd();Pt.log=NE.log;Pt.warn=NE.warn;Pt.error=NE.error;var LYe=_1();Pt.counterRegex=LYe.counter;var OE=zT();Pt.throttle=OE.throttle;Pt.throttleDone=OE.done;Pt.clearThrottle=OE.clear;var Yh=Ob();Pt.getGraphDiv=Yh.getGraphDiv;Pt.isPlotDiv=Yh.isPlotDiv;Pt.removeElement=Yh.removeElement;Pt.addStyleRule=Yh.addStyleRule;Pt.addRelatedStyleRule=Yh.addRelatedStyleRule;Pt.deleteRelatedStyleRule=Yh.deleteRelatedStyleRule;Pt.getFullTransformMatrix=Yh.getFullTransformMatrix;Pt.getElementTransformMatrix=Yh.getElementTransformMatrix;Pt.getElementAndAncestors=Yh.getElementAndAncestors;Pt.equalDomRects=Yh.equalDomRects;Pt.clearResponsive=BW();Pt.preserveDrawingBuffer=jW();Pt.makeTraceGroups=YW();Pt._=WW();Pt.notifier=xE();Pt.filterUnique=zE();Pt.filterVisible=JW();Pt.pushUnique=_E();Pt.increment=KW();Pt.cleanNumber=eX();Pt.ensureNumber=function(t){return oX(t)?(t=Number(t),t>lX||t=t?!1:oX(e)&&e>=0&&e%1===0};Pt.noop=bT();Pt.identity=jb();Pt.repeat=function(e,t){for(var r=new Array(t),n=0;nr?Math.max(r,Math.min(t,e)):Math.max(t,Math.min(r,e))};Pt.bBoxIntersect=function(e,t,r){return r=r||0,e.left<=t.right+r&&t.left<=e.right+r&&e.top<=t.bottom+r&&t.top<=e.bottom+r};Pt.simpleMap=function(e,t,r,n,i){for(var a=e.length,o=new Array(a),s=0;s=Math.pow(2,r)?i>10?(Pt.warn("randstr failed uniqueness"),o):e(t,r,n,(i||0)+1):o};Pt.OptionControl=function(e,t){e||(e={}),t||(t="opt");var r={};return r.optionList=[],r._newoption=function(n){n[t]=e,r[n.name]=n,r.optionList.push(n)},r["_"+t]=e,r};Pt.smooth=function(e,t){if(t=Math.round(t)||0,t<2)return e;var r=e.length,n=2*r,i=2*t-1,a=new Array(i),o=new Array(r),s,l,u,f;for(s=0;s=n&&(u-=n*Math.floor(u/n)),u<0?u=-1-u:u>=r&&(u=n-1-u),f+=e[u]*a[l];o[s]=f}return o};Pt.syncOrAsync=function(e,t,r){var n,i;function a(){return Pt.syncOrAsync(e,t,r)}for(;e.length;)if(i=e.splice(0,1)[0],n=i(t),n&&n.then)return n.then(a);return r&&r(t)};Pt.stripTrailingSlash=function(e){return e.substr(-1)==="/"?e.substr(0,e.length-1):e};Pt.noneOrAll=function(e,t,r){if(e){var n=!1,i=!0,a,o;for(a=0;a0?i:0})};Pt.fillArray=function(e,t,r,n){if(n=n||Pt.identity,Pt.isArrayOrTypedArray(e))for(var i=0;i1?i+o[1]:"";if(a&&(o.length>1||s.length>4||r))for(;n.test(s);)s=s.replace(n,"$1"+a+"$2");return s+l};Pt.TEMPLATE_STRING_REGEX=/%{([^\s%{}:]*)([:|\|][^}]*)?}/g;var hX=/^\w*$/;Pt.templateString=function(e,t){var r={};return e.replace(Pt.TEMPLATE_STRING_REGEX,function(n,i){var a;return hX.test(i)?a=t[i]:(r[i]=r[i]||Pt.nestedProperty(t,i).get,a=r[i]()),Pt.isValidTextValue(a)?a:""})};var FYe={max:10,count:0,name:"hovertemplate"};Pt.hovertemplateString=function(){return BE.apply(FYe,arguments)};var zYe={max:10,count:0,name:"texttemplate"};Pt.texttemplateString=function(){return BE.apply(zYe,arguments)};var NYe=/^(\S+)([\*\/])(-?\d+(\.\d+)?)$/;function OYe(e){var t=e.match(NYe);return t?{key:t[1],op:t[2],number:Number(t[3])}:{key:e,op:null,number:null}}var BYe={max:10,count:0,name:"texttemplate",parseMultDiv:!0};Pt.texttemplateStringForShapes=function(){return BE.apply(BYe,arguments)};var nX=/^[:|\|]/;function BE(e,t,r){var n=this,i=arguments;t||(t={});var a={};return e.replace(Pt.TEMPLATE_STRING_REGEX,function(o,s,l){var u=s==="xother"||s==="yother",f=s==="_xother"||s==="_yother",c=s==="_xother_"||s==="_yother_",h=s==="xother_"||s==="yother_",d=u||f||h||c,v=s;(f||c)&&(v=v.substring(1)),(h||c)&&(v=v.substring(0,v.length-1));var m=null,b=null;if(n.parseMultDiv){var g=OYe(v);v=g.key,m=g.op,b=g.number}var _;if(d){if(_=t[v],_===void 0)return""}else{var T,w;for(w=3;w=BT&&o<=iX,u=s>=BT&&s<=iX;if(l&&(n=10*n+o-BT),u&&(i=10*i+s-BT),!l||!u){if(n!==i)return n-i;if(o!==s)return o-s}}return i-n};var E1=2e9;Pt.seedPseudoRandom=function(){E1=2e9};Pt.pseudoRandom=function(){var e=E1;return E1=(69069*E1+1)%4294967296,Math.abs(E1-e)<429496729?Pt.pseudoRandom():E1/4294967296};Pt.fillText=function(e,t,r){var n=Array.isArray(r)?function(o){r.push(o)}:function(o){r.text=o},i=Pt.extractOption(e,t,"htx","hovertext");if(Pt.isValidTextValue(i))return n(i);var a=Pt.extractOption(e,t,"tx","text");if(Pt.isValidTextValue(a))return n(a)};Pt.isValidTextValue=function(e){return e||e===0};Pt.formatPercent=function(e,t){t=t||0;for(var r=(Math.round(100*e*Math.pow(10,t))*Math.pow(.1,t)).toFixed(t)+"%",n=0;n1&&(u=1):u=0,Pt.strTranslate(i-u*(r+o),a-u*(n+s))+Pt.strScale(u)+(l?"rotate("+l+(t?"":" "+r+" "+n)+")":"")};Pt.setTransormAndDisplay=function(e,t){e.attr("transform",Pt.getTextTransform(t)),e.style("display",t.scale?null:"none")};Pt.ensureUniformFontSize=function(e,t){var r=Pt.extendFlat({},t);return r.size=Math.max(t.size,e._fullLayout.uniformtext.minsize||0),r};Pt.join2=function(e,t,r){var n=e.length;return n>1?e.slice(0,-1).join(t)+r+e[n-1]:e.join(t)};Pt.bigFont=function(e){return Math.round(1.2*e)};var aX=Pt.getFirefoxVersion(),UYe=aX!==null&&aX<86;Pt.getPositionFromD3Event=function(){return UYe?[Xb.event.layerX,Xb.event.layerY]:[Xb.event.offsetX,Xb.event.offsetY]}});var gX=J(()=>{"use strict";var HYe=gt(),dX={"X,X div":'direction:ltr;font-family:"Open Sans",verdana,arial,sans-serif;margin:0;padding:0;',"X input,X button":'font-family:"Open Sans",verdana,arial,sans-serif;',"X input:focus,X button:focus":"outline:none;","X a":"text-decoration:none;","X a:hover":"text-decoration:none;","X .crisp":"shape-rendering:crispEdges;","X .user-select-none":"-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;","X svg":"overflow:hidden;","X svg a":"fill:#447adb;","X svg a:hover":"fill:#3c6dc5;","X .main-svg":"position:absolute;top:0;left:0;pointer-events:none;","X .main-svg .draglayer":"pointer-events:all;","X .cursor-default":"cursor:default;","X .cursor-pointer":"cursor:pointer;","X .cursor-crosshair":"cursor:crosshair;","X .cursor-move":"cursor:move;","X .cursor-col-resize":"cursor:col-resize;","X .cursor-row-resize":"cursor:row-resize;","X .cursor-ns-resize":"cursor:ns-resize;","X .cursor-ew-resize":"cursor:ew-resize;","X .cursor-sw-resize":"cursor:sw-resize;","X .cursor-s-resize":"cursor:s-resize;","X .cursor-se-resize":"cursor:se-resize;","X .cursor-w-resize":"cursor:w-resize;","X .cursor-e-resize":"cursor:e-resize;","X .cursor-nw-resize":"cursor:nw-resize;","X .cursor-n-resize":"cursor:n-resize;","X .cursor-ne-resize":"cursor:ne-resize;","X .cursor-grab":"cursor:-webkit-grab;cursor:grab;","X .modebar":"position:absolute;top:2px;right:2px;","X .ease-bg":"-webkit-transition:background-color .3s ease 0s;-moz-transition:background-color .3s ease 0s;-ms-transition:background-color .3s ease 0s;-o-transition:background-color .3s ease 0s;transition:background-color .3s ease 0s;","X .modebar--hover>:not(.watermark)":"opacity:0;-webkit-transition:opacity .3s ease 0s;-moz-transition:opacity .3s ease 0s;-ms-transition:opacity .3s ease 0s;-o-transition:opacity .3s ease 0s;transition:opacity .3s ease 0s;","X:hover .modebar--hover .modebar-group":"opacity:1;","X .modebar-group":"float:left;display:inline-block;box-sizing:border-box;padding-left:8px;position:relative;vertical-align:middle;white-space:nowrap;","X .modebar-btn":"position:relative;font-size:16px;padding:3px 4px;height:22px;cursor:pointer;line-height:normal;box-sizing:border-box;","X .modebar-btn svg":"position:relative;top:2px;","X .modebar.vertical":"display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-end;max-height:100%;","X .modebar.vertical svg":"top:-1px;","X .modebar.vertical .modebar-group":"display:block;float:none;padding-left:0px;padding-bottom:8px;","X .modebar.vertical .modebar-group .modebar-btn":"display:block;text-align:center;","X [data-title]:before,X [data-title]:after":"position:absolute;-webkit-transform:translate3d(0, 0, 0);-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);display:none;opacity:0;z-index:1001;pointer-events:none;top:110%;right:50%;","X [data-title]:hover:before,X [data-title]:hover:after":"display:block;opacity:1;","X [data-title]:before":'content:"";position:absolute;background:rgba(0,0,0,0);border:6px solid rgba(0,0,0,0);z-index:1002;margin-top:-12px;border-bottom-color:#69738a;margin-right:-6px;',"X [data-title]:after":"content:attr(data-title);background:#69738a;color:#fff;padding:8px 10px;font-size:12px;line-height:12px;white-space:nowrap;margin-right:-18px;border-radius:2px;","X .vertical [data-title]:before,X .vertical [data-title]:after":"top:0%;right:200%;","X .vertical [data-title]:before":"border:6px solid rgba(0,0,0,0);border-left-color:#69738a;margin-top:8px;margin-right:-30px;",Y:'font-family:"Open Sans",verdana,arial,sans-serif;position:fixed;top:50px;right:20px;z-index:10000;font-size:10pt;max-width:180px;',"Y p":"margin:0;","Y .notifier-note":"min-width:180px;max-width:250px;border:1px solid #fff;z-index:3000;margin:0;background-color:#8c97af;background-color:rgba(140,151,175,.9);color:#fff;padding:10px;overflow-wrap:break-word;word-wrap:break-word;-ms-hyphens:auto;-webkit-hyphens:auto;hyphens:auto;","Y .notifier-close":"color:#fff;opacity:.8;float:right;padding:0 5px;background:none;border:none;font-size:20px;font-weight:bold;line-height:20px;","Y .notifier-close:hover":"color:#444;text-decoration:none;cursor:pointer;"};for(UE in dX)pX=UE.replace(/^,/," ,").replace(/X/g,".js-plotly-plot .plotly").replace(/Y/g,".plotly-notifier"),HYe.addStyleRule(pX,dX[UE]);var pX,UE});var HE=J((XDt,mX)=>{mX.exports=!0});var VE=J((ZDt,yX)=>{"use strict";var jYe=HE(),jE;typeof global.matchMedia=="function"?jE=!global.matchMedia("(hover: none)").matches:jE=jYe;yX.exports=jE});var VT=J((JDt,YE)=>{"use strict";var R1=typeof Reflect=="object"?Reflect:null,xX=R1&&typeof R1.apply=="function"?R1.apply:function(t,r,n){return Function.prototype.apply.call(t,r,n)},HT;R1&&typeof R1.ownKeys=="function"?HT=R1.ownKeys:Object.getOwnPropertySymbols?HT=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:HT=function(t){return Object.getOwnPropertyNames(t)};function VYe(e){console&&console.warn&&console.warn(e)}var wX=Number.isNaN||function(t){return t!==t};function ba(){ba.init.call(this)}YE.exports=ba;YE.exports.once=XYe;ba.EventEmitter=ba;ba.prototype._events=void 0;ba.prototype._eventsCount=0;ba.prototype._maxListeners=void 0;var bX=10;function jT(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(ba,"defaultMaxListeners",{enumerable:!0,get:function(){return bX},set:function(e){if(typeof e!="number"||e<0||wX(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");bX=e}});ba.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};ba.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||wX(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function _X(e){return e._maxListeners===void 0?ba.defaultMaxListeners:e._maxListeners}ba.prototype.getMaxListeners=function(){return _X(this)};ba.prototype.emit=function(t){for(var r=[],n=1;n0&&(o=r[0]),o instanceof Error)throw o;var s=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw s.context=o,s}var l=a[t];if(l===void 0)return!1;if(typeof l=="function")xX(l,this,r);else for(var u=l.length,f=SX(l,u),n=0;n0&&o.length>i&&!o.warned){o.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=e,s.type=t,s.count=o.length,VYe(s)}return e}ba.prototype.addListener=function(t,r){return TX(this,t,r,!1)};ba.prototype.on=ba.prototype.addListener;ba.prototype.prependListener=function(t,r){return TX(this,t,r,!0)};function YYe(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function AX(e,t,r){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},i=YYe.bind(n);return i.listener=r,n.wrapFn=i,i}ba.prototype.once=function(t,r){return jT(r),this.on(t,AX(this,t,r)),this};ba.prototype.prependOnceListener=function(t,r){return jT(r),this.prependListener(t,AX(this,t,r)),this};ba.prototype.removeListener=function(t,r){var n,i,a,o,s;if(jT(r),i=this._events,i===void 0)return this;if(n=i[t],n===void 0)return this;if(n===r||n.listener===r)--this._eventsCount===0?this._events=Object.create(null):(delete i[t],i.removeListener&&this.emit("removeListener",t,n.listener||r));else if(typeof n!="function"){for(a=-1,o=n.length-1;o>=0;o--)if(n[o]===r||n[o].listener===r){s=n[o].listener,a=o;break}if(a<0)return this;a===0?n.shift():GYe(n,a),n.length===1&&(i[t]=n[0]),i.removeListener!==void 0&&this.emit("removeListener",t,s||r)}return this};ba.prototype.off=ba.prototype.removeListener;ba.prototype.removeAllListeners=function(t){var r,n,i;if(n=this._events,n===void 0)return this;if(n.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):n[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[t]),this;if(arguments.length===0){var a=Object.keys(n),o;for(i=0;i=0;i--)this.removeListener(t,r[i]);return this};function MX(e,t,r){var n=e._events;if(n===void 0)return[];var i=n[t];return i===void 0?[]:typeof i=="function"?r?[i.listener||i]:[i]:r?WYe(i):SX(i,i.length)}ba.prototype.listeners=function(t){return MX(this,t,!0)};ba.prototype.rawListeners=function(t){return MX(this,t,!1)};ba.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):kX.call(e,t)};ba.prototype.listenerCount=kX;function kX(e){var t=this._events;if(t!==void 0){var r=t[e];if(typeof r=="function")return 1;if(r!==void 0)return r.length}return 0}ba.prototype.eventNames=function(){return this._eventsCount>0?HT(this._events):[]};function SX(e,t){for(var r=new Array(t),n=0;n{"use strict";var GE=VT().EventEmitter,JYe={init:function(e){if(e._ev instanceof GE)return e;var t=new GE,r=new GE;return e._ev=t,e._internalEv=r,e.on=t.on.bind(t),e.once=t.once.bind(t),e.removeListener=t.removeListener.bind(t),e.removeAllListeners=t.removeAllListeners.bind(t),e._internalOn=r.on.bind(r),e._internalOnce=r.once.bind(r),e._removeInternalListener=r.removeListener.bind(r),e._removeAllInternalListeners=r.removeAllListeners.bind(r),e.emit=function(n,i){typeof jQuery<"u"&&jQuery(e).trigger(n,i),t.emit(n,i),r.emit(n,i)},e},triggerHandler:function(e,t,r){var n,i;typeof jQuery<"u"&&(n=jQuery(e).triggerHandler(t,r));var a=e._ev;if(!a)return n;var o=a._events[t];if(!o)return n;function s(u){if(u.listener){if(a.removeListener(t,u.listener),!u.fired)return u.fired=!0,u.listener.apply(a,[r])}else return u.apply(a,[r])}o=Array.isArray(o)?o:[o];var l;for(l=0;l{"use strict";var LX=gt(),$Ye=qp().dfltConfig;function KYe(e,t){for(var r=[],n,i=0;i$Ye.queueLength&&(e.undoQueue.queue.shift(),e.undoQueue.index--)};Wv.startSequence=function(e){e.undoQueue=e.undoQueue||{index:0,queue:[],sequence:!1},e.undoQueue.sequence=!0,e.undoQueue.beginSequence=!0};Wv.stopSequence=function(e){e.undoQueue=e.undoQueue||{index:0,queue:[],sequence:!1},e.undoQueue.sequence=!1,e.undoQueue.beginSequence=!1};Wv.undo=function(t){var r,n;if(!(t.undoQueue===void 0||isNaN(t.undoQueue.index)||t.undoQueue.index<=0)){for(t.undoQueue.index--,r=t.undoQueue.queue[t.undoQueue.index],t.undoQueue.inSequence=!0,n=0;n=t.undoQueue.queue.length)){for(r=t.undoQueue.queue[t.undoQueue.index],t.undoQueue.inSequence=!0,n=0;n{"use strict";PX.exports={_isLinkedToArray:"frames_entry",group:{valType:"string",description:["An identifier that specifies the group to which the frame belongs,","used by animate to select a subset of frames."].join(" ")},name:{valType:"string",description:"A label by which to identify the frame"},traces:{valType:"any",description:["A list of trace indices that identify the respective traces in the","data attribute"].join(" ")},baseframe:{valType:"string",description:["The name of the frame into which this frame's properties are merged","before applying. This is used to unify properties and avoid needing","to specify the same values for the same properties in multiple frames."].join(" ")},data:{valType:"any",description:["A list of traces this frame modifies. The format is identical to the","normal trace definition."].join(" ")},layout:{valType:"any",description:["Layout properties which this frame modifies. The format is identical","to the normal layout definition."].join(" ")}}});var o0=J(Co=>{"use strict";var cl=zr(),$b=gt(),Jb=Qi(),XE=zp(),QYe=WE(),eGe=Bb(),tGe=qp().configAttributes,IX=La(),$f=$b.extendDeepAll,I1=$b.isPlainObject,rGe=$b.isArrayOrTypedArray,YT=$b.nestedProperty,nGe=$b.valObjectMeta,ZE="_isSubplotObj",GT="_isLinkedToArray",iGe="_arrayAttrRegexps",FX="_deprecated",JE=[ZE,GT,iGe,FX];Co.IS_SUBPLOT_OBJ=ZE;Co.IS_LINKED_TO_ARRAY=GT;Co.DEPRECATED=FX;Co.UNDERSCORE_ATTRS=JE;Co.get=function(){var e={};cl.allTypes.forEach(function(r){e[r]=oGe(r)});var t={};return Object.keys(cl.transformsRegistry).forEach(function(r){t[r]=lGe(r)}),{defs:{valObjects:nGe,metaKeys:JE.concat(["description","role","editType","impliedEdits"]),editType:{traces:IX.traces,layout:IX.layout},impliedEdits:{description:["Sometimes when an attribute is changed, other attributes","must be altered as well in order to achieve the intended","result. For example, when `range` is specified, it is","important to set `autorange` to `false` or the new `range`","value would be lost in the redraw. `impliedEdits` is the","mechanism to do this: `impliedEdits: {autorange: false}`.","Each key is a relative paths to the attribute string to","change, using *^* to ascend into the parent container,","for example `range[0]` has `impliedEdits: {*^autorange*: false}`.","A value of `undefined` means that the attribute will not be","changed, but its previous value should be recorded in case","we want to reverse this change later. For example, `autorange`","has `impliedEdits: {*range[0]*: undefined, *range[1]*:undefined}","because the range will likely be changed by redraw."].join(" ")}},traces:e,layout:sGe(),transforms:t,frames:uGe(),animation:Up(eGe),config:Up(tGe)}};Co.crawl=function(e,t,r,n){var i=r||0;n=n||"",Object.keys(e).forEach(function(a){var o=e[a];if(JE.indexOf(a)===-1){var s=(n?n+".":"")+a;t(o,a,e,i,s),!Co.isValObject(o)&&I1(o)&&a!=="impliedEdits"&&Co.crawl(o,t,i+1,s)}})};Co.isValObject=function(e){return e&&e.valType!==void 0};Co.findArrayAttributes=function(e){var t=[],r=[],n=[],i,a;function o(h,d,v,m){r=r.slice(0,m).concat([d]),n=n.slice(0,m).concat([h&&h._isLinkedToArray]);var b=h&&(h.valType==="data_array"||h.arrayOk===!0)&&!(r[m-1]==="colorbar"&&(d==="ticktext"||d==="tickvals"));b&&s(i,0,"")}function s(h,d,v){var m=h[r[d]],b=v+r[d];if(d===r.length-1)rGe(m)&&t.push(a+b);else if(n[d]){if(Array.isArray(m))for(var g=0;g=o.length)return!1;i=(cl.transformsRegistry[o[s].type]||{}).attributes,a=i&&i[t[2]],n=3}else{var l=e._module;if(l||(l=(cl.modules[e.type||Jb.type.dflt]||{})._module),!l)return!1;if(i=l.attributes,a=i&&i[r],!a){var u=l.basePlotModule;u&&u.attributes&&(a=u.attributes[r])}a||(a=Jb[r])}return zX(a,t,n)};Co.getLayoutValObject=function(e,t){var r=aGe(e,t[0]);return zX(r,t,1)};function aGe(e,t){var r,n,i,a,o=e._basePlotModules;if(o){var s;for(r=0;r=a.length)return!1;if(e.dimensions===2){if(r++,t.length===r)return e;var o=t[r];if(!Zb(o))return!1;e=a[i][o]}else e=a[i]}else e=a}}return e}function Zb(e){return e===Math.round(e)&&e>=0}function oGe(e){var t,r;t=cl.modules[e]._module,r=t.basePlotModule;var n={};n.type=null;var i=$f({},Jb),a=$f({},t.attributes);Co.crawl(a,function(l,u,f,c,h){YT(i,h).set(void 0),l===void 0&&YT(a,h).set(void 0)}),$f(n,i),cl.traceIs(e,"noOpacity")&&delete n.opacity,cl.traceIs(e,"showLegend")||(delete n.showlegend,delete n.legendgroup),cl.traceIs(e,"noHover")&&(delete n.hoverinfo,delete n.hoverlabel),t.selectPoints||delete n.selectedpoints,$f(n,a),r.attributes&&$f(n,r.attributes),n.type=e;var o={meta:t.meta||{},categories:t.categories||{},animatable:Boolean(t.animatable),type:e,attributes:Up(n)};if(t.layoutAttributes){var s={};$f(s,t.layoutAttributes),o.layoutAttributes=Up(s)}return t.animatable||Co.crawl(o,function(l){Co.isValObject(l)&&"anim"in l&&delete l.anim}),o}function sGe(){var e={},t,r;$f(e,XE);for(t in cl.subplotsRegistry)if(r=cl.subplotsRegistry[t],!!r.layoutAttributes)if(Array.isArray(r.attr))for(var n=0;n{"use strict";var q1=gt(),vGe=Qi(),s0="templateitemname",$E={name:{valType:"string",editType:"none",description:["When used in a template, named items are created in the output figure","in addition to any items the figure already has in this array.","You can modify these items in the output figure by making your own","item with `templateitemname` matching this `name`","alongside your modifications (including `visible: false` or","`enabled: false` to hide it).","Has no effect outside of a template."].join(" ")}};$E[s0]={valType:"string",editType:"calc",description:["Used to refer to a named item in this array in the template. Named","items from the template will be created even without a matching item","in the input figure, but you can modify one by making an item with","`templateitemname` matching its `name`, alongside your modifications","(including `visible: false` or `enabled: false` to hide it).","If there is no template or no matching item, this item will be","hidden unless you explicitly show it with `visible: true`."].join(" ")};Hp.templatedArray=function(e,t){return t._isLinkedToArray=e,t.name=$E.name,t[s0]=$E[s0],t};Hp.traceTemplater=function(e){var t={},r,n;for(r in e)n=e[r],Array.isArray(n)&&n.length&&(t[r]=0);function i(a){r=q1.coerce(a,{},vGe,"type");var o={type:r,_template:null};if(r in t){n=e[r];var s=t[r]%n.length;t[r]++,o._template=n[s]}return o}return{newTrace:i}};Hp.newContainer=function(e,t,r){var n=e._template,i=n&&(n[t]||r&&n[r]);q1.isPlainObject(i)||(i=null);var a=e[t]={_template:i};return a};Hp.arrayTemplater=function(e,t,r){var n=e._template,i=n&&n[BX(t)],a=n&&n[t];(!Array.isArray(a)||!a.length)&&(a=[]);var o={};function s(u){var f={name:u.name,_input:u},c=f[s0]=u[s0];if(!OX(c))return f._template=i,f;for(var h=0;h=n&&(r._input||{})._templateitemname;a&&(i=n);var o=t+"["+i+"]",s;function l(){s={},a&&(s[o]={},s[o][s0]=a)}l();function u(d,v){s[d]=v}function f(d,v){a?q1.nestedProperty(s[o],d).set(v):s[o+"."+d]=v}function c(){var d=s;return l(),d}function h(d,v){d&&f(d,v);var m=c();for(var b in m)q1.nestedProperty(e,b).set(m[b])}return{modifyBase:u,modifyItem:f,getUpdateObj:c,applyUpdate:h}}});var Eo=J((r8t,UX)=>{"use strict";var Kb=_1().counter;UX.exports={idRegex:{x:Kb("x","( domain)?"),y:Kb("y","( domain)?")},attrRegex:Kb("[xy]axis"),xAxisMatch:Kb("xaxis"),yAxisMatch:Kb("yaxis"),AX_ID_PATTERN:/^[xyz][0-9]*( domain)?$/,AX_NAME_PATTERN:/^[xyz]axis[0-9]*$/,SUBPLOT_PATTERN:/^x([0-9]*)y([0-9]*)$/,HOUR_PATTERN:"hour",WEEKDAY_PATTERN:"day of week",MINDRAG:8,MINZOOM:20,DRAGGERSIZE:20,REDRAWDELAY:50,DFLTRANGEX:[-1,6],DFLTRANGEY:[-1,4],traceLayerClasses:["imagelayer","heatmaplayer","contourcarpetlayer","contourlayer","funnellayer","waterfalllayer","barlayer","carpetlayer","violinlayer","boxlayer","ohlclayer","scattercarpetlayer","scatterlayer"],clipOnAxisFalseQuery:[".scatterlayer",".barlayer",".funnellayer",".waterfalllayer"],layerValue2layerClass:{"above traces":"above","below traces":"below"},zindexSeparator:"z"}});var jo=J(zu=>{"use strict";var dGe=zr(),KE=Eo();zu.id2name=function(t){if(!(typeof t!="string"||!t.match(KE.AX_ID_PATTERN))){var r=t.split(" ")[0].substr(1);return r==="1"&&(r=""),t.charAt(0)+"axis"+r}};zu.name2id=function(t){if(t.match(KE.AX_NAME_PATTERN)){var r=t.substr(5);return r==="1"&&(r=""),t.charAt(0)+r}};zu.cleanId=function(t,r,n){var i=/( domain)$/.test(t);if(!(typeof t!="string"||!t.match(KE.AX_ID_PATTERN))&&!(r&&t.charAt(0)!==r)&&!(i&&!n)){var a=t.split(" ")[0].substr(1).replace(/^0+/,"");return a==="1"&&(a=""),t.charAt(0)+a+(i&&n?" domain":"")}};zu.list=function(e,t,r){var n=e._fullLayout;if(!n)return[];var i=zu.listIds(e,t),a=new Array(i.length),o;for(o=0;on?1:-1:+(e.substr(1)||1)-+(t.substr(1)||1)};zu.ref2id=function(e){return/^[xyz]/.test(e)?e.split(" ")[0]:!1};function HX(e,t){if(t&&t.length){for(var r=0;r{"use strict";function pGe(e){var t=e._fullLayout._zoomlayer;t&&t.selectAll(".outline-controllers").remove()}function gGe(e){var t=e._fullLayout._zoomlayer;t&&t.selectAll(".select-outline").remove(),e._fullLayout._outlining=!1}jX.exports={clearOutlineControllers:pGe,clearOutline:gGe}});var WT=J((a8t,VX)=>{"use strict";VX.exports={scattermode:{valType:"enumerated",values:["group","overlay"],dflt:"overlay",editType:"calc",description:["Determines how scatter points at the same location coordinate","are displayed on the graph.","With *group*, the scatter points are plotted next to one another","centered around the shared location.","With *overlay*, the scatter points are plotted over one another,","you might need to reduce *opacity* to see multiple scatter points."].join(" ")},scattergap:{valType:"number",min:0,max:1,editType:"calc",description:["Sets the gap (in plot fraction) between scatter points of","adjacent location coordinates.","Defaults to `bargap`."].join(" ")}}});var Nu=J(XT=>{"use strict";var Qb=zr(),mGe=Eo().SUBPLOT_PATTERN;XT.getSubplotCalcData=function(e,t,r){var n=Qb.subplotsRegistry[t];if(!n)return[];for(var i=n.attr,a=[],o=0;o{"use strict";var yGe=zr(),F1=gt();jp.manageCommandObserver=function(e,t,r,n){var i={},a=!0;t&&t._commandObserver&&(i=t._commandObserver),i.cache||(i.cache={}),i.lookupTable={};var o=jp.hasSimpleAPICommandBindings(e,r,i.lookupTable);if(t&&t._commandObserver){if(o)return i;if(t._commandObserver.remove)return t._commandObserver.remove(),t._commandObserver=null,i}if(o){YX(e,o,i.cache),i.check=function(){if(a){var f=YX(e,o,i.cache);return f.changed&&n&&i.lookupTable[f.value]!==void 0&&(i.disable(),Promise.resolve(n({value:f.value,type:o.type,prop:o.prop,traces:o.traces,index:i.lookupTable[f.value]})).then(i.enable,i.enable)),f.changed}};for(var s=["plotly_relayout","plotly_redraw","plotly_restyle","plotly_update","plotly_animatingframe","plotly_afterplot"],l=0;l0?".":"")+i;F1.isPlainObject(a)?QE(a,t,o,n+1):t(o,i,a)}})}});var ea=J((l8t,lZ)=>{"use strict";var eZ=Nr(),bGe=m1().timeFormatLocale,wGe=lE().formatLocale,e2=dn(),_Ge=uE(),wi=zr(),tZ=o0(),TGe=ki(),Fr=gt(),rZ=qr(),ZX=oi().BADNUM,Ou=jo(),AGe=l0().clearOutline,MGe=WT(),tL=Bb(),kGe=WE(),SGe=Nu().getModuleCalcData,eL=Fr.relinkPrivateKeys,Vp=Fr._,Tr=lZ.exports={};Fr.extendFlat(Tr,wi);Tr.attributes=Qi();Tr.attributes.type.values=Tr.allTypes;Tr.fontAttrs=xa();Tr.layoutAttributes=zp();var JT=Tr.transformsRegistry,$T=XX();Tr.executeAPICommand=$T.executeAPICommand;Tr.computeAPICommandBindings=$T.computeAPICommandBindings;Tr.manageCommandObserver=$T.manageCommandObserver;Tr.hasSimpleAPICommandBindings=$T.hasSimpleAPICommandBindings;Tr.redrawText=function(e){return e=Fr.getGraphDiv(e),new Promise(function(t){setTimeout(function(){e._fullLayout&&(wi.getComponentMethod("annotations","draw")(e),wi.getComponentMethod("legend","draw")(e),wi.getComponentMethod("colorbar","draw")(e),t(Tr.previousPromises(e)))},300)})};Tr.resize=function(e){e=Fr.getGraphDiv(e);var t,r=new Promise(function(n,i){(!e||Fr.isHidden(e))&&i(new Error("Resize must be passed a displayed plot div element.")),e._redrawTimer&&clearTimeout(e._redrawTimer),e._resolveResize&&(t=e._resolveResize),e._resolveResize=n,e._redrawTimer=setTimeout(function(){if(!e.layout||e.layout.width&&e.layout.height||Fr.isHidden(e)){n(e);return}delete e.layout.width,delete e.layout.height;var a=e.changed;e.autoplay=!0,wi.call("relayout",e,{autosize:!0}).then(function(){e.changed=a,e._resolveResize===n&&(delete e._resolveResize,n(e))})},100)});return t&&t(r),r};Tr.previousPromises=function(e){if((e._promises||[]).length)return Promise.all(e._promises).then(function(){e._promises=[]})};Tr.addLinks=function(e){if(!(!e._context.showLink&&!e._context.showSources)){var t=e._fullLayout,r=Fr.ensureSingle(t._paper,"text","js-plot-link-container",function(l){l.style({"font-family":'"Open Sans", Arial, sans-serif',"font-size":"12px",fill:rZ.defaultLine,"pointer-events":"all"}).each(function(){var u=eZ.select(this);u.append("tspan").classed("js-link-to-tool",!0),u.append("tspan").classed("js-link-spacer",!0),u.append("tspan").classed("js-sourcelinks",!0)})}),n=r.node(),i={y:t._paper.attr("height")-9};document.body.contains(n)&&n.getComputedTextLength()>=t.width-20?(i["text-anchor"]="start",i.x=5):(i["text-anchor"]="end",i.x=t._paper.attr("width")-7),r.attr(i);var a=r.select(".js-link-to-tool"),o=r.select(".js-link-spacer"),s=r.select(".js-sourcelinks");e._context.showSources&&e._context.showSources(e),e._context.showLink&&CGe(e,a),o.text(a.text()&&s.text()?" - ":"")}};function CGe(e,t){t.text("");var r=t.append("a").attr({"xlink:xlink:href":"#",class:"link--impt link--embedview","font-weight":"bold"}).text(e._context.linkText+" "+String.fromCharCode(187));if(e._context.sendData)r.on("click",function(){Tr.sendDataToCloud(e)});else{var n=window.location.pathname.split("/"),i=window.location.search;r.attr({"xlink:xlink:show":"new","xlink:xlink:href":"/"+n[2].split(".")[0]+"/"+n[1]+i})}}Tr.sendDataToCloud=function(e){var t=(window.PLOTLYENV||{}).BASE_URL||e._context.plotlyServerURL;if(t){e.emit("plotly_beforeexport");var r=eZ.select(e).append("div").attr("id","hiddenform").style("display","none"),n=r.append("form").attr({action:t+"/external",method:"post",target:"_blank"}),i=n.append("input").attr({type:"text",name:"data"});return i.node().value=Tr.graphJson(e,!1,"keepdata"),n.node().submit(),r.remove(),e.emit("plotly_afterexport"),!1}};var EGe=["days","shortDays","months","shortMonths","periods","dateTime","date","time","decimal","thousands","grouping","currency"],LGe=["year","month","dayMonth","dayMonthYear"];Tr.supplyDefaults=function(e,t){var r=t&&t.skipUpdateCalc,n=e._fullLayout||{};if(n._skipDefaults){delete n._skipDefaults;return}var i=e._fullLayout={},a=e.layout||{},o=e._fullData||[],s=e._fullData=[],l=e.data||[],u=e.calcdata||[],f=e._context||{},c;e._transitionData||Tr.createTransitionData(e),i._dfltTitle={plot:Vp(e,"Click to enter Plot title"),subtitle:Vp(e,"Click to enter Plot subtitle"),x:Vp(e,"Click to enter X axis title"),y:Vp(e,"Click to enter Y axis title"),colorbar:Vp(e,"Click to enter Colorscale title"),annotation:Vp(e,"new text")},i._traceWord=Vp(e,"trace");var h=JX(e,EGe);if(i._mapboxAccessToken=f.mapboxAccessToken,n._initialAutoSizeIsDone){var d=n.width,v=n.height;Tr.supplyLayoutGlobalDefaults(a,i,h),a.width||(i.width=d),a.height||(i.height=v),Tr.sanitizeMargins(i)}else{Tr.supplyLayoutGlobalDefaults(a,i,h);var m=!a.width||!a.height,b=i.autosize,g=f.autosizable,_=m&&(b||g);_?Tr.plotAutoSize(e,a,i):m&&Tr.sanitizeMargins(i),!b&&m&&(a.width=i.width,a.height=i.height)}i._d3locale=PGe(h,i.separators),i._extraFormat=JX(e,LGe),i._initialAutoSizeIsDone=!0,i._dataLength=l.length,i._modules=[],i._visibleModules=[],i._basePlotModules=[];var T=i._subplots=RGe(),w=i._splomAxes={x:{},y:{}},k=i._splomSubplots={};i._splomGridDflt={},i._scatterStackOpts={},i._firstScatter={},i._alignmentOpts={},i._colorAxes={},i._requestRangeslider={},i._traceUids=DGe(o,l),i._globalTransforms=(e._context||{}).globalTransforms,Tr.supplyDataDefaults(l,s,a,i);var x=Object.keys(w.x),M=Object.keys(w.y);if(x.length>1&&M.length>1){for(wi.getComponentMethod("grid","sizeDefaults")(a,i),c=0;c15&&M.length>15&&i.shapes.length===0&&i.images.length===0,Tr.linkSubplots(s,i,o,n),Tr.cleanPlot(s,i,o,n);var E=!!(n._has&&n._has("gl2d")),C=!!(i._has&&i._has("gl2d")),L=!!(n._has&&n._has("cartesian")),R=!!(i._has&&i._has("cartesian")),I=L||E,P=R||C;I&&!P?n._bgLayer.remove():P&&!I&&(i._shouldCreateBgLayer=!0),n._zoomlayer&&!e._dragging&&AGe({_fullLayout:n}),IGe(s,i),eL(i,n),wi.getComponentMethod("colorscale","crossTraceDefaults")(s,i),i._preGUI||(i._preGUI={}),i._tracePreGUI||(i._tracePreGUI={});var D=i._tracePreGUI,q={},N;for(N in D)q[N]="old";for(c=0;c0){var f=1-2*a;o=Math.round(f*o),s=Math.round(f*s)}}var c=Tr.layoutAttributes.width.min,h=Tr.layoutAttributes.height.min;o1,v=!r.height&&Math.abs(n.height-s)>1;(v||d)&&(d&&(n.width=o),v&&(n.height=s)),t._initialAutoSize||(t._initialAutoSize={width:o,height:s}),Tr.sanitizeMargins(n)};Tr.supplyLayoutModuleDefaults=function(e,t,r,n){var i=wi.componentsRegistry,a=t._basePlotModules,o,s,l,u=wi.subplotsRegistry.cartesian;for(o in i)l=i[o],l.includeBasePlot&&l.includeBasePlot(e,t);a.length||a.push(u),t._has("cartesian")&&(wi.getComponentMethod("grid","contentDefaults")(e,t),u.finalizeSubplots(e,t));for(var f in t._subplots)t._subplots[f].sort(Fr.subplotSort);for(s=0;s1&&(r.l/=b,r.r/=b)}if(h){var g=(r.t+r.b)/h;g>1&&(r.t/=g,r.b/=g)}var _=r.xl!==void 0?r.xl:r.x,T=r.xr!==void 0?r.xr:r.x,w=r.yt!==void 0?r.yt:r.y,k=r.yb!==void 0?r.yb:r.y;d[t]={l:{val:_,size:r.l+m},r:{val:T,size:r.r+m},b:{val:k,size:r.b+m},t:{val:w,size:r.t+m}},v[t]=1}if(!n._replotting)return Tr.doAutoMargin(e)}};function zGe(e){if("_redrawFromAutoMarginCount"in e._fullLayout)return!1;var t=Ou.list(e,"",!0);for(var r in t)if(t[r].autoshift||t[r].shift)return!0;return!1}Tr.doAutoMargin=function(e){var t=e._fullLayout,r=t.width,n=t.height;t._size||(t._size={}),iZ(t);var i=t._size,a=t.margin,o={t:0,b:0,l:0,r:0},s=Fr.extendFlat({},i),l=a.l,u=a.r,f=a.t,c=a.b,h=t._pushmargin,d=t._pushmarginIds,v=t.minreducedwidth,m=t.minreducedheight;if(a.autoexpand!==!1){for(var b in h)d[b]||delete h[b];var g=e._fullLayout._reservedMargin;for(var _ in g)for(var T in g[_]){var w=g[_][T];o[T]=Math.max(o[T],w)}h.base={l:{val:0,size:l},r:{val:1,size:u},t:{val:1,size:f},b:{val:0,size:c}};for(var k in o){var x=0;for(var M in h)M!=="base"&&e2(h[M][k].size)&&(x=h[M][k].size>x?h[M][k].size:x);var A=Math.max(0,a[k]-x);o[k]=Math.max(0,o[k]-A)}for(var p in h){var S=h[p].l||{},y=h[p].b||{},E=S.val,C=S.size,L=y.val,R=y.size,I=r-o.r-o.l,P=n-o.t-o.b;for(var D in h){if(e2(C)&&h[D].r){var q=h[D].r.val,N=h[D].r.size;if(q>E){var U=(C*q+(N-I)*E)/(q-E),G=(N*(1-E)+(C-I)*(1-q))/(q-E);U+G>l+u&&(l=U,u=G)}}if(e2(R)&&h[D].t){var ee=h[D].t.val,Q=h[D].t.size;if(ee>L){var j=(R*ee+(Q-P)*L)/(ee-L),O=(Q*(1-L)+(R-P)*(1-ee))/(ee-L);j+O>c+f&&(c=j,f=O)}}}}}var Z=Fr.constrain(r-a.l-a.r,aZ,v),K=Fr.constrain(n-a.t-a.b,oZ,m),$=Math.max(0,r-Z),oe=Math.max(0,n-K);if($){var te=(l+u)/$;te>1&&(l/=te,u/=te)}if(oe){var V=(c+f)/oe;V>1&&(c/=V,f/=V)}if(i.l=Math.round(l)+o.l,i.r=Math.round(u)+o.r,i.t=Math.round(f)+o.t,i.b=Math.round(c)+o.b,i.p=Math.round(a.pad),i.w=Math.round(r)-i.l-i.r,i.h=Math.round(n)-i.t-i.b,!t._replotting&&(Tr.didMarginChange(s,i)||zGe(e))){"_redrawFromAutoMarginCount"in t?t._redrawFromAutoMarginCount++:t._redrawFromAutoMarginCount=1;var ne=3*(1+Object.keys(d).length);if(t._redrawFromAutoMarginCount1)return!0}return!1};Tr.graphJson=function(e,t,r,n,i,a){(i&&t&&!e._fullData||i&&!t&&!e._fullLayout)&&Tr.supplyDefaults(e);var o=i?e._fullData:e.data,s=i?e._fullLayout:e.layout,l=(e._transitionData||{})._frames;function u(h,d){if(typeof h=="function")return d?"_function_":null;if(Fr.isPlainObject(h)){var v={},m;return Object.keys(h).sort().forEach(function(T){if(["_","["].indexOf(T.charAt(0))===-1){if(typeof h[T]=="function"){d&&(v[T]="_function");return}if(r==="keepdata"){if(T.substr(T.length-3)==="src")return}else if(r==="keepstream"){if(m=h[T+"src"],typeof m=="string"&&m.indexOf(":")>0&&!Fr.isPlainObject(h.stream))return}else if(r!=="keepall"&&(m=h[T+"src"],typeof m=="string"&&m.indexOf(":")>0))return;v[T]=u(h[T],d)}}),v}var b=Array.isArray(h),g=Fr.isTypedArray(h);if((b||g)&&h.dtype&&h.shape){var _=h.bdata;return u({dtype:h.dtype,shape:h.shape,bdata:Fr.isArrayBuffer(_)?_Ge.encode(_):_},d)}return b?h.map(function(T){return u(T,d)}):g?Fr.simpleMap(h,Fr.identity):Fr.isJSDate(h)?Fr.ms2DateTimeLocal(+h):h}var f={data:(o||[]).map(function(h){var d=u(h);return t&&delete d.fit,d})};if(!t&&(f.layout=u(s),i)){var c=s._size;f.layout.computed={margin:{b:c.b,l:c.l,r:c.r,t:c.t}}}return l&&(f.frames=u(l)),a&&(f.config=u(e._context,!0)),n==="object"?f:JSON.stringify(f)};Tr.modifyFrames=function(e,t){var r,n,i,a=e._transitionData._frames,o=e._transitionData._frameHash;for(r=0;r0&&(e._transitioningWithDuration=!0),e._transitionData._interruptCallbacks.push(function(){n=!0}),r.redraw&&e._transitionData._interruptCallbacks.push(function(){return wi.call("redraw",e)}),e._transitionData._interruptCallbacks.push(function(){e.emit("plotly_transitioninterrupted",[])});var h=0,d=0;function v(){return h++,function(){d++,!n&&d===h&&s(c)}}r.runFn(v),setTimeout(v())})}function s(c){if(e._transitionData)return a(e._transitionData._interruptCallbacks),Promise.resolve().then(function(){if(r.redraw)return wi.call("redraw",e)}).then(function(){e._transitioning=!1,e._transitioningWithDuration=!1,e.emit("plotly_transitioned",[])}).then(c)}function l(){if(e._transitionData)return e._transitioning=!1,i(e._transitionData._interruptCallbacks)}var u=[Tr.previousPromises,l,r.prepareFn,Tr.rehover,Tr.reselect,o],f=Fr.syncOrAsync(u,e);return(!f||!f.then)&&(f=Promise.resolve()),f.then(function(){return e})}Tr.doCalcdata=function(e,t){var r=Ou.list(e),n=e._fullData,i=e._fullLayout,a,o,s,l,u=new Array(n.length),f=(e.calcdata||[]).slice();for(e.calcdata=u,i._numBoxes=0,i._numViolins=0,i._violinScaleGroupStats={},e._hmpixcount=0,e._hmlumcount=0,i._piecolormap={},i._sunburstcolormap={},i._treemapcolormap={},i._iciclecolormap={},i._funnelareacolormap={},s=0;s=0;l--)if(k[l].enabled){a._indexToPoints=k[l]._indexToPoints;break}o&&o.calc&&(w=o.calc(e,a))}(!Array.isArray(w)||!w[0])&&(w=[{x:ZX,y:ZX}]),w[0].t||(w[0].t={}),w[0].trace=a,u[_]=w}}for(KX(r,n,i),s=0;s{"use strict";Yp.xmlns="http://www.w3.org/2000/xmlns/";Yp.svg="http://www.w3.org/2000/svg";Yp.xlink="http://www.w3.org/1999/xlink";Yp.svgAttrs={xmlns:Yp.svg,"xmlns:xlink":Yp.xlink}});var Vo=J((f8t,uZ)=>{"use strict";uZ.exports={FROM_BL:{left:0,center:.5,right:1,bottom:0,middle:.5,top:1},FROM_TL:{left:0,center:.5,right:1,bottom:1,middle:.5,top:0},FROM_BR:{left:1,center:.5,right:0,bottom:0,middle:.5,top:1},LINE_SPACING:1.3,CAP_SHIFT:.7,MID_SHIFT:.35,OPPOSITE_SIDE:{left:"right",right:"left",top:"bottom",bottom:"top"}}});var ca=J(Kf=>{"use strict";var Lo=Nr(),Xv=gt(),UGe=Xv.strTranslate,rL=Gh(),HGe=Vo().LINE_SPACING,jGe=/([^$]*)([$]+[^$]*[$]+)([^$]*)/;Kf.convertToTspans=function(e,t,r){var n=e.text(),i=!e.attr("data-notex")&&t&&t._context.typesetMath&&typeof MathJax<"u"&&n.match(jGe),a=Lo.select(e.node().parentNode);if(a.empty())return;var o=e.attr("class")?e.attr("class").split(" ")[0]:"text";o+="-math",a.selectAll("svg."+o).remove(),a.selectAll("g."+o+"-group").remove(),e.style("display",null).attr({"data-unformatted":n,"data-math":"N"});function s(){a.empty()||(o=e.attr("class")+"-math",a.select("svg."+o).remove()),e.text("").style("white-space","pre");var l=rWe(e.node(),n);l&&e.style("pointer-events","all"),Kf.positionText(e),r&&r.call(e)}return i?(t&&t._promises||[]).push(new Promise(function(l){e.style("display","none");var u=parseInt(e.node().style.fontSize,10),f={fontSize:u};WGe(i[2],f,function(c,h,d){a.selectAll("svg."+o).remove(),a.selectAll("g."+o+"-group").remove();var v=c&&c.select("svg");if(!v||!v.node()){s(),l();return}var m=a.append("g").classed(o+"-group",!0).attr({"pointer-events":"none","data-unformatted":n,"data-math":"Y"});m.node().appendChild(v.node()),h&&h.node()&&v.node().insertBefore(h.node().cloneNode(!0),v.node().firstChild);var b=d.width,g=d.height;v.attr({class:o,height:g,preserveAspectRatio:"xMinYMin meet"}).style({overflow:"visible","pointer-events":"none"});var _=e.node().style.fill||"black",T=v.select("g");T.attr({fill:_,stroke:_});var w=T.node().getBoundingClientRect(),k=w.width,x=w.height;(k>b||x>g)&&(v.style("overflow","hidden"),w=v.node().getBoundingClientRect(),k=w.width,x=w.height);var M=+e.attr("x"),A=+e.attr("y"),p=u||e.node().getBoundingClientRect().height,S=-p/4;if(o[0]==="y")m.attr({transform:"rotate("+[-90,M,A]+")"+UGe(-k/2,S-x/2)});else if(o[0]==="l")A=S-x/2;else if(o[0]==="a"&&o.indexOf("atitle")!==0)M=0,A=S;else{var y=e.attr("text-anchor");M=M-k*(y==="middle"?.5:y==="end"?1:0),A=A+S-x/2}v.attr({x:M,y:A}),r&&r.call(e,m),l(m)})})):s(),e};var VGe=/(<|<|<)/g,YGe=/(>|>|>)/g;function GGe(e){return e.replace(VGe,"\\lt ").replace(YGe,"\\gt ")}var fZ=[["$","$"],["\\(","\\)"]];function WGe(e,t,r){var n=parseInt((MathJax.version||"").split(".")[0]);if(n!==2&&n!==3){Xv.warn("No MathJax version:",MathJax.version);return}var i,a,o,s,l=function(){return a=Xv.extendDeepAll({},MathJax.Hub.config),o=MathJax.Hub.processSectionDelay,MathJax.Hub.processSectionDelay!==void 0&&(MathJax.Hub.processSectionDelay=0),MathJax.Hub.Config({messageStyle:"none",tex2jax:{inlineMath:fZ},displayAlign:"left"})},u=function(){a=Xv.extendDeepAll({},MathJax.config),MathJax.config.tex||(MathJax.config.tex={}),MathJax.config.tex.inlineMath=fZ},f=function(){if(i=MathJax.Hub.config.menuSettings.renderer,i!=="SVG")return MathJax.Hub.setRenderer("SVG")},c=function(){i=MathJax.config.startup.output,i!=="svg"&&(MathJax.config.startup.output="svg")},h=function(){var _="math-output-"+Xv.randstr({},64);s=Lo.select("body").append("div").attr({id:_}).style({visibility:"hidden",position:"absolute","font-size":t.fontSize+"px"}).text(GGe(e));var T=s.node();return n===2?MathJax.Hub.Typeset(T):MathJax.typeset([T])},d=function(){var _=s.select(n===2?".MathJax_SVG":".MathJax"),T=!_.empty()&&s.select("svg").node();if(!T)Xv.log("There was an error in the tex syntax.",e),r();else{var w=T.getBoundingClientRect(),k;n===2?k=Lo.select("body").select("#MathJax_SVG_glyphs"):k=_.select("defs"),r(_,k,w)}s.remove()},v=function(){if(i!=="SVG")return MathJax.Hub.setRenderer(i)},m=function(){i!=="svg"&&(MathJax.config.startup.output=i)},b=function(){return o!==void 0&&(MathJax.Hub.processSectionDelay=o),MathJax.Hub.Config(a)},g=function(){MathJax.config=a};n===2?MathJax.Hub.Queue(l,f,h,d,v,b):n===3&&(u(),c(),MathJax.startup.defaultReady(),MathJax.startup.promise.then(function(){h(),d(),m(),g()}))}var dZ={sup:"font-size:70%",sub:"font-size:70%",s:"text-decoration:line-through",u:"text-decoration:underline",b:"font-weight:bold",i:"font-style:italic",a:"cursor:pointer",span:"",em:"font-style:italic;font-weight:bold"},XGe={sub:"0.3em",sup:"-0.6em"},ZGe={sub:"-0.21em",sup:"0.42em"},cZ="\u200B",hZ=["http:","https:","mailto:","",void 0,":"],pZ=Kf.NEWLINES=/(\r\n?|\n)/g,iL=/(<[^<>]*>)/,aL=/<(\/?)([^ >]*)(\s+(.*))?>/i,JGe=//i;Kf.BR_TAG_ALL=//gi;var gZ=/(^|[\s"'])style\s*=\s*("([^"]*);?"|'([^']*);?')/i,mZ=/(^|[\s"'])href\s*=\s*("([^"]*)"|'([^']*)')/i,yZ=/(^|[\s"'])target\s*=\s*("([^"\s]*)"|'([^'\s]*)')/i,$Ge=/(^|[\s"'])popup\s*=\s*("([\w=,]*)"|'([\w=,]*)')/i;function Gp(e,t){if(!e)return null;var r=e.match(t),n=r&&(r[3]||r[4]);return n&&KT(n)}var KGe=/(^|;)\s*color:/;Kf.plainText=function(e,t){t=t||{};for(var r=t.len!==void 0&&t.len!==-1?t.len:1/0,n=t.allowedTags!==void 0?t.allowedTags:["br"],i="...",a=i.length,o=e.split(iL),s=[],l="",u=0,f=0;fa?s.push(c.substr(0,m-a)+i):s.push(c.substr(0,m));break}l=""}}return s.join("")};var QGe={mu:"\u03BC",amp:"&",lt:"<",gt:">",nbsp:"\xA0",times:"\xD7",plusmn:"\xB1",deg:"\xB0"},eWe=/&(#\d+|#x[\da-fA-F]+|[a-z]+);/g;function KT(e){return e.replace(eWe,function(t,r){var n;return r.charAt(0)==="#"?n=tWe(r.charAt(1)==="x"?parseInt(r.substr(2),16):parseInt(r.substr(1),10)):n=QGe[r],n||t})}Kf.convertEntities=KT;function tWe(e){if(!(e>1114111)){var t=String.fromCodePoint;if(t)return t(e);var r=String.fromCharCode;return e<=65535?r(e):r((e>>10)+55232,e%1024+56320)}}function rWe(e,t){t=t.replace(pZ," ");var r=!1,n=[],i,a=-1;function o(){a++;var x=document.createElementNS(rL.svg,"tspan");Lo.select(x).attr({class:"line",dy:a*HGe+"em"}),e.appendChild(x),i=x;var M=n;if(n=[{node:x}],M.length>1)for(var A=1;A.",t);return}var M=n.pop();x!==M.type&&Xv.log("Start tag <"+M.type+"> doesnt match end tag <"+x+">. Pretending it did match.",t),i=n[n.length-1].node}var f=JGe.test(t);f?o():(i=e,n=[{node:e}]);for(var c=t.split(iL),h=0;h{"use strict";var nWe=Nr(),eA=ls(),r2=dn(),QT=gt(),bZ=qr(),iWe=Pp().isValid;function aWe(e,t,r){var n=t?QT.nestedProperty(e,t).get()||{}:e,i=n[r||"color"];i&&i._inputArray&&(i=i._inputArray);var a=!1;if(QT.isArrayOrTypedArray(i)){for(var o=0;o=0;n--,i++){var a=e[n];r[i]=[1-a[0],a[1]]}return r}function kZ(e,t){t=t||{};for(var r=e.domain,n=e.range,i=n.length,a=new Array(i),o=0;o{"use strict";var CZ=SE(),sWe=CZ.FORMAT_LINK,lWe=CZ.DATE_FORMAT_LINK;function uWe(e,t){return{valType:"string",dflt:"",editType:"none",description:(t?oL:EZ)("hover text",e)+["By default the values are formatted using "+(t?"generic number format":"`"+e+"axis.hoverformat`")+"."].join(" ")}}function oL(e,t){return["Sets the "+e+" formatting rule"+(t?"for `"+t+"` ":""),"using d3 formatting mini-languages","which are very similar to those in Python. For numbers, see: "+sWe+"."].join(" ")}function EZ(e,t){return oL(e,t)+[" And for dates see: "+lWe+".","We add two items to d3's date formatter:","*%h* for half of the year as a decimal number as well as","*%{n}f* for fractional seconds","with n digits. For example, *2016-10-13 09:15:23.456* with tickformat","*%H~%M~%S.%2f* would display *09~15~23.46*"].join(" ")}LZ.exports={axisHoverFormat:uWe,descriptionOnlyNumbers:oL,descriptionWithDates:EZ}});var hl=J((d8t,GZ)=>{"use strict";var sL=xa(),z1=Ho(),YZ=Ss().dash,fL=cn().extendFlat,DZ=ki().templatedArray,RZ=Ga().descriptionWithDates,fWe=oi().ONEDAY,Wh=Eo(),lL=Wh.HOUR_PATTERN,uL=Wh.WEEKDAY_PATTERN,tA={valType:"enumerated",values:["auto","linear","array"],editType:"ticks",impliedEdits:{tick0:void 0,dtick:void 0},description:["Sets the tick mode for this axis.","If *auto*, the number of ticks is set via `nticks`.","If *linear*, the placement of the ticks is determined by","a starting position `tick0` and a tick step `dtick`","(*linear* is the default value if `tick0` and `dtick` are provided).","If *array*, the placement of the ticks is set via `tickvals`","and the tick text is `ticktext`.","(*array* is the default value if `tickvals` is provided)."].join(" ")},cWe=fL({},tA,{values:tA.values.slice().concat(["sync"]),description:[tA.description,"If *sync*, the number of ticks will sync with the overlayed axis","set by `overlaying` property."].join(" ")});function PZ(e){return{valType:"integer",min:0,dflt:e?5:0,editType:"ticks",description:["Specifies the maximum number of ticks for the particular axis.","The actual number of ticks will be chosen automatically to be","less than or equal to `nticks`.","Has an effect only if `tickmode` is set to *auto*."].join(" ")}}var IZ={valType:"any",editType:"ticks",impliedEdits:{tickmode:"linear"},description:["Sets the placement of the first tick on this axis.","Use with `dtick`.","If the axis `type` is *log*, then you must take the log of your starting tick","(e.g. to set the starting tick to 100, set the `tick0` to 2)","except when `dtick`=*L* (see `dtick` for more info).","If the axis `type` is *date*, it should be a date string, like date data.","If the axis `type` is *category*, it should be a number, using the scale where","each category is assigned a serial number from zero in the order it appears."].join(" ")},qZ={valType:"any",editType:"ticks",impliedEdits:{tickmode:"linear"},description:["Sets the step in-between ticks on this axis. Use with `tick0`.","Must be a positive number, or special strings available to *log* and *date* axes.","If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n","is the tick number. For example,","to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1.","To set tick marks at 1, 100, 10000, ... set dtick to 2.","To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433.","*log* has several special values; *L*, where `f` is a positive number,","gives ticks linearly spaced in value (but not position).","For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc.","To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5).","`tick0` is ignored for *D1* and *D2*.","If the axis `type` is *date*, then you must convert the time to milliseconds.","For example, to set the interval between ticks to one day,","set `dtick` to 86400000.0.","*date* also has special values *M* gives ticks spaced by a number of months.","`n` must be a positive integer.","To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*.","To set ticks every 4 years, set `dtick` to *M48*"].join(" ")},FZ={valType:"data_array",editType:"ticks",description:["Sets the values at which ticks on this axis appear.","Only has an effect if `tickmode` is set to *array*.","Used with `ticktext`."].join(" ")},zZ={valType:"enumerated",values:["outside","inside",""],editType:"ticks",description:["Determines whether ticks are drawn or not.","If **, this axis' ticks are not drawn.","If *outside* (*inside*), this axis' are drawn outside (inside)","the axis lines."].join(" ")};function NZ(e){var t={valType:"number",min:0,editType:"ticks",description:"Sets the tick length (in px)."};return e||(t.dflt=5),t}function OZ(e){var t={valType:"number",min:0,editType:"ticks",description:"Sets the tick width (in px)."};return e||(t.dflt=1),t}var BZ={valType:"color",dflt:z1.defaultLine,editType:"ticks",description:"Sets the tick color."},UZ={valType:"color",dflt:z1.lightLine,editType:"ticks",description:"Sets the color of the grid lines."};function HZ(e){var t={valType:"number",min:0,editType:"ticks",description:"Sets the width (in px) of the grid lines."};return e||(t.dflt=1),t}var jZ=fL({},YZ,{editType:"ticks"}),VZ={valType:"boolean",editType:"ticks",description:["Determines whether or not grid lines are drawn.","If *true*, the grid lines are drawn at every tick mark."].join(" ")};GZ.exports={visible:{valType:"boolean",editType:"plot",description:["A single toggle to hide the axis while preserving interaction like dragging.","Default is true when a cheater plot is present on the axis, otherwise","false"].join(" ")},color:{valType:"color",dflt:z1.defaultLine,editType:"ticks",description:["Sets default for all colors associated with this axis","all at once: line, font, tick, and grid colors.","Grid color is lightened by blending this with the plot background","Individual pieces can override this."].join(" ")},title:{text:{valType:"string",editType:"ticks",description:["Sets the title of this axis.","Note that before the existence of `title.text`, the title's","contents used to be defined as the `title` attribute itself.","This behavior has been deprecated."].join(" ")},font:sL({editType:"ticks",description:["Sets this axis' title font.","Note that the title's font used to be customized","by the now deprecated `titlefont` attribute."].join(" ")}),standoff:{valType:"number",min:0,editType:"ticks",description:["Sets the standoff distance (in px) between the axis labels and the title text","The default value is a function of the axis tick labels, the title `font.size`","and the axis `linewidth`.","Note that the axis title position is always constrained within the margins,","so the actual standoff distance is always less than the set or default value.","By setting `standoff` and turning on `automargin`, plotly.js will push the","margins to fit the axis title at given standoff distance."].join(" ")},editType:"ticks"},type:{valType:"enumerated",values:["-","linear","log","date","category","multicategory"],dflt:"-",editType:"calc",_noTemplating:!0,description:["Sets the axis type.","By default, plotly attempts to determined the axis type","by looking into the data of the traces that referenced","the axis in question."].join(" ")},autotypenumbers:{valType:"enumerated",values:["convert types","strict"],dflt:"convert types",editType:"calc",description:["Using *strict* a numeric string in trace data is not converted to a number.","Using *convert types* a numeric string in trace data may be","treated as a number during automatic axis `type` detection.","Defaults to layout.autotypenumbers."].join(" ")},autorange:{valType:"enumerated",values:[!0,!1,"reversed","min reversed","max reversed","min","max"],dflt:!0,editType:"axrange",impliedEdits:{"range[0]":void 0,"range[1]":void 0},description:["Determines whether or not the range of this axis is","computed in relation to the input data.","See `rangemode` for more info.","If `range` is provided and it has a value for both the","lower and upper bound, `autorange` is set to *false*.","Using *min* applies autorange only to set the minimum.","Using *max* applies autorange only to set the maximum.","Using *min reversed* applies autorange only to set the minimum on a reversed axis.","Using *max reversed* applies autorange only to set the maximum on a reversed axis.","Using *reversed* applies autorange on both ends and reverses the axis direction."].join(" ")},autorangeoptions:{minallowed:{valType:"any",editType:"plot",impliedEdits:{"range[0]":void 0,"range[1]":void 0},description:["Use this value exactly as autorange minimum."].join(" ")},maxallowed:{valType:"any",editType:"plot",impliedEdits:{"range[0]":void 0,"range[1]":void 0},description:["Use this value exactly as autorange maximum."].join(" ")},clipmin:{valType:"any",editType:"plot",impliedEdits:{"range[0]":void 0,"range[1]":void 0},description:["Clip autorange minimum if it goes beyond this value.","Has no effect when `autorangeoptions.minallowed` is provided."].join(" ")},clipmax:{valType:"any",editType:"plot",impliedEdits:{"range[0]":void 0,"range[1]":void 0},description:["Clip autorange maximum if it goes beyond this value.","Has no effect when `autorangeoptions.maxallowed` is provided."].join(" ")},include:{valType:"any",arrayOk:!0,editType:"plot",impliedEdits:{"range[0]":void 0,"range[1]":void 0},description:["Ensure this value is included in autorange."].join(" ")},editType:"plot"},rangemode:{valType:"enumerated",values:["normal","tozero","nonnegative"],dflt:"normal",editType:"plot",description:["If *normal*, the range is computed in relation to the extrema","of the input data.","If *tozero*`, the range extends to 0,","regardless of the input data","If *nonnegative*, the range is non-negative,","regardless of the input data.","Applies only to linear axes."].join(" ")},range:{valType:"info_array",items:[{valType:"any",editType:"axrange",impliedEdits:{"^autorange":!1},anim:!0},{valType:"any",editType:"axrange",impliedEdits:{"^autorange":!1},anim:!0}],editType:"axrange",impliedEdits:{autorange:!1},anim:!0,description:["Sets the range of this axis.","If the axis `type` is *log*, then you must take the log of your","desired range (e.g. to set the range from 1 to 100,","set the range from 0 to 2).","If the axis `type` is *date*, it should be date strings,","like date data, though Date objects and unix milliseconds","will be accepted and converted to strings.","If the axis `type` is *category*, it should be numbers,","using the scale where each category is assigned a serial","number from zero in the order it appears.","Leaving either or both elements `null` impacts the default `autorange`."].join(" ")},minallowed:{valType:"any",editType:"plot",impliedEdits:{"^autorange":!1},description:["Determines the minimum range of this axis."].join(" ")},maxallowed:{valType:"any",editType:"plot",impliedEdits:{"^autorange":!1},description:["Determines the maximum range of this axis."].join(" ")},fixedrange:{valType:"boolean",dflt:!1,editType:"calc",description:["Determines whether or not this axis is zoom-able.","If true, then zoom is disabled."].join(" ")},insiderange:{valType:"info_array",items:[{valType:"any",editType:"plot"},{valType:"any",editType:"plot"}],editType:"plot",description:["Could be used to set the desired inside range of this axis","(excluding the labels) when `ticklabelposition` of","the anchored axis has *inside*.","Not implemented for axes with `type` *log*.","This would be ignored when `range` is provided."].join(" ")},scaleanchor:{valType:"enumerated",values:[Wh.idRegex.x.toString(),Wh.idRegex.y.toString(),!1],editType:"plot",description:["If set to another axis id (e.g. `x2`, `y`), the range of this axis","changes together with the range of the corresponding axis","such that the scale of pixels per unit is in a constant ratio.","Both axes are still zoomable, but when you zoom one, the other will","zoom the same amount, keeping a fixed midpoint.","`constrain` and `constraintoward` determine how we enforce the constraint.","You can chain these, ie `yaxis: {scaleanchor: *x*}, xaxis2: {scaleanchor: *y*}`","but you can only link axes of the same `type`.","The linked axis can have the opposite letter (to constrain the aspect ratio)","or the same letter (to match scales across subplots).","Loops (`yaxis: {scaleanchor: *x*}, xaxis: {scaleanchor: *y*}` or longer) are redundant","and the last constraint encountered will be ignored to avoid possible","inconsistent constraints via `scaleratio`.","Note that setting axes simultaneously in both a `scaleanchor` and a `matches` constraint","is currently forbidden.","Setting `false` allows to remove a default constraint (occasionally,","you may need to prevent a default `scaleanchor` constraint from",'being applied, eg. when having an image trace `yaxis: {scaleanchor: "x"}`',"is set automatically in order for pixels to be rendered as squares,","setting `yaxis: {scaleanchor: false}` allows to remove the constraint)."].join(" ")},scaleratio:{valType:"number",min:0,dflt:1,editType:"plot",description:["If this axis is linked to another by `scaleanchor`, this determines the pixel","to unit scale ratio. For example, if this value is 10, then every unit on","this axis spans 10 times the number of pixels as a unit on the linked axis.","Use this for example to create an elevation profile where the vertical scale","is exaggerated a fixed amount with respect to the horizontal."].join(" ")},constrain:{valType:"enumerated",values:["range","domain"],editType:"plot",description:["If this axis needs to be compressed (either due to its own `scaleanchor` and","`scaleratio` or those of the other axis), determines how that happens:","by increasing the *range*, or by decreasing the *domain*.","Default is *domain* for axes containing image traces, *range* otherwise."].join(" ")},constraintoward:{valType:"enumerated",values:["left","center","right","top","middle","bottom"],editType:"plot",description:["If this axis needs to be compressed (either due to its own `scaleanchor` and","`scaleratio` or those of the other axis), determines which direction we push","the originally specified plot area. Options are *left*, *center* (default),","and *right* for x axes, and *top*, *middle* (default), and *bottom* for y axes."].join(" ")},matches:{valType:"enumerated",values:[Wh.idRegex.x.toString(),Wh.idRegex.y.toString()],editType:"calc",description:["If set to another axis id (e.g. `x2`, `y`), the range of this axis","will match the range of the corresponding axis in data-coordinates space.","Moreover, matching axes share auto-range values, category lists and","histogram auto-bins.","Note that setting axes simultaneously in both a `scaleanchor` and a `matches` constraint","is currently forbidden.","Moreover, note that matching axes must have the same `type`."].join(" ")},rangebreaks:DZ("rangebreak",{enabled:{valType:"boolean",dflt:!0,editType:"calc",description:["Determines whether this axis rangebreak is enabled or disabled.","Please note that `rangebreaks` only work for *date* axis type."].join(" ")},bounds:{valType:"info_array",items:[{valType:"any",editType:"calc"},{valType:"any",editType:"calc"}],editType:"calc",description:["Sets the lower and upper bounds of this axis rangebreak.","Can be used with `pattern`."].join(" ")},pattern:{valType:"enumerated",values:[uL,lL,""],editType:"calc",description:["Determines a pattern on the time line that generates breaks.","If *"+uL+"* - days of the week in English e.g. 'Sunday' or `sun`","(matching is case-insensitive and considers only the first three characters),","as well as Sunday-based integers between 0 and 6.","If *"+lL+"* - hour (24-hour clock) as decimal numbers between 0 and 24.","for more info.","Examples:","- { pattern: '"+uL+"', bounds: [6, 1] }"," or simply { bounds: ['sat', 'mon'] }"," breaks from Saturday to Monday (i.e. skips the weekends).","- { pattern: '"+lL+"', bounds: [17, 8] }"," breaks from 5pm to 8am (i.e. skips non-work hours)."].join(" ")},values:{valType:"info_array",freeLength:!0,editType:"calc",items:{valType:"any",editType:"calc"},description:["Sets the coordinate values corresponding to the rangebreaks.","An alternative to `bounds`.","Use `dvalue` to set the size of the values along the axis."].join(" ")},dvalue:{valType:"number",editType:"calc",min:0,dflt:fWe,description:["Sets the size of each `values` item.","The default is one day in milliseconds."].join(" ")},editType:"calc"}),tickmode:cWe,nticks:PZ(),tick0:IZ,dtick:qZ,ticklabelstep:{valType:"integer",min:1,dflt:1,editType:"ticks",description:["Sets the spacing between tick labels as compared to the spacing between ticks.","A value of 1 (default) means each tick gets a label.","A value of 2 means shows every 2nd label.","A larger value n means only every nth tick is labeled.","`tick0` determines which labels are shown.","Not implemented for axes with `type` *log* or *multicategory*, or when `tickmode` is *array*."].join(" ")},tickvals:FZ,ticktext:{valType:"data_array",editType:"ticks",description:["Sets the text displayed at the ticks position via `tickvals`.","Only has an effect if `tickmode` is set to *array*.","Used with `tickvals`."].join(" ")},ticks:zZ,tickson:{valType:"enumerated",values:["labels","boundaries"],dflt:"labels",editType:"ticks",description:["Determines where ticks and grid lines are drawn with respect to their","corresponding tick labels.","Only has an effect for axes of `type` *category* or *multicategory*.","When set to *boundaries*, ticks and grid lines are drawn half a category","to the left/bottom of labels."].join(" ")},ticklabelmode:{valType:"enumerated",values:["instant","period"],dflt:"instant",editType:"ticks",description:["Determines where tick labels are drawn with respect to their","corresponding ticks and grid lines.","Only has an effect for axes of `type` *date*","When set to *period*, tick labels are drawn in the middle of the period","between ticks."].join(" ")},ticklabelposition:{valType:"enumerated",values:["outside","inside","outside top","inside top","outside left","inside left","outside right","inside right","outside bottom","inside bottom"],dflt:"outside",editType:"calc",description:["Determines where tick labels are drawn with respect to the axis","Please note that","top or bottom has no effect on x axes or when `ticklabelmode` is set to *period*.","Similarly","left or right has no effect on y axes or when `ticklabelmode` is set to *period*.","Has no effect on *multicategory* axes or when `tickson` is set to *boundaries*.","When used on axes linked by `matches` or `scaleanchor`,","no extra padding for inside labels would be added by autorange,","so that the scales could match."].join(" ")},ticklabeloverflow:{valType:"enumerated",values:["allow","hide past div","hide past domain"],editType:"calc",description:["Determines how we handle tick labels that would overflow either the graph div or the domain of the axis.","The default value for inside tick labels is *hide past domain*.","Otherwise on *category* and *multicategory* axes the default is *allow*.","In other cases the default is *hide past div*."].join(" ")},ticklabelshift:{valType:"integer",dflt:0,editType:"ticks",description:["Shifts the tick labels by the specified number of pixels in parallel to the axis.","Positive values move the labels in the positive direction of the axis."].join(" ")},ticklabelstandoff:{valType:"integer",dflt:0,editType:"ticks",description:["Sets the standoff distance (in px) between the axis tick labels and their default position.","A positive `ticklabelstandoff` moves the labels farther away from the plot area","if `ticklabelposition` is *outside*, and deeper into the plot area if","`ticklabelposition` is *inside*. A negative `ticklabelstandoff` works in the opposite","direction, moving outside ticks towards the plot area and inside ticks towards","the outside. If the negative value is large enough, inside ticks can even end up","outside and vice versa."].join(" ")},ticklabelindex:{valType:"integer",arrayOk:!0,editType:"calc",description:["Only for axes with `type` *date* or *linear*.","Instead of drawing the major tick label, draw the label for the minor tick","that is n positions away from the major tick. E.g. to always draw the label for the","minor tick before each major tick, choose `ticklabelindex` -1. This is useful for date","axes with `ticklabelmode` *period* if you want to label the period that ends with each","major tick instead of the period that begins there."].join(" ")},mirror:{valType:"enumerated",values:[!0,"ticks",!1,"all","allticks"],dflt:!1,editType:"ticks+layoutstyle",description:["Determines if the axis lines or/and ticks are mirrored to","the opposite side of the plotting area.","If *true*, the axis lines are mirrored.","If *ticks*, the axis lines and ticks are mirrored.","If *false*, mirroring is disable.","If *all*, axis lines are mirrored on all shared-axes subplots.","If *allticks*, axis lines and ticks are mirrored","on all shared-axes subplots."].join(" ")},ticklen:NZ(),tickwidth:OZ(),tickcolor:BZ,showticklabels:{valType:"boolean",dflt:!0,editType:"ticks",description:"Determines whether or not the tick labels are drawn."},labelalias:{valType:"any",dflt:!1,editType:"ticks",description:["Replacement text for specific tick or hover labels.","For example using {US: 'USA', CA: 'Canada'} changes US to USA","and CA to Canada. The labels we would have shown must match","the keys exactly, after adding any tickprefix or ticksuffix.","For negative numbers the minus sign symbol used (U+2212) is wider than the regular ascii dash.","That means you need to use \u22121 instead of -1.","labelalias can be used with any axis type, and both keys (if needed)","and values (if desired) can include html-like tags or MathJax."].join(" ")},automargin:{valType:"flaglist",flags:["height","width","left","right","top","bottom"],extras:[!0,!1],dflt:!1,editType:"ticks",description:["Determines whether long tick labels automatically grow the figure","margins."].join(" ")},showspikes:{valType:"boolean",dflt:!1,editType:"modebar",description:["Determines whether or not spikes (aka droplines) are drawn for this axis.","Note: This only takes affect when hovermode = closest"].join(" ")},spikecolor:{valType:"color",dflt:null,editType:"none",description:"Sets the spike color. If undefined, will use the series color"},spikethickness:{valType:"number",dflt:3,editType:"none",description:"Sets the width (in px) of the zero line."},spikedash:fL({},YZ,{dflt:"dash",editType:"none"}),spikemode:{valType:"flaglist",flags:["toaxis","across","marker"],dflt:"toaxis",editType:"none",description:["Determines the drawing mode for the spike line","If *toaxis*, the line is drawn from the data point to the axis the ","series is plotted on.","If *across*, the line is drawn across the entire plot area, and","supercedes *toaxis*.","If *marker*, then a marker dot is drawn on the axis the series is","plotted on"].join(" ")},spikesnap:{valType:"enumerated",values:["data","cursor","hovered data"],dflt:"hovered data",editType:"none",description:"Determines whether spikelines are stuck to the cursor or to the closest datapoints."},tickfont:sL({editType:"ticks",description:"Sets the tick font."}),tickangle:{valType:"angle",dflt:"auto",editType:"ticks",description:["Sets the angle of the tick labels with respect to the horizontal.","For example, a `tickangle` of -90 draws the tick labels","vertically."].join(" ")},autotickangles:{valType:"info_array",freeLength:!0,items:{valType:"angle"},dflt:[0,30,90],editType:"ticks",description:["When `tickangle` is set to *auto*, it will be set to the first","angle in this array that is large enough to prevent label","overlap."].join(" ")},tickprefix:{valType:"string",dflt:"",editType:"ticks",description:"Sets a tick label prefix."},showtickprefix:{valType:"enumerated",values:["all","first","last","none"],dflt:"all",editType:"ticks",description:["If *all*, all tick labels are displayed with a prefix.","If *first*, only the first tick is displayed with a prefix.","If *last*, only the last tick is displayed with a suffix.","If *none*, tick prefixes are hidden."].join(" ")},ticksuffix:{valType:"string",dflt:"",editType:"ticks",description:"Sets a tick label suffix."},showticksuffix:{valType:"enumerated",values:["all","first","last","none"],dflt:"all",editType:"ticks",description:"Same as `showtickprefix` but for tick suffixes."},showexponent:{valType:"enumerated",values:["all","first","last","none"],dflt:"all",editType:"ticks",description:["If *all*, all exponents are shown besides their significands.","If *first*, only the exponent of the first tick is shown.","If *last*, only the exponent of the last tick is shown.","If *none*, no exponents appear."].join(" ")},exponentformat:{valType:"enumerated",values:["none","e","E","power","SI","B"],dflt:"B",editType:"ticks",description:["Determines a formatting rule for the tick exponents.","For example, consider the number 1,000,000,000.","If *none*, it appears as 1,000,000,000.","If *e*, 1e+9.","If *E*, 1E+9.","If *power*, 1x10^9 (with 9 in a super script).","If *SI*, 1G.","If *B*, 1B."].join(" ")},minexponent:{valType:"number",dflt:3,min:0,editType:"ticks",description:["Hide SI prefix for 10^n if |n| is below this number.","This only has an effect when `tickformat` is *SI* or *B*."].join(" ")},separatethousands:{valType:"boolean",dflt:!1,editType:"ticks",description:['If "true", even 4-digit integers are separated'].join(" ")},tickformat:{valType:"string",dflt:"",editType:"ticks",description:RZ("tick label")},tickformatstops:DZ("tickformatstop",{enabled:{valType:"boolean",dflt:!0,editType:"ticks",description:["Determines whether or not this stop is used.","If `false`, this stop is ignored even within its `dtickrange`."].join(" ")},dtickrange:{valType:"info_array",items:[{valType:"any",editType:"ticks"},{valType:"any",editType:"ticks"}],editType:"ticks",description:["range [*min*, *max*], where *min*, *max* - dtick values","which describe some zoom level, it is possible to omit *min*","or *max* value by passing *null*"].join(" ")},value:{valType:"string",dflt:"",editType:"ticks",description:["string - dtickformat for described zoom level, the same as *tickformat*"].join(" ")},editType:"ticks"}),hoverformat:{valType:"string",dflt:"",editType:"none",description:RZ("hover text")},showline:{valType:"boolean",dflt:!1,editType:"ticks+layoutstyle",description:["Determines whether or not a line bounding this axis is drawn."].join(" ")},linecolor:{valType:"color",dflt:z1.defaultLine,editType:"layoutstyle",description:"Sets the axis line color."},linewidth:{valType:"number",min:0,dflt:1,editType:"ticks+layoutstyle",description:"Sets the width (in px) of the axis line."},showgrid:VZ,gridcolor:UZ,gridwidth:HZ(),griddash:jZ,zeroline:{valType:"boolean",editType:"ticks",description:["Determines whether or not a line is drawn at along the 0 value","of this axis.","If *true*, the zero line is drawn on top of the grid lines."].join(" ")},zerolinecolor:{valType:"color",dflt:z1.defaultLine,editType:"ticks",description:"Sets the line color of the zero line."},zerolinewidth:{valType:"number",dflt:1,editType:"ticks",description:"Sets the width (in px) of the zero line."},showdividers:{valType:"boolean",dflt:!0,editType:"ticks",description:["Determines whether or not a dividers are drawn","between the category levels of this axis.","Only has an effect on *multicategory* axes."].join(" ")},dividercolor:{valType:"color",dflt:z1.defaultLine,editType:"ticks",description:["Sets the color of the dividers","Only has an effect on *multicategory* axes."].join(" ")},dividerwidth:{valType:"number",dflt:1,editType:"ticks",description:["Sets the width (in px) of the dividers","Only has an effect on *multicategory* axes."].join(" ")},anchor:{valType:"enumerated",values:["free",Wh.idRegex.x.toString(),Wh.idRegex.y.toString()],editType:"plot",description:["If set to an opposite-letter axis id (e.g. `x2`, `y`), this axis is bound to","the corresponding opposite-letter axis.","If set to *free*, this axis' position is determined by `position`."].join(" ")},side:{valType:"enumerated",values:["top","bottom","left","right"],editType:"plot",description:["Determines whether a x (y) axis is positioned","at the *bottom* (*left*) or *top* (*right*)","of the plotting area."].join(" ")},overlaying:{valType:"enumerated",values:["free",Wh.idRegex.x.toString(),Wh.idRegex.y.toString()],editType:"plot",description:["If set a same-letter axis id, this axis is overlaid on top of","the corresponding same-letter axis, with traces and axes visible for both","axes.","If *false*, this axis does not overlay any same-letter axes.","In this case, for axes with overlapping domains only the highest-numbered","axis will be visible."].join(" ")},minor:{tickmode:tA,nticks:PZ("minor"),tick0:IZ,dtick:qZ,tickvals:FZ,ticks:zZ,ticklen:NZ("minor"),tickwidth:OZ("minor"),tickcolor:BZ,gridcolor:UZ,gridwidth:HZ("minor"),griddash:jZ,showgrid:VZ,editType:"ticks"},layer:{valType:"enumerated",values:["above traces","below traces"],dflt:"above traces",editType:"plot",description:["Sets the layer on which this axis is displayed.","If *above traces*, this axis is displayed above all the subplot's traces","If *below traces*, this axis is displayed below all the subplot's traces,","but above the grid lines.","Useful when used together with scatter-like traces with `cliponaxis`","set to *false* to show markers and/or text nodes above this axis."].join(" ")},domain:{valType:"info_array",items:[{valType:"number",min:0,max:1,editType:"plot"},{valType:"number",min:0,max:1,editType:"plot"}],dflt:[0,1],editType:"plot",description:["Sets the domain of this axis (in plot fraction)."].join(" ")},position:{valType:"number",min:0,max:1,dflt:0,editType:"plot",description:["Sets the position of this axis in the plotting space","(in normalized coordinates).","Only has an effect if `anchor` is set to *free*."].join(" ")},autoshift:{valType:"boolean",dflt:!1,editType:"plot",description:["Automatically reposition the axis to avoid","overlap with other axes with the same `overlaying` value.","This repositioning will account for any `shift` amount applied to other","axes on the same side with `autoshift` is set to true.","Only has an effect if `anchor` is set to *free*."].join(" ")},shift:{valType:"number",editType:"plot",description:["Moves the axis a given number of pixels from where it would have been otherwise.","Accepts both positive and negative values, which will shift the axis either right","or left, respectively.","If `autoshift` is set to true, then this defaults to a padding of -3 if `side` is set to *left*.","and defaults to +3 if `side` is set to *right*. Defaults to 0 if `autoshift` is set to false.","Only has an effect if `anchor` is set to *free*."].join(" ")},categoryorder:{valType:"enumerated",values:["trace","category ascending","category descending","array","total ascending","total descending","min ascending","min descending","max ascending","max descending","sum ascending","sum descending","mean ascending","mean descending","geometric mean ascending","geometric mean descending","median ascending","median descending"],dflt:"trace",editType:"calc",description:["Specifies the ordering logic for the case of categorical variables.","By default, plotly uses *trace*, which specifies the order that is present in the data supplied.","Set `categoryorder` to *category ascending* or *category descending* if order should be determined by","the alphanumerical order of the category names.","Set `categoryorder` to *array* to derive the ordering from the attribute `categoryarray`. If a category","is not found in the `categoryarray` array, the sorting behavior for that attribute will be identical to","the *trace* mode. The unspecified categories will follow the categories in `categoryarray`.","Set `categoryorder` to *total ascending* or *total descending* if order should be determined by the","numerical order of the values.","Similarly, the order can be determined by the min, max, sum, mean, geometric mean or median of all the values."].join(" ")},categoryarray:{valType:"data_array",editType:"calc",description:["Sets the order in which categories on this axis appear.","Only has an effect if `categoryorder` is set to *array*.","Used with `categoryorder`."].join(" ")},uirevision:{valType:"any",editType:"none",description:["Controls persistence of user-driven changes in axis `range`,","`autorange`, and `title` if in `editable: true` configuration.","Defaults to `layout.uirevision`."].join(" ")},editType:"calc",_deprecated:{autotick:{valType:"boolean",editType:"ticks",description:["Obsolete.","Set `tickmode` to *auto* for old `autotick` *true* behavior.","Set `tickmode` to *linear* for `autotick` *false*."].join(" ")},title:{valType:"string",editType:"ticks",description:["Value of `title` is no longer a simple *string* but a set of sub-attributes.","To set the axis' title, please use `title.text` now."].join(" ")},titlefont:sL({editType:"ticks",description:["Former `titlefont` is now the sub-attribute `font` of `title`.","To customize title font properties, please use `title.font` now."].join(" ")})}}});var rA=J((p8t,XZ)=>{"use strict";var wa=hl(),cL=xa(),WZ=cn().extendFlat,hWe=La().overrideAll;XZ.exports=hWe({orientation:{valType:"enumerated",values:["h","v"],dflt:"v",description:"Sets the orientation of the colorbar."},thicknessmode:{valType:"enumerated",values:["fraction","pixels"],dflt:"pixels",description:["Determines whether this color bar's thickness","(i.e. the measure in the constant color direction)","is set in units of plot *fraction* or in *pixels*.","Use `thickness` to set the value."].join(" ")},thickness:{valType:"number",min:0,dflt:30,description:["Sets the thickness of the color bar","This measure excludes the size of the padding, ticks and labels."].join(" ")},lenmode:{valType:"enumerated",values:["fraction","pixels"],dflt:"fraction",description:["Determines whether this color bar's length","(i.e. the measure in the color variation direction)","is set in units of plot *fraction* or in *pixels.","Use `len` to set the value."].join(" ")},len:{valType:"number",min:0,dflt:1,description:["Sets the length of the color bar","This measure excludes the padding of both ends.","That is, the color bar length is this length minus the","padding on both ends."].join(" ")},x:{valType:"number",description:["Sets the x position with respect to `xref` of the color bar (in plot fraction).","When `xref` is *paper*, defaults to 1.02 when `orientation` is *v* and","0.5 when `orientation` is *h*.","When `xref` is *container*, defaults to *1* when `orientation` is *v* and","0.5 when `orientation` is *h*.","Must be between *0* and *1* if `xref` is *container*","and between *-2* and *3* if `xref` is *paper*."].join(" ")},xref:{valType:"enumerated",dflt:"paper",values:["container","paper"],editType:"layoutstyle",description:["Sets the container `x` refers to.","*container* spans the entire `width` of the plot.","*paper* refers to the width of the plotting area only."].join(" ")},xanchor:{valType:"enumerated",values:["left","center","right"],description:["Sets this color bar's horizontal position anchor.","This anchor binds the `x` position to the *left*, *center*","or *right* of the color bar.","Defaults to *left* when `orientation` is *v* and","*center* when `orientation` is *h*."].join(" ")},xpad:{valType:"number",min:0,dflt:10,description:"Sets the amount of padding (in px) along the x direction."},y:{valType:"number",description:["Sets the y position with respect to `yref` of the color bar (in plot fraction).","When `yref` is *paper*, defaults to 0.5 when `orientation` is *v* and","1.02 when `orientation` is *h*.","When `yref` is *container*, defaults to 0.5 when `orientation` is *v* and","1 when `orientation` is *h*.","Must be between *0* and *1* if `yref` is *container*","and between *-2* and *3* if `yref` is *paper*."].join(" ")},yref:{valType:"enumerated",dflt:"paper",values:["container","paper"],editType:"layoutstyle",description:["Sets the container `y` refers to.","*container* spans the entire `height` of the plot.","*paper* refers to the height of the plotting area only."].join(" ")},yanchor:{valType:"enumerated",values:["top","middle","bottom"],description:["Sets this color bar's vertical position anchor","This anchor binds the `y` position to the *top*, *middle*","or *bottom* of the color bar.","Defaults to *middle* when `orientation` is *v* and","*bottom* when `orientation` is *h*."].join(" ")},ypad:{valType:"number",min:0,dflt:10,description:"Sets the amount of padding (in px) along the y direction."},outlinecolor:wa.linecolor,outlinewidth:wa.linewidth,bordercolor:wa.linecolor,borderwidth:{valType:"number",min:0,dflt:0,description:["Sets the width (in px) or the border enclosing this color bar."].join(" ")},bgcolor:{valType:"color",dflt:"rgba(0,0,0,0)",description:"Sets the color of padded area."},tickmode:wa.minor.tickmode,nticks:wa.nticks,tick0:wa.tick0,dtick:wa.dtick,tickvals:wa.tickvals,ticktext:wa.ticktext,ticks:WZ({},wa.ticks,{dflt:""}),ticklabeloverflow:WZ({},wa.ticklabeloverflow,{description:["Determines how we handle tick labels that would overflow either the graph div or the domain of the axis.","The default value for inside tick labels is *hide past domain*.","In other cases the default is *hide past div*."].join(" ")}),ticklabelposition:{valType:"enumerated",values:["outside","inside","outside top","inside top","outside left","inside left","outside right","inside right","outside bottom","inside bottom"],dflt:"outside",description:["Determines where tick labels are drawn relative to the ticks.","Left and right options are used when `orientation` is *h*,","top and bottom when `orientation` is *v*."].join(" ")},ticklen:wa.ticklen,tickwidth:wa.tickwidth,tickcolor:wa.tickcolor,ticklabelstep:wa.ticklabelstep,showticklabels:wa.showticklabels,labelalias:wa.labelalias,tickfont:cL({description:"Sets the color bar's tick label font"}),tickangle:wa.tickangle,tickformat:wa.tickformat,tickformatstops:wa.tickformatstops,tickprefix:wa.tickprefix,showtickprefix:wa.showtickprefix,ticksuffix:wa.ticksuffix,showticksuffix:wa.showticksuffix,separatethousands:wa.separatethousands,exponentformat:wa.exponentformat,minexponent:wa.minexponent,showexponent:wa.showexponent,title:{text:{valType:"string",description:["Sets the title of the color bar.","Note that before the existence of `title.text`, the title's","contents used to be defined as the `title` attribute itself.","This behavior has been deprecated."].join(" ")},font:cL({description:["Sets this color bar's title font.","Note that the title's font used to be set","by the now deprecated `titlefont` attribute."].join(" ")}),side:{valType:"enumerated",values:["right","top","bottom"],description:["Determines the location of color bar's title","with respect to the color bar.","Defaults to *top* when `orientation` if *v* and ","defaults to *right* when `orientation` if *h*.","Note that the title's location used to be set","by the now deprecated `titleside` attribute."].join(" ")}},_deprecated:{title:{valType:"string",description:["Deprecated in favor of color bar's `title.text`.","Note that value of color bar's `title` is no longer a simple","*string* but a set of sub-attributes."].join(" ")},titlefont:cL({description:"Deprecated in favor of color bar's `title.font`."}),titleside:{valType:"enumerated",values:["right","top","bottom"],dflt:"top",description:"Deprecated in favor of color bar's `title.side`."}}},"colorbars","from-root")});var Da=J((g8t,JZ)=>{"use strict";var vWe=rA(),dWe=_1().counter,pWe=Vb(),ZZ=Pp().scales,gWe=pWe(ZZ);function n2(e){return"`"+e+"`"}JZ.exports=function(t,r){t=t||"",r=r||{};var n=r.cLetter||"c",i="onlyIfNumerical"in r?r.onlyIfNumerical:Boolean(t),a="noScale"in r?r.noScale:t==="marker.line",o="showScaleDflt"in r?r.showScaleDflt:n==="z",s=typeof r.colorscaleDflt=="string"?ZZ[r.colorscaleDflt]:null,l=r.editTypeOverride||"",u=t?t+".":"",f,c;"colorAttr"in r?(f=r.colorAttr,c=r.colorAttr):(f={z:"z",c:"color"}[n],c="in "+n2(u+f));var h=i?" Has an effect only if "+c+" is set to a numerical array.":"",d=n+"auto",v=n+"min",m=n+"max",b=n+"mid",g=n2(u+d),_=n2(u+v),T=n2(u+m),w=_+" and "+T,k={};k[v]=k[m]=void 0;var x={};x[d]=!1;var M={};return f==="color"&&(M.color={valType:"color",arrayOk:!0,editType:l||"style",description:["Sets the",t,"color.","It accepts either a specific color","or an array of numbers that are mapped to the colorscale","relative to the max and min values of the array or relative to",w,"if set."].join(" ")},r.anim&&(M.color.anim=!0)),M[d]={valType:"boolean",dflt:!0,editType:"calc",impliedEdits:k,description:["Determines whether or not the color domain is computed","with respect to the input data (here "+c+") or the bounds set in",w+h,"Defaults to `false` when",w,"are set by the user."].join(" ")},M[v]={valType:"number",dflt:null,editType:l||"plot",impliedEdits:x,description:["Sets the lower bound of the color domain."+h,"Value should have the same units as",c,"and if set,",T,"must be set as well."].join(" ")},M[m]={valType:"number",dflt:null,editType:l||"plot",impliedEdits:x,description:["Sets the upper bound of the color domain."+h,"Value should have the same units as",c,"and if set,",_,"must be set as well."].join(" ")},M[b]={valType:"number",dflt:null,editType:"calc",impliedEdits:k,description:["Sets the mid-point of the color domain by scaling",_,"and/or",T,"to be equidistant to this point."+h,"Value should have the same units as",c+".","Has no effect when",g,"is `false`."].join(" ")},M.colorscale={valType:"colorscale",editType:"calc",dflt:s,impliedEdits:{autocolorscale:!1},description:["Sets the colorscale."+h,"The colorscale must be an array containing","arrays mapping a normalized value to an","rgb, rgba, hex, hsl, hsv, or named color string.","At minimum, a mapping for the lowest (0) and highest (1)","values are required. For example,","`[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`.","To control the bounds of the colorscale in color space,","use",w+".","Alternatively, `colorscale` may be a palette name string","of the following list: "+gWe+"."].join(" ")},M.autocolorscale={valType:"boolean",dflt:r.autoColorDflt!==!1,editType:"calc",impliedEdits:{colorscale:void 0},description:["Determines whether the colorscale is a default palette (`autocolorscale: true`)","or the palette determined by",n2(u+"colorscale")+"."+h,"In case `colorscale` is unspecified or `autocolorscale` is true, the default","palette will be chosen according to whether numbers in the `color` array are","all positive, all negative or mixed."].join(" ")},M.reversescale={valType:"boolean",dflt:!1,editType:"plot",description:["Reverses the color mapping if true."+h,"If true,",_,"will correspond to the last color","in the array and",T,"will correspond to the first color."].join(" ")},a||(M.showscale={valType:"boolean",dflt:o,editType:"calc",description:["Determines whether or not a colorbar is displayed for this trace."+h].join(" ")},M.colorbar=vWe),r.noColorAxis||(M.coloraxis={valType:"subplotid",regex:dWe("coloraxis"),dflt:null,editType:"calc",description:["Sets a reference to a shared color axis.","References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc.","Settings for these shared color axes are set in the layout, under","`layout.coloraxis`, `layout.coloraxis2`, etc.","Note that multiple color scales can be linked to the same color axis."].join(" ")}),M}});var dL=J((m8t,$Z)=>{"use strict";var mWe=cn().extendFlat,yWe=Da(),hL=Pp().scales,vL="Note that `autocolorscale` must be true for this attribute to work.";$Z.exports={editType:"calc",colorscale:{editType:"calc",sequential:{valType:"colorscale",dflt:hL.Reds,editType:"calc",description:["Sets the default sequential colorscale for positive values.",vL].join(" ")},sequentialminus:{valType:"colorscale",dflt:hL.Blues,editType:"calc",description:["Sets the default sequential colorscale for negative values.",vL].join(" ")},diverging:{valType:"colorscale",dflt:hL.RdBu,editType:"calc",description:["Sets the default diverging colorscale.",vL].join(" ")}},coloraxis:mWe({_isSubplotObj:!0,editType:"calc",description:[""].join(" ")},yWe("",{colorAttr:"corresponding trace color array(s)",noColorAxis:!0,showScaleDflt:!0}))}});var pL=J((y8t,KZ)=>{"use strict";var xWe=gt();KZ.exports=function(t){return xWe.isPlainObject(t.colorbar)}});var yL=J(mL=>{"use strict";var gL=dn(),QZ=gt(),eJ=oi(),bWe=eJ.ONEDAY,wWe=eJ.ONEWEEK;mL.dtick=function(e,t){var r=t==="log",n=t==="date",i=t==="category",a=n?bWe:1;if(!e)return a;if(gL(e))return e=Number(e),e<=0?a:i?Math.max(1,Math.round(e)):n?Math.max(.1,e):e;if(typeof e!="string"||!(n||r))return a;var o=e.charAt(0),s=e.substr(1);return s=gL(s)?Number(s):0,s<=0||!(n&&o==="M"&&s===Math.round(s)||r&&o==="L"||r&&o==="D"&&(s===1||s===2))?a:e};mL.tick0=function(e,t,r,n){if(t==="date")return QZ.cleanDate(e,QZ.dateTick0(r,n%wWe===0?1:0));if(!(n==="D1"||n==="D2"))return gL(e)?Number(e):0}});var Wp=J((b8t,rJ)=>{"use strict";var tJ=yL(),_We=gt().isArrayOrTypedArray,TWe=fl().isTypedArraySpec,AWe=fl().decodeTypedArraySpec;rJ.exports=function(t,r,n,i,a){a||(a={});var o=a.isMinor,s=o?t.minor||{}:t,l=o?r.minor:r,u=o?"minor.":"";function f(_){var T=s[_];return TWe(T)&&(T=AWe(T)),T!==void 0?T:(l._template||{})[_]}var c=f("tick0"),h=f("dtick"),d=f("tickvals"),v=_We(d)?"array":h?"linear":"auto",m=n(u+"tickmode",v);if(m==="auto"||m==="sync")n(u+"nticks");else if(m==="linear"){var b=l.dtick=tJ.dtick(h,i);l.tick0=tJ.tick0(c,i,r.calendar,b)}else if(i!=="multicategory"){var g=n(u+"tickvals");g===void 0?l.tickmode="auto":o||n("ticktext")}}});var N1=J((w8t,iJ)=>{"use strict";var xL=gt(),nJ=hl();iJ.exports=function(t,r,n,i){var a=i.isMinor,o=a?t.minor||{}:t,s=a?r.minor:r,l=a?nJ.minor:nJ,u=a?"minor.":"",f=xL.coerce2(o,s,l,"ticklen",a?(r.ticklen||5)*.6:void 0),c=xL.coerce2(o,s,l,"tickwidth",a?r.tickwidth||1:void 0),h=xL.coerce2(o,s,l,"tickcolor",(a?r.tickcolor:void 0)||s.color),d=n(u+"ticks",!a&&i.outerTicks||f||c||h?"outside":"");d||(delete s.ticklen,delete s.tickwidth,delete s.tickcolor)}});var bL=J((_8t,aJ)=>{"use strict";aJ.exports=function(t){var r=["showexponent","showtickprefix","showticksuffix"],n=r.filter(function(a){return t[a]!==void 0}),i=function(a){return t[a]===t[n[0]]};if(n.every(i)||n.length===1)return t[n[0]]}});var Bu=J((T8t,oJ)=>{"use strict";var nA=gt(),MWe=ki();oJ.exports=function(t,r,n){var i=n.name,a=n.inclusionAttr||"visible",o=r[i],s=nA.isArrayOrTypedArray(t[i])?t[i]:[],l=r[i]=[],u=MWe.arrayTemplater(r,i,a),f,c;for(f=0;f{"use strict";var wL=gt(),kWe=qr().contrast,sJ=hl(),SWe=bL(),CWe=Bu();lJ.exports=function(t,r,n,i,a){a||(a={});var o=n("labelalias");wL.isPlainObject(o)||delete r.labelalias;var s=SWe(t),l=n("showticklabels");if(l){a.noTicklabelshift||n("ticklabelshift"),a.noTicklabelstandoff||n("ticklabelstandoff");var u=a.font||{},f=r.color,c=r.ticklabelposition||"",h=c.indexOf("inside")!==-1?kWe(a.bgColor):f&&f!==sJ.color.dflt?f:u.color;if(wL.coerceFont(n,"tickfont",u,{overrideDflt:{color:h}}),!a.noTicklabelstep&&i!=="multicategory"&&i!=="log"&&n("ticklabelstep"),!a.noAng){var d=n("tickangle");!a.noAutotickangles&&d==="auto"&&n("autotickangles")}if(i!=="category"){var v=n("tickformat");CWe(t,r,{name:"tickformatstops",inclusionAttr:"enabled",handleItemDefaults:EWe}),r.tickformatstops.length||delete r.tickformatstops,!a.noExp&&!v&&i!=="date"&&(n("showexponent",s),n("exponentformat"),n("minexponent"),n("separatethousands"))}}};function EWe(e,t){function r(i,a){return wL.coerce(e,t,sJ.tickformatstops,i,a)}var n=r("enabled");n&&(r("dtickrange"),r("value"))}});var Zp=J((M8t,uJ)=>{"use strict";var LWe=bL();uJ.exports=function(t,r,n,i,a){a||(a={});var o=a.tickSuffixDflt,s=LWe(t),l=n("tickprefix");l&&n("showtickprefix",s);var u=n("ticksuffix",o);u&&n("showticksuffix",s)}});var _L=J((k8t,fJ)=>{"use strict";var u0=gt(),DWe=ki(),RWe=Wp(),PWe=N1(),IWe=Xp(),qWe=Zp(),FWe=rA();fJ.exports=function(t,r,n){var i=DWe.newContainer(r,"colorbar"),a=t.colorbar||{};function o(y,E){return u0.coerce(a,i,FWe,y,E)}var s=n.margin||{t:0,b:0,l:0,r:0},l=n.width-s.l-s.r,u=n.height-s.t-s.b,f=o("orientation"),c=f==="v",h=o("thicknessmode");o("thickness",h==="fraction"?30/(c?l:u):30);var d=o("lenmode");o("len",d==="fraction"?1:c?u:l);var v=o("yref"),m=o("xref"),b=v==="paper",g=m==="paper",_,T,w,k="left";c?(w="middle",k=g?"left":"right",_=g?1.02:1,T=.5):(w=b?"bottom":"top",k="center",_=.5,T=b?1.02:1),u0.coerce(a,i,{x:{valType:"number",min:g?-2:0,max:g?3:1,dflt:_}},"x"),u0.coerce(a,i,{y:{valType:"number",min:b?-2:0,max:b?3:1,dflt:T}},"y"),o("xanchor",k),o("xpad"),o("yanchor",w),o("ypad"),u0.noneOrAll(a,i,["x","y"]),o("outlinecolor"),o("outlinewidth"),o("bordercolor"),o("borderwidth"),o("bgcolor");var x=u0.coerce(a,i,{ticklabelposition:{valType:"enumerated",dflt:"outside",values:c?["outside","inside","outside top","inside top","outside bottom","inside bottom"]:["outside","inside","outside left","inside left","outside right","inside right"]}},"ticklabelposition");o("ticklabeloverflow",x.indexOf("inside")!==-1?"hide past domain":"hide past div"),RWe(a,i,o,"linear");var M=n.font,A={noAutotickangles:!0,noTicklabelshift:!0,noTicklabelstandoff:!0,outerTicks:!1,font:M};x.indexOf("inside")!==-1&&(A.bgColor="black"),qWe(a,i,o,"linear",A),IWe(a,i,o,"linear",A),PWe(a,i,o,"linear",A),o("title.text",n._dfltTitle.colorbar);var p=i.showticklabels?i.tickfont:M,S=u0.extendFlat({},M,{family:p.family,size:u0.bigFont(p.size)});u0.coerceFont(o,"title.font",S),o("title.side",c?"top":"right")}});var vl=J((S8t,vJ)=>{"use strict";var cJ=dn(),AL=gt(),zWe=pL(),NWe=_L(),hJ=Pp().isValid,OWe=zr().traceIs;function TL(e,t){var r=t.slice(0,t.length-1);return t?AL.nestedProperty(e,r).get()||{}:e}vJ.exports=function e(t,r,n,i,a){var o=a.prefix,s=a.cLetter,l="_module"in r,u=TL(t,o),f=TL(r,o),c=TL(r._template||{},o)||{},h=function(){return delete t.coloraxis,delete r.coloraxis,e(t,r,n,i,a)};if(l){var d=n._colorAxes||{},v=i(o+"coloraxis");if(v){var m=OWe(r,"contour")&&AL.nestedProperty(r,"contours.coloring").get()||"heatmap",b=d[v];b?(b[2].push(h),b[0]!==m&&(b[0]=!1,AL.warn(["Ignoring coloraxis:",v,"setting","as it is linked to incompatible colorscales."].join(" ")))):d[v]=[m,r,[h]];return}}var g=u[s+"min"],_=u[s+"max"],T=cJ(g)&&cJ(_)&&g<_,w=i(o+s+"auto",!T);w?i(o+s+"mid"):(i(o+s+"min"),i(o+s+"max"));var k=u.colorscale,x=c.colorscale,M;if(k!==void 0&&(M=!hJ(k)),x!==void 0&&(M=!hJ(x)),i(o+"autocolorscale",M),i(o+"colorscale"),i(o+"reversescale"),o!=="marker.line."){var A;o&&l&&(A=zWe(u));var p=i(o+"showscale",A);p&&(o&&c&&(f._template=c),NWe(u,f,n))}}});var mJ=J((C8t,gJ)=>{"use strict";var dJ=gt(),BWe=ki(),pJ=dL(),UWe=vl();gJ.exports=function(t,r){function n(c,h){return dJ.coerce(t,r,pJ,c,h)}n("colorscale.sequential"),n("colorscale.sequentialminus"),n("colorscale.diverging");var i=r._colorAxes,a,o;function s(c,h){return dJ.coerce(a,o,pJ.coloraxis,c,h)}for(var l in i){var u=i[l];if(u[0])a=t[l]||{},o=BWe.newContainer(r,l,"coloraxis"),o._name=l,UWe(a,o,r,s,{prefix:"",cLetter:"c"});else{for(var f=0;f{"use strict";var HWe=gt(),jWe=nu().hasColorscale,VWe=nu().extractOpts;yJ.exports=function(t,r){function n(f,c){var h=f["_"+c];h!==void 0&&(f[c]=h)}function i(f,c){var h=c.container?HWe.nestedProperty(f,c.container).get():f;if(h)if(h.coloraxis)h._colorAx=r[h.coloraxis];else{var d=VWe(h),v=d.auto;(v||d.min===void 0)&&n(h,c.min),(v||d.max===void 0)&&n(h,c.max),d.autocolorscale&&n(h,"colorscale")}}for(var a=0;a{"use strict";var bJ=dn(),ML=gt(),YWe=nu().extractOpts;wJ.exports=function(t,r,n){var i=t._fullLayout,a=n.vals,o=n.containerStr,s=o?ML.nestedProperty(r,o).get():r,l=YWe(s),u=l.auto!==!1,f=l.min,c=l.max,h=l.mid,d=function(){return ML.aggNums(Math.min,null,a)},v=function(){return ML.aggNums(Math.max,null,a)};if(f===void 0?f=d():u&&(s._colorAx&&bJ(f)?f=Math.min(f,d()):f=d()),c===void 0?c=v():u&&(s._colorAx&&bJ(c)?c=Math.max(c,v()):c=v()),u&&h!==void 0&&(c-h>h-f?f=h-(c-h):c-h=0?m=i.colorscale.sequential:m=i.colorscale.sequentialminus,l._sync("colorscale",m)}}});var Qa=J((D8t,_J)=>{"use strict";var iA=Pp(),O1=nu();_J.exports={moduleType:"component",name:"colorscale",attributes:Da(),layoutAttributes:dL(),supplyLayoutDefaults:mJ(),handleDefaults:vl(),crossTraceDefaults:xJ(),calc:Uu(),scales:iA.scales,defaultScale:iA.defaultScale,getScale:iA.get,isValidScale:iA.isValid,hasColorscale:O1.hasColorscale,extractOpts:O1.extractOpts,extractScale:O1.extractScale,flipScale:O1.flipScale,makeColorScaleFunc:O1.makeColorScaleFunc,makeColorScaleFuncFromTrace:O1.makeColorScaleFuncFromTrace}});var fs=J((R8t,AJ)=>{"use strict";var TJ=gt(),GWe=fl().isTypedArraySpec;AJ.exports={hasLines:function(e){return e.visible&&e.mode&&e.mode.indexOf("lines")!==-1},hasMarkers:function(e){return e.visible&&(e.mode&&e.mode.indexOf("markers")!==-1||e.type==="splom")},hasText:function(e){return e.visible&&e.mode&&e.mode.indexOf("text")!==-1},isBubble:function(e){var t=e.marker;return TJ.isPlainObject(t)&&(TJ.isArrayOrTypedArray(t.size)||GWe(t.size))}}});var kL=J((P8t,MJ)=>{"use strict";var WWe=dn();MJ.exports=function(t,r){r||(r=2);var n=t.marker,i=n.sizeref||1,a=n.sizemin||0,o=n.sizemode==="area"?function(s){return Math.sqrt(s/i)}:function(s){return s/i};return function(s){var l=o(s/r);return WWe(l)&&l>0?Math.max(l,a):0}}});var Qf=J(dl=>{"use strict";var kJ=gt();dl.getSubplot=function(e){return e.subplot||e.xaxis+e.yaxis||e.geo};dl.isTraceInSubplots=function(e,t){if(e.type==="splom"){for(var r=e.xaxes||[],n=e.yaxes||[],i=0;i=0&&r.index{EJ.exports=KWe;var SL={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},$We=/([astvzqmhlc])([^astvzqmhlc]*)/ig;function KWe(e){var t=[];return e.replace($We,function(r,n,i){var a=n.toLowerCase();for(i=eXe(i),a=="m"&&i.length>2&&(t.push([n].concat(i.splice(0,2))),a="l",n=n=="m"?"l":"L");;){if(i.length==SL[a])return i.unshift(n),t.push(i);if(i.length{"use strict";var tXe=CL(),mr=Nr().round,Cn="M0,0Z",LJ=Math.sqrt(2),f0=Math.sqrt(3),EL=Math.PI,LL=Math.cos,DL=Math.sin;qJ.exports={circle:{n:0,f:function(e,t,r){if(En(t))return Cn;var n=mr(e,2),i="M"+n+",0A"+n+","+n+" 0 1,1 0,-"+n+"A"+n+","+n+" 0 0,1 "+n+",0Z";return r?Ln(t,r,i):i}},square:{n:1,f:function(e,t,r){if(En(t))return Cn;var n=mr(e,2);return Ln(t,r,"M"+n+","+n+"H-"+n+"V-"+n+"H"+n+"Z")}},diamond:{n:2,f:function(e,t,r){if(En(t))return Cn;var n=mr(e*1.3,2);return Ln(t,r,"M"+n+",0L0,"+n+"L-"+n+",0L0,-"+n+"Z")}},cross:{n:3,f:function(e,t,r){if(En(t))return Cn;var n=mr(e*.4,2),i=mr(e*1.2,2);return Ln(t,r,"M"+i+","+n+"H"+n+"V"+i+"H-"+n+"V"+n+"H-"+i+"V-"+n+"H-"+n+"V-"+i+"H"+n+"V-"+n+"H"+i+"Z")}},x:{n:4,f:function(e,t,r){if(En(t))return Cn;var n=mr(e*.8/LJ,2),i="l"+n+","+n,a="l"+n+",-"+n,o="l-"+n+",-"+n,s="l-"+n+","+n;return Ln(t,r,"M0,"+n+i+a+o+a+o+s+o+s+i+s+i+"Z")}},"triangle-up":{n:5,f:function(e,t,r){if(En(t))return Cn;var n=mr(e*2/f0,2),i=mr(e/2,2),a=mr(e,2);return Ln(t,r,"M-"+n+","+i+"H"+n+"L0,-"+a+"Z")}},"triangle-down":{n:6,f:function(e,t,r){if(En(t))return Cn;var n=mr(e*2/f0,2),i=mr(e/2,2),a=mr(e,2);return Ln(t,r,"M-"+n+",-"+i+"H"+n+"L0,"+a+"Z")}},"triangle-left":{n:7,f:function(e,t,r){if(En(t))return Cn;var n=mr(e*2/f0,2),i=mr(e/2,2),a=mr(e,2);return Ln(t,r,"M"+i+",-"+n+"V"+n+"L-"+a+",0Z")}},"triangle-right":{n:8,f:function(e,t,r){if(En(t))return Cn;var n=mr(e*2/f0,2),i=mr(e/2,2),a=mr(e,2);return Ln(t,r,"M-"+i+",-"+n+"V"+n+"L"+a+",0Z")}},"triangle-ne":{n:9,f:function(e,t,r){if(En(t))return Cn;var n=mr(e*.6,2),i=mr(e*1.2,2);return Ln(t,r,"M-"+i+",-"+n+"H"+n+"V"+i+"Z")}},"triangle-se":{n:10,f:function(e,t,r){if(En(t))return Cn;var n=mr(e*.6,2),i=mr(e*1.2,2);return Ln(t,r,"M"+n+",-"+i+"V"+n+"H-"+i+"Z")}},"triangle-sw":{n:11,f:function(e,t,r){if(En(t))return Cn;var n=mr(e*.6,2),i=mr(e*1.2,2);return Ln(t,r,"M"+i+","+n+"H-"+n+"V-"+i+"Z")}},"triangle-nw":{n:12,f:function(e,t,r){if(En(t))return Cn;var n=mr(e*.6,2),i=mr(e*1.2,2);return Ln(t,r,"M-"+n+","+i+"V-"+n+"H"+i+"Z")}},pentagon:{n:13,f:function(e,t,r){if(En(t))return Cn;var n=mr(e*.951,2),i=mr(e*.588,2),a=mr(-e,2),o=mr(e*-.309,2),s=mr(e*.809,2);return Ln(t,r,"M"+n+","+o+"L"+i+","+s+"H-"+i+"L-"+n+","+o+"L0,"+a+"Z")}},hexagon:{n:14,f:function(e,t,r){if(En(t))return Cn;var n=mr(e,2),i=mr(e/2,2),a=mr(e*f0/2,2);return Ln(t,r,"M"+a+",-"+i+"V"+i+"L0,"+n+"L-"+a+","+i+"V-"+i+"L0,-"+n+"Z")}},hexagon2:{n:15,f:function(e,t,r){if(En(t))return Cn;var n=mr(e,2),i=mr(e/2,2),a=mr(e*f0/2,2);return Ln(t,r,"M-"+i+","+a+"H"+i+"L"+n+",0L"+i+",-"+a+"H-"+i+"L-"+n+",0Z")}},octagon:{n:16,f:function(e,t,r){if(En(t))return Cn;var n=mr(e*.924,2),i=mr(e*.383,2);return Ln(t,r,"M-"+i+",-"+n+"H"+i+"L"+n+",-"+i+"V"+i+"L"+i+","+n+"H-"+i+"L-"+n+","+i+"V-"+i+"Z")}},star:{n:17,f:function(e,t,r){if(En(t))return Cn;var n=e*1.4,i=mr(n*.225,2),a=mr(n*.951,2),o=mr(n*.363,2),s=mr(n*.588,2),l=mr(-n,2),u=mr(n*-.309,2),f=mr(n*.118,2),c=mr(n*.809,2),h=mr(n*.382,2);return Ln(t,r,"M"+i+","+u+"H"+a+"L"+o+","+f+"L"+s+","+c+"L0,"+h+"L-"+s+","+c+"L-"+o+","+f+"L-"+a+","+u+"H-"+i+"L0,"+l+"Z")}},hexagram:{n:18,f:function(e,t,r){if(En(t))return Cn;var n=mr(e*.66,2),i=mr(e*.38,2),a=mr(e*.76,2);return Ln(t,r,"M-"+a+",0l-"+i+",-"+n+"h"+a+"l"+i+",-"+n+"l"+i+","+n+"h"+a+"l-"+i+","+n+"l"+i+","+n+"h-"+a+"l-"+i+","+n+"l-"+i+",-"+n+"h-"+a+"Z")}},"star-triangle-up":{n:19,f:function(e,t,r){if(En(t))return Cn;var n=mr(e*f0*.8,2),i=mr(e*.8,2),a=mr(e*1.6,2),o=mr(e*4,2),s="A "+o+","+o+" 0 0 1 ";return Ln(t,r,"M-"+n+","+i+s+n+","+i+s+"0,-"+a+s+"-"+n+","+i+"Z")}},"star-triangle-down":{n:20,f:function(e,t,r){if(En(t))return Cn;var n=mr(e*f0*.8,2),i=mr(e*.8,2),a=mr(e*1.6,2),o=mr(e*4,2),s="A "+o+","+o+" 0 0 1 ";return Ln(t,r,"M"+n+",-"+i+s+"-"+n+",-"+i+s+"0,"+a+s+n+",-"+i+"Z")}},"star-square":{n:21,f:function(e,t,r){if(En(t))return Cn;var n=mr(e*1.1,2),i=mr(e*2,2),a="A "+i+","+i+" 0 0 1 ";return Ln(t,r,"M-"+n+",-"+n+a+"-"+n+","+n+a+n+","+n+a+n+",-"+n+a+"-"+n+",-"+n+"Z")}},"star-diamond":{n:22,f:function(e,t,r){if(En(t))return Cn;var n=mr(e*1.4,2),i=mr(e*1.9,2),a="A "+i+","+i+" 0 0 1 ";return Ln(t,r,"M-"+n+",0"+a+"0,"+n+a+n+",0"+a+"0,-"+n+a+"-"+n+",0Z")}},"diamond-tall":{n:23,f:function(e,t,r){if(En(t))return Cn;var n=mr(e*.7,2),i=mr(e*1.4,2);return Ln(t,r,"M0,"+i+"L"+n+",0L0,-"+i+"L-"+n+",0Z")}},"diamond-wide":{n:24,f:function(e,t,r){if(En(t))return Cn;var n=mr(e*1.4,2),i=mr(e*.7,2);return Ln(t,r,"M0,"+i+"L"+n+",0L0,-"+i+"L-"+n+",0Z")}},hourglass:{n:25,f:function(e,t,r){if(En(t))return Cn;var n=mr(e,2);return Ln(t,r,"M"+n+","+n+"H-"+n+"L"+n+",-"+n+"H-"+n+"Z")},noDot:!0},bowtie:{n:26,f:function(e,t,r){if(En(t))return Cn;var n=mr(e,2);return Ln(t,r,"M"+n+","+n+"V-"+n+"L-"+n+","+n+"V-"+n+"Z")},noDot:!0},"circle-cross":{n:27,f:function(e,t,r){if(En(t))return Cn;var n=mr(e,2);return Ln(t,r,"M0,"+n+"V-"+n+"M"+n+",0H-"+n+"M"+n+",0A"+n+","+n+" 0 1,1 0,-"+n+"A"+n+","+n+" 0 0,1 "+n+",0Z")},needLine:!0,noDot:!0},"circle-x":{n:28,f:function(e,t,r){if(En(t))return Cn;var n=mr(e,2),i=mr(e/LJ,2);return Ln(t,r,"M"+i+","+i+"L-"+i+",-"+i+"M"+i+",-"+i+"L-"+i+","+i+"M"+n+",0A"+n+","+n+" 0 1,1 0,-"+n+"A"+n+","+n+" 0 0,1 "+n+",0Z")},needLine:!0,noDot:!0},"square-cross":{n:29,f:function(e,t,r){if(En(t))return Cn;var n=mr(e,2);return Ln(t,r,"M0,"+n+"V-"+n+"M"+n+",0H-"+n+"M"+n+","+n+"H-"+n+"V-"+n+"H"+n+"Z")},needLine:!0,noDot:!0},"square-x":{n:30,f:function(e,t,r){if(En(t))return Cn;var n=mr(e,2);return Ln(t,r,"M"+n+","+n+"L-"+n+",-"+n+"M"+n+",-"+n+"L-"+n+","+n+"M"+n+","+n+"H-"+n+"V-"+n+"H"+n+"Z")},needLine:!0,noDot:!0},"diamond-cross":{n:31,f:function(e,t,r){if(En(t))return Cn;var n=mr(e*1.3,2);return Ln(t,r,"M"+n+",0L0,"+n+"L-"+n+",0L0,-"+n+"ZM0,-"+n+"V"+n+"M-"+n+",0H"+n)},needLine:!0,noDot:!0},"diamond-x":{n:32,f:function(e,t,r){if(En(t))return Cn;var n=mr(e*1.3,2),i=mr(e*.65,2);return Ln(t,r,"M"+n+",0L0,"+n+"L-"+n+",0L0,-"+n+"ZM-"+i+",-"+i+"L"+i+","+i+"M-"+i+","+i+"L"+i+",-"+i)},needLine:!0,noDot:!0},"cross-thin":{n:33,f:function(e,t,r){if(En(t))return Cn;var n=mr(e*1.4,2);return Ln(t,r,"M0,"+n+"V-"+n+"M"+n+",0H-"+n)},needLine:!0,noDot:!0,noFill:!0},"x-thin":{n:34,f:function(e,t,r){if(En(t))return Cn;var n=mr(e,2);return Ln(t,r,"M"+n+","+n+"L-"+n+",-"+n+"M"+n+",-"+n+"L-"+n+","+n)},needLine:!0,noDot:!0,noFill:!0},asterisk:{n:35,f:function(e,t,r){if(En(t))return Cn;var n=mr(e*1.2,2),i=mr(e*.85,2);return Ln(t,r,"M0,"+n+"V-"+n+"M"+n+",0H-"+n+"M"+i+","+i+"L-"+i+",-"+i+"M"+i+",-"+i+"L-"+i+","+i)},needLine:!0,noDot:!0,noFill:!0},hash:{n:36,f:function(e,t,r){if(En(t))return Cn;var n=mr(e/2,2),i=mr(e,2);return Ln(t,r,"M"+n+","+i+"V-"+i+"M"+(n-i)+",-"+i+"V"+i+"M"+i+","+n+"H-"+i+"M-"+i+","+(n-i)+"H"+i)},needLine:!0,noFill:!0},"y-up":{n:37,f:function(e,t,r){if(En(t))return Cn;var n=mr(e*1.2,2),i=mr(e*1.6,2),a=mr(e*.8,2);return Ln(t,r,"M-"+n+","+a+"L0,0M"+n+","+a+"L0,0M0,-"+i+"L0,0")},needLine:!0,noDot:!0,noFill:!0},"y-down":{n:38,f:function(e,t,r){if(En(t))return Cn;var n=mr(e*1.2,2),i=mr(e*1.6,2),a=mr(e*.8,2);return Ln(t,r,"M-"+n+",-"+a+"L0,0M"+n+",-"+a+"L0,0M0,"+i+"L0,0")},needLine:!0,noDot:!0,noFill:!0},"y-left":{n:39,f:function(e,t,r){if(En(t))return Cn;var n=mr(e*1.2,2),i=mr(e*1.6,2),a=mr(e*.8,2);return Ln(t,r,"M"+a+","+n+"L0,0M"+a+",-"+n+"L0,0M-"+i+",0L0,0")},needLine:!0,noDot:!0,noFill:!0},"y-right":{n:40,f:function(e,t,r){if(En(t))return Cn;var n=mr(e*1.2,2),i=mr(e*1.6,2),a=mr(e*.8,2);return Ln(t,r,"M-"+a+","+n+"L0,0M-"+a+",-"+n+"L0,0M"+i+",0L0,0")},needLine:!0,noDot:!0,noFill:!0},"line-ew":{n:41,f:function(e,t,r){if(En(t))return Cn;var n=mr(e*1.4,2);return Ln(t,r,"M"+n+",0H-"+n)},needLine:!0,noDot:!0,noFill:!0},"line-ns":{n:42,f:function(e,t,r){if(En(t))return Cn;var n=mr(e*1.4,2);return Ln(t,r,"M0,"+n+"V-"+n)},needLine:!0,noDot:!0,noFill:!0},"line-ne":{n:43,f:function(e,t,r){if(En(t))return Cn;var n=mr(e,2);return Ln(t,r,"M"+n+",-"+n+"L-"+n+","+n)},needLine:!0,noDot:!0,noFill:!0},"line-nw":{n:44,f:function(e,t,r){if(En(t))return Cn;var n=mr(e,2);return Ln(t,r,"M"+n+","+n+"L-"+n+",-"+n)},needLine:!0,noDot:!0,noFill:!0},"arrow-up":{n:45,f:function(e,t,r){if(En(t))return Cn;var n=mr(e,2),i=mr(e*2,2);return Ln(t,r,"M0,0L-"+n+","+i+"H"+n+"Z")},backoff:1,noDot:!0},"arrow-down":{n:46,f:function(e,t,r){if(En(t))return Cn;var n=mr(e,2),i=mr(e*2,2);return Ln(t,r,"M0,0L-"+n+",-"+i+"H"+n+"Z")},noDot:!0},"arrow-left":{n:47,f:function(e,t,r){if(En(t))return Cn;var n=mr(e*2,2),i=mr(e,2);return Ln(t,r,"M0,0L"+n+",-"+i+"V"+i+"Z")},noDot:!0},"arrow-right":{n:48,f:function(e,t,r){if(En(t))return Cn;var n=mr(e*2,2),i=mr(e,2);return Ln(t,r,"M0,0L-"+n+",-"+i+"V"+i+"Z")},noDot:!0},"arrow-bar-up":{n:49,f:function(e,t,r){if(En(t))return Cn;var n=mr(e,2),i=mr(e*2,2);return Ln(t,r,"M-"+n+",0H"+n+"M0,0L-"+n+","+i+"H"+n+"Z")},backoff:1,needLine:!0,noDot:!0},"arrow-bar-down":{n:50,f:function(e,t,r){if(En(t))return Cn;var n=mr(e,2),i=mr(e*2,2);return Ln(t,r,"M-"+n+",0H"+n+"M0,0L-"+n+",-"+i+"H"+n+"Z")},needLine:!0,noDot:!0},"arrow-bar-left":{n:51,f:function(e,t,r){if(En(t))return Cn;var n=mr(e*2,2),i=mr(e,2);return Ln(t,r,"M0,-"+i+"V"+i+"M0,0L"+n+",-"+i+"V"+i+"Z")},needLine:!0,noDot:!0},"arrow-bar-right":{n:52,f:function(e,t,r){if(En(t))return Cn;var n=mr(e*2,2),i=mr(e,2);return Ln(t,r,"M0,-"+i+"V"+i+"M0,0L-"+n+",-"+i+"V"+i+"Z")},needLine:!0,noDot:!0},arrow:{n:53,f:function(e,t,r){if(En(t))return Cn;var n=EL/2.5,i=2*e*LL(n),a=2*e*DL(n);return Ln(t,r,"M0,0L"+-i+","+a+"L"+i+","+a+"Z")},backoff:.9,noDot:!0},"arrow-wide":{n:54,f:function(e,t,r){if(En(t))return Cn;var n=EL/4,i=2*e*LL(n),a=2*e*DL(n);return Ln(t,r,"M0,0L"+-i+","+a+"A "+2*e+","+2*e+" 0 0 1 "+i+","+a+"Z")},backoff:.4,noDot:!0}};function En(e){return e===null}var DJ,RJ,PJ,IJ;function Ln(e,t,r){if((!e||e%360===0)&&!t)return r;if(PJ===e&&IJ===t&&DJ===r)return RJ;PJ=e,IJ=t,DJ=r;function n(b,g){var _=LL(b),T=DL(b),w=g[0],k=g[1]+(t||0);return[w*_-k*T,w*T+k*_]}for(var i=e/180*EL,a=0,o=0,s=tXe(r),l="",u=0;u{"use strict";var cs=Nr(),Yi=gt(),rXe=Yi.numberFormat,Qp=dn(),zL=ls(),oA=zr(),Ws=qr(),nXe=Qa(),a2=Yi.strTranslate,sA=ca(),iXe=Gh(),aXe=Vo(),oXe=aXe.LINE_SPACING,GJ=w1().DESELECTDIM,sXe=fs(),lXe=kL(),uXe=Qf().appendArrayPointValue,wr=r$.exports={};wr.font=function(e,t){var r=t.variant,n=t.style,i=t.weight,a=t.color,o=t.size,s=t.family,l=t.shadow,u=t.lineposition,f=t.textcase;s&&e.style("font-family",s),o+1&&e.style("font-size",o+"px"),a&&e.call(Ws.fill,a),i&&e.style("font-weight",i),n&&e.style("font-style",n),r&&e.style("font-variant",r),f&&e.style("text-transform",RL(cXe(f))),l&&e.style("text-shadow",l==="auto"?sA.makeTextShadow(Ws.contrast(a)):RL(l)),u&&e.style("text-decoration-line",RL(hXe(u)))};function RL(e){return e==="none"?void 0:e}var fXe={normal:"none",lower:"lowercase",upper:"uppercase","word caps":"capitalize"};function cXe(e){return fXe[e]}function hXe(e){return e.replace("under","underline").replace("over","overline").replace("through","line-through").split("+").join(" ")}wr.setPosition=function(e,t,r){e.attr("x",t).attr("y",r)};wr.setSize=function(e,t,r){e.attr("width",t).attr("height",r)};wr.setRect=function(e,t,r,n,i){e.call(wr.setPosition,t,r).call(wr.setSize,n,i)};wr.translatePoint=function(e,t,r,n){var i=r.c2p(e.x),a=n.c2p(e.y);if(Qp(i)&&Qp(a)&&t.node())t.node().nodeName==="text"?t.attr("x",i).attr("y",a):t.attr("transform",a2(i,a));else return!1;return!0};wr.translatePoints=function(e,t,r){e.each(function(n){var i=cs.select(this);wr.translatePoint(n,i,t,r)})};wr.hideOutsideRangePoint=function(e,t,r,n,i,a){t.attr("display",r.isPtWithinRange(e,i)&&n.isPtWithinRange(e,a)?null:"none")};wr.hideOutsideRangePoints=function(e,t){if(t._hasClipOnAxisFalse){var r=t.xaxis,n=t.yaxis;e.each(function(i){var a=i[0].trace,o=a.xcalendar,s=a.ycalendar,l=oA.traceIs(a,"bar-like")?".bartext":".point,.textpoint";e.selectAll(l).each(function(u){wr.hideOutsideRangePoint(u,cs.select(this),r,n,o,s)})})}};wr.crispRound=function(e,t,r){return!t||!Qp(t)?r||0:e._context.staticPlot?t:t<1?1:Math.round(t)};wr.singleLineStyle=function(e,t,r,n,i){t.style("fill","none");var a=(((e||[])[0]||{}).trace||{}).line||{},o=r||a.width||0,s=i||a.dash||"";Ws.stroke(t,n||a.color),wr.dashLine(t,s,o)};wr.lineGroupStyle=function(e,t,r,n){e.style("fill","none").each(function(i){var a=(((i||[])[0]||{}).trace||{}).line||{},o=t||a.width||0,s=n||a.dash||"";cs.select(this).call(Ws.stroke,r||a.color).call(wr.dashLine,s,o)})};wr.dashLine=function(e,t,r){r=+r||0,t=wr.dashStyle(t,r),e.style({"stroke-dasharray":t,"stroke-width":r+"px"})};wr.dashStyle=function(e,t){t=+t||1;var r=Math.max(t,3);return e==="solid"?e="":e==="dot"?e=r+"px,"+r+"px":e==="dash"?e=3*r+"px,"+3*r+"px":e==="longdash"?e=5*r+"px,"+5*r+"px":e==="dashdot"?e=3*r+"px,"+r+"px,"+r+"px,"+r+"px":e==="longdashdot"&&(e=5*r+"px,"+2*r+"px,"+r+"px,"+2*r+"px"),e};function WJ(e,t,r,n){var i=t.fillpattern,a=t.fillgradient,o=i&&wr.getPatternAttr(i.shape,0,"");if(o){var s=wr.getPatternAttr(i.bgcolor,0,null),l=wr.getPatternAttr(i.fgcolor,0,null),u=i.fgopacity,f=wr.getPatternAttr(i.size,0,8),c=wr.getPatternAttr(i.solidity,0,.3),h=t.uid;wr.pattern(e,"point",r,h,o,f,c,void 0,i.fillmode,s,l,u)}else if(a&&a.type!=="none"){var d=a.type,v="scatterfill-"+t.uid;if(n&&(v="legendfill-"+t.uid),!n&&(a.start!==void 0||a.stop!==void 0)){var m,b;d==="horizontal"?(m={x:a.start,y:0},b={x:a.stop,y:0}):d==="vertical"&&(m={x:0,y:a.start},b={x:0,y:a.stop}),m.x=t._xA.c2p(m.x===void 0?t._extremes.x.min[0].val:m.x,!0),m.y=t._yA.c2p(m.y===void 0?t._extremes.y.min[0].val:m.y,!0),b.x=t._xA.c2p(b.x===void 0?t._extremes.x.max[0].val:b.x,!0),b.y=t._yA.c2p(b.y===void 0?t._extremes.y.max[0].val:b.y,!0),e.call(JJ,r,v,"linear",a.colorscale,"fill",m,b,!0,!1)}else d==="horizontal"&&(d=d+"reversed"),e.call(wr.gradient,r,v,d,a.colorscale,"fill")}else t.fillcolor&&e.call(Ws.fill,t.fillcolor)}wr.singleFillStyle=function(e,t){var r=cs.select(e.node()),n=r.data(),i=((n[0]||[])[0]||{}).trace||{};WJ(e,i,t,!1)};wr.fillGroupStyle=function(e,t,r){e.style("stroke-width",0).each(function(n){var i=cs.select(this);n[0].trace&&WJ(i,n[0].trace,t,r)})};var zJ=FJ();wr.symbolNames=[];wr.symbolFuncs=[];wr.symbolBackOffs=[];wr.symbolNeedLines={};wr.symbolNoDot={};wr.symbolNoFill={};wr.symbolList=[];Object.keys(zJ).forEach(function(e){var t=zJ[e],r=t.n;wr.symbolList.push(r,String(r),e,r+100,String(r+100),e+"-open"),wr.symbolNames[r]=e,wr.symbolFuncs[r]=t.f,wr.symbolBackOffs[r]=t.backoff||0,t.needLine&&(wr.symbolNeedLines[r]=!0),t.noDot?wr.symbolNoDot[r]=!0:wr.symbolList.push(r+200,String(r+200),e+"-dot",r+300,String(r+300),e+"-open-dot"),t.noFill&&(wr.symbolNoFill[r]=!0)});var vXe=wr.symbolNames.length,dXe="M0,0.5L0.5,0L0,-0.5L-0.5,0Z";wr.symbolNumber=function(e){if(Qp(e))e=+e;else if(typeof e=="string"){var t=0;e.indexOf("-open")>0&&(t=100,e=e.replace("-open","")),e.indexOf("-dot")>0&&(t+=200,e=e.replace("-dot","")),e=wr.symbolNames.indexOf(e),e>=0&&(e+=t)}return e%100>=vXe||e>=400?0:Math.floor(Math.max(e,0))};function XJ(e,t,r,n){var i=e%100;return wr.symbolFuncs[i](t,r,n)+(e>=200?dXe:"")}var NJ=rXe("~f"),ZJ={radial:{type:"radial"},radialreversed:{type:"radial",reversed:!0},horizontal:{type:"linear",start:{x:1,y:0},stop:{x:0,y:0}},horizontalreversed:{type:"linear",start:{x:1,y:0},stop:{x:0,y:0},reversed:!0},vertical:{type:"linear",start:{x:0,y:1},stop:{x:0,y:0}},verticalreversed:{type:"linear",start:{x:0,y:1},stop:{x:0,y:0},reversed:!0}};wr.gradient=function(e,t,r,n,i,a){var o=ZJ[n];return JJ(e,t,r,o.type,i,a,o.start,o.stop,!1,o.reversed)};function JJ(e,t,r,n,i,a,o,s,l,u){var f=i.length,c;n==="linear"?c={node:"linearGradient",attrs:{x1:o.x,y1:o.y,x2:s.x,y2:s.y,gradientUnits:l?"userSpaceOnUse":"objectBoundingBox"},reversed:u}:n==="radial"&&(c={node:"radialGradient",reversed:u});for(var h=new Array(f),d=0;d=0&&e.i===void 0&&(e.i=a.i),t.style("opacity",n.selectedOpacityFn?n.selectedOpacityFn(e):e.mo===void 0?o.opacity:e.mo),n.ms2mrc){var l;e.ms==="various"||o.size==="various"?l=3:l=n.ms2mrc(e.ms),e.mrc=l,n.selectedSizeFn&&(l=e.mrc=n.selectedSizeFn(e));var u=wr.symbolNumber(e.mx||o.symbol)||0;e.om=u%200>=100;var f=BL(e,r),c=OL(e,r);t.attr("d",XJ(u,l,f,c))}var h=!1,d,v,m;if(e.so)m=s.outlierwidth,v=s.outliercolor,d=o.outliercolor;else{var b=(s||{}).width;m=(e.mlw+1||b+1||(e.trace?(e.trace.marker.line||{}).width:0)+1)-1||0,"mlc"in e?v=e.mlcc=n.lineScale(e.mlc):Yi.isArrayOrTypedArray(s.color)?v=Ws.defaultLine:v=s.color,Yi.isArrayOrTypedArray(o.color)&&(d=Ws.defaultLine,h=!0),"mc"in e?d=e.mcc=n.markerScale(e.mc):d=o.color||o.colors||"rgba(0,0,0,0)",n.selectedColorFn&&(d=n.selectedColorFn(e))}if(e.om)t.call(Ws.stroke,d).style({"stroke-width":(m||1)+"px",fill:"none"});else{t.style("stroke-width",(e.isBlank?0:m)+"px");var g=o.gradient,_=e.mgt;_?h=!0:_=g&&g.type,Yi.isArrayOrTypedArray(_)&&(_=_[0],ZJ[_]||(_=0));var T=o.pattern,w=T&&wr.getPatternAttr(T.shape,e.i,"");if(_&&_!=="none"){var k=e.mgc;k?h=!0:k=g.color;var x=r.uid;h&&(x+="-"+e.i),wr.gradient(t,i,x,_,[[0,k],[1,d]],"fill")}else if(w){var M=!1,A=T.fgcolor;!A&&a&&a.color&&(A=a.color,M=!0);var p=wr.getPatternAttr(A,e.i,a&&a.color||null),S=wr.getPatternAttr(T.bgcolor,e.i,null),y=T.fgopacity,E=wr.getPatternAttr(T.size,e.i,8),C=wr.getPatternAttr(T.solidity,e.i,.3);M=M||e.mcc||Yi.isArrayOrTypedArray(T.shape)||Yi.isArrayOrTypedArray(T.bgcolor)||Yi.isArrayOrTypedArray(T.fgcolor)||Yi.isArrayOrTypedArray(T.size)||Yi.isArrayOrTypedArray(T.solidity);var L=r.uid;M&&(L+="-"+e.i),wr.pattern(t,"point",i,L,w,E,C,e.mcc,T.fillmode,S,p,y)}else Yi.isArrayOrTypedArray(d)?Ws.fill(t,d[e.i]):Ws.fill(t,d);m&&Ws.stroke(t,v)}};wr.makePointStyleFns=function(e){var t={},r=e.marker;return t.markerScale=wr.tryColorscale(r,""),t.lineScale=wr.tryColorscale(r,"line"),oA.traceIs(e,"symbols")&&(t.ms2mrc=sXe.isBubble(e)?lXe(e):function(){return(r.size||6)/2}),e.selectedpoints&&Yi.extendFlat(t,wr.makeSelectedPointStyleFns(e)),t};wr.makeSelectedPointStyleFns=function(e){var t={},r=e.selected||{},n=e.unselected||{},i=e.marker||{},a=r.marker||{},o=n.marker||{},s=i.opacity,l=a.opacity,u=o.opacity,f=l!==void 0,c=u!==void 0;(Yi.isArrayOrTypedArray(s)||f||c)&&(t.selectedOpacityFn=function(w){var k=w.mo===void 0?i.opacity:w.mo;return w.selected?f?l:k:c?u:GJ*k});var h=i.color,d=a.color,v=o.color;(d||v)&&(t.selectedColorFn=function(w){var k=w.mcc||h;return w.selected?d||k:v||k});var m=i.size,b=a.size,g=o.size,_=b!==void 0,T=g!==void 0;return oA.traceIs(e,"symbols")&&(_||T)&&(t.selectedSizeFn=function(w){var k=w.mrc||m/2;return w.selected?_?b/2:k:T?g/2:k}),t};wr.makeSelectedTextStyleFns=function(e){var t={},r=e.selected||{},n=e.unselected||{},i=e.textfont||{},a=r.textfont||{},o=n.textfont||{},s=i.color,l=a.color,u=o.color;return t.selectedTextColorFn=function(f){var c=f.tc||s;return f.selected?l||c:u||(l?c:Ws.addOpacity(c,GJ))},t};wr.selectedPointStyle=function(e,t){if(!(!e.size()||!t.selectedpoints)){var r=wr.makeSelectedPointStyleFns(t),n=t.marker||{},i=[];r.selectedOpacityFn&&i.push(function(a,o){a.style("opacity",r.selectedOpacityFn(o))}),r.selectedColorFn&&i.push(function(a,o){Ws.fill(a,r.selectedColorFn(o))}),r.selectedSizeFn&&i.push(function(a,o){var s=o.mx||n.symbol||0,l=r.selectedSizeFn(o);a.attr("d",XJ(wr.symbolNumber(s),l,BL(o,t),OL(o,t))),o.mrc2=l}),i.length&&e.each(function(a){for(var o=cs.select(this),s=0;s0?r:0}wr.textPointStyle=function(e,t,r){if(e.size()){var n;if(t.selectedpoints){var i=wr.makeSelectedTextStyleFns(t);n=i.selectedTextColorFn}var a=t.texttemplate,o=r._fullLayout;e.each(function(s){var l=cs.select(this),u=a?Yi.extractOption(s,t,"txt","texttemplate"):Yi.extractOption(s,t,"tx","text");if(!u&&u!==0){l.remove();return}if(a){var f=t._module.formatLabels,c=f?f(s,t,o):{},h={};uXe(h,t,s.i);var d=t._meta||{};u=Yi.texttemplateString(u,c,o._d3locale,h,s,d)}var v=s.tp||t.textposition,m=KJ(s,t),b=n?n(s):s.tc||t.textfont.color;l.call(wr.font,{family:s.tf||t.textfont.family,weight:s.tw||t.textfont.weight,style:s.ty||t.textfont.style,variant:s.tv||t.textfont.variant,textcase:s.tC||t.textfont.textcase,lineposition:s.tE||t.textfont.lineposition,shadow:s.tS||t.textfont.shadow,size:m,color:b}).text(u).call(sA.convertToTspans,r).call($J,v,m,s.mrc)})}};wr.selectedTextStyle=function(e,t){if(!(!e.size()||!t.selectedpoints)){var r=wr.makeSelectedTextStyleFns(t);e.each(function(n){var i=cs.select(this),a=r.selectedTextColorFn(n),o=n.tp||t.textposition,s=KJ(n,t);Ws.fill(i,a);var l=oA.traceIs(t,"bar-like");$J(i,o,s,n.mrc2||n.mrc,l)})}};var OJ=.5;wr.smoothopen=function(e,t){if(e.length<3)return"M"+e.join("L");var r="M"+e[0],n=[],i;for(i=1;i=l||w>=f&&w<=l)&&(k<=c&&k>=u||k>=c&&k<=u)&&(e=[w,k])}return e}wr.applyBackoff=t$;wr.makeTester=function(){var e=Yi.ensureSingleById(cs.select("body"),"svg","js-plotly-tester",function(r){r.attr(iXe.svgAttrs).style({position:"absolute",left:"-10000px",top:"-10000px",width:"9000px",height:"9000px","z-index":"1"})}),t=Yi.ensureSingle(e,"path","js-reference-point",function(r){r.attr("d","M0,0H1V1H0Z").style({"stroke-width":0,fill:"black"})});wr.tester=e,wr.testref=t};wr.savedBBoxes={};var IL=0,mXe=1e4;wr.bBox=function(e,t,r){r||(r=BJ(e));var n;if(r){if(n=wr.savedBBoxes[r],n)return Yi.extendFlat({},n)}else if(e.childNodes.length===1){var i=e.childNodes[0];if(r=BJ(i),r){var a=+i.getAttribute("x")||0,o=+i.getAttribute("y")||0,s=i.getAttribute("transform");if(!s){var l=wr.bBox(i,!1,r);return a&&(l.left+=a,l.right+=a),o&&(l.top+=o,l.bottom+=o),l}if(r+="~"+a+"~"+o+"~"+s,n=wr.savedBBoxes[r],n)return Yi.extendFlat({},n)}}var u,f;t?u=e:(f=wr.tester.node(),u=e.cloneNode(!0),f.appendChild(u)),cs.select(u).attr("transform",null).call(sA.positionText,0,0);var c=u.getBoundingClientRect(),h=wr.testref.node().getBoundingClientRect();t||f.removeChild(u);var d={height:c.height,width:c.width,left:c.left-h.left,top:c.top-h.top,right:c.right-h.left,bottom:c.bottom-h.top};return IL>=mXe&&(wr.savedBBoxes={},IL=0),r&&(wr.savedBBoxes[r]=d),IL++,Yi.extendFlat({},d)};function BJ(e){var t=e.getAttribute("data-unformatted");if(t!==null)return t+e.getAttribute("data-math")+e.getAttribute("text-anchor")+e.getAttribute("style")}wr.setClipUrl=function(e,t,r){e.attr("clip-path",NL(t,r))};function NL(e,t){if(!e)return null;var r=t._context,n=r._exportedPlot?"":r._baseUrl||"";return n?"url('"+n+"#"+e+"')":"url(#"+e+")"}wr.getTranslate=function(e){var t=/.*\btranslate\((-?\d*\.?\d*)[^-\d]*(-?\d*\.?\d*)[^\d].*/,r=e.attr?"attr":"getAttribute",n=e[r]("transform")||"",i=n.replace(t,function(a,o,s){return[o,s].join(" ")}).split(" ");return{x:+i[0]||0,y:+i[1]||0}};wr.setTranslate=function(e,t,r){var n=/(\btranslate\(.*?\);?)/,i=e.attr?"attr":"getAttribute",a=e.attr?"attr":"setAttribute",o=e[i]("transform")||"";return t=t||0,r=r||0,o=o.replace(n,"").trim(),o+=a2(t,r),o=o.trim(),e[a]("transform",o),o};wr.getScale=function(e){var t=/.*\bscale\((\d*\.?\d*)[^\d]*(\d*\.?\d*)[^\d].*/,r=e.attr?"attr":"getAttribute",n=e[r]("transform")||"",i=n.replace(t,function(a,o,s){return[o,s].join(" ")}).split(" ");return{x:+i[0]||1,y:+i[1]||1}};wr.setScale=function(e,t,r){var n=/(\bscale\(.*?\);?)/,i=e.attr?"attr":"getAttribute",a=e.attr?"attr":"setAttribute",o=e[i]("transform")||"";return t=t||1,r=r||1,o=o.replace(n,"").trim(),o+="scale("+t+","+r+")",o=o.trim(),e[a]("transform",o),o};var yXe=/\s*sc.*/;wr.setPointGroupScale=function(e,t,r){if(t=t||1,r=r||1,!!e){var n=t===1&&r===1?"":"scale("+t+","+r+")";e.each(function(){var i=(this.getAttribute("transform")||"").replace(yXe,"");i+=n,i=i.trim(),this.setAttribute("transform",i)})}};var xXe=/translate\([^)]*\)\s*$/;wr.setTextPointsScale=function(e,t,r){e&&e.each(function(){var n,i=cs.select(this),a=i.select("text");if(a.node()){var o=parseFloat(a.attr("x")||0),s=parseFloat(a.attr("y")||0),l=(i.attr("transform")||"").match(xXe);t===1&&r===1?n=[]:n=[a2(o,s),"scale("+t+","+r+")",a2(-o,-s)],l&&n.push(l),i.attr("transform",n.join(""))}})};function OL(e,t){var r;return e&&(r=e.mf),r===void 0&&(r=t.marker&&t.marker.standoff||0),!t._geo&&!t._xA?-r:r}wr.getMarkerStandoff=OL;var i2=Math.atan2,Jp=Math.cos,U1=Math.sin;function UJ(e,t){var r=t[0],n=t[1];return[r*Jp(e)-n*U1(e),r*U1(e)+n*Jp(e)]}var HJ,jJ,VJ,YJ,qL,FL;function BL(e,t){var r=e.ma;r===void 0&&(r=t.marker.angle,(!r||Yi.isArrayOrTypedArray(r))&&(r=0));var n,i,a=t.marker.angleref;if(a==="previous"||a==="north"){if(t._geo){var o=t._geo.project(e.lonlat);n=o[0],i=o[1]}else{var s=t._xA,l=t._yA;if(s&&l)n=s.c2p(e.x),i=l.c2p(e.y);else return 90}if(t._geo){var u=e.lonlat[0],f=e.lonlat[1],c=t._geo.project([u,f+1e-5]),h=t._geo.project([u+1e-5,f]),d=i2(h[1]-i,h[0]-n),v=i2(c[1]-i,c[0]-n),m;if(a==="north")m=r/180*Math.PI;else if(a==="previous"){var b=u/180*Math.PI,g=f/180*Math.PI,_=HJ/180*Math.PI,T=jJ/180*Math.PI,w=_-b,k=Jp(T)*U1(w),x=U1(T)*Jp(g)-Jp(T)*U1(g)*Jp(w);m=-i2(k,x)-Math.PI,HJ=u,jJ=f}var M=UJ(d,[Jp(m),0]),A=UJ(v,[U1(m),0]);r=i2(M[1]+A[1],M[0]+A[0])/Math.PI*180,a==="previous"&&!(FL===t.uid&&e.i===qL+1)&&(r=null)}if(a==="previous"&&!t._geo)if(FL===t.uid&&e.i===qL+1&&Qp(n)&&Qp(i)){var p=n-VJ,S=i-YJ,y=t.line&&t.line.shape||"",E=y.slice(y.length-1);E==="h"&&(S=0),E==="v"&&(p=0),r+=i2(S,p)/Math.PI*180+90}else r=null}return VJ=n,YJ=i,qL=e.i,FL=t.uid,r}wr.getMarkerAngle=BL});var tg=J((N8t,o$)=>{"use strict";var H1=Nr(),bXe=dn(),wXe=ea(),UL=zr(),eg=gt(),n$=eg.strTranslate,lA=ln(),uA=qr(),j1=ca(),i$=w1(),_Xe=Vo().OPPOSITE_SIDE,a$=/ [XY][0-9]* /,HL=1.6,jL=1.6;function TXe(e,t,r){var n=e._fullLayout,i=r.propContainer,a=r.propName,o=r.placeholder,s=r.traceIndex,l=r.avoid||{},u=r.attributes,f=r.transform,c=r.containerGroup,h=1,d=i.title,v=(d&&d.text?d.text:"").trim(),m=!1,b=d&&d.font?d.font:{},g=b.family,_=b.size,T=b.color,w=b.weight,k=b.style,x=b.variant,M=b.textcase,A=b.lineposition,p=b.shadow,S=r.subtitlePropName,y=!!S,E=r.subtitlePlaceholder,C=(i.title||{}).subtitle||{text:"",font:{}},L=C.text.trim(),R=!1,I=1,P=C.font,D=P.family,q=P.size,N=P.color,U=P.weight,G=P.style,ee=P.variant,Q=P.textcase,j=P.lineposition,O=P.shadow,Z;a==="title.text"?Z="titleText":a.indexOf("axis")!==-1?Z="axisTitleText":a.indexOf("colorbar"!==-1)&&(Z="colorbarTitleText");var K=e._context.edits[Z];function $(Re,ze){return Re===void 0||ze===void 0?!1:Re.replace(a$," % ")===ze.replace(a$," % ")}v===""?h=0:$(v,o)&&(K||(v=""),h=.2,m=!0),y&&(L===""?I=0:$(L,E)&&(K||(L=""),I=.2,R=!0)),r._meta?v=eg.templateString(v,r._meta):n._meta&&(v=eg.templateString(v,n._meta));var oe=v||L||K,te;c||(c=eg.ensureSingle(n._infolayer,"g","g-"+t),te=n._hColorbarMoveTitle);var V=c.selectAll("text."+t).data(oe?[0]:[]);V.enter().append("text"),V.text(v).attr("class",t),V.exit().remove();var ne=null,W=t+"-subtitle",fe=L||K;if(y&&fe&&(ne=c.selectAll("text."+W).data(fe?[0]:[]),ne.enter().append("text"),ne.text(L).attr("class",W),ne.exit().remove()),!oe)return c;function ge(Re,ze){eg.syncOrAsync([Ce,Ne],{title:Re,subtitle:ze})}function Ce(Re){var ze=Re.title,Be=Re.subtitle,tt;!f&&te&&(f={}),f?(tt="",f.rotate&&(tt+="rotate("+[f.rotate,u.x,u.y]+")"),(f.offset||te)&&(tt+=n$(0,(f.offset||0)-(te||0)))):tt=null,ze.attr("transform",tt);function rt(Fe){if(Fe){var ke=H1.select(Fe.node().parentNode).select("."+W);if(!ke.empty()){var Ue=Fe.node().getBBox();if(Ue.height){var Ge=Ue.y+Ue.height+HL*q;ke.attr("y",Ge)}}}}if(ze.style("opacity",h*uA.opacity(T)).call(lA.font,{color:uA.rgb(T),size:H1.round(_,2),family:g,weight:w,style:k,variant:x,textcase:M,shadow:p,lineposition:A}).attr(u).call(j1.convertToTspans,e,rt),Be){var ce=c.select("."+t+"-math-group"),Ee=ze.node().getBBox(),Ae=ce.node()?ce.node().getBBox():void 0,Pe=Ae?Ae.y+Ae.height+HL*q:Ee.y+Ee.height+jL*q,He=eg.extendFlat({},u,{y:Pe});Be.attr("transform",tt),Be.style("opacity",I*uA.opacity(N)).call(lA.font,{color:uA.rgb(N),size:H1.round(q,2),family:D,weight:U,style:G,variant:ee,textcase:Q,shadow:O,lineposition:j}).attr(He).call(j1.convertToTspans,e)}return wXe.previousPromises(e)}function Ne(Re){var ze=Re.title,Be=H1.select(ze.node().parentNode);if(l&&l.selection&&l.side&&v){Be.attr("transform",null);var tt=_Xe[l.side],rt=l.side==="left"||l.side==="top"?-1:1,ce=bXe(l.pad)?l.pad:2,Ee=lA.bBox(Be.node()),Ae={t:0,b:0,l:0,r:0},Pe=e._fullLayout._reservedMargin;for(var He in Pe)for(var Fe in Pe[He]){var ke=Pe[He][Fe];Ae[Fe]=Math.max(Ae[Fe],ke)}var Ue={left:Ae.l,top:Ae.t,right:n.width-Ae.r,bottom:n.height-Ae.b},Ge=l.maxShift||rt*(Ue[l.side]-Ee[l.side]),lt=0;if(Ge<0)lt=Ge;else{var it=l.offsetLeft||0,wt=l.offsetTop||0;Ee.left-=it,Ee.right-=it,Ee.top-=wt,Ee.bottom-=wt,l.selection.each(function(){var Tt=lA.bBox(this);eg.bBoxIntersect(Ee,Tt,ce)&&(lt=Math.max(lt,rt*(Tt[l.side]-Ee[tt])+ce))}),lt=Math.min(Ge,lt),i._titleScoot=Math.abs(lt)}if(lt>0||Ge<0){var _t={left:[-lt,0],right:[lt,0],top:[0,-lt],bottom:[0,lt]}[l.side];Be.attr("transform",n$(_t[0],_t[1]))}}}V.call(ge,ne);function pe(Re,ze){Re.text(ze).on("mouseover.opacity",function(){H1.select(this).transition().duration(i$.SHOW_PLACEHOLDER).style("opacity",1)}).on("mouseout.opacity",function(){H1.select(this).transition().duration(i$.HIDE_PLACEHOLDER).style("opacity",0)})}if(K&&(v?V.on(".opacity",null):(pe(V,o),m=!0),V.call(j1.makeEditable,{gd:e}).on("edit",function(Re){s!==void 0?UL.call("_guiRestyle",e,a,Re,s):UL.call("_guiRelayout",e,a,Re)}).on("cancel",function(){this.text(this.attr("data-unformatted")).call(ge)}).on("input",function(Re){this.text(Re||" ").call(j1.positionText,u.x,u.y)}),y)){if(y&&!v){var me=V.node().getBBox(),Ie=me.y+me.height+jL*q;ne.attr("y",Ie)}L?ne.on(".opacity",null):(pe(ne,E),R=!0),ne.call(j1.makeEditable,{gd:e}).on("edit",function(Re){UL.call("_guiRelayout",e,"title.subtitle.text",Re)}).on("cancel",function(){this.text(this.attr("data-unformatted")).call(ge)}).on("input",function(Re){this.text(Re||" ").call(j1.positionText,ne.attr("x"),ne.attr("y"))})}return V.classed("js-placeholder",m),ne&&ne.classed("js-placeholder",R),c}o$.exports={draw:TXe,SUBTITLE_PADDING_EM:jL,SUBTITLE_PADDING_MATHJAX_EM:HL}});var Zv=J((O8t,c$)=>{"use strict";var AXe=Nr(),MXe=m1().utcFormat,ta=gt(),kXe=ta.numberFormat,Xh=dn(),c0=ta.cleanNumber,SXe=ta.ms2DateTime,s$=ta.dateTime2ms,Zh=ta.ensureNumber,l$=ta.isArrayOrTypedArray,h0=oi(),fA=h0.FP_SAFE,eh=h0.BADNUM,CXe=h0.LOG_CLIP,EXe=h0.ONEWEEK,cA=h0.ONEDAY,hA=h0.ONEHOUR,u$=h0.ONEMIN,f$=h0.ONESEC,vA=jo(),gA=Eo(),dA=gA.HOUR_PATTERN,pA=gA.WEEKDAY_PATTERN;function o2(e){return Math.pow(10,e)}function VL(e){return e!=null}c$.exports=function(t,r){r=r||{};var n=t._id||"x",i=n.charAt(0);function a(w,k){if(w>0)return Math.log(w)/Math.LN10;if(w<=0&&k&&t.range&&t.range.length===2){var x=t.range[0],M=t.range[1];return .5*(x+M-2*CXe*Math.abs(x-M))}else return eh}function o(w,k,x,M){if((M||{}).msUTC&&Xh(w))return+w;var A=s$(w,x||t.calendar);if(A===eh)if(Xh(w)){w=+w;var p=Math.floor(ta.mod(w+.05,1)*10),S=Math.round(w-p/10);A=s$(new Date(S))+p/10}else return eh;return A}function s(w,k,x){return SXe(w,k,x||t.calendar)}function l(w){return t._categories[Math.round(w)]}function u(w){if(VL(w)){if(t._categoriesMap===void 0&&(t._categoriesMap={}),t._categoriesMap[w]!==void 0)return t._categoriesMap[w];t._categories.push(typeof w=="number"?String(w):w);var k=t._categories.length-1;return t._categoriesMap[w]=k,k}return eh}function f(w,k){for(var x=new Array(k),M=0;Mt.range[1]&&(x=!x);for(var M=x?-1:1,A=M*w,p=0,S=0;SE)p=S+1;else{p=A<(y+E)/2?S:S+1;break}}var C=t._B[p]||0;return isFinite(C)?v(w,t._m2,C):0},g=function(w){var k=t._rangebreaks.length;if(!k)return m(w,t._m,t._b);for(var x=0,M=0;Mt._rangebreaks[M].pmax&&(x=M+1);return m(w,t._m2,t._B[x])}}t.c2l=t.type==="log"?a:Zh,t.l2c=t.type==="log"?o2:Zh,t.l2p=b,t.p2l=g,t.c2p=t.type==="log"?function(w,k){return b(a(w,k))}:b,t.p2c=t.type==="log"?function(w){return o2(g(w))}:g,["linear","-"].indexOf(t.type)!==-1?(t.d2r=t.r2d=t.d2c=t.r2c=t.d2l=t.r2l=c0,t.c2d=t.c2r=t.l2d=t.l2r=Zh,t.d2p=t.r2p=function(w){return t.l2p(c0(w))},t.p2d=t.p2r=g,t.cleanPos=Zh):t.type==="log"?(t.d2r=t.d2l=function(w,k){return a(c0(w),k)},t.r2d=t.r2c=function(w){return o2(c0(w))},t.d2c=t.r2l=c0,t.c2d=t.l2r=Zh,t.c2r=a,t.l2d=o2,t.d2p=function(w,k){return t.l2p(t.d2r(w,k))},t.p2d=function(w){return o2(g(w))},t.r2p=function(w){return t.l2p(c0(w))},t.p2r=g,t.cleanPos=Zh):t.type==="date"?(t.d2r=t.r2d=ta.identity,t.d2c=t.r2c=t.d2l=t.r2l=o,t.c2d=t.c2r=t.l2d=t.l2r=s,t.d2p=t.r2p=function(w,k,x){return t.l2p(o(w,0,x))},t.p2d=t.p2r=function(w,k,x){return s(g(w),k,x)},t.cleanPos=function(w){return ta.cleanDate(w,eh,t.calendar)}):t.type==="category"?(t.d2c=t.d2l=u,t.r2d=t.c2d=t.l2d=l,t.d2r=t.d2l_noadd=h,t.r2c=function(w){var k=d(w);return k!==void 0?k:t.fraction2r(.5)},t.l2r=t.c2r=Zh,t.r2l=d,t.d2p=function(w){return t.l2p(t.r2c(w))},t.p2d=function(w){return l(g(w))},t.r2p=t.d2p,t.p2r=g,t.cleanPos=function(w){return typeof w=="string"&&w!==""?w:Zh(w)}):t.type==="multicategory"&&(t.r2d=t.c2d=t.l2d=l,t.d2r=t.d2l_noadd=h,t.r2c=function(w){var k=h(w);return k!==void 0?k:t.fraction2r(.5)},t.r2c_just_indices=c,t.l2r=t.c2r=Zh,t.r2l=h,t.d2p=function(w){return t.l2p(t.r2c(w))},t.p2d=function(w){return l(g(w))},t.r2p=t.d2p,t.p2r=g,t.cleanPos=function(w){return Array.isArray(w)||typeof w=="string"&&w!==""?w:Zh(w)},t.setupMultiCategory=function(w){var k=t._traceIndices,x,M,A=t._matchGroup;if(A&&t._categories.length===0){for(var p in A)if(p!==n){var S=r[vA.id2name(p)];k=k.concat(S._traceIndices)}}var y=[[0,{}],[0,{}]],E=[];for(x=0;xS[1]&&(M[p?0:1]=x),M[0]===M[1]){var y=t.l2r(k),E=t.l2r(x);if(k!==void 0){var C=y+1;x!==void 0&&(C=Math.min(C,E)),M[p?1:0]=C}if(x!==void 0){var L=E+1;k!==void 0&&(L=Math.max(L,y)),M[p?0:1]=L}}}},t.cleanRange=function(w,k){t._cleanRange(w,k),t.limitRange(w)},t._cleanRange=function(w,k){k||(k={}),w||(w="range");var x=ta.nestedProperty(t,w).get(),M,A;if(t.type==="date"?A=ta.dfltRange(t.calendar):i==="y"?A=gA.DFLTRANGEY:t._name==="realaxis"?A=[0,1]:A=k.dfltRange||gA.DFLTRANGEX,A=A.slice(),(t.rangemode==="tozero"||t.rangemode==="nonnegative")&&(A[0]=0),!x||x.length!==2){ta.nestedProperty(t,w).set(A);return}var p=x[0]===null,S=x[1]===null;for(t.type==="date"&&!t.autorange&&(x[0]=ta.cleanDate(x[0],eh,t.calendar),x[1]=ta.cleanDate(x[1],eh,t.calendar)),M=0;M<2;M++)if(t.type==="date"){if(!ta.isDateTime(x[M],t.calendar)){t[w]=A;break}if(t.r2l(x[0])===t.r2l(x[1])){var y=ta.constrain(t.r2l(x[0]),ta.MIN_MS+1e3,ta.MAX_MS-1e3);x[0]=t.l2r(y-1e3),x[1]=t.l2r(y+1e3);break}}else{if(!Xh(x[M]))if(!(p||S)&&Xh(x[1-M]))x[M]=x[1-M]*(M?10:.1);else{t[w]=A;break}if(x[M]<-fA?x[M]=-fA:x[M]>fA&&(x[M]=fA),x[0]===x[1]){var E=Math.max(1,Math.abs(x[0]*1e-6));x[0]-=E,x[1]+=E}}},t.setScale=function(w){var k=r._size;if(t.overlaying){var x=vA.getFromId({_fullLayout:r},t.overlaying);t.domain=x.domain}var M=w&&t._r?"_r":"range",A=t.calendar;t.cleanRange(M);var p=t.r2l(t[M][0],A),S=t.r2l(t[M][1],A),y=i==="y";if(y?(t._offset=k.t+(1-t.domain[1])*k.h,t._length=k.h*(t.domain[1]-t.domain[0]),t._m=t._length/(p-S),t._b=-t._m*S):(t._offset=k.l+t.domain[0]*k.w,t._length=k.w*(t.domain[1]-t.domain[0]),t._m=t._length/(S-p),t._b=-t._m*p),t._rangebreaks=[],t._lBreaks=0,t._m2=0,t._B=[],t.rangebreaks){var E,C;if(t._rangebreaks=t.locateBreaks(Math.min(p,S),Math.max(p,S)),t._rangebreaks.length){for(E=0;ES&&(L=!L),L&&t._rangebreaks.reverse();var R=L?-1:1;for(t._m2=R*t._length/(Math.abs(S-p)-t._lBreaks),t._B.push(-t._m2*(y?S:p)),E=0;EA&&(A+=7,pA&&(A+=24,p=M&&p=M&&w=O.min&&(GO.max&&(O.max=ee),Q=!1)}Q&&S.push({min:G,max:ee})}};for(x=0;x{"use strict";var h$=dn(),YL=gt(),LXe=oi().BADNUM,mA=YL.isArrayOrTypedArray,DXe=YL.isDateTime,RXe=YL.cleanNumber,v$=Math.round;p$.exports=function(t,r,n){var i=t,a=n.noMultiCategory;if(mA(i)&&!i.length)return"-";if(!a&&zXe(i))return"multicategory";if(a&&Array.isArray(i[0])){for(var o=[],s=0;sa*2}function d$(e){return Math.max(1,(e-1)/1e3)}function FXe(e,t){for(var r=e.length,n=d$(r),i=0,a=0,o={},s=0;si*2}function zXe(e){return mA(e[0])&&mA(e[1])}});var ec=J((U8t,T$)=>{"use strict";var NXe=Nr(),x$=dn(),v0=gt(),yA=oi().FP_SAFE,OXe=zr(),BXe=ln(),b$=jo(),UXe=b$.getFromId,HXe=b$.isLinked;T$.exports={applyAutorangeOptions:_$,getAutoRange:GL,makePadFn:WL,doAutoRange:VXe,findExtremes:YXe,concatExtremes:JL};function GL(e,t){var r,n,i=[],a=e._fullLayout,o=WL(a,t,0),s=WL(a,t,1),l=JL(e,t),u=l.min,f=l.max;if(u.length===0||f.length===0)return v0.simpleMap(t.range,t.r2l);var c=u[0].val,h=f[0].val;for(r=1;r0&&(S=T-o(x)-s(M),S>w?y/S>k&&(A=x,p=M,k=y/S):y/T>k&&(A={val:x.val,nopad:1},p={val:M.val,nopad:1},k=y/T));function E(P,D){return Math.max(P,s(D))}if(c===h){var C=c-1,L=c+1;if(g)if(c===0)i=[0,1];else{var R=(c>0?f:u).reduce(E,0),I=c/(1-Math.min(.5,R/T));i=c>0?[0,I]:[I,0]}else _?i=[Math.max(0,C),Math.max(1,L)]:i=[C,L]}else g?(A.val>=0&&(A={val:0,nopad:1}),p.val<=0&&(p={val:0,nopad:1})):_&&(A.val-k*o(A)<0&&(A={val:0,nopad:1}),p.val<=0&&(p={val:1,nopad:1})),k=(p.val-A.val-g$(t,x.val,M.val))/(T-o(A)-s(p)),i=[A.val-k*o(A),p.val+k*s(p)];return i=_$(i,t),t.limitRange&&t.limitRange(),v&&i.reverse(),v0.simpleMap(i,t.l2r||Number)}function g$(e,t,r){var n=0;if(e.rangebreaks)for(var i=e.locateBreaks(t,r),a=0;a0?r.ppadplus:r.ppadminus)||r.ppad||0),x=w((e._m>0?r.ppadminus:r.ppadplus)||r.ppad||0),M=w(r.vpadplus||r.vpad),A=w(r.vpadminus||r.vpad);if(!u){if(_=1/0,T=-1/0,l)for(c=0;c0&&(_=h),h>T&&h-yA&&(_=h),h>T&&h=y;c--)S(c);return{min:n,max:i,opts:r}}function XL(e,t,r,n){w$(e,t,r,n,GXe)}function ZL(e,t,r,n){w$(e,t,r,n,WXe)}function w$(e,t,r,n,i){for(var a=n.tozero,o=n.extrapad,s=!0,l=0;l=r&&(u.extrapad||!o)){s=!1;break}else i(t,u.val)&&u.pad<=r&&(o||!u.extrapad)&&(e.splice(l,1),l--)}if(s){var f=a&&t===0;e.push({val:t,pad:f?0:r,extrapad:f?!1:o})}}function y$(e){return x$(e)&&Math.abs(e)=t}function XXe(e,t){var r=t.autorangeoptions;return r&&r.minallowed!==void 0&&xA(t,r.minallowed,r.maxallowed)?r.minallowed:r&&r.clipmin!==void 0&&xA(t,r.clipmin,r.clipmax)?Math.max(e,t.d2l(r.clipmin)):e}function ZXe(e,t){var r=t.autorangeoptions;return r&&r.maxallowed!==void 0&&xA(t,r.minallowed,r.maxallowed)?r.maxallowed:r&&r.clipmax!==void 0&&xA(t,r.clipmin,r.clipmax)?Math.min(e,t.d2l(r.clipmax)):e}function xA(e,t,r){return t!==void 0&&r!==void 0?(t=e.d2l(t),r=e.d2l(r),t=l&&(a=l,r=l),o<=l&&(o=l,n=l)}}return r=XXe(r,t),n=ZXe(n,t),[r,n]}});var nn=J((H8t,Y$)=>{"use strict";var tc=Nr(),Do=dn(),Y1=ea(),l2=zr(),pn=gt(),G1=pn.strTranslate,rg=ca(),JXe=tg(),u2=qr(),Mf=ln(),$Xe=hl(),A$=yL(),Xs=oi(),KXe=Xs.ONEMAXYEAR,_A=Xs.ONEAVGYEAR,TA=Xs.ONEMINYEAR,QXe=Xs.ONEMAXQUARTER,eD=Xs.ONEAVGQUARTER,AA=Xs.ONEMINQUARTER,eZe=Xs.ONEMAXMONTH,W1=Xs.ONEAVGMONTH,MA=Xs.ONEMINMONTH,kf=Xs.ONEWEEK,ql=Xs.ONEDAY,d0=ql/2,$h=Xs.ONEHOUR,f2=Xs.ONEMIN,kA=Xs.ONESEC,tZe=Xs.ONEMILLI,rZe=Xs.ONEMICROSEC,ng=Xs.MINUS_SIGN,EA=Xs.BADNUM,tD={K:"zeroline"},rD={K:"gridline",L:"path"},nD={K:"minor-gridline",L:"path"},q$={K:"tick",L:"path"},M$={K:"tick",L:"text"},k$={width:["x","r","l","xl","xr"],height:["y","t","b","yt","yb"],right:["r","xr"],left:["l","xl"],top:["t","yt"],bottom:["b","yb"]},LA=Vo(),s2=LA.MID_SHIFT,ig=LA.CAP_SHIFT,c2=LA.LINE_SPACING,nZe=LA.OPPOSITE_SIDE,SA=3,hr=Y$.exports={};hr.setConvert=Zv();var iZe=V1(),Jv=jo(),aZe=Jv.idSort,oZe=Jv.isLinked;hr.id2name=Jv.id2name;hr.name2id=Jv.name2id;hr.cleanId=Jv.cleanId;hr.list=Jv.list;hr.listIds=Jv.listIds;hr.getFromId=Jv.getFromId;hr.getFromTrace=Jv.getFromTrace;var F$=ec();hr.getAutoRange=F$.getAutoRange;hr.findExtremes=F$.findExtremes;var sZe=1e-4;function sD(e){var t=(e[1]-e[0])*sZe;return[e[0]-t,e[1]+t]}hr.coerceRef=function(e,t,r,n,i,a){var o=n.charAt(n.length-1),s=r._fullLayout._subplots[o+"axis"],l=n+"ref",u={};return i||(i=s[0]||(typeof a=="string"?a:a[0])),a||(a=i),s=s.concat(s.map(function(f){return f+" domain"})),u[l]={valType:"enumerated",values:s.concat(a?typeof a=="string"?[a]:a:[]),dflt:i},pn.coerce(e,t,u,l)};hr.getRefType=function(e){return e===void 0?e:e==="paper"?"paper":e==="pixel"?"pixel":/( domain)$/.test(e)?"domain":"range"};hr.coercePosition=function(e,t,r,n,i,a){var o,s,l=hr.getRefType(n);if(l!=="range")o=pn.ensureNumber,s=r(i,a);else{var u=hr.getFromId(t,n);a=u.fraction2r(a),s=r(i,a),o=u.cleanPos}e[i]=o(s)};hr.cleanPosition=function(e,t,r){var n=r==="paper"||r==="pixel"?pn.ensureNumber:hr.getFromId(t,r).cleanPos;return n(e)};hr.redrawComponents=function(e,t){t=t||hr.listIds(e);var r=e._fullLayout;function n(i,a,o,s){for(var l=l2.getComponentMethod(i,a),u={},f=0;f2e-6||((r-e._forceTick0)/e._minDtick%1+1.000001)%1>2e-6)&&(e._minDtick=0))};hr.saveRangeInitial=function(e,t){for(var r=hr.list(e,"",!0),n=!1,i=0;ic*.3||u(n)||u(i))){var h=r.dtick/2;e+=e+ho){var s=Number(r.substr(1));a.exactYears>o&&s%12===0?e=hr.tickIncrement(e,"M6","reverse")+ql*1.5:a.exactMonths>o?e=hr.tickIncrement(e,"M1","reverse")+ql*15.5:e-=d0;var l=hr.tickIncrement(e,r);if(l<=n)return l}return e}hr.prepMinorTicks=function(e,t,r){if(!t.minor.dtick){delete e.dtick;var n=t.dtick&&Do(t._tmin),i;if(n){var a=hr.tickIncrement(t._tmin,t.dtick,!0);i=[t._tmin,a*.99+t._tmin*.01]}else{var o=pn.simpleMap(t.range,t.r2l);i=[o[0],.8*o[0]+.2*o[1]]}if(e.range=pn.simpleMap(i,t.l2r),e._isMinor=!0,hr.prepTicks(e,r),n){var s=Do(t.dtick),l=Do(e.dtick),u=s?t.dtick:+t.dtick.substring(1),f=l?e.dtick:+e.dtick.substring(1);s&&l?$L(u,f)?u===2*kf&&f===2*ql&&(e.dtick=kf):u===2*kf&&f===3*ql?e.dtick=kf:u===kf&&!(t._input.minor||{}).nticks?e.dtick=ql:E$(u/f,2.5)?e.dtick=u/2:e.dtick=u:String(t.dtick).charAt(0)==="M"?l?e.dtick="M1":$L(u,f)?u>=12&&f===2&&(e.dtick="M3"):e.dtick=t.dtick:String(e.dtick).charAt(0)==="L"?String(t.dtick).charAt(0)==="L"?$L(u,f)||(e.dtick=E$(u/f,2.5)?t.dtick/2:t.dtick):e.dtick="D1":e.dtick==="D2"&&+t.dtick>1&&(e.dtick=1)}e.range=t.range}t.minor._tick0Init===void 0&&(e.tick0=t.tick0)};function $L(e,t){return Math.abs((e/t+.5)%1-.5)<.001}function E$(e,t){return Math.abs(e/t-1)<.001}hr.prepTicks=function(e,t){var r=pn.simpleMap(e.range,e.r2l,void 0,void 0,t);if(e.tickmode==="auto"||!e.dtick){var n=e.nticks,i;n||(e.type==="category"||e.type==="multicategory"?(i=e.tickfont?pn.bigFont(e.tickfont.size||12):15,n=e._length/i):(i=e._id.charAt(0)==="y"?40:80,n=pn.constrain(e._length/i,4,9)+1),e._name==="radialaxis"&&(n*=2)),e.minor&&e.minor.tickmode!=="array"||e.tickmode==="array"&&(n*=100),e._roughDTick=Math.abs(r[1]-r[0])/n,hr.autoTicks(e,e._roughDTick),e._minDtick>0&&e.dtick0?(a=n-1,o=n):(a=n,o=n);var s=e[a].value,l=e[o].value,u=Math.abs(l-s),f=r||u,c=0;f>=TA?u>=TA&&u<=KXe?c=u:c=_A:r===eD&&f>=AA?u>=AA&&u<=QXe?c=u:c=eD:f>=MA?u>=MA&&u<=eZe?c=u:c=W1:r===kf&&f>=kf?c=kf:f>=ql?c=ql:r===d0&&f>=d0?c=d0:r===$h&&f>=$h&&(c=$h);var h;c>=u&&(c=u,h=!0);var d=i+c;if(t.rangebreaks&&c>0){for(var v=84,m=0,b=0;bkf&&(c=u)}(c>0||n===0)&&(e[n].periodX=i+c/2)}}hr.calcTicks=function(t,r){for(var n=t.type,i=t.calendar,a=t.ticklabelstep,o=t.ticklabelmode==="period",s=t.range[0]>t.range[1],l=!t.ticklabelindex||pn.isArrayOrTypedArray(t.ticklabelindex)?t.ticklabelindex:[t.ticklabelindex],u=pn.simpleMap(t.range,t.r2l,void 0,void 0,r),f=u[1]=(T?0:1);w--){var k=!w;w?(t._dtickInit=t.dtick,t._tick0Init=t.tick0):(t.minor._dtickInit=t.minor.dtick,t.minor._tick0Init=t.minor.tick0);var x=w?t:pn.extendFlat({},t,t.minor);if(k?hr.prepMinorTicks(x,t,r):hr.prepTicks(x,r),x.tickmode==="array"){w?(b=[],v=L$(t,!k)):(g=[],m=L$(t,!k));continue}if(x.tickmode==="sync"){b=[],v=vZe(t);continue}var M=sD(u),A=M[0],p=M[1],S=Do(x.dtick),y=n==="log"&&!(S||x.dtick.charAt(0)==="L"),E=hr.tickFirst(x,r);if(w){if(t._tmin=E,E=p:L<=p;L=hr.tickIncrement(L,P,f,i)){if(w&&R++,x.rangebreaks&&!f){if(L=h)break}if(b.length>d||L===C)break;C=L;var D={value:L};w?(y&&L!==(L|0)&&(D.simpleLabel=!0),a>1&&R%a&&(D.skipLabel=!0),b.push(D)):(D.minor=!0,g.push(D))}}if(!g||g.length<2)l=!1;else{var q=(g[1].value-g[0].value)*(s?-1:1);zZe(q,t.tickformat)||(l=!1)}if(!l)_=b;else{var N=b.concat(g);o&&b.length&&(N=N.slice(1)),N=N.sort(function(Ie,Re){return Ie.value-Re.value}).filter(function(Ie,Re,ze){return Re===0||Ie.value!==ze[Re-1].value});var U=N.map(function(Ie,Re){return Ie.minor===void 0&&!Ie.skipLabel?Re:null}).filter(function(Ie){return Ie!==null});U.forEach(function(Ie){l.map(function(Re){var ze=Ie+Re;ze>=0&&ze-1;oe--){if(b[oe].drop){b.splice(oe,1);continue}b[oe].value=QL(b[oe].value,t);var W=t.c2p(b[oe].value);(te?ne>W-V:neh||Beh&&(ze.periodX=h),Bei&&h_A)t/=_A,n=i(10),e.dtick="M"+12*Jh(t,n,bA);else if(a>W1)t/=W1,e.dtick="M"+Jh(t,1,D$);else if(a>ql){if(e.dtick=Jh(t,ql,e._hasDayOfWeekBreaks?[1,2,7,14]:dZe),!r){var o=hr.getTickFormat(e),s=e.ticklabelmode==="period";s&&(e._rawTick0=e.tick0),/%[uVW]/.test(o)?e.tick0=pn.dateTick0(e.calendar,2):e.tick0=pn.dateTick0(e.calendar,1),s&&(e._dowTick0=e.tick0)}}else a>$h?e.dtick=Jh(t,$h,D$):a>f2?e.dtick=Jh(t,f2,R$):a>kA?e.dtick=Jh(t,kA,R$):(n=i(10),e.dtick=Jh(t,n,bA))}else if(e.type==="log"){e.tick0=0;var l=pn.simpleMap(e.range,e.r2l);if(e._isMinor&&(t*=1.5),t>.7)e.dtick=Math.ceil(t);else if(Math.abs(l[1]-l[0])<1){var u=1.5*Math.abs((l[1]-l[0])/t);t=Math.abs(Math.pow(10,l[1])-Math.pow(10,l[0]))/u,n=i(10),e.dtick="L"+Jh(t,n,bA)}else e.dtick=t>.3?"D2":"D1"}else e.type==="category"||e.type==="multicategory"?(e.tick0=0,e.dtick=Math.ceil(Math.max(t,1))):fD(e)?(e.tick0=0,n=1,e.dtick=Jh(t,n,pZe)):(e.tick0=0,n=i(10),e.dtick=Jh(t,n,bA));if(e.dtick===0&&(e.dtick=1),!Do(e.dtick)&&typeof e.dtick!="string"){var f=e.dtick;throw e.dtick=1,"ax.dtick error: "+String(f)}};function B$(e){var t=e.dtick;if(e._tickexponent=0,!Do(t)&&typeof t!="string"&&(t=1),(e.type==="category"||e.type==="multicategory")&&(e._tickround=null),e.type==="date"){var r=e.r2l(e.tick0),n=e.l2r(r).replace(/(^-|i)/g,""),i=n.length;if(String(t).charAt(0)==="M")i>10||n.substr(5)!=="01-01"?e._tickround="d":e._tickround=+t.substr(1)%12===0?"y":"m";else if(t>=ql&&i<=10||t>=ql*15)e._tickround="d";else if(t>=f2&&i<=16||t>=$h)e._tickround="M";else if(t>=kA&&i<=19||t>=f2)e._tickround="S";else{var a=e.l2r(r+t).replace(/^-/,"").length;e._tickround=Math.max(i,a)-20,e._tickround<0&&(e._tickround=4)}}else if(Do(t)||t.charAt(0)==="L"){var o=e.range.map(e.r2d||Number);Do(t)||(t=Number(t.substr(1))),e._tickround=2-Math.floor(Math.log(t)/Math.LN10+.01);var s=Math.max(Math.abs(o[0]),Math.abs(o[1])),l=Math.floor(Math.log(s)/Math.LN10+.01),u=e.minexponent===void 0?3:e.minexponent;Math.abs(l)>u&&(CA(e.exponentformat)&&!lD(l)?e._tickexponent=3*Math.round((l-1)/3):e._tickexponent=l)}else e._tickround=null}hr.tickIncrement=function(e,t,r,n){var i=r?-1:1;if(Do(t))return pn.increment(e,i*t);var a=t.charAt(0),o=i*Number(t.substr(1));if(a==="M")return pn.incrementMonth(e,o,n);if(a==="L")return Math.log(Math.pow(10,e)+o)/Math.LN10;if(a==="D"){var s=t==="D2"?O$:N$,l=e+i*.01,u=pn.roundUp(pn.mod(l,1),s,r);return Math.floor(l)+Math.log(tc.round(Math.pow(10,u),1))/Math.LN10}throw"unrecognized dtick "+String(t)};hr.tickFirst=function(e,t){var r=e.r2l||Number,n=pn.simpleMap(e.range,r,void 0,void 0,t),i=n[1]=0&&g<=e._length?b:null};if(a&&pn.isArrayOrTypedArray(e.ticktext)){var c=pn.simpleMap(e.range,e.r2l),h=(Math.abs(c[1]-c[0])-(e._lBreaks||0))/1e4;for(u=0;u"+s;else{var u=v2(e),f=e._trueSide||e.side;(!u&&f==="top"||u&&f==="bottom")&&(o+=" ")}t.text=o}function mZe(e,t,r,n,i){var a=e.dtick,o=t.x,s=e.tickformat,l=typeof a=="string"&&a.charAt(0);if(i==="never"&&(i=""),n&&l!=="L"&&(a="L3",l="L"),s||l==="L")t.text=h2(Math.pow(10,o),e,i,n);else if(Do(a)||l==="D"&&pn.mod(o+.01,1)<.1){var u=Math.round(o),f=Math.abs(u),c=e.exponentformat;c==="power"||CA(c)&&lD(u)?(u===0?t.text=1:u===1?t.text="10":t.text="10"+(u>1?"":ng)+f+"",t.fontSize*=1.25):(c==="e"||c==="E")&&f>2?t.text="1"+c+(u>0?"+":ng)+f:(t.text=h2(Math.pow(10,o),e,"","fakehover"),a==="D1"&&e._id.charAt(0)==="y"&&(t.dy-=t.fontSize/6))}else if(l==="D")t.text=String(Math.round(Math.pow(10,pn.mod(o,1)))),t.fontSize*=.75;else throw"unrecognized dtick "+String(a);if(e.dtick==="D1"){var h=String(t.text).charAt(0);(h==="0"||h==="1")&&(e._id.charAt(0)==="y"?t.dx-=t.fontSize/4:(t.dy+=t.fontSize/2,t.dx+=(e.range[1]>e.range[0]?1:-1)*t.fontSize*(o<0?.5:.25)))}}function yZe(e,t){var r=e._categories[Math.round(t.x)];r===void 0&&(r=""),t.text=String(r)}function xZe(e,t,r){var n=Math.round(t.x),i=e._categories[n]||[],a=i[1]===void 0?"":String(i[1]),o=i[0]===void 0?"":String(i[0]);r?t.text=o+" - "+a:(t.text=a,t.text2=o)}function bZe(e,t,r,n,i){i==="never"?i="":e.showexponent==="all"&&Math.abs(t.x/e.dtick)<1e-6&&(i="hide"),t.text=h2(t.x,e,i,n)}function wZe(e,t,r,n,i){if(e.thetaunit==="radians"&&!r){var a=t.x/180;if(a===0)t.text="0";else{var o=_Ze(a);if(o[1]>=100)t.text=h2(pn.deg2rad(t.x),e,i,n);else{var s=t.x<0;o[1]===1?o[0]===1?t.text="\u03C0":t.text=o[0]+"\u03C0":t.text=["",o[0],"","\u2044","",o[1],"","\u03C0"].join(""),s&&(t.text=ng+t.text)}}}else t.text=h2(t.x,e,i,n)}function _Ze(e){function t(s,l){return Math.abs(s-l)<=1e-6}function r(s,l){return t(l,0)?s:r(l,s%l)}function n(s){for(var l=1;!t(Math.round(s*l)/l,s);)l*=10;return l}var i=n(e),a=e*i,o=Math.abs(r(a,i));return[Math.round(a/o),Math.round(i/o)]}var TZe=["f","p","n","\u03BC","m","","k","M","G","T"];function CA(e){return e==="SI"||e==="B"}function lD(e){return e>14||e<-15}function h2(e,t,r,n){var i=e<0,a=t._tickround,o=r||t.exponentformat||"B",s=t._tickexponent,l=hr.getTickFormat(t),u=t.separatethousands;if(n){var f={exponentformat:o,minexponent:t.minexponent,dtick:t.showexponent==="none"?t.dtick:Do(e)&&Math.abs(e)||1,range:t.showexponent==="none"?t.range.map(t.r2d):[0,e||1]};B$(f),a=(Number(f._tickround)||0)+4,s=f._tickexponent,t.hoverformat&&(l=t.hoverformat)}if(l)return t._numFormat(l)(e).replace(/-/g,ng);var c=Math.pow(10,-a)/2;if(o==="none"&&(s=0),e=Math.abs(e),e"+v+"":o==="B"&&s===9?e+="B":CA(o)&&(e+=TZe[s/3+5])}return i?ng+e:e}hr.getTickFormat=function(e){var t;function r(l){return typeof l!="string"?l:Number(l.replace("M",""))*W1}function n(l,u){var f=["L","D"];if(typeof l==typeof u){if(typeof l=="number")return l-u;var c=f.indexOf(l.charAt(0)),h=f.indexOf(u.charAt(0));return c===h?Number(l.replace(/(L|D)/g,""))-Number(u.replace(/(L|D)/g,"")):c-h}else return typeof l=="number"?1:-1}function i(l,u,f){var c=f||function(v){return v},h=u[0],d=u[1];return(!h&&typeof h!="number"||c(h)<=c(l))&&(!d&&typeof d!="number"||c(d)>=c(l))}function a(l,u){var f=u[0]===null,c=u[1]===null,h=n(l,u[0])>=0,d=n(l,u[1])<=0;return(f||h)&&(c||d)}var o,s;if(e.tickformatstops&&e.tickformatstops.length>0)switch(e.type){case"date":case"linear":{for(t=0;t=0&&i.unshift(i.splice(f,1).shift())}});var s={false:{left:0,right:0}};return pn.syncOrAsync(i.map(function(l){return function(){if(l){var u=hr.getFromId(e,l);r||(r={}),r.axShifts=s,r.overlayingShiftedAx=o;var f=hr.drawOne(e,u,r);return u._shiftPusher&&oD(u,u._fullDepth||0,s,!0),u._r=u.range.slice(),u._rl=pn.simpleMap(u._r,u.r2l),f}}}))};hr.drawOne=function(e,t,r){r=r||{};var n=r.axShifts||{},i=r.overlayingShiftedAx||[],a,o,s;t.setScale();var l=e._fullLayout,u=t._id,f=u.charAt(0),c=hr.counterLetter(u),h=l._plots[t._mainSubplot];if(!h)return;if(t._shiftPusher=t.autoshift||i.indexOf(t._id)!==-1||i.indexOf(t.overlaying)!==-1,t._shiftPusher&t.anchor==="free"){var d=t.linewidth/2||0;t.ticks==="inside"&&(d+=t.ticklen),oD(t,d,n,!0),oD(t,t.shift||0,n,!1)}(r.skipTitle!==!0||t._shift===void 0)&&(t._shift=FZe(t,n));var v=h[f+"axislayer"],m=t._mainLinePosition,b=m+=t._shift,g=t._mainMirrorPosition,_=t._vals=hr.calcTicks(t),T=[t.mirror,b,g].join("_");for(a=0;a<_.length;a++)_[a].axInfo=T;t._selections={},t._tickAngles&&(t._prevTickAngles=t._tickAngles),t._tickAngles={},t._depth=null;var w={};function k(pe){var me=u+(pe||"tick");return w[me]||(w[me]=SZe(t,me,b)),w[me]}if(t.visible){var x=hr.makeTransTickFn(t),M=hr.makeTransTickLabelFn(t),A,p,S=t.ticks==="inside",y=t.ticks==="outside";if(t.tickson==="boundaries"){var E=AZe(t,_);p=hr.clipEnds(t,E),A=S?p:E}else p=hr.clipEnds(t,_),A=S&&t.ticklabelmode!=="period"?p:_;var C=t._gridVals=p,L=kZe(t,_);if(!l._hasOnlyLargeSploms){var R=t._subplotsWith,I={};for(a=0;a0?ze.bottom-Ie:0,Re))));var ce=0,Ee=0;if(t._shiftPusher&&(ce=Math.max(Re,ze.height>0?pe==="l"?Ie-ze.left:ze.right-Ie:0),t.title.text!==l._dfltTitle[f]&&(Ee=(t._titleStandoff||0)+(t._titleScoot||0),pe==="l"&&(Ee+=I$(t))),t._fullDepth=Math.max(ce,Ee)),t.automargin){Be={x:0,y:0,r:0,l:0,t:0,b:0};var Ae=[0,1],Pe=typeof t._shift=="number"?t._shift:0;if(f==="x"){if(pe==="b"?Be[pe]=t._depth:(Be[pe]=t._depth=Math.max(ze.width>0?Ie-ze.top:0,Re),Ae.reverse()),ze.width>0){var He=ze.right-(t._offset+t._length);He>0&&(Be.xr=1,Be.r=He);var Fe=t._offset-ze.left;Fe>0&&(Be.xl=0,Be.l=Fe)}}else if(pe==="l"?(t._depth=Math.max(ze.height>0?Ie-ze.left:0,Re),Be[pe]=t._depth-Pe):(t._depth=Math.max(ze.height>0?ze.right-Ie:0,Re),Be[pe]=t._depth+Pe,Ae.reverse()),ze.height>0){var ke=ze.bottom-(t._offset+t._length);ke>0&&(Be.yb=0,Be.b=ke);var Ue=t._offset-ze.top;Ue>0&&(Be.yt=1,Be.t=Ue)}Be[c]=t.anchor==="free"?t.position:t._anchorAxis.domain[Ae[0]],t.title.text!==l._dfltTitle[f]&&(Be[pe]+=I$(t)+(t.title.standoff||0)),t.mirror&&t.anchor!=="free"&&(tt={x:0,y:0,r:0,l:0,t:0,b:0},tt[me]=t.linewidth,t.mirror&&t.mirror!==!0&&(tt[me]+=Re),t.mirror===!0||t.mirror==="ticks"?tt[c]=t._anchorAxis.domain[Ae[1]]:(t.mirror==="all"||t.mirror==="allticks")&&(tt[c]=[t._counterDomainMin,t._counterDomainMax][Ae[1]]))}Ne&&(rt=l2.getComponentMethod("rangeslider","autoMarginOpts")(e,t)),typeof t.automargin=="string"&&(P$(Be,t.automargin),P$(tt,t.automargin)),Y1.autoMargin(e,uD(t),Be),Y1.autoMargin(e,j$(t),tt),Y1.autoMargin(e,V$(t),rt)}),pn.syncOrAsync(ge)}};function P$(e,t){if(e){var r=Object.keys(k$).reduce(function(n,i){return t.indexOf(i)!==-1&&k$[i].forEach(function(a){n[a]=1}),n},{});Object.keys(e).forEach(function(n){r[n]||(n.length===1?e[n]=0:delete e[n])})}}function AZe(e,t){var r=[],n,i=function(a,o){var s=a.xbnd[o];s!==null&&r.push(pn.extendFlat({},a,{x:s}))};if(t.length){for(n=0;ne.range[1],s=e.ticklabelposition&&e.ticklabelposition.indexOf("inside")!==-1,l=!s;if(r){var u=o?-1:1;r=r*u}if(n){var f=e.side,c=s&&(f==="top"||f==="left")||l&&(f==="bottom"||f==="right")?1:-1;n=n*c}return e._id.charAt(0)==="x"?function(h){return G1(i+e._offset+e.l2p(iD(h))+r,a+n)}:function(h){return G1(a+n,i+e._offset+e.l2p(iD(h))+r)}};function iD(e){return e.periodX!==void 0?e.periodX:e.x}function CZe(e){var t=e.ticklabelposition||"",r=function(d){return t.indexOf(d)!==-1},n=r("top"),i=r("left"),a=r("right"),o=r("bottom"),s=r("inside"),l=o||i||n||a;if(!l&&!s)return[0,0];var u=e.side,f=l?(e.tickwidth||0)/2:0,c=SA,h=e.tickfont?e.tickfont.size:12;return(o||n)&&(f+=h*ig,c+=(e.linewidth||0)/2),(i||a)&&(f+=(e.linewidth||0)/2,c+=SA),s&&u==="top"&&(c-=h*(1-ig)),(i||n)&&(f=-f),(u==="bottom"||u==="right")&&(c=-c),[l?f:0,s?c:0]}hr.makeTickPath=function(e,t,r,n){n||(n={});var i=n.minor;if(i&&!e.minor)return"";var a=n.len!==void 0?n.len:i?e.minor.ticklen:e.ticklen,o=e._id.charAt(0),s=(e.linewidth||1)/2;return o==="x"?"M0,"+(t+s*r)+"v"+a*r:"M"+(t+s*r)+",0h"+a*r};hr.makeLabelFns=function(e,t,r){var n=e.ticklabelposition||"",i=function(E){return n.indexOf(E)!==-1},a=i("top"),o=i("left"),s=i("right"),l=i("bottom"),u=l||o||a||s,f=i("inside"),c=n==="inside"&&e.ticks==="inside"||!f&&e.ticks==="outside"&&e.tickson!=="boundaries",h=0,d=0,v=c?e.ticklen:0;if(f?v*=-1:u&&(v=0),c&&(h+=v,r)){var m=pn.deg2rad(r);h=v*Math.cos(m)+1,d=v*Math.sin(m)}e.showticklabels&&(c||e.showline)&&(h+=.2*e.tickfont.size),h+=(e.linewidth||1)/2*(f?-1:1);var b={labelStandoff:h,labelShift:d},g,_,T,w,k=0,x=e.side,M=e._id.charAt(0),A=e.tickangle,p;if(M==="x")p=!f&&x==="bottom"||f&&x==="top",w=p?1:-1,f&&(w*=-1),g=d*w,_=t+h*w,T=p?1:-.2,Math.abs(A)===90&&(f?T+=s2:A===-90&&x==="bottom"?T=ig:A===90&&x==="top"?T=s2:T=.5,k=s2/2*(A/90)),b.xFn=function(E){return E.dx+g+k*E.fontSize},b.yFn=function(E){return E.dy+_+E.fontSize*T},b.anchorFn=function(E,C){if(u){if(o)return"end";if(s)return"start"}return!Do(C)||C===0||C===180?"middle":C*w<0!==f?"end":"start"},b.heightFn=function(E,C,L){return C<-60||C>60?-.5*L:e.side==="top"!==f?-L:0};else if(M==="y"){if(p=!f&&x==="left"||f&&x==="right",w=p?1:-1,f&&(w*=-1),g=h,_=d*w,T=0,!f&&Math.abs(A)===90&&(A===-90&&x==="left"||A===90&&x==="right"?T=ig:T=.5),f){var S=Do(A)?+A:0;if(S!==0){var y=pn.deg2rad(S);k=Math.abs(Math.sin(y))*ig*w,T=0}}b.xFn=function(E){return E.dx+t-(g+E.fontSize*T)*w+k*E.fontSize},b.yFn=function(E){return E.dy+_+E.fontSize*s2},b.anchorFn=function(E,C){return Do(C)&&Math.abs(C)===90?"middle":p?"end":"start"},b.heightFn=function(E,C,L){return e.side==="right"&&(C*=-1),C<-30?-L:C<30?-.5*L:0}}return b};function DA(e){return[e.text,e.x,e.axInfo,e.font,e.fontSize,e.fontColor].join("_")}hr.drawTicks=function(e,t,r){r=r||{};var n=t._id+"tick",i=[].concat(t.minor&&t.minor.ticks?r.vals.filter(function(o){return o.minor&&!o.noTick}):[]).concat(t.ticks?r.vals.filter(function(o){return!o.minor&&!o.noTick}):[]),a=r.layer.selectAll("path."+n).data(i,DA);a.exit().remove(),a.enter().append("path").classed(n,1).classed("ticks",1).classed("crisp",r.crisp!==!1).each(function(o){return u2.stroke(tc.select(this),o.minor?t.minor.tickcolor:t.tickcolor)}).style("stroke-width",function(o){return Mf.crispRound(e,o.minor?t.minor.tickwidth:t.tickwidth,1)+"px"}).attr("d",r.path).style("display",null),RA(t,[q$]),a.attr("transform",r.transFn)};hr.drawGrid=function(e,t,r){if(r=r||{},t.tickmode!=="sync"){var n=t._id+"grid",i=t.minor&&t.minor.showgrid,a=i?r.vals.filter(function(g){return g.minor}):[],o=t.showgrid?r.vals.filter(function(g){return!g.minor}):[],s=r.counterAxis;if(s&&hr.shouldShowZeroLine(e,t,s))for(var l=t.tickmode==="array",u=0;u=0;v--){var m=v?h:d;if(m){var b=m.selectAll("path."+n).data(v?o:a,DA);b.exit().remove(),b.enter().append("path").classed(n,1).classed("crisp",r.crisp!==!1),b.attr("transform",r.transFn).attr("d",r.path).each(function(g){return u2.stroke(tc.select(this),g.minor?t.minor.gridcolor:t.gridcolor||"#ddd")}).style("stroke-dasharray",function(g){return Mf.dashStyle(g.minor?t.minor.griddash:t.griddash,g.minor?t.minor.gridwidth:t.gridwidth)}).style("stroke-width",function(g){return(g.minor?c:t._gw)+"px"}).style("display",null),typeof r.path=="function"&&b.attr("d",r.path)}}RA(t,[rD,nD])}};hr.drawZeroLine=function(e,t,r){r=r||r;var n=t._id+"zl",i=hr.shouldShowZeroLine(e,t,r.counterAxis),a=r.layer.selectAll("path."+n).data(i?[{x:0,id:t._id}]:[]);a.exit().remove(),a.enter().append("path").classed(n,1).classed("zl",1).classed("crisp",r.crisp!==!1).each(function(){r.layer.selectAll("path").sort(function(o,s){return aZe(o.id,s.id)})}),a.attr("transform",r.transFn).attr("d",r.path).call(u2.stroke,t.zerolinecolor||u2.defaultLine).style("stroke-width",Mf.crispRound(e,t.zerolinewidth,t._gw||1)+"px").style("display",null),RA(t,[tD])};hr.drawLabels=function(e,t,r){r=r||{};var n=e._fullLayout,i=t._id,a=r.cls||i+"tick",o=r.vals.filter(function(D){return D.text}),s=r.labelFns,l=r.secondary?0:t.tickangle,u=(t._prevTickAngles||{})[a],f=r.layer.selectAll("g."+a).data(t.showticklabels?o:[],DA),c=[];f.enter().append("g").classed(a,1).append("text").attr("text-anchor","middle").each(function(D){var q=tc.select(this),N=e._promises.length;q.call(rg.positionText,s.xFn(D),s.yFn(D)).call(Mf.font,{family:D.font,size:D.fontSize,color:D.fontColor,weight:D.fontWeight,style:D.fontStyle,variant:D.fontVariant,textcase:D.fontTextcase,lineposition:D.fontLineposition,shadow:D.fontShadow}).text(D.text).call(rg.convertToTspans,e),e._promises[N]?c.push(e._promises.pop().then(function(){h(q,l)})):h(q,l)}),RA(t,[M$]),f.exit().remove(),r.repositionOnUpdate&&f.each(function(D){tc.select(this).select("text").call(rg.positionText,s.xFn(D),s.yFn(D))});function h(D,q){D.each(function(N){var U=tc.select(this),G=U.select(".text-math-group"),ee=s.anchorFn(N,q),Q=r.transFn.call(U.node(),N)+(Do(q)&&+q!=0?" rotate("+q+","+s.xFn(N)+","+(s.yFn(N)-N.fontSize/2)+")":""),j=rg.lineCount(U),O=c2*N.fontSize,Z=s.heightFn(N,Do(q)?+q:0,(j-1)*O);if(Z&&(Q+=G1(0,Z)),G.empty()){var K=U.select("text");K.attr({transform:Q,"text-anchor":ee}),K.style("opacity",1),t._adjustTickLabelsOverflow&&t._adjustTickLabelsOverflow()}else{var $=Mf.bBox(G.node()).width,oe=$*{end:-.5,start:.5}[ee];G.attr("transform",Q+G1(oe,0))}})}t._adjustTickLabelsOverflow=function(){var D=t.ticklabeloverflow;if(!(!D||D==="allow")){var q=D.indexOf("hide")!==-1,N=t._id.charAt(0)==="x",U=0,G=N?e._fullLayout.width:e._fullLayout.height;if(D.indexOf("domain")!==-1){var ee=pn.simpleMap(t.range,t.r2l);U=t.l2p(ee[0])+t._offset,G=t.l2p(ee[1])+t._offset}var Q=Math.min(U,G),j=Math.max(U,G),O=t.side,Z=1/0,K=-1/0;f.each(function(V){var ne=tc.select(this),W=ne.select(".text-math-group");if(W.empty()){var fe=Mf.bBox(ne.node()),ge=0;N?(fe.right>j||fe.leftj||fe.top+(t.tickangle?0:V.fontSize/4)t["_visibleLabelMin_"+ee._id]?V.style("display","none"):j.K==="tick"&&!Q&&V.style("display",null)})})})})},h(f,u+1?u:l);function d(){return c.length&&Promise.all(c)}var v=null;function m(){if(h(f,l),o.length&&t.autotickangles&&(t.type!=="log"||String(t.dtick).charAt(0)!=="D")){v=t.autotickangles[0];var D=0,q=[],N,U=1;f.each(function(ze){D=Math.max(D,ze.fontSize);var Be=t.l2p(ze.x),tt=aD(this),rt=Mf.bBox(tt.node());U=Math.max(U,rg.lineCount(tt)),q.push({top:0,bottom:10,height:10,left:Be-rt.width/2,right:Be+rt.width/2+2,width:rt.width+2})});var G=(t.tickson==="boundaries"||t.showdividers)&&!r.secondary,ee=o.length,Q=Math.abs((o[ee-1].x-o[0].x)*t._m)/(ee-1),j=G?Q/2:Q,O=G?t.ticklen:D*1.25*U,Z=Math.sqrt(Math.pow(j,2)+Math.pow(O,2)),K=j/Z,$=t.autotickangles.map(function(ze){return ze*Math.PI/180}),oe=$.find(function(ze){return Math.abs(Math.cos(ze))<=K});oe===void 0&&(oe=$.reduce(function(ze,Be){return Math.abs(Math.cos(ze))R*L&&(y=L,A[M]=p[M]=E[M])}var I=Math.abs(y-S);I-w>0?(I-=w,w*=1+w/I):w=0,t._id.charAt(0)!=="y"&&(w=-w),A[x]=_.p2r(_.r2p(p[x])+k*w),_.autorange==="min"||_.autorange==="max reversed"?(A[0]=null,_._rangeInitial0=void 0,_._rangeInitial1=void 0):(_.autorange==="max"||_.autorange==="min reversed")&&(A[1]=null,_._rangeInitial0=void 0,_._rangeInitial1=void 0),n._insideTickLabelsUpdaterange[_._name+".range"]=A}var P=pn.syncOrAsync(b);return P&&P.then&&e._promises.push(P),P};function EZe(e,t,r){var n=t._id+"divider",i=r.vals,a=r.layer.selectAll("path."+n).data(i,DA);a.exit().remove(),a.enter().insert("path",":first-child").classed(n,1).classed("crisp",1).call(u2.stroke,t.dividercolor).style("stroke-width",Mf.crispRound(e,t.dividerwidth,1)+"px"),a.attr("transform",r.transFn).attr("d",r.path)}hr.getPxPosition=function(e,t){var r=e._fullLayout._size,n=t._id.charAt(0),i=t.side,a;if(t.anchor!=="free"?a=t._anchorAxis:n==="x"?a={_offset:r.t+(1-(t.position||0))*r.h,_length:0}:n==="y"&&(a={_offset:r.l+(t.position||0)*r.w+t._shift,_length:0}),i==="top"||i==="left")return a._offset;if(i==="bottom"||i==="right")return a._offset+a._length};function I$(e){var t=e.title.font.size,r=(e.title.text.match(rg.BR_TAG_ALL)||[]).length;return e.title.hasOwnProperty("standoff")?t*(ig+r*c2):r?t*(r+1)*c2:t}function LZe(e,t){var r=e._fullLayout,n=t._id,i=n.charAt(0),a=t.title.font.size,o,s=(t.title.text.match(rg.BR_TAG_ALL)||[]).length;if(t.title.hasOwnProperty("standoff"))t.side==="bottom"||t.side==="right"?o=t._depth+t.title.standoff+a*ig:(t.side==="top"||t.side==="left")&&(o=t._depth+t.title.standoff+a*(s2+s*c2));else{var l=v2(t);if(t.type==="multicategory")o=t._depth;else{var u=1.5*a;l&&(u=.5*a,t.ticks==="outside"&&(u+=t.ticklen)),o=10+u+(t.linewidth?t.linewidth-1:0)}l||(i==="x"?o+=t.side==="top"?a*(t.showticklabels?1:0):a*(t.showticklabels?1.5:.5):o+=t.side==="right"?a*(t.showticklabels?1:.5):a*(t.showticklabels?.5:0))}var f=hr.getPxPosition(e,t),c,h,d;i==="x"?(h=t._offset+t._length/2,d=t.side==="top"?f-o:f+o):(d=t._offset+t._length/2,h=t.side==="right"?f+o:f-o,c={rotate:"-90",offset:0});var v;if(t.type!=="multicategory"){var m=t._selections[t._id+"tick"];if(v={selection:m,side:t.side},m&&m.node()&&m.node().parentNode){var b=Mf.getTranslate(m.node().parentNode);v.offsetLeft=b.x,v.offsetTop=b.y}t.title.hasOwnProperty("standoff")&&(v.pad=0)}return t._titleStandoff=o,JXe.draw(e,n+"title",{propContainer:t,propName:t._name+".title.text",placeholder:r._dfltTitle[i],avoid:v,transform:c,attributes:{x:h,y:d,"text-anchor":"middle"}})}hr.shouldShowZeroLine=function(e,t,r){var n=pn.simpleMap(t.range,t.r2l);return n[0]*n[1]<=0&&t.zeroline&&(t.type==="linear"||t.type==="-")&&!(t.rangebreaks&&t.maskBreaks(0)===EA)&&(H$(t,0)||!DZe(e,t,r,n)||RZe(e,t))};hr.clipEnds=function(e,t){return t.filter(function(r){return H$(e,r.x)})};function H$(e,t){var r=e.l2p(t);return r>1&&r1)for(i=1;i=i.min&&e=rZe:/%L/.test(t)?e>=tZe:/%[SX]/.test(t)?e>=kA:/%M/.test(t)?e>=f2:/%[HI]/.test(t)?e>=$h:/%p/.test(t)?e>=d0:/%[Aadejuwx]/.test(t)?e>=ql:/%[UVW]/.test(t)?e>=kf:/%[Bbm]/.test(t)?e>=MA:/%[q]/.test(t)?e>=AA:/%[Yy]/.test(t)?e>=TA:!0}});var cD=J((j8t,G$)=>{"use strict";G$.exports=function(t,r,n){var i,a;if(n){var o=r==="reversed"||r==="min reversed"||r==="max reversed";i=n[o?1:0],a=n[o?0:1]}var s=t("autorangeoptions.minallowed",a===null?i:void 0),l=t("autorangeoptions.maxallowed",i===null?a:void 0);s===void 0&&t("autorangeoptions.clipmin"),l===void 0&&t("autorangeoptions.clipmax"),t("autorangeoptions.include")}});var hD=J((V8t,W$)=>{"use strict";var NZe=cD();W$.exports=function(t,r,n,i){var a=r._template||{},o=r.type||a.type||"-";n("minallowed"),n("maxallowed");var s=n("range");if(!s){var l;!i.noInsiderange&&o!=="log"&&(l=n("insiderange"),l&&(l[0]===null||l[1]===null)&&(r.insiderange=!1,l=void 0),l&&(s=n("range",l)))}var u=r.getAutorangeDflt(s,i),f=n("autorange",u),c;s&&(s[0]===null&&s[1]===null||(s[0]===null||s[1]===null)&&(f==="reversed"||f===!0)||s[0]!==null&&(f==="min"||f==="max reversed")||s[1]!==null&&(f==="max"||f==="min reversed"))&&(s=void 0,delete r.range,r.autorange=!0,c=!0),c||(u=r.getAutorangeDflt(s,i),f=n("autorange",u)),f&&(NZe(n,f,s),(o==="linear"||o==="-")&&n("rangemode")),r.cleanRange()}});var vD=J((Y8t,X$)=>{var OZe={left:0,top:0};X$.exports=BZe;function BZe(e,t,r){t=t||e.currentTarget||e.srcElement,Array.isArray(r)||(r=[0,0]);var n=e.clientX||0,i=e.clientY||0,a=UZe(t);return r[0]=n-a.left,r[1]=i-a.top,r}function UZe(e){return e===window||e===document||e===document.body?OZe:e.getBoundingClientRect()}});var d2=J((G8t,Z$)=>{"use strict";var HZe=HE();function jZe(){var e=!1;try{var t=Object.defineProperty({},"passive",{get:function(){e=!0}});window.addEventListener("test",null,t),window.removeEventListener("test",null,t)}catch{e=!1}return e}Z$.exports=HZe&&jZe()});var $$=J((W8t,J$)=>{"use strict";J$.exports=function(t,r,n,i,a){var o=(t-n)/(i-n),s=o+r/(i-n),l=(o+s)/2;return a==="left"||a==="bottom"?o:a==="center"||a==="middle"?l:a==="right"||a==="top"?s:o<2/3-l?o:s>4/3-l?s:l}});var eK=J((X8t,Q$)=>{"use strict";var K$=gt(),VZe=[["sw-resize","s-resize","se-resize"],["w-resize","move","e-resize"],["nw-resize","n-resize","ne-resize"]];Q$.exports=function(t,r,n,i){return n==="left"?t=0:n==="center"?t=1:n==="right"?t=2:t=K$.constrain(Math.floor(t*3),0,2),i==="bottom"?r=0:i==="middle"?r=1:i==="top"?r=2:r=K$.constrain(Math.floor(r*3),0,2),VZe[r][t]}});var rK=J((Z8t,tK)=>{"use strict";var YZe=P1(),GZe=zT(),WZe=Ob().getGraphDiv,XZe=zb(),dD=tK.exports={};dD.wrapped=function(e,t,r){e=WZe(e),e._fullLayout&&GZe.clear(e._fullLayout._uid+XZe.HOVERID),dD.raw(e,t,r)};dD.raw=function(t,r){var n=t._fullLayout,i=t._hoverdata;r||(r={}),!(r.target&&!t._dragged&&YZe.triggerHandler(t,"plotly_beforehover",r)===!1)&&(n._hoverlayer.selectAll("g").remove(),n._hoverlayer.selectAll("line").remove(),n._hoverlayer.selectAll("circle").remove(),t._hoverdata=void 0,r.target&&i&&t.emit("plotly_unhover",{event:r,points:i}))}});var iu=J((J8t,aK)=>{"use strict";var ZZe=vD(),pD=VE(),JZe=d2(),$Ze=gt().removeElement,KZe=Eo(),ag=aK.exports={};ag.align=$$();ag.getCursor=eK();var nK=rK();ag.unhover=nK.wrapped;ag.unhoverRaw=nK.raw;ag.init=function(t){var r=t.gd,n=1,i=r._context.doubleClickDelay,a=t.element,o,s,l,u,f,c,h,d;r._mouseDownTime||(r._mouseDownTime=0),a.style.pointerEvents="all",a.onmousedown=b,JZe?(a._ontouchstart&&a.removeEventListener("touchstart",a._ontouchstart),a._ontouchstart=b,a.addEventListener("touchstart",b,{passive:!1})):a.ontouchstart=b;function v(T,w,k){return Math.abs(T)
j||fe.top+(t.tickangle?0:V.fontSize/4)t["_visibleLabelMin_"+ee._id]?V.style("display","none"):j.K==="tick"&&!Q&&V.style("display",null)})})})})},h(f,u+1?u:l);function d(){return c.length&&Promise.all(c)}var v=null;function m(){if(h(f,l),o.length&&t.autotickangles&&(t.type!=="log"||String(t.dtick).charAt(0)!=="D")){v=t.autotickangles[0];var D=0,q=[],N,U=1;f.each(function(ze){D=Math.max(D,ze.fontSize);var Be=t.l2p(ze.x),tt=aD(this),rt=Mf.bBox(tt.node());U=Math.max(U,rg.lineCount(tt)),q.push({top:0,bottom:10,height:10,left:Be-rt.width/2,right:Be+rt.width/2+2,width:rt.width+2})});var G=(t.tickson==="boundaries"||t.showdividers)&&!r.secondary,ee=o.length,Q=Math.abs((o[ee-1].x-o[0].x)*t._m)/(ee-1),j=G?Q/2:Q,O=G?t.ticklen:D*1.25*U,Z=Math.sqrt(Math.pow(j,2)+Math.pow(O,2)),K=j/Z,$=t.autotickangles.map(function(ze){return ze*Math.PI/180}),oe=$.find(function(ze){return Math.abs(Math.cos(ze))<=K});oe===void 0&&(oe=$.reduce(function(ze,Be){return Math.abs(Math.cos(ze))R*L&&(y=L,A[M]=p[M]=E[M])}var I=Math.abs(y-S);I-w>0?(I-=w,w*=1+w/I):w=0,t._id.charAt(0)!=="y"&&(w=-w),A[x]=_.p2r(_.r2p(p[x])+k*w),_.autorange==="min"||_.autorange==="max reversed"?(A[0]=null,_._rangeInitial0=void 0,_._rangeInitial1=void 0):(_.autorange==="max"||_.autorange==="min reversed")&&(A[1]=null,_._rangeInitial0=void 0,_._rangeInitial1=void 0),n._insideTickLabelsUpdaterange[_._name+".range"]=A}var P=pn.syncOrAsync(b);return P&&P.then&&e._promises.push(P),P};function EZe(e,t,r){var n=t._id+"divider",i=r.vals,a=r.layer.selectAll("path."+n).data(i,DA);a.exit().remove(),a.enter().insert("path",":first-child").classed(n,1).classed("crisp",1).call(u2.stroke,t.dividercolor).style("stroke-width",Mf.crispRound(e,t.dividerwidth,1)+"px"),a.attr("transform",r.transFn).attr("d",r.path)}hr.getPxPosition=function(e,t){var r=e._fullLayout._size,n=t._id.charAt(0),i=t.side,a;if(t.anchor!=="free"?a=t._anchorAxis:n==="x"?a={_offset:r.t+(1-(t.position||0))*r.h,_length:0}:n==="y"&&(a={_offset:r.l+(t.position||0)*r.w+t._shift,_length:0}),i==="top"||i==="left")return a._offset;if(i==="bottom"||i==="right")return a._offset+a._length};function I$(e){var t=e.title.font.size,r=(e.title.text.match(rg.BR_TAG_ALL)||[]).length;return e.title.hasOwnProperty("standoff")?t*(ig+r*c2):r?t*(r+1)*c2:t}function LZe(e,t){var r=e._fullLayout,n=t._id,i=n.charAt(0),a=t.title.font.size,o,s=(t.title.text.match(rg.BR_TAG_ALL)||[]).length;if(t.title.hasOwnProperty("standoff"))t.side==="bottom"||t.side==="right"?o=t._depth+t.title.standoff+a*ig:(t.side==="top"||t.side==="left")&&(o=t._depth+t.title.standoff+a*(s2+s*c2));else{var l=v2(t);if(t.type==="multicategory")o=t._depth;else{var u=1.5*a;l&&(u=.5*a,t.ticks==="outside"&&(u+=t.ticklen)),o=10+u+(t.linewidth?t.linewidth-1:0)}l||(i==="x"?o+=t.side==="top"?a*(t.showticklabels?1:0):a*(t.showticklabels?1.5:.5):o+=t.side==="right"?a*(t.showticklabels?1:.5):a*(t.showticklabels?.5:0))}var f=hr.getPxPosition(e,t),c,h,d;i==="x"?(h=t._offset+t._length/2,d=t.side==="top"?f-o:f+o):(d=t._offset+t._length/2,h=t.side==="right"?f+o:f-o,c={rotate:"-90",offset:0});var v;if(t.type!=="multicategory"){var m=t._selections[t._id+"tick"];if(v={selection:m,side:t.side},m&&m.node()&&m.node().parentNode){var b=Mf.getTranslate(m.node().parentNode);v.offsetLeft=b.x,v.offsetTop=b.y}t.title.hasOwnProperty("standoff")&&(v.pad=0)}return t._titleStandoff=o,JXe.draw(e,n+"title",{propContainer:t,propName:t._name+".title.text",placeholder:r._dfltTitle[i],avoid:v,transform:c,attributes:{x:h,y:d,"text-anchor":"middle"}})}hr.shouldShowZeroLine=function(e,t,r){var n=pn.simpleMap(t.range,t.r2l);return n[0]*n[1]<=0&&t.zeroline&&(t.type==="linear"||t.type==="-")&&!(t.rangebreaks&&t.maskBreaks(0)===EA)&&(H$(t,0)||!DZe(e,t,r,n)||RZe(e,t))};hr.clipEnds=function(e,t){return t.filter(function(r){return H$(e,r.x)})};function H$(e,t){var r=e.l2p(t);return r>1&&r1)for(i=1;i=i.min&&e=rZe:/%L/.test(t)?e>=tZe:/%[SX]/.test(t)?e>=kA:/%M/.test(t)?e>=f2:/%[HI]/.test(t)?e>=$h:/%p/.test(t)?e>=d0:/%[Aadejuwx]/.test(t)?e>=ql:/%[UVW]/.test(t)?e>=kf:/%[Bbm]/.test(t)?e>=MA:/%[q]/.test(t)?e>=AA:/%[Yy]/.test(t)?e>=TA:!0}});var cD=J((j8t,G$)=>{"use strict";G$.exports=function(t,r,n){var i,a;if(n){var o=r==="reversed"||r==="min reversed"||r==="max reversed";i=n[o?1:0],a=n[o?0:1]}var s=t("autorangeoptions.minallowed",a===null?i:void 0),l=t("autorangeoptions.maxallowed",i===null?a:void 0);s===void 0&&t("autorangeoptions.clipmin"),l===void 0&&t("autorangeoptions.clipmax"),t("autorangeoptions.include")}});var hD=J((V8t,W$)=>{"use strict";var NZe=cD();W$.exports=function(t,r,n,i){var a=r._template||{},o=r.type||a.type||"-";n("minallowed"),n("maxallowed");var s=n("range");if(!s){var l;!i.noInsiderange&&o!=="log"&&(l=n("insiderange"),l&&(l[0]===null||l[1]===null)&&(r.insiderange=!1,l=void 0),l&&(s=n("range",l)))}var u=r.getAutorangeDflt(s,i),f=n("autorange",u),c;s&&(s[0]===null&&s[1]===null||(s[0]===null||s[1]===null)&&(f==="reversed"||f===!0)||s[0]!==null&&(f==="min"||f==="max reversed")||s[1]!==null&&(f==="max"||f==="min reversed"))&&(s=void 0,delete r.range,r.autorange=!0,c=!0),c||(u=r.getAutorangeDflt(s,i),f=n("autorange",u)),f&&(NZe(n,f,s),(o==="linear"||o==="-")&&n("rangemode")),r.cleanRange()}});var vD=J((Y8t,X$)=>{var OZe={left:0,top:0};X$.exports=BZe;function BZe(e,t,r){t=t||e.currentTarget||e.srcElement,Array.isArray(r)||(r=[0,0]);var n=e.clientX||0,i=e.clientY||0,a=UZe(t);return r[0]=n-a.left,r[1]=i-a.top,r}function UZe(e){return e===window||e===document||e===document.body?OZe:e.getBoundingClientRect()}});var d2=J((G8t,Z$)=>{"use strict";var HZe=HE();function jZe(){var e=!1;try{var t=Object.defineProperty({},"passive",{get:function(){e=!0}});window.addEventListener("test",null,t),window.removeEventListener("test",null,t)}catch{e=!1}return e}Z$.exports=HZe&&jZe()});var $$=J((W8t,J$)=>{"use strict";J$.exports=function(t,r,n,i,a){var o=(t-n)/(i-n),s=o+r/(i-n),l=(o+s)/2;return a==="left"||a==="bottom"?o:a==="center"||a==="middle"?l:a==="right"||a==="top"?s:o<2/3-l?o:s>4/3-l?s:l}});var eK=J((X8t,Q$)=>{"use strict";var K$=gt(),VZe=[["sw-resize","s-resize","se-resize"],["w-resize","move","e-resize"],["nw-resize","n-resize","ne-resize"]];Q$.exports=function(t,r,n,i){return n==="left"?t=0:n==="center"?t=1:n==="right"?t=2:t=K$.constrain(Math.floor(t*3),0,2),i==="bottom"?r=0:i==="middle"?r=1:i==="top"?r=2:r=K$.constrain(Math.floor(r*3),0,2),VZe[r][t]}});var rK=J((Z8t,tK)=>{"use strict";var YZe=P1(),GZe=zT(),WZe=Ob().getGraphDiv,XZe=zb(),dD=tK.exports={};dD.wrapped=function(e,t,r){e=WZe(e),e._fullLayout&&GZe.clear(e._fullLayout._uid+XZe.HOVERID),dD.raw(e,t,r)};dD.raw=function(t,r){var n=t._fullLayout,i=t._hoverdata;r||(r={}),!(r.target&&!t._dragged&&YZe.triggerHandler(t,"plotly_beforehover",r)===!1)&&(n._hoverlayer.selectAll("g").remove(),n._hoverlayer.selectAll("line").remove(),n._hoverlayer.selectAll("circle").remove(),t._hoverdata=void 0,r.target&&i&&t.emit("plotly_unhover",{event:r,points:i}))}});var iu=J((J8t,aK)=>{"use strict";var ZZe=vD(),pD=VE(),JZe=d2(),$Ze=gt().removeElement,KZe=Eo(),ag=aK.exports={};ag.align=$$();ag.getCursor=eK();var nK=rK();ag.unhover=nK.wrapped;ag.unhoverRaw=nK.raw;ag.init=function(t){var r=t.gd,n=1,i=r._context.doubleClickDelay,a=t.element,o,s,l,u,f,c,h,d;r._mouseDownTime||(r._mouseDownTime=0),a.style.pointerEvents="all",a.onmousedown=b,JZe?(a._ontouchstart&&a.removeEventListener("touchstart",a._ontouchstart),a._ontouchstart=b,a.addEventListener("touchstart",b,{passive:!1})):a.ontouchstart=b;function v(T,w,k){return Math.abs(T)
t["_visibleLabelMin_"+ee._id]?V.style("display","none"):j.K==="tick"&&!Q&&V.style("display",null)})})})})},h(f,u+1?u:l);function d(){return c.length&&Promise.all(c)}var v=null;function m(){if(h(f,l),o.length&&t.autotickangles&&(t.type!=="log"||String(t.dtick).charAt(0)!=="D")){v=t.autotickangles[0];var D=0,q=[],N,U=1;f.each(function(ze){D=Math.max(D,ze.fontSize);var Be=t.l2p(ze.x),tt=aD(this),rt=Mf.bBox(tt.node());U=Math.max(U,rg.lineCount(tt)),q.push({top:0,bottom:10,height:10,left:Be-rt.width/2,right:Be+rt.width/2+2,width:rt.width+2})});var G=(t.tickson==="boundaries"||t.showdividers)&&!r.secondary,ee=o.length,Q=Math.abs((o[ee-1].x-o[0].x)*t._m)/(ee-1),j=G?Q/2:Q,O=G?t.ticklen:D*1.25*U,Z=Math.sqrt(Math.pow(j,2)+Math.pow(O,2)),K=j/Z,$=t.autotickangles.map(function(ze){return ze*Math.PI/180}),oe=$.find(function(ze){return Math.abs(Math.cos(ze))<=K});oe===void 0&&(oe=$.reduce(function(ze,Be){return Math.abs(Math.cos(ze))R*L&&(y=L,A[M]=p[M]=E[M])}var I=Math.abs(y-S);I-w>0?(I-=w,w*=1+w/I):w=0,t._id.charAt(0)!=="y"&&(w=-w),A[x]=_.p2r(_.r2p(p[x])+k*w),_.autorange==="min"||_.autorange==="max reversed"?(A[0]=null,_._rangeInitial0=void 0,_._rangeInitial1=void 0):(_.autorange==="max"||_.autorange==="min reversed")&&(A[1]=null,_._rangeInitial0=void 0,_._rangeInitial1=void 0),n._insideTickLabelsUpdaterange[_._name+".range"]=A}var P=pn.syncOrAsync(b);return P&&P.then&&e._promises.push(P),P};function EZe(e,t,r){var n=t._id+"divider",i=r.vals,a=r.layer.selectAll("path."+n).data(i,DA);a.exit().remove(),a.enter().insert("path",":first-child").classed(n,1).classed("crisp",1).call(u2.stroke,t.dividercolor).style("stroke-width",Mf.crispRound(e,t.dividerwidth,1)+"px"),a.attr("transform",r.transFn).attr("d",r.path)}hr.getPxPosition=function(e,t){var r=e._fullLayout._size,n=t._id.charAt(0),i=t.side,a;if(t.anchor!=="free"?a=t._anchorAxis:n==="x"?a={_offset:r.t+(1-(t.position||0))*r.h,_length:0}:n==="y"&&(a={_offset:r.l+(t.position||0)*r.w+t._shift,_length:0}),i==="top"||i==="left")return a._offset;if(i==="bottom"||i==="right")return a._offset+a._length};function I$(e){var t=e.title.font.size,r=(e.title.text.match(rg.BR_TAG_ALL)||[]).length;return e.title.hasOwnProperty("standoff")?t*(ig+r*c2):r?t*(r+1)*c2:t}function LZe(e,t){var r=e._fullLayout,n=t._id,i=n.charAt(0),a=t.title.font.size,o,s=(t.title.text.match(rg.BR_TAG_ALL)||[]).length;if(t.title.hasOwnProperty("standoff"))t.side==="bottom"||t.side==="right"?o=t._depth+t.title.standoff+a*ig:(t.side==="top"||t.side==="left")&&(o=t._depth+t.title.standoff+a*(s2+s*c2));else{var l=v2(t);if(t.type==="multicategory")o=t._depth;else{var u=1.5*a;l&&(u=.5*a,t.ticks==="outside"&&(u+=t.ticklen)),o=10+u+(t.linewidth?t.linewidth-1:0)}l||(i==="x"?o+=t.side==="top"?a*(t.showticklabels?1:0):a*(t.showticklabels?1.5:.5):o+=t.side==="right"?a*(t.showticklabels?1:.5):a*(t.showticklabels?.5:0))}var f=hr.getPxPosition(e,t),c,h,d;i==="x"?(h=t._offset+t._length/2,d=t.side==="top"?f-o:f+o):(d=t._offset+t._length/2,h=t.side==="right"?f+o:f-o,c={rotate:"-90",offset:0});var v;if(t.type!=="multicategory"){var m=t._selections[t._id+"tick"];if(v={selection:m,side:t.side},m&&m.node()&&m.node().parentNode){var b=Mf.getTranslate(m.node().parentNode);v.offsetLeft=b.x,v.offsetTop=b.y}t.title.hasOwnProperty("standoff")&&(v.pad=0)}return t._titleStandoff=o,JXe.draw(e,n+"title",{propContainer:t,propName:t._name+".title.text",placeholder:r._dfltTitle[i],avoid:v,transform:c,attributes:{x:h,y:d,"text-anchor":"middle"}})}hr.shouldShowZeroLine=function(e,t,r){var n=pn.simpleMap(t.range,t.r2l);return n[0]*n[1]<=0&&t.zeroline&&(t.type==="linear"||t.type==="-")&&!(t.rangebreaks&&t.maskBreaks(0)===EA)&&(H$(t,0)||!DZe(e,t,r,n)||RZe(e,t))};hr.clipEnds=function(e,t){return t.filter(function(r){return H$(e,r.x)})};function H$(e,t){var r=e.l2p(t);return r>1&&r1)for(i=1;i=i.min&&e=rZe:/%L/.test(t)?e>=tZe:/%[SX]/.test(t)?e>=kA:/%M/.test(t)?e>=f2:/%[HI]/.test(t)?e>=$h:/%p/.test(t)?e>=d0:/%[Aadejuwx]/.test(t)?e>=ql:/%[UVW]/.test(t)?e>=kf:/%[Bbm]/.test(t)?e>=MA:/%[q]/.test(t)?e>=AA:/%[Yy]/.test(t)?e>=TA:!0}});var cD=J((j8t,G$)=>{"use strict";G$.exports=function(t,r,n){var i,a;if(n){var o=r==="reversed"||r==="min reversed"||r==="max reversed";i=n[o?1:0],a=n[o?0:1]}var s=t("autorangeoptions.minallowed",a===null?i:void 0),l=t("autorangeoptions.maxallowed",i===null?a:void 0);s===void 0&&t("autorangeoptions.clipmin"),l===void 0&&t("autorangeoptions.clipmax"),t("autorangeoptions.include")}});var hD=J((V8t,W$)=>{"use strict";var NZe=cD();W$.exports=function(t,r,n,i){var a=r._template||{},o=r.type||a.type||"-";n("minallowed"),n("maxallowed");var s=n("range");if(!s){var l;!i.noInsiderange&&o!=="log"&&(l=n("insiderange"),l&&(l[0]===null||l[1]===null)&&(r.insiderange=!1,l=void 0),l&&(s=n("range",l)))}var u=r.getAutorangeDflt(s,i),f=n("autorange",u),c;s&&(s[0]===null&&s[1]===null||(s[0]===null||s[1]===null)&&(f==="reversed"||f===!0)||s[0]!==null&&(f==="min"||f==="max reversed")||s[1]!==null&&(f==="max"||f==="min reversed"))&&(s=void 0,delete r.range,r.autorange=!0,c=!0),c||(u=r.getAutorangeDflt(s,i),f=n("autorange",u)),f&&(NZe(n,f,s),(o==="linear"||o==="-")&&n("rangemode")),r.cleanRange()}});var vD=J((Y8t,X$)=>{var OZe={left:0,top:0};X$.exports=BZe;function BZe(e,t,r){t=t||e.currentTarget||e.srcElement,Array.isArray(r)||(r=[0,0]);var n=e.clientX||0,i=e.clientY||0,a=UZe(t);return r[0]=n-a.left,r[1]=i-a.top,r}function UZe(e){return e===window||e===document||e===document.body?OZe:e.getBoundingClientRect()}});var d2=J((G8t,Z$)=>{"use strict";var HZe=HE();function jZe(){var e=!1;try{var t=Object.defineProperty({},"passive",{get:function(){e=!0}});window.addEventListener("test",null,t),window.removeEventListener("test",null,t)}catch{e=!1}return e}Z$.exports=HZe&&jZe()});var $$=J((W8t,J$)=>{"use strict";J$.exports=function(t,r,n,i,a){var o=(t-n)/(i-n),s=o+r/(i-n),l=(o+s)/2;return a==="left"||a==="bottom"?o:a==="center"||a==="middle"?l:a==="right"||a==="top"?s:o<2/3-l?o:s>4/3-l?s:l}});var eK=J((X8t,Q$)=>{"use strict";var K$=gt(),VZe=[["sw-resize","s-resize","se-resize"],["w-resize","move","e-resize"],["nw-resize","n-resize","ne-resize"]];Q$.exports=function(t,r,n,i){return n==="left"?t=0:n==="center"?t=1:n==="right"?t=2:t=K$.constrain(Math.floor(t*3),0,2),i==="bottom"?r=0:i==="middle"?r=1:i==="top"?r=2:r=K$.constrain(Math.floor(r*3),0,2),VZe[r][t]}});var rK=J((Z8t,tK)=>{"use strict";var YZe=P1(),GZe=zT(),WZe=Ob().getGraphDiv,XZe=zb(),dD=tK.exports={};dD.wrapped=function(e,t,r){e=WZe(e),e._fullLayout&&GZe.clear(e._fullLayout._uid+XZe.HOVERID),dD.raw(e,t,r)};dD.raw=function(t,r){var n=t._fullLayout,i=t._hoverdata;r||(r={}),!(r.target&&!t._dragged&&YZe.triggerHandler(t,"plotly_beforehover",r)===!1)&&(n._hoverlayer.selectAll("g").remove(),n._hoverlayer.selectAll("line").remove(),n._hoverlayer.selectAll("circle").remove(),t._hoverdata=void 0,r.target&&i&&t.emit("plotly_unhover",{event:r,points:i}))}});var iu=J((J8t,aK)=>{"use strict";var ZZe=vD(),pD=VE(),JZe=d2(),$Ze=gt().removeElement,KZe=Eo(),ag=aK.exports={};ag.align=$$();ag.getCursor=eK();var nK=rK();ag.unhover=nK.wrapped;ag.unhoverRaw=nK.raw;ag.init=function(t){var r=t.gd,n=1,i=r._context.doubleClickDelay,a=t.element,o,s,l,u,f,c,h,d;r._mouseDownTime||(r._mouseDownTime=0),a.style.pointerEvents="all",a.onmousedown=b,JZe?(a._ontouchstart&&a.removeEventListener("touchstart",a._ontouchstart),a._ontouchstart=b,a.addEventListener("touchstart",b,{passive:!1})):a.ontouchstart=b;function v(T,w,k){return Math.abs(T)