From f4af77cb2b97dd1fac2b31a8afcfda84f11f524d Mon Sep 17 00:00:00 2001 From: baiyanyun Date: Mon, 8 Jun 2026 10:23:06 +0800 Subject: [PATCH] feat(client): reply digital approvals to acp --- .../src/lib/qimingclawAdapter.ts | 72 +++++++++- .../sgrobot-digital/assets/index-DN59eLPD.js | 128 ------------------ .../sgrobot-digital/assets/index-qn2ia0Ac.js | 128 ++++++++++++++++++ .../public/sgrobot-digital/index.html | 2 +- .../digitalEmployee/stateService.test.ts | 12 ++ .../services/digitalEmployee/stateService.ts | 3 + .../src/preload/webviewPerfBridge.ts | 3 + ...ital-employee-frontend-integration-plan.md | 10 ++ 8 files changed, 228 insertions(+), 130 deletions(-) delete mode 100644 qimingclaw/crates/agent-electron-client/public/sgrobot-digital/assets/index-DN59eLPD.js create mode 100644 qimingclaw/crates/agent-electron-client/public/sgrobot-digital/assets/index-qn2ia0Ac.js diff --git a/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/lib/qimingclawAdapter.ts b/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/lib/qimingclawAdapter.ts index a2fb4281..ecc9d16b 100644 --- a/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/lib/qimingclawAdapter.ts +++ b/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/lib/qimingclawAdapter.ts @@ -36,6 +36,7 @@ declare global { getSyncStatus?: () => Promise; flushSync?: () => Promise; recordGovernanceCommand?: (command: QimingclawGovernanceCommandRecord) => Promise; + respondPermission?: (sessionId: string, permissionId: string, response: 'once' | 'always' | 'reject') => Promise<{ success?: boolean; error?: string }>; }; }; } @@ -1769,17 +1770,86 @@ async function handleWorkdayAction(body: DigitalEmployeeWorkdayActionRequest, sn }; } + const acpPermissionResult = body.action === 'decide_approval' + ? await respondAcpPermissionForDecision(body, snapshot) + : null; + const savedState = await saveState( state, body.action, date, body.action === 'decide_approval' - ? { decision_id: body.decision_id, decision: body.decision } + ? { + decision_id: body.decision_id, + decision: body.decision, + acp_permission: acpPermissionResult, + } : undefined, ); return buildWorkday(date, { ...(snapshot ?? { generatedAt: new Date().toISOString(), services: {}, sessions: { total: 0, active: 0, items: [] } }), uiState: savedState }); } +async function respondAcpPermissionForDecision( + body: DigitalEmployeeWorkdayActionRequest, + snapshot: QimingclawSnapshot | null, +): Promise | null> { + if (!body.decision_id || !body.decision) return null; + const approval = findApprovalForDecision(body.decision_id, snapshot); + if (!approval) return null; + const refs = acpPermissionRefs(approval); + if (!refs) return null; + const response = acpResponseForDecision(body.decision); + const respondPermission = window.QimingClawBridge?.digital?.respondPermission; + if (!respondPermission) return null; + try { + const result = await respondPermission(refs.sessionId, refs.permissionId, response); + return { + permission_id: refs.permissionId, + session_id: refs.sessionId, + response, + success: result?.success !== false, + error: result?.error, + }; + } catch (error) { + return { + permission_id: refs.permissionId, + session_id: refs.sessionId, + response, + success: false, + error: error instanceof Error ? error.message : String(error), + }; + } +} + +function findApprovalForDecision(decisionId: string, snapshot: QimingclawSnapshot | null): ApprovalEntry | null { + return buildApprovals(snapshot).find((approval) => stringValue(approval.approval_id) === decisionId) ?? null; +} + +function acpPermissionRefs(approval: ApprovalEntry): { permissionId: string; sessionId: string } | null { + const payload = asRecord(approval.payload); + const nestedPayload = asRecord(payload?.payload); + const permissionId = stringValue(payload?.permissionId) + || stringValue(payload?.permission_id) + || stringValue(payload?.id) + || stringValue(nestedPayload?.permissionId) + || stringValue(nestedPayload?.permission_id) + || stringValue(nestedPayload?.id); + const sessionId = stringValue(payload?.sessionId) + || stringValue(payload?.session_id) + || stringValue(nestedPayload?.sessionId) + || stringValue(nestedPayload?.session_id); + const source = stringValue(payload?.source); + if (!permissionId || !sessionId || (source && source !== 'acp-permission')) return null; + return { permissionId, sessionId }; +} + +function acpResponseForDecision(decision: string): 'once' | 'always' | 'reject' { + const normalized = decision.toLowerCase(); + if (normalized.includes('always')) return 'always'; + if (normalized.includes('reject') || normalized.includes('deny')) return 'reject'; + return 'once'; +} + async function handleGovernanceCommand( body: GovernanceCommandRequest, snapshot: QimingclawSnapshot | null, diff --git a/qimingclaw/crates/agent-electron-client/public/sgrobot-digital/assets/index-DN59eLPD.js b/qimingclaw/crates/agent-electron-client/public/sgrobot-digital/assets/index-DN59eLPD.js deleted file mode 100644 index 28f67066..00000000 --- a/qimingclaw/crates/agent-electron-client/public/sgrobot-digital/assets/index-DN59eLPD.js +++ /dev/null @@ -1,128 +0,0 @@ -(function(){const i=document.createElement("link").relList;if(i&&i.supports&&i.supports("modulepreload"))return;for(const d of document.querySelectorAll('link[rel="modulepreload"]'))o(d);new MutationObserver(d=>{for(const m of d)if(m.type==="childList")for(const p of m.addedNodes)p.tagName==="LINK"&&p.rel==="modulepreload"&&o(p)}).observe(document,{childList:!0,subtree:!0});function r(d){const m={};return d.integrity&&(m.integrity=d.integrity),d.referrerPolicy&&(m.referrerPolicy=d.referrerPolicy),d.crossOrigin==="use-credentials"?m.credentials="include":d.crossOrigin==="anonymous"?m.credentials="omit":m.credentials="same-origin",m}function o(d){if(d.ep)return;d.ep=!0;const m=r(d);fetch(d.href,m)}})();function wb(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var Ro={exports:{}},ys={};/** - * @license React - * react-jsx-runtime.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var hp;function Eb(){if(hp)return ys;hp=1;var n=Symbol.for("react.transitional.element"),i=Symbol.for("react.fragment");function r(o,d,m){var p=null;if(m!==void 0&&(p=""+m),d.key!==void 0&&(p=""+d.key),"key"in d){m={};for(var v in d)v!=="key"&&(m[v]=d[v])}else m=d;return d=m.ref,{$$typeof:n,type:o,key:p,ref:d!==void 0?d:null,props:m}}return ys.Fragment=i,ys.jsx=r,ys.jsxs=r,ys}var pp;function Cb(){return pp||(pp=1,Ro.exports=Eb()),Ro.exports}var c=Cb(),Oo={exports:{}},he={};/** - * @license React - * react.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var gp;function Nb(){if(gp)return he;gp=1;var n=Symbol.for("react.transitional.element"),i=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),d=Symbol.for("react.profiler"),m=Symbol.for("react.consumer"),p=Symbol.for("react.context"),v=Symbol.for("react.forward_ref"),h=Symbol.for("react.suspense"),g=Symbol.for("react.memo"),w=Symbol.for("react.lazy"),S=Symbol.for("react.activity"),C=Symbol.iterator;function M(j){return j===null||typeof j!="object"?null:(j=C&&j[C]||j["@@iterator"],typeof j=="function"?j:null)}var A={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},q=Object.assign,R={};function Y(j,L,X){this.props=j,this.context=L,this.refs=R,this.updater=X||A}Y.prototype.isReactComponent={},Y.prototype.setState=function(j,L){if(typeof j!="object"&&typeof j!="function"&&j!=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,j,L,"setState")},Y.prototype.forceUpdate=function(j){this.updater.enqueueForceUpdate(this,j,"forceUpdate")};function I(){}I.prototype=Y.prototype;function F(j,L,X){this.props=j,this.context=L,this.refs=R,this.updater=X||A}var ne=F.prototype=new I;ne.constructor=F,q(ne,Y.prototype),ne.isPureReactComponent=!0;var se=Array.isArray;function pe(){}var Z={H:null,A:null,T:null,S:null},ee=Object.prototype.hasOwnProperty;function Te(j,L,X){var W=X.ref;return{$$typeof:n,type:j,key:L,ref:W!==void 0?W:null,props:X}}function st(j,L){return Te(j.type,L,j.props)}function Ve(j){return typeof j=="object"&&j!==null&&j.$$typeof===n}function de(j){var L={"=":"=0",":":"=2"};return"$"+j.replace(/[=:]/g,function(X){return L[X]})}var K=/\/+/g;function re(j,L){return typeof j=="object"&&j!==null&&j.key!=null?de(""+j.key):L.toString(36)}function B(j){switch(j.status){case"fulfilled":return j.value;case"rejected":throw j.reason;default:switch(typeof j.status=="string"?j.then(pe,pe):(j.status="pending",j.then(function(L){j.status==="pending"&&(j.status="fulfilled",j.value=L)},function(L){j.status==="pending"&&(j.status="rejected",j.reason=L)})),j.status){case"fulfilled":return j.value;case"rejected":throw j.reason}}throw j}function k(j,L,X,W,ce){var ge=typeof j;(ge==="undefined"||ge==="boolean")&&(j=null);var Ne=!1;if(j===null)Ne=!0;else switch(ge){case"bigint":case"string":case"number":Ne=!0;break;case"object":switch(j.$$typeof){case n:case i:Ne=!0;break;case w:return Ne=j._init,k(Ne(j._payload),L,X,W,ce)}}if(Ne)return ce=ce(j),Ne=W===""?"."+re(j,0):W,se(ce)?(X="",Ne!=null&&(X=Ne.replace(K,"$&/")+"/"),k(ce,L,X,"",function(V){return V})):ce!=null&&(Ve(ce)&&(ce=st(ce,X+(ce.key==null||j&&j.key===ce.key?"":(""+ce.key).replace(K,"$&/")+"/")+Ne)),L.push(ce)),1;Ne=0;var We=W===""?".":W+":";if(se(j))for(var Q=0;Q>>1,be=k[fe];if(0>>1;fed(X,te))Wd(ce,X)?(k[fe]=ce,k[W]=te,fe=W):(k[fe]=X,k[L]=te,fe=L);else if(Wd(ce,te))k[fe]=ce,k[W]=te,fe=W;else break e}}return G}function d(k,G){var te=k.sortIndex-G.sortIndex;return te!==0?te:k.id-G.id}if(n.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var m=performance;n.unstable_now=function(){return m.now()}}else{var p=Date,v=p.now();n.unstable_now=function(){return p.now()-v}}var h=[],g=[],w=1,S=null,C=3,M=!1,A=!1,q=!1,R=!1,Y=typeof setTimeout=="function"?setTimeout:null,I=typeof clearTimeout=="function"?clearTimeout:null,F=typeof setImmediate<"u"?setImmediate:null;function ne(k){for(var G=r(g);G!==null;){if(G.callback===null)o(g);else if(G.startTime<=k)o(g),G.sortIndex=G.expirationTime,i(h,G);else break;G=r(g)}}function se(k){if(q=!1,ne(k),!A)if(r(h)!==null)A=!0,pe||(pe=!0,de());else{var G=r(g);G!==null&&B(se,G.startTime-k)}}var pe=!1,Z=-1,ee=5,Te=-1;function st(){return R?!0:!(n.unstable_now()-Tek&&st());){var fe=S.callback;if(typeof fe=="function"){S.callback=null,C=S.priorityLevel;var be=fe(S.expirationTime<=k);if(k=n.unstable_now(),typeof be=="function"){S.callback=be,ne(k),G=!0;break t}S===r(h)&&o(h),ne(k)}else o(h);S=r(h)}if(S!==null)G=!0;else{var j=r(g);j!==null&&B(se,j.startTime-k),G=!1}}break e}finally{S=null,C=te,M=!1}G=void 0}}finally{G?de():pe=!1}}}var de;if(typeof F=="function")de=function(){F(Ve)};else if(typeof MessageChannel<"u"){var K=new MessageChannel,re=K.port2;K.port1.onmessage=Ve,de=function(){re.postMessage(null)}}else de=function(){Y(Ve,0)};function B(k,G){Z=Y(function(){k(n.unstable_now())},G)}n.unstable_IdlePriority=5,n.unstable_ImmediatePriority=1,n.unstable_LowPriority=4,n.unstable_NormalPriority=3,n.unstable_Profiling=null,n.unstable_UserBlockingPriority=2,n.unstable_cancelCallback=function(k){k.callback=null},n.unstable_forceFrameRate=function(k){0>k||125fe?(k.sortIndex=te,i(g,k),r(h)===null&&k===r(g)&&(q?(I(Z),Z=-1):q=!0,B(se,te-fe))):(k.sortIndex=be,i(h,k),A||M||(A=!0,pe||(pe=!0,de()))),k},n.unstable_shouldYield=st,n.unstable_wrapCallback=function(k){var G=C;return function(){var te=C;C=G;try{return k.apply(this,arguments)}finally{C=te}}}})($o)),$o}var bp;function kb(){return bp||(bp=1,Lo.exports=Tb()),Lo.exports}var Uo={exports:{}},Et={};/** - * @license React - * react-dom.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var _p;function Db(){if(_p)return Et;_p=1;var n=yd();function i(h){var g="https://react.dev/errors/"+h;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(i){console.error(i)}}return n(),Uo.exports=Db(),Uo.exports}/** - * @license React - * react-dom-client.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var xp;function Mb(){if(xp)return vs;xp=1;var n=kb(),i=yd(),r=zb();function o(e){var t="https://react.dev/errors/"+e;if(1be||(e.current=fe[be],fe[be]=null,be--)}function X(e,t){be++,fe[be]=e.current,e.current=t}var W=j(null),ce=j(null),ge=j(null),Ne=j(null);function We(e,t){switch(X(ge,t),X(ce,e),X(W,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Lh(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Lh(t),e=$h(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}L(W),X(W,e)}function Q(){L(W),L(ce),L(ge)}function V(e){e.memoizedState!==null&&X(Ne,e);var t=W.current,a=$h(t,e.type);t!==a&&(X(ce,e),X(W,a))}function me(e){ce.current===e&&(L(W),L(ce)),Ne.current===e&&(L(Ne),ms._currentValue=te)}var Re,Ie;function rt(e){if(Re===void 0)try{throw Error()}catch(a){var t=a.stack.trim().match(/\n( *(at )?)/);Re=t&&t[1]||"",Ie=-1)":-1s||x[l]!==D[s]){var $=` -`+x[l].replace(" at new "," at ");return e.displayName&&$.includes("")&&($=$.replace("",e.displayName)),$}while(1<=l&&0<=s);break}}}finally{Ct=!1,Error.prepareStackTrace=a}return(a=e?e.displayName||e.name:"")?rt(a):""}function xt(e,t){switch(e.tag){case 26:case 27:case 5:return rt(e.type);case 16:return rt("Lazy");case 13:return e.child!==t&&t!==null?rt("Suspense Fallback"):rt("Suspense");case 19:return rt("SuspenseList");case 0:case 15:return Oe(e.type,!1);case 11:return Oe(e.type.render,!1);case 1:return Oe(e.type,!0);case 31:return rt("Activity");default:return""}}function La(e){try{var t="",a=null;do t+=xt(e,a),a=e,e=e.return;while(e);return t}catch(l){return` -Error generating stack: `+l.message+` -`+l.stack}}var Qn=Object.prototype.hasOwnProperty,Si=n.unstable_scheduleCallback,yt=n.unstable_cancelCallback,Os=n.unstable_shouldYield,Ae=n.unstable_requestPaint,mt=n.unstable_now,xa=n.unstable_getCurrentPriorityLevel,ja=n.unstable_ImmediatePriority,Kn=n.unstable_UserBlockingPriority,zt=n.unstable_NormalPriority,Nt=n.unstable_LowPriority,Xn=n.unstable_IdlePriority,$a=n.log,Zn=n.unstable_setDisableYieldValue,Ua=null,Ge=null;function wa(e){if(typeof $a=="function"&&Zn(e),Ge&&typeof Ge.setStrictMode=="function")try{Ge.setStrictMode(Ua,e)}catch{}}var jt=Math.clz32?Math.clz32:xi,hn=Math.log,kc=Math.LN2;function xi(e){return e>>>=0,e===0?32:31-(hn(e)/kc|0)|0}var wl=256,El=262144,Cl=4194304;function Ba(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 Mt(e,t,a){var l=e.pendingLanes;if(l===0)return 0;var s=0,u=e.suspendedLanes,f=e.pingedLanes;e=e.warmLanes;var y=l&134217727;return y!==0?(l=y&~u,l!==0?s=Ba(l):(f&=y,f!==0?s=Ba(f):a||(a=y&~e,a!==0&&(s=Ba(a))))):(y=l&~u,y!==0?s=Ba(y):f!==0?s=Ba(f):a||(a=l&~e,a!==0&&(s=Ba(a)))),s===0?0:t!==0&&t!==s&&(t&u)===0&&(u=s&-s,a=t&-t,u>=a||u===32&&(a&4194048)!==0)?t:s}function ze(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function we(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 Nl(){var e=Cl;return Cl<<=1,(Cl&62914560)===0&&(Cl=4194304),e}function oe(e){for(var t=[],a=0;31>a;a++)t.push(e);return t}function pn(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Vn(e,t,a,l,s,u){var f=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 y=e.entanglements,x=e.expirationTimes,D=e.hiddenUpdates;for(a=f&~a;0"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var Mc=/[\n"\\]/g;function Rt(e){return e.replace(Mc,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function Ai(e,t,a,l,s,u,f,y){e.name="",f!=null&&typeof f!="function"&&typeof f!="symbol"&&typeof f!="boolean"?e.type=f:e.removeAttribute("type"),t!=null?f==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+Tt(t)):e.value!==""+Tt(t)&&(e.value=""+Tt(t)):f!=="submit"&&f!=="reset"||e.removeAttribute("value"),t!=null?ki(e,f,Tt(t)):a!=null?ki(e,f,Tt(a)):l!=null&&e.removeAttribute("value"),s==null&&u!=null&&(e.defaultChecked=!!u),s!=null&&(e.checked=s&&typeof s!="function"&&typeof s!="symbol"),y!=null&&typeof y!="function"&&typeof y!="symbol"&&typeof y!="boolean"?e.name=""+Tt(y):e.removeAttribute("name")}function Ti(e,t,a,l,s,u,f,y){if(u!=null&&typeof u!="function"&&typeof u!="symbol"&&typeof u!="boolean"&&(e.type=u),t!=null||a!=null){if(!(u!=="submit"&&u!=="reset"||t!=null)){Ni(e);return}a=a!=null?""+Tt(a):"",t=t!=null?""+Tt(t):a,y||t===e.value||(e.value=t),e.defaultValue=t}l=l??s,l=typeof l!="function"&&typeof l!="symbol"&&!!l,e.checked=y?e.checked:!!l,e.defaultChecked=!!l,f!=null&&typeof f!="function"&&typeof f!="symbol"&&typeof f!="boolean"&&(e.name=f),Ni(e)}function ki(e,t,a){t==="number"&&zl(e.ownerDocument)===e||e.defaultValue===""+a||(e.defaultValue=""+a)}function ma(e,t,a,l){if(e=e.options,t){t={};for(var s=0;s"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Ke=!1;if(le)try{var nt={};Object.defineProperty(nt,"passive",{get:function(){Ke=!0}}),window.addEventListener("test",nt,nt),window.removeEventListener("test",nt,nt)}catch{Ke=!1}var kt=null,Pe=null,Ot=null;function vn(){if(Ot)return Ot;var e,t=Pe,a=t.length,l,s="value"in kt?kt.value:kt.textContent,u=s.length;for(e=0;e=Ri),Gd=" ",Qd=!1;function Kd(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 Xd(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Ul=!1;function Vy(e,t){switch(e){case"compositionend":return Xd(t);case"keypress":return t.which!==32?null:(Qd=!0,Gd);case"textInput":return e=t.data,e===Gd&&Qd?null:e;default:return null}}function Jy(e,t){if(Ul)return e==="compositionend"||!Uc&&Kd(e,t)?(e=vn(),Ot=Pe=kt=null,Ul=!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:a,offset:t-e};e=l}e:{for(;a;){if(a.nextSibling){a=a.nextSibling;break e}a=a.parentNode}a=void 0}a=ef(a)}}function af(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?af(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function nf(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=zl(e.document);t instanceof e.HTMLIFrameElement;){try{var a=typeof t.contentWindow.location.href=="string"}catch{a=!1}if(a)e=t.contentWindow;else break;t=zl(e.document)}return t}function Yc(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 nv=le&&"documentMode"in document&&11>=document.documentMode,Bl=null,Gc=null,$i=null,Qc=!1;function lf(e,t,a){var l=a.window===a?a.document:a.nodeType===9?a:a.ownerDocument;Qc||Bl==null||Bl!==zl(l)||(l=Bl,"selectionStart"in l&&Yc(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}),$i&&Li($i,l)||($i=l,l=Ur(Gc,"onSelect"),0>=f,s-=f,ka=1<<32-jt(t)+s|a<ve?(je=ae,ae=null):je=ae.sibling;var De=z(N,ae,T[ve],U);if(De===null){ae===null&&(ae=je);break}e&&ae&&De.alternate===null&&t(N,ae),E=u(De,E,ve),ke===null?ie=De:ke.sibling=De,ke=De,ae=je}if(ve===T.length)return a(N,ae),Ee&&Za(N,ve),ie;if(ae===null){for(;veve?(je=ae,ae=null):je=ae.sibling;var Bn=z(N,ae,De.value,U);if(Bn===null){ae===null&&(ae=je);break}e&&ae&&Bn.alternate===null&&t(N,ae),E=u(Bn,E,ve),ke===null?ie=Bn:ke.sibling=Bn,ke=Bn,ae=je}if(De.done)return a(N,ae),Ee&&Za(N,ve),ie;if(ae===null){for(;!De.done;ve++,De=T.next())De=H(N,De.value,U),De!==null&&(E=u(De,E,ve),ke===null?ie=De:ke.sibling=De,ke=De);return Ee&&Za(N,ve),ie}for(ae=l(ae);!De.done;ve++,De=T.next())De=O(ae,N,ve,De.value,U),De!==null&&(e&&De.alternate!==null&&ae.delete(De.key===null?ve:De.key),E=u(De,E,ve),ke===null?ie=De:ke.sibling=De,ke=De);return e&&ae.forEach(function(jb){return t(N,jb)}),Ee&&Za(N,ve),ie}function Be(N,E,T,U){if(typeof T=="object"&&T!==null&&T.type===q&&T.key===null&&(T=T.props.children),typeof T=="object"&&T!==null){switch(T.$$typeof){case M:e:{for(var ie=T.key;E!==null;){if(E.key===ie){if(ie=T.type,ie===q){if(E.tag===7){a(N,E.sibling),U=s(E,T.props.children),U.return=N,N=U;break e}}else if(E.elementType===ie||typeof ie=="object"&&ie!==null&&ie.$$typeof===ee&&cl(ie)===E.type){a(N,E.sibling),U=s(E,T.props),Qi(U,T),U.return=N,N=U;break e}a(N,E);break}else t(N,E);E=E.sibling}T.type===q?(U=nl(T.props.children,N.mode,U,T.key),U.return=N,N=U):(U=ar(T.type,T.key,T.props,null,N.mode,U),Qi(U,T),U.return=N,N=U)}return f(N);case A:e:{for(ie=T.key;E!==null;){if(E.key===ie)if(E.tag===4&&E.stateNode.containerInfo===T.containerInfo&&E.stateNode.implementation===T.implementation){a(N,E.sibling),U=s(E,T.children||[]),U.return=N,N=U;break e}else{a(N,E);break}else t(N,E);E=E.sibling}U=Wc(T,N.mode,U),U.return=N,N=U}return f(N);case ee:return T=cl(T),Be(N,E,T,U)}if(B(T))return P(N,E,T,U);if(de(T)){if(ie=de(T),typeof ie!="function")throw Error(o(150));return T=ie.call(T),ue(N,E,T,U)}if(typeof T.then=="function")return Be(N,E,ur(T),U);if(T.$$typeof===F)return Be(N,E,ir(N,T),U);or(N,T)}return typeof T=="string"&&T!==""||typeof T=="number"||typeof T=="bigint"?(T=""+T,E!==null&&E.tag===6?(a(N,E.sibling),U=s(E,T),U.return=N,N=U):(a(N,E),U=Fc(T,N.mode,U),U.return=N,N=U),f(N)):a(N,E)}return function(N,E,T,U){try{Gi=0;var ie=Be(N,E,T,U);return Wl=null,ie}catch(ae){if(ae===Fl||ae===rr)throw ae;var ke=Kt(29,ae,null,N.mode);return ke.lanes=U,ke.return=N,ke}finally{}}}var ol=Af(!0),Tf=Af(!1),jn=!1;function uu(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function ou(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 wn(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function En(e,t,a){var l=e.updateQueue;if(l===null)return null;if(l=l.shared,(Me&2)!==0){var s=l.pending;return s===null?t.next=t:(t.next=s.next,s.next=t),l.pending=t,t=tr(e),ff(e,null,a),t}return er(e,l,t,a),tr(e)}function Ki(e,t,a){if(t=t.updateQueue,t!==null&&(t=t.shared,(a&4194048)!==0)){var l=t.lanes;l&=e.pendingLanes,a|=l,t.lanes=a,da(e,a)}}function du(e,t){var a=e.updateQueue,l=e.alternate;if(l!==null&&(l=l.updateQueue,a===l)){var s=null,u=null;if(a=a.firstBaseUpdate,a!==null){do{var f={lane:a.lane,tag:a.tag,payload:a.payload,callback:null,next:null};u===null?s=u=f:u=u.next=f,a=a.next}while(a!==null);u===null?s=u=t:u=u.next=t}else s=u=t;a={baseState:l.baseState,firstBaseUpdate:s,lastBaseUpdate:u,shared:l.shared,callbacks:l.callbacks},e.updateQueue=a;return}e=a.lastBaseUpdate,e===null?a.firstBaseUpdate=t:e.next=t,a.lastBaseUpdate=t}var fu=!1;function Xi(){if(fu){var e=Jl;if(e!==null)throw e}}function Zi(e,t,a,l){fu=!1;var s=e.updateQueue;jn=!1;var u=s.firstBaseUpdate,f=s.lastBaseUpdate,y=s.shared.pending;if(y!==null){s.shared.pending=null;var x=y,D=x.next;x.next=null,f===null?u=D:f.next=D,f=x;var $=e.alternate;$!==null&&($=$.updateQueue,y=$.lastBaseUpdate,y!==f&&(y===null?$.firstBaseUpdate=D:y.next=D,$.lastBaseUpdate=x))}if(u!==null){var H=s.baseState;f=0,$=D=x=null,y=u;do{var z=y.lane&-536870913,O=z!==y.lane;if(O?(xe&z)===z:(l&z)===z){z!==0&&z===Vl&&(fu=!0),$!==null&&($=$.next={lane:0,tag:y.tag,payload:y.payload,callback:null,next:null});e:{var P=e,ue=y;z=t;var Be=a;switch(ue.tag){case 1:if(P=ue.payload,typeof P=="function"){H=P.call(Be,H,z);break e}H=P;break e;case 3:P.flags=P.flags&-65537|128;case 0:if(P=ue.payload,z=typeof P=="function"?P.call(Be,H,z):P,z==null)break e;H=S({},H,z);break e;case 2:jn=!0}}z=y.callback,z!==null&&(e.flags|=64,O&&(e.flags|=8192),O=s.callbacks,O===null?s.callbacks=[z]:O.push(z))}else O={lane:z,tag:y.tag,payload:y.payload,callback:y.callback,next:null},$===null?(D=$=O,x=H):$=$.next=O,f|=z;if(y=y.next,y===null){if(y=s.shared.pending,y===null)break;O=y,y=O.next,O.next=null,s.lastBaseUpdate=O,s.shared.pending=null}}while(!0);$===null&&(x=H),s.baseState=x,s.firstBaseUpdate=D,s.lastBaseUpdate=$,u===null&&(s.shared.lanes=0),kn|=f,e.lanes=f,e.memoizedState=H}}function kf(e,t){if(typeof e!="function")throw Error(o(191,e));e.call(t)}function Df(e,t){var a=e.callbacks;if(a!==null)for(e.callbacks=null,e=0;eu?u:8;var f=k.T,y={};k.T=y,Du(e,!1,t,a);try{var x=s(),D=k.S;if(D!==null&&D(y,x),x!==null&&typeof x=="object"&&typeof x.then=="function"){var $=fv(x,l);Fi(e,t,$,Ft(e))}else Fi(e,t,l,Ft(e))}catch(H){Fi(e,t,{then:function(){},status:"rejected",reason:H},Ft())}finally{G.p=u,f!==null&&y.types!==null&&(f.types=y.types),k.T=f}}function vv(){}function Tu(e,t,a,l){if(e.tag!==5)throw Error(o(476));var s=um(e).queue;cm(e,s,t,te,a===null?vv:function(){return om(e),a(l)})}function um(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:te,baseState:te,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Wa,lastRenderedState:te},next:null};var a={};return t.next={memoizedState:a,baseState:a,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Wa,lastRenderedState:a},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function om(e){var t=um(e);t.next===null&&(t=e.alternate.memoizedState),Fi(e,t.next.queue,{},Ft())}function ku(){return bt(ms)}function dm(){return it().memoizedState}function fm(){return it().memoizedState}function bv(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var a=Ft();e=wn(a);var l=En(t,e,a);l!==null&&(Ht(l,t,a),Ki(l,t,a)),t={cache:iu()},e.payload=t;return}t=t.return}}function _v(e,t,a){var l=Ft();a={lane:l,revertLane:0,gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},_r(e)?hm(t,a):(a=Vc(e,t,a,l),a!==null&&(Ht(a,e,l),pm(a,t,l)))}function mm(e,t,a){var l=Ft();Fi(e,t,a,l)}function Fi(e,t,a,l){var s={lane:l,revertLane:0,gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null};if(_r(e))hm(t,s);else{var u=e.alternate;if(e.lanes===0&&(u===null||u.lanes===0)&&(u=t.lastRenderedReducer,u!==null))try{var f=t.lastRenderedState,y=u(f,a);if(s.hasEagerState=!0,s.eagerState=y,Qt(y,f))return er(e,t,s,0),Qe===null&&Ps(),!1}catch{}finally{}if(a=Vc(e,t,s,l),a!==null)return Ht(a,e,l),pm(a,t,l),!0}return!1}function Du(e,t,a,l){if(l={lane:2,revertLane:uo(),gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null},_r(e)){if(t)throw Error(o(479))}else t=Vc(e,a,l,2),t!==null&&Ht(t,e,2)}function _r(e){var t=e.alternate;return e===ye||t!==null&&t===ye}function hm(e,t){Pl=mr=!0;var a=e.pending;a===null?t.next=t:(t.next=a.next,a.next=t),e.pending=t}function pm(e,t,a){if((a&4194048)!==0){var l=t.lanes;l&=e.pendingLanes,a|=l,t.lanes=a,da(e,a)}}var Wi={readContext:bt,use:gr,useCallback:et,useContext:et,useEffect:et,useImperativeHandle:et,useLayoutEffect:et,useInsertionEffect:et,useMemo:et,useReducer:et,useRef:et,useState:et,useDebugValue:et,useDeferredValue:et,useTransition:et,useSyncExternalStore:et,useId:et,useHostTransitionStatus:et,useFormState:et,useActionState:et,useOptimistic:et,useMemoCache:et,useCacheRefresh:et};Wi.useEffectEvent=et;var gm={readContext:bt,use:gr,useCallback:function(e,t){return Dt().memoizedState=[e,t===void 0?null:t],e},useContext:bt,useEffect:Pf,useImperativeHandle:function(e,t,a){a=a!=null?a.concat([e]):null,vr(4194308,4,nm.bind(null,t,e),a)},useLayoutEffect:function(e,t){return vr(4194308,4,e,t)},useInsertionEffect:function(e,t){vr(4,2,e,t)},useMemo:function(e,t){var a=Dt();t=t===void 0?null:t;var l=e();if(dl){wa(!0);try{e()}finally{wa(!1)}}return a.memoizedState=[l,t],l},useReducer:function(e,t,a){var l=Dt();if(a!==void 0){var s=a(t);if(dl){wa(!0);try{a(t)}finally{wa(!1)}}}else s=t;return l.memoizedState=l.baseState=s,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:s},l.queue=e,e=e.dispatch=_v.bind(null,ye,e),[l.memoizedState,e]},useRef:function(e){var t=Dt();return e={current:e},t.memoizedState=e},useState:function(e){e=wu(e);var t=e.queue,a=mm.bind(null,ye,t);return t.dispatch=a,[e.memoizedState,a]},useDebugValue:Nu,useDeferredValue:function(e,t){var a=Dt();return Au(a,e,t)},useTransition:function(){var e=wu(!1);return e=cm.bind(null,ye,e.queue,!0,!1),Dt().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,a){var l=ye,s=Dt();if(Ee){if(a===void 0)throw Error(o(407));a=a()}else{if(a=t(),Qe===null)throw Error(o(349));(xe&127)!==0||Lf(l,t,a)}s.memoizedState=a;var u={value:a,getSnapshot:t};return s.queue=u,Pf(Uf.bind(null,l,u,e),[e]),l.flags|=2048,ti(9,{destroy:void 0},$f.bind(null,l,u,a,t),null),a},useId:function(){var e=Dt(),t=Qe.identifierPrefix;if(Ee){var a=Da,l=ka;a=(l&~(1<<32-jt(l)-1)).toString(32)+a,t="_"+t+"R_"+a,a=hr++,0<\/script>",u=u.removeChild(u.firstChild);break;case"select":u=typeof l.is=="string"?f.createElement("select",{is:l.is}):f.createElement("select"),l.multiple?u.multiple=!0:l.size&&(u.size=l.size);break;default:u=typeof l.is=="string"?f.createElement(s,{is:l.is}):f.createElement(s)}}u[ht]=t,u[wt]=l;e:for(f=t.child;f!==null;){if(f.tag===5||f.tag===6)u.appendChild(f.stateNode);else if(f.tag!==4&&f.tag!==27&&f.child!==null){f.child.return=f,f=f.child;continue}if(f===t)break e;for(;f.sibling===null;){if(f.return===null||f.return===t)break e;f=f.return}f.sibling.return=f.return,f=f.sibling}t.stateNode=u;e:switch(St(u,s,l),s){case"button":case"input":case"select":case"textarea":l=!!l.autoFocus;break e;case"img":l=!0;break e;default:l=!1}l&&Pa(t)}}return Ze(t),Ku(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,a),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==l&&Pa(t);else{if(typeof l!="string"&&t.stateNode===null)throw Error(o(166));if(e=ge.current,Xl(t)){if(e=t.stateNode,a=t.memoizedProps,l=null,s=vt,s!==null)switch(s.tag){case 27:case 5:l=s.memoizedProps}e[ht]=t,e=!!(e.nodeValue===a||l!==null&&l.suppressHydrationWarning===!0||Oh(e.nodeValue,a)),e||Sn(t,!0)}else e=Br(e).createTextNode(l),e[ht]=t,t.stateNode=e}return Ze(t),null;case 31:if(a=t.memoizedState,e===null||e.memoizedState!==null){if(l=Xl(t),a!==null){if(e===null){if(!l)throw Error(o(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(o(557));e[ht]=t}else ll(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Ze(t),e=!1}else a=tu(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),e=!0;if(!e)return t.flags&256?(Zt(t),t):(Zt(t),null);if((t.flags&128)!==0)throw Error(o(558))}return Ze(t),null;case 13:if(l=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(s=Xl(t),l!==null&&l.dehydrated!==null){if(e===null){if(!s)throw Error(o(318));if(s=t.memoizedState,s=s!==null?s.dehydrated:null,!s)throw Error(o(317));s[ht]=t}else ll(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Ze(t),s=!1}else s=tu(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=s),s=!0;if(!s)return t.flags&256?(Zt(t),t):(Zt(t),null)}return Zt(t),(t.flags&128)!==0?(t.lanes=a,t):(a=l!==null,e=e!==null&&e.memoizedState!==null,a&&(l=t.child,s=null,l.alternate!==null&&l.alternate.memoizedState!==null&&l.alternate.memoizedState.cachePool!==null&&(s=l.alternate.memoizedState.cachePool.pool),u=null,l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(u=l.memoizedState.cachePool.pool),u!==s&&(l.flags|=2048)),a!==e&&a&&(t.child.flags|=8192),Er(t,t.updateQueue),Ze(t),null);case 4:return Q(),e===null&&ho(t.stateNode.containerInfo),Ze(t),null;case 10:return Ja(t.type),Ze(t),null;case 19:if(L(lt),l=t.memoizedState,l===null)return Ze(t),null;if(s=(t.flags&128)!==0,u=l.rendering,u===null)if(s)Pi(l,!1);else{if(tt!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(u=fr(e),u!==null){for(t.flags|=128,Pi(l,!1),e=u.updateQueue,t.updateQueue=e,Er(t,e),t.subtreeFlags=0,e=a,a=t.child;a!==null;)mf(a,e),a=a.sibling;return X(lt,lt.current&1|2),Ee&&Za(t,l.treeForkCount),t.child}e=e.sibling}l.tail!==null&&mt()>kr&&(t.flags|=128,s=!0,Pi(l,!1),t.lanes=4194304)}else{if(!s)if(e=fr(u),e!==null){if(t.flags|=128,s=!0,e=e.updateQueue,t.updateQueue=e,Er(t,e),Pi(l,!0),l.tail===null&&l.tailMode==="hidden"&&!u.alternate&&!Ee)return Ze(t),null}else 2*mt()-l.renderingStartTime>kr&&a!==536870912&&(t.flags|=128,s=!0,Pi(l,!1),t.lanes=4194304);l.isBackwards?(u.sibling=t.child,t.child=u):(e=l.last,e!==null?e.sibling=u:t.child=u,l.last=u)}return l.tail!==null?(e=l.tail,l.rendering=e,l.tail=e.sibling,l.renderingStartTime=mt(),e.sibling=null,a=lt.current,X(lt,s?a&1|2:a&1),Ee&&Za(t,l.treeForkCount),e):(Ze(t),null);case 22:case 23:return Zt(t),hu(),l=t.memoizedState!==null,e!==null?e.memoizedState!==null!==l&&(t.flags|=8192):l&&(t.flags|=8192),l?(a&536870912)!==0&&(t.flags&128)===0&&(Ze(t),t.subtreeFlags&6&&(t.flags|=8192)):Ze(t),a=t.updateQueue,a!==null&&Er(t,a.retryQueue),a=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(a=e.memoizedState.cachePool.pool),l=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(l=t.memoizedState.cachePool.pool),l!==a&&(t.flags|=2048),e!==null&&L(rl),null;case 24:return a=null,e!==null&&(a=e.memoizedState.cache),t.memoizedState.cache!==a&&(t.flags|=2048),Ja(ut),Ze(t),null;case 25:return null;case 30:return null}throw Error(o(156,t.tag))}function Ev(e,t){switch(Pc(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Ja(ut),Q(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return me(t),null;case 31:if(t.memoizedState!==null){if(Zt(t),t.alternate===null)throw Error(o(340));ll()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(Zt(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(o(340));ll()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return L(lt),null;case 4:return Q(),null;case 10:return Ja(t.type),null;case 22:case 23:return Zt(t),hu(),e!==null&&L(rl),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Ja(ut),null;case 25:return null;default:return null}}function Bm(e,t){switch(Pc(t),t.tag){case 3:Ja(ut),Q();break;case 26:case 27:case 5:me(t);break;case 4:Q();break;case 31:t.memoizedState!==null&&Zt(t);break;case 13:Zt(t);break;case 19:L(lt);break;case 10:Ja(t.type);break;case 22:case 23:Zt(t),hu(),e!==null&&L(rl);break;case 24:Ja(ut)}}function es(e,t){try{var a=t.updateQueue,l=a!==null?a.lastEffect:null;if(l!==null){var s=l.next;a=s;do{if((a.tag&e)===e){l=void 0;var u=a.create,f=a.inst;l=u(),f.destroy=l}a=a.next}while(a!==s)}}catch(y){Le(t,t.return,y)}}function An(e,t,a){try{var l=t.updateQueue,s=l!==null?l.lastEffect:null;if(s!==null){var u=s.next;l=u;do{if((l.tag&e)===e){var f=l.inst,y=f.destroy;if(y!==void 0){f.destroy=void 0,s=t;var x=a,D=y;try{D()}catch($){Le(s,x,$)}}}l=l.next}while(l!==u)}}catch($){Le(t,t.return,$)}}function Hm(e){var t=e.updateQueue;if(t!==null){var a=e.stateNode;try{Df(t,a)}catch(l){Le(e,e.return,l)}}}function Ym(e,t,a){a.props=fl(e.type,e.memoizedProps),a.state=e.memoizedState;try{a.componentWillUnmount()}catch(l){Le(e,t,l)}}function ts(e,t){try{var a=e.ref;if(a!==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 a=="function"?e.refCleanup=a(l):a.current=l}}catch(s){Le(e,t,s)}}function za(e,t){var a=e.ref,l=e.refCleanup;if(a!==null)if(typeof l=="function")try{l()}catch(s){Le(e,t,s)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof a=="function")try{a(null)}catch(s){Le(e,t,s)}else a.current=null}function Gm(e){var t=e.type,a=e.memoizedProps,l=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":a.autoFocus&&l.focus();break e;case"img":a.src?l.src=a.src:a.srcSet&&(l.srcset=a.srcSet)}}catch(s){Le(e,e.return,s)}}function Xu(e,t,a){try{var l=e.stateNode;Zv(l,e.type,a,t),l[wt]=t}catch(s){Le(e,e.return,s)}}function Qm(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&On(e.type)||e.tag===4}function Zu(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Qm(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&&On(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 Vu(e,t,a){var l=e.tag;if(l===5||l===6)e=e.stateNode,t?(a.nodeType===9?a.body:a.nodeName==="HTML"?a.ownerDocument.body:a).insertBefore(e,t):(t=a.nodeType===9?a.body:a.nodeName==="HTML"?a.ownerDocument.body:a,t.appendChild(e),a=a._reactRootContainer,a!=null||t.onclick!==null||(t.onclick=ha));else if(l!==4&&(l===27&&On(e.type)&&(a=e.stateNode,t=null),e=e.child,e!==null))for(Vu(e,t,a),e=e.sibling;e!==null;)Vu(e,t,a),e=e.sibling}function Cr(e,t,a){var l=e.tag;if(l===5||l===6)e=e.stateNode,t?a.insertBefore(e,t):a.appendChild(e);else if(l!==4&&(l===27&&On(e.type)&&(a=e.stateNode),e=e.child,e!==null))for(Cr(e,t,a),e=e.sibling;e!==null;)Cr(e,t,a),e=e.sibling}function Km(e){var t=e.stateNode,a=e.memoizedProps;try{for(var l=e.type,s=t.attributes;s.length;)t.removeAttributeNode(s[0]);St(t,l,a),t[ht]=e,t[wt]=a}catch(u){Le(e,e.return,u)}}var en=!1,ft=!1,Ju=!1,Xm=typeof WeakSet=="function"?WeakSet:Set,gt=null;function Cv(e,t){if(e=e.containerInfo,yo=Zr,e=nf(e),Yc(e)){if("selectionStart"in e)var a={start:e.selectionStart,end:e.selectionEnd};else e:{a=(a=e.ownerDocument)&&a.defaultView||window;var l=a.getSelection&&a.getSelection();if(l&&l.rangeCount!==0){a=l.anchorNode;var s=l.anchorOffset,u=l.focusNode;l=l.focusOffset;try{a.nodeType,u.nodeType}catch{a=null;break e}var f=0,y=-1,x=-1,D=0,$=0,H=e,z=null;t:for(;;){for(var O;H!==a||s!==0&&H.nodeType!==3||(y=f+s),H!==u||l!==0&&H.nodeType!==3||(x=f+l),H.nodeType===3&&(f+=H.nodeValue.length),(O=H.firstChild)!==null;)z=H,H=O;for(;;){if(H===e)break t;if(z===a&&++D===s&&(y=f),z===u&&++$===l&&(x=f),(O=H.nextSibling)!==null)break;H=z,z=H.parentNode}H=O}a=y===-1||x===-1?null:{start:y,end:x}}else a=null}a=a||{start:0,end:0}}else a=null;for(vo={focusedElem:e,selectionRange:a},Zr=!1,gt=t;gt!==null;)if(t=gt,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,gt=e;else for(;gt!==null;){switch(t=gt,u=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(a=0;a title"))),St(u,l,a),u[ht]=e,ct(u),l=u;break e;case"link":var f=Ih("link","href",s).get(l+(a.href||""));if(f){for(var y=0;yBe&&(f=Be,Be=ue,ue=f);var N=tf(y,ue),E=tf(y,Be);if(N&&E&&(O.rangeCount!==1||O.anchorNode!==N.node||O.anchorOffset!==N.offset||O.focusNode!==E.node||O.focusOffset!==E.offset)){var T=H.createRange();T.setStart(N.node,N.offset),O.removeAllRanges(),ue>Be?(O.addRange(T),O.extend(E.node,E.offset)):(T.setEnd(E.node,E.offset),O.addRange(T))}}}}for(H=[],O=y;O=O.parentNode;)O.nodeType===1&&H.push({element:O,left:O.scrollLeft,top:O.scrollTop});for(typeof y.focus=="function"&&y.focus(),y=0;ya?32:a,k.T=null,a=ao,ao=null;var u=zn,f=sn;if(pt=0,si=zn=null,sn=0,(Me&6)!==0)throw Error(o(331));var y=Me;if(Me|=4,nh(u.current),eh(u,u.current,f,a),Me=y,rs(0,!1),Ge&&typeof Ge.onPostCommitFiberRoot=="function")try{Ge.onPostCommitFiberRoot(Ua,u)}catch{}return!0}finally{G.p=s,k.T=l,Sh(e,t)}}function jh(e,t,a){t=ta(a,t),t=Ou(e.stateNode,t,2),e=En(e,t,2),e!==null&&(pn(e,2),Ma(e))}function Le(e,t,a){if(e.tag===3)jh(e,e,a);else for(;t!==null;){if(t.tag===3){jh(t,e,a);break}else if(t.tag===1){var l=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof l.componentDidCatch=="function"&&(Dn===null||!Dn.has(l))){e=ta(a,e),a=wm(2),l=En(t,a,2),l!==null&&(Em(a,l,t,e),pn(l,2),Ma(l));break}}t=t.return}}function so(e,t,a){var l=e.pingCache;if(l===null){l=e.pingCache=new Tv;var s=new Set;l.set(t,s)}else s=l.get(t),s===void 0&&(s=new Set,l.set(t,s));s.has(a)||(Iu=!0,s.add(a),e=Rv.bind(null,e,t,a),t.then(e,e))}function Rv(e,t,a){var l=e.pingCache;l!==null&&l.delete(t),e.pingedLanes|=e.suspendedLanes&a,e.warmLanes&=~a,Qe===e&&(xe&a)===a&&(tt===4||tt===3&&(xe&62914560)===xe&&300>mt()-Tr?(Me&2)===0&&ri(e,0):Pu|=a,ii===xe&&(ii=0)),Ma(e)}function wh(e,t){t===0&&(t=Nl()),e=al(e,t),e!==null&&(pn(e,t),Ma(e))}function Ov(e){var t=e.memoizedState,a=0;t!==null&&(a=t.retryLane),wh(e,a)}function qv(e,t){var a=0;switch(e.tag){case 31:case 13:var l=e.stateNode,s=e.memoizedState;s!==null&&(a=s.retryLane);break;case 19:l=e.stateNode;break;case 22:l=e.stateNode._retryCache;break;default:throw Error(o(314))}l!==null&&l.delete(t),wh(e,a)}function Lv(e,t){return Si(e,t)}var qr=null,ui=null,ro=!1,Lr=!1,co=!1,Rn=0;function Ma(e){e!==ui&&e.next===null&&(ui===null?qr=ui=e:ui=ui.next=e),Lr=!0,ro||(ro=!0,Uv())}function rs(e,t){if(!co&&Lr){co=!0;do for(var a=!1,l=qr;l!==null;){if(e!==0){var s=l.pendingLanes;if(s===0)var u=0;else{var f=l.suspendedLanes,y=l.pingedLanes;u=(1<<31-jt(42|e)+1)-1,u&=s&~(f&~y),u=u&201326741?u&201326741|1:u?u|2:0}u!==0&&(a=!0,Ah(l,u))}else u=xe,u=Mt(l,l===Qe?u:0,l.cancelPendingCommit!==null||l.timeoutHandle!==-1),(u&3)===0||ze(l,u)||(a=!0,Ah(l,u));l=l.next}while(a);co=!1}}function $v(){Eh()}function Eh(){Lr=ro=!1;var e=0;Rn!==0&&Jv()&&(e=Rn);for(var t=mt(),a=null,l=qr;l!==null;){var s=l.next,u=Ch(l,t);u===0?(l.next=null,a===null?qr=s:a.next=s,s===null&&(ui=a)):(a=l,(e!==0||(u&3)!==0)&&(Lr=!0)),l=s}pt!==0&&pt!==5||rs(e),Rn!==0&&(Rn=0)}function Ch(e,t){for(var a=e.suspendedLanes,l=e.pingedLanes,s=e.expirationTimes,u=e.pendingLanes&-62914561;0y)break;var $=x.transferSize,H=x.initiatorType;$&&qh(H)&&(x=x.responseEnd,f+=$*(x"u"?null:document;function Vh(e,t,a){var l=oi;if(l&&typeof t=="string"&&t){var s=Rt(t);s='link[rel="'+e+'"][href="'+s+'"]',typeof a=="string"&&(s+='[crossorigin="'+a+'"]'),Zh.has(s)||(Zh.add(s),e={rel:e,crossOrigin:a,href:t},l.querySelector(s)===null&&(t=l.createElement("link"),St(t,"link",e),ct(t),l.head.appendChild(t)))}}function lb(e){rn.D(e),Vh("dns-prefetch",e,null)}function ib(e,t){rn.C(e,t),Vh("preconnect",e,t)}function sb(e,t,a){rn.L(e,t,a);var l=oi;if(l&&e&&t){var s='link[rel="preload"][as="'+Rt(t)+'"]';t==="image"&&a&&a.imageSrcSet?(s+='[imagesrcset="'+Rt(a.imageSrcSet)+'"]',typeof a.imageSizes=="string"&&(s+='[imagesizes="'+Rt(a.imageSizes)+'"]')):s+='[href="'+Rt(e)+'"]';var u=s;switch(t){case"style":u=di(e);break;case"script":u=fi(e)}ra.has(u)||(e=S({rel:"preload",href:t==="image"&&a&&a.imageSrcSet?void 0:e,as:t},a),ra.set(u,e),l.querySelector(s)!==null||t==="style"&&l.querySelector(ds(u))||t==="script"&&l.querySelector(fs(u))||(t=l.createElement("link"),St(t,"link",e),ct(t),l.head.appendChild(t)))}}function rb(e,t){rn.m(e,t);var a=oi;if(a&&e){var l=t&&typeof t.as=="string"?t.as:"script",s='link[rel="modulepreload"][as="'+Rt(l)+'"][href="'+Rt(e)+'"]',u=s;switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":u=fi(e)}if(!ra.has(u)&&(e=S({rel:"modulepreload",href:e},t),ra.set(u,e),a.querySelector(s)===null)){switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(a.querySelector(fs(u)))return}l=a.createElement("link"),St(l,"link",e),ct(l),a.head.appendChild(l)}}}function cb(e,t,a){rn.S(e,t,a);var l=oi;if(l&&e){var s=Ga(l).hoistableStyles,u=di(e);t=t||"default";var f=s.get(u);if(!f){var y={loading:0,preload:null};if(f=l.querySelector(ds(u)))y.loading=5;else{e=S({rel:"stylesheet",href:e,"data-precedence":t},a),(a=ra.get(u))&&Eo(e,a);var x=f=l.createElement("link");ct(x),St(x,"link",e),x._p=new Promise(function(D,$){x.onload=D,x.onerror=$}),x.addEventListener("load",function(){y.loading|=1}),x.addEventListener("error",function(){y.loading|=2}),y.loading|=4,Yr(f,t,l)}f={type:"stylesheet",instance:f,count:1,state:y},s.set(u,f)}}}function ub(e,t){rn.X(e,t);var a=oi;if(a&&e){var l=Ga(a).hoistableScripts,s=fi(e),u=l.get(s);u||(u=a.querySelector(fs(s)),u||(e=S({src:e,async:!0},t),(t=ra.get(s))&&Co(e,t),u=a.createElement("script"),ct(u),St(u,"link",e),a.head.appendChild(u)),u={type:"script",instance:u,count:1,state:null},l.set(s,u))}}function ob(e,t){rn.M(e,t);var a=oi;if(a&&e){var l=Ga(a).hoistableScripts,s=fi(e),u=l.get(s);u||(u=a.querySelector(fs(s)),u||(e=S({src:e,async:!0,type:"module"},t),(t=ra.get(s))&&Co(e,t),u=a.createElement("script"),ct(u),St(u,"link",e),a.head.appendChild(u)),u={type:"script",instance:u,count:1,state:null},l.set(s,u))}}function Jh(e,t,a,l){var s=(s=ge.current)?Hr(s):null;if(!s)throw Error(o(446));switch(e){case"meta":case"title":return null;case"style":return typeof a.precedence=="string"&&typeof a.href=="string"?(t=di(a.href),a=Ga(s).hoistableStyles,l=a.get(t),l||(l={type:"style",instance:null,count:0,state:null},a.set(t,l)),l):{type:"void",instance:null,count:0,state:null};case"link":if(a.rel==="stylesheet"&&typeof a.href=="string"&&typeof a.precedence=="string"){e=di(a.href);var u=Ga(s).hoistableStyles,f=u.get(e);if(f||(s=s.ownerDocument||s,f={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},u.set(e,f),(u=s.querySelector(ds(e)))&&!u._p&&(f.instance=u,f.state.loading=5),ra.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},ra.set(e,a),u||db(s,e,a,f.state))),t&&l===null)throw Error(o(528,""));return f}if(t&&l!==null)throw Error(o(529,""));return null;case"script":return t=a.async,a=a.src,typeof a=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=fi(a),a=Ga(s).hoistableScripts,l=a.get(t),l||(l={type:"script",instance:null,count:0,state:null},a.set(t,l)),l):{type:"void",instance:null,count:0,state:null};default:throw Error(o(444,e))}}function di(e){return'href="'+Rt(e)+'"'}function ds(e){return'link[rel="stylesheet"]['+e+"]"}function Fh(e){return S({},e,{"data-precedence":e.precedence,precedence:null})}function db(e,t,a,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}),St(t,"link",a),ct(t),e.head.appendChild(t))}function fi(e){return'[src="'+Rt(e)+'"]'}function fs(e){return"script[async]"+e}function Wh(e,t,a){if(t.count++,t.instance===null)switch(t.type){case"style":var l=e.querySelector('style[data-href~="'+Rt(a.href)+'"]');if(l)return t.instance=l,ct(l),l;var s=S({},a,{"data-href":a.href,"data-precedence":a.precedence,href:null,precedence:null});return l=(e.ownerDocument||e).createElement("style"),ct(l),St(l,"style",s),Yr(l,a.precedence,e),t.instance=l;case"stylesheet":s=di(a.href);var u=e.querySelector(ds(s));if(u)return t.state.loading|=4,t.instance=u,ct(u),u;l=Fh(a),(s=ra.get(s))&&Eo(l,s),u=(e.ownerDocument||e).createElement("link"),ct(u);var f=u;return f._p=new Promise(function(y,x){f.onload=y,f.onerror=x}),St(u,"link",l),t.state.loading|=4,Yr(u,a.precedence,e),t.instance=u;case"script":return u=fi(a.src),(s=e.querySelector(fs(u)))?(t.instance=s,ct(s),s):(l=a,(s=ra.get(u))&&(l=S({},a),Co(l,s)),e=e.ownerDocument||e,s=e.createElement("script"),ct(s),St(s,"link",l),e.head.appendChild(s),t.instance=s);case"void":return null;default:throw Error(o(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(l=t.instance,t.state.loading|=4,Yr(l,a.precedence,e));return t.instance}function Yr(e,t,a){for(var l=a.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),s=l.length?l[l.length-1]:null,u=s,f=0;f title"):null)}function fb(e,t,a){if(a===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 ep(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function mb(e,t,a,l){if(a.type==="stylesheet"&&(typeof l.media!="string"||matchMedia(l.media).matches!==!1)&&(a.state.loading&4)===0){if(a.instance===null){var s=di(l.href),u=t.querySelector(ds(s));if(u){t=u._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=Qr.bind(e),t.then(e,e)),a.state.loading|=4,a.instance=u,ct(u);return}u=t.ownerDocument||t,l=Fh(l),(s=ra.get(s))&&Eo(l,s),u=u.createElement("link"),ct(u);var f=u;f._p=new Promise(function(y,x){f.onload=y,f.onerror=x}),St(u,"link",l),a.instance=u}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(a,t),(t=a.state.preload)&&(a.state.loading&3)===0&&(e.count++,a=Qr.bind(e),t.addEventListener("load",a),t.addEventListener("error",a))}}var No=0;function hb(e,t){return e.stylesheets&&e.count===0&&Xr(e,e.stylesheets),0No?50:800)+t);return e.unsuspend=a,function(){e.unsuspend=null,clearTimeout(l),clearTimeout(s)}}:null}function Qr(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Xr(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Kr=null;function Xr(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Kr=new Map,t.forEach(pb,e),Kr=null,Qr.call(e))}function pb(e,t){if(!(t.state.loading&4)){var a=Kr.get(e);if(a)var l=a.get(null);else{a=new Map,Kr.set(e,a);for(var s=e.querySelectorAll("link[data-precedence],style[data-precedence]"),u=0;u"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(i){console.error(i)}}return n(),qo.exports=Mb(),qo.exports}var Ob=Rb();/** - * react-router v7.17.0 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */var wp="popstate";function Ep(n){return typeof n=="object"&&n!=null&&"pathname"in n&&"search"in n&&"hash"in n&&"state"in n&&"key"in n}function qb(n={}){function i(d,m){let{pathname:p="/",search:v="",hash:h=""}=_l(d.location.hash.substring(1));return!p.startsWith("/")&&!p.startsWith(".")&&(p="/"+p),ld("",{pathname:p,search:v,hash:h},m.state&&m.state.usr||null,m.state&&m.state.key||"default")}function r(d,m){let p=d.document.querySelector("base"),v="";if(p&&p.getAttribute("href")){let h=d.location.href,g=h.indexOf("#");v=g===-1?h:h.slice(0,g)}return v+"#"+(typeof m=="string"?m:Ns(m))}function o(d,m){ua(d.pathname.charAt(0)==="/",`relative pathnames are not supported in hash history.push(${JSON.stringify(m)})`)}return $b(i,r,o,n)}function Fe(n,i){if(n===!1||n===null||typeof n>"u")throw new Error(i)}function ua(n,i){if(!n){typeof console<"u"&&console.warn(i);try{throw new Error(i)}catch{}}}function Lb(){return Math.random().toString(36).substring(2,10)}function Cp(n,i){return{usr:n.state,key:n.key,idx:i,masked:n.mask?{pathname:n.pathname,search:n.search,hash:n.hash}:void 0}}function ld(n,i,r=null,o,d){return{pathname:typeof n=="string"?n:n.pathname,search:"",hash:"",...typeof i=="string"?_l(i):i,state:r,key:i&&i.key||o||Lb(),mask:d}}function Ns({pathname:n="/",search:i="",hash:r=""}){return i&&i!=="?"&&(n+=i.charAt(0)==="?"?i:"?"+i),r&&r!=="#"&&(n+=r.charAt(0)==="#"?r:"#"+r),n}function _l(n){let i={};if(n){let r=n.indexOf("#");r>=0&&(i.hash=n.substring(r),n=n.substring(0,r));let o=n.indexOf("?");o>=0&&(i.search=n.substring(o),n=n.substring(0,o)),n&&(i.pathname=n)}return i}function $b(n,i,r,o={}){let{window:d=document.defaultView,v5Compat:m=!1}=o,p=d.history,v="POP",h=null,g=w();g==null&&(g=0,p.replaceState({...p.state,idx:g},""));function w(){return(p.state||{idx:null}).idx}function S(){v="POP";let R=w(),Y=R==null?null:R-g;g=R,h&&h({action:v,location:q.location,delta:Y})}function C(R,Y){v="PUSH";let I=Ep(R)?R:ld(q.location,R,Y);r&&r(I,R),g=w()+1;let F=Cp(I,g),ne=q.createHref(I.mask||I);try{p.pushState(F,"",ne)}catch(se){if(se instanceof DOMException&&se.name==="DataCloneError")throw se;d.location.assign(ne)}m&&h&&h({action:v,location:q.location,delta:1})}function M(R,Y){v="REPLACE";let I=Ep(R)?R:ld(q.location,R,Y);r&&r(I,R),g=w();let F=Cp(I,g),ne=q.createHref(I.mask||I);p.replaceState(F,"",ne),m&&h&&h({action:v,location:q.location,delta:0})}function A(R){return Ub(d,R)}let q={get action(){return v},get location(){return n(d,p)},listen(R){if(h)throw new Error("A history only accepts one active listener");return d.addEventListener(wp,S),h=R,()=>{d.removeEventListener(wp,S),h=null}},createHref(R){return i(d,R)},createURL:A,encodeLocation(R){let Y=A(R);return{pathname:Y.pathname,search:Y.search,hash:Y.hash}},push:C,replace:M,go(R){return p.go(R)}};return q}function Ub(n,i,r=!1){let o="http://localhost";n&&(o=n.location.origin!=="null"?n.location.origin:n.location.href),Fe(o,"No window.location.(origin|href) available to create URL");let d=typeof i=="string"?i:Ns(i);return d=d.replace(/ $/,"%20"),!r&&d.startsWith("//")&&(d=o+d),new URL(d,o)}function hg(n,i,r="/"){return Bb(n,i,r,!1)}function Bb(n,i,r,o,d){let m=typeof i=="string"?_l(i):i,p=on(m.pathname||"/",r);if(p==null)return null;let v=Hb(n),h=null,g=Pb(p);for(let w=0;h==null&&w{let w={relativePath:g===void 0?p.path||"":g,caseSensitive:p.caseSensitive===!0,childrenIndex:v,route:p};if(w.relativePath.startsWith("/")){if(!w.relativePath.startsWith(o)&&h)return;Fe(w.relativePath.startsWith(o),`Absolute route path "${w.relativePath}" nested under path "${o}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),w.relativePath=w.relativePath.slice(o.length)}let S=ba([o,w.relativePath]),C=r.concat(w);p.children&&p.children.length>0&&(Fe(p.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${S}".`),pg(p.children,i,C,S,h)),!(p.path==null&&!p.index)&&i.push({path:S,score:Jb(S,p.index),routesMeta:C})};return n.forEach((p,v)=>{var h;if(p.path===""||!((h=p.path)!=null&&h.includes("?")))m(p,v);else for(let g of gg(p.path))m(p,v,!0,g)}),i}function gg(n){let i=n.split("/");if(i.length===0)return[];let[r,...o]=i,d=r.endsWith("?"),m=r.replace(/\?$/,"");if(o.length===0)return d?[m,""]:[m];let p=gg(o.join("/")),v=[];return v.push(...p.map(h=>h===""?m:[m,h].join("/"))),d&&v.push(...p),v.map(h=>n.startsWith("/")&&h===""?"/":h)}function Yb(n){n.sort((i,r)=>i.score!==r.score?r.score-i.score:Fb(i.routesMeta.map(o=>o.childrenIndex),r.routesMeta.map(o=>o.childrenIndex)))}var Gb=/^:[\w-]+$/,Qb=3,Kb=2,Xb=1,Zb=10,Vb=-2,Np=n=>n==="*";function Jb(n,i){let r=n.split("/"),o=r.length;return r.some(Np)&&(o+=Vb),i&&(o+=Kb),r.filter(d=>!Np(d)).reduce((d,m)=>d+(Gb.test(m)?Qb:m===""?Xb:Zb),o)}function Fb(n,i){return n.length===i.length&&n.slice(0,-1).every((o,d)=>o===i[d])?n[n.length-1]-i[i.length-1]:0}function Wb(n,i,r=!1){let{routesMeta:o}=n,d={},m="/",p=[];for(let v=0;v{if(w==="*"){let A=v[C]||"";p=m.slice(0,m.length-A.length).replace(/(.)\/+$/,"$1")}const M=v[C];return S&&!M?g[w]=void 0:g[w]=(M||"").replace(/%2F/g,"/"),g},{}),pathname:m,pathnameBase:p,pattern:n}}function Ib(n,i=!1,r=!0){ua(n==="*"||!n.endsWith("*")||n.endsWith("/*"),`Route path "${n}" will be treated as if it were "${n.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${n.replace(/\*$/,"/*")}".`);let o=[],d="^"+n.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(p,v,h,g,w)=>{if(o.push({paramName:v,isOptional:h!=null}),h){let S=w.charAt(g+p.length);return S&&S!=="/"?"/([^\\/]*)":"(?:/([^\\/]*))?"}return"/([^\\/]+)"}).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return n.endsWith("*")?(o.push({paramName:"*"}),d+=n==="*"||n==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?d+="\\/*$":n!==""&&n!=="/"&&(d+="(?:(?=\\/|$))"),[new RegExp(d,i?void 0:"i"),o]}function Pb(n){try{return n.split("/").map(i=>decodeURIComponent(i).replace(/\//g,"%2F")).join("/")}catch(i){return ua(!1,`The URL path "${n}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${i}).`),n}}function on(n,i){if(i==="/")return n;if(!n.toLowerCase().startsWith(i.toLowerCase()))return null;let r=i.endsWith("/")?i.length-1:i.length,o=n.charAt(r);return o&&o!=="/"?null:n.slice(r)||"/"}var e_=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;function t_(n,i="/"){let{pathname:r,search:o="",hash:d=""}=typeof n=="string"?_l(n):n,m;return r?(r=yg(r),r.startsWith("/")?m=Ap(r.substring(1),"/"):m=Ap(r,i)):m=i,{pathname:m,search:l_(o),hash:i_(d)}}function Ap(n,i){let r=hc(i).split("/");return n.split("/").forEach(d=>{d===".."?r.length>1&&r.pop():d!=="."&&r.push(d)}),r.length>1?r.join("/"):"/"}function Bo(n,i,r,o){return`Cannot include a '${n}' character in a manually specified \`to.${i}\` 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 a_(n){return n.filter((i,r)=>r===0||i.route.path&&i.route.path.length>0)}function vd(n){let i=a_(n);return i.map((r,o)=>o===i.length-1?r.pathname:r.pathnameBase)}function _c(n,i,r,o=!1){let d;typeof n=="string"?d=_l(n):(d={...n},Fe(!d.pathname||!d.pathname.includes("?"),Bo("?","pathname","search",d)),Fe(!d.pathname||!d.pathname.includes("#"),Bo("#","pathname","hash",d)),Fe(!d.search||!d.search.includes("#"),Bo("#","search","hash",d)));let m=n===""||d.pathname==="",p=m?"/":d.pathname,v;if(p==null)v=r;else{let S=i.length-1;if(!o&&p.startsWith("..")){let C=p.split("/");for(;C[0]==="..";)C.shift(),S-=1;d.pathname=C.join("/")}v=S>=0?i[S]:"/"}let h=t_(d,v),g=p&&p!=="/"&&p.endsWith("/"),w=(m||p===".")&&r.endsWith("/");return!h.pathname.endsWith("/")&&(g||w)&&(h.pathname+="/"),h}var yg=n=>n.replace(/\/\/+/g,"/"),ba=n=>yg(n.join("/")),hc=n=>n.replace(/\/+$/,""),n_=n=>hc(n).replace(/^\/*/,"/"),l_=n=>!n||n==="?"?"":n.startsWith("?")?n:"?"+n,i_=n=>!n||n==="#"?"":n.startsWith("#")?n:"#"+n,s_=class{constructor(n,i,r,o=!1){this.status=n,this.statusText=i||"",this.internal=o,r instanceof Error?(this.data=r.toString(),this.error=r):this.data=r}};function r_(n){return n!=null&&typeof n.status=="number"&&typeof n.statusText=="string"&&typeof n.internal=="boolean"&&"data"in n}function c_(n){let i=n.map(r=>r.route.path).filter(Boolean);return ba(i)||"/"}var vg=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function bg(n,i){let r=n;if(typeof r!="string"||!e_.test(r))return{absoluteURL:void 0,isExternal:!1,to:r};let o=r,d=!1;if(vg)try{let m=new URL(window.location.href),p=r.startsWith("//")?new URL(m.protocol+r):new URL(r),v=on(p.pathname,i);p.origin===m.origin&&v!=null?r=v+p.search+p.hash:d=!0}catch{ua(!1,` contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:o,isExternal:d,to:r}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var _g=["POST","PUT","PATCH","DELETE"];new Set(_g);var u_=["GET",..._g];new Set(u_);var vi=b.createContext(null);vi.displayName="DataRouter";var Sc=b.createContext(null);Sc.displayName="DataRouterState";var Sg=b.createContext(!1);function o_(){return b.useContext(Sg)}var xg=b.createContext({isTransitioning:!1});xg.displayName="ViewTransition";var d_=b.createContext(new Map);d_.displayName="Fetchers";var f_=b.createContext(null);f_.displayName="Await";var Pt=b.createContext(null);Pt.displayName="Navigation";var Ds=b.createContext(null);Ds.displayName="Location";var qa=b.createContext({outlet:null,matches:[],isDataRoute:!1});qa.displayName="Route";var bd=b.createContext(null);bd.displayName="RouteError";var jg="REACT_ROUTER_ERROR",m_="REDIRECT",h_="ROUTE_ERROR_RESPONSE";function p_(n){if(n.startsWith(`${jg}:${m_}:{`))try{let i=JSON.parse(n.slice(28));if(typeof i=="object"&&i&&typeof i.status=="number"&&typeof i.statusText=="string"&&typeof i.location=="string"&&typeof i.reloadDocument=="boolean"&&typeof i.replace=="boolean")return i}catch{}}function g_(n){if(n.startsWith(`${jg}:${h_}:{`))try{let i=JSON.parse(n.slice(40));if(typeof i=="object"&&i&&typeof i.status=="number"&&typeof i.statusText=="string")return new s_(i.status,i.statusText,i.data)}catch{}}function y_(n,{relative:i}={}){Fe(bi(),"useHref() may be used only in the context of a component.");let{basename:r,navigator:o}=b.useContext(Pt),{hash:d,pathname:m,search:p}=zs(n,{relative:i}),v=m;return r!=="/"&&(v=m==="/"?r:ba([r,m])),o.createHref({pathname:v,search:p,hash:d})}function bi(){return b.useContext(Ds)!=null}function Sa(){return Fe(bi(),"useLocation() may be used only in the context of a component."),b.useContext(Ds).location}var wg="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function Eg(n){b.useContext(Pt).static||b.useLayoutEffect(n)}function _d(){let{isDataRoute:n}=b.useContext(qa);return n?k_():v_()}function v_(){Fe(bi(),"useNavigate() may be used only in the context of a component.");let n=b.useContext(vi),{basename:i,navigator:r}=b.useContext(Pt),{matches:o}=b.useContext(qa),{pathname:d}=Sa(),m=JSON.stringify(vd(o)),p=b.useRef(!1);return Eg(()=>{p.current=!0}),b.useCallback((h,g={})=>{if(ua(p.current,wg),!p.current)return;if(typeof h=="number"){r.go(h);return}let w=_c(h,JSON.parse(m),d,g.relative==="path");n==null&&i!=="/"&&(w.pathname=w.pathname==="/"?i:ba([i,w.pathname])),(g.replace?r.replace:r.push)(w,g.state,g)},[i,r,m,d,n])}b.createContext(null);function zs(n,{relative:i}={}){let{matches:r}=b.useContext(qa),{pathname:o}=Sa(),d=JSON.stringify(vd(r));return b.useMemo(()=>_c(n,JSON.parse(d),o,i==="path"),[n,d,o,i])}function b_(n,i){return Cg(n,i)}function Cg(n,i,r){var R;Fe(bi(),"useRoutes() may be used only in the context of a component.");let{navigator:o}=b.useContext(Pt),{matches:d}=b.useContext(qa),m=d[d.length-1],p=m?m.params:{},v=m?m.pathname:"/",h=m?m.pathnameBase:"/",g=m&&m.route;{let Y=g&&g.path||"";Ag(v,!g||Y.endsWith("*")||Y.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 w=Sa(),S;if(i){let Y=typeof i=="string"?_l(i):i;Fe(h==="/"||((R=Y.pathname)==null?void 0:R.startsWith(h)),`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 "${h}" but pathname "${Y.pathname}" was given in the \`location\` prop.`),S=Y}else S=w;let C=S.pathname||"/",M=C;if(h!=="/"){let Y=h.replace(/^\//,"").split("/");M="/"+C.replace(/^\//,"").split("/").slice(Y.length).join("/")}let A=r&&r.state.matches.length?r.state.matches.map(Y=>Object.assign(Y,{route:r.manifest[Y.route.id]||Y.route})):hg(n,{pathname:M});ua(g||A!=null,`No routes matched location "${S.pathname}${S.search}${S.hash}" `),ua(A==null||A[A.length-1].route.element!==void 0||A[A.length-1].route.Component!==void 0||A[A.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 q=w_(A&&A.map(Y=>Object.assign({},Y,{params:Object.assign({},p,Y.params),pathname:ba([h,o.encodeLocation?o.encodeLocation(Y.pathname.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:Y.pathname]),pathnameBase:Y.pathnameBase==="/"?h:ba([h,o.encodeLocation?o.encodeLocation(Y.pathnameBase.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:Y.pathnameBase])})),d,r);return i&&q?b.createElement(Ds.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",mask:void 0,...S},navigationType:"POP"}},q):q}function __(){let n=T_(),i=r_(n)?`${n.status} ${n.statusText}`:n instanceof Error?n.message:JSON.stringify(n),r=n instanceof Error?n.stack:null,o="rgba(200,200,200, 0.5)",d={padding:"0.5rem",backgroundColor:o},m={padding:"2px 4px",backgroundColor:o},p=null;return console.error("Error handled by React Router default ErrorBoundary:",n),p=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:m},"ErrorBoundary")," or"," ",b.createElement("code",{style:m},"errorElement")," prop on your route.")),b.createElement(b.Fragment,null,b.createElement("h2",null,"Unexpected Application Error!"),b.createElement("h3",{style:{fontStyle:"italic"}},i),r?b.createElement("pre",{style:d},r):null,p)}var S_=b.createElement(__,null),Ng=class extends b.Component{constructor(n){super(n),this.state={location:n.location,revalidation:n.revalidation,error:n.error}}static getDerivedStateFromError(n){return{error:n}}static getDerivedStateFromProps(n,i){return i.location!==n.location||i.revalidation!=="idle"&&n.revalidation==="idle"?{error:n.error,location:n.location,revalidation:n.revalidation}:{error:n.error!==void 0?n.error:i.error,location:i.location,revalidation:n.revalidation||i.revalidation}}componentDidCatch(n,i){this.props.onError?this.props.onError(n,i):console.error("React Router caught the following error during render",n)}render(){let n=this.state.error;if(this.context&&typeof n=="object"&&n&&"digest"in n&&typeof n.digest=="string"){const r=g_(n.digest);r&&(n=r)}let i=n!==void 0?b.createElement(qa.Provider,{value:this.props.routeContext},b.createElement(bd.Provider,{value:n,children:this.props.component})):this.props.children;return this.context?b.createElement(x_,{error:n},i):i}};Ng.contextType=Sg;var Ho=new WeakMap;function x_({children:n,error:i}){let{basename:r}=b.useContext(Pt);if(typeof i=="object"&&i&&"digest"in i&&typeof i.digest=="string"){let o=p_(i.digest);if(o){let d=Ho.get(i);if(d)throw d;let m=bg(o.location,r);if(vg&&!Ho.get(i))if(m.isExternal||o.reloadDocument)window.location.href=m.absoluteURL||m.to;else{const p=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(m.to,{replace:o.replace}));throw Ho.set(i,p),p}return b.createElement("meta",{httpEquiv:"refresh",content:`0;url=${m.absoluteURL||m.to}`})}}return n}function j_({routeContext:n,match:i,children:r}){let o=b.useContext(vi);return o&&o.static&&o.staticContext&&(i.route.errorElement||i.route.ErrorBoundary)&&(o.staticContext._deepestRenderedBoundaryId=i.route.id),b.createElement(qa.Provider,{value:n},r)}function w_(n,i=[],r){let o=r==null?void 0:r.state;if(n==null){if(!o)return null;if(o.errors)n=o.matches;else if(i.length===0&&!o.initialized&&o.matches.length>0)n=o.matches;else return null}let d=n,m=o==null?void 0:o.errors;if(m!=null){let w=d.findIndex(S=>S.route.id&&(m==null?void 0:m[S.route.id])!==void 0);Fe(w>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(m).join(",")}`),d=d.slice(0,Math.min(d.length,w+1))}let p=!1,v=-1;if(r&&o){p=o.renderFallback;for(let w=0;w=0?d=d.slice(0,v+1):d=[d[0]];break}}}}let h=r==null?void 0:r.onError,g=o&&h?(w,S)=>{var C,M;h(w,{location:o.location,params:((M=(C=o.matches)==null?void 0:C[0])==null?void 0:M.params)??{},pattern:c_(o.matches),errorInfo:S})}:void 0;return d.reduceRight((w,S,C)=>{let M,A=!1,q=null,R=null;o&&(M=m&&S.route.id?m[S.route.id]:void 0,q=S.route.errorElement||S_,p&&(v<0&&C===0?(Ag("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),A=!0,R=null):v===C&&(A=!0,R=S.route.hydrateFallbackElement||null)));let Y=i.concat(d.slice(0,C+1)),I=()=>{let F;return M?F=q:A?F=R:S.route.Component?F=b.createElement(S.route.Component,null):S.route.element?F=S.route.element:F=w,b.createElement(j_,{match:S,routeContext:{outlet:w,matches:Y,isDataRoute:o!=null},children:F})};return o&&(S.route.ErrorBoundary||S.route.errorElement||C===0)?b.createElement(Ng,{location:o.location,revalidation:o.revalidation,component:q,error:M,children:I(),routeContext:{outlet:null,matches:Y,isDataRoute:!0},onError:g}):I()},null)}function Sd(n){return`${n} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function E_(n){let i=b.useContext(vi);return Fe(i,Sd(n)),i}function C_(n){let i=b.useContext(Sc);return Fe(i,Sd(n)),i}function N_(n){let i=b.useContext(qa);return Fe(i,Sd(n)),i}function xd(n){let i=N_(n),r=i.matches[i.matches.length-1];return Fe(r.route.id,`${n} can only be used on routes that contain a unique "id"`),r.route.id}function A_(){return xd("useRouteId")}function T_(){var o;let n=b.useContext(bd),i=C_("useRouteError"),r=xd("useRouteError");return n!==void 0?n:(o=i.errors)==null?void 0:o[r]}function k_(){let{router:n}=E_("useNavigate"),i=xd("useNavigate"),r=b.useRef(!1);return Eg(()=>{r.current=!0}),b.useCallback(async(d,m={})=>{ua(r.current,wg),r.current&&(typeof d=="number"?await n.navigate(d):await n.navigate(d,{fromRouteId:i,...m}))},[n,i])}var Tp={};function Ag(n,i,r){!i&&!Tp[n]&&(Tp[n]=!0,ua(!1,r))}b.memo(D_);function D_({routes:n,manifest:i,future:r,state:o,isStatic:d,onError:m}){return Cg(n,void 0,{manifest:i,state:o,isStatic:d,onError:m})}function z_({to:n,replace:i,state:r,relative:o}){Fe(bi()," may be used only in the context of a component.");let{static:d}=b.useContext(Pt);ua(!d," must not be used on the initial render in a . This is a no-op, but you should modify your code so the is only ever rendered in response to some user interaction or state change.");let{matches:m}=b.useContext(qa),{pathname:p}=Sa(),v=_d(),h=_c(n,vd(m),p,o==="path"),g=JSON.stringify(h);return b.useEffect(()=>{v(JSON.parse(g),{replace:i,state:r,relative:o})},[v,g,o,i,r]),null}function id(n){Fe(!1,"A is only ever to be used as the child of element, never rendered directly. Please wrap your in a .")}function M_({basename:n="/",children:i=null,location:r,navigationType:o="POP",navigator:d,static:m=!1,useTransitions:p}){Fe(!bi(),"You cannot render a inside another . You should never have more than one in your app.");let v=n.replace(/^\/*/,"/"),h=b.useMemo(()=>({basename:v,navigator:d,static:m,useTransitions:p,future:{}}),[v,d,m,p]);typeof r=="string"&&(r=_l(r));let{pathname:g="/",search:w="",hash:S="",state:C=null,key:M="default",mask:A}=r,q=b.useMemo(()=>{let R=on(g,v);return R==null?null:{location:{pathname:R,search:w,hash:S,state:C,key:M,mask:A},navigationType:o}},[v,g,w,S,C,M,o,A]);return ua(q!=null,` is not able to match the URL "${g}${w}${S}" because it does not start with the basename, so the won't render anything.`),q==null?null:b.createElement(Pt.Provider,{value:h},b.createElement(Ds.Provider,{children:i,value:q}))}function R_({children:n,location:i}){return b_(sd(n),i)}function sd(n,i=[]){let r=[];return b.Children.forEach(n,(o,d)=>{if(!b.isValidElement(o))return;let m=[...i,d];if(o.type===b.Fragment){r.push.apply(r,sd(o.props.children,m));return}Fe(o.type===id,`[${typeof o.type=="string"?o.type:o.type.name}] is not a component. All component children of must be a or `),Fe(!o.props.index||!o.props.children,"An index route cannot have child routes.");let p={id:o.props.id||m.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&&(p.children=sd(o.props.children,m)),r.push(p)}),r}var sc="get",rc="application/x-www-form-urlencoded";function xc(n){return typeof HTMLElement<"u"&&n instanceof HTMLElement}function O_(n){return xc(n)&&n.tagName.toLowerCase()==="button"}function q_(n){return xc(n)&&n.tagName.toLowerCase()==="form"}function L_(n){return xc(n)&&n.tagName.toLowerCase()==="input"}function $_(n){return!!(n.metaKey||n.altKey||n.ctrlKey||n.shiftKey)}function U_(n,i){return n.button===0&&(!i||i==="_self")&&!$_(n)}var ec=null;function B_(){if(ec===null)try{new FormData(document.createElement("form"),0),ec=!1}catch{ec=!0}return ec}var H_=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function Yo(n){return n!=null&&!H_.has(n)?(ua(!1,`"${n}" is not a valid \`encType\` for \`
\`/\`\` and will default to "${rc}"`),null):n}function Y_(n,i){let r,o,d,m,p;if(q_(n)){let v=n.getAttribute("action");o=v?on(v,i):null,r=n.getAttribute("method")||sc,d=Yo(n.getAttribute("enctype"))||rc,m=new FormData(n)}else if(O_(n)||L_(n)&&(n.type==="submit"||n.type==="image")){let v=n.form;if(v==null)throw new Error('Cannot submit a