diff --git a/.gitattributes b/.gitattributes index c7707166..f7f5bc04 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1,2 @@ -lightrag/api/webui/** -diff +lightrag/api/webui/** binary +lightrag/api/webui/** linguist-generated diff --git a/lightrag/api/webui/assets/index-CSrxfS-k.js b/lightrag/api/webui/assets/index-4I5HV9Fr.js similarity index 53% rename from lightrag/api/webui/assets/index-CSrxfS-k.js rename to lightrag/api/webui/assets/index-4I5HV9Fr.js index 2427c50a..297c5542 100644 --- a/lightrag/api/webui/assets/index-CSrxfS-k.js +++ b/lightrag/api/webui/assets/index-4I5HV9Fr.js @@ -1,4 +1,4 @@ -var u9=Object.defineProperty;var c9=(e,t,n)=>t in e?u9(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Da=(e,t,n)=>c9(e,typeof t!="symbol"?t+"":t,n);function d9(e,t){for(var n=0;nr[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))r(a);new MutationObserver(a=>{for(const o of a)if(o.type==="childList")for(const s of o.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&r(s)}).observe(document,{childList:!0,subtree:!0});function n(a){const o={};return a.integrity&&(o.integrity=a.integrity),a.referrerPolicy&&(o.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?o.credentials="include":a.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(a){if(a.ep)return;a.ep=!0;const o=n(a);fetch(a.href,o)}})();var cf=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function un(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function f9(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var n=function r(){return this instanceof r?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(r){var a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,a.get?a:{enumerable:!0,get:function(){return e[r]}})}),n}var $h={exports:{}},Zl={};/** +var l9=Object.defineProperty;var u9=(e,t,n)=>t in e?l9(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Xr=(e,t,n)=>u9(e,typeof t!="symbol"?t+"":t,n);function c9(e,t){for(var n=0;nr[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))r(a);new MutationObserver(a=>{for(const o of a)if(o.type==="childList")for(const s of o.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&r(s)}).observe(document,{childList:!0,subtree:!0});function n(a){const o={};return a.integrity&&(o.integrity=a.integrity),a.referrerPolicy&&(o.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?o.credentials="include":a.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(a){if(a.ep)return;a.ep=!0;const o=n(a);fetch(a.href,o)}})();var df=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function un(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function d9(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var n=function r(){return this instanceof r?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(r){var a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,a.get?a:{enumerable:!0,get:function(){return e[r]}})}),n}var $h={exports:{}},Xl={};/** * @license React * react-jsx-runtime.production.js * @@ -6,7 +6,7 @@ var u9=Object.defineProperty;var c9=(e,t,n)=>t in e?u9(e,t,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var Y_;function p9(){if(Y_)return Zl;Y_=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function n(r,a,o){var s=null;if(o!==void 0&&(s=""+o),a.key!==void 0&&(s=""+a.key),"key"in a){o={};for(var u in a)u!=="key"&&(o[u]=a[u])}else o=a;return a=o.ref,{$$typeof:e,type:r,key:s,ref:a!==void 0?a:null,props:o}}return Zl.Fragment=t,Zl.jsx=n,Zl.jsxs=n,Zl}var K_;function g9(){return K_||(K_=1,$h.exports=p9()),$h.exports}var w=g9(),qh={exports:{}},it={};/** + */var q_;function f9(){if(q_)return Xl;q_=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function n(r,a,o){var s=null;if(o!==void 0&&(s=""+o),a.key!==void 0&&(s=""+a.key),"key"in a){o={};for(var u in a)u!=="key"&&(o[u]=a[u])}else o=a;return a=o.ref,{$$typeof:e,type:r,key:s,ref:a!==void 0?a:null,props:o}}return Xl.Fragment=t,Xl.jsx=n,Xl.jsxs=n,Xl}var V_;function p9(){return V_||(V_=1,$h.exports=f9()),$h.exports}var w=p9(),qh={exports:{}},it={};/** * @license React * react.production.js * @@ -14,7 +14,7 @@ var u9=Object.defineProperty;var c9=(e,t,n)=>t in e?u9(e,t,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var X_;function h9(){if(X_)return it;X_=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),o=Symbol.for("react.consumer"),s=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),c=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),g=Symbol.iterator;function m(I){return I===null||typeof I!="object"?null:(I=g&&I[g]||I["@@iterator"],typeof I=="function"?I:null)}var b={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},y=Object.assign,S={};function k(I,V,B){this.props=I,this.context=V,this.refs=S,this.updater=B||b}k.prototype.isReactComponent={},k.prototype.setState=function(I,V){if(typeof I!="object"&&typeof I!="function"&&I!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,I,V,"setState")},k.prototype.forceUpdate=function(I){this.updater.enqueueForceUpdate(this,I,"forceUpdate")};function R(){}R.prototype=k.prototype;function x(I,V,B){this.props=I,this.context=V,this.refs=S,this.updater=B||b}var A=x.prototype=new R;A.constructor=x,y(A,k.prototype),A.isPureReactComponent=!0;var C=Array.isArray,N={H:null,A:null,T:null,S:null},_=Object.prototype.hasOwnProperty;function O(I,V,B,M,K,J){return B=J.ref,{$$typeof:e,type:I,key:V,ref:B!==void 0?B:null,props:J}}function F(I,V){return O(I.type,V,void 0,void 0,void 0,I.props)}function D(I){return typeof I=="object"&&I!==null&&I.$$typeof===e}function L(I){var V={"=":"=0",":":"=2"};return"$"+I.replace(/[=:]/g,function(B){return V[B]})}var G=/\/+/g;function $(I,V){return typeof I=="object"&&I!==null&&I.key!=null?L(""+I.key):V.toString(36)}function U(){}function W(I){switch(I.status){case"fulfilled":return I.value;case"rejected":throw I.reason;default:switch(typeof I.status=="string"?I.then(U,U):(I.status="pending",I.then(function(V){I.status==="pending"&&(I.status="fulfilled",I.value=V)},function(V){I.status==="pending"&&(I.status="rejected",I.reason=V)})),I.status){case"fulfilled":return I.value;case"rejected":throw I.reason}}throw I}function Z(I,V,B,M,K){var J=typeof I;(J==="undefined"||J==="boolean")&&(I=null);var le=!1;if(I===null)le=!0;else switch(J){case"bigint":case"string":case"number":le=!0;break;case"object":switch(I.$$typeof){case e:case t:le=!0;break;case p:return le=I._init,Z(le(I._payload),V,B,M,K)}}if(le)return K=K(I),le=M===""?"."+$(I,0):M,C(K)?(B="",le!=null&&(B=le.replace(G,"$&/")+"/"),Z(K,V,B,"",function(pe){return pe})):K!=null&&(D(K)&&(K=F(K,B+(K.key==null||I&&I.key===K.key?"":(""+K.key).replace(G,"$&/")+"/")+le)),V.push(K)),1;le=0;var oe=M===""?".":M+":";if(C(I))for(var Q=0;Qt in e?u9(e,t,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var Q_;function b9(){return Q_||(Q_=1,function(e){function t(j,H){var z=j.length;j.push(H);e:for(;0>>1,I=j[Y];if(0>>1;Ya(M,z))Ka(J,M)?(j[Y]=J,j[K]=z,Y=K):(j[Y]=M,j[B]=z,Y=B);else if(Ka(J,z))j[Y]=J,j[K]=z,Y=K;else break e}}return H}function a(j,H){var z=j.sortIndex-H.sortIndex;return z!==0?z:j.id-H.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var s=Date,u=s.now();e.unstable_now=function(){return s.now()-u}}var c=[],d=[],p=1,g=null,m=3,b=!1,y=!1,S=!1,k=typeof setTimeout=="function"?setTimeout:null,R=typeof clearTimeout=="function"?clearTimeout:null,x=typeof setImmediate<"u"?setImmediate:null;function A(j){for(var H=n(d);H!==null;){if(H.callback===null)r(d);else if(H.startTime<=j)r(d),H.sortIndex=H.expirationTime,t(c,H);else break;H=n(d)}}function C(j){if(S=!1,A(j),!y)if(n(c)!==null)y=!0,W();else{var H=n(d);H!==null&&Z(C,H.startTime-j)}}var N=!1,_=-1,O=5,F=-1;function D(){return!(e.unstable_now()-Fj&&D());){var Y=g.callback;if(typeof Y=="function"){g.callback=null,m=g.priorityLevel;var I=Y(g.expirationTime<=j);if(j=e.unstable_now(),typeof I=="function"){g.callback=I,A(j),H=!0;break t}g===n(c)&&r(c),A(j)}else r(c);g=n(c)}if(g!==null)H=!0;else{var V=n(d);V!==null&&Z(C,V.startTime-j),H=!1}}break e}finally{g=null,m=z,b=!1}H=void 0}}finally{H?G():N=!1}}}var G;if(typeof x=="function")G=function(){x(L)};else if(typeof MessageChannel<"u"){var $=new MessageChannel,U=$.port2;$.port1.onmessage=L,G=function(){U.postMessage(null)}}else G=function(){k(L,0)};function W(){N||(N=!0,G())}function Z(j,H){_=k(function(){j(e.unstable_now())},H)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(j){j.callback=null},e.unstable_continueExecution=function(){y||b||(y=!0,W())},e.unstable_forceFrameRate=function(j){0>j||125Y?(j.sortIndex=z,t(d,j),n(c)===null&&j===n(d)&&(S?(R(_),_=-1):S=!0,Z(C,z-Y))):(j.sortIndex=I,t(c,j),y||b||(y=!0,W())),j},e.unstable_shouldYield=D,e.unstable_wrapCallback=function(j){var H=m;return function(){var z=m;m=H;try{return j.apply(this,arguments)}finally{m=z}}}}(Yh)),Yh}var J_;function y9(){return J_||(J_=1,Wh.exports=b9()),Wh.exports}var Kh={exports:{}},wn={};/** + */var K_;function m9(){return K_||(K_=1,function(e){function t(j,G){var z=j.length;j.push(G);e:for(;0>>1,D=j[K];if(0>>1;Ka(M,z))Wa(Q,M)?(j[K]=Q,j[W]=z,K=W):(j[K]=M,j[B]=z,K=B);else if(Wa(Q,z))j[K]=Q,j[W]=z,K=W;else break e}}return G}function a(j,G){var z=j.sortIndex-G.sortIndex;return z!==0?z:j.id-G.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var s=Date,u=s.now();e.unstable_now=function(){return s.now()-u}}var c=[],d=[],p=1,g=null,m=3,b=!1,y=!1,S=!1,x=typeof setTimeout=="function"?setTimeout:null,R=typeof clearTimeout=="function"?clearTimeout:null,k=typeof setImmediate<"u"?setImmediate:null;function A(j){for(var G=n(d);G!==null;){if(G.callback===null)r(d);else if(G.startTime<=j)r(d),G.sortIndex=G.expirationTime,t(c,G);else break;G=n(d)}}function C(j){if(S=!1,A(j),!y)if(n(c)!==null)y=!0,Y();else{var G=n(d);G!==null&&Z(C,G.startTime-j)}}var N=!1,_=-1,O=5,F=-1;function L(){return!(e.unstable_now()-Fj&&L());){var K=g.callback;if(typeof K=="function"){g.callback=null,m=g.priorityLevel;var D=K(g.expirationTime<=j);if(j=e.unstable_now(),typeof D=="function"){g.callback=D,A(j),G=!0;break t}g===n(c)&&r(c),A(j)}else r(c);g=n(c)}if(g!==null)G=!0;else{var V=n(d);V!==null&&Z(C,V.startTime-j),G=!1}}break e}finally{g=null,m=z,b=!1}G=void 0}}finally{G?H():N=!1}}}var H;if(typeof k=="function")H=function(){k(I)};else if(typeof MessageChannel<"u"){var $=new MessageChannel,U=$.port2;$.port1.onmessage=I,H=function(){U.postMessage(null)}}else H=function(){x(I,0)};function Y(){N||(N=!0,H())}function Z(j,G){_=x(function(){j(e.unstable_now())},G)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(j){j.callback=null},e.unstable_continueExecution=function(){y||b||(y=!0,Y())},e.unstable_forceFrameRate=function(j){0>j||125K?(j.sortIndex=z,t(d,j),n(c)===null&&j===n(d)&&(S?(R(_),_=-1):S=!0,Z(C,z-K))):(j.sortIndex=D,t(c,j),y||b||(y=!0,Y())),j},e.unstable_shouldYield=L,e.unstable_wrapCallback=function(j){var G=m;return function(){var z=m;m=G;try{return j.apply(this,arguments)}finally{m=z}}}}(Yh)),Yh}var X_;function b9(){return X_||(X_=1,Wh.exports=m9()),Wh.exports}var Kh={exports:{}},wn={};/** * @license React * react-dom.production.js * @@ -30,7 +30,7 @@ var u9=Object.defineProperty;var c9=(e,t,n)=>t in e?u9(e,t,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var eC;function v9(){if(eC)return wn;eC=1;var e=Hf();function t(c){var d="https://react.dev/errors/"+c;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),Kh.exports=v9(),Kh.exports}/** + */var Z_;function y9(){if(Z_)return wn;Z_=1;var e=$f();function t(c){var d="https://react.dev/errors/"+c;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),Kh.exports=y9(),Kh.exports}/** * @license React * react-dom-client.production.js * @@ -38,15 +38,15 @@ var u9=Object.defineProperty;var c9=(e,t,n)=>t in e?u9(e,t,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var nC;function S9(){if(nC)return Ql;nC=1;var e=y9(),t=Hf(),n=Uz();function r(i){var l="https://react.dev/errors/"+i;if(1)":-1v||X[h]!==ae[v]){var ye=` -`+X[h].replace(" at new "," at ");return i.displayName&&ye.includes("")&&(ye=ye.replace("",i.displayName)),ye}while(1<=h&&0<=v);break}}}finally{W=!1,Error.prepareStackTrace=f}return(f=i?i.displayName||i.name:"")?U(f):""}function j(i){switch(i.tag){case 26:case 27:case 5:return U(i.type);case 16:return U("Lazy");case 13:return U("Suspense");case 19:return U("SuspenseList");case 0:case 15:return i=Z(i.type,!1),i;case 11:return i=Z(i.type.render,!1),i;case 1:return i=Z(i.type,!0),i;default:return""}}function H(i){try{var l="";do l+=j(i),i=i.return;while(i);return l}catch(f){return` +`+H+i+$}var Y=!1;function Z(i,l){if(!i||Y)return"";Y=!0;var f=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var h={DetermineComponentFrameRoot:function(){try{if(l){var Ae=function(){throw Error()};if(Object.defineProperty(Ae.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(Ae,[])}catch(ge){var de=ge}Reflect.construct(i,[],Ae)}else{try{Ae.call()}catch(ge){de=ge}i.call(Ae.prototype)}}else{try{throw Error()}catch(ge){de=ge}(Ae=i())&&typeof Ae.catch=="function"&&Ae.catch(function(){})}}catch(ge){if(ge&&de&&typeof ge.stack=="string")return[ge.stack,de.stack]}return[null,null]}};h.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var v=Object.getOwnPropertyDescriptor(h.DetermineComponentFrameRoot,"name");v&&v.configurable&&Object.defineProperty(h.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var T=h.DetermineComponentFrameRoot(),P=T[0],q=T[1];if(P&&q){var X=P.split(` +`),ne=q.split(` +`);for(v=h=0;hv||X[h]!==ne[v]){var be=` +`+X[h].replace(" at new "," at ");return i.displayName&&be.includes("")&&(be=be.replace("",i.displayName)),be}while(1<=h&&0<=v);break}}}finally{Y=!1,Error.prepareStackTrace=f}return(f=i?i.displayName||i.name:"")?U(f):""}function j(i){switch(i.tag){case 26:case 27:case 5:return U(i.type);case 16:return U("Lazy");case 13:return U("Suspense");case 19:return U("SuspenseList");case 0:case 15:return i=Z(i.type,!1),i;case 11:return i=Z(i.type.render,!1),i;case 1:return i=Z(i.type,!0),i;default:return""}}function G(i){try{var l="";do l+=j(i),i=i.return;while(i);return l}catch(f){return` Error generating stack: `+f.message+` -`+f.stack}}function z(i){var l=i,f=i;if(i.alternate)for(;l.return;)l=l.return;else{i=l;do l=i,l.flags&4098&&(f=l.return),i=l.return;while(i)}return l.tag===3?f:null}function Y(i){if(i.tag===13){var l=i.memoizedState;if(l===null&&(i=i.alternate,i!==null&&(l=i.memoizedState)),l!==null)return l.dehydrated}return null}function I(i){if(z(i)!==i)throw Error(r(188))}function V(i){var l=i.alternate;if(!l){if(l=z(i),l===null)throw Error(r(188));return l!==i?null:i}for(var f=i,h=l;;){var v=f.return;if(v===null)break;var T=v.alternate;if(T===null){if(h=v.return,h!==null){f=h;continue}break}if(v.child===T.child){for(T=v.child;T;){if(T===f)return I(v),i;if(T===h)return I(v),l;T=T.sibling}throw Error(r(188))}if(f.return!==h.return)f=v,h=T;else{for(var P=!1,q=v.child;q;){if(q===f){P=!0,f=v,h=T;break}if(q===h){P=!0,h=v,f=T;break}q=q.sibling}if(!P){for(q=T.child;q;){if(q===f){P=!0,f=T,h=v;break}if(q===h){P=!0,h=T,f=v;break}q=q.sibling}if(!P)throw Error(r(189))}}if(f.alternate!==h)throw Error(r(190))}if(f.tag!==3)throw Error(r(188));return f.stateNode.current===f?i:l}function B(i){var l=i.tag;if(l===5||l===26||l===27||l===6)return i;for(i=i.child;i!==null;){if(l=B(i),l!==null)return l;i=i.sibling}return null}var M=Array.isArray,K=n.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,J={pending:!1,data:null,method:null,action:null},le=[],oe=-1;function Q(i){return{current:i}}function pe(i){0>oe||(i.current=le[oe],le[oe]=null,oe--)}function re(i,l){oe++,le[oe]=i.current,i.current=l}var Ee=Q(null),we=Q(null),De=Q(null),_e=Q(null);function Se(i,l){switch(re(De,l),re(we,i),re(Ee,null),i=l.nodeType,i){case 9:case 11:l=(l=l.documentElement)&&(l=l.namespaceURI)?x_(l):0;break;default:if(i=i===8?l.parentNode:l,l=i.tagName,i=i.namespaceURI)i=x_(i),l=k_(i,l);else switch(l){case"svg":l=1;break;case"math":l=2;break;default:l=0}}pe(Ee),re(Ee,l)}function ee(){pe(Ee),pe(we),pe(De)}function fe(i){i.memoizedState!==null&&re(_e,i);var l=Ee.current,f=k_(l,i.type);l!==f&&(re(we,i),re(Ee,f))}function Te(i){we.current===i&&(pe(Ee),pe(we)),_e.current===i&&(pe(_e),Vl._currentValue=J)}var be=Object.prototype.hasOwnProperty,xe=e.unstable_scheduleCallback,se=e.unstable_cancelCallback,ze=e.unstable_shouldYield,Be=e.unstable_requestPaint,me=e.unstable_now,Ne=e.unstable_getCurrentPriorityLevel,te=e.unstable_ImmediatePriority,ce=e.unstable_UserBlockingPriority,Ce=e.unstable_NormalPriority,Fe=e.unstable_LowPriority,We=e.unstable_IdlePriority,yt=e.log,kt=e.unstable_setDisableYieldValue,ht=null,et=null;function Tt(i){if(et&&typeof et.onCommitFiberRoot=="function")try{et.onCommitFiberRoot(ht,i,void 0,(i.current.flags&128)===128)}catch{}}function ot(i){if(typeof yt=="function"&&kt(i),et&&typeof et.setStrictMode=="function")try{et.setStrictMode(ht,i)}catch{}}var St=Math.clz32?Math.clz32:Bt,Ht=Math.log,fn=Math.LN2;function Bt(i){return i>>>=0,i===0?32:31-(Ht(i)/fn|0)|0}var or=128,qr=4194304;function Jt(i){var l=i&42;if(l!==0)return l;switch(i&-i){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return i&4194176;case 4194304:case 8388608:case 16777216:case 33554432:return i&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return i}}function pa(i,l){var f=i.pendingLanes;if(f===0)return 0;var h=0,v=i.suspendedLanes,T=i.pingedLanes,P=i.warmLanes;i=i.finishedLanes!==0;var q=f&134217727;return q!==0?(f=q&~v,f!==0?h=Jt(f):(T&=q,T!==0?h=Jt(T):i||(P=q&~P,P!==0&&(h=Jt(P))))):(q=f&~v,q!==0?h=Jt(q):T!==0?h=Jt(T):i||(P=f&~P,P!==0&&(h=Jt(P)))),h===0?0:l!==0&&l!==h&&!(l&v)&&(v=h&-h,P=l&-l,v>=P||v===32&&(P&4194176)!==0)?l:h}function Xe(i,l){return(i.pendingLanes&~(i.suspendedLanes&~i.pingedLanes)&l)===0}function mt(i,l){switch(i){case 1:case 2:case 4:case 8:return l+250;case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return l+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Ct(){var i=or;return or<<=1,!(or&4194176)&&(or=128),i}function Dn(){var i=qr;return qr<<=1,!(qr&62914560)&&(qr=4194304),i}function _n(i){for(var l=[],f=0;31>f;f++)l.push(i);return l}function In(i,l){i.pendingLanes|=l,l!==268435456&&(i.suspendedLanes=0,i.pingedLanes=0,i.warmLanes=0)}function ga(i,l,f,h,v,T){var P=i.pendingLanes;i.pendingLanes=f,i.suspendedLanes=0,i.pingedLanes=0,i.warmLanes=0,i.expiredLanes&=f,i.entangledLanes&=f,i.errorRecoveryDisabledLanes&=f,i.shellSuspendCounter=0;var q=i.entanglements,X=i.expirationTimes,ae=i.hiddenUpdates;for(f=P&~f;0"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),n$=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),kA={},TA={};function r$(i){return be.call(TA,i)?!0:be.call(kA,i)?!1:n$.test(i)?TA[i]=!0:(kA[i]=!0,!1)}function ic(i,l,f){if(r$(l))if(f===null)i.removeAttribute(l);else{switch(typeof f){case"undefined":case"function":case"symbol":i.removeAttribute(l);return;case"boolean":var h=l.toLowerCase().slice(0,5);if(h!=="data-"&&h!=="aria-"){i.removeAttribute(l);return}}i.setAttribute(l,""+f)}}function sc(i,l,f){if(f===null)i.removeAttribute(l);else{switch(typeof f){case"undefined":case"function":case"symbol":case"boolean":i.removeAttribute(l);return}i.setAttribute(l,""+f)}}function ma(i,l,f,h){if(h===null)i.removeAttribute(f);else{switch(typeof h){case"undefined":case"function":case"symbol":case"boolean":i.removeAttribute(f);return}i.setAttributeNS(l,f,""+h)}}function ir(i){switch(typeof i){case"bigint":case"boolean":case"number":case"string":case"undefined":return i;case"object":return i;default:return""}}function AA(i){var l=i.type;return(i=i.nodeName)&&i.toLowerCase()==="input"&&(l==="checkbox"||l==="radio")}function a$(i){var l=AA(i)?"checked":"value",f=Object.getOwnPropertyDescriptor(i.constructor.prototype,l),h=""+i[l];if(!i.hasOwnProperty(l)&&typeof f<"u"&&typeof f.get=="function"&&typeof f.set=="function"){var v=f.get,T=f.set;return Object.defineProperty(i,l,{configurable:!0,get:function(){return v.call(this)},set:function(P){h=""+P,T.call(this,P)}}),Object.defineProperty(i,l,{enumerable:f.enumerable}),{getValue:function(){return h},setValue:function(P){h=""+P},stopTracking:function(){i._valueTracker=null,delete i[l]}}}}function lc(i){i._valueTracker||(i._valueTracker=a$(i))}function RA(i){if(!i)return!1;var l=i._valueTracker;if(!l)return!0;var f=l.getValue(),h="";return i&&(h=AA(i)?i.checked?"true":"false":i.value),i=h,i!==f?(l.setValue(i),!0):!1}function uc(i){if(i=i||(typeof document<"u"?document:void 0),typeof i>"u")return null;try{return i.activeElement||i.body}catch{return i.body}}var o$=/[\n"\\]/g;function sr(i){return i.replace(o$,function(l){return"\\"+l.charCodeAt(0).toString(16)+" "})}function Gp(i,l,f,h,v,T,P,q){i.name="",P!=null&&typeof P!="function"&&typeof P!="symbol"&&typeof P!="boolean"?i.type=P:i.removeAttribute("type"),l!=null?P==="number"?(l===0&&i.value===""||i.value!=l)&&(i.value=""+ir(l)):i.value!==""+ir(l)&&(i.value=""+ir(l)):P!=="submit"&&P!=="reset"||i.removeAttribute("value"),l!=null?Hp(i,P,ir(l)):f!=null?Hp(i,P,ir(f)):h!=null&&i.removeAttribute("value"),v==null&&T!=null&&(i.defaultChecked=!!T),v!=null&&(i.checked=v&&typeof v!="function"&&typeof v!="symbol"),q!=null&&typeof q!="function"&&typeof q!="symbol"&&typeof q!="boolean"?i.name=""+ir(q):i.removeAttribute("name")}function _A(i,l,f,h,v,T,P,q){if(T!=null&&typeof T!="function"&&typeof T!="symbol"&&typeof T!="boolean"&&(i.type=T),l!=null||f!=null){if(!(T!=="submit"&&T!=="reset"||l!=null))return;f=f!=null?""+ir(f):"",l=l!=null?""+ir(l):f,q||l===i.value||(i.value=l),i.defaultValue=l}h=h??v,h=typeof h!="function"&&typeof h!="symbol"&&!!h,i.checked=q?i.checked:!!h,i.defaultChecked=!!h,P!=null&&typeof P!="function"&&typeof P!="symbol"&&typeof P!="boolean"&&(i.name=P)}function Hp(i,l,f){l==="number"&&uc(i.ownerDocument)===i||i.defaultValue===""+f||(i.defaultValue=""+f)}function Oi(i,l,f,h){if(i=i.options,l){l={};for(var v=0;v=cl),jA=" ",GA=!1;function HA(i,l){switch(i){case"keyup":return I$.indexOf(l.keyCode)!==-1;case"keydown":return l.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function $A(i){return i=i.detail,typeof i=="object"&&"data"in i?i.data:null}var Mi=!1;function M$(i,l){switch(i){case"compositionend":return $A(l);case"keypress":return l.which!==32?null:(GA=!0,jA);case"textInput":return i=l.data,i===jA&&GA?null:i;default:return null}}function F$(i,l){if(Mi)return i==="compositionend"||!eg&&HA(i,l)?(i=MA(),dc=Kp=Xa=null,Mi=!1,i):null;switch(i){case"paste":return null;case"keypress":if(!(l.ctrlKey||l.altKey||l.metaKey)||l.ctrlKey&&l.altKey){if(l.char&&1=l)return{node:f,offset:l-i};i=h}e:{for(;f;){if(f.nextSibling){f=f.nextSibling;break e}f=f.parentNode}f=void 0}f=QA(f)}}function e1(i,l){return i&&l?i===l?!0:i&&i.nodeType===3?!1:l&&l.nodeType===3?e1(i,l.parentNode):"contains"in i?i.contains(l):i.compareDocumentPosition?!!(i.compareDocumentPosition(l)&16):!1:!1}function t1(i){i=i!=null&&i.ownerDocument!=null&&i.ownerDocument.defaultView!=null?i.ownerDocument.defaultView:window;for(var l=uc(i.document);l instanceof i.HTMLIFrameElement;){try{var f=typeof l.contentWindow.location.href=="string"}catch{f=!1}if(f)i=l.contentWindow;else break;l=uc(i.document)}return l}function rg(i){var l=i&&i.nodeName&&i.nodeName.toLowerCase();return l&&(l==="input"&&(i.type==="text"||i.type==="search"||i.type==="tel"||i.type==="url"||i.type==="password")||l==="textarea"||i.contentEditable==="true")}function $$(i,l){var f=t1(l);l=i.focusedElem;var h=i.selectionRange;if(f!==l&&l&&l.ownerDocument&&e1(l.ownerDocument.documentElement,l)){if(h!==null&&rg(l)){if(i=h.start,f=h.end,f===void 0&&(f=i),"selectionStart"in l)l.selectionStart=i,l.selectionEnd=Math.min(f,l.value.length);else if(f=(i=l.ownerDocument||document)&&i.defaultView||window,f.getSelection){f=f.getSelection();var v=l.textContent.length,T=Math.min(h.start,v);h=h.end===void 0?T:Math.min(h.end,v),!f.extend&&T>h&&(v=h,h=T,T=v),v=JA(l,T);var P=JA(l,h);v&&P&&(f.rangeCount!==1||f.anchorNode!==v.node||f.anchorOffset!==v.offset||f.focusNode!==P.node||f.focusOffset!==P.offset)&&(i=i.createRange(),i.setStart(v.node,v.offset),f.removeAllRanges(),T>h?(f.addRange(i),f.extend(P.node,P.offset)):(i.setEnd(P.node,P.offset),f.addRange(i)))}}for(i=[],f=l;f=f.parentNode;)f.nodeType===1&&i.push({element:f,left:f.scrollLeft,top:f.scrollTop});for(typeof l.focus=="function"&&l.focus(),l=0;l=document.documentMode,Fi=null,ag=null,gl=null,og=!1;function n1(i,l,f){var h=f.window===f?f.document:f.nodeType===9?f:f.ownerDocument;og||Fi==null||Fi!==uc(h)||(h=Fi,"selectionStart"in h&&rg(h)?h={start:h.selectionStart,end:h.selectionEnd}:(h=(h.ownerDocument&&h.ownerDocument.defaultView||window).getSelection(),h={anchorNode:h.anchorNode,anchorOffset:h.anchorOffset,focusNode:h.focusNode,focusOffset:h.focusOffset}),gl&&pl(gl,h)||(gl=h,h=Qc(ag,"onSelect"),0>=P,v-=P,ba=1<<32-St(l)+v|f<Je?(sn=Ye,Ye=null):sn=Ye.sibling;var wt=de(ie,Ye,ue[Je],ke);if(wt===null){Ye===null&&(Ye=sn);break}i&&Ye&&wt.alternate===null&&l(ie,Ye),ne=T(wt,ne,Je),lt===null?je=wt:lt.sibling=wt,lt=wt,Ye=sn}if(Je===ue.length)return f(ie,Ye),Et&&Ho(ie,Je),je;if(Ye===null){for(;JeJe?(sn=Ye,Ye=null):sn=Ye.sibling;var bo=de(ie,Ye,wt.value,ke);if(bo===null){Ye===null&&(Ye=sn);break}i&&Ye&&bo.alternate===null&&l(ie,Ye),ne=T(bo,ne,Je),lt===null?je=bo:lt.sibling=bo,lt=bo,Ye=sn}if(wt.done)return f(ie,Ye),Et&&Ho(ie,Je),je;if(Ye===null){for(;!wt.done;Je++,wt=ue.next())wt=Ae(ie,wt.value,ke),wt!==null&&(ne=T(wt,ne,Je),lt===null?je=wt:lt.sibling=wt,lt=wt);return Et&&Ho(ie,Je),je}for(Ye=h(Ye);!wt.done;Je++,wt=ue.next())wt=he(Ye,ie,Je,wt.value,ke),wt!==null&&(i&&wt.alternate!==null&&Ye.delete(wt.key===null?Je:wt.key),ne=T(wt,ne,Je),lt===null?je=wt:lt.sibling=wt,lt=wt);return i&&Ye.forEach(function(l9){return l(ie,l9)}),Et&&Ho(ie,Je),je}function Vt(ie,ne,ue,ke){if(typeof ue=="object"&&ue!==null&&ue.type===c&&ue.key===null&&(ue=ue.props.children),typeof ue=="object"&&ue!==null){switch(ue.$$typeof){case s:e:{for(var je=ue.key;ne!==null;){if(ne.key===je){if(je=ue.type,je===c){if(ne.tag===7){f(ie,ne.sibling),ke=v(ne,ue.props.children),ke.return=ie,ie=ke;break e}}else if(ne.elementType===je||typeof je=="object"&&je!==null&&je.$$typeof===x&&v1(je)===ne.type){f(ie,ne.sibling),ke=v(ne,ue.props),El(ke,ue),ke.return=ie,ie=ke;break e}f(ie,ne);break}else l(ie,ne);ne=ne.sibling}ue.type===c?(ke=ei(ue.props.children,ie.mode,ke,ue.key),ke.return=ie,ie=ke):(ke=Gc(ue.type,ue.key,ue.props,null,ie.mode,ke),El(ke,ue),ke.return=ie,ie=ke)}return P(ie);case u:e:{for(je=ue.key;ne!==null;){if(ne.key===je)if(ne.tag===4&&ne.stateNode.containerInfo===ue.containerInfo&&ne.stateNode.implementation===ue.implementation){f(ie,ne.sibling),ke=v(ne,ue.children||[]),ke.return=ie,ie=ke;break e}else{f(ie,ne);break}else l(ie,ne);ne=ne.sibling}ke=sh(ue,ie.mode,ke),ke.return=ie,ie=ke}return P(ie);case x:return je=ue._init,ue=je(ue._payload),Vt(ie,ne,ue,ke)}if(M(ue))return qe(ie,ne,ue,ke);if(_(ue)){if(je=_(ue),typeof je!="function")throw Error(r(150));return ue=je.call(ue),nt(ie,ne,ue,ke)}if(typeof ue.then=="function")return Vt(ie,ne,xc(ue),ke);if(ue.$$typeof===b)return Vt(ie,ne,Bc(ie,ue),ke);kc(ie,ue)}return typeof ue=="string"&&ue!==""||typeof ue=="number"||typeof ue=="bigint"?(ue=""+ue,ne!==null&&ne.tag===6?(f(ie,ne.sibling),ke=v(ne,ue),ke.return=ie,ie=ke):(f(ie,ne),ke=ih(ue,ie.mode,ke),ke.return=ie,ie=ke),P(ie)):f(ie,ne)}return function(ie,ne,ue,ke){try{Sl=0;var je=Vt(ie,ne,ue,ke);return Gi=null,je}catch(Ye){if(Ye===yl)throw Ye;var lt=hr(29,Ye,null,ie.mode);return lt.lanes=ke,lt.return=ie,lt}finally{}}}var qo=S1(!0),E1=S1(!1),Hi=Q(null),Tc=Q(0);function w1(i,l){i=Ca,re(Tc,i),re(Hi,l),Ca=i|l.baseLanes}function pg(){re(Tc,Ca),re(Hi,Hi.current)}function gg(){Ca=Tc.current,pe(Hi),pe(Tc)}var fr=Q(null),Wr=null;function Qa(i){var l=i.alternate;re(en,en.current&1),re(fr,i),Wr===null&&(l===null||Hi.current!==null||l.memoizedState!==null)&&(Wr=i)}function x1(i){if(i.tag===22){if(re(en,en.current),re(fr,i),Wr===null){var l=i.alternate;l!==null&&l.memoizedState!==null&&(Wr=i)}}else Ja()}function Ja(){re(en,en.current),re(fr,fr.current)}function va(i){pe(fr),Wr===i&&(Wr=null),pe(en)}var en=Q(0);function Ac(i){for(var l=i;l!==null;){if(l.tag===13){var f=l.memoizedState;if(f!==null&&(f=f.dehydrated,f===null||f.data==="$?"||f.data==="$!"))return l}else if(l.tag===19&&l.memoizedProps.revealOrder!==void 0){if(l.flags&128)return l}else if(l.child!==null){l.child.return=l,l=l.child;continue}if(l===i)break;for(;l.sibling===null;){if(l.return===null||l.return===i)return null;l=l.return}l.sibling.return=l.return,l=l.sibling}return null}var K$=typeof AbortController<"u"?AbortController:function(){var i=[],l=this.signal={aborted:!1,addEventListener:function(f,h){i.push(h)}};this.abort=function(){l.aborted=!0,i.forEach(function(f){return f()})}},X$=e.unstable_scheduleCallback,Z$=e.unstable_NormalPriority,tn={$$typeof:b,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function hg(){return{controller:new K$,data:new Map,refCount:0}}function wl(i){i.refCount--,i.refCount===0&&X$(Z$,function(){i.controller.abort()})}var xl=null,mg=0,$i=0,qi=null;function Q$(i,l){if(xl===null){var f=xl=[];mg=0,$i=wh(),qi={status:"pending",value:void 0,then:function(h){f.push(h)}}}return mg++,l.then(k1,k1),l}function k1(){if(--mg===0&&xl!==null){qi!==null&&(qi.status="fulfilled");var i=xl;xl=null,$i=0,qi=null;for(var l=0;lT?T:8;var P=D.T,q={};D.T=q,Ig(i,!1,l,f);try{var X=v(),ae=D.S;if(ae!==null&&ae(q,X),X!==null&&typeof X=="object"&&typeof X.then=="function"){var ye=J$(X,h);Al(i,l,ye,Qn(i))}else Al(i,l,h,Qn(i))}catch(Ae){Al(i,l,{then:function(){},status:"rejected",reason:Ae},Qn())}finally{K.p=T,D.T=P}}function a6(){}function Og(i,l,f,h){if(i.tag!==5)throw Error(r(476));var v=tR(i).queue;eR(i,v,l,J,f===null?a6:function(){return nR(i),f(h)})}function tR(i){var l=i.memoizedState;if(l!==null)return l;l={memoizedState:J,baseState:J,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Sa,lastRenderedState:J},next:null};var f={};return l.next={memoizedState:f,baseState:f,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Sa,lastRenderedState:f},next:null},i.memoizedState=l,i=i.alternate,i!==null&&(i.memoizedState=l),l}function nR(i){var l=tR(i).next.queue;Al(i,l,{},Qn())}function Dg(){return En(Vl)}function rR(){return Xt().memoizedState}function aR(){return Xt().memoizedState}function o6(i){for(var l=i.return;l!==null;){switch(l.tag){case 24:case 3:var f=Qn();i=ao(f);var h=oo(l,i,f);h!==null&&(Nn(h,l,f),Cl(h,l,f)),l={cache:hg()},i.payload=l;return}l=l.return}}function i6(i,l,f){var h=Qn();f={lane:h,revertLane:0,action:f,hasEagerState:!1,eagerState:null,next:null},Mc(i)?iR(l,f):(f=lg(i,l,f,h),f!==null&&(Nn(f,i,h),sR(f,l,h)))}function oR(i,l,f){var h=Qn();Al(i,l,f,h)}function Al(i,l,f,h){var v={lane:h,revertLane:0,action:f,hasEagerState:!1,eagerState:null,next:null};if(Mc(i))iR(l,v);else{var T=i.alternate;if(i.lanes===0&&(T===null||T.lanes===0)&&(T=l.lastRenderedReducer,T!==null))try{var P=l.lastRenderedState,q=T(P,f);if(v.hasEagerState=!0,v.eagerState=q,Yn(q,P))return yc(i,l,v,0),It===null&&bc(),!1}catch{}finally{}if(f=lg(i,l,v,h),f!==null)return Nn(f,i,h),sR(f,l,h),!0}return!1}function Ig(i,l,f,h){if(h={lane:2,revertLane:wh(),action:h,hasEagerState:!1,eagerState:null,next:null},Mc(i)){if(l)throw Error(r(479))}else l=lg(i,f,h,2),l!==null&&Nn(l,i,2)}function Mc(i){var l=i.alternate;return i===st||l!==null&&l===st}function iR(i,l){Vi=_c=!0;var f=i.pending;f===null?l.next=l:(l.next=f.next,f.next=l),i.pending=l}function sR(i,l,f){if(f&4194176){var h=l.lanes;h&=i.pendingLanes,f|=h,l.lanes=f,_r(i,f)}}var Yr={readContext:En,use:Oc,useCallback:Wt,useContext:Wt,useEffect:Wt,useImperativeHandle:Wt,useLayoutEffect:Wt,useInsertionEffect:Wt,useMemo:Wt,useReducer:Wt,useRef:Wt,useState:Wt,useDebugValue:Wt,useDeferredValue:Wt,useTransition:Wt,useSyncExternalStore:Wt,useId:Wt};Yr.useCacheRefresh=Wt,Yr.useMemoCache=Wt,Yr.useHostTransitionStatus=Wt,Yr.useFormState=Wt,Yr.useActionState=Wt,Yr.useOptimistic=Wt;var Yo={readContext:En,use:Oc,useCallback:function(i,l){return Pn().memoizedState=[i,l===void 0?null:l],i},useContext:En,useEffect:V1,useImperativeHandle:function(i,l,f){f=f!=null?f.concat([i]):null,Ic(4194308,4,K1.bind(null,l,i),f)},useLayoutEffect:function(i,l){return Ic(4194308,4,i,l)},useInsertionEffect:function(i,l){Ic(4,2,i,l)},useMemo:function(i,l){var f=Pn();l=l===void 0?null:l;var h=i();if(Wo){ot(!0);try{i()}finally{ot(!1)}}return f.memoizedState=[h,l],h},useReducer:function(i,l,f){var h=Pn();if(f!==void 0){var v=f(l);if(Wo){ot(!0);try{f(l)}finally{ot(!1)}}}else v=l;return h.memoizedState=h.baseState=v,i={pending:null,lanes:0,dispatch:null,lastRenderedReducer:i,lastRenderedState:v},h.queue=i,i=i.dispatch=i6.bind(null,st,i),[h.memoizedState,i]},useRef:function(i){var l=Pn();return i={current:i},l.memoizedState=i},useState:function(i){i=Ag(i);var l=i.queue,f=oR.bind(null,st,l);return l.dispatch=f,[i.memoizedState,f]},useDebugValue:Cg,useDeferredValue:function(i,l){var f=Pn();return Ng(f,i,l)},useTransition:function(){var i=Ag(!1);return i=eR.bind(null,st,i.queue,!0,!1),Pn().memoizedState=i,[!1,i]},useSyncExternalStore:function(i,l,f){var h=st,v=Pn();if(Et){if(f===void 0)throw Error(r(407));f=f()}else{if(f=l(),It===null)throw Error(r(349));bt&60||N1(h,l,f)}v.memoizedState=f;var T={value:f,getSnapshot:l};return v.queue=T,V1(D1.bind(null,h,T,i),[i]),h.flags|=2048,Yi(9,O1.bind(null,h,T,f,l),{destroy:void 0},null),f},useId:function(){var i=Pn(),l=It.identifierPrefix;if(Et){var f=ya,h=ba;f=(h&~(1<<32-St(h)-1)).toString(32)+f,l=":"+l+"R"+f,f=Cc++,0 title"))),hn(T,h,f),T[Sn]=i,rn(T),h=T;break e;case"link":var P=L_("link","href",v).get(h+(f.href||""));if(P){for(var q=0;q<\/script>",i=i.removeChild(i.firstChild);break;case"select":i=typeof h.is=="string"?v.createElement("select",{is:h.is}):v.createElement("select"),h.multiple?i.multiple=!0:h.size&&(i.size=h.size);break;default:i=typeof h.is=="string"?v.createElement(f,{is:h.is}):v.createElement(f)}}i[Sn]=l,i[Mn]=h;e:for(v=l.child;v!==null;){if(v.tag===5||v.tag===6)i.appendChild(v.stateNode);else if(v.tag!==4&&v.tag!==27&&v.child!==null){v.child.return=v,v=v.child;continue}if(v===l)break e;for(;v.sibling===null;){if(v.return===null||v.return===l)break e;v=v.return}v.sibling.return=v.return,v=v.sibling}l.stateNode=i;e:switch(hn(i,f,h),f){case"button":case"input":case"select":case"textarea":i=!!h.autoFocus;break e;case"img":i=!0;break e;default:i=!1}i&&Ra(l)}}return Ut(l),l.flags&=-16777217,null;case 6:if(i&&l.stateNode!=null)i.memoizedProps!==h&&Ra(l);else{if(typeof h!="string"&&l.stateNode===null)throw Error(r(166));if(i=De.current,hl(l)){if(i=l.stateNode,f=l.memoizedProps,h=null,v=Cn,v!==null)switch(v.tag){case 27:case 5:h=v.memoizedProps}i[Sn]=l,i=!!(i.nodeValue===f||h!==null&&h.suppressHydrationWarning===!0||w_(i.nodeValue,f)),i||$o(l)}else i=ed(i).createTextNode(h),i[Sn]=l,l.stateNode=i}return Ut(l),null;case 13:if(h=l.memoizedState,i===null||i.memoizedState!==null&&i.memoizedState.dehydrated!==null){if(v=hl(l),h!==null&&h.dehydrated!==null){if(i===null){if(!v)throw Error(r(318));if(v=l.memoizedState,v=v!==null?v.dehydrated:null,!v)throw Error(r(317));v[Sn]=l}else ml(),!(l.flags&128)&&(l.memoizedState=null),l.flags|=4;Ut(l),v=!1}else Nr!==null&&(hh(Nr),Nr=null),v=!0;if(!v)return l.flags&256?(va(l),l):(va(l),null)}if(va(l),l.flags&128)return l.lanes=f,l;if(f=h!==null,i=i!==null&&i.memoizedState!==null,f){h=l.child,v=null,h.alternate!==null&&h.alternate.memoizedState!==null&&h.alternate.memoizedState.cachePool!==null&&(v=h.alternate.memoizedState.cachePool.pool);var T=null;h.memoizedState!==null&&h.memoizedState.cachePool!==null&&(T=h.memoizedState.cachePool.pool),T!==v&&(h.flags|=2048)}return f!==i&&f&&(l.child.flags|=8192),Hc(l,l.updateQueue),Ut(l),null;case 4:return ee(),i===null&&Ah(l.stateNode.containerInfo),Ut(l),null;case 10:return xa(l.type),Ut(l),null;case 19:if(pe(en),v=l.memoizedState,v===null)return Ut(l),null;if(h=(l.flags&128)!==0,T=v.rendering,T===null)if(h)Fl(v,!1);else{if(qt!==0||i!==null&&i.flags&128)for(i=l.child;i!==null;){if(T=Ac(i),T!==null){for(l.flags|=128,Fl(v,!1),i=T.updateQueue,l.updateQueue=i,Hc(l,i),l.subtreeFlags=0,i=f,f=l.child;f!==null;)XR(f,i),f=f.sibling;return re(en,en.current&1|2),l.child}i=i.sibling}v.tail!==null&&me()>$c&&(l.flags|=128,h=!0,Fl(v,!1),l.lanes=4194304)}else{if(!h)if(i=Ac(T),i!==null){if(l.flags|=128,h=!0,i=i.updateQueue,l.updateQueue=i,Hc(l,i),Fl(v,!0),v.tail===null&&v.tailMode==="hidden"&&!T.alternate&&!Et)return Ut(l),null}else 2*me()-v.renderingStartTime>$c&&f!==536870912&&(l.flags|=128,h=!0,Fl(v,!1),l.lanes=4194304);v.isBackwards?(T.sibling=l.child,l.child=T):(i=v.last,i!==null?i.sibling=T:l.child=T,v.last=T)}return v.tail!==null?(l=v.tail,v.rendering=l,v.tail=l.sibling,v.renderingStartTime=me(),l.sibling=null,i=en.current,re(en,h?i&1|2:i&1),l):(Ut(l),null);case 22:case 23:return va(l),gg(),h=l.memoizedState!==null,i!==null?i.memoizedState!==null!==h&&(l.flags|=8192):h&&(l.flags|=8192),h?f&536870912&&!(l.flags&128)&&(Ut(l),l.subtreeFlags&6&&(l.flags|=8192)):Ut(l),f=l.updateQueue,f!==null&&Hc(l,f.retryQueue),f=null,i!==null&&i.memoizedState!==null&&i.memoizedState.cachePool!==null&&(f=i.memoizedState.cachePool.pool),h=null,l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(h=l.memoizedState.cachePool.pool),h!==f&&(l.flags|=2048),i!==null&&pe(Vo),null;case 24:return f=null,i!==null&&(f=i.memoizedState.cache),l.memoizedState.cache!==f&&(l.flags|=2048),xa(tn),Ut(l),null;case 25:return null}throw Error(r(156,l.tag))}function p6(i,l){switch(cg(l),l.tag){case 1:return i=l.flags,i&65536?(l.flags=i&-65537|128,l):null;case 3:return xa(tn),ee(),i=l.flags,i&65536&&!(i&128)?(l.flags=i&-65537|128,l):null;case 26:case 27:case 5:return Te(l),null;case 13:if(va(l),i=l.memoizedState,i!==null&&i.dehydrated!==null){if(l.alternate===null)throw Error(r(340));ml()}return i=l.flags,i&65536?(l.flags=i&-65537|128,l):null;case 19:return pe(en),null;case 4:return ee(),null;case 10:return xa(l.type),null;case 22:case 23:return va(l),gg(),i!==null&&pe(Vo),i=l.flags,i&65536?(l.flags=i&-65537|128,l):null;case 24:return xa(tn),null;case 25:return null;default:return null}}function JR(i,l){switch(cg(l),l.tag){case 3:xa(tn),ee();break;case 26:case 27:case 5:Te(l);break;case 4:ee();break;case 13:va(l);break;case 19:pe(en);break;case 10:xa(l.type);break;case 22:case 23:va(l),gg(),i!==null&&pe(Vo);break;case 24:xa(tn)}}var g6={getCacheForType:function(i){var l=En(tn),f=l.data.get(i);return f===void 0&&(f=i(),l.data.set(i,f)),f}},h6=typeof WeakMap=="function"?WeakMap:Map,jt=0,It=null,ct=null,bt=0,Lt=0,Zn=null,_a=!1,Qi=!1,lh=!1,Ca=0,qt=0,co=0,ti=0,uh=0,mr=0,Ji=0,Pl=null,Kr=null,ch=!1,dh=0,$c=1/0,qc=null,fo=null,Vc=!1,ni=null,zl=0,fh=0,ph=null,Bl=0,gh=null;function Qn(){if(jt&2&&bt!==0)return bt&-bt;if(D.T!==null){var i=$i;return i!==0?i:wh()}return SA()}function e_(){mr===0&&(mr=!(bt&536870912)||Et?Ct():536870912);var i=fr.current;return i!==null&&(i.flags|=32),mr}function Nn(i,l,f){(i===It&&Lt===2||i.cancelPendingCommit!==null)&&(es(i,0),Na(i,bt,mr,!1)),In(i,f),(!(jt&2)||i!==It)&&(i===It&&(!(jt&2)&&(ti|=f),qt===4&&Na(i,bt,mr,!1)),Xr(i))}function t_(i,l,f){if(jt&6)throw Error(r(327));var h=!f&&(l&60)===0&&(l&i.expiredLanes)===0||Xe(i,l),v=h?y6(i,l):yh(i,l,!0),T=h;do{if(v===0){Qi&&!h&&Na(i,l,0,!1);break}else if(v===6)Na(i,l,0,!_a);else{if(f=i.current.alternate,T&&!m6(f)){v=yh(i,l,!1),T=!1;continue}if(v===2){if(T=l,i.errorRecoveryDisabledLanes&T)var P=0;else P=i.pendingLanes&-536870913,P=P!==0?P:P&536870912?536870912:0;if(P!==0){l=P;e:{var q=i;v=Pl;var X=q.current.memoizedState.isDehydrated;if(X&&(es(q,P).flags|=256),P=yh(q,P,!1),P!==2){if(lh&&!X){q.errorRecoveryDisabledLanes|=T,ti|=T,v=4;break e}T=Kr,Kr=v,T!==null&&hh(T)}v=P}if(T=!1,v!==2)continue}}if(v===1){es(i,0),Na(i,l,0,!0);break}e:{switch(h=i,v){case 0:case 1:throw Error(r(345));case 4:if((l&4194176)===l){Na(h,l,mr,!_a);break e}break;case 2:Kr=null;break;case 3:case 5:break;default:throw Error(r(329))}if(h.finishedWork=f,h.finishedLanes=l,(l&62914560)===l&&(T=dh+300-me(),10f?32:f,D.T=null,ni===null)var T=!1;else{f=ph,ph=null;var P=ni,q=zl;if(ni=null,zl=0,jt&6)throw Error(r(331));var X=jt;if(jt|=4,YR(P.current),qR(P,P.current,q,f),jt=X,Ul(0,!1),et&&typeof et.onPostCommitFiberRoot=="function")try{et.onPostCommitFiberRoot(ht,P)}catch{}T=!0}return T}finally{K.p=v,D.T=h,c_(i,l)}}return!1}function d_(i,l,f){l=ur(f,l),l=Fg(i.stateNode,l,2),i=oo(i,l,2),i!==null&&(In(i,2),Xr(i))}function Nt(i,l,f){if(i.tag===3)d_(i,i,f);else for(;l!==null;){if(l.tag===3){d_(l,i,f);break}else if(l.tag===1){var h=l.stateNode;if(typeof l.type.getDerivedStateFromError=="function"||typeof h.componentDidCatch=="function"&&(fo===null||!fo.has(h))){i=ur(f,i),f=gR(2),h=oo(l,f,2),h!==null&&(hR(f,h,l,i),In(h,2),Xr(h));break}}l=l.return}}function vh(i,l,f){var h=i.pingCache;if(h===null){h=i.pingCache=new h6;var v=new Set;h.set(l,v)}else v=h.get(l),v===void 0&&(v=new Set,h.set(l,v));v.has(f)||(lh=!0,v.add(f),i=E6.bind(null,i,l,f),l.then(i,i))}function E6(i,l,f){var h=i.pingCache;h!==null&&h.delete(l),i.pingedLanes|=i.suspendedLanes&f,i.warmLanes&=~f,It===i&&(bt&f)===f&&(qt===4||qt===3&&(bt&62914560)===bt&&300>me()-dh?!(jt&2)&&es(i,0):uh|=f,Ji===bt&&(Ji=0)),Xr(i)}function f_(i,l){l===0&&(l=Dn()),i=Za(i,l),i!==null&&(In(i,l),Xr(i))}function w6(i){var l=i.memoizedState,f=0;l!==null&&(f=l.retryLane),f_(i,f)}function x6(i,l){var f=0;switch(i.tag){case 13:var h=i.stateNode,v=i.memoizedState;v!==null&&(f=v.retryLane);break;case 19:h=i.stateNode;break;case 22:h=i.stateNode._retryCache;break;default:throw Error(r(314))}h!==null&&h.delete(l),f_(i,f)}function k6(i,l){return xe(i,l)}var Kc=null,rs=null,Sh=!1,Xc=!1,Eh=!1,ri=0;function Xr(i){i!==rs&&i.next===null&&(rs===null?Kc=rs=i:rs=rs.next=i),Xc=!0,Sh||(Sh=!0,A6(T6))}function Ul(i,l){if(!Eh&&Xc){Eh=!0;do for(var f=!1,h=Kc;h!==null;){if(i!==0){var v=h.pendingLanes;if(v===0)var T=0;else{var P=h.suspendedLanes,q=h.pingedLanes;T=(1<<31-St(42|i)+1)-1,T&=v&~(P&~q),T=T&201326677?T&201326677|1:T?T|2:0}T!==0&&(f=!0,h_(h,T))}else T=bt,T=pa(h,h===It?T:0),!(T&3)||Xe(h,T)||(f=!0,h_(h,T));h=h.next}while(f);Eh=!1}}function T6(){Xc=Sh=!1;var i=0;ri!==0&&(L6()&&(i=ri),ri=0);for(var l=me(),f=null,h=Kc;h!==null;){var v=h.next,T=p_(h,l);T===0?(h.next=null,f===null?Kc=v:f.next=v,v===null&&(rs=f)):(f=h,(i!==0||T&3)&&(Xc=!0)),h=v}Ul(i)}function p_(i,l){for(var f=i.suspendedLanes,h=i.pingedLanes,v=i.expirationTimes,T=i.pendingLanes&-62914561;0"u"?null:document;function N_(i,l,f){var h=os;if(h&&typeof l=="string"&&l){var v=sr(l);v='link[rel="'+i+'"][href="'+v+'"]',typeof f=="string"&&(v+='[crossorigin="'+f+'"]'),C_.has(v)||(C_.add(v),i={rel:i,crossOrigin:f,href:l},h.querySelector(v)===null&&(l=h.createElement("link"),hn(l,"link",i),rn(l),h.head.appendChild(l)))}}function G6(i){Oa.D(i),N_("dns-prefetch",i,null)}function H6(i,l){Oa.C(i,l),N_("preconnect",i,l)}function $6(i,l,f){Oa.L(i,l,f);var h=os;if(h&&i&&l){var v='link[rel="preload"][as="'+sr(l)+'"]';l==="image"&&f&&f.imageSrcSet?(v+='[imagesrcset="'+sr(f.imageSrcSet)+'"]',typeof f.imageSizes=="string"&&(v+='[imagesizes="'+sr(f.imageSizes)+'"]')):v+='[href="'+sr(i)+'"]';var T=v;switch(l){case"style":T=is(i);break;case"script":T=ss(i)}br.has(T)||(i=L({rel:"preload",href:l==="image"&&f&&f.imageSrcSet?void 0:i,as:l},f),br.set(T,i),h.querySelector(v)!==null||l==="style"&&h.querySelector(Hl(T))||l==="script"&&h.querySelector($l(T))||(l=h.createElement("link"),hn(l,"link",i),rn(l),h.head.appendChild(l)))}}function q6(i,l){Oa.m(i,l);var f=os;if(f&&i){var h=l&&typeof l.as=="string"?l.as:"script",v='link[rel="modulepreload"][as="'+sr(h)+'"][href="'+sr(i)+'"]',T=v;switch(h){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":T=ss(i)}if(!br.has(T)&&(i=L({rel:"modulepreload",href:i},l),br.set(T,i),f.querySelector(v)===null)){switch(h){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(f.querySelector($l(T)))return}h=f.createElement("link"),hn(h,"link",i),rn(h),f.head.appendChild(h)}}}function V6(i,l,f){Oa.S(i,l,f);var h=os;if(h&&i){var v=Ci(h).hoistableStyles,T=is(i);l=l||"default";var P=v.get(T);if(!P){var q={loading:0,preload:null};if(P=h.querySelector(Hl(T)))q.loading=5;else{i=L({rel:"stylesheet",href:i,"data-precedence":l},f),(f=br.get(T))&&Mh(i,f);var X=P=h.createElement("link");rn(X),hn(X,"link",i),X._p=new Promise(function(ae,ye){X.onload=ae,X.onerror=ye}),X.addEventListener("load",function(){q.loading|=1}),X.addEventListener("error",function(){q.loading|=2}),q.loading|=4,nd(P,l,h)}P={type:"stylesheet",instance:P,count:1,state:q},v.set(T,P)}}}function W6(i,l){Oa.X(i,l);var f=os;if(f&&i){var h=Ci(f).hoistableScripts,v=ss(i),T=h.get(v);T||(T=f.querySelector($l(v)),T||(i=L({src:i,async:!0},l),(l=br.get(v))&&Fh(i,l),T=f.createElement("script"),rn(T),hn(T,"link",i),f.head.appendChild(T)),T={type:"script",instance:T,count:1,state:null},h.set(v,T))}}function Y6(i,l){Oa.M(i,l);var f=os;if(f&&i){var h=Ci(f).hoistableScripts,v=ss(i),T=h.get(v);T||(T=f.querySelector($l(v)),T||(i=L({src:i,async:!0,type:"module"},l),(l=br.get(v))&&Fh(i,l),T=f.createElement("script"),rn(T),hn(T,"link",i),f.head.appendChild(T)),T={type:"script",instance:T,count:1,state:null},h.set(v,T))}}function O_(i,l,f,h){var v=(v=De.current)?td(v):null;if(!v)throw Error(r(446));switch(i){case"meta":case"title":return null;case"style":return typeof f.precedence=="string"&&typeof f.href=="string"?(l=is(f.href),f=Ci(v).hoistableStyles,h=f.get(l),h||(h={type:"style",instance:null,count:0,state:null},f.set(l,h)),h):{type:"void",instance:null,count:0,state:null};case"link":if(f.rel==="stylesheet"&&typeof f.href=="string"&&typeof f.precedence=="string"){i=is(f.href);var T=Ci(v).hoistableStyles,P=T.get(i);if(P||(v=v.ownerDocument||v,P={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},T.set(i,P),(T=v.querySelector(Hl(i)))&&!T._p&&(P.instance=T,P.state.loading=5),br.has(i)||(f={rel:"preload",as:"style",href:f.href,crossOrigin:f.crossOrigin,integrity:f.integrity,media:f.media,hrefLang:f.hrefLang,referrerPolicy:f.referrerPolicy},br.set(i,f),T||K6(v,i,f,P.state))),l&&h===null)throw Error(r(528,""));return P}if(l&&h!==null)throw Error(r(529,""));return null;case"script":return l=f.async,f=f.src,typeof f=="string"&&l&&typeof l!="function"&&typeof l!="symbol"?(l=ss(f),f=Ci(v).hoistableScripts,h=f.get(l),h||(h={type:"script",instance:null,count:0,state:null},f.set(l,h)),h):{type:"void",instance:null,count:0,state:null};default:throw Error(r(444,i))}}function is(i){return'href="'+sr(i)+'"'}function Hl(i){return'link[rel="stylesheet"]['+i+"]"}function D_(i){return L({},i,{"data-precedence":i.precedence,precedence:null})}function K6(i,l,f,h){i.querySelector('link[rel="preload"][as="style"]['+l+"]")?h.loading=1:(l=i.createElement("link"),h.preload=l,l.addEventListener("load",function(){return h.loading|=1}),l.addEventListener("error",function(){return h.loading|=2}),hn(l,"link",f),rn(l),i.head.appendChild(l))}function ss(i){return'[src="'+sr(i)+'"]'}function $l(i){return"script[async]"+i}function I_(i,l,f){if(l.count++,l.instance===null)switch(l.type){case"style":var h=i.querySelector('style[data-href~="'+sr(f.href)+'"]');if(h)return l.instance=h,rn(h),h;var v=L({},f,{"data-href":f.href,"data-precedence":f.precedence,href:null,precedence:null});return h=(i.ownerDocument||i).createElement("style"),rn(h),hn(h,"style",v),nd(h,f.precedence,i),l.instance=h;case"stylesheet":v=is(f.href);var T=i.querySelector(Hl(v));if(T)return l.state.loading|=4,l.instance=T,rn(T),T;h=D_(f),(v=br.get(v))&&Mh(h,v),T=(i.ownerDocument||i).createElement("link"),rn(T);var P=T;return P._p=new Promise(function(q,X){P.onload=q,P.onerror=X}),hn(T,"link",h),l.state.loading|=4,nd(T,f.precedence,i),l.instance=T;case"script":return T=ss(f.src),(v=i.querySelector($l(T)))?(l.instance=v,rn(v),v):(h=f,(v=br.get(T))&&(h=L({},f),Fh(h,v)),i=i.ownerDocument||i,v=i.createElement("script"),rn(v),hn(v,"link",h),i.head.appendChild(v),l.instance=v);case"void":return null;default:throw Error(r(443,l.type))}else l.type==="stylesheet"&&!(l.state.loading&4)&&(h=l.instance,l.state.loading|=4,nd(h,f.precedence,i));return l.instance}function nd(i,l,f){for(var h=f.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),v=h.length?h[h.length-1]:null,T=v,P=0;P title"):null)}function X6(i,l,f){if(f===1||l.itemProp!=null)return!1;switch(i){case"meta":case"title":return!0;case"style":if(typeof l.precedence!="string"||typeof l.href!="string"||l.href==="")break;return!0;case"link":if(typeof l.rel!="string"||typeof l.href!="string"||l.href===""||l.onLoad||l.onError)break;switch(l.rel){case"stylesheet":return i=l.disabled,typeof l.precedence=="string"&&i==null;default:return!0}case"script":if(l.async&&typeof l.async!="function"&&typeof l.async!="symbol"&&!l.onLoad&&!l.onError&&l.src&&typeof l.src=="string")return!0}return!1}function F_(i){return!(i.type==="stylesheet"&&!(i.state.loading&3))}var ql=null;function Z6(){}function Q6(i,l,f){if(ql===null)throw Error(r(475));var h=ql;if(l.type==="stylesheet"&&(typeof f.media!="string"||matchMedia(f.media).matches!==!1)&&!(l.state.loading&4)){if(l.instance===null){var v=is(f.href),T=i.querySelector(Hl(v));if(T){i=T._p,i!==null&&typeof i=="object"&&typeof i.then=="function"&&(h.count++,h=ad.bind(h),i.then(h,h)),l.state.loading|=4,l.instance=T,rn(T);return}T=i.ownerDocument||i,f=D_(f),(v=br.get(v))&&Mh(f,v),T=T.createElement("link"),rn(T);var P=T;P._p=new Promise(function(q,X){P.onload=q,P.onerror=X}),hn(T,"link",f),l.instance=T}h.stylesheets===null&&(h.stylesheets=new Map),h.stylesheets.set(l,i),(i=l.state.preload)&&!(l.state.loading&3)&&(h.count++,l=ad.bind(h),i.addEventListener("load",l),i.addEventListener("error",l))}}function J6(){if(ql===null)throw Error(r(475));var i=ql;return i.stylesheets&&i.count===0&&Ph(i,i.stylesheets),0"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),Vh.exports=S9(),Vh.exports}var w9=E9(),Jl={},aC;function x9(){if(aC)return Jl;aC=1,Object.defineProperty(Jl,"__esModule",{value:!0}),Jl.parse=s,Jl.serialize=d;const e=/^[\u0021-\u003A\u003C\u003E-\u007E]+$/,t=/^[\u0021-\u003A\u003C-\u007E]*$/,n=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,r=/^[\u0020-\u003A\u003D-\u007E]*$/,a=Object.prototype.toString,o=(()=>{const m=function(){};return m.prototype=Object.create(null),m})();function s(m,b){const y=new o,S=m.length;if(S<2)return y;const k=(b==null?void 0:b.decode)||p;let R=0;do{const x=m.indexOf("=",R);if(x===-1)break;const A=m.indexOf(";",R),C=A===-1?S:A;if(x>C){R=m.lastIndexOf(";",x-1)+1;continue}const N=u(m,R,x),_=c(m,x,N),O=m.slice(N,_);if(y[O]===void 0){let F=u(m,x+1,C),D=c(m,C,F);const L=k(m.slice(F,D));y[O]=L}R=C+1}while(Ry;){const S=m.charCodeAt(--b);if(S!==32&&S!==9)return b+1}return y}function d(m,b,y){const S=(y==null?void 0:y.encode)||encodeURIComponent;if(!e.test(m))throw new TypeError(`argument name is invalid: ${m}`);const k=S(b);if(!t.test(k))throw new TypeError(`argument val is invalid: ${b}`);let R=m+"="+k;if(!y)return R;if(y.maxAge!==void 0){if(!Number.isInteger(y.maxAge))throw new TypeError(`option maxAge is invalid: ${y.maxAge}`);R+="; Max-Age="+y.maxAge}if(y.domain){if(!n.test(y.domain))throw new TypeError(`option domain is invalid: ${y.domain}`);R+="; Domain="+y.domain}if(y.path){if(!r.test(y.path))throw new TypeError(`option path is invalid: ${y.path}`);R+="; Path="+y.path}if(y.expires){if(!g(y.expires)||!Number.isFinite(y.expires.valueOf()))throw new TypeError(`option expires is invalid: ${y.expires}`);R+="; Expires="+y.expires.toUTCString()}if(y.httpOnly&&(R+="; HttpOnly"),y.secure&&(R+="; Secure"),y.partitioned&&(R+="; Partitioned"),y.priority)switch(typeof y.priority=="string"?y.priority.toLowerCase():void 0){case"low":R+="; Priority=Low";break;case"medium":R+="; Priority=Medium";break;case"high":R+="; Priority=High";break;default:throw new TypeError(`option priority is invalid: ${y.priority}`)}if(y.sameSite)switch(typeof y.sameSite=="string"?y.sameSite.toLowerCase():y.sameSite){case!0:case"strict":R+="; SameSite=Strict";break;case"lax":R+="; SameSite=Lax";break;case"none":R+="; SameSite=None";break;default:throw new TypeError(`option sameSite is invalid: ${y.sameSite}`)}return R}function p(m){if(m.indexOf("%")===-1)return m;try{return decodeURIComponent(m)}catch{return m}}function g(m){return a.call(m)==="[object Date]"}return Jl}x9();/** +`+f.stack}}function z(i){var l=i,f=i;if(i.alternate)for(;l.return;)l=l.return;else{i=l;do l=i,l.flags&4098&&(f=l.return),i=l.return;while(i)}return l.tag===3?f:null}function K(i){if(i.tag===13){var l=i.memoizedState;if(l===null&&(i=i.alternate,i!==null&&(l=i.memoizedState)),l!==null)return l.dehydrated}return null}function D(i){if(z(i)!==i)throw Error(r(188))}function V(i){var l=i.alternate;if(!l){if(l=z(i),l===null)throw Error(r(188));return l!==i?null:i}for(var f=i,h=l;;){var v=f.return;if(v===null)break;var T=v.alternate;if(T===null){if(h=v.return,h!==null){f=h;continue}break}if(v.child===T.child){for(T=v.child;T;){if(T===f)return D(v),i;if(T===h)return D(v),l;T=T.sibling}throw Error(r(188))}if(f.return!==h.return)f=v,h=T;else{for(var P=!1,q=v.child;q;){if(q===f){P=!0,f=v,h=T;break}if(q===h){P=!0,h=v,f=T;break}q=q.sibling}if(!P){for(q=T.child;q;){if(q===f){P=!0,f=T,h=v;break}if(q===h){P=!0,h=T,f=v;break}q=q.sibling}if(!P)throw Error(r(189))}}if(f.alternate!==h)throw Error(r(190))}if(f.tag!==3)throw Error(r(188));return f.stateNode.current===f?i:l}function B(i){var l=i.tag;if(l===5||l===26||l===27||l===6)return i;for(i=i.child;i!==null;){if(l=B(i),l!==null)return l;i=i.sibling}return null}var M=Array.isArray,W=n.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,Q={pending:!1,data:null,method:null,action:null},oe=[],re=-1;function ie(i){return{current:i}}function Se(i){0>re||(i.current=oe[re],oe[re]=null,re--)}function ae(i,l){re++,oe[re]=i.current,i.current=l}var ve=ie(null),xe=ie(null),Ie=ie(null),Ce=ie(null);function ke(i,l){switch(ae(Ie,l),ae(xe,i),ae(ve,null),i=l.nodeType,i){case 9:case 11:l=(l=l.documentElement)&&(l=l.namespaceURI)?S_(l):0;break;default:if(i=i===8?l.parentNode:l,l=i.tagName,i=i.namespaceURI)i=S_(i),l=E_(i,l);else switch(l){case"svg":l=1;break;case"math":l=2;break;default:l=0}}Se(ve),ae(ve,l)}function J(){Se(ve),Se(xe),Se(Ie)}function fe(i){i.memoizedState!==null&&ae(Ce,i);var l=ve.current,f=E_(l,i.type);l!==f&&(ae(xe,i),ae(ve,f))}function Te(i){xe.current===i&&(Se(ve),Se(xe)),Ce.current===i&&(Se(Ce),ql._currentValue=Q)}var me=Object.prototype.hasOwnProperty,Ee=e.unstable_scheduleCallback,le=e.unstable_cancelCallback,Be=e.unstable_shouldYield,Ue=e.unstable_requestPaint,he=e.unstable_now,Ne=e.unstable_getCurrentPriorityLevel,ee=e.unstable_ImmediatePriority,ce=e.unstable_UserBlockingPriority,_e=e.unstable_NormalPriority,Pe=e.unstable_LowPriority,We=e.unstable_IdlePriority,yt=e.log,kt=e.unstable_setDisableYieldValue,ht=null,et=null;function Tt(i){if(et&&typeof et.onCommitFiberRoot=="function")try{et.onCommitFiberRoot(ht,i,void 0,(i.current.flags&128)===128)}catch{}}function ot(i){if(typeof yt=="function"&&kt(i),et&&typeof et.setStrictMode=="function")try{et.setStrictMode(ht,i)}catch{}}var St=Math.clz32?Math.clz32:zt,Ht=Math.log,fn=Math.LN2;function zt(i){return i>>>=0,i===0?32:31-(Ht(i)/fn|0)|0}var or=128,$r=4194304;function Jt(i){var l=i&42;if(l!==0)return l;switch(i&-i){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return i&4194176;case 4194304:case 8388608:case 16777216:case 33554432:return i&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return i}}function fa(i,l){var f=i.pendingLanes;if(f===0)return 0;var h=0,v=i.suspendedLanes,T=i.pingedLanes,P=i.warmLanes;i=i.finishedLanes!==0;var q=f&134217727;return q!==0?(f=q&~v,f!==0?h=Jt(f):(T&=q,T!==0?h=Jt(T):i||(P=q&~P,P!==0&&(h=Jt(P))))):(q=f&~v,q!==0?h=Jt(q):T!==0?h=Jt(T):i||(P=f&~P,P!==0&&(h=Jt(P)))),h===0?0:l!==0&&l!==h&&!(l&v)&&(v=h&-h,P=l&-l,v>=P||v===32&&(P&4194176)!==0)?l:h}function Xe(i,l){return(i.pendingLanes&~(i.suspendedLanes&~i.pingedLanes)&l)===0}function mt(i,l){switch(i){case 1:case 2:case 4:case 8:return l+250;case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return l+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Ct(){var i=or;return or<<=1,!(or&4194176)&&(or=128),i}function Dn(){var i=$r;return $r<<=1,!($r&62914560)&&($r=4194304),i}function _n(i){for(var l=[],f=0;31>f;f++)l.push(i);return l}function In(i,l){i.pendingLanes|=l,l!==268435456&&(i.suspendedLanes=0,i.pingedLanes=0,i.warmLanes=0)}function pa(i,l,f,h,v,T){var P=i.pendingLanes;i.pendingLanes=f,i.suspendedLanes=0,i.pingedLanes=0,i.warmLanes=0,i.expiredLanes&=f,i.entangledLanes&=f,i.errorRecoveryDisabledLanes&=f,i.shellSuspendCounter=0;var q=i.entanglements,X=i.expirationTimes,ne=i.hiddenUpdates;for(f=P&~f;0"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),t$=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),EA={},wA={};function n$(i){return me.call(wA,i)?!0:me.call(EA,i)?!1:t$.test(i)?wA[i]=!0:(EA[i]=!0,!1)}function sc(i,l,f){if(n$(l))if(f===null)i.removeAttribute(l);else{switch(typeof f){case"undefined":case"function":case"symbol":i.removeAttribute(l);return;case"boolean":var h=l.toLowerCase().slice(0,5);if(h!=="data-"&&h!=="aria-"){i.removeAttribute(l);return}}i.setAttribute(l,""+f)}}function lc(i,l,f){if(f===null)i.removeAttribute(l);else{switch(typeof f){case"undefined":case"function":case"symbol":case"boolean":i.removeAttribute(l);return}i.setAttribute(l,""+f)}}function ha(i,l,f,h){if(h===null)i.removeAttribute(f);else{switch(typeof h){case"undefined":case"function":case"symbol":case"boolean":i.removeAttribute(f);return}i.setAttributeNS(l,f,""+h)}}function ir(i){switch(typeof i){case"bigint":case"boolean":case"number":case"string":case"undefined":return i;case"object":return i;default:return""}}function xA(i){var l=i.type;return(i=i.nodeName)&&i.toLowerCase()==="input"&&(l==="checkbox"||l==="radio")}function r$(i){var l=xA(i)?"checked":"value",f=Object.getOwnPropertyDescriptor(i.constructor.prototype,l),h=""+i[l];if(!i.hasOwnProperty(l)&&typeof f<"u"&&typeof f.get=="function"&&typeof f.set=="function"){var v=f.get,T=f.set;return Object.defineProperty(i,l,{configurable:!0,get:function(){return v.call(this)},set:function(P){h=""+P,T.call(this,P)}}),Object.defineProperty(i,l,{enumerable:f.enumerable}),{getValue:function(){return h},setValue:function(P){h=""+P},stopTracking:function(){i._valueTracker=null,delete i[l]}}}}function uc(i){i._valueTracker||(i._valueTracker=r$(i))}function kA(i){if(!i)return!1;var l=i._valueTracker;if(!l)return!0;var f=l.getValue(),h="";return i&&(h=xA(i)?i.checked?"true":"false":i.value),i=h,i!==f?(l.setValue(i),!0):!1}function cc(i){if(i=i||(typeof document<"u"?document:void 0),typeof i>"u")return null;try{return i.activeElement||i.body}catch{return i.body}}var a$=/[\n"\\]/g;function sr(i){return i.replace(a$,function(l){return"\\"+l.charCodeAt(0).toString(16)+" "})}function Gp(i,l,f,h,v,T,P,q){i.name="",P!=null&&typeof P!="function"&&typeof P!="symbol"&&typeof P!="boolean"?i.type=P:i.removeAttribute("type"),l!=null?P==="number"?(l===0&&i.value===""||i.value!=l)&&(i.value=""+ir(l)):i.value!==""+ir(l)&&(i.value=""+ir(l)):P!=="submit"&&P!=="reset"||i.removeAttribute("value"),l!=null?Hp(i,P,ir(l)):f!=null?Hp(i,P,ir(f)):h!=null&&i.removeAttribute("value"),v==null&&T!=null&&(i.defaultChecked=!!T),v!=null&&(i.checked=v&&typeof v!="function"&&typeof v!="symbol"),q!=null&&typeof q!="function"&&typeof q!="symbol"&&typeof q!="boolean"?i.name=""+ir(q):i.removeAttribute("name")}function TA(i,l,f,h,v,T,P,q){if(T!=null&&typeof T!="function"&&typeof T!="symbol"&&typeof T!="boolean"&&(i.type=T),l!=null||f!=null){if(!(T!=="submit"&&T!=="reset"||l!=null))return;f=f!=null?""+ir(f):"",l=l!=null?""+ir(l):f,q||l===i.value||(i.value=l),i.defaultValue=l}h=h??v,h=typeof h!="function"&&typeof h!="symbol"&&!!h,i.checked=q?i.checked:!!h,i.defaultChecked=!!h,P!=null&&typeof P!="function"&&typeof P!="symbol"&&typeof P!="boolean"&&(i.name=P)}function Hp(i,l,f){l==="number"&&cc(i.ownerDocument)===i||i.defaultValue===""+f||(i.defaultValue=""+f)}function Oi(i,l,f,h){if(i=i.options,l){l={};for(var v=0;v=ul),zA=" ",BA=!1;function UA(i,l){switch(i){case"keyup":return D$.indexOf(l.keyCode)!==-1;case"keydown":return l.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function jA(i){return i=i.detail,typeof i=="object"&&"data"in i?i.data:null}var Mi=!1;function L$(i,l){switch(i){case"compositionend":return jA(l);case"keypress":return l.which!==32?null:(BA=!0,zA);case"textInput":return i=l.data,i===zA&&BA?null:i;default:return null}}function M$(i,l){if(Mi)return i==="compositionend"||!eg&&UA(i,l)?(i=DA(),fc=Kp=Xa=null,Mi=!1,i):null;switch(i){case"paste":return null;case"keypress":if(!(l.ctrlKey||l.altKey||l.metaKey)||l.ctrlKey&&l.altKey){if(l.char&&1=l)return{node:f,offset:l-i};i=h}e:{for(;f;){if(f.nextSibling){f=f.nextSibling;break e}f=f.parentNode}f=void 0}f=KA(f)}}function ZA(i,l){return i&&l?i===l?!0:i&&i.nodeType===3?!1:l&&l.nodeType===3?ZA(i,l.parentNode):"contains"in i?i.contains(l):i.compareDocumentPosition?!!(i.compareDocumentPosition(l)&16):!1:!1}function QA(i){i=i!=null&&i.ownerDocument!=null&&i.ownerDocument.defaultView!=null?i.ownerDocument.defaultView:window;for(var l=cc(i.document);l instanceof i.HTMLIFrameElement;){try{var f=typeof l.contentWindow.location.href=="string"}catch{f=!1}if(f)i=l.contentWindow;else break;l=cc(i.document)}return l}function rg(i){var l=i&&i.nodeName&&i.nodeName.toLowerCase();return l&&(l==="input"&&(i.type==="text"||i.type==="search"||i.type==="tel"||i.type==="url"||i.type==="password")||l==="textarea"||i.contentEditable==="true")}function H$(i,l){var f=QA(l);l=i.focusedElem;var h=i.selectionRange;if(f!==l&&l&&l.ownerDocument&&ZA(l.ownerDocument.documentElement,l)){if(h!==null&&rg(l)){if(i=h.start,f=h.end,f===void 0&&(f=i),"selectionStart"in l)l.selectionStart=i,l.selectionEnd=Math.min(f,l.value.length);else if(f=(i=l.ownerDocument||document)&&i.defaultView||window,f.getSelection){f=f.getSelection();var v=l.textContent.length,T=Math.min(h.start,v);h=h.end===void 0?T:Math.min(h.end,v),!f.extend&&T>h&&(v=h,h=T,T=v),v=XA(l,T);var P=XA(l,h);v&&P&&(f.rangeCount!==1||f.anchorNode!==v.node||f.anchorOffset!==v.offset||f.focusNode!==P.node||f.focusOffset!==P.offset)&&(i=i.createRange(),i.setStart(v.node,v.offset),f.removeAllRanges(),T>h?(f.addRange(i),f.extend(P.node,P.offset)):(i.setEnd(P.node,P.offset),f.addRange(i)))}}for(i=[],f=l;f=f.parentNode;)f.nodeType===1&&i.push({element:f,left:f.scrollLeft,top:f.scrollTop});for(typeof l.focus=="function"&&l.focus(),l=0;l=document.documentMode,Fi=null,ag=null,pl=null,og=!1;function JA(i,l,f){var h=f.window===f?f.document:f.nodeType===9?f:f.ownerDocument;og||Fi==null||Fi!==cc(h)||(h=Fi,"selectionStart"in h&&rg(h)?h={start:h.selectionStart,end:h.selectionEnd}:(h=(h.ownerDocument&&h.ownerDocument.defaultView||window).getSelection(),h={anchorNode:h.anchorNode,anchorOffset:h.anchorOffset,focusNode:h.focusNode,focusOffset:h.focusOffset}),pl&&fl(pl,h)||(pl=h,h=Jc(ag,"onSelect"),0>=P,v-=P,ma=1<<32-St(l)+v|f<Je?(sn=Ye,Ye=null):sn=Ye.sibling;var wt=de(se,Ye,ue[Je],we);if(wt===null){Ye===null&&(Ye=sn);break}i&&Ye&&wt.alternate===null&&l(se,Ye),te=T(wt,te,Je),lt===null?Ge=wt:lt.sibling=wt,lt=wt,Ye=sn}if(Je===ue.length)return f(se,Ye),Et&&Go(se,Je),Ge;if(Ye===null){for(;JeJe?(sn=Ye,Ye=null):sn=Ye.sibling;var bo=de(se,Ye,wt.value,we);if(bo===null){Ye===null&&(Ye=sn);break}i&&Ye&&bo.alternate===null&&l(se,Ye),te=T(bo,te,Je),lt===null?Ge=bo:lt.sibling=bo,lt=bo,Ye=sn}if(wt.done)return f(se,Ye),Et&&Go(se,Je),Ge;if(Ye===null){for(;!wt.done;Je++,wt=ue.next())wt=Ae(se,wt.value,we),wt!==null&&(te=T(wt,te,Je),lt===null?Ge=wt:lt.sibling=wt,lt=wt);return Et&&Go(se,Je),Ge}for(Ye=h(Ye);!wt.done;Je++,wt=ue.next())wt=ge(Ye,se,Je,wt.value,we),wt!==null&&(i&&wt.alternate!==null&&Ye.delete(wt.key===null?Je:wt.key),te=T(wt,te,Je),lt===null?Ge=wt:lt.sibling=wt,lt=wt);return i&&Ye.forEach(function(s9){return l(se,s9)}),Et&&Go(se,Je),Ge}function Vt(se,te,ue,we){if(typeof ue=="object"&&ue!==null&&ue.type===c&&ue.key===null&&(ue=ue.props.children),typeof ue=="object"&&ue!==null){switch(ue.$$typeof){case s:e:{for(var Ge=ue.key;te!==null;){if(te.key===Ge){if(Ge=ue.type,Ge===c){if(te.tag===7){f(se,te.sibling),we=v(te,ue.props.children),we.return=se,se=we;break e}}else if(te.elementType===Ge||typeof Ge=="object"&&Ge!==null&&Ge.$$typeof===k&&m1(Ge)===te.type){f(se,te.sibling),we=v(te,ue.props),Sl(we,ue),we.return=se,se=we;break e}f(se,te);break}else l(se,te);te=te.sibling}ue.type===c?(we=Jo(ue.props.children,se.mode,we,ue.key),we.return=se,se=we):(we=Hc(ue.type,ue.key,ue.props,null,se.mode,we),Sl(we,ue),we.return=se,se=we)}return P(se);case u:e:{for(Ge=ue.key;te!==null;){if(te.key===Ge)if(te.tag===4&&te.stateNode.containerInfo===ue.containerInfo&&te.stateNode.implementation===ue.implementation){f(se,te.sibling),we=v(te,ue.children||[]),we.return=se,se=we;break e}else{f(se,te);break}else l(se,te);te=te.sibling}we=sh(ue,se.mode,we),we.return=se,se=we}return P(se);case k:return Ge=ue._init,ue=Ge(ue._payload),Vt(se,te,ue,we)}if(M(ue))return qe(se,te,ue,we);if(_(ue)){if(Ge=_(ue),typeof Ge!="function")throw Error(r(150));return ue=Ge.call(ue),nt(se,te,ue,we)}if(typeof ue.then=="function")return Vt(se,te,kc(ue),we);if(ue.$$typeof===b)return Vt(se,te,Uc(se,ue),we);Tc(se,ue)}return typeof ue=="string"&&ue!==""||typeof ue=="number"||typeof ue=="bigint"?(ue=""+ue,te!==null&&te.tag===6?(f(se,te.sibling),we=v(te,ue),we.return=se,se=we):(f(se,te),we=ih(ue,se.mode,we),we.return=se,se=we),P(se)):f(se,te)}return function(se,te,ue,we){try{vl=0;var Ge=Vt(se,te,ue,we);return Gi=null,Ge}catch(Ye){if(Ye===bl)throw Ye;var lt=hr(29,Ye,null,se.mode);return lt.lanes=we,lt.return=se,lt}finally{}}}var $o=b1(!0),y1=b1(!1),Hi=ie(null),Ac=ie(0);function v1(i,l){i=_a,ae(Ac,i),ae(Hi,l),_a=i|l.baseLanes}function pg(){ae(Ac,_a),ae(Hi,Hi.current)}function gg(){_a=Ac.current,Se(Hi),Se(Ac)}var fr=ie(null),Vr=null;function Qa(i){var l=i.alternate;ae(en,en.current&1),ae(fr,i),Vr===null&&(l===null||Hi.current!==null||l.memoizedState!==null)&&(Vr=i)}function S1(i){if(i.tag===22){if(ae(en,en.current),ae(fr,i),Vr===null){var l=i.alternate;l!==null&&l.memoizedState!==null&&(Vr=i)}}else Ja()}function Ja(){ae(en,en.current),ae(fr,fr.current)}function ya(i){Se(fr),Vr===i&&(Vr=null),Se(en)}var en=ie(0);function Rc(i){for(var l=i;l!==null;){if(l.tag===13){var f=l.memoizedState;if(f!==null&&(f=f.dehydrated,f===null||f.data==="$?"||f.data==="$!"))return l}else if(l.tag===19&&l.memoizedProps.revealOrder!==void 0){if(l.flags&128)return l}else if(l.child!==null){l.child.return=l,l=l.child;continue}if(l===i)break;for(;l.sibling===null;){if(l.return===null||l.return===i)return null;l=l.return}l.sibling.return=l.return,l=l.sibling}return null}var Y$=typeof AbortController<"u"?AbortController:function(){var i=[],l=this.signal={aborted:!1,addEventListener:function(f,h){i.push(h)}};this.abort=function(){l.aborted=!0,i.forEach(function(f){return f()})}},K$=e.unstable_scheduleCallback,X$=e.unstable_NormalPriority,tn={$$typeof:b,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function hg(){return{controller:new Y$,data:new Map,refCount:0}}function El(i){i.refCount--,i.refCount===0&&K$(X$,function(){i.controller.abort()})}var wl=null,mg=0,$i=0,qi=null;function Z$(i,l){if(wl===null){var f=wl=[];mg=0,$i=wh(),qi={status:"pending",value:void 0,then:function(h){f.push(h)}}}return mg++,l.then(E1,E1),l}function E1(){if(--mg===0&&wl!==null){qi!==null&&(qi.status="fulfilled");var i=wl;wl=null,$i=0,qi=null;for(var l=0;lT?T:8;var P=L.T,q={};L.T=q,Ig(i,!1,l,f);try{var X=v(),ne=L.S;if(ne!==null&&ne(q,X),X!==null&&typeof X=="object"&&typeof X.then=="function"){var be=Q$(X,h);Tl(i,l,be,Qn(i))}else Tl(i,l,h,Qn(i))}catch(Ae){Tl(i,l,{then:function(){},status:"rejected",reason:Ae},Qn())}finally{W.p=T,L.T=P}}function r6(){}function Og(i,l,f,h){if(i.tag!==5)throw Error(r(476));var v=Q1(i).queue;Z1(i,v,l,Q,f===null?r6:function(){return J1(i),f(h)})}function Q1(i){var l=i.memoizedState;if(l!==null)return l;l={memoizedState:Q,baseState:Q,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:va,lastRenderedState:Q},next:null};var f={};return l.next={memoizedState:f,baseState:f,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:va,lastRenderedState:f},next:null},i.memoizedState=l,i=i.alternate,i!==null&&(i.memoizedState=l),l}function J1(i){var l=Q1(i).next.queue;Tl(i,l,{},Qn())}function Dg(){return En(ql)}function eR(){return Xt().memoizedState}function tR(){return Xt().memoizedState}function a6(i){for(var l=i.return;l!==null;){switch(l.tag){case 24:case 3:var f=Qn();i=ao(f);var h=oo(l,i,f);h!==null&&(Nn(h,l,f),_l(h,l,f)),l={cache:hg()},i.payload=l;return}l=l.return}}function o6(i,l,f){var h=Qn();f={lane:h,revertLane:0,action:f,hasEagerState:!1,eagerState:null,next:null},Fc(i)?rR(l,f):(f=lg(i,l,f,h),f!==null&&(Nn(f,i,h),aR(f,l,h)))}function nR(i,l,f){var h=Qn();Tl(i,l,f,h)}function Tl(i,l,f,h){var v={lane:h,revertLane:0,action:f,hasEagerState:!1,eagerState:null,next:null};if(Fc(i))rR(l,v);else{var T=i.alternate;if(i.lanes===0&&(T===null||T.lanes===0)&&(T=l.lastRenderedReducer,T!==null))try{var P=l.lastRenderedState,q=T(P,f);if(v.hasEagerState=!0,v.eagerState=q,Yn(q,P))return vc(i,l,v,0),It===null&&yc(),!1}catch{}finally{}if(f=lg(i,l,v,h),f!==null)return Nn(f,i,h),aR(f,l,h),!0}return!1}function Ig(i,l,f,h){if(h={lane:2,revertLane:wh(),action:h,hasEagerState:!1,eagerState:null,next:null},Fc(i)){if(l)throw Error(r(479))}else l=lg(i,f,h,2),l!==null&&Nn(l,i,2)}function Fc(i){var l=i.alternate;return i===st||l!==null&&l===st}function rR(i,l){Vi=Cc=!0;var f=i.pending;f===null?l.next=l:(l.next=f.next,f.next=l),i.pending=l}function aR(i,l,f){if(f&4194176){var h=l.lanes;h&=i.pendingLanes,f|=h,l.lanes=f,Rr(i,f)}}var Wr={readContext:En,use:Dc,useCallback:Wt,useContext:Wt,useEffect:Wt,useImperativeHandle:Wt,useLayoutEffect:Wt,useInsertionEffect:Wt,useMemo:Wt,useReducer:Wt,useRef:Wt,useState:Wt,useDebugValue:Wt,useDeferredValue:Wt,useTransition:Wt,useSyncExternalStore:Wt,useId:Wt};Wr.useCacheRefresh=Wt,Wr.useMemoCache=Wt,Wr.useHostTransitionStatus=Wt,Wr.useFormState=Wt,Wr.useActionState=Wt,Wr.useOptimistic=Wt;var Wo={readContext:En,use:Dc,useCallback:function(i,l){return Pn().memoizedState=[i,l===void 0?null:l],i},useContext:En,useEffect:H1,useImperativeHandle:function(i,l,f){f=f!=null?f.concat([i]):null,Lc(4194308,4,V1.bind(null,l,i),f)},useLayoutEffect:function(i,l){return Lc(4194308,4,i,l)},useInsertionEffect:function(i,l){Lc(4,2,i,l)},useMemo:function(i,l){var f=Pn();l=l===void 0?null:l;var h=i();if(Vo){ot(!0);try{i()}finally{ot(!1)}}return f.memoizedState=[h,l],h},useReducer:function(i,l,f){var h=Pn();if(f!==void 0){var v=f(l);if(Vo){ot(!0);try{f(l)}finally{ot(!1)}}}else v=l;return h.memoizedState=h.baseState=v,i={pending:null,lanes:0,dispatch:null,lastRenderedReducer:i,lastRenderedState:v},h.queue=i,i=i.dispatch=o6.bind(null,st,i),[h.memoizedState,i]},useRef:function(i){var l=Pn();return i={current:i},l.memoizedState=i},useState:function(i){i=Ag(i);var l=i.queue,f=nR.bind(null,st,l);return l.dispatch=f,[i.memoizedState,f]},useDebugValue:Cg,useDeferredValue:function(i,l){var f=Pn();return Ng(f,i,l)},useTransition:function(){var i=Ag(!1);return i=Z1.bind(null,st,i.queue,!0,!1),Pn().memoizedState=i,[!1,i]},useSyncExternalStore:function(i,l,f){var h=st,v=Pn();if(Et){if(f===void 0)throw Error(r(407));f=f()}else{if(f=l(),It===null)throw Error(r(349));bt&60||R1(h,l,f)}v.memoizedState=f;var T={value:f,getSnapshot:l};return v.queue=T,H1(C1.bind(null,h,T,i),[i]),h.flags|=2048,Yi(9,_1.bind(null,h,T,f,l),{destroy:void 0},null),f},useId:function(){var i=Pn(),l=It.identifierPrefix;if(Et){var f=ba,h=ma;f=(h&~(1<<32-St(h)-1)).toString(32)+f,l=":"+l+"R"+f,f=Nc++,0 title"))),hn(T,h,f),T[Sn]=i,rn(T),h=T;break e;case"link":var P=O_("link","href",v).get(h+(f.href||""));if(P){for(var q=0;q<\/script>",i=i.removeChild(i.firstChild);break;case"select":i=typeof h.is=="string"?v.createElement("select",{is:h.is}):v.createElement("select"),h.multiple?i.multiple=!0:h.size&&(i.size=h.size);break;default:i=typeof h.is=="string"?v.createElement(f,{is:h.is}):v.createElement(f)}}i[Sn]=l,i[Mn]=h;e:for(v=l.child;v!==null;){if(v.tag===5||v.tag===6)i.appendChild(v.stateNode);else if(v.tag!==4&&v.tag!==27&&v.child!==null){v.child.return=v,v=v.child;continue}if(v===l)break e;for(;v.sibling===null;){if(v.return===null||v.return===l)break e;v=v.return}v.sibling.return=v.return,v=v.sibling}l.stateNode=i;e:switch(hn(i,f,h),f){case"button":case"input":case"select":case"textarea":i=!!h.autoFocus;break e;case"img":i=!0;break e;default:i=!1}i&&Aa(l)}}return Bt(l),l.flags&=-16777217,null;case 6:if(i&&l.stateNode!=null)i.memoizedProps!==h&&Aa(l);else{if(typeof h!="string"&&l.stateNode===null)throw Error(r(166));if(i=Ie.current,gl(l)){if(i=l.stateNode,f=l.memoizedProps,h=null,v=Cn,v!==null)switch(v.tag){case 27:case 5:h=v.memoizedProps}i[Sn]=l,i=!!(i.nodeValue===f||h!==null&&h.suppressHydrationWarning===!0||v_(i.nodeValue,f)),i||Ho(l)}else i=td(i).createTextNode(h),i[Sn]=l,l.stateNode=i}return Bt(l),null;case 13:if(h=l.memoizedState,i===null||i.memoizedState!==null&&i.memoizedState.dehydrated!==null){if(v=gl(l),h!==null&&h.dehydrated!==null){if(i===null){if(!v)throw Error(r(318));if(v=l.memoizedState,v=v!==null?v.dehydrated:null,!v)throw Error(r(317));v[Sn]=l}else hl(),!(l.flags&128)&&(l.memoizedState=null),l.flags|=4;Bt(l),v=!1}else Cr!==null&&(hh(Cr),Cr=null),v=!0;if(!v)return l.flags&256?(ya(l),l):(ya(l),null)}if(ya(l),l.flags&128)return l.lanes=f,l;if(f=h!==null,i=i!==null&&i.memoizedState!==null,f){h=l.child,v=null,h.alternate!==null&&h.alternate.memoizedState!==null&&h.alternate.memoizedState.cachePool!==null&&(v=h.alternate.memoizedState.cachePool.pool);var T=null;h.memoizedState!==null&&h.memoizedState.cachePool!==null&&(T=h.memoizedState.cachePool.pool),T!==v&&(h.flags|=2048)}return f!==i&&f&&(l.child.flags|=8192),$c(l,l.updateQueue),Bt(l),null;case 4:return J(),i===null&&Ah(l.stateNode.containerInfo),Bt(l),null;case 10:return wa(l.type),Bt(l),null;case 19:if(Se(en),v=l.memoizedState,v===null)return Bt(l),null;if(h=(l.flags&128)!==0,T=v.rendering,T===null)if(h)Ml(v,!1);else{if(qt!==0||i!==null&&i.flags&128)for(i=l.child;i!==null;){if(T=Rc(i),T!==null){for(l.flags|=128,Ml(v,!1),i=T.updateQueue,l.updateQueue=i,$c(l,i),l.subtreeFlags=0,i=f,f=l.child;f!==null;)WR(f,i),f=f.sibling;return ae(en,en.current&1|2),l.child}i=i.sibling}v.tail!==null&&he()>qc&&(l.flags|=128,h=!0,Ml(v,!1),l.lanes=4194304)}else{if(!h)if(i=Rc(T),i!==null){if(l.flags|=128,h=!0,i=i.updateQueue,l.updateQueue=i,$c(l,i),Ml(v,!0),v.tail===null&&v.tailMode==="hidden"&&!T.alternate&&!Et)return Bt(l),null}else 2*he()-v.renderingStartTime>qc&&f!==536870912&&(l.flags|=128,h=!0,Ml(v,!1),l.lanes=4194304);v.isBackwards?(T.sibling=l.child,l.child=T):(i=v.last,i!==null?i.sibling=T:l.child=T,v.last=T)}return v.tail!==null?(l=v.tail,v.rendering=l,v.tail=l.sibling,v.renderingStartTime=he(),l.sibling=null,i=en.current,ae(en,h?i&1|2:i&1),l):(Bt(l),null);case 22:case 23:return ya(l),gg(),h=l.memoizedState!==null,i!==null?i.memoizedState!==null!==h&&(l.flags|=8192):h&&(l.flags|=8192),h?f&536870912&&!(l.flags&128)&&(Bt(l),l.subtreeFlags&6&&(l.flags|=8192)):Bt(l),f=l.updateQueue,f!==null&&$c(l,f.retryQueue),f=null,i!==null&&i.memoizedState!==null&&i.memoizedState.cachePool!==null&&(f=i.memoizedState.cachePool.pool),h=null,l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(h=l.memoizedState.cachePool.pool),h!==f&&(l.flags|=2048),i!==null&&Se(qo),null;case 24:return f=null,i!==null&&(f=i.memoizedState.cache),l.memoizedState.cache!==f&&(l.flags|=2048),wa(tn),Bt(l),null;case 25:return null}throw Error(r(156,l.tag))}function f6(i,l){switch(cg(l),l.tag){case 1:return i=l.flags,i&65536?(l.flags=i&-65537|128,l):null;case 3:return wa(tn),J(),i=l.flags,i&65536&&!(i&128)?(l.flags=i&-65537|128,l):null;case 26:case 27:case 5:return Te(l),null;case 13:if(ya(l),i=l.memoizedState,i!==null&&i.dehydrated!==null){if(l.alternate===null)throw Error(r(340));hl()}return i=l.flags,i&65536?(l.flags=i&-65537|128,l):null;case 19:return Se(en),null;case 4:return J(),null;case 10:return wa(l.type),null;case 22:case 23:return ya(l),gg(),i!==null&&Se(qo),i=l.flags,i&65536?(l.flags=i&-65537|128,l):null;case 24:return wa(tn),null;case 25:return null;default:return null}}function XR(i,l){switch(cg(l),l.tag){case 3:wa(tn),J();break;case 26:case 27:case 5:Te(l);break;case 4:J();break;case 13:ya(l);break;case 19:Se(en);break;case 10:wa(l.type);break;case 22:case 23:ya(l),gg(),i!==null&&Se(qo);break;case 24:wa(tn)}}var p6={getCacheForType:function(i){var l=En(tn),f=l.data.get(i);return f===void 0&&(f=i(),l.data.set(i,f)),f}},g6=typeof WeakMap=="function"?WeakMap:Map,Ut=0,It=null,ct=null,bt=0,Lt=0,Zn=null,Ra=!1,Qi=!1,lh=!1,_a=0,qt=0,co=0,ei=0,uh=0,mr=0,Ji=0,Fl=null,Yr=null,ch=!1,dh=0,qc=1/0,Vc=null,fo=null,Wc=!1,ti=null,Pl=0,fh=0,ph=null,zl=0,gh=null;function Qn(){if(Ut&2&&bt!==0)return bt&-bt;if(L.T!==null){var i=$i;return i!==0?i:wh()}return bA()}function ZR(){mr===0&&(mr=!(bt&536870912)||Et?Ct():536870912);var i=fr.current;return i!==null&&(i.flags|=32),mr}function Nn(i,l,f){(i===It&&Lt===2||i.cancelPendingCommit!==null)&&(es(i,0),Ca(i,bt,mr,!1)),In(i,f),(!(Ut&2)||i!==It)&&(i===It&&(!(Ut&2)&&(ei|=f),qt===4&&Ca(i,bt,mr,!1)),Kr(i))}function QR(i,l,f){if(Ut&6)throw Error(r(327));var h=!f&&(l&60)===0&&(l&i.expiredLanes)===0||Xe(i,l),v=h?b6(i,l):yh(i,l,!0),T=h;do{if(v===0){Qi&&!h&&Ca(i,l,0,!1);break}else if(v===6)Ca(i,l,0,!Ra);else{if(f=i.current.alternate,T&&!h6(f)){v=yh(i,l,!1),T=!1;continue}if(v===2){if(T=l,i.errorRecoveryDisabledLanes&T)var P=0;else P=i.pendingLanes&-536870913,P=P!==0?P:P&536870912?536870912:0;if(P!==0){l=P;e:{var q=i;v=Fl;var X=q.current.memoizedState.isDehydrated;if(X&&(es(q,P).flags|=256),P=yh(q,P,!1),P!==2){if(lh&&!X){q.errorRecoveryDisabledLanes|=T,ei|=T,v=4;break e}T=Yr,Yr=v,T!==null&&hh(T)}v=P}if(T=!1,v!==2)continue}}if(v===1){es(i,0),Ca(i,l,0,!0);break}e:{switch(h=i,v){case 0:case 1:throw Error(r(345));case 4:if((l&4194176)===l){Ca(h,l,mr,!Ra);break e}break;case 2:Yr=null;break;case 3:case 5:break;default:throw Error(r(329))}if(h.finishedWork=f,h.finishedLanes=l,(l&62914560)===l&&(T=dh+300-he(),10f?32:f,L.T=null,ti===null)var T=!1;else{f=ph,ph=null;var P=ti,q=Pl;if(ti=null,Pl=0,Ut&6)throw Error(r(331));var X=Ut;if(Ut|=4,qR(P.current),GR(P,P.current,q,f),Ut=X,Bl(0,!1),et&&typeof et.onPostCommitFiberRoot=="function")try{et.onPostCommitFiberRoot(ht,P)}catch{}T=!0}return T}finally{W.p=v,L.T=h,s_(i,l)}}return!1}function l_(i,l,f){l=ur(f,l),l=Fg(i.stateNode,l,2),i=oo(i,l,2),i!==null&&(In(i,2),Kr(i))}function Nt(i,l,f){if(i.tag===3)l_(i,i,f);else for(;l!==null;){if(l.tag===3){l_(l,i,f);break}else if(l.tag===1){var h=l.stateNode;if(typeof l.type.getDerivedStateFromError=="function"||typeof h.componentDidCatch=="function"&&(fo===null||!fo.has(h))){i=ur(f,i),f=dR(2),h=oo(l,f,2),h!==null&&(fR(f,h,l,i),In(h,2),Kr(h));break}}l=l.return}}function vh(i,l,f){var h=i.pingCache;if(h===null){h=i.pingCache=new g6;var v=new Set;h.set(l,v)}else v=h.get(l),v===void 0&&(v=new Set,h.set(l,v));v.has(f)||(lh=!0,v.add(f),i=S6.bind(null,i,l,f),l.then(i,i))}function S6(i,l,f){var h=i.pingCache;h!==null&&h.delete(l),i.pingedLanes|=i.suspendedLanes&f,i.warmLanes&=~f,It===i&&(bt&f)===f&&(qt===4||qt===3&&(bt&62914560)===bt&&300>he()-dh?!(Ut&2)&&es(i,0):uh|=f,Ji===bt&&(Ji=0)),Kr(i)}function u_(i,l){l===0&&(l=Dn()),i=Za(i,l),i!==null&&(In(i,l),Kr(i))}function E6(i){var l=i.memoizedState,f=0;l!==null&&(f=l.retryLane),u_(i,f)}function w6(i,l){var f=0;switch(i.tag){case 13:var h=i.stateNode,v=i.memoizedState;v!==null&&(f=v.retryLane);break;case 19:h=i.stateNode;break;case 22:h=i.stateNode._retryCache;break;default:throw Error(r(314))}h!==null&&h.delete(l),u_(i,f)}function x6(i,l){return Ee(i,l)}var Xc=null,rs=null,Sh=!1,Zc=!1,Eh=!1,ni=0;function Kr(i){i!==rs&&i.next===null&&(rs===null?Xc=rs=i:rs=rs.next=i),Zc=!0,Sh||(Sh=!0,T6(k6))}function Bl(i,l){if(!Eh&&Zc){Eh=!0;do for(var f=!1,h=Xc;h!==null;){if(i!==0){var v=h.pendingLanes;if(v===0)var T=0;else{var P=h.suspendedLanes,q=h.pingedLanes;T=(1<<31-St(42|i)+1)-1,T&=v&~(P&~q),T=T&201326677?T&201326677|1:T?T|2:0}T!==0&&(f=!0,f_(h,T))}else T=bt,T=fa(h,h===It?T:0),!(T&3)||Xe(h,T)||(f=!0,f_(h,T));h=h.next}while(f);Eh=!1}}function k6(){Zc=Sh=!1;var i=0;ni!==0&&(I6()&&(i=ni),ni=0);for(var l=he(),f=null,h=Xc;h!==null;){var v=h.next,T=c_(h,l);T===0?(h.next=null,f===null?Xc=v:f.next=v,v===null&&(rs=f)):(f=h,(i!==0||T&3)&&(Zc=!0)),h=v}Bl(i)}function c_(i,l){for(var f=i.suspendedLanes,h=i.pingedLanes,v=i.expirationTimes,T=i.pendingLanes&-62914561;0"u"?null:document;function R_(i,l,f){var h=os;if(h&&typeof l=="string"&&l){var v=sr(l);v='link[rel="'+i+'"][href="'+v+'"]',typeof f=="string"&&(v+='[crossorigin="'+f+'"]'),A_.has(v)||(A_.add(v),i={rel:i,crossOrigin:f,href:l},h.querySelector(v)===null&&(l=h.createElement("link"),hn(l,"link",i),rn(l),h.head.appendChild(l)))}}function j6(i){Na.D(i),R_("dns-prefetch",i,null)}function G6(i,l){Na.C(i,l),R_("preconnect",i,l)}function H6(i,l,f){Na.L(i,l,f);var h=os;if(h&&i&&l){var v='link[rel="preload"][as="'+sr(l)+'"]';l==="image"&&f&&f.imageSrcSet?(v+='[imagesrcset="'+sr(f.imageSrcSet)+'"]',typeof f.imageSizes=="string"&&(v+='[imagesizes="'+sr(f.imageSizes)+'"]')):v+='[href="'+sr(i)+'"]';var T=v;switch(l){case"style":T=is(i);break;case"script":T=ss(i)}br.has(T)||(i=I({rel:"preload",href:l==="image"&&f&&f.imageSrcSet?void 0:i,as:l},f),br.set(T,i),h.querySelector(v)!==null||l==="style"&&h.querySelector(Gl(T))||l==="script"&&h.querySelector(Hl(T))||(l=h.createElement("link"),hn(l,"link",i),rn(l),h.head.appendChild(l)))}}function $6(i,l){Na.m(i,l);var f=os;if(f&&i){var h=l&&typeof l.as=="string"?l.as:"script",v='link[rel="modulepreload"][as="'+sr(h)+'"][href="'+sr(i)+'"]',T=v;switch(h){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":T=ss(i)}if(!br.has(T)&&(i=I({rel:"modulepreload",href:i},l),br.set(T,i),f.querySelector(v)===null)){switch(h){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(f.querySelector(Hl(T)))return}h=f.createElement("link"),hn(h,"link",i),rn(h),f.head.appendChild(h)}}}function q6(i,l,f){Na.S(i,l,f);var h=os;if(h&&i){var v=Ci(h).hoistableStyles,T=is(i);l=l||"default";var P=v.get(T);if(!P){var q={loading:0,preload:null};if(P=h.querySelector(Gl(T)))q.loading=5;else{i=I({rel:"stylesheet",href:i,"data-precedence":l},f),(f=br.get(T))&&Mh(i,f);var X=P=h.createElement("link");rn(X),hn(X,"link",i),X._p=new Promise(function(ne,be){X.onload=ne,X.onerror=be}),X.addEventListener("load",function(){q.loading|=1}),X.addEventListener("error",function(){q.loading|=2}),q.loading|=4,rd(P,l,h)}P={type:"stylesheet",instance:P,count:1,state:q},v.set(T,P)}}}function V6(i,l){Na.X(i,l);var f=os;if(f&&i){var h=Ci(f).hoistableScripts,v=ss(i),T=h.get(v);T||(T=f.querySelector(Hl(v)),T||(i=I({src:i,async:!0},l),(l=br.get(v))&&Fh(i,l),T=f.createElement("script"),rn(T),hn(T,"link",i),f.head.appendChild(T)),T={type:"script",instance:T,count:1,state:null},h.set(v,T))}}function W6(i,l){Na.M(i,l);var f=os;if(f&&i){var h=Ci(f).hoistableScripts,v=ss(i),T=h.get(v);T||(T=f.querySelector(Hl(v)),T||(i=I({src:i,async:!0,type:"module"},l),(l=br.get(v))&&Fh(i,l),T=f.createElement("script"),rn(T),hn(T,"link",i),f.head.appendChild(T)),T={type:"script",instance:T,count:1,state:null},h.set(v,T))}}function __(i,l,f,h){var v=(v=Ie.current)?nd(v):null;if(!v)throw Error(r(446));switch(i){case"meta":case"title":return null;case"style":return typeof f.precedence=="string"&&typeof f.href=="string"?(l=is(f.href),f=Ci(v).hoistableStyles,h=f.get(l),h||(h={type:"style",instance:null,count:0,state:null},f.set(l,h)),h):{type:"void",instance:null,count:0,state:null};case"link":if(f.rel==="stylesheet"&&typeof f.href=="string"&&typeof f.precedence=="string"){i=is(f.href);var T=Ci(v).hoistableStyles,P=T.get(i);if(P||(v=v.ownerDocument||v,P={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},T.set(i,P),(T=v.querySelector(Gl(i)))&&!T._p&&(P.instance=T,P.state.loading=5),br.has(i)||(f={rel:"preload",as:"style",href:f.href,crossOrigin:f.crossOrigin,integrity:f.integrity,media:f.media,hrefLang:f.hrefLang,referrerPolicy:f.referrerPolicy},br.set(i,f),T||Y6(v,i,f,P.state))),l&&h===null)throw Error(r(528,""));return P}if(l&&h!==null)throw Error(r(529,""));return null;case"script":return l=f.async,f=f.src,typeof f=="string"&&l&&typeof l!="function"&&typeof l!="symbol"?(l=ss(f),f=Ci(v).hoistableScripts,h=f.get(l),h||(h={type:"script",instance:null,count:0,state:null},f.set(l,h)),h):{type:"void",instance:null,count:0,state:null};default:throw Error(r(444,i))}}function is(i){return'href="'+sr(i)+'"'}function Gl(i){return'link[rel="stylesheet"]['+i+"]"}function C_(i){return I({},i,{"data-precedence":i.precedence,precedence:null})}function Y6(i,l,f,h){i.querySelector('link[rel="preload"][as="style"]['+l+"]")?h.loading=1:(l=i.createElement("link"),h.preload=l,l.addEventListener("load",function(){return h.loading|=1}),l.addEventListener("error",function(){return h.loading|=2}),hn(l,"link",f),rn(l),i.head.appendChild(l))}function ss(i){return'[src="'+sr(i)+'"]'}function Hl(i){return"script[async]"+i}function N_(i,l,f){if(l.count++,l.instance===null)switch(l.type){case"style":var h=i.querySelector('style[data-href~="'+sr(f.href)+'"]');if(h)return l.instance=h,rn(h),h;var v=I({},f,{"data-href":f.href,"data-precedence":f.precedence,href:null,precedence:null});return h=(i.ownerDocument||i).createElement("style"),rn(h),hn(h,"style",v),rd(h,f.precedence,i),l.instance=h;case"stylesheet":v=is(f.href);var T=i.querySelector(Gl(v));if(T)return l.state.loading|=4,l.instance=T,rn(T),T;h=C_(f),(v=br.get(v))&&Mh(h,v),T=(i.ownerDocument||i).createElement("link"),rn(T);var P=T;return P._p=new Promise(function(q,X){P.onload=q,P.onerror=X}),hn(T,"link",h),l.state.loading|=4,rd(T,f.precedence,i),l.instance=T;case"script":return T=ss(f.src),(v=i.querySelector(Hl(T)))?(l.instance=v,rn(v),v):(h=f,(v=br.get(T))&&(h=I({},f),Fh(h,v)),i=i.ownerDocument||i,v=i.createElement("script"),rn(v),hn(v,"link",h),i.head.appendChild(v),l.instance=v);case"void":return null;default:throw Error(r(443,l.type))}else l.type==="stylesheet"&&!(l.state.loading&4)&&(h=l.instance,l.state.loading|=4,rd(h,f.precedence,i));return l.instance}function rd(i,l,f){for(var h=f.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),v=h.length?h[h.length-1]:null,T=v,P=0;P title"):null)}function K6(i,l,f){if(f===1||l.itemProp!=null)return!1;switch(i){case"meta":case"title":return!0;case"style":if(typeof l.precedence!="string"||typeof l.href!="string"||l.href==="")break;return!0;case"link":if(typeof l.rel!="string"||typeof l.href!="string"||l.href===""||l.onLoad||l.onError)break;switch(l.rel){case"stylesheet":return i=l.disabled,typeof l.precedence=="string"&&i==null;default:return!0}case"script":if(l.async&&typeof l.async!="function"&&typeof l.async!="symbol"&&!l.onLoad&&!l.onError&&l.src&&typeof l.src=="string")return!0}return!1}function I_(i){return!(i.type==="stylesheet"&&!(i.state.loading&3))}var $l=null;function X6(){}function Z6(i,l,f){if($l===null)throw Error(r(475));var h=$l;if(l.type==="stylesheet"&&(typeof f.media!="string"||matchMedia(f.media).matches!==!1)&&!(l.state.loading&4)){if(l.instance===null){var v=is(f.href),T=i.querySelector(Gl(v));if(T){i=T._p,i!==null&&typeof i=="object"&&typeof i.then=="function"&&(h.count++,h=od.bind(h),i.then(h,h)),l.state.loading|=4,l.instance=T,rn(T);return}T=i.ownerDocument||i,f=C_(f),(v=br.get(v))&&Mh(f,v),T=T.createElement("link"),rn(T);var P=T;P._p=new Promise(function(q,X){P.onload=q,P.onerror=X}),hn(T,"link",f),l.instance=T}h.stylesheets===null&&(h.stylesheets=new Map),h.stylesheets.set(l,i),(i=l.state.preload)&&!(l.state.loading&3)&&(h.count++,l=od.bind(h),i.addEventListener("load",l),i.addEventListener("error",l))}}function Q6(){if($l===null)throw Error(r(475));var i=$l;return i.stylesheets&&i.count===0&&Ph(i,i.stylesheets),0"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),Vh.exports=v9(),Vh.exports}var E9=S9(),Ql={},tC;function w9(){if(tC)return Ql;tC=1,Object.defineProperty(Ql,"__esModule",{value:!0}),Ql.parse=s,Ql.serialize=d;const e=/^[\u0021-\u003A\u003C\u003E-\u007E]+$/,t=/^[\u0021-\u003A\u003C-\u007E]*$/,n=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,r=/^[\u0020-\u003A\u003D-\u007E]*$/,a=Object.prototype.toString,o=(()=>{const m=function(){};return m.prototype=Object.create(null),m})();function s(m,b){const y=new o,S=m.length;if(S<2)return y;const x=(b==null?void 0:b.decode)||p;let R=0;do{const k=m.indexOf("=",R);if(k===-1)break;const A=m.indexOf(";",R),C=A===-1?S:A;if(k>C){R=m.lastIndexOf(";",k-1)+1;continue}const N=u(m,R,k),_=c(m,k,N),O=m.slice(N,_);if(y[O]===void 0){let F=u(m,k+1,C),L=c(m,C,F);const I=x(m.slice(F,L));y[O]=I}R=C+1}while(Ry;){const S=m.charCodeAt(--b);if(S!==32&&S!==9)return b+1}return y}function d(m,b,y){const S=(y==null?void 0:y.encode)||encodeURIComponent;if(!e.test(m))throw new TypeError(`argument name is invalid: ${m}`);const x=S(b);if(!t.test(x))throw new TypeError(`argument val is invalid: ${b}`);let R=m+"="+x;if(!y)return R;if(y.maxAge!==void 0){if(!Number.isInteger(y.maxAge))throw new TypeError(`option maxAge is invalid: ${y.maxAge}`);R+="; Max-Age="+y.maxAge}if(y.domain){if(!n.test(y.domain))throw new TypeError(`option domain is invalid: ${y.domain}`);R+="; Domain="+y.domain}if(y.path){if(!r.test(y.path))throw new TypeError(`option path is invalid: ${y.path}`);R+="; Path="+y.path}if(y.expires){if(!g(y.expires)||!Number.isFinite(y.expires.valueOf()))throw new TypeError(`option expires is invalid: ${y.expires}`);R+="; Expires="+y.expires.toUTCString()}if(y.httpOnly&&(R+="; HttpOnly"),y.secure&&(R+="; Secure"),y.partitioned&&(R+="; Partitioned"),y.priority)switch(typeof y.priority=="string"?y.priority.toLowerCase():void 0){case"low":R+="; Priority=Low";break;case"medium":R+="; Priority=Medium";break;case"high":R+="; Priority=High";break;default:throw new TypeError(`option priority is invalid: ${y.priority}`)}if(y.sameSite)switch(typeof y.sameSite=="string"?y.sameSite.toLowerCase():y.sameSite){case!0:case"strict":R+="; SameSite=Strict";break;case"lax":R+="; SameSite=Lax";break;case"none":R+="; SameSite=None";break;default:throw new TypeError(`option sameSite is invalid: ${y.sameSite}`)}return R}function p(m){if(m.indexOf("%")===-1)return m;try{return decodeURIComponent(m)}catch{return m}}function g(m){return a.call(m)==="[object Date]"}return Ql}w9();/** * react-router v7.3.0 * * Copyright (c) Remix Software Inc. @@ -55,204 +55,204 @@ Error generating stack: `+f.message+` * LICENSE.md file in the root directory of this source tree. * * @license MIT - */var oC="popstate";function k9(e={}){function t(a,o){let{pathname:s="/",search:u="",hash:c=""}=wi(a.location.hash.substring(1));return!s.startsWith("/")&&!s.startsWith(".")&&(s="/"+s),rk("",{pathname:s,search:u,hash:c},o.state&&o.state.usr||null,o.state&&o.state.key||"default")}function n(a,o){let s=a.document.querySelector("base"),u="";if(s&&s.getAttribute("href")){let c=a.location.href,d=c.indexOf("#");u=d===-1?c:c.slice(0,d)}return u+"#"+(typeof o=="string"?o:wu(o))}function r(a,o){wr(a.pathname.charAt(0)==="/",`relative pathnames are not supported in hash history.push(${JSON.stringify(o)})`)}return A9(t,n,r,e)}function zt(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function wr(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function T9(){return Math.random().toString(36).substring(2,10)}function iC(e,t){return{usr:e.state,key:e.key,idx:t}}function rk(e,t,n=null,r){return{pathname:typeof e=="string"?e:e.pathname,search:"",hash:"",...typeof t=="string"?wi(t):t,state:n,key:t&&t.key||r||T9()}}function wu({pathname:e="/",search:t="",hash:n=""}){return t&&t!=="?"&&(e+=t.charAt(0)==="?"?t:"?"+t),n&&n!=="#"&&(e+=n.charAt(0)==="#"?n:"#"+n),e}function wi(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substring(n),e=e.substring(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substring(r),e=e.substring(0,r)),e&&(t.pathname=e)}return t}function A9(e,t,n,r={}){let{window:a=document.defaultView,v5Compat:o=!1}=r,s=a.history,u="POP",c=null,d=p();d==null&&(d=0,s.replaceState({...s.state,idx:d},""));function p(){return(s.state||{idx:null}).idx}function g(){u="POP";let k=p(),R=k==null?null:k-d;d=k,c&&c({action:u,location:S.location,delta:R})}function m(k,R){u="PUSH";let x=rk(S.location,k,R);n&&n(x,k),d=p()+1;let A=iC(x,d),C=S.createHref(x);try{s.pushState(A,"",C)}catch(N){if(N instanceof DOMException&&N.name==="DataCloneError")throw N;a.location.assign(C)}o&&c&&c({action:u,location:S.location,delta:1})}function b(k,R){u="REPLACE";let x=rk(S.location,k,R);n&&n(x,k),d=p();let A=iC(x,d),C=S.createHref(x);s.replaceState(A,"",C),o&&c&&c({action:u,location:S.location,delta:0})}function y(k){let R=a.location.origin!=="null"?a.location.origin:a.location.href,x=typeof k=="string"?k:wu(k);return x=x.replace(/ $/,"%20"),zt(R,`No window.location.(origin|href) available to create URL for href: ${x}`),new URL(x,R)}let S={get action(){return u},get location(){return e(a,s)},listen(k){if(c)throw new Error("A history only accepts one active listener");return a.addEventListener(oC,g),c=k,()=>{a.removeEventListener(oC,g),c=null}},createHref(k){return t(a,k)},createURL:y,encodeLocation(k){let R=y(k);return{pathname:R.pathname,search:R.search,hash:R.hash}},push:m,replace:b,go(k){return s.go(k)}};return S}function jz(e,t,n="/"){return R9(e,t,n,!1)}function R9(e,t,n,r){let a=typeof t=="string"?wi(t):t,o=Ga(a.pathname||"/",n);if(o==null)return null;let s=Gz(e);_9(s);let u=null;for(let c=0;u==null&&c{let c={relativePath:u===void 0?o.path||"":u,caseSensitive:o.caseSensitive===!0,childrenIndex:s,route:o};c.relativePath.startsWith("/")&&(zt(c.relativePath.startsWith(r),`Absolute route path "${c.relativePath}" nested under path "${r}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),c.relativePath=c.relativePath.slice(r.length));let d=Ua([r,c.relativePath]),p=n.concat(c);o.children&&o.children.length>0&&(zt(o.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${d}".`),Gz(o.children,t,p,d)),!(o.path==null&&!o.index)&&t.push({path:d,score:M9(d,o.index),routesMeta:p})};return e.forEach((o,s)=>{var u;if(o.path===""||!((u=o.path)!=null&&u.includes("?")))a(o,s);else for(let c of Hz(o.path))a(o,s,c)}),t}function Hz(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,a=n.endsWith("?"),o=n.replace(/\?$/,"");if(r.length===0)return a?[o,""]:[o];let s=Hz(r.join("/")),u=[];return u.push(...s.map(c=>c===""?o:[o,c].join("/"))),a&&u.push(...s),u.map(c=>e.startsWith("/")&&c===""?"/":c)}function _9(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:F9(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}var C9=/^:[\w-]+$/,N9=3,O9=2,D9=1,I9=10,L9=-2,sC=e=>e==="*";function M9(e,t){let n=e.split("/"),r=n.length;return n.some(sC)&&(r+=L9),t&&(r+=O9),n.filter(a=>!sC(a)).reduce((a,o)=>a+(C9.test(o)?N9:o===""?D9:I9),r)}function F9(e,t){return e.length===t.length&&e.slice(0,-1).every((r,a)=>r===t[a])?e[e.length-1]-t[t.length-1]:0}function P9(e,t,n=!1){let{routesMeta:r}=e,a={},o="/",s=[];for(let u=0;u{if(p==="*"){let y=u[m]||"";s=o.slice(0,o.length-y.length).replace(/(.)\/+$/,"$1")}const b=u[m];return g&&!b?d[p]=void 0:d[p]=(b||"").replace(/%2F/g,"/"),d},{}),pathname:o,pathnameBase:s,pattern:e}}function z9(e,t=!1,n=!0){wr(e==="*"||!e.endsWith("*")||e.endsWith("/*"),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,"/*")}".`);let r=[],a="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(s,u,c)=>(r.push({paramName:u,isOptional:c!=null}),c?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),a+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?a+="\\/*$":e!==""&&e!=="/"&&(a+="(?:(?=\\/|$))"),[new RegExp(a,t?void 0:"i"),r]}function B9(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return wr(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function Ga(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&r!=="/"?null:e.slice(n)||"/"}function U9(e,t="/"){let{pathname:n,search:r="",hash:a=""}=typeof e=="string"?wi(e):e;return{pathname:n?n.startsWith("/")?n:j9(n,t):t,search:$9(r),hash:q9(a)}}function j9(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(a=>{a===".."?n.length>1&&n.pop():a!=="."&&n.push(a)}),n.length>1?n.join("/"):"/"}function Xh(e,t,n,r){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(r)}]. Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in and the router will parse it for you.`}function G9(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function S0(e){let t=G9(e);return t.map((n,r)=>r===t.length-1?n.pathname:n.pathnameBase)}function E0(e,t,n,r=!1){let a;typeof e=="string"?a=wi(e):(a={...e},zt(!a.pathname||!a.pathname.includes("?"),Xh("?","pathname","search",a)),zt(!a.pathname||!a.pathname.includes("#"),Xh("#","pathname","hash",a)),zt(!a.search||!a.search.includes("#"),Xh("#","search","hash",a)));let o=e===""||a.pathname==="",s=o?"/":a.pathname,u;if(s==null)u=n;else{let g=t.length-1;if(!r&&s.startsWith("..")){let m=s.split("/");for(;m[0]==="..";)m.shift(),g-=1;a.pathname=m.join("/")}u=g>=0?t[g]:"/"}let c=U9(a,u),d=s&&s!=="/"&&s.endsWith("/"),p=(o||s===".")&&n.endsWith("/");return!c.pathname.endsWith("/")&&(d||p)&&(c.pathname+="/"),c}var Ua=e=>e.join("/").replace(/\/\/+/g,"/"),H9=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),$9=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,q9=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function V9(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}var $z=["POST","PUT","PATCH","DELETE"];new Set($z);var W9=["GET",...$z];new Set(W9);var Bs=E.createContext(null);Bs.displayName="DataRouter";var $f=E.createContext(null);$f.displayName="DataRouterState";var qz=E.createContext({isTransitioning:!1});qz.displayName="ViewTransition";var Y9=E.createContext(new Map);Y9.displayName="Fetchers";var K9=E.createContext(null);K9.displayName="Await";var Gr=E.createContext(null);Gr.displayName="Navigation";var Bu=E.createContext(null);Bu.displayName="Location";var sa=E.createContext({outlet:null,matches:[],isDataRoute:!1});sa.displayName="Route";var w0=E.createContext(null);w0.displayName="RouteError";function X9(e,{relative:t}={}){zt(Us(),"useHref() may be used only in the context of a component.");let{basename:n,navigator:r}=E.useContext(Gr),{hash:a,pathname:o,search:s}=Uu(e,{relative:t}),u=o;return n!=="/"&&(u=o==="/"?n:Ua([n,o])),r.createHref({pathname:u,search:s,hash:a})}function Us(){return E.useContext(Bu)!=null}function Io(){return zt(Us(),"useLocation() may be used only in the context of a component."),E.useContext(Bu).location}var Vz="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function Wz(e){E.useContext(Gr).static||E.useLayoutEffect(e)}function qf(){let{isDataRoute:e}=E.useContext(sa);return e?uq():Z9()}function Z9(){zt(Us(),"useNavigate() may be used only in the context of a component.");let e=E.useContext(Bs),{basename:t,navigator:n}=E.useContext(Gr),{matches:r}=E.useContext(sa),{pathname:a}=Io(),o=JSON.stringify(S0(r)),s=E.useRef(!1);return Wz(()=>{s.current=!0}),E.useCallback((c,d={})=>{if(wr(s.current,Vz),!s.current)return;if(typeof c=="number"){n.go(c);return}let p=E0(c,JSON.parse(o),a,d.relative==="path");e==null&&t!=="/"&&(p.pathname=p.pathname==="/"?t:Ua([t,p.pathname])),(d.replace?n.replace:n.push)(p,d.state,d)},[t,n,o,a,e])}E.createContext(null);function Uu(e,{relative:t}={}){let{matches:n}=E.useContext(sa),{pathname:r}=Io(),a=JSON.stringify(S0(n));return E.useMemo(()=>E0(e,JSON.parse(a),r,t==="path"),[e,a,r,t])}function Q9(e,t){return Yz(e,t)}function Yz(e,t,n,r){var x;zt(Us(),"useRoutes() may be used only in the context of a component.");let{navigator:a,static:o}=E.useContext(Gr),{matches:s}=E.useContext(sa),u=s[s.length-1],c=u?u.params:{},d=u?u.pathname:"/",p=u?u.pathnameBase:"/",g=u&&u.route;{let A=g&&g.path||"";Kz(d,!g||A.endsWith("*")||A.endsWith("*?"),`You rendered descendant (or called \`useRoutes()\`) at "${d}" (under ) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render. + */var nC="popstate";function x9(e={}){function t(a,o){let{pathname:s="/",search:u="",hash:c=""}=Ei(a.location.hash.substring(1));return!s.startsWith("/")&&!s.startsWith(".")&&(s="/"+s),rk("",{pathname:s,search:u,hash:c},o.state&&o.state.usr||null,o.state&&o.state.key||"default")}function n(a,o){let s=a.document.querySelector("base"),u="";if(s&&s.getAttribute("href")){let c=a.location.href,d=c.indexOf("#");u=d===-1?c:c.slice(0,d)}return u+"#"+(typeof o=="string"?o:Eu(o))}function r(a,o){Br(a.pathname.charAt(0)==="/",`relative pathnames are not supported in hash history.push(${JSON.stringify(o)})`)}return T9(t,n,r,e)}function Gt(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function Br(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function k9(){return Math.random().toString(36).substring(2,10)}function rC(e,t){return{usr:e.state,key:e.key,idx:t}}function rk(e,t,n=null,r){return{pathname:typeof e=="string"?e:e.pathname,search:"",hash:"",...typeof t=="string"?Ei(t):t,state:n,key:t&&t.key||r||k9()}}function Eu({pathname:e="/",search:t="",hash:n=""}){return t&&t!=="?"&&(e+=t.charAt(0)==="?"?t:"?"+t),n&&n!=="#"&&(e+=n.charAt(0)==="#"?n:"#"+n),e}function Ei(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substring(n),e=e.substring(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substring(r),e=e.substring(0,r)),e&&(t.pathname=e)}return t}function T9(e,t,n,r={}){let{window:a=document.defaultView,v5Compat:o=!1}=r,s=a.history,u="POP",c=null,d=p();d==null&&(d=0,s.replaceState({...s.state,idx:d},""));function p(){return(s.state||{idx:null}).idx}function g(){u="POP";let x=p(),R=x==null?null:x-d;d=x,c&&c({action:u,location:S.location,delta:R})}function m(x,R){u="PUSH";let k=rk(S.location,x,R);n&&n(k,x),d=p()+1;let A=rC(k,d),C=S.createHref(k);try{s.pushState(A,"",C)}catch(N){if(N instanceof DOMException&&N.name==="DataCloneError")throw N;a.location.assign(C)}o&&c&&c({action:u,location:S.location,delta:1})}function b(x,R){u="REPLACE";let k=rk(S.location,x,R);n&&n(k,x),d=p();let A=rC(k,d),C=S.createHref(k);s.replaceState(A,"",C),o&&c&&c({action:u,location:S.location,delta:0})}function y(x){let R=a.location.origin!=="null"?a.location.origin:a.location.href,k=typeof x=="string"?x:Eu(x);return k=k.replace(/ $/,"%20"),Gt(R,`No window.location.(origin|href) available to create URL for href: ${k}`),new URL(k,R)}let S={get action(){return u},get location(){return e(a,s)},listen(x){if(c)throw new Error("A history only accepts one active listener");return a.addEventListener(nC,g),c=x,()=>{a.removeEventListener(nC,g),c=null}},createHref(x){return t(a,x)},createURL:y,encodeLocation(x){let R=y(x);return{pathname:R.pathname,search:R.search,hash:R.hash}},push:m,replace:b,go(x){return s.go(x)}};return S}function zz(e,t,n="/"){return A9(e,t,n,!1)}function A9(e,t,n,r){let a=typeof t=="string"?Ei(t):t,o=Ua(a.pathname||"/",n);if(o==null)return null;let s=Bz(e);R9(s);let u=null;for(let c=0;u==null&&c{let c={relativePath:u===void 0?o.path||"":u,caseSensitive:o.caseSensitive===!0,childrenIndex:s,route:o};c.relativePath.startsWith("/")&&(Gt(c.relativePath.startsWith(r),`Absolute route path "${c.relativePath}" nested under path "${r}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),c.relativePath=c.relativePath.slice(r.length));let d=za([r,c.relativePath]),p=n.concat(c);o.children&&o.children.length>0&&(Gt(o.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${d}".`),Bz(o.children,t,p,d)),!(o.path==null&&!o.index)&&t.push({path:d,score:L9(d,o.index),routesMeta:p})};return e.forEach((o,s)=>{var u;if(o.path===""||!((u=o.path)!=null&&u.includes("?")))a(o,s);else for(let c of Uz(o.path))a(o,s,c)}),t}function Uz(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,a=n.endsWith("?"),o=n.replace(/\?$/,"");if(r.length===0)return a?[o,""]:[o];let s=Uz(r.join("/")),u=[];return u.push(...s.map(c=>c===""?o:[o,c].join("/"))),a&&u.push(...s),u.map(c=>e.startsWith("/")&&c===""?"/":c)}function R9(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:M9(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}var _9=/^:[\w-]+$/,C9=3,N9=2,O9=1,D9=10,I9=-2,aC=e=>e==="*";function L9(e,t){let n=e.split("/"),r=n.length;return n.some(aC)&&(r+=I9),t&&(r+=N9),n.filter(a=>!aC(a)).reduce((a,o)=>a+(_9.test(o)?C9:o===""?O9:D9),r)}function M9(e,t){return e.length===t.length&&e.slice(0,-1).every((r,a)=>r===t[a])?e[e.length-1]-t[t.length-1]:0}function F9(e,t,n=!1){let{routesMeta:r}=e,a={},o="/",s=[];for(let u=0;u{if(p==="*"){let y=u[m]||"";s=o.slice(0,o.length-y.length).replace(/(.)\/+$/,"$1")}const b=u[m];return g&&!b?d[p]=void 0:d[p]=(b||"").replace(/%2F/g,"/"),d},{}),pathname:o,pathnameBase:s,pattern:e}}function P9(e,t=!1,n=!0){Br(e==="*"||!e.endsWith("*")||e.endsWith("/*"),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,"/*")}".`);let r=[],a="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(s,u,c)=>(r.push({paramName:u,isOptional:c!=null}),c?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),a+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?a+="\\/*$":e!==""&&e!=="/"&&(a+="(?:(?=\\/|$))"),[new RegExp(a,t?void 0:"i"),r]}function z9(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return Br(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function Ua(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&r!=="/"?null:e.slice(n)||"/"}function B9(e,t="/"){let{pathname:n,search:r="",hash:a=""}=typeof e=="string"?Ei(e):e;return{pathname:n?n.startsWith("/")?n:U9(n,t):t,search:H9(r),hash:$9(a)}}function U9(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(a=>{a===".."?n.length>1&&n.pop():a!=="."&&n.push(a)}),n.length>1?n.join("/"):"/"}function Xh(e,t,n,r){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(r)}]. Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in and the router will parse it for you.`}function j9(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function jz(e){let t=j9(e);return t.map((n,r)=>r===t.length-1?n.pathname:n.pathnameBase)}function Gz(e,t,n,r=!1){let a;typeof e=="string"?a=Ei(e):(a={...e},Gt(!a.pathname||!a.pathname.includes("?"),Xh("?","pathname","search",a)),Gt(!a.pathname||!a.pathname.includes("#"),Xh("#","pathname","hash",a)),Gt(!a.search||!a.search.includes("#"),Xh("#","search","hash",a)));let o=e===""||a.pathname==="",s=o?"/":a.pathname,u;if(s==null)u=n;else{let g=t.length-1;if(!r&&s.startsWith("..")){let m=s.split("/");for(;m[0]==="..";)m.shift(),g-=1;a.pathname=m.join("/")}u=g>=0?t[g]:"/"}let c=B9(a,u),d=s&&s!=="/"&&s.endsWith("/"),p=(o||s===".")&&n.endsWith("/");return!c.pathname.endsWith("/")&&(d||p)&&(c.pathname+="/"),c}var za=e=>e.join("/").replace(/\/\/+/g,"/"),G9=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),H9=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,$9=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function q9(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}var Hz=["POST","PUT","PATCH","DELETE"];new Set(Hz);var V9=["GET",...Hz];new Set(V9);var Bs=E.createContext(null);Bs.displayName="DataRouter";var qf=E.createContext(null);qf.displayName="DataRouterState";var $z=E.createContext({isTransitioning:!1});$z.displayName="ViewTransition";var W9=E.createContext(new Map);W9.displayName="Fetchers";var Y9=E.createContext(null);Y9.displayName="Await";var ia=E.createContext(null);ia.displayName="Navigation";var Bu=E.createContext(null);Bu.displayName="Location";var qa=E.createContext({outlet:null,matches:[],isDataRoute:!1});qa.displayName="Route";var v0=E.createContext(null);v0.displayName="RouteError";function K9(e,{relative:t}={}){Gt(Uu(),"useHref() may be used only in the context of a component.");let{basename:n,navigator:r}=E.useContext(ia),{hash:a,pathname:o,search:s}=ju(e,{relative:t}),u=o;return n!=="/"&&(u=o==="/"?n:za([n,o])),r.createHref({pathname:u,search:s,hash:a})}function Uu(){return E.useContext(Bu)!=null}function wi(){return Gt(Uu(),"useLocation() may be used only in the context of a component."),E.useContext(Bu).location}var qz="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function Vz(e){E.useContext(ia).static||E.useLayoutEffect(e)}function Vf(){let{isDataRoute:e}=E.useContext(qa);return e?lq():X9()}function X9(){Gt(Uu(),"useNavigate() may be used only in the context of a component.");let e=E.useContext(Bs),{basename:t,navigator:n}=E.useContext(ia),{matches:r}=E.useContext(qa),{pathname:a}=wi(),o=JSON.stringify(jz(r)),s=E.useRef(!1);return Vz(()=>{s.current=!0}),E.useCallback((c,d={})=>{if(Br(s.current,qz),!s.current)return;if(typeof c=="number"){n.go(c);return}let p=Gz(c,JSON.parse(o),a,d.relative==="path");e==null&&t!=="/"&&(p.pathname=p.pathname==="/"?t:za([t,p.pathname])),(d.replace?n.replace:n.push)(p,d.state,d)},[t,n,o,a,e])}E.createContext(null);function ju(e,{relative:t}={}){let{matches:n}=E.useContext(qa),{pathname:r}=wi(),a=JSON.stringify(jz(n));return E.useMemo(()=>Gz(e,JSON.parse(a),r,t==="path"),[e,a,r,t])}function Z9(e,t){return Wz(e,t)}function Wz(e,t,n,r){var k;Gt(Uu(),"useRoutes() may be used only in the context of a component.");let{navigator:a,static:o}=E.useContext(ia),{matches:s}=E.useContext(qa),u=s[s.length-1],c=u?u.params:{},d=u?u.pathname:"/",p=u?u.pathnameBase:"/",g=u&&u.route;{let A=g&&g.path||"";Yz(d,!g||A.endsWith("*")||A.endsWith("*?"),`You rendered descendant (or called \`useRoutes()\`) at "${d}" (under ) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render. -Please change the parent to .`)}let m=Io(),b;if(t){let A=typeof t=="string"?wi(t):t;zt(p==="/"||((x=A.pathname)==null?void 0:x.startsWith(p)),`When overriding the location using \`\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${p}" but pathname "${A.pathname}" was given in the \`location\` prop.`),b=A}else b=m;let y=b.pathname||"/",S=y;if(p!=="/"){let A=p.replace(/^\//,"").split("/");S="/"+y.replace(/^\//,"").split("/").slice(A.length).join("/")}let k=!o&&n&&n.matches&&n.matches.length>0?n.matches:jz(e,{pathname:S});wr(g||k!=null,`No routes matched location "${b.pathname}${b.search}${b.hash}" `),wr(k==null||k[k.length-1].route.element!==void 0||k[k.length-1].route.Component!==void 0||k[k.length-1].route.lazy!==void 0,`Matched leaf route at location "${b.pathname}${b.search}${b.hash}" does not have an element or Component. This means it will render an with a null value by default resulting in an "empty" page.`);let R=rq(k&&k.map(A=>Object.assign({},A,{params:Object.assign({},c,A.params),pathname:Ua([p,a.encodeLocation?a.encodeLocation(A.pathname).pathname:A.pathname]),pathnameBase:A.pathnameBase==="/"?p:Ua([p,a.encodeLocation?a.encodeLocation(A.pathnameBase).pathname:A.pathnameBase])})),s,n,r);return t&&R?E.createElement(Bu.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",...b},navigationType:"POP"}},R):R}function J9(){let e=lq(),t=V9(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,r="rgba(200,200,200, 0.5)",a={padding:"0.5rem",backgroundColor:r},o={padding:"2px 4px",backgroundColor:r},s=null;return console.error("Error handled by React Router default ErrorBoundary:",e),s=E.createElement(E.Fragment,null,E.createElement("p",null,"💿 Hey developer 👋"),E.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",E.createElement("code",{style:o},"ErrorBoundary")," or"," ",E.createElement("code",{style:o},"errorElement")," prop on your route.")),E.createElement(E.Fragment,null,E.createElement("h2",null,"Unexpected Application Error!"),E.createElement("h3",{style:{fontStyle:"italic"}},t),n?E.createElement("pre",{style:a},n):null,s)}var eq=E.createElement(J9,null),tq=class extends E.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){console.error("React Router caught the following error during render",e,t)}render(){return this.state.error!==void 0?E.createElement(sa.Provider,{value:this.props.routeContext},E.createElement(w0.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};function nq({routeContext:e,match:t,children:n}){let r=E.useContext(Bs);return r&&r.static&&r.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=t.route.id),E.createElement(sa.Provider,{value:e},n)}function rq(e,t=[],n=null,r=null){if(e==null){if(!n)return null;if(n.errors)e=n.matches;else if(t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let a=e,o=n==null?void 0:n.errors;if(o!=null){let c=a.findIndex(d=>d.route.id&&(o==null?void 0:o[d.route.id])!==void 0);zt(c>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(o).join(",")}`),a=a.slice(0,Math.min(a.length,c+1))}let s=!1,u=-1;if(n)for(let c=0;c=0?a=a.slice(0,u+1):a=[a[0]];break}}}return a.reduceRight((c,d,p)=>{let g,m=!1,b=null,y=null;n&&(g=o&&d.route.id?o[d.route.id]:void 0,b=d.route.errorElement||eq,s&&(u<0&&p===0?(Kz("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),m=!0,y=null):u===p&&(m=!0,y=d.route.hydrateFallbackElement||null)));let S=t.concat(a.slice(0,p+1)),k=()=>{let R;return g?R=b:m?R=y:d.route.Component?R=E.createElement(d.route.Component,null):d.route.element?R=d.route.element:R=c,E.createElement(nq,{match:d,routeContext:{outlet:c,matches:S,isDataRoute:n!=null},children:R})};return n&&(d.route.ErrorBoundary||d.route.errorElement||p===0)?E.createElement(tq,{location:n.location,revalidation:n.revalidation,component:b,error:g,children:k(),routeContext:{outlet:null,matches:S,isDataRoute:!0}}):k()},null)}function x0(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function aq(e){let t=E.useContext(Bs);return zt(t,x0(e)),t}function oq(e){let t=E.useContext($f);return zt(t,x0(e)),t}function iq(e){let t=E.useContext(sa);return zt(t,x0(e)),t}function k0(e){let t=iq(e),n=t.matches[t.matches.length-1];return zt(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function sq(){return k0("useRouteId")}function lq(){var r;let e=E.useContext(w0),t=oq("useRouteError"),n=k0("useRouteError");return e!==void 0?e:(r=t.errors)==null?void 0:r[n]}function uq(){let{router:e}=aq("useNavigate"),t=k0("useNavigate"),n=E.useRef(!1);return Wz(()=>{n.current=!0}),E.useCallback(async(a,o={})=>{wr(n.current,Vz),n.current&&(typeof a=="number"?e.navigate(a):await e.navigate(a,{fromRouteId:t,...o}))},[e,t])}var lC={};function Kz(e,t,n){!t&&!lC[e]&&(lC[e]=!0,wr(!1,n))}E.memo(cq);function cq({routes:e,future:t,state:n}){return Yz(e,void 0,n,t)}function dq({to:e,replace:t,state:n,relative:r}){zt(Us()," may be used only in the context of a component.");let{static:a}=E.useContext(Gr);wr(!a," must not be used on the initial render in a . This is a no-op, but you should modify your code so the is only ever rendered in response to some user interaction or state change.");let{matches:o}=E.useContext(sa),{pathname:s}=Io(),u=qf(),c=E0(e,S0(o),s,r==="path"),d=JSON.stringify(c);return E.useEffect(()=>{u(JSON.parse(d),{replace:t,state:n,relative:r})},[u,d,r,t,n]),null}function ak(e){zt(!1,"A is only ever to be used as the child of element, never rendered directly. Please wrap your in a .")}function fq({basename:e="/",children:t=null,location:n,navigationType:r="POP",navigator:a,static:o=!1}){zt(!Us(),"You cannot render a inside another . You should never have more than one in your app.");let s=e.replace(/^\/*/,"/"),u=E.useMemo(()=>({basename:s,navigator:a,static:o,future:{}}),[s,a,o]);typeof n=="string"&&(n=wi(n));let{pathname:c="/",search:d="",hash:p="",state:g=null,key:m="default"}=n,b=E.useMemo(()=>{let y=Ga(c,s);return y==null?null:{location:{pathname:y,search:d,hash:p,state:g,key:m},navigationType:r}},[s,c,d,p,g,m,r]);return wr(b!=null,` is not able to match the URL "${c}${d}${p}" because it does not start with the basename, so the won't render anything.`),b==null?null:E.createElement(Gr.Provider,{value:u},E.createElement(Bu.Provider,{children:t,value:b}))}function pq({children:e,location:t}){return Q9(ok(e),t)}function ok(e,t=[]){let n=[];return E.Children.forEach(e,(r,a)=>{if(!E.isValidElement(r))return;let o=[...t,a];if(r.type===E.Fragment){n.push.apply(n,ok(r.props.children,o));return}zt(r.type===ak,`[${typeof r.type=="string"?r.type:r.type.name}] is not a component. All component children of must be a or `),zt(!r.props.index||!r.props.children,"An index route cannot have child routes.");let s={id:r.props.id||o.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,loader:r.props.loader,action:r.props.action,hydrateFallbackElement:r.props.hydrateFallbackElement,HydrateFallback:r.props.HydrateFallback,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.hasErrorBoundary===!0||r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(s.children=ok(r.props.children,o)),n.push(s)}),n}var $d="get",qd="application/x-www-form-urlencoded";function Vf(e){return e!=null&&typeof e.tagName=="string"}function gq(e){return Vf(e)&&e.tagName.toLowerCase()==="button"}function hq(e){return Vf(e)&&e.tagName.toLowerCase()==="form"}function mq(e){return Vf(e)&&e.tagName.toLowerCase()==="input"}function bq(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function yq(e,t){return e.button===0&&(!t||t==="_self")&&!bq(e)}var pd=null;function vq(){if(pd===null)try{new FormData(document.createElement("form"),0),pd=!1}catch{pd=!0}return pd}var Sq=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function Zh(e){return e!=null&&!Sq.has(e)?(wr(!1,`"${e}" is not a valid \`encType\` for \`
\`/\`\` and will default to "${qd}"`),null):e}function Eq(e,t){let n,r,a,o,s;if(hq(e)){let u=e.getAttribute("action");r=u?Ga(u,t):null,n=e.getAttribute("method")||$d,a=Zh(e.getAttribute("enctype"))||qd,o=new FormData(e)}else if(gq(e)||mq(e)&&(e.type==="submit"||e.type==="image")){let u=e.form;if(u==null)throw new Error('Cannot submit a diff --git a/lightrag_webui/src/components/graph/GraphLabels.tsx b/lightrag_webui/src/components/graph/GraphLabels.tsx index 606a2d60..305f63bd 100644 --- a/lightrag_webui/src/components/graph/GraphLabels.tsx +++ b/lightrag_webui/src/components/graph/GraphLabels.tsx @@ -18,7 +18,7 @@ const GraphLabels = () => { // Track if a fetch is in progress to prevent multiple simultaneous fetches const fetchInProgressRef = useRef(false) - // Fetch labels once on component mount, using global flag to prevent duplicates + // Fetch labels and trigger initial data load useEffect(() => { // Check if we've already attempted to fetch labels in this session const labelsFetchAttempted = useGraphStore.getState().labelsFetchAttempted @@ -29,8 +29,6 @@ const GraphLabels = () => { // Set global flag to indicate we've attempted to fetch in this session useGraphStore.getState().setLabelsFetchAttempted(true) - console.log('Fetching graph labels (once per session)...') - useGraphStore.getState().fetchAllDatabaseLabels() .then(() => { labelsLoadedRef.current = true @@ -45,6 +43,14 @@ const GraphLabels = () => { } }, []) // Empty dependency array ensures this only runs once on mount + // Trigger data load when labels are loaded + useEffect(() => { + if (labelsLoadedRef.current) { + // Reset the fetch attempted flag to force a new data fetch + useGraphStore.getState().setGraphDataFetchAttempted(false) + } + }, [label]) + const getSearchEngine = useCallback(() => { // Create search engine const searchEngine = new MiniSearch({ @@ -87,13 +93,25 @@ const GraphLabels = () => { ) const handleRefresh = useCallback(() => { - const currentLabel = useSettingsStore.getState().queryLabel + // Reset labels fetch status to allow fetching labels again + useGraphStore.getState().setLabelsFetchAttempted(false) + // Reset graph data fetch status directly, not depending on allDatabaseLabels changes useGraphStore.getState().setGraphDataFetchAttempted(false) - useGraphStore.getState().reset() - - useSettingsStore.getState().setQueryLabel(currentLabel) + // Fetch all labels again + useGraphStore.getState().fetchAllDatabaseLabels() + .then(() => { + // Trigger a graph data reload by changing the query label back and forth + const currentLabel = useSettingsStore.getState().queryLabel + useSettingsStore.getState().setQueryLabel('') + setTimeout(() => { + useSettingsStore.getState().setQueryLabel(currentLabel) + }, 0) + }) + .catch((error) => { + console.error('Failed to refresh labels:', error) + }) }, []) return ( @@ -130,22 +148,13 @@ const GraphLabels = () => { newLabel = '*' } - // Reset the fetch attempted flag to force a new data fetch - useGraphStore.getState().setGraphDataFetchAttempted(false) - - // Clear current graph data to ensure complete reload when label changes - if (newLabel !== currentLabel) { - const graphStore = useGraphStore.getState(); - // Reset the all graph objects and status - graphStore.reset(); - } - + // Handle reselecting the same label if (newLabel === currentLabel && newLabel !== '*') { - // reselect the same itme means qery all - useSettingsStore.getState().setQueryLabel('*') - } else { - useSettingsStore.getState().setQueryLabel(newLabel) + newLabel = '*' } + + // Update the label, which will trigger the useEffect to handle data loading + useSettingsStore.getState().setQueryLabel(newLabel) }} clearable={false} // Prevent clearing value on reselect /> diff --git a/lightrag_webui/src/components/graph/PropertiesView.tsx b/lightrag_webui/src/components/graph/PropertiesView.tsx index f7a61583..627049ea 100644 --- a/lightrag_webui/src/components/graph/PropertiesView.tsx +++ b/lightrag_webui/src/components/graph/PropertiesView.tsx @@ -218,20 +218,20 @@ const NodePropertiesView = ({ node }: { node: NodeType }) => { diff --git a/lightrag_webui/src/components/graph/Settings.tsx b/lightrag_webui/src/components/graph/Settings.tsx index a7fe84ab..1989a01e 100644 --- a/lightrag_webui/src/components/graph/Settings.tsx +++ b/lightrag_webui/src/components/graph/Settings.tsx @@ -1,4 +1,4 @@ -import { useState, useCallback, useEffect } from 'react' +import { useState, useCallback} from 'react' import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/Popover' import Checkbox from '@/components/ui/Checkbox' import Button from '@/components/ui/Button' @@ -7,7 +7,6 @@ import Input from '@/components/ui/Input' import { controlButtonVariant } from '@/lib/constants' import { useSettingsStore } from '@/stores/settings' -import { useBackendState } from '@/stores/state' import { SettingsIcon } from 'lucide-react' import { useTranslation } from 'react-i18next'; @@ -113,7 +112,6 @@ const LabeledNumberInput = ({ */ export default function Settings() { const [opened, setOpened] = useState(false) - const [tempApiKey, setTempApiKey] = useState('') const showPropertyPanel = useSettingsStore.use.showPropertyPanel() const showNodeSearchBar = useSettingsStore.use.showNodeSearchBar() @@ -127,11 +125,6 @@ export default function Settings() { const graphLayoutMaxIterations = useSettingsStore.use.graphLayoutMaxIterations() const enableHealthCheck = useSettingsStore.use.enableHealthCheck() - const apiKey = useSettingsStore.use.apiKey() - - useEffect(() => { - setTempApiKey(apiKey || '') - }, [apiKey, opened]) const setEnableNodeDrag = useCallback( () => useSettingsStore.setState((pre) => ({ enableNodeDrag: !pre.enableNodeDrag })), @@ -180,11 +173,22 @@ export default function Settings() { const setGraphQueryMaxDepth = useCallback((depth: number) => { if (depth < 1) return useSettingsStore.setState({ graphQueryMaxDepth: depth }) + const currentLabel = useSettingsStore.getState().queryLabel + useSettingsStore.getState().setQueryLabel('') + setTimeout(() => { + useSettingsStore.getState().setQueryLabel(currentLabel) + }, 300) }, []) const setGraphMinDegree = useCallback((degree: number) => { if (degree < 0) return useSettingsStore.setState({ graphMinDegree: degree }) + const currentLabel = useSettingsStore.getState().queryLabel + useSettingsStore.getState().setQueryLabel('') + setTimeout(() => { + useSettingsStore.getState().setQueryLabel(currentLabel) + }, 300) + }, []) const setGraphLayoutMaxIterations = useCallback((iterations: number) => { @@ -192,26 +196,19 @@ export default function Settings() { useSettingsStore.setState({ graphLayoutMaxIterations: iterations }) }, []) - const setApiKey = useCallback(async () => { - useSettingsStore.setState({ apiKey: tempApiKey || null }) - await useBackendState.getState().check() - setOpened(false) - }, [tempApiKey]) - - const handleTempApiKeyChange = useCallback( - (e: React.ChangeEvent) => { - setTempApiKey(e.target.value) - }, - [setTempApiKey] - ) - const { t } = useTranslation(); + const saveSettings = () => setOpened(false); + return ( <> - @@ -293,30 +290,15 @@ export default function Settings() { onEditFinished={setGraphLayoutMaxIterations} /> + -
- - e.preventDefault()}> -
- -
- - -
diff --git a/lightrag_webui/src/components/graph/SettingsDisplay.tsx b/lightrag_webui/src/components/graph/SettingsDisplay.tsx index 7e63dd98..dec44c11 100644 --- a/lightrag_webui/src/components/graph/SettingsDisplay.tsx +++ b/lightrag_webui/src/components/graph/SettingsDisplay.tsx @@ -11,7 +11,7 @@ const SettingsDisplay = () => { const graphMinDegree = useSettingsStore.use.graphMinDegree() return ( -
+
{t('graphPanel.sideBar.settings.depth')}: {graphQueryMaxDepth}
{t('graphPanel.sideBar.settings.degree')}: {graphMinDegree}
diff --git a/lightrag_webui/src/features/DocumentManager.tsx b/lightrag_webui/src/features/DocumentManager.tsx index cfe3c894..9f09678d 100644 --- a/lightrag_webui/src/features/DocumentManager.tsx +++ b/lightrag_webui/src/features/DocumentManager.tsx @@ -1,6 +1,6 @@ -import { useState, useEffect, useCallback, useRef } from 'react' +import { useState, useEffect, useCallback } from 'react' import { useTranslation } from 'react-i18next' -import { useTabVisibility } from '@/contexts/useTabVisibility' +import { useSettingsStore } from '@/stores/settings' import Button from '@/components/ui/Button' import { Table, @@ -27,9 +27,7 @@ export default function DocumentManager() { const { t } = useTranslation() const health = useBackendState.use.health() const [docs, setDocs] = useState(null) - const { isTabVisible } = useTabVisibility() - const isDocumentsTabVisible = isTabVisible('documents') - const initialLoadRef = useRef(false) + const currentTab = useSettingsStore.use.currentTab() const fetchDocuments = useCallback(async () => { try { @@ -53,13 +51,12 @@ export default function DocumentManager() { } }, [setDocs, t]) - // Only fetch documents when the tab becomes visible for the first time + // Fetch documents when the tab becomes visible useEffect(() => { - if (isDocumentsTabVisible && !initialLoadRef.current) { + if (currentTab === 'documents') { fetchDocuments() - initialLoadRef.current = true } - }, [isDocumentsTabVisible, fetchDocuments]) + }, [currentTab, fetchDocuments]) const scanDocuments = useCallback(async () => { try { @@ -70,9 +67,9 @@ export default function DocumentManager() { } }, [t]) - // Only set up polling when the tab is visible and health is good + // Set up polling when the documents tab is active and health is good useEffect(() => { - if (!isDocumentsTabVisible || !health) { + if (currentTab !== 'documents' || !health) { return } @@ -85,7 +82,7 @@ export default function DocumentManager() { }, 5000) return () => clearInterval(interval) - }, [health, fetchDocuments, t, isDocumentsTabVisible]) + }, [health, fetchDocuments, t, currentTab]) return ( diff --git a/lightrag_webui/src/features/GraphViewer.tsx b/lightrag_webui/src/features/GraphViewer.tsx index 819d9625..9d46af55 100644 --- a/lightrag_webui/src/features/GraphViewer.tsx +++ b/lightrag_webui/src/features/GraphViewer.tsx @@ -1,5 +1,4 @@ import { useEffect, useState, useCallback, useMemo, useRef } from 'react' -import { useTabVisibility } from '@/contexts/useTabVisibility' // import { MiniMap } from '@react-sigma/minimap' import { SigmaContainer, useRegisterEvents, useSigma } from '@react-sigma/core' import { Settings as SigmaSettings } from 'sigma/settings' @@ -108,52 +107,39 @@ const GraphEvents = () => { const GraphViewer = () => { const [sigmaSettings, setSigmaSettings] = useState(defaultSigmaSettings) const sigmaRef = useRef(null) - const initAttemptedRef = useRef(false) const selectedNode = useGraphStore.use.selectedNode() const focusedNode = useGraphStore.use.focusedNode() const moveToSelectedNode = useGraphStore.use.moveToSelectedNode() const isFetching = useGraphStore.use.isFetching() - const shouldRender = useGraphStore.use.shouldRender() // Rendering control state - - // Get tab visibility - const { isTabVisible } = useTabVisibility() - const isGraphTabVisible = isTabVisible('knowledge-graph') const showPropertyPanel = useSettingsStore.use.showPropertyPanel() const showNodeSearchBar = useSettingsStore.use.showNodeSearchBar() const enableNodeDrag = useSettingsStore.use.enableNodeDrag() - // Handle component mount/unmount and tab visibility - useEffect(() => { - // When component mounts or tab becomes visible - if (isGraphTabVisible && !shouldRender && !isFetching && !initAttemptedRef.current) { - // If tab is visible but graph is not rendering, try to enable rendering - useGraphStore.getState().setShouldRender(true) - initAttemptedRef.current = true - console.log('Graph viewer initialized') - } - - // Cleanup function when component unmounts - return () => { - // Only log cleanup, don't actually clean up the WebGL context - // This allows the WebGL context to persist across tab switches - console.log('Graph viewer cleanup') - } - }, [isGraphTabVisible, shouldRender, isFetching]) - // Initialize sigma settings once on component mount // All dynamic settings will be updated in GraphControl using useSetSettings useEffect(() => { setSigmaSettings(defaultSigmaSettings) + console.log('Initialized sigma settings') }, []) // Clean up sigma instance when component unmounts useEffect(() => { return () => { - // Clear the sigma instance when component unmounts - useGraphStore.getState().setSigmaInstance(null); - console.log('Cleared sigma instance on unmount'); + // TAB is mount twice in vite dev mode, this is a workaround + + const sigma = useGraphStore.getState().sigmaInstance; + if (sigma) { + try { + // Destroy sigma,and clear WebGL context + sigma.kill(); + useGraphStore.getState().setSigmaInstance(null); + console.log('Cleared sigma instance on Graphviewer unmount'); + } catch (error) { + console.error('Error cleaning up sigma instance:', error); + } + } }; }, []); diff --git a/lightrag_webui/src/features/LoginPage.tsx b/lightrag_webui/src/features/LoginPage.tsx index 485ed8ae..c5cccf5f 100644 --- a/lightrag_webui/src/features/LoginPage.tsx +++ b/lightrag_webui/src/features/LoginPage.tsx @@ -4,7 +4,6 @@ import { useAuthStore } from '@/stores/state' import { loginToServer, getAuthStatus } from '@/api/lightrag' import { toast } from 'sonner' import { useTranslation } from 'react-i18next' - import { Card, CardContent, CardHeader } from '@/components/ui/Card' import Input from '@/components/ui/Input' import Button from '@/components/ui/Button' @@ -20,7 +19,11 @@ const LoginPage = () => { const [password, setPassword] = useState('') const [checkingAuth, setCheckingAuth] = useState(true) - // Check if authentication is configured + useEffect(() => { + console.log('LoginPage mounted') + }, []); + + // Check if authentication is configured, skip login if not useEffect(() => { let isMounted = true; // Flag to prevent state updates after unmount @@ -45,7 +48,7 @@ const LoginPage = () => { toast.info(status.message) } navigate('/') - return; // Exit early, no need to set checkingAuth to false + return // Exit early, no need to set checkingAuth to false } } catch (error) { console.error('Failed to check auth configuration:', error) @@ -93,10 +96,16 @@ const LoginPage = () => { toast.success(t('login.successMessage')) } + // Navigate to home page after successful login navigate('/') } catch (error) { console.error('Login failed...', error) toast.error(t('login.errorInvalidCredentials')) + + // Clear any existing auth state + useAuthStore.getState().logout() + // Clear local storage + localStorage.removeItem('LIGHTRAG-API-TOKEN') } finally { setLoading(false) } diff --git a/lightrag_webui/src/features/SiteHeader.tsx b/lightrag_webui/src/features/SiteHeader.tsx index b25b833e..c0b130fe 100644 --- a/lightrag_webui/src/features/SiteHeader.tsx +++ b/lightrag_webui/src/features/SiteHeader.tsx @@ -6,8 +6,7 @@ import { useSettingsStore } from '@/stores/settings' import { useAuthStore } from '@/stores/state' import { cn } from '@/lib/utils' import { useTranslation } from 'react-i18next' -import { useNavigate } from 'react-router-dom' - +import { navigationService } from '@/services/navigation' import { ZapIcon, GithubIcon, LogOutIcon } from 'lucide-react' interface NavigationTabProps { @@ -56,12 +55,10 @@ function TabsNavigation() { export default function SiteHeader() { const { t } = useTranslation() - const navigate = useNavigate() - const { logout, isGuestMode } = useAuthStore() + const { isGuestMode } = useAuthStore() const handleLogout = () => { - logout() - navigate('/login') + navigationService.navigateToLogin(); } return ( diff --git a/lightrag_webui/src/hooks/useLightragGraph.tsx b/lightrag_webui/src/hooks/useLightragGraph.tsx index af5ab041..f83d396d 100644 --- a/lightrag_webui/src/hooks/useLightragGraph.tsx +++ b/lightrag_webui/src/hooks/useLightragGraph.tsx @@ -8,7 +8,6 @@ import { toast } from 'sonner' import { queryGraphs } from '@/api/lightrag' import { useBackendState } from '@/stores/state' import { useSettingsStore } from '@/stores/settings' -import { useTabVisibility } from '@/contexts/useTabVisibility' import seedrandom from 'seedrandom' @@ -190,23 +189,10 @@ const useLightrangeGraph = () => { const nodeToExpand = useGraphStore.use.nodeToExpand() const nodeToPrune = useGraphStore.use.nodeToPrune() - // Get tab visibility - const { isTabVisible } = useTabVisibility() - const isGraphTabVisible = isTabVisible('knowledge-graph') - - // Track previous parameters to detect actual changes - const prevParamsRef = useRef({ queryLabel, maxQueryDepth, minDegree }) - // Use ref to track if data has been loaded and initial load const dataLoadedRef = useRef(false) const initialLoadRef = useRef(false) - // Check if parameters have changed - const paramsChanged = - prevParamsRef.current.queryLabel !== queryLabel || - prevParamsRef.current.maxQueryDepth !== maxQueryDepth || - prevParamsRef.current.minDegree !== minDegree - const getNode = useCallback( (nodeId: string) => { return rawGraph?.getNode(nodeId) || null @@ -224,43 +210,33 @@ const useLightrangeGraph = () => { // Track if a fetch is in progress to prevent multiple simultaneous fetches const fetchInProgressRef = useRef(false) - // Data fetching logic - simplified but preserving TAB visibility check + // Reset graph when query label is cleared useEffect(() => { - // Skip if fetch is already in progress - if (fetchInProgressRef.current) { - return - } - - // If there's no query label, reset the graph - if (!queryLabel) { - if (rawGraph !== null || sigmaGraph !== null) { - const state = useGraphStore.getState() - state.reset() - state.setGraphDataFetchAttempted(false) - state.setLabelsFetchAttempted(false) - } + if (!queryLabel && (rawGraph !== null || sigmaGraph !== null)) { + const state = useGraphStore.getState() + state.reset() + state.setGraphDataFetchAttempted(false) + state.setLabelsFetchAttempted(false) dataLoadedRef.current = false initialLoadRef.current = false + } + }, [queryLabel, rawGraph, sigmaGraph]) + + // Data fetching logic + useEffect(() => { + // Skip if fetch is already in progress or no query label + if (fetchInProgressRef.current || !queryLabel) { return } - // Check if parameters have changed - if (!isFetching && !fetchInProgressRef.current && - (paramsChanged || !useGraphStore.getState().graphDataFetchAttempted)) { - - // Only fetch data if the Graph tab is visible and we haven't attempted a fetch yet - if (!isGraphTabVisible) { - console.log('Graph tab not visible, skipping data fetch'); - return; - } - + // Only fetch data when graphDataFetchAttempted is false (avoids re-fetching on vite dev mode) + if (!isFetching && !useGraphStore.getState().graphDataFetchAttempted) { // Set flags fetchInProgressRef.current = true useGraphStore.getState().setGraphDataFetchAttempted(true) const state = useGraphStore.getState() state.setIsFetching(true) - state.setShouldRender(false) // Disable rendering during data loading // Clear selection and highlighted nodes before fetching new graph state.clearSelection() @@ -270,9 +246,6 @@ const useLightrangeGraph = () => { }) } - // Update parameter reference - prevParamsRef.current = { queryLabel, maxQueryDepth, minDegree } - console.log('Fetching graph data...') // Use a local copy of the parameters @@ -295,8 +268,6 @@ const useLightrangeGraph = () => { state.setSigmaGraph(newSigmaGraph) state.setRawGraph(data) - // No longer need to extract labels from graph data - // Update flags dataLoadedRef.current = true initialLoadRef.current = true @@ -305,8 +276,6 @@ const useLightrangeGraph = () => { // Reset camera view state.setMoveToSelectedNode(true) - // Enable rendering if the tab is visible - state.setShouldRender(isGraphTabVisible) state.setIsFetching(false) }).catch((error) => { console.error('Error fetching graph data:', error) @@ -314,29 +283,12 @@ const useLightrangeGraph = () => { // Reset state on error const state = useGraphStore.getState() state.setIsFetching(false) - state.setShouldRender(isGraphTabVisible) dataLoadedRef.current = false fetchInProgressRef.current = false state.setGraphDataFetchAttempted(false) }) } - }, [queryLabel, maxQueryDepth, minDegree, isFetching, paramsChanged, isGraphTabVisible, rawGraph, sigmaGraph]) - - // Update rendering state and handle tab visibility changes - useEffect(() => { - // When tab becomes visible - if (isGraphTabVisible) { - // If we have data, enable rendering - if (rawGraph) { - useGraphStore.getState().setShouldRender(true) - } - - // We no longer reset the fetch attempted flag here to prevent continuous API calls - } else { - // When tab becomes invisible, disable rendering - useGraphStore.getState().setShouldRender(false) - } - }, [isGraphTabVisible, rawGraph]) + }, [queryLabel, maxQueryDepth, minDegree, isFetching]) // Handle node expansion useEffect(() => { diff --git a/lightrag_webui/src/locales/zh.json b/lightrag_webui/src/locales/zh.json index 6049db62..19839ea6 100644 --- a/lightrag_webui/src/locales/zh.json +++ b/lightrag_webui/src/locales/zh.json @@ -99,7 +99,7 @@ "hideUnselectedEdges": "隐藏未选中的边", "edgeEvents": "边事件", "maxQueryDepth": "最大查询深度", - "minDegree": "最小度数", + "minDegree": "最小邻边数", "maxLayoutIterations": "最大布局迭代次数", "depth": "深度", "degree": "邻边", diff --git a/lightrag_webui/src/services/navigation.ts b/lightrag_webui/src/services/navigation.ts index 88f286ee..d06c86c4 100644 --- a/lightrag_webui/src/services/navigation.ts +++ b/lightrag_webui/src/services/navigation.ts @@ -1,4 +1,7 @@ import { NavigateFunction } from 'react-router-dom'; +import { useAuthStore, useBackendState } from '@/stores/state'; +import { useGraphStore } from '@/stores/graph'; +import { useSettingsStore } from '@/stores/settings'; class NavigationService { private navigate: NavigateFunction | null = null; @@ -7,11 +10,81 @@ class NavigationService { this.navigate = navigate; } - navigateToLogin() { - if (this.navigate) { - this.navigate('/login'); + /** + * Reset all application state to ensure a clean environment. + * This function should be called when: + * 1. User logs out + * 2. Authentication token expires + * 3. Direct access to login page + */ + resetAllApplicationState() { + console.log('Resetting all application state...'); + + // Reset graph state + const graphStore = useGraphStore.getState(); + const sigma = graphStore.sigmaInstance; + graphStore.reset(); + graphStore.setGraphDataFetchAttempted(false); + graphStore.setLabelsFetchAttempted(false); + graphStore.setSigmaInstance(null); + graphStore.setIsFetching(false); // Reset isFetching state to prevent data loading issues + + // Reset backend state + useBackendState.getState().clear(); + + // Reset retrieval history while preserving other user preferences + useSettingsStore.getState().setRetrievalHistory([]); + + // Clear authentication state + sessionStorage.clear(); + + if (sigma) { + sigma.getGraph().clear(); + sigma.kill(); + useGraphStore.getState().setSigmaInstance(null); } } + + /** + * Handle direct access to login page + * @returns true if it's a direct access, false if navigated from another page + */ + handleDirectLoginAccess() { + const isDirectAccess = !document.referrer; + if (isDirectAccess) { + this.resetAllApplicationState(); + } + return isDirectAccess; + } + + /** + * Navigate to login page and reset application state + * @param skipReset whether to skip state reset (used for direct access scenario where reset is already handled) + */ + navigateToLogin() { + if (!this.navigate) { + console.error('Navigation function not set'); + return; + } + + // First navigate to login page + this.navigate('/login'); + + // Then reset state after navigation + setTimeout(() => { + this.resetAllApplicationState(); + useAuthStore.getState().logout(); + }, 0); + } + + navigateToHome() { + if (!this.navigate) { + console.error('Navigation function not set'); + return; + } + + this.navigate('/'); + } } export const navigationService = new NavigationService(); diff --git a/lightrag_webui/src/stores/graph.ts b/lightrag_webui/src/stores/graph.ts index efff20ae..637a3845 100644 --- a/lightrag_webui/src/stores/graph.ts +++ b/lightrag_webui/src/stores/graph.ts @@ -74,7 +74,6 @@ interface GraphState { moveToSelectedNode: boolean isFetching: boolean - shouldRender: boolean // Global flags to track data fetching attempts graphDataFetchAttempted: boolean @@ -95,7 +94,6 @@ interface GraphState { setAllDatabaseLabels: (labels: string[]) => void fetchAllDatabaseLabels: () => Promise setIsFetching: (isFetching: boolean) => void - setShouldRender: (shouldRender: boolean) => void // 搜索引擎方法 setSearchEngine: (engine: MiniSearch | null) => void @@ -122,7 +120,6 @@ const useGraphStoreBase = create()((set) => ({ moveToSelectedNode: false, isFetching: false, - shouldRender: false, // Initialize global flags graphDataFetchAttempted: false, @@ -137,7 +134,6 @@ const useGraphStoreBase = create()((set) => ({ setIsFetching: (isFetching: boolean) => set({ isFetching }), - setShouldRender: (shouldRender: boolean) => set({ shouldRender }), setSelectedNode: (nodeId: string | null, moveToSelectedNode?: boolean) => set({ selectedNode: nodeId, moveToSelectedNode }), setFocusedNode: (nodeId: string | null) => set({ focusedNode: nodeId }), @@ -159,8 +155,7 @@ const useGraphStoreBase = create()((set) => ({ rawGraph: null, sigmaGraph: null, // to avoid other components from acccessing graph objects searchEngine: null, - moveToSelectedNode: false, - shouldRender: false + moveToSelectedNode: false }); }, diff --git a/lightrag_webui/src/stores/state.ts b/lightrag_webui/src/stores/state.ts index 2117b003..5a24e72a 100644 --- a/lightrag_webui/src/stores/state.ts +++ b/lightrag_webui/src/stores/state.ts @@ -18,11 +18,9 @@ interface BackendState { interface AuthState { isAuthenticated: boolean; - showLoginModal: boolean; isGuestMode: boolean; // Add guest mode flag login: (token: string, isGuest?: boolean) => void; logout: () => void; - setShowLoginModal: (show: boolean) => void; } const useBackendStateStoreBase = create()((set) => ({ @@ -104,14 +102,12 @@ export const useAuthStore = create(set => { return { isAuthenticated: initialState.isAuthenticated, - showLoginModal: false, isGuestMode: initialState.isGuestMode, login: (token, isGuest = false) => { localStorage.setItem('LIGHTRAG-API-TOKEN', token); set({ isAuthenticated: true, - showLoginModal: false, isGuestMode: isGuest }); }, @@ -122,8 +118,6 @@ export const useAuthStore = create(set => { isAuthenticated: false, isGuestMode: false }); - }, - - setShowLoginModal: (show) => set({ showLoginModal: show }) + } }; });