1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,14595,(e,t,n)=>{"use strict";var r=e.r(71645),a="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},i=r.useSyncExternalStore,o=r.useRef,l=r.useEffect,s=r.useMemo,c=r.useDebugValue;n.useSyncExternalStoreWithSelector=function(e,t,n,r,p){var u=o(null);if(null===u.current){var d={hasValue:!1,value:null};u.current=d}else d=u.current;var f=i(e,(u=s(function(){function e(e){if(!l){if(l=!0,i=e,e=r(e),void 0!==p&&d.hasValue){var t=d.value;if(p(t,e))return o=t}return o=e}if(t=o,a(i,e))return t;var n=r(e);return void 0!==p&&p(t,n)?(i=e,t):(i=e,o=n)}var i,o,l=!1,s=void 0===n?null:n;return[function(){return e(t())},null===s?void 0:function(){return e(s())}]},[t,n,r,p]))[0],u[1]);return l(function(){d.hasValue=!0,d.value=f},[f]),c(f),f}},13027,(e,t,n)=>{"use strict";t.exports=e.r(14595)},55838,(e,t,n)=>{"use strict";var r=e.r(71645),a="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},i=r.useState,o=r.useEffect,l=r.useLayoutEffect,s=r.useDebugValue;function c(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!a(e,n)}catch(e){return!0}}var p="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),r=i({inst:{value:n,getSnapshot:t}}),a=r[0].inst,p=r[1];return l(function(){a.value=n,a.getSnapshot=t,c(a)&&p({inst:a})},[e,n,t]),o(function(){return c(a)&&p({inst:a}),e(function(){c(a)&&p({inst:a})})},[e]),s(n),n};n.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:p},2239,(e,t,n)=>{"use strict";t.exports=e.r(55838)},52822,(e,t,n)=>{"use strict";var r=e.r(71645),a=e.r(2239),i="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=a.useSyncExternalStore,l=r.useRef,s=r.useEffect,c=r.useMemo,p=r.useDebugValue;n.useSyncExternalStoreWithSelector=function(e,t,n,r,a){var u=l(null);if(null===u.current){var d={hasValue:!1,value:null};u.current=d}else d=u.current;var f=o(e,(u=c(function(){function e(e){if(!s){if(s=!0,o=e,e=r(e),void 0!==a&&d.hasValue){var t=d.value;if(a(t,e))return l=t}return l=e}if(t=l,i(o,e))return t;var n=r(e);return void 0!==a&&a(t,n)?(o=e,t):(o=e,l=n)}var o,l,s=!1,c=void 0===n?null:n;return[function(){return e(t())},null===c?void 0:function(){return e(c())}]},[t,n,r,a]))[0],u[1]);return s(function(){d.hasValue=!0,d.value=f},[f]),p(f),f}},30224,(e,t,n)=>{"use strict";t.exports=e.r(52822)},51655,(e,t,n)=>{!function(n){"use strict";var r,a={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:"2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286"},i=!0,o="[DecimalError] ",l=o+"Invalid argument: ",s=o+"Exponent out of range: ",c=Math.floor,p=Math.pow,u=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,d=c(1286742750677284.5),f={};function h(e,t){var n,r,a,o,l,s,c,p,u=e.constructor,d=u.precision;if(!e.s||!t.s)return t.s||(t=new u(e)),i?_(t,d):t;if(c=e.d,p=t.d,l=e.e,a=t.e,c=c.slice(),o=l-a){for(o<0?(r=c,o=-o,s=p.length):(r=p,a=l,s=c.length),o>(s=(l=Math.ceil(d/7))>s?l+1:s+1)&&(o=s,r.length=1),r.reverse();o--;)r.push(0);r.reverse()}for((s=c.length)-(o=p.length)<0&&(o=s,r=p,p=c,c=r),n=0;o;)n=(c[--o]=c[o]+p[o]+n)/1e7|0,c[o]%=1e7;for(n&&(c.unshift(n),++a),s=c.length;0==c[--s];)c.pop();return t.d=c,t.e=a,i?_(t,d):t}function g(e,t,n){if(e!==~~e||e<t||e>n)throw Error(l+e)}function y(e){var t,n,r,a=e.length-1,i="",o=e[0];if(a>0){for(i+=o,t=1;t<a;t++)(n=7-(r=e[t]+"").length)&&(i+=w(n)),i+=r;(n=7-(r=(o=e[t])+"").length)&&(i+=w(n))}else if(0===o)return"0";for(;o%10==0;)o/=10;return i+o}f.absoluteValue=f.abs=function(){var e=new this.constructor(this);return e.s&&(e.s=1),e},f.comparedTo=f.cmp=function(e){var t,n,r,a;if(e=new this.constructor(e),this.s!==e.s)return this.s||-e.s;if(this.e!==e.e)return this.e>e.e^this.s<0?1:-1;for(t=0,n=(r=this.d.length)<(a=e.d.length)?r:a;t<n;++t)if(this.d[t]!==e.d[t])return this.d[t]>e.d[t]^this.s<0?1:-1;return r===a?0:r>a^this.s<0?1:-1},f.decimalPlaces=f.dp=function(){var e=this.d.length-1,t=(e-this.e)*7;if(e=this.d[e])for(;e%10==0;e/=10)t--;return t<0?0:t}
1,f.dividedBy=f.div=function(e){return m(this,new this.constructor(e))},f.dividedToIntegerBy=f.idiv=function(e){var t=this.constructor;return _(m(this,new t(e),0,1),t.precision)},f.equals=f.eq=function(e){return!this.cmp(e)},f.exponent=function(){return v(this)},f.greaterThan=f.gt=function(e){return this.cmp(e)>0},f.greaterThanOrEqualTo=f.gte=function(e){return this.cmp(e)>=0},f.isInteger=f.isint=function(){return this.e>this.d.length-2},f.isNegative=f.isneg=function(){return this.s<0},f.isPositive=f.ispos=function(){return this.s>0},f.isZero=function(){return 0===this.s},f.lessThan=f.lt=function(e){return 0>this.cmp(e)},f.lessThanOrEqualTo=f.lte=function(e){return 1>this.cmp(e)},f.logarithm=f.log=function(e){var t,n=this.constructor,a=n.precision,l=a+5;if(void 0===e)e=new n(10);else if((e=new n(e)).s<1||e.eq(r))throw Error(o+"NaN");if(this.s<1)throw Error(o+(this.s?"NaN":"-Infinity"));return this.eq(r)?new n(0):(i=!1,t=m(k(this,l),k(e,l),l),i=!0,_(t,a))},f.minus=f.sub=function(e){return e=new this.constructor(e),this.s==e.s?E(this,e):h(this,(e.s=-e.s,e))},f.modulo=f.mod=function(e){var t,n=this.constructor,r=n.precision;if(!(e=new n(e)).s)throw Error(o+"NaN");return this.s?(i=!1,t=m(this,e,0,1).times(e),i=!0,this.minus(t)):_(new n(this),r)},f.naturalExponential=f.exp=function(){return x(this)},f.naturalLogarithm=f.ln=function(){return k(this)},f.negated=f.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e},f.plus=f.add=function(e){return e=new this.constructor(e),this.s==e.s?h(this,e):E(this,(e.s=-e.s,e))},f.precision=f.sd=function(e){var t,n,r;if(void 0!==e&&!!e!==e&&1!==e&&0!==e)throw Error(l+e);if(t=v(this)+1,n=7*(r=this.d.length-1)+1,r=this.d[r]){for(;r%10==0;r/=10)n--;for(r=this.d[0];r>=10;r/=10)n++}return e&&t>n?t:n},f.squareRoot=f.sqrt=function(){var e,t,n,r,a,l,s,p=this.constructor;if(this.s<1){if(!this.s)return new p(0);throw Error(o+"NaN")}for(e=v(this),i=!1,0==(a=Math.sqrt(+this))||a==1/0?(((t=y(this.d)).length+e)%2==0&&(t+="0"),a=Math.sqrt(t),e=c((e+1)/2)-(e<0||e%2),r=new p(t=a==1/0?"5e"+e:(t=a.toExponential()).slice(0,t.indexOf("e")+1)+e)):r=new p(a.toString()),a=s=(n=p.precision)+3;;)if(r=(l=r).plus(m(this,l,s+2)).times(.5),y(l.d).slice(0,s)===(t=y(r.d)).slice(0,s)){if(t=t.slice(s-3,s+1),a==s&&"4999"==t){if(_(l,n+1,0),l.times(l).eq(this)){r=l;break}}else if("9999"!=t)break;s+=4}return i=!0,_(r,n)},f.times=f.mul=function(e){var t,n,r,a,o,l,s,c,p,u=this.constructor,d=this.d,f=(e=new u(e)).d;if(!this.s||!e.s)return new u(0);for(e.s*=this.s,n=this.e+e.e,(c=d.length)<(p=f.length)&&(o=d,d=f,f=o,l=c,c=p,p=l),o=[],r=l=c+p;r--;)o.push(0);for(r=p;--r>=0;){for(t=0,a=c+r;a>r;)s=o[a]+f[r]*d[a-r-1]+t,o[a--]=s%1e7|0,t=s/1e7|0;o[a]=(o[a]+t)%1e7|0}for(;!o[--l];)o.pop();return t?++n:o.shift(),e.d=o,e.e=n,i?_(e,u.precision):e},f.toDecimalPlaces=f.todp=function(e,t){var n=this,r=n.constructor;return(n=new r(n),void 0===e)?n:(g(e,0,1e9),void 0===t?t=r.rounding:g(t,0,8),_(n,e+v(n)+1,t))},f.toExponential=function(e,t){var n,r=this,a=r.constructor;return void 0===e?n=j(r,!0):(g(e,0,1e9),void 0===t?t=a.rounding:g(t,0,8),n=j(r=_(new a(r),e+1,t),!0,e+1)),n},f.toFixed=function(e,t){var n,r,a=this.constructor;return void 0===e?j(this):(g(e,0,1e9),void 0===t?t=a.rounding:g(t,0,8),n=j((r=_(new a(this),e+v(this)+1,t)).abs(),!1,e+v(r)+1),this.isneg()&&!this.isZero()?"-"+n:n)},f.toInteger=f.toint=function(){var e=this.constructor;return _(new e(this),v(this)+1,e.rounding)},f.toNumber=function(){return+this},f.toPower=f.pow=function(e){var t,n,a,l,s,p,u=this,d=u.constructor,f=+(e=new d(e));if(!e.s)return new d(r);if(!(u=new d(u)).s){if(e.s<1)throw Error(o+"Infinity");return u}if(u.eq(r))return u;if(a=d.precision,e.eq(r))return _(u,a);if(p=(t=e.e)>=(n=e.d.length-1),s=u.s,p){if((n=f<0?-f:f)<=0x1fffffffffffff){for(l=new d(r),t=Math.ceil(a/7+4),i=!1;n%2&&O((l=l.times(u)).d,t),0!==(n=c(n/2));)O((u=u.times(u)).d,t);return i=!0,e.s<0?new d(r).div(l):_(l,a)}}else if(s<0)throw Error(o+"NaN");
1return s=s<0&&1&e.d[Math.max(t,n)]?-1:1,u.s=1,i=!1,l=e.times(k(u,a+12)),i=!0,(l=x(l)).s=s,l},f.toPrecision=function(e,t){var n,r,a=this,i=a.constructor;return void 0===e?(n=v(a),r=j(a,n<=i.toExpNeg||n>=i.toExpPos)):(g(e,1,1e9),void 0===t?t=i.rounding:g(t,0,8),n=v(a=_(new i(a),e,t)),r=j(a,e<=n||n<=i.toExpNeg,e)),r},f.toSignificantDigits=f.tosd=function(e,t){var n=this.constructor;return void 0===e?(e=n.precision,t=n.rounding):(g(e,1,1e9),void 0===t?t=n.rounding:g(t,0,8)),_(new n(this),e,t)},f.toString=f.valueOf=f.val=f.toJSON=function(){var e=v(this),t=this.constructor;return j(this,e<=t.toExpNeg||e>=t.toExpPos)};var m=function(){function e(e,t){var n,r=0,a=e.length;for(e=e.slice();a--;)n=e[a]*t+r,e[a]=n%1e7|0,r=n/1e7|0;return r&&e.unshift(r),e}function t(e,t,n,r){var a,i;if(n!=r)i=n>r?1:-1;else for(a=i=0;a<n;a++)if(e[a]!=t[a]){i=e[a]>t[a]?1:-1;break}return i}function n(e,t,n){for(var r=0;n--;)e[n]-=r,r=+(e[n]<t[n]),e[n]=1e7*r+e[n]-t[n];for(;!e[0]&&e.length>1;)e.shift()}return function(r,a,i,l){var s,c,p,u,d,f,h,g,y,m,x,b,w,k,A,E,j,O,C=r.constructor,D=r.s==a.s?1:-1,S=r.d,P=a.d;if(!r.s)return new C(r);if(!a.s)throw Error(o+"Division by zero");for(p=0,c=r.e-a.e,j=P.length,A=S.length,g=(h=new C(D)).d=[];P[p]==(S[p]||0);)++p;if(P[p]>(S[p]||0)&&--c,(b=null==i?i=C.precision:l?i+(v(r)-v(a))+1:i)<0)return new C(0);if(b=b/7+2|0,p=0,1==j)for(u=0,P=P[0],b++;(p<A||u)&&b--;p++)w=1e7*u+(S[p]||0),g[p]=w/P|0,u=w%P|0;else{for((u=1e7/(P[0]+1)|0)>1&&(P=e(P,u),S=e(S,u),j=P.length,A=S.length),k=j,m=(y=S.slice(0,j)).length;m<j;)y[m++]=0;(O=P.slice()).unshift(0),E=P[0],P[1]>=1e7/2&&++E;do u=0,(s=t(P,y,j,m))<0?(x=y[0],j!=m&&(x=1e7*x+(y[1]||0)),(u=x/E|0)>1?(u>=1e7&&(u=1e7-1),f=(d=e(P,u)).length,m=y.length,1==(s=t(d,y,f,m))&&(u--,n(d,j<f?O:P,f))):(0==u&&(s=u=1),d=P.slice()),(f=d.length)<m&&d.unshift(0),n(y,d,m),-1==s&&(m=y.length,(s=t(P,y,j,m))<1&&(u++,n(y,j<m?O:P,m))),m=y.length):0===s&&(u++,y=[0]),g[p++]=u,s&&y[0]?y[m++]=S[k]||0:(y=[S[k]],m=1);while((k++<A||void 0!==y[0])&&b--)}return g[0]||g.shift(),h.e=c,_(h,l?i+v(h)+1:i)}}();function x(e,t){var n,a,o,l,c,u=0,d=0,f=e.constructor,h=f.precision;if(v(e)>16)throw Error(s+v(e));if(!e.s)return new f(r);for(null==t?(i=!1,c=h):c=t,l=new f(.03125);e.abs().gte(.1);)e=e.times(l),d+=5;for(c+=Math.log(p(2,d))/Math.LN10*2+5|0,n=a=o=new f(r),f.precision=c;;){if(a=_(a.times(e),c),n=n.times(++u),y((l=o.plus(m(a,n,c))).d).slice(0,c)===y(o.d).slice(0,c)){for(;d--;)o=_(o.times(o),c);return f.precision=h,null==t?(i=!0,_(o,h)):o}o=l}}function v(e){for(var t=7*e.e,n=e.d[0];n>=10;n/=10)t++;return t}function b(e,t,n){if(t>e.LN10.sd())throw i=!0,n&&(e.precision=n),Error(o+"LN10 precision limit exceeded");return _(new e(e.LN10),t)}function w(e){for(var t="";e--;)t+="0";return t}function k(e,t){var n,a,l,s,c,p,u,d,f,h=1,g=e,x=g.d,w=g.constructor,A=w.precision;if(g.s<1)throw Error(o+(g.s?"NaN":"-Infinity"));if(g.eq(r))return new w(0);if(null==t?(i=!1,d=A):d=t,g.eq(10))return null==t&&(i=!0),b(w,d);if(w.precision=d+=10,a=(n=y(x)).charAt(0),!(15e14>Math.abs(s=v(g))))return u=b(w,d+2,A).times(s+""),g=k(new w(a+"."+n.slice(1)),d-10).plus(u),w.precision=A,null==t?(i=!0,_(g,A)):g;for(;a<7&&1!=a||1==a&&n.charAt(1)>3;)a=(n=y((g=g.times(e)).d)).charAt(0),h++;for(s=v(g),a>1?(g=new w("0."+n),s++):g=new w(a+"."+n.slice(1)),p=c=g=m(g.minus(r),g.plus(r),d),f=_(g.times(g),d),l=3;;){if(c=_(c.times(f),d),y((u=p.plus(m(c,new w(l),d))).d).slice(0,d)===y(p.d).slice(0,d))return p=p.times(2),0!==s&&(p=p.plus(b(w,d+2,A).times(s+""))),p=m(p,new w(h),d),w.precision=A,null==t?(i=!0,_(p,A)):p;p=u,l+=2}}function A(e,t){var n,r,a;for((n=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;48===t.charCodeAt(r);)++r;for(a=t.length;48===t.charCodeAt(a-1);)--a;if(t=t.slice(r,a)){if(a-=r,e.e=c((n=n-r-1)/7),e.d=[],r=(n+1)%7,n<0&&(r+=7),r<a){for(r&&e.d.push(+t.slice(0,r)),a-=7;r<a;)e.d.push(+t.slice(r,r+=7));r=7-(t=t.slice(r)).length}else r-=a;for(;r--;)t+="0";if(e.d.push(+t),i&&(e.e>d||e.e<-d))throw Error(s+n)}else e.s=0,e.e=0,e.d=[0];return e}function _(e,t,n){var r,a,o,l,u,f,h,g,y=e.d;for(l=1,o=y[0];o>=10;o/=10)l++;if((r=t-l)<0)r+=7,a=t,h=y[g=0];else{if((g=Math.ceil((r+1)/7))>=(o=y.length))return e;for(l=1,h=o=y[g];o>=10;o/=10)l++;r%=7,a=r-7+l}if(void 0!==n&&(u=h/(o=p(10,l-a-1))%10|0,f=t<0||void 0!==y[g+1]||h%o,f=n<4?(u||f)&&(0==n||n==(e.s<0?3:2)):u>5||5==u&&(4==n||f||6==n&&(r>0?a>0?h/p(10,l-a):0:y[g-1])%10&1||n==(e.s<0?8:7))),t<1||!y[0])return f?(o=v(e),y.length=1,t=t-o-1,y[0]=p(10,(7-t%7)%7),e.e=c(-t/7)||0):(y.length=1,y[0]=e.e=e.s=0),e;if(0==r?(y.length=g,o=1,g--):(y.length=g+1,o=p(10,7-r),y[g]=a>0?(h/p(10,l-a)%p(10,a)|0)*o:0),f)for(;;)if(0==g){1e7==(y[0]+=o)&&(y[0]=1,++e.e);break}else{if(y[g]+=o,1e7!=y[g])break;
1y[g--]=0,o=1}for(r=y.length;0===y[--r];)y.pop();if(i&&(e.e>d||e.e<-d))throw Error(s+v(e));return e}function E(e,t){var n,r,a,o,l,s,c,p,u,d,f=e.constructor,h=f.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new f(e),i?_(t,h):t;if(c=e.d,d=t.d,r=t.e,p=e.e,c=c.slice(),l=p-r){for((u=l<0)?(n=c,l=-l,s=d.length):(n=d,r=p,s=c.length),l>(a=Math.max(Math.ceil(h/7),s)+2)&&(l=a,n.length=1),n.reverse(),a=l;a--;)n.push(0);n.reverse()}else{for((u=(a=c.length)<(s=d.length))&&(s=a),a=0;a<s;a++)if(c[a]!=d[a]){u=c[a]<d[a];break}l=0}for(u&&(n=c,c=d,d=n,t.s=-t.s),s=c.length,a=d.length-s;a>0;--a)c[s++]=0;for(a=d.length;a>l;){if(c[--a]<d[a]){for(o=a;o&&0===c[--o];)c[o]=1e7-1;--c[o],c[a]+=1e7}c[a]-=d[a]}for(;0===c[--s];)c.pop();for(;0===c[0];c.shift())--r;return c[0]?(t.d=c,t.e=r,i?_(t,h):t):new f(0)}function j(e,t,n){var r,a=v(e),i=y(e.d),o=i.length;return t?(n&&(r=n-o)>0?i=i.charAt(0)+"."+i.slice(1)+w(r):o>1&&(i=i.charAt(0)+"."+i.slice(1)),i=i+(a<0?"e":"e+")+a):a<0?(i="0."+w(-a-1)+i,n&&(r=n-o)>0&&(i+=w(r))):a>=o?(i+=w(a+1-o),n&&(r=n-a-1)>0&&(i=i+"."+w(r))):((r=a+1)<o&&(i=i.slice(0,r)+"."+i.slice(r)),n&&(r=n-o)>0&&(a+1===o&&(i+="."),i+=w(r))),e.s<0?"-"+i:i}function O(e,t){if(e.length>t)return e.length=t,!0}function C(e){if(!e||"object"!=typeof e)throw Error(o+"Object expected");var t,n,r,a=["precision",1,1e9,"rounding",0,8,"toExpNeg",-1/0,0,"toExpPos",0,1/0];for(t=0;t<a.length;t+=3)if(void 0!==(r=e[n=a[t]]))if(c(r)===r&&r>=a[t+1]&&r<=a[t+2])this[n]=r;else throw Error(l+n+": "+r);if(void 0!==(r=e[n="LN10"]))if(r==Math.LN10)this[n]=new this(r);else throw Error(l+n+": "+r);return this}if((a=function e(t){var n,r,a;function i(e){if(!(this instanceof i))return new i(e);if(this.constructor=i,e instanceof i){this.s=e.s,this.e=e.e,this.d=(e=e.d)?e.slice():e;return}if("number"==typeof e){if(0*e!=0)throw Error(l+e);if(e>0)this.s=1;else if(e<0)e=-e,this.s=-1;else{this.s=0,this.e=0,this.d=[0];return}if(e===~~e&&e<1e7){this.e=0,this.d=[e];return}return A(this,e.toString())}if("string"!=typeof e)throw Error(l+e);if(45===e.charCodeAt(0)?(e=e.slice(1),this.s=-1):this.s=1,u.test(e))A(this,e);else throw Error(l+e)}if(i.prototype=f,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.clone=e,i.config=i.set=C,void 0===t&&(t={}),t)for(n=0,a=["precision","rounding","toExpNeg","toExpPos","LN10"];n<a.length;)t.hasOwnProperty(r=a[n++])||(t[r]=this[r]);return i.config(t),i}(a)).default=a.Decimal=a,r=new a(1),"function"==typeof define&&define.amd){let t;e.r,void 0!==(t=a)&&e.v(t)}else t.exports?t.exports=a:(n||(n="undefined"!=typeof self&&self&&self.self==self?self:Function("return this")()),n.Decimal=a)}(e.e)},78492,(e,t,n)=>{"use strict";var r=Object.prototype.hasOwnProperty,a="~";function i(){}function o(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function l(e,t,n,r,i){if("function"!=typeof n)throw TypeError("The listener must be a function");var l=new o(n,r||e,i),s=a?a+t:t;return e._events[s]?e._events[s].fn?e._events[s]=[e._events[s],l]:e._events[s].push(l):(e._events[s]=l,e._eventsCount++),e}function s(e,t){0==--e._eventsCount?e._events=new i:delete e._events[t]}function c(){this._events=new i,this._eventsCount=0}Object.create&&(i.prototype=Object.create(null),new i().__proto__||(a=!1)),c.prototype.eventNames=function(){var e,t,n=[];if(0===this._eventsCount)return n;for(t in e=this._events)r.call(e,t)&&n.push(a?t.slice(1):t);return Object.getOwnPropertySymbols?n.concat(Object.getOwnPropertySymbols(e)):n},c.prototype.listeners=function(e){var t=a?a+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var r=0,i=n.length,o=Array(i);r<i;r++)o[r]=n[r].fn;return o},c.prototype.listenerCount=function(e){var t=a?a+e:e,n=this._events[t];return n?n.fn?1:n.length:0},c.prototype.emit=function(e,t,n,r,i,o){var l=a?a+e:e;if(!this._events[l])return!1;var s,c,p=this._events[l],u=arguments.length;if(p.fn){switch(p.once&&this.removeListener(e,p.fn,void 0,!0),u){case 1:return p.fn.call(p.context),!0;case 2:return p.fn.call(p.context,t),!0;case 3:return p.fn.call(p.context,t,n),!0;case 4:return p.fn.call(p.context,t,n,r),!0;case 5:return p.fn.call(p.context,t,n,r,i),!0;case 6:return p.fn.call(p.context,t,n,r,i,o),!0}for(c=1,s=Array(u-1);c<u;c++)s[c-1]=arguments[c];
1p.fn.apply(p.context,s)}else{var d,f=p.length;for(c=0;c<f;c++)switch(p[c].once&&this.removeListener(e,p[c].fn,void 0,!0),u){case 1:p[c].fn.call(p[c].context);break;case 2:p[c].fn.call(p[c].context,t);break;case 3:p[c].fn.call(p[c].context,t,n);break;case 4:p[c].fn.call(p[c].context,t,n,r);break;default:if(!s)for(d=1,s=Array(u-1);d<u;d++)s[d-1]=arguments[d];p[c].fn.apply(p[c].context,s)}}return!0},c.prototype.on=function(e,t,n){return l(this,e,t,n,!1)},c.prototype.once=function(e,t,n){return l(this,e,t,n,!0)},c.prototype.removeListener=function(e,t,n,r){var i=a?a+e:e;if(!this._events[i])return this;if(!t)return s(this,i),this;var o=this._events[i];if(o.fn)o.fn!==t||r&&!o.once||n&&o.context!==n||s(this,i);else{for(var l=0,c=[],p=o.length;l<p;l++)(o[l].fn!==t||r&&!o[l].once||n&&o[l].context!==n)&&c.push(o[l]);c.length?this._events[i]=1===c.length?c[0]:c:s(this,i)}return this},c.prototype.removeAllListeners=function(e){var t;return e?(t=a?a+e:e,this._events[t]&&s(this,t)):(this._events=new i,this._eventsCount=0),this},c.prototype.off=c.prototype.removeListener,c.prototype.addListener=c.prototype.on,c.prefixed=a,c.EventEmitter=c,t.exports=c},52210,(e,t,n)=>{"use strict";var r="function"==typeof Symbol&&Symbol.for,a=r?Symbol.for("react.element"):60103,i=r?Symbol.for("react.portal"):60106,o=r?Symbol.for("react.fragment"):60107,l=r?Symbol.for("react.strict_mode"):60108,s=r?Symbol.for("react.profiler"):60114,c=r?Symbol.for("react.provider"):60109,p=r?Symbol.for("react.context"):60110,u=r?Symbol.for("react.async_mode"):60111,d=r?Symbol.for("react.concurrent_mode"):60111,f=r?Symbol.for("react.forward_ref"):60112,h=r?Symbol.for("react.suspense"):60113,g=r?Symbol.for("react.suspense_list"):60120,y=r?Symbol.for("react.memo"):60115,m=r?Symbol.for("react.lazy"):60116,x=r?Symbol.for("react.block"):60121,v=r?Symbol.for("react.fundamental"):60117,b=r?Symbol.for("react.responder"):60118,w=r?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case a:switch(e=e.type){case u:case d:case o:case s:case l:case h:return e;default:switch(e=e&&e.$$typeof){case p:case f:case m:case y:case c:return e;default:return t}}case i:return t}}}function A(e){return k(e)===d}n.AsyncMode=u,n.ConcurrentMode=d,n.ContextConsumer=p,n.ContextProvider=c,n.Element=a,n.ForwardRef=f,n.Fragment=o,n.Lazy=m,n.Memo=y,n.Portal=i,n.Profiler=s,n.StrictMode=l,n.Suspense=h,n.isAsyncMode=function(e){return A(e)||k(e)===u},n.isConcurrentMode=A,n.isContextConsumer=function(e){return k(e)===p},n.isContextProvider=function(e){return k(e)===c},n.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===a},n.isForwardRef=function(e){return k(e)===f},n.isFragment=function(e){return k(e)===o},n.isLazy=function(e){return k(e)===m},n.isMemo=function(e){return k(e)===y},n.isPortal=function(e){return k(e)===i},n.isProfiler=function(e){return k(e)===s},n.isStrictMode=function(e){return k(e)===l},n.isSuspense=function(e){return k(e)===h},n.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===d||e===s||e===l||e===h||e===g||"object"==typeof e&&null!==e&&(e.$$typeof===m||e.$$typeof===y||e.$$typeof===c||e.$$typeof===p||e.$$typeof===f||e.$$typeof===v||e.$$typeof===b||e.$$typeof===w||e.$$typeof===x)},n.typeOf=k},79684,(e,t,n)=>{"use strict";t.exports=e.r(52210)},46961,e=>{"use strict";e.s(["default",()=>wV],46961);var t,n,r,a,i,o,l,s,c,p,u,d,f,h,g,y,m,x,v,b,w,k,A,_,E,j,O=e.i(43476),C=e.i(71645);function D(e){let{post:t}=e,[n,r]=(0,C.useState)("");(0,C.useEffect)(()=>(r(encodeURIComponent(window.location.href)),()=>{}),[t]);let a={target:"_blank",rel:"noopener noreferrer"};return(0,O.jsxs)("div",{className:"share-links flex-v",children:[(0,O.jsx)("p",{children:"Share with:"}),(0,O.jsx)("a",{href:"https://www.linkedin.com/shareArticle?mini=true&url=".concat(n),...a,children:"LinkedIn"}),(0,O.jsx)("a",{href:"https://www.facebook.com/sharer/sharer.php?u=".concat(n),...a,children:"Facebook"}),(0,O.jsx)("a",{href:"https://twitter.com/intent/tweet?url=".concat(n,"&text=").concat(encodeURIComponent(t.title)),...a,children:"X"})]})}function S(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function P(e){return"Minified Redux error #".concat(e,"; visit https://redux.js.org/Errors?code=").concat(e," for the full message or use the non-minified dev environment for full errors. ")}e.i(47167);var I="function"==typeof Symbol&&Symbol.observable||"@@observable",M=()=>Math.random().toString(36).substring(7).split("").join("."),T={INIT:"@@redux/INIT".concat(M()),REPLACE:"@@redux/REPLACE".concat(M()),PROBE_UNKNOWN_ACTION:()=>"@@redux/PROBE_UNKNOWN_ACTION".concat(M())};function N(e){if("object"!=typeof e||null===e)return!1;let t=e;for(;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t||null===Object.getPrototypeOf(e)}function z(e){let t,n=Object.keys(e),r={};for(let t=0;t<n.length;t++){let a=n[t];"function"==typeof e[a]&&(r[a]=e[a])}let a=Object.keys(r);
1try{Object.keys(r).forEach(e=>{let t=r[e];if(void 0===t(void 0,{type:T.INIT}))throw Error(P(12));if(void 0===t(void 0,{type:T.PROBE_UNKNOWN_ACTION()}))throw Error(P(13))})}catch(e){t=e}return function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;if(t)throw t;let i=!1,o={};for(let t=0;t<a.length;t++){let l=a[t],s=r[l],c=e[l],p=s(c,n);if(void 0===p)throw n&&n.type,Error(P(14));o[l]=p,i=i||p!==c}return(i=i||a.length!==Object.keys(e).length)?o:e}}function L(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?e=>e:1===t.length?t[0]:t.reduce((e,t)=>function(){for(var n=arguments.length,r=Array(n),a=0;a<n;a++)r[a]=arguments[a];return e(t(...r))})}function R(e){return N(e)&&"type"in e&&"string"==typeof e.type}var B=Symbol.for("immer-nothing"),F=Symbol.for("immer-draftable"),H=Symbol.for("immer-state");function U(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];throw Error("[Immer] minified error nr: ".concat(e,". Full error at: https://bit.ly/3cXEKWf"))}var q=Object,K=q.getPrototypeOf,W="constructor",V="prototype",G="configurable",Y="enumerable",$="writable",X="value",Z=e=>!!e&&!!e[H];function Q(e){var t;return!!e&&(et(e)||el(e)||!!e[F]||!!(null==(t=e[W])?void 0:t[F])||es(e)||ec(e))}var J=q[V][W].toString(),ee=new WeakMap;function et(e){if(!e||!ep(e))return!1;let t=K(e);if(null===t||t===q[V])return!0;let n=q.hasOwnProperty.call(t,W)&&t[W];if(n===Object)return!0;if(!eu(n))return!1;let r=ee.get(n);return void 0===r&&(r=Function.toString.call(n),ee.set(n,r)),r===J}function en(e,t){let n=!(arguments.length>2)||void 0===arguments[2]||arguments[2];0===er(e)?(n?Reflect.ownKeys(e):q.keys(e)).forEach(n=>{t(n,e[n],e)}):e.forEach((n,r)=>t(r,n,e))}function er(e){let t=e[H];return t?t.type_:el(e)?1:es(e)?2:3*!!ec(e)}var ea=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:er(e);return 2===n?e.has(t):q[V].hasOwnProperty.call(e,t)},ei=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:er(e);return 2===n?e.get(t):e[t]},eo=function(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:er(e);2===r?e.set(t,n):3===r?e.add(n):e[t]=n},el=Array.isArray,es=e=>e instanceof Map,ec=e=>e instanceof Set,ep=e=>"object"==typeof e,eu=e=>"function"==typeof e,ed=e=>e.modified_?e.copy_:e.base_;function ef(e,t){if(es(e))return new Map(e);if(ec(e))return new Set(e);if(el(e))return Array[V].slice.call(e);let n=et(e);if(!0!==t&&("class_only"!==t||n)){let t=K(e);if(null!==t&&n)return{...e};let r=q.create(t);return q.assign(r,e)}{let t=q.getOwnPropertyDescriptors(e);delete t[H];let n=Reflect.ownKeys(t);for(let r=0;r<n.length;r++){let a=n[r],i=t[a];!1===i[$]&&(i[$]=!0,i[G]=!0),(i.get||i.set)&&(t[a]={[G]:!0,[$]:!0,[Y]:i[Y],[X]:e[a]})}return q.create(K(e),t)}}function eh(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return ey(e)||Z(e)||!Q(e)||(er(e)>1&&q.defineProperties(e,{set:eg,add:eg,clear:eg,delete:eg}),q.freeze(e),t&&en(e,(e,t)=>{eh(t,!0)},!1)),e}var eg={[X]:function(){U(2)}};function ey(e){return!(null!==e&&ep(e))||q.isFrozen(e)}var em="MapSet",ex="Patches",ev="ArrayMethods",eb={};function ew(e){let t=eb[e];return t||U(0,e),t}var ek=e=>!!eb[e];function eA(e,t){t&&(e.patchPlugin_=ew(ex),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function e_(e){eE(e),e.drafts_.forEach(eO),e.drafts_=null}function eE(e){e===t&&(t=e.parent_)}var ej=e=>t={drafts_:[],parent_:t,immer_:e,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:ek(em)?ew(em):void 0,arrayMethodsPlugin_:ek(ev)?ew(ev):void 0};function eO(e){let t=e[H];0===t.type_||1===t.type_?t.revoke_():t.revoked_=!0}function eC(e,t){t.unfinalizedDrafts_=t.drafts_.length;let n=t.drafts_[0];if(void 0!==e&&e!==n){n[H].modified_&&(e_(t),U(4)),Q(e)&&(e=eD(t,e));let{patchPlugin_:r}=t;r&&r.generateReplacementPatches_(n[H].base_,e,t)}else e=eD(t,n);return function(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&eh(t,n)}(t,e,!0),e_(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==B?e:void 0}function eD(e,t){if(ey(t))return t;let n=t[H];if(!n)return eN(t,e.handledSet_,e);if(!eP(n,e))return t;if(!n.modified_)return n.base_;if(!n.finalized_){let{callbacks_:t}=n;if(t)for(;t.length>0;)t.pop()(e);eT(n,e)}return n.copy_}function eS(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var eP=(e,t)=>e.scope_===t,eI=[];function eM(e,t,n,r){var a;let i=e.copy_||e.base_,o=e.type_;if(void 0!==r&&ei(i,r,o)===t)return void eo(i,r,n,o);if(!e.draftLocations_){let t=e.draftLocations_=new Map;en(i,(e,n)=>{if(Z(n)){let r=t.get(n)||[];r.push(e),t.set(n,r)}})}for(let r of null!=(a=e.draftLocations_.get(t))?a:eI)eo(i,r,n,o)}function eT(e,t){var n,r;if(e.modified_&&!e.finalized_&&(3===e.type_||1===e.type_&&e.allIndicesReassigned_||(null!=(r=null==(n=e.assigned_)?void 0:n.size)?r:0)>0)){let{patchPlugin_:n}=t;if(n){let r=n.getPath(e);r&&n.generatePatches_(e,r,t)}eS(e)}}
1function eN(e,t,n){return!n.immer_.autoFreeze_&&n.unfinalizedDrafts_<1||Z(e)||t.has(e)||!Q(e)||ey(e)||(t.add(e),en(e,(r,a)=>{if(Z(a)){let t=a[H];eP(t,n)&&(eo(e,r,ed(t),e.type_),eS(t))}else Q(a)&&eN(a,t,n)})),e}var ez={get(e,t){if(t===H)return e;let n=e.scope_.arrayMethodsPlugin_,r=1===e.type_&&"string"==typeof t;if(r&&(null==n?void 0:n.isArrayOperationMethod(t)))return n.createMethodInterceptor(e,t);let a=e.copy_||e.base_;if(!ea(a,t,e.type_)){var i,o,l,s,c,p=e,u=a,d=t;let n=eB(u,d);return n?X in n?n[X]:null==(c=n.get)?void 0:c.call(p.draft_):void 0}let f=a[t];if(e.finalized_||!Q(f)||r&&e.operationMethod&&(null==n?void 0:n.isMutatingArrayMethod(e.operationMethod))&&function(e){let t=+e;return Number.isInteger(t)&&String(t)===e}(t))return f;if(f===eR(e.base_,t)||(i=e,o=t,l=f,!(1!==i.type_||!i.allIndicesReassigned_||(null==(s=i.assigned_)?void 0:s.get(o)))&&Q(l)&&!l[H]&&i.baseRefs_.has(l))){eH(e);let n=1===e.type_?+t:t,r=eq(e.scope_,f,e,n);return e.copy_[n]=r}return f},has:(e,t)=>t in(e=>e.copy_||e.base_)(e),ownKeys:e=>Reflect.ownKeys((e=>e.copy_||e.base_)(e)),set(e,t,n){let r=eB(e.copy_||e.base_,t);if(null==r?void 0:r.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){let r=eR(e.copy_||e.base_,t),a=null==r?void 0:r[H];if(a&&a.base_===n)return e.copy_[t]=n,e.assigned_.set(t,!1),!0;if((n===r?0!==n||1/n==1/r:n!=n&&r!=r)&&(void 0!==n||ea(e.base_,t,e.type_)))return!0;eH(e),eF(e)}if(e.copy_[t]===n&&(void 0!==n||ea(e.copy_,t,e.type_))||Number.isNaN(n)&&Number.isNaN(e.copy_[t]))return!0;e.copy_[t]=n,e.assigned_.set(t,!0);let{scope_:a}=e;if(Z(n)){let r=n[H];eP(r,a)&&r.callbacks_.push(function(){eH(e),eM(e,n,ed(r),t)})}else Q(n)&&e.callbacks_.push(function(){let r=e.copy_||e.base_;if(3===e.type_)r.has(n)&&eN(n,a.handledSet_,a);else if(ei(r,t,e.type_)===n){var i;a.drafts_.length>1&&!0===(null!=(i=e.assigned_.get(t))&&i)&&e.copy_&&eN(ei(e.copy_,t,e.type_),a.handledSet_,a)}});return!0},deleteProperty:(e,t)=>(eH(e),void 0!==eR(e.base_,t)||t in e.base_?(e.assigned_.set(t,!1),eF(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0),getOwnPropertyDescriptor(e,t){let n=e.copy_||e.base_,r=Reflect.getOwnPropertyDescriptor(n,t);return r?{[$]:!0,[G]:1!==e.type_||"length"!==t,[Y]:r[Y],[X]:n[t]}:r},defineProperty(){U(11)},getPrototypeOf:e=>K(e.base_),setPrototypeOf(){U(12)}},eL={};for(let e in ez){let t=ez[e];eL[e]=function(){let e=arguments;return e[0]=e[0][0],t.apply(this,e)}}function eR(e,t){let n=e[H];return(n?n.copy_||n.base_:e)[t]}function eB(e,t){if(!(t in e))return;let n=K(e);for(;n;){let e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=K(n)}}function eF(e){!e.modified_&&(e.modified_=!0,e.parent_&&eF(e.parent_))}function eH(e){e.copy_||(e.assigned_=new Map,e.copy_=ef(e.base_,e.scope_.immer_.useStrictShallowCopy_))}eL.deleteProperty=function(e,t){return eL.set.call(this,e,t,void 0)},eL.set=function(e,t,n){return ez.set.call(this,e[0],t,n,e[0])};var eU=class{createDraft(e){Q(e)||U(8),Z(e)&&(e=eK(e));let t=ej(this),n=eq(t,e,void 0);return n[H].isManual_=!0,eE(t),n}finishDraft(e,t){let n=e&&e[H];n&&n.isManual_||U(9);let{scope_:r}=n;return eA(r,t),eC(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){let r=t[n];if(0===r.path.length&&"replace"===r.op){e=r.value;break}}n>-1&&(t=t.slice(n+1));let r=ew(ex).applyPatches_;return Z(e)?r(e,t):this.produce(e,e=>r(e,t))}constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(e,t,n)=>{let r;if(eu(e)&&!eu(t)){let n=t;t=e;let r=this;return function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:n;for(var a=arguments.length,i=Array(a>1?a-1:0),o=1;o<a;o++)i[o-1]=arguments[o];return r.produce(e,e=>t.call(this,e,...i))}}if(eu(t)||U(6),void 0===n||eu(n)||U(7),Q(e)){let a=ej(this),i=eq(a,e,void 0),o=!0;try{r=t(i),o=!1}finally{o?e_(a):eE(a)}return eA(a,n),eC(r,a)}if(e&&ep(e))U(1,e);else{if(void 0===(r=t(e))&&(r=e),r===B&&(r=void 0),this.autoFreeze_&&eh(r,!0),n){let t=[],a=[];ew(ex).generateReplacementPatches_(e,r,{patches_:t,inversePatches_:a}),n(t,a)}return r}},this.produceWithPatches=(e,t)=>{let n,r;if(eu(e)){var a=this;return function(t){for(var n=arguments.length,r=Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return a.produceWithPatches(t,t=>e(t,...r))}}return[this.produce(e,t,(e,t)=>{n=e,r=t}),n,r]},"boolean"==typeof(null==e?void 0:e.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),"boolean"==typeof(null==e?void 0:e.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),"boolean"==typeof(null==e?void 0:e.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}};function eq(e,n,r,a){var i,o;let[l,s]=es(n)?ew(em).proxyMap_(n,r):ec(n)?ew(em).proxySet_(n,r):function(e,n){let r=el(e),a={type_:+!!r,scope_:n?n.scope_:t,modified_:!1,finalized_:!1,assigned_:void 0,parent_:n,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0},i=a,o=ez;r&&(i=[a],o=eL);let{revoke:l,proxy:s}=Proxy.revocable(i,o);return a.draft_=s,a.revoke_=l,[s,a]}(n,r);return((null!=(i=null==r?void 0:r.scope_)?i:t).drafts_.push(l),s.callbacks_=null!=(o=null==r?void 0:r.callbacks_)?o:[],s.key_=a,r&&void 0!==a)?r.callbacks_.push(function(e){var t,n;if(!s||!eP(s,e))return;null==(t=e.mapSetPlugin_)||t.fixSetContents(s);let i=ed(s);eM(r,null!=(n=s.draft_)?n:s,i,a),eT(s,e)}):s.callbacks_.push(function(e){var t;null==(t=e.mapSetPlugin_)||t.fixSetContents(s);let{patchPlugin_:n}=e;s.modified_&&n&&n.generatePatches_(s,[],e)}),l}function eK(e){return Z(e)||U(10,e),function e(t){let n;if(!Q(t)||ey(t))return t;let r=t[H],a=!0;if(r){if(!r.modified_)return r.base_;r.finalized_=!0,n=ef(t,r.scope_.immer_.useStrictShallowCopy_),a=r.scope_.immer_.shouldUseStrictIteration()}else n=ef(t,!0);return en(n,(t,r)=>{eo(n,t,e(r))},a),r&&(r.finalized_=!1),n}(e)}var eW=globalThis.Iterator;null==eW||eW.from;var eV=new eU().produce,eG="undefined"==typeof WeakRef?class{deref(){return this.value}constructor(e){this.value=e}}:WeakRef;function eY(){return{s:0,v:void 0,o:null,p:null}}function e$(e){let t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=eY(),{resultEqualityCheck:a,maxSize:i}=n,o=void 0!==i;if(o&&(!Number.isInteger(i)||i<1))throw TypeError("maxSize must be a positive integer, received: ".concat(i));let l=null,s=0,c=0;function p(){s>=i&&(l=r,r=eY(),s=0)}function u(){let n=r,{length:i}=arguments;for(let e=0;e<i;e++){let t=arguments[e];if("function"==typeof t||"object"==typeof t&&null!==t){let e=n.o;null===e&&(n.o=e=new WeakMap);let r=e.get(t);void 0===r?(n=eY(),e.set(t,n)):n=r}else{let e=n.p;null===e&&(n.p=e=new Map);let r=e.get(t);void 0===r?(n=eY(),e.set(t,n),s++):n=r}}if(1===n.s)return n.v;if(null!==l){let e=l;for(let t=0;t<i;t++){let n,r=arguments[t];if("function"==typeof r||"object"==typeof r&&null!==r){let t=e.o;n=null!==t?t.get(r):void 0}else{let t=e.p;n=null!==t?t.get(r):void 0}if(void 0===n){e=null;break}e=n}if(null!==e&&1===e.s){let t=n;return t.s=1,t.v=e.v,p(),e.v}}let u=n,d=e.apply(null,arguments);if(c++,a){var f;let e=(f=t)instanceof eG?f.deref():f;null!=e&&a(e,d)&&(d=e,0!==c&&c--),t="object"==typeof d&&null!==d||"function"==typeof d?new eG(d):d}return u.s=1,u.v=d,o&&p(),d}return u.clearCache=()=>{r=eY(),l=null,s=0,u.resetResultsCount()},u.resultsCount=()=>c,u.resetResultsCount=()=>{c=0},u}var eX=e=>Array.isArray(e)?e:[e],eZ=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];let a="function"==typeof e?{memoize:e,memoizeOptions:n}:e,i=function(){let e;for(var t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];let i=0,o=0,l={},s=n.pop();"object"==typeof s&&(l=s,s=n.pop()),function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"expected a function, instead received ".concat(typeof e);if("function"!=typeof e)throw TypeError(t)}(s,"createSelector expects an output function after the inputs, but received: [".concat(typeof s,"]"));let{memoize:c,memoizeOptions:p=[],argsMemoize:u=e$,argsMemoizeOptions:d=[]}={...a,...l},f=eX(p),h=eX(d),g=function(e){let t=Array.isArray(e[0])?e[0]:e;return!function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"expected all items to be functions, instead received the following types: ";if(!e.every(e=>"function"==typeof e)){let n=e.map(e=>"function"==typeof e?"function ".concat(e.name||"unnamed","()"):typeof e).join(", ");throw TypeError("".concat(t,"[").concat(n,"]"))}}(t,"createSelector expects all input-selectors to be functions, but received the following types: "),t}(n),y=c(function(){return i++,s.apply(null,arguments)},...f);return Object.assign(u(function(){o++;let{length:t}=g,n=Array(t);for(let e=0;e<t;e++)n[e]=g[e].apply(null,arguments);return e=y.apply(null,n)},...h),{resultFunc:s,memoizedResultFunc:y,dependencies:g,dependencyRecomputations:()=>o,resetDependencyRecomputations:()=>{o=0},lastResult:()=>e,recomputations:()=>i,resetRecomputations:()=>{i=0},memoize:c,argsMemoize:u})};return Object.assign(i,{withTypes:()=>i}),i}(e$),eQ=Object.assign(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:eZ;!function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"expected an object, instead received ".concat(typeof e);if("object"!=typeof e)throw TypeError(t)}(e,"createStructuredSelector expects first argument to be an object where each property is a selector, instead received a ".concat(typeof e));let n=Object.keys(e);return t(n.map(t=>e[t]),function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return t.reduce((e,t,r)=>(e[n[r]]=t,e),{})})},{withTypes:()=>eQ});function eJ(e){return t=>{let{dispatch:n,getState:r}=t;return t=>a=>"function"==typeof a?a(n,r,e):t(a)}}var e0=eJ();let e1="undefined"!=typeof window&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(0!=arguments.length)return"object"==typeof arguments[0]?L:L.apply(null,arguments)};function e2(e,t){function n(){for(var n=arguments.length,r=Array(n),a=0;a<n;a++)r[a]=arguments[a];if(t){let n=t(...r);if(!n)throw Error(tN(0));return{type:e,payload:n.payload,..."meta"in n&&{meta:n.meta},..."error"in n&&{error:n.error}}}return{type:e,payload:r[0]}}return n.toString=()=>"".concat(e),n.type=e,n.match=t=>R(t)&&t.type===e,n}"undefined"!=typeof window&&window.__REDUX_DEVTOOLS_EXTENSION__&&window.__REDUX_DEVTOOLS_EXTENSION__;var e6=class e extends Array{static get[Symbol.species](){return e}concat(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return super.concat.apply(this,t)}prepend(){for(var t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];
1return 1===n.length&&Array.isArray(n[0])?new e(...n[0].concat(this)):new e(...n.concat(this))}constructor(...t){super(...t),Object.setPrototypeOf(this,e.prototype)}};function e4(e){return Q(e)?eV(e,()=>{}):e}function e9(e,t,n){return e.has(t)?e.get(t):e.set(t,n(t)).get(t)}let e3="RTK_autoBatch",e5=()=>e=>({payload:e,meta:{[e3]:!0}}),e7=e=>t=>{setTimeout(t,e)},e8=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{type:"raf"};return t=>function(){let n;for(var r=arguments.length,a=Array(r),i=0;i<r;i++)a[i]=arguments[i];let o=t(...a),l=!0,s=!1,c=!1,p=new Set,u="tick"===e.type?queueMicrotask:"raf"===e.type?"undefined"!=typeof window&&window.requestAnimationFrame?(n=window.requestAnimationFrame,e=>{let t,r,a=!1,i=()=>{a||(a=!0,cancelAnimationFrame(t),clearTimeout(r),e())};t=n(i),r=setTimeout(i,100)}):e7(10):"callback"===e.type?e.queueNotification:e7(e.timeout),d=()=>{c=!1,s&&(s=!1,p.forEach(e=>e()))};return Object.assign({},o,{subscribe(e){let t=o.subscribe(()=>l&&e());return p.add(e),()=>{t(),p.delete(e)}},dispatch(e){try{var t;return(s=!(l=!(null==e||null==(t=e.meta)?void 0:t[e3])))&&!c&&(c=!0,u(d)),o.dispatch(e)}finally{l=!0}}})}};function te(e){let t,n={},r=[],a={addCase(e,t){let r="string"==typeof e?e:e.type;if(!r)throw Error(tN(28));if(r in n)throw Error(tN(29));return n[r]=t,a},addAsyncThunk:(e,t)=>(t.pending&&(n[e.pending.type]=t.pending),t.rejected&&(n[e.rejected.type]=t.rejected),t.fulfilled&&(n[e.fulfilled.type]=t.fulfilled),t.settled&&r.push({matcher:e.settled,reducer:t.settled}),a),addMatcher:(e,t)=>(r.push({matcher:e,reducer:t}),a),addDefaultCase:e=>(t=e,a)};return e(a),[n,r,t]}let tt=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:21,t="",n=e;for(;n--;)t+="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW"[64*Math.random()|0];return t},tn=Symbol.for("rtk-slice-createasyncthunk"),tr=function(){var e;let{creators:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=null==t||null==(e=t.asyncThunk)?void 0:e[tn];return function(e){let t,{name:r,reducerPath:a=r}=e;if(!r)throw Error(tN(11));let i=("function"==typeof e.reducers?e.reducers(function(){function e(e,t){return{_reducerDefinitionType:"asyncThunk",payloadCreator:e,...t}}return e.withTypes=()=>e,{reducer:e=>Object.assign({[e.name](){for(var t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];return e(...n)}}[e.name],{_reducerDefinitionType:"reducer"}),preparedReducer:(e,t)=>({_reducerDefinitionType:"reducerWithPrepare",prepare:e,reducer:t}),asyncThunk:e}}()):e.reducers)||{},o=Object.keys(i),l={},s={},c={},p=[],u={addCase(e,t){let n="string"==typeof e?e:e.type;if(!n)throw Error(tN(12));if(n in s)throw Error(tN(13));return s[n]=t,u},addMatcher:(e,t)=>(p.push({matcher:e,reducer:t}),u),exposeAction:(e,t)=>(c[e]=t,u),exposeCaseReducer:(e,t)=>(l[e]=t,u)};function d(){let[t={},n=[],r]="function"==typeof e.extraReducers?te(e.extraReducers):[e.extraReducers],a={...t,...s};return function(e,t){let n,[r,a,i]=te(t);if("function"==typeof e)n=()=>e4(e());else{let t=e4(e);n=()=>t}function o(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:n(),t=arguments.length>1?arguments[1]:void 0,o=[r[t.type],...a.filter(e=>{let{matcher:n}=e;return n(t)}).map(e=>{let{reducer:t}=e;return t})];return 0===o.filter(e=>!!e).length&&(o=[i]),o.reduce((e,n)=>{if(n)if(Z(e)){let r=n(e,t);return void 0===r?e:r}else{if(Q(e))return eV(e,e=>n(e,t));let r=n(e,t);if(void 0===r){if(null===e)return e;throw Error(tN(9))}return r}return e},e)}return o.getInitialState=n,o}(e.initialState,e=>{for(let t in a)e.addCase(t,a[t]);for(let t of p)e.addMatcher(t.matcher,t.reducer);for(let t of n)e.addMatcher(t.matcher,t.reducer);r&&e.addDefaultCase(r)})}o.forEach(t=>{let a=i[t],o={reducerName:t,type:"".concat(r,"/").concat(t),createNotation:"function"==typeof e.reducers};"asyncThunk"===a._reducerDefinitionType?function(e,t,n,r){let{type:a,reducerName:i}=e;if(!r)throw Error(tN(18));let{payloadCreator:o,fulfilled:l,pending:s,rejected:c,settled:p,options:u}=t,d=r(a,o,u);n.exposeAction(i,d),l&&n.addCase(d.fulfilled,l),s&&n.addCase(d.pending,s),c&&n.addCase(d.rejected,c),p&&n.addMatcher(d.settled,p),n.exposeCaseReducer(i,{fulfilled:l||ta,pending:s||ta,rejected:c||ta,settled:p||ta})}(o,a,u,n):function(e,t,n){let r,a,{type:i,reducerName:o,createNotation:l}=e;if("reducer"in t){if(l&&"reducerWithPrepare"!==t._reducerDefinitionType)throw Error(tN(17));r=t.reducer,a=t.prepare}else r=t;n.addCase(i,r).exposeCaseReducer(o,r).exposeAction(o,a?e2(i,a):e2(i))}(o,a,u)});let f=e=>e,h=new Map,g=new WeakMap;function y(e,n){return t||(t=d()),t(e,n)}function m(){return t||(t=d()),t.getInitialState()}function x(t){let n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];function r(e){let a=e[t];return void 0===a&&n&&(a=e9(g,r,m)),a}function a(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f;return e9(e9(h,n,()=>new WeakMap),t,()=>{var r;let a={};for(let[i,o]of Object.entries(null!=(r=e.selectors)?r:{}))a[i]=function(e,t,n,r){function a(a){for(var i=arguments.length,o=Array(i>1?i-1:0),l=1;l<i;l++)o[l-1]=arguments[l];let s=t(a);return void 0===s&&r&&(s=n()),e(s,...o)}return a.unwrapped=e,a}(o,t,()=>e9(g,t,m),n);return a})}return{reducerPath:t,getSelectors:a,get selectors(){return a(r)},selectSlice:r}}let v={name:r,reducer:y,actions:c,caseReducers:l,getInitialState:m,...x(a),injectInto(e){let{reducerPath:t,...n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=null!=t?t:a;return e.inject({reducerPath:r,reducer:y},n),{...v,...x(r,!0)}}};return v}}();function ta(){}let ti="listener",to="completed",tl="cancelled",ts="task-".concat(tl),tc="task-".concat(to),tp="".concat(ti,"-").concat(tl),tu="".concat(ti,"-").concat(to);var td=class{constructor(e){S(this,"code",void 0),S(this,"name","TaskAbortError"),S(this,"message",void 0),this.code=e,this.message="".concat("task"," ").concat(tl," (reason: ").concat(e,")")}};let tf=(e,t)=>{if("function"!=typeof e)throw TypeError(tN(32))},th=()=>{},tg=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:th;return e.catch(t),e},ty=(e,t)=>(e.addEventListener("abort",t,{once:!0}),()=>e.removeEventListener("abort",t)),tm=e=>{if(e.aborted)throw new td(e.reason)};function tx(e,t){let n=th;return new Promise((r,a)=>{let i=()=>a(new td(e.reason));if(e.aborted)return void i();n=ty(e,i),t.finally(()=>n()).then(r,a)}).finally(()=>{n=th})}let tv=async(e,t)=>{try{return await Promise.resolve(),{status:"ok",value:await e()}}catch(e){return{status:e instanceof td?"cancelled":"rejected",error:e}}finally{null==t||t()}},tb=e=>t=>tg(tx(e,t).then(t=>(tm(e),t))),tw=e=>{let t=tb(e);return e=>t(new Promise(t=>setTimeout(t,e)))},{assign:tk}=Object,tA={},t_="listenerMiddleware",tE=e=>{let{type:t,actionCreator:n,matcher:r,predicate:a,effect:i}=e;if(t)a=e2(t).match;else if(n)t=n.type,a=n.match;else if(r)a=r;else if(a);else throw Error(tN(21));return tf(i,"options.listener"),{predicate:a,type:t,effect:i}},tj=tk(e=>{let{type:t,predicate:n,effect:r}=tE(e);return{id:tt(),effect:r,type:t,predicate:n,pending:new Set,unsubscribe:()=>{throw Error(tN(22))}}},{withTypes:()=>tj}),tO=(e,t)=>{let{type:n,effect:r,predicate:a}=tE(t);return Array.from(e.values()).find(e=>("string"==typeof n?e.type===n:e.predicate===a)&&e.effect===r)},tC=e=>
1{e.pending.forEach(e=>{e.abort(tp)})},tD=(e,t,n)=>{try{e(t,n)}catch(e){setTimeout(()=>{throw e},0)}},tS=tk(e2("".concat(t_,"/add")),{withTypes:()=>tS}),tP=e2("".concat(t_,"/removeAll")),tI=tk(e2("".concat(t_,"/remove")),{withTypes:()=>tI}),tM=function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];console.error("".concat(t_,"/error"),...t)},tT=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=new Map,n=new Map,{extra:r,onError:a=tM}=e;tf(a,"onError");let i=e=>{var n,r;return(r=null!=(n=tO(t,e))?n:tj(e)).unsubscribe=()=>t.delete(r.id),t.set(r.id,r),e=>{r.unsubscribe(),(null==e?void 0:e.cancelActive)&&tC(r)}};tk(i,{withTypes:()=>i});let o=e=>{let n=tO(t,e);return n&&(n.unsubscribe(),e.cancelActive&&tC(n)),!!n};tk(o,{withTypes:()=>o});let l=async(e,o,l,s)=>{var c,p,u;let d=new AbortController,f=((e,t)=>{let n=async(n,r)=>{tm(t);let a=()=>{},i=[new Promise((t,r)=>{let i=e({predicate:n,effect:(e,n)=>{n.unsubscribe(),t([e,n.getState(),n.getOriginalState()])}});a=()=>{i(),r()}})];null!=r&&i.push(new Promise(e=>setTimeout(e,r,null)));try{let e=await tx(t,Promise.race(i));return tm(t),e}finally{a()}};return(e,t)=>tg(n(e,t))})(i,d.signal),h=[];try{e.pending.add(d);let a=null!=(c=n.get(e))?c:0;n.set(e,a+1),await Promise.resolve(e.effect(o,tk({},l,{getOriginalState:s,condition:(e,t)=>f(e,t).then(Boolean),take:f,delay:tw(d.signal),pause:tb(d.signal),extra:r,signal:d.signal,fork:(p=d.signal,(e,t)=>{tf(e,"taskExecutor");let n=new AbortController;ty(p,()=>n.abort(p.reason));let r=tv(async()=>{tm(p),tm(n.signal);let t=await e({pause:tb(n.signal),delay:tw(n.signal),signal:n.signal});return tm(n.signal),t},()=>n.abort(tc));return(null==t?void 0:t.autoJoin)&&h.push(r.catch(th)),{result:tb(p)(r),cancel(){n.abort(ts)}}}),unsubscribe:e.unsubscribe,subscribe:()=>{t.set(e.id,e)},cancelActiveListeners:()=>{e.pending.forEach((e,t,n)=>{e!==d&&(e.abort(tp),n.delete(e))})},cancel:()=>{d.abort(tp),e.pending.delete(d)},throwIfCancelled:()=>{tm(d.signal)}})))}catch(e){e instanceof td||tD(a,e,{raisedBy:"effect"})}finally{await Promise.all(h),d.abort(tu);let t=null!=(u=n.get(e))?u:1;1===t?n.delete(e):n.set(e,t-1),e.pending.delete(d)}},s=()=>{for(let e of n.keys())tC(e);t.clear()};return{middleware:e=>n=>r=>{let c;if(!R(r))return n(r);if(tS.match(r))return i(r.payload);if(tP.match(r))return void s();if(tI.match(r))return o(r.payload);let p=e.getState(),u=()=>{if(p===tA)throw Error(tN(23));return p};try{if(c=n(r),t.size>0){let n=e.getState();for(let i of Array.from(t.values())){let t=!1;try{t=i.predicate(r,n,p)}catch(e){t=!1,tD(a,e,{raisedBy:"predicate"})}t&&l(i,r,e,u)}}}finally{p=tA}return c},startListening:i,stopListening:o,clearListeners:s}};function tN(e){return"Minified Redux Toolkit error #".concat(e,"; visit https://redux-toolkit.js.org/Errors?code=").concat(e," for the full message or use the non-minified dev environment for full errors. ")}function tz(e){return"__proto__"===e}Symbol.for("rtk-state-proxy-original");let tL=/\.|(\[(?:[^[\]]*|(["'])(?:(?!\2)[^\\]|\\.)*?\2)\])/;function tR(e){switch(typeof e){case"number":case"symbol":default:return!1;case"string":if(""===e||e.startsWith(".")||e.endsWith("."))return!1;return tL.test(e)}}function tB(e){var t;return"string"==typeof e||"symbol"==typeof e?e:Object.is(null==e||null==(t=e.valueOf)?void 0:t.call(e),-0)?"-0":String(e)}function tF(e){return"symbol"==typeof e||e instanceof Symbol}function tH(e){var t;if(Array.isArray(e))return e.map(tB);if("symbol"==typeof e)return[e];e=null==(t=e)?"":function e(t){if("string"==typeof t)return t;if(Array.isArray(t))return t.map(e).join(",");if(tF(t))return t.toString();let n=t+"";return"0"===n&&Object.is(Number(t),-0)?"-0":n}(t);let n=[],r=e.length;if(0===r)return n;let a=0,i="",o="",l=!1,s=!1,c=/^-?\d+(?:\.\d+)?$/;for(46===e.charCodeAt(0)&&n.push("");a<r;){let t=e[a];if(o)"\\"===t&&a+1<r?i+=e[++a]:t===o?o="":i+=t;else if(l)if('"'===t||"'"===t)o=t,s=!0;else if("]"===t){if(l=!1,!s&&i.includes(".")&&!c.test(i)){let e=i.split(".");for(let t=0;t<e.length;t++)""!==e[t]&&n.push(e[t])}else n.push(i);i=""}else i+=t;else if("["===t)l=!0,s=!1,i&&(n.push(i),i="");else if("."===t){i&&(n.push(i),i="");let t=e[a+1];(void 0===t||"."===t)&&n.push("")}else i+=t;a++}return i&&n.push(i),n}function tU(e,t,n){if(null==e)return n;
1switch(typeof t){case"string":{if(tz(t))return n;let r=e[t];if(void 0===r)if(tR(t)&&!Object.hasOwn(e,t))return tU(e,tH(t),n);else return n;return r}case"number":case"symbol":{"number"==typeof t&&(t=tB(t));let r=e[t];if(void 0===r)return n;return r}default:{if(Array.isArray(t)){var r=e,a=t,i=n;if(0===a.length)return i;let o=r;for(let e=0;e<a.length;e++){if(null==o||tz(a[e]))return i;o=o[a[e]]}return void 0===o?i:o}if(tz(t=Object.is(null==t?void 0:t.valueOf(),-0)?"-0":String(t)))return n;let o=e[t];if(void 0===o)return n;return o}}}function tq(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:4,n=10**t,r=Math.round(e*n)/n;return Object.is(r,-0)?0:r}function tK(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return e.reduce((e,t,r)=>{var a=n[r-1];return"string"==typeof a?e+a+t:void 0!==a?e+tq(a)+t:e+t},"")}var tW=e=>0===e?0:e>0?1:-1,tV=e=>"number"==typeof e&&e!=+e,tG=e=>"string"==typeof e&&e.length>1&&e.indexOf("%")===e.length-1,tY=e=>("number"==typeof e||e instanceof Number)&&!tV(e),t$=e=>tY(e)||"string"==typeof e,tX=0,tZ=e=>{var t=++tX;return"".concat(e||"").concat(t)},tQ=function(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(!tY(e)&&"string"!=typeof e)return r;if(tG(e)){if(null==t)return r;var i=e.indexOf("%");n=t*parseFloat(e.slice(0,i))/100}else n=+e;return tV(n)&&(n=r),a&&null!=t&&n>t&&(n=t),n},tJ=e=>{if(!Array.isArray(e))return!1;for(var t=e.length,n={},r=0;r<t;r++)if(n[String(e[r])])return!0;else n[String(e[r])]=!0;return!1};function t0(e,t,n){return tY(e)&&tY(t)?tq(e+n*(t-e)):t}function t1(e,t,n){if(e&&e.length)return e.find(e=>e&&("function"==typeof t?t(e):tU(e,t))===n)}var t2=e=>null==e?e:"".concat(e.charAt(0).toUpperCase()).concat(e.slice(1));function t6(e){return null!=e}function t4(){}var t9=(e,t)=>{if(t&&Array.isArray(e)){var n=Number.parseInt(t,10);if(!tV(n))return e[n]}},t3=tr({name:"options",initialState:{chartName:"",tooltipPayloadSearcher:()=>void 0,eventEmitter:void 0,defaultTooltipEventType:"axis"},reducers:{createEventEmitter:e=>{null==e.eventEmitter&&(e.eventEmitter=Symbol("rechartsEventEmitter"))}}}),t5=t3.reducer,t7=t3.actions.createEventEmitter;e.i(13027);var t8={notify(){},get:()=>[]},ne="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement,nt="undefined"!=typeof navigator&&"ReactNative"===navigator.product,nn=ne||nt?C.useLayoutEffect:C.useEffect;function nr(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!=e&&t!=t}Object.getOwnPropertyNames,Object.getOwnPropertySymbols,Object.getOwnPropertyDescriptor,Object.getPrototypeOf,Object.prototype;var na=Symbol.for("react-redux-context"),ni="undefined"!=typeof globalThis?globalThis:{},no=function(){var e;if(!C.createContext)return{};let t=null!=(e=ni[na])?e:ni[na]=new Map,n=t.get(C.createContext);return n||(n=C.createContext(null),t.set(C.createContext,n)),n}(),nl=function(e){let{children:t,context:n,serverState:r,store:a}=e,i=C.useMemo(()=>{let e=function(e,t){let n,r=t8,a=0,i=!1;function o(){c.onStateChange&&c.onStateChange()}function l(){if(a++,!n){let t,a;n=e.subscribe(o),t=null,a=null,r={clear(){t=null,a=null},notify(){let e=t;for(;e;)e.callback(),e=e.next},get(){let e=[],n=t;for(;n;)e.push(n),n=n.next;return e},subscribe(e){let n=!0,r=a={callback:e,next:null,prev:a};return r.prev?r.prev.next=r:t=r,function(){n&&null!==t&&(n=!1,r.next?r.next.prev=r.prev:a=r.prev,r.prev?r.prev.next=r.next:t=r.next)}}}}}function s(){a--,n&&0===a&&(n(),n=void 0,r.clear(),r=t8)}let c={addNestedSub:function(e){l();let t=r.subscribe(e),n=!1;return()=>{n||(n=!0,t(),s())}},notifyNestedSubs:function(){r.notify()},handleChangeWrapper:o,isSubscribed:function(){return i},trySubscribe:function(){i||(i=!0,l())},tryUnsubscribe:function(){i&&(i=!1,s())},getListeners:()=>r};return c}(a);return{store:a,subscription:e,getServerState:r?()=>r:void 0}},[a,r]),o=C.useMemo(()=>a.getState(),[a]);nn(()=>{let{subscription:e}=i;return e.onStateChange=e.notifyNestedSubs,e.trySubscribe(),o!==a.getState()&&e.notifyNestedSubs(),()=>{e.tryUnsubscribe(),e.onStateChange=void 0}},[i,o]);let l=n||no;return C.createElement(l.Provider,{value:i},t)};function ns(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:no;return function(){return C.useContext(e)}}var nc=ns();var np={active:!1,index:null,dataKey:void 0,graphicalItemId:void 0,coordinate:void 0},nu=tr({name:"tooltip",initialState:{itemInteraction:{click:np,hover:np},axisInteraction:{click:np,hover:np},keyboardInteraction:np,syncInteraction:{active:!1,index:null,dataKey:void 0,label:void 0,coordinate:void 0,sourceViewBox:void 0,graphicalItemId:void 0},tooltipItemPayloads:[],settings:{shared:void 0,trigger:"hover",axisId:0,active:!1,defaultIndex:void 0}},reducers:{addTooltipEntrySettings:{reducer(e,t){e.tooltipItemPayloads.push(t.payload)},prepare:e5()},replaceTooltipEntrySettings:{reducer(e,t){var n=t.payload,r=n.prev,a=n.next,i=eK(e).tooltipItemPayloads.indexOf(r);i>-1&&(e.tooltipItemPayloads[i]=a)},prepare:e5()},removeTooltipEntrySettings:{reducer(e,t){var n=eK(e).tooltipItemPayloads.indexOf(t.payload);n>-1&&e.tooltipItemPayloads.splice(n,1)},prepare:e5()},setTooltipSettingsState(e,t){e.settings=t.payload},setActiveMouseOverItemIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.keyboardInteraction.active=!1,e.itemInteraction.hover.active=!0,e.itemInteraction.hover.index=t.payload.activeIndex,e.itemInteraction.hover.dataKey=t.payload.activeDataKey,e.itemInteraction.hover.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.hover.coordinate=t.payload.activeCoordinate},mouseLeaveChart(e){e.itemInteraction.hover.active=!1,e.axisInteraction.hover.active=!1},mouseLeaveItem(e){e.itemInteraction.hover.active=!1},setActiveClickItemIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.itemInteraction.click.active=!0,e.keyboardInteraction.active=!1,e.itemInteraction.click.index=t.payload.activeIndex,e.itemInteraction.click.dataKey=t.payload.activeDataKey,e.itemInteraction.click.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.click.coordinate=t.payload.activeCoordinate},setMouseOverAxisIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.axisInteraction.hover.active=!0,e.keyboardInteraction.active=!1,e.axisInteraction.hover.index=t.payload.activeIndex,e.axisInteraction.hover.dataKey=t.payload.activeDataKey,e.axisInteraction.hover.coordinate=t.payload.activeCoordinate},setMouseClickAxisIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.keyboardInteraction.active=!1,e.axisInteraction.click.active=!0,e.axisInteraction.click.index=t.payload.activeIndex,e.axisInteraction.click.dataKey=t.payload.activeDataKey,e.axisInteraction.click.coordinate=t.payload.activeCoordinate},setSyncInteraction(e,t){e.syncInteraction=t.payload},setKeyboardInteraction(e,t){e.keyboardInteraction.active=t.payload.active,e.keyboardInteraction.index=t.payload.activeIndex,e.keyboardInteraction.coordinate=t.payload.activeCoordinate}}}),nd=nu.actions,nf=nd.addTooltipEntrySettings,nh=nd.replaceTooltipEntrySettings,ng=nd.removeTooltipEntrySettings,ny=nd.setTooltipSettingsState,nm=nd.setActiveMouseOverItemIndex,nx=nd.mouseLeaveItem,nv=nd.mouseLeaveChart,nb=nd.setActiveClickItemIndex,nw=nd.setMouseOverAxisIndex,nk=nd.setMouseClickAxisIndex,nA=nd.setSyncInteraction,n_=nd.setKeyboardInteraction,nE=nu.reducer,nj=tr({name:"chartData",initialState:{chartData:void 0,computedData:void 0,dataStartIndex:0,dataEndIndex:0},reducers:{setChartData(e,t){if(e.chartData=t.payload,null==t.payload){e.dataStartIndex=0,e.dataEndIndex=0;return}t.payload.length>0&&e.dataEndIndex!==t.payload.length-1&&(e.dataEndIndex=t.payload.length-1)},setComputedData(e,t){e.computedData=t.payload},setDataStartEndIndexes(e,t){var n=t.payload,r=n.startIndex,a=n.endIndex;null!=r&&(e.dataStartIndex=r),null!=a&&(e.dataEndIndex=a)}}}),nO=nj.actions,nC=nO.setChartData,nD=nO.setDataStartEndIndexes;nO.setComputedData;var nS=nj.reducer,nP=tr({name:"chartLayout",initialState:{layoutType:"horizontal",width:0,height:0,margin:{top:5,right:5,bottom:5,left:5},scale:1},reducers:{setLayout(e,t){e.layoutType=t.payload},setChartSize(e,t){e.width=t.payload.width,e.height=t.payload.height},setMargin(e,t){var n,r,a,i;e.margin.top=null!=(n=t.payload.top)?n:0,e.margin.right=null!=(r=t.payload.right)?r:0,e.margin.bottom=null!=(a=t.payload.bottom)?a:0,e.margin.left
1=null!=(i=t.payload.left)?i:0},setScale(e,t){e.scale=t.payload}}}),nI=nP.actions,nM=nI.setMargin,nT=nI.setLayout,nN=nI.setChartSize,nz=nI.setScale,nL=nP.reducer,nR=e=>Array.isArray(e)?e:[e],nB=0,nF=class{get value(){return this._value}set value(e){this.value!==e&&(this._value=e,this.revision=++nB)}constructor(e,t=nH){S(this,"revision",nB),S(this,"_value",void 0),S(this,"_lastValue",void 0),S(this,"_isEqual",nH),this._value=this._lastValue=e,this._isEqual=t}};function nH(e,t){return e===t}function nU(e){return e instanceof nF||console.warn("Not a valid cell! ",e),e.value}var nq=(e,t)=>!1;function nK(){return function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:nH;return new nF(e,t)}(null,nq)}var nW=e=>{let t=e.collectionTag;null===t&&(t=e.collectionTag=nK()),nU(t)},nV=0,nG=Object.getPrototypeOf({}),nY=class{constructor(e){S(this,"proxy",new Proxy(this,n$)),S(this,"tag",nK()),S(this,"tags",{}),S(this,"children",{}),S(this,"collectionTag",null),S(this,"id",nV++),this.value=e,this.value=e,this.tag.value=e}},n$={get:(e,t)=>(function(){let{value:n}=e,r=Reflect.get(n,t);if("symbol"==typeof t||t in nG)return r;if("object"==typeof r&&null!==r){var a;let n=e.children[t];return void 0===n&&(n=e.children[t]=Array.isArray(a=r)?new nX(a):new nY(a)),n.tag&&nU(n.tag),n.proxy}{let n=e.tags[t];return void 0===n&&((n=e.tags[t]=nK()).value=r),nU(n),r}})(),ownKeys:e=>(nW(e),Reflect.ownKeys(e.value)),getOwnPropertyDescriptor:(e,t)=>Reflect.getOwnPropertyDescriptor(e.value,t),has:(e,t)=>Reflect.has(e.value,t)},nX=class{constructor(e){S(this,"proxy",new Proxy([this],nZ)),S(this,"tag",nK()),S(this,"tags",{}),S(this,"children",{}),S(this,"collectionTag",null),S(this,"id",nV++),this.value=e,this.value=e,this.tag.value=e}},nZ={get(e,t){let[n]=e;return"length"===t&&nW(n),n$.get(n,t)},ownKeys(e){let[t]=e;return n$.ownKeys(t)},getOwnPropertyDescriptor(e,t){let[n]=e;return n$.getOwnPropertyDescriptor(n,t)},has(e,t){let[n]=e;return n$.has(n,t)}},nQ="undefined"==typeof WeakRef?class{deref(){return this.value}constructor(e){this.value=e}}:WeakRef;function nJ(){return{s:0,v:void 0,o:null,p:null}}function n0(e){let t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=nJ(),{resultEqualityCheck:a}=n,i=0;function o(){let n,o=r,{length:l}=arguments;for(let e=0;e<l;e++){let t=arguments[e];if("function"==typeof t||"object"==typeof t&&null!==t){let e=o.o;null===e&&(o.o=e=new WeakMap);let n=e.get(t);void 0===n?(o=nJ(),e.set(t,o)):o=n}else{let e=o.p;null===e&&(o.p=e=new Map);let n=e.get(t);void 0===n?(o=nJ(),e.set(t,o)):o=n}}let s=o;if(1===o.s)n=o.v;else if(n=e.apply(null,arguments),i++,a){var c;let e=(c=t)instanceof nQ?c.deref():c;null!=e&&a(e,n)&&(n=e,0!==i&&i--),t="object"==typeof n&&null!==n||"function"==typeof n?new nQ(n):n}return s.s=1,s.v=n,n}return o.clearCache=()=>{r=nJ(),o.resetResultsCount()},o.resultsCount=()=>i,o.resetResultsCount=()=>{i=0},o}var n1=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];let a="function"==typeof e?{memoize:e,memoizeOptions:n}:e,i=function(){let e;for(var t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];let i=0,o=0,l={},s=n.pop();"object"==typeof s&&(l=s,s=n.pop()),function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"expected a function, instead received ".concat(typeof e);if("function"!=typeof e)throw TypeError(t)}(s,"createSelector expects an output function after the inputs, but received: [".concat(typeof s,"]"));let{memoize:c,memoizeOptions:p=[],argsMemoize:u=n0,argsMemoizeOptions:d=[]}={...a,...l},f=nR(p),h=nR(d),g=function(e){let t=Array.isArray(e[0])?e[0]:e;return!function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"expected all items to be functions, instead received the following types: ";if(!e.every(e=>"function"==typeof e)){let n=e.map(e=>"function"==typeof e?"function ".concat(e.name||"unnamed","()"):typeof e).join(", ");throw TypeError("".concat(t,"[").concat(n,"]"))}}(t,"createSelector expects all input-selectors to be functions, but received the following types: "),t}(n),y=c(function(){return i++,s.apply(null,arguments)},...f);return Object.assign(u(function(){o++;let t=function(e,t){let n=[],{length:r}=e;for(let a=0;a<r;a++)n.push(e[a].apply(null,t));return n}(g,arguments);return e=y.apply(null,t)},...h),{resultFunc:s,memoizedResultFunc:y,dependencies:g,dependencyRecomputations:()=>o,resetDependencyRecomputations:()=>{o=0},lastResult:()=>e,recomputations:()=>i,resetRecomputations:()=>{i=0},memoize:c,argsMemoize:u})};return Object.assign(i,{withTypes:()=>i}),i}(n0),n2=Object.assign(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n1;!function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"expected an object, instead received ".concat(typeof e);if("object"!=typeof e)throw TypeError(t)}(e,"createStructuredSelector expects first argument to be an object where each property is a selector, instead received a ".concat(typeof e));let n=Object.keys(e);return t(n.map(t=>e[t]),function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return t.reduce((e,t,r)=>(e[n[r]]=t,e),{})})},{withTypes:()=>n2}),n6=e.i(30224),n4=(0,C.createContext)(null),n9=e=>e,n3=()=>{var e=(0,C.useContext)(n4);return e?e.store.dispatch:n9},n5=()=>{},n7=()=>n5,n8=(e,t)=>e===t;function re(e){var t=(0,C.useContext)(n4),n=(0,C.useMemo)(()=>t?t=>{if(null!=t)return e(t)}:n5,[t,e]);return(0,n6.useSyncExternalStoreWithSelector)(t?t.subscription.addNestedSub:n7,t?t.store.getState:n5,t?t.store.getState:n5,n,n8)}function rt(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function rn(e){var t;return null!=e&&"function"!=typeof e&&Number.isSafeInteger(t=e.length)&&t>=0}function rr(e){return null!==e&&("object"==typeof e||"function"==typeof e)}let ra=/^(?:0|[1-9]\d*)$/;function ri(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.MAX_SAFE_INTEGER;switch(typeof e){case"number":return Number.isInteger(e)&&e>=0&&e<t;case"symbol":return!1;case"string":return ra.test(e)}}function ro(e,t,n){return!!rr(n)&&(!!("number"==typeof t&&rn(n)&&ri(t))&&t<n.length||"string"==typeof t&&t in n)&&rt(n[t],e)}function rl(e){return"symbol"==typeof e?1:null===e?2:void 0===e?3:4*(e!=e)}let rs=(e,t,n)=>{if(e!==t){let r=rl(e),a=rl(t);if(r===a&&0===r){if(e<t)return"desc"===n?1:-1;if(e>t)return"desc"===n?-1:1}return"desc"===n?a-r:r-a}return 0},rc=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,rp=/^\w*$/;function ru(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];let a=n.length;return a>1&&ro(e,n[0],n[1])?n=[]:a>2&&ro(n[0],n[1],n[2])&&(n=[n[0]]),function(e,t,n,r){if(null==e)return[];Array.isArray(e)||(e=rn(e)?Array.from(e):Object.values(e)),Array.isArray(t)||(t=null==t?[null]:[t]),0===t.length&&(t=[null]),Array.isArray(n)||(n=null==n?[]:[n]),n=n.map(e=>String(e));let a=(e,t)=>{let n=e,r=0;for(;r<t.length&&null!=n;++r)n=n[t[r]];return r>0&&r===t.length?n:void 0},i=t.map(e=>{var t;return(Array.isArray(e)&&1===e.length&&(e=e[0]),null==e||"function"==typeof e||Array.isArray(e)||!Array.isArray(t=e)&&("number"==typeof t||"boolean"==typeof t||null==t||tF(t)||"string"==typeof t&&(rp.test(t)||!rc.test(t))||0))?e:{key:e,path:tH(e)}});return e.map(e=>({original:e,criteria:i.map(t=>((e,t)=>{if(null==e)return t;if(null!=t)return"object"==typeof e&&"key"in e?Object.hasOwn(t,e.key)?t[e.key]:a(t,e.path):"function"==typeof e?e(t):Array.isArray(e)?a(t,e):t[e]})(t,e))})).slice().sort((e,t)=>
1{for(let r=0;r<i.length;r++){let a=rs(e.criteria[r],t.criteria[r],n[r]);if(0!==a)return a}return 0}).map(e=>e.original)}(e,function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=[],r=Math.floor(t),a=(e,t)=>{for(let i=0;i<e.length;i++){let o=e[i];Array.isArray(o)&&t<r?a(o,t+1):n.push(o)}};return a(e,0),n}(n),["asc"])}var rd=e=>e.legend.settings;function rf(e){return"object"==typeof e&&"length"in e?e:Array.from(e)}function rh(e){return function(){return e}}function rg(e,t){if((a=e.length)>1)for(var n,r,a,i=1,o=e[t[0]],l=o.length;i<a;++i)for(r=o,o=e[t[i]],n=0;n<l;++n)o[n][1]+=o[n][0]=isNaN(r[n][1])?r[n][0]:r[n][1]}function ry(e){for(var t=e.length,n=Array(t);--t>=0;)n[t]=t;return n}function rm(e,t){return e[t]}function rx(e){let t=[];return t.key=e,t}function rv(e,t,n){return Array.isArray(e)&&e&&t+n!==0?e.slice(t,n+1):e}function rb(e){return Number.isFinite(e)}function rw(e){return"number"==typeof e&&e>0&&Number.isFinite(e)}function rk(e){if(e)return{x:e.x,y:e.y,upperWidth:"upperWidth"in e?e.upperWidth:e.width,lowerWidth:"lowerWidth"in e?e.lowerWidth:e.width,width:e.width,height:e.height}}function rA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function r_(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?rA(Object(n),!0).forEach(function(t){var r,a,i;r=e,a=t,i=n[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):rA(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}n1([e=>e.legend.payload,rd],(e,t)=>{var n=t.itemSorter,r=e.flat(1);return n?ru(r,n):r}),Array.prototype.slice;var rE=["top","left","right","bottom"];function rj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function rO(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?rj(Object(n),!0).forEach(function(t){var r,a,i;r=e,a=t,i=n[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):rj(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function rC(e,t,n){return null==e||null==t?n:t$(t)?tU(e,t,n):"function"==typeof t?t(e):n}var rD=(e,t)=>"horizontal"===e&&"xAxis"===t||"vertical"===e&&"yAxis"===t||"centric"===e&&"angleAxis"===t||"radial"===e&&"radiusAxis"===t,rS=(e,t,n,r)=>{if(r)return e.map(e=>e.coordinate);var a,i,o=e.map(e=>(e.coordinate===t&&(a=!0),e.coordinate===n&&(i=!0),e.coordinate));return a||o.push(t),i||o.push(n),o},rP=(e,t,n)=>{if(!e)return null;var r=e.duplicateDomain,a=e.type,i=e.range,o=e.scale,l=e.realScaleType,s=e.isCategorical,c=e.categoricalDomain,p=e.tickCount,u=e.ticks,d=e.niceTicks,f=e.axisType;if(!o)return null;var h="scaleBand"===l&&o.bandwidth?o.bandwidth()/2:2,g=(t||n)&&"category"===a&&o.bandwidth?o.bandwidth()/h:0;return(g="angleAxis"===f&&i&&i.length>=2?2*tW(i[0]-i[1])*g:g,t&&(u||d))?(u||d||[]).map((e,t)=>{var n=r?r.indexOf(e):e,a=o.map(n);return rb(a)?{coordinate:a+g,value:e,offset:g,index:t}:null}).filter(t6):s&&c?c.map((e,t)=>{var n=o.map(e);return rb(n)?{coordinate:n+g,value:e,index:t,offset:g}:null}).filter(t6):o.ticks&&!n&&null!=p?o.ticks(p).map((e,t)=>{var n=o.map(e);return rb(n)?{coordinate:n+g,value:e,index:t,offset:g}:null}).filter(t6):o.domain().map((e,t)=>{var n=o.map(e);return rb(n)?{coordinate:n+g,value:r?r[e]:e,index:t,offset:g}:null}).filter(t6)},rI={sign:e=>{var t,n=e.length;if(!(n<=0)){var r=null==(t=e[0])?void 0:t.length;if(null!=r&&!(r<=0))for(var a=0;a<r;++a)for(var i=0,o=0,l=0;l<n;++l){var s=e[l],c=null==s?void 0:s[a];if(null!=c){var p=c[1],u=c[0],d=tV(p)?u:p;d>=0?(c[0]=i,i+=d,c[1]=i):(c[0]=o,o+=d,c[1]=o)}}}},expand:function(e,t){if((r=e.length)>0){for(var n,r,a,i=0,o=e[0].length;i<o;++i){for(a=n=0;n<r;++n)a+=e[n][i][1]||0;if(a)for(n=0;n<r;++n)e[n][i][1]/=a}rg(e,t)}},none:rg,silhouette:function(e,t){if((n=e.length)>0){for(var n,r=0,a=e[t[0]],i=a.length;r<i;++r){for(var o=0,l=0;o<n;++o)l+=e[o][r][1]||0;a[r][1]+=a[r][0]=-l/2}rg(e,t)}},wiggle:function(e,t){if((a=e.length)>0&&(r=(n=e[t[0]]).length)>0){for(var n,r,a,i=0,o=1;o<r;++o){for(var l=0,s=0,c=0;l<a;
1++l){for(var p=e[t[l]],u=p[o][1]||0,d=(u-(p[o-1][1]||0))/2,f=0;f<l;++f){var h=e[t[f]];d+=(h[o][1]||0)-(h[o-1][1]||0)}s+=u,c+=d*u}n[o-1][1]+=n[o-1][0]=i,s&&(i-=c/s)}n[o-1][1]+=n[o-1][0]=i,rg(e,t)}},positive:e=>{var t,n=e.length;if(!(n<=0)){var r=null==(t=e[0])?void 0:t.length;if(null!=r&&!(r<=0))for(var a=0;a<r;++a)for(var i=0,o=0;o<n;++o){var l=e[o],s=null==l?void 0:l[a];if(null!=s){var c=tV(s[1])?s[0]:s[1];c>=0?(s[0]=i,i+=c,s[1]=i):(s[0]=0,s[1]=0)}}}}};function rM(e){var t=e.axis,n=e.ticks,r=e.bandSize,a=e.entry,i=e.index,o=e.dataKey;if("category"===t.type){if(!t.allowDuplicatedCategory&&t.dataKey&&null!=a[t.dataKey]){var l=t1(n,"value",a[t.dataKey]);if(l)return l.coordinate+r/2}return null!=n&&n[i]?n[i].coordinate+r/2:null}var s=rC(a,null==o?t.dataKey:o),c=t.scale.map(s);return tY(c)?c:null}var rT=e=>{var t=e.axis,n=e.ticks,r=e.offset,a=e.bandSize,i=e.entry,o=e.index;if("category"===t.type)return n[o]?n[o].coordinate+r:null;var l=rC(i,t.dataKey,t.scale.domain()[o]);if(null==l)return null;var s=t.scale.map(l);return tY(s)?s-a/2+r:null},rN=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,rz=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,rL=(e,t,n)=>{if(e&&e.scale&&e.scale.bandwidth){var r=e.scale.bandwidth();if(!n||r>0)return r}if(e&&t&&t.length>=2){for(var a=ru(t,e=>e.coordinate),i=[],o=0,l=1,s=a.length;l<s;l++){var c,p,u=((null==(c=a[l])?void 0:c.coordinate)||0)-((null==(p=a[l-1])?void 0:p.coordinate)||0);i.push(u),o=Math.max(u,o)}var d=1e-4*o,f=1/0;for(var h of i)h>d&&(f=Math.min(h,f));return f===1/0?0:f}return n?void 0:0};function rR(e){var t=e.tooltipEntrySettings,n=e.dataKey,r=e.payload,a=e.value,i=e.name;return rO(rO({},t),{},{dataKey:n,payload:r,value:a,name:i})}function rB(e,t){return null!=e?String(e):"string"==typeof t?t:void 0}var rF=e=>e.layout.width,rH=e=>e.layout.height,rU=e=>e.layout.scale,rq=e=>e.layout.margin,rK=n1(e=>e.cartesianAxis.xAxis,e=>Object.values(e)),rW=n1(e=>e.cartesianAxis.yAxis,e=>Object.values(e));function rV(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function rG(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?rV(Object(n),!0).forEach(function(t){var r,a,i;r=e,a=t,i=n[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):rV(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var rY=n1([rF,rH,rq,e=>e.brush.height,function(e){return rW(e).reduce((e,t)=>"left"!==t.orientation||t.mirror||t.hide?e:e+("number"==typeof t.width?t.width:60),0)},function(e){return rW(e).reduce((e,t)=>"right"!==t.orientation||t.mirror||t.hide?e:e+("number"==typeof t.width?t.width:60),0)},function(e){return rK(e).reduce((e,t)=>"top"!==t.orientation||t.mirror||t.hide?e:e+("number"==typeof t.height?t.height:30),0)},function(e){return rK(e).reduce((e,t)=>"bottom"!==t.orientation||t.mirror||t.hide?e:e+("number"==typeof t.height?t.height:30),0)},rd,e=>e.legend.size],(e,t,n,r,a,i,o,l,s,c)=>{var p={left:(n.left||0)+a,right:(n.right||0)+i},u=rG(rG({},{top:(n.top||0)+o,bottom:(n.bottom||0)+l}),p),d=u.bottom;u.bottom+=r;var f=e-(u=((e,t,n)=>{if(t&&n){var r=n.width,a=n.height,i=t.align,o=t.verticalAlign,l=t.layout,s=t.position,c=t.offset,p=void 0===c?0:c;if(null!=s){if(function(e){return null!=e&&("object"==typeof e||rE.includes(e))}(s)){if("top"===s&&tY(e.top))return rO(rO({},e),{},{top:e.top+(a||0)+p});if("bottom"===s&&tY(e.bottom))return rO(rO({},e),{},{bottom:e.bottom+(a||0)+p});if("left"===s&&tY(e.left))return rO(rO({},e),{},{left:e.left+(r||0)+p});if("right"===s&&tY(e.right))return rO(rO({},e),{},{right:e.right+(r||0)+p})}return e}if(("vertical"===l||"horizontal"===l&&"middle"===o)&&"center"!==i&&tY(e[i]))return rO(rO({},e),{},{[i]:e[i]+(r||0)});if(("horizontal"===l||"vertical"===l&&"center"===i)&&"middle"!==o&&tY(e[o]))return rO(rO({},e),{},{[o]:e[o]+(a||0)})}return e})(u,s,c)).left-u.right,h=t-u.top-u.bottom;return rG(rG({brushBottom:d},u),{},{width:Math.max(f,0),height:Math.max(h,0)})}),r$=n1(rY,e=>({x:e.left,y:e.top,width:e.width,height:e.height})),rX=n1(rF,rH,(e,t)=>({x:0,y:0,width:e,height:t})),rZ=(0,C.createContext)(null),rQ=()=>null!=(0,C.useContext)(rZ),rJ=e=>e.brush,r0=n1([rJ,rY,rq],(e,t,n)=>({height:e.height,x:tY(e.x)?e.x:t.left,y:tY(e.y)?e.y:t.top+t.height+t.brushBottom-((null==n?void 0:n.bottom)||0),width:tY(e.width)?e.width:t.width}));function r1(){for(var e,t,n=0,r="",a=arguments.length;n<a;n++)(e=arguments[n])&&(t=function e(t){var n,r,a="";if("string"==typeof t||"number"==typeof t)a+=t;else if("object"==typeof t)if(Array.isArray(t)){var i=t.length;for(n=0;n<i;
1n++)t[n]&&(r=e(t[n]))&&(a&&(a+=" "),a+=r)}else for(r in t)t[r]&&(a&&(a+=" "),a+=r);return a}(e))&&(r&&(r+=" "),r+=t);return r}var r2=function(e,t){for(var n=arguments.length,r=Array(n>2?n-2:0),a=2;a<n;a++)r[a-2]=arguments[a];if("undefined"!=typeof console&&console.warn&&(void 0===t&&console.warn("LogUtils requires an error message argument"),!e))if(void 0===t)console.warn("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var i=0;console.warn(t.replace(/%s/g,()=>r[i++]))}},r6={width:"100%",height:"100%",debounce:0,minWidth:0,initialDimension:{width:-1,height:-1}},r4=(e,t,n)=>{var r=n.width,a=void 0===r?r6.width:r,i=n.height,o=void 0===i?r6.height:i,l=n.aspect,s=n.maxHeight,c=tG(a)?e:Number(a),p=tG(o)?t:Number(o);return l&&l>0&&(c?p=c/l:p&&(c=p*l),s&&null!=p&&p>s&&(p=s)),{calculatedWidth:c,calculatedHeight:p}},r9={width:0,height:0,overflow:"visible"},r3={width:0,overflowX:"visible"},r5={height:0,overflowY:"visible"},r7={},r8=["aspect","initialDimension","width","height","minWidth","minHeight","maxHeight","children","debounce","id","className","onResize","style"];function ae(){return(ae=Object.assign.bind()).apply(null,arguments)}function at(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function an(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?at(Object(n),!0).forEach(function(t){var r,a,i;r=e,a=t,i=n[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):at(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function ar(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var aa=(0,C.createContext)(r6.initialDimension);function ai(e){var t=e.children,n=e.width,r=e.height,a=(0,C.useMemo)(()=>({width:n,height:r}),[n,r]);return rw(a.width)&&rw(a.height)?C.createElement(aa.Provider,{value:a},t):null}var ao=()=>(0,C.useContext)(aa),al=(0,C.forwardRef)((e,t)=>{var n=e.aspect,r=e.initialDimension,a=void 0===r?r6.initialDimension:r,i=e.width,o=e.height,l=e.minWidth,s=void 0===l?r6.minWidth:l,c=e.minHeight,p=e.maxHeight,u=e.children,d=e.debounce,f=void 0===d?r6.debounce:d,h=e.id,g=e.className,y=e.onResize,m=e.style,x=function(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n={};for(var r in e)if(({}).hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],-1===t.indexOf(n)&&({}).propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}(e,r8),v=(0,C.useRef)(null),b=(0,C.useRef)();b.current=y,(0,C.useImperativeHandle)(t,()=>v.current);var w=function(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],s=!0,c=!1;try{i=(n=n.call(e)).next,!1;for(;!(s=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);s=!0);}catch(e){c=!0,a=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return l}}(e,2)||function(e,t){if(e){if("string"==typeof e)return ar(e,t);var n=({}).toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ar(e,t):void 0}}
1(e,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}((0,C.useState)({containerWidth:a.width,containerHeight:a.height}),2),k=w[0],A=w[1],_=(0,C.useCallback)((e,t)=>{A(n=>{var r=Math.round(e),a=Math.round(t);return n.containerWidth===r&&n.containerHeight===a?n:{containerWidth:r,containerHeight:a}})},[]);(0,C.useEffect)(()=>{if(null==v.current||"undefined"==typeof ResizeObserver)return t4;var e=e=>{var t,n=e[0];if(null!=n){var r=n.contentRect,a=r.width,i=r.height;_(a,i),null==(t=b.current)||t.call(b,a,i)}};f>0&&(e=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{leading:r=!0,trailing:a=!0}=n;return function(e){let t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};"object"!=typeof r&&(r={});let{leading:a=!1,trailing:i=!0,maxWait:o}=r,l=[,,];a&&(l[0]="leading"),i&&(l[1]="trailing");let s=null,c=function(e,t){let n,{signal:r,edges:a}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=null,o=null!=a&&a.includes("leading"),l=null==a||a.includes("trailing"),s=()=>{null!==i&&(e.apply(n,i),n=void 0,i=null)},c=null,p=()=>{null!=c&&clearTimeout(c),c=setTimeout(()=>{c=null,l&&s(),u()},t)},u=()=>{null!==c&&(clearTimeout(c),c=null),n=void 0,i=null},d=function(){for(var e=arguments.length,t=Array(e),a=0;a<e;a++)t[a]=arguments[a];if(null==r?void 0:r.aborted)return;n=this,i=t;let l=null==c;p(),o&&l&&s()};return d.schedule=p,d.cancel=u,d.flush=()=>{s()},null==r||r.addEventListener("abort",u,{once:!0}),d}(function(){for(var n=arguments.length,r=Array(n),a=0;a<n;a++)r[a]=arguments[a];t=e.apply(this,r),s=null},n,{edges:l}),p=function(){for(var n=arguments.length,r=Array(n),l=0;l<n;l++)r[l]=arguments[l];return null!=o&&(null===s&&(s=Date.now()),Date.now()-s>=o)?((a||i)&&(t=e.apply(this,r)),s=Date.now(),c.cancel(),c.schedule(),t):(c.apply(this,r),t)};return p.cancel=c.cancel,p.flush=()=>(c.flush(),t),p}(e,t,{leading:r,maxWait:t,trailing:a})}(e,f,{trailing:!0,leading:!1}));var t=new ResizeObserver(e),n=v.current.getBoundingClientRect();return _(n.width,n.height),t.observe(v.current),()=>{t.disconnect()}},[_,f]);var E=k.containerWidth,j=k.containerHeight;r2(!n||n>0,"The aspect(%s) must be greater than zero.",n);var O=r4(E,j,{width:i,height:o,aspect:n,maxHeight:p}),D=O.calculatedWidth,S=O.calculatedHeight;return r2(E<0||j<0||null!=D&&D>0||null!=S&&S>0,"The width(%s) and height(%s) of chart should be greater than 0,\n please check the style of container, or the props width(%s) and height(%s),\n or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the\n height and width.",D,S,i,o,s,c,n),C.createElement("div",ae({id:h?"".concat(h):void 0,className:r1("recharts-responsive-container",g),style:an(an({},void 0===m?{}:m),{},{width:i,height:o,minWidth:s,minHeight:c,maxHeight:p}),ref:v},x),C.createElement("div",{style:(e=>{var t=e.width,n=e.height,r=tG(t),a=tG(n);return r&&a?r9:r?r3:a?r5:r7})({width:i,height:o})},C.createElement(ai,{width:D,height:S},u)))}),as=(0,C.forwardRef)((e,t)=>{var n=ao();if(rw(n.width)&&rw(n.height))return e.children;var r=function(e){var t=e.width,n=e.height,r=e.aspect,a=t,i=n;return void 0===a&&void 0===i?(a=r6.width,i=r6.height):void 0===a?a=r&&r>0?void 0:r6.width:void 0===i&&(i=r&&r>0?void 0:r6.height),{width:a,height:i}}({width:e.width,height:e.height,aspect:e.aspect}),a=r.width,i=r.height,o=r4(void 0,void 0,{width:a,height:i,aspect:e.aspect,maxHeight:e.maxHeight}),l=o.calculatedWidth,s=o.calculatedHeight;return tY(l)&&tY(s)?C.createElement(ai,{width:l,height:s},e.children):C.createElement(al,ae({},e,{width:a,height:i,ref:t}))}),ac=()=>{var e,t=rQ(),n=re(r$),r=re(r0),a=null==(e=re(rJ))?void 0:e.padding;return t&&r&&a?{width:r.width-a.left-a.right,height:r.height-a.top-a.bottom,x:a.left,y:a.top}:n},ap={top:0,bottom:0,left:0,right:0,width:0,height:0,brushBottom:0},au=()=>{var e;return null!=(e=re(rY))?e:ap},ad=()=>re(rF),af=()=>re(rH),ah=e=>e.layout.layoutType,ag=()=>re(ah),ay=()=>{var e=ag();if("horizontal"===e||"vertical"===e)return e},am=e=>{var t=e.layout.layoutType;if("centric"===t||"radial"===t)return t},ax=e=>{var t=n3(),n=rQ(),r=e.width,a=e.height,i=ao(),o=r,l=a;return i&&(o=i.width>0?i.width:r,l=i.height>0?i.height:a),(0,C.useEffect)(()=>{!n&&rw(o)&&rw(l)&&t(nN({width:o,height:l}))},[t,n,o,l]),null};function av(e){var t;return e?(e=tF(t=e)?NaN:Number(t))===1/0||e===-1/0?(e<0?-1:1)*Number.MAX_VALUE:e==e?e:0:0===e?e:0}function ab(e,t,n){n&&"number"!=typeof n&&ro(e,t,n)&&(t=n=void 0),e=av(e),void 0===t?(t=e,e=0):t=av(t),n=void 0===n?e<t?1:-1:av(n);let r=Math.max(Math.ceil((t-e)/(n||1)),0),a=Array(r);for(let t=0;t<r;t++)a[t]=e,e+=n;return a}var aw=e=>e.chartData,ak=n1([aw],e=>{var t=null!=e.chartData?e.chartData.length-1:0;return{chartData:e.chartData,computedData:e.computedData,dataEndIndex:t,dataStartIndex:0}}),aA=(e,t,n,r)=>r?ak(e):aw(e),a_=n1([aA],e=>{var t=e.chartData,n=e.dataStartIndex,r=e.dataEndIndex;return null!=t?t.slice(n,r+1):[]});n1([ak],e=>{var t=e.chartData,n=e.dataStartIndex,r=e.dataEndIndex;return null!=t?t.slice(n,r+1):[]});var aE=n1([aw],e=>{var t=e.chartData,n=e.dataStartIndex,r=e.dataEndIndex;return null!=t?t.slice(n,r+1):[]});function aj(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);s=!0);}catch(e){c=!0,a=e}
1finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return aO(e,t);var n=({}).toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?aO(e,t):void 0}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function aO(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function aC(e){if(Array.isArray(e)&&2===e.length){var t=aj(e,2),n=t[0],r=t[1];if(rb(n)&&rb(r))return!0}return!1}function aD(e,t,n){return n?e:[Math.min(e[0],t[0]),Math.max(e[1],t[1])]}function aS(e,t){if(t&&"function"!=typeof e&&Array.isArray(e)&&2===e.length){var n,r,a=aj(e,2),i=a[0],o=a[1];if(rb(i))n=i;else if("function"==typeof i)return;if(rb(o))r=o;else if("function"==typeof o)return;var l=[n,r];if(aC(l))return l}}var aP=e.i(51655);function aI(e){return 0===e?1:Math.floor(new aP.default(e).abs().log(10).toNumber())+1}function aM(e,t,n){for(var r=new aP.default(e),a=0,i=[];r.lt(t)&&a<1e5;)i.push(r.toNumber()),r=r.add(n),a++;return i}function aT(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);s=!0);}catch(e){c=!0,a=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return aN(e,t);var n=({}).toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?aN(e,t):void 0}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function aN(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var az=e=>{var t=aT(e,2),n=t[0],r=t[1],a=n,i=r;return n>r&&(a=r,i=n),[a,i]},aL=(e,t,n)=>{if(e.lte(0))return new aP.default(0);var r=aI(e.toNumber()),a=new aP.default(10).pow(r),i=e.div(a),o=1!==r?.05:.1,l=new aP.default(Math.ceil(i.div(o).toNumber())).add(n).mul(o).mul(a);return new aP.default(t?l.toNumber():Math.ceil(l.toNumber()))},aR=(e,t,n)=>{if(e.lte(0))return new aP.default(0);var r,a=[1,2,2.5,5],i=e.toNumber(),o=Math.floor(new aP.default(i).abs().log(10).toNumber()),l=new aP.default(10).pow(o),s=e.div(l).toNumber(),c=a.findIndex(e=>e>=s-1e-10);if(-1===c&&(l=l.mul(10),c=0),(c+=n)>=a.length){var p=Math.floor(c/a.length);c%=a.length,l=l.mul(new aP.default(10).pow(p))}var u=null!=(r=a[c])?r:1,d=new aP.default(u).mul(l);return t?d:new aP.default(Math.ceil(d.toNumber()))},aB=function(e,t,n,r){var a,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:aL;if(!Number.isFinite((t-e)/(n-1)))return{step:new aP.default(0),tickMin:new aP.default(0),tickMax:new aP.default(0)};var l=o(new aP.default(t).sub(e).div(n-1),r,i),s=Math.ceil((a=e<=0&&t>=0?new aP.default(0):(a=new aP.default(e).add(t).div(2)).sub(new aP.default(a).mod(l))).sub(e).div(l).toNumber()),c=Math.ceil(new aP.default(t).sub(a).div(l).toNumber()),p=s+c+1;return p>n?aB(e,t,n,r,i+1,o):(p<n&&(c=t>0?c+(n-p):c,s=t>0?s:s+(n-p)),{step:l,tickMin:a.sub(new aP.default(s).mul(l)),tickMax:a.add(new aP.default(c).mul(l))})},aF=function(e){var t=aT(e,2),n=t[0],r=t[1],a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:6,i=!(arguments.length>2)||void 0===arguments[2]||arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"auto",l=Math.max(a,2),s=aT(az([n,r]),2),c=s[0],p=s[1];if(c===-1/0||p===1/0){var u=p===1/0?[c,...Array(a-1).fill(1/0)]:[...Array(a-1).fill(-1/0),p];return n>r?u.reverse():u}if(c===p)return((e,t,n)=>{var r=new aP.default(1),a=new aP.default(e);if(!a.isint()&&n){var i=Math.abs(e);i<1?(r=new aP.default(10).pow(aI(e)-1),a=new aP.default(Math.floor(a.div(r).toNumber())).mul(r)):i>1&&(a=new aP.default(Math.floor(e)))}else 0===e?a=new aP.default(Math.floor((t-1)/2)):n||(a=new aP.default(Math.floor(e)));for(var o=Math.floor((t-1)/2),l=[],s=0;s<t;
1s++)l.push(a.add(new aP.default(s-o).mul(r)).toNumber());return l})(c,a,i);var d=aB(c,p,l,i,0,"snap125"===o?aR:aL),f=d.step,h=aM(d.tickMin,d.tickMax.add(new aP.default(.1).mul(f)),f);return n>r?h.reverse():h},aH=function(e,t){var n=aT(e,2),r=n[0],a=n[1],i=!(arguments.length>2)||void 0===arguments[2]||arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"auto",l=aT(az([r,a]),2),s=l[0],c=l[1];if(s===-1/0||c===1/0)return[r,a];if(s===c)return[s];var p=Math.max(t,2),u=("snap125"===o?aR:aL)(new aP.default(c).sub(s).div(p-1),i,0),d=[...aM(new aP.default(s),new aP.default(c),u),c];if(!1===i){var f=(d=d.map(e=>Math.round(e))).length-1;f>0&&d[f]===d[f-1]&&(d=d.slice(0,f))}return r>a?d.reverse():d},aU=e=>e.rootProps.maxBarSize,aq=e=>e.rootProps.barCategoryGap,aK=e=>e.rootProps.stackOffset,aW=e=>e.rootProps.reverseStackOrder,aV=e=>e.options.chartName,aG=e=>e.rootProps.syncId,aY=e=>e.rootProps.syncMethod,a$=e=>e.options.eventEmitter;function aX(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function aZ(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?aX(Object(n),!0).forEach(function(t){var r,a,i;r=e,a=t,i=n[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):aX(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var aQ=Math.PI/180,aJ=(e,t,n,r)=>({x:e+Math.cos(-aQ*r)*n,y:t+Math.sin(-aQ*r)*n}),a0={grid:-100,barBackground:-50,area:100,cursorRectangle:200,bar:300,line:400,axis:500,scatter:600,activeBar:1e3,cursorLine:1100,activeDot:1200,label:2e3},a1={allowDecimals:!1,allowDuplicatedCategory:!0,allowDataOverflow:!1,angle:0,angleAxisId:0,axisLine:!0,axisLineType:"polygon",cx:0,cy:0,hide:!1,includeHidden:!1,label:!1,niceTicks:"auto",orientation:"outer",reversed:!1,scale:"auto",tick:!0,tickLine:!0,tickSize:8,type:"auto",zIndex:a0.axis},a2={allowDataOverflow:!1,allowDecimals:!1,allowDuplicatedCategory:!0,angle:0,axisLine:!0,includeHidden:!1,hide:!1,niceTicks:"auto",label:!1,orientation:"right",radiusAxisId:0,reversed:!1,scale:"auto",stroke:"#ccc",tick:!0,tickCount:5,tickLine:!0,type:"auto",zIndex:a0.axis},a6=(e,t)=>{if(e&&t)return null!=e&&e.reversed?[t[1],t[0]]:t};function a4(e,t,n){return"auto"!==n?n:null!=e?rD(e,t)?"category":"number":void 0}function a9(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function a3(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a9(Object(n),!0).forEach(function(t){var r,a,i;r=e,a=t,i=n[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a9(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var a5={allowDataOverflow:a1.allowDataOverflow,allowDecimals:a1.allowDecimals,allowDuplicatedCategory:!1,dataKey:void 0,domain:void 0,id:a1.angleAxisId,includeHidden:!1,name:void 0,reversed:a1.reversed,scale:a1.scale,tick:a1.tick,tickCount:void 0,ticks:void 0,type:a1.type,unit:void 0,niceTicks:"auto"},a7={allowDataOverflow:a2.allowDataOverflow,allowDecimals:a2.allowDecimals,allowDuplicatedCategory:a2.allowDuplicatedCategory,dataKey:void 0,domain:void 0,id:a2.radiusAxisId,includeHidden:a2.includeHidden,name:void 0,reversed:a2.reversed,scale:a2.scale,tick:a2.tick,tickCount:a2.tickCount,ticks:void 0,type:a2.type,unit:void 0,niceTicks:"auto"},a8=n1([(e,t)=>{if(null!=t)return e.polarAxis.angleAxis[t]},am],(e,t)=>{if(null!=e)return e;var n,r=null!=(n=a4(t,"angleAxis",a5.type))?n:"category";return a3(a3({},a5),{},{type:r})}),ie=n1([(e,t)=>e.polarAxis.radiusAxis[t],am],(e,t)=>{if(null!=e)return e;var n,r=null!=(n=a4(t,"radiusAxis",a7.type))?n:"category";return a3(a3({},a7),{},{type:r})}),it=e=>e.polarOptions,ir=n1([rF,rH,rY],function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{top:0,right:0,bottom:0,left:0,width:0,height:0,brushBottom:0};return Math.min(Math.abs(e-(n.left||0)-(n.right||0)),Math.abs(t-(n.top||0)-(n.bottom||0)))/2}),ia=n1([it,ir],(e,t)=>{if(null!=e)return tQ(e.innerRadius,t,0)}),ii=n1([it,ir],(e,t)=>{if(null!=e)return tQ(e.outerRadius,t,.8*t)}),io=n1([it],e=>null==e?[0,0]:[e.startAngle,e.endAngle]);n1([a8,io],a6);var il=n1([ir,ia,ii],(e,t,n)=>{if(null!=e&&null!=t&&null!=n)return[t,n]});n1([ie,il],a6);var is=n1([ah,it,ia,ii,rF,rH],(e,t,n,r,a,i)=>{if(("centric"===e||"radial"===e)&&null!=t&&null!=n&&null!=r){var o=t.cx,l=t.cy,s=t.startAngle,c=t.endAngle;return{cx:tQ(o,a,a/2),cy:tQ(l,i,i/2),innerRadius:n,outerRadius:r,startAngle:s,endAngle:c,clockWise:!1}}}),ic=(e,t)=>t,ip=(e,t,n)=>n;function iu(e){return null==e?void 0:e.id}
1function id(e,t,n){var r=t.chartData,a=void 0===r?[]:r,i=n.allowDuplicatedCategory,o=n.dataKey,l=new Map;return e.forEach(e=>{var t,n=null!=(t=e.data)?t:a;if(null!=n&&0!==n.length){var r=iu(e);n.forEach((t,n)=>{var a,s=null==o||i?n:String(rC(t,o,null)),c=rC(t,e.dataKey,0);Object.assign(a=l.has(s)?l.get(s):{},{[r]:c}),l.set(s,a)})}}),Array.from(l.values())}function ih(e){return"stackId"in e&&null!=e.stackId&&null!=e.dataKey}var ig=(e,t)=>e===t||null!=e&&null!=t&&e[0]===t[0]&&e[1]===t[1];function iy(e,t){return!!(Array.isArray(e)&&Array.isArray(t))&&0===e.length&&0===t.length||e===t}var im=e=>{var t=ah(e);return"horizontal"===t?"xAxis":"vertical"===t?"yAxis":"centric"===t?"angleAxis":"radiusAxis"},ix=e=>e.tooltip.settings.axisId;function iv(e){if(null!=e){var t=e.ticks,n=e.bandwidth,r=e.range(),a=[Math.min(...r),Math.max(...r)];return{domain:()=>e.domain(),range:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}(()=>a),rangeMin:()=>a[0],rangeMax:()=>a[1],isInRange(e){var t=a[0],n=a[1];return t<=n?e>=t&&e<=n:e>=n&&e<=t},bandwidth:n?()=>n.call(e):void 0,ticks:t?n=>t.call(e,n):void 0,map:(t,n)=>{var r=e(t);if(null!=r){if(e.bandwidth&&null!=n&&n.position){var a=e.bandwidth();switch(n.position){case"middle":r+=a/2;break;case"end":r+=a}}return r}}}}}function ib(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e)}return this}function iw(e,t){switch(arguments.length){case 0:break;case 1:"function"==typeof e?this.interpolator(e):this.range(e);break;default:this.domain(e),"function"==typeof t?this.interpolator(t):this.range(t)}return this}e.s([],25212),e.s(["scaleBand",()=>iO,"scaleDiverging",()=>ci,"scaleDivergingLog",()=>co,"scaleDivergingPow",()=>cs,"scaleDivergingSqrt",()=>cc,"scaleDivergingSymlog",()=>cl,"scaleIdentity",()=>oq,"scaleImplicit",()=>iE,"scaleLinear",()=>oU,"scaleLog",()=>oQ,"scaleOrdinal",()=>ij,"scalePoint",()=>iC,"scalePow",()=>o5,"scaleQuantile",()=>li,"scaleQuantize",()=>lo,"scaleRadial",()=>le,"scaleSequential",()=>s7,"scaleSequentialLog",()=>s8,"scaleSequentialPow",()=>ct,"scaleSequentialQuantile",()=>cr,"scaleSequentialSqrt",()=>cn,"scaleSequentialSymlog",()=>ce,"scaleSqrt",()=>o7,"scaleSymlog",()=>o2,"scaleThreshold",()=>ll,"scaleTime",()=>s4,"scaleUtc",()=>s9,"tickFormat",()=>oF],79357),e.i(25212),e.s(["scaleBand",()=>iO,"scaleDiverging",()=>ci,"scaleDivergingLog",()=>co,"scaleDivergingPow",()=>cs,"scaleDivergingSqrt",()=>cc,"scaleDivergingSymlog",()=>cl,"scaleIdentity",()=>oq,"scaleImplicit",()=>iE,"scaleLinear",()=>oU,"scaleLog",()=>oQ,"scaleOrdinal",()=>ij,"scalePoint",()=>iC,"scalePow",()=>o5,"scaleQuantile",()=>li,"scaleQuantize",()=>lo,"scaleRadial",()=>le,"scaleSequential",()=>s7,"scaleSequentialLog",()=>s8,"scaleSequentialPow",()=>ct,"scaleSequentialQuantile",()=>cr,"scaleSequentialSqrt",()=>cn,"scaleSequentialSymlog",()=>ce,"scaleSqrt",()=>o7,"scaleSymlog",()=>o2,"scaleThreshold",()=>ll,"scaleTime",()=>s4,"scaleUtc",()=>s9,"tickFormat",()=>oF],29061),e.s([],67155),e.i(67155);class ik extends Map{get(e){return super.get(iA(this,e))}has(e){return super.has(iA(this,e))}set(e,t){return super.set(function(e,t){let{_intern:n,_key:r}=e,a=r(t);return n.has(a)?n.get(a):(n.set(a,t),t)}(this,e),t)}delete(e){return super.delete(function(e,t){let{_intern:n,_key:r}=e,a=r(t);return n.has(a)&&(t=n.get(a),n.delete(a)),t}(this,e))}constructor(e,t=i_){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),null!=e)for(let[t,n]of e)this.set(t,n)}}function iA(e,t){let{_intern:n,_key:r}=e,a=r(t);return n.has(a)?n.get(a):t}function i_(e){return null!==e&&"object"==typeof e?e.valueOf():e}let iE=Symbol("implicit");function ij(){var e=new ik,t=[],n=[],r=iE;function a(a){let i=e.get(a);if(void 0===i){if(r!==iE)return r;e.set(a,i=t.push(a)-1)}return n[i%n.length]}return a.domain=function(n){if(!arguments.length)return t.slice();for(let r of(t=[],e=new ik,n))e.has(r)||e.set(r,t.push(r)-1);return a},a.range=function(e){return arguments.length?(n=Array.from(e),a):n.slice()},a.unknown=function(e){return arguments.length?(r=e,a):r},a.copy=function(){return ij(t,n).unknown(r)},ib.apply(a,arguments),a}function iO(){var e,t,n=ij().unknown(void 0),r=n.domain,a=n.range,i=0,o=1,l=!1,s=0,c=0,p=.5;function u(){var n=r().length,u=o<i,d=u?o:i,f=u?i:o;e=(f-d)/Math.max(1,n-s+2*c),l&&(e=Math.floor(e)),d+=(f-d-e*(n-s))*p,t=e*(1-s),l&&(d=Math.round(d),t=Math.round(t));var h=(function(e,t,n){e*=1,t*=1,n=(a=arguments.length)<2?(t=e,e=0,1):a<3?1:+n;for(var r=-1,a=0|Math.max(0,Math.ceil((t-e)/n)),i=Array(a);++r<a;)i[r]=e+r*n;return i})(n).map(function(t){return d+e*t});return a(u?h.reverse():h)}return delete n.unknown,n.domain=function(e){return arguments.length?(r(e),u()):r()},n.range=function(e){return arguments.length?([i,o]=e,i*=1,o*=1,u()):[i,o]},n.rangeRound=function(e){return[i,o]=e,i*=1,o*=1,l=!0,u()},n.bandwidth=function(){return t},n.step=function(){return e}
1,n.round=function(e){return arguments.length?(l=!!e,u()):l},n.padding=function(e){return arguments.length?(s=Math.min(1,c=+e),u()):s},n.paddingInner=function(e){return arguments.length?(s=Math.min(1,e),u()):s},n.paddingOuter=function(e){return arguments.length?(c=+e,u()):c},n.align=function(e){return arguments.length?(p=Math.max(0,Math.min(1,e)),u()):p},n.copy=function(){return iO(r(),[i,o]).round(l).paddingInner(s).paddingOuter(c).align(p)},ib.apply(u(),arguments)}function iC(){return function e(t){var n=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,delete t.paddingOuter,t.copy=function(){return e(n())},t}(iO.apply(null,arguments).paddingInner(1))}let iD=Math.sqrt(50),iS=Math.sqrt(10),iP=Math.sqrt(2);function iI(e,t,n){let r,a,i,o=(t-e)/Math.max(0,n),l=Math.floor(Math.log10(o)),s=o/Math.pow(10,l),c=s>=iD?10:s>=iS?5:s>=iP?2:1;return(l<0?(r=Math.round(e*(i=Math.pow(10,-l)/c)),a=Math.round(t*i),r/i<e&&++r,a/i>t&&--a,i=-i):(r=Math.round(e/(i=Math.pow(10,l)*c)),a=Math.round(t/i),r*i<e&&++r,a*i>t&&--a),a<r&&.5<=n&&n<2)?iI(e,t,2*n):[r,a,i]}function iM(e,t,n){if(t*=1,e*=1,!((n*=1)>0))return[];if(e===t)return[e];let r=t<e,[a,i,o]=r?iI(t,e,n):iI(e,t,n);if(!(i>=a))return[];let l=i-a+1,s=Array(l);if(r)if(o<0)for(let e=0;e<l;++e)s[e]=-((i-e)/o);else for(let e=0;e<l;++e)s[e]=(i-e)*o;else if(o<0)for(let e=0;e<l;++e)s[e]=-((a+e)/o);else for(let e=0;e<l;++e)s[e]=(a+e)*o;return s}function iT(e,t,n){return iI(e*=1,t*=1,n*=1)[2]}function iN(e,t,n){t*=1,e*=1,n*=1;let r=t<e,a=r?iT(t,e,n):iT(e,t,n);return(r?-1:1)*(a<0?-(1/a):a)}function iz(e,t){return null==e||null==t?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function iL(e,t){return null==e||null==t?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function iR(e){let t,n,r;function a(e,r){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:e.length;if(a<i){if(0!==t(r,r))return i;do{let t=a+i>>>1;0>n(e[t],r)?a=t+1:i=t}while(a<i)}return a}return 2!==e.length?(t=iz,n=(t,n)=>iz(e(t),n),r=(t,n)=>e(t)-n):(t=e===iz||e===iL?e:iB,n=e,r=e),{left:a,center:function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:e.length,o=a(e,t,n,i-1);return o>n&&r(e[o-1],t)>-r(e[o],t)?o-1:o},right:function(e,r){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:e.length;if(a<i){if(0!==t(r,r))return i;do{let t=a+i>>>1;0>=n(e[t],r)?a=t+1:i=t}while(a<i)}return a}}}function iB(){return 0}function iF(e){return null===e?NaN:+e}let iH=iR(iz),iU=iH.right;function iq(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function iK(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function iW(){}iH.left,iR(iF).center;var iV="\\s*([+-]?\\d+)\\s*",iG="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",iY="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",i$=/^#([0-9a-f]{3,8})$/,iX=new RegExp("^rgb\\(".concat(iV,",").concat(iV,",").concat(iV,"\\)$")),iZ=new RegExp("^rgb\\(".concat(iY,",").concat(iY,",").concat(iY,"\\)$")),iQ=new RegExp("^rgba\\(".concat(iV,",").concat(iV,",").concat(iV,",").concat(iG,"\\)$")),iJ=new RegExp("^rgba\\(".concat(iY,",").concat(iY,",").concat(iY,",").concat(iG,"\\)$")),i0=new RegExp("^hsl\\(".concat(iG,",").concat(iY,",").concat(iY,"\\)$")),i1=new RegExp("^hsla\\(".concat(iG,",").concat(iY,",").concat(iY,",").concat(iG,"\\)$")),i2={aliceblue:0xf0f8ff,antiquewhite:0xfaebd7,aqua:65535,aquamarine:8388564,azure:0xf0ffff,beige:0xf5f5dc,bisque:0xffe4c4,black:0,blanchedalmond:0xffebcd,blue:255,blueviolet:9055202,brown:0xa52a2a,burlywood:0xdeb887,cadetblue:6266528,chartreuse:8388352,chocolate:0xd2691e,coral:0xff7f50,cornflowerblue:6591981,cornsilk:0xfff8dc,crimson:0xdc143c,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:0xb8860b,darkgray:0xa9a9a9,darkgreen:25600,darkgrey:0xa9a9a9,darkkhaki:0xbdb76b,darkmagenta:9109643,darkolivegreen:5597999,darkorange:0xff8c00,darkorchid:0x9932cc,darkred:9109504,darksalmon:0xe9967a,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:0xff1493,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:0xb22222,floralwhite:0xfffaf0,forestgreen:2263842,fuchsia:0xff00ff,gainsboro:0xdcdcdc,ghostwhite:0xf8f8ff,gold:0xffd700,goldenrod:0xdaa520,gray:8421504,green:32768,greenyellow:0xadff2f,grey:8421504,honeydew:0xf0fff0,hotpink:0xff69b4,indianred:0xcd5c5c,indigo:4915330,ivory:0xfffff0,khaki:0xf0e68c,lavender:0xe6e6fa,lavenderblush:0xfff0f5,lawngreen:8190976,lemonchiffon:0xfffacd,lightblue:0xadd8e6,lightcoral:0xf08080,lightcyan:0xe0ffff,lightgoldenrodyellow:0xfafad2,lightgray:0xd3d3d3,lightgreen:9498256,lightgrey:0xd3d3d3,lightpink:0xffb6c1,lightsalmon:0xffa07a,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:0xb0c4de,lightyellow:0xffffe0,lime:65280,limegreen:3329330,linen:0xfaf0e6,magenta:0xff00ff,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:0xba55d3,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:0xc71585,midnightblue:1644912,mintcream:0xf5fffa,mistyrose:0xffe4e1,moccasin:0xffe4b5,navajowhite:0xffdead,navy:128,oldlace:0xfdf5e6,olive:8421376,olivedrab:7048739,orange:0xffa500,orangered:0xff4500,orchid:0xda70d6,palegoldenrod:0xeee8aa,palegreen:0x98fb98,paleturquoise:0xafeeee,palevioletred:0xdb7093,papayawhip:0xffefd5,peachpuff:0xffdab9,peru:0xcd853f,pink:0xffc0cb,plum:0xdda0dd,powderblue:0xb0e0e6,purple:8388736,rebeccapurple:6697881,red:0xff0000,rosybrown:0xbc8f8f,royalblue:4286945,saddlebrown:9127187,salmon:0xfa8072,sandybrown:0xf4a460,seagreen:3050327,seashell:0xfff5ee,sienna:0xa0522d,silver:0xc0c0c0,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:0xfffafa,springgreen:65407,steelblue:4620980,tan:0xd2b48c,teal:32896,thistle:0xd8bfd8,tomato:0xff6347,turquoise:4251856,violet:0xee82ee,wheat:0xf5deb3,white:0xffffff,whitesmoke:0xf5f5f5,yellow:0xffff00,yellowgreen:0x9acd32};function i6(){return this.rgb().formatHex()}function i4(){return this.rgb().formatRgb()}function i9(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=i$.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?i3(t):3===n?
1new i8(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?i5(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?i5(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=iX.exec(e))?new i8(t[1],t[2],t[3],1):(t=iZ.exec(e))?new i8(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=iQ.exec(e))?i5(t[1],t[2],t[3],t[4]):(t=iJ.exec(e))?i5(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=i0.exec(e))?oi(t[1],t[2]/100,t[3]/100,1):(t=i1.exec(e))?oi(t[1],t[2]/100,t[3]/100,t[4]):i2.hasOwnProperty(e)?i3(i2[e]):"transparent"===e?new i8(NaN,NaN,NaN,0):null}function i3(e){return new i8(e>>16&255,e>>8&255,255&e,1)}function i5(e,t,n,r){return r<=0&&(e=t=n=NaN),new i8(e,t,n,r)}function i7(e,t,n,r){var a;return 1==arguments.length?((a=e)instanceof iW||(a=i9(a)),a)?new i8((a=a.rgb()).r,a.g,a.b,a.opacity):new i8:new i8(e,t,n,null==r?1:r)}function i8(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function oe(){return"#".concat(oa(this.r)).concat(oa(this.g)).concat(oa(this.b))}function ot(){let e=on(this.opacity);return"".concat(1===e?"rgb(":"rgba(").concat(or(this.r),", ").concat(or(this.g),", ").concat(or(this.b)).concat(1===e?")":", ".concat(e,")"))}function on(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function or(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function oa(e){return((e=or(e))<16?"0":"")+e.toString(16)}function oi(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new ol(e,t,n,r)}function oo(e){if(e instanceof ol)return new ol(e.h,e.s,e.l,e.opacity);if(e instanceof iW||(e=i9(e)),!e)return new ol;if(e instanceof ol)return e;var t=(e=e.rgb()).r/255,n=e.g/255,r=e.b/255,a=Math.min(t,n,r),i=Math.max(t,n,r),o=NaN,l=i-a,s=(i+a)/2;return l?(o=t===i?(n-r)/l+(n<r)*6:n===i?(r-t)/l+2:(t-n)/l+4,l/=s<.5?i+a:2-i-a,o*=60):l=s>0&&s<1?0:o,new ol(o,l,s,e.opacity)}function ol(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function os(e){return(e=(e||0)%360)<0?e+360:e}function oc(e){return Math.max(0,Math.min(1,e||0))}function op(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}function ou(e,t,n,r,a){var i=e*e,o=i*e;return((1-3*e+3*i-o)*t+(4-6*i+3*o)*n+(1+3*e+3*i-3*o)*r+o*a)/6}iq(iW,i9,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:i6,formatHex:i6,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return oo(this).formatHsl()},formatRgb:i4,toString:i4}),iq(i8,i7,iK(iW,{brighter(e){return e=null==e?1.4285714285714286:Math.pow(1.4285714285714286,e),new i8(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?.7:Math.pow(.7,e),new i8(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new i8(or(this.r),or(this.g),or(this.b),on(this.opacity))},displayable(){return -.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:oe,formatHex:oe,formatHex8:function(){return"#".concat(oa(this.r)).concat(oa(this.g)).concat(oa(this.b)).concat(oa((isNaN(this.opacity)?1:this.opacity)*255))},formatRgb:ot,toString:ot})),iq(ol,function(e,t,n,r){return 1==arguments.length?oo(e):new ol(e,t,n,null==r?1:r)},iK(iW,{brighter(e){return e=null==e?1.4285714285714286:Math.pow(1.4285714285714286,e),new ol(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?.7:Math.pow(.7,e),new ol(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,a=2*n-r;return new i8(op(e>=240?e-240:e+120,a,r),op(e,a,r),op(e<120?e+240:e-120,a,r),this.opacity)},clamp(){return new ol(os(this.h),oc(this.s),oc(this.l),on(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=on(this.opacity);return"".concat(1===e?"hsl(":"hsla(").concat(os(this.h),", ").concat(100*oc(this.s),"%, ").concat(100*oc(this.l),"%").concat(1===e?")":", ".concat(e,")"))}}));let od=e=>()=>e;function of(e,t){var n=t-e;return n?function(t){return e+t*n}:od(isNaN(e)?t:e)}let oh=function e(t){var n,r=1==(n=+t)?of:function(e,t){var r,a,i;return t-e?(r=e,a=t,r=Math.pow(r,i=n),a=Math.pow(a,i)-r,i=1/i,function(e){return Math.pow(r+e*a,i)}):od(isNaN(e)?t:e)};function a(e,t){var n=r((e=i7(e)).r,(t=i7(t)).r),a=r(e.g,t.g),i=r(e.b,t.b),o=of(e.opacity,t.opacity);return function(t){return e.r=n(t),e.g=a(t),e.b=i(t),e.opacity=o(t),e+""}}return a.gamma=e,a}(1);function og(e){return function(t){var n,r,a=t.length,i=Array(a),o=Array(a),l=Array(a);for(n=0;n<a;++n)r=i7(t[n]),i[n]=r.r||0,o[n]=r.g||0,l[n]=r.b||0;return i=e(i),o=e(o),l=e(l),r.opacity=1,function(e){return r.r=i(e),r.g=o(e),r.b=l(e),r+""}}}function oy(e,t){return e*=1,t*=1,function(n){return e*(1-n)+t*n}}og(function(e){var t=e.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),a=e[r],i=e[r+1],o=r>0?e[r-1]:2*a-i,l=r<t-1?e[r+2]:2*i-a;return ou((n-r/t)*t,o,a,i,l)}}),og(function(e){var t=e.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*t),a=e[(r+t-1)%t],i=e[r%t],o=e[(r+1)%t],l=e[(r+2)%t];return ou((n-r/t)*t,a,i,o,l)}});var om=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ox=RegExp(om.source,"g");function ov(e,t){var n,r,a=typeof t;
1return null==t||"boolean"===a?od(t):("number"===a?oy:"string"===a?(r=i9(t))?(t=r,oh):function(e,t){var n,r,a,i,o,l=om.lastIndex=ox.lastIndex=0,s=-1,c=[],p=[];for(e+="",t+="";(a=om.exec(e))&&(i=ox.exec(t));)(o=i.index)>l&&(o=t.slice(l,o),c[s]?c[s]+=o:c[++s]=o),(a=a[0])===(i=i[0])?c[s]?c[s]+=i:c[++s]=i:(c[++s]=null,p.push({i:s,x:oy(a,i)})),l=ox.lastIndex;return l<t.length&&(o=t.slice(l),c[s]?c[s]+=o:c[++s]=o),c.length<2?p[0]?(n=p[0].x,function(e){return n(e)+""}):(r=t,function(){return r}):(t=p.length,function(e){for(var n,r=0;r<t;++r)c[(n=p[r]).i]=n.x(e);return c.join("")})}:t instanceof i9?oh:t instanceof Date?function(e,t){var n=new Date;return e*=1,t*=1,function(r){return n.setTime(e*(1-r)+t*r),n}}:!ArrayBuffer.isView(n=t)||n instanceof DataView?Array.isArray(t)?function(e,t){var n,r=t?t.length:0,a=e?Math.min(r,e.length):0,i=Array(a),o=Array(r);for(n=0;n<a;++n)i[n]=ov(e[n],t[n]);for(;n<r;++n)o[n]=t[n];return function(e){for(n=0;n<a;++n)o[n]=i[n](e);return o}}:"function"!=typeof t.valueOf&&"function"!=typeof t.toString||isNaN(t)?function(e,t){var n,r={},a={};for(n in(null===e||"object"!=typeof e)&&(e={}),(null===t||"object"!=typeof t)&&(t={}),t)n in e?r[n]=ov(e[n],t[n]):a[n]=t[n];return function(e){for(n in r)a[n]=r[n](e);return a}}:oy:function(e,t){t||(t=[]);var n,r=e?Math.min(t.length,e.length):0,a=t.slice();return function(i){for(n=0;n<r;++n)a[n]=e[n]*(1-i)+t[n]*i;return a}})(e,t)}function ob(e,t){return e*=1,t*=1,function(n){return Math.round(e*(1-n)+t*n)}}function ow(e){return+e}var ok=[0,1];function oA(e){return e}function o_(e,t){var n;return(t-=e*=1)?function(n){return(n-e)/t}:(n=isNaN(t)?NaN:.5,function(){return n})}function oE(e,t,n){var r=e[0],a=e[1],i=t[0],o=t[1];return a<r?(r=o_(a,r),i=n(o,i)):(r=o_(r,a),i=n(i,o)),function(e){return i(r(e))}}function oj(e,t,n){var r=Math.min(e.length,t.length)-1,a=Array(r),i=Array(r),o=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++o<r;)a[o]=o_(e[o],e[o+1]),i[o]=n(t[o],t[o+1]);return function(t){var n=iU(e,t,1,r)-1;return i[n](a[n](t))}}function oO(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function oC(){var e,t,n,r,a,i,o=ok,l=ok,s=ov,c=oA;function p(){var e,t,n,s=Math.min(o.length,l.length);return c!==oA&&(e=o[0],t=o[s-1],e>t&&(n=e,e=t,t=n),c=function(n){return Math.max(e,Math.min(t,n))}),r=s>2?oj:oE,a=i=null,u}function u(t){return null==t||isNaN(t*=1)?n:(a||(a=r(o.map(e),l,s)))(e(c(t)))}return u.invert=function(n){return c(t((i||(i=r(l,o.map(e),oy)))(n)))},u.domain=function(e){return arguments.length?(o=Array.from(e,ow),p()):o.slice()},u.range=function(e){return arguments.length?(l=Array.from(e),p()):l.slice()},u.rangeRound=function(e){return l=Array.from(e),s=ob,p()},u.clamp=function(e){return arguments.length?(c=!!e||oA,p()):c!==oA},u.interpolate=function(e){return arguments.length?(s=e,p()):s},u.unknown=function(e){return arguments.length?(n=e,u):n},function(n,r){return e=n,t=r,p()}}function oD(){return oC()(oA,oA)}function oS(e,t){if(!isFinite(e)||0===e)return null;var n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"),r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function oP(e){return(e=oS(Math.abs(e)))?e[1]:NaN}var oI=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function oM(e){var t;if(!(t=oI.exec(e)))throw Error("invalid format: "+e);return new oT({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}function oT(e){this.fill=void 0===e.fill?" ":e.fill+"",this.align=void 0===e.align?">":e.align+"",this.sign=void 0===e.sign?"-":e.sign+"",this.symbol=void 0===e.symbol?"":e.symbol+"",this.zero=!!e.zero,this.width=void 0===e.width?void 0:+e.width,this.comma=!!e.comma,this.precision=void 0===e.precision?void 0:+e.precision,this.trim=!!e.trim,this.type=void 0===e.type?"":e.type+""}function oN(e,t){var n=oS(e,t);if(!n)return e+"";var r=n[0],a=n[1];return a<0?"0."+Array(-a).join("0")+r:r.length>a+1?r.slice(0,a+1)+"."+r.slice(a+1):r+Array(a-r.length+2).join("0")}oM.prototype=oT.prototype,oT.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?""
1:Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};let oz={"%":(e,t)=>(100*e).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:function(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)},e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>oN(100*e,t),r:oN,s:function(e,t){var r=oS(e,t);if(!r)return n=void 0,e.toPrecision(t);var a=r[0],i=r[1],o=i-(n=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,l=a.length;return o===l?a:o>l?a+Array(o-l+1).join("0"):o>0?a.slice(0,o)+"."+a.slice(o):"0."+Array(1-o).join("0")+oS(e,Math.max(0,t+o-1))[0]},X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function oL(e){return e}var oR=Array.prototype.map,oB=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function oF(e,t,n,r){var o,l,s=iN(e,t,n);switch((r=oM(null==r?",f":r)).type){case"s":var c=Math.max(Math.abs(e),Math.abs(t));return null!=r.precision||isNaN(l=Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(oP(c)/3)))-oP(Math.abs(s))))||(r.precision=l),i(r,c);case"":case"e":case"g":case"p":case"r":null!=r.precision||isNaN(l=Math.max(0,oP(Math.abs(Math.max(Math.abs(e),Math.abs(t)))-(o=Math.abs(o=s)))-oP(o))+1)||(r.precision=l-("e"===r.type));break;case"f":case"%":null!=r.precision||isNaN(l=Math.max(0,-oP(Math.abs(s))))||(r.precision=l-("%"===r.type)*2)}return a(r)}function oH(e){var t=e.domain;return e.ticks=function(e){var n=t();return iM(n[0],n[n.length-1],null==e?10:e)},e.tickFormat=function(e,n){var r=t();return oF(r[0],r[r.length-1],null==e?10:e,n)},e.nice=function(n){null==n&&(n=10);var r,a,i=t(),o=0,l=i.length-1,s=i[o],c=i[l],p=10;for(c<s&&(a=s,s=c,c=a,a=o,o=l,l=a);p-- >0;){if((a=iT(s,c,n))===r)return i[o]=s,i[l]=c,t(i);if(a>0)s=Math.floor(s/a)*a,c=Math.ceil(c/a)*a;else if(a<0)s=Math.ceil(s*a)/a,c=Math.floor(c*a)/a;else break;r=a}return e},e}function oU(){var e=oD();return e.copy=function(){return oO(e,oU())},ib.apply(e,arguments),oH(e)}function oq(e){var t;function n(e){return null==e||isNaN(e*=1)?t:e}return n.invert=n,n.domain=n.range=function(t){return arguments.length?(e=Array.from(t,ow),n):e.slice()},n.unknown=function(e){return arguments.length?(t=e,n):t},n.copy=function(){return oq(e).unknown(t)},e=arguments.length?Array.from(e,ow):[0,1],oH(n)}function oK(e,t){e=e.slice();var n,r=0,a=e.length-1,i=e[r],o=e[a];return o<i&&(n=r,r=a,a=n,n=i,i=o,o=n),e[r]=t.floor(i),e[a]=t.ceil(o),e}function oW(e){return Math.log(e)}function oV(e){return Math.exp(e)}function oG(e){return-Math.log(-e)}function oY(e){return-Math.exp(-e)}function o$(e){return isFinite(e)?+("1e"+e):e<0?0:e}function oX(e){return(t,n)=>-e(-t,n)}function oZ(e){let t,n,r=e(oW,oV),i=r.domain,o=10;function l(){var a,l;return t=(a=o)===Math.E?Math.log:10===a&&Math.log10||2===a&&Math.log2||(a=Math.log(a),e=>Math.log(e)/a),n=10===(l=o)?o$:l===Math.E?Math.exp:e=>Math.pow(l,e),i()[0]<0?(t=oX(t),n=oX(n),e(oG,oY)):e(oW,oV),r}
1return r.base=function(e){return arguments.length?(o=+e,l()):o},r.domain=function(e){return arguments.length?(i(e),l()):i()},r.ticks=e=>{let r,a,l=i(),s=l[0],c=l[l.length-1],p=c<s;p&&([s,c]=[c,s]);let u=t(s),d=t(c),f=null==e?10:+e,h=[];if(!(o%1)&&d-u<f){if(u=Math.floor(u),d=Math.ceil(d),s>0){for(;u<=d;++u)for(r=1;r<o;++r)if(!((a=u<0?r/n(-u):r*n(u))<s)){if(a>c)break;h.push(a)}}else for(;u<=d;++u)for(r=o-1;r>=1;--r)if(!((a=u>0?r/n(-u):r*n(u))<s)){if(a>c)break;h.push(a)}2*h.length<f&&(h=iM(s,c,f))}else h=iM(u,d,Math.min(d-u,f)).map(n);return p?h.reverse():h},r.tickFormat=(e,i)=>{if(null==e&&(e=10),null==i&&(i=10===o?"s":","),"function"!=typeof i&&(o%1||null!=(i=oM(i)).precision||(i.trim=!0),i=a(i)),e===1/0)return i;let l=Math.max(1,o*e/r.ticks().length);return e=>{let r=e/n(Math.round(t(e)));return r*o<o-.5&&(r*=o),r<=l?i(e):""}},r.nice=()=>i(oK(i(),{floor:e=>n(Math.floor(t(e))),ceil:e=>n(Math.ceil(t(e)))})),r}function oQ(){let e=oZ(oC()).domain([1,10]);return e.copy=()=>oO(e,oQ()).base(e.base()),ib.apply(e,arguments),e}function oJ(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function o0(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function o1(e){var t=1,n=e(oJ(1),o0(t));return n.constant=function(n){return arguments.length?e(oJ(t=+n),o0(t)):t},oH(n)}function o2(){var e=o1(oC());return e.copy=function(){return oO(e,o2()).constant(e.constant())},ib.apply(e,arguments)}function o6(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function o4(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function o9(e){return e<0?-e*e:e*e}function o3(e){var t=e(oA,oA),n=1;return t.exponent=function(t){return arguments.length?1==(n=+t)?e(oA,oA):.5===n?e(o4,o9):e(o6(n),o6(1/n)):n},oH(t)}function o5(){var e=o3(oC());return e.copy=function(){return oO(e,o5()).exponent(e.exponent())},ib.apply(e,arguments),e}function o7(){return o5.apply(null,arguments).exponent(.5)}function o8(e){return Math.sign(e)*e*e}function le(){var e,t=oD(),n=[0,1],r=!1;function a(n){var a,i=Math.sign(a=t(n))*Math.sqrt(Math.abs(a));return isNaN(i)?e:r?Math.round(i):i}return a.invert=function(e){return t.invert(o8(e))},a.domain=function(e){return arguments.length?(t.domain(e),a):t.domain()},a.range=function(e){return arguments.length?(t.range((n=Array.from(e,ow)).map(o8)),a):n.slice()},a.rangeRound=function(e){return a.range(e).round(!0)},a.round=function(e){return arguments.length?(r=!!e,a):r},a.clamp=function(e){return arguments.length?(t.clamp(e),a):t.clamp()},a.unknown=function(t){return arguments.length?(e=t,a):e},a.copy=function(){return le(t.domain(),n).round(r).clamp(t.clamp()).unknown(e)},ib.apply(a,arguments),oH(a)}function lt(e,t){let n;if(void 0===t)for(let t of e)null!=t&&(n<t||void 0===n&&t>=t)&&(n=t);else{let r=-1;for(let a of e)null!=(a=t(a,++r,e))&&(n<a||void 0===n&&a>=a)&&(n=a)}return n}function ln(e,t){let n;if(void 0===t)for(let t of e)null!=t&&(n>t||void 0===n&&t>=t)&&(n=t);else{let r=-1;for(let a of e)null!=(a=t(a,++r,e))&&(n>a||void 0===n&&a>=a)&&(n=a)}return n}function lr(e,t){return(null==e||!(e>=e))-(null==t||!(t>=t))||(e<t?-1:+(e>t))}function la(e,t,n){let r=e[t];e[t]=e[n],e[n]=r}function li(){var e,t=[],n=[],r=[];function a(){var e=0,a=Math.max(1,n.length);for(r=Array(a-1);++e<a;)r[e-1]=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:iF;if(!(!(r=e.length)||isNaN(t*=1))){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,a=(r-1)*t,i=Math.floor(a),o=+n(e[i],i,e);return o+(n(e[i+1],i+1,e)-o)*(a-i)}}(t,e/a);return i}function i(t){return null==t||isNaN(t*=1)?e:n[iU(r,t)]}return i.invertExtent=function(e){var a=n.indexOf(e);return a<0?[NaN,NaN]:[a>0?r[a-1]:t[0],a<r.length?r[a]:t[t.length-1]]},i.domain=function(e){if(!arguments.length)return t.slice();for(let n of(t=[],e))null==n||isNaN(n*=1)||t.push(n);return t.sort(iz),a()},i.range=function(e){return arguments.length?(n=Array.from(e),a()):n.slice()},i.unknown=function(t){return arguments.length?(e=t,i):e},i.quantiles=function(){return r.slice()},i.copy=function(){return li().domain(t).range(n).unknown(e)},ib.apply(i,arguments)}function lo(){var e,t=0,n=1,r=1,a=[.5],i=[0,1];function o(t){return null!=t&&t<=t?i[iU(a,t,0,r)]:e}function l(){var e=-1;for(a=Array(r);++e<r;)a[e]=((e+1)*n-(e-r)*t)/(r+1);return o}return o.domain=function(e){return arguments.length?([t,n]=e,t*=1,n*=1,l()):[t,n]},o.range=function(e){return arguments.length?(r=(i=Array.from(e)).length-1,l(
1)):i.slice()},o.invertExtent=function(e){var o=i.indexOf(e);return o<0?[NaN,NaN]:o<1?[t,a[0]]:o>=r?[a[r-1],n]:[a[o-1],a[o]]},o.unknown=function(t){return arguments.length&&(e=t),o},o.thresholds=function(){return a.slice()},o.copy=function(){return lo().domain([t,n]).range(i).unknown(e)},ib.apply(oH(o),arguments)}function ll(){var e,t=[.5],n=[0,1],r=1;function a(a){return null!=a&&a<=a?n[iU(t,a,0,r)]:e}return a.domain=function(e){return arguments.length?(r=Math.min((t=Array.from(e)).length,n.length-1),a):t.slice()},a.range=function(e){return arguments.length?(n=Array.from(e),r=Math.min(t.length,n.length-1),a):n.slice()},a.invertExtent=function(e){var r=n.indexOf(e);return[t[r-1],t[r]]},a.unknown=function(t){return arguments.length?(e=t,a):e},a.copy=function(){return ll().domain(t).range(n).unknown(e)},ib.apply(a,arguments)}a=(r=function(e){var t,r,a,i=void 0===e.grouping||void 0===e.thousands?oL:(t=oR.call(e.grouping,Number),r=e.thousands+"",function(e,n){for(var a=e.length,i=[],o=0,l=t[0],s=0;a>0&&l>0&&(s+l+1>n&&(l=Math.max(1,n-s)),i.push(e.substring(a-=l,a+l)),!((s+=l+1)>n));)l=t[o=(o+1)%t.length];return i.reverse().join(r)}),o=void 0===e.currency?"":e.currency[0]+"",l=void 0===e.currency?"":e.currency[1]+"",s=void 0===e.decimal?".":e.decimal+"",c=void 0===e.numerals?oL:(a=oR.call(e.numerals,String),function(e){return e.replace(/[0-9]/g,function(e){return a[+e]})}),p=void 0===e.percent?"%":e.percent+"",u=void 0===e.minus?"â":e.minus+"",d=void 0===e.nan?"NaN":e.nan+"";function f(e,t){var r=(e=oM(e)).fill,a=e.align,f=e.sign,h=e.symbol,g=e.zero,y=e.width,m=e.comma,x=e.precision,v=e.trim,b=e.type;"n"===b?(m=!0,b="g"):oz[b]||(void 0===x&&(x=12),v=!0,b="g"),(g||"0"===r&&"="===a)&&(g=!0,r="0",a="=");var w=(t&&void 0!==t.prefix?t.prefix:"")+("$"===h?o:"#"===h&&/[boxX]/.test(b)?"0"+b.toLowerCase():""),k=("$"===h?l:/[%p]/.test(b)?p:"")+(t&&void 0!==t.suffix?t.suffix:""),A=oz[b],_=/[defgprs%]/.test(b);function E(e){var t,o,l,p=w,h=k;if("c"===b)h=A(e)+h,e="";else{var E=(e*=1)<0||1/e<0;
1if(e=isNaN(e)?d:A(Math.abs(e),x),v&&(e=function(e){e:for(var t,n=e.length,r=1,a=-1;r<n;++r)switch(e[r]){case".":a=t=r;break;case"0":0===a&&(a=r),t=r;break;default:if(!+e[r])break e;a>0&&(a=0)}return a>0?e.slice(0,a)+e.slice(t+1):e}(e)),E&&0==+e&&"+"!==f&&(E=!1),p=(E?"("===f?f:u:"-"===f||"("===f?"":f)+p,h=("s"!==b||isNaN(e)||void 0===n?"":oB[8+n/3])+h+(E&&"("===f?")":""),_){for(t=-1,o=e.length;++t<o;)if(48>(l=e.charCodeAt(t))||l>57){h=(46===l?s+e.slice(t+1):e.slice(t))+h,e=e.slice(0,t);break}}}m&&!g&&(e=i(e,1/0));var j=p.length+e.length+h.length,O=j<y?Array(y-j+1).join(r):"";switch(m&&g&&(e=i(O+e,O.length?y-h.length:1/0),O=""),a){case"<":e=p+e+h+O;break;case"=":e=p+O+e+h;break;case"^":e=O.slice(0,j=O.length>>1)+p+e+h+O.slice(j);break;default:e=O+p+e+h}return c(e)}return x=void 0===x?6:/[gprs]/.test(b)?Math.max(1,Math.min(21,x)):Math.max(0,Math.min(20,x)),E.toString=function(){return e+""},E}return{format:f,formatPrefix:function(e,t){var n=3*Math.max(-8,Math.min(8,Math.floor(oP(t)/3))),r=Math.pow(10,-n),a=f(((e=oM(e)).type="f",e),{suffix:oB[8+n/3]});return function(e){return a(r*e)}}}}({thousands:",",grouping:[3],currency:["$",""]})).format,i=r.formatPrefix;let ls=new Date,lc=new Date;function lp(e,t,n,r){function a(t){return e(t=0==arguments.length?new Date:new Date(+t)),t}return a.floor=t=>(e(t=new Date(+t)),t),a.ceil=n=>(e(n=new Date(n-1)),t(n,1),e(n),n),a.round=e=>{let t=a(e),n=a.ceil(e);return e-t<n-e?t:n},a.offset=(e,n)=>(t(e=new Date(+e),null==n?1:Math.floor(n)),e),a.range=(n,r,i)=>{let o,l=[];
1if(n=a.ceil(n),i=null==i?1:Math.floor(i),!(n<r)||!(i>0))return l;do l.push(o=new Date(+n)),t(n,i),e(n);while(o<n&&n<r)return l},a.filter=n=>lp(t=>{if(t>=t)for(;e(t),!n(t);)t.setTime(t-1)},(e,r)=>{if(e>=e)if(r<0)for(;++r<=0;)for(;t(e,-1),!n(e););else for(;--r>=0;)for(;t(e,1),!n(e););}),n&&(a.count=(t,r)=>(ls.setTime(+t),lc.setTime(+r),e(ls),e(lc),Math.floor(n(ls,lc))),a.every=e=>isFinite(e=Math.floor(e))&&e>0?e>1?a.filter(r?t=>r(t)%e==0:t=>a.count(0,t)%e==0):a:null),a}let lu=lp(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());lu.every=e=>isFinite(e=Math.floor(e))&&e>0?lp(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)}):null,lu.range;let ld=lp(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());ld.every=e=>isFinite(e=Math.floor(e))&&e>0?lp(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)}):null,ld.range;let lf=lp(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());lf.range;let lh=lp(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());lh.range;function lg(e){return lp(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(e,t)=>{e.setDate(e.getDate()+7*t)},(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*6e4)/6048e5)}let ly=lg(0),lm=lg(1),lx=lg(2),lv=lg(3),lb=lg(4),lw=lg(5),lk=lg(6);function lA(e){return lp(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+7*t)},(e,t)=>(t-e)/6048e5)}ly.range,lm.range,lx.range,lv.range,lb.range,lw.range,lk.range;let l_=lA(0),lE=lA(1),lj=lA(2),lO=lA(3),lC=lA(4),lD=lA(5),lS=lA(6);l_.range,lE.range,lj.range,lO.range,lC.range,lD.range,lS.range;let lP=lp(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*6e4)/864e5,e=>e.getDate()-1);lP.range;let lI=lp(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/864e5,e=>e.getUTCDate()-1);lI.range;let lM=lp(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/864e5,e=>Math.floor(e/864e5));lM.range;let lT=lp(e=>{e.setTime(e-e.getMilliseconds()-1e3*e.getSeconds()-6e4*e.getMinutes())},(e,t)=>{e.setTime(+e+36e5*t)},(e,t)=>(t-e)/36e5,e=>e.getHours());lT.range;let lN=lp(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+36e5*t)},(e,t)=>(t-e)/36e5,e=>e.getUTCHours());lN.range;let lz=lp(e=>{e.setTime(e-e.getMilliseconds()-1e3*e.getSeconds())},(e,t)=>{e.setTime(+e+6e4*t)},(e,t)=>(t-e)/6e4,e=>e.getMinutes());lz.range;let lL=lp(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+6e4*t)},(e,t)=>(t-e)/6e4,e=>e.getUTCMinutes());lL.range;let lR=lp(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+1e3*t)},(e,t)=>(t-e)/1e3,e=>e.getUTCSeconds());lR.range;let lB=lp(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);function lF(e,t,n,r,a,i){let o=[[lR,1,1e3],[lR,5,5e3],[lR,15,15e3],[lR,30,3e4],[i,1,6e4],[i,5,3e5],[i,15,9e5],[i,30,18e5],[a,1,36e5],[a,3,108e5],[a,6,216e5],[a,12,432e5],[r,1,864e5],[r,2,1728e5],[n,1,6048e5],[t,1,2592e6],[t,3,7776e6],[e,1,31536e6]];function l(t,n,r){let a=Math.abs(n-t)/r,i=iR(e=>{let[,,t]=e;return t}).right(o,a);if(i===o.length)return e.every(iN(t/31536e6,n/31536e6,r));if(0===i)return lB.every(Math.max(iN(t,n,r),1));let[l,s]=o[a/o[i-1][2]<o[i][2]/a?i-1:i];return l.every(s)}return[function(e,t,n){let r=t<e;r&&([e,t]=[t,e]);let a=n&&"function"==typeof n.range?n:l(e,t,n),i=a?a.range(e,+t+1):[];return r?i.reverse():i},l]}lB.every=e=>isFinite(e=Math.floor(e))&&e>0?e>1?lp(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):lB:null,lB.range;let[lH,lU]=lF(ld,lh,l_,lM,lN,lL),[lq,lK]=lF(lu,lf,ly,lP,lT,lz);function lW(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function lV(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function lG(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}var lY={"-":"",_:" ",0:"0"},l$=/^\s*\d+/,lX=/^%/,lZ=/[\\^$*+?|[\]().{}]/g;function lQ(e,t,n){var r=e<0?"-":"",a=(r?-e:e)+"",i=a.length;return r+(i<n?Array(n-i+1).join(t)+a:a)}function lJ(e){return e.replace(lZ,"\\$&")}function l0(e){return RegExp("^(?:"+e.map(lJ).join("|")+")","i")}function l1(e){return new Map(e.map((e,t)=>[e.toLowerCase(),t]))}function l2(e,t,n){var r=l$.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function l6(e,t,n){var r=l$.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function l4(e,t,n){var r=l$.exec(t.slice(n,n+2));
vendor: 1,426 bytes, line 1
1return r?(e.U=+r[0],n+r[0].length):-1}function l9(e,t,n){var r=l$.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function l3(e,t,n){var r=l$.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function l5(e,t,n){var r=l$.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function l7(e,t,n){var r=l$.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function l8(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function se(e,t,n){var r=l$.exec(t.slice(n,n+1));return r?(e.q=3*r[0]-3,n+r[0].length):-1}function st(e,t,n){var r=l$.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function sn(e,t,n){var r=l$.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function sr(e,t,n){var r=l$.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function sa(e,t,n){var r=l$.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function si(e,t,n){var r=l$.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function so(e,t,n){var r=l$.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function sl(e,t,n){var r=l$.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function ss(e,t,n){var r=l$.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function sc(e,t,n){var r=lX.exec(t.slice(n,n+1));return r?n+r[0].length:-1}
vendor: 4,771 bytes, line 1
1function sp(e,t,n){var r=l$.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function su(e,t,n){var r=l$.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function sd(e,t){return lQ(e.getDate(),t,2)}function sf(e,t){return lQ(e.getHours(),t,2)}function sh(e,t){return lQ(e.getHours()%12||12,t,2)}function sg(e,t){return lQ(1+lP.count(lu(e),e),t,3)}function sy(e,t){return lQ(e.getMilliseconds(),t,3)}function sm(e,t){return sy(e,t)+"000"}function sx(e,t){return lQ(e.getMonth()+1,t,2)}function sv(e,t){return lQ(e.getMinutes(),t,2)}function sb(e,t){return lQ(e.getSeconds(),t,2)}function sw(e){var t=e.getDay();return 0===t?7:t}function sk(e,t){return lQ(ly.count(lu(e)-1,e),t,2)}function sA(e){var t=e.getDay();return t>=4||0===t?lb(e):lb.ceil(e)}function s_(e,t){return e=sA(e),lQ(lb.count(lu(e),e)+(4===lu(e).getDay()),t,2)}function sE(e){return e.getDay()}function sj(e,t){return lQ(lm.count(lu(e)-1,e),t,2)}function sO(e,t){return lQ(e.getFullYear()%100,t,2)}function sC(e,t){return lQ((e=sA(e)).getFullYear()%100,t,2)}function sD(e,t){return lQ(e.getFullYear()%1e4,t,4)}function sS(e,t){var n=e.getDay();return lQ((e=n>=4||0===n?lb(e):lb.ceil(e)).getFullYear()%1e4,t,4)}function sP(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+lQ(t/60|0,"0",2)+lQ(t%60,"0",2)}function sI(e,t){return lQ(e.getUTCDate(),t,2)}function sM(e,t){return lQ(e.getUTCHours(),t,2)}function sT(e,t){return lQ(e.getUTCHours()%12||12,t,2)}function sN(e,t){return lQ(1+lI.count(ld(e),e),t,3)}function sz(e,t){return lQ(e.getUTCMilliseconds(),t,3)}function sL(e,t){return sz(e,t)+"000"}function sR(e,t){return lQ(e.getUTCMonth()+1,t,2)}function sB(e,t){return lQ(e.getUTCMinutes(),t,2)}function sF(e,t){return lQ(e.getUTCSeconds(),t,2)}function sH(e){var t=e.getUTCDay();return 0===t?7:t}function sU(e,t){return lQ(l_.count(ld(e)-1,e),t,2)}function sq(e){var t=e.getUTCDay();return t>=4||0===t?lC(e):lC.ceil(e)}function sK(e,t){return e=sq(e),lQ(lC.count(ld(e),e)+(4===ld(e).getUTCDay()),t,2)}function sW(e){return e.getUTCDay()}function sV(e,t){return lQ(lE.count(ld(e)-1,e),t,2)}function sG(e,t){return lQ(e.getUTCFullYear()%100,t,2)}function sY(e,t){return lQ((e=sq(e)).getUTCFullYear()%100,t,2)}function s$(e,t){return lQ(e.getUTCFullYear()%1e4,t,4)}function sX(e,t){var n=e.getUTCDay();return lQ((e=n>=4||0===n?lC(e):lC.ceil(e)).getUTCFullYear()%1e4,t,4)}function sZ(){return"+0000"}function sQ(){return"%"}function sJ(e){return+e}function s0(e){return Math.floor(e/1e3)}function s1(e){return new Date(e)}function s2(e){return e instanceof Date?+e:+new Date(+e)}function s6(e,t,n,r,a,i,o,l,s,c){var p=oD(),u=p.invert,d=p.domain,f=c(".%L"),h=c(":%S"),g=c("%I:%M"),y=c("%I %p"),m=c("%a %d"),x=c("%b %d"),v=c("%B"),b=c("%Y");function w(e){return(s(e)<e?f:l(e)<e?h:o(e)<e?g:i(e)<e?y:r(e)<e?a(e)<e?m:x:n(e)<e?v:b)(e)}return p.invert=function(e){return new Date(u(e))},p.domain=function(e){return arguments.length?d(Array.from(e,s2)):d().map(s1)},p.ticks=function(t){var n=d();return e(n[0],n[n.length-1],null==t?10:t)},p.tickFormat=function(e,t){return null==t?w:c(t)},p.nice=function(e){var n=d();return e&&"function"==typeof e.range||(e=t(n[0],n[n.length-1],null==e?10:e)),e?d(oK(n,e)):p},p.copy=function(){return oO(p,s6(e,t,n,r,a,i,o,l,s,c))},p}function s4(){return ib.apply(s6(lq,lK,lu,lf,ly,lP,lT,lz,lR,l).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function s9(){return ib.apply(s6(lH,lU,ld,lh,l_,lI,lN,lL,lR,s).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function s3(){var e,t,n,r,a,i=0,o=1,l=oA,s=!1;function c(t){return null==t||isNaN(t*=1)?a:l(0===n?.5:(t=(r(t)-e)*n,s?Math.max(0,Math.min(1,t)):t))}function p(e){return function(t){var n,r;return arguments.length?([n,r]=t,l=e(n,r),c):[l(0),l(1)]}}return c.domain=function(a){return arguments.length?([i,o]=a,e=r(i*=1),t=r(o*=1),n=e===t?0:1/(t-e),c):[i,o]},c.clamp=function(e){return arguments.length?(s=!!e,c):s},c.interpolator=function(e){return arguments.length?(l=e,c):l},c.range=p(ov),c.rangeRound=p(ob),c.unknown=function(e){return arguments.length?(a=e,c):a},function(a){return r=a,e=a(i),t=a(o),n=e===t?0:1/(t-e),c}}function s5(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function s7(){var e=oH(s3()(oA));return e.copy=function(){return s5(e,s7())},iw.apply(e,arguments)}function s8(){var e=oZ(s3()).domain([1,10]);return e.copy=function(){return s5(e,s8()).base(e.base())},iw.apply(e,arguments)}function ce(){var e=o1(s3());return e.copy=function(){return s5(e,ce()).constant(e.constant())},iw.apply(e,arguments)}function ct(){var e=o3(s3());return e.copy=function(){return s5(e,ct()).exponent(e.exponent())},iw.apply(e,arguments)}function cn(){return ct.apply(null,arguments).exponent(.5)}function cr(){var e=[],t=oA;
1function n(n){if(null!=n&&!isNaN(n*=1))return t((iU(e,n,1)-1)/(e.length-1))}return n.domain=function(t){if(!arguments.length)return e.slice();for(let n of(e=[],t))null==n||isNaN(n*=1)||e.push(n);return e.sort(iz),n},n.interpolator=function(e){return arguments.length?(t=e,n):t},n.range=function(){return e.map((n,r)=>t(r/(e.length-1)))},n.quantiles=function(t){return Array.from({length:t+1},(n,r)=>(function(e,t,n){if(!(!(r=(e=Float64Array.from(function*(e,t){if(void 0===t)for(let t of e)null!=t&&(t*=1)>=t&&(yield t);else{let n=-1;for(let r of e)null!=(r=t(r,++n,e))&&(r*=1)>=r&&(yield r)}}(e,void 0))).length)||isNaN(t*=1))){if(t<=0||r<2)return ln(e);if(t>=1)return lt(e);var r,a=(r-1)*t,i=Math.floor(a),o=lt((function e(t,n){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1/0,i=arguments.length>4?arguments[4]:void 0;if(n=Math.floor(n),r=Math.floor(Math.max(0,r)),a=Math.floor(Math.min(t.length-1,a)),!(r<=n&&n<=a))return t;for(i=void 0===i?lr:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:iz;if(e===iz)return lr;if("function"!=typeof e)throw TypeError("compare is not a function");return(t,n)=>{let r=e(t,n);return r||0===r?r:(0===e(n,n))-(0===e(t,t))}}(i);a>r;){if(a-r>600){let o=a-r+1,l=n-r+1,s=Math.log(o),c=.5*Math.exp(2*s/3),p=.5*Math.sqrt(s*c*(o-c)/o)*(l-o/2<0?-1:1),u=Math.max(r,Math.floor(n-l*c/o+p)),d=Math.min(a,Math.floor(n+(o-l)*c/o+p));e(t,n,u,d,i)}let o=t[n],l=r,s=a;for(la(t,r,n),i(t[a],o)>0&&la(t,r,a);l<s;){for(la(t,l,s),++l,--s;0>i(t[l],o);)++l;for(;i(t[s],o)>0;)--s}0===i(t[r],o)?la(t,r,s):la(t,++s,a),s<=n&&(r=s+1),n<=s&&(a=s-1)}return t})(e,i).subarray(0,i+1));return o+(ln(e.subarray(i+1))-o)*(a-i)}})(e,r/t))},n.copy=function(){return cr(t).domain(e)},iw.apply(n,arguments)}function ca(){var e,t,n,r,a,i,o,l=0,s=.5,c=1,p=1,u=oA,d=!1;function f(e){return isNaN(e*=1)?o:(e=.5+((e=+i(e))-t)*(p*e<p*t?r:a),u(d?Math.max(0,Math.min(1,e)):e))}function h(e){return function(t){var n,r,a;return arguments.length?([n,r,a]=t,u=function(e,t){void 0===t&&(t=e,e=ov);for(var n=0,r=t.length-1,a=t[0],i=Array(r<0?0:r);n<r;)i[n]=e(a,a=t[++n]);return function(e){var t=Math.max(0,Math.min(r-1,Math.floor(e*=r)));return i[t](e-t)}}(e,[n,r,a]),f):[u(0),u(.5),u(1)]}}return f.domain=function(o){return arguments.length?([l,s,c]=o,e=i(l*=1),t=i(s*=1),n=i(c*=1),r=e===t?0:.5/(t-e),a=t===n?0:.5/(n-t),p=t<e?-1:1,f):[l,s,c]},f.clamp=function(e){return arguments.length?(d=!!e,f):d},f.interpolator=function(e){return arguments.length?(u=e,f):u},f.range=h(ov),f.rangeRound=h(ob),f.unknown=function(e){return arguments.length?(o=e,f):o},function(o){return i=o,e=o(l),t=o(s),n=o(c),r=e===t?0:.5/(t-e),a=t===n?0:.5/(n-t),p=t<e?-1:1,f}}function ci(){var e=oH(ca()(oA));return e.copy=function(){return s5(e,ci())},iw.apply(e,arguments)}function co(){var e=oZ(ca()).domain([.1,1,10]);return e.copy=function(){return s5(e,co()).base(e.base())},iw.apply(e,arguments)}function cl(){var e=o1(ca());return e.copy=function(){return s5(e,cl()).constant(e.constant())},iw.apply(e,arguments)}function cs(){var e=o3(ca());return e.copy=function(){return s5(e,cs()).exponent(e.exponent())},iw.apply(e,arguments)}function cc(){return cs.apply(null,arguments).exponent(.5)}l=(o=function(e){var t=e.dateTime,n=e.date,r=e.time,a=e.periods,i=e.days,o=e.shortDays,l=e.months,s=e.shortMonths,c=l0(a),p=l1(a),u=l0(i),d=l1(i),f=l0(o),h=l1(o),g=l0(l),y=l1(l),m=l0(s),x=l1(s),v={a:function(e){return o[e.getDay()]},A:function(e){return i[e.getDay()]},b:function(e){return s[e.getMonth()]},B:function(e){return l[e.getMonth()]},c:null,d:sd,e:sd,f:sm,g:sC,G:sS,H:sf,I:sh,j:sg,L:sy,m:sx,M:sv,p:function(e){return a[+(e.getHours()>=12)]},q:function(e){return 1+~~(e.getMonth()/3)},Q:sJ,s:s0,S:sb,u:sw,U:sk,V:s_,w:sE,W:sj,x:null,X:null,y:sO,Y:sD,Z:sP,"%":sQ},b={a:function(e){return o[e.getUTCDay()]},A:function(e){return i[e.getUTCDay()]},b:function(e){return s[e.getUTCMonth()]},B:function(e){return l[e.getUTCMonth()]},c:null,d:sI,e:sI,f:sL,g:sY,G:sX,H:sM,I:sT,j:sN,L:sz,m:sR,M:sB,p:function(e){return a[+(e.getUTCHours()>=12)]},q:function(e){return 1+~~(e.getUTCMonth()/3)},Q:sJ,s:s0,S:sF,u:sH,U:sU,V:sK,w:sW,W:sV,x:null,X:null,y:sG,Y:s$,Z:sZ,"%":sQ},w={a:function(e,t,n){var r=f.exec(t.slice(n));return r?(e.w=h.get(r[0].toLowerCase()),n+r[0].length):-1},A:function(e,t,n){var r=u.exec(t.slice(n));return r?(e.w=d.get(r[0].toLowerCase()),n+r[0].length):-1},b:function(e,t,n){var r=m.exec(t.slice(n));return r?(e.m=x.get(r[0].toLowerCase()),n+r[0].length):-1},B:function(e,t,n){var r=g.exec(t.slice(n));return r?(e.m=y.get(r[0].toLowerCase()),n+r[0].length):-1},c:function(e,n,r){return _(e,t,n,r)},d:sn,e:sn,f:ss,g:l7,G:l5,H:sa,I:sa,j:sr,L:sl,m:st,M:si,p:function(e,t,n){var r=c.exec(t.slice(n));return r?(e.p=p.get(r[0].toLowerCase()),n+r[0].length):-1},q:se,Q:sp,s:su,S:so,u:l6,U:l4,V:l9,w:l2,W:l3,x:function(e,t,r){return _(e,n,t,r)},X:function(e,t,n){return _(e,r,t,n)},y:l7,Y:l5,Z:l8,"%":sc};function k(e,t){return function(n){var r,a,i,o=[],l=-1,s=0,c=e.length;for(n instanceof Date||(n=new Date(+n));++l<c;)37===e.charCodeAt(l)&&(o.push(e.slice(s,l)),null!=(a=lY[r=e.charAt(++l)])?r=e.charAt(++l):a="e"===r?" ":"0",(i=t[r])&&(r=i(n,a)),o.push(r),s=l+1);return o.push(e.slice(s,l)),o.join("")}}function A(e,t){return function(n){var r,a,i=lG(1900,void 0,1);if(_(i,e,n+="",0)!=n.length)return null;if("Q"in i)return new Date(i.Q);
1if("s"in i)return new Date(1e3*i.s+("L"in i?i.L:0));if(!t||"Z"in i||(i.Z=0),"p"in i&&(i.H=i.H%12+12*i.p),void 0===i.m&&(i.m="q"in i?i.q:0),"V"in i){if(i.V<1||i.V>53)return null;"w"in i||(i.w=1),"Z"in i?(r=(a=(r=lV(lG(i.y,0,1))).getUTCDay())>4||0===a?lE.ceil(r):lE(r),r=lI.offset(r,(i.V-1)*7),i.y=r.getUTCFullYear(),i.m=r.getUTCMonth(),i.d=r.getUTCDate()+(i.w+6)%7):(r=(a=(r=lW(lG(i.y,0,1))).getDay())>4||0===a?lm.ceil(r):lm(r),r=lP.offset(r,(i.V-1)*7),i.y=r.getFullYear(),i.m=r.getMonth(),i.d=r.getDate()+(i.w+6)%7)}else("W"in i||"U"in i)&&("w"in i||(i.w="u"in i?i.u%7:+("W"in i)),a="Z"in i?lV(lG(i.y,0,1)).getUTCDay():lW(lG(i.y,0,1)).getDay(),i.m=0,i.d="W"in i?(i.w+6)%7+7*i.W-(a+5)%7:i.w+7*i.U-(a+6)%7);return"Z"in i?(i.H+=i.Z/100|0,i.M+=i.Z%100,lV(i)):lW(i)}}function _(e,t,n,r){for(var a,i,o=0,l=t.length,s=n.length;o<l;){if(r>=s)return -1;if(37===(a=t.charCodeAt(o++))){if(!(i=w[(a=t.charAt(o++))in lY?t.charAt(o++):a])||(r=i(e,n,r))<0)return -1}else if(a!=n.charCodeAt(r++))return -1}return r}return v.x=k(n,v),v.X=k(r,v),v.c=k(t,v),b.x=k(n,b),b.X=k(r,b),b.c=k(t,b),{format:function(e){var t=k(e+="",v);return t.toString=function(){return e},t},parse:function(e){var t=A(e+="",!1);return t.toString=function(){return e},t},utcFormat:function(e){var t=k(e+="",b);return t.toString=function(){return e},t},utcParse:function(e){var t=A(e+="",!0);return t.toString=function(){return e},t}}}({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]})).format,o.parse,s=o.utcFormat,o.utcParse,e.i(29061);var cp=e.i(79357);function cu(e,t,n){if("function"==typeof e)return e.copy().domain(t).range(n);if(null!=e){var r=function(e){if(e in cp&&"function"==typeof cp[e])return cp[e]();var t="scale".concat(t2(e));if(t in cp&&"function"==typeof cp[t])return cp[t]()}(e);if(null!=r)return r.domain(t).range(n),r}}function cd(e,t,n,r){if(null!=n&&null!=r)return"function"==typeof e.scale?cu(e.scale,n,r):cu(t,n,r)}
1var cf=(e,t,n)=>{if(null!=e){var r=e.scale,a=e.type;if("auto"===r)return"category"===a&&n&&(n.indexOf("LineChart")>=0||n.indexOf("AreaChart")>=0||n.indexOf("ComposedChart")>=0&&!t)?"point":"category"===a?"band":"linear";if("string"==typeof r)return!function(e){return"scale".concat(t2(e))in cp}(r)?"point":r}};function ch(e,t){if(e){var n=null!=t?t:e.domain(),r=n.map(t=>{var n;return null!=(n=e(t))?n:0}),a=e.range();if(0!==n.length&&!(a.length<2))return e=>{var t,a,i=function(e,t){for(var n=0,r=e.length,a=e[0]<e[e.length-1];n<r;){var i=Math.floor((n+r)/2);(a?e[i]<t:e[i]>t)?n=i+1:r=i}return n}(r,e);return i<=0?n[0]:i>=n.length?n[n.length-1]:Math.abs(e-(null!=(t=r[i-1])?t:0))<=Math.abs(e-(null!=(a=r[i])?a:0))?n[i-1]:n[i]}}}function cg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function cy(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?cg(Object(n),!0).forEach(function(t){var r,a,i;r=e,a=t,i=n[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):cg(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function cm(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);s=!0);}catch(e){c=!0,a=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return cx(e,t);var n=({}).toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?cx(e,t):void 0}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function cx(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var cv=[0,"auto"],cb={allowDataOverflow:!1,allowDecimals:!0,allowDuplicatedCategory:!0,angle:0,dataKey:void 0,domain:void 0,height:30,hide:!0,id:0,includeHidden:!1,interval:"preserveEnd",minTickGap:5,mirror:!1,name:void 0,orientation:"bottom",padding:{left:0,right:0},reversed:!1,scale:"auto",tick:!0,tickCount:5,tickFormatter:void 0,ticks:void 0,type:"category",unit:void 0,niceTicks:"auto"},cw=(e,t)=>e.cartesianAxis.xAxis[t],ck=(e,t)=>{var n=cw(e,t);return null==n?cb:n},cA={allowDataOverflow:!1,allowDecimals:!0,allowDuplicatedCategory:!0,angle:0,dataKey:void 0,domain:cv,hide:!0,id:0,includeHidden:!1,interval:"preserveEnd",minTickGap:5,mirror:!1,name:void 0,orientation:"left",padding:{top:0,bottom:0},reversed:!1,scale:"auto",tick:!0,tickCount:5,tickFormatter:void 0,ticks:void 0,type:"number",unit:void 0,niceTicks:"auto",width:60},c_=(e,t)=>e.cartesianAxis.yAxis[t],cE=(e,t)=>{var n=c_(e,t);return null==n?cA:n},cj={domain:[0,"auto"],includeHidden:!1,reversed:!1,allowDataOverflow:!1,allowDuplicatedCategory:!1,dataKey:void 0,id:0,name:"",range:[64,64],scale:"auto",type:"number",unit:""},cO=(e,t)=>{var n=e.cartesianAxis.zAxis[t];return null==n?cj:n},cC=(e,t,n)=>{switch(t){case"xAxis":return ck(e,n);case"yAxis":return cE(e,n);case"zAxis":return cO(e,n);case"angleAxis":return a8(e,n);case"radiusAxis":return ie(e,n);default:throw Error("Unexpected axis type: ".concat(t))}},cD=(e,t,n)=>{switch(t){case"xAxis":return ck(e,n);case"yAxis":return cE(e,n);case"angleAxis":return a8(e,n);case"radiusAxis":return ie(e,n);default:throw Error("Unexpected axis type: ".concat(t))}},cS=e=>e.graphicalItems.cartesianItems.some(e=>"bar"===e.type)||e.graphicalItems.polarItems.some(e=>"radialBar"===e.type);function cP(e,t){return n=>{switch(e){case"xAxis":return"xAxisId"in n&&n.xAxisId===t;case"yAxis":return"yAxisId"in n&&n.yAxisId===t;case"zAxis":return"zAxisId"in n&&n.zAxisId===t;case"angleAxis":return"angleAxisId"in n&&n.angleAxisId===t;case"radiusAxis":return"radiusAxisId"in n&&n.radiusAxisId===t;default:return!1}}}var cI=e=>e.graphicalItems.cartesianItems,cM=n1([ic,ip],cP),cT=(e,t,n)=>e.filter(n).filter(e=>(null==t?void 0:t.includeHidden)===!0||!e.hide),cN=n1([cI,cC,cM],cT,{memoizeOptions:{resultEqualityCheck:iy}}),cz=n1([cN],e=>e.filter(e=>"area"===e.type||"bar"===e.type).filter(ih)),cL=e=>e.filter(e=>!("stackId"in e)||void 0===e.stackId),cR=n1([cN],cL),cB=e=>e.map(e=>
1e.data).filter(Boolean).flat(1),cF=n1([cN],e=>e.some(e=>!e.data)),cH=n1([cN],cB,{memoizeOptions:{resultEqualityCheck:iy}}),cU=(e,t)=>{var n=t.chartData,r=t.dataStartIndex,a=t.dataEndIndex;return e.length>0?e:(void 0===n?[]:n).slice(r,a+1)},cq=n1([cH,aA],cU),cK=(e,t,n,r,a,i)=>{var o=r.chartData,l=r.dataStartIndex,s=r.dataEndIndex,c=((e,t,n)=>(null==t?void 0:t.dataKey)!=null?e.map(e=>({value:rC(e,t.dataKey)})):n.length>0?n.map(e=>e.dataKey).flatMap(t=>e.map(e=>({value:rC(e,t)}))):e.map(e=>({value:e})))(e,t,n);return a&&(null==t?void 0:t.dataKey)!=null&&i.length>0?[...(void 0===o?[]:o).slice(l,s+1).map(e=>({value:rC(e,t.dataKey)})).filter(e=>null!=e.value),...c]:c},cW=n1([cq,cC,cN,aA,cF,cH],cK);function cV(e){if(t$(e)||e instanceof Date){var t=Number(e);if(rb(t))return t}}function cG(e){if(Array.isArray(e)){var t=[cV(e[0]),cV(e[1])];return aC(t)?t:void 0}var n=cV(e);if(null!=n)return[n,n]}function cY(e){return e.map(cV).filter(t6)}function c$(e,t){var n=cV(e),r=cV(t);return null==n&&null==r?0:null==n?-1:null==r?1:n-r}var cX=n1([cW],e=>null==e?void 0:e.map(e=>e.value).sort(c$));function cZ(e,t){switch(e){case"xAxis":return"x"===t.direction;case"yAxis":return"y"===t.direction;default:return!1}}var cQ=e=>{var t=im(e),n=ix(e);return cD(e,t,n)},cJ=n1([cQ],e=>null==e?void 0:e.dataKey),c0=n1([cz,aA,cQ],id),c1=(e,t,n,r)=>Object.fromEntries(Object.entries(t.reduce((e,t)=>{if(null==t.stackId)return e;var n=e[t.stackId];return null==n&&(n=[]),n.push(t),e[t.stackId]=n,e},{})).map(t=>{var a=cm(t,2),i=a[0],o=a[1],l=r?[...o].reverse():o;return[i,{stackedData:((e,t,n)=>{var r,a=null!=(r=rI[n])?r:rg,i=(function(){var e=rh([]),t=ry,n=rg,r=rm;function a(a){var i,o,l=Array.from(e.apply(this,arguments),rx),s=l.length,c=-1;for(let e of a)for(i=0,++c;i<s;++i)(l[i][c]=[0,+r(e,l[i].key,c,a)]).data=e;for(i=0,o=rf(t(l));i<s;++i)l[o[i]].index=i;return n(l,o),l}return a.keys=function(t){return arguments.length?(e="function"==typeof t?t:rh(Array.from(t)),a):e},a.value=function(e){return arguments.length?(r="function"==typeof e?e:rh(+e),a):r},a.order=function(e){return arguments.length?(t=null==e?ry:"function"==typeof e?e:rh(Array.from(e)),a):t},a.offset=function(e){return arguments.length?(n=null==e?rg:e,a):n},a})().keys(t).value((e,t)=>Number(rC(e,t,0))).order(ry).offset(a)(e);return i.forEach((n,r)=>{n.forEach((n,a)=>{var i=rC(e[a],t[r],0);Array.isArray(i)&&2===i.length&&tY(i[0])&&tY(i[1])&&(n[0]=i[0],n[1]=i[1])})}),i})(e,l.map(iu),n),graphicalItems:l}]})),c2=n1([c0,cz,aK,aW],c1),c6=(e,t,n,r)=>{var a=t.dataStartIndex,i=t.dataEndIndex;if(null==r&&"zAxis"!==n)return((e,t,n)=>{if(null!=e&&0!==Object.keys(e).length)return(e=>[e[0]===1/0?0:e[0],e[1]===-1/0?0:e[1]])(Object.keys(e).reduce((r,a)=>{var i=e[a];if(!i)return r;var o=i.stackedData.reduce((e,r)=>{var a=(e=>{var t=e.flat(2).filter(tY);return[Math.min(...t),Math.max(...t)]})(rv(r,t,n));return rb(a[0])&&rb(a[1])?[Math.min(e[0],a[0]),Math.max(e[1],a[1])]:e},[1/0,-1/0]);return[Math.min(o[0],r[0]),Math.max(o[1],r[1])]},[1/0,-1/0]))})(e,a,i)},c4=n1([cC],e=>e.allowDataOverflow),c9=e=>{var t;if(null==e||!("domain"in e))return cv;if(null!=e.domain)return e.domain;if("ticks"in e&&null!=e.ticks){if("number"===e.type){var n=cY(e.ticks);return[Math.min(...n),Math.max(...n)]}if("category"===e.type)return e.ticks.map(String)}return null!=(t=null==e?void 0:e.domain)?t:cv},c3=n1([cC],c9),c5=n1([c3,c4],aS),c7=n1([c2,aw,ic,c5],c6,{memoizeOptions:{resultEqualityCheck:ig}}),c8=e=>e.errorBars,pe=function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=t.filter(Boolean);if(0!==r.length){var a=r.flat();return[Math.min(...a),Math.max(...a)]}},pt=function(e,t,n,r,a){var i,o,l=arguments.length>5&&void 0!==arguments[5]?arguments[5]:[];if(n.length>0&&n.forEach(e=>{var n,s=null!=e.data?[...e.data]:l,c=null==(n=r[e.id])?void 0:n.filter(e=>cZ(a,e));s.forEach(n=>{var r,a=rC(n,null!=(r=t.dataKey)?r:e.dataKey),l=function(e,t,n){if(!n||!n.length)return[];if("number"!=typeof t||tV(t)){if(Array.isArray(t)){var r,a=cY(t);a.length>0&&(r=Math.max(...a))}}else r=t;return null==r?[]:cY(n.flatMap(t=>{var n,a,i=rC(e,t.dataKey);if(Array.isArray(i)){var o=cm(i,2);n=o[0],a=o[1]}else n=a=i;
1if(rb(n)&&rb(a))return[r-n,r+a]}))}(n,a,c);if(l.length>=2){var s=Math.min(...l),p=Math.max(...l);(null==i||s<i)&&(i=s),(null==o||p>o)&&(o=p)}var u=cG(a);null!=u&&(i=null==i?u[0]:Math.min(i,u[0]),o=null==o?u[1]:Math.max(o,u[1]))})}),(null==t?void 0:t.dataKey)!=null&&0===n.length&&e.forEach(e=>{var n=cG(rC(e,t.dataKey));null!=n&&(i=null==i?n[0]:Math.min(i,n[0]),o=null==o?n[1]:Math.max(o,n[1]))}),rb(i)&&rb(o))return[i,o]},pn=n1([cq,cC,cR,c8,ic,a_],pt,{memoizeOptions:{resultEqualityCheck:ig}});function pr(e){var t=e.value;if(t$(t)||t instanceof Date)return t}var pa=e=>e.referenceElements.dots,pi=(e,t,n)=>e.filter(e=>"extendDomain"===e.ifOverflow).filter(e=>"xAxis"===t?e.xAxisId===n:e.yAxisId===n),po=n1([pa,ic,ip],pi),pl=e=>e.referenceElements.areas,ps=n1([pl,ic,ip],pi),pc=e=>e.referenceElements.lines,pp=n1([pc,ic,ip],pi),pu=(e,t)=>{if(null!=e){var n=cY(e.map(e=>"xAxis"===t?e.x:e.y));if(0!==n.length)return[Math.min(...n),Math.max(...n)]}},pd=n1(po,ic,pu),pf=(e,t)=>{if(null!=e){var n=cY(e.flatMap(e=>["xAxis"===t?e.x1:e.y1,"xAxis"===t?e.x2:e.y2]));if(0!==n.length)return[Math.min(...n),Math.max(...n)]}},ph=n1([ps,ic],pf),pg=(e,t)=>{if(null!=e){var n=e.flatMap(e=>"xAxis"===t?function(e){if(null!=e.x)return cY([e.x]);var t,n=null==(t=e.segment)?void 0:t.map(e=>e.x);return null==n||0===n.length?[]:cY(n)}(e):function(e){if(null!=e.y)return cY([e.y]);var t,n=null==(t=e.segment)?void 0:t.map(e=>e.y);return null==n||0===n.length?[]:cY(n)}(e));if(0!==n.length)return[Math.min(...n),Math.max(...n)]}},py=n1([pp,ic],pg),pm=n1(pd,py,ph,(e,t,n)=>pe(e,n,t)),px=(e,t,n,r,a,i,o,l,s)=>{if(null!=n)return n;var c="vertical"===o&&"xAxis"===l||"horizontal"===o&&"yAxis"===l?pe(r,i,a):pe(i,a),p=function(e,t,n){if(n||null!=t){if("function"==typeof e&&null!=t)try{var r=e(t,n);if(aC(r))return aD(r,t,n)}catch(e){}if(Array.isArray(e)&&2===e.length){var a,i,o=aj(e,2),l=o[0],s=o[1];if("auto"===l)null!=t&&(a=Math.min(...t));else if(tY(l))a=l;else if("function"==typeof l)try{null!=t&&(a=l(null==t?void 0:t[0]))}catch(e){}else if("string"==typeof l&&rN.test(l)){var c=rN.exec(l);if(null==c||null==c[1]||null==t)a=void 0;else{var p=+c[1];a=t[0]-p}}else a=null==t?void 0:t[0];if("auto"===s)null!=t&&(i=Math.max(...t));else if(tY(s))i=s;else if("function"==typeof s)try{null!=t&&(i=s(null==t?void 0:t[1]))}catch(e){}else if("string"==typeof s&&rz.test(s)){var u=rz.exec(s);if(null==u||null==u[1]||null==t)i=void 0;else{var d=+u[1];i=t[1]+d}}else i=null==t?void 0:t[1];var f=[a,i];if(aC(f))return null==t?f:aD(f,t,n)}}}(t,c,e.allowDataOverflow);return null!=p?p:e.allowDataOverflow&&null==c&&null!=s?s:p},pv=n1([cC],e=>{if(null!=e&&"number"===e.type&&"ticks"in e&&null!=e.ticks){var t=cY(e.ticks);if(0!==t.length)return[Math.min(...t),Math.max(...t)]}},{memoizeOptions:{resultEqualityCheck:ig}}),pb=n1([cC,c3,c5,c7,pn,pm,ah,ic,pv],px,{memoizeOptions:{resultEqualityCheck:ig}}),pw=[0,1],pk=(e,t,n,r,a,i,o)=>{if(null!=e&&null!=n&&0!==n.length||void 0!==o){var l,s=e.dataKey,c=e.type,p=rD(t,i);return p&&null==s?ab(0,null!=(l=null==n?void 0:n.length)?l:0):"category"===c?((e,t,n)=>{var r=e.map(pr).filter(e=>null!=e);return n&&(null==t.dataKey||t.allowDuplicatedCategory&&tJ(r))?ab(0,e.length):t.allowDuplicatedCategory?r:Array.from(new Set(r))})(r,e,p):"expand"!==a||p?o:pw}},pA=n1([cC,ah,cq,cW,aK,ic,pb],pk),p_=n1([cC,cS,aV],cf),pE=(e,t,n)=>{var r=t.niceTicks;if("none"!==r){var a=c9(t),i=Array.isArray(a)&&("auto"===a[0]||"auto"===a[1]);if(("snap125"===r||"adaptive"===r)&&null!=t&&t.tickCount&&aC(e)){if(i)return aF(e,t.tickCount,t.allowDecimals,r);if("number"===t.type)return aH(e,t.tickCount,t.allowDecimals,r)}if("auto"===r&&"linear"===n&&null!=t&&t.tickCount){if(i&&aC(e))return aF(e,t.tickCount,t.allowDecimals,"adaptive");if("number"===t.type&&aC(e))return aH(e,t.tickCount,t.allowDecimals,"adaptive")}}},pj=n1([pA,cD,p_],pE),pO=(e,t,n,r)=>{if("angleAxis"!==r&&(null==e?void 0:e.type)==="number"&&aC(t)&&Array.isArray(n)&&n.length>0){var a,i;return[Math.min(t[0],null!=(a=n[0])?a:0),Math.max(t[1],null!=(i=n[n.length-1])?i:0)]}return t},pC=n1([cC,pA,pj,ic],pO),pD=n1(cW,cC,(e,t)=>{if(t&&"number"===t.type){var n=1/0,r=Array.from(cY(e.map(e=>e.value))).sort((e,t)=>
1e-t),a=r[0],i=r[r.length-1];if(null==a||null==i)return 1/0;var o=i-a;if(0===o)return 1/0;for(var l=0;l<r.length-1;l++){var s=r[l],c=r[l+1];null!=s&&null!=c&&(n=Math.min(n,c-s))}return n/o}}),pS=n1(pD,ah,aq,rY,(e,t,n,r,a)=>a,(e,t,n,r,a)=>{if(!rb(e))return 0;var i="vertical"===t?r.height:r.width;if("gap"===a)return e*i/2;if("no-gap"===a){var o=tQ(n,e*i),l=e*i/2;return l-o-(l-o)/i*o}return 0}),pP=n1(ck,(e,t,n)=>{var r=ck(e,t);return null==r||"string"!=typeof r.padding?0:pS(e,"xAxis",t,n,r.padding)},(e,t)=>{if(null==e)return{left:0,right:0};var n,r,a=e.padding;return"string"==typeof a?{left:t,right:t}:{left:(null!=(n=a.left)?n:0)+t,right:(null!=(r=a.right)?r:0)+t}}),pI=n1(cE,(e,t,n)=>{var r=cE(e,t);return null==r||"string"!=typeof r.padding?0:pS(e,"yAxis",t,n,r.padding)},(e,t)=>{if(null==e)return{top:0,bottom:0};var n,r,a=e.padding;return"string"==typeof a?{top:t,bottom:t}:{top:(null!=(n=a.top)?n:0)+t,bottom:(null!=(r=a.bottom)?r:0)+t}}),pM=n1([rY,pP,r0,rJ,(e,t,n)=>n],(e,t,n,r,a)=>{var i=r.padding;return a?[i.left,n.width-i.right]:[e.left+t.left,e.left+e.width-t.right]}),pT=n1([rY,ah,pI,r0,rJ,(e,t,n)=>n],(e,t,n,r,a,i)=>{var o=a.padding;return i?[r.height-o.bottom,o.top]:"horizontal"===t?[e.top+e.height-n.bottom,e.top+n.top]:[e.top+n.top,e.top+e.height-n.bottom]}),pN=(e,t,n,r)=>{var a;switch(t){case"xAxis":return pM(e,n,r);case"yAxis":return pT(e,n,r);case"zAxis":return null==(a=cO(e,n))?void 0:a.range;case"angleAxis":return io(e);case"radiusAxis":return il(e,n);default:return}},pz=n1([cC,pN],a6),pL=n1([p_,pC],(e,t)=>{if(null!=t)if("linear"!==e)return t;else{if(!aC(t)){for(var n,r,a=0;a<t.length;a++){var i=t[a];rb(i)&&((void 0===n||i<n)&&(n=i),(void 0===r||i>r)&&(r=i))}return void 0!==n&&void 0!==r?[n,r]:void 0}return t}}),pR=n1([cC,p_,pL,pz],cd),pB=(e,t,n,r)=>{if(null!=n&&null!=n.dataKey){var a=n.type,i=n.scale;if(rD(e,r)&&("number"===a||"auto"!==i))return t.map(e=>e.value)}},pF=n1([ah,cW,cD,ic],pB),pH=n1([pR],iv);function pU(e,t){return e.id<t.id?-1:+(e.id>t.id)}n1([pR],function(e){if(null!=e)return"invert"in e&&"function"==typeof e.invert?e.invert.bind(e):ch(e,void 0)}),n1([pR,cX],ch),n1([cN,c8,ic],(e,t,n)=>e.flatMap(e=>t[e.id]).filter(Boolean).filter(e=>cZ(n,e)));var pq=(e,t)=>t,pK=(e,t,n)=>n,pW=n1(rK,pq,pK,(e,t,n)=>e.filter(e=>e.orientation===t).filter(e=>e.mirror===n).sort(pU)),pV=n1(rW,pq,pK,(e,t,n)=>e.filter(e=>e.orientation===t).filter(e=>e.mirror===n).sort(pU)),pG=(e,t)=>{var n="number"==typeof t.height?t.height:30;return{width:e.width,height:n}},pY=n1(rY,ck,pG),p$=n1(rH,rY,pW,pq,pK,(e,t,n,r,a)=>{var i,o={};return n.forEach(n=>{var l=pG(t,n);null==i&&(i=((e,t,n)=>{switch(t){case"top":return e.top;case"bottom":return n-e.bottom;default:return 0}})(t,r,e));var s="top"===r&&!a||"bottom"===r&&a;o[n.id]=i-Number(s)*l.height,i+=(s?-1:1)*l.height}),o}),pX=n1(rF,rY,pV,pq,pK,(e,t,n,r,a)=>{var i,o={};return n.forEach(n=>{var l=((e,t)=>({width:"number"==typeof t.width?t.width:60,height:e.height}))(t,n);null==i&&(i=((e,t,n)=>{switch(t){case"left":return e.left;case"right":return n-e.right;default:return 0}})(t,r,e));var s="left"===r&&!a||"right"===r&&a;o[n.id]=i-Number(s)*l.width,i+=(s?-1:1)*l.width}),o}),pZ=n1([rY,ck,(e,t)=>{var n=ck(e,t);if(null!=n)return p$(e,n.orientation,n.mirror)},(e,t)=>t],(e,t,n,r)=>{if(null!=t){var a=null==n?void 0:n[r];return null==a?{x:e.left,y:0}:{x:e.left,y:a}}}),pQ=n1([rY,cE,(e,t)=>{var n=cE(e,t);if(null!=n)return pX(e,n.orientation,n.mirror)},(e,t)=>t],(e,t,n,r)=>{if(null!=t){var a=null==n?void 0:n[r];return null==a?{x:0,y:e.top}:{x:a,y:e.top}}}),pJ=n1(rY,cE,(e,t)=>({width:"number"==typeof t.width?t.width:60,height:e.height})),p0=(e,t,n)=>{switch(t){case"xAxis":return pY(e,n).width;case"yAxis":return pJ(e,n).height;default:return}},p1=(e,t,n,r)=>{if(null!=n){var a=n.allowDuplicatedCategory,i=n.type,o=n.dataKey,l=rD(e,r),s=t.map(e=>e.value),c=s.filter(e=>null!=e);if(o&&l&&"category"===i&&a&&tJ(c))return s}},p2=n1([ah,cW,cC,ic],p1),p6=n1([ah,(e,t,n)=>{switch(t){case"xAxis":return ck(e,n);case"yAxis":return cE(e,n);default:throw Error("Unexpected axis type: ".concat(t))}},p_,pH,p2,pF,pN,pj,ic],(e,t,n,r,a,i,o,l,s)=>{if(null!=t){var c=rD(e,s);return{angle:t.angle,interval:t.interval,minTickGap:t.minTickGap,orientation:t.orientation,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,axisType:s,categoricalDomain:i,duplicateDomain:a,isCategorical:c,niceTicks:l,range:o,realScaleType:n,scale:r}}}),p4=n1([ah,cD,p_,pH,pj,pN,p2,pF,ic],(e,t,n,r,a,i,o,l,s)=>{if(null!=t&&null!=r){var c=rD(e,s),p=t.type,u=t.ticks,d=t.tickCount,f="scaleBand"===n&&"function"==typeof r.bandwidth?r.bandwidth()/2:2,h="category"===p&&r.bandwidth?r.bandwidth()/f:0;h="angleAxis"===s&&null!=i&&i.length>=2?2*tW(i[0]-i[1])*h:h;var g=u||a;return g?g.map((e,t)=>{var n=o?o.indexOf(e):e,a=r.map(n);return rb(a)?{index:t,coordinate:a+h,value:e,offset:h}:null}).filter(t6):c&&l?l.map((e,t)=>{var n=r.map(e);return rb(n)?{coordinate:n+h,value:e,index:t,offset:h}:null}).filter(t6):r.ticks?r.ticks(d).map((e,t)=>{var n=r.map(e);return rb(n)?{coordinate:n+h,value:e,index:t,offset:h}:null}).filter(t6):r.domain().map((e,t)=>{var n=r.map(e);return rb(n)?{coordinate:n+h,value:o?o[e]:e,index:t,offset:h}:null}).filter(t6)}}),p9=n1([ah,cD,pH,pN,p2,pF,ic],(e,t,n,r,a,i,o)=>
1{if(null!=t&&null!=n&&null!=r&&r[0]!==r[1]){var l=rD(e,o),s=t.tickCount,c=0;return(c="angleAxis"===o&&(null==r?void 0:r.length)>=2?2*tW(r[0]-r[1])*c:c,l&&i)?i.map((e,t)=>{var r=n.map(e);return rb(r)?{coordinate:r+c,value:e,index:t,offset:c}:null}).filter(t6):n.ticks?n.ticks(s).map((e,t)=>{var r=n.map(e);return rb(r)?{coordinate:r+c,value:e,index:t,offset:c}:null}).filter(t6):n.domain().map((e,t)=>{var r=n.map(e);return rb(r)?{coordinate:r+c,value:a?a[e]:e,index:t,offset:c}:null}).filter(t6)}}),p3=n1(cC,pH,(e,t)=>{if(null!=e&&null!=t)return cy(cy({},e),{},{scale:t})}),p5=n1([cC,p_,pA,pz],cd),p7=n1([p5],iv);n1((e,t,n)=>cO(e,n),p7,(e,t)=>{if(null!=e&&null!=t)return cy(cy({},e),{},{scale:t})});var p8=n1([ah,rK,rW],(e,t,n)=>{switch(e){case"horizontal":return t.some(e=>e.reversed)?"right-to-left":"left-to-right";case"vertical":return n.some(e=>e.reversed)?"bottom-to-top":"top-to-bottom";case"centric":case"radial":return"left-to-right";default:return}});n1([(e,t,n)=>{var r;return null==(r=e.renderedTicks[t])?void 0:r[n]}],e=>{if(e&&0!==e.length)return t=>{var n,r=1/0,a=e[0];for(var i of e){var o=Math.abs(i.coordinate-t);o<r&&(r=o,a=i)}return null==(n=a)?void 0:n.value}});var ue=e=>e.options.defaultTooltipEventType,ut=e=>e.options.validateTooltipEventTypes;function un(e,t,n){if(null==e)return t;var r=e?"axis":"item";return null==n?t:n.includes(r)?r:t}function ur(e,t){return un(t,ue(e),ut(e))}var ua=(e,t)=>{var n,r=Number(t);if(!tV(r)&&null!=t)return r>=0?null==e||null==(n=e[r])?void 0:n.value:void 0};function ui(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function uo(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ui(Object(n),!0).forEach(function(t){var r,a,i;r=e,a=t,i=n[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ui(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var ul=(e,t,n,r)=>{if(null==t)return np;var a=function(e,t,n){return"axis"===t?"click"===n?e.axisInteraction.click:e.axisInteraction.hover:"click"===n?e.itemInteraction.click:e.itemInteraction.hover}(e,t,n);if(null==a)return np;if(a.active)return a;
1if(e.keyboardInteraction.active)return e.keyboardInteraction;if(e.syncInteraction.active&&null!=e.syncInteraction.index)return e.syncInteraction;var i=!0===e.settings.active;if(null!=a.index){if(i)return uo(uo({},a),{},{active:!0})}else if(null!=r)return{active:!0,coordinate:void 0,dataKey:void 0,index:r,graphicalItemId:void 0};return uo(uo({},np),{},{coordinate:a.coordinate})},us=(e,t,n,r)=>{var a=null==e?void 0:e.index;if(null==a)return null;var i=Number(a);if(!rb(i))return a;var o=Infinity;t.length>0&&(o=t.length-1);var l=Math.max(0,Math.min(i,o)),s=t[l];return null==s?String(l):!function(e,t,n){if(null==n||null==t)return!0;var r=rC(e,t);return!(null!=r&&aC(n))||function(e,t){var n=function(e){if("number"==typeof e)return Number.isFinite(e)?e:void 0;if(e instanceof Date){var t=e.valueOf();return Number.isFinite(t)?t:void 0}var n=Number(e);return Number.isFinite(n)?n:void 0}(e),r=t[0],a=t[1];if(void 0===n)return!1;var i=Math.min(r,a),o=Math.max(r,a);return n>=i&&n<=o}(r,n)}(s,n,r)?null:String(l)},uc=(e,t,n,r,a,i,o)=>{if(null!=i){var l=o[0],s=null==l?void 0:l.getPosition(i);if(null!=s)return s;var c=null==a?void 0:a[Number(i)];if(c)if("horizontal"===n)return{x:c.coordinate,y:(r.top+t)/2};else return{x:(r.left+e)/2,y:c.coordinate}}},up=(e,t,n,r)=>{if("axis"===t)return e.tooltipItemPayloads;if(0===e.tooltipItemPayloads.length)return[];if(a="hover"===n?e.itemInteraction.hover.graphicalItemId:e.itemInteraction.click.graphicalItemId,e.syncInteraction.active&&null==a)return e.tooltipItemPayloads;if(null==a&&(null!=r||e.keyboardInteraction.active)){var a,i=e.tooltipItemPayloads[0];return null!=i?[i]:[]}return e.tooltipItemPayloads.filter(e=>{var t;return(null==(t=e.settings)?void 0:t.graphicalItemId)===a})},uu=e=>e.options.tooltipPayloadSearcher,ud=e=>e.tooltip;function uf(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function uh(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?uf(Object(n),!0).forEach(function(t){var r,a,i;r=e,a=t,i=n[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):uf(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function ug(e){if("string"==typeof e)return e}var uy=(e,t,n,r,a,i,o)=>{if(null!=t&&null!=i){var l=n.chartData,s=n.computedData,c=n.dataStartIndex,p=n.dataEndIndex;return e.reduce((e,n)=>{var u,d,f,h,g,y=n.dataDefinedOnItem,m=n.settings,x=(u=y,d=l,null!=u?u:d),v=Array.isArray(x)?rv(x,c,p):x,b=null!=(f=null==m?void 0:m.dataKey)?f:r,w=null==m?void 0:m.nameKey;return r&&Array.isArray(v)&&!Array.isArray(v[0])&&"axis"===o?null==(h=t1(v,r,a))&&(h=i(v,t,s,w)):h=i(v,t,s,w),Array.isArray(h)?h.forEach(t=>{var n,r,a=function(e){if(null!=e&&"object"==typeof e){var t,n="name"in e?function(e){if("string"==typeof e||"number"==typeof e)return e}(e.name):void 0,r="unit"in e?function(e){if("string"==typeof e||"number"==typeof e||"boolean"==typeof e)return e}(e.unit):void 0,a="dataKey"in e?"string"==typeof(t=e.dataKey)||"number"==typeof t?t:"function"==typeof t?e=>t(e):void 0:void 0,i="payload"in e?e.payload:void 0;return{name:n,unit:r,dataKey:a,payload:i,color:"color"in e?ug(e.color):void 0,fill:"fill"in e?ug(e.fill):void 0}}}(t),i=null==a?void 0:a.name,o=null==a?void 0:a.dataKey,l=null==a?void 0:a.payload,s=uh(uh({},m),{},{name:i,unit:null==a?void 0:a.unit,color:null!=(n=null==a?void 0:a.color)?n:null==m?void 0:m.color,fill:null!=(r=null==a?void 0:a.fill)?r:null==m?void 0:m.fill});e.push(rR({tooltipEntrySettings:s,dataKey:o,payload:l,value:rC(l,o),name:null==i?void 0:String(i)}))}):e.push(rR({tooltipEntrySettings:m,dataKey:b,payload:h,value:rC(h,b),name:null!=(g=rC(h,w))?g:null==m?void 0:m.name})),e},[])}},um=n1([cQ,cS,aV],cf),ux=n1([e=>e.graphicalItems.cartesianItems,e=>e.graphicalItems.polarItems],(e,t)=>[...e,...t]),uv=n1([im,ix],cP),ub=n1([ux,cQ,uv],cT,{memoizeOptions:{resultEqualityCheck:iy}}),uw=n1([ub],e=>e.filter(ih)),uk=n1([ub],cB,{memoizeOptions:{resultEqualityCheck:iy}}),uA=n1([ub],e=>e.some(e=>!e.data)),u_=n1([uk,aw],cU),uE=n1([uw,aw,cQ],id),uj=n1([u_,cQ,ub,aw,uA,uk],cK),uO=n1([cQ],c9),uC=n1([cQ],e=>e.allowDataOverflow),uD=n1([uO,uC],aS),uS=n1([ub],e=>e.filter(ih)),uP=n1([uE,uS,aK,aW],c1),uI=n1([uP,aw,im,uD],c6),uM=n1([ub],cL),uT=n1([u_,cQ,uM,c8,im,aE],pt,{memoizeOptions:{resultEqualityCheck:ig}}),uN=n1([pa,im,ix],pi),uz=n1([uN,im],pu),uL=n1([pl,im,ix],pi),uR=n1([uL,im],pf),uB=n1([pc,im,ix],pi),uF=n1([uB,im],pg),uH=n1([uz,uF,uR],pe),uU=n1([cQ,uO,uD,uI,uT,uH,ah,im],px),uq=n1([cQ,ah,u_,uj,aK,im,uU],pk),uK=n1([uq,cQ,um],pE),uW=n1([cQ,uq,uK,im],pO),uV=e=>{var t=im(e),n=ix(e);return pN(e,t,n,!1)},uG=n1([cQ,uV],a6),uY=n1([cQ,um,uW,uG],cd),u$=n1([uY],iv),uX=n1([ah,uj,cQ,im],p1),uZ=n1([ah,uj,cQ,im],pB),uQ=n1([ah,cQ,um,u$,uV,uX,uZ,im],(e,t,n,r,a,i,o,l)=>{if(t){var s=t.type,c=rD(e,l);if(r){var p="scaleBand"===n&&r.bandwidth?r.bandwidth()/2:2,u="category"===s&&r.bandwidth?r.bandwidth()/p:0;return(u="angleAxis"===l&&null!=a&&(null==a?void 0:a.length)>=2?2*tW(a[0]-a[1])*u:u,c&&o)?o.map((e,t)=>{var n=r.map(e);return rb(n)?{coordinate:n+u,value:e,index:t,offset:u}:null}).filter(t6):r.domain().map((e,t)=>{var n=r.map(e);return rb(n)?{coordinate:n+u,value:i?i[e]:e,index:t,offset:u}:null}).filter(t6)}}}),uJ=n1([ue,ut,e=>e.tooltip.settings],(e,t,n)=>un(n.shared,e,t)),u0=e=>e.tooltip.settings.trigger,u1=e=>e.tooltip.settings.defaultIndex,u2=n1([ud,uJ,u0,u1],ul),u6=n1([u2,u_,cJ,uq],us),u4=n1([uQ,u6],ua),u9=n1([u2],e=>{if(e)return e.dataKey}),u3=n1([u2],e=>{if(e)return e.graphicalItemId}),u5=n1([ud,uJ,u0,u1],up),u7=n1([rF,rH,ah,rY,uQ,u1,u5],uc),u8=n1([u2,u7],(e,t)=>null!=e&&e.coordinate?e.coordinate:t),de=n1([u2],e=>{var t;return null!=(t=null==e?void 0:e.active)&&t}),dt=n1([u5,u6,aw,cJ,u4,uu,uJ],uy),dn=n1([dt],e=>{if(null!=e)return Array.from(new Set(e.map(e=>e.payload).filter(e=>null!=e)))});function dr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function da(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};
1t%2?dr(Object(n),!0).forEach(function(t){var r,a,i;r=e,a=t,i=n[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):dr(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var di=(e,t,n,r,a)=>{var i=null!=(h=null==t?void 0:t.length)?h:0;if(i<=1||null==e)return 0;if("angleAxis"===r&&null!=a&&1e-6>=Math.abs(Math.abs(a[1]-a[0])-360))for(var o=a[1]-a[0],l=(t,n,r)=>[e,e+o,e-o].some(e=>(r?e>=t:e>t)&&e<=n),s=0;s<i;s++){var c,p=s>0?null==(g=n[s-1])?void 0:g.coordinate:null==(y=n[i-1])?void 0:y.coordinate,u=null==(m=n[s])?void 0:m.coordinate,d=s>=i-1?null==(x=n[0])?void 0:x.coordinate:null==(v=n[s+1])?void 0:v.coordinate,f=void 0;if(null!=p&&null!=u&&null!=d){if(tW(u-p)!==tW(d-u)){var h,g,y,m,x,v,b,w=[];if(tW(d-u)===tW(a[1]-a[0])){f=d;var k=u+a[1]-a[0];w[0]=Math.min(k,(k+p)/2),w[1]=Math.max(k,(k+p)/2)}else{f=p;var A=d+a[1]-a[0];w[0]=Math.min(u,(A+u)/2),w[1]=Math.max(u,(A+u)/2)}var _=[Math.min(u,(f+u)/2),Math.max(u,(f+u)/2)];if(l(_[0],_[1],!1)||l(w[0],w[1],!0))return null==(b=n[s])?void 0:b.index}else if(l((Math.min(p,d)+u)/2,(Math.max(p,d)+u)/2,!1))return null==(c=n[s])?void 0:c.index}}else if(t)for(var E=0;E<i;E++){var j=t[E];if(null!=j){var O=t[E+1],C=t[E-1];if(0===E&&null!=O&&e<=(j.coordinate+O.coordinate)/2||E===i-1&&null!=C&&e>(j.coordinate+C.coordinate)/2||E>0&&E<i-1&&null!=C&&null!=O&&e>(j.coordinate+C.coordinate)/2&&e<=(j.coordinate+O.coordinate)/2)return j.index}}return -1},dl=(e,t)=>t,ds=(e,t,n)=>n,dc=(e,t,n,r)=>r,dp=n1(uQ,e=>ru(e,e=>e.coordinate)),du=n1([ud,dl,ds,dc],ul),dd=n1([du,u_,cJ,uq],us),df=n1([ud,dl,ds,dc],up),dh=n1([rF,rH,ah,rY,uQ,dc,df],uc),dg=n1([du,dh],(e,t)=>{var n;return null!=(n=e.coordinate)?n:t}),dy=n1([uQ,dd],ua),dm=n1([df,dd,aw,cJ,dy,uu,dl],uy),dx=n1([du,dd],(e,t)=>({isActive:e.active&&null!=t,activeIndex:t})),dv=n1([(e,t)=>t,ah,is,im,uG,uQ,dp,rY],(e,t,n,r,a,i,o,l)=>{if(e&&t&&r&&a&&i)return"horizontal"===t||"vertical"===t?((e,t,n,r,a,i,o)=>{if(e&&n&&r&&a&&function(e,t){var n=e.relativeX,r=e.relativeY;return n>=t.left&&n<=t.left+t.width&&r>=t.top&&r<=t.top+t.height}(e,o)){var l=di(((e,t)=>"horizontal"===t?e.relativeX:"vertical"===t?e.relativeY:void 0)(e,t),i,a,n,r),s=((e,t,n,r)=>{var a=t.find(e=>e&&e.index===n);if(a){if("horizontal"===e)return{x:a.coordinate,y:r.relativeY};if("vertical"===e)return{x:r.relativeX,y:a.coordinate}}return{x:0,y:0}})(t,a,l,e);return{activeIndex:String(l),activeCoordinate:s}}})(e,t,r,a,i,o,l):((e,t,n,r,a,i,o)=>{if(e&&r&&a&&i&&n){var l=((e,t)=>{var n,r=((e,t)=>{var n=e.x,r=e.y,a=t.cx,i=t.cy,o=((e,t)=>{var n=e.x,r=e.y;return Math.sqrt((n-t.x)**2+(r-t.y)**2)})({x:n,y:r},{x:a,y:i});if(o<=0)return{radius:o,angle:0};var l=Math.acos((n-a)/o);return r>i&&(l=2*Math.PI-l),{radius:o,angle:180*l/Math.PI,angleInRadian:l}})({x:e.relativeX,y:e.relativeY},t),a=r.radius,i=r.angle,o=t.innerRadius,l=t.outerRadius;if(a<o||a>l||0===a)return null;var s=(e=>{var t=e.startAngle,n=e.endAngle,r=Math.min(Math.floor(t/360),Math.floor(n/360));return{startAngle:t-360*r,endAngle:n-360*r}})(t),c=s.startAngle,p=s.endAngle,u=i;if(c<=p){for(;u>p;)u-=360;for(;u<c;)u+=360;n=u>=c&&u<=p}else{for(;u>c;)u-=360;for(;u<p;)u+=360;n=u>=p&&u<=c}return n?aZ(aZ({},t),{},{radius:a,angle:((e,t)=>e+360*Math.min(Math.floor(t.startAngle/360),Math.floor(t.endAngle/360)))(u,t)}):null})(e,n);if(l){var s=di(((e,t)=>"centric"===t?e.angle:e.radius)(l,t),o,i,r,a),c=((e,t,n,r)=>{var a=t.find(e=>e&&e.index===n);if(a){if("centric"===e){var i=a.coordinate,o=r.radius;return da(da(da({},r),aJ(r.cx,r.cy,o,i)),{},{angle:i,radius:o})}var l=a.coordinate,s=r.angle;return da(da(da({},r),aJ(r.cx,r.cy,l,s)),{},{angle:s,radius:l})}return{angle:0,clockWise:!1,cx:0,cy:0,endAngle:0,innerRadius:0,outerRadius:0,radius:0,startAngle:0,x:0,y:0}})(t,i,s,l);return{activeIndex:String(s),activeCoordinate:c}}}})(e,t,n,r,a,i,o)});function db(e){var t,n,r=e.currentTarget.getBoundingClientRect();if("getBBox"in e.currentTarget&&"function"==typeof e.currentTarget.getBBox){var a=e.currentTarget.getBBox();t=a.width>0?r.width/a.width:1,n=a.height>0?r.height/a.height:1}else{var i=e.currentTarget;t=i.offsetWidth>0?r.width/i.offsetWidth:1,n=i.offsetHeight>0?r.height/i.offsetHeight:1}var o=(e,a)=>({relativeX:Math.round((e-r.left)/t),relativeY:Math.round((a-r.top)/n)});return"touches"in e?Array.from(e.touches).map(e=>o(e.clientX,e.clientY)):o(e.clientX,e.clientY)}var dw=e2("mouseClick"),dk=tT();dk.startListening({actionCreator:dw,effect:(e,t)=>
1{var n=e.payload,r=dv(t.getState(),db(n));(null==r?void 0:r.activeIndex)!=null&&t.dispatch(nk({activeIndex:r.activeIndex,activeDataKey:void 0,activeCoordinate:r.activeCoordinate}))}});var dA=e2("mouseMove"),d_=tT(),dE=null,dj=null,dO=null;function dC(e,t){return t instanceof HTMLElement?"HTMLElement <".concat(t.tagName,' class="').concat(t.className,'">'):t===window?"global.window":"children"===e&&"object"==typeof t&&null!==t?"<<CHILDREN>>":t}function dD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function dS(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?dD(Object(n),!0).forEach(function(t){var r,a,i;r=e,a=t,i=n[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):dD(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}d_.startListening({actionCreator:dA,effect:(e,t)=>{var n=e.payload,r=t.getState().eventSettings,a=r.throttleDelay,i=r.throttledEvents,o="all"===i||(null==i?void 0:i.includes("mousemove"));null!==dE&&(cancelAnimationFrame(dE),dE=null),null===dj||"number"==typeof a&&o||(clearTimeout(dj),dj=null),dO=db(n);var l=()=>{var e=t.getState(),n=ur(e,e.tooltip.settings.shared);if(!dO){dE=null,dj=null;return}if("axis"===n){var r=dv(e,dO);(null==r?void 0:r.activeIndex)!=null?t.dispatch(nw({activeIndex:r.activeIndex,activeDataKey:void 0,activeCoordinate:r.activeCoordinate})):t.dispatch(nv())}dE=null,dj=null};if(!o)return void l();"raf"===a?dE=requestAnimationFrame(l):"number"==typeof a&&null===dj&&(dj=setTimeout(l,a))}});var dP=tr({name:"cartesianAxis",initialState:{xAxis:{},yAxis:{},zAxis:{}},reducers:{addXAxis:{reducer(e,t){e.xAxis[t.payload.id]=t.payload},prepare:e5()},replaceXAxis:{reducer(e,t){var n=t.payload,r=n.prev,a=n.next;void 0!==e.xAxis[r.id]&&(r.id!==a.id&&delete e.xAxis[r.id],e.xAxis[a.id]=a)},prepare:e5()},removeXAxis:{reducer(e,t){delete e.xAxis[t.payload.id]},prepare:e5()},addYAxis:{reducer(e,t){e.yAxis[t.payload.id]=t.payload},prepare:e5()},replaceYAxis:{reducer(e,t){var n=t.payload,r=n.prev,a=n.next;void 0!==e.yAxis[r.id]&&(r.id!==a.id&&delete e.yAxis[r.id],e.yAxis[a.id]=a)},prepare:e5()},removeYAxis:{reducer(e,t){delete e.yAxis[t.payload.id]},prepare:e5()},addZAxis:{reducer(e,t){e.zAxis[t.payload.id]=t.payload},prepare:e5()},replaceZAxis:{reducer(e,t){var n=t.payload,r=n.prev,a=n.next;void 0!==e.zAxis[r.id]&&(r.id!==a.id&&delete e.zAxis[r.id],e.zAxis[a.id]=a)},prepare:e5()},removeZAxis:{reducer(e,t){delete e.zAxis[t.payload.id]},prepare:e5()},updateYAxisWidth(e,t){var n=t.payload,r=n.id,a=n.width,i=e.yAxis[r];if(i){var o,l=i.widthHistory||[];if(3===l.length&&l[0]===l[2]&&a===l[1]&&a!==i.width&&1>=Math.abs(a-(null!=(o=l[0])?o:0)))return;var s=[...l,a].slice(-3);e.yAxis[r]=dS(dS({},i),{},{width:a,widthHistory:s})}},updateXAxisHeight(e,t){var n=t.payload,r=n.id,a=n.height,i=e.xAxis[r];if(i){var o,l=i.heightHistory||[];if(3===l.length&&l[0]===l[2]&&a===l[1]&&a!==i.height&&1>=Math.abs(a-(null!=(o=l[0])?o:0)))return;var s=[...l,a].slice(-3);e.xAxis[r]=dS(dS({},i),{},{height:a,heightHistory:s})}}}}),dI=dP.actions,dM=dI.addXAxis,dT=dI.replaceXAxis,dN=dI.removeXAxis,dz=dI.addYAxis,dL=dI.replaceYAxis,dR=dI.removeYAxis,dB=(dI.addZAxis,dI.replaceZAxis,dI.removeZAxis,dI.updateYAxisWidth),dF=dI.updateXAxisHeight,dH=dP.reducer,dU=tr({name:"graphicalItems",initialState:{cartesianItems:[],polarItems:[]},reducers:{addCartesianGraphicalItem:{reducer(e,t){e.cartesianItems.push(t.payload)},prepare:e5()},replaceCartesianGraphicalItem:{reducer(e,t){var n=t.payload,r=n.prev,a=n.next,i=eK(e).cartesianItems.indexOf(r);i>-1&&(e.cartesianItems[i]=a)},prepare:e5()},removeCartesianGraphicalItem:{reducer(e,t){var n=eK(e).cartesianItems.indexOf(t.payload);n>-1&&e.cartesianItems.splice(n,1)},prepare:e5()},addPolarGraphicalItem:{reducer(e,t){e.polarItems.push(t.payload)},prepare:e5()},removePolarGraphicalItem:{reducer(e,t){var n=eK(e).polarItems.indexOf(t.payload);n>-1&&e.polarItems.splice(n,1)},prepare:e5()},replacePolarGraphicalItem:{reducer(e,t){var n=t.payload,r=n.prev,a=n.next,i=eK(e).polarItems.indexOf(r);i>-1&&(e.polarItems[i]=a)},prepare:e5()}}}),dq=dU.actions,dK=dq.addCartesianGraphicalItem,dW=dq.replaceCartesianGraphicalItem,dV=dq.removeCartesianGraphicalItem,dG=(dq.addPolarGraphicalItem,dq.removePolarGraphicalItem,dq.replacePolarGraphicalItem,dU.reducer),dY=tr({name:"referenceElements",initialState:{dots:[],areas:[],lines:[]},reducers:{addDot:(e,t)=>
1{e.dots.push(t.payload)},removeDot:(e,t)=>{var n=eK(e).dots.findIndex(e=>e===t.payload);-1!==n&&e.dots.splice(n,1)},addArea:(e,t)=>{e.areas.push(t.payload)},removeArea:(e,t)=>{var n=eK(e).areas.findIndex(e=>e===t.payload);-1!==n&&e.areas.splice(n,1)},addLine:(e,t)=>{e.lines.push(t.payload)},removeLine:(e,t)=>{var n=eK(e).lines.findIndex(e=>e===t.payload);-1!==n&&e.lines.splice(n,1)}}}),d$=dY.actions;d$.addDot,d$.removeDot,d$.addArea,d$.removeArea,d$.addLine,d$.removeLine;var dX=dY.reducer,dZ={x:0,y:0,width:0,height:0,padding:{top:0,right:0,bottom:0,left:0}},dQ=tr({name:"brush",initialState:dZ,reducers:{setBrushSettings:(e,t)=>null==t.payload?dZ:t.payload}});dQ.actions.setBrushSettings;var dJ=dQ.reducer,d0=tr({name:"legend",initialState:{settings:{layout:"horizontal",align:"center",verticalAlign:"bottom",itemSorter:"value",position:void 0,offset:0},size:{width:0,height:0},payload:[]},reducers:{setLegendSize(e,t){e.size.width=t.payload.width,e.size.height=t.payload.height},setLegendSettings(e,t){e.settings.align=t.payload.align,e.settings.layout=t.payload.layout,e.settings.verticalAlign=t.payload.verticalAlign,e.settings.itemSorter=t.payload.itemSorter,e.settings.position=t.payload.position,e.settings.offset=t.payload.offset},addLegendPayload:{reducer(e,t){e.payload.push(t.payload)},prepare:e5()},replaceLegendPayload:{reducer(e,t){var n=t.payload,r=n.prev,a=n.next,i=eK(e).payload.indexOf(r);i>-1&&(e.payload[i]=a)},prepare:e5()},removeLegendPayload:{reducer(e,t){var n=eK(e).payload.indexOf(t.payload);n>-1&&e.payload.splice(n,1)},prepare:e5()}}}),d1=d0.actions,d2=(d1.setLegendSize,d1.setLegendSettings,d1.addLegendPayload),d6=d1.replaceLegendPayload,d4=d1.removeLegendPayload,d9=d0.reducer,d3={accessibilityLayer:!0,barCategoryGap:"10%",barGap:4,barSize:void 0,className:void 0,maxBarSize:void 0,stackOffset:"none",syncId:void 0,syncMethod:"index",baseValue:void 0,reverseStackOrder:!1},d5=tr({name:"rootProps",initialState:d3,reducers:{updateOptions:(e,t)=>{var n;e.accessibilityLayer=t.payload.accessibilityLayer,e.barCategoryGap=t.payload.barCategoryGap,e.barGap=null!=(n=t.payload.barGap)?n:d3.barGap,e.barSize=t.payload.barSize,e.maxBarSize=t.payload.maxBarSize,e.stackOffset=t.payload.stackOffset,e.syncId=t.payload.syncId,e.syncMethod=t.payload.syncMethod,e.className=t.payload.className,e.baseValue=t.payload.baseValue,e.reverseStackOrder=t.payload.reverseStackOrder}}}),d7=d5.reducer,d8=d5.actions.updateOptions,fe=tr({name:"polarAxis",initialState:{radiusAxis:{},angleAxis:{}},reducers:{addRadiusAxis(e,t){e.radiusAxis[t.payload.id]=t.payload},removeRadiusAxis(e,t){delete e.radiusAxis[t.payload.id]},addAngleAxis(e,t){e.angleAxis[t.payload.id]=t.payload},removeAngleAxis(e,t){delete e.angleAxis[t.payload.id]}}}),ft=fe.actions;ft.addRadiusAxis,ft.removeRadiusAxis,ft.addAngleAxis,ft.removeAngleAxis;var fn=fe.reducer,fr=tr({name:"polarOptions",initialState:null,reducers:{updatePolarOptions:(e,t)=>null===e?t.payload:(e.startAngle=t.payload.startAngle,e.endAngle=t.payload.endAngle,e.cx=t.payload.cx,e.cy=t.payload.cy,e.innerRadius=t.payload.innerRadius,e.outerRadius=t.payload.outerRadius,e)}});fr.actions.updatePolarOptions;var fa=fr.reducer,fi=e2("keyDown"),fo=e2("focus"),fl=e2("blur"),fs=tT(),fc=null,fp=null,fu=null;function fd(e){e.persist();var t=e.currentTarget;return new Proxy(e,{get:(e,n)=>{if("currentTarget"===n)return t;var r=Reflect.get(e,n);return"function"==typeof r?r.bind(e):r}})}fs.startListening({actionCreator:fi,effect:(e,t)=>{fu=e.payload,null!==fc&&(cancelAnimationFrame(fc),fc=null);var n=t.getState().eventSettings,r=n.throttleDelay,a=n.throttledEvents,i="all"===a||a.includes("keydown");null===fp||"number"==typeof r&&i||(clearTimeout(fp),fp=null);var o=()=>{try{var e,n=t.getState();if(!1===n.rootProps.accessibilityLayer)return;var r=n.tooltip.keyboardInteraction,a=fu;if("ArrowRight"!==a&&"ArrowLeft"!==a&&"Enter"!==a)return;var i=us(r,u_(n),cJ(n),uq(n)),o=null==i?-1:Number(i),l=!Number.isFinite(o)||o<0,s=uQ(n),c=u_(n),p=ur(n,n.tooltip.settings.shared);if("Enter"===a){if(l)return;var u=dh(n,p,"hover",String(r.index));t.dispatch(n_({active:!r.active,activeIndex:r.index,activeCoordinate:u}));return}var d=p8(n),f="left-to-right"===d?1:-1,h="ArrowRight"===a?1:-1;
1if(l){var g=cJ(n),y=uq(n),m=e=>({active:!1,index:String(e),dataKey:void 0,graphicalItemId:void 0,coordinate:void 0});if(e=-1,h*f>0){for(var x=0;x<c.length;x++)if(null!=us(m(x),c,g,y)){e=x;break}}else for(var v=c.length-1;v>=0;v--)if(null!=us(m(v),c,g,y)){e=v;break}if(e<0)return}else{e=o+h*f;var b=(null==s?void 0:s.length)||c.length;if(0===b||e>=b||e<0)return}var w=dh(n,p,"hover",String(e));t.dispatch(n_({active:!0,activeIndex:e.toString(),activeCoordinate:w}))}finally{fc=null,fp=null}};if(!i)return void o();"raf"===r?fc=requestAnimationFrame(o):"number"==typeof r&&null===fp&&(o(),fu=null,fp=setTimeout(()=>{fu?o():(fp=null,fc=null)},r))}}),fs.startListening({actionCreator:fo,effect:(e,t)=>{var n=t.getState();if(!1!==n.rootProps.accessibilityLayer){var r=n.tooltip.keyboardInteraction;if(!r.active&&null==r.index){var a=ur(n,n.tooltip.settings.shared),i=dh(n,a,"hover",String("0"));t.dispatch(n_({active:!0,activeIndex:"0",activeCoordinate:i}))}}}}),fs.startListening({actionCreator:fl,effect:(e,t)=>{var n=t.getState();if(!1!==n.rootProps.accessibilityLayer){var r=n.tooltip.keyboardInteraction;r.active&&t.dispatch(n_({active:!1,activeIndex:r.index,activeCoordinate:r.coordinate}))}}});var ff=e2("externalEvent"),fh=tT(),fg=new Map,fy=new Map,fm=new Map;fh.startListening({actionCreator:ff,effect:(e,t)=>{var n=e.payload,r=n.handler,a=n.reactEvent;if(null!=r){var i=a.type,o=fd(a);fm.set(i,{handler:r,reactEvent:o});var l=fg.get(i);void 0!==l&&(cancelAnimationFrame(l),fg.delete(i));var s=t.getState().eventSettings,c=s.throttleDelay,p=s.throttledEvents,u="all"===p||(null==p?void 0:p.includes(i)),d=fy.get(i);void 0===d||"number"==typeof c&&u||(clearTimeout(d),fy.delete(i));var f=()=>{var e=fm.get(i);try{if(!e)return;var n=e.handler,r=e.reactEvent,a=t.getState(),o={activeCoordinate:u8(a),activeDataKey:u9(a),activeIndex:u6(a),activeLabel:u4(a),activeTooltipIndex:u6(a),isTooltipActive:de(a)};n&&n(o,r)}finally{fg.delete(i),fy.delete(i),fm.delete(i)}};if(!u)return void f();if("raf"===c){var h=requestAnimationFrame(f);fg.set(i,h)}else if("number"==typeof c){if(!fy.has(i)){f();var g=setTimeout(f,c);fy.set(i,g)}}else f()}}});var fx=n1([ud],e=>e.tooltipItemPayloads),fv=n1([fx,(e,t)=>t,(e,t,n)=>n],(e,t,n)=>{if(null!=t){var r=e.find(e=>e.settings.graphicalItemId===n);if(null!=r){var a=r.getPosition;if(null!=a)return a(t)}}}),fb=e2("touchMove"),fw=tT(),fk=null,fA=null,f_=null,fE=null;fw.startListening({actionCreator:fb,effect:(e,t)=>{var n=e.payload;if(null!=n.touches&&0!==n.touches.length){fE=fd(n);var r=t.getState().eventSettings,a=r.throttleDelay,i=r.throttledEvents,o="all"===i||i.includes("touchmove");null!==fk&&(cancelAnimationFrame(fk),fk=null),null===fA||"number"==typeof a&&o||(clearTimeout(fA),fA=null),f_=Array.from(n.touches).map(e=>db({clientX:e.clientX,clientY:e.clientY,currentTarget:n.currentTarget}));var l=()=>{if(null!=fE){var e=t.getState(),n=ur(e,e.tooltip.settings.shared);if("axis"===n){var r,a=null==(r=f_)?void 0:r[0];if(null==a){fk=null,fA=null;return}var i=dv(e,a);(null==i?void 0:i.activeIndex)!=null&&t.dispatch(nw({activeIndex:i.activeIndex,activeDataKey:void 0,activeCoordinate:i.activeCoordinate}))}else if("item"===n){var o,l=fE.touches[0];if(null==document.elementFromPoint||null==l)return;var s=document.elementFromPoint(l.clientX,l.clientY);if(!s||!s.getAttribute)return;var c=s.getAttribute("data-recharts-item-index"),p=null!=(o=s.getAttribute("data-recharts-item-id"))?o:void 0,u=ub(e).find(e=>e.id===p);if(null==c||null==u||null==p)return;var d=u.dataKey,f=fv(e,c,p);t.dispatch(nm({activeDataKey:d,activeIndex:c,activeCoordinate:f,activeGraphicalItemId:p}))}fk=null,fA=null}};if(!o)return void l();"raf"===a?fk=requestAnimationFrame(l):"number"==typeof a&&null===fA&&(l(),fE=null,fA=setTimeout(()=>{fE?l():(fA=null,fk=null)},a))}}});var fj=tr({name:"errorBars",initialState:{},reducers:{addErrorBar:(e,t)=>{var n=t.payload,r=n.itemId,a=n.errorBar;e[r]||(e[r]=[]),e[r].push(a)},replaceErrorBar:(e,t)=>{var n=t.payload,r=n.itemId,a=n.prev,i=n.next;e[r]&&(e[r]=e[r].map(e=>e.dataKey===a.dataKey&&e.direction===a.direction?i:e))},removeErrorBar:(e,t)=>
1{var n=t.payload,r=n.itemId,a=n.errorBar;e[r]&&(e[r]=e[r].filter(e=>e.dataKey!==a.dataKey||e.direction!==a.direction))}}}),fO=fj.actions;fO.addErrorBar,fO.replaceErrorBar,fO.removeErrorBar;var fC=fj.reducer,fD={devToolsEnabled:!0,isSsr:!("undefined"!=typeof window&&window.document&&window.document.createElement&&window.setTimeout)};function fS(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function fP(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?fS(Object(n),!0).forEach(function(t){var r,a,i;r=e,a=t,i=n[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):fS(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var fI={zIndexMap:Object.values(a0).reduce((e,t)=>fP(fP({},e),{},{[t]:{element:void 0,panoramaElement:void 0,consumers:0}}),{})},fM=new Set(Object.values(a0)),fT=tr({name:"zIndex",initialState:fI,reducers:{registerZIndexPortal:{reducer:(e,t)=>{var n=t.payload.zIndex;e.zIndexMap[n]?e.zIndexMap[n].consumers+=1:e.zIndexMap[n]={consumers:1,element:void 0,panoramaElement:void 0}},prepare:e5()},unregisterZIndexPortal:{reducer:(e,t)=>{var n=t.payload.zIndex;e.zIndexMap[n]&&(e.zIndexMap[n].consumers-=1,e.zIndexMap[n].consumers<=0&&!fM.has(n)&&delete e.zIndexMap[n])},prepare:e5()},registerZIndexPortalElement:{reducer:(e,t)=>{var n=t.payload,r=n.zIndex,a=n.element,i=n.isPanorama;e.zIndexMap[r]?i?e.zIndexMap[r].panoramaElement=a:e.zIndexMap[r].element=a:e.zIndexMap[r]={consumers:0,element:i?void 0:a,panoramaElement:i?a:void 0}},prepare:e5()},unregisterZIndexPortalElement:{reducer:(e,t)=>{var n=t.payload.zIndex;e.zIndexMap[n]&&(t.payload.isPanorama?e.zIndexMap[n].panoramaElement=void 0:e.zIndexMap[n].element=void 0)},prepare:e5()}}}),fN=fT.actions,fz=fN.registerZIndexPortal,fL=fN.unregisterZIndexPortal,fR=fN.registerZIndexPortalElement,fB=fN.unregisterZIndexPortalElement,fF=fT.reducer,fH={throttleDelay:"raf",throttledEvents:["mousemove","touchmove","pointermove","scroll","wheel"]},fU=tr({name:"eventSettings",initialState:fH,reducers:{setEventSettings:(e,t)=>{null!=t.payload.throttleDelay&&(e.throttleDelay=t.payload.throttleDelay),null!=t.payload.throttledEvents&&(e.throttledEvents=t.payload.throttledEvents)}}}),fq=fU.actions.setEventSettings,fK=fU.reducer,fW=tr({name:"renderedTicks",initialState:{xAxis:{},yAxis:{}},reducers:{setRenderedTicks:(e,t)=>{var n=t.payload,r=n.axisType,a=n.axisId,i=n.ticks;e[r][a]=i},removeRenderedTicks:(e,t)=>{var n=t.payload,r=n.axisType,a=n.axisId;delete e[r][a]}}}),fV=fW.actions,fG=fV.setRenderedTicks,fY=fV.removeRenderedTicks,f$=z({brush:dJ,cartesianAxis:dH,chartData:nS,errorBars:fC,eventSettings:fK,graphicalItems:dG,layout:nL,legend:d9,options:t5,polarAxis:fn,polarOptions:fa,referenceElements:dX,renderedTicks:fW.reducer,rootProps:d7,tooltip:nE,zIndex:fF}),fX=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Chart";return function(e){let t,n,r,a=function(e){let{thunk:t=!0,immutableCheck:n=!0,serializableCheck:r=!0,actionCreatorCheck:a=!0}=null!=e?e:{},i=new e6;return t&&("boolean"==typeof t?i.push(e0):i.push(eJ(t.extraArgument))),i},{reducer:i,middleware:o,devTools:l=!0,duplicateMiddlewareCheck:s=!0,preloadedState:c,enhancers:p}=e||{};if("function"==typeof i)t=i;else if(N(i))t=z(i);else throw Error(tN(1));n="function"==typeof o?o(a):a();let u=L;l&&(u=e1({trace:!1,..."object"==typeof l&&l}));let d=(r=function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return e=>(n,r)=>{let a=e(n,r),i=()=>{throw Error(P(15))},o={getState:a.getState,dispatch:function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return i(e,...n)}};return i=L(...t.map(e=>e(o)))(a.dispatch),{...a,dispatch:i}}}(...n),function(e){let{autoBatch:t=!0}=null!=e?e:{},n=new e6(r);return t&&n.push(e8("object"==typeof t?t:void 0)),n});return function e(t,n,r){if("function"!=typeof t)throw Error(P(2));if("function"==typeof n&&"function"==typeof r||"function"==typeof r&&"function"==typeof arguments[3])throw Error(P(0));if("function"==typeof n&&void 0===r&&(r=n,n=void 0),void 0!==r){if("function"!=typeof r)throw Error(P(1));return r(e)(t,n)}let a=t,i=n,o=new Map,l=o,s=0,c=!1;function p(){l===o&&(l=new Map,o.forEach((e,t)=>{l.set(t,e)}))}function u(){if(c)throw Error(P(3));return i}function d(e){if("function"!=typeof e)throw Error(P(4));if(c)throw Error(P(5));let t=!0;p();let n=s++;return l.set(n,e),function(){if(t){if(c)throw Error(P(6));t=!1,p(),l.delete(n),o=null}}}function f(e){if(!N(e))throw Error(P(7));if(void 0===e.type)throw Error(P(8));if("string"!=typeof e.type)throw Error(P(17));if(c)throw Error(P(9));try{c=!0,i=a(i,e)}finally{c=!1}
1return(o=l).forEach(e=>{e()}),e}return f({type:T.INIT}),{dispatch:f,subscribe:d,getState:u,replaceReducer:function(e){if("function"!=typeof e)throw Error(P(10));a=e,f({type:T.REPLACE})},[I]:function(){return{subscribe(e){if("object"!=typeof e||null===e)throw Error(P(11));function t(){e.next&&e.next(u())}return t(),{unsubscribe:d(t)}},[I](){return this}}}}}(t,c,u(..."function"==typeof p?p(d):d()))}({reducer:f$,preloadedState:e,middleware:e=>e({serializableCheck:!1,immutableCheck:!["commonjs","es6","production"].includes("es6")}).concat([dk.middleware,d_.middleware,fs.middleware,fh.middleware,fw.middleware]),enhancers:e=>{var t=e;return"function"==typeof e&&(t=e()),t.concat(e8({type:"raf"}))},devTools:fD.devToolsEnabled&&{serialize:{replacer:dC},name:"recharts-".concat(t)}})};function fZ(e){var t=e.preloadedState,n=e.children,r=e.reduxStoreName,a=rQ(),i=(0,C.useRef)(null);return a?n:(null==i.current&&(i.current=fX(t,r)),C.createElement(nl,{context:n4,store:i.current},n))}var fQ=e=>{var t=e.chartData,n=n3(),r=rQ();return(0,C.useEffect)(()=>r?()=>{}:(n(nC(t)),()=>{n(nC(void 0))}),[t,n,r]),null},fJ=new Set(["axisLine","tickLine","activeBar","activeDot","activeLabel","activeShape","allowEscapeViewBox","background","cursor","dot","label","line","margin","padding","position","shape","style","tick","wrapperStyle","radius","throttledEvents"]);function f0(e,t){for(var n of new Set([...Object.keys(e),...Object.keys(t)]))if(fJ.has(n)){if(null==e[n]&&null==t[n])continue;if(!function(e,t){if(nr(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r=0;r<n.length;r++)if(!Object.prototype.hasOwnProperty.call(t,n[r])||!nr(e[n[r]],t[n[r]]))return!1;return!0}(e[n],t[n]))return!1}else{var r,a;if(r=e[n],a=t[n],(null!=r||null!=a)&&("number"==typeof r&&"number"==typeof a?r!==a&&(r==r||a==a):r!==a))return!1}return!0}var f1=(0,C.memo)(function(e){var t=e.layout,n=e.margin,r=n3(),a=rQ();return(0,C.useEffect)(()=>{a||(r(nT(t)),r(nM(n)))},[r,a,t,n]),null},f0);function f2(e){var t=n3();return(0,C.useEffect)(()=>{t(d8(e))},[t,e]),null}var f6=(0,C.memo)(e=>{var t=n3();return(0,C.useEffect)(()=>{t(fq(e))},[t,e]),null},f0),f4=()=>{var e;return null==(e=re(e=>e.rootProps.accessibilityLayer))||e},f9=["dangerouslySetInnerHTML","onCopy","onCopyCapture","onCut","onCutCapture","onPaste","onPasteCapture","onCompositionEnd","onCompositionEndCapture","onCompositionStart","onCompositionStartCapture","onCompositionUpdate","onCompositionUpdateCapture","onFocus","onFocusCapture","onBlur","onBlurCapture","onChange","onChangeCapture","onBeforeInput","onBeforeInputCapture","onInput","onInputCapture","onReset","onResetCapture","onSubmit","onSubmitCapture","onInvalid","onInvalidCapture","onLoad","onLoadCapture","onError","onErrorCapture","onKeyDown","onKeyDownCapture","onKeyPress","onKeyPressCapture","onKeyUp","onKeyUpCapture","onAbort","onAbortCapture","onCanPlay","onCanPlayCapture","onCanPlayThrough","onCanPlayThroughCapture","onDurationChange","onDurationChangeCapture","onEmptied","onEmptiedCapture","onEncrypted","onEncryptedCapture","onEnded","onEndedCapture","onLoadedData","onLoadedDataCapture","onLoadedMetadata","onLoadedMetadataCapture","onLoadStart","onLoadStartCapture","onPause","onPauseCapture","onPlay","onPlayCapture","onPlaying","onPlayingCapture","onProgress","onProgressCapture","onRateChange","onRateChangeCapture","onSeeked","onSeekedCapture","onSeeking","onSeekingCapture","onStalled","onStalledCapture","onSuspend","onSuspendCapture","onTimeUpdate","onTimeUpdateCapture","onVolumeChange","onVolumeChangeCapture","onWaiting","onWaitingCapture","onAuxClick","onAuxClickCapture","onClick","onClickCapture","onContextMenu","onContextMenuCapture","onDoubleClick","onDoubleClickCapture","onDrag","onDragCapture","onDragEnd","onDragEndCapture","onDragEnter","onDragEnterCapture","onDragExit","onDragExitCapture","onDragLeave","onDragLeaveCapture","onDragOver","onDragOverCapture","onDragStart","onDragStartCapture","onDrop","onDropCapture","onMouseDown","onMouseDownCapture","onMouseEnter","onMouseLeave","onMouseMove","onMouseMoveCapture","onMouseOut","onMouseOutCapture","onMouseOver","onMouseOverCapture","onMouseUp","onMouseUpCapture","onSelect","onSelectCapture","onTouchCancel","onTouchCancelCapture","onTouchEnd","onTouchEndCapture","onTouchMove","onTouchMoveCapture","onTouchStart","onTouchStartCapture","onPointerDown","onPointerDownCapture","onPointerMove","onPointerMoveCapture","onPointerUp","onPointerUpCapture","onPointerCancel","onPointerCancelCapture","onPointerEnter","onPointerEnterCapture","onPointerLeave","onPointerLeaveCapture","onPointerOver","onPointerOverCapture","onPointerOut","onPointerOutCapture","onGotPointerCapture","onGotPointerCaptureCapture","onLostPointerCapture","onLostPointerCaptureCapture","onScroll","onScrollCapture","onWheel","onWheelCapture","onAnimationStart","onAnimationStartCapture","onAnimationEnd","onAnimationEndCapture","onAnimationIteration","onAnimationIterationCapture","onTransitionEnd","onTransitionEndCapture"];function f3(e){return"string"==typeof e&&f9.includes(e)}var f5=new Set(["aria-activedescendant","aria-atomic","aria-autocomplete","aria-busy","aria-checked","aria-colcount","aria-colindex","aria-colspan","aria-controls","aria-current","aria-describedby","aria-details","aria-disabled","aria-errormessage","aria-expanded","aria-flowto","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-labelledby","aria-level","aria-live","aria-modal","aria-multiline","aria-multiselectable","aria-orientation","aria-owns","aria-placeholder","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-roledescription","aria-rowcount","aria-rowindex","aria-rowspan","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","className","color","height","id","lang","max","media","method","min","name","style","target","width","role","tabIndex","accentHeight","accumulate","additive","alignmentBaseline","allowReorder","alphabetic","amplitude","arabicForm","ascent","attributeName","attributeType","autoReverse","azimuth","baseFrequency","baselineShift","baseProfile","bbox","begin","bias","by","calcMode","capHeight","clip","clipPath","clipPathUnits","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRen
1dering","contentScriptType","contentStyleType","cursor","cx","cy","d","decelerate","descent","diffuseConstant","direction","display","divisor","dominantBaseline","dur","dx","dy","edgeMode","elevation","enableBackground","end","exponent","externalResourcesRequired","fill","fillOpacity","fillRule","filter","filterRes","filterUnits","floodColor","floodOpacity","focusable","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","format","from","fx","fy","g1","g2","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","gradientTransform","gradientUnits","hanging","horizAdvX","horizOriginX","href","ideographic","imageRendering","in2","in","intercept","k1","k2","k3","k4","k","kernelMatrix","kernelUnitLength","kerning","keyPoints","keySplines","keyTimes","lengthAdjust","letterSpacing","lightingColor","limitingConeAngle","local","markerEnd","markerHeight","markerMid","markerStart","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","mode","numOctaves","offset","opacity","operator","order","orient","orientation","origin","overflow","overlinePosition","overlineThickness","paintOrder","panose1","pathLength","patternContentUnits","patternTransform","patternUnits","pointerEvents","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","r","radius","refX","refY","renderingIntent","repeatCount","repeatDur","requiredExtensions","requiredFeatures","restart","result","rotate","rx","ry","seed","shapeRendering","slope","spacing","specularConstant","specularExponent","speed","spreadMethod","startOffset","stdDeviation","stemh","stemv","stitchTiles","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","string","stroke","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeWidth","surfaceScale","systemLanguage","tableValues","targetX","targetY","textAnchor","textDecoration","textLength","textRendering","to","transform","u1","u2","underlinePosition","underlineThickness","unicode","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","values","vectorEffect","version","vertAdvY","vertOriginX","vertOriginY","vHanging","vIdeographic","viewTarget","visibility","vMathematical","widths","wordSpacing","writingMode","x1","x2","x","xChannelSelector","xHeight","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlLang","xmlns","xmlnsXlink","xmlSpace","y1","y2","y","yChannelSelector","z","zoomAndPan","ref","key","angle"]);function f7(e){return"string"==typeof e&&f5.has(e)}function f8(e){return"string"==typeof e&&e.startsWith("data-")}function he(e){if("object"!=typeof e||null===e)return{};var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(f7(n)||f8(n))&&(t[n]=e[n]);return t}function ht(e){return null==e?null:(0,C.isValidElement)(e)&&"object"==typeof e.props&&null!==e.props?he(e.props):"object"!=typeof e||Array.isArray(e)?null:he(e)}function hn(e){var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(f7(n)||f8(n)||f3(n))&&(t[n]=e[n]);return t}var hr=["children","width","height","viewBox","className","style","title","desc"];function ha(){return(ha=Object.assign.bind()).apply(null,arguments)}var hi=(0,C.forwardRef)((e,t)=>{var n=e.children,r=e.width,a=e.height,i=e.viewBox,o=e.className,l=e.style,s=e.title,c=e.desc,p=function(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n={};for(var r in e)if(({}).hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],-1===t.indexOf(n)&&({}).propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}(e,hr),u=i||{width:r,height:a,x:0,y:0},d=r1("recharts-surface",o);return C.createElement("svg",ha({},hn(p),{className:d,width:r,height:a,style:l,viewBox:"".concat(u.x," ").concat(u.y," ").concat(u.width," ").concat(u.height),ref:t}),C.createElement("title",null,s),C.createElement("desc",null,c),n)}),ho=n1(e=>e.zIndex.zIndexMap,(e,t)=>t,(e,t,n)=>n,(e,t,n)=>{if(null!=t){var r=e[t];if(null!=r)return n?r.panoramaElement:r.element}}),hl=n1(e=>e.zIndex.zIndexMap,e=>Array.from(new Set(Object.keys(e).map(e=>parseInt(e,10)).concat(Object.values(a0)))).sort((e,t)=>
1e-t),{memoizeOptions:{resultEqualityCheck:function(e,t){if(e.length===t.length){for(var n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}return!1}}});function hs(e){var t=e.zIndex,n=e.isPanorama,r=(0,C.useRef)(null),a=n3();return(0,C.useLayoutEffect)(()=>(r.current&&a(fR({zIndex:t,element:r.current,isPanorama:n})),()=>{a(fB({zIndex:t,isPanorama:n}))}),[a,t,n]),C.createElement("g",{tabIndex:-1,ref:r,className:"recharts-zIndex-layer_".concat(t)})}function hc(e){var t=e.children,n=e.isPanorama,r=re(hl);if(!r||0===r.length)return t;var a=r.filter(e=>e<0),i=r.filter(e=>e>0);return C.createElement(C.Fragment,null,a.map(e=>C.createElement(hs,{key:e,zIndex:e,isPanorama:n})),t,i.map(e=>C.createElement(hs,{key:e,zIndex:e,isPanorama:n})))}var hp=["children"];function hu(){return(hu=Object.assign.bind()).apply(null,arguments)}var hd={width:"100%",height:"100%",display:"block"},hf=(0,C.forwardRef)((e,t)=>{var n,r,a=ad(),i=af(),o=f4();if(!rw(a)||!rw(i))return null;var l=e.children,s=e.otherAttributes,c=e.title,p=e.desc;return null!=s&&(n="number"==typeof s.tabIndex?s.tabIndex:o?0:void 0,r="string"==typeof s.role?s.role:o?"application":void 0),C.createElement(hi,hu({},s,{title:c,desc:p,role:r,tabIndex:n,width:a,height:i,style:hd,ref:t}),l)}),hh=e=>{var t=e.children,n=re(r0);if(!n)return null;var r=n.width,a=n.height,i=n.y,o=n.x;return C.createElement(hi,{width:r,height:a,x:o,y:i},t)},hg=(0,C.forwardRef)((e,t)=>{var n=e.children,r=function(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n={};for(var r in e)if(({}).hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],-1===t.indexOf(n)&&({}).propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}(e,hp);return rQ()?C.createElement(hh,null,C.createElement(hc,{isPanorama:!0},n)):C.createElement(hf,hu({ref:t},r),C.createElement(hc,{isPanorama:!1},n))}),hy=new(e.i(78492)).default,hm="recharts.syncEvent.tooltip",hx="recharts.syncEvent.brush";function hv(e){return e.tooltip.syncInteraction}var hb=["x","y"];function hw(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function hk(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?hw(Object(n),!0).forEach(function(t){var r,a,i;r=e,a=t,i=n[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):hw(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function hA(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var h_=(0,C.createContext)(null),hE=(0,C.createContext)(null);function hj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function hO(){return(hO=Object.assign.bind()).apply(null,arguments)}function hC(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);s=!0);}catch(e){c=!0,a=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return hD(e,t);var n=({}).toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?hD(e,t):void 0}}
1(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function hD(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var hS=()=>(!function(){var e,t,n,r,a,i,o,l,s,c,p,u=n3();(0,C.useEffect)(()=>{u(t7())},[u]),e=re(aG),t=re(a$),n=n3(),r=re(aY),a=re(uQ),i=ag(),o=ac(),l=re(e=>e.rootProps.className),(0,C.useEffect)(()=>{if(null==e)return t4;var l=(l,s,c)=>{if(t!==c&&e===l){if(!1===s.payload.active)return void n(nA({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));if("index"===r){if(o&&null!=s&&null!=(p=s.payload)&&p.coordinate&&s.payload.sourceViewBox){var p,u,d=s.payload.coordinate,f=d.x,h=d.y,g=function(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n={};for(var r in e)if(({}).hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],-1===t.indexOf(n)&&({}).propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}(d,hb),y=s.payload.sourceViewBox,m=y.x,x=y.y,v=y.width,b=y.height,w=hk(hk({},g),{},{x:o.x+(v?(f-m)/v:0)*o.width,y:o.y+(b?(h-x)/b:0)*o.height});n(hk(hk({},s),{},{payload:hk(hk({},s.payload),{},{coordinate:w})}))}else n(s);return}if(null!=a){if("function"==typeof r){var k=r(a,{activeTooltipIndex:null==s.payload.index?void 0:Number(s.payload.index),isTooltipActive:s.payload.active,activeIndex:null==s.payload.index?void 0:Number(s.payload.index),activeLabel:s.payload.label,activeDataKey:s.payload.dataKey,activeCoordinate:s.payload.coordinate});u=a[k]}else"value"===r&&(u=a.find(e=>String(e.value)===s.payload.label));var A=s.payload.coordinate;if(null==A||null==o)return void n(nA({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));if(null==u)return void n(nA({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:s.payload.sourceViewBox,graphicalItemId:void 0}));var _=A.x,E=A.y,j=Math.min(_,o.x+o.width),O=Math.min(E,o.y+o.height),C={x:"horizontal"===i?u.coordinate:j,y:"horizontal"===i?O:u.coordinate};n(nA({active:s.payload.active,coordinate:C,dataKey:s.payload.dataKey,index:String(u.index),label:s.payload.label,sourceViewBox:s.payload.sourceViewBox,graphicalItemId:s.payload.graphicalItemId}))}}};return hy.on(hm,l),()=>{hy.off(hm,l)}},[l,n,t,e,r,a,i,o]),s=re(aG),c=re(a$),p=n3(),(0,C.useEffect)(()=>{if(null==s)return t4;var e=(e,t,n)=>{c!==n&&s===e&&p(nD(t))};return hy.on(hx,e),()=>{hy.off(hx,e)}},[p,c,s])}(),null);function hP(e){if("number"==typeof e)return e;if("string"==typeof e){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var hI=(0,C.forwardRef)((e,t)=>{var n,r,a=(0,C.useRef)(null),i=hC((0,C.useState)({containerWidth:hP(null==(n=e.style)?void 0:n.width),containerHeight:hP(null==(r=e.style)?void 0:r.height)}),2),o=i[0],l=i[1],s=(0,C.useCallback)((e,t)=>{l(n=>{var r=Math.round(e),a=Math.round(t);return n.containerWidth===r&&n.containerHeight===a?n:{containerWidth:r,containerHeight:a}})},[]),c=(0,C.useCallback)(e=>{if("function"==typeof t&&t(e),null!=a.current&&(a.current.disconnect(),a.current=null),null!=e&&"undefined"!=typeof ResizeObserver){var n=e.getBoundingClientRect();s(n.width,n.height);var r=new ResizeObserver(e=>{var t=e[0];if(null!=t){var n=t.contentRect;s(n.width,n.height)}});r.observe(e),a.current=r}},[t,s]);return(0,C.useEffect)(()=>()=>{var e=a.current;null!=e&&e.disconnect()},[s]),C.createElement(C.Fragment,null,C.createElement(ax,{width:o.containerWidth,height:o.containerHeight}),C.createElement("div",hO({ref:c},e)))}),hM=(0,C.forwardRef)((e,t)=>{var n=e.width,r=e.height,a=hC((0,C.useState)({containerWidth:hP(n),containerHeight:hP(r)}),2),i=a[0],o=a[1],l=(0,C.useCallback)((e,t)=>{o(n=>{var r=Math.round(e),a=Math.round(t);return n.containerWidth===r&&n.containerHeight===a?n:{containerWidth:r,containerHeight:a}})},[]),s=(0,C.useCallback)(e=>{if("function"==typeof t&&t(e),null!=e){var n=e.getBoundingClientRect();l(n.width,n.height)}},[t,l]);return C.createElement(C.Fragment,null,C.createElement(ax,{width:i.containerWidth,height:i.containerHeight}),C.createElement("div",hO({ref:s},e)))}),hT=(0,C.forwardRef)((e,t)=>{var n=e.width,r=e.height;return C.createElement(C.Fragment,null,C.createElement(ax,{width:n,height:r}),C.createElement("div",hO({ref:t},e)))}),hN=(0,C.forwardRef)((e,t)=>{var n=e.width,r=e.height;return"string"==typeof n||"string"==typeof r?C.createElement(hM,hO({},e,{ref:t})):"number"==typeof n&&"number"==typeof r?C.createElement(hT,hO({},e,{width:n,height:r,ref:t})):C.createElement(C.Fragment,null,C.createElement(ax,{width:n,height:r}),C.createElement("div",hO({ref:t},e)))}),hz=(0,C.forwardRef)((e,t)=>{var n=e.children,r=e.className,a=e.height,i=e.onClick,o=e.onContextMenu,l=e.onDoubleClick,s=e.onMouseDown,c=e.onMouseEnter,p=e.onMouseLeave,u=e.onMouseMove,d=e.onMouseUp,f=e.onTouchEnd,h=e.onTouchMove,g=e.onTouchStart,y=e.style,m=e.width,x=e.responsive,v=e.dispatchTouchEvents,b=void 0===v||v,w=(0,C.useRef)(null),k=n3(),A=hC((0,C.useState)(null),2),_=A[0],E=A[1],j=hC((0,C.useState)(null),2),O=j[0],D=j[1],S=function(){var e,t=n3(),n=function(e){if(Array.isArray(e))return e}(e=(0,C.useState)(null))||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],s=!0,c=!1;try{i=(n=n.call(e)).next,!1;for(;!(s=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);s=!0);}catch(e){c=!0,a=e}
1finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return l}}(e,2)||function(e,t){if(e){if("string"==typeof e)return hA(e,2);var n=({}).toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?hA(e,t):void 0}}(e,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),r=n[0],a=n[1],i=re(rU);return(0,C.useEffect)(()=>{if(null!=r){var e=r.getBoundingClientRect().width/r.offsetWidth;rb(e)&&e!==i&&t(nz(e))}},[r,t,i]),a}(),P=ao(),I=(null==P?void 0:P.width)>0?P.width:m,M=(null==P?void 0:P.height)>0?P.height:a,T=(0,C.useCallback)(e=>{S(e),"function"==typeof t&&t(e),E(e),D(e),null!=e&&(w.current=e)},[S,t,E,D]),N=(0,C.useCallback)(e=>{k(dw(e)),k(ff({handler:i,reactEvent:e}))},[k,i]),z=(0,C.useCallback)(e=>{k(dA(e)),k(ff({handler:c,reactEvent:e}))},[k,c]),L=(0,C.useCallback)(e=>{k(nv()),k(ff({handler:p,reactEvent:e}))},[k,p]),R=(0,C.useCallback)(e=>{k(dA(e)),k(ff({handler:u,reactEvent:e}))},[k,u]),B=(0,C.useCallback)(()=>{k(fo())},[k]),F=(0,C.useCallback)(()=>{k(fl())},[k]),H=(0,C.useCallback)(e=>{k(fi(e.key))},[k]),U=(0,C.useCallback)(e=>{k(ff({handler:o,reactEvent:e}))},[k,o]),q=(0,C.useCallback)(e=>{k(ff({handler:l,reactEvent:e}))},[k,l]),K=(0,C.useCallback)(e=>{k(ff({handler:s,reactEvent:e}))},[k,s]),W=(0,C.useCallback)(e=>{k(ff({handler:d,reactEvent:e}))},[k,d]),V=(0,C.useCallback)(e=>{k(ff({handler:g,reactEvent:e}))},[k,g]),G=(0,C.useCallback)(e=>{b&&k(fb(e)),k(ff({handler:h,reactEvent:e}))},[k,b,h]),Y=(0,C.useCallback)(e=>{k(ff({handler:f,reactEvent:e}))},[k,f]);return C.createElement(h_.Provider,{value:_},C.createElement(hE.Provider,{value:O},C.createElement(x?hI:hN,{width:null!=I?I:null==y?void 0:y.width,height:null!=M?M:null==y?void 0:y.height,className:r1("recharts-wrapper",r),style:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?hj(Object(n),!0).forEach(function(t){var r,a,i;r=e,a=t,i=n[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):hj(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({position:"relative",cursor:"default",width:I,height:M},y),onClick:N,onContextMenu:U,onDoubleClick:q,onFocus:B,onBlur:F,onKeyDown:H,onMouseDown:K,onMouseEnter:z,onMouseLeave:L,onMouseMove:R,onMouseUp:W,onTouchEnd:Y,onTouchMove:G,onTouchStart:V,ref:T},C.createElement(hS,null),n)))}),hL=n1([rY],e=>({top:e.top,bottom:e.bottom,left:e.left,right:e.right})),hR=n1([hL,rF,rH],(e,t,n)=>{if(e&&null!=t&&null!=n)return{x:e.left,y:e.top,width:Math.max(0,t-e.left-e.right),height:Math.max(0,n-e.top-e.bottom)}}),hB=()=>re(hR);function hF(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var hH=(0,C.createContext)(void 0),hU=e=>{var t=e.children,n=function(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],s=!0,c=!1;try{i=(n=n.call(e)).next,!1;for(;!(s=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);s=!0);}catch(e){c=!0,a=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return l}}(e,1)||function(e,t){if(e){if("string"==typeof e)return hF(e,t);var n=({}).toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?hF(e,t):void 0}}
1(e,1)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}((0,C.useState)("".concat(tZ("recharts"),"-clip")),1)[0],r=hB();if(null==r)return null;var a=r.x,i=r.y,o=r.width,l=r.height;return C.createElement(hH.Provider,{value:n},C.createElement("defs",null,C.createElement("clipPath",{id:n},C.createElement("rect",{x:a,y:i,height:l,width:o}))),t)},hq=["width","height","responsive","children","className","style","compact","title","desc"],hK=(0,C.forwardRef)((e,t)=>{var n=e.width,r=e.height,a=e.responsive,i=e.children,o=e.className,l=e.style,s=e.compact,c=e.title,p=e.desc,u=he(function(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n={};for(var r in e)if(({}).hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],-1===t.indexOf(n)&&({}).propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}(e,hq));return s?C.createElement(C.Fragment,null,C.createElement(ax,{width:n,height:r}),C.createElement(hg,{otherAttributes:u,title:c,desc:p},i)):C.createElement(hz,{className:o,style:l,width:n,height:r,responsive:null!=a&&a,onClick:e.onClick,onMouseLeave:e.onMouseLeave,onMouseEnter:e.onMouseEnter,onMouseMove:e.onMouseMove,onMouseDown:e.onMouseDown,onMouseUp:e.onMouseUp,onContextMenu:e.onContextMenu,onDoubleClick:e.onDoubleClick,onTouchStart:e.onTouchStart,onTouchMove:e.onTouchMove,onTouchEnd:e.onTouchEnd},C.createElement(hg,{otherAttributes:u,title:c,desc:p,ref:t},C.createElement(hU,null,i)))});function hW(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function hV(e,t){var n=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?hW(Object(n),!0).forEach(function(t){var r,a,i;r=e,a=t,i=n[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):hW(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({},e);return Object.keys(t).reduce((e,n)=>(void 0===e[n]&&void 0!==t[n]&&(e[n]=t[n]),e),n)}function hG(){return(hG=Object.assign.bind()).apply(null,arguments)}function hY(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}var h$=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?hY(Object(n),!0).forEach(function(t){var r,a,i;r=e,a=t,i=n[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):hY(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({accessibilityLayer:!0,barCategoryGap:"10%",barGap:4,layout:"horizontal",margin:{top:5,right:5,bottom:5,left:5},responsive:!1,reverseStackOrder:!1,stackOffset:"none",syncMethod:"index"},fH),hX=(0,C.forwardRef)(function(e,t){var n,r=hV(e.categoricalChartProps,h$),a=e.chartName,i=e.defaultTooltipEventType,o=e.validateTooltipEventTypes,l=e.tooltipPayloadSearcher,s=e.categoricalChartProps;return C.createElement(fZ,{preloadedState:{options:{chartName:a,defaultTooltipEventType:i,validateTooltipEventTypes:o,tooltipPayloadSearcher:l,eventEmitter:void 0}},reduxStoreName:null!=(n=s.id)?n:a},C.createElement(fQ,{chartData:s.data}),C.createElement(f1,{layout:r.layout,margin:r.margin}),C.createElement(f6,{throttleDelay:r.throttleDelay,throttledEvents:r.throttledEvents}),C.createElement(f2,{baseValue:r.baseValue,accessibilityLayer:r.accessibilityLayer,barCategoryGap:r.barCategoryGap,maxBarSize:r.maxBarSize,stackOffset:r.stackOffset,barGap:r.barGap,barSize:r.barSize,syncId:r.syncId,syncMethod:r.syncMethod,className:r.className,reverseStackOrder:r.reverseStackOrder}),C.createElement(hK,hG({},r,{ref:t})))}),hZ=["axis","item"],hQ=(0,C.forwardRef)((e,t)=>C.createElement(hX,{chartName:"BarChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:hZ,tooltipPayloadSearcher:t9,categoricalChartProps:e,ref:t})),hJ=C,h0=["children","className"];
1function h1(){return(h1=Object.assign.bind()).apply(null,arguments)}var h2=C.forwardRef((e,t)=>{var n=e.children,r=e.className,a=function(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n={};for(var r in e)if(({}).hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],-1===t.indexOf(n)&&({}).propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}(e,h0),i=r1("recharts-layer",r);return C.createElement("g",h1({className:i},hn(a),{ref:t}),n)}),h6=e=>null;function h4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}h6.displayName="Cell";var h9=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?h4(Object(n),!0).forEach(function(t){var r,a,i;r=e,a=t,i=n[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):h4(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({},{cacheSize:2e3,enableCache:!0}),h3=new class{get(e){var t=this.cache.get(e);return void 0!==t&&(this.cache.delete(e),this.cache.set(e,t)),t}set(e,t){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this.maxSize){var n=this.cache.keys().next().value;null!=n&&this.cache.delete(n)}this.cache.set(e,t)}clear(){this.cache.clear()}size(){return this.cache.size}constructor(e){!function(e,t,n){var r;(t="symbol"==typeof(r=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(t,"string"))?r:r+"")in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}(this,"cache",new Map),this.maxSize=e}}(h9.cacheSize),h5={position:"absolute",top:"-20000px",left:0,padding:0,margin:0,border:"none",whiteSpace:"pre"},h7="recharts_measurement_span",h8=(e,t)=>{try{var n=document.getElementById(h7);n||((n=document.createElement("span")).setAttribute("id",h7),n.setAttribute("aria-hidden","true"),document.body.appendChild(n)),Object.assign(n.style,h5,t),n.textContent="".concat(e);var r=n.getBoundingClientRect();return{width:r.width,height:r.height}}catch(e){return{width:0,height:0}}},ge=function(e){var t,n,r,a,i,o,l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(null==e||fD.isSsr)return{width:0,height:0};if(!h9.enableCache)return h8(e,l);var s=(t=l.fontSize||"",n=l.fontFamily||"",r=l.fontWeight||"",a=l.fontStyle||"",i=l.letterSpacing||"",o=l.textTransform||"","".concat(e,"|").concat(t,"|").concat(n,"|").concat(r,"|").concat(a,"|").concat(i,"|").concat(o)),c=h3.get(s);if(c)return c;var p=h8(e,l);return h3.set(s,p),p};function gt(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);s=!0);}catch(e){c=!0,a=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return gn(e,t);var n=({}).toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?gn(e,t):void 0}}
1(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function gn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var gr=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([*/])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,ga=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([+-])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,gi=/^(px|cm|vh|vw|em|rem|%|mm|in|pt|pc|ex|ch|vmin|vmax|Q)$/,go=/(-?\d+(?:\.\d+)?)([a-zA-Z%]+)?/,gl={cm:96/2.54,mm:96/25.4,pt:96/72,pc:16,in:96,Q:96/101.6,px:1},gs=["cm","mm","pt","pc","in","Q","px"];class gc{static parse(e){var t,n=gt(null!=(t=go.exec(e))?t:[],3),r=n[1],a=n[2];return null==r?gc.NaN:new gc(parseFloat(r),null!=a?a:"")}add(e){return this.unit!==e.unit?new gc(NaN,""):new gc(this.num+e.num,this.unit)}subtract(e){return this.unit!==e.unit?new gc(NaN,""):new gc(this.num-e.num,this.unit)}multiply(e){return""!==this.unit&&""!==e.unit&&this.unit!==e.unit?new gc(NaN,""):new gc(this.num*e.num,this.unit||e.unit)}divide(e){return""!==this.unit&&""!==e.unit&&this.unit!==e.unit?new gc(NaN,""):new gc(this.num/e.num,this.unit||e.unit)}toString(){return"".concat(this.num).concat(this.unit)}isNaN(){return tV(this.num)}constructor(e,t){this.num=e,this.unit=t,this.num=e,this.unit=t,tV(e)&&(this.unit=""),""===t||gi.test(t)||(this.num=NaN,this.unit=""),gs.includes(t)&&(this.num=e*gl[t],this.unit="px")}}function gp(e){if(null==e||e.includes("NaN"))return"NaN";for(var t=e;t.includes("*")||t.includes("/");){var n,r=gt(null!=(n=gr.exec(t))?n:[],4),a=r[1],i=r[2],o=r[3],l=gc.parse(null!=a?a:""),s=gc.parse(null!=o?o:""),c="*"===i?l.multiply(s):l.divide(s);if(c.isNaN())return"NaN";t=t.replace(gr,c.toString())}for(;t.includes("+")||/.-\d+(?:\.\d+)?/.test(t);){var p,u=gt(null!=(p=ga.exec(t))?p:[],4),d=u[1],f=u[2],h=u[3],g=gc.parse(null!=d?d:""),y=gc.parse(null!=h?h:""),m="+"===f?g.add(y):g.subtract(y);if(m.isNaN())return"NaN";t=t.replace(ga,m.toString())}return t}!function(e,t,n){var r;(t="symbol"==typeof(r=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(t,"string"))?r:r+"")in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}(gc,"NaN",new gc(NaN,""));var gu=/\(([^()]*)\)/;function gd(e){var t=function(e){try{var t;return t=e.replace(/\s+/g,""),t=function(e){for(var t,n=e;null!=(t=gu.exec(n));){var r=gt(t,2)[1];n=n.replace(gu,gp(r))}return n}(t),t=gp(t)}catch(e){return"NaN"}}(e.slice(5,-1));return"NaN"===t?"":t}var gf=["x","y","lineHeight","capHeight","fill","scaleToFit","textAnchor","verticalAnchor"],gh=["dx","dy","angle","className","breakAll"];function gg(){return(gg=Object.assign.bind()).apply(null,arguments)}function gy(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n={};for(var r in e)if(({}).hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],-1===t.indexOf(n)&&({}).propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function gm(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);s=!0);}catch(e){c=!0,a=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return gx(e,t);var n=({}).toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?gx(e,t):void 0}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function gx(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var gv=/[ \f\n\r\t\v\u2028\u2029]+/,gb=e=>{var t=e.children,n=e.breakAll,r=e.style;try{let e;var a=[];e=t,null==e||(a=n?t.toString().split(""):t.toString().split(gv));var i=a.map(e=>({word:e,width:ge(e,r).width})),o=n?0:ge("Â ",r).width;return{wordsWithComputedWidth:i,spaceWidth:o}}catch(e){return null}};function gw(e){return"start"===e||"middle"===e||"end"===e||"inherit"===e}var gk=(e,t,n,r)=>e.reduce((e,a)=>{var i=a.word,o=a.width,l=e[e.length-1];return l&&null!=o&&(null==t||r||l.width+o+n<Number(t))?(l.words.push(i),l.
1width+=o+n):e.push({words:[i],width:o}),e},[]),gA=e=>e.reduce((e,t)=>e.width>t.width?e:t),g_=(e,t,n,r,a,i,o,l)=>{var s=gb({breakAll:n,style:r,children:e.slice(0,t)+"â¦"});if(!s)return[!1,[]];var c=gk(s.wordsWithComputedWidth,i,o,l);return[c.length>a||gA(c).width>Number(i),c]},gE=e=>[{words:null==e?[]:e.toString().split(gv),width:void 0}],gj="#808080",gO={angle:0,breakAll:!1,capHeight:"0.71em",fill:gj,lineHeight:"1em",scaleToFit:!1,textAnchor:"start",verticalAnchor:"end",x:0,y:0},gC=(0,C.forwardRef)((e,t)=>{var n,r=hV(e,gO),a=r.x,i=r.y,o=r.lineHeight,l=r.capHeight,s=r.fill,c=r.scaleToFit,p=r.textAnchor,u=r.verticalAnchor,d=gy(r,gf),f=(0,C.useMemo)(()=>(e=>{var t=e.width,n=e.scaleToFit,r=e.children,a=e.style,i=e.breakAll,o=e.maxLines;if((t||n)&&!fD.isSsr){var l=gb({breakAll:i,children:r,style:a});if(!l)return gE(r);var s=l.wordsWithComputedWidth,c=l.spaceWidth;return((e,t,n,r,a)=>{var i,o=e.maxLines,l=e.children,s=e.style,c=e.breakAll,p=tY(o),u=String(l),d=gk(t,r,n,a);if(!p||a||!(d.length>o||gA(d).width>Number(r)))return d;for(var f=0,h=u.length-1,g=0;f<=h&&g<=u.length-1;){var y=Math.floor((f+h)/2),m=gm(g_(u,y-1,c,s,o,r,n,a),2),x=m[0],v=m[1],b=gm(g_(u,y,c,s,o,r,n,a),1)[0];if(x||b||(f=y+1),x&&b&&(h=y-1),!x&&b){i=v;break}g++}return i||d})({breakAll:i,children:r,maxLines:o,style:a},s,c,t,!!n)}return gE(r)})({breakAll:d.breakAll,children:d.children,maxLines:d.maxLines,scaleToFit:c,style:d.style,width:d.width}),[d.breakAll,d.children,d.maxLines,c,d.style,d.width]),h=d.dx,g=d.dy,y=d.angle,m=d.className,x=d.breakAll,v=gy(d,gh);if(!t$(a)||!t$(i)||0===f.length)return null;var b=Number(a)+(tY(h)?h:0),w=Number(i)+(tY(g)?g:0);if(!rb(b)||!rb(w))return null;switch(u){case"start":n=gd("calc(".concat(l,")"));break;case"middle":n=gd("calc(".concat((f.length-1)/2," * -").concat(o," + (").concat(l," / 2))"));break;default:n=gd("calc(".concat(f.length-1," * -").concat(o,")"))}var k=[],A=f[0];if(c&&null!=A){var _=A.width,E=d.width;k.push("scale(".concat(tY(E)&&tY(_)?E/_:1,")"))}return y&&k.push("rotate(".concat(y,", ").concat(b,", ").concat(w,")")),k.length&&(v.transform=k.join(" ")),C.createElement("text",gg({},hn(v),{ref:t,x:b,y:w,className:r1("recharts-text",m),textAnchor:p,fill:s.includes("url")?gj:s}),f.map((e,t)=>{var r=e.words.join(x?"":" ");return C.createElement("tspan",{x:b,dy:0===t?n:o,key:"".concat(r,"-").concat(t)},r)}))});gC.displayName="Text";var gD=e.i(74080);function gS(e){var t=e.zIndex,n=e.children,r=void 0!==ag()&&void 0!==t&&0!==t,a=rQ(),i=(0,C.useRef)(void 0),o=(0,C.useRef)(new Set),l=n3(),s=re(e=>ho(e,t,a));if((0,C.useLayoutEffect)(()=>{if(!r){var e=o.current;e.forEach(e=>{l(fL({zIndex:e}))}),e.clear(),i.current=void 0;return}if(o.current.has(t)||(l(fz({zIndex:t})),o.current.add(t)),s){i.current=s;var n=o.current;n.forEach(e=>{e!==t&&(l(fL({zIndex:e})),n.delete(e))})}},[l,t,r,s]),(0,C.useLayoutEffect)(()=>{var e=o.current;return()=>{e.forEach(e=>{l(fL({zIndex:e}))}),e.clear()}},[l]),!r)return n;var c=null!=s?s:i.current;return c?(0,gD.createPortal)(n,c):null}var gP=["labelRef"],gI=["content"];function gM(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n={};for(var r in e)if(({}).hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],-1===t.indexOf(n)&&({}).propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function gT(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function gN(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?gT(Object(n),!0).forEach(function(t){var r,a,i;r=e,a=t,i=n[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):gT(Object(n)).forEac
1h(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function gz(){return(gz=Object.assign.bind()).apply(null,arguments)}var gL=(0,C.createContext)(null),gR=e=>{var t=e.x,n=e.y,r=e.upperWidth,a=e.lowerWidth,i=e.width,o=e.height,l=e.children,s=(0,C.useMemo)(()=>({x:t,y:n,upperWidth:r,lowerWidth:a,width:i,height:o}),[t,n,r,a,i,o]);return C.createElement(gL.Provider,{value:s},l)},gB=()=>{var e=(0,C.useContext)(gL),t=ac();return e||(t?rk(t):void 0)},gF=(0,C.createContext)(null),gH=e=>null!=e&&"function"==typeof e,gU=e=>null!=e&&"cx"in e&&tY(e.cx),gq={angle:0,offset:5,zIndex:a0.label,position:"middle",textBreakAll:!1};function gK(e){var t,n,r,a,i,o,l,s,c,p,u=hV(e,gq),d=u.viewBox,f=u.parentViewBox,h=u.position,g=u.value,y=u.children,m=u.content,x=u.className,v=u.textBreakAll,b=u.labelRef,w=(t=(0,C.useContext)(gF),n=re(is),t||n),k=gB(),A=function(e){if(!gU(e))return e;var t=e.cx,n=e.cy,r=e.outerRadius,a=2*r;return{x:t-r,y:n-r,width:a,upperWidth:a,lowerWidth:a,height:a}}(s=null==d?"center"===h?k:null!=w?w:k:gU(d)?d:rk(d));if(!s||null==g&&null==y&&!(0,C.isValidElement)(m)&&"function"!=typeof m)return null;var _=gU(s)&&("insideStart"===h||"insideEnd"===h||"end"===h);if(gU(s))_||(p=((e,t,n)=>{var r=e.cx,a=e.cy,i=e.innerRadius,o=e.outerRadius,l=(e.startAngle+e.endAngle)/2;if("outside"===n){var s=aJ(r,a,o+t,l),c=s.x;return{x:c,y:s.y,textAnchor:c>=r?"start":"end",verticalAnchor:"middle"}}if("center"===n)return{x:r,y:a,textAnchor:"middle",verticalAnchor:"middle"};if("centerTop"===n)return{x:r,y:a,textAnchor:"middle",verticalAnchor:"start"};if("centerBottom"===n)return{x:r,y:a,textAnchor:"middle",verticalAnchor:"end"};var p=aJ(r,a,(i+o)/2,l);return{x:p.x,y:p.y,textAnchor:"middle",verticalAnchor:"middle"}})(s,u.offset,u.position));else if(A){var E=(e=>{var t=e.viewBox,n=e.position,r=e.offset,a=void 0===r?0:r,i=e.parentViewBox,o=e.clamp,l=rk(t),s=l.x,c=l.y,p=l.height,u=l.upperWidth,d=l.lowerWidth,f=s+(u-d)/2,h=(s+f)/2,g=(u+d)/2,y=p>=0?1:-1,m=y*a,x=y>0?"end":"start",v=y>0?"start":"end",b=u>=0?1:-1,w=b*a,k=b>0?"end":"start",A=b>0?"start":"end";if("top"===n){var _={x:s+u/2,y:c-m,horizontalAnchor:"middle",verticalAnchor:x};return o&&i&&(_.height=Math.max(c-i.y,0),_.width=u),_}if("bottom"===n){var E={x:f+d/2,y:c+p+m,horizontalAnchor:"middle",verticalAnchor:v};return o&&i&&(E.height=Math.max(i.y+i.height-(c+p),0),E.width=d),E}
1if("left"===n){var j={x:h-w,y:c+p/2,horizontalAnchor:k,verticalAnchor:"middle"};return o&&i&&(j.width=Math.max(j.x-i.x,0),j.height=p),j}if("right"===n){var O={x:h+g+w,y:c+p/2,horizontalAnchor:A,verticalAnchor:"middle"};return o&&i&&(O.width=Math.max(i.x+i.width-O.x,0),O.height=p),O}var C=o&&i?{width:g,height:p}:{};return"insideLeft"===n?r_({x:h+w,y:c+p/2,horizontalAnchor:A,verticalAnchor:"middle"},C):"insideRight"===n?r_({x:h+g-w,y:c+p/2,horizontalAnchor:k,verticalAnchor:"middle"},C):"insideTop"===n?r_({x:s+u/2,y:c+m,horizontalAnchor:"middle",verticalAnchor:v},C):"insideBottom"===n?r_({x:f+d/2,y:c+p-m,horizontalAnchor:"middle",verticalAnchor:x},C):"insideTopLeft"===n?r_({x:s+w,y:c+m,horizontalAnchor:A,verticalAnchor:v},C):"insideTopRight"===n?r_({x:s+u-w,y:c+m,horizontalAnchor:k,verticalAnchor:v},C):"insideBottomLeft"===n?r_({x:f+w,y:c+p-m,horizontalAnchor:A,verticalAnchor:x},C):"insideBottomRight"===n?r_({x:f+d-w,y:c+p-m,horizontalAnchor:k,verticalAnchor:x},C):n&&"object"==typeof n&&(tY(n.x)||tG(n.x))&&(tY(n.y)||tG(n.y))?r_({x:s+tQ(n.x,g),y:c+tQ(n.y,p),horizontalAnchor:"end",verticalAnchor:"end"},C):r_({x:s+u/2,y:c+p/2,horizontalAnchor:"middle",verticalAnchor:"middle"},C)})({viewBox:A,position:h,offset:u.offset,parentViewBox:gU(f)?void 0:f,clamp:!0});p=gN(gN({x:E.x,y:E.y,textAnchor:E.horizontalAnchor,verticalAnchor:E.verticalAnchor},void 0!==E.width?{width:E.width}:{}),void 0!==E.height?{height:E.height}:{})}var j=gN(gN(gN(gN({},(null==(o=p)?void 0:o.x)!==void 0?{x:p.x}:{}),(null==(l=p)?void 0:l.y)!==void 0?{y:p.y}:{}),u),{},{viewBox:s});if((0,C.isValidElement)(m)){j.labelRef;var O=gM(j,gP);return(0,C.cloneElement)(m,O)}if("function"==typeof m){j.content;var D=gM(j,gI);if(c=(0,C.createElement)(m,D),(0,C.isValidElement)(c))return c}else r=u.value,a=u.formatter,i=null==u.children?r:u.children,c="function"==typeof a?a(i):i;var S=hn(u);return _&&gU(s)?((e,t,n,r,a)=>{let i,o;var l,s,c=e.offset,p=e.className,u=a.cx,d=a.cy,f=a.innerRadius,h=a.outerRadius,g=a.startAngle,y=a.endAngle,m=a.clockWise,x=(f+h)/2,v=(i=g,tW((o=y)-i)*Math.min(Math.abs(o-i),360)),b=v>=0?1:-1;switch(t){case"insideStart":l=g+b*c,s=m;break;case"insideEnd":l=y-b*c,s=!m;break;case"end":l=y+b*c,s=m;break;default:throw Error("Unsupported position ".concat(t))}s=v<=0?s:!s;var w=aJ(u,d,x,l),k=aJ(u,d,x,l+(s?1:-1)*359),A="M".concat(w.x,",").concat(w.y,"\n A").concat(x,",").concat(x,",0,1,").concat(+!s,",\n ").concat(k.x,",").concat(k.y),_=null==e.id?tZ("recharts-radial-line-"):e.id;return C.createElement("text",gz({},r,{dominantBaseline:"central",className:r1("recharts-radial-bar-label",p)}),C.createElement("defs",null,C.createElement("path",{id:_,d:A})),C.createElement("textPath",{xlinkHref:"#".concat(_)},n))})(u,h,c,S,s):null==p?null:C.createElement(gS,{zIndex:u.zIndex},C.createElement(gC,gz({ref:b,className:r1("recharts-label",void 0===x?"":x)},S,p,{textAnchor:gw(S.textAnchor)?S.textAnchor:p.textAnchor,breakAll:v}),c))}function gW(e){var t=e.label,n=e.labelRef;return((e,t,n)=>{if(!e)return null;var r={viewBox:t,labelRef:n};return!0===e?C.createElement(gK,gz({key:"label-implicit"},r)):t$(e)?C.createElement(gK,gz({key:"label-implicit",value:e},r)):(0,C.isValidElement)(e)?e.type===gK?(0,C.cloneElement)(e,gN({key:"label-implicit"},r)):C.createElement(gK,gz({key:"label-implicit",content:e},r)):gH(e)?C.createElement(gK,gz({key:"label-implicit",content:e},r)):e&&"object"==typeof e?C.createElement(gK,gz({},e,{key:"label-implicit"},r)):null})(t,gB(),n)||null}gK.displayName="Label";var gV=["valueAccessor"],gG=["dataKey","clockWise","id","textBreakAll","zIndex"];function gY(){return(gY=Object.assign.bind()).apply(null,arguments)}function g$(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n={};for(var r in e)if(({}).hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],-1===t.indexOf(n)&&({}).propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var gX=e=>{var t=Array.isArray(e.value)?e.value[e.value.length-1]:e.value;if(function(e){return null==e||"string"==typeof e||"number"==typeof e||"boolean"==typeof e}(t))return t},gZ=(0,C.createContext)(void 0),gQ=gZ.Provider,gJ=(0,C.createContext)(void 0);function g0(e){var t=e.valueAccessor,n=void 0===t?gX:t,r=g$(e,gV),a=r.dataKey,i=(r.clockWise,r.id),o=r.textBreakAll,l=r.zIndex,s=g$(r,gG),c=(0,C.useContext)(gZ),p=(0,C.useContext)(gJ),u=c||p;return u&&u.length?C.createElement(gS,{zIndex:null!=l?l:a0.label},C.createElement(h2,{className:"recharts-label-list"},u.map((e,t)=>{var l,c=null==a?n(e,t):rC(e.payload,a),p=null==i?{}:{id:"".concat(i,"-").concat(t)};return C.createElement(gK,gY({key:"label-".concat(t)},hn(e),s,p,{fill:null!=(l=r.fill)?l:e.fill,parentViewBox:e.parentViewBox,value:c,textBreakAll:o,viewBox:e.viewBox,index:t,zIndex:0}))}))):null}function g1(e){var t=e.label;return t?!0===t?C.createElement(g0,{key:"labelList-implicit"}):C.isValidElement(t)||gH(t)?C.createElement(g0,{key:"labelList-implicit",content:t}):"object"==typeof t?C.createElement(g0,gY({key:"labelList-implicit"},t,{type:String(t.type)})):null:null}gJ.Provider,g0.displayName="LabelList";var g2=e.i(79684),g6=e=>"string"==typeof e?e:e?e.displayName||e.name||"Component":"",g4=null,g9=null,g3=e=>{if(e===g4&&Array.isArray(g9))return g9;var t=[];
1return C.Children.forEach(e,e=>{null==e||((0,g2.isFragment)(e)?t=t.concat(g3(e.props.children)):t.push(e))}),g9=t,g4=e,t},g5=e=>!e||"object"!=typeof e||!("clipDot"in e)||!!e.clipDot,g7=e=>"radius"in e&&"startAngle"in e&&"endAngle"in e,g8=(e,t)=>{if(!e||"function"==typeof e||"boolean"==typeof e)return null;var n=e;if((0,C.isValidElement)(e)&&(n=e.props),"object"!=typeof n&&"function"!=typeof n)return null;var r={};return Object.keys(n).forEach(e=>{f3(e)&&"function"==typeof n[e]&&(r[e]=t||(t=>n[e](n,t)))}),r},ye=(e,t,n)=>{if(null===e||"object"!=typeof e&&"function"!=typeof e)return null;var r=null;return Object.keys(e).forEach(a=>{var i=e[a];f3(a)&&"function"==typeof i&&(r||(r={}),r[a]=e=>(i(t,n,e),null))}),r},yt=(e,t)=>[0,3*e,3*t-6*e,3*e-3*t+1],yn=(e,t)=>e.map((e,n)=>e*t**n).reduce((e,t)=>e+t),yr=(e,t)=>n=>yn(yt(e,t),n),ya=function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];if(1===t.length)switch(t[0]){case"linear":return[0,0,1,1];case"ease":return[.25,.1,.25,1];case"ease-in":return[.42,0,1,1];case"ease-out":return[.42,0,.58,1];case"ease-in-out":return[0,0,.58,1];default:var r=(e=>{var t,n=e.split("(");if(2!==n.length||"cubic-bezier"!==n[0])return null;var r=null==(t=n[1])||null==(t=t.split(")")[0])?void 0:t.split(",");if(null==r||4!==r.length)return null;var a=r.map(e=>parseFloat(e));return[a[0],a[1],a[2],a[3]]})(t[0]);if(r)return r}return 4===t.length?t:[0,0,1,1]},yi=function(){return((e,t,n,r)=>{var a=yr(e,n),i=yr(t,r),o=t=>yn([...yt(e,n).map((e,t)=>e*t).slice(1),0],t),l=e=>e>1?1:e<0?0:e,s=e=>{for(var t=e>1?1:e,n=t,r=0;r<8;++r){var s=a(n)-t,c=o(n);if(1e-4>Math.abs(s-t)||c<1e-4)break;n=l(n-s/c)}return i(n)};return s.isStepper=!1,s})(...ya(...arguments))},yo=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.stiff,n=void 0===t?100:t,r=e.damping,a=void 0===r?8:r,i=e.dt,o=void 0===i?16.67:i,l=[0],s=0,c=0,p=0;p<1e4;){var u=c*a;if(c+=(-(s-1)*n-u)*o/1e3,s+=c*o/1e3,l.push(s),1e-4>Math.abs(s-1)&&1e-4>Math.abs(c))break;p++}l[l.length-1]=1;var d=l.length-1;return e=>{if(e<=0)return 0;if(e>=1)return 1;var t,n,r,a=e*d,i=Math.floor(a);return(null!=(t=l[i])?t:0)+((null!=(n=l[i+1])?n:0)-(null!=(r=l[i])?r:0))*(a-i)}},yl=(0,C.createContext)((e,t,n)=>{var r,a=i=>{var o=t.tick(i);if("active"===t.getState()){if(n(t.getInterpolated()),1===t.getProgress()){t.complete(),r=void 0;return}r=e.setTimeout(a,o);return}r=e.setTimeout(a,o)};return r=e.setTimeout(a,0),()=>{var e;return null==(e=r)?void 0:e()}});function ys(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function yc(){var e,t=function(e){if(Array.isArray(e))return e}(e=(0,C.useState)(()=>!fD.isSsr&&!!window.matchMedia&&window.matchMedia("(prefers-reduced-motion: reduce)").matches))||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],s=!0,c=!1;try{i=(n=n.call(e)).next,!1;for(;!(s=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);s=!0);}catch(e){c=!0,a=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return l}}(e,2)||function(e,t){if(e){if("string"==typeof e)return ys(e,2);var n=({}).toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ys(e,t):void 0}}(e,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),n=t[0],r=t[1];return(0,C.useEffect)(()=>{if(window.matchMedia){var e=window.matchMedia("(prefers-reduced-motion: reduce)"),t=()=>{r(e.matches)};return e.addEventListener("change",t),()=>{e.removeEventListener("change",t)}}},[]),n}yl.Provider;var yp="init",yu="pending",yd="active";function yf(e){return Math.max(0,e)}class yh{getAnimationStartedTime(){return this.animationStartedTime}getBeginStartedTime(){return this.beginStartedTime}getState(){return this.state}getEasing(){return this.easing}getAnimationDuration(){return this.animationDuration}tick(e){if(this.getState()===yp)return this.state=yu,this.beginStartedTime=e,this.animationBegin;if(this.getState()===yu){if(null==this.beginStartedTime)throw Error();var t=e-this.beginStartedTime;return t>=this.animationBegin?(this.state=yd,this.animationStartedTime=e,this.nextAnimationUpdate(0)):yf(this.animationBegin-t)}if(this.getState()===yd){if(null==this.animationStartedTime)throw Error();var n=e-this.animationStartedTime;return this.setProgress(n/this.animationDuration),this.nextAnimationUpdate(n)}return 0}setProgress(e){this.progress=Math.min(1,Math.max(0,e))}getProgress(){return this.progress}complete(){if(this.progress=1,"active"===this.state){var e;null==(e=this.onAnimationEnd)||e.call(this)}this.state="completed"}getFrom(){return this.from}getTo(){return this.to}getAnimationId(){return this.animationId}getAnimationBegin(){return this.animationBegin}constructor(e){var t;!function(e,t,n){var r;(t="symbol"==typeof(r=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(t,"string"))?r:r+"")in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}(this,"state",yp),this.animationId=e.animationId,this.onAnimationEnd=e.onAnimationEnd,this.animationDuration=yf(e.animationDuration),this.animationBegin=yf(e.animationBegin),this.progress=0,this.from=e.from,this.to=e.to,this.easing=e.easing,null==(t=e.onAnimationStart)||t.call(e)}}class yg extends yh{nextAnimationUpdate(){return 0}getInterpolated(){return this.easing(t0(this.getFrom(),this.getTo(),this.getProgress()))}}class yy{setTimeout(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=performance.now(),r=null,a=i=>{i-n>=t?e(i):r=requestAnimationFrame(a)};return r=requestAnimationFrame(a),()=>{null!=r&&cancelAnimationFrame(r)}}}function ym(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var yx={begin:0,duration:1e3,easing:"ease",isActive:!0,canBegin:!0,onAnimationEnd:()=>{},onAnimationStart:()=>{}};function yv(e){var t,n,r,a=hV(e,yx),i=a.animationId,o=a.isActive,l=a.canBegin,s=a.duration,c=a.easing,p=a.begin,u=a.onAnimationEnd,d=a.onAnimationStart,f=a.children,h=yc(),g="auto"===o?!fD.isSsr&&!h:o,y=(t=a.animationController,n=(0,C.useContext)(yl),(0,C.useMemo)(()=>null!=t?t:n,[t,n])),m=function(e){if(Array.isArray(e))return e}(r=(0,C.useState)(+!g))||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],s=!0,c=!1;try{i=(n=n.call(e)).next,!1;for(;!(s=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);s=!0);}catch(e){c=!0,a=e}
1finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return l}}(r,2)||function(e,t){if(e){if("string"==typeof e)return ym(e,2);var n=({}).toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ym(e,t):void 0}}(r,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),x=m[0],v=m[1];return(0,C.useEffect)(()=>{g||v(1)},[g]),(0,C.useEffect)(()=>{var e=(e=>{if("string"==typeof e)switch(e){case"ease":case"ease-in-out":case"ease-out":case"ease-in":case"linear":return yi(e);case"spring":return yo();default:if("cubic-bezier"===e.split("(")[0])return yi(e)}return"function"==typeof e?e:null})(c);return g&&l&&null!=e?y(new yy,new yg({animationId:i,easing:e,animationDuration:s,animationBegin:p,onAnimationStart:d,onAnimationEnd:u,from:0,to:1}),v):t4},[y,i,g,l,s,c,p,d,u]),f(Number(x))}function yb(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"animation-",n=(0,C.useRef)(tZ(t)),r=(0,C.useRef)(e);return r.current!==e&&(n.current=tZ(t),r.current=e),n.current}var yw=["radius"],yk=["radius"];function yA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function y_(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?yA(Object(n),!0).forEach(function(t){var r,a,i;r=e,a=t,i=n[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):yA(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function yE(){return(yE=Object.assign.bind()).apply(null,arguments)}function yj(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n={};for(var r in e)if(({}).hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],-1===t.indexOf(n)&&({}).propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function yO(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function yC(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var yD=(e,t,n,r,a)=>{var i=tq(n),o=tq(r),l=Math.min(Math.abs(i)/2,Math.abs(o)/2),s=o>=0?1:-1,v=i>=0?1:-1,b=+(o>=0&&i>=0||o<0&&i<0);if(l>0&&Array.isArray(a)){for(var w=[0,0,0,0],k=0;k<4;k++){var A,_,E=null!=(_=a[k])?_:0;w[k]=E>l?l:E}A=tK(c||(c=yC(["M",",",""])),e,t+s*w[0]),w[0]>0&&(A+=tK(p||(p=yC(["A ",",",",0,0,",",",",",""])),w[0],w[0],b,e+v*w[0],t)),A+=tK(u||(u=yC(["L ",",",""])),e+n-v*w[1],t),w[1]>0&&(A+=tK(d||(d=yC(["A ",",",",0,0,",",\n ",",",""])),w[1],w[1],b,e+n,t+s*w[1])),A+=tK(f||(f=yC(["L ",",",""])),e+n,t+r-s*w[2]),w[2]>0&&(A+=tK(h||(h=yC(["A ",",",",0,0,",",\n ",",",""])),w[2],w[2],b,e+n-v*w[2],t+r)),A+=tK(g||(g=yC(["L ",",",""])),e+v*w[3],t+r),w[3]>0&&(A+=tK(y||(y=yC(["A ",",",",0,0,",",\n ",",",""])),w[3],w[3],b,e,t+r-s*w[3])),A+="Z"}else if(l>0&&a===+a&&a>0){var j=Math.min(l,a);A=tK(m||(m=yC(["M ",",","\n A ",",",",0,0,",",",",","\n L ",",","\n A ",",",",0,0,",",",",","\n L ",",","\n A ",",",",0,0,",",",",","\n L ",",","\n A ",",",",0,0,",",",","," Z"])),e,t+s*j,j,j,b,e+v*j,t,e+n-v*j,t,j,j,b,e+n,t+s*j,e+n,t+r-s*j,j,j,b,e+n-v*j,t+r,e+v*j,t+r,j,j,b,e,t+r-s*j)}else A=tK(x||(x=yC(["M ",","," h "," v "," h "," Z"])),e,t,n,r,-n);return A},yS={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},yP=e=>{let t,n;var r=hV(e,yS),a=(0,C.useRef)(null),i=function(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],s=!0,c=!1;try{i=(n=n.call(e)).next,!1;for(;!(s=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);s=!0);}catch(e){c=!0,a=e}
1finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return l}}(e,2)||function(e,t){if(e){if("string"==typeof e)return yO(e,t);var n=({}).toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?yO(e,t):void 0}}(e,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}((0,C.useState)(-1),2),o=i[0],l=i[1];(0,C.useEffect)(()=>{if(a.current&&a.current.getTotalLength)try{var e=a.current.getTotalLength();e&&l(e)}catch(e){}},[]);var s=r.x,c=r.y,p=r.width,u=r.height,d=r.radius,f=r.className,h=r.animationEasing,g=r.animationDuration,y=r.animationBegin,m=r.isAnimationActive,x=r.isUpdateAnimationActive,v=(0,C.useRef)(p),b=(0,C.useRef)(u),w=(0,C.useRef)(s),k=(0,C.useRef)(c),A=yb((0,C.useMemo)(()=>({x:s,y:c,width:p,height:u,radius:d}),[s,c,p,u,d]),"rectangle-");if(s!==+s||c!==+c||p!==+p||u!==+u||0===p||0===u)return null;var _=r1("recharts-rectangle",f);if(!x){var E=hn(r),j=(E.radius,yj(E,yw));return C.createElement("path",yE({},j,{x:tq(s),y:tq(c),width:tq(p),height:tq(u),radius:"number"==typeof d?d:void 0,className:_,d:yD(s,c,p,u,d)}))}var O=v.current,D=b.current,S=w.current,P=k.current,I="0px ".concat(-1===o?1:o,"px"),M="".concat(o,"px ").concat(o,"px"),T=(t=["strokeDasharray"],n="string"==typeof h?h:yS.animationEasing,t.map(e=>"".concat(e.replace(/([A-Z])/g,e=>"-".concat(e.toLowerCase()))," ").concat(g,"ms ").concat(n)).join(","));return C.createElement(yv,{animationId:A,key:A,canBegin:o>0,duration:g,easing:h,isActive:x,begin:y},e=>{var t,n=t0(O,p,e),i=t0(D,u,e),o=t0(S,s,e),l=t0(P,c,e);a.current&&(v.current=n,b.current=i,w.current=o,k.current=l),t=m?e>0?{transition:T,strokeDasharray:M}:{strokeDasharray:I}:{strokeDasharray:M};var f=hn(r),h=(f.radius,yj(f,yk));return C.createElement("path",yE({},h,{radius:"number"==typeof d?d:void 0,className:_,d:yD(o,l,n,i,d),ref:a,style:y_(y_({},t),r.style)}))})};function yI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function yM(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?yI(Object(n),!0).forEach(function(t){var r,a,i;r=e,a=t,i=n[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):yI(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function yT(e){var t,n,r=e.option,a=e.DefaultShape,i=e.shapeProps,o=e.activeClassName,l=e.inActiveClassName,s=function(e){if("index"in e){var t=e.index;return"number"==typeof t||"string"==typeof t?t:void 0}}(i);return n=(0,C.isValidElement)(r)?(0,C.cloneElement)(r,(t=(0,C.isValidElement)(r)?r.props:r,yM(yM({},i),t))):r===a?C.createElement(a,i):"function"==typeof r?r(i,s):"object"==typeof r?C.createElement(a,yM(yM({},i),r)):C.createElement(a,i),"isActive"in i&&!0===i.isActive?C.createElement(h2,{className:void 0===o?"recharts-active-shape":o},n):C.createElement(h2,{className:void 0===l?"recharts-shape":l},n)}var yN=["option"];function yz(e){var t=e.option,n=function(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n={};for(var r in e)if(({}).hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],-1===t.indexOf(n)&&({}).propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}(e,yN);return C.createElement(yT,{option:t,DefaultShape:yP,shapeProps:n,activeClassName:"recharts-active-bar",inActiveClassName:"recharts-inactive-bar"})}var yL=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(n,r)=>{if(tY(e))return e;var a=tY(n)||null==n;return a?e(n,r):(a||function(e,t){if(!e)throw Error("Invariant failed")}(!1,"minPointSize callback function received a value with type of ".concat(typeof n,". Currently only numbers or null/undefined are supported.")),t)}},yR=(e,t,n)=>{var r=n3();return(a,i)=>o=>{null==e||e(a,i,o),r(nm({activeIndex:String(i),activeDataKey:t,activeCoordinate:a.tooltipPosition,activeGraphicalItemId:n}))}},yB=e=>{var t=n3();return(n,r)=>a=>{null==e||e(n,r,a),t(nx())}},yF=(e,t,n)=>{var r=n3();return(a,i)=>o=>{null==e||e(a,i,o),r(nb({activeIndex:String(i),activeDataKey:t,activeCoordinate:a.tooltipPosition,activeGraphicalItemId:n}))}};function yH(e){var t=e.tooltipEntrySettings,n=n3(),r=rQ(),a=(0,C.useRef)(null);return(0,C.useLayoutEffect)(()=>{r||(null===a.current?n(nf(t)):a.current!==t&&n(nh({prev:a.current,next:t})),a.current=t)},[t,n,r]),(0,C.useLayoutEffect)(()=>()=>{a.current&&(n(ng(a.current)),a.current=null)},[n]),null}function yU(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var yq=null!=(v=C["useId".toString()])?v:()=>(function(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],s=!0,c=!1;try{i=(n=n.call(e)).next,!1;for(;!(s=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);s=!0);}catch(e){c=!0,a=e}
1finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return l}}(e,1)||function(e,t){if(e){if("string"==typeof e)return yU(e,t);var n=({}).toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?yU(e,t):void 0}}(e,1)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()})(C.useState(()=>tZ("uid-")),1)[0],yK=(0,C.createContext)(void 0),yW=e=>{var t=e.id,n=e.type,r=e.children,a=function(e,t){var n=yq();return t||(e?"".concat(e,"-").concat(n):n)}("recharts-".concat(n),t);return C.createElement(yK.Provider,{value:a},r(a))},yV=["children"],yG=(0,C.createContext)({data:[],xAxisId:"xAxis-0",yAxisId:"yAxis-0",dataPointFormatter:()=>({x:0,y:0,value:0}),errorBarOffset:0});function yY(e){var t=e.children,n=function(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n={};for(var r in e)if(({}).hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],-1===t.indexOf(n)&&({}).propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}(e,yV);return C.createElement(yG.Provider,{value:n},t)}function y$(e,t){var n,r,a=re(t=>ck(t,e)),i=re(e=>cE(e,t)),o=null!=(n=null==a?void 0:a.allowDataOverflow)?n:cb.allowDataOverflow,l=null!=(r=null==i?void 0:i.allowDataOverflow)?r:cA.allowDataOverflow;return{needClip:o||l,needClipX:o,needClipY:l}}function yX(e){var t=e.xAxisId,n=e.yAxisId,r=e.clipPathId,a=hB(),i=y$(t,n),o=i.needClipX,l=i.needClipY,s=i.needClip,c=re(e=>pM(e,t,!1)),p=re(e=>pT(e,n,!1));if(!s||!a)return null;var u=a.x,d=a.y,f=a.width,h=a.height,g=o&&c?Math.min(c[0],c[1]):u-f/2,y=l&&p?Math.min(p[0],p[1]):d-h/2,m=o&&c?Math.abs(c[1]-c[0]):2*f,x=l&&p?Math.abs(p[1]-p[0]):2*h;return C.createElement("clipPath",{id:"clipPath-".concat(r)},C.createElement("rect",{x:g,y:y,width:m,height:x}))}function yZ(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var yQ=(e,t,n)=>{var r=null!=n?n:e;if(null!=r)return tQ(r,t,0)};function yJ(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function y0(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?yJ(Object(n),!0).forEach(function(t){var r,a,i;r=e,a=t,i=n[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):yJ(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function y1(e,t){var n,r;return null!=(n=null==(r=e.graphicalItems.cartesianItems.find(e=>e.id===t))?void 0:r.xAxisId)?n:0}function y2(e,t){var n,r;return null!=(n=null==(r=e.graphicalItems.cartesianItems.find(e=>e.id===t))?void 0:r.yAxisId)?n:0}var y6=n1([cI,(e,t)=>t],(e,t)=>e.filter(e=>"bar"===e.type).find(e=>e.id===t)),y4=n1([y6],e=>null==e?void 0:e.maxBarSize),y9=n1([ah,cI,y1,y2,(e,t,n)=>n],(e,t,n,r,a)=>t.filter(t=>"horizontal"===e?t.xAxisId===n:t.yAxisId===r).filter(e=>e.isPanorama===a).filter(e=>!1===e.hide).filter(e=>"bar"===e.type)),y3=n1([y9,e=>e.rootProps.barSize,(e,t)=>{var n=ah(e),r=y1(e,t),a=y2(e,t);if(null!=r&&null!=a)return"horizontal"===n?p0(e,"xAxis",r):p0(e,"yAxis",a)}],(e,t,n)=>{var r=e.filter(ih),a=e.filter(e=>null==e.stackId);return[...Object.entries(r.reduce((e,t)=>{var n=e[t.stackId];return null==n&&(n=[]),n.push(t),e[t.stackId]=n,e},{})).map(e=>{var r,a=function(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],s=!0,c=!1;try{i=(n=n.call(e)).next,!1;for(;!(s=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);s=!0);}catch(e){c=!0,a=e}
1finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return l}}(e,2)||function(e,t){if(e){if("string"==typeof e)return yZ(e,t);var n=({}).toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?yZ(e,t):void 0}}(e,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(e,2),i=a[0],o=a[1];return{stackId:i,dataKeys:o.map(e=>e.dataKey),barSize:yQ(t,n,null==(r=o[0])?void 0:r.barSize)}}),...a.map(e=>({stackId:void 0,dataKeys:[e.dataKey].filter(e=>null!=e),barSize:yQ(t,n,e.barSize)}))]}),y5=(e,t,n)=>{var r,a,i=ah(e),o=y1(e,t),l=y2(e,t);if(null!=o&&null!=l)return"horizontal"===i?(r=p3(e,"xAxis",o,n),a=p9(e,"xAxis",o,n)):(r=p3(e,"yAxis",l,n),a=p9(e,"yAxis",l,n)),rL(r,a)},y7=n1([y3,aU,e=>e.rootProps.barGap,aq,(e,t,n)=>{var r,a,i,o,l=y6(e,t);if(null==l)return 0;var s=y1(e,t),c=y2(e,t);if(null==s||null==c)return 0;var p=ah(e),u=aU(e),d=l.maxBarSize,f=null==d?u:d;return"horizontal"===p?(i=p3(e,"xAxis",s,n),o=p9(e,"xAxis",s,n)):(i=p3(e,"yAxis",c,n),o=p9(e,"yAxis",c,n)),null!=(r=null!=(a=rL(i,o,!0))?a:f)?r:0},y5,y4],(e,t,n,r,a,i,o)=>{var l=function(e,t,n,r,a){var i,o,l=r.length;if(!(l<1)){var s=tQ(e,n,0,!0),c=[];if(rb(null==(i=r[0])?void 0:i.barSize)){var p=!1,u=n/l,d=r.reduce((e,t)=>e+(t.barSize||0),0);(d+=(l-1)*s)>=n&&(d-=(l-1)*s,s=0),d>=n&&u>0&&(p=!0,u*=.9,d=l*u);var f={offset:Math.round((n-d)/2)-s,size:0};o=r.reduce((e,t)=>{var n,r={stackId:t.stackId,dataKeys:t.dataKeys,position:{offset:f.offset+f.size+s,size:p?u:null!=(n=t.barSize)?n:0}},a=[...e,r];return f=r.position,a},c)}else{var h=tQ(t,n,0,!0);n-2*h-(l-1)*s<=0&&(s=0);var g=(n-2*h-(l-1)*s)/l;g>1&&(g=Math.round(g));var y=rb(a)?Math.min(g,a):g;o=r.reduce((e,t,n)=>[...e,{stackId:t.stackId,dataKeys:t.dataKeys,position:{offset:h+l*(g-y)/2+(y+s)*n,size:y}}],c)}return o}}(n,r,a!==i?a:i,e,null==o?t:o);return a!==i&&null!=l&&(l=l.map(e=>y0(y0({},e),{},{position:y0(y0({},e.position),{},{offset:e.position.offset-a/2})}))),l}),y8=n1([y7,y6],(e,t)=>{if(null!=e&&null!=t){var n=e.find(e=>e.stackId===t.stackId&&null!=t.dataKey&&e.dataKeys.includes(t.dataKey));if(null!=n)return n.position}}),me=n1([(e,t,n)=>{var r=ah(e),a=y1(e,t),i=y2(e,t);if(null!=a&&null!=i)return"horizontal"===r?c2(e,"yAxis",i,n):c2(e,"xAxis",a,n)},y6],(e,t)=>{var n=iu(t);if(!e||null==n||null==t)return;var r=t.stackId;if(null!=r){var a=e[r];if(a){var i=a.stackedData;if(i)return i.find(e=>e.key===n)}}}),mt=n1([rY,rX,(e,t,n)=>{var r=y1(e,t);if(null!=r)return p3(e,"xAxis",r,n)},(e,t,n)=>{var r=y2(e,t);if(null!=r)return p3(e,"yAxis",r,n)},(e,t,n)=>{var r=y1(e,t);if(null!=r)return p9(e,"xAxis",r,n)},(e,t,n)=>{var r=y2(e,t);if(null!=r)return p9(e,"yAxis",r,n)},y8,ah,(e,t,n)=>n?ak(e):aw(e),y5,me,y6,(e,t,n,r)=>r],(e,t,n,r,a,i,o,l,s,c,p,u,d)=>{var f,h=s.chartData,g=s.dataStartIndex,y=s.dataEndIndex;if(null!=u&&null!=o&&null!=t&&("horizontal"===l||"vertical"===l)&&null!=n&&null!=r&&null!=a&&null!=i&&null!=c){var m=u.data;if(null!=(f=null!=m&&m.length>0?m:null==h?void 0:h.slice(g,y+1)))return function(e){var t=e.layout,n=e.barSettings,r=n.dataKey,a=n.minPointSize,i=n.hasCustomShape,o=e.pos,l=e.bandSize,s=e.xAxis,c=e.yAxis,p=e.xAxisTicks,u=e.yAxisTicks,d=e.stackedData,f=e.displayedData,h=e.offset,g=e.cells,y=e.parentViewBox,m=e.dataStartIndex,x="horizontal"===t?c:s,v=d?x.scale.domain():null,b=(e=>{var t=e.numericAxis,n=t.scale.domain();if("number"===t.type){var r=Math.min(n[0],n[1]),a=Math.max(n[0],n[1]);return r<=0&&a>=0?0:a<0?a:r}return n[0]})({numericAxis:x}),w=x.scale.map(b);return f.map((e,n)=>{if(d){var f=d[n+m];if(null==f)return null;k=((e,t)=>{if(!t||2!==t.length||!tY(t[0])||!tY(t[1]))return e;var n=Math.min(t[0],t[1]),r=Math.max(t[0],t[1]),a=[e[0],e[1]];return(!tY(e[0])||e[0]<n)&&(a[0]=n),(!tY(e[1])||e[1]>r)&&(a[1]=r),a[0]>r&&(a[0]=r),a[1]<n&&(a[1]=n),a})(f,v)}else Array.isArray(k=rC(e,r))||(k=[b,k]);var x=yL(a,0)(k[1],n);if("horizontal"===t){var k,A,_,E,j,O,C,D=c.scale.map(k[0]),S=c.scale.map(k[1]);if(null==D||null==S)return null;A=rT({axis:s,ticks:p,bandSize:l,offset:o.offset,entry:e,index:n}),_=null!=(C=null!=S?S:D)?C:void 0,E=o.size;var P=D-S;if(j=tV(P)?0:P,O={x:A,y:h.top,width:E,height:h.height},Math.abs(x)>0&&Math.abs(j)<Math.abs(x)){var I=tW(j||x)*(Math.abs(x)-Math.abs(j));_-=I,j+=I}}else{var M=s.scale.map(k[0]),T=s.scale.map(k[1]);if(null==M||null==T)return null;if(A=M,_=rT({axis:c,ticks:u,bandSize:l,offset:o.offset,entry:e,index:n}),E=T-M,j=o.size,O={x:h.left,y:_,width:h.width,height:j},Math.abs(x)>0&&Math.abs(E)<Math.abs(x)){var N=tW(E||x)*(Math.abs(x)-Math.abs(E));E+=N}}return null!=A&&null!=_&&null!=E&&null!=j&&(i||0!==E&&0!==j)?mD(mD({},e),{},{stackedBarStart:w,x:A,y:_,width:E,height:j,value:d?k:k[1],payload:e,background:O,tooltipPosition:{x:A+E/2,y:_+j/2},parentViewBox:y,originalDataIndex:n},g&&g[n]&&g[n].props):null}
1).filter(Boolean)}({layout:l,barSettings:u,pos:o,parentViewBox:t,bandSize:c,xAxis:n,yAxis:r,xAxisTicks:a,yAxisTicks:i,stackedData:p,displayedData:f,offset:e,cells:d,dataStartIndex:g})}});function mn(e){var t=e.legendPayload,n=n3(),r=rQ(),a=(0,C.useRef)(null);return(0,C.useLayoutEffect)(()=>{r||(null===a.current?n(d2(t)):a.current!==t&&n(d6({prev:a.current,next:t})),a.current=t)},[n,r,t]),(0,C.useLayoutEffect)(()=>()=>{a.current&&(n(d4(a.current)),a.current=null)},[n]),null}var mr=(0,C.memo)(e=>{var t=n3(),n=(0,C.useRef)(null);return(0,C.useLayoutEffect)(()=>{null===n.current?t(dK(e)):n.current!==e&&t(dW({prev:n.current,next:e})),n.current=e},[t,e]),(0,C.useLayoutEffect)(()=>()=>{n.current&&(t(dV(n.current)),n.current=null)},[t]),null});function ma(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var mi="index",mo="append";function ml(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=[];for(var a of n)r.push({status:"removed",prev:a});for(var i=0;i<t.length;i++){var o=e[i],l=t[i];null!=o?r.push({status:"matched",prev:o,next:l}):r.push({status:"added",next:l})}return r}function ms(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function mc(e,t){var n,r=function(e){if(Array.isArray(e))return e}(n=(0,C.useState)(!1))||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],s=!0,c=!1;try{i=(n=n.call(e)).next,!1;for(;!(s=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);s=!0);}catch(e){c=!0,a=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return l}}(n,2)||function(e,t){if(e){if("string"==typeof e)return ms(e,2);var n=({}).toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ms(e,t):void 0}}(n,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),a=r[0],i=r[1];return{isAnimating:a,handleAnimationStart:(0,C.useCallback)(()=>{"function"==typeof e&&e(),i(!0)},[e]),handleAnimationEnd:(0,C.useCallback)(()=>{"function"==typeof t&&t(),i(!1)},[t])}}function mp(e){var t,n,r,a,i,o=e.animationInput,l=e.animationIdPrefix,s=e.items,c=e.previousItemsRef,p=e.isAnimationActive,u=e.animationBegin,d=e.animationDuration,f=e.animationEasing,h=e.onAnimationStart,g=e.onAnimationEnd,y=e.animationInterpolateFn,m=e.animationMatchBy,x=e.shouldUpdatePreviousRef,v=e.children,b=e.layout,w=yb(o,l),k=(t=(0,C.useRef)(w),n=(0,C.useRef)(c.current),r=(0,C.useRef)(!0),t.current!==w&&(t.current=w,n.current=c.current,r.current=!1),a=(0,C.useCallback)(function(e,t){var a=!(arguments.length>2)||void 0===arguments[2]||arguments[2];if(0===t){r.current=!0;return}1===t&&(n.current=e),t>0&&r.current&&a&&(c.current=e)},[c]),{startValue:n.current,syncStepValue:a}),A=null!=(i=k.startValue)?i:null,_=function(e,t,n){var r;return null==t?null:null==e?t.map(e=>({status:"added",next:e})):n===mi?(r=e.length/t.length,ml(t.map((t,n)=>e[Math.floor(n*r)]),t)):n===mo?ml(t.map((t,n)=>e[n]),t):function(e,t,n){var r=function(e,t){for(var n=new Map,r=0;r<e.length;r++){var a=e[r];if(null!=a){var i=t(a,r);null==i||n.has(i)||n.set(i,a)}}return n}(e,n),a=new Set,i=t.map((e,t)=>{var i=n(e,t);if(null!=i){var o=r.get(i);if(void 0!==o)return a.add(i),o}}),o=[];for(var l of r){var s=function(e){if(Array.isArray(e))return e}(l)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],s=!0,c=!1;try{i=(n=n.call(e)).next,!1;for(;!(s=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);s=!0);}catch(e){c=!0,a=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return l}}(l,2)||function(e,t){if(e){if("string"==typeof e)return ma(e,2);var n=({}).toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ma(e,t):void 0}}
1(l,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),c=s[0],p=s[1];a.has(c)||o.push(p)}return ml(i,t,o)}(e,t,n)}(A,s,null!=m?m:mi);return C.createElement(yv,{animationId:w,begin:u,duration:d,isActive:p,easing:f,onAnimationEnd:g,onAnimationStart:h,key:w},e=>{var t=null==s?s:y(_,e,b),n=x?x(e):e>0;return(k.syncStepValue(t,e,n),null==t)?null:v(t,e,null==A)})}var mu=(e,t)=>t,md=(e,t,n)=>n,mf=n1([mu,cI,md],(e,t,n)=>t.filter(e=>"bar"===e.type).filter(t=>t.stackId===e).filter(e=>e.isPanorama===n).filter(e=>!e.hide)),mh=n1([mf],e=>e.map(e=>e.id)),mg=n1([e=>e,mu,md],(e,t,n)=>{var r=mh(e,t,n),a=[];return r.forEach(t=>{var r=mt(e,t,n,void 0);null==r||r.forEach(e=>{var t=e.originalDataIndex;a[t]=((e,t)=>{if(!e)return t;if(!t)return e;var n=Math.min(e.x,e.x+e.width,t.x,t.x+t.width),r=Math.min(e.y,e.y+e.height,t.y,t.y+t.height);return{x:n,y:r,width:Math.max(e.x,e.x+e.width,t.x,t.x+t.width)-n,height:Math.max(e.y,e.y+e.height,t.y,t.y+t.height)-r}})(a[t],e)})}),a}),my=["index"];function mm(){return(mm=Object.assign.bind()).apply(null,arguments)}var mx=(0,C.createContext)(void 0),mv=(e,t)=>"recharts-bar-stack-clip-path-".concat(e,"-").concat(t),mb=e=>{var t=e.index,n=function(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n={};for(var r in e)if(({}).hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],-1===t.indexOf(n)&&({}).propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}(e,my),r=(e=>{var t=(0,C.useContext)(mx);if(null!=t){var n=t.stackId;return"url(#".concat(mv(n,e),")")}})(t);return C.createElement(h2,mm({className:"recharts-bar-stack-layer",clipPath:r},n))},mw=["onMouseEnter","onMouseLeave","onClick"],mk=["value","background","tooltipPosition"],mA=["id"],m_=["onMouseEnter","onClick","onMouseLeave"];function mE(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);s=!0);}catch(e){c=!0,a=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return mj(e,t);var n=({}).toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?mj(e,t):void 0}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function mj(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function mO(){return(mO=Object.assign.bind()).apply(null,arguments)}function mC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function mD(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?mC(Object(n),!0).forEach(function(t){var r,a,i;r=e,a=t,i=n[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):mC(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function mS(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n={};for(var r in e)if(({}).hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],-1===t.indexOf(n)&&({}).propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var mP=hJ.memo(e=>{var t=e.dataKey,n=e.stroke,r=e.strokeWidth,a=e.fill,i=e.name,o=e.hide,l=e.unit,s=e.formatter,c=e.tooltipType,p=e.id,u={dataDefinedOnItem:void 0,getPosition:t4,settings:{stroke:n,strokeWidth:r,fill:a,dataKey:t,nameKey:void 0,name:rB(i,t),hide:o,type:c,color:a,unit:l,formatter:s,graphicalItemId:p}};return hJ.createElement(yH,{tooltipEntrySettings:u})});
vendor: 5,606 bytes, line 1
1function mI(e){var t,n=re(u6),r=e.data,a=e.dataKey,i=e.background,o=e.allOtherBarProps,l=o.onMouseEnter,s=o.onMouseLeave,c=o.onClick,p=mS(o,mw),u=yR(l,a,o.id),d=yB(s),f=yF(c,a,o.id);if(!i||null==r)return null;var h=ht(i);return hJ.createElement(gS,{zIndex:(t=a0.barBackground,i&&"object"==typeof i&&"zIndex"in i&&"number"==typeof i.zIndex&&rb(i.zIndex)?i.zIndex:t)},r.map((e,t)=>{e.value;var r=e.background,o=(e.tooltipPosition,mS(e,mk));if(!r)return null;var l=u(e,e.originalDataIndex),s=d(e,e.originalDataIndex),c=f(e,e.originalDataIndex),g=mD(mD(mD(mD(mD({option:i,isActive:String(e.originalDataIndex)===n},o),{},{fill:"#eee"},r),h),ye(p,e,t)),{},{onMouseEnter:l,onMouseLeave:s,onClick:c,dataKey:a,index:t,className:"recharts-bar-background-rectangle"});return hJ.createElement(yz,mO({key:"background-bar-".concat(t)},g))}))}function mM(e){var t=e.showLabels,n=e.children,r=e.rects,a=null==r?void 0:r.map(e=>{var t={x:e.x,y:e.y,width:e.width,lowerWidth:e.width,upperWidth:e.width,height:e.height};return mD(mD({},t),{},{value:e.value,payload:e.payload,parentViewBox:e.parentViewBox,viewBox:t,fill:e.fill})});return hJ.createElement(gQ,{value:t?a:void 0},n)}function mT(e){var t,n=e.shape,r=e.activeBar,a=e.baseProps,i=e.entry,o=e.index,l=e.dataKey,s=re(u6),c=re(u9),p=r&&String(i.originalDataIndex)===s&&(null==c||l===c),u=null!=s&&(String(i.originalDataIndex)!==s||null!=c&&l!==c),d=mE((0,hJ.useState)(!1),2),f=d[0],h=d[1],g=mE((0,hJ.useState)(!1),2),y=g[0],m=g[1];(0,hJ.useEffect)(()=>{var e;return p?(h(!0),e=requestAnimationFrame(()=>{m(!0)})):(m(!1),u&&h(!1)),()=>{cancelAnimationFrame(e)}},[p,u]);var x=(0,hJ.useCallback)(()=>{p||h(!1)},[p]),v=p&&y,b=p||f;t=p?!0===r?n:r:n;var w=hJ.createElement(yz,mO({},a,{name:String(a.name)},i,{isActive:v,option:t,index:o,dataKey:l,animationElapsedTime:e.animationElapsedTime,isAnimating:e.isAnimating,isEntrance:e.isEntrance,onTransitionEnd:x}));return b?hJ.createElement(gS,{zIndex:a0.activeBar},hJ.createElement(mb,{index:i.originalDataIndex},w)):w}function mN(e){var t=e.shape,n=e.baseProps,r=e.entry,a=e.index,i=e.dataKey;return hJ.createElement(yz,mO({},n,{name:String(n.name)},r,{isActive:!1,option:t,index:a,dataKey:i,animationElapsedTime:e.animationElapsedTime,isAnimating:e.isAnimating,isEntrance:e.isEntrance}))}function mz(e){var t,n=e.data,r=e.props,a=e.animationElapsedTime,i=e.isAnimating,o=e.isEntrance,l=null!=(t=he(r))?t:{},s=l.id,c=mS(l,mA),p=r.shape,u=r.dataKey,d=r.activeBar,f=r.onMouseEnter,h=r.onClick,g=r.onMouseLeave,y=mS(r,m_),m=yR(f,u,s),x=yB(g),v=yF(h,u,s);return n?hJ.createElement(hJ.Fragment,null,n.map((e,t)=>hJ.createElement(mb,mO({index:e.originalDataIndex,key:"rectangle-".concat(null==e?void 0:e.x,"-").concat(null==e?void 0:e.y,"-").concat(null==e?void 0:e.value,"-").concat(t),className:"recharts-bar-rectangle"},ye(y,e,t),{onMouseEnter:m(e,e.originalDataIndex),onMouseLeave:x(e,e.originalDataIndex),onClick:v(e,e.originalDataIndex)}),d?hJ.createElement(mT,{shape:p,activeBar:d,baseProps:c,entry:e,index:t,dataKey:u,animationElapsedTime:a,isAnimating:i,isEntrance:o}):hJ.createElement(mN,{shape:p,baseProps:c,entry:e,index:t,dataKey:u,animationElapsedTime:a,isAnimating:i,isEntrance:o})))):null}function mL(e){var t=e.props,n=e.previousRectanglesRef,r=t.data,a=t.isAnimationActive,i=t.animationBegin,o=t.animationDuration,l=t.animationEasing,s=t.animationInterpolateFn,c=t.layout,p=mc(t.onAnimationStart,t.onAnimationEnd),u=p.isAnimating,d=p.handleAnimationStart,f=p.handleAnimationEnd;return hJ.createElement(mM,{showLabels:!u,rects:r},hJ.createElement(mp,{animationInput:r,animationIdPrefix:"recharts-bar-",items:r,previousItemsRef:n,isAnimationActive:a,animationBegin:i,animationDuration:o,animationEasing:l,onAnimationStart:d,onAnimationEnd:f,animationInterpolateFn:s,animationMatchBy:t.animationMatchBy,layout:c},(e,n,r)=>hJ.createElement(h2,null,hJ.createElement(mz,{props:t,data:e,animationElapsedTime:n,isAnimating:u||n<1,isEntrance:r}))),hJ.createElement(g1,{label:t.label}),t.children)}function mR(e){var t=(0,hJ.useRef)(null);return hJ.createElement(mL,{previousRectanglesRef:t,props:e})}var mB=(e,t)=>{var n=Array.isArray(e.value)?e.value[1]:e.value;return{x:e.x,y:e.y,value:n,errorVal:rC(e,t)}};class mF extends hJ.PureComponent{render(){var e=this.props,t=e.hide,n=e.data,r=e.dataKey,a=e.className,i=e.xAxisId,o=e.yAxisId,l=e.needClip,s=e.background,c=e.id;if(t||null==n)return null;var p=r1("recharts-bar",a);return hJ.createElement(h2,{className:p,id:c},l&&hJ.createElement("defs",null,hJ.createElement(yX,{clipPathId:c,xAxisId:i,yAxisId:o})),hJ.createElement(h2,{className:"recharts-bar-rectangles",clipPath:l?"url(#clipPath-".concat(c,")"):void 0},hJ.createElement(mI,{data:n,dataKey:r,background:s,allOtherBarProps:this.props}),hJ.createElement(mR,this.props)))}}var mH={activeBar:!1,animationBegin:0,animationDuration:400,animationEasing:"ease",animationInterpolateFn:(e,t,n)=>null==e?[]:1===t?e.flatMap(e=>"removed"===e.status?[]:[e.next]):e.flatMap(e=>{if("removed"===e.status)return"horizontal"===n?[mD(mD({},e.prev),{},{height:t0(e.prev.height,0,t),y:t0(e.prev.y,e.prev.y+e.prev.height,t)})]:[mD(mD({},e.prev),{},{width:t0(e.prev.width,0,t)})];if("matched"===e.status)return[mD(mD({},e.next),{},{x:t0(e.prev.x,e.next.x,t),y:t0(e.prev.y,e.next.y,t),width:t0(e.prev.width,e.next.width,t),height:t0(e.prev.height,e.next.height,t)})];var r=e.next;return"horizontal"===n?[mD(mD({},r),{},{height:t0(0,r.height,t),y:t0(r.stackedBarStart,r.y,t)})]:[mD(mD({},r),{},{width:t0(0,r.width,t),x:t0(r.stackedBarStart,r.x,t)})]}),animationMatchBy:mo,background:!1,hide:!1,isAnimationActive:"auto",label:!1,legendT
1ype:"rect",minPointSize:0,shape:yP,xAxisId:0,yAxisId:0,zIndex:a0.bar};function mU(e){var t,n,r,a,i=e.xAxisId,o=e.yAxisId,l=e.hide,s=e.legendType,c=e.minPointSize,p=e.activeBar,u=e.animationBegin,d=e.animationDuration,f=e.animationEasing,h=e.isAnimationActive,g=y$(i,o).needClip,y=ag(),m=rQ(),x=(t=e.children,n=[],r=[],r=Array.isArray(h6)?h6.map(e=>g6(e)):[g6(h6)],g3(t).forEach(e=>{var t=tU(e,"type.displayName")||tU(e,"type.name");t&&-1!==r.indexOf(t)&&n.push(e)}),n),v=re(t=>mt(t,e.id,m,x));if("vertical"!==y&&"horizontal"!==y)return null;var b=null==v?void 0:v[0];return a=null==b||null==b.height||null==b.width?0:"vertical"===y?b.height/2:b.width/2,hJ.createElement(yY,{xAxisId:i,yAxisId:o,data:v,dataPointFormatter:mB,errorBarOffset:a},hJ.createElement(mF,mO({},e,{layout:y,needClip:g,data:v,xAxisId:i,yAxisId:o,hide:l,legendType:s,minPointSize:c,activeBar:p,animationBegin:u,animationDuration:d,animationEasing:f,isAnimationActive:h})))}var mq=hJ.memo(function(e){var t,n,r,a=hV(e,mH),i=(n=a.stackId,null!=(r=(0,C.useContext)(mx))?r.stackId:null!=n?null==(t=n)?void 0:String(t):void 0),o=rQ();return hJ.createElement(yW,{id:a.id,type:"bar"},e=>{var t,n,r,l;return hJ.createElement(hJ.Fragment,null,hJ.createElement(mn,{legendPayload:(t=a.dataKey,n=a.name,r=a.fill,l=a.legendType,[{inactive:a.hide,dataKey:t,type:l,color:r,value:rB(n,t),payload:a}])}),hJ.createElement(mP,{dataKey:a.dataKey,stroke:a.stroke,strokeWidth:a.strokeWidth,fill:a.fill,name:a.name,hide:a.hide,unit:a.unit,formatter:a.formatter,tooltipType:a.tooltipType,id:e}),hJ.createElement(mr,{type:"bar",id:e,data:void 0,xAxisId:a.xAxisId,yAxisId:a.yAxisId,zAxisId:0,dataKey:a.dataKey,stackId:i,hide:a.hide,barSize:a.barSize,minPointSize:a.minPointSize,maxBarSize:a.maxBarSize,isPanorama:o,hasCustomShape:null!=a.shape&&a.shape!==yP}),hJ.createElement(gS,{zIndex:a.zIndex},hJ.createElement(mU,mO({},a,{id:e}))))})},f0);function mK(){}function mW(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}function mV(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}mq.displayName="Bar";let mG="[object RegExp]",mY="[object String]",m$="[object Number]",mX="[object Boolean]",mZ="[object Arguments]",mQ="[object Symbol]",mJ="[object Date]",m0="[object Map]",m1="[object Set]",m2="[object Array]",m6="[object ArrayBuffer]",m4="[object Object]",m9="[object DataView]",m3="[object Uint8Array]",m5="[object Uint8ClampedArray]",m7="[object Uint16Array]",m8="[object Uint32Array]",xe="[object Int8Array]",xt="[object Int16Array]",xn="[object Int32Array]",xr="[object Float32Array]",xa="[object Float64Array]",xi="object"==typeof globalThis&&globalThis||"object"==typeof window&&window||"object"==typeof self&&self||e.g||function(){return this}();function xo(e){return void 0!==xi.Buffer&&xi.Buffer.isBuffer(e)}function xl(e){if(!e||"object"!=typeof e)return!1;let t=Object.getPrototypeOf(e);return(null===t||t===Object.prototype||null===Object.getPrototypeOf(t))&&"[object Object]"===Object.prototype.toString.call(e)}var xs=function(e){var t=e.width,n=e.height,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,a=(r%180+180)%180*Math.PI/180,i=Math.atan(n/t);return Math.abs(a>i&&a<Math.PI-i?n/Math.sin(a):t/Math.cos(a))};function xc(e,t){if(t<1)return[];if(1===t)return e;for(var n=[],r=0;r<e.length;r+=t){var a=e[r];void 0!==a&&n.push(a)}return n}function xp(e,t,n,r,a){if(e*t<e*r||e*t>e*a)return!1;var i=n();return e*(t-e*i/2-r)>=0&&e*(t+e*i/2-a)<=0}function xu(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function xd(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?xu(Object(n),!0).forEach(function(t){var r,a,i;r=e,a=t,i=n[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):xu(Object(n)).forEac
1h(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function xf(e,t,n){var r,a,i,o,l,s,c=e.tick,p=e.ticks,u=e.viewBox,d=e.minTickGap,f=e.orientation,h=e.interval,g=e.tickFormatter,y=e.unit,m=e.angle;if(!p||!p.length||!c)return[];if(tY(h)||fD.isSsr)return null!=(s=xc(p,(tY(h)?h:0)+1))?s:[];var x="top"===f||"bottom"===f?"width":"height",v=y&&"width"===x?ge(y,{fontSize:t,letterSpacing:n}):{width:0,height:0},b=(e,r)=>{var a,i="function"==typeof g?g(e.value,r):e.value;return"width"===x?(a=ge(i,{fontSize:t,letterSpacing:n}),xs({width:a.width+v.width,height:a.height+v.height},m)):ge(i,{fontSize:t,letterSpacing:n})[x]},w=p[0],k=p[1],A=p.length>=2&&null!=w&&null!=k?tW(k.coordinate-w.coordinate):1,_=(r="width"===x,a=u.x,i=u.y,o=u.width,l=u.height,1===A?{start:r?a:i,end:r?a+o:i+l}:{start:r?a+o:i+l,end:r?a:i});return"equidistantPreserveStart"===h?function(e,t,n,r,a){for(var i,o=(r||[]).slice(),l=t.start,s=t.end,c=0,p=1,u=l;p<=o.length;)if(i=function(){var t,i=null==r?void 0:r[c];if(void 0===i)return{v:xc(r,p)};var o=c,d=()=>(void 0===t&&(t=n(i,o)),t),f=i.coordinate,h=0===c||xp(e,f,d,u,s);h||(c=0,u=l,p+=1),h&&(u=f+e*(d()/2+a),c+=p)}())return i.v;return[]}(A,_,b,p,d):"equidistantPreserveEnd"===h?function(e,t,n,r,a){var i=(r||[]).slice().length;if(0===i)return[];for(var o=t.start,l=t.end,s=1;s<=i;s++){for(var c,p=(i-1)%s,u=o,d=!0,f=p;f<i&&(0===(c=function(){var t,i=r[f];if(null==i)return 0;var o=f,s=()=>(void 0===t&&(t=n(i,o)),t),c=i.coordinate,h=f===p||xp(e,c,s,u,l);if(!h)return d=!1,1;h&&(u=c+e*(s()/2+a))}())||1!==c);f+=s);if(d){for(var h=[],g=p;g<i;g+=s){var y=r[g];null!=y&&h.push(y)}return h}}return[]}(A,_,b,p,d):("preserveStart"===h||"preserveStartEnd"===h?function(e,t,n,r,a,i){var o=(r||[]).slice(),l=o.length,s=t.start,c=t.end;if(i){var p=r[l-1];if(null!=p){var u=n(p,l-1),d=e*(p.coordinate+e*u/2-c);o[l-1]=p=xd(xd({},p),{},{tickCoord:d>0?p.coordinate-d*e:p.coordinate}),null!=p.tickCoord&&xp(e,p.tickCoord,()=>u,s,c)&&(c=p.tickCoord-e*(u/2+a),o[l-1]=xd(xd({},p),{},{isShow:!0}))}}for(var f=i?l-1:l,h=function(t){var r,i=o[t];if(null==i)return 1;var l=i,p=()=>(void 0===r&&(r=n(i,t)),r);if(0===t){var u=e*(l.coordinate-e*p()/2-s);o[t]=l=xd(xd({},l),{},{tickCoord:u<0?l.coordinate-u*e:l.coordinate})}else o[t]=l=xd(xd({},l),{},{tickCoord:l.coordinate});null!=l.tickCoord&&xp(e,l.tickCoord,p,s,c)&&(s=l.tickCoord+e*(p()/2+a),o[t]=xd(xd({},l),{},{isShow:!0}))},g=0;g<f;g++)if(h(g))continue;return o}(A,_,b,p,d,"preserveStartEnd"===h):function(e,t,n,r,a){for(var i=(r||[]).slice(),o=i.length,l=t.start,s=t.end,c=function(t){var r,c=i[t];if(null==c)return 1;var p=c,u=()=>(void 0===r&&(r=n(c,t)),r);if(t===o-1){var d=e*(p.coordinate+e*u()/2-s);i[t]=p=xd(xd({},p),{},{tickCoord:d>0?p.coordinate-d*e:p.coordinate})}else i[t]=p=xd(xd({},p),{},{tickCoord:p.coordinate});null!=p.tickCoord&&xp(e,p.tickCoord,u,l,s)&&(s=p.tickCoord-e*(u()/2+a),i[t]=xd(xd({},p),{},{isShow:!0}))},p=o-1;p>=0;p--)if(c(p))continue;return i}(A,_,b,p,d)).filter(e=>e.isShow)}var xh=["axisLine","width","height","className","hide","ticks","axisType","axisId"];function xg(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);s=!0);}catch(e){c=!0,a=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return xy(e,t);var n=({}).toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?xy(e,t):void 0}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function xy(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function xm(){return(xm=Object.assign.bind()).apply(null,arguments)}function xx(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function xv(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};
1t%2?xx(Object(n),!0).forEach(function(t){var r,a,i;r=e,a=t,i=n[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):xx(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var xb={x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd",zIndex:a0.axis};function xw(e){var t=e.x,n=e.y,r=e.width,a=e.height,i=e.orientation,o=e.mirror,l=e.axisLine,s=e.otherSvgProps;if(!l)return null;var c=xv(xv(xv({},s),he(l)),{},{fill:"none"});if("top"===i||"bottom"===i){var p=+("top"===i&&!o||"bottom"===i&&o);c=xv(xv({},c),{},{x1:t,y1:n+p*a,x2:t+r,y2:n+p*a})}else{var u=+("left"===i&&!o||"right"===i&&o);c=xv(xv({},c),{},{x1:t+u*r,y1:n,x2:t+u*r,y2:n+a})}return C.createElement("line",xm({},c,{className:r1("recharts-cartesian-axis-line",tU(l,"className"))}))}function xk(e){var t,n=e.option,r=e.tickProps,a=e.value,i=r1(r.className,"recharts-cartesian-axis-tick-value");if(C.isValidElement(n))t=C.cloneElement(n,xv(xv({},r),{},{className:i}));else if("function"==typeof n)t=n(xv(xv({},r),{},{className:i}));else{var o="recharts-cartesian-axis-tick-value";"boolean"!=typeof n&&(o=r1(o,n&&"object"==typeof n&&"className"in n&&"string"==typeof n.className?n.className:"")),t=C.createElement(gC,xm({},r,{className:o}),a)}return t}function xA(e){var t=e.ticks,n=e.axisType,r=e.axisId,a=n3(),i=(0,C.useRef)(null);return(0,C.useEffect)(()=>{if(null!=r&&null!=n){var e,o=t.map(e=>({value:e.value,coordinate:e.coordinate,offset:e.offset,index:e.index})),l=i.current;null!=l&&l.axisId===r&&l.axisType===n&&(e=l.ticks,function e(t,n,r,a,i,o,l){let s=l(t,n,r,a,i,o);if(void 0!==s)return s;if(typeof t==typeof n)switch(typeof t){case"bigint":case"string":case"boolean":case"symbol":case"undefined":case"function":return t===n;case"number":return t===n||Object.is(t,n)}return function t(n,r,a,i){if(Object.is(n,r))return!0;let o=mV(n),l=mV(r);if("[object Arguments]"===o&&(o=m4),"[object Arguments]"===l&&(l=m4),o!==l)return!1;switch(o){case mY:return n.toString()===r.toString();case m$:return rt(n.valueOf(),r.valueOf());case mX:case mJ:case mQ:return Object.is(n.valueOf(),r.valueOf());case mG:return n.source===r.source&&n.flags===r.flags;case"[object Function]":return n===r}let s=(a=null!=a?a:new Map).get(n),c=a.get(r);if(null!=s&&null!=c)return s===r;a.set(n,r),a.set(r,n);try{switch(o){case m0:if(n.size!==r.size)return!1;for(let[t,o]of n.entries())if(!r.has(t)||!e(o,r.get(t),t,n,r,a,i))return!1;return!0;case m1:{if(n.size!==r.size)return!1;let t=Array.from(n.values()),o=Array.from(r.values());for(let l=0;l<t.length;l++){let s=t[l],c=o.findIndex(t=>e(s,t,void 0,n,r,a,i));if(-1===c)return!1;o.splice(c,1)}return!0}case m2:case m3:case m5:case m7:case m8:case"[object BigUint64Array]":case xe:case xt:case xn:case"[object BigInt64Array]":case xr:case xa:if(xo(n)!==xo(r)||n.length!==r.length)return!1;for(let t=0;t<n.length;t++)if(!e(n[t],r[t],t,n,r,a,i))return!1;return!0;case m6:if(n.byteLength!==r.byteLength)return!1;return t(new Uint8Array(n),new Uint8Array(r),a,i);case m9:if(n.byteLength!==r.byteLength||n.byteOffset!==r.byteOffset)return!1;return t(new Uint8Array(n),new Uint8Array(r),a,i);case"[object Error]":return n.name===r.name&&n.message===r.message;case m4:{if(!(t(n.constructor,r.constructor,a,i)||xl(n)&&xl(r)))return!1;let o=[...Object.keys(n),...mW(n)],l=[...Object.keys(r),...mW(r)];if(o.length!==l.length)return!1;for(let t=0;t<o.length;t++){let l=o[t],s=n[l];if(!Object.hasOwn(r,l))return!1;let c=r[l];if(!e(s,c,l,n,r,a,i))return!1}return!0}default:return!1}}finally{a.delete(n),a.delete(r)}}(t,n,o,l)}(e,o,void 0,void 0,void 0,void 0,mK))||(i.current={ticks:o,axisId:r,axisType:n},a(fG({ticks:o,axisId:r,axisType:n})))}},[a,t,r,n]),(0,C.useEffect)(()=>null==r||null==n?t4:()=>{a(fY({axisId:r,axisType:n}))},[a,r,n]),null}var x_=(0,C.forwardRef)((e,t)=>{var n=e.ticks,r=e.tick,a=e.tickLine,i=e.stroke,o=e.tickFormatter,l=e.unit,s=e.padding,c=e.tickTextProps,p=e.orientation,u=e.mirror,d=e.x,f=e.y,h=e.width,g=e.height,y=e.tickSize,m=e.tickMargin,x=e.fontSize,v=e.letterSpacing,b
1=e.getTicksConfig,w=e.events,k=e.axisType,A=e.axisId,_=xf(xv(xv({},b),{},{ticks:void 0===n?[]:n}),x,v),E=he(b),j=ht(r),O=gw(E.textAnchor)?E.textAnchor:function(e,t){switch(e){case"left":return t?"start":"end";case"right":return t?"end":"start";default:return"middle"}}(p,u),D=function(e,t){switch(e){case"left":case"right":return"middle";case"top":return t?"start":"end";default:return t?"end":"start"}}(p,u),S={};"object"==typeof a&&(S=a);var P=xv(xv({},E),{},{fill:"none"},S),I=_.map(e=>xv({entry:e},function(e,t,n,r,a,i,o,l,s){var c,p,u,d,f,h,g=l?-1:1,y=e.tickSize||o,m=tY(e.tickCoord)?e.tickCoord:e.coordinate;switch(i){case"top":c=p=e.coordinate,h=(u=(d=n+!l*a)-g*y)-g*s,f=m;break;case"left":u=d=e.coordinate,f=(c=(p=t+!l*r)-g*y)-g*s,h=m;break;case"right":u=d=e.coordinate,f=(c=(p=t+l*r)+g*y)+g*s,h=m;break;default:c=p=e.coordinate,h=(u=(d=n+l*a)+g*y)+g*s,f=m}return{line:{x1:c,y1:u,x2:p,y2:d},tick:{x:f,y:h}}}(e,d,f,h,g,p,y,u,m))),M=I.map(e=>{var t=e.entry,n=e.line;return C.createElement(h2,{className:"recharts-cartesian-axis-tick",key:"tick-".concat(t.value,"-").concat(t.coordinate,"-").concat(t.tickCoord)},a&&C.createElement("line",xm({},P,n,{className:r1("recharts-cartesian-axis-tick-line",tU(a,"className"))})))}),T=I.map((e,t)=>{var n,a,p=e.entry,u=e.tick,d=xv(xv(xv(xv({verticalAnchor:D},E),{},{textAnchor:O,stroke:"none",fill:i},u),{},{index:t,payload:p,visibleTicksCount:_.length,tickFormatter:o,padding:s},c),{},{angle:null!=(n=null!=(a=null==c?void 0:c.angle)?a:E.angle)?n:0}),f=xv(xv({},d),j);return C.createElement(h2,xm({className:"recharts-cartesian-axis-tick-label",key:"tick-label-".concat(p.value,"-").concat(p.coordinate,"-").concat(p.tickCoord)},ye(w,p,t)),r&&C.createElement(xk,{option:r,tickProps:f,value:"".concat("function"==typeof o?o(p.value,t):p.value).concat(l||"")}))});return C.createElement("g",{className:"recharts-cartesian-axis-ticks recharts-".concat(k,"-ticks")},C.createElement(xA,{ticks:_,axisId:A,axisType:k}),T.length>0&&C.createElement(gS,{zIndex:a0.label},C.createElement("g",{className:"recharts-cartesian-axis-tick-labels recharts-".concat(k,"-tick-labels"),ref:t},T)),M.length>0&&C.createElement("g",{className:"recharts-cartesian-axis-tick-lines recharts-".concat(k,"-tick-lines")},M))}),xE=(0,C.forwardRef)((e,t)=>{var n=e.axisLine,r=e.width,a=e.height,i=e.className,o=e.hide,l=e.ticks,s=e.axisType,c=e.axisId,p=function(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n={};for(var r in e)if(({}).hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],-1===t.indexOf(n)&&({}).propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}(e,xh),u=xg((0,C.useState)(""),2),d=u[0],f=u[1],h=xg((0,C.useState)(""),2),g=h[0],y=h[1],m=(0,C.useRef)(null);(0,C.useImperativeHandle)(t,()=>({getCalculatedWidth:()=>{var t;return(e=>{var t=e.ticks,n=e.label,r=e.labelGapWithTick,a=e.tickSize,i=e.tickMargin,o=0;if(t){Array.from(t).forEach(e=>{if(e){var t=e.getBoundingClientRect();t.width>
1o&&(o=t.width)}});var l=n?n.getBoundingClientRect().width:0;return Math.round(o+((void 0===a?0:a)+(void 0===i?0:i))+l+(n?void 0===r?5:r:0))}return 0})({ticks:m.current,label:null==(t=e.labelRef)?void 0:t.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})},getCalculatedHeight:()=>{var t;return(e=>{var t=e.ticks,n=e.label,r=e.labelGapWithTick,a=e.tickSize,i=e.tickMargin,o=0;if(t){Array.from(t).forEach(e=>{if(e){var t=e.getBoundingClientRect();t.height>o&&(o=t.height)}});var l=n?n.getBoundingClientRect().height:0;return Math.round(o+((void 0===a?0:a)+(void 0===i?0:i))+l+(n?void 0===r?5:r:0))}return 0})({ticks:m.current,label:null==(t=e.labelRef)?void 0:t.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})}}));var x=(0,C.useCallback)(e=>{if(e){var t=e.getElementsByClassName("recharts-cartesian-axis-tick-value");m.current=t;var n=t[0];if(n){var r=window.getComputedStyle(n),a=r.fontSize,i=r.letterSpacing;(a!==d||i!==g)&&(f(a),y(i))}}},[d,g]);return o||null!=r&&r<=0||null!=a&&a<=0?null:C.createElement(gS,{zIndex:e.zIndex},C.createElement(h2,{className:r1("recharts-cartesian-axis",i)},C.createElement(xw,{x:e.x,y:e.y,width:r,height:a,orientation:e.orientation,mirror:e.mirror,axisLine:n,otherSvgProps:he(e)}),C.createElement(x_,{ref:x,axisType:s,events:p,fontSize:d,getTicksConfig:e,height:e.height,letterSpacing:g,mirror:e.mirror,orientation:e.orientation,padding:e.padding,stroke:e.stroke,tick:e.tick,tickFormatter:e.tickFormatter,tickLine:e.tickLine,tickMargin:e.tickMargin,tickSize:e.tickSize,tickTextProps:e.tickTextProps,ticks:l,unit:e.unit,width:e.width,x:e.x,y:e.y,axisId:c}),C.createElement(gR,{x:e.x,y:e.y,width:e.width,height:e.height,lowerWidth:e.width,upperWidth:e.width},C.createElement(gW,{label:e.label,labelRef:e.labelRef}),e.children)))}),xj=C.forwardRef((e,t)=>{var n=hV(e,xb);return C.createElement(xE,xm({},n,{ref:t}))});xj.displayName="CartesianAxis";var xO=["domain","range"],xC=["domain","range"];function xD(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n={};for(var r in e)if(({}).hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],-1===t.indexOf(n)&&({}).propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function xS(e,t){return e===t||!!(Array.isArray(e)&&2===e.length&&Array.isArray(t))&&2===t.length&&e[0]===t[0]&&e[1]===t[1]}function xP(e,t){if(e===t)return!0;var n=e.domain,r=e.range,a=xD(e,xO),i=t.domain,o=t.range,l=xD(t,xC);return!!xS(n,i)&&!!xS(r,o)&&f0(a,l)}var xI=["type"],xM=["dangerouslySetInnerHTML","ticks","scale"],xT=["id","scale"];function xN(){return(xN=Object.assign.bind()).apply(null,arguments)}function xz(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function xL(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?xz(Object(n),!0).forEach(function(t){var r,a,i;r=e,a=t,i=n[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):xz(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function xR(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n={};for(var r in e)if(({}).hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],-1===t.indexOf(n)&&({}).propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function xB(e){var t=n3(),n=(0,C.useRef)(null),r=ay(),a=e.type,i=xR(e,xI),o=a4(r,"xAxis",a),l=(0,C.useMemo)(()=>
1{if(null!=o)return xL(xL({},i),{},{type:o})},[i,o]);return(0,C.useLayoutEffect)(()=>{null!=l&&(null===n.current?t(dM(l)):n.current!==l&&t(dT({prev:n.current,next:l})),n.current=l)},[l,t]),(0,C.useLayoutEffect)(()=>()=>{n.current&&(t(dN(n.current)),n.current=null)},[t]),null}var xF=e=>{var t=e.xAxisId,n=e.className,r=e.height,a=e.label,i=(0,C.useRef)(null),o=(0,C.useRef)(null),l=re(rX),s=rQ(),c=n3(),p="xAxis",u=re(e=>p4(e,p,t,s)),d=re(e=>pY(e,t)),f=re(e=>pZ(e,t)),h=re(e=>cw(e,t));if((0,C.useLayoutEffect)(()=>{if(!("auto"!==r||!d||gH(a)||(0,C.isValidElement)(a))&&null!=h){var e=i.current;if(e){var n=e.getCalculatedHeight();Math.round(d.height)!==Math.round(n)&&c(dF({id:t,height:n}))}}},[u,d,c,a,t,r,h]),null==d||null==f||null==h)return null;e.dangerouslySetInnerHTML,e.ticks,e.scale;var g=xR(e,xM);h.id,h.scale;var y=xR(h,xT);return C.createElement(xj,xN({},g,y,{ref:i,labelRef:o,x:f.x,y:f.y,width:d.width,height:d.height,className:r1("recharts-".concat(p," ").concat(p),n),viewBox:l,ticks:u,axisType:p,axisId:t}))},xH={allowDataOverflow:cb.allowDataOverflow,allowDecimals:cb.allowDecimals,allowDuplicatedCategory:cb.allowDuplicatedCategory,angle:cb.angle,axisLine:xb.axisLine,height:cb.height,hide:!1,includeHidden:cb.includeHidden,interval:cb.interval,label:!1,minTickGap:cb.minTickGap,mirror:cb.mirror,orientation:cb.orientation,padding:cb.padding,reversed:cb.reversed,scale:cb.scale,tick:cb.tick,tickCount:cb.tickCount,tickLine:xb.tickLine,tickSize:xb.tickSize,type:cb.type,niceTicks:cb.niceTicks,xAxisId:0},xU=C.memo(e=>{var t=hV(e,xH);return C.createElement(C.Fragment,null,C.createElement(xB,{allowDataOverflow:t.allowDataOverflow,allowDecimals:t.allowDecimals,allowDuplicatedCategory:t.allowDuplicatedCategory,angle:t.angle,dataKey:t.dataKey,domain:t.domain,height:t.height,hide:t.hide,id:t.xAxisId,includeHidden:t.includeHidden,interval:t.interval,minTickGap:t.minTickGap,mirror:t.mirror,name:t.name,orientation:t.orientation,padding:t.padding,reversed:t.reversed,scale:t.scale,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,niceTicks:t.niceTicks}),C.createElement(xF,t))},xP);xU.displayName="XAxis";var xq=["type"],xK=["dangerouslySetInnerHTML","ticks","scale"],xW=["id","scale"];function xV(){return(xV=Object.assign.bind()).apply(null,arguments)}function xG(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function xY(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?xG(Object(n),!0).forEach(function(t){var r,a,i;r=e,a=t,i=n[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):xG(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function x$(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n={};for(var r in e)if(({}).hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],-1===t.indexOf(n)&&({}).propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function xX(e){var t=n3(),n=(0,C.useRef)(null),r=ay(),a=e.type,i=x$(e,xq),o=a4(r,"yAxis",a),l=(0,C.useMemo)(()=>{if(null!=o)return xY(xY({},i),{},{type:o})},[o,i]);return(0,C.useLayoutEffect)(()=>{null!=l&&(null===n.current?t(dz(l)):n.current!==l&&t(dL({prev:n.current,next:l})),n.current=l)},[l,t]),(0,C.useLayoutEffect)(()=>()=>{n.current&&(t(dR(n.current)),n.current=null)},[t]),null}function xZ(e){var t=e.yAxisId,n=e.className,r=e.width,a=e.label,i=(0,C.useRef)(null),o=(0,C.useRef)(null),l=re(rX),s=rQ(),c=n3(),p="yAxis",u=re(e=>pJ(e,t)),d=re(e=>pQ(e,t)),f=re(e=>p4(e,p,t,s)),h=re(e=>c_(e,t));if((0,C.useLayoutEffect)(()=>
1{if(!("auto"!==r||!u||gH(a)||(0,C.isValidElement)(a))&&null!=h){var e=i.current;if(e){var n=e.getCalculatedWidth();Math.round(u.width)!==Math.round(n)&&c(dB({id:t,width:n}))}}},[f,u,c,a,t,r,h]),null==u||null==d||null==h)return null;e.dangerouslySetInnerHTML,e.ticks,e.scale;var g=x$(e,xK);h.id,h.scale;var y=x$(h,xW);return C.createElement(xj,xV({},g,y,{ref:i,labelRef:o,x:d.x,y:d.y,tickTextProps:"auto"===r?{width:void 0}:{width:r},width:u.width,height:u.height,className:r1("recharts-".concat(p," ").concat(p),n),viewBox:l,ticks:f,axisType:p,axisId:t}))}var xQ={allowDataOverflow:cA.allowDataOverflow,allowDecimals:cA.allowDecimals,allowDuplicatedCategory:cA.allowDuplicatedCategory,angle:cA.angle,axisLine:xb.axisLine,hide:!1,includeHidden:cA.includeHidden,interval:cA.interval,label:!1,minTickGap:cA.minTickGap,mirror:cA.mirror,orientation:cA.orientation,padding:cA.padding,reversed:cA.reversed,scale:cA.scale,tick:cA.tick,tickCount:cA.tickCount,tickLine:xb.tickLine,tickSize:xb.tickSize,type:cA.type,niceTicks:cA.niceTicks,width:cA.width,yAxisId:0},xJ=C.memo(e=>{var t=hV(e,xQ);return C.createElement(C.Fragment,null,C.createElement(xX,{interval:t.interval,id:t.yAxisId,scale:t.scale,type:t.type,domain:t.domain,allowDataOverflow:t.allowDataOverflow,dataKey:t.dataKey,allowDuplicatedCategory:t.allowDuplicatedCategory,allowDecimals:t.allowDecimals,tickCount:t.tickCount,padding:t.padding,includeHidden:t.includeHidden,reversed:t.reversed,ticks:t.ticks,width:t.width,orientation:t.orientation,mirror:t.mirror,hide:t.hide,unit:t.unit,name:t.name,angle:t.angle,minTickGap:t.minTickGap,tick:t.tick,tickFormatter:t.tickFormatter,niceTicks:t.niceTicks}),C.createElement(xZ,t))},xP);xJ.displayName="YAxis";var x0=(0,C.createContext)({grid:{stroke:"#ccc",fill:"none"}});x0.Provider;var x1=["x1","y1","x2","y2","key"],x2=["offset"],x6=["xAxisId","yAxisId"],x4=["xAxisId","yAxisId"];function x9(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function x3(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?x9(Object(n),!0).forEach(function(t){var r,a,i;r=e,a=t,i=n[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):x9(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function x5(){return(x5=Object.assign.bind()).apply(null,arguments)}function x7(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n={};for(var r in e)if(({}).hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],-1===t.indexOf(n)&&({}).propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var x8=e=>{var t=e.fill;if(!t||"none"===t)return null;var n=e.fillOpacity,r=e.x,a=e.y,i=e.width,o=e.height,l=e.ry;return C.createElement("rect",{x:r,y:a,ry:l,width:i,height:o,stroke:"none",fill:t,fillOpacity:n,className:"recharts-cartesian-grid-bg"})};function ve(e){var t=e.option,n=e.lineItemProps;if(C.isValidElement(t))r=C.cloneElement(t,n);else if("function"==typeof t)r=t(n);else{var r,a,i=n.x1,o=n.y1,l=n.x2,s=n.y2,c=n.key,p=null!=(a=he(x7(n,x1)))?a:{},u=(p.offset,x7(p,x2)),d=Array.isArray(u.strokeDasharray)?u.strokeDasharray.join(","):u.strokeDasharray;r=C.createElement("line",x5({},u,{strokeDasharray:d,x1:i,y1:o,x2:l,y2:s,fill:"none",key:c}))}return r}function vt(e){var t=e.x,n=e.width,r=e.horizontal,a=void 0===r||r,i=e.horizontalPoints;if(!a||!i||!i.length)return null;e.xAxisId,e.yAxisId;var o=x7(e,x6),l=i.map((e,r)=>{var i=x3(x3({},o),{},{x1:t,y1:e,x2:t+n,y2:e,key:"line-".concat(r),index:r});return C.createElement(ve,{key:"line-".concat(r),option:a,lineItemProps:i})});return C.createElement("g",{className:"recharts-cartesian-grid-horizontal"},l)}function vn(e){var t=e.y,n=e.height,r=e.vertical,a=void 0===r||r,i=e.verticalPoints;if(!a||!i||!i.length)return null;e.xAxisId,e.yAxisId;var o=x7(e,x4),l=i.map((e,r)=>{var i=x3(x3({},o),{},{x1:e,y1:t,x2:e,y2:t+n,key:"line-".concat(r),index:r});return C.createElement(ve,{option:a,lineItemProps:i,key:"line-".concat(r)})});return C.createElement("g",{className:"recharts-cartesian-grid-vertical"},l)}function vr(e){var t=e.horizontalFill,n=e.fillOpacity,r=e.x,a=e.
1y,i=e.width,o=e.height,l=e.horizontalPoints,s=e.horizontal;if(!(void 0===s||s)||!t||!t.length||null==l)return null;var c=l.map(e=>Math.round(e+a-a)).sort((e,t)=>e-t);a!==c[0]&&c.unshift(0);var p=c.map((e,l)=>{var s=c[l+1],p=null==s?a+o-e:s-e;if(p<=0)return null;var u=l%t.length;return C.createElement("rect",{key:"react-".concat(l),y:e,x:r,height:p,width:i,stroke:"none",fill:t[u],fillOpacity:n,className:"recharts-cartesian-grid-bg"})});return C.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},p)}function va(e){var t=e.vertical,n=e.verticalFill,r=e.fillOpacity,a=e.x,i=e.y,o=e.width,l=e.height,s=e.verticalPoints;if(!(void 0===t||t)||!n||!n.length)return null;var c=s.map(e=>Math.round(e+a-a)).sort((e,t)=>e-t);a!==c[0]&&c.unshift(0);var p=c.map((e,t)=>{var s=c[t+1],p=null==s?a+o-e:s-e;if(p<=0)return null;var u=t%n.length;return C.createElement("rect",{key:"react-".concat(t),x:e,y:i,width:p,height:l,stroke:"none",fill:n[u],fillOpacity:r,className:"recharts-cartesian-grid-bg"})});return C.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},p)}var vi=(e,t)=>{var n=e.xAxis,r=e.width,a=e.height,i=e.offset;return rS(xf(x3(x3(x3({},xb),n),{},{ticks:rP(n,!0),viewBox:{x:0,y:0,width:r,height:a}})),i.left,i.left+i.width,t)},vo=(e,t)=>{var n=e.yAxis,r=e.width,a=e.height,i=e.offset;return rS(xf(x3(x3(x3({},xb),n),{},{ticks:rP(n,!0),viewBox:{x:0,y:0,width:r,height:a}})),i.top,i.top+i.height,t)},vl={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],verticalFill:[],horizontalFill:[],xAxisId:0,yAxisId:0,syncWithTicks:!1,zIndex:a0.grid};function vs(e){var t,n,r,a,i,o,l=ad(),s=af(),c=au(),p=x3(x3({},hV(e,vl)),{},{x:tY(e.x)?e.x:c.left,y:tY(e.y)?e.y:c.top,width:tY(e.width)?e.width:c.width,height:tY(e.height)?e.height:c.height}),u=p.xAxisId,d=p.yAxisId,f=p.x,h=p.y,g=p.width,y=p.height,m=p.syncWithTicks,x=p.horizontalValues,v=p.verticalValues,b=rQ(),w=re(e=>p6(e,"xAxis",u,b)),k=re(e=>p6(e,"yAxis",d,b)),A=(0,C.useContext)(x0),_={stroke:null!=(t=p.stroke)?t:A.grid.stroke,strokeWidth:null!=(n=p.strokeWidth)?n:A.grid.strokeWidth,strokeOpacity:null!=(r=p.strokeOpacity)?r:A.grid.strokeOpacity,strokeDasharray:null!=(a=p.strokeDasharray)?a:A.grid.strokeDasharray};if(!rw(g)||!rw(y)||!tY(f)||!tY(h))return null;var E=p.verticalCoordinatesGenerator||vi,j=p.horizontalCoordinatesGenerator||vo,O=p.horizontalPoints,D=p.verticalPoints;if((!O||!O.length)&&"function"==typeof j){var S=x&&x.length,P=j({yAxis:k?x3(x3({},k),{},{ticks:S?x:k.ticks}):void 0,width:null!=l?l:g,height:null!=s?s:y,offset:c},!!S||m);r2(Array.isArray(P),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(typeof P,"]")),Array.isArray(P)&&(O=P)}if((!D||!D.length)&&"function"==typeof E){var I=v&&v.length,M=E({xAxis:w?x3(x3({},w),{},{ticks:I?v:w.ticks}):void 0,width:null!=l?l:g,height:null!=s?s:y,offset:c},!!I||m);r2(Array.isArray(M),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(typeof M,"]")),Array.isArray(M)&&(D=M)}return C.createElement(gS,{zIndex:p.zIndex},C.createElement("g",{className:"recharts-cartesian-grid"},C.createElement(x8,{fill:null!=(i=p.fill)?i:A.grid.fill,fillOpacity:null!=(o=p.fillOpacity)?o:A.grid.fillOpacity,x:p.x,y:p.y,width:p.width,height:p.height,ry:p.ry}),C.createElement(vr,x5({},p,{horizontalPoints:O})),C.createElement(va,x5({},p,{verticalPoints:D})),C.createElement(vt,x5({},p,_,{offset:c,horizontalPoints:O,xAxis:w,yAxis:k})),C.createElement(vn,x5({},p,_,{offset:c,verticalPoints:D,xAxis:w,yAxis:k}))))}function vc(){return(vc=Object.assign.bind()).apply(null,arguments)}function vp(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function vu(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?vp(Object(n),!0).forEach(function(t){var r,a,i;r=e,a=t,i=n[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):vp(Object(n)).forEac
1h(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function vd(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function vf(e){return Array.isArray(e)&&t$(e[0])&&t$(e[1])?e.join(" ~ "):e}vs.displayName="CartesianGrid";var vh={separator:" : ",contentStyle:{margin:0,padding:10,backgroundColor:"#fff",border:"1px solid #ccc",whiteSpace:"nowrap"},itemStyle:{display:"block",paddingTop:4,paddingBottom:4,color:"#000"},labelStyle:{},accessibilityLayer:!1},vg=e=>{var t=e.separator,n=void 0===t?vh.separator:t,r=e.contentStyle,a=e.itemStyle,i=e.labelStyle,o=void 0===i?vh.labelStyle:i,l=e.payload,s=e.formatter,c=e.itemSorter,p=e.wrapperClassName,u=e.labelClassName,d=e.label,f=e.labelFormatter,h=e.accessibilityLayer,g=void 0===h?vh.accessibilityLayer:h,y=vu(vu({},vh.contentStyle),r),m=vu({margin:0},o),x=null!=d,v=x?d:"",b=r1("recharts-default-tooltip",p),w=r1("recharts-tooltip-label",u);return x&&f&&null!=l&&(v=f(d,l)),C.createElement("div",vc({className:b,style:y},g?{role:"status","aria-live":"assertive"}:{}),C.createElement("p",{className:w,style:m},C.isValidElement(v)?v:"".concat(v)),(()=>{if(l&&l.length){var e=(function(e,t){return null==t?e:ru(e,t)})(l,c).map((e,t)=>{if(!e||"none"===e.type)return null;var r=e.formatter||s||vf,i=e.value,o=e.name,c=i,p=o;if(r){var u=r(i,o,e,t,l);if(Array.isArray(u)){var d=function(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],s=!0,c=!1;try{i=(n=n.call(e)).next,!1;for(;!(s=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);s=!0);}catch(e){c=!0,a=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return l}}(e,2)||function(e,t){if(e){if("string"==typeof e)return vd(e,t);var n=({}).toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?vd(e,t):void 0}}(e,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(u,2);c=d[0],p=d[1]}else{if(null==u)return null;c=u}}var f=vu(vu({},vh.itemStyle),{},{color:e.color||vh.itemStyle.color},a);return C.createElement("li",{className:"recharts-tooltip-item",key:"tooltip-item-".concat(t),style:f},t$(p)?C.createElement("span",{className:"recharts-tooltip-item-name"},p):null,t$(p)?C.createElement("span",{className:"recharts-tooltip-item-separator"},n):null,C.createElement("span",{className:"recharts-tooltip-item-value"},c),C.createElement("span",{className:"recharts-tooltip-item-unit"},e.unit||""))});return C.createElement("ul",{className:"recharts-tooltip-item-list",style:{padding:0,margin:0}},e)}return null})())},vy="recharts-tooltip-wrapper",vm={visibility:"hidden"};function vx(e){var t=e.allowEscapeViewBox,n=e.coordinate,r=e.key,a=e.offset,i=e.position,o=e.reverseDirection,l=e.tooltipDimension,s=e.viewBox,c=e.viewBoxDimension;if(i&&tY(i[r]))return i[r];var p=n[r]-l-(a>0?a:0),u=n[r]+a;if(t[r])return o[r]?p:u;var d=s[r];return null==d?0:o[r]?p<d?Math.max(u,d):Math.max(p,d):null==c?0:u+l>d+c?Math.max(p,d):Math.max(u,d)}function vv(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function vb(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?vv(Object(n),!0).forEach(function(t){var r,a,i;r=e,a=t,i=n[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):vv(Object(n)).forEac
1h(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function vw(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var vk=C.memo(function(e){var t,n,r,a,i,o,l,s,c,p,u,d,f,h,g,y,m,x,v,b,w,k,A,_,E,j,O,D=yc(),S=function(e){if(Array.isArray(e))return e}(w=C.useState(()=>({dismissed:!1,dismissedAtCoordinate:{x:0,y:0}})))||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],s=!0,c=!1;try{i=(n=n.call(e)).next,!1;for(;!(s=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);s=!0);}catch(e){c=!0,a=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return l}}(w,2)||function(e,t){if(e){if("string"==typeof e)return vw(e,2);var n=({}).toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?vw(e,t):void 0}}(w,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),P=S[0],I=S[1];C.useEffect(()=>{var t=t=>
1{if("Escape"===t.key){var n,r,a,i;I({dismissed:!0,dismissedAtCoordinate:{x:null!=(n=null==(r=e.coordinate)?void 0:r.x)?n:0,y:null!=(a=null==(i=e.coordinate)?void 0:i.y)?a:0}})}};return document.addEventListener("keydown",t),()=>{document.removeEventListener("keydown",t)}},[null==(k=e.coordinate)?void 0:k.x,null==(A=e.coordinate)?void 0:A.y]),P.dismissed&&((null!=(_=null==(E=e.coordinate)?void 0:E.x)?_:0)!==P.dismissedAtCoordinate.x||(null!=(j=null==(O=e.coordinate)?void 0:O.y)?j:0)!==P.dismissedAtCoordinate.y)&&I(vb(vb({},P),{},{dismissed:!1}));var M=(d=(t={allowEscapeViewBox:e.allowEscapeViewBox,coordinate:e.coordinate,offsetLeft:"number"==typeof e.offset?e.offset:e.offset.x,offsetTop:"number"==typeof e.offset?e.offset:e.offset.y,position:e.position,reverseDirection:e.reverseDirection,tooltipBox:e.lastBoundingBox,useTranslate3d:e.useTranslate3d,viewBox:e.viewBox}).allowEscapeViewBox,f=t.coordinate,h=t.offsetTop,g=t.offsetLeft,y=t.position,m=t.reverseDirection,x=t.tooltipBox,v=t.useTranslate3d,b=t.viewBox,x&&x.height>0&&x.width>0&&f?(r=(n={translateX:p=vx({allowEscapeViewBox:d,coordinate:f,key:"x",offset:g,position:y,reverseDirection:m,tooltipDimension:x.width,viewBox:b,viewBoxDimension:b.width}),translateY:u=vx({allowEscapeViewBox:d,coordinate:f,key:"y",offset:h,position:y,reverseDirection:m,tooltipDimension:x.height,viewBox:b,viewBoxDimension:b.height}),useTranslate3d:v}).translateX,a=n.translateY,c={transform:n.useTranslate3d?"translate3d(".concat(r,"px, ").concat(a,"px, 0)"):"translate(".concat(r,"px, ").concat(a,"px)")}):c=vm,{cssProperties:c,cssClasses:(o=(i={translateX:p,translateY:u,coordinate:f}).coordinate,l=i.translateX,s=i.translateY,r1(vy,{["".concat(vy,"-right")]:tY(l)&&o&&tY(o.x)&&l>=o.x,["".concat(vy,"-left")]:tY(l)&&o&&tY(o.x)&&l<o.x,["".concat(vy,"-bottom")]:tY(s)&&o&&tY(o.y)&&s>=o.y,["".concat(vy,"-top")]:tY(s)&&o&&tY(o.y)&&s<o.y}))}),T=M.cssClasses,N=M.cssProperties,z=e.hasPortalFromProps?{}:vb(vb({transition:function(e){if((!e.prefersReducedMotion||"auto"!==e.isAnimationActive)&&e.isAnimationActive&&e.active){var t="string"==typeof e.animationEasing?e.animationEasing:"ease";return"transform ".concat(e.animationDuration,"ms ").concat(t)}}({prefersReducedMotion:D,isAnimationActive:e.isAnimationActive,active:e.active,animationDuration:e.animationDuration,animationEasing:e.animationEasing})},N),{},{pointerEvents:"none",position:"absolute",top:0,left:0}),L=vb(vb({},z),{},{visibility:!P.dismissed&&e.active&&e.hasPayload?"visible":"hidden"},e.wrapperStyle);return C.createElement("div",{xmlns:"http://www.w3.org/1999/xhtml",tabIndex:-1,className:T,style:L,ref:e.innerRef},e.children)});function vA(e){return e}function v_(e){return null==e||"object"!=typeof e&&"function"!=typeof e}function vE(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:new Map,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:void 0,i=null==a?void 0:a(e,t,n,r);if(void 0!==i)return i;if(v_(e))return e;if(r.has(e))return r.get(e);if(Array.isArray(e)){let t=Array(e.length);r.set(e,t);for(let i=0;i<e.length;i++)t[i]=vE(e[i],i,n,r,a);return Object.hasOwn(e,"index")&&(t.index=e.index),Object.hasOwn(e,"input")&&(t.input=e.input),t}if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp){let t=new RegExp(e.source,e.flags);return t.lastIndex=e.lastIndex,t}if(e instanceof Map){let t=new Map;for(let[i,o]of(r.set(e,t),e))t.set(i,vE(o,i,n,r,a));return t}if(e instanceof Set){let t=new Set;for(let i of(r.set(e,t),e))t.add(vE(i,void 0,n,r,a));return t}if(xo(e))return e.subarray();if(ArrayBuffer.isView(e)&&!(e instanceof DataView)){let t=new(Object.getPrototypeOf(e)).constructor(e.length);r.set(e,t);for(let i=0;i<e.length;i++)t[i]=vE(e[i],i,n,r,a);return t}if(e instanceof ArrayBuffer||"undefined"!=typeof SharedArrayBuffer&&e instanceof SharedArrayBuffer)return e.slice(0);if(e instanceof DataView){let t=new DataView(e.buffer.slice(0),e.byteOffset,e.byteLength);return r.set(e,t),vj(t,e,n,r,a),t}if("undefined"!=typeof File&&e instanceof File){let t=new File([e],e.name,{type:e.type});return r.set(e,t),vj(t,e,n,r,a),t}if("undefined"!=typeof Blob&&e instanceof Blob){let t=new Blob([e],{type:e.type});return r.set(e,t),vj(t,e,n,r,a),t}if(e instanceof Error){let t=structuredClone(e);return r.set(e,t),t.message=e.message,t.name=e.name,t.stack=e.stack,t.cause=e.cause,t.constructor=e.constructor,vj(t,e,n,r,a),t}if(e instanceof Boolean){let t=new Boolean(e.valueOf());return r.set(e,t),vj(t,e,n,r,a),t}if(e instanceof Number){let t=new Number(e.valueOf());return r.set(e,t),vj(t,e,n,r,a),t}if(e instanceof String){let t=new String(e.valueOf());return r.set(e,t),vj(t,e,n,r,a),t}if("object"==typeof e&&function(e){switch(mV(e)){case mZ:case m2:case m6:case m9:case mX:case mJ:case xr:case xa:case xe:case xt:case xn:case m0:case m$:case m4:case mG:case m1:case mY:case mQ:case m3:case m5:case m7:case m8:return!0;default:return!1}}(e)){let t=Object.create(Object.getPrototypeOf(e));return r.set(e,t),vj(t,e,n,r,a),t}return e}function vj(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e,r=arguments.length>3?arguments[3]:void 0,a=arguments.length>4?arguments[4]:void 0,i=[...Object.keys(t),...mW(t)];for(let o=0;o<i.length;o++){let l=i[o],s=Object.getOwnPropertyDescriptor(e,l);(null==s||s.writable)&&(e[l]=vE(t[l],l,n,r,a))}}function vO(e,t,n,r){let a=arguments.length>4&&void 0!==arguments[4]&&arguments[4];if(t===e)return!0;switch(typeof t){case"object":return function(e,t,n,r){let a=arguments.length>4&&void 0!==arguments[4]&&arguments[4];if(null==t)return!0;
1if(Array.isArray(t))return vC(e,t,n,r);if(t instanceof Map){var i,o,l,s,c=e,p=t,u=n,d=r;if(0===p.size)return!0;if(!(c instanceof Map))return!1;for(let[e,t]of p.entries())if(!1===u(c.get(e),t,e,c,p,d))return!1;return!0}if(t instanceof Set){return i=e,o=t,l=n,s=r,0===o.size||i instanceof Set&&vC([...i],[...o],l,s)}let f=Object.keys(t);if(null==e)return a&&0===f.length;if(a)v_(e)&&(e=Object(e));else{let t=mV(e);if("[object Object]"!==t&&"[object Arguments]"!==t)return!1}if(0===f.length)return!0;if(null==r?void 0:r.has(t))return r.get(t)===e;null==r||r.set(t,e);try{for(let a=0;a<f.length;a++){let i=f[a];if(!(i in e)||void 0===t[i]&&void 0!==e[i]||null===t[i]&&null!==e[i]||!n(e[i],t[i],i,e,t,r))return!1}return!0}finally{null==r||r.delete(t)}}(e,t,n,r,a);case"function":if(Object.keys(t).length>0)return vO(e,{...t},n,r,a);return rt(e,t);default:if(!rr(e))return rt(e,t);if(a){if("string"==typeof t)return""===t;return!0}return rt(e,t)}}function vC(e,t,n,r){if(0===t.length)return!0;if(!Array.isArray(e))return!1;let a=new Set;for(let i=0;i<t.length;i++){let o=t[i],l=!1;for(let s=0;s<e.length;s++){if(a.has(s))continue;let c=e[s],p=!1;if(n(c,o,i,e,t,r)&&(p=!0),p){a.add(s),l=!0;break}}if(!l)return!1}return!0}function vD(e,t){return function e(t,n,r){return"function"!=typeof r?e(t,n,()=>void 0):vO(t,n,function e(t,n,a,i,o,l){let s=r(t,n,a,i,o,l);return void 0!==s?!!s:vO(t,n,e,l,!1)},new Map,!0)}(e,t,()=>void 0)}function vS(e){return 0===e?0:e}function vP(e){var t;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:vA;return rn(e)?(function(e,t){let n=new Map;for(let r=0;r<e.length;r++){let a=e[r],i=t(a,r,e);n.has(i)||n.set(i,a)}return Array.from(n.values())})(Array.from(e),(t=function(e){var t,n;if(null==e)return vA;switch(typeof e){case"function":return e;case"object":if(Array.isArray(e)&&2===e.length)return function(e,t){var n,r,a;switch(typeof e){case"object":Object.is(null==e?void 0:e.valueOf(),-0)&&(e="-0");break;case"number":e=tB(e)}return r=n=t,a=(e,t,r,a)=>{let i=void 0;if(void 0!==i)return i;if("object"==typeof n){if("[object Object]"===mV(n)&&"function"!=typeof n.constructor){let e={};return a.set(n,e),vj(e,n,r,a),e}switch(Object.prototype.toString.call(n)){case m$:case mY:case mX:{let e=new n.constructor(null==n?void 0:n.valueOf());return vj(e,n),e}case mZ:{let e={};return vj(e,n),e.length=n.length,e[Symbol.iterator]=n[Symbol.iterator],e}default:return}}},t=vE(r,void 0,r,new Map,a),function(n){let r=tU(n,e);return void 0===r?function(e,t){let n;if(0===(n=Array.isArray(t)?t:"string"==typeof t&&tR(t)&&!(t in Object(e))?tH(t):[t]).length)return!1;let r=e;for(let e=0;e<n.length;e++){var a;let t=tB(n[e]);if((null==r||!Object.hasOwn(r,t))&&!((Array.isArray(r)||null!==(a=r)&&"object"==typeof a&&"[object Arguments]"===mV(a))&&r
1i(t)&&Number(t)<r.length))return!1;r=r[t]}return!0}(n,e):void 0===t?void 0===r:vD(r,t)}}(e[0],e[1]);return t=vE(n=t=e,void 0,n,new Map,void 0),e=>vD(e,t);default:return function(t){return tU(t,e)}}}(n),function(){for(var e=arguments.length,n=Array(e),r=0;r<e;r++)n[r]=arguments[r];return t.apply(this,n.slice(0,1))})).map(vS):[]}function vI(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function vM(e,t){return Math.abs(e.height-t.height)>1||Math.abs(e.left-t.left)>1||Math.abs(e.top-t.top)>1||Math.abs(e.width-t.width)>1}function vT(e){var t=e.getBoundingClientRect();return{height:t.height,left:t.left,top:t.top,width:t.width}}function vN(e){this._context=e}function vz(e){return new vN(e)}function vL(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function vR(){let e=vL(["M",",",""]);return vR=function(){return e},e}function vB(){let e=vL(["Z"]);return vB=function(){return e},e}function vF(){let e=vL(["L",",",""]);return vF=function(){return e},e}function vH(){let e=vL(["Q",",",",",",",""]);return vH=function(){return e},e}function vU(){let e=vL(["C",",",",",",",",",",",""]);return vU=function(){return e},e}function vq(){let e=vL(["M",",",""]);return vq=function(){return e},e}function vK(){let e=vL(["L",",",""]);return vK=function(){return e},e}function vW(){let e=vL(["L",",",""]);return vW=function(){return e},e}function vV(){let e=vL(["A",",",",0,0,",",",",",""]);return vV=function(){return e},e}function vG(){let e=vL(["M",",",""]);return vG=function(){return e},e}function vY(){let e=vL(["L",",",""]);return vY=function(){return e},e}function v$(){let e=vL(["A",",",",0,1,",",",",","A",",",",0,1,",",",",",""]);return v$=function(){return e},e}function vX(){let e=vL(["A",",",",0,",",",",",",",""]);return vX=function(){return e},e}function vZ(){let e=vL(["M",",","h","v","h","Z"]);return vZ=function(){return e},e}vN.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e*=1,t*=1,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t)}}};let vQ=Math.PI,vJ=2*vQ,v0=vJ-1e-6;function v1(e){this._+=e[0];for(let t=1,n=e.length;t<n;++t)this._+=arguments[t]+e[t]}class v2{moveTo(e,t){this._append(vR(),this._x0=this._x1=+e,this._y0=this._y1=+t)}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._append(vB()))}lineTo(e,t){this._append(vF(),this._x1=+e,this._y1=+t)}quadraticCurveTo(e,t,n,r){this._append(vH(),+e,+t,this._x1=+n,this._y1=+r)}bezierCurveTo(e,t,n,r,a,i){this._append(vU(),+e,+t,+n,+r,this._x1=+a,this._y1=+i)}arcTo(e,t,n,r,a){if(e*=1,t*=1,n*=1,r*=1,(a*=1)<0)throw Error("negative radius: ".concat(a));let i=this._x1,o=this._y1,l=n-e,s=r-t,c=i-e,p=o-t,u=c*c+p*p;if(null===this._x1)this._append(vq(),this._x1=e,this._y1=t);else if(u>1e-6)if(Math.abs(p*l-s*c)>1e-6&&a){let d=n-i,f=r-o,h=l*l+s*s,g=Math.sqrt(h),y=Math.sqrt(u),m=a*Math.tan((vQ-Math.acos((h+u-(d*d+f*f))/(2*g*y)))/2),x=m/y,v=m/g;Math.abs(x-1)>1e-6&&this._append(vW(),e+x*c,t+x*p),this._append(vV(),a,a,+(p*d>c*f),this._x1=e+v*l,this._y1=t+v*s)}else this._append(vK(),this._x1=e,this._y1=t)}arc(e,t,n,r,a,i){if(e*=1,t*=1,n*=1,i=!!i,n<0)throw Error("negative radius: ".concat(n));let o=n*Math.cos(r),l=n*Math.sin(r),s=e+o,c=t+l,p=1^i,u=i?r-a:a-r;null===this._x1?this._append(vG(),s,c):(Math.abs(this._x1-s)>1e-6||Math.abs(this._y1-c)>1e-6)&&this._append(vY(),s,c),n&&(u<0&&(u=u%vJ+vJ),u>v0?this._append(v$(),n,n,p,e-o,t-l,n,n,p,this._x1=s,this._y1=c):u>1e-6&&this._append(vX(),n,n,+(u>=vQ),p,this._x1=e+n*Math.cos(a),this._y1=t+n*Math.sin(a)))}rect(e,t,n,r){this._append(vZ(),this._x0=this._x1=+e,this._y0=this._y1=+t,n*=1,+r,-n)}toString(){return this._}constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=null==e?v1:function(e){let t=Math.floor(e);if(!(t>=0))throw Error("invalid digits: ".concat(e));if(t>15)return v1;let n=10**t;return function(e){this._+=e[0];for(let t=1,r=e.length;t<r;++t)this._+=Math.round(arguments[t]*n)/n+e[t]}}(e)}}function v6(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(null==n)t=null;else{let e=Math.floor(n);if(!(e>=0))throw RangeError("invalid digits: ".concat(n));t=e}return e},()=>new v2(t)}function v4(e){return e[0]}function v9(e){return e[1]}function v3(e,t){var n=rh(!0),r=null,a=vz,i=null,o=v6(l);function l(l){var s,c,p,u=(l=rf(l)).length,d=!1;for(null==r&&(i=a(p=o())),s=0;s<=u;++s)!(s<u&&n(c=l[s],s,l))===d&&((d=!d)?i.lineStart():i.lineEnd()),d&&i.point(+e(c,s,l),+t(c,s,l));if(p)return i=null,p+""||null}return e="function"==typeof e?e:void 0===e?v4:rh(e),t="function"==typeof t?t:void 0===t?v9:rh(t),l.x=function(t){return arguments.length?(e="function"==typeof t?t:rh(+t),l):e},l.y=function(e){return arguments.length?(t="function"==typeof e?e:rh(+e),l):t},l.defined=function(e){return arguments.length?(n="function"==typeof e?e:rh(!!e),l):n},l.curve=function(e){return arguments.length?(a=e,null!=r&&(i=a(r)),l):a},l.context=function(e){return arguments.length?(null==e?r=i=null:i=a(r=e),l):r},l}function v5(e,t,n){var r=null,a=rh(!0),i=null,o=vz,l=null,s=v6(c);function c(c){var p,u,d,f,h,g=(c=rf(c)).length,y=!1,m=Array(g),x=Array(g);for(null==i&&(l=o(h=s())),p=0;p<=g;++p){if(!(p<g&&a(f=c[p],p,c))===y)if(y=!y)u=p,l.areaStart(),l.lineStart();else{for(l.lineEnd(),l.lineStart(),d=p-1;d>=u;--d)l.point(m[d],x[d]);l.lineEnd(),l.areaEnd()}y&&(m[p]=+e(f,p,c),x[p]=+t(f,p,c),l.point(r?+r(f,p,c):m[p],n?+n(f,p,c):x[p]))}if(h)return l=null,h+""||null}function p(){return v3().defined(a).curve(o).context(i)}return e="function"==typeof e?e:void 0===e?v4:rh(+e),t="function"==typeof t?t:void 0===t?rh(0):rh(+t),n="function"==typeof n?n:void 0===n?v9:rh(+n),c.x=function(t){return arguments.length?(e="function"==typeof t?t:rh(+t),r=null,c):e},c.x0=function(t){return arguments.length?(e="function"==typeof t?t:rh(+t),c):e},c.x1=function(e){return arguments.length?(r=null==e?null:"function"==typeof e?e:rh(+e),c):r},c.y=function(e){return arguments.length?(t="function"==typeof e?e:rh(+e),n=null,c):t},c.y0=function(e){return arguments.length?(t="function"==typeof e?e:rh(+e),c):t},c.y1=function(e){return arguments.length?(n=null==e?null:"function"==typeof e?e:rh(+e),c):n},c.lineX0=c.lineY0=function(){return p().x(e).y(t)},c.lineY1=function(){return p().x(e).y(n)},c.lineX1=function(){return p().x(r).y(t)},c.defined=function(e){return arguments.length?(a="function"==typeof e?e:rh(!!e),c):a},c.curve=function(e){return arguments.length?(o=e,null!=i&&(l=o(i)),c):o},c.context=function(e){return arguments.length?(null==e?i=l=null:l=o(i=e),c):i},c}function v7(e,t,n){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+n)/6)}function v8(e){this._context=e}function be(){}function bt(e){this._context=e}function bn(e){this._context=e}v2.prototype,v8.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:v7(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e*=1,t*=1,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:v7(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}},bt.prototype={areaStart:be,areaEnd:be,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(e,t){switch(e*=1,t*=1,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:v7(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}},bn.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e*=1,t*=1,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+e)/6,r=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:v7(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};class br{areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line}point(e,t){switch(e*=1,t*=1,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,t,e,t):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+t)/2,e,this._y0,e,t)}this._x0=e,this._y0=t}constructor(e,t){this._context=e,this._x=t}}function ba(e){this._context=e}ba.prototype={areaStart:be,areaEnd:be,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e*=1,t*=1,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function bi(e,t,n){var r=e._x1-e._x0,a=t-e._x1,i=(e._y1-e._y0)/(r||a<0&&-0),o=(n-e._y1)/(a||r<0&&-0);return((i<0?-1:1)+(o<0?-1:1))*Math.min(Math.abs(i),Math.abs(o),.5*Math.abs((i*a+o*r)/(r+a)))||0}function bo(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function bl(e,t,n){var r=e._x0,a=e._y0,i=e._x1,o=e._y1,l=(i-r)/3;e._context.bezierCurveTo(r+l,a+l*t,i-l,o-l*n,i,o)}function bs(e){this._context=e}function bc(e){this._context=new bp(e)}function bp(e){this._context=e}function bu(e){this._context=e}function bd(e){var t,n,r=e.length-1,a=Array(r),i=Array(r),o=Array(r);for(a[0]=0,i[0]=2,o[0]=e[0]+2*e[1],t=1;t<r-1;++t)a[t]=1,i[t]=4,o[t]=4*e[t]+2*e[t+1];for(a[r-1]=2,i[r-1]=7,o[r-1]=8*e[r-1]+e[r],t=1;t<r;++t)n=a[t]/i[t-1],i[t]-=n,o[t]-=n*o[t-1];for(a[r-1]=o[r-1]/i[r-1],t=r-2;t>=0;--t)a[t]=(o[t]-a[t+1])/i[t];for(t=0,i[r-1]=(e[r]+a[r-1])/2;t<r-1;++t)i[t]=2*e[t+1]-a[t+1];return[a,i]}function bf(e,t){this._context=e,this._t=t}function bh(){return(bh=Object.assign.bind()).apply(null,arguments)}function bg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function by(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};
1t%2?bg(Object(n),!0).forEach(function(t){var r,a,i;r=e,a=t,i=n[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):bg(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}bs.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:bl(this,this._t0,bo(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(t*=1,(e*=1)!==this._x1||t!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,bl(this,bo(this,n=bi(this,e,t)),n);break;default:bl(this,this._t0,n=bi(this,e,t))}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}},(bc.prototype=Object.create(bs.prototype)).point=function(e,t){bs.prototype.point.call(this,t,e)},bp.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,n,r,a,i){this._context.bezierCurveTo(t,e,r,n,i,a)}},bu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,n=e.length;if(n)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),2===n)this._context.lineTo(e[1],t[1]);else for(var r=bd(e),a=bd(t),i=0,o=1;o<n;++i,++o)this._context.bezierCurveTo(r[0][i],a[0][i],r[1][i],a[1][i],e[o],t[o]);(this._line||0!==this._line&&1===n)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(e,t){this._x.push(+e),this._y.push(+t)}},bf.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&2===this._point&&this._context.lineTo(this._x,this._y),(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e*=1,t*=1,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}}this._x=e,this._y=t}};var bm={curveBasisClosed:function(e){return new bt(e)},curveBasisOpen:function(e){return new bn(e)},curveBasis:function(e){return new v8(e)},curveBumpX:function(e){return new br(e,!0)},curveBumpY:function(e){return new br(e,!1)},curveLinearClosed:function(e){return new ba(e)},curveLinear:vz,curveMonotoneX:function(e){return new bs(e)},curveMonotoneY:function(e){return new bc(e)},curveNatural:function(e){return new bu(e)},curveStep:function(e){return new bf(e,.5)},curveStepAfter:function(e){return new bf(e,1)},curveStepBefore:function(e){return new bf(e,0)}},bx=e=>rb(e.x)&&rb(e.y),bv=e=>null!=e.base&&bx(e.base)&&bx(e),bb=e=>e.x,bw=e=>e.y,bk={connectNulls:!1,type:"linear"},bA=e=>{var t=e.className,n=e.points,r=e.path,a=e.pathRef,i=ag();if((!n||!n.length)&&!r)return null;var o={type:e.type,points:e.points,baseLine:e.baseLine,layout:e.layout||i,connectNulls:e.connectNulls},l=n&&n.length?(e=>{var t=e.type,n=void 0===t?bk.type:t,r=e.points,a=void 0===r?[]:r,i=e.base
1Line,o=e.layout,l=e.connectNulls,s=void 0===l?bk.connectNulls:l,c=((e,t)=>{if("function"==typeof e)return e;var n="curve".concat(t2(e));if(("curveMonotone"===n||"curveBump"===n)&&t){var r=bm["".concat(n).concat("vertical"===t?"Y":"X")];if(r)return r}return bm[n]||vz})(n,o),p=s?a.filter(bx):a;if(Array.isArray(i)){var u=a.map((e,t)=>by(by({},e),{},{base:i[t]}));return("vertical"===o?v5().y(bw).x1(bb).x0(e=>e.base.x):v5().x(bb).y1(bw).y0(e=>e.base.y)).defined(bv).curve(c)(s?u.filter(bv):u)}return("vertical"===o&&tY(i)?v5().y(bw).x1(bb).x0(i):tY(i)?v5().x(bb).y1(bw).y0(i):v3().x(bb).y(bw)).defined(bx).curve(c)(p)})(o):r;return C.createElement("path",bh({},he(e),g8(e),{className:r1("recharts-curve",t),d:null===l?void 0:l,ref:a}))},b_=["x","y","top","left","width","height","className"];function bE(){return(bE=Object.assign.bind()).apply(null,arguments)}function bj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}var bO=e=>{var t=e.x,n=void 0===t?0:t,r=e.y,a=void 0===r?0:r,i=e.top,o=void 0===i?0:i,l=e.left,s=void 0===l?0:l,c=e.width,p=void 0===c?0:c,u=e.height,d=void 0===u?0:u,f=e.className,h=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?bj(Object(n),!0).forEach(function(t){var r,a,i;r=e,a=t,i=n[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):bj(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({x:n,y:a,top:o,left:s,width:p,height:d},function(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n={};for(var r in e)if(({}).hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],-1===t.indexOf(n)&&({}).propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}(e,b_));return tY(n)&&tY(a)&&tY(p)&&tY(d)&&tY(o)&&tY(s)?C.createElement("path",bE({},hn(h),{className:r1("recharts-cross",f),d:"M".concat(n,",").concat(o,"v").concat(d,"M").concat(s,",").concat(a,"h").concat(p)})):null};function bC(e){var t=e.cx,n=e.cy,r=e.radius,a=e.startAngle,i=e.endAngle;return{points:[aJ(t,n,r,a),aJ(t,n,r,i)],cx:t,cy:n,radius:r,startAngle:a,endAngle:i}}function bD(){return(bD=Object.assign.bind()).apply(null,arguments)}function bS(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var bP=e=>{var t=e.cx,n=e.cy,r=e.radius,a=e.angle,i=e.sign,o=e.isExternal,l=e.cornerRadius,s=e.cornerIsExternal,c=l*(o?1:-1)+r,p=Math.asin(l/c)/aQ,u=s?a:a+i*p,d=aJ(t,n,c,u);return{center:d,circleTangency:aJ(t,n,r,u),lineTangency:aJ(t,n,c*Math.cos(p*aQ),s?a-i*p:a),theta:p}},bI=e=>{var t=e.cx,n=e.cy,r=e.innerRadius,a=e.outerRadius,i=e.startAngle,o=((e,t)=>tW(t-e)*Math.min(Math.abs(t-e),359.999))(i,e.endAngle),l=i+o,s=aJ(t,n,a,i),c=aJ(t,n,a,l),p=tK(b||(b=bS(["M ",",","\n A ",",",",0,\n ",",",",\n ",",","\n "])),s.x,s.y,a,a,+(Math.abs(o)>180),+(i>l),c.x,c.y);if(r>0){var u=aJ(t,n,r,i),d=aJ(t,n,r,l);p+=tK(w||(w=bS(["L ",",","\n A ",",",",0,\n ",",",",\n ",","," Z"])),d.x,d.y,r,r,+(Math.abs(o)>180),+(i<=l),u.x,u.y)}else p+=tK(k||(k=bS(["L ",","," Z"])),t,n);return p},bM={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},bT=e=>{var t,n=hV(e,bM),r=n.cx,a=n.cy,i=n.innerRadius,o=n.outerRadius,l=n.cornerRadius,s=n.forceCornerRadius,c=n.cornerIsExternal,p=n.startAngle,u=n.endAngle,d=n.className;if(o<i||p===u)return null;var f=r1("recharts-sector",d),h=o-i,g=tQ(l,h,0,!0);return t=g>0&&360>Math.abs(p-u)?(e=>{var t=e.cx,n=e.cy,r=e.innerRadius,a=e.outerRadius,i=e.cornerRadius,o=e.forceCornerRadius,l=e.cornerIsExternal,s=e.startAngle,c=e.endAngle,p=tW(c-s),u=bP({cx:t,cy:n,radius:a,angle:s,sign:p,cornerRadius:i,cornerIsExternal:l}),d=u.circleTangency,f=u.lineTangency,h=u.theta,g=bP({cx:t,cy:n,radius:a,angle:c,sign:-p,cornerRadius:i,cornerIsExternal:l}),y=g.circleTangency,m=g.lineTangency,x=g.theta,v=l?Math.abs(s-c):Math.abs(s-c)-h-x;if(v<0)return o?tK(A||(A=bS(["M ",",","\n a",",",",0,0,1,",",0\n a",",",",0,0,1,",",0\n "])),f.x,f.y,i,i,2*i,i,i,-(2*i)):bI({cx:t,cy:n,innerRadius:r,outerRadius:a,startAngle:s,endAngle:c});var b=tK(_||(_=bS(["M ",",","\n A",",",",0,0,",",",",","\n A",",",",0,",",",",",",","\n A",",",",0,0,",",",",","\n "])),f.x,f.y,i,i,+(p<0),d.x,d.y,a,a,+(v>180),+(p<0),y.x,y.y,i,i,+(p<0),m.x,m.y);if(r>0){var w=bP({cx:t,cy:n,radius:r,angle:s,sign:p,isExternal:!0,cornerRadius:i,cornerIsExternal:l}),k=w.circleTangency,O=w.lineTangency,C=w.theta,D=bP({cx:t,cy:n,radius:r,angle:c,sign:-p,isExternal:!0,cornerRadius:i,cornerIsExternal:l}),S=D.circleTangency,P=D.lineTangency,I=D.theta,M=l?Math.abs(s-c):Math.abs(s-c)-C-I;if(M<0&&0===i)return"".concat(b,"L").concat(t,",").concat(n,"Z");b+=tK(E||(E=bS(["L",",","\n A",",",",0,0,",",",",","\n A",",",",0,",",",",",",","\n A",",",",0,0,",",",",","Z"])),P.x,P.y,i,i,+(p<0),S.x,S.y,r,r,+(M>180),+(p>0),k.x,k.y,i,i,+(p<0),O.x,O.y)}else b+=tK(j||(j=bS(["L",",","Z"])),t,n);return b})({cx:r,cy:a,innerRadius:i,outerRadius:o,cornerRadius:Math.min(g,h/2),forceCornerRadius:s,cornerIsExternal:c,startAngle:p,endAngle:u}):bI({cx:r,cy:a,innerRadius:i,outerRadius:o,startAngle:p,endAngle:u}),C.createElement("path",bD({},hn(n),{className:f,d:t}))};function bN(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function bz(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};
1t%2?bN(Object(n),!0).forEach(function(t){var r,a,i;r=e,a=t,i=n[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):bN(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function bL(){return(bL=Object.assign.bind()).apply(null,arguments)}function bR(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function bB(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?bR(Object(n),!0).forEach(function(t){var r,a,i;r=e,a=t,i=n[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):bR(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function bF(e){var t=e.cursor,n=e.cursorComp,r=e.cursorProps;return(0,C.isValidElement)(t)?(0,C.cloneElement)(t,r):(0,C.createElement)(n,r)}function bH(e){var t,n,r,a,i,o=e.coordinate,l=e.payload,s=e.index,c=e.offset,p=e.tooltipAxisBandSize,u=e.layout,d=e.cursor,f=e.tooltipEventType,h=e.chartName;if(!d||!o||"ScatterChart"!==h&&"axis"!==f)return null;if("ScatterChart"===h)r=o,a=bO,i=a0.cursorLine;else if("BarChart"===h)t=p/2,r={stroke:"none",fill:"#ccc",x:"horizontal"===u?o.x-t:c.left+.5,y:"horizontal"===u?c.top+.5:o.y-t,width:"horizontal"===u?p:c.width-1,height:"horizontal"===u?c.height-1:p},a=yP,i=a0.cursorRectangle;else if("radial"===u&&g7(o)){var g=bC(o),y=g.cx,m=g.cy,x=g.radius;r={cx:y,cy:m,startAngle:g.startAngle,endAngle:g.endAngle,innerRadius:x,outerRadius:x},a=bT,i=a0.cursorLine}else r={points:function(e,t,n){if("horizontal"===e)return[{x:t.x,y:n.top},{x:t.x,y:n.top+n.height}];if("vertical"===e)return[{x:n.left,y:t.y},{x:n.left+n.width,y:t.y}];if(g7(t)){if("centric"===e){var r=t.cx,a=t.cy,i=t.innerRadius,o=t.outerRadius,l=t.angle,s=aJ(r,a,i,l),c=aJ(r,a,o,l);return[{x:s.x,y:s.y},{x:c.x,y:c.y}]}return bC(t)}}(u,o,c)},a=bA,i=a0.cursorLine;var v="object"==typeof d&&"className"in d?d.className:void 0,b=bB(bB(bB(bB({stroke:"#ccc",pointerEvents:"none"},c),r),ht(d)),{},{payload:l,payloadIndex:s,className:r1("recharts-tooltip-cursor",v)});return C.createElement(gS,{zIndex:null!=(n=e.zIndex)?n:i},C.createElement(bF,{cursor:d,cursorComp:a,cursorProps:b}))}function bU(e){var t,n,r,a=(t=re(cQ),n=re(uQ),r=re(u$),t&&r?rL(bz(bz({},t),{},{scale:r}),n):rL(void 0,n)),i=au(),o=ag(),l=re(aV);return null==a||null==i||null==o||null==l?null:C.createElement(bH,bL({},e,{offset:i,layout:o,tooltipAxisBandSize:a,chartName:l}))}function bq(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function bK(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?bq(Object(n),!0).forEach(function(t){var r,a,i;r=e,a=t,i=n[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):bq(Object(n)).forEac
1h(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function bW(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function bV(e){return e.dataKey}var bG=[],bY={allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:"ease",axisId:0,contentStyle:{},cursor:!0,filterNull:!0,includeHidden:!1,isAnimationActive:"auto",itemSorter:"name",itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:" : ",trigger:"hover",useTranslate3d:!1,wrapperStyle:{}};function b$(e){var t,n,r,a,i,o,l,s,c,p,u,d,f=hV(e,bY),h=f.active,g=f.allowEscapeViewBox,y=f.animationDuration,m=f.animationEasing,x=f.content,v=f.filterNull,b=f.isAnimationActive,w=f.offset,k=f.payloadUniqBy,A=f.position,_=f.reverseDirection,E=f.useTranslate3d,j=f.wrapperStyle,O=f.cursor,D=f.shared,S=f.trigger,P=f.defaultIndex,I=f.portal,M=f.axisId,T=n3(),N="number"==typeof P?String(P):P;(0,C.useEffect)(()=>{T(ny({shared:D,trigger:S,axisId:M,active:h,defaultIndex:N}))},[T,D,S,M,h,N]);var z=ac(),L=f4(),R=re(e=>ur(e,D)),B=null!=(u=re(e=>dx(e,R,S,N)))?u:{},F=B.activeIndex,H=B.isActive,U=re(e=>dm(e,R,S,N)),q=re(e=>dy(e,R,S,N)),K=re(e=>dg(e,R,S,N)),W=(0,C.useContext)(h_),V=null!=(d=null!=h?h:H)&&d,G=function(e){if(Array.isArray(e))return e}(t=function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=function(e){if(Array.isArray(e))return e}(e=(0,C.useState)({height:0,left:0,top:0,width:0}))||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],s=!0,c=!1;try{i=(n=n.call(e)).next,!1;for(;!(s=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);s=!0);}catch(e){c=!0,a=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return l}}(e,2)||function(e,t){if(e){if("string"==typeof e)return vI(e,2);var n=({}).toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?vI(e,t):void 0}}(e,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),r=n[0],a=n[1],i=(0,C.useRef)(null),o=(0,C.useRef)(r);o.current=r;var l=(0,C.useCallback)(e=>{if(null!=i.current&&(i.current.disconnect(),i.current=null),null!=e){var t=vT(e);if(vM(t,o.current)&&a(t),"undefined"!=typeof ResizeObserver){var n=new ResizeObserver(()=>{var t=vT(e);vM(t,o.current)&&a(t)});n.observe(e),i.current=n}}},[...t]);return(0,C.useEffect)(()=>()=>{var e;null==(e=i.current)||e.disconnect()},[]),[r,l]}([U,V]))||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,l=[],s=!0,c=!1;try{i=(n=n.call(e)).next,!1;for(;!(s=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);s=!0);}catch(e){c=!0,a=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return l}}(t,2)||function(e,t){if(e){if("string"==typeof e)return bW(e,2);var n=({}).toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?bW(e,t):void 0}}(t,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),Y=G[0],$=G[1],X="axis"===R?q:void 0;n=re(e=>((e,t,n)=>{if(null!=t){var r=ud(e);return"axis"===t?"hover"===n?r.axisInteraction.hover.dataKey:r.axisInteraction.click.dataKey:"hover"===n?r.itemInteraction.hover.dataKey:r.itemInteraction.click.dataKey}})(e,R,S)),r=re(u3),a=re(a$),i=re(aG),o=re(aY),s=(null==(l=re(hv))?void 0:l.sourceViewBox)!=null,c=ac(),(0,C.useEffect)(()=>{if(!s&&null!=i&&null!=a){var e=nA({active:V,coordinate:K,dataKey:n,index:F,label:"number"==typeof X?String(X):X,sourceViewBox:c,graphicalItemId:r});
1hy.emit(hm,i,e,a)}},[s,K,n,r,F,X,a,i,o,V,c]);var Z=null!=I?I:W;if(null==Z||null==z||null==R)return null;var Q=null!=U?U:bG;V||(Q=bG),v&&Q.length&&(p=Q.filter(e=>null!=e.value&&(!0!==e.hide||f.includeHidden)),Q=!0===k?vP(p,bV):"function"==typeof k?vP(p,k):p);var J=Q.length>0,ee=bK(bK({},f),{},{payload:Q,label:X,active:V,activeIndex:F,coordinate:K,accessibilityLayer:L}),et=C.createElement(vk,{allowEscapeViewBox:g,animationDuration:y,animationEasing:m,isAnimationActive:b,active:V,coordinate:K,hasPayload:J,offset:w,position:A,reverseDirection:_,useTranslate3d:E,viewBox:z,wrapperStyle:j,lastBoundingBox:Y,innerRef:$,hasPortalFromProps:!!I},C.isValidElement(x)?C.cloneElement(x,ee):"function"==typeof x?C.createElement(x,ee):C.createElement(vg,ee));return C.createElement(C.Fragment,null,(0,gD.createPortal)(et,Z),V&&C.createElement(bU,{cursor:O,tooltipEventType:R,coordinate:K,payload:Q,index:F}))}var bX=e.i(72138);let bZ=[{name:"Vectorised Optimiser",value:5.17,description:"Smart batching for fast parameter update in Muon optimiser"},{name:"Data Augmentation",value:6.95,description:"Perform crops in a fully vectorised fashion and introduces colour-based data augmentation"},{name:"Compilation",value:7.92,description:"Forwards and backwards pass steps are moved into a function and compiled"},{name:"Architecture",value:12.82,description:"GELU activation function changed to SiLU"},{name:"Tuning",value:19.92,description:"Various hyperparameter changes + minor changes relating to float types and memory formats"},{name:"Test-time Augmentation",value:22.2,description:"Test-time augmentation only for images below a confidence threshold"}],bQ=[{name:"Gemini 2.5 Pro",value:10.04},{name:"SOTA Classical Planner",value:37.55},{name:"Hive",value:99.63}];function bJ(e){let{payload:t,label:n,active:r,labelFn:a}=e;if(r){let e=t[0].payload;return(0,O.jsx)("div",{className:"custom-tooltip",style:{background:"white",padding:"10px",border:"solid 1px #bcbcbc",fontWeight:300},children:a(e)})}return null}function b0(){return(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)("p",{children:"The world runs on algorithms. They don't just dictate search results or social media feedsâthey are the lifeblood of modern industry. From orchestrating supply chains to training and running AI models, algorithms power the backbone of business today. But current algorithms fall short of today's challenges. Systems are scaling exponentially while computational resources remain constrained, and problems across industries are more diverse than ever. With algorithmic expertise increasingly scarce compared to growing demand, this gap means we're approaching the limits of what's possible with traditional approaches, curtailing growth and putting efficiency gains out of reach. What's needed is a way to discover breakthrough algorithmsâhighly tailored to each specific challengeâwhilst democratising access."}),(0,O.jsxs)("p",{children:[(0,O.jsx)("b",{children:"Hiverge is building algorithmic superintelligence"}),": an AI discovery engine that writes breakthrough code and algorithms. Our system continuously optimises code uniquely tailored to each user's specific challenges, based on concrete metrics. From resource allocation to machine learning acceleration, we're building technology that discovers algorithms capable of transforming entire operational paradigms. Unlike traditional software engineering, which focuses on building applications and systems, our technology specialises in algorithmic discoveryâfinding novel computational approaches to solve complex problems."]}),(0,O.jsx)("p",{}),(0,O.jsx)("h2",{children:"Where are we today?"}),(0,O.jsxs)("p",{children:["Over the past few months, we have built our core platform for algorithmic discovery, ",(0,O.jsx)("em",{children:"the Hive"}),". Behind the Hive lies state-of-the-art program synthesis technology that combines language models with advanced search algorithms. This platform is rooted in rigorous scientific methodology, building upon our deep expertise in program synthesis research (e.g., ",(0,O.jsx)("a",{href:"https://www.nature.com/articles/s41586-022-05172-4",target:"_blank",children:"AlphaTensor"}),", ",(0,O.jsx)("a",{href:"https://www.nature.com/articles/s41586-023-06924-6",target:"_blank",children:"FunSearch"})," and the early stages of ",(0,O.jsx)("a",{href:"https://deepmind.google/discover/blog/alphaevolve-a-gemini-powered-coding-agent-for-designing-advanced-algorithms/",target:"_blank",children:"AlphaEvolve"}),"). Below, we offer a sneak peek into the first real-world applications of the Hive, with more in-depth posts coming in the next few weeks."]}),(0,O.jsx)("p",{}),(0,O.jsx)("h3",{children:"Accelerating AI algorithms"}),(0,O.jsx)("p",{children:"AI models are notoriously resource-intensive, consuming vast amounts of computational power and time for training and inference. Making AI models train and run faster is now of paramount importanceânot just for cost efficiency, but also for enabling real-time applications and reducing environmental impact. However, achieving this is highly challenging and demands deep technical expertise."}),(0,O.jsxs)("p",{children:["To test the Hiveâs ability to make novel contributions to this area, we evaluated it on the task of accelerating the training of a neural network for the popular CIFAR-10 image dataset. The Hive discovered ",(0,O.jsx)("a",{href:"https://github.com/hiverge/cifar10-speedrun",target:"_blank",children:"novel optimisations that reduced training time by more than 20%"})," compared to existing ",(0,O.jsx)("a",{href:"https://github.com/KellerJordan/cifar
110-airbench",target:"_blank",children:"best-known human-engineered training algorithms"}),". ",(0,O.jsx)("a",{href:"#figure1",children:"Figure 1"})," summarises the algorithmic ideas implemented by the Hive, and the relative contribution of each in speeding up the training. The Hive implemented a diverse range of algorithmic ideas, many of which were surprising and novel to us; including a smart selective test time augmentation approach, vectorisation of the optimiser and data augmentation procedure, as well as modifications to the model architecture."]}),(0,O.jsx)("span",{id:"figure1",style:{position:"absolute",transform:"translateY(-20vh)"}}),(0,O.jsx)("h4",{style:{textAlign:"center",marginTop:"30px",fontSize:"18px",fontWeight:"bold"},children:"Figure 1: CIFAR-10 training speedup obtained by the Hive"}),(0,O.jsx)(as,{width:"100%",height:400,children:(0,O.jsxs)(hQ,{width:200,height:300,data:function(e){let t=Array(e.length),n=0;for(let r=0;r<t.length;++r)t[r]={...e[r]},t[r].prevValue=n,t[r].incrementValue=e[r].value-n,n=e[r].value;return t}(bZ),margin:{top:20,right:30,left:20,bottom:100},children:[(0,O.jsx)(vs,{strokeDasharray:"3 3"}),(0,O.jsx)(xU,{dataKey:"name",tick:{fontSize:"13px"},angle:-45,textAnchor:"end"}),(0,O.jsx)(xJ,{children:(0,O.jsx)(gK,{angle:-90,value:"Speedup (%)",position:"insideLeft",style:{textAnchor:"middle"}})}),(0,O.jsx)(b$,{content:(0,O.jsx)(bJ,{labelFn:e=>(0,O.jsxs)("div",{children:[(0,O.jsx)("p",{children:e.description}),(0,O.jsx)("br",{}),(0,O.jsxs)("b",{children:["Cumulative improvement: ",e.value,"%"]})]})}),cursor:{fill:"#d9def180"}}),(0,O.jsx)(mq,{dataKey:"prevValue",stackId:"a",fill:"#ededed80"}),(0,O.jsx)(mq,{dataKey:"incrementValue",stackId:"a",fill:"#2236EB",activeBar:(0,O.jsx)(yP,{fill:"#1024D1"})})]})}),(0,O.jsxs)("p",{children:["We also ran the Hive to optimise the training of a language model â ",(0,O.jsx)("a",{href:"https://github.com/KellerJordan/modded-nanogpt",target:"_blank",children:"a smaller version of the GPT-2 model"}),". The Hive discovered new ideas to accelerate training, ",(0,O.jsx)("a",{href:"https://github.com/KellerJordan/modded-nanogpt/pull/125",target:"_blank",children:"leading to a ~1.25% reduction of training time"})," relative to the previous state-of-the-art. This improvement comes on top of cumulative efforts by top AI engineers to optimise the training code over the past year. This result marks an important milestone, especially in light of ",(0,O.jsx)("a",{href:"https://arxiv.org/abs/2506.22419",target:"_blank",children:"prior works"})," highlighting that current LLMs notably struggle in this task."]}),(0,O.jsx)("p",{children:"Beyond these benchmarks, we found that the Hiveâs ideas are generic enough to be applicable across multiple settings. In fact, when we analysed the improvements obtained by the Hive, we found that some ideas (e.g., the vectorisation of the optimiser) were common across both CIFAR-10 and GPT-2 training tasks. We are excited about the opportunity of applying these ideas to a wide variety of models."}),(0,O.jsx)("p",{}),(0,O.jsx)("h3",{children:"Algorithms for sequential planning"}),(0,O.jsx)("p",{children:"Another use-case of the Hive that we have been working on is sequential planning. Planning problems are ubiquitous across a wide range of areas, including robotics, aerospace and supply chain management. Long-horizon planning is notoriously difficult with current approaches either based on advanced classical search methods or reinforcement learning. Indeed, classical algorithms only work for small-medium range problems, while reinforcement learning-based models are difficult and computationally intensive to train. At the same time, while LLMs excel at many tasks, they notoriously struggle with complex multi-step planning."}),(0,O.jsxs)("p",{children:["We have tested the capabilities of the Hive on a challenging real-world planning problem from Airbus operations. The problem involves finding the optimal way of moving jigs from Beluga airplanes to production lines in a coordinated approach, while satisfying several complex constraints. This is a difficult problem where traditional state-of-the-art planning algorithms quickly hit scaling limits and LLMs fail to progress. In contrast, the Hive discovered a planning strategy that not only solved almost all problems in our testing problem set, but also delivered solutions up to 1,000 times faster on average than existing approachesâa performance that earned us the ",(0,O.jsx)("a",{href:"https://tuples.ai/2025/09/16/recognizing-excellence-in-the-beluga-ai-challenge-hiverge-wins-both-scalability-tracks/",target:"_blank",children:"first place"})," in the Airbus Beluga scalability challenge. ",(0,O.jsx)("a",{href:"#figure2",children:"Figure 2"})," shows the performance of the planning algorithm discovered by the Hive compared with other state-of-the-art approaches."]}),(0,O.jsx)("span",{id:"figure2",style:{position:"absolute",transform:"translateY(-20vh)"}}),(0,O.jsx)("h4",{style:{textAlign:"center",marginTop:"30px",fontSize:"18px",fontWeight:"bold"},children:"Figure 2: The Hive for sequential planning"}),(0,O.jsx)(as,{width:"100%",height:250,children:(0,O.jsxs)(hQ,{width:200,height:250,data:bQ,layout:"vertical",margin:{top:20,right:30,left:30,bottom:20},children:[(0,O.jsx)(vs,{strokeDasharray:"3 3"}),(0,O.jsx)(xU,{type:"number",children:(0,O.jsx)(gK,{value:"Problems solved (%)",position:"insideBottom",offset:-10})}),(0,O.jsx)(xJ,{dataKey:"name",type:"category"}),(0,O.jsx)(b$,{content:(0,O.jsx)(bJ,{labelFn:e=>"".concat(e.value,"%")}),cursor:{fill:"#d9def180"}}),(0,O.jsx)(mq,{dataKey:"value",children:bQ.map((e,t)=>
1(0,O.jsx)(h6,{fill:e.name.startsWith("Hive")?"#2236EB":"#B0BAE0"},"cell-".concat(t)))})]})}),(0,O.jsx)("p",{children:"What makes these results truly remarkable is that we didnât provide the Hive with any strategic hints, pre-built frameworks, or domain expertise. Starting from nothing more than a barebones function header, the Hive independently proposed an intricate solution spanning over 1,000 lines of code. The discovered algorithm incorporates novel forward-thinking strategies that consider the long-term impact of current actions, along with intelligent safeguards to avoid dead-end statesâideas which are all specifically tailored towards the Airbus problem domain."}),(0,O.jsx)("p",{}),(0,O.jsx)("h2",{children:"Whatâs next?"}),(0,O.jsxs)("p",{children:["Weâre just getting started in executing our mission of building algorithmic superintelligence. With the Hive, we aim to empower engineers everywhere to tackle the most complex algorithmic challenges. We're giving early access to the Hive to selected customers. If you are interested in trying out the Hive, please fill the ",(0,O.jsx)(bX.default,{title:"join waitlist form",className:"join-waitlist-button",children:"join waitlist form"})," for us to understand your use-case, and we will get back to you."]}),(0,O.jsx)("p",{children:"We're building our vision alongside an exceptional team of researchers and engineers, backed by leading investors and industry experts. We are excited to announce that we have raised a $5M Seed led by Flying Fish Ventures, with participation from Ahren Innnovation Capital, 10x Founders, Alpha Intelligence Capital, 1st Kind, StemAI, Vela Partners, Cur8 Capital and Jeff Dean."}),(0,O.jsxs)("p",{children:["We're actively building our team. If you're passionate about algorithmic discovery and want to shape the future of AI, ",(0,O.jsx)("a",{href:"https://jobs.ashbyhq.com/hiverge",target:"_blank",children:"apply here"}),"!"]}),(0,O.jsx)("center",{children:(0,O.jsx)("img",{src:"/back/home/team2.jpg",alt:"Team",width:"600"})})]})}var b1=["axis"],b2=(0,C.forwardRef)((e,t)=>C.createElement(hX,{chartName:"LineChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:b1,tooltipPayloadSearcher:t9,categoricalChartProps:e,ref:t})),b6=C,b4=["animationElapsedTime","isAnimating","isEntrance","visibleLength","strokeDasharray","connectNulls"];function b9(){return(b9=Object.assign.bind()).apply(null,arguments)}function b3(e,t){return"".concat(t,"px ").concat(e,"px")}function b5(){return(b5=Object.assign.bind()).apply(null,arguments)}var b7=e=>{var t=e.cx,n=e.cy,r=e.r,a=r1("recharts-dot",e.className);return tY(t)&&tY(n)&&tY(r)?C.createElement("circle",b5({},he(e),g8(e),{className:a,cx:t,cy:n,r:r})):null},b8=["points"];function we(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function wt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?we(Object(n),!0).forEach(function(t){var r,a,i;r=e,a=t,i=n[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):we(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function wn(){return(wn=Object.assign.bind()).apply(null,arguments)}function wr(e){var t=e.option,n=e.dotProps,r=e.className;if((0,C.isValidElement)(t))return(0,C.cloneElement)(t,n);if("function"==typeof t)return t(n);var a=r1(r,"boolean"!=typeof t?t.className:""),i=null!=n?n:{},o=(i.points,function(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n={};for(var r in e)if(({}).hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],-1===t.indexOf(n)&&({}).propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}(i,b8));return C.createElement(b7,wn({},o,{className:a}))}function wa(e){var t=e.points,n=e.dot,r=e.className,a=e.dotClassName,i=e.dataKey,o=e.baseProps,l=e.needClip,s=e.clipPathId,c=e.zIndex,p=void 0===c?a0.scatter:c;if(null==t||!n&&1!==t.length)return null;var u=g5(n),d=null==n?null:(0,C.isValidElement)(n)?hn(n.props):"object"!=typeof n||Array.isArray(n)?null:hn(n),f=t.map((e,r)=>{var l,s,c=wt(wt(wt({r:3},o),d),{},{index:r,cx:null!=(l=e.x)?l:void 0,cy:null!=(s=e.y)?s:void 0,dataKey:i,value:e.value,payload:e.payload,points:t});return C.createElement(wr,{key:"dot-".concat(r),option:n,dotProps:c,className:a})}),h={};return l&&null!=s&&(h.clipPath="url(#clipPath-".concat(u?"":"dots-").concat(s,")")),C.createElement(gS,{zIndex:p},C.createElement(h2,wn({className:r},h),f))}function wi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function wo(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};
1t%2?wi(Object(n),!0).forEach(function(t){var r,a,i;r=e,a=t,i=n[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):wi(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var wl=e=>{var t,n=e.point,r=e.childIndex,a=e.mainColor,i=e.activeDot,o=e.dataKey,l=e.clipPath;if(!1===i||null==n.x||null==n.y)return null;var s=wo(wo(wo({},{index:r,dataKey:o,cx:n.x,cy:n.y,r:4,fill:null!=a?a:"none",strokeWidth:2,stroke:"#fff",payload:n.payload,value:n.value}),ht(i)),g8(i));return t=(0,C.isValidElement)(i)?(0,C.cloneElement)(i,s):"function"==typeof i?i(s):C.createElement(b7,s),C.createElement(h2,{className:"recharts-active-dot",clipPath:l},t)};function ws(e){var t=e.points,n=e.mainColor,r=e.activeDot,a=e.itemDataKey,i=e.clipPath,o=e.zIndex,l=void 0===o?a0.activeDot:o,s=re(u6),c=re(dn);if(null==t||null==c)return null;var p=t.find(e=>c.includes(e.payload));return null==p?null:C.createElement(gS,{zIndex:l},C.createElement(wl,{point:p,childIndex:Number(s),mainColor:n,dataKey:a,activeDot:r,clipPath:i}))}var wc=(e,t,n,r)=>p3(e,"xAxis",t,r),wp=(e,t,n,r)=>p9(e,"xAxis",t,r),wu=(e,t,n,r)=>p3(e,"yAxis",n,r),wd=(e,t,n,r)=>p9(e,"yAxis",n,r),wf=n1([ah,wc,wu,wp,wd],(e,t,n,r,a)=>rD(e,"xAxis")?rL(t,r,!1):rL(n,a,!1));function wh(e){return"line"===e.type}var wg=n1([cI,(e,t,n,r,a)=>a],(e,t)=>e.filter(wh).find(e=>e.id===t)),wy=n1([ah,wc,wu,wp,wd,wg,wf,aA],(e,t,n,r,a,i,o,l)=>{var s,c=l.chartData,p=l.dataStartIndex,u=l.dataEndIndex;if(null!=i&&null!=t&&null!=n&&null!=r&&null!=a&&0!==r.length&&0!==a.length&&null!=o&&("horizontal"===e||"vertical"===e)){var d=i.dataKey,f=i.data;if(null!=(s=null!=f&&f.length>0?f:null==c?void 0:c.slice(p,u+1)))return function(e){var t=e.layout,n=e.xAxis,r=e.yAxis,a=e.xAxisTicks,i=e.yAxisTicks,o=e.dataKey,l=e.bandSize;return e.displayedData.map((e,s)=>{var c=rC(e,o);if("horizontal"===t){var p=rM({axis:n,ticks:a,bandSize:l,entry:e,index:s}),u=null==c?null:r.scale.map(c);return{x:p,y:null!=u?u:null,value:c,payload:e}}var d=null==c?null:n.scale.map(c),f=rM({axis:r,ticks:i,bandSize:l,entry:e,index:s});return null==d||null==f?null:{x:d,y:f,value:c,payload:e}}).filter(Boolean)}({layout:e,xAxis:t,yAxis:n,xAxisTicks:r,yAxisTicks:a,dataKey:d,bandSize:o,displayedData:s})}}),wm=["id"],wx=["type","layout","connectNulls","needClip","shape","strokeDasharray"],wv=["activeDot","animateNewValues","animationBegin","animationDuration","animationEasing","connectNulls","dot","hide","isAnimationActive","label","legendType","xAxisId","yAxisId","id"];function wb(){return(wb=Object.assign.bind()).apply(null,arguments)}function ww(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n={};for(var r in e)if(({}).hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],-1===t.indexOf(n)&&({}).propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function wk(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function wA(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?wk(Object(n),!0).forEach(function(t){var r,a,i;r=e,a=t,i=n[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):wk(Object(n)).forEac
1h(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var w_={activeDot:!0,animateNewValues:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",animationInterpolateFn:(e,t)=>{if(null==e)return[];if(1===t)return e.flatMap(e=>"removed"===e.status?[]:[e.next]);var n=function(e){var t=0,n=0;for(var r of e)"matched"===r.status&&null!=r.prev.x&&null!=r.next.x&&(t+=r.next.x-r.prev.x,n++);return n>0?t/n:0}(e),r=[];for(var a of e)if("matched"===a.status)r.push(wA(wA({},a.next),{},{x:t0(a.prev.x,a.next.x,t),y:t0(a.prev.y,a.next.y,t)}));else if("added"===a.status)if(null!=a.next.x){var i=a.next.x-n;r.push(wA(wA({},a.next),{},{x:t0(i,a.next.x,t),y:a.next.y}))}else r.push(a.next);else if("removed"===a.status&&null!=a.prev.x){var o=a.prev.x+n;r.push(wA(wA({},a.prev),{},{x:t0(a.prev.x,o,t),y:a.prev.y}))}return r},animationMatchBy:mi,connectNulls:!1,dot:!0,fill:"#fff",hide:!1,isAnimationActive:"auto",label:!1,legendType:"line",shape:function(e){e.animationElapsedTime,e.isAnimating,e.isEntrance;var t=e.visibleLength,n=e.strokeDasharray,r=e.connectNulls,a=function(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n={};for(var r in e)if(({}).hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],-1===t.indexOf(n)&&({}).propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}(e,b4);if(null!=t){var i,o,l=a.pathRef,s=function(e){try{return e&&e.getTotalLength&&e.getTotalLength()||0}catch(e){return 0}}(null!=(o=null==l?void 0:l.current)?o:null);i=n?function(e,t,n){var r=n.length%2!=0?[...n,...n]:n,a=r.reduce((e,t)=>e+t,0);if(!a)return b3(t,e);for(var i=Math.floor(e/a),o=e%a,l=[],s=0,c=0;s<r.length;c+=null!=(p=r[s])?p:0,++s){var p,u=r[s];if(null!=u&&c+u>o){l=[...r.slice(0,s),o-c];break}}var d=l.length%2==0?[0,t]:[t];return[...function(e,t){for(var n=[],r=0;r<t;++r)n.push(...e);return n}(r,i),...l,...d].map(e=>"".concat(e,"px")).join(", ")}(t,s,"".concat(n).split(/[,\s]+/gim).map(e=>parseFloat(e))):b3(s,t)}else null!=n&&(i=String(n));return C.createElement(bA,b9({},a,{connectNulls:null!=r&&r,strokeDasharray:i}))},stroke:"#3182bd",strokeWidth:1,xAxisId:0,yAxisId:0,zIndex:a0.line,type:"linear"},wE=b6.memo(e=>{var t=e.dataKey,n=e.data,r=e.stroke,a=e.strokeWidth,i=e.fill,o=e.name,l=e.hide,s=e.unit,c=e.formatter,p=e.tooltipType,u=e.id,d={dataDefinedOnItem:n,getPosition:t4,settings:{stroke:r,strokeWidth:a,fill:i,dataKey:t,nameKey:void 0,name:rB(o,t),hide:l,type:p,color:r,unit:s,formatter:c,graphicalItemId:u}};return b6.createElement(yH,{tooltipEntrySettings:d})});function wj(e){var t=e.clipPathId,n=e.points,r=e.props,a=r.dot,i=r.dataKey,o=r.needClip;r.id;var l=he(ww(r,wm));return b6.createElement(wa,{points:n,dot:a,className:"recharts-line-dots",dotClassName:"recharts-line-dot",dataKey:i,baseProps:l,needClip:o,clipPathId:t})}function wO(e){var t=e.showLabels,n=e.children,r=e.points,a=(0,b6.useMemo)(()=>null==r?void 0:r.map(e=>{var t,n,r={x:null!=(t=e.x)?t:0,y:null!=(n=e.y)?n:0,width:0,lowerWidth:0,upperWidth:0,height:0};return wA(wA({},r),{},{value:e.value,payload:e.payload,viewBox:r,parentViewBox:void 0,fill:void 0})}),[r]);return b6.createElement(gQ,{value:t?a:void 0},n)}function wC(e){var t=e.clipPathId,n=e.pathRef,r=e.points,a=e.props,i=e.animationElapsedTime,o=e.isAnimating,l=e.isEntrance,s=e.visibleLength,c=a.type,p=a.layout,u=a.connectNulls,d=a.needClip,f=a.shape,h=a.strokeDasharray,g=wA(wA({},hn(ww(a,wx))),{},{fill:"none",className:"recharts-line-curve",clipPath:d?"url(#clipPath-".concat(t,")"):void 0,points:r,type:c,layout:p,connectNulls:u,strokeDasharray:null!=h?h:a.strokeDasharray,pathRef:n,animationElapsedTime:i,isAnimating:o,isEntrance:!!a.animateNewValues&&l,visibleLength:s});return b6.createElement(b6.Fragment,null,(null==r?void 0:r.length)>1&&b6.createElement(yT,{option:f,DefaultShape:w_.shape,shapeProps:g}),b6.createElement(wj,{points:r,clipPathId:t,props:a}))}function wD(e){var t,n,r,a,i=e.clipPathId,o=e.props,l=e.pathRef,s=e.previousPointsRef,c=o.points,p=o.isAnimationActive,u=o.animationBegin,d=o.animationDuration,f=o.animationEasing,h=o.animationMatchBy,g=o.animationInterpolateFn,y=o.layout,m=function(e){try{return e&&e.getTotalLength&&e.getTotalLength()||0}catch(e){return 0}}(l.current),x=mc(o.onAnimationStart,o.onAnimationEnd),v=x.isAnimating,b=x.handleAnimationStart,w=x.handleAnimationEnd,k=(t=(0,C.useRef)(0),n=(0,C.useRef)(0),r=(0,C.useRef)(!1),(a=(0,C.useRef)(c)).current!==c&&(t.current=n.current,a.current=c),(0,C.useCallback)((e,a)=>{if(r.current)return null;var i=Math.min(tq(t.current+e*a),a);return e>0&&a>0&&(n.current=Math.max(n.current,i),i>=a)?(r.current=!0,null):i},[])),A=(0,b6.useCallback)(e=>e>0&&m>0,[m]);return b6.createElement(wO,{points:c,showLabels:!v},o.children,b6.createElement(mp,{animationInput:c,animationIdPrefix:"recharts-line-",items:c,previousItemsRef:s,isAnimationActive:p,animationBegin:u,animationDuration:d,animationEasing:f,onAnimationStart:b,onAnimationEnd:w,animationInterpolateFn:g,animationMatchBy:h,shouldUpdatePreviousRef:A,layout:y},(e,t,n)=>{var r=v||t<1,a=r?k(t,m):null;return b6.createElement(wC,{props:o,points:e,clipPathId:i,pathRef:l,animationElapsedTime:t,isAnimating:r,isEntrance:n,visibleLength:a})}),b6.createElement(g1,{label:o.label}))}function wS(e){var t=e.clipPathId,n=e.props,r=(0,b6.useRef)(null),a=(0,b6.useRef)(null);return b6.createElement(wD,{props:n,clipPathId:t,previousPointsRef:r,pathRef:a})}var wP=(e,t)=>
1{var n,r;return{x:null!=(n=e.x)?n:void 0,y:null!=(r=e.y)?r:void 0,value:e.value,errorVal:rC(e.payload,t)}};class wI extends b6.Component{render(){var e=this.props,t=e.hide,n=e.dot,r=e.points,a=e.className,i=e.xAxisId,o=e.yAxisId,l=e.top,s=e.left,c=e.width,p=e.height,u=e.id,d=e.needClip,f=e.zIndex;if(t)return null;var h=r1("recharts-line",a),g=function(e){var t=ht(e);if(null!=t){var n=t.r,r=t.strokeWidth,a=Number(n),i=Number(r);return(Number.isNaN(a)||a<0)&&(a=3),(Number.isNaN(i)||i<0)&&(i=2),{r:a,strokeWidth:i}}return{r:3,strokeWidth:2}}(n),y=g.r,m=g.strokeWidth,x=g5(n),v=2*y+m,b=d?"url(#clipPath-".concat(x?"":"dots-").concat(u,")"):void 0;return b6.createElement(gS,{zIndex:f},b6.createElement(h2,{className:h},d&&b6.createElement("defs",null,b6.createElement(yX,{clipPathId:u,xAxisId:i,yAxisId:o}),!x&&b6.createElement("clipPath",{id:"clipPath-dots-".concat(u)},b6.createElement("rect",{x:s-v/2,y:l-v/2,width:c+v,height:p+v}))),b6.createElement(yY,{xAxisId:i,yAxisId:o,data:r,dataPointFormatter:wP,errorBarOffset:0},b6.createElement(wS,{props:this.props,clipPathId:u}))),b6.createElement(ws,{activeDot:this.props.activeDot,points:r,mainColor:this.props.stroke,itemDataKey:this.props.dataKey,clipPath:b}))}}function wM(e){var t=hV(e,w_),n=t.activeDot,r=t.animateNewValues,a=t.animationBegin,i=t.animationDuration,o=t.animationEasing,l=t.connectNulls,s=t.dot,c=t.hide,p=t.isAnimationActive,u=t.label,d=t.legendType,f=t.xAxisId,h=t.yAxisId,g=t.id,y=ww(t,wv),m=y$(f,h).needClip,x=hB(),v=ag(),b=rQ(),w=re(e=>wy(e,f,h,b,g));if("horizontal"!==v&&"vertical"!==v||null==w||null==x)return null;var k=x.height,A=x.width,_=x.x,E=x.y;return b6.createElement(wI,wb({},y,{id:g,connectNulls:l,dot:s,activeDot:n,animateNewValues:r,animationBegin:a,animationDuration:i,animationEasing:o,isAnimationActive:p,hide:c,label:u,legendType:d,xAxisId:f,yAxisId:h,points:w,layout:v,height:k,width:A,left:_,top:E,needClip:m}))}var wT=b6.memo(function(e){var t=hV(e,w_),n=rQ();return b6.createElement(yW,{id:t.id,type:"line"},e=>{var r,a,i,o;return b6.createElement(b6.Fragment,null,b6.createElement(mn,{legendPayload:(r=t.dataKey,a=t.name,i=t.stroke,o=t.legendType,[{inactive:t.hide,dataKey:r,type:o,color:i,value:rB(a,r),payload:t}])}),b6.createElement(wE,{dataKey:t.dataKey,data:t.data,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,formatter:t.formatter,tooltipType:t.tooltipType,id:e}),b6.createElement(mr,{type:"line",id:e,data:t.data,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,hide:t.hide,isPanorama:n}),b6.createElement(wM,wb({},t,{id:e})))})},f0);wT.displayName="Line";let wN=[{date:"12/2019",Time:32},{date:"03/2022",Time:18.1},{date:"01/2023",Time:12.31},{date:"11/2023",Time:6.3},{date:"11/2024",Time:2.59},{date:"09/2025",Time:1.99}],wz=[{name:"Vectorised Optimiser",value:5.17,description:"Smart batching for fast parameter update in Muon optimiser"},{name:"Data Augmentation",value:6.95,description:"Perform crops in a fully vectorised fashion and introduces colour-based data augmentation"},{name:"Compilation",value:7.92,description:"Forwards and backwards pass steps are moved into a function and compiled"},{name:"Architecture",value:12.82,description:"GELU activation function changed to SiLU"},{name:"Tuning",value:19.92,description:"Various hyperparameter changes + minor changes relating to float types and memory formats"},{name:"Test-time Augmentation",value:22.2,description:"Test-time augmentation only for images below a confidence threshold"}];function wL(e){let{payload:t,label:n,active:r,labelFn:a}=e;if(r){let e=t[0].payload;return(0,O.jsx)("div",{className:"custom-tooltip",style:{background:"white",padding:"10px",border:"solid 1px #bcbcbc",fontWeight:300},children:a(e)})}return null}function wR(){return(0,O.jsxs)(O.Fragment,{children:[(0,O.jsxs)("p",{children:["Over the summer, weâve tasked a math undergraduate intern from the University of Cambridge (with no prior machine learning experience) to break the world record for speedrunning CIFAR-10 training, using our algorithmic discovery tool â the Hive. They were able to surpass the previous record by more than 20%, training an image classification model ",(0,O.jsx)("a",{href:"https://x.com/kellerjordan0/status/1978502058023031214",target:"_blank",children:"in just 1.99 seconds"})," â the first time anyone has gone below the 2-second mark (an achievement that ",(0,O.jsx)("a",{href:"https://www.reddit.com/r/MachineLearning/comments/10op6va/r_train_cifar10_in_under_10_seconds_on_an_a100/",target:"_blank",children:"has remained elusive"})," for years)."]}),(0,O.jsx)(as,{width:"100%",height:300,children:(0,O.jsxs)(b2,{width:500,height:300,data:wN,margin:{top:5,right:30,left:2
10,bottom:5},children:[(0,O.jsx)(vs,{strokeDasharray:"3 3"}),(0,O.jsx)(xU,{dataKey:"date"}),(0,O.jsx)(xJ,{scale:"log",domain:[1,40],children:(0,O.jsx)(gK,{angle:-90,value:"Time to train (s)",position:"insideLeft",style:{textAnchor:"middle"}})}),(0,O.jsx)(b$,{}),(0,O.jsx)(wT,{type:"monotone",dataKey:"Time",stroke:"#3045FF"})]})}),(0,O.jsx)("h2",{children:"Why CIFAR-10 Speedrunning Matters?"}),(0,O.jsx)("p",{children:"CIFAR-10 is one of the most widely used datasets in computer vision research. It contains 60,000 32Ã32 color images across 10 classes â e.g., airplanes, automobiles, birds, cats, ⦠Its small size makes it ideal for rapid experimentation, while its complexity still offers meaningful insights."}),(0,O.jsx)("p",{children:"The âspeedrunningâ objective is simple: train a model that achieves at least 94% test accuracy in the shortest possible time on a single NVIDIA A100 GPU."}),(0,O.jsxs)("p",{children:["The ",(0,O.jsx)("a",{href:"https://github.com/KellerJordan/cifar10-airbench",target:"_blank",children:"previous record"}),", set by ",(0,O.jsx)("a",{href:"https://x.com/kellerjordan0",target:"_blank",children:"@kellerjordan0"})," in 2024, was 2.59 seconds."]}),(0,O.jsxs)("p",{children:["Speedrunning is a powerful driver of innovation. The CIFAR-10 speedrun, for example, was the proving ground for ",(0,O.jsx)("em",{children:"Muon"}),", a momentum-based optimizer now used to train large-scale language models such as Kimi-K2. "]}),(0,O.jsx)("h3",{children:"The Approach: the Hive"}),(0,O.jsxs)("p",{children:["At the heart of this project was the Hive: our AI system for algorithmic discovery and optimization. The Hive relies on program synthesis, combining large language models and search to come up with improved code and algorithms. It follows a history of research we have pioneered in this area, including ",(0,O.jsx)("a",{href:"https://www.nature.com/articles/s41586-023-06924-6",children:"FunSearch"})," and ",(0,O.jsx)("a",{href:"https://arxiv.org/abs/2506.13131",children:"AlphaEvolve"}),", representing the next step in our efforts to advance AI-driven algorithmic discovery."]}),(0,O.jsxs)("p",{children:["With the Hive as their assistant, our intern was able to push the CIFAR-10 record down to ",(0,O.jsx)("b",{children:"1.99 seconds"})," in just a few weeks, all without writing training loops or optimizers by hand."]}),(0,O.jsx)("p",{children:"While the intern provided high-level guidance (setting objectives, monitoring results, and refining prompts), the Hive was responsible for proposing, evolving, and running the code changes."}),(0,O.jsx)("p",{children:(0,O.jsx)("img",{src:"/post/cifar-screenshot.png",alt:"The Hive in action"})}),(0,O.jsx)("div",{style:{textAlign:"center",marginTop:"10px",fontSize:"18px",fontStyle:"italic",fontWeight:300},children:"The Hive in action"}),(0,O.jsx)("h3",{children:"Methodology"}),(0,O.jsx)("p",{children:"We provided the Hive with three essential ingredients:"}),(0,O.jsxs)("ol",{children:[(0,O.jsxs)("li",{children:[(0,O.jsx)("b",{children:"Baseline"})," â We initialised the Hive using ",(0,O.jsx)("a",{href:"https://x.com/kellerjordan0",target:"_blank",children:"@kellerjordan0"}),"âs 2.59s ",(0,O.jsx)("a",{href:"https://github.com/KellerJordan/cifar10-airbench/tree/master",children:"code"}),"."]}),(0,O.jsxs)("li",{children:[(0,O.jsx)("b",{children:"Contextual knowledge"})," â A description of the problem requirements, competition rules (e.g., when timing starts and ends, and how the final accuracy is measured), and A100 GPU specs."]}),(0,O.jsxs)("li",{children:[(0,O.jsx)("b",{children:"Evaluation framework"})," â A scoring system that rewarded speed while penalizing accuracy below 94%:",(0,O.jsx)("div",{style:{textAlign:"center",marginTop:"1em",marginBottom:"1em"},children:(0,O.jsx)("code",{children:"Score = -mean_time - (a^(max(0, 94% - mean_accuracy)) - 1)"})}),"This equation sufficiently rewards fast solutions that narrowly miss the accuracy threshold, ensuring that potentially valuable results arenât discarded outright. In addition to this score, we also provide profiler feedback to the Hive to better inform where it should focus on improving the code."]})]}),(0,O.jsx)("h3",{children:"Evolution strategies"}),(0,O.jsx)("p",{children:"We explored two distinct approaches to code evolution:"}),(0,O.jsxs)("p",{children:[(0,O.jsx)("b",{children:"Whole-program evolution"})," granting the Hive complete freedom to modify the entire codebase. This maximized creative potential and led to improvements in hyperparameters, compilation strategies, and timing measurement methods. However, this flexibility occasionally resulted in solutions that exploited evaluation weaknesses."]}),(0,O.jsxs)("p",{children:[(0,O.jsx)("b",{children:"Component-level evolution"})," allowing the Hive to evolve only specific components in isolationâsuch as the optimizer class, network architecture, or helper functions. This method proved safer by maintaining evaluator control over data loading and timing, and yielded particularly strong results. Most breakthroughs in the Muon optimizer and its Newton-Schulz helper function emerged from this approach."]}),(0,O.jsx)("h3",{children:"Challenges"}),(0,O.jsx)("p",{children:"The project surfaced several important challenges:"}),(0,O.jsxs)("ul",{children:[(0,O.jsxs)("li",{children:[(0,O.jsx)("b",{children:"Benchmark variance:"})," Training times fluctuated across runs and machines. We addressed this by always comparing new solutions against the baseline on identical hardware."]}),(0,O.jsxs)("li",{children:[(0,O.jsx)("b",{children:"False positives:"})," Imperfect evaluators were sometimes exploited, such as inadvertently leaking test data or misreporting timings. We mitigated this with stricter timing control, more careful separation between what the Hive could and could not evolve, and more explicit prompt instructions."]}),(0,O.jsxs)("li",{children:[(0,O.jsx)("b",{children:"Accuracy fluctuations:"})," Accuracy varied across runs â a lucky evaluation might suggest a solution meets the 94% accuracy threshold, but repeated runs reveal that it fails to consistently meet this threshold. To account for this, we modified our score to penalise solutions whose lower confidence interval fell below 94%."]})]}),(0,O.jsx)("h3",{children:"Results"}),(0,O.jsxs)("p",{children:["The Hive discovered a range of optimizations that collectively pushed the CIFAR-10 record down to ",(0,O.jsx)("b",{children:"1.99 seconds"}),". Below, we highlight some of the more noteworthy improvements the Hive uncovered (see ",(0,O.jsx)("a",{href:"https://github.com/hiverge/cifar10-speedrun",target:"_blank",children:"GitHub repo here"}),")."]}),(0,O.jsx)(as,{width:"100%",height:400,children:(0,O.jsxs)(hQ,{width:200,height:300,data:function(e){let t=Array(e.length),n=0;for(let r=0;r<t.length;++r)t[r]={...e[r]},t[r].prevValue=n,t[r].incrementValue=e[r].value-n,n=e[r].value;return t}
1(wz),margin:{top:20,right:30,left:20,bottom:100},children:[(0,O.jsx)(vs,{strokeDasharray:"3 3"}),(0,O.jsx)(xU,{dataKey:"name",tick:{fontSize:"13px"},angle:-45,textAnchor:"end"}),(0,O.jsx)(xJ,{children:(0,O.jsx)(gK,{angle:-90,value:"Speedup (%)",position:"insideLeft",style:{textAnchor:"middle"}})}),(0,O.jsx)(b$,{content:(0,O.jsx)(wL,{labelFn:e=>(0,O.jsxs)("div",{children:[(0,O.jsx)("p",{children:e.description}),(0,O.jsx)("br",{}),(0,O.jsxs)("b",{children:["Cumulative improvement: ",e.value,"%"]})]})}),cursor:{fill:"#d9def180"}}),(0,O.jsx)(mq,{dataKey:"prevValue",stackId:"a",fill:"#ededed80"}),(0,O.jsx)(mq,{dataKey:"incrementValue",stackId:"a",fill:"#2236EB",activeBar:(0,O.jsx)(yP,{fill:"#1024D1"})})]})}),(0,O.jsxs)("p",{children:[(0,O.jsx)("b",{children:"Vectorised optimiser."})," Previously, the Muon optimiser updated each parameter matrix one at a time. The Hive made this step faster by vectorising the whole process â batching all parameter updates together so they can be handled in parallel. A subtle challenge here is that different parameters in the network can have different dimensions. To make vectorisation possible, the Hive padded each matrix so they all share the same dimensions, allowing everything to fit neatly into a single 3D tensor. This made it possible to run large-scale matrix operations, such as batched matrix multiplications, in one go."]}),(0,O.jsxs)("p",{children:[(0,O.jsx)("b",{children:"Improved data augmentation."})," To augment the training data, multiple variations of the training data were obtained by cropping them in different ways. Similar to how the Muon optimiser was improved, the Hive found a way to vectorise the entire process, performing all crops in parallel. The Hive also introduced a new data augmentation technique that randomly adjusts the brightness and contrast of training images, leading to improved validation accuracies. "]}),(0,O.jsxs)("p",{children:[(0,O.jsx)("b",{children:"Compiled training step."})," The main forwards and backwards pass steps were moved into a function and compiled, which resulted in a slight speed improvement."]}),(0,O.jsxs)("p",{children:[(0,O.jsx)("b",{children:"Model architecture."})," The model's activation function was changed from GELU to SiLU, and the initialization of the whitening filter was updated to use SVD instead of eigendecomposition."]}),(0,O.jsxs)("p",{children:[(0,O.jsx)("b",{children:"Hyperparameter tuning."})," The Hive re-tuned many of the training hyperparameters, including the number of training steps, learning rates, and momentum parameters. Several changes were also made to which float types and memory formats are used."]}),(0,O.jsxs)("p",{children:[(0,O.jsx)("b",{children:"Selective test time augmentation."})," Test time augmentation (TTA) is a commonly used technique to help improve a modelâs validation accuracy by passing multiple augmented versions of an image through the network and averaging their predictions. The Hive realised that it didnât need to apply TTA to every test image, but only when the model is initially uncertain about its prediction. This selective approach kept the accuracy benefits of TTA while greatly improving its efficiency."]}),(0,O.jsx)("h3",{children:"Lessons Learned"}),(0,O.jsx)("p",{children:"Speedrunning CIFAR-10 was more than a fun challenge. It demonstrated the Hiveâs ability to automatically uncover engineering improvements that even expert practitioners might miss."}),(0,O.jsx)("p",{children:"The most striking takeaway is that domain expertise is no longer a prerequisite for breakthrough results. In this case, an intern armed with the Hive advanced the state of the art in just weeks."}),(0,O.jsx)("p",{children:"The experiment also highlights a new paradigm: using AI to accelerate AI itself. By evolving algorithms, the Hive shortens the feedback loop between idea and breakthrough implementation â a glimpse of whatâs possible when we let superintelligent systems help us push the boundaries of computation."}),(0,O.jsxs)("p",{children:["We also found that many of the ideas and lessons learnt from speedrunning CIFAR-10 can be used to improve the training of larger machine learning models. Recently, we put this to the test by using the Hive to aid in ",(0,O.jsx)("a",{href:"https://github.com/KellerJordan/modded-nanogpt",target:"_blank",children:"open-source speedrunning efforts for language models"}),". The Hive obtained new optimization ideas that led to a ",(0,O.jsx)("a",{href:"https://github.com/KellerJordan/modded-nanogpt/pull/125",target:"_blank",children:"record
1in training time"}),", and that were later adopted by ",(0,O.jsx)("a",{href:"https://www.lesswrong.com/posts/j3gp8tebQiFJqzBgg/how-the-nanogpt-speedrun-wr-dropped-by-20-in-3-months",target:"_blank",children:"subsequent optimizations by the community"}),"."]}),(0,O.jsxs)("p",{children:["We're actively building our team. If you're passionate about algorithmic discovery and want to shape the future of AI, ",(0,O.jsx)("a",{href:"https://jobs.ashbyhq.com/hiverge",target:"_blank",children:"apply here"}),"!"]})]})}let wB=[{time:0,fitness:0,title:"Initial naïve policy function"},{time:.03013192583,fitness:2.221474074,title:"Implement iterative, priority-driven Beluga solver policy",summary:"The `policy` function now implements an iterative, greedy strategy to solve the Beluga problem by applying a sequence of prioritized actions. These actions are grouped into high-priority tasks like production line fulfillment and incoming jig management, and medium-priority tasks for empty jig handling and outgoing flights."},{time:.1762416925,fitness:5.183411111,title:"Prioritize Beluga flight operations in policy",summary:"The greedy policy's action sequence was reordered and grouped into distinct operational areas, elevating Beluga flight management to the highest priority. This restructuring ensures critical flight operations, such as completion, loading, and outgoing jig preparation, are addressed before production line needs and general jig movement."},{time:.3129836478,fitness:5.92372963,title:"Enhance rack management for production line jig access",summary:"This change introduces new logic to unblock jigs needed for production lines by temporarily moving obstructing jigs from a rack to another available rack. Previously, the system only attempted a direct pickup of required jigs; now it can rearrange racks to gain access when direct pickup is not immediately possible."},{time:.4022817703,fitness:8.513051852,title:"Systematically unblock production jigs from racks",summary:"The policy for unblocking production line jigs in racks has been refined. It now systematically clears blocking jigs from racks to access a required jig by identifying the shallowest blocked jig and iteratively moving overlying jigs to other available racks."},{time:.5319651339,fitness:10.36246296,title:"Enhance production jig pickup and rack unblocking",summary:"This update refines the policy for acquiring production jigs, adding a systematic approach to unblock required jigs in racks. It introduces logic to pick up blocking jigs and place them into alternative rack or trailer locations, and implements a mechanism to free up trailer space by transferring jigs to racks."},{time:.9942175961,fitness:52.66948148,title:"Add rack unblocking logic for Beluga and production",summary:"The changes introduce refined logic for picking up empty jigs needed for outgoing flights by systematically unblocking them from racks. Additionally, new strategies are implemented to unblock required jigs for production lines, including moving blocking jigs to other racks or freeing up trailer space."},{time:1.108079781,fitness:65.14342222,title:"Implement systematic unblocking for production jigs",summary:"The logic handling picking up required jigs for production lines from racks was rewritten. It now identifies all blocked required jigs, prioritizes them, and iteratively moves blocking jigs until a target jig can be directly picked up."},{time:1.46045811,fitness:66.48809259,title:"Refine rack unblocking for production jigs",summary:"The policy for picking up required jigs for production lines from racks has been enhanced to systematically unblock jigs by iteratively moving impeding items until the desired jig is accessible. This includes a fallback strategy to free up trailer space by moving full or empty jigs into racks if direct pickup or initial unblocking attempts are not immediately successful."},{time:1.602676006,fitness:66.62185185,title:"Rework production jig unblocking logic",summary:"This change refactors the production line jig unblocking logic. When a required jig is blocked in a rack, the policy now systematically attempts to move all blocking jigs, one by one, to other racks (prioritizing factory-side placement) until the desired jig can be picked up."},{time:2.382910762,fitness:66.62185185,title:"Refine jig placement for production line readiness",summary:"This update refines the greedy policy's jig management for the production line. It introduces a more detailed priority order for placing temporarily picked-up blocking jigs, now prioritizing replacement into the same rack on the beluga side. Additionally, the strategy for moving jigs from factory trailers to racks to free up space is restructured to prioritize required, then any full, and finally empty jigs."}
1,{time:2.526567083,fitness:85.67303704,title:"Add cycle detection and backtracking to policy",summary:"This change introduces state-tracking to the policy planner workflow, enabling explicit cycle detection and emergency backtracking. The planner now tracks visited states and reverts to a previous state if a cycle is detected or if a predefined number of steps are taken without making progress."},{time:2.697592457,fitness:86.40697778,title:"Strengthen policy with state tracking and smart unblocking",summary:"This update significantly refines the policy's state management by implementing robust cycle detection through detailed state hashing and an emergency backtracking mechanism. Additionally, it enhances production line logistics with prioritized jig handling and systematic unblocking strategies within racks."},{time:2.740310756,fitness:87.48257778,title:"Add Beluga trailer jig movement for production",summary:"The policy planner now includes logic to move both full and empty jigs from Beluga trailers into racks. This action is attempted when efforts to obtain jigs for production lines, or to free up factory trailer space, have not yet made progress."},{time:2.930003581,fitness:87.91153704,title:"Improve production jig flow and rack organization",summary:"This update significantly refines jig handling for production lines, prioritizing the delivery of required jigs already in factory trailers and enhancing systematic unblocking and relocation within racks. Additionally, new logic proactively moves jigs from various trailers to racks to optimize space and improve component access."},{time:3.081353552,fitness:88.97090741,title:"Unblock production jigs incrementally from racks",summary:"The policy planner's logic for unblocking production-required jigs in racks has been revised. It now attempts to move only the immediate blocking jig from the factory side of a rack to unblock a desired item, rather than trying to clear all jigs blocking it in one multi-step operation, and prioritizes placement on the beluga side of the same rack."},{time:3.719361438,fitness:92.20699259,title:"Introduce weighted probabilistic action selection",summary:"This change refactors the policy's action selection logic from a purely greedy approach to a hybrid model. Core progress actions (e.g., flight completion, hangar delivery) remain an immediate greedy choice, while less critical or exploratory moves (e.g., unblocking jigs, rack/trailer transfers) now collect all valid options and apply a weighted probabilistic selection based on implied priority."},{time:3.870738776,fitness:92.29136296,title:"Refactor policy for deterministic, priority-based action selection",summary:"This refactoring removes all probabilistic action selections, replacing them with a deterministic, strictly prioritized greedy strategy. Actions are now evaluated and executed in a fixed order, ensuring a consistent and predictable decision-making process."},{time:3.935845388,fitness:93.31414815,title:"Prioritize production by flight alignment; refine action selection",summary:"The policy planner refines action selection logic, removing redundant flight completion steps and modifying general probabilistic decision-making. Production line jig delivery is now prioritized by alignment with the current flight's outgoing jigs, and a probabilistic method was introduced for unblocking required jigs from racks."},{time:4.018193591,fitness:93.35219259,title:"Stratified greedy policy with probabilistic rack management",summary:"The policy planner was refactored to employ a more stratified greedy strategy, prioritizing direct execution of high-impact actions like flight management. For complex rack manipulation and jig unblocking, the policy now collects potential actions and utilizes probabilistic selection to explore viable options when immediate progress is not directly achieved."},{time:4.116020666,fitness:94.77838148,title:"Refine greedy policy, remove probabilistic actions",summary:"The problem-solving policy was updated to deterministically execute the first applicable action, removing previous probabilistic action selection. Jig unblocking logic was enhanced to prioritize clearing Beluga-side rack access by strategically moving blocking jigs."},{time:5.205732826,fitness:96.99577037,title:"Enhance state signature and cycle escape strategy",summary:"Modified the state signature for cycle detection to directly use `beluga_trailers`, `factory_trailers`, and `racks` objects, improving state comparison. The planner's cycle handling logic was also refined: it now increments a 'stuck' counter only when re-encountering states and clears the `seen_states` history if stuck for too long, enabling broader exploration to escape local optima."},{time:5.337384329,fitness:97.75660741,title:"Refactor policy planner for immediate greedy action execution",
1summary:"The policy planner was refactored to remove the collection and probabilistic selection of possible actions, instead applying the first available action immediately in a strict priority order. This change also simplifies the cycle detection and backtracking mechanism into a single-step fallback if no progress is made."},{time:5.611650424,fitness:97.38551852,title:"Use Tabu List to prevent repeated actions in planner",summary:"The policy planner now incorporates a tabu list to prevent the immediate re-application of actions that led to a previously visited state when backtracking. This mechanism aims to improve the greedy search's ability to explore new paths and avoid unproductive cycles by filtering out previously unhelpful actions."},{time:5.884818257,fitness:98.08941852,title:"Prioritize production lines by overall schedule urgency",summary:"The production line prioritization heuristic was updated by introducing a `time_until_needed` metric that estimates the total processing steps before a jig is required. This new metric is now the primary factor for sorting production line priorities in ascending order, effectively changing the preference from higher-value components to lower-value components."}],wF=[{name:"Gemini 2.5 Pro (direct plan)",coverage:4.83},{name:"Gemini 2.5 Pro (algorithm)",coverage:10.04},{name:"SOTA classical planner",coverage:37.55},{name:"Hive planner",coverage:100}];function wH(e){let{payload:t,label:n,active:r,labelFn:a}=e;if(r){let e=t[0].payload;return(0,O.jsx)("div",{className:"custom-tooltip",style:{background:"white",padding:"10px",border:"solid 1px #bcbcbc",fontWeight:300},children:a(e)})}return null}function wU(e,t){let n=!(arguments.length>2)||void 0===arguments[2]||arguments[2],r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return e.trim(),'\n <div id="'.concat(t,'-code-box"\n style="\n border-radius: 12px;\n border: 1px solid #e5e7eb;\n overflow: hidden;\n margin: 0;\n "\n >\n <!-- Header -->\n <div\n style="\n background: #f9fafb;\n border-bottom: 1px solid #e5e7eb;\n padding: 6px 12px;\n font-size: 12px;\n font-family: system-ui, -apple-system, BlinkMacSystemFont, \'Segoe UI\', sans-serif;\n color: #6b7280;\n display: flex;\n justify-content: space-between;\n align-items: center;\n cursor: pointer;\n user-select: none;\n "\n onclick="(function(){\n const pre = document.getElementById(\'').concat(t,"-code-box-pre');\n const icon = document.getElementById('").concat(t,"-code-box-icon');\n const isHidden = pre.style.display === 'none';\n pre.style.display = isHidden ? 'block' : 'none';\n icon.textContent = isHidden ? 'â¾' : 'â¸';\n })()\"\n >\n <span>").concat(t,'</span>\n <span id="').concat(t,'-code-box-icon" style="font-size: 14px;">â¾</span>\n </div>\n <!-- Code -->\n <pre id="').concat(t,'-code-box-pre"\n class="shiki github-light"\n style="\n background-color:#fff;\n color:#24292e;\n margin:0;\n padding:16px 16px;\n overflow-x:auto;\n white-space:pre;\n -webkit-overflow-scrolling:touch;\n overscroll-behavior-x:contain;\n scrollbar-width: thin;\n display: ').concat(n?"none":"block",';\n "\n tabindex="0"\n ><code style="\n margin:0;\n padding:0;\n display:inline-block; /* Change from block to inline-block */\n min-width:100%; /* Add this */\n font-size:13px;\n line-height:').concat(r?"0":"1.4",';\n font-family: ui-monospace, SFMono-Regular, Menlo, monospace;\n ">').concat(e.trim(),"</code></pre></div>")}function wq(){return(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)("p",{style:{textAlign:"center"},children:(0,O.jsx)("img",{src:"/post/beluga.png",alt:"Airbus Beluga aircraft"})}),(0,O.jsx)("p",{children:"Imagine you are planning a road trip: you have to choose the best route to pick up all of your friends, reach every destination you want to visit, decide where to stop for fuel, and adapt if there's traffic or bad weather. Now imagine doing that not just for one car â but for thousands of delivery trucks moving across a continent. That's where automatic planning comes in: it lets machines figure out what actions to take to reach a goal efficiently, even when the possibilities are far too complex for humans to work out by hand. It's about giving computers the ability to reason about actions and goals, to understand what must happen first, what can go wrong, and what steps will lead from the present to a desired outcome."}),(0,O.jsx)("p",{children:"Automated planning is key in many application domains, ranging between robotics, logistics and supplyâchain optimization, vehicle routing, smart grid management and energy distribution optimization, among others. Even scientific research problems in areas such as quantum computing and organic chemistry, can be framed and solved as planning problems."}),(0,O.jsx)("p",{children:"In academia, researchers are often interested in developing generalized planning algorithms, i.e., planners which can efficie
1ntly solve any well-structured planning problem, regardless of the domain. Unfortunately, their generalized nature prevents these algorithms from exploiting the peculiarities of the problem. In contrast, tailored planning algorithms can often find solutions orders of magnitude faster, and solve problems which are orders of magnitude larger. The problem is that tailoring planning algorithms to a specific problem domain can be extremely time-consuming and requires deep domain expertise!"}),(0,O.jsx)("p",{children:"This makes writing tailored planning algorithms an excellent testing ground for our system, the Hive. Using the Hive, we can automatically discover high-performing planning algorithms specifically tailored towards any given planning domain, significantly reducing development time and effort."}),(0,O.jsx)("h1",{children:"The Airbus Beluga⢠AI Challenge"}),(0,O.jsxs)("p",{children:["At the beginning of the year, we decided to put this to the test by participating in the ",(0,O.jsx)("a",{href:"https://tuples.ai/competition-challenge/",target:"_blank",children:"Airbus Beluga⢠AI Challenge"})," held by TUPLES. This competition required participants to find solutions to a logistic planning problem proposed by Airbus, which involved the transportation, storage, and management of aircraft parts to successfully complete a preset production schedule for constructing new aircrafts."]}),(0,O.jsx)("p",{children:"There are two key difficulties to this problem domain:"}),(0,O.jsxs)("ol",{children:[(0,O.jsxs)("li",{children:[(0,O.jsx)("b",{children:"Limited number of resources:"})," There are only a limited number of racks and trailers available to transport and store aircraft parts. Poor management of these resources can lead to situations where progress is blocked unless previous actions are reversed."]}),(0,O.jsxs)("li",{children:[(0,O.jsx)("b",{children:"Problem scale:"})," This competition explores the scale of real-world logistic planning problems, and the difficulties arising from the combinatorial explosion of possible actions one can take. Some of the problems explored in this competition involve ",(0,O.jsx)("b",{children:"over 800"})," aircraft parts!"]})]}),(0,O.jsx)("p",{children:"This is a particularly challenging planning domain â even state-of-the-art planners can only solve the smallest and simplest problem instances. What makes it especially interesting as a testing ground is that it's completely new. At the time of our experiments, LLMs had never been trained on this type of problem. That means any solution the Hive produced isn't drawn from memorized data, but from genuine extrapolative reasoning â reasoning its way through a problem domain they've never seen before."}),(0,O.jsxs)("p",{children:["Despite these challenges, the Hive was able to discover a planning algorithm which solves ",(0,O.jsx)("b",{children:"all"})," of the example problems supplied by the competition. This demonstrates orders-of-magnitude improvements over current state-of-the-art methods, ultimately winning us ",(0,O.jsx)("a",{href:"https://tuples.ai/2025/09/16/recognizing-excellence-in-the-beluga-ai-challenge-hiverge-wins-both-scalability-tracks/",target:"_blank",children:"first place"})," in both the Scalability Deterministic and the Scalability Probabilistic challenges."]}),(0,O.jsx)("h1",{children:"Methodology"}),(0,O.jsx)("p",{children:"Using the Hive, we evolve a planning strategy for the Beluga planning domain, i.e., a function which encodes a decision tree for what action to take next given its current state."}),(0,O.jsxs)("p",{children:["Notably, we initialized the Hive ",(0,O.jsx)("b",{children:"from scratch"})," with nothing more than a function header, and asked it to find a planning algorithm which solves as many problems as possible (out of a training set of 270 problems of varying difficulties), and in as few actions as possible."]}),(0,O.jsx)("div",{className:"my-code-block",dangerouslySetInnerHTML:{__html:wU('\n<span class="line"><span style="color:#D73A49">import</span><span style="color:#24292E"> problem_logic </span><span style="color:#D73A49">as</span><span style="color:#24292E"> pl</span></span>\n<span class="line"></span>\n<span class="line"><span style="color:#D73A49">def</span><span style="color:#6F42C1"> policy</span><span style="color:#24292E">(problem: pl.Instance) -> pl.State:</span></span>\n<span class="line"><span style="color:#D73A49"> return</span><span style="color:#24292E"> problem.get_initial_state()</span></span>\n',"policy_planner_initial.py",!1)}}),(0,O.jsx)("p",{children:"Apart from the Python API encoding the problem logic and a short description of the problem, we provide no other guidance or hints to the Hive. After training, we evaluate the generated planning algorithm against a different set of 269 problems."}),(0,O.jsx)("h1",{children:"Results"}),(0,O.jsxs)("p",{children:["Remarkably, starting from the naïve template function shown in ",(0,O.jsx)("a",{href:"#figure1",children:"Figure 1"}),", that solves no problems, the Hive was able to â completely independently â find a planning algorithm which solves all of the 269 evaluation problems."]}),(0,O.jsx)("span",{id:"figure1",style:{position:"absolute",transform:"translateY(-20vh)"}}),(0,O.jsx)("h4",{style:{textAlign:"center",marginTop:"30px",fontSize:"18px",fontWeight:"bold"},children:"Figure 1: Comparison of planners on Airbus Beluga planning domain"}),(0,O.jsx)(as,{width:"100%",height:400,children:(0,O.jsxs)(hQ,{width:200,height:300,data:wF,margin:{top:20,right:30,left:2
10,bottom:100},children:[(0,O.jsx)(vs,{strokeDasharray:"3 3"}),(0,O.jsx)(xU,{dataKey:"name",tick:{fontSize:"13px"},angle:-45,textAnchor:"end"}),(0,O.jsx)(xJ,{children:(0,O.jsx)(gK,{angle:-90,value:"Problems solved (%)",position:"insideLeft",style:{textAnchor:"middle"}})}),(0,O.jsx)(b$,{content:(0,O.jsx)(wH,{labelFn:e=>"".concat(e.coverage,"%")}),cursor:{fill:"#d9def180"}}),(0,O.jsx)(mq,{dataKey:"coverage",stackId:"a",fill:"#2236EB",activeBar:(0,O.jsx)(yP,{fill:"#1024D1"})})]})}),(0,O.jsx)("p",{children:"We compare the Hiveâs solution against two baseline LLM-based-methods, both relying on Gemini 2.5 Pro:"}),(0,O.jsxs)("ol",{children:[(0,O.jsxs)("li",{children:[(0,O.jsx)("b",{children:"Direct plan:"})," For each problem instance, we ask Gemini 2.5 Pro to directly produce a plan to solve the problem using a few-shot prompting technique."]}),(0,O.jsxs)("li",{children:[(0,O.jsx)("b",{children:"Planning algorithm: "})," Similar to the Hive, we ask Gemini 2.5 Pro to produce a planning strategy to solve problems in the Beluga planning domain."]})]}),(0,O.jsxs)("p",{children:["In ",(0,O.jsx)("a",{href:"#figure2",children:"Figure 2"}),", we see that both of these LLM-baseline methods perform poorly, which aligns with the evidence in academic literature that even the most powerful modern LLMs are unable to perform complex, multi-stage planning alone",(0,O.jsxs)("sup",{id:"fnref-1",children:[(0,O.jsx)("a",{href:"https://openreview.net/forum?id=Th8JPEmH4z",children:"1"}),","]}),(0,O.jsxs)("sup",{id:"fnref-2",children:[(0,O.jsx)("a",{href:"https://openreview.net/forum?id=wUU-7XTL5XO",children:"2"}),","]}),(0,O.jsxs)("sup",{id:"fnref-3",children:[(0,O.jsx)("a",{href:"https://openreview.net/forum?id=X6dEqXIsEW",children:"3"}),","]}),(0,O.jsx)("sup",{id:"fnref-4",children:(0,O.jsx)("a",{href:"https://openreview.net/forum?id=gGQfkyb0KL",children:"4"})}),". Therefore, the Hive, which builds on top of LLMs, is key to obtaining novel, robust, and breakthrough algorithmic discoveries."]}),(0,O.jsxs)("p",{children:["We also compare against a state-of-the-art generalised planning algorithm, ",(0,O.jsx)("a",{href:"https://github.com/nirlipo/BFWS-public",target:"_blank",children:"best-first width search"})," (BFWS). Again, we see that the planning algorithm discovered by the Hive solves significantly more problems, and problems of much higher complexity. Additionally, the planning algorithm of the Hive finds solutions much faster than BFWS â for problems which both planners were able to solve, the Hive found solutions over 1000 times faster on average!"]}),(0,O.jsx)("h2",{children:"The Hive's Planning Algorithm"}),(0,O.jsxs)("p",{children:["The planning algorithm discovered by the Hive spanned almost 500 lines of code, which we make available in this ",(0,O.jsx)("a",{href:"https://github.com/hiverge/beluga-planner",target:"_blank",children:"repository"}),". In ",(0,O.jsx)("a",{href:"#figure2",children:"Figure 2"}),", we show the trajectory of solutions found by the Hive, and highlight some of its notable algorithmic discoveries."]}),(0,O.jsx)("span",{id:"figure2",style:{position:"absolute",transform:"translateY(-20vh)"}}),(0,O.jsx)("h4",{style:{textAlign:"center",marginTop:"30px",fontSize:"18px",fontWeight:"bold"},children:"Figure 2: Evolution trajectory of the Hive's final planning algorithm"}),(0,O.jsx)(as,{width:"100%",height:300,children:(0,O.jsxs)(b2,{width:500,height:300,data:wB,margin:{top:5,right:30,left:20,bottom:5},children:[(0,O.jsx)(vs,{strokeDasharray:"3 3"}),(0,O.jsx)(xU,{dataKey:"time",type:"number",domain:[0,6],children:(0,O.jsx)(gK,{value:"Time (h)",dy:5,position:"insideBottom"})}),(0,O.jsx)(xJ,{domain:[0,100],children:(0,O.jsx)(gK,{angle:-90,value:"Fitness",position:"insideLeft",style:{textAnchor:"middle"}})}),(0,O.jsx)(b$,{content:(0,O.jsx)(wH,{labelFn:e=>(0,O.jsx)("div",{children:(0,O.jsx)("p",{children:e.title})})}),cursor:{fill:"#d9def180"}}),(0,O.jsx)(wT,{type:"monotone",dataKey:"fitness",stroke:"#3045FF"})]})}),(0,O.jsx)("ol",{children:(0,O.jsxs)("li",{children:[(0,O.jsx)("b",{children:"Implement iterative, priority-driven Beluga solver policy:"})," The initial implementation of the planning policy uses an iterative, greedy strategy to solve the Beluga problem by applying a sequence of prioritized actions. These actions are grouped into high-priority tasks like production line fulfillment and incoming jig management, and medium-priority tasks for empty jig handling and outgoing flights."]})}),(0,O.jsx)("div",{className:"my-code-block",dangerouslySetInnerHTML:{__html:wU('\n<span class="line" style="display:block;line-height:1.4;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;">@@ -5,6 +5,151 @@</span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#D73A49">
1 import</span><span style="color:#24292E"> problem_logic </span><span style="color:#D73A49">as</span><span style="color:#24292E"> pl</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#24292E"> </span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#D73A49"> def</span><span style="color:#6F42C1"> policy</span><span style="color:#24292E">(problem: pl.BelugaInstance) -> pl.BelugaState:</span></span>\n\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#D73A49"> return</span><span style="color:#24292E"> problem.get_initial_state()</span></span>\n\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#032F62"> """Solves the Beluga problem by applying a priority-based greedy strategy."""</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> current_state </span><span style="color:#D73A49">=</span><span style="color:#24292E"> problem.get_initial_state()</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span></span>\n\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> while</span><span style="color:#D73A49"> not</span><span style="color:#24292E"> problem.is_problem_solved(current_state)[</span><span style="color:#005CC5">0</span><span style="color:#24292E">]:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> made_progress_this_turn </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> False</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span></span>\n\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # --- High Priority: Production Line Fulfillment & Incoming Jigs ---</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span></span>\n\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # 1. Deliver full jigs from factory trailers to hangars if a production line needs it</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # Iterate over production lines to fulfill immediate needs</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> for</span><span style="color:#24292E"> pl_idx </span><span style="color:#D73A49">in</span><span style="color:#005CC5"> range</span><span style="color:#24292E">(</span><span style="color:#005CC5">len</span><span style="color:#24292E">(problem.production_lines)):</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> problem.deliver_to_hangar_preconditions(current_state, pl_idx)[</span><span style="color:#005CC5">0</span><span style="color:#24292E">]:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> current_state </span><span style="color:#D73A49">=</span><span style="color:#24292E"> problem.deliver_to_hangar(current_state, pl_idx)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E">
1 made_progress_this_turn </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> True</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> break</span><span style="color:#6A737D"> # Re-evaluate priorities after state change (e.g., another jig for PL or empty hangar slot)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> made_progress_this_turn:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> continue</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> </span></span>\n\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # 2. Pick up required full jigs from racks (factory side) to factory trailers</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # Find if any production line needs a jig that isn\'t in factory trailers</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> required_jigs_for_pl_names </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> set</span><span style="color:#24292E">()</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> for</span><span style="color:#24292E"> pl_idx, pl_ptr </span><span style="color:#D73A49">in</span><span style="color:#005CC5"> enumerate</span><span style="color:#24292E">(current_state.production_lines_indices):</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> pl_ptr </span><span style="color:#D73A49"><</span><span style="color:#005CC5"> len</span><span style="color:#24292E">(problem.production_lines[pl_idx].schedule):</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> required_jig_name </span><span style="color:#D73A49">=</span><span style="color:#24292E"> problem.production_lines[pl_idx].schedule[pl_ptr].name</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # Only care if it\'s not already in factory trailers</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> required_jig_name </span><span style="color:#D73A49">not</span><span style="color:#D73A49"> in</span><span style="color:#24292E"> current_state.factory_trailers.full_jigs:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> required_jigs_for_pl_names.add(required_jig_name)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> </span></span>\n\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # Try to pick up any of these required jigs from a rack (factory side)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#005CC5"> len</span><span style="color:#24292E">(required_jigs_for_pl_names) </span><span style="color:#D73A49">></span><span style="color:#005CC5"> 0</span><span style="color:#24292E">:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> for</span><span style="color:#24292E"> rack_idx </span><span style="color:#D73A49">in</span><span style="color:#005CC5"> range</span><span style="color:#24292E">(</span><span style="color:#005CC5">len</span><span style="color:#24292E">(current_state.racks)):</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> rack_content </span><span style="color:#D73A49">=</span><span style="color:#24292E">
1 current_state.racks[rack_idx]</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # Check if the jig at the factory side edge is one of the required ones</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#005CC5"> len</span><span style="color:#24292E">(rack_content) </span><span style="color:#D73A49">></span><span style="color:#005CC5"> 0</span><span style="color:#D73A49"> and</span><span style="color:#24292E"> rack_content[</span><span>-</span><span style="color:#005CC5">1</span><span style="color:#24292E">] </span><span style="color:#D73A49">in</span><span style="color:#24292E"> required_jigs_for_pl_names:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # Also check if it\'s actually a full jig, though \'jigXXX\' format makes this implicit</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#D73A49"> not</span><span style="color:#24292E"> problem.is_jig_empty(rack_content[</span><span>-</span><span style="color:#005CC5">1</span><span style="color:#24292E">]):</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> problem.pick_up_rack_preconditions(current_state, rack_idx, </span><span style="color:#005CC5">False</span><span style="color:#24292E">)[</span><span style="color:#005CC5">0</span><span style="color:#24292E">]: </span><span style="color:#6A737D"># False for factory side</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> current_state </span><span style="color:#D73A49">=</span><span style="color:#24292E"> problem.pick_up_rack(current_state, rack_idx, </span><span style="color:#005CC5">False</span><span style="color:#24292E">)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> made_progress_this_turn </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> True</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> break</span><span style="color:#6A737D"> # Re-evaluate priorities</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> </span></span>\n\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> made_progress_this_turn:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> continue</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span></span>\n\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # 3. Unload incoming jigs from Beluga to Beluga trailers</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> problem.unload_beluga_preconditions(current_state)[</span><span style="color:#005CC5">0</span><span style="color:#24292E">]:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> current_state </span><span style="color:#D73A49">=</span><span style="color:#24292E"> problem.unload_beluga(current_state)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E">
1 made_progress_this_turn </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> True</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> continue</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span></span>\n\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # 4. Put full jigs from Beluga trailers into racks (beluga side)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # Empty Beluga trailers to make space for more incoming jigs,</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # and move jigs towards general storage/factory side</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> put_down_beluga_full_jig </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> False</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # Iterate over full jigs in beluga trailers (sorted for deterministic behavior)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> for</span><span style="color:#24292E"> jig_name </span><span style="color:#D73A49">in</span><span style="color:#005CC5"> sorted</span><span style="color:#24292E">(current_state.beluga_trailers.full_jigs):</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # Try to put this jig into any available rack from the beluga side</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> for</span><span style="color:#24292E"> rack_idx </span><span style="color:#D73A49">in</span><span style="color:#005CC5"> range</span><span style="color:#24292E">(</span><span style="color:#005CC5">len</span><span style="color:#24292E">(current_state.racks)):</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> problem.put_down_rack_preconditions(current_state, rack_idx, jig_name, </span><span style="color:#005CC5">True</span><span style="color:#24292E">)[</span><span style="color:#005CC5">0</span><span style="color:#24292E">]: </span><span style="color:#6A737D"># True for beluga side</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> current_state </span><span style="color:#D73A49">=</span><span style="color:#24292E"> problem.put_down_rack(current_state, rack_idx, jig_name, </span><span style="color:#005CC5">True</span><span style="color:#24292E">)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E">
1 made_progress_this_turn </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> True</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> put_down_beluga_full_jig </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> True</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> break</span><span style="color:#6A737D"> # Jig placed, re-evaluate priorities</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> put_down_beluga_full_jig:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> break</span><span style="color:#6A737D"> # Only place one jig at a time to allow re-evaluation</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> </span></span>\n\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> made_progress_this_turn:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> continue</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span></span>\n\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # --- Medium Priority: Empty Jig Management & Outgoing Jigs ---</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span></span>\n\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # 5. Get empty jigs from hangars to factory trailers</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # These are generated from delivered full jigs and are needed for outgoing flights</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> for</span><span style="color:#24292E"> jig_type_idx </span><span style="color:#D73A49">in</span><span style="color:#005CC5"> range</span><span style="color:#24292E">(</span><span style="color:#005CC5">len</span><span style="color:#24292E">(current_state.hangars)):</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> problem.get_from_hangar_preconditions(current_state, jig_type_idx)[</span><span style="color:#005CC5">0</span><span style="color:#24292E">]:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> current_state </span><span style="color:#D73A49">=</span><span style="color:#24292E"> problem.get_from_hangar(current_state, jig_type_idx)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E">
1 made_progress_this_turn </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> True</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> break</span><span style="color:#6A737D"> # Re-evaluate priorities</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> made_progress_this_turn:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> continue</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span></span>\n\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # 6. Put empty jigs from factory trailers into racks (factory side)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # Clears factory trailers and moves empty jigs towards general storage</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> put_down_factory_empty_jig </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> False</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # Iterate over types of empty jigs in factory trailers</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> for</span><span style="color:#24292E"> jig_type_idx </span><span style="color:#D73A49">in</span><span style="color:#005CC5"> range</span><span style="color:#24292E">(</span><span style="color:#005CC5">len</span><span style="color:#24292E">(current_state.factory_trailers.empty_jigs)):</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> current_state.factory_trailers.empty_jigs[jig_type_idx] </span><span style="color:#D73A49">></span><span style="color:#005CC5"> 0</span><span style="color:#24292E">: </span><span style="color:#6A737D"># If there\'s an empty jig of this type</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> empty_jig_str </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> str</span><span style="color:#24292E">(jig_type_idx) </span><span style="color:#6A737D"># Empty jigs are represented by string of their type index</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> for</span><span style="color:#24292E"> rack_idx </span><span style="color:#D73A49">in</span><span style="color:#005CC5"> range</span><span style="color:#24292E">(</span><span style="color:#005CC5">len</span><span style="color:#24292E">(current_state.racks)):</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # Check if space is available to put it at factory side</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> problem.put_down_rack_preconditions(current_state, rack_idx, empty_jig_str,
1</span><span style="color:#005CC5">False</span><span style="color:#24292E">)[</span><span style="color:#005CC5">0</span><span style="color:#24292E">]: </span><span style="color:#6A737D"># False for factory side</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> current_state </span><span style="color:#D73A49">=</span><span style="color:#24292E"> problem.put_down_rack(current_state, rack_idx, empty_jig_str, </span><span style="color:#005CC5">False</span><span style="color:#24292E">)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> made_progress_this_turn </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> True</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> put_down_factory_empty_jig </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> True</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> break</span><span style="color:#6A737D"> # Jig placed, re-evaluate priorities</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> put_down_factory_empty_jig:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> break</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> made_progress_this_turn:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> continue</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span></span>\n\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # 7. Pick up empty jigs from racks (beluga side) to Beluga trailers for outgoing flights</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> pick_up_empty_for_beluga_outgoing </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> False</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # Check if there\'s an outgoing jig to load for the current flight</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> current_state.flight_index </span><span style="color:#D73A49"><</span><span style="color:#005CC5"> len</span><span style="color:#24292E">(problem.flights) </span><span style="color:#D73A49">and</span><span style="color:#D73A49"> +</span><span style="color:#24292E"> current_state.flight_outgoing_index </span><span style="color:#D73A49"><</span><span style="color:#005CC5"> len</span><span style="color:#24292E">(problem.flights[current_state.flight_index].outgoing):</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> </span></span>\n\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # Determine the type of empty jig needed for the current outgoing flight</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> outgoing_jig_type_int </span><span style="color:#D73A49">=</span><span style="color:#24292E"> problem.outgoing_types[current_state.flight_index]</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # Only proceed if we actually need more empty jigs of this type in beluga trailers</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # (i.e., we don\'t have enough to satisfy load_beluga yet)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> current_state.beluga_trailers.empty_jigs[outgoing_jig_type_int] </span><span style="color:#D73A49"><=</span><span style="color:#D73A49"> +</span><span style="color:#005CC5"> len</span><span style="color:#24292E">(problem.flights[current_state.flight_index].outgoing) </span><span>-</span><span style="color:#24292E"> current_state.flight_outgoing_index:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> </span></span>\n\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> outgoing_jig_type_str </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> str</span><span style="color:#24292E">(outgoing_jig_type_int)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span></span>\n\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> for</span><span style="color:#24292E"> rack_idx </span><span style="color:#D73A49">in</span><span style="color:#005CC5"> range</span><span style="color:#24292E">(</span><span style="color:#005CC5">len</span><span style="color:#24292E">(current_state.racks)):</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> rack_content </span><span style="color:#D73A49">=</span><span style="color:#24292E">
1 current_state.racks[rack_idx]</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # Check if the jig at the beluga side edge is the type we need</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#005CC5"> len</span><span style="color:#24292E">(rack_content) </span><span style="color:#D73A49">></span><span style="color:#005CC5"> 0</span><span style="color:#D73A49"> and</span><span style="color:#24292E"> rack_content[</span><span style="color:#005CC5">0</span><span style="color:#24292E">] </span><span style="color:#D73A49">==</span><span style="color:#24292E"> outgoing_jig_type_str:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> problem.pick_up_rack_preconditions(current_state, rack_idx, </span><span style="color:#005CC5">True</span><span style="color:#24292E">)[</span><span style="color:#005CC5">0</span><span style="color:#24292E">]: </span><span style="color:#6A737D"># True for beluga side</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> current_state </span><span style="color:#D73A49">=</span><span style="color:#24292E"> problem.pick_up_rack(current_state, rack_idx, </span><span style="color:#005CC5">True</span><span style="color:#24292E">)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> made_progress_this_turn </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> True</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> pick_up_empty_for_beluga_outgoing </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> True</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> break</span><span style="color:#6A737D"> # Jig picked up, re-evaluate priorities</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> </span></span>\n\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> made_progress_this_turn:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> continue</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span></span>\n\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # 8. Load outgoing jigs from Beluga trailers to the Beluga</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> problem.load_beluga_preconditions(current_state)[</span><span style="color:#005CC5">0</span><span style="color:#24292E">]:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> current_state </span><span style="color:#D73A49">=</span><span style="color:#24292E"> problem.load_beluga(current_state)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E">
1 made_progress_this_turn </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> True</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> continue</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span></span>\n\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # 9. Complete current Beluga flight (critical to move to the next flight)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> problem.beluga_complete_preconditions(current_state)[</span><span style="color:#005CC5">0</span><span style="color:#24292E">]:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> current_state </span><span style="color:#D73A49">=</span><span style="color:#24292E"> problem.beluga_complete(current_state)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> made_progress_this_turn </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> True</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> continue</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span></span>\n\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # If no progress was made in this iteration, we might be stuck or the problem is implicitly solved.</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # Break the loop to avoid infinite loops if no valid actions are possible.</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#D73A49"> not</span><span style="color:#24292E"> made_progress_this_turn:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> break</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span></span>\n\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> return</span><span style="color:#24292E"> current_state</span></span>\n',"policy_planner_1.patch",!0,!0)}}),(0,O.jsx)("ol",{children:(0,O.jsxs)("li",{children:[(0,O.jsx)("b",{children:"Add rack unblocking logic for Beluga and production:"})," The logic for picking up empty jigs needed for outgoing flights was refined by systematically unblocking them from racks. Additionally, new strategies are implemented to unblock required jigs for production lines, including moving blocking jigs to other racks or freeing up trailer space."]})}),(0,O.jsx)("div",{className:"my-code-block",dangerouslySetInnerHTML:{__html:wU('\n<span class="line" style="display:block;line-height:1.4;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;">@@ -25,25 +25,65 @@</span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#24292E">
1 made_progress_this_turn </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> True</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#D73A49"> continue</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#24292E"> </span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#6A737D"> # 3. Pick up empty jigs needed for outgoing flights</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # 3. Pick up empty jigs needed for outgoing flights (and unblock them)</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#D73A49"> if</span><span style="color:#24292E"> (current_state.flight_index </span><span style="color:#D73A49"><</span><span style="color:#005CC5"> len</span><span style="color:#24292E">(problem.flights) </span><span style="color:#D73A49">and</span><span style="color:#24292E"> </span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#24292E"> current_state.flight_outgoing_index </span><span style="color:#D73A49"><</span><span style="color:#005CC5"> len</span><span style="color:#24292E">(problem.flights[current_state.flight_index].outgoing)):</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#24292E"> </span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#24292E"> outgoing_jig_type_int </span><span style="color:#D73A49">=</span><span style="color:#24292E"> problem.outgoing_types[current_state.flight_index]</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#6A737D"> # Check if we need more empty jigs of this type</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#24292E"> needed_count </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> len</span><span style="color:#24292E">(problem.flights[current_state.flight_index].outgoing) </span><span>-</span><span style="color:#24292E"> current_state.flight_outgoing_index</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#24292E"> if current_state.beluga_trailers.empty_jigs[outgoing_jig_type_int] </span><span style="color:#D73A49"><</span><span style="color:#24292E"> needed_count:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> </span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> needed_count </span><span style="color:#D73A49">=</span><span style="color:#24292E"> (</span><span style="color:#005CC5">len</span><span style="color:#24292E">(problem.flights[current_state.flight_index].outgoing) </span><span>-</span><span style="color:#24292E"> </span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> current_state.flight_outgoing_index </span><span>-</span><span style="color:#24292E"> </span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> current_state.beluga_trailers.empty_jigs[outgoing_jig_type_int])</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> needed_count </span><span style="color:#D73A49">></span><span style="color:#005CC5"> 0</span><span style="color:#24292E">:</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#24292E"> outgoing_jig_type_str </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> str</span><span style="color:#24292E">(outgoing_jig_type_int)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#6A737D"> # Look for this type of empty jig on beluga side of racks</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#D73A49"> for</span><span style="color:#24292E"> rack_idx </span><span style="color:#D73A49">in</span><span style="color:#005CC5"> range</span><span style="color:#24292E">(</span><span style="color:#005CC5">len</span><span style="color:#24292E">(current_state.racks)):</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#24292E"> rack_content </span><span style="color:#D73A49">=</span><span style="color:#24292E">
1 current_state.racks[rack_idx]</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # First, try direct pickup</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> for</span><span style="color:#24292E"> rack_idx, rack_content </span><span style="color:#D73A49">in</span><span style="color:#005CC5"> enumerate</span><span style="color:#24292E">(current_state.racks):</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#D73A49"> if</span><span style="color:#24292E"> (</span><span style="color:#005CC5">len</span><span style="color:#24292E">(rack_content) </span><span style="color:#D73A49">></span><span style="color:#005CC5"> 0</span><span style="color:#D73A49"> and</span><span style="color:#24292E"> rack_content[</span><span style="color:#005CC5">0</span><span style="color:#24292E">] </span><span style="color:#D73A49">==</span><span style="color:#24292E"> outgoing_jig_type_str </span><span style="color:#D73A49">and</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#24292E"> problem.pick_up_rack_preconditions(current_state, rack_idx, </span><span style="color:#005CC5">True</span><span style="color:#24292E">)[</span><span style="color:#005CC5">0</span><span style="color:#24292E">]):</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#24292E"> current_state </span><span style="color:#D73A49">=</span><span style="color:#24292E"> problem.pick_up_rack(current_state, rack_idx, </span><span style="color:#005CC5">True</span><span style="color:#24292E">)</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#24292E"> made_progress_this_turn </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> True</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#D73A49"> break</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> made_progress_this_turn:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#D73A49"> continue</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> </span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # If direct pickup is not possible, try to unblock one.</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#D73A49"> not</span><span style="color:#24292E"> made_progress_this_turn:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # Find the shallowest (closest to beluga side) required empty jig.</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> best_location </span><span style="color:#D73A49">=</span><span style="color:#005CC5">
1 None</span><span style="color:#6A737D"> # (rack_idx, pos)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> min_blockers </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> float</span><span style="color:#24292E">(</span><span style="color:#032F62">\'inf\'</span><span style="color:#24292E">)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> for</span><span style="color:#24292E"> rack_idx, rack_content </span><span style="color:#D73A49">in</span><span style="color:#005CC5"> enumerate</span><span style="color:#24292E">(current_state.racks):</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> try</span><span style="color:#24292E">:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> pos </span><span style="color:#D73A49">=</span><span style="color:#24292E"> rack_content.index(outgoing_jig_type_str)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> pos </span><span style="color:#D73A49">></span><span style="color:#005CC5"> 0</span><span style="color:#D73A49"> and</span><span style="color:#24292E"> pos </span><span style="color:#D73A49"><</span><span style="color:#24292E"> min_blockers: </span><span style="color:#6A737D"># It\'s blocked</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> min_blockers </span><span style="color:#D73A49">=</span><span style="color:#24292E"> pos</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> best_location </span><span style="color:#D73A49">=</span><span style="color:#24292E"> (rack_idx, pos)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> except</span><span style="color:#005CC5"> ValueError</span><span style="color:#24292E">:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> continue</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> best_location:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> rack_idx, _ </span><span style="color:#D73A49">=</span><span style="color:#24292E"> best_location</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # Try to move the single blocking jig at the edge to make progress</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> problem.pick_up_rack_preconditions(current_state, rack_idx, </span><span style="color:#005CC5">True</span><span style="color:#24292E">)[</span><span style="color:#005CC5">0</span><span style="color:#24292E">]:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> blocking_jig </span><span style="color:#D73A49">=</span><span style="color:#24292E">
1 current_state.racks[rack_idx][</span><span style="color:#005CC5">0</span><span style="color:#24292E">]</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> temp_state </span><span style="color:#D73A49">=</span><span style="color:#24292E"> problem.pick_up_rack(current_state, rack_idx, </span><span style="color:#005CC5">True</span><span style="color:#24292E">)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> </span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> placed </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> False</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # Try to place the blocking jig in another rack, preferring the beluga side.</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> for</span><span style="color:#24292E"> other_rack_idx </span><span style="color:#D73A49">in</span><span style="color:#005CC5"> range</span><span style="color:#24292E">(</span><span style="color:#005CC5">len</span><span style="color:#24292E">(temp_state.racks)):</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> other_rack_idx </span><span style="color:#D73A49">!=</span><span style="color:#24292E"> rack_idx </span><span style="color:#D73A49">and</span><span style="color:#24292E"> problem.put_down_rack_preconditions(temp_state, other_rack_idx, blocking_jig, </span><span style="color:#005CC5">True</span><span style="color:#24292E">)[</span><span style="color:#005CC5">0</span><span style="color:#24292E">]:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> current_state </span><span style="color:#D73A49">=</span><span style="color:#24292E"> problem.put_down_rack(temp_state, other_rack_idx, blocking_jig, </span><span style="color:#005CC5">True</span><span style="color:#24292E">)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> placed </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> True</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> made_progress_this_turn </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> True</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> break</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> </span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#D73A49"> not</span><span style="color:#24292E"> placed:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> for</span><span style="color:#24292E"> other_rack_idx </span><span style="color:#D73A49">in</span><span style="color:#005CC5"> range</span><span style="color:#24292E">(</span><span style="color:#005CC5">len</span><span style="color:#24292E">(temp_state.racks)):</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> other_rack_idx </span><span style="color:#D73A49">!=</span><span style="color:#24292E"> rack_idx </span><span style="color:#D73A49">and</span><span style="color:#24292E"> problem.put_down_rack_preconditions(temp_state, other_rack_idx, blocking_jig, </span><span style="color:#005CC5">False</span><span style="color:#24292E">)[</span><span style="color:#005CC5">0</span><span style="color:#24292E">]:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> current_state </span><span style="color:#D73A49">=</span><span style="color:#24292E"> problem.put_down_rack(temp_state, other_rack_idx, blocking_jig, </span><span style="color:#005CC5">False</span><span style="color:#24292E">)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> placed </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> True</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> made_progress_this_turn </sp
1an><span style="color:#D73A49">=</span><span style="color:#005CC5"> True</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> break</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> made_progress_this_turn:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> continue</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#24292E"> </span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#6A737D"> # --- Production Line Management ---</span></span>\n',"policy_planner_6.patch",!0,!0)}}),(0,O.jsx)("ol",{children:(0,O.jsxs)("li",{children:[(0,O.jsx)("b",{children:"Implement systematic unblocking for production jigs:"})," The logic handling picking up required jigs for production lines from racks was rewritten. It now identifies all blocked required jigs, prioritizes them, and iteratively moves blocking jigs until a target jig can be directly picked up."]})}),(0,O.jsx)("div",{className:"my-code-block",dangerouslySetInnerHTML:{__html:wU('\n<span class="line" style="display:block;line-height:1.4;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;">@@ -128,60 +128,93 @@</span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#24292E"> </span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#6A737D"> # If no direct pickup, try to unblock required jigs systematically</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#D73A49"> if</span><span style="color:#D73A49"> not</span><span style="color:#24292E"> made_progress_this_turn:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#6A737D"> # For each rack, check if any required jig is blocked</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#D73A49"> for</span><span style="color:#24292E"> rack_idx </span><span style="color:#D73A49">in</span><span style="color:#005CC5"> range</span><span style="color:#24292E">(</span><span style="color:#005CC5">len</span><span style="color:#24292E">(current_state.racks)):</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#24292E"> rack_content </span><span style="color:#D73A49">=</span><span style="color:#24292E"> current_state.racks[rack_idx]</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#6A737D"> # Find the positions of required jigs in this rack</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#24292E"> required_positions </span><span style="color:#D73A49">=</span><span style="color:#24292E"> []</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # Create a map of where each required jig is located and how many it\'s blocking</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> jig_locations </span><span style="color:#D73A49">=</span><span style="color:#24292E"> {}</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> for</span><span style="color:#24292E"> rack_idx, rack_content </span><span style="color:#D73A49">in</span><span style="color:#005CC5"> enumerate</span><span style="color:#24292E">(current_state.racks):</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#D73A49"> for</span><span style="color:#24292E"> pos, jig </span><span style="color:#D73A49">in</span><span style="color:#005CC5"> enumerate</span><span style="color:#24292E">(rack_content):</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#D73A49"> if</span><span style="color:#24292E"> jig </span><span style="color:#D73A49">in</span><span style="color:#24292E"> required_jigs_for_pl_names </span><span style="color:#D73A49">and</span><span style="color:#D73A49"> not</span><span style="color:#24292E"> problem.is_jig_empty(jig):</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#24292E"> required_positions.append(pos)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#24292E"> </span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#D73A49"> if</span><span style="color:#D73A49"> not</span><span style="color:#24292E"> required_positions:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#D73A49"> continue</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#24292E"> </span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#6A737D"> # Find the shallowest (closest to factory side) required jig</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#24292E"> shallowest_pos </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> max</span><span style="color:#24292E">(required_positions) </span><span style="color:#6A737D"># Factory side is at the end</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#24292E"> </span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#6A737D"> # If not at the edge, we need to clear blocking jigs</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> shallowest_pos </span><span style="color:#D73A49"><</span><span style="color:#005CC5"> len</span><span style="color:#24292E">(rack_content) </span><span>-</span><span style="color:#005CC5"> 1</span><span style="color:#24292E">:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#6A737D"> # We need to clear all jigs from shallowest_pos+1 to the end</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#24292E"> blocking_jigs </span><span style="color:#D73A49">=</span><span style="color:#24292E"> []</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#D73A49"> for</span><span style="color:#24292E"> blocking_pos </span><span style="color:#D73A49">in</span><span style="color:#005CC5"> range</span><span style="color:#24292E">(</span><span style="color:#005CC5">len</span><span style="color:#24292E">(rack_content) </span><span>-</span><span style="color:#005CC5"> 1</span><span style="color:#24292E">, shallowest_pos, </span><span>-</span><span style="color:#005CC5">1</span><span style="color:#24292E">):</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#24292E"> blocking_jigs.append((blocking_pos, rack_content[blocking_pos]))</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#24292E"> </span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#6A737D"> # Try to move blocking jigs one by one</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#D73A49"> for</span><span style="color:#24292E"> blocking_pos, blocking_jig </span><span style="color:#D73A49">in</span><span style="color:#24292E"> blocking_jigs:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> problem.pick_up_rack_preconditions(current_state, rack_idx, </span><span style="color:#005CC5">False</span><span style="color:#24292E">)[</span><span style="color:#005CC5">0</span><span style="color:#24292E">]:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#24292E"> temp_state </span><span style="color:#D73A49">=</span><span style="color:#24292E"> problem.pick_up_rack(current_state, rack_idx, </span><span style="color:#005CC5">False</span><span style="color:#24292E">)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#6A737D"> # Try to put the blocking jig in another rack (prefer factory side)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#24292E"> placed </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> False</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#6A737D"> # First try factory trailers side placement</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#D73A49"> if</span><span style="color:#D73A49"> not</span><span style="color:#24292E"> placed </span><span style="color:#D73A49">and</span><span style="color:#005CC5"> len</span><span style="color:#24292E">
1(temp_state.factory_trailers) </span><span style="color:#D73A49"><</span><span style="color:#24292E"> problem.num_factory_trailers:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#D73A49"> for</span><span style="color:#24292E"> other_rack_idx </span><span style="color:#D73A49">in</span><span style="color:#005CC5"> range</span><span style="color:#24292E">(</span><span style="color:#005CC5">len</span><span style="color:#24292E">(temp_state.racks)):</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> other_rack_idx </span><span style="color:#D73A49">!=</span><span style="color:#24292E"> rack_idx:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> problem.put_down_rack_preconditions(temp_state, other_rack_idx, blocking_jig, </span><span style="color:#005CC5">False</span><span style="color:#24292E">)[</span><span style="color:#005CC5">0</span><span style="color:#24292E">]:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#24292E"> current_state </span><span style="color:#D73A49">=</span><span style="color:#24292E"> problem.put_down_rack(temp_state, other_rack_idx, blocking_jig, </span><span style="color:#005CC5">False</span><span style="color:#24292E">)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#24292E"> made_progress_this_turn </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> True</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # Count how many jigs this one is blocking</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> blocking_count </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> len</span><span style="color:#24292E">(rack_content) </span><span>-</span><span style="color:#24292E"> pos </span><span>-</span><span style="color:#005CC5"> 1</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> jig_locations[jig] </span><span style="color:#D73A49">=</span><span style="color:#24292E"> (rack_idx, pos, blocking_count)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # Try to access each required jig, starting with those that are blocking the most other jigs</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> for</span><span style="color:#24292E"> required_jig </span><span style="color:#D73A49">in</span><span style="color:#005CC5"> sorted</span><span style="color:#24292E">(jig_locations, </span><span style="color:#E36209">key</span><span style="color:#D73A49">=lambda</span><span style="color:#24292E"> x: </span><span>-</span><span style="color:#24292E">jig_locations[x][</span><span style="color:#005CC5">2</span><span style="color:#24292E">]):</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> rack_idx, jig_pos, _ </span><span style="color:#D73A49">=</span><span style="color:#24292E"> jig_locations[required_jig]</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> rack_content </span><span style="color:#D73A49">=</span><span style="color:#24292E">
1 current_state.racks[rack_idx]</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # If the jig is already at the factory side (end), we can pick it up directly</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> jig_pos </span><span style="color:#D73A49">==</span><span style="color:#005CC5"> len</span><span style="color:#24292E">(rack_content) </span><span>-</span><span style="color:#005CC5"> 1</span><span style="color:#24292E">:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> problem.pick_up_rack_preconditions(current_state, rack_idx, </span><span style="color:#005CC5">False</span><span style="color:#24292E">)[</span><span style="color:#005CC5">0</span><span style="color:#24292E">]:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> current_state </span><span style="color:#D73A49">=</span><span style="color:#24292E"> problem.pick_up_rack(current_state, rack_idx, </span><span style="color:#005CC5">False</span><span style="color:#24292E">)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> made_progress_this_turn </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> True</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> break</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> else</span><span style="color:#24292E">:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # The jig is blocked, we need to move blocking jigs</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # Move jigs that are blocking this required jig, from the factory side towards beluga side</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> blocking_positions </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> list</span><span style="color:#24292E">(</span><span style="color:#005CC5">range</span><span style="color:#24292E">(</span><span style="color:#005CC5">len</span><span style="color:#24292E">(rack_content) </span><span>-</span><span style="color:#005CC5"> 1</span><span style="color:#24292E">, jig_pos, </span><span>-</span><span style="color:#005CC5">1</span><span style="color:#24292E">))</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> blocking_moved </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> True</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # Keep trying to move blocking jigs until we can access the required jig or get stuck</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> while</span><span style="color:#24292E"> blocking_moved </span><span style="color:#D73A49">and</span><span style="color:#D73A49"> not</span><span style="color:#24292E"> made_progress_this_turn:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> blocking_moved </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> False</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> temp_state </span><span style="color:#D73A49">=</span><span style="color:#24292E"> current_state</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> for</span><span style="color:#24292E"> blocking_pos </span><span style="color:#D73A49">in</span><span style="color:#24292E"> blocking_positions:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> blocking_pos </span><span style="color:#D73A49">>=</span><span style="color:#005CC5"> len</span><span style="color:#24292E">
1(temp_state.racks[rack_idx]):</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # This position is now empty, skip it</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> continue</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> blocking_jig </span><span style="color:#D73A49">=</span><span style="color:#24292E"> temp_state.racks[rack_idx][blocking_pos]</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # Try to move this blocking jig</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> problem.pick_up_rack_preconditions(temp_state, rack_idx, </span><span style="color:#005CC5">False</span><span style="color:#24292E">)[</span><span style="color:#005CC5">0</span><span style="color:#24292E">]:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> pickup_state </span><span style="color:#D73A49">=</span><span style="color:#24292E"> problem.pick_up_rack(temp_state, rack_idx, </span><span style="color:#005CC5">False</span><span style="color:#24292E">)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # Try to place it in another rack</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> placed </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> False</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # First try to place in other racks on factory side</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> for</span><span style="color:#24292E"> target_rack_idx </span><span style="color:#D73A49">in</span><span style="color:#005CC5"> range</span><span style="color:#24292E">(</span><span style="color:#005CC5">len</span><span style="color:#24292E">(pickup_state.racks)):</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> target_rack_idx </span><span style="color:#D73A49">!=</span><span style="color:#24292E"> rack_idx:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> problem.put_down_rack_preconditions(pickup_state, target_rack_idx, blocking_jig, </span><span style="color:#005CC5">False</span><span style="color:#24292E">)[</span><span style="color:#005CC5">0</span><span style="color:#24292E">]:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> temp_state </span><span style="color:#D73A49">=</span><span style="color:#24292E"> problem.put_down_rack(pickup_state, target_rack_idx, blocking_jig, </span><span style="color:#005CC5">False</span><span style="color:#24292E">)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> current_state </span><span style="color:#D73A49">=</span><span style="color:#24292E"> temp_state</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> blocking_moved </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> True</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#24292E"> placed </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> True</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#D73A49"> break</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#24292E"> </span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#6A737D"> # Then try beluga trailers side placement</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#D73A49"> if</span><span style="color:#D73A49"> not</span><span style="color:#24292E"> placed </span><span style="color:#D73A49">and</span><span style="color:#005CC5"> len</span><span style="color:#24292E">
1(temp_state.beluga_trailers) </span><span style="color:#D73A49"><</span><span style="color:#24292E"> problem.num_beluga_trailers:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#D73A49"> for</span><span style="color:#24292E"> other_rack_idx </span><span style="color:#D73A49">in</span><span style="color:#005CC5"> range</span><span style="color:#24292E">(</span><span style="color:#005CC5">len</span><span style="color:#24292E">(temp_state.racks)):</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> other_rack_idx </span><span style="color:#D73A49">!=</span><span style="color:#24292E"> rack_idx:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> problem.put_down_rack_preconditions(temp_state, other_rack_idx, blocking_jig, </span><span style="color:#005CC5">True</span><span style="color:#24292E">)[</span><span style="color:#005CC5">0</span><span style="color:#24292E">]:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#24292E"> current_state </span><span style="color:#D73A49">=</span><span style="color:#24292E"> problem.put_down_rack(temp_state, other_rack_idx, blocking_jig, </span><span style="color:#005CC5">True</span><span style="color:#24292E">)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#24292E"> made_progress_this_turn </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> True</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#24292E"> placed </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> True</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # If couldn\'t place on factory side, try beluga side</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#D73A49"> not</span><span style="color:#24292E"> placed:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> for</span><span style="color:#24292E"> target_rack_idx </span><span style="color:#D73A49">in</span><span style="color:#005CC5"> range</span><span style="color:#24292E">(</span><span style="color:#005CC5">len</span><span style="color:#24292E">(pickup_state.racks)):</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> target_rack_idx </span><span style="color:#D73A49">!=</span><span style="color:#24292E"> rack_idx:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> problem.put_down_rack_preconditions(pickup_state, target_rack_idx, blocking_jig, </span><span style="color:#005CC5">True</span><span style="color:#24292E">)[</span><span style="color:#005CC5">0</span><span style="color:#24292E">]:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> temp_state </span><span style="color:#D73A49">=</span><span style="color:#24292E"> problem.put_down_rack(pickup_state, target_rack_idx, blocking_jig, </span><span style="color:#005CC5">True</span><span style="color:#24292E">)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> current_state </span><span style="color:#D73A49">=</span><span style="color:#24292E"> temp_state</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> blocking_moved </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> True</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> placed </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> True</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> break</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> placed:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # Update blocking positions since rack content changed</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> new_rack_content </span><span style="color:#D73A49">=</span><span style="color:#24292E">
1 temp_state.racks[rack_idx]</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> new_jig_pos </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> None</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> for</span><span style="color:#24292E"> pos, jig </span><span style="color:#D73A49">in</span><span style="color:#005CC5"> enumerate</span><span style="color:#24292E">(new_rack_content):</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> jig </span><span style="color:#D73A49">==</span><span style="color:#24292E"> required_jig:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> new_jig_pos </span><span style="color:#D73A49">=</span><span style="color:#24292E"> pos</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#D73A49"> break</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#24292E"> </span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> placed:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> new_jig_pos </span><span style="color:#D73A49">is</span><span style="color:#D73A49"> not</span><span style="color:#005CC5">
1 None</span><span style="color:#24292E">:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> blocking_positions </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> list</span><span style="color:#24292E">(</span><span style="color:#005CC5">range</span><span style="color:#24292E">(</span><span style="color:#005CC5">len</span><span style="color:#24292E">(new_rack_content) </span><span>-</span><span style="color:#005CC5"> 1</span><span style="color:#24292E">, new_jig_pos, </span><span>-</span><span style="color:#005CC5">1</span><span style="color:#24292E">))</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> break</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # After moving one blocking jig, check if we can now pick up the required jig</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> blocking_moved:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> new_rack_content </span><span style="color:#D73A49">=</span><span style="color:#24292E"> temp_state.racks[rack_idx]</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> (</span><span style="color:#005CC5">len</span><span style="color:#24292E">(new_rack_content) </span><span style="color:#D73A49">></span><span style="color:#005CC5"> 0</span><span style="color:#D73A49"> and</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> new_rack_content[</span><span>-</span><span style="color:#005CC5">1</span><span style="color:#24292E">] </span><span style="color:#D73A49">==</span><span style="color:#24292E"> required_jig </span><span style="color:#D73A49">and</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> problem.pick_up_rack_preconditions(temp_state, rack_idx, </span><span style="color:#005CC5">False</span><span style="color:#24292E">)[</span><span style="color:#005CC5">0</span><span style="color:#24292E">]):</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> current_state </span><span style="color:#D73A49">=</span><span style="color:#24292E"> problem.pick_up_rack(temp_state, rack_idx, </span><span style="color:#005CC5">False</span><span style="color:#24292E">)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> made_progress_this_turn </sp
1an><span style="color:#D73A49">=</span><span style="color:#005CC5"> True</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#D73A49"> break</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> made_progress_this_turn:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#D73A49"> break</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> made_progress_this_turn:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#D73A49"> break</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#24292E"> </span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#6A737D"> # If still no progress, try a more aggressive unblocking strategy</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#D73A49"> if</span><span style="color:#D73A49"> not</span><span style="color:#24292E"> made_progress_this_turn:</span></span>\n',"policy_planner_7.patch",!0,!0)}}),(0,O.jsx)("ol",{children:(0,O.jsxs)("li",{children:[(0,O.jsx)("b",{children:"Add cycle detection and backtracking to policy:"})," This change introduces state-tracking to the policy planner workflow, enabling explicit cycle detection and emergency backtracking. The planner now tracks visited states and reverts to a previous state if a cycle is detected or if a predefined number of steps are taken without making progress."]})}),(0,O.jsx)("div",{className:"my-code-block",dangerouslySetInnerHTML:{__html:wU('\n<span class="line" style="display:block;line-height:1.4;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;">@@ -7,9 +7,43 @@</span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#D73A49"> def</span><span style="color:#6F42C1"> policy</span><span style="color:#24292E">(problem: pl.BelugaInstance) -> pl.BelugaState:</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#032F62"> """Solves the Beluga problem by applying a priority-based greedy strategy."""</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#24292E"> current_state </span><span style="color:#D73A49">=</span><span style="color:#24292E"> problem.get_initial_state()</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> seen_states </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> set</span><span style="color:#24292E">()</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> max_steps_without_progress </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> 100</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> steps_without_progress </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> 0</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#24292E"> </span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#D73A49"> while</span><span style="color:#D73A49"> not</span><span style="color:#24292E"> problem.is_problem_solved(current_state)[</span><span style="color:#005CC5">0</span><span style="color:#24292E">]:</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#24292E">
1 made_progress_this_turn </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> False</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> </span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # Check for cycle - if we\'ve seen this state before, backtrack</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> state_signature </span><span style="color:#D73A49">=</span><span style="color:#24292E"> (</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> current_state.flight_index,</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> current_state.flight_incoming_index,</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> current_state.flight_outgoing_index,</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> current_state.production_lines_indices,</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#005CC5"> hash</span><span style="color:#24292E">(current_state.beluga_trailers),</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#005CC5"> hash</span><span style="color:#24292E">(current_state.factory_trailers),</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> current_state.hangars,</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#005CC5"> tuple</span><span style="color:#24292E">(</span><span style="color:#005CC5">tuple</span><span style="color:#24292E">(rack) </span><span style="color:#D73A49">for</span><span style="color:#24292E"> rack </span><span style="color:#D73A49">in</span><span style="color:#24292E"> current_state.racks)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> )</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> </span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> state_signature </span><span style="color:#D73A49">in</span><span style="color:#24292E"> seen_states:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # Backtrack to previous state and skip this action</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> current_state.previous_state:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> current_state </span><span style="color:#D73A49">=</span><span style="color:#24292E"> current_state.previous_state</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> continue</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> else</span><span style="color:#24292E">:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> seen_states.add(state_signature)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> steps_without_progress </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> 0</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> </span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # Emergency backtracking if stuck too long</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> steps_without_progress </span><span style="color:#D73A49">+=</span><span style="color:#005CC5"> 1</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> steps_without_progress </span><span style="color:#D73A49">></span><span style="color:#24292E"> max_steps_without_progress:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> current_state.previous_state:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> current_state </span><span style="color:#D73A49">=</span><span style="color:#24292E"> current_state.previous_state</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> steps_without_progress </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> 0</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> continue</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> </span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # Only proceed with normal planning if we haven\'t seen this state</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#24292E"> </span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#6A737D"> # --- Flight Management (Highest Priority) ---</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#24292E"> </span></span>\n<span class="line" style="display:block;line-height:1.4;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;">@@ -338,9 +372,14 @@</span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#D73A49"> if</span><span style="color:#24292E"> made_progress_this_turn:</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#D73A49"> continue</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#24292E"> </span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#6A737D"> # If no progress was made, we might be stuck</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # If no progress was made, backtrack to avoid infinite loops</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#D73A49"> if</span><span style="color:#D73A49"> not</span><span style="color:#24292E"> made_progress_this_turn:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#D73A49"> break</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> current_state.previous_state:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> current_state </span><span style="color:#D73A49">=</span><span style="color:#24292E"> current_state.previous_state</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> continue</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> else</span><span style="color:#24292E">:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # If no previous state, we\'re truly stuck</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> break</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#24292E"> </span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#D73A49"> return</span><span style="color:#24292E"> current_state</span></span>\n',"policy_planner_11.patch",!0,!0)}}),(0,O.jsx)("ol",{children:(0,O.jsxs)("li",{children:[(0,O.jsx)("b",{children:"Prioritize production lines by overall schedule urgency:"})," The production line prioritization heuristic was updated by introducing a new metric that estimates the total processing steps before a jig is required. This metric is now the primary factor for sorting production line priorities in ascending order, effectively changing the preference from higher-value components to lower-value components."]})}),(0,O.jsx)("div",{className:"my-code-block",dangerouslySetInnerHTML:{__html:wU('\n<span class="line" style="display:block;line-height:1.4;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;">@@ -157,30 +157,40 @@</span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#D73A49"> for</span><span style="color:#24292E"> pl_idx </span><span style="color:#D73A49">in</span><span style="color:#005CC5"> range</span><span style="color:#24292E">(</span><span style="color:#005CC5">len</span><span style="color:#24292E">(problem.production_lines)):</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#24292E"> remaining_jigs </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> len</span><span style="color:#24292E">(problem.production_lines[pl_idx].schedule) </span><span>-</span><span style="color:#24292E"> current_state.production_lines_indices[pl_idx]</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#D73A49"> if</span><span style="color:#24292E"> remaining_jigs </span><span style="color:#D73A49">></span><span style="color:#005CC5"> 0</span><span style="color:#24292E">:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#6A737D"> # Calculate urgency based on remaining jigs and how aligned with current flight</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-r
1ight:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # Calculate urgency based on remaining jigs, how aligned with current flight, and how soon the jig is needed</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#24292E"> pl_ptr </span><span style="color:#D73A49">=</span><span style="color:#24292E"> current_state.production_lines_indices[pl_idx]</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#D73A49"> if</span><span style="color:#24292E"> pl_ptr </span><span style="color:#D73A49"><</span><span style="color:#005CC5"> len</span><span style="color:#24292E">(problem.production_lines[pl_idx].schedule):</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#24292E"> required_jig </span><span style="color:#D73A49">=</span><span style="color:#24292E"> problem.production_lines[pl_idx].schedule[pl_ptr]</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#24292E"> jig_type </span><span style="color:#D73A49">=</span><span style="color:#24292E"> problem.get_type_for_jig(required_jig.name)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # Calculate time until this jig is needed (how many steps until we reach this jig in the schedule)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> time_until_needed </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> 0</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> for</span><span style="color:#24292E"> i </span><span style="color:#D73A49">in</span><span style="color:#005CC5"> range</span><span style="color:#24292E">(pl_idx, </span><span style="color:#005CC5">len</span><span style="color:#24292E">(problem.production_lines)):</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> if</span><span style="color:#24292E"> i </span><span style="color:#D73A49">==</span><span style="color:#24292E"> pl_idx:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> time_until_needed </span><span style="color:#D73A49">+=</span><span style="color:#24292E"> (</span><span style="color:#005CC5">len</span><span style="color:#24292E">(problem.production_lines[i].schedule) </span><span>-</span><span style="color:#24292E"> pl_ptr)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#D73A49"> else</span><span style="color:#24292E">:</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> time_until_needed </span><span style="color:#D73A49">+=</span><span style="color:#005CC5"> len</span><span style="color:#24292E">(problem.production_lines[i].schedule)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#6A737D"> # Prefer jigs that match outgoing flight types to reduce Beluga loading conflicts</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#24292E"> flight_alignment </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> 0</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#D73A49"> if</span><span style="color:#24292E"> (current_state.flight_index </span><span style="color:#D73A49"><</span><span style="color:#005CC5"> len</span><span style="color:#24292E">
1(problem.outgoing_types) </span><span style="color:#D73A49">and</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#24292E"> problem.outgoing_types[current_state.flight_index] </span><span style="color:#D73A49">==</span><span style="color:#24292E"> jig_type):</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#24292E"> flight_alignment </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> 1</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#6A737D"> # Priority: flight alignment first, then remaining jigs</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#24292E"> priority_score </span><span style="color:#D73A49">=</span><span style="color:#24292E"> (flight_alignment, remaining_jigs, pl_idx)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # Priority: time until needed first, then flight alignment, then remaining jigs</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> priority_score </span><span style="color:#D73A49">=</span><span style="color:#24292E"> (time_until_needed, flight_alignment, remaining_jigs, pl_idx)</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#24292E"> pl_priorities.append((priority_score, pl_idx))</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#6A737D"> # Sort by priority score (alignment first, then remaining jigs)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#ffebe9;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>-</span><span style="color:#24292E"> pl_priorities.sort(</span><span style="color:#E36209">reverse</span><span style="color:#D73A49">=</span><span style="color:#005CC5">True</span><span style="color:#24292E">)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#6A737D"> # Sort by priority score (time until needed first, then alignment, then remaining jigs)</span></span>\n<span class="line" style="display:block;line-height:1.4;background-color:#e6ffec;margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;min-width:max-content;"><span>+</span><span style="color:#24292E"> pl_priorities.sort()</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#D73A49"> for</span><span style="color:#24292E"> _, pl_idx </span><span style="color:#D73A49">in</span><span style="color:#24292E"> pl_priorities:</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#D73A49"> if</span><span style="color:#24292E"> problem.deliver_to_hangar_preconditions(current_state, pl_idx)[</span><span style="color:#005CC5">0</span><span style="color:#24292E">]:</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#24292E"> current_state </span><span style="color:#D73A49">=</span><span style="color:#24292E"> problem.deliver_to_hangar(current_state, pl_idx)</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#24292E">
1 made_progress_this_turn </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> True</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#D73A49"> break</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#D73A49"> if</span><span style="color:#24292E"> made_progress_this_turn:</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#D73A49"> continue</span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#24292E"> </span></span>\n<span class="line" style="display:block;line-height:1.4;min-width:max-content;"><span style="color:#6A737D"> # 5. Get empty jigs from hangars to factory trailers</span></span>\n',"policy_planner_24.patch",!0,!0)}}),(0,O.jsx)("h1",{children:"Conclusion"}),(0,O.jsx)("p",{children:"LLMs alone lack the systematic reasoning and long-horizon planning capabilities needed for c
1omplex problems. However, when embedded within an evolutionary framework like the Hive, where generated algorithms are continuously evaluated, refined, and improved based on concrete performance metrics, they can discover solutions that outperform both general-purpose classical planners and rival expert-designed domain-specific algorithms. By providing nothing more than the problem domain and evaluation metrics, the Hive discovered sophisticated techniques that may have otherwise required months of expert development."}),(0,O.jsx)("p",{children:"The Hive is particularly powerful for novel domains where classical planners struggle due to combinatorial explosion, and where domain expertise for manual algorithm design is limited or expensive. As planning problems continue to grow in scale and complexity, whether itâs a robot assembling a satellite in orbit, or an AI system designing a new drug, tools like the Hive agent which can automatically discover tailored, high-performing solutions will become increasingly valuable."})]})}function wK(){return(0,O.jsxs)(O.Fragment,{children:[(0,O.jsxs)("p",{children:["Recently, we partnered with ",(0,O.jsx)("a",{href:"https://www.quantinuum.com/",target:"_blank",children:"Quantinuum"})," to apply our AI platform, the Hive, to a complex challenge: discovering new algorithms for quantum chemistry."]}),(0,O.jsx)("p",{children:"Scientific breakthroughs increasingly depend on sophisticated algorithms to unlock new discoveriesâbut designing these algorithms is notoriously difficult. This is particularly the case with quantum algorithms."}),(0,O.jsx)("p",{children:"Using the Hive, we significantly accelerated this process of algorithmic discovery. By integrating the Hive together with Quantinuum's quantum chemistry platform, InQuanto, our teams were able to discover quantum algorithms which surpass state-of-the-art techniques in just a matter of weeks - in terms of performance, robustness to noise, and resource efficiency."}),(0,O.jsx)("p",{children:(0,O.jsx)("img",{src:"/post/quantinuum.png",alt:"The Hive in action with InQuanto"})}),(0,O.jsxs)("div",{style:{textAlign:"center",marginTop:"10px",fontSize:"16px",fontStyle:"italic",fontWeight:300},children:[(0,O.jsx)("strong",{children:"Figure 1:"})," A high-level overview of how the Hive interacted with Quantinuum's InQuanto to discover new quantum algorithms."]}),(0,O.jsx)("p",{children:"Unlike many other âblack-boxâ machine learning approaches, the Hive outputs interpretable code. Quantinuum's experts were able to read, understand, and learn from the Hive's discovered algorithms."}),(0,O.jsx)("p",{children:"Quantinuum's in-house quantum chemistry expert, Dr. David Zsolt Manrique, commented,"}),(0,O.jsx)("blockquote",{style:{margin:"2em 0",padding:"0.75em 1em",borderLeft:"3px solid #ccc"},children:"âI found it amazing that the Hive converged to a domain-expert level idea. By inspecting the code, we see it has identified the well-known perturbative method, 'MP2', as a useful guide⦠Further, it systematically and laboriously fine-tuned those MP2-inspired heuristics over many iterations in a way that would be difficult for a human expert to do by hand. It demonstrated an impressive combination of domain expertise and automated machinery that would be useful in exploring novel quantum chemistry methods.â"}),(0,O.jsx)("p",{children:"These initial results demonstrate the potential of Hive in scientific discovery. We are excited to continue our partnership with Quantinuum to tackle more challenging and exciting problems in the future."}),(0,O.jsxs)("p",{children:["Read more about our joint work ",(0,O.jsx)("a",{href:"https://www.quantinuum.com/blog/automated-quantum-algorithm-discovery-for-quantum-chemistry",children:"here"}),"."]})]})}function wW(){return(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)("p",{children:"Hiverge announces that it is working with NVIDIA, Quantinuum, and AWS, three of the world's leading technology companies, to enable breakthrough innovation at the intersection of AI and quantum computing. This is a testament to Hiverge's approach to algorithmic discovery, and the importance of its platform to enable cutting-edge computation."}),(0,O.jsxs)("p",{children:["One of the most promising application areas of quantum computing is to solve hard o
1ptimization problems, which can arise across virtually every domain â engineering, logistics, finance, machine learning, and scientific research. However, designing quantum algorithms is notoriously difficult, due to the powerful but unintuitive properties of quantum physics, such as entanglement and superposition. This collaboration aims to develop new quantum algorithms for combinatorial optimization, via Hiverge's flagship platform, the Hive. Quantum experts from Quantinuum use the Hive to search for algorithms that surpass the current state-of-the-art. The algorithms are written in a human-readable programming language like ",(0,O.jsx)("a",{href:"https://developer.nvidia.com/cuda-q",target:"_blank",children:"NVIDIA CUDA-Q"}),", the platform for hybrid quantum-classical computing, or ",(0,O.jsx)("a",{href:"https://docs.quantinuum.com/guppy/",target:"_blank",children:"Guppy"}),", Quantinuum's quantum programming language. They are simulated on powerful NVIDIA GPUs running on AWS before they are validated on Quantinuum's quantum hardware."]}),(0,O.jsx)("p",{style:{textAlign:"center"},children:(0,O.jsx)("img",{src:"/post/quantinuumnvidia.png",alt:"The Hive in action with InQuanto",style:{maxWidth:"70%"}})}),(0,O.jsxs)("div",{style:{textAlign:"center",marginTop:"10px",fontSize:"16px",fontStyle:"italic",fontWeight:300},children:[(0,O.jsx)("strong",{children:"Figure 1:"})," Quantum algorithms are discovered by using the Hive together with the NVIDIA CUDA-Q platform and GPUs, then tested and validated on Quantinuum's quantum computing hardware."]}),(0,O.jsx)("p",{children:"This collaboration advances Hiverge's mission to accelerate computation through AI-guided algorithmic discovery. As quantum hardware is set to become an important pillar of computing infrastructure, we are thrilled to empower quantum researchers with the Hive to accelerate discovery and bring practical quantum computing closer to reality."})]})}function wV(e){let{post:t}=e;return(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)("section",{className:"single-intro",children:(0,O.jsxs)("div",{className:"container",children:[(0,O.jsxs)("div",{className:"container-title col-start-1 col-span-11",children:[(0,O.jsx)("h1",{className:"title funnel-106",children:t.title}),(0,O.jsx)("h3",{children:t.subtitle})]}),(0,O.jsxs)("div",{className:"container-info col-size-1 outfit-20 flex-v",children:[(0,O.jsxs)("p",{className:"author",children:["Author: ",t.author]}),(0,O.jsx)("p",{className:"date",children:t.date})]})]})}),(0,O.jsx)("section",{className:"single-content",children:(0,O.jsxs)("div",{className:"container",children:[(0,O.jsx)("div",{className:"block block-share col-start-1 col-span-2",children:(0,O.jsx)(D,{post:t})}),(0,O.jsx)("div",{className:"block block-content col-size-4",children:"/blog/introducing-hiverge"==t.href?(0,O.jsx)(b0,{}):"/blog/cifar-speedrun"==t.href?(0,O.jsx)(wR,{}):"/blog/airbus-planning"==t.href?(0,O.jsx)(wq,{}):"/blog/quantinuum-partnership"==t.href?(0,O.jsx)(wK,{}):"/blog/quantinuum-nvidia-collaboration"==t.href?(0,O.jsx)(wW,{}):"Unknown blog post"})]})})]})}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.