From 955b613527d9dee501a097dc5f00038b4183d6c7 Mon Sep 17 00:00:00 2001 From: legop3 Date: Thu, 28 May 2026 16:12:42 -0400 Subject: [PATCH] reboot your own rover --- server/index.js | 1 + server/public/assets/index-BEU30yxg.js | 125 ------------------ server/public/assets/index-BGy4iG0w.css | 1 - server/public/assets/index-BsongPZ9.css | 1 + server/public/assets/index-IYeJHM9w.js | 125 ++++++++++++++++++ server/public/index.html | 4 +- .../integrations/busEvents.js | 8 ++ .../src/services/roverRebootService/index.js | 76 +++++++++++ .../src/components/RoverQueuesPanel/index.jsx | 40 +++++- webui/src/context/SessionContext.jsx | 1 + 10 files changed, 252 insertions(+), 130 deletions(-) delete mode 100644 server/public/assets/index-BEU30yxg.js delete mode 100644 server/public/assets/index-BGy4iG0w.css create mode 100644 server/public/assets/index-BsongPZ9.css create mode 100644 server/public/assets/index-IYeJHM9w.js create mode 100644 server/src/services/roverRebootService/index.js diff --git a/server/index.js b/server/index.js index 5f7a37ee..161e1c3e 100644 --- a/server/index.js +++ b/server/index.js @@ -15,6 +15,7 @@ require('./src/services/roverManager'); require('./src/services/commandService'); require('./src/services/roverConnectionService'); require('./src/services/assignmentService'); +require('./src/services/roverRebootService'); require('./src/services/nicknameService'); require('./src/services/verificationService'); require('./src/services/privateRoverAccessRequestService'); diff --git a/server/public/assets/index-BEU30yxg.js b/server/public/assets/index-BEU30yxg.js deleted file mode 100644 index cc0dc786..00000000 --- a/server/public/assets/index-BEU30yxg.js +++ /dev/null @@ -1,125 +0,0 @@ -(function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const h of document.querySelectorAll('link[rel="modulepreload"]'))o(h);new MutationObserver(h=>{for(const f of h)if(f.type==="childList")for(const m of f.addedNodes)m.tagName==="LINK"&&m.rel==="modulepreload"&&o(m)}).observe(document,{childList:!0,subtree:!0});function r(h){const f={};return h.integrity&&(f.integrity=h.integrity),h.referrerPolicy&&(f.referrerPolicy=h.referrerPolicy),h.crossOrigin==="use-credentials"?f.credentials="include":h.crossOrigin==="anonymous"?f.credentials="omit":f.credentials="same-origin",f}function o(h){if(h.ep)return;h.ep=!0;const f=r(h);fetch(h.href,f)}})();function Bh(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var G9={exports:{}},J0={};var br;function jh(){if(br)return J0;br=1;var t=Symbol.for("react.transitional.element"),n=Symbol.for("react.fragment");function r(o,h,f){var m=null;if(f!==void 0&&(m=""+f),h.key!==void 0&&(m=""+h.key),"key"in h){f={};for(var p in h)p!=="key"&&(f[p]=h[p])}else f=h;return h=f.ref,{$$typeof:t,type:o,key:m,ref:h!==void 0?h:null,props:f}}return J0.Fragment=n,J0.jsx=r,J0.jsxs=r,J0}var yr;function Nh(){return yr||(yr=1,G9.exports=jh()),G9.exports}var l=Nh(),$9={exports:{}},j1={};var Cr;function Fh(){if(Cr)return j1;Cr=1;var t=Symbol.for("react.transitional.element"),n=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),h=Symbol.for("react.profiler"),f=Symbol.for("react.consumer"),m=Symbol.for("react.context"),p=Symbol.for("react.forward_ref"),g=Symbol.for("react.suspense"),z=Symbol.for("react.memo"),x=Symbol.for("react.lazy"),M=Symbol.for("react.activity"),y=Symbol.iterator;function S(N){return N===null||typeof N!="object"?null:(N=y&&N[y]||N["@@iterator"],typeof N=="function"?N:null)}var B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},H=Object.assign,w={};function C(N,D,e1){this.props=N,this.context=D,this.refs=w,this.updater=e1||B}C.prototype.isReactComponent={},C.prototype.setState=function(N,D){if(typeof N!="object"&&typeof N!="function"&&N!=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,N,D,"setState")},C.prototype.forceUpdate=function(N){this.updater.enqueueForceUpdate(this,N,"forceUpdate")};function L(){}L.prototype=C.prototype;function A(N,D,e1){this.props=N,this.context=D,this.refs=w,this.updater=e1||B}var j=A.prototype=new L;j.constructor=A,H(j,C.prototype),j.isPureReactComponent=!0;var F=Array.isArray;function Z(){}var R={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function G(N,D,e1){var s1=e1.ref;return{$$typeof:t,type:N,key:D,ref:s1!==void 0?s1:null,props:e1}}function O(N,D){return G(N.type,D,N.props)}function K(N){return typeof N=="object"&&N!==null&&N.$$typeof===t}function P(N){var D={"=":"=0",":":"=2"};return"$"+N.replace(/[=:]/g,function(e1){return D[e1]})}var d1=/\/+/g;function f1(N,D){return typeof N=="object"&&N!==null&&N.key!=null?P(""+N.key):D.toString(36)}function r1(N){switch(N.status){case"fulfilled":return N.value;case"rejected":throw N.reason;default:switch(typeof N.status=="string"?N.then(Z,Z):(N.status="pending",N.then(function(D){N.status==="pending"&&(N.status="fulfilled",N.value=D)},function(D){N.status==="pending"&&(N.status="rejected",N.reason=D)})),N.status){case"fulfilled":return N.value;case"rejected":throw N.reason}}throw N}function E(N,D,e1,s1,n1){var p1=typeof N;(p1==="undefined"||p1==="boolean")&&(N=null);var o1=!1;if(N===null)o1=!0;else switch(p1){case"bigint":case"string":case"number":o1=!0;break;case"object":switch(N.$$typeof){case t:case n:o1=!0;break;case x:return o1=N._init,E(o1(N._payload),D,e1,s1,n1)}}if(o1)return n1=n1(N),o1=s1===""?"."+f1(N,0):s1,F(n1)?(e1="",o1!=null&&(e1=o1.replace(d1,"$&/")+"/"),E(n1,D,e1,"",function(H1){return H1})):n1!=null&&(K(n1)&&(n1=O(n1,e1+(n1.key==null||N&&N.key===n1.key?"":(""+n1.key).replace(d1,"$&/")+"/")+o1)),D.push(n1)),1;o1=0;var g1=s1===""?".":s1+":";if(F(N))for(var z1=0;z1>>1,X=E[J];if(0>>1;Jh(e1,I))s1h(n1,e1)?(E[J]=n1,E[s1]=I,J=s1):(E[J]=e1,E[D]=I,J=D);else if(s1h(n1,I))E[J]=n1,E[s1]=I,J=s1;else break t}}return U}function h(E,U){var I=E.sortIndex-U.sortIndex;return I!==0?I:E.id-U.id}if(t.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var f=performance;t.unstable_now=function(){return f.now()}}else{var m=Date,p=m.now();t.unstable_now=function(){return m.now()-p}}var g=[],z=[],x=1,M=null,y=3,S=!1,B=!1,H=!1,w=!1,C=typeof setTimeout=="function"?setTimeout:null,L=typeof clearTimeout=="function"?clearTimeout:null,A=typeof setImmediate<"u"?setImmediate:null;function j(E){for(var U=r(z);U!==null;){if(U.callback===null)o(z);else if(U.startTime<=E)o(z),U.sortIndex=U.expirationTime,n(g,U);else break;U=r(z)}}function F(E){if(H=!1,j(E),!B)if(r(g)!==null)B=!0,Z||(Z=!0,P());else{var U=r(z);U!==null&&r1(F,U.startTime-E)}}var Z=!1,R=-1,T=5,G=-1;function O(){return w?!0:!(t.unstable_now()-GE&&O());){var J=M.callback;if(typeof J=="function"){M.callback=null,y=M.priorityLevel;var X=J(M.expirationTime<=E);if(E=t.unstable_now(),typeof X=="function"){M.callback=X,j(E),U=!0;break e}M===r(g)&&o(g),j(E)}else o(g);M=r(g)}if(M!==null)U=!0;else{var N=r(z);N!==null&&r1(F,N.startTime-E),U=!1}}break t}finally{M=null,y=I,S=!1}U=void 0}}finally{U?P():Z=!1}}}var P;if(typeof A=="function")P=function(){A(K)};else if(typeof MessageChannel<"u"){var d1=new MessageChannel,f1=d1.port2;d1.port1.onmessage=K,P=function(){f1.postMessage(null)}}else P=function(){C(K,0)};function r1(E,U){R=C(function(){E(t.unstable_now())},U)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(E){E.callback=null},t.unstable_forceFrameRate=function(E){0>E||125J?(E.sortIndex=I,n(z,E),r(g)===null&&E===r(z)&&(H?(L(R),R=-1):H=!0,r1(F,I-J))):(E.sortIndex=X,n(g,E),B||S||(B=!0,Z||(Z=!0,P()))),E},t.unstable_shouldYield=O,t.unstable_wrapCallback=function(E){var U=y;return function(){var I=y;y=U;try{return E.apply(this,arguments)}finally{y=I}}}})(P9)),P9}var Vr;function Rh(){return Vr||(Vr=1,I9.exports=kh()),I9.exports}var Q9={exports:{}},F2={};var Sr;function Eh(){if(Sr)return F2;Sr=1;var t=Ue();function n(g){var z="https://react.dev/errors/"+g;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(n){console.error(n)}}return t(),Q9.exports=Eh(),Q9.exports}var Lr;function qh(){if(Lr)return W0;Lr=1;var t=Rh(),n=Ue(),r=Th();function o(e){var c="https://react.dev/errors/"+e;if(1X||(e.current=J[X],J[X]=null,X--)}function e1(e,c){X++,J[X]=e.current,e.current=c}var s1=N(null),n1=N(null),p1=N(null),o1=N(null);function g1(e,c){switch(e1(p1,c),e1(n1,e),e1(s1,null),c.nodeType){case 9:case 11:e=(e=c.documentElement)&&(e=e.namespaceURI)?Gl(e):0;break;default:if(e=c.tagName,c=c.namespaceURI)c=Gl(c),e=$l(c,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}D(s1),e1(s1,e)}function z1(){D(s1),D(n1),D(p1)}function H1(e){e.memoizedState!==null&&e1(o1,e);var c=s1.current,a=$l(c,e.type);c!==a&&(e1(n1,e),e1(s1,a))}function L1(e){n1.current===e&&(D(s1),D(n1)),o1.current===e&&(D(o1),P0._currentValue=I)}var B1,c2;function V1(e){if(B1===void 0)try{throw Error()}catch(a){var c=a.stack.trim().match(/\n( *(at )?)/);B1=c&&c[1]||"",c2=-1)":-1u||k[s]!==Y[u]){var t1=` -`+k[s].replace(" at new "," at ");return e.displayName&&t1.includes("")&&(t1=t1.replace("",e.displayName)),t1}while(1<=s&&0<=u);break}}}finally{C1=!1,Error.prepareStackTrace=a}return(a=e?e.displayName||e.name:"")?V1(a):""}function Y1(e,c){switch(e.tag){case 26:case 27:case 5:return V1(e.type);case 16:return V1("Lazy");case 13:return e.child!==c&&c!==null?V1("Suspense Fallback"):V1("Suspense");case 19:return V1("SuspenseList");case 0:case 15:return G1(e.type,!1);case 11:return G1(e.type.render,!1);case 1:return G1(e.type,!0);case 31:return V1("Activity");default:return""}}function r2(e){try{var c="",a=null;do c+=Y1(e,a),a=e,e=e.return;while(e);return c}catch(s){return` -Error generating stack: `+s.message+` -`+s.stack}}var u1=Object.prototype.hasOwnProperty,i1=t.unstable_scheduleCallback,m1=t.unstable_cancelCallback,M1=t.unstable_shouldYield,y1=t.unstable_requestPaint,a1=t.unstable_now,v1=t.unstable_getCurrentPriorityLevel,N1=t.unstable_ImmediatePriority,G2=t.unstable_UserBlockingPriority,c4=t.unstable_NormalPriority,p4=t.unstable_LowPriority,C2=t.unstable_IdlePriority,r0=t.log,S1=t.unstable_setDisableYieldValue,X1=null,D1=null;function R1(e){if(typeof r0=="function"&&S1(e),D1&&typeof D1.setStrictMode=="function")try{D1.setStrictMode(X1,e)}catch{}}var q1=Math.clz32?Math.clz32:n6,z4=Math.log,j3=Math.LN2;function n6(e){return e>>>=0,e===0?32:31-(z4(e)/j3|0)|0}var h2=256,w4=262144,w8=4194304;function N3(e){var c=e&42;if(c!==0)return c;switch(e&-e){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:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function H8(e,c,a){var s=e.pendingLanes;if(s===0)return 0;var u=0,d=e.suspendedLanes,b=e.pingedLanes;e=e.warmLanes;var V=s&134217727;return V!==0?(s=V&~d,s!==0?u=N3(s):(b&=V,b!==0?u=N3(b):a||(a=V&~e,a!==0&&(u=N3(a))))):(V=s&~d,V!==0?u=N3(V):b!==0?u=N3(b):a||(a=s&~e,a!==0&&(u=N3(a)))),u===0?0:c!==0&&c!==u&&(c&d)===0&&(d=u&-u,a=c&-c,d>=a||d===32&&(a&4194048)!==0)?c:u}function i0(e,c){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&c)===0}function zo(e,c){switch(e){case 1:case 2:case 4:case 8:case 64:return c+250;case 16:case 32: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 c+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 wc(){var e=w8;return w8<<=1,(w8&62914560)===0&&(w8=4194304),e}function N7(e){for(var c=[],a=0;31>a;a++)c.push(e);return c}function s0(e,c){e.pendingLanes|=c,c!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function go(e,c,a,s,u,d){var b=e.pendingLanes;e.pendingLanes=a,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=a,e.entangledLanes&=a,e.errorRecoveryDisabledLanes&=a,e.shellSuspendCounter=0;var V=e.entanglements,k=e.expirationTimes,Y=e.hiddenUpdates;for(a=b&~a;0"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var wo=/[\n"\\]/g;function n4(e){return e.replace(wo,function(c){return"\\"+c.charCodeAt(0).toString(16)+" "})}function q7(e,c,a,s,u,d,b,V){e.name="",b!=null&&typeof b!="function"&&typeof b!="symbol"&&typeof b!="boolean"?e.type=b:e.removeAttribute("type"),c!=null?b==="number"?(c===0&&e.value===""||e.value!=c)&&(e.value=""+a4(c)):e.value!==""+a4(c)&&(e.value=""+a4(c)):b!=="submit"&&b!=="reset"||e.removeAttribute("value"),c!=null?D7(e,b,a4(c)):a!=null?D7(e,b,a4(a)):s!=null&&e.removeAttribute("value"),u==null&&d!=null&&(e.defaultChecked=!!d),u!=null&&(e.checked=u&&typeof u!="function"&&typeof u!="symbol"),V!=null&&typeof V!="function"&&typeof V!="symbol"&&typeof V!="boolean"?e.name=""+a4(V):e.removeAttribute("name")}function Tc(e,c,a,s,u,d,b,V){if(d!=null&&typeof d!="function"&&typeof d!="symbol"&&typeof d!="boolean"&&(e.type=d),c!=null||a!=null){if(!(d!=="submit"&&d!=="reset"||c!=null)){T7(e);return}a=a!=null?""+a4(a):"",c=c!=null?""+a4(c):a,V||c===e.value||(e.value=c),e.defaultValue=c}s=s??u,s=typeof s!="function"&&typeof s!="symbol"&&!!s,e.checked=V?e.checked:!!s,e.defaultChecked=!!s,b!=null&&typeof b!="function"&&typeof b!="symbol"&&typeof b!="boolean"&&(e.name=b),T7(e)}function D7(e,c,a){c==="number"&&A8(e.ownerDocument)===e||e.defaultValue===""+a||(e.defaultValue=""+a)}function u6(e,c,a,s){if(e=e.options,c){c={};for(var u=0;u"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),G7=!1;if(R4)try{var d0={};Object.defineProperty(d0,"passive",{get:function(){G7=!0}}),window.addEventListener("test",d0,d0),window.removeEventListener("test",d0,d0)}catch{G7=!1}var r3=null,$7=null,B8=null;function Gc(){if(B8)return B8;var e,c=$7,a=c.length,s,u="value"in r3?r3.value:r3.textContent,d=u.length;for(e=0;e=m0),Xc=" ",Kc=!1;function Jc(e,c){switch(e){case"keyup":return Jo.indexOf(c.keyCode)!==-1;case"keydown":return c.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Wc(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var v6=!1;function tu(e,c){switch(e){case"compositionend":return Wc(c);case"keypress":return c.which!==32?null:(Kc=!0,Xc);case"textInput":return e=c.data,e===Xc&&Kc?null:e;default:return null}}function eu(e,c){if(v6)return e==="compositionend"||!X7&&Jc(e,c)?(e=Gc(),B8=$7=r3=null,v6=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(c.ctrlKey||c.altKey||c.metaKey)||c.ctrlKey&&c.altKey){if(c.char&&1=c)return{node:a,offset:c-e};e=s}t:{for(;a;){if(a.nextSibling){a=a.nextSibling;break t}a=a.parentNode}a=void 0}a=ia(a)}}function oa(e,c){return e&&c?e===c?!0:e&&e.nodeType===3?!1:c&&c.nodeType===3?oa(e,c.parentNode):"contains"in e?e.contains(c):e.compareDocumentPosition?!!(e.compareDocumentPosition(c)&16):!1:!1}function ua(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var c=A8(e.document);c instanceof e.HTMLIFrameElement;){try{var a=typeof c.contentWindow.location.href=="string"}catch{a=!1}if(a)e=c.contentWindow;else break;c=A8(e.document)}return c}function W7(e){var c=e&&e.nodeName&&e.nodeName.toLowerCase();return c&&(c==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||c==="textarea"||e.contentEditable==="true")}var ou=R4&&"documentMode"in document&&11>=document.documentMode,m6=null,tt=null,x0=null,et=!1;function ha(e,c,a){var s=a.window===a?a.document:a.nodeType===9?a:a.ownerDocument;et||m6==null||m6!==A8(s)||(s=m6,"selectionStart"in s&&W7(s)?s={start:s.selectionStart,end:s.selectionEnd}:(s=(s.ownerDocument&&s.ownerDocument.defaultView||window).getSelection(),s={anchorNode:s.anchorNode,anchorOffset:s.anchorOffset,focusNode:s.focusNode,focusOffset:s.focusOffset}),x0&&g0(x0,s)||(x0=s,s=C5(tt,"onSelect"),0>=b,u-=b,H4=1<<32-q1(c)+u|a<k1?(Z1=b1,b1=null):Z1=b1.sibling;var P1=Q(_,b1,$[k1],c1);if(P1===null){b1===null&&(b1=Z1);break}e&&b1&&P1.alternate===null&&c(_,b1),q=d(P1,q,k1),I1===null?w1=P1:I1.sibling=P1,I1=P1,b1=Z1}if(k1===$.length)return a(_,b1),$1&&T4(_,k1),w1;if(b1===null){for(;k1<$.length;k1++)b1=l1(_,$[k1],c1),b1!==null&&(q=d(b1,q,k1),I1===null?w1=b1:I1.sibling=b1,I1=b1);return $1&&T4(_,k1),w1}for(b1=s(b1);k1<$.length;k1++)Z1=W(b1,_,k1,$[k1],c1),Z1!==null&&(e&&Z1.alternate!==null&&b1.delete(Z1.key===null?k1:Z1.key),q=d(Z1,q,k1),I1===null?w1=Z1:I1.sibling=Z1,I1=Z1);return e&&b1.forEach(function(A3){return c(_,A3)}),$1&&T4(_,k1),w1}function A1(_,q,$,c1){if($==null)throw Error(o(151));for(var w1=null,I1=null,b1=q,k1=q=0,Z1=null,P1=$.next();b1!==null&&!P1.done;k1++,P1=$.next()){b1.index>k1?(Z1=b1,b1=null):Z1=b1.sibling;var A3=Q(_,b1,P1.value,c1);if(A3===null){b1===null&&(b1=Z1);break}e&&b1&&A3.alternate===null&&c(_,b1),q=d(A3,q,k1),I1===null?w1=A3:I1.sibling=A3,I1=A3,b1=Z1}if(P1.done)return a(_,b1),$1&&T4(_,k1),w1;if(b1===null){for(;!P1.done;k1++,P1=$.next())P1=l1(_,P1.value,c1),P1!==null&&(q=d(P1,q,k1),I1===null?w1=P1:I1.sibling=P1,I1=P1);return $1&&T4(_,k1),w1}for(b1=s(b1);!P1.done;k1++,P1=$.next())P1=W(b1,_,k1,P1.value,c1),P1!==null&&(e&&P1.alternate!==null&&b1.delete(P1.key===null?k1:P1.key),q=d(P1,q,k1),I1===null?w1=P1:I1.sibling=P1,I1=P1);return e&&b1.forEach(function(Lh){return c(_,Lh)}),$1&&T4(_,k1),w1}function e2(_,q,$,c1){if(typeof $=="object"&&$!==null&&$.type===H&&$.key===null&&($=$.props.children),typeof $=="object"&&$!==null){switch($.$$typeof){case S:t:{for(var w1=$.key;q!==null;){if(q.key===w1){if(w1=$.type,w1===H){if(q.tag===7){a(_,q.sibling),c1=u(q,$.props.children),c1.return=_,_=c1;break t}}else if(q.elementType===w1||typeof w1=="object"&&w1!==null&&w1.$$typeof===T&&Z3(w1)===q.type){a(_,q.sibling),c1=u(q,$.props),H0(c1,$),c1.return=_,_=c1;break t}a(_,q);break}else c(_,q);q=q.sibling}$.type===H?(c1=q3($.props.children,_.mode,c1,$.key),c1.return=_,_=c1):(c1=O8($.type,$.key,$.props,null,_.mode,c1),H0(c1,$),c1.return=_,_=c1)}return b(_);case B:t:{for(w1=$.key;q!==null;){if(q.key===w1)if(q.tag===4&&q.stateNode.containerInfo===$.containerInfo&&q.stateNode.implementation===$.implementation){a(_,q.sibling),c1=u(q,$.children||[]),c1.return=_,_=c1;break t}else{a(_,q);break}else c(_,q);q=q.sibling}c1=st($,_.mode,c1),c1.return=_,_=c1}return b(_);case T:return $=Z3($),e2(_,q,$,c1)}if(r1($))return x1(_,q,$,c1);if(P($)){if(w1=P($),typeof w1!="function")throw Error(o(150));return $=w1.call($),A1(_,q,$,c1)}if(typeof $.then=="function")return e2(_,q,I8($),c1);if($.$$typeof===A)return e2(_,q,Z8(_,$),c1);P8(_,$)}return typeof $=="string"&&$!==""||typeof $=="number"||typeof $=="bigint"?($=""+$,q!==null&&q.tag===6?(a(_,q.sibling),c1=u(q,$),c1.return=_,_=c1):(a(_,q),c1=it($,_.mode,c1),c1.return=_,_=c1),b(_)):a(_,q)}return function(_,q,$,c1){try{w0=0;var w1=e2(_,q,$,c1);return V6=null,w1}catch(b1){if(b1===H6||b1===$8)throw b1;var I1=Y2(29,b1,null,_.mode);return I1.lanes=c1,I1.return=_,I1}finally{}}}var $3=ka(!0),Ra=ka(!1),h3=!1;function Mt(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function bt(e,c){e=e.updateQueue,c.updateQueue===e&&(c.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function d3(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function f3(e,c,a){var s=e.updateQueue;if(s===null)return null;if(s=s.shared,(Q1&2)!==0){var u=s.pending;return u===null?c.next=c:(c.next=u.next,u.next=c),s.pending=c,c=D8(e),ga(e,null,a),c}return q8(e,s,c,a),D8(e)}function V0(e,c,a){if(c=c.updateQueue,c!==null&&(c=c.shared,(a&4194048)!==0)){var s=c.lanes;s&=e.pendingLanes,a|=s,c.lanes=a,Vc(e,a)}}function yt(e,c){var a=e.updateQueue,s=e.alternate;if(s!==null&&(s=s.updateQueue,a===s)){var u=null,d=null;if(a=a.firstBaseUpdate,a!==null){do{var b={lane:a.lane,tag:a.tag,payload:a.payload,callback:null,next:null};d===null?u=d=b:d=d.next=b,a=a.next}while(a!==null);d===null?u=d=c:d=d.next=c}else u=d=c;a={baseState:s.baseState,firstBaseUpdate:u,lastBaseUpdate:d,shared:s.shared,callbacks:s.callbacks},e.updateQueue=a;return}e=a.lastBaseUpdate,e===null?a.firstBaseUpdate=c:e.next=c,a.lastBaseUpdate=c}var Ct=!1;function S0(){if(Ct){var e=w6;if(e!==null)throw e}}function A0(e,c,a,s){Ct=!1;var u=e.updateQueue;h3=!1;var d=u.firstBaseUpdate,b=u.lastBaseUpdate,V=u.shared.pending;if(V!==null){u.shared.pending=null;var k=V,Y=k.next;k.next=null,b===null?d=Y:b.next=Y,b=k;var t1=e.alternate;t1!==null&&(t1=t1.updateQueue,V=t1.lastBaseUpdate,V!==b&&(V===null?t1.firstBaseUpdate=Y:V.next=Y,t1.lastBaseUpdate=k))}if(d!==null){var l1=u.baseState;b=0,t1=Y=k=null,V=d;do{var Q=V.lane&-536870913,W=Q!==V.lane;if(W?(U1&Q)===Q:(s&Q)===Q){Q!==0&&Q===C6&&(Ct=!0),t1!==null&&(t1=t1.next={lane:0,tag:V.tag,payload:V.payload,callback:null,next:null});t:{var x1=e,A1=V;Q=c;var e2=a;switch(A1.tag){case 1:if(x1=A1.payload,typeof x1=="function"){l1=x1.call(e2,l1,Q);break t}l1=x1;break t;case 3:x1.flags=x1.flags&-65537|128;case 0:if(x1=A1.payload,Q=typeof x1=="function"?x1.call(e2,l1,Q):x1,Q==null)break t;l1=M({},l1,Q);break t;case 2:h3=!0}}Q=V.callback,Q!==null&&(e.flags|=64,W&&(e.flags|=8192),W=u.callbacks,W===null?u.callbacks=[Q]:W.push(Q))}else W={lane:Q,tag:V.tag,payload:V.payload,callback:V.callback,next:null},t1===null?(Y=t1=W,k=l1):t1=t1.next=W,b|=Q;if(V=V.next,V===null){if(V=u.shared.pending,V===null)break;W=V,V=W.next,W.next=null,u.lastBaseUpdate=W,u.shared.pending=null}}while(!0);t1===null&&(k=l1),u.baseState=k,u.firstBaseUpdate=Y,u.lastBaseUpdate=t1,d===null&&(u.shared.lanes=0),g3|=b,e.lanes=b,e.memoizedState=l1}}function Ea(e,c){if(typeof e!="function")throw Error(o(191,e));e.call(c)}function Ta(e,c){var a=e.callbacks;if(a!==null)for(e.callbacks=null,e=0;ed?d:8;var b=E.T,V={};E.T=V,Ut(e,!1,c,a);try{var k=u(),Y=E.S;if(Y!==null&&Y(V,k),k!==null&&typeof k=="object"&&typeof k.then=="function"){var t1=gu(k,s);j0(e,c,t1,K2(e))}else j0(e,c,s,K2(e))}catch(l1){j0(e,c,{then:function(){},status:"rejected",reason:l1},K2())}finally{U.p=d,b!==null&&V.types!==null&&(b.types=V.types),E.T=b}}function wu(){}function Ot(e,c,a,s){if(e.tag!==5)throw Error(o(476));var u=pn(e).queue;mn(e,u,c,I,a===null?wu:function(){return zn(e),a(s)})}function pn(e){var c=e.memoizedState;if(c!==null)return c;c={memoizedState:I,baseState:I,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:_4,lastRenderedState:I},next:null};var a={};return c.next={memoizedState:a,baseState:a,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:_4,lastRenderedState:a},next:null},e.memoizedState=c,e=e.alternate,e!==null&&(e.memoizedState=c),c}function zn(e){var c=pn(e);c.next===null&&(c=e.alternate.memoizedState),j0(e,c.next.queue,{},K2())}function _t(){return L2(P0)}function gn(){return p2().memoizedState}function xn(){return p2().memoizedState}function Hu(e){for(var c=e.return;c!==null;){switch(c.tag){case 24:case 3:var a=K2();e=d3(a);var s=f3(c,e,a);s!==null&&(Z2(s,c,a),V0(s,c,a)),c={cache:pt()},e.payload=c;return}c=c.return}}function Vu(e,c,a){var s=K2();a={lane:s,revertLane:0,gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},n5(e)?bn(c,a):(a=lt(e,c,a,s),a!==null&&(Z2(a,e,s),yn(a,c,s)))}function Mn(e,c,a){var s=K2();j0(e,c,a,s)}function j0(e,c,a,s){var u={lane:s,revertLane:0,gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null};if(n5(e))bn(c,u);else{var d=e.alternate;if(e.lanes===0&&(d===null||d.lanes===0)&&(d=c.lastRenderedReducer,d!==null))try{var b=c.lastRenderedState,V=d(b,a);if(u.hasEagerState=!0,u.eagerState=V,$2(V,b))return q8(e,c,u,0),a2===null&&T8(),!1}catch{}finally{}if(a=lt(e,c,u,s),a!==null)return Z2(a,e,s),yn(a,c,s),!0}return!1}function Ut(e,c,a,s){if(s={lane:2,revertLane:M9(),gesture:null,action:s,hasEagerState:!1,eagerState:null,next:null},n5(e)){if(c)throw Error(o(479))}else c=lt(e,a,s,2),c!==null&&Z2(c,e,2)}function n5(e){var c=e.alternate;return e===F1||c!==null&&c===F1}function bn(e,c){A6=K8=!0;var a=e.pending;a===null?c.next=c:(c.next=a.next,a.next=c),e.pending=c}function yn(e,c,a){if((a&4194048)!==0){var s=c.lanes;s&=e.pendingLanes,a|=s,c.lanes=a,Vc(e,a)}}var N0={readContext:L2,use:t5,useCallback:d2,useContext:d2,useEffect:d2,useImperativeHandle:d2,useLayoutEffect:d2,useInsertionEffect:d2,useMemo:d2,useReducer:d2,useRef:d2,useState:d2,useDebugValue:d2,useDeferredValue:d2,useTransition:d2,useSyncExternalStore:d2,useId:d2,useHostTransitionStatus:d2,useFormState:d2,useActionState:d2,useOptimistic:d2,useMemoCache:d2,useCacheRefresh:d2};N0.useEffectEvent=d2;var Cn={readContext:L2,use:t5,useCallback:function(e,c){return R2().memoizedState=[e,c===void 0?null:c],e},useContext:L2,useEffect:ln,useImperativeHandle:function(e,c,a){a=a!=null?a.concat([e]):null,c5(4194308,4,un.bind(null,c,e),a)},useLayoutEffect:function(e,c){return c5(4194308,4,e,c)},useInsertionEffect:function(e,c){c5(4,2,e,c)},useMemo:function(e,c){var a=R2();c=c===void 0?null:c;var s=e();if(Y3){R1(!0);try{e()}finally{R1(!1)}}return a.memoizedState=[s,c],s},useReducer:function(e,c,a){var s=R2();if(a!==void 0){var u=a(c);if(Y3){R1(!0);try{a(c)}finally{R1(!1)}}}else u=c;return s.memoizedState=s.baseState=u,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:u},s.queue=e,e=e.dispatch=Vu.bind(null,F1,e),[s.memoizedState,e]},useRef:function(e){var c=R2();return e={current:e},c.memoizedState=e},useState:function(e){e=Rt(e);var c=e.queue,a=Mn.bind(null,F1,c);return c.dispatch=a,[e.memoizedState,a]},useDebugValue:qt,useDeferredValue:function(e,c){var a=R2();return Dt(a,e,c)},useTransition:function(){var e=Rt(!1);return e=mn.bind(null,F1,e.queue,!0,!1),R2().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,c,a){var s=F1,u=R2();if($1){if(a===void 0)throw Error(o(407));a=a()}else{if(a=c(),a2===null)throw Error(o(349));(U1&127)!==0||Za(s,c,a)}u.memoizedState=a;var d={value:a,getSnapshot:c};return u.queue=d,ln($a.bind(null,s,d,e),[e]),s.flags|=2048,B6(9,{destroy:void 0},Ga.bind(null,s,d,a,c),null),a},useId:function(){var e=R2(),c=a2.identifierPrefix;if($1){var a=V4,s=H4;a=(s&~(1<<32-q1(s)-1)).toString(32)+a,c="_"+c+"R_"+a,a=J8++,0<\/script>",d=d.removeChild(d.firstChild);break;case"select":d=typeof s.is=="string"?b.createElement("select",{is:s.is}):b.createElement("select"),s.multiple?d.multiple=!0:s.size&&(d.size=s.size);break;default:d=typeof s.is=="string"?b.createElement(u,{is:s.is}):b.createElement(u)}}d[S2]=c,d[T2]=s;t:for(b=c.child;b!==null;){if(b.tag===5||b.tag===6)d.appendChild(b.stateNode);else if(b.tag!==4&&b.tag!==27&&b.child!==null){b.child.return=b,b=b.child;continue}if(b===c)break t;for(;b.sibling===null;){if(b.return===null||b.return===c)break t;b=b.return}b.sibling.return=b.return,b=b.sibling}c.stateNode=d;t:switch(j2(d,u,s),u){case"button":case"input":case"select":case"textarea":s=!!s.autoFocus;break t;case"img":s=!0;break t;default:s=!1}s&&Z4(c)}}return l2(c),c9(c,c.type,e===null?null:e.memoizedProps,c.pendingProps,a),null;case 6:if(e&&c.stateNode!=null)e.memoizedProps!==s&&Z4(c);else{if(typeof s!="string"&&c.stateNode===null)throw Error(o(166));if(e=p1.current,b6(c)){if(e=c.stateNode,a=c.memoizedProps,s=null,u=A2,u!==null)switch(u.tag){case 27:case 5:s=u.memoizedProps}e[S2]=c,e=!!(e.nodeValue===a||s!==null&&s.suppressHydrationWarning===!0||Ul(e.nodeValue,a)),e||o3(c,!0)}else e=w5(e).createTextNode(s),e[S2]=c,c.stateNode=e}return l2(c),null;case 31:if(a=c.memoizedState,e===null||e.memoizedState!==null){if(s=b6(c),a!==null){if(e===null){if(!s)throw Error(o(318));if(e=c.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(o(557));e[S2]=c}else D3(),(c.flags&128)===0&&(c.memoizedState=null),c.flags|=4;l2(c),e=!1}else a=dt(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),e=!0;if(!e)return c.flags&256?(P2(c),c):(P2(c),null);if((c.flags&128)!==0)throw Error(o(558))}return l2(c),null;case 13:if(s=c.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(u=b6(c),s!==null&&s.dehydrated!==null){if(e===null){if(!u)throw Error(o(318));if(u=c.memoizedState,u=u!==null?u.dehydrated:null,!u)throw Error(o(317));u[S2]=c}else D3(),(c.flags&128)===0&&(c.memoizedState=null),c.flags|=4;l2(c),u=!1}else u=dt(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=u),u=!0;if(!u)return c.flags&256?(P2(c),c):(P2(c),null)}return P2(c),(c.flags&128)!==0?(c.lanes=a,c):(a=s!==null,e=e!==null&&e.memoizedState!==null,a&&(s=c.child,u=null,s.alternate!==null&&s.alternate.memoizedState!==null&&s.alternate.memoizedState.cachePool!==null&&(u=s.alternate.memoizedState.cachePool.pool),d=null,s.memoizedState!==null&&s.memoizedState.cachePool!==null&&(d=s.memoizedState.cachePool.pool),d!==u&&(s.flags|=2048)),a!==e&&a&&(c.child.flags|=8192),o5(c,c.updateQueue),l2(c),null);case 4:return z1(),e===null&&w9(c.stateNode.containerInfo),l2(c),null;case 10:return D4(c.type),l2(c),null;case 19:if(D(m2),s=c.memoizedState,s===null)return l2(c),null;if(u=(c.flags&128)!==0,d=s.rendering,d===null)if(u)k0(s,!1);else{if(f2!==0||e!==null&&(e.flags&128)!==0)for(e=c.child;e!==null;){if(d=X8(e),d!==null){for(c.flags|=128,k0(s,!1),e=d.updateQueue,c.updateQueue=e,o5(c,e),c.subtreeFlags=0,e=a,a=c.child;a!==null;)xa(a,e),a=a.sibling;return e1(m2,m2.current&1|2),$1&&T4(c,s.treeForkCount),c.child}e=e.sibling}s.tail!==null&&a1()>v5&&(c.flags|=128,u=!0,k0(s,!1),c.lanes=4194304)}else{if(!u)if(e=X8(d),e!==null){if(c.flags|=128,u=!0,e=e.updateQueue,c.updateQueue=e,o5(c,e),k0(s,!0),s.tail===null&&s.tailMode==="hidden"&&!d.alternate&&!$1)return l2(c),null}else 2*a1()-s.renderingStartTime>v5&&a!==536870912&&(c.flags|=128,u=!0,k0(s,!1),c.lanes=4194304);s.isBackwards?(d.sibling=c.child,c.child=d):(e=s.last,e!==null?e.sibling=d:c.child=d,s.last=d)}return s.tail!==null?(e=s.tail,s.rendering=e,s.tail=e.sibling,s.renderingStartTime=a1(),e.sibling=null,a=m2.current,e1(m2,u?a&1|2:a&1),$1&&T4(c,s.treeForkCount),e):(l2(c),null);case 22:case 23:return P2(c),Ht(),s=c.memoizedState!==null,e!==null?e.memoizedState!==null!==s&&(c.flags|=8192):s&&(c.flags|=8192),s?(a&536870912)!==0&&(c.flags&128)===0&&(l2(c),c.subtreeFlags&6&&(c.flags|=8192)):l2(c),a=c.updateQueue,a!==null&&o5(c,a.retryQueue),a=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(a=e.memoizedState.cachePool.pool),s=null,c.memoizedState!==null&&c.memoizedState.cachePool!==null&&(s=c.memoizedState.cachePool.pool),s!==a&&(c.flags|=2048),e!==null&&D(U3),null;case 24:return a=null,e!==null&&(a=e.memoizedState.cache),c.memoizedState.cache!==a&&(c.flags|=2048),D4(z2),l2(c),null;case 25:return null;case 30:return null}throw Error(o(156,c.tag))}function ju(e,c){switch(ut(c),c.tag){case 1:return e=c.flags,e&65536?(c.flags=e&-65537|128,c):null;case 3:return D4(z2),z1(),e=c.flags,(e&65536)!==0&&(e&128)===0?(c.flags=e&-65537|128,c):null;case 26:case 27:case 5:return L1(c),null;case 31:if(c.memoizedState!==null){if(P2(c),c.alternate===null)throw Error(o(340));D3()}return e=c.flags,e&65536?(c.flags=e&-65537|128,c):null;case 13:if(P2(c),e=c.memoizedState,e!==null&&e.dehydrated!==null){if(c.alternate===null)throw Error(o(340));D3()}return e=c.flags,e&65536?(c.flags=e&-65537|128,c):null;case 19:return D(m2),null;case 4:return z1(),null;case 10:return D4(c.type),null;case 22:case 23:return P2(c),Ht(),e!==null&&D(U3),e=c.flags,e&65536?(c.flags=e&-65537|128,c):null;case 24:return D4(z2),null;case 25:return null;default:return null}}function In(e,c){switch(ut(c),c.tag){case 3:D4(z2),z1();break;case 26:case 27:case 5:L1(c);break;case 4:z1();break;case 31:c.memoizedState!==null&&P2(c);break;case 13:P2(c);break;case 19:D(m2);break;case 10:D4(c.type);break;case 22:case 23:P2(c),Ht(),e!==null&&D(U3);break;case 24:D4(z2)}}function R0(e,c){try{var a=c.updateQueue,s=a!==null?a.lastEffect:null;if(s!==null){var u=s.next;a=u;do{if((a.tag&e)===e){s=void 0;var d=a.create,b=a.inst;s=d(),b.destroy=s}a=a.next}while(a!==u)}}catch(V){J1(c,c.return,V)}}function p3(e,c,a){try{var s=c.updateQueue,u=s!==null?s.lastEffect:null;if(u!==null){var d=u.next;s=d;do{if((s.tag&e)===e){var b=s.inst,V=b.destroy;if(V!==void 0){b.destroy=void 0,u=c;var k=a,Y=V;try{Y()}catch(t1){J1(u,k,t1)}}}s=s.next}while(s!==d)}}catch(t1){J1(c,c.return,t1)}}function Pn(e){var c=e.updateQueue;if(c!==null){var a=e.stateNode;try{Ta(c,a)}catch(s){J1(e,e.return,s)}}}function Qn(e,c,a){a.props=I3(e.type,e.memoizedProps),a.state=e.memoizedState;try{a.componentWillUnmount()}catch(s){J1(e,c,s)}}function E0(e,c){try{var a=e.ref;if(a!==null){switch(e.tag){case 26:case 27:case 5:var s=e.stateNode;break;case 30:s=e.stateNode;break;default:s=e.stateNode}typeof a=="function"?e.refCleanup=a(s):a.current=s}}catch(u){J1(e,c,u)}}function S4(e,c){var a=e.ref,s=e.refCleanup;if(a!==null)if(typeof s=="function")try{s()}catch(u){J1(e,c,u)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof a=="function")try{a(null)}catch(u){J1(e,c,u)}else a.current=null}function Xn(e){var c=e.type,a=e.memoizedProps,s=e.stateNode;try{t:switch(c){case"button":case"input":case"select":case"textarea":a.autoFocus&&s.focus();break t;case"img":a.src?s.src=a.src:a.srcSet&&(s.srcset=a.srcSet)}}catch(u){J1(e,e.return,u)}}function a9(e,c,a){try{var s=e.stateNode;Wu(s,e.type,a,c),s[T2]=c}catch(u){J1(e,e.return,u)}}function Kn(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&C3(e.type)||e.tag===4}function n9(e){t:for(;;){for(;e.sibling===null;){if(e.return===null||Kn(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&C3(e.type)||e.flags&2||e.child===null||e.tag===4)continue t;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function l9(e,c,a){var s=e.tag;if(s===5||s===6)e=e.stateNode,c?(a.nodeType===9?a.body:a.nodeName==="HTML"?a.ownerDocument.body:a).insertBefore(e,c):(c=a.nodeType===9?a.body:a.nodeName==="HTML"?a.ownerDocument.body:a,c.appendChild(e),a=a._reactRootContainer,a!=null||c.onclick!==null||(c.onclick=k4));else if(s!==4&&(s===27&&C3(e.type)&&(a=e.stateNode,c=null),e=e.child,e!==null))for(l9(e,c,a),e=e.sibling;e!==null;)l9(e,c,a),e=e.sibling}function u5(e,c,a){var s=e.tag;if(s===5||s===6)e=e.stateNode,c?a.insertBefore(e,c):a.appendChild(e);else if(s!==4&&(s===27&&C3(e.type)&&(a=e.stateNode),e=e.child,e!==null))for(u5(e,c,a),e=e.sibling;e!==null;)u5(e,c,a),e=e.sibling}function Jn(e){var c=e.stateNode,a=e.memoizedProps;try{for(var s=e.type,u=c.attributes;u.length;)c.removeAttributeNode(u[0]);j2(c,s,a),c[S2]=e,c[T2]=a}catch(d){J1(e,e.return,d)}}var G4=!1,M2=!1,r9=!1,Wn=typeof WeakSet=="function"?WeakSet:Set,V2=null;function Nu(e,c){if(e=e.containerInfo,S9=j5,e=ua(e),W7(e)){if("selectionStart"in e)var a={start:e.selectionStart,end:e.selectionEnd};else t:{a=(a=e.ownerDocument)&&a.defaultView||window;var s=a.getSelection&&a.getSelection();if(s&&s.rangeCount!==0){a=s.anchorNode;var u=s.anchorOffset,d=s.focusNode;s=s.focusOffset;try{a.nodeType,d.nodeType}catch{a=null;break t}var b=0,V=-1,k=-1,Y=0,t1=0,l1=e,Q=null;e:for(;;){for(var W;l1!==a||u!==0&&l1.nodeType!==3||(V=b+u),l1!==d||s!==0&&l1.nodeType!==3||(k=b+s),l1.nodeType===3&&(b+=l1.nodeValue.length),(W=l1.firstChild)!==null;)Q=l1,l1=W;for(;;){if(l1===e)break e;if(Q===a&&++Y===u&&(V=b),Q===d&&++t1===s&&(k=b),(W=l1.nextSibling)!==null)break;l1=Q,Q=l1.parentNode}l1=W}a=V===-1||k===-1?null:{start:V,end:k}}else a=null}a=a||{start:0,end:0}}else a=null;for(A9={focusedElem:e,selectionRange:a},j5=!1,V2=c;V2!==null;)if(c=V2,e=c.child,(c.subtreeFlags&1028)!==0&&e!==null)e.return=c,V2=e;else for(;V2!==null;){switch(c=V2,d=c.alternate,e=c.flags,c.tag){case 0:if((e&4)!==0&&(e=c.updateQueue,e=e!==null?e.events:null,e!==null))for(a=0;a title"))),j2(d,s,a),d[S2]=e,H2(d),s=d;break t;case"link":var b=lr("link","href",u).get(s+(a.href||""));if(b){for(var V=0;Ve2&&(b=e2,e2=A1,A1=b);var _=sa(V,A1),q=sa(V,e2);if(_&&q&&(W.rangeCount!==1||W.anchorNode!==_.node||W.anchorOffset!==_.offset||W.focusNode!==q.node||W.focusOffset!==q.offset)){var $=l1.createRange();$.setStart(_.node,_.offset),W.removeAllRanges(),A1>e2?(W.addRange($),W.extend(q.node,q.offset)):($.setEnd(q.node,q.offset),W.addRange($))}}}}for(l1=[],W=V;W=W.parentNode;)W.nodeType===1&&l1.push({element:W,left:W.scrollLeft,top:W.scrollTop});for(typeof V.focus=="function"&&V.focus(),V=0;Va?32:a,E.T=null,a=f9,f9=null;var d=M3,b=Q4;if(w2=0,R6=M3=null,Q4=0,(Q1&6)!==0)throw Error(o(331));var V=Q1;if(Q1|=4,ul(d.current),il(d,d.current,b,a),Q1=V,U0(0,!1),D1&&typeof D1.onPostCommitFiberRoot=="function")try{D1.onPostCommitFiberRoot(X1,d)}catch{}return!0}finally{U.p=u,E.T=s,Al(e,c)}}function Bl(e,c,a){c=r4(a,c),c=Yt(e.stateNode,c,2),e=f3(e,c,2),e!==null&&(s0(e,2),A4(e))}function J1(e,c,a){if(e.tag===3)Bl(e,e,a);else for(;c!==null;){if(c.tag===3){Bl(c,e,a);break}else if(c.tag===1){var s=c.stateNode;if(typeof c.type.getDerivedStateFromError=="function"||typeof s.componentDidCatch=="function"&&(x3===null||!x3.has(s))){e=r4(a,e),a=jn(2),s=f3(c,a,2),s!==null&&(Nn(a,s,c,e),s0(s,2),A4(s));break}}c=c.return}}function z9(e,c,a){var s=e.pingCache;if(s===null){s=e.pingCache=new Ru;var u=new Set;s.set(c,u)}else u=s.get(c),u===void 0&&(u=new Set,s.set(c,u));u.has(a)||(o9=!0,u.add(a),e=Ou.bind(null,e,c,a),c.then(e,e))}function Ou(e,c,a){var s=e.pingCache;s!==null&&s.delete(c),e.pingedLanes|=e.suspendedLanes&a,e.warmLanes&=~a,a2===e&&(U1&a)===a&&(f2===4||f2===3&&(U1&62914560)===U1&&300>a1()-f5?(Q1&2)===0&&E6(e,0):u9|=a,k6===U1&&(k6=0)),A4(e)}function jl(e,c){c===0&&(c=wc()),e=T3(e,c),e!==null&&(s0(e,c),A4(e))}function _u(e){var c=e.memoizedState,a=0;c!==null&&(a=c.retryLane),jl(e,a)}function Uu(e,c){var a=0;switch(e.tag){case 31:case 13:var s=e.stateNode,u=e.memoizedState;u!==null&&(a=u.retryLane);break;case 19:s=e.stateNode;break;case 22:s=e.stateNode._retryCache;break;default:throw Error(o(314))}s!==null&&s.delete(c),jl(e,a)}function Zu(e,c){return i1(e,c)}var M5=null,q6=null,g9=!1,b5=!1,x9=!1,y3=0;function A4(e){e!==q6&&e.next===null&&(q6===null?M5=q6=e:q6=q6.next=e),b5=!0,g9||(g9=!0,$u())}function U0(e,c){if(!x9&&b5){x9=!0;do for(var a=!1,s=M5;s!==null;){if(e!==0){var u=s.pendingLanes;if(u===0)var d=0;else{var b=s.suspendedLanes,V=s.pingedLanes;d=(1<<31-q1(42|e)+1)-1,d&=u&~(b&~V),d=d&201326741?d&201326741|1:d?d|2:0}d!==0&&(a=!0,Rl(s,d))}else d=U1,d=H8(s,s===a2?d:0,s.cancelPendingCommit!==null||s.timeoutHandle!==-1),(d&3)===0||i0(s,d)||(a=!0,Rl(s,d));s=s.next}while(a);x9=!1}}function Gu(){Nl()}function Nl(){b5=g9=!1;var e=0;y3!==0&&eh()&&(e=y3);for(var c=a1(),a=null,s=M5;s!==null;){var u=s.next,d=Fl(s,c);d===0?(s.next=null,a===null?M5=u:a.next=u,u===null&&(q6=a)):(a=s,(e!==0||(d&3)!==0)&&(b5=!0)),s=u}w2!==0&&w2!==5||U0(e),y3!==0&&(y3=0)}function Fl(e,c){for(var a=e.suspendedLanes,s=e.pingedLanes,u=e.expirationTimes,d=e.pendingLanes&-62914561;0V)break;var t1=k.transferSize,l1=k.initiatorType;t1&&Zl(l1)&&(k=k.responseEnd,b+=t1*(k"u"?null:document;function er(e,c,a){var s=D6;if(s&&typeof c=="string"&&c){var u=n4(c);u='link[rel="'+e+'"][href="'+u+'"]',typeof a=="string"&&(u+='[crossorigin="'+a+'"]'),tr.has(u)||(tr.add(u),e={rel:e,crossOrigin:a,href:c},s.querySelector(u)===null&&(c=s.createElement("link"),j2(c,"link",e),H2(c),s.head.appendChild(c)))}}function uh(e){X4.D(e),er("dns-prefetch",e,null)}function hh(e,c){X4.C(e,c),er("preconnect",e,c)}function dh(e,c,a){X4.L(e,c,a);var s=D6;if(s&&e&&c){var u='link[rel="preload"][as="'+n4(c)+'"]';c==="image"&&a&&a.imageSrcSet?(u+='[imagesrcset="'+n4(a.imageSrcSet)+'"]',typeof a.imageSizes=="string"&&(u+='[imagesizes="'+n4(a.imageSizes)+'"]')):u+='[href="'+n4(e)+'"]';var d=u;switch(c){case"style":d=O6(e);break;case"script":d=_6(e)}d4.has(d)||(e=M({rel:"preload",href:c==="image"&&a&&a.imageSrcSet?void 0:e,as:c},a),d4.set(d,e),s.querySelector(u)!==null||c==="style"&&s.querySelector(Y0(d))||c==="script"&&s.querySelector(I0(d))||(c=s.createElement("link"),j2(c,"link",e),H2(c),s.head.appendChild(c)))}}function fh(e,c){X4.m(e,c);var a=D6;if(a&&e){var s=c&&typeof c.as=="string"?c.as:"script",u='link[rel="modulepreload"][as="'+n4(s)+'"][href="'+n4(e)+'"]',d=u;switch(s){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":d=_6(e)}if(!d4.has(d)&&(e=M({rel:"modulepreload",href:e},c),d4.set(d,e),a.querySelector(u)===null)){switch(s){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(a.querySelector(I0(d)))return}s=a.createElement("link"),j2(s,"link",e),H2(s),a.head.appendChild(s)}}}function vh(e,c,a){X4.S(e,c,a);var s=D6;if(s&&e){var u=s6(s).hoistableStyles,d=O6(e);c=c||"default";var b=u.get(d);if(!b){var V={loading:0,preload:null};if(b=s.querySelector(Y0(d)))V.loading=5;else{e=M({rel:"stylesheet",href:e,"data-precedence":c},a),(a=d4.get(d))&&R9(e,a);var k=b=s.createElement("link");H2(k),j2(k,"link",e),k._p=new Promise(function(Y,t1){k.onload=Y,k.onerror=t1}),k.addEventListener("load",function(){V.loading|=1}),k.addEventListener("error",function(){V.loading|=2}),V.loading|=4,V5(b,c,s)}b={type:"stylesheet",instance:b,count:1,state:V},u.set(d,b)}}}function mh(e,c){X4.X(e,c);var a=D6;if(a&&e){var s=s6(a).hoistableScripts,u=_6(e),d=s.get(u);d||(d=a.querySelector(I0(u)),d||(e=M({src:e,async:!0},c),(c=d4.get(u))&&E9(e,c),d=a.createElement("script"),H2(d),j2(d,"link",e),a.head.appendChild(d)),d={type:"script",instance:d,count:1,state:null},s.set(u,d))}}function ph(e,c){X4.M(e,c);var a=D6;if(a&&e){var s=s6(a).hoistableScripts,u=_6(e),d=s.get(u);d||(d=a.querySelector(I0(u)),d||(e=M({src:e,async:!0,type:"module"},c),(c=d4.get(u))&&E9(e,c),d=a.createElement("script"),H2(d),j2(d,"link",e),a.head.appendChild(d)),d={type:"script",instance:d,count:1,state:null},s.set(u,d))}}function cr(e,c,a,s){var u=(u=p1.current)?H5(u):null;if(!u)throw Error(o(446));switch(e){case"meta":case"title":return null;case"style":return typeof a.precedence=="string"&&typeof a.href=="string"?(c=O6(a.href),a=s6(u).hoistableStyles,s=a.get(c),s||(s={type:"style",instance:null,count:0,state:null},a.set(c,s)),s):{type:"void",instance:null,count:0,state:null};case"link":if(a.rel==="stylesheet"&&typeof a.href=="string"&&typeof a.precedence=="string"){e=O6(a.href);var d=s6(u).hoistableStyles,b=d.get(e);if(b||(u=u.ownerDocument||u,b={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},d.set(e,b),(d=u.querySelector(Y0(e)))&&!d._p&&(b.instance=d,b.state.loading=5),d4.has(e)||(a={rel:"preload",as:"style",href:a.href,crossOrigin:a.crossOrigin,integrity:a.integrity,media:a.media,hrefLang:a.hrefLang,referrerPolicy:a.referrerPolicy},d4.set(e,a),d||zh(u,e,a,b.state))),c&&s===null)throw Error(o(528,""));return b}if(c&&s!==null)throw Error(o(529,""));return null;case"script":return c=a.async,a=a.src,typeof a=="string"&&c&&typeof c!="function"&&typeof c!="symbol"?(c=_6(a),a=s6(u).hoistableScripts,s=a.get(c),s||(s={type:"script",instance:null,count:0,state:null},a.set(c,s)),s):{type:"void",instance:null,count:0,state:null};default:throw Error(o(444,e))}}function O6(e){return'href="'+n4(e)+'"'}function Y0(e){return'link[rel="stylesheet"]['+e+"]"}function ar(e){return M({},e,{"data-precedence":e.precedence,precedence:null})}function zh(e,c,a,s){e.querySelector('link[rel="preload"][as="style"]['+c+"]")?s.loading=1:(c=e.createElement("link"),s.preload=c,c.addEventListener("load",function(){return s.loading|=1}),c.addEventListener("error",function(){return s.loading|=2}),j2(c,"link",a),H2(c),e.head.appendChild(c))}function _6(e){return'[src="'+n4(e)+'"]'}function I0(e){return"script[async]"+e}function nr(e,c,a){if(c.count++,c.instance===null)switch(c.type){case"style":var s=e.querySelector('style[data-href~="'+n4(a.href)+'"]');if(s)return c.instance=s,H2(s),s;var u=M({},a,{"data-href":a.href,"data-precedence":a.precedence,href:null,precedence:null});return s=(e.ownerDocument||e).createElement("style"),H2(s),j2(s,"style",u),V5(s,a.precedence,e),c.instance=s;case"stylesheet":u=O6(a.href);var d=e.querySelector(Y0(u));if(d)return c.state.loading|=4,c.instance=d,H2(d),d;s=ar(a),(u=d4.get(u))&&R9(s,u),d=(e.ownerDocument||e).createElement("link"),H2(d);var b=d;return b._p=new Promise(function(V,k){b.onload=V,b.onerror=k}),j2(d,"link",s),c.state.loading|=4,V5(d,a.precedence,e),c.instance=d;case"script":return d=_6(a.src),(u=e.querySelector(I0(d)))?(c.instance=u,H2(u),u):(s=a,(u=d4.get(d))&&(s=M({},a),E9(s,u)),e=e.ownerDocument||e,u=e.createElement("script"),H2(u),j2(u,"link",s),e.head.appendChild(u),c.instance=u);case"void":return null;default:throw Error(o(443,c.type))}else c.type==="stylesheet"&&(c.state.loading&4)===0&&(s=c.instance,c.state.loading|=4,V5(s,a.precedence,e));return c.instance}function V5(e,c,a){for(var s=a.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),u=s.length?s[s.length-1]:null,d=u,b=0;b title"):null)}function gh(e,c,a){if(a===1||c.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof c.precedence!="string"||typeof c.href!="string"||c.href==="")break;return!0;case"link":if(typeof c.rel!="string"||typeof c.href!="string"||c.href===""||c.onLoad||c.onError)break;switch(c.rel){case"stylesheet":return e=c.disabled,typeof c.precedence=="string"&&e==null;default:return!0}case"script":if(c.async&&typeof c.async!="function"&&typeof c.async!="symbol"&&!c.onLoad&&!c.onError&&c.src&&typeof c.src=="string")return!0}return!1}function ir(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function xh(e,c,a,s){if(a.type==="stylesheet"&&(typeof s.media!="string"||matchMedia(s.media).matches!==!1)&&(a.state.loading&4)===0){if(a.instance===null){var u=O6(s.href),d=c.querySelector(Y0(u));if(d){c=d._p,c!==null&&typeof c=="object"&&typeof c.then=="function"&&(e.count++,e=A5.bind(e),c.then(e,e)),a.state.loading|=4,a.instance=d,H2(d);return}d=c.ownerDocument||c,s=ar(s),(u=d4.get(u))&&R9(s,u),d=d.createElement("link"),H2(d);var b=d;b._p=new Promise(function(V,k){b.onload=V,b.onerror=k}),j2(d,"link",s),a.instance=d}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(a,c),(c=a.state.preload)&&(a.state.loading&3)===0&&(e.count++,a=A5.bind(e),c.addEventListener("load",a),c.addEventListener("error",a))}}var T9=0;function Mh(e,c){return e.stylesheets&&e.count===0&&B5(e,e.stylesheets),0T9?50:800)+c);return e.unsuspend=a,function(){e.unsuspend=null,clearTimeout(s),clearTimeout(u)}}:null}function A5(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)B5(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var L5=null;function B5(e,c){e.stylesheets=null,e.unsuspend!==null&&(e.count++,L5=new Map,c.forEach(bh,e),L5=null,A5.call(e))}function bh(e,c){if(!(c.state.loading&4)){var a=L5.get(e);if(a)var s=a.get(null);else{a=new Map,L5.set(e,a);for(var u=e.querySelectorAll("link[data-precedence],style[data-precedence]"),d=0;d"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(n){console.error(n)}}return t(),Y9.exports=qh(),Y9.exports}var Oh=Dh();var jr="popstate";function _h(t={}){function n(o,h){let{pathname:f,search:m,hash:p}=o.location;return ye("",{pathname:f,search:m,hash:p},h.state&&h.state.usr||null,h.state&&h.state.key||"default")}function r(o,h){return typeof h=="string"?h:h8(h)}return Zh(n,r,null,t)}function o2(t,n){if(t===!1||t===null||typeof t>"u")throw new Error(n)}function C4(t,n){if(!t){typeof console<"u"&&console.warn(n);try{throw new Error(n)}catch{}}}function Uh(){return Math.random().toString(36).substring(2,10)}function Nr(t,n){return{usr:t.state,key:t.key,idx:n}}function ye(t,n,r=null,o){return{pathname:typeof t=="string"?t:t.pathname,search:"",hash:"",...typeof n=="string"?c0(n):n,state:r,key:n&&n.key||o||Uh()}}function h8({pathname:t="/",search:n="",hash:r=""}){return n&&n!=="?"&&(t+=n.charAt(0)==="?"?n:"?"+n),r&&r!=="#"&&(t+=r.charAt(0)==="#"?r:"#"+r),t}function c0(t){let n={};if(t){let r=t.indexOf("#");r>=0&&(n.hash=t.substring(r),t=t.substring(0,r));let o=t.indexOf("?");o>=0&&(n.search=t.substring(o),t=t.substring(0,o)),t&&(n.pathname=t)}return n}function Zh(t,n,r,o={}){let{window:h=document.defaultView,v5Compat:f=!1}=o,m=h.history,p="POP",g=null,z=x();z==null&&(z=0,m.replaceState({...m.state,idx:z},""));function x(){return(m.state||{idx:null}).idx}function M(){p="POP";let w=x(),C=w==null?null:w-z;z=w,g&&g({action:p,location:H.location,delta:C})}function y(w,C){p="PUSH";let L=ye(H.location,w,C);z=x()+1;let A=Nr(L,z),j=H.createHref(L);try{m.pushState(A,"",j)}catch(F){if(F instanceof DOMException&&F.name==="DataCloneError")throw F;h.location.assign(j)}f&&g&&g({action:p,location:H.location,delta:1})}function S(w,C){p="REPLACE";let L=ye(H.location,w,C);z=x();let A=Nr(L,z),j=H.createHref(L);m.replaceState(A,"",j),f&&g&&g({action:p,location:H.location,delta:0})}function B(w){return Gh(w)}let H={get action(){return p},get location(){return t(h,m)},listen(w){if(g)throw new Error("A history only accepts one active listener");return h.addEventListener(jr,M),g=w,()=>{h.removeEventListener(jr,M),g=null}},createHref(w){return n(h,w)},createURL:B,encodeLocation(w){let C=B(w);return{pathname:C.pathname,search:C.search,hash:C.hash}},push:y,replace:S,go(w){return m.go(w)}};return H}function Gh(t,n=!1){let r="http://localhost";typeof window<"u"&&(r=window.location.origin!=="null"?window.location.origin:window.location.href),o2(r,"No window.location.(origin|href) available to create URL");let o=typeof t=="string"?t:h8(t);return o=o.replace(/ $/,"%20"),!n&&o.startsWith("//")&&(o=r+o),new URL(o,r)}function Ei(t,n,r="/"){return $h(t,n,r,!1)}function $h(t,n,r,o){let h=typeof n=="string"?c0(n):n,f=c3(h.pathname||"/",r);if(f==null)return null;let m=Ti(t);Yh(m);let p=null;for(let g=0;p==null&&g{let x={relativePath:z===void 0?m.path||"":z,caseSensitive:m.caseSensitive===!0,childrenIndex:p,route:m};if(x.relativePath.startsWith("/")){if(!x.relativePath.startsWith(o)&&g)return;o2(x.relativePath.startsWith(o),`Absolute route path "${x.relativePath}" nested under path "${o}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),x.relativePath=x.relativePath.slice(o.length)}let M=e3([o,x.relativePath]),y=r.concat(x);m.children&&m.children.length>0&&(o2(m.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${M}".`),Ti(m.children,n,y,M,g)),!(m.path==null&&!m.index)&&n.push({path:M,score:Wh(M,m.index),routesMeta:y})};return t.forEach((m,p)=>{if(m.path===""||!m.path?.includes("?"))f(m,p);else for(let g of qi(m.path))f(m,p,!0,g)}),n}function qi(t){let n=t.split("/");if(n.length===0)return[];let[r,...o]=n,h=r.endsWith("?"),f=r.replace(/\?$/,"");if(o.length===0)return h?[f,""]:[f];let m=qi(o.join("/")),p=[];return p.push(...m.map(g=>g===""?f:[f,g].join("/"))),h&&p.push(...m),p.map(g=>t.startsWith("/")&&g===""?"/":g)}function Yh(t){t.sort((n,r)=>n.score!==r.score?r.score-n.score:td(n.routesMeta.map(o=>o.childrenIndex),r.routesMeta.map(o=>o.childrenIndex)))}var Ih=/^:[\w-]+$/,Ph=3,Qh=2,Xh=1,Kh=10,Jh=-2,Fr=t=>t==="*";function Wh(t,n){let r=t.split("/"),o=r.length;return r.some(Fr)&&(o+=Jh),n&&(o+=Qh),r.filter(h=>!Fr(h)).reduce((h,f)=>h+(Ih.test(f)?Ph:f===""?Xh:Kh),o)}function td(t,n){return t.length===n.length&&t.slice(0,-1).every((o,h)=>o===n[h])?t[t.length-1]-n[n.length-1]:0}function ed(t,n,r=!1){let{routesMeta:o}=t,h={},f="/",m=[];for(let p=0;p{if(x==="*"){let B=p[y]||"";m=f.slice(0,f.length-B.length).replace(/(.)\/+$/,"$1")}const S=p[y];return M&&!S?z[x]=void 0:z[x]=(S||"").replace(/%2F/g,"/"),z},{}),pathname:f,pathnameBase:m,pattern:t}}function cd(t,n=!1,r=!0){C4(t==="*"||!t.endsWith("*")||t.endsWith("/*"),`Route path "${t}" will be treated as if it were "${t.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${t.replace(/\*$/,"/*")}".`);let o=[],h="^"+t.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(m,p,g)=>(o.push({paramName:p,isOptional:g!=null}),g?"/?([^\\/]+)?":"/([^\\/]+)")).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return t.endsWith("*")?(o.push({paramName:"*"}),h+=t==="*"||t==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?h+="\\/*$":t!==""&&t!=="/"&&(h+="(?:(?=\\/|$))"),[new RegExp(h,n?void 0:"i"),o]}function ad(t){try{return t.split("/").map(n=>decodeURIComponent(n).replace(/\//g,"%2F")).join("/")}catch(n){return C4(!1,`The URL path "${t}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${n}).`),t}}function c3(t,n){if(n==="/")return t;if(!t.toLowerCase().startsWith(n.toLowerCase()))return null;let r=n.endsWith("/")?n.length-1:n.length,o=t.charAt(r);return o&&o!=="/"?null:t.slice(r)||"/"}var nd=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,ld=t=>nd.test(t);function rd(t,n="/"){let{pathname:r,search:o="",hash:h=""}=typeof t=="string"?c0(t):t,f;if(r)if(ld(r))f=r;else{if(r.includes("//")){let m=r;r=r.replace(/\/\/+/g,"/"),C4(!1,`Pathnames cannot have embedded double slashes - normalizing ${m} -> ${r}`)}r.startsWith("/")?f=kr(r.substring(1),"/"):f=kr(r,n)}else f=n;return{pathname:f,search:od(o),hash:ud(h)}}function kr(t,n){let r=n.replace(/\/+$/,"").split("/");return t.split("/").forEach(h=>{h===".."?r.length>1&&r.pop():h!=="."&&r.push(h)}),r.length>1?r.join("/"):"/"}function X9(t,n,r,o){return`Cannot include a '${t}' character in a manually specified \`to.${n}\` field [${JSON.stringify(o)}]. Please separate it out to the \`to.${r}\` field. Alternatively you may provide the full path as a string in and the router will parse it for you.`}function id(t){return t.filter((n,r)=>r===0||n.route.path&&n.route.path.length>0)}function Di(t){let n=id(t);return n.map((r,o)=>o===n.length-1?r.pathname:r.pathnameBase)}function Oi(t,n,r,o=!1){let h;typeof t=="string"?h=c0(t):(h={...t},o2(!h.pathname||!h.pathname.includes("?"),X9("?","pathname","search",h)),o2(!h.pathname||!h.pathname.includes("#"),X9("#","pathname","hash",h)),o2(!h.search||!h.search.includes("#"),X9("#","search","hash",h)));let f=t===""||h.pathname==="",m=f?"/":h.pathname,p;if(m==null)p=r;else{let M=n.length-1;if(!o&&m.startsWith("..")){let y=m.split("/");for(;y[0]==="..";)y.shift(),M-=1;h.pathname=y.join("/")}p=M>=0?n[M]:"/"}let g=rd(h,p),z=m&&m!=="/"&&m.endsWith("/"),x=(f||m===".")&&r.endsWith("/");return!g.pathname.endsWith("/")&&(z||x)&&(g.pathname+="/"),g}var e3=t=>t.join("/").replace(/\/\/+/g,"/"),sd=t=>t.replace(/\/+$/,"").replace(/^\/*/,"/"),od=t=>!t||t==="?"?"":t.startsWith("?")?t:"?"+t,ud=t=>!t||t==="#"?"":t.startsWith("#")?t:"#"+t;function hd(t){return t!=null&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.internal=="boolean"&&"data"in t}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var _i=["POST","PUT","PATCH","DELETE"];new Set(_i);var dd=["GET",..._i];new Set(dd);var a0=v.createContext(null);a0.displayName="DataRouter";var M7=v.createContext(null);M7.displayName="DataRouterState";v.createContext(!1);var Ui=v.createContext({isTransitioning:!1});Ui.displayName="ViewTransition";var fd=v.createContext(new Map);fd.displayName="Fetchers";var vd=v.createContext(null);vd.displayName="Await";var N4=v.createContext(null);N4.displayName="Navigation";var g8=v.createContext(null);g8.displayName="Location";var n3=v.createContext({outlet:null,matches:[],isDataRoute:!1});n3.displayName="Route";var Ze=v.createContext(null);Ze.displayName="RouteError";function md(t,{relative:n}={}){o2(x8(),"useHref() may be used only in the context of a component.");let{basename:r,navigator:o}=v.useContext(N4),{hash:h,pathname:f,search:m}=M8(t,{relative:n}),p=f;return r!=="/"&&(p=f==="/"?r:e3([r,f])),o.createHref({pathname:p,search:m,hash:h})}function x8(){return v.useContext(g8)!=null}function a6(){return o2(x8(),"useLocation() may be used only in the context of a component."),v.useContext(g8).location}var Zi="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function Gi(t){v.useContext(N4).static||v.useLayoutEffect(t)}function pd(){let{isDataRoute:t}=v.useContext(n3);return t?Ld():zd()}function zd(){o2(x8(),"useNavigate() may be used only in the context of a component.");let t=v.useContext(a0),{basename:n,navigator:r}=v.useContext(N4),{matches:o}=v.useContext(n3),{pathname:h}=a6(),f=JSON.stringify(Di(o)),m=v.useRef(!1);return Gi(()=>{m.current=!0}),v.useCallback((g,z={})=>{if(C4(m.current,Zi),!m.current)return;if(typeof g=="number"){r.go(g);return}let x=Oi(g,JSON.parse(f),h,z.relative==="path");t==null&&n!=="/"&&(x.pathname=x.pathname==="/"?n:e3([n,x.pathname])),(z.replace?r.replace:r.push)(x,z.state,z)},[n,r,f,h,t])}v.createContext(null);function M8(t,{relative:n}={}){let{matches:r}=v.useContext(n3),{pathname:o}=a6(),h=JSON.stringify(Di(r));return v.useMemo(()=>Oi(t,JSON.parse(h),o,n==="path"),[t,h,o,n])}function gd(t,n){return $i(t,n)}function $i(t,n,r,o,h){o2(x8(),"useRoutes() may be used only in the context of a component.");let{navigator:f}=v.useContext(N4),{matches:m}=v.useContext(n3),p=m[m.length-1],g=p?p.params:{},z=p?p.pathname:"/",x=p?p.pathnameBase:"/",M=p&&p.route;{let L=M&&M.path||"";Yi(z,!M||L.endsWith("*")||L.endsWith("*?"),`You rendered descendant (or called \`useRoutes()\`) at "${z}" (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 y=a6(),S;if(n){let L=typeof n=="string"?c0(n):n;o2(x==="/"||L.pathname?.startsWith(x),`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 "${x}" but pathname "${L.pathname}" was given in the \`location\` prop.`),S=L}else S=y;let B=S.pathname||"/",H=B;if(x!=="/"){let L=x.replace(/^\//,"").split("/");H="/"+B.replace(/^\//,"").split("/").slice(L.length).join("/")}let w=Ei(t,{pathname:H});C4(M||w!=null,`No routes matched location "${S.pathname}${S.search}${S.hash}" `),C4(w==null||w[w.length-1].route.element!==void 0||w[w.length-1].route.Component!==void 0||w[w.length-1].route.lazy!==void 0,`Matched leaf route at location "${S.pathname}${S.search}${S.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 C=Cd(w&&w.map(L=>Object.assign({},L,{params:Object.assign({},g,L.params),pathname:e3([x,f.encodeLocation?f.encodeLocation(L.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:L.pathname]),pathnameBase:L.pathnameBase==="/"?x:e3([x,f.encodeLocation?f.encodeLocation(L.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:L.pathnameBase])})),m,r,o,h);return n&&C?v.createElement(g8.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",...S},navigationType:"POP"}},C):C}function xd(){let t=Ad(),n=hd(t)?`${t.status} ${t.statusText}`:t instanceof Error?t.message:JSON.stringify(t),r=t instanceof Error?t.stack:null,o="rgba(200,200,200, 0.5)",h={padding:"0.5rem",backgroundColor:o},f={padding:"2px 4px",backgroundColor:o},m=null;return console.error("Error handled by React Router default ErrorBoundary:",t),m=v.createElement(v.Fragment,null,v.createElement("p",null,"💿 Hey developer 👋"),v.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",v.createElement("code",{style:f},"ErrorBoundary")," or"," ",v.createElement("code",{style:f},"errorElement")," prop on your route.")),v.createElement(v.Fragment,null,v.createElement("h2",null,"Unexpected Application Error!"),v.createElement("h3",{style:{fontStyle:"italic"}},n),r?v.createElement("pre",{style:h},r):null,m)}var Md=v.createElement(xd,null),bd=class extends v.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,n){return n.location!==t.location||n.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:n.error,location:n.location,revalidation:t.revalidation||n.revalidation}}componentDidCatch(t,n){this.props.onError?this.props.onError(t,n):console.error("React Router caught the following error during render",t)}render(){return this.state.error!==void 0?v.createElement(n3.Provider,{value:this.props.routeContext},v.createElement(Ze.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};function yd({routeContext:t,match:n,children:r}){let o=v.useContext(a0);return o&&o.static&&o.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(o.staticContext._deepestRenderedBoundaryId=n.route.id),v.createElement(n3.Provider,{value:t},r)}function Cd(t,n=[],r=null,o=null,h=null){if(t==null){if(!r)return null;if(r.errors)t=r.matches;else if(n.length===0&&!r.initialized&&r.matches.length>0)t=r.matches;else return null}let f=t,m=r?.errors;if(m!=null){let x=f.findIndex(M=>M.route.id&&m?.[M.route.id]!==void 0);o2(x>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(m).join(",")}`),f=f.slice(0,Math.min(f.length,x+1))}let p=!1,g=-1;if(r)for(let x=0;x=0?f=f.slice(0,g+1):f=[f[0]];break}}}let z=r&&o?(x,M)=>{o(x,{location:r.location,params:r.matches?.[0]?.params??{},errorInfo:M})}:void 0;return f.reduceRight((x,M,y)=>{let S,B=!1,H=null,w=null;r&&(S=m&&M.route.id?m[M.route.id]:void 0,H=M.route.errorElement||Md,p&&(g<0&&y===0?(Yi("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),B=!0,w=null):g===y&&(B=!0,w=M.route.hydrateFallbackElement||null)));let C=n.concat(f.slice(0,y+1)),L=()=>{let A;return S?A=H:B?A=w:M.route.Component?A=v.createElement(M.route.Component,null):M.route.element?A=M.route.element:A=x,v.createElement(yd,{match:M,routeContext:{outlet:x,matches:C,isDataRoute:r!=null},children:A})};return r&&(M.route.ErrorBoundary||M.route.errorElement||y===0)?v.createElement(bd,{location:r.location,revalidation:r.revalidation,component:H,error:S,children:L(),routeContext:{outlet:null,matches:C,isDataRoute:!0},onError:z}):L()},null)}function Ge(t){return`${t} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function wd(t){let n=v.useContext(a0);return o2(n,Ge(t)),n}function Hd(t){let n=v.useContext(M7);return o2(n,Ge(t)),n}function Vd(t){let n=v.useContext(n3);return o2(n,Ge(t)),n}function $e(t){let n=Vd(t),r=n.matches[n.matches.length-1];return o2(r.route.id,`${t} can only be used on routes that contain a unique "id"`),r.route.id}function Sd(){return $e("useRouteId")}function Ad(){let t=v.useContext(Ze),n=Hd("useRouteError"),r=$e("useRouteError");return t!==void 0?t:n.errors?.[r]}function Ld(){let{router:t}=wd("useNavigate"),n=$e("useNavigate"),r=v.useRef(!1);return Gi(()=>{r.current=!0}),v.useCallback(async(h,f={})=>{C4(r.current,Zi),r.current&&(typeof h=="number"?t.navigate(h):await t.navigate(h,{fromRouteId:n,...f}))},[t,n])}var Rr={};function Yi(t,n,r){!n&&!Rr[t]&&(Rr[t]=!0,C4(!1,r))}v.memo(Bd);function Bd({routes:t,future:n,state:r,unstable_onError:o}){return $i(t,void 0,r,o,n)}function Q5(t){o2(!1,"A is only ever to be used as the child of element, never rendered directly. Please wrap your in a .")}function jd({basename:t="/",children:n=null,location:r,navigationType:o="POP",navigator:h,static:f=!1}){o2(!x8(),"You cannot render a inside another . You should never have more than one in your app.");let m=t.replace(/^\/*/,"/"),p=v.useMemo(()=>({basename:m,navigator:h,static:f,future:{}}),[m,h,f]);typeof r=="string"&&(r=c0(r));let{pathname:g="/",search:z="",hash:x="",state:M=null,key:y="default"}=r,S=v.useMemo(()=>{let B=c3(g,m);return B==null?null:{location:{pathname:B,search:z,hash:x,state:M,key:y},navigationType:o}},[m,g,z,x,M,y,o]);return C4(S!=null,` is not able to match the URL "${g}${z}${x}" because it does not start with the basename, so the won't render anything.`),S==null?null:v.createElement(N4.Provider,{value:p},v.createElement(g8.Provider,{children:n,value:S}))}function Nd({children:t,location:n}){return gd(Ce(t),n)}function Ce(t,n=[]){let r=[];return v.Children.forEach(t,(o,h)=>{if(!v.isValidElement(o))return;let f=[...n,h];if(o.type===v.Fragment){r.push.apply(r,Ce(o.props.children,f));return}o2(o.type===Q5,`[${typeof o.type=="string"?o.type:o.type.name}] is not a component. All component children of must be a or `),o2(!o.props.index||!o.props.children,"An index route cannot have child routes.");let m={id:o.props.id||f.join("-"),caseSensitive:o.props.caseSensitive,element:o.props.element,Component:o.props.Component,index:o.props.index,path:o.props.path,middleware:o.props.middleware,loader:o.props.loader,action:o.props.action,hydrateFallbackElement:o.props.hydrateFallbackElement,HydrateFallback:o.props.HydrateFallback,errorElement:o.props.errorElement,ErrorBoundary:o.props.ErrorBoundary,hasErrorBoundary:o.props.hasErrorBoundary===!0||o.props.ErrorBoundary!=null||o.props.errorElement!=null,shouldRevalidate:o.props.shouldRevalidate,handle:o.props.handle,lazy:o.props.lazy};o.props.children&&(m.children=Ce(o.props.children,f)),r.push(m)}),r}var X5="get",K5="application/x-www-form-urlencoded";function b7(t){return t!=null&&typeof t.tagName=="string"}function Fd(t){return b7(t)&&t.tagName.toLowerCase()==="button"}function kd(t){return b7(t)&&t.tagName.toLowerCase()==="form"}function Rd(t){return b7(t)&&t.tagName.toLowerCase()==="input"}function Ed(t){return!!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}function Td(t,n){return t.button===0&&(!n||n==="_self")&&!Ed(t)}var q5=null;function qd(){if(q5===null)try{new FormData(document.createElement("form"),0),q5=!1}catch{q5=!0}return q5}var Dd=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function K9(t){return t!=null&&!Dd.has(t)?(C4(!1,`"${t}" is not a valid \`encType\` for \`
\`/\`\` and will default to "${K5}"`),null):t}function Od(t,n){let r,o,h,f,m;if(kd(t)){let p=t.getAttribute("action");o=p?c3(p,n):null,r=t.getAttribute("method")||X5,h=K9(t.getAttribute("enctype"))||K5,f=new FormData(t)}else if(Fd(t)||Rd(t)&&(t.type==="submit"||t.type==="image")){let p=t.form;if(p==null)throw new Error('Cannot submit a + ) : null; + return ( - + {rosterItems.length === 0 ? (

No rovers registered.

) : ( diff --git a/webui/src/context/SessionContext.jsx b/webui/src/context/SessionContext.jsx index eb96d559..6eeedf20 100644 --- a/webui/src/context/SessionContext.jsx +++ b/webui/src/context/SessionContext.jsx @@ -182,6 +182,7 @@ export function SessionProvider({ children }) { requestVerification: () => emitWithAck('verification:request'), requestPrivateRoverAccess: (roverId) => emitWithAck('session:privateRover:requestAccess', { roverId }), + rebootOwnRover: () => emitWithAck('session:rebootOwnRover'), triggerReplay: (sourcesOrPayload = [], title = '') => { if (sourcesOrPayload && typeof sourcesOrPayload === 'object' && !Array.isArray(sourcesOrPayload)) { return emitWithAck('replay:trigger', sourcesOrPayload);