diff --git a/server/public/assets/index-DFvdwweA.js b/server/public/assets/index-DFvdwweA.js new file mode 100644 index 00000000..c5fea823 --- /dev/null +++ b/server/public/assets/index-DFvdwweA.js @@ -0,0 +1,11 @@ +(function(){const a=document.createElement("link").relList;if(a&&a.supports&&a.supports("modulepreload"))return;for(const f of document.querySelectorAll('link[rel="modulepreload"]'))c(f);new MutationObserver(f=>{for(const d of f)if(d.type==="childList")for(const y of d.addedNodes)y.tagName==="LINK"&&y.rel==="modulepreload"&&c(y)}).observe(document,{childList:!0,subtree:!0});function s(f){const d={};return f.integrity&&(d.integrity=f.integrity),f.referrerPolicy&&(d.referrerPolicy=f.referrerPolicy),f.crossOrigin==="use-credentials"?d.credentials="include":f.crossOrigin==="anonymous"?d.credentials="omit":d.credentials="same-origin",d}function c(f){if(f.ep)return;f.ep=!0;const d=s(f);fetch(f.href,d)}})();var oc={exports:{}},Za={};var sm;function I0(){if(sm)return Za;sm=1;var i=Symbol.for("react.transitional.element"),a=Symbol.for("react.fragment");function s(c,f,d){var y=null;if(d!==void 0&&(y=""+d),f.key!==void 0&&(y=""+f.key),"key"in f){d={};for(var g in f)g!=="key"&&(d[g]=f[g])}else d=f;return f=d.ref,{$$typeof:i,type:c,key:y,ref:f!==void 0?f:null,props:d}}return Za.Fragment=a,Za.jsx=s,Za.jsxs=s,Za}var rm;function P0(){return rm||(rm=1,oc.exports=I0()),oc.exports}var h=P0(),fc={exports:{}},ae={};var cm;function ev(){if(cm)return ae;cm=1;var i=Symbol.for("react.transitional.element"),a=Symbol.for("react.portal"),s=Symbol.for("react.fragment"),c=Symbol.for("react.strict_mode"),f=Symbol.for("react.profiler"),d=Symbol.for("react.consumer"),y=Symbol.for("react.context"),g=Symbol.for("react.forward_ref"),p=Symbol.for("react.suspense"),v=Symbol.for("react.memo"),S=Symbol.for("react.lazy"),_=Symbol.for("react.activity"),M=Symbol.iterator;function C(A){return A===null||typeof A!="object"?null:(A=M&&A[M]||A["@@iterator"],typeof A=="function"?A:null)}var z={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},H=Object.assign,q={};function Y(A,L,K){this.props=A,this.context=L,this.refs=q,this.updater=K||z}Y.prototype.isReactComponent={},Y.prototype.setState=function(A,L){if(typeof A!="object"&&typeof A!="function"&&A!=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,A,L,"setState")},Y.prototype.forceUpdate=function(A){this.updater.enqueueForceUpdate(this,A,"forceUpdate")};function Q(){}Q.prototype=Y.prototype;function V(A,L,K){this.props=A,this.context=L,this.refs=q,this.updater=K||z}var J=V.prototype=new Q;J.constructor=V,H(J,Y.prototype),J.isPureReactComponent=!0;var k=Array.isArray;function G(){}var X={H:null,A:null,T:null,S:null},P=Object.prototype.hasOwnProperty;function $(A,L,K){var W=K.ref;return{$$typeof:i,type:A,key:L,ref:W!==void 0?W:null,props:K}}function le(A,L){return $(A.type,L,A.props)}function je(A){return typeof A=="object"&&A!==null&&A.$$typeof===i}function Le(A){var L={"=":"=0",":":"=2"};return"$"+A.replace(/[=:]/g,function(K){return L[K]})}var Lt=/\/+/g;function kt(A,L){return typeof A=="object"&&A!==null&&A.key!=null?Le(""+A.key):L.toString(36)}function rt(A){switch(A.status){case"fulfilled":return A.value;case"rejected":throw A.reason;default:switch(typeof A.status=="string"?A.then(G,G):(A.status="pending",A.then(function(L){A.status==="pending"&&(A.status="fulfilled",A.value=L)},function(L){A.status==="pending"&&(A.status="rejected",A.reason=L)})),A.status){case"fulfilled":return A.value;case"rejected":throw A.reason}}throw A}function D(A,L,K,W,ie){var re=typeof A;(re==="undefined"||re==="boolean")&&(A=null);var xe=!1;if(A===null)xe=!0;else switch(re){case"bigint":case"string":case"number":xe=!0;break;case"object":switch(A.$$typeof){case i:case a:xe=!0;break;case S:return xe=A._init,D(xe(A._payload),L,K,W,ie)}}if(xe)return ie=ie(A),xe=W===""?"."+kt(A,0):W,k(ie)?(K="",xe!=null&&(K=xe.replace(Lt,"$&/")+"/"),D(ie,L,K,"",function(Pl){return Pl})):ie!=null&&(je(ie)&&(ie=le(ie,K+(ie.key==null||A&&A.key===ie.key?"":(""+ie.key).replace(Lt,"$&/")+"/")+xe)),L.push(ie)),1;xe=0;var Ie=W===""?".":W+":";if(k(A))for(var ze=0;ze>>1,pe=D[be];if(0>>1;bef(K,ne))Wf(ie,K)?(D[be]=ie,D[W]=ne,be=W):(D[be]=K,D[L]=ne,be=L);else if(Wf(ie,ne))D[be]=ie,D[W]=ne,be=W;else break e}}return Z}function f(D,Z){var ne=D.sortIndex-Z.sortIndex;return ne!==0?ne:D.id-Z.id}if(i.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var d=performance;i.unstable_now=function(){return d.now()}}else{var y=Date,g=y.now();i.unstable_now=function(){return y.now()-g}}var p=[],v=[],S=1,_=null,M=3,C=!1,z=!1,H=!1,q=!1,Y=typeof setTimeout=="function"?setTimeout:null,Q=typeof clearTimeout=="function"?clearTimeout:null,V=typeof setImmediate<"u"?setImmediate:null;function J(D){for(var Z=s(v);Z!==null;){if(Z.callback===null)c(v);else if(Z.startTime<=D)c(v),Z.sortIndex=Z.expirationTime,a(p,Z);else break;Z=s(v)}}function k(D){if(H=!1,J(D),!z)if(s(p)!==null)z=!0,G||(G=!0,Le());else{var Z=s(v);Z!==null&&rt(k,Z.startTime-D)}}var G=!1,X=-1,P=5,$=-1;function le(){return q?!0:!(i.unstable_now()-$D&&le());){var be=_.callback;if(typeof be=="function"){_.callback=null,M=_.priorityLevel;var pe=be(_.expirationTime<=D);if(D=i.unstable_now(),typeof pe=="function"){_.callback=pe,J(D),Z=!0;break t}_===s(p)&&c(p),J(D)}else c(p);_=s(p)}if(_!==null)Z=!0;else{var A=s(v);A!==null&&rt(k,A.startTime-D),Z=!1}}break e}finally{_=null,M=ne,C=!1}Z=void 0}}finally{Z?Le():G=!1}}}var Le;if(typeof V=="function")Le=function(){V(je)};else if(typeof MessageChannel<"u"){var Lt=new MessageChannel,kt=Lt.port2;Lt.port1.onmessage=je,Le=function(){kt.postMessage(null)}}else Le=function(){Y(je,0)};function rt(D,Z){X=Y(function(){D(i.unstable_now())},Z)}i.unstable_IdlePriority=5,i.unstable_ImmediatePriority=1,i.unstable_LowPriority=4,i.unstable_NormalPriority=3,i.unstable_Profiling=null,i.unstable_UserBlockingPriority=2,i.unstable_cancelCallback=function(D){D.callback=null},i.unstable_forceFrameRate=function(D){0>D||125be?(D.sortIndex=ne,a(v,D),s(p)===null&&D===s(v)&&(H?(Q(X),X=-1):H=!0,rt(k,ne-be))):(D.sortIndex=pe,a(p,D),z||C||(z=!0,G||(G=!0,Le()))),D},i.unstable_shouldYield=le,i.unstable_wrapCallback=function(D){var Z=M;return function(){var ne=M;M=Z;try{return D.apply(this,arguments)}finally{M=ne}}}})(mc)),mc}var dm;function nv(){return dm||(dm=1,hc.exports=tv()),hc.exports}var pc={exports:{}},We={};var hm;function lv(){if(hm)return We;hm=1;var i=qc();function a(p){var v="https://react.dev/errors/"+p;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(i)}catch(a){console.error(a)}}return i(),pc.exports=lv(),pc.exports}var pm;function iv(){if(pm)return Ka;pm=1;var i=nv(),a=qc(),s=av();function c(e){var t="https://react.dev/errors/"+e;if(1pe||(e.current=be[pe],be[pe]=null,pe--)}function K(e,t){pe++,be[pe]=e.current,e.current=t}var W=A(null),ie=A(null),re=A(null),xe=A(null);function Ie(e,t){switch(K(re,t),K(ie,e),K(W,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?jh(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=jh(t),e=Oh(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}L(W),K(W,e)}function ze(){L(W),L(ie),L(re)}function Pl(e){e.memoizedState!==null&&K(xe,e);var t=W.current,n=Oh(t,e.type);t!==n&&(K(ie,e),K(W,n))}function ii(e){ie.current===e&&(L(W),L(ie)),xe.current===e&&(L(xe),Va._currentValue=ne)}var Zu,ao;function Vn(e){if(Zu===void 0)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);Zu=t&&t[1]||"",ao=-1)":-1u||x[l]!==R[u]){var w=` +`+x[l].replace(" at new "," at ");return e.displayName&&w.includes("")&&(w=w.replace("",e.displayName)),w}while(1<=l&&0<=u);break}}}finally{Ku=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?Vn(n):""}function Mp(e,t){switch(e.tag){case 26:case 27:case 5:return Vn(e.type);case 16:return Vn("Lazy");case 13:return e.child!==t&&t!==null?Vn("Suspense Fallback"):Vn("Suspense");case 19:return Vn("SuspenseList");case 0:case 15:return Ju(e.type,!1);case 11:return Ju(e.type.render,!1);case 1:return Ju(e.type,!0);case 31:return Vn("Activity");default:return""}}function io(e){try{var t="",n=null;do t+=Mp(e,n),n=e,e=e.return;while(e);return t}catch(l){return` +Error generating stack: `+l.message+` +`+l.stack}}var $u=Object.prototype.hasOwnProperty,Fu=i.unstable_scheduleCallback,Wu=i.unstable_cancelCallback,jp=i.unstable_shouldYield,Op=i.unstable_requestPaint,ct=i.unstable_now,wp=i.unstable_getCurrentPriorityLevel,uo=i.unstable_ImmediatePriority,so=i.unstable_UserBlockingPriority,ui=i.unstable_NormalPriority,Dp=i.unstable_LowPriority,ro=i.unstable_IdlePriority,zp=i.log,Bp=i.unstable_setDisableYieldValue,ea=null,ot=null;function yn(e){if(typeof zp=="function"&&Bp(e),ot&&typeof ot.setStrictMode=="function")try{ot.setStrictMode(ea,e)}catch{}}var ft=Math.clz32?Math.clz32:kp,Up=Math.log,Lp=Math.LN2;function kp(e){return e>>>=0,e===0?32:31-(Up(e)/Lp|0)|0}var si=256,ri=262144,ci=4194304;function Gn(e){var t=e&42;if(t!==0)return t;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 oi(e,t,n){var l=e.pendingLanes;if(l===0)return 0;var u=0,r=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var m=l&134217727;return m!==0?(l=m&~r,l!==0?u=Gn(l):(o&=m,o!==0?u=Gn(o):n||(n=m&~e,n!==0&&(u=Gn(n))))):(m=l&~r,m!==0?u=Gn(m):o!==0?u=Gn(o):n||(n=l&~e,n!==0&&(u=Gn(n)))),u===0?0:t!==0&&t!==u&&(t&r)===0&&(r=u&-u,n=t&-t,r>=n||r===32&&(n&4194048)!==0)?t:u}function ta(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function Hp(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+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 t+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 co(){var e=ci;return ci<<=1,(ci&62914560)===0&&(ci=4194304),e}function Iu(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function na(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function qp(e,t,n,l,u,r){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var m=e.entanglements,x=e.expirationTimes,R=e.hiddenUpdates;for(n=o&~n;0"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var Zp=/[\n"\\]/g;function xt(e){return e.replace(Zp,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function as(e,t,n,l,u,r,o,m){e.name="",o!=null&&typeof o!="function"&&typeof o!="symbol"&&typeof o!="boolean"?e.type=o:e.removeAttribute("type"),t!=null?o==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+bt(t)):e.value!==""+bt(t)&&(e.value=""+bt(t)):o!=="submit"&&o!=="reset"||e.removeAttribute("value"),t!=null?is(e,o,bt(t)):n!=null?is(e,o,bt(n)):l!=null&&e.removeAttribute("value"),u==null&&r!=null&&(e.defaultChecked=!!r),u!=null&&(e.checked=u&&typeof u!="function"&&typeof u!="symbol"),m!=null&&typeof m!="function"&&typeof m!="symbol"&&typeof m!="boolean"?e.name=""+bt(m):e.removeAttribute("name")}function Ao(e,t,n,l,u,r,o,m){if(r!=null&&typeof r!="function"&&typeof r!="symbol"&&typeof r!="boolean"&&(e.type=r),t!=null||n!=null){if(!(r!=="submit"&&r!=="reset"||t!=null)){ls(e);return}n=n!=null?""+bt(n):"",t=t!=null?""+bt(t):n,m||t===e.value||(e.value=t),e.defaultValue=t}l=l??u,l=typeof l!="function"&&typeof l!="symbol"&&!!l,e.checked=m?e.checked:!!l,e.defaultChecked=!!l,o!=null&&typeof o!="function"&&typeof o!="symbol"&&typeof o!="boolean"&&(e.name=o),ls(e)}function is(e,t,n){t==="number"&&hi(e.ownerDocument)===e||e.defaultValue===""+n||(e.defaultValue=""+n)}function pl(e,t,n,l){if(e=e.options,t){t={};for(var u=0;u"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),os=!1;if(Jt)try{var ua={};Object.defineProperty(ua,"passive",{get:function(){os=!0}}),window.addEventListener("test",ua,ua),window.removeEventListener("test",ua,ua)}catch{os=!1}var gn=null,fs=null,pi=null;function jo(){if(pi)return pi;var e,t=fs,n=t.length,l,u="value"in gn?gn.value:gn.textContent,r=u.length;for(e=0;e=ca),Uo=" ",Lo=!1;function ko(e,t){switch(e){case"keyup":return xy.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Ho(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var bl=!1;function Ey(e,t){switch(e){case"compositionend":return Ho(t);case"keypress":return t.which!==32?null:(Lo=!0,Uo);case"textInput":return e=t.data,e===Uo&&Lo?null:e;default:return null}}function Ay(e,t){if(bl)return e==="compositionend"||!ys&&ko(e,t)?(e=jo(),pi=fs=gn=null,bl=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=l}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Ko(n)}}function $o(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?$o(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Fo(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=hi(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=hi(e.document)}return t}function bs(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}var Oy=Jt&&"documentMode"in document&&11>=document.documentMode,xl=null,xs=null,ha=null,Ss=!1;function Wo(e,t,n){var l=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Ss||xl==null||xl!==hi(l)||(l=xl,"selectionStart"in l&&bs(l)?l={start:l.selectionStart,end:l.selectionEnd}:(l=(l.ownerDocument&&l.ownerDocument.defaultView||window).getSelection(),l={anchorNode:l.anchorNode,anchorOffset:l.anchorOffset,focusNode:l.focusNode,focusOffset:l.focusOffset}),ha&&da(ha,l)||(ha=l,l=ru(xs,"onSelect"),0>=o,u-=o,Ht=1<<32-ft(t)+u|n<se?(de=I,I=null):de=I.sibling;var ve=j(T,I,N[se],B);if(ve===null){I===null&&(I=de);break}e&&I&&ve.alternate===null&&t(T,I),E=r(ve,E,se),ye===null?ee=ve:ye.sibling=ve,ye=ve,I=de}if(se===N.length)return n(T,I),he&&Ft(T,se),ee;if(I===null){for(;sese?(de=I,I=null):de=I.sibling;var qn=j(T,I,ve.value,B);if(qn===null){I===null&&(I=de);break}e&&I&&qn.alternate===null&&t(T,I),E=r(qn,E,se),ye===null?ee=qn:ye.sibling=qn,ye=qn,I=de}if(ve.done)return n(T,I),he&&Ft(T,se),ee;if(I===null){for(;!ve.done;se++,ve=N.next())ve=U(T,ve.value,B),ve!==null&&(E=r(ve,E,se),ye===null?ee=ve:ye.sibling=ve,ye=ve);return he&&Ft(T,se),ee}for(I=l(I);!ve.done;se++,ve=N.next())ve=O(I,T,se,ve.value,B),ve!==null&&(e&&ve.alternate!==null&&I.delete(ve.key===null?se:ve.key),E=r(ve,E,se),ye===null?ee=ve:ye.sibling=ve,ye=ve);return e&&I.forEach(function(W0){return t(T,W0)}),he&&Ft(T,se),ee}function Te(T,E,N,B){if(typeof N=="object"&&N!==null&&N.type===H&&N.key===null&&(N=N.props.children),typeof N=="object"&&N!==null){switch(N.$$typeof){case C:e:{for(var ee=N.key;E!==null;){if(E.key===ee){if(ee=N.type,ee===H){if(E.tag===7){n(T,E.sibling),B=u(E,N.props.children),B.return=T,T=B;break e}}else if(E.elementType===ee||typeof ee=="object"&&ee!==null&&ee.$$typeof===P&&el(ee)===E.type){n(T,E.sibling),B=u(E,N.props),ba(B,N),B.return=T,T=B;break e}n(T,E);break}else t(T,E);E=E.sibling}N.type===H?(B=$n(N.props.children,T.mode,B,N.key),B.return=T,T=B):(B=Ti(N.type,N.key,N.props,null,T.mode,B),ba(B,N),B.return=T,T=B)}return o(T);case z:e:{for(ee=N.key;E!==null;){if(E.key===ee)if(E.tag===4&&E.stateNode.containerInfo===N.containerInfo&&E.stateNode.implementation===N.implementation){n(T,E.sibling),B=u(E,N.children||[]),B.return=T,T=B;break e}else{n(T,E);break}else t(T,E);E=E.sibling}B=Rs(N,T.mode,B),B.return=T,T=B}return o(T);case P:return N=el(N),Te(T,E,N,B)}if(rt(N))return F(T,E,N,B);if(Le(N)){if(ee=Le(N),typeof ee!="function")throw Error(c(150));return N=ee.call(N),te(T,E,N,B)}if(typeof N.then=="function")return Te(T,E,wi(N),B);if(N.$$typeof===V)return Te(T,E,Ri(T,N),B);Di(T,N)}return typeof N=="string"&&N!==""||typeof N=="number"||typeof N=="bigint"?(N=""+N,E!==null&&E.tag===6?(n(T,E.sibling),B=u(E,N),B.return=T,T=B):(n(T,E),B=Ns(N,T.mode,B),B.return=T,T=B),o(T)):n(T,E)}return function(T,E,N,B){try{ga=0;var ee=Te(T,E,N,B);return Ol=null,ee}catch(I){if(I===jl||I===ji)throw I;var ye=ht(29,I,null,T.mode);return ye.lanes=B,ye.return=T,ye}finally{}}}var nl=Sf(!0),Ef=Sf(!1),An=!1;function qs(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Ys(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function _n(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Tn(e,t,n){var l=e.updateQueue;if(l===null)return null;if(l=l.shared,(ge&2)!==0){var u=l.pending;return u===null?t.next=t:(t.next=u.next,u.next=t),l.pending=t,t=_i(e),af(e,null,n),t}return Ai(e,l,t,n),_i(e)}function xa(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194048)!==0)){var l=t.lanes;l&=e.pendingLanes,n|=l,t.lanes=n,fo(e,n)}}function Vs(e,t){var n=e.updateQueue,l=e.alternate;if(l!==null&&(l=l.updateQueue,n===l)){var u=null,r=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};r===null?u=r=o:r=r.next=o,n=n.next}while(n!==null);r===null?u=r=t:r=r.next=t}else u=r=t;n={baseState:l.baseState,firstBaseUpdate:u,lastBaseUpdate:r,shared:l.shared,callbacks:l.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Gs=!1;function Sa(){if(Gs){var e=Ml;if(e!==null)throw e}}function Ea(e,t,n,l){Gs=!1;var u=e.updateQueue;An=!1;var r=u.firstBaseUpdate,o=u.lastBaseUpdate,m=u.shared.pending;if(m!==null){u.shared.pending=null;var x=m,R=x.next;x.next=null,o===null?r=R:o.next=R,o=x;var w=e.alternate;w!==null&&(w=w.updateQueue,m=w.lastBaseUpdate,m!==o&&(m===null?w.firstBaseUpdate=R:m.next=R,w.lastBaseUpdate=x))}if(r!==null){var U=u.baseState;o=0,w=R=x=null,m=r;do{var j=m.lane&-536870913,O=j!==m.lane;if(O?(fe&j)===j:(l&j)===j){j!==0&&j===Rl&&(Gs=!0),w!==null&&(w=w.next={lane:0,tag:m.tag,payload:m.payload,callback:null,next:null});e:{var F=e,te=m;j=t;var Te=n;switch(te.tag){case 1:if(F=te.payload,typeof F=="function"){U=F.call(Te,U,j);break e}U=F;break e;case 3:F.flags=F.flags&-65537|128;case 0:if(F=te.payload,j=typeof F=="function"?F.call(Te,U,j):F,j==null)break e;U=_({},U,j);break e;case 2:An=!0}}j=m.callback,j!==null&&(e.flags|=64,O&&(e.flags|=8192),O=u.callbacks,O===null?u.callbacks=[j]:O.push(j))}else O={lane:j,tag:m.tag,payload:m.payload,callback:m.callback,next:null},w===null?(R=w=O,x=U):w=w.next=O,o|=j;if(m=m.next,m===null){if(m=u.shared.pending,m===null)break;O=m,m=O.next,O.next=null,u.lastBaseUpdate=O,u.shared.pending=null}}while(!0);w===null&&(x=U),u.baseState=x,u.firstBaseUpdate=R,u.lastBaseUpdate=w,r===null&&(u.shared.lanes=0),jn|=o,e.lanes=o,e.memoizedState=U}}function Af(e,t){if(typeof e!="function")throw Error(c(191,e));e.call(t)}function _f(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;er?r:8;var o=D.T,m={};D.T=m,rr(e,!1,t,n);try{var x=u(),R=D.S;if(R!==null&&R(m,x),x!==null&&typeof x=="object"&&typeof x.then=="function"){var w=qy(x,l);Ta(e,t,w,gt(e))}else Ta(e,t,l,gt(e))}catch(U){Ta(e,t,{then:function(){},status:"rejected",reason:U},gt())}finally{Z.p=r,o!==null&&m.types!==null&&(o.types=m.types),D.T=o}}function Zy(){}function ur(e,t,n,l){if(e.tag!==5)throw Error(c(476));var u=nd(e).queue;td(e,u,t,ne,n===null?Zy:function(){return ld(e),n(l)})}function nd(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:ne,baseState:ne,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:en,lastRenderedState:ne},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:en,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function ld(e){var t=nd(e);t.next===null&&(t=e.alternate.memoizedState),Ta(e,t.next.queue,{},gt())}function sr(){return Je(Va)}function ad(){return Ue().memoizedState}function id(){return Ue().memoizedState}function Ky(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=gt();e=_n(n);var l=Tn(t,e,n);l!==null&&(st(l,t,n),xa(l,t,n)),t={cache:Us()},e.payload=t;return}t=t.return}}function Jy(e,t,n){var l=gt();n={lane:l,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Gi(e)?sd(t,n):(n=Ts(e,t,n,l),n!==null&&(st(n,e,l),rd(n,t,l)))}function ud(e,t,n){var l=gt();Ta(e,t,n,l)}function Ta(e,t,n,l){var u={lane:l,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Gi(e))sd(t,u);else{var r=e.alternate;if(e.lanes===0&&(r===null||r.lanes===0)&&(r=t.lastRenderedReducer,r!==null))try{var o=t.lastRenderedState,m=r(o,n);if(u.hasEagerState=!0,u.eagerState=m,dt(m,o))return Ai(e,t,u,0),Ce===null&&Ei(),!1}catch{}finally{}if(n=Ts(e,t,u,l),n!==null)return st(n,e,l),rd(n,t,l),!0}return!1}function rr(e,t,n,l){if(l={lane:2,revertLane:qr(),gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null},Gi(e)){if(t)throw Error(c(479))}else t=Ts(e,n,l,2),t!==null&&st(t,e,2)}function Gi(e){var t=e.alternate;return e===ue||t!==null&&t===ue}function sd(e,t){Dl=Ui=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function rd(e,t,n){if((n&4194048)!==0){var l=t.lanes;l&=e.pendingLanes,n|=l,t.lanes=n,fo(e,n)}}var Ca={readContext:Je,use:Hi,useCallback:we,useContext:we,useEffect:we,useImperativeHandle:we,useLayoutEffect:we,useInsertionEffect:we,useMemo:we,useReducer:we,useRef:we,useState:we,useDebugValue:we,useDeferredValue:we,useTransition:we,useSyncExternalStore:we,useId:we,useHostTransitionStatus:we,useFormState:we,useActionState:we,useOptimistic:we,useMemoCache:we,useCacheRefresh:we};Ca.useEffectEvent=we;var cd={readContext:Je,use:Hi,useCallback:function(e,t){return Pe().memoizedState=[e,t===void 0?null:t],e},useContext:Je,useEffect:Zf,useImperativeHandle:function(e,t,n){n=n!=null?n.concat([e]):null,Yi(4194308,4,Ff.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Yi(4194308,4,e,t)},useInsertionEffect:function(e,t){Yi(4,2,e,t)},useMemo:function(e,t){var n=Pe();t=t===void 0?null:t;var l=e();if(ll){yn(!0);try{e()}finally{yn(!1)}}return n.memoizedState=[l,t],l},useReducer:function(e,t,n){var l=Pe();if(n!==void 0){var u=n(t);if(ll){yn(!0);try{n(t)}finally{yn(!1)}}}else u=t;return l.memoizedState=l.baseState=u,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:u},l.queue=e,e=e.dispatch=Jy.bind(null,ue,e),[l.memoizedState,e]},useRef:function(e){var t=Pe();return e={current:e},t.memoizedState=e},useState:function(e){e=tr(e);var t=e.queue,n=ud.bind(null,ue,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:ar,useDeferredValue:function(e,t){var n=Pe();return ir(n,e,t)},useTransition:function(){var e=tr(!1);return e=td.bind(null,ue,e.queue,!0,!1),Pe().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var l=ue,u=Pe();if(he){if(n===void 0)throw Error(c(407));n=n()}else{if(n=t(),Ce===null)throw Error(c(349));(fe&127)!==0||jf(l,t,n)}u.memoizedState=n;var r={value:n,getSnapshot:t};return u.queue=r,Zf(wf.bind(null,l,r,e),[e]),l.flags|=2048,Bl(9,{destroy:void 0},Of.bind(null,l,r,n,t),null),n},useId:function(){var e=Pe(),t=Ce.identifierPrefix;if(he){var n=qt,l=Ht;n=(l&~(1<<32-ft(l)-1)).toString(32)+n,t="_"+t+"R_"+n,n=Li++,0<\/script>",r=r.removeChild(r.firstChild);break;case"select":r=typeof l.is=="string"?o.createElement("select",{is:l.is}):o.createElement("select"),l.multiple?r.multiple=!0:l.size&&(r.size=l.size);break;default:r=typeof l.is=="string"?o.createElement(u,{is:l.is}):o.createElement(u)}}r[Ze]=t,r[tt]=l;e:for(o=t.child;o!==null;){if(o.tag===5||o.tag===6)r.appendChild(o.stateNode);else if(o.tag!==4&&o.tag!==27&&o.child!==null){o.child.return=o,o=o.child;continue}if(o===t)break e;for(;o.sibling===null;){if(o.return===null||o.return===t)break e;o=o.return}o.sibling.return=o.return,o=o.sibling}t.stateNode=r;e:switch(Fe(r,u,l),u){case"button":case"input":case"select":case"textarea":l=!!l.autoFocus;break e;case"img":l=!0;break e;default:l=!1}l&&nn(t)}}return Re(t),Er(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==l&&nn(t);else{if(typeof l!="string"&&t.stateNode===null)throw Error(c(166));if(e=re.current,Cl(t)){if(e=t.stateNode,n=t.memoizedProps,l=null,u=Ke,u!==null)switch(u.tag){case 27:case 5:l=u.memoizedProps}e[Ze]=t,e=!!(e.nodeValue===n||l!==null&&l.suppressHydrationWarning===!0||Rh(e.nodeValue,n)),e||Sn(t,!0)}else e=cu(e).createTextNode(l),e[Ze]=t,t.stateNode=e}return Re(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(l=Cl(t),n!==null){if(e===null){if(!l)throw Error(c(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(c(557));e[Ze]=t}else Fn(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Re(t),e=!1}else n=ws(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(pt(t),t):(pt(t),null);if((t.flags&128)!==0)throw Error(c(558))}return Re(t),null;case 13:if(l=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(u=Cl(t),l!==null&&l.dehydrated!==null){if(e===null){if(!u)throw Error(c(318));if(u=t.memoizedState,u=u!==null?u.dehydrated:null,!u)throw Error(c(317));u[Ze]=t}else Fn(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Re(t),u=!1}else u=ws(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=u),u=!0;if(!u)return t.flags&256?(pt(t),t):(pt(t),null)}return pt(t),(t.flags&128)!==0?(t.lanes=n,t):(n=l!==null,e=e!==null&&e.memoizedState!==null,n&&(l=t.child,u=null,l.alternate!==null&&l.alternate.memoizedState!==null&&l.alternate.memoizedState.cachePool!==null&&(u=l.alternate.memoizedState.cachePool.pool),r=null,l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(r=l.memoizedState.cachePool.pool),r!==u&&(l.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Ji(t,t.updateQueue),Re(t),null);case 4:return ze(),e===null&&Xr(t.stateNode.containerInfo),Re(t),null;case 10:return It(t.type),Re(t),null;case 19:if(L(Be),l=t.memoizedState,l===null)return Re(t),null;if(u=(t.flags&128)!==0,r=l.rendering,r===null)if(u)Ra(l,!1);else{if(De!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(r=Bi(e),r!==null){for(t.flags|=128,Ra(l,!1),e=r.updateQueue,t.updateQueue=e,Ji(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)uf(n,e),n=n.sibling;return K(Be,Be.current&1|2),he&&Ft(t,l.treeForkCount),t.child}e=e.sibling}l.tail!==null&&ct()>Pi&&(t.flags|=128,u=!0,Ra(l,!1),t.lanes=4194304)}else{if(!u)if(e=Bi(r),e!==null){if(t.flags|=128,u=!0,e=e.updateQueue,t.updateQueue=e,Ji(t,e),Ra(l,!0),l.tail===null&&l.tailMode==="hidden"&&!r.alternate&&!he)return Re(t),null}else 2*ct()-l.renderingStartTime>Pi&&n!==536870912&&(t.flags|=128,u=!0,Ra(l,!1),t.lanes=4194304);l.isBackwards?(r.sibling=t.child,t.child=r):(e=l.last,e!==null?e.sibling=r:t.child=r,l.last=r)}return l.tail!==null?(e=l.tail,l.rendering=e,l.tail=e.sibling,l.renderingStartTime=ct(),e.sibling=null,n=Be.current,K(Be,u?n&1|2:n&1),he&&Ft(t,l.treeForkCount),e):(Re(t),null);case 22:case 23:return pt(t),Qs(),l=t.memoizedState!==null,e!==null?e.memoizedState!==null!==l&&(t.flags|=8192):l&&(t.flags|=8192),l?(n&536870912)!==0&&(t.flags&128)===0&&(Re(t),t.subtreeFlags&6&&(t.flags|=8192)):Re(t),n=t.updateQueue,n!==null&&Ji(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),l=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(l=t.memoizedState.cachePool.pool),l!==n&&(t.flags|=2048),e!==null&&L(Pn),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),It(ke),Re(t),null;case 25:return null;case 30:return null}throw Error(c(156,t.tag))}function Py(e,t){switch(js(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return It(ke),ze(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return ii(t),null;case 31:if(t.memoizedState!==null){if(pt(t),t.alternate===null)throw Error(c(340));Fn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(pt(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(c(340));Fn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return L(Be),null;case 4:return ze(),null;case 10:return It(t.type),null;case 22:case 23:return pt(t),Qs(),e!==null&&L(Pn),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return It(ke),null;case 25:return null;default:return null}}function Dd(e,t){switch(js(t),t.tag){case 3:It(ke),ze();break;case 26:case 27:case 5:ii(t);break;case 4:ze();break;case 31:t.memoizedState!==null&&pt(t);break;case 13:pt(t);break;case 19:L(Be);break;case 10:It(t.type);break;case 22:case 23:pt(t),Qs(),e!==null&&L(Pn);break;case 24:It(ke)}}function Ma(e,t){try{var n=t.updateQueue,l=n!==null?n.lastEffect:null;if(l!==null){var u=l.next;n=u;do{if((n.tag&e)===e){l=void 0;var r=n.create,o=n.inst;l=r(),o.destroy=l}n=n.next}while(n!==u)}}catch(m){Ee(t,t.return,m)}}function Rn(e,t,n){try{var l=t.updateQueue,u=l!==null?l.lastEffect:null;if(u!==null){var r=u.next;l=r;do{if((l.tag&e)===e){var o=l.inst,m=o.destroy;if(m!==void 0){o.destroy=void 0,u=t;var x=n,R=m;try{R()}catch(w){Ee(u,x,w)}}}l=l.next}while(l!==r)}}catch(w){Ee(t,t.return,w)}}function zd(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{_f(t,n)}catch(l){Ee(e,e.return,l)}}}function Bd(e,t,n){n.props=al(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(l){Ee(e,t,l)}}function ja(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var l=e.stateNode;break;case 30:l=e.stateNode;break;default:l=e.stateNode}typeof n=="function"?e.refCleanup=n(l):n.current=l}}catch(u){Ee(e,t,u)}}function Yt(e,t){var n=e.ref,l=e.refCleanup;if(n!==null)if(typeof l=="function")try{l()}catch(u){Ee(e,t,u)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n=="function")try{n(null)}catch(u){Ee(e,t,u)}else n.current=null}function Ud(e){var t=e.type,n=e.memoizedProps,l=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":n.autoFocus&&l.focus();break e;case"img":n.src?l.src=n.src:n.srcSet&&(l.srcset=n.srcSet)}}catch(u){Ee(e,e.return,u)}}function Ar(e,t,n){try{var l=e.stateNode;S0(l,e.type,n,t),l[tt]=t}catch(u){Ee(e,e.return,u)}}function Ld(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Bn(e.type)||e.tag===4}function _r(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Ld(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&&Bn(e.type)||e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Tr(e,t,n){var l=e.tag;if(l===5||l===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Kt));else if(l!==4&&(l===27&&Bn(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(Tr(e,t,n),e=e.sibling;e!==null;)Tr(e,t,n),e=e.sibling}function $i(e,t,n){var l=e.tag;if(l===5||l===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(l!==4&&(l===27&&Bn(e.type)&&(n=e.stateNode),e=e.child,e!==null))for($i(e,t,n),e=e.sibling;e!==null;)$i(e,t,n),e=e.sibling}function kd(e){var t=e.stateNode,n=e.memoizedProps;try{for(var l=e.type,u=t.attributes;u.length;)t.removeAttributeNode(u[0]);Fe(t,l,n),t[Ze]=e,t[tt]=n}catch(r){Ee(e,e.return,r)}}var ln=!1,Ye=!1,Cr=!1,Hd=typeof WeakSet=="function"?WeakSet:Set,Qe=null;function e0(e,t){if(e=e.containerInfo,Kr=yu,e=Fo(e),bs(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var l=n.getSelection&&n.getSelection();if(l&&l.rangeCount!==0){n=l.anchorNode;var u=l.anchorOffset,r=l.focusNode;l=l.focusOffset;try{n.nodeType,r.nodeType}catch{n=null;break e}var o=0,m=-1,x=-1,R=0,w=0,U=e,j=null;t:for(;;){for(var O;U!==n||u!==0&&U.nodeType!==3||(m=o+u),U!==r||l!==0&&U.nodeType!==3||(x=o+l),U.nodeType===3&&(o+=U.nodeValue.length),(O=U.firstChild)!==null;)j=U,U=O;for(;;){if(U===e)break t;if(j===n&&++R===u&&(m=o),j===r&&++w===l&&(x=o),(O=U.nextSibling)!==null)break;U=j,j=U.parentNode}U=O}n=m===-1||x===-1?null:{start:m,end:x}}else n=null}n=n||{start:0,end:0}}else n=null;for(Jr={focusedElem:e,selectionRange:n},yu=!1,Qe=t;Qe!==null;)if(t=Qe,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,Qe=e;else for(;Qe!==null;){switch(t=Qe,r=t.alternate,e=t.flags,t.tag){case 0:if((e&4)!==0&&(e=t.updateQueue,e=e!==null?e.events:null,e!==null))for(n=0;n title"))),Fe(r,l,n),r[Ze]=e,Xe(r),l=r;break e;case"link":var o=Qh("link","href",u).get(l+(n.href||""));if(o){for(var m=0;mTe&&(o=Te,Te=te,te=o);var T=Jo(m,te),E=Jo(m,Te);if(T&&E&&(O.rangeCount!==1||O.anchorNode!==T.node||O.anchorOffset!==T.offset||O.focusNode!==E.node||O.focusOffset!==E.offset)){var N=U.createRange();N.setStart(T.node,T.offset),O.removeAllRanges(),te>Te?(O.addRange(N),O.extend(E.node,E.offset)):(N.setEnd(E.node,E.offset),O.addRange(N))}}}}for(U=[],O=m;O=O.parentNode;)O.nodeType===1&&U.push({element:O,left:O.scrollLeft,top:O.scrollTop});for(typeof m.focus=="function"&&m.focus(),m=0;mn?32:n,D.T=null,n=Dr,Dr=null;var r=wn,o=cn;if(Ge=0,ql=wn=null,cn=0,(ge&6)!==0)throw Error(c(331));var m=ge;if(ge|=4,Fd(r.current),Kd(r,r.current,o,n),ge=m,Ua(0,!1),ot&&typeof ot.onPostCommitFiberRoot=="function")try{ot.onPostCommitFiberRoot(ea,r)}catch{}return!0}finally{Z.p=u,D.T=l,mh(e,t)}}function yh(e,t,n){t=Et(n,t),t=dr(e.stateNode,t,2),e=Tn(e,t,2),e!==null&&(na(e,2),Vt(e))}function Ee(e,t,n){if(e.tag===3)yh(e,e,n);else for(;t!==null;){if(t.tag===3){yh(t,e,n);break}else if(t.tag===1){var l=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof l.componentDidCatch=="function"&&(On===null||!On.has(l))){e=Et(n,e),n=vd(2),l=Tn(t,n,2),l!==null&&(gd(n,l,t,e),na(l,2),Vt(l));break}}t=t.return}}function Lr(e,t,n){var l=e.pingCache;if(l===null){l=e.pingCache=new l0;var u=new Set;l.set(t,u)}else u=l.get(t),u===void 0&&(u=new Set,l.set(t,u));u.has(n)||(Mr=!0,u.add(n),e=r0.bind(null,e,t,n),t.then(e,e))}function r0(e,t,n){var l=e.pingCache;l!==null&&l.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Ce===e&&(fe&n)===n&&(De===4||De===3&&(fe&62914560)===fe&&300>ct()-Ii?(ge&2)===0&&Yl(e,0):jr|=n,Hl===fe&&(Hl=0)),Vt(e)}function vh(e,t){t===0&&(t=co()),e=Jn(e,t),e!==null&&(na(e,t),Vt(e))}function c0(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),vh(e,n)}function o0(e,t){var n=0;switch(e.tag){case 31:case 13:var l=e.stateNode,u=e.memoizedState;u!==null&&(n=u.retryLane);break;case 19:l=e.stateNode;break;case 22:l=e.stateNode._retryCache;break;default:throw Error(c(314))}l!==null&&l.delete(t),vh(e,n)}function f0(e,t){return Fu(e,t)}var iu=null,Gl=null,kr=!1,uu=!1,Hr=!1,zn=0;function Vt(e){e!==Gl&&e.next===null&&(Gl===null?iu=Gl=e:Gl=Gl.next=e),uu=!0,kr||(kr=!0,h0())}function Ua(e,t){if(!Hr&&uu){Hr=!0;do for(var n=!1,l=iu;l!==null;){if(e!==0){var u=l.pendingLanes;if(u===0)var r=0;else{var o=l.suspendedLanes,m=l.pingedLanes;r=(1<<31-ft(42|e)+1)-1,r&=u&~(o&~m),r=r&201326741?r&201326741|1:r?r|2:0}r!==0&&(n=!0,Sh(l,r))}else r=fe,r=oi(l,l===Ce?r:0,l.cancelPendingCommit!==null||l.timeoutHandle!==-1),(r&3)===0||ta(l,r)||(n=!0,Sh(l,r));l=l.next}while(n);Hr=!1}}function d0(){gh()}function gh(){uu=kr=!1;var e=0;zn!==0&&A0()&&(e=zn);for(var t=ct(),n=null,l=iu;l!==null;){var u=l.next,r=bh(l,t);r===0?(l.next=null,n===null?iu=u:n.next=u,u===null&&(Gl=n)):(n=l,(e!==0||(r&3)!==0)&&(uu=!0)),l=u}Ge!==0&&Ge!==5||Ua(e),zn!==0&&(zn=0)}function bh(e,t){for(var n=e.suspendedLanes,l=e.pingedLanes,u=e.expirationTimes,r=e.pendingLanes&-62914561;0m)break;var w=x.transferSize,U=x.initiatorType;w&&Mh(U)&&(x=x.responseEnd,o+=w*(x"u"?null:document;function Yh(e,t,n){var l=Xl;if(l&&typeof t=="string"&&t){var u=xt(t);u='link[rel="'+e+'"][href="'+u+'"]',typeof n=="string"&&(u+='[crossorigin="'+n+'"]'),qh.has(u)||(qh.add(u),e={rel:e,crossOrigin:n,href:t},l.querySelector(u)===null&&(t=l.createElement("link"),Fe(t,"link",e),Xe(t),l.head.appendChild(t)))}}function w0(e){on.D(e),Yh("dns-prefetch",e,null)}function D0(e,t){on.C(e,t),Yh("preconnect",e,t)}function z0(e,t,n){on.L(e,t,n);var l=Xl;if(l&&e&&t){var u='link[rel="preload"][as="'+xt(t)+'"]';t==="image"&&n&&n.imageSrcSet?(u+='[imagesrcset="'+xt(n.imageSrcSet)+'"]',typeof n.imageSizes=="string"&&(u+='[imagesizes="'+xt(n.imageSizes)+'"]')):u+='[href="'+xt(e)+'"]';var r=u;switch(t){case"style":r=Ql(e);break;case"script":r=Zl(e)}Rt.has(r)||(e=_({rel:"preload",href:t==="image"&&n&&n.imageSrcSet?void 0:e,as:t},n),Rt.set(r,e),l.querySelector(u)!==null||t==="style"&&l.querySelector(qa(r))||t==="script"&&l.querySelector(Ya(r))||(t=l.createElement("link"),Fe(t,"link",e),Xe(t),l.head.appendChild(t)))}}function B0(e,t){on.m(e,t);var n=Xl;if(n&&e){var l=t&&typeof t.as=="string"?t.as:"script",u='link[rel="modulepreload"][as="'+xt(l)+'"][href="'+xt(e)+'"]',r=u;switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":r=Zl(e)}if(!Rt.has(r)&&(e=_({rel:"modulepreload",href:e},t),Rt.set(r,e),n.querySelector(u)===null)){switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(n.querySelector(Ya(r)))return}l=n.createElement("link"),Fe(l,"link",e),Xe(l),n.head.appendChild(l)}}}function U0(e,t,n){on.S(e,t,n);var l=Xl;if(l&&e){var u=hl(l).hoistableStyles,r=Ql(e);t=t||"default";var o=u.get(r);if(!o){var m={loading:0,preload:null};if(o=l.querySelector(qa(r)))m.loading=5;else{e=_({rel:"stylesheet",href:e,"data-precedence":t},n),(n=Rt.get(r))&&tc(e,n);var x=o=l.createElement("link");Xe(x),Fe(x,"link",e),x._p=new Promise(function(R,w){x.onload=R,x.onerror=w}),x.addEventListener("load",function(){m.loading|=1}),x.addEventListener("error",function(){m.loading|=2}),m.loading|=4,fu(o,t,l)}o={type:"stylesheet",instance:o,count:1,state:m},u.set(r,o)}}}function L0(e,t){on.X(e,t);var n=Xl;if(n&&e){var l=hl(n).hoistableScripts,u=Zl(e),r=l.get(u);r||(r=n.querySelector(Ya(u)),r||(e=_({src:e,async:!0},t),(t=Rt.get(u))&&nc(e,t),r=n.createElement("script"),Xe(r),Fe(r,"link",e),n.head.appendChild(r)),r={type:"script",instance:r,count:1,state:null},l.set(u,r))}}function k0(e,t){on.M(e,t);var n=Xl;if(n&&e){var l=hl(n).hoistableScripts,u=Zl(e),r=l.get(u);r||(r=n.querySelector(Ya(u)),r||(e=_({src:e,async:!0,type:"module"},t),(t=Rt.get(u))&&nc(e,t),r=n.createElement("script"),Xe(r),Fe(r,"link",e),n.head.appendChild(r)),r={type:"script",instance:r,count:1,state:null},l.set(u,r))}}function Vh(e,t,n,l){var u=(u=re.current)?ou(u):null;if(!u)throw Error(c(446));switch(e){case"meta":case"title":return null;case"style":return typeof n.precedence=="string"&&typeof n.href=="string"?(t=Ql(n.href),n=hl(u).hoistableStyles,l=n.get(t),l||(l={type:"style",instance:null,count:0,state:null},n.set(t,l)),l):{type:"void",instance:null,count:0,state:null};case"link":if(n.rel==="stylesheet"&&typeof n.href=="string"&&typeof n.precedence=="string"){e=Ql(n.href);var r=hl(u).hoistableStyles,o=r.get(e);if(o||(u=u.ownerDocument||u,o={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},r.set(e,o),(r=u.querySelector(qa(e)))&&!r._p&&(o.instance=r,o.state.loading=5),Rt.has(e)||(n={rel:"preload",as:"style",href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},Rt.set(e,n),r||H0(u,e,n,o.state))),t&&l===null)throw Error(c(528,""));return o}if(t&&l!==null)throw Error(c(529,""));return null;case"script":return t=n.async,n=n.src,typeof n=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=Zl(n),n=hl(u).hoistableScripts,l=n.get(t),l||(l={type:"script",instance:null,count:0,state:null},n.set(t,l)),l):{type:"void",instance:null,count:0,state:null};default:throw Error(c(444,e))}}function Ql(e){return'href="'+xt(e)+'"'}function qa(e){return'link[rel="stylesheet"]['+e+"]"}function Gh(e){return _({},e,{"data-precedence":e.precedence,precedence:null})}function H0(e,t,n,l){e.querySelector('link[rel="preload"][as="style"]['+t+"]")?l.loading=1:(t=e.createElement("link"),l.preload=t,t.addEventListener("load",function(){return l.loading|=1}),t.addEventListener("error",function(){return l.loading|=2}),Fe(t,"link",n),Xe(t),e.head.appendChild(t))}function Zl(e){return'[src="'+xt(e)+'"]'}function Ya(e){return"script[async]"+e}function Xh(e,t,n){if(t.count++,t.instance===null)switch(t.type){case"style":var l=e.querySelector('style[data-href~="'+xt(n.href)+'"]');if(l)return t.instance=l,Xe(l),l;var u=_({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return l=(e.ownerDocument||e).createElement("style"),Xe(l),Fe(l,"style",u),fu(l,n.precedence,e),t.instance=l;case"stylesheet":u=Ql(n.href);var r=e.querySelector(qa(u));if(r)return t.state.loading|=4,t.instance=r,Xe(r),r;l=Gh(n),(u=Rt.get(u))&&tc(l,u),r=(e.ownerDocument||e).createElement("link"),Xe(r);var o=r;return o._p=new Promise(function(m,x){o.onload=m,o.onerror=x}),Fe(r,"link",l),t.state.loading|=4,fu(r,n.precedence,e),t.instance=r;case"script":return r=Zl(n.src),(u=e.querySelector(Ya(r)))?(t.instance=u,Xe(u),u):(l=n,(u=Rt.get(r))&&(l=_({},n),nc(l,u)),e=e.ownerDocument||e,u=e.createElement("script"),Xe(u),Fe(u,"link",l),e.head.appendChild(u),t.instance=u);case"void":return null;default:throw Error(c(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(l=t.instance,t.state.loading|=4,fu(l,n.precedence,e));return t.instance}function fu(e,t,n){for(var l=n.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),u=l.length?l[l.length-1]:null,r=u,o=0;o title"):null)}function q0(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;switch(t.rel){case"stylesheet":return e=t.disabled,typeof t.precedence=="string"&&e==null;default:return!0}case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function Kh(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function Y0(e,t,n,l){if(n.type==="stylesheet"&&(typeof l.media!="string"||matchMedia(l.media).matches!==!1)&&(n.state.loading&4)===0){if(n.instance===null){var u=Ql(l.href),r=t.querySelector(qa(u));if(r){t=r._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=hu.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=r,Xe(r);return}r=t.ownerDocument||t,l=Gh(l),(u=Rt.get(u))&&tc(l,u),r=r.createElement("link"),Xe(r);var o=r;o._p=new Promise(function(m,x){o.onload=m,o.onerror=x}),Fe(r,"link",l),n.instance=r}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&(n.state.loading&3)===0&&(e.count++,n=hu.bind(e),t.addEventListener("load",n),t.addEventListener("error",n))}}var lc=0;function V0(e,t){return e.stylesheets&&e.count===0&&pu(e,e.stylesheets),0lc?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(l),clearTimeout(u)}}:null}function hu(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)pu(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var mu=null;function pu(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,mu=new Map,t.forEach(G0,e),mu=null,hu.call(e))}function G0(e,t){if(!(t.state.loading&4)){var n=mu.get(e);if(n)var l=n.get(null);else{n=new Map,mu.set(e,n);for(var u=e.querySelectorAll("link[data-precedence],style[data-precedence]"),r=0;r"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(i)}catch(a){console.error(a)}}return i(),dc.exports=iv(),dc.exports}var sv=uv();var vm="popstate";function rv(i={}){function a(c,f){let{pathname:d,search:y,hash:g}=c.location;return Rc("",{pathname:d,search:y,hash:g},f.state&&f.state.usr||null,f.state&&f.state.key||"default")}function s(c,f){return typeof f=="string"?f:ei(f)}return ov(a,s,null,i)}function Oe(i,a){if(i===!1||i===null||typeof i>"u")throw new Error(a)}function Bt(i,a){if(!i){typeof console<"u"&&console.warn(a);try{throw new Error(a)}catch{}}}function cv(){return Math.random().toString(36).substring(2,10)}function gm(i,a){return{usr:i.state,key:i.key,idx:a}}function Rc(i,a,s=null,c){return{pathname:typeof i=="string"?i:i.pathname,search:"",hash:"",...typeof a=="string"?Fl(a):a,state:s,key:a&&a.key||c||cv()}}function ei({pathname:i="/",search:a="",hash:s=""}){return a&&a!=="?"&&(i+=a.charAt(0)==="?"?a:"?"+a),s&&s!=="#"&&(i+=s.charAt(0)==="#"?s:"#"+s),i}function Fl(i){let a={};if(i){let s=i.indexOf("#");s>=0&&(a.hash=i.substring(s),i=i.substring(0,s));let c=i.indexOf("?");c>=0&&(a.search=i.substring(c),i=i.substring(0,c)),i&&(a.pathname=i)}return a}function ov(i,a,s,c={}){let{window:f=document.defaultView,v5Compat:d=!1}=c,y=f.history,g="POP",p=null,v=S();v==null&&(v=0,y.replaceState({...y.state,idx:v},""));function S(){return(y.state||{idx:null}).idx}function _(){g="POP";let q=S(),Y=q==null?null:q-v;v=q,p&&p({action:g,location:H.location,delta:Y})}function M(q,Y){g="PUSH";let Q=Rc(H.location,q,Y);v=S()+1;let V=gm(Q,v),J=H.createHref(Q);try{y.pushState(V,"",J)}catch(k){if(k instanceof DOMException&&k.name==="DataCloneError")throw k;f.location.assign(J)}d&&p&&p({action:g,location:H.location,delta:1})}function C(q,Y){g="REPLACE";let Q=Rc(H.location,q,Y);v=S();let V=gm(Q,v),J=H.createHref(Q);y.replaceState(V,"",J),d&&p&&p({action:g,location:H.location,delta:0})}function z(q){return fv(q)}let H={get action(){return g},get location(){return i(f,y)},listen(q){if(p)throw new Error("A history only accepts one active listener");return f.addEventListener(vm,_),p=q,()=>{f.removeEventListener(vm,_),p=null}},createHref(q){return a(f,q)},createURL:z,encodeLocation(q){let Y=z(q);return{pathname:Y.pathname,search:Y.search,hash:Y.hash}},push:M,replace:C,go(q){return y.go(q)}};return H}function fv(i,a=!1){let s="http://localhost";typeof window<"u"&&(s=window.location.origin!=="null"?window.location.origin:window.location.href),Oe(s,"No window.location.(origin|href) available to create URL");let c=typeof i=="string"?i:ei(i);return c=c.replace(/ $/,"%20"),!a&&c.startsWith("//")&&(c=s+c),new URL(c,s)}function Hm(i,a,s="/"){return dv(i,a,s,!1)}function dv(i,a,s,c){let f=typeof a=="string"?Fl(a):a,d=hn(f.pathname||"/",s);if(d==null)return null;let y=qm(i);hv(y);let g=null;for(let p=0;g==null&&p{let S={relativePath:v===void 0?y.path||"":v,caseSensitive:y.caseSensitive===!0,childrenIndex:g,route:y};if(S.relativePath.startsWith("/")){if(!S.relativePath.startsWith(c)&&p)return;Oe(S.relativePath.startsWith(c),`Absolute route path "${S.relativePath}" nested under path "${c}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),S.relativePath=S.relativePath.slice(c.length)}let _=fn([c,S.relativePath]),M=s.concat(S);y.children&&y.children.length>0&&(Oe(y.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${_}".`),qm(y.children,a,M,_,p)),!(y.path==null&&!y.index)&&a.push({path:_,score:xv(_,y.index),routesMeta:M})};return i.forEach((y,g)=>{if(y.path===""||!y.path?.includes("?"))d(y,g);else for(let p of Ym(y.path))d(y,g,!0,p)}),a}function Ym(i){let a=i.split("/");if(a.length===0)return[];let[s,...c]=a,f=s.endsWith("?"),d=s.replace(/\?$/,"");if(c.length===0)return f?[d,""]:[d];let y=Ym(c.join("/")),g=[];return g.push(...y.map(p=>p===""?d:[d,p].join("/"))),f&&g.push(...y),g.map(p=>i.startsWith("/")&&p===""?"/":p)}function hv(i){i.sort((a,s)=>a.score!==s.score?s.score-a.score:Sv(a.routesMeta.map(c=>c.childrenIndex),s.routesMeta.map(c=>c.childrenIndex)))}var mv=/^:[\w-]+$/,pv=3,yv=2,vv=1,gv=10,bv=-2,bm=i=>i==="*";function xv(i,a){let s=i.split("/"),c=s.length;return s.some(bm)&&(c+=bv),a&&(c+=yv),s.filter(f=>!bm(f)).reduce((f,d)=>f+(mv.test(d)?pv:d===""?vv:gv),c)}function Sv(i,a){return i.length===a.length&&i.slice(0,-1).every((c,f)=>c===a[f])?i[i.length-1]-a[a.length-1]:0}function Ev(i,a,s=!1){let{routesMeta:c}=i,f={},d="/",y=[];for(let g=0;g{if(S==="*"){let z=g[M]||"";y=d.slice(0,d.length-z.length).replace(/(.)\/+$/,"$1")}const C=g[M];return _&&!C?v[S]=void 0:v[S]=(C||"").replace(/%2F/g,"/"),v},{}),pathname:d,pathnameBase:y,pattern:i}}function Av(i,a=!1,s=!0){Bt(i==="*"||!i.endsWith("*")||i.endsWith("/*"),`Route path "${i}" will be treated as if it were "${i.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${i.replace(/\*$/,"/*")}".`);let c=[],f="^"+i.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(y,g,p)=>(c.push({paramName:g,isOptional:p!=null}),p?"/?([^\\/]+)?":"/([^\\/]+)")).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return i.endsWith("*")?(c.push({paramName:"*"}),f+=i==="*"||i==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):s?f+="\\/*$":i!==""&&i!=="/"&&(f+="(?:(?=\\/|$))"),[new RegExp(f,a?void 0:"i"),c]}function _v(i){try{return i.split("/").map(a=>decodeURIComponent(a).replace(/\//g,"%2F")).join("/")}catch(a){return Bt(!1,`The URL path "${i}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${a}).`),i}}function hn(i,a){if(a==="/")return i;if(!i.toLowerCase().startsWith(a.toLowerCase()))return null;let s=a.endsWith("/")?a.length-1:a.length,c=i.charAt(s);return c&&c!=="/"?null:i.slice(s)||"/"}var Tv=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Cv=i=>Tv.test(i);function Nv(i,a="/"){let{pathname:s,search:c="",hash:f=""}=typeof i=="string"?Fl(i):i,d;if(s)if(Cv(s))d=s;else{if(s.includes("//")){let y=s;s=s.replace(/\/\/+/g,"/"),Bt(!1,`Pathnames cannot have embedded double slashes - normalizing ${y} -> ${s}`)}s.startsWith("/")?d=xm(s.substring(1),"/"):d=xm(s,a)}else d=a;return{pathname:d,search:jv(c),hash:Ov(f)}}function xm(i,a){let s=a.replace(/\/+$/,"").split("/");return i.split("/").forEach(f=>{f===".."?s.length>1&&s.pop():f!=="."&&s.push(f)}),s.length>1?s.join("/"):"/"}function yc(i,a,s,c){return`Cannot include a '${i}' character in a manually specified \`to.${a}\` field [${JSON.stringify(c)}]. Please separate it out to the \`to.${s}\` field. Alternatively you may provide the full path as a string in and the router will parse it for you.`}function Rv(i){return i.filter((a,s)=>s===0||a.route.path&&a.route.path.length>0)}function Vm(i){let a=Rv(i);return a.map((s,c)=>c===a.length-1?s.pathname:s.pathnameBase)}function Gm(i,a,s,c=!1){let f;typeof i=="string"?f=Fl(i):(f={...i},Oe(!f.pathname||!f.pathname.includes("?"),yc("?","pathname","search",f)),Oe(!f.pathname||!f.pathname.includes("#"),yc("#","pathname","hash",f)),Oe(!f.search||!f.search.includes("#"),yc("#","search","hash",f)));let d=i===""||f.pathname==="",y=d?"/":f.pathname,g;if(y==null)g=s;else{let _=a.length-1;if(!c&&y.startsWith("..")){let M=y.split("/");for(;M[0]==="..";)M.shift(),_-=1;f.pathname=M.join("/")}g=_>=0?a[_]:"/"}let p=Nv(f,g),v=y&&y!=="/"&&y.endsWith("/"),S=(d||y===".")&&s.endsWith("/");return!p.pathname.endsWith("/")&&(v||S)&&(p.pathname+="/"),p}var fn=i=>i.join("/").replace(/\/\/+/g,"/"),Mv=i=>i.replace(/\/+$/,"").replace(/^\/*/,"/"),jv=i=>!i||i==="?"?"":i.startsWith("?")?i:"?"+i,Ov=i=>!i||i==="#"?"":i.startsWith("#")?i:"#"+i;function wv(i){return i!=null&&typeof i.status=="number"&&typeof i.statusText=="string"&&typeof i.internal=="boolean"&&"data"in i}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var Xm=["POST","PUT","PATCH","DELETE"];new Set(Xm);var Dv=["GET",...Xm];new Set(Dv);var Wl=b.createContext(null);Wl.displayName="DataRouter";var Hu=b.createContext(null);Hu.displayName="DataRouterState";b.createContext(!1);var Qm=b.createContext({isTransitioning:!1});Qm.displayName="ViewTransition";var zv=b.createContext(new Map);zv.displayName="Fetchers";var Bv=b.createContext(null);Bv.displayName="Await";var Qt=b.createContext(null);Qt.displayName="Navigation";var ti=b.createContext(null);ti.displayName="Location";var mn=b.createContext({outlet:null,matches:[],isDataRoute:!1});mn.displayName="Route";var Yc=b.createContext(null);Yc.displayName="RouteError";function Uv(i,{relative:a}={}){Oe(ni(),"useHref() may be used only in the context of a component.");let{basename:s,navigator:c}=b.useContext(Qt),{hash:f,pathname:d,search:y}=li(i,{relative:a}),g=d;return s!=="/"&&(g=d==="/"?s:fn([s,d])),c.createHref({pathname:g,search:y,hash:f})}function ni(){return b.useContext(ti)!=null}function cl(){return Oe(ni(),"useLocation() may be used only in the context of a component."),b.useContext(ti).location}var Zm="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function Km(i){b.useContext(Qt).static||b.useLayoutEffect(i)}function Lv(){let{isDataRoute:i}=b.useContext(mn);return i?Fv():kv()}function kv(){Oe(ni(),"useNavigate() may be used only in the context of a component.");let i=b.useContext(Wl),{basename:a,navigator:s}=b.useContext(Qt),{matches:c}=b.useContext(mn),{pathname:f}=cl(),d=JSON.stringify(Vm(c)),y=b.useRef(!1);return Km(()=>{y.current=!0}),b.useCallback((p,v={})=>{if(Bt(y.current,Zm),!y.current)return;if(typeof p=="number"){s.go(p);return}let S=Gm(p,JSON.parse(d),f,v.relative==="path");i==null&&a!=="/"&&(S.pathname=S.pathname==="/"?a:fn([a,S.pathname])),(v.replace?s.replace:s.push)(S,v.state,v)},[a,s,d,f,i])}b.createContext(null);function li(i,{relative:a}={}){let{matches:s}=b.useContext(mn),{pathname:c}=cl(),f=JSON.stringify(Vm(s));return b.useMemo(()=>Gm(i,JSON.parse(f),c,a==="path"),[i,f,c,a])}function Hv(i,a){return Jm(i,a)}function Jm(i,a,s,c,f){Oe(ni(),"useRoutes() may be used only in the context of a component.");let{navigator:d}=b.useContext(Qt),{matches:y}=b.useContext(mn),g=y[y.length-1],p=g?g.params:{},v=g?g.pathname:"/",S=g?g.pathnameBase:"/",_=g&&g.route;{let Q=_&&_.path||"";$m(v,!_||Q.endsWith("*")||Q.endsWith("*?"),`You rendered descendant (or called \`useRoutes()\`) at "${v}" (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=cl(),C;if(a){let Q=typeof a=="string"?Fl(a):a;Oe(S==="/"||Q.pathname?.startsWith(S),`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 "${S}" but pathname "${Q.pathname}" was given in the \`location\` prop.`),C=Q}else C=M;let z=C.pathname||"/",H=z;if(S!=="/"){let Q=S.replace(/^\//,"").split("/");H="/"+z.replace(/^\//,"").split("/").slice(Q.length).join("/")}let q=Hm(i,{pathname:H});Bt(_||q!=null,`No routes matched location "${C.pathname}${C.search}${C.hash}" `),Bt(q==null||q[q.length-1].route.element!==void 0||q[q.length-1].route.Component!==void 0||q[q.length-1].route.lazy!==void 0,`Matched leaf route at location "${C.pathname}${C.search}${C.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 Y=Xv(q&&q.map(Q=>Object.assign({},Q,{params:Object.assign({},p,Q.params),pathname:fn([S,d.encodeLocation?d.encodeLocation(Q.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:Q.pathname]),pathnameBase:Q.pathnameBase==="/"?S:fn([S,d.encodeLocation?d.encodeLocation(Q.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:Q.pathnameBase])})),y,s,c,f);return a&&Y?b.createElement(ti.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",...C},navigationType:"POP"}},Y):Y}function qv(){let i=$v(),a=wv(i)?`${i.status} ${i.statusText}`:i instanceof Error?i.message:JSON.stringify(i),s=i instanceof Error?i.stack:null,c="rgba(200,200,200, 0.5)",f={padding:"0.5rem",backgroundColor:c},d={padding:"2px 4px",backgroundColor:c},y=null;return console.error("Error handled by React Router default ErrorBoundary:",i),y=b.createElement(b.Fragment,null,b.createElement("p",null,"💿 Hey developer 👋"),b.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",b.createElement("code",{style:d},"ErrorBoundary")," or"," ",b.createElement("code",{style:d},"errorElement")," prop on your route.")),b.createElement(b.Fragment,null,b.createElement("h2",null,"Unexpected Application Error!"),b.createElement("h3",{style:{fontStyle:"italic"}},a),s?b.createElement("pre",{style:f},s):null,y)}var Yv=b.createElement(qv,null),Vv=class extends b.Component{constructor(i){super(i),this.state={location:i.location,revalidation:i.revalidation,error:i.error}}static getDerivedStateFromError(i){return{error:i}}static getDerivedStateFromProps(i,a){return a.location!==i.location||a.revalidation!=="idle"&&i.revalidation==="idle"?{error:i.error,location:i.location,revalidation:i.revalidation}:{error:i.error!==void 0?i.error:a.error,location:a.location,revalidation:i.revalidation||a.revalidation}}componentDidCatch(i,a){this.props.onError?this.props.onError(i,a):console.error("React Router caught the following error during render",i)}render(){return this.state.error!==void 0?b.createElement(mn.Provider,{value:this.props.routeContext},b.createElement(Yc.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};function Gv({routeContext:i,match:a,children:s}){let c=b.useContext(Wl);return c&&c.static&&c.staticContext&&(a.route.errorElement||a.route.ErrorBoundary)&&(c.staticContext._deepestRenderedBoundaryId=a.route.id),b.createElement(mn.Provider,{value:i},s)}function Xv(i,a=[],s=null,c=null,f=null){if(i==null){if(!s)return null;if(s.errors)i=s.matches;else if(a.length===0&&!s.initialized&&s.matches.length>0)i=s.matches;else return null}let d=i,y=s?.errors;if(y!=null){let S=d.findIndex(_=>_.route.id&&y?.[_.route.id]!==void 0);Oe(S>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(y).join(",")}`),d=d.slice(0,Math.min(d.length,S+1))}let g=!1,p=-1;if(s)for(let S=0;S=0?d=d.slice(0,p+1):d=[d[0]];break}}}let v=s&&c?(S,_)=>{c(S,{location:s.location,params:s.matches?.[0]?.params??{},errorInfo:_})}:void 0;return d.reduceRight((S,_,M)=>{let C,z=!1,H=null,q=null;s&&(C=y&&_.route.id?y[_.route.id]:void 0,H=_.route.errorElement||Yv,g&&(p<0&&M===0?($m("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),z=!0,q=null):p===M&&(z=!0,q=_.route.hydrateFallbackElement||null)));let Y=a.concat(d.slice(0,M+1)),Q=()=>{let V;return C?V=H:z?V=q:_.route.Component?V=b.createElement(_.route.Component,null):_.route.element?V=_.route.element:V=S,b.createElement(Gv,{match:_,routeContext:{outlet:S,matches:Y,isDataRoute:s!=null},children:V})};return s&&(_.route.ErrorBoundary||_.route.errorElement||M===0)?b.createElement(Vv,{location:s.location,revalidation:s.revalidation,component:H,error:C,children:Q(),routeContext:{outlet:null,matches:Y,isDataRoute:!0},onError:v}):Q()},null)}function Vc(i){return`${i} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Qv(i){let a=b.useContext(Wl);return Oe(a,Vc(i)),a}function Zv(i){let a=b.useContext(Hu);return Oe(a,Vc(i)),a}function Kv(i){let a=b.useContext(mn);return Oe(a,Vc(i)),a}function Gc(i){let a=Kv(i),s=a.matches[a.matches.length-1];return Oe(s.route.id,`${i} can only be used on routes that contain a unique "id"`),s.route.id}function Jv(){return Gc("useRouteId")}function $v(){let i=b.useContext(Yc),a=Zv("useRouteError"),s=Gc("useRouteError");return i!==void 0?i:a.errors?.[s]}function Fv(){let{router:i}=Qv("useNavigate"),a=Gc("useNavigate"),s=b.useRef(!1);return Km(()=>{s.current=!0}),b.useCallback(async(f,d={})=>{Bt(s.current,Zm),s.current&&(typeof f=="number"?i.navigate(f):await i.navigate(f,{fromRouteId:a,...d}))},[i,a])}var Sm={};function $m(i,a,s){!a&&!Sm[i]&&(Sm[i]=!0,Bt(!1,s))}b.memo(Wv);function Wv({routes:i,future:a,state:s,unstable_onError:c}){return Jm(i,void 0,s,c,a)}function Mc(i){Oe(!1,"A is only ever to be used as the child of element, never rendered directly. Please wrap your in a .")}function Iv({basename:i="/",children:a=null,location:s,navigationType:c="POP",navigator:f,static:d=!1}){Oe(!ni(),"You cannot render a inside another . You should never have more than one in your app.");let y=i.replace(/^\/*/,"/"),g=b.useMemo(()=>({basename:y,navigator:f,static:d,future:{}}),[y,f,d]);typeof s=="string"&&(s=Fl(s));let{pathname:p="/",search:v="",hash:S="",state:_=null,key:M="default"}=s,C=b.useMemo(()=>{let z=hn(p,y);return z==null?null:{location:{pathname:z,search:v,hash:S,state:_,key:M},navigationType:c}},[y,p,v,S,_,M,c]);return Bt(C!=null,` is not able to match the URL "${p}${v}${S}" because it does not start with the basename, so the won't render anything.`),C==null?null:b.createElement(Qt.Provider,{value:g},b.createElement(ti.Provider,{children:a,value:C}))}function Pv({children:i,location:a}){return Hv(jc(i),a)}function jc(i,a=[]){let s=[];return b.Children.forEach(i,(c,f)=>{if(!b.isValidElement(c))return;let d=[...a,f];if(c.type===b.Fragment){s.push.apply(s,jc(c.props.children,d));return}Oe(c.type===Mc,`[${typeof c.type=="string"?c.type:c.type.name}] is not a component. All component children of must be a or `),Oe(!c.props.index||!c.props.children,"An index route cannot have child routes.");let y={id:c.props.id||d.join("-"),caseSensitive:c.props.caseSensitive,element:c.props.element,Component:c.props.Component,index:c.props.index,path:c.props.path,middleware:c.props.middleware,loader:c.props.loader,action:c.props.action,hydrateFallbackElement:c.props.hydrateFallbackElement,HydrateFallback:c.props.HydrateFallback,errorElement:c.props.errorElement,ErrorBoundary:c.props.ErrorBoundary,hasErrorBoundary:c.props.hasErrorBoundary===!0||c.props.ErrorBoundary!=null||c.props.errorElement!=null,shouldRevalidate:c.props.shouldRevalidate,handle:c.props.handle,lazy:c.props.lazy};c.props.children&&(y.children=jc(c.props.children,d)),s.push(y)}),s}var ju="get",Ou="application/x-www-form-urlencoded";function qu(i){return i!=null&&typeof i.tagName=="string"}function eg(i){return qu(i)&&i.tagName.toLowerCase()==="button"}function tg(i){return qu(i)&&i.tagName.toLowerCase()==="form"}function ng(i){return qu(i)&&i.tagName.toLowerCase()==="input"}function lg(i){return!!(i.metaKey||i.altKey||i.ctrlKey||i.shiftKey)}function ag(i,a){return i.button===0&&(!a||a==="_self")&&!lg(i)}var Au=null;function ig(){if(Au===null)try{new FormData(document.createElement("form"),0),Au=!1}catch{Au=!0}return Au}var ug=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function vc(i){return i!=null&&!ug.has(i)?(Bt(!1,`"${i}" is not a valid \`encType\` for \`
\`/\`\` and will default to "${Ou}"`),null):i}function sg(i,a){let s,c,f,d,y;if(tg(i)){let g=i.getAttribute("action");c=g?hn(g,a):null,s=i.getAttribute("method")||ju,f=vc(i.getAttribute("enctype"))||Ou,d=new FormData(i)}else if(eg(i)||ng(i)&&(i.type==="submit"||i.type==="image")){let g=i.form;if(g==null)throw new Error('Cannot submit a + +
+ {Object.entries(grouped).map(([section, actions]) => ( +
+

{section}

+
+ {actions.map((action) => ( +
+
+

{action.label}

+

{getValueLabel(action)}

+
+
+ + +
+
+ ))} +
+
+ ))} +
+ + ); +} diff --git a/webui/src/controls/inputs/GamepadInputManager.jsx b/webui/src/controls/inputs/GamepadInputManager.jsx index 9b2c1931..e4a740ee 100644 --- a/webui/src/controls/inputs/GamepadInputManager.jsx +++ b/webui/src/controls/inputs/GamepadInputManager.jsx @@ -2,7 +2,7 @@ import { useCallback, useEffect, useRef } from 'react'; import { useControlSystem } from '../ControlContext.jsx'; import { clampUnit } from '../controlMath.js'; import { useSettingsNamespace } from '../../settings/index.js'; -import { INPUT_SETTINGS_DEFAULTS } from '../../settings/namespaces.js'; +import { INPUT_SETTINGS_DEFAULTS, GAMEPAD_MAPPING_DEFAULT } from '../../settings/namespaces.js'; const SOURCE = 'gamepad'; @@ -44,25 +44,55 @@ export default function GamepadInputManager() { }, } = useControlSystem(); const { value: inputSettings } = useSettingsNamespace('inputs', INPUT_SETTINGS_DEFAULTS); + const { value: mapping } = useSettingsNamespace('gamepadMapping', GAMEPAD_MAPPING_DEFAULT); const gamepadSettings = inputSettings.gamepad ?? INPUT_SETTINGS_DEFAULTS.gamepad; const driveDeadzone = Math.min(Math.max(gamepadSettings.driveDeadzone ?? 0.2, 0), 0.8); const cameraDeadzone = Math.min(Math.max(gamepadSettings.cameraDeadzone ?? 0.25, 0), 0.9); const servoStep = gamepadSettings.servoStep ?? INPUT_SETTINGS_DEFAULTS.gamepad.servoStep; const auxReverseScale = gamepadSettings.auxReverseScale ?? INPUT_SETTINGS_DEFAULTS.gamepad.auxReverseScale; + const mappingReady = + Boolean(mapping?.drive?.horizontal) && + Boolean(mapping?.drive?.vertical) && + Boolean(mapping?.camera?.vertical) && + Boolean(mapping?.triggers?.main) && + Boolean(mapping?.triggers?.side) && + Boolean(mapping?.buttons?.mainReverse) && + Boolean(mapping?.buttons?.sideReverse) && + Boolean(mapping?.buttons?.vacuum) && + Boolean(mapping?.buttons?.allAux) && + Boolean(mapping?.buttons?.driveMacro) && + Boolean(mapping?.buttons?.dockMacro); const rafRef = useRef(null); const lastVectorRef = useRef({ x: 0, y: 0, boost: false }); const lastAuxRef = useRef({ main: 0, side: 0, vacuum: 0 }); const buttonStateRef = useRef(new Map()); const servoThrottleRef = useRef(0); - const handleButtonEdge = useCallback( - (index, pressed) => { - const prev = buttonStateRef.current.get(index) || false; - buttonStateRef.current.set(index, pressed); - return pressed && !prev; - }, - [], - ); + const handleButtonEdge = useCallback((key, pressed) => { + const prev = buttonStateRef.current.get(key) || false; + buttonStateRef.current.set(key, pressed); + return pressed && !prev; + }, []); + + const getAxisValue = useCallback((pad, descriptor) => { + if (!descriptor) return 0; + const raw = pad.axes?.[descriptor.index] ?? 0; + return descriptor.invert ? -raw : raw; + }, []); + + const getButtonValue = useCallback((pad, descriptor) => { + if (!descriptor) return 0; + const btn = pad.buttons?.[descriptor.index]; + if (!btn) return 0; + return typeof btn.value === 'number' ? btn.value : btn.pressed ? 1 : 0; + }, []); + + const isButtonPressed = useCallback((pad, descriptor) => { + if (!descriptor) return false; + const btn = pad.buttons?.[descriptor.index]; + if (!btn) return false; + return btn.pressed || btn.value > 0.5; + }, []); const pollGamepads = useCallback(() => { if (typeof navigator === 'undefined' || !navigator.getGamepads) { @@ -79,23 +109,34 @@ export default function GamepadInputManager() { lastAuxRef.current = { main: 0, side: 0, vacuum: 0 }; setAuxMotors({ main: 0, side: 0, vacuum: 0 }); } - registerInputState(SOURCE, { connected: false }); + registerInputState(SOURCE, { connected: false, mappingReady }); return; } - const axisLX = clampUnit(applyDeadzone(pad.axes?.[0] ?? 0, driveDeadzone)); - const axisLY = clampUnit(applyDeadzone(-(pad.axes?.[1] ?? 0), driveDeadzone)); + if (!mappingReady) { + registerInputState(SOURCE, { connected: true, mappingReady: false }); + return; + } + + const axisLX = clampUnit(applyDeadzone(getAxisValue(pad, mapping.drive.horizontal), driveDeadzone)); + const axisLY = clampUnit(applyDeadzone(-getAxisValue(pad, mapping.drive.vertical), driveDeadzone)); const vector = { x: axisLX, y: axisLY, boost: false }; if (!vectorsEqual(vector, lastVectorRef.current)) { lastVectorRef.current = vector; setDriveVector(vector, { source: SOURCE }); } - const main = computeTriggerSpeed(pad.buttons?.[7], pad.buttons?.[5]); - const side = computeTriggerSpeed(pad.buttons?.[6], pad.buttons?.[4], 127, auxReverseScale); - const vacuum = pad.buttons?.[1]?.pressed ? 127 : 0; + const mainMagnitude = Math.round(getButtonValue(pad, mapping.triggers.main) * 127); + const mainReverse = isButtonPressed(pad, mapping.buttons.mainReverse); + const main = mainReverse ? -mainMagnitude : mainMagnitude; + + const sideMagnitude = Math.round(getButtonValue(pad, mapping.triggers.side) * 127); + const sideReverse = isButtonPressed(pad, mapping.buttons.sideReverse); + const side = sideReverse ? -Math.round(sideMagnitude * auxReverseScale) : sideMagnitude; + + const vacuum = isButtonPressed(pad, mapping.buttons.vacuum) ? 127 : 0; let aux = { main, side, vacuum }; - if (pad.buttons?.[0]?.pressed) { + if (isButtonPressed(pad, mapping.buttons.allAux)) { aux = { main: 127, side: 127, vacuum: 127 }; } if (!auxEqual(aux, lastAuxRef.current)) { @@ -103,18 +144,20 @@ export default function GamepadInputManager() { setAuxMotors(aux); } - const cameraAxis = clampUnit(applyDeadzone(-(pad.axes?.[3] ?? 0), cameraDeadzone)); + const cameraAxis = clampUnit(applyDeadzone(-getAxisValue(pad, mapping.camera.vertical), cameraDeadzone)); const now = performance.now(); if (Math.abs(cameraAxis) > 0.25 && now - servoThrottleRef.current > 120) { servoThrottleRef.current = now; nudgeServo(cameraAxis > 0 ? servoStep : -servoStep); } - if (handleButtonEdge(14, pad.buttons?.[14]?.pressed)) { + const driveMacroPressed = isButtonPressed(pad, mapping.buttons.driveMacro); + if (handleButtonEdge(`macro-${mapping.buttons.driveMacro.index}`, driveMacroPressed)) { setMode('drive'); runMacro('drive-sequence'); } - if (handleButtonEdge(15, pad.buttons?.[15]?.pressed)) { + const dockMacroPressed = isButtonPressed(pad, mapping.buttons.dockMacro); + if (handleButtonEdge(`macro-${mapping.buttons.dockMacro.index}`, dockMacroPressed)) { setMode('dock'); runMacro('seek-dock'); } @@ -135,7 +178,22 @@ export default function GamepadInputManager() { auxReverseScale, cameraDeadzone, driveDeadzone, + getAxisValue, + getButtonValue, handleButtonEdge, + isButtonPressed, + mapping.buttons?.allAux, + mapping.buttons?.dockMacro, + mapping.buttons?.driveMacro, + mapping.buttons?.mainReverse, + mapping.buttons?.sideReverse, + mapping.buttons?.vacuum, + mapping.camera?.vertical, + mapping.drive?.horizontal, + mapping.drive?.vertical, + mapping.triggers?.main, + mapping.triggers?.side, + mappingReady, nudgeServo, registerInputState, runMacro, diff --git a/webui/src/settings/namespaces.js b/webui/src/settings/namespaces.js index eecd2a50..0c874846 100644 --- a/webui/src/settings/namespaces.js +++ b/webui/src/settings/namespaces.js @@ -10,3 +10,25 @@ export const INPUT_SETTINGS_DEFAULTS = { joystickSmoothing: 0.15, }, }; + +export const GAMEPAD_MAPPING_DEFAULT = { + drive: { + horizontal: null, + vertical: null, + }, + camera: { + vertical: null, + }, + triggers: { + main: null, + side: null, + }, + buttons: { + mainReverse: null, + sideReverse: null, + vacuum: null, + allAux: null, + driveMacro: null, + dockMacro: null, + }, +};