PageSourceSearch

https://gloweet.com/assets/chunk-UIGDSWPH-ny9TRmO_.js

js gloweet.com collected 2026-10-08 06:58:34 UTC 122,172 bytes, 51 lines download raw bytes

vendor: 5,832 bytes, lines 1-17
1function _a(e,t){for(var r=0;r<t.length;r++){const n=t[r];if(typeof n!="string"&&!Array.isArray(n)){for(const a in n)if(a!=="default"&&!(a in e)){const o=Object.getOwnPropertyDescriptor(n,a);o&&Object.defineProperty(e,a,o.get?o:{enumerable:!0,get:()=>n[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var Bl=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Oa(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Yt={exports:{}},nt={};/**
2 * @license React
3 * react-jsx-runtime.production.js
4 *
5 * Copyright (c) Meta Platforms, Inc. and affiliates.
6 *
7 * This source code is licensed under the MIT license found in the
8 * LICENSE file in the root directory of this source tree.
9 */var Yr;function Aa(){if(Yr)return nt;Yr=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function r(n,a,o){var i=null;if(o!==void 0&&(i=""+o),a.key!==void 0&&(i=""+a.key),"key"in a){o={};for(var l in a)l!=="key"&&(o[l]=a[l])}else o=a;return a=o.ref,{$$typeof:e,type:n,key:i,ref:a!==void 0?a:null,props:o}}return nt.Fragment=t,nt.jsx=r,nt.jsxs=r,nt}var Vr;function Fa(){return Vr||(Vr=1,Yt.exports=Aa()),Yt.exports}var Wl=Fa(),Vt={exports:{}},Y={};/**
10 * @license React
11 * react.production.js
12 *
13 * Copyright (c) Meta Platforms, Inc. and affiliates.
14 *
15 * This source code is licensed under the MIT license found in the
16 * LICENSE file in the root directory of this source tree.
17 */var Jr;function Na(){if(Jr)return Y;Jr=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),n=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),o=Symbol.for("react.consumer"),i=Symbol.for("react.context"),l=Symbol.for("react.forward_ref"),s=Symbol.for("react.suspense"),u=Symbol.for("react.memo"),f=Symbol.for("react.lazy"),h=Symbol.iterator;function p(m){return m===null||typeof m!="object"?null:(m=h&&m[h]||m["@@iterator"],typeof m=="function"?m:null)}var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},R=Object.assign,P={};function E(m,C,A){this.props=m,this.context=C,this.refs=P,this.updater=A||g}E.prototype.isReactComponent={},E.prototype.setState=function(m,C){if(typeof m!="object"&&typeof m!="function"&&m!=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,m,C,"setState")},E.prototype.forceUpdate=function(m){this.updater.enqueueForceUpdate(this,m,"forceUpdate")};function S(){}S.prototype=E.prototype;function b(m,C,A){this.props=m,this.context=C,this.refs=P,this.updater=A||g}var T=b.prototype=new S;T.constructor=b,R(T,E.prototype),T.isPureReactComponent=!0;var D=Array.isArray,x={H:null,A:null,T:null,S:null,V:null},_=Object.prototype.hasOwnProperty;function v(m,C,A,$,B,Z){return A=Z.ref,{$$typeof:e,type:m,key:C,ref:A!==void 0?A:null,props:Z}}function H(m,C){return v(m.type,C,void 0,void 0,void 0,m.props)}function J(m){return typeof m=="object"&&m!==null&&m.$$typeof===e}function z(m){var C={"=":"=0",":":"=2"};return"$"+m.replace(/[=:]/g,function(A){return C[A]})}var ee=/\/+/g;function ue(m,C){return typeof m=="object"&&m!==null&&m.key!=null?z(""+m.key):C.toString(36)}function ve(){}function q(m){switch(m.status){case"fulfilled":return m.value;case"rejected":throw m.reason;default:switch(typeof m.status=="string"?m.then(ve,ve):(m.status="pending",m.then(function(C){m.status==="pending"&&(m.status="fulfilled",m.value=C)},function(C){m.status==="pending"&&(m.status="rejected",m.reason=C)})),m.status){case"fulfilled":return m.value;case"rejected":throw m.reason}}throw m}function X(m,C,A,$,B){var Z=typeof m;(Z==="undefined"||Z==="boolean")&&(m=null);var V=!1;if(m===null)V=!0;else switch(Z){case"bigint":case"string":case"number":V=!0;break;case"object":switch(m.$$typeof){case e:case t:V=!0;break;case f:return V=m._init,X(V(m._payload),C,A,$,B)}}if(V)return B=B(m),V=$===""?"."+ue(m,0):$,D(B)?(A="",V!=null&&(A=V.replace(ee,"$&/")+"/"),X(B,C,A,"",function(Ut){return Ut})):B!=null&&(J(B)&&(B=H(B,A+(B.key==null||m&&m.key===B.key?"":(""+B.key).replace(ee,"$&/")+"/")+V)),C.push(B)),1;V=0;var ge=$===""?".":$+":";if(D(m))for(var ie=0;ie<m.length;ie++)$=m[ie],Z=ge+ue($,ie),V+=X($,C,A,Z,B);else if(ie=p(m),typeof ie=="function")for(m=ie.call(m),ie=0;!($=m.next()).done;)$=$.value,Z=ge+ue($,ie++),V+=X($,C,A,Z,B);else if(Z==="object"){if(typeof m.then=="function")return X(q(m),C,A,$,B);throw C=String(m),Error("Objects are not valid as a React child (found: "+(C==="[object Object]"?"object with keys {"+Object.keys(m).join(", ")+"}":C)+"). If you meant to render a collection of children, use an array instead.")}return V}function oe(m,C,A){if(m==null)return m;var $=[],B=0;return X(m,$,"","",function(Z){return C.call(A,Z,B++)}),$}function Q(m){if(m._status===-1){var C=m._result;C=C(),C.then(function(A){(m._status===0||m._status===-1)&&(m._status=1,m._result=A)},function(A){(m._status===0||m._status===-1)&&(m._status=2,m._result=A)}),m._status===-1&&(m._status=0,m._result=C)}if(m._status===1)return m._result.default;throw m._result}var he=typeof reportError=="function"?reportError:function(m){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var C=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof m=="object"&&m!==null&&typeof m.message=="string"?String(m.message):String(m),error:m});if(!window.dispatchEvent(C))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",m);return}console.error(m)};function ce(){}return Y.Children={map:oe,forEach:function(m,C,A){oe(m,function(){C.apply(this,arguments)},A)}
vendor: 4,099 bytes, lines 17-26
17,count:function(m){var C=0;return oe(m,function(){C++}),C},toArray:function(m){return oe(m,function(C){return C})||[]},only:function(m){if(!J(m))throw Error("React.Children.only expected to receive a single React element child.");return m}},Y.Component=E,Y.Fragment=r,Y.Profiler=a,Y.PureComponent=b,Y.StrictMode=n,Y.Suspense=s,Y.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=x,Y.__COMPILER_RUNTIME={__proto__:null,c:function(m){return x.H.useMemoCache(m)}},Y.cache=function(m){return function(){return m.apply(null,arguments)}},Y.cloneElement=function(m,C,A){if(m==null)throw Error("The argument must be a React element, but you passed "+m+".");var $=R({},m.props),B=m.key,Z=void 0;if(C!=null)for(V in C.ref!==void 0&&(Z=void 0),C.key!==void 0&&(B=""+C.key),C)!_.call(C,V)||V==="key"||V==="__self"||V==="__source"||V==="ref"&&C.ref===void 0||($[V]=C[V]);var V=arguments.length-2;if(V===1)$.children=A;else if(1<V){for(var ge=Array(V),ie=0;ie<V;ie++)ge[ie]=arguments[ie+2];$.children=ge}return v(m.type,B,void 0,void 0,Z,$)},Y.createContext=function(m){return m={$$typeof:i,_currentValue:m,_currentValue2:m,_threadCount:0,Provider:null,Consumer:null},m.Provider=m,m.Consumer={$$typeof:o,_context:m},m},Y.createElement=function(m,C,A){var $,B={},Z=null;if(C!=null)for($ in C.key!==void 0&&(Z=""+C.key),C)_.call(C,$)&&$!=="key"&&$!=="__self"&&$!=="__source"&&(B[$]=C[$]);var V=arguments.length-2;if(V===1)B.children=A;else if(1<V){for(var ge=Array(V),ie=0;ie<V;ie++)ge[ie]=arguments[ie+2];B.children=ge}if(m&&m.defaultProps)for($ in V=m.defaultProps,V)B[$]===void 0&&(B[$]=V[$]);return v(m,Z,void 0,void 0,null,B)},Y.createRef=function(){return{current:null}},Y.forwardRef=function(m){return{$$typeof:l,render:m}},Y.isValidElement=J,Y.lazy=function(m){return{$$typeof:f,_payload:{_status:-1,_result:m},_init:Q}},Y.memo=function(m,C){return{$$typeof:u,type:m,compare:C===void 0?null:C}},Y.startTransition=function(m){var C=x.T,A={};x.T=A;try{var $=m(),B=x.S;B!==null&&B(A,$),typeof $=="object"&&$!==null&&typeof $.then=="function"&&$.then(ce,he)}catch(Z){he(Z)}finally{x.T=C}},Y.unstable_useCacheRefresh=function(){return x.H.useCacheRefresh()},Y.use=function(m){return x.H.use(m)},Y.useActionState=function(m,C,A){return x.H.useActionState(m,C,A)},Y.useCallback=function(m,C){return x.H.useCallback(m,C)},Y.useContext=function(m){return x.H.useContext(m)},Y.useDebugValue=function(){},Y.useDeferredValue=function(m,C){return x.H.useDeferredValue(m,C)},Y.useEffect=function(m,C,A){var $=x.H;if(typeof A=="function")throw Error("useEffect CRUD overload is not enabled in this build of React.");return $.useEffect(m,C)},Y.useId=function(){return x.H.useId()},Y.useImperativeHandle=function(m,C,A){return x.H.useImperativeHandle(m,C,A)},Y.useInsertionEffect=function(m,C){return x.H.useInsertionEffect(m,C)},Y.useLayoutEffect=function(m,C){return x.H.useLayoutEffect(m,C)},Y.useMemo=function(m,C){return x.H.useMemo(m,C)},Y.useOptimistic=function(m,C){return x.H.useOptimistic(m,C)},Y.useReducer=function(m,C,A){return x.H.useReducer(m,C,A)},Y.useRef=function(m){return x.H.useRef(m)},Y.useState=function(m){return x.H.useState(m)},Y.useSyncExternalStore=function(m,C,A){return x.H.useSyncExternalStore(m,C,A)},Y.useTransition=function(){return x.H.useTransition()},Y.version="19.1.1",Y}var Gr;function ka(){return Gr||(Gr=1,Vt.exports=Na()),Vt.exports}var c=ka();const Ia=Oa(c),Yl=_a({__proto__:null,default:Ia},[c]);/**
18 * react-router v7.9.5
19 *
20 * Copyright (c) Remix Software Inc.
21 *
22 * This source code is licensed under the MIT license found in the
23 * LICENSE.md file in the root directory of this source tree.
24 *
25 * @license MIT
26 */var bn=e=>{throw TypeError(e)},$a=(e,t,r)=>t.has(e)||bn("Cannot "+r),Jt=(e,t,r)=>($a(e,t,"read from private field"),r?r.call(e):t.get(e)),ja=(e,t,r)=>t.has(e)?bn("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),Kr="popstate";function Vl(e={}){function t(n,a){let{pathname:o,search:i,hash:l}=n.location;return st("",{pathname:o,search:i,hash:l},a.state&&a.state.usr||null,a.state&&a.state.key||"default")}
26function r(n,a){return typeof a=="string"?a:Pe(a)}return Ha(t,r,null,e)}function W(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function ae(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function Ua(){return Math.random().toString(36).substring(2,10)}function Xr(e,t){return{usr:e.state,key:e.key,idx:t}}function st(e,t,r=null,n){return{pathname:typeof e=="string"?e:e.pathname,search:"",hash:"",...typeof t=="string"?ke(t):t,state:r,key:t&&t.key||n||Ua()}}function Pe({pathname:e="/",search:t="",hash:r=""}){return t&&t!=="?"&&(e+=t.charAt(0)==="?"?t:"?"+t),r&&r!=="#"&&(e+=r.charAt(0)==="#"?r:"#"+r),e}function ke(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substring(r),e=e.substring(0,r));let n=e.indexOf("?");n>=0&&(t.search=e.substring(n),e=e.substring(0,n)),e&&(t.pathname=e)}return t}function Ha(e,t,r,n={}){let{window:a=document.defaultView,v5Compat:o=!1}=n,i=a.history,l="POP",s=null,u=f();u==null&&(u=0,i.replaceState({...i.state,idx:u},""));function f(){return(i.state||{idx:null}).idx}function h(){l="POP";let E=f(),S=E==null?null:E-u;u=E,s&&s({action:l,location:P.location,delta:S})}function p(E,S){l="PUSH";let b=st(P.location,E,S);u=f()+1;let T=Xr(b,u),D=P.createHref(b);try{i.pushState(T,"",D)}catch(x){if(x instanceof DOMException&&x.name==="DataCloneError")throw x;a.location.assign(D)}o&&s&&s({action:l,location:P.location,delta:1})}function g(E,S){l="REPLACE";let b=st(P.location,E,S);u=f();let T=Xr(b,u),D=P.createHref(b);i.replaceState(T,"",D),o&&s&&s({action:l,location:P.location,delta:0})}function R(E){return Sn(E)}let P={get action(){return l},get location(){return e(a,i)},listen(E){if(s)throw new Error("A history only accepts one active listener");return a.addEventListener(Kr,h),s=E,()=>{a.removeEventListener(Kr,h),s=null}},createHref(E){return t(a,E)},createURL:R,encodeLocation(E){let S=R(E);return{pathname:S.pathname,search:S.search,hash:S.hash}},push:p,replace:g,go(E){return i.go(E)}};return P}function Sn(e,t=!1){let r="http://localhost";
26typeof window<"u"&&(r=window.location.origin!=="null"?window.location.origin:window.location.href),W(r,"No window.location.(origin|href) available to create URL");let n=typeof e=="string"?e:Pe(e);return n=n.replace(/ $/,"%20"),!t&&n.startsWith("//")&&(n=r+n),new URL(n,r)}var lt,qr=class{constructor(e){if(ja(this,lt,new Map),e)for(let[t,r]of e)this.set(t,r)}get(e){if(Jt(this,lt).has(e))return Jt(this,lt).get(e);if(e.defaultValue!==void 0)return e.defaultValue;throw new Error("No value found for context")}set(e,t){Jt(this,lt).set(e,t)}};lt=new WeakMap;var za=new Set(["lazy","caseSensitive","path","id","index","children"]);function Ba(e){return za.has(e)}var Wa=new Set(["lazy","caseSensitive","path","id","index","middleware","children"]);function Ya(e){return Wa.has(e)}function Va(e){return e.index===!0}function ut(e,t,r=[],n={},a=!1){return e.map((o,i)=>{let l=[...r,String(i)],s=typeof o.id=="string"?o.id:l.join("-");if(W(o.index!==!0||!o.children,"Cannot specify children on an index route"),W(a||!n[s],`Found a route id collision on i
26d "${s}".  Route id's must be globally unique within Data Router usages`),Va(o)){let u={...o,id:s};return n[s]=Qr(u,t(u)),u}else{let u={...o,id:s,children:void 0};return n[s]=Qr(u,t(u)),o.children&&(u.children=ut(o.children,t,l,n,a)),u}})}function Qr(e,t){return Object.assign(e,{...t,...typeof t.lazy=="object"&&t.lazy!=null?{lazy:{...e.lazy,...t.lazy}}:{}})}function Oe(e,t,r="/"){return Lt(e,t,r,!1)}function Lt(e,t,r,n){let a=typeof t=="string"?ke(t):t,o=Ee(a.pathname||"/",r);if(o==null)return null;let i=Cn(e);Ja(i);let l=null;for(let s=0;l==null&&s<i.length;++s){let u=no(o);l=ro(i[s],u,n)}return l}function xn(e,t){let{route:r,pathname:n,params:a}=e;return{id:r.id,pathname:n,params:a,data:t[r.id],loaderData:t[r.id],handle:r.handle}}function Cn(e,t=[],r=[],n="",a=!1){let o=(i,l,s=a,u)=>{let f={relativePath:u===void 0?i.path||"":u,caseSensitive:i.caseSensitive===!0,childrenIndex:l,route:i};if(f.relativePath.startsWith("/")){if(!f.relativePath.startsWith(n)&&s)return;W(f.relativePath.startsWith(n),`Absolute route path "${f.relativePath}" nested under path "${n}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),f.relativePath=f.relativePath.slice(n.length)}let h=Le([n,f.relativePath]),p=r.concat(f);i.children&&i.children.length>0&&(W(i.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${h}".`),Cn(i.children,t,p,h,s)),!(i.path==null&&!i.index)&&t.push({path:h,score:eo(h,i.index),routesMeta:p})};return e.forEach((i,l)=>{if(i.path===""||!i.path?.includes("?"))o(i,l);else for(let s of Ln(i.path))o(i,l,!0,s)}),t}function Ln(e){let t=e.split("/");if(t.length===0)return[];let[r,...n]=t,a=r.endsWith("?"),o=r.replace(/\?$/,"");if(n.length===0)return a?[o,""]:[o];let i=Ln(n.join("/")),l=[];return l.push(...i.map(s=>s===""?o:[o,s].join("/"))),a&&l.push(...i),l.map(s=>e.startsWith("/")&&s===""?"/":s)}function Ja(e){e.sort((t,r)=>t.score!==r.score?r.score-t.score:to(t.routesMeta.map(n=>n.childrenIndex),r.routesMeta.map(n=>n.childrenIndex)))}var Ga=/^:[\w-]+$/,Ka=3,Xa=2,qa=1,Qa=10,Za=-2,Zr=e=>e==="*";function eo(e,t){let r=e.split("/"),n=r.length;return r.some(Zr)&&(n+=Za),t&&(n+=Xa),r.filter(a=>!Zr(a)).reduce((a,o)=>a+(Ga.test(o)?Ka:o===""?qa:Qa),n)}function to(e,t){return e.length===t.length&&e.slice(0,-1).every((n,a)=>n===t[a])?e[e.length-1]-t[t.length-1]:0}function ro(e,t,r=!1){let{routesMeta:n}=e,a={},o="/",i=[];for(let l=0;l<n.length;++l){let s=n[l],u=l===n.length-1,f=o==="/"?t:t.slice(o.length)||"/",h=_t({path:s.relativePath,caseSensitive:s.caseSensitive,end:u},f),p=s.route;if(!h&&u&&r&&!n[n.length-1].route.index&&(h=_t({path:s.relativePath,caseSensitive:s.caseSensitive,end:!1},f)),!h)return null;
26Object.assign(a,h.params),i.push({params:a,pathname:Le([o,h.pathname]),pathnameBase:lo(Le([o,h.pathnameBase])),route:p}),h.pathnameBase!=="/"&&(o=Le([o,h.pathnameBase]))}return i}function _t(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[r,n]=Pn(e.path,e.caseSensitive,e.end),a=t.match(r);if(!a)return null;let o=a[0],i=o.replace(/(.)\/+$/,"$1"),l=a.slice(1);return{params:n.reduce((u,{paramName:f,isOptional:h},p)=>{if(f==="*"){let R=l[p]||"";i=o.slice(0,o.length-R.length).replace(/(.)\/+$/,"$1")}const g=l[p];return h&&!g?u[f]=void 0:u[f]=(g||"").replace(/%2F/g,"/"),u},{}),pathname:o,pathnameBase:i,pattern:e}}function Pn(e,t=!1,r=!0){ae(e==="*"||!e.endsWith("*")||e.endsWith("/*"),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,"/*")}".`);let n=[],a="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(i,l,s)=>(n.push({paramName:l,isOptional:s!=null}),s?"/?([^\\/]+)?":"/([^\\/]+)")).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return e.endsWith("*")?(n.push({paramName:"*"}),a+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?a+="\\/*$":e!==""&&e!=="/"&&(a+="(?:(?=\\/|$))"),[new RegExp(a,t?void 0:"i"),n]}function no(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return ae(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function Ee(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let r=t.endsWith("/")?t.length-1:t.length,n=e.charAt(r);return n&&n!=="/"?null:e.slice(r)||"/"}function ao({basename:e,pathname:t}){return t==="/"?e:Le([e,t])}function oo(e,t="/"){let{pathname:r,search:n="",hash:a=""}=typeof e=="string"?ke(e):e;return{pathname:r?r.startsWith("/")?r:io(r,t):t,search:so(n),hash:uo(a)}}function io(e,t){let r=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(a=>{a===".."?r.length>1&&r.pop():a!=="."&&r.push(a)}),r.length>1?r.join("/"):"/"}function Gt(e,t,r,n){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(n)}].  Please separate it out to the \`to.${r}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function Mn(e){return e.filter((t,r)=>r===0||t.route.path&&t.route.path.length>0)}function hr(e){let t=Mn(e);return t.map((r,n)=>n===t.length-1?r.pathname:r.pathnameBase)}function mr(e,t,r,n=!1){let a;typeof e=="string"?a=ke(e):(a={...e},W(!a.pathname||!a.pathname.includes("?"),Gt("?","pathname","search",a)),W(!a.pathname||!a.pathname.includes("#"),Gt("#","pathname","hash",a)),W(!a.search||!a.search.includes("#"),Gt("#","search","hash",a)));let o=e===""||a.pathname==="",i=o?"/":a.pathname,l;if(i==null)l=r;else{let h=t.length-1;if(!n&&i.startsWith("..")){let p=i.split("/");for(;p[0]==="..";)p.shift(),h-=1;a.pathname=p.join("/")}l=h>=0?t[h]:"/"}let s=oo(a,l),u=i&&i!=="/"&&i.endsWith("/"),f=(o||i===".")&&r.endsWith("/");return!s.pathname.endsWith("/")&&(u||f)&&(s.pathname+="/"),s}var Le=e=>e.join("/").replace(/\/\/+/g,"/"),lo=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),so=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,uo=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e,co=class{constructor(e,t){this.type="DataWithResponseInit",this.data=e,this.init=t||null}};function fo(e,t){return new co(e,typeof t=="number"?{status:t}:t)}var ho=(e,t=302)=>{let r=t;typeof r=="number"?r={status:r}:typeof r.status>"u"&&(r.status=302);let n=new Headers(r.headers);return n.set("Location",e),new Response(null,{...r,headers:n})},Be=class{constructor(e,t,r,n=!1){this.status=e,this.statusText=t||"",this.internal=n,r instanceof Error?(this.data=r.toString(),this.error=r):this.data=r}};function We(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}function pr(e){return e.filter(Boolean).join("/").replace(/\/\/*/g,"/")||"/"}var Ne=Symbol("Uninstrumented");function mo(e,t){let r={lazy:[],"lazy.loader":[],"lazy.action":[],"lazy.middleware":[],middleware:[],loader:[],action:[]};e.forEach(a=>a({id:t.id,index:t.index,path:t.path,instrument(o){let i=Object.keys(r);for(let l of i)o[l]&&r[l].push(o[l])}}));let n={};if(typeof t.lazy=="function"&&r.lazy.length>0){let a=Xe(r.lazy,t.lazy,()=>{});a&&(n.lazy=a)}if(typeof t.lazy=="object"){let a=t.lazy;["middleware","loader","action"].forEach(o=>{let i=a[o],l=r[`lazy.${o}`];if(typeof i=="function"&&l.length>0){let s=Xe(l,i,()=>{});s&&(n.lazy=Object.assign(n.lazy||{},{[o]:s}))}})}return["loader","action"].forEach(a=>{let o=t[a];if(typeof o=="function"&&r[a].length>0){let i=o[Ne]??o,l=Xe(r[a],i,(...s)=>en(s[0]));l&&(l[Ne]=i,n[a]=l)}}),t.middleware&&t.middleware.length>0&&r.middleware.length>0&&(n.middleware=t.middleware.map(a=>{let o=a[Ne]??a,i=Xe(r.middleware,o,(...l)=>en(l[0]));return i?(i[Ne]=o,i):a})),n}function po(e,t){let r={navigate:[],fetch:[]};if(t.forEach(n=>n({instrument(a){let o=Object.keys(a);for(let i of o)a[i]&&r[i].push(a[i])}})),r.navigate.length>0){let n=e.navigate[Ne]??e.navigate,a=Xe(r.navigate,n,(...o)=>{let[i,l]=o;return{to:typeof i=="number"||typeof i=="string"?i:i?Pe(i):".",...tn(e,l??{})}});a&&(a[Ne]=n,e.navigate=a)}if(r.fetch.length>0){let n=e.fetch[Ne]??e.fetch,a=Xe(r.fetch,n,(...o)=>{let[i,,l,s]=o;return{href:l??".",fetcherKey:i,...tn(e,s??{})}});a&&(a[Ne]=n,e.fetch=a)}return e}function Xe(e,t,r){return e.length===0?null:async(...n)=>
26{let a=await Tn(e,r(...n),()=>t(...n),e.length-1);if(a.type==="error")throw a.value;return a.value}}async function Tn(e,t,r,n){let a=e[n],o;if(a){let i,l=async()=>(i?console.error("You cannot call instrumented handlers more than once"):i=Tn(e,t,r,n-1),o=await i,W(o,"Expected a result"),o.type==="error"&&o.value instanceof Error?{status:"error",error:o.value}:{status:"success",error:void 0});try{await a(l,t)}catch(s){console.error("An instrumentation function threw an error:",s)}i||await l(),await i}else try{o={type:"success",value:await r()}}catch(i){o={type:"error",value:i}}return o||{type:"error",value:new Error("No result assigned in instrumentation chain.")}}function en(e){let{request:t,context:r,params:n,unstable_pattern:a}=e;return{request:yo(t),params:{...n},unstable_pattern:a,context:vo(r)}}function tn(e,t){return{currentUrl:Pe(e.state.location),..."formMethod"in t?{formMethod:t.formMethod}:{},..."formEncType"in t?{formEncType:t.formEncType}:{},..."formData"in t?{formData:t.formData}:{},..."body"in t?{body:t.body}:{}}}function yo(e){return{method:e.method,url:e.url,headers:{get:(...t)=>e.headers.get(...t)}}}function vo(e){if(wo(e)){let t={...e};return Object.freeze(t),t}else return{get:t=>e.get(t)}}var go=Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function wo(e){if(e===null||typeof e!="object")return!1;const t=Object.getPrototypeOf(e);return t===Object.prototype||t===null||Object.getOwnPropertyNames(t).sort().join("\0")===go}var Dn=["POST","PUT","PATCH","DELETE"],Eo=new Set(Dn),Ro=["GET",...Dn],bo=new Set(Ro),So=new Set([301,302,303,307,308]),xo=new Set([307,308]),Kt={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},_n={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},at={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},Co=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,yr=e=>Co.test(e),Lo=e=>({hasErrorBoundary:!!e.hasErrorBoundary}),On="remix-router-transitions",An=Symbol("ResetLoaderData");function Jl(e){const t=e.window?e.window:typeof window<"u"?window:void 0,r=typeof t<"u"&&typeof t.document<"u"&&typeof t.document.createElement<"u";W(e.routes.length>0,"You must provide a non-empty routes array to createRouter");let n=e.hydrationRouteProperties||[],a=e.mapRouteProperties||Lo,o=a;if(e.unstable_instrumentations){let d=e.unstable_instrumentations;o=y=>({...a(y),...mo(d.map(w=>w.route).filter(Boolean),y)})}let i={},l=ut(e.routes,o,void 0,i),s,u=e.basename||"/";u.startsWith("/")||(u=`/${u}`);let f=e.dataStrategy||_o,h={...e.future},p=null,g=new Set,R=null,P=null,E=null,S=e.hydrationData!=null,b=Oe(l,e.history.location,u),T=!1,D=null,x;if(b==null&&!e.patchRoutesOnNavigation){let d=Re(404,{pathname:e.history.location.pathname}),{matches:y,route:w}=Et(l);x=!0,b=y,D={[w.id]:d}}else if(b&&!e.hydrationData&&pt(b,l,e.history.location.pathname).active&&(b=null),b)if(b.some(d=>d.route.lazy))x=!1;else if(!b.some(d=>vr(d.route)))x=!0;else{let d=e.hydrationData?e.hydrationData.loaderData:null,y=e.hydrationData?e.hydrationData.errors:null;if(y){let w=b.findIndex(L=>y[L.route.id]!==void 0);x=b.slice(0,w+1).every(L=>!rr(L.route,d,y))}else x=b.every(w=>!rr(w.route,d,y))}else{x=!1,b=[];let d=pt(null,l,e.history.location.pathname);d.active&&d.matches&&(T=!0,b=d.matches)}let _,v={historyAction:e.history.action,location:e.history.location,matches:b,initialized:x,navigation:Kt,restoreScrollPosition:e.hydrationData!=null?!1:null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||D,fetchers:new Map,blockers:new Map},H="POP",J=!1,z,ee=!1,ue=new Map,ve=null,q=!1,X=!1,oe=new Set,Q=new Map,he=0,ce=-1,m=new Map,C=new Set,A=new Map,$=new Map,B=new Set,Z=new Map,V,ge=null;function ie(){if(p=e.history.listen(({action:d,location:y,delta:w})=>{if(V){V(),V=void 0;return}ae(Z.size===0||w!=null,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs.  This can also happen if you are using createHashRouter and the user manually changes the URL.");let L=Hr({currentLocation:v.location,nextLocation:y,historyAction:d});if(L&&w!=null){let M=new Promise(F=>{V=F});e.history.go(w*-1),mt(L,{state:"blocked",location:y,proceed(){mt(L,{state:"proceeding",proceed:void 0,reset:void 0,location:y}),M.then(()=>e.history.go(w))},reset(){let F=new Map(v.blockers);F.set(L,at),de({blockers:F})}});return}return Ie(d,y)}),r){Vo(t,ue);let d=()=>Jo(t,ue);t.addEventListener("pagehide",d),ve=()=>t.removeEventListener("pagehide",d)}return v.initialized||Ie("POP",v.location,{initialHydration:!0}),_}function Ut(){p&&p(),ve&&ve(),g.clear(),z&&z.abort(),v.fetchers.forEac
26h((d,y)=>zt(y)),v.blockers.forEach((d,y)=>Ur(y))}function pa(d){return g.add(d),()=>g.delete(d)}function de(d,y={}){d.matches&&(d.matches=d.matches.map(M=>{let F=i[M.route.id],k=M.route;return k.element!==F.element||k.errorElement!==F.errorElement||k.hydrateFallbackElement!==F.hydrateFallbackElement?{...M,route:F}:M})),v={...v,...d};let w=[],L=[];v.fetchers.forEach((M,F)=>{M.state==="idle"&&(B.has(F)?w.push(F):L.push(F))}),B.forEach(M=>{!v.fetchers.has(M)&&!Q.has(M)&&w.push(M)}),[...g].forEach(M=>M(v,{deletedFetchers:w,viewTransitionOpts:y.viewTransitionOpts,flushSync:y.flushSync===!0})),w.forEach(M=>zt(M)),L.forEach(M=>v.fetchers.delete(M))}function Je(d,y,{flushSync:w}={}){let L=v.actionData!=null&&v.navigation.formMethod!=null&&pe(v.navigation.formMethod)&&v.navigation.state==="loading"&&d.state?._isRedirect!==!0,M;y.actionData?Object.keys(y.actionData).length>0?M=y.actionData:M=null:L?M=v.actionData:M=null;let F=y.loaderData?fn(v.loaderData,y.loaderData,y.matches||[],y.errors):v.loaderData,k=v.blockers;k.size>0&&(k=new Map(k),k.forEach((I,N)=>k.set(N,at)));let O=q?!1:Br(d,y.matches||v.matches),j=J===!0||v.navigation.formMethod!=null&&pe(v.navigation.formMethod)&&d.state?._isRedirect!==!0;s&&(l=s,s=void 0),q||H==="POP"||(H==="PUSH"?e.history.push(d,d.state):H==="REPLACE"&&e.history.replace(d,d.state));let U;if(H==="POP"){let I=ue.get(v.location.pathname);I&&I.has(d.pathname)?U={currentLocation:v.location,nextLocation:d}:ue.has(d.pathname)&&(U={currentLocation:d,nextLocation:v.location})}else if(ee){let I=ue.get(v.location.pathname);I?I.add(d.pathname):(I=new Set([d.pathname]),ue.set(v.location.pathname,I)),U={currentLocation:v.location,nextLocation:d}}de({...y,actionData:M,loaderData:F,historyAction:H,location:d,initialized:!0,navigation:Kt,revalidation:"idle",restoreScrollPosition:O,preventScrollReset:j,blockers:k},{viewTransitionOpts:U,flushSync:w===!0}),H="POP",J=!1,ee=!1,q=!1,X=!1,ge?.resolve(),ge=null}async function Ar(d,y){if(typeof d=="number"){e.history.go(d);return}let w=tr(v.location,v.matches,u,d,y?.fromRouteId,y?.relative),{path:L,submission:M,error:F}=rn(!1,w,y),k=v.location,O=st(v.location,L,y&&y.state);O={...O,...e.history.encodeLocation(O)};let j=y&&y.replace!=null?y.replace:void 0,U="PUSH";j===!0?U="REPLACE":j===!1||M!=null&&pe(M.formMethod)&&M.formAction===v.location.pathname+v.location.search&&(U="REPLACE");let I=y&&"preventScrollReset"in y?y.preventScrollReset===!0:void 0,N=(y&&y.flushSync)===!0,G=Hr({currentLocation:k,nextLocation:O,historyAction:U});if(G){mt(G,{state:"blocked",location:O,proceed(){mt(G,{state:"proceeding",proceed:void 0,reset:void 0,location:O}),Ar(d,y)},reset(){let re=new Map(v.blockers);re.set(G,at),de({blockers:re})}});return}await Ie(U,O,{submission:M,pendingError:F,preventScrollReset:I,replace:y&&y.replace,enableViewTransition:y&&y.viewTransition,flushSync:N})}function ya(){ge||(ge=Go()),Ht(),de({revalidation:"loading"});let d=ge.promise;return v.navigation.state==="submitting"?d:v.navigation.state==="idle"?(Ie(v.historyAction,v.location,{startUninterruptedRevalidation:!0}),d):(Ie(H||v.historyAction,v.navigation.location,{overrideNavigation:v.navigation,enableViewTransition:ee===!0}),d)}async function Ie(d,y,w){z&&z.abort(),z=null,H=d,q=(w&&w.startUninterruptedRevalidation)===!0,Pa(v.location,v.matches),J=(w&&w.preventScrollReset)===!0,ee=(w&&w.enableViewTransition)===!0;let L=s||l,M=w&&w.overrideNavigation,F=w?.initialHydration&&v.matches&&v.matches.length>0&&!T?v.matches:Oe(L,y,u),k=(w&&w.flushSync)===!0;if(F&&v.initialized&&!X&&jo(v.location,y)&&!(w&&w.submission&&pe(w.submission.formMethod))){Je(y,{matches:F},{flushSync:k});return}let O=pt(F,L,y.pathname);if(O.active&&O.matches&&(F=O.matches),!F){let{error:me,notFoundMatches:ne,route:te}=Bt(y.pathname);Je(y,{matches:ne,loaderData:{},errors:{[te.id]:me}},{flushSync:k});return}z=new AbortController;let j=Ke(e.history,y,z.signal,w&&w.submission),U=e.getContext?await e.getContext():new qr,I;if(w&&w.pendingError)I=[Fe(F).route.id,{type:"error",error:w.pendingError}];else if(w&&w.submission&&pe(w.submission.formMethod)){let me=await va(j,y,w.submission,F,U,O.active,w&&w.initialHydration===!0,{replace:w.replace,flushSync:k});if(me.shortCircuited)return;
26if(me.pendingActionResult){let[ne,te]=me.pendingActionResult;if(we(te)&&We(te.error)&&te.error.status===404){z=null,Je(y,{matches:me.matches,loaderData:{},errors:{[ne]:te.error}});return}}F=me.matches||F,I=me.pendingActionResult,M=Xt(y,w.submission),k=!1,O.active=!1,j=Ke(e.history,j.url,j.signal)}let{shortCircuited:N,matches:G,loaderData:re,errors:se}=await ga(j,y,F,U,O.active,M,w&&w.submission,w&&w.fetcherSubmission,w&&w.replace,w&&w.initialHydration===!0,k,I);N||(z=null,Je(y,{matches:G||F,...hn(I),loaderData:re,errors:se}))}async function va(d,y,w,L,M,F,k,O={}){Ht();let j=Wo(y,w);if(de({navigation:j},{flushSync:O.flushSync===!0}),F){let N=await yt(L,y.pathname,d.signal);if(N.type==="aborted")return{shortCircuited:!0};if(N.type==="error"){if(N.partialMatches.length===0){let{matches:re,route:se}=Et(l);return{matches:re,pendingActionResult:[se.id,{type:"error",error:N.error}]}}let G=Fe(N.partialMatches).route.id;return{matches:N.partialMatches,pendingActionResult:[G,{type:"error",error:N.error}]}}else if(N.matches)L=N.matches;else{let{notFoundMatches:G,error:re,route:se}=Bt(y.pathname);return{matches:G,pendingActionResult:[se.id,{type:"error",error:re}]}}}let U,I=Pt(L,y);if(!I.route.action&&!I.route.lazy)U={type:"error",error:Re(405,{method:d.method,pathname:y.pathname,routeId:I.route.id})};else{let N=qe(o,i,d,L,I,k?[]:n,M),G=await et(d,N,M,null);if(U=G[I.route.id],!U){for(let re of L)if(G[re.route.id]){U=G[re.route.id];break}}if(d.signal.aborted)return{shortCircuited:!0}}if(ze(U)){let N;return O&&O.replace!=null?N=O.replace:N=un(U.response.headers.get("Location"),new URL(d.url),u)===v.location.pathname+v.location.search,await $e(d,U,!0,{submission:w,replace:N}),{shortCircuited:!0}}if(we(U)){let N=Fe(L,I.route.id);return(O&&O.replace)!==!0&&(H="PUSH"),{matches:L,pendingActionResult:[N.route.id,U,I.route.id]}}return{matches:L,pendingActionResult:[I.route.id,U]}}async function ga(d,y,w,L,M,F,k,O,j,U,I,N){let G=F||Xt(y,k),re=k||O||mn(G),se=!q&&!U;if(M){if(se){let fe=Fr(N);de({navigation:G,...fe!==void 0?{actionData:fe}:{}},{flushSync:I})}let K=await yt(w,y.pathname,d.signal);if(K.type==="aborted")return{shortCircuited:!0};if(K.type==="error"){if(K.partialMatches.length===0){let{matches:Ge,route:He}=Et(l);return{matches:Ge,loaderData:{},errors:{[He.id]:K.error}}}let fe=Fe(K.partialMatches).route.id;return{matches:K.partialMatches,loaderData:{},errors:{[fe]:K.error}}}else if(K.matches)w=K.matches;else{let{error:fe,notFoundMatches:Ge,route:He}=Bt(y.pathname);return{matches:Ge,loaderData:{},errors:{[He.id]:fe}}}}let me=s||l,{dsMatches:ne,revalidatingFetchers:te}=nn(d,L,o,i,e.history,v,w,re,y,U?[]:n,U===!0,X,oe,B,A,C,me,u,e.patchRoutesOnNavigation!=null,N);if(ce=++he,!e.dataStrategy&&!ne.some(K=>K.shouldLoad)&&!ne.some(K=>K.route.middleware&&K.route.middleware.length>0)&&te.length===0){let K=$r();return Je(y,{matches:w,loaderData:{},errors:N&&we(N[1])?{[N[0]]:N[1].error}:null,...hn(N),...K?{fetchers:new Map(v.fetchers)}:{}},{flushSync:I}),{shortCircuited:!0}}if(se){let K={};if(!M){K.navigation=G;let fe=Fr(N);fe!==void 0&&(K.actionData=fe)}te.length>0&&(K.fetchers=wa(te)),de(K,{flushSync:I})}te.forEach(K=>{De(K.key),K.controller&&Q.set(K.key,K.controller)});let je=()=>te.forEach(K=>De(K.key));z&&z.signal.addEventListener("abort",je);let{loaderResults:tt,fetcherResults:Ae}=await Nr(ne,te,d,L);if(d.signal.aborted)return{shortCircuited:!0};z&&z.signal.removeEventListener("abort",je),te.forEach(K=>Q.delete(K.key));let Ce=Rt(tt);if(Ce)return await $e(d,Ce.result,!0,{replace:j}),{shortCircuited:!0};if(Ce=Rt(Ae),Ce)return C.add(Ce.key),await $e(d,Ce.result,!0,{replace:j}),{shortCircuited:!0};let{loaderData:Wt,errors:rt}=dn(v,w,tt,N,te,Ae);U&&v.errors&&(rt={...v.errors,...rt});let Ue=$r(),vt=jr(ce),gt=Ue||vt||te.length>0;return{matches:w,loaderData:Wt,errors:rt,...gt?{fetchers:new Map(v.fetchers)}:{}}}function Fr(d){if(d&&!we(d[1]))return{[d[0]]:d[1].data};if(v.actionData)return Object.keys(v.actionData).length===0?null:v.actionData}function wa(d){return d.forEach(y=>{let w=v.fetchers.get(y.key),L=ot(void 0,w?w.data:void 0);v.fetchers.set(y.key,L)}),new Map(v.fetchers)}async function Ea(d,y,w,L){De(d);let M=(L&&L.flushSync)===!0,F=s||l,k=tr(v.location,v.matches,u,w,y,L?.relative),O=Oe(F,k,u),j=pt(O,F,k);if(j.active&&j.matches&&(O=j.matches),!O){Te(d,y,Re(404,{pathname:k}),{flushSync:M});return}let{path:U,submission:I,error:N}=rn(!0,k,L);if(N){Te(d,y,N,{flushSync:M});return}let G=e.getContext?await e.getContext():new qr,re=(L&&L.preventScrollReset)===!0;if(I&&pe(I.formMethod)){await Ra(d,y,U,O,G,j.active,M,re,I);return}A.set(d,{routeId:y,path:U}),await ba(d,y,U,O,G,j.active,M,re,I)}async function Ra(d,y,w,L,M,F,k,O,j){Ht(),A.delete(d);let U=v.fetchers.get(d);Me(d,Yo(j,U),{flushSync:k});let I=new AbortController,N=Ke(e.history,w,I.signal,j);if(F){let le=await yt(L,new URL(N.url).pathname,N.signal,d);if(le.type==="aborted")return;if(le.type==="error"){Te(d,y,le.error,{flushSync:k});return}else if(le.matches)L=le.matches;else{Te(d,y,Re(404,{pathname:w}),{flushSync:k});return}}let G=Pt(L,w);if(!G.route.action&&!G.route.lazy){let le=Re(405,{method:j.formMethod,pathname:w,routeId:y});Te(d,y,le,{flushSync:k});return}Q.set(d,I);let re=he,se=qe(o,i,N,L,G,n,M),ne=(await et(N,se,M,d))[G.route.id];
26if(N.signal.aborted){Q.get(d)===I&&Q.delete(d);return}if(B.has(d)){if(ze(ne)||we(ne)){Me(d,_e(void 0));return}}else{if(ze(ne))if(Q.delete(d),ce>re){Me(d,_e(void 0));return}else return C.add(d),Me(d,ot(j)),$e(N,ne,!1,{fetcherSubmission:j,preventScrollReset:O});if(we(ne)){Te(d,y,ne.error);return}}let te=v.navigation.location||v.location,je=Ke(e.history,te,I.signal),tt=s||l,Ae=v.navigation.state!=="idle"?Oe(tt,v.navigation.location,u):v.matches;W(Ae,"Didn't find any matches after fetcher action");let Ce=++he;m.set(d,Ce);let Wt=ot(j,ne.data);v.fetchers.set(d,Wt);let{dsMatches:rt,revalidatingFetchers:Ue}=nn(je,M,o,i,e.history,v,Ae,j,te,n,!1,X,oe,B,A,C,tt,u,e.patchRoutesOnNavigation!=null,[G.route.id,ne]);Ue.filter(le=>le.key!==d).forEach(le=>{let wt=le.key,Wr=v.fetchers.get(wt),Da=ot(void 0,Wr?Wr.data:void 0);v.fetchers.set(wt,Da),De(wt),le.controller&&Q.set(wt,le.controller)}),de({fetchers:new Map(v.fetchers)});let vt=()=>Ue.forEach(le=>De(le.key));I.signal.addEventListener("abort",vt);let{loaderResults:gt,fetcherResults:K}=await Nr(rt,Ue,je,M);if(I.signal.aborted)return;if(I.signal.removeEventListener("abort",vt),m.delete(d),Q.delete(d),Ue.forEach(le=>Q.delete(le.key)),v.fetchers.has(d)){let le=_e(ne.data);v.fetchers.set(d,le)}let fe=Rt(gt);if(fe)return $e(je,fe.result,!1,{preventScrollReset:O});if(fe=Rt(K),fe)return C.add(fe.key),$e(je,fe.result,!1,{preventScrollReset:O});let{loaderData:Ge,errors:He}=dn(v,Ae,gt,void 0,Ue,K);jr(Ce),v.navigation.state==="loading"&&Ce>ce?(W(H,"Expected pending action"),z&&z.abort(),Je(v.navigation.location,{matches:Ae,loaderData:Ge,errors:He,fetchers:new Map(v.fetchers)})):(de({errors:He,loaderData:fn(v.loaderData,Ge,Ae,He),fetchers:new Map(v.fetchers)}),X=!1)}async function ba(d,y,w,L,M,F,k,O,j){let U=v.fetchers.get(d);Me(d,ot(j,U?U.data:void 0),{flushSync:k});let I=new AbortController,N=Ke(e.history,w,I.signal);if(F){let te=await yt(L,new URL(N.url).pathname,N.signal,d);if(te.type==="aborted")return;if(te.type==="error"){Te(d,y,te.error,{flushSync:k});return}else if(te.matches)L=te.matches;else{Te(d,y,Re(404,{pathname:w}),{flushSync:k});return}}let G=Pt(L,w);Q.set(d,I);let re=he,se=qe(o,i,N,L,G,n,M),ne=(await et(N,se,M,d))[G.route.id];if(Q.get(d)===I&&Q.delete(d),!N.signal.aborted){if(B.has(d)){Me(d,_e(void 0));return}if(ze(ne))if(ce>re){Me(d,_e(void 0));return}else{C.add(d),await $e(N,ne,!1,{preventScrollReset:O});return}if(we(ne)){Te(d,y,ne.error);return}Me(d,_e(ne.data))}}async function $e(d,y,w,{submission:L,fetcherSubmission:M,preventScrollReset:F,replace:k}={}){y.response.headers.has("X-Remix-Revalidate")&&(X=!0);let O=y.response.headers.get("Location");W(O,"Expected a Location header on the redirect Response"),O=un(O,new URL(d.url),u);let j=st(v.location,O,{_isRedirect:!0});if(r){let se=!1;if(y.response.headers.has("X-Remix-Reload-Document"))se=!0;else if(yr(O)){const me=Sn(O,!0);se=me.origin!==t.location.origin||Ee(me.pathname,u)==null}if(se){k?t.location.replace(O):t.location.assign(O);return}}z=null;let U=k===!0||y.response.headers.has("X-Remix-Replace")?"REPLACE":"PUSH",{formMethod:I,formAction:N,formEncType:G}=v.navigation;!L&&!M&&I&&N&&G&&(L=mn(v.navigation));let re=L||M;if(xo.has(y.response.status)&&re&&pe(re.formMethod))await Ie(U,j,{submission:{...re,formAction:O},preventScrollReset:F||J,enableViewTransition:w?ee:void 0});else{let se=Xt(j,L);await Ie(U,j,{overrideNavigation:se,fetcherSubmission:M,preventScrollReset:F||J,enableViewTransition:w?ee:void 0})}}async function et(d,y,w,L){let M,F={};try{M=await Ao(f,d,y,L,w,!1)}catch(k){return y.filter(O=>O.shouldLoad).forEach(O=>{F[O.route.id]={type:"error",error:k}}),F}if(d.signal.aborted)return F;for(let[k,O]of Object.entries(M))if(zo(O)){let j=O.result;F[k]={type:"redirect",response:Io(j,d,k,y,u)}}else F[k]=await ko(O);return F}async function Nr(d,y,w,L){let M=et(w,d,L,null),F=Promise.all(y.map(async j=>{if(j.matches&&j.match&&j.request&&j.controller){let I=(await et(j.request,j.matches,L,j.key))[j.match.route.id];return{[j.key]:I}}else return Promise.resolve({[j.key]:{type:"error",error:Re(404,{pathname:j.path})}})})),k=await M,O=(await F).reduce((j,U)=>Object.assign(j,U),{});return{loaderResults:k,fetcherResults:O}}function Ht(){X=!0,A.forEach((d,y)=>{Q.has(y)&&oe.add(y),De(y)})}function Me(d,y,w={}){v.fetchers.set(d,y),de({fetchers:new Map(v.fetchers)},{flushSync:(w&&w.flushSync)===!0})}function Te(d,y,w,L={}){let M=Fe(v.matches,y);zt(d),de({errors:{[M.route.id]:w},fetchers:new Map(v.fetchers)},{flushSync:(L&&L.flushSync)===!0})}function kr(d){return $.set(d,($.get(d)||0)+1),B.has(d)&&B.delete(
vendor: 4,687 bytes, line 26
26d),v.fetchers.get(d)||_n}function Sa(d,y){De(d,y?.reason),Me(d,_e(null))}function zt(d){let y=v.fetchers.get(d);Q.has(d)&&!(y&&y.state==="loading"&&m.has(d))&&De(d),A.delete(d),m.delete(d),C.delete(d),B.delete(d),oe.delete(d),v.fetchers.delete(d)}function xa(d){let y=($.get(d)||0)-1;y<=0?($.delete(d),B.add(d)):$.set(d,y),de({fetchers:new Map(v.fetchers)})}function De(d,y){let w=Q.get(d);w&&(w.abort(y),Q.delete(d))}function Ir(d){for(let y of d){let w=kr(y),L=_e(w.data);v.fetchers.set(y,L)}}function $r(){let d=[],y=!1;for(let w of C){let L=v.fetchers.get(w);W(L,`Expected fetcher: ${w}`),L.state==="loading"&&(C.delete(w),d.push(w),y=!0)}return Ir(d),y}function jr(d){let y=[];for(let[w,L]of m)if(L<d){let M=v.fetchers.get(w);W(M,`Expected fetcher: ${w}`),M.state==="loading"&&(De(w),m.delete(w),y.push(w))}return Ir(y),y.length>0}function Ca(d,y){let w=v.blockers.get(d)||at;return Z.get(d)!==y&&Z.set(d,y),w}function Ur(d){v.blockers.delete(d),Z.delete(d)}function mt(d,y){let w=v.blockers.get(d)||at;W(w.state==="unblocked"&&y.state==="blocked"||w.state==="blocked"&&y.state==="blocked"||w.state==="blocked"&&y.state==="proceeding"||w.state==="blocked"&&y.state==="unblocked"||w.state==="proceeding"&&y.state==="unblocked",`Invalid blocker state transition: ${w.state} -> ${y.state}`);let L=new Map(v.blockers);L.set(d,y),de({blockers:L})}function Hr({currentLocation:d,nextLocation:y,historyAction:w}){if(Z.size===0)return;Z.size>1&&ae(!1,"A router only supports one blocker at a time");let L=Array.from(Z.entries()),[M,F]=L[L.length-1],k=v.blockers.get(M);if(!(k&&k.state==="proceeding")&&F({currentLocation:d,nextLocation:y,historyAction:w}))return M}function Bt(d){let y=Re(404,{pathname:d}),w=s||l,{matches:L,route:M}=Et(w);return{notFoundMatches:L,route:M,error:y}}function La(d,y,w){if(R=d,E=y,P=w||null,!S&&v.navigation===Kt){S=!0;let L=Br(v.location,v.matches);L!=null&&de({restoreScrollPosition:L})}return()=>{R=null,E=null,P=null}}function zr(d,y){return P&&P(d,y.map(L=>xn(L,v.loaderData)))||d.key}function Pa(d,y){if(R&&E){let w=zr(d,y);R[w]=E()}}function Br(d,y){if(R){let w=zr(d,y),L=R[w];if(typeof L=="number")return L}return null}function pt(d,y,w){if(e.patchRoutesOnNavigation)if(d){if(Object.keys(d[0].params).length>0)return{active:!0,matches:Lt(y,w,u,!0)}}else return{active:!0,matches:Lt(y,w,u,!0)||[]};return{active:!1,matches:null}}async function yt(d,y,w,L){if(!e.patchRoutesOnNavigation)return{type:"success",matches:d};let M=d;for(;;){let F=s==null,k=s||l,O=i;try{await e.patchRoutesOnNavigation({signal:w,path:y,matches:M,fetcherKey:L,patch:(I,N)=>{w.aborted||an(I,N,k,O,o,!1)}})}catch(I){return{type:"error",error:I,partialMatches:M}}finally{F&&!w.aborted&&(l=[...l])}if(w.aborted)return{type:"aborted"};let j=Oe(k,y,u);if(j)return{type:"success",matches:j};let U=Lt(k,y,u,!0);if(!U||M.length===U.length&&M.every((I,N)=>I.route.id===U[N].route.id))return{type:"success",matches:null};M=U}}function Ma(d){i={},s=ut(d,o,void 0,i)}function Ta(d,y,w=!1){let L=s==null;an(d,y,s||l,i,o,w),L&&(l=[...l],de({}))}return _={get basename(){return u},get future(){return h},get state(){return v},get routes(){return l},get window(){return t},initialize:ie,subscribe:pa,enableScrollRestoration:La,navigate:Ar,fetch:Ea,revalidate:ya,createHref:d=>e.history.createHref(d),encodeLocation:d=>e.history.encodeLocation(d),getFetcher:kr,resetFetcher:Sa,deleteFetcher:xa,dispose:Ut,getBlocker:Ca,deleteBlocker:Ur,patchRoutes:Ta,_internalFetchControllers:Q,_internalSetRoutes:Ma,_internalSetStateDoNotUseOrYouWillBreakYourApp(d){de(d)}},e.unstable_instrumentations&&(_=po(_,e.unstable_instrumentations.map(d=>d.router).filter(Boolean))),_}function Po(e){return e!=null&&("formData"in e&&e.formData!=null||"body"in e&&e.body!==void 0)}function tr(e,t,r,n,a,o){let i,l;if(a){i=[];for(let u of t)if(i.push(u),u.route.id===a){l=u;break}}else i=t,l=t[t.length-1];let s=mr(n||".",hr(i),Ee(e.pathname,r)||e.pathname,o==="path");if(n==null&&(s.search=e.search,s.hash=e.hash),(n==null||n===""||n===".")&&l){let u=wr(s.search);if(l.route.index&&!u)s.search=s.search?s.search.replace(/^\?/,"?index&"):"?index";else if(!l.route.index&&u){let f=new URLSearchParams(s.search),h=f.getAll("index");f.delete("index"),h.filter(g=>g).forEach(g=>f.append("index",g));let p=f.toString();s.search=p?`?${p}`:""}}return r!=="/"&&(s.pathname=ao({basename:r,pathname:s.pathname})),Pe(s)}function rn(e,t,r){if(!r||!Po(r))return{path:t};if(r.formMethod&&!Bo(r.formMethod))return{path:t,error:Re(405,{method:r.formMethod})};let n=()=>({path:t,error:Re(400,{type:"invalid-body"})}),o=(r.formMethod||"get").toUpperCase(),i=jn(t);if(r.body!==void 0){if(r.formEncType==="text/plain"){if(!pe(o))return n();
26let h=typeof r.body=="string"?r.body:r.body instanceof FormData||r.body instanceof URLSearchParams?Array.from(r.body.entries()).reduce((p,[g,R])=>`${p}${g}=${R}
27`,""):String(r.body);return{path:t,submission:{formMethod:o,formAction:i,formEncType:r.formEncType,formData:void 0,json:void 0,text:h}}}else if(r.formEncType==="application/json"){if(!pe(o))return n();try{let h=typeof r.body=="string"?JSON.parse(r.body):r.body;return{path:t,submission:{formMethod:o,formAction:i,formEncType:r.formEncType,formData:void 0,json:h,text:void 0}}}catch{return n()}}}W(typeof FormData=="function","FormData is not available in this environment");let l,s;if(r.formData)l=ar(r.formData),s=r.formData;else if(r.body instanceof FormData)l=ar(r.body),s=r.body;else if(r.body instanceof URLSearchParams)l=r.body,s=cn(l);else if(r.body==null)l=new URLSearchParams,s=new FormData;else try{l=new URLSearchParams(r.body),s=cn(l)}catch{return n()}let u={formMethod:o,formAction:i,formEncType:r&&r.formEncType||"application/x-www-form-urlencoded",formData:s,json:void 0,text:void 0};if(pe(u.formMethod))return{path:t,submission:u};let f=ke(t);return e&&f.search&&wr(f.search)&&l.append("index",""),f.search=`?${l}`,{path:Pe(f),submission:u}}function nn(e,t,r,n,a,o,i,l,s,u,f,h,p,g,R,P,E,S,b,T){let D=T?we(T[1])?T[1].error:T[1].data:void 0,x=a.createURL(o.location),_=a.createURL(s),v;if(f&&o.errors){let q=Object.keys(o.errors)[0];v=i.findIndex(X=>X.route.id===q)}else if(T&&we(T[1])){let q=T[0];v=i.findIndex(X=>X.route.id===q)-1}let H=T?T[1].statusCode:void 0,J=H&&H>=400,z={currentUrl:x,currentParams:o.matches[0]?.params||{},nextUrl:_,nextParams:i[0].params,...l,actionResult:D,actionStatus:H},ee=pr(i.map(q=>q.route.path)),ue=i.map((q,X)=>{let{route:oe}=q,Q=null;if(v!=null&&X>v?Q=!1:oe.lazy?Q=!0:vr(oe)?f?Q=rr(oe,o.loaderData,o.errors):Mo(o.loaderData,o.matches[X],q)&&(Q=!0):Q=!1,Q!==null)return nr(r,n,e,ee,q,u,t,Q);let he=J?!1:h||x.pathname+x.search===_.pathname+_.search||x.search!==_.search||To(o.matches[X],q),ce={...z,defaultShouldRevalidate:he},m=Ot(q,ce);return nr(r,n,e,ee,q,u,t,m,ce)}),ve=[];return R.forEach((q,X)=>{if(f||!i.some($=>$.route.id===q.routeId)||g.has(X))return;let oe=o.fetchers.get(X),Q=oe&&oe.state!=="idle"&&oe.data===void 0,he=Oe(E,q.path,S);if(!he){if(b&&Q)return;ve.push({key:X,routeId:q.routeId,path:q.path,matches:null,match:null,request:null,controller:null});return}if(P.has(X))return;let ce=Pt(he,q.path),m=new AbortController,C=Ke(a,q.path,m.signal),A=null;if(p.has(X))p.delete(X),A=qe(r,n,C,he,ce,u,t);else if(Q)h&&(A=qe(r,n,C,he,ce,u,t));else{let $={...z,defaultShouldRevalidate:J?!1:h};Ot(ce,$)&&(A=qe(r,n,C,he,ce,u,t,$))}A&&ve.push({key:X,routeId:q.routeId,path:q.path,matches:A,match:ce,request:C,controller:m})}),{dsMatches:ue,revalidatingFetchers:ve}}function vr(e){return e.loader!=null||e.middleware!=null&&e.middleware.length>0}function rr(e,t,r){if(e.lazy)return!0;if(!vr(e))return!1;let n=t!=null&&e.id in t,a=r!=null&&r[e.id]!==void 0;return!n&&a?!1:typeof e.loader=="function"&&e.loader.hydrate===!0?!0:!n&&!a}function Mo(e,t,r){let n=!t||r.route.id!==t.route.id,a=!e.hasOwnProperty(r.route.id);return n||a}function To(e,t){let r=e.route.path;return e.pathname!==t.pathname||r!=null&&r.endsWith("*")&&e.params["*"]!==t.params["*"]}function Ot(e,t){if(e.route.shouldRevalidate){let r=e.route.shouldRevalidate(t);if(typeof r=="boolean")return r}return t.defaultShouldRevalidate}function an(e,t,r,n,a,o){let i;if(e){let u=n[e];W(u,`No route found to patch children into: routeId = ${e}`),u.children||(u.children=[]),i=u.children}else i=r;let l=[],s=[];if(t.forEach(u=>{let f=i.find(h=>Fn(u,h));f?s.push({existingRoute:f,newRoute:u}):l.push(u)}),l.length>0){let u=ut(l,a,[e||"_","patch",String(i?.length||"0")],n);i.push(...u)}if(o&&s.length>0)for(let u=0;u<s.length;u++){let{existingRoute:f,newRoute:h}=s[u],p=f,[g]=ut([h],a,[],{},!0);Object.assign(p,{element:g.element?g.element:p.element,errorElement:g.errorElement?g.errorElement:p.errorElement,hydrateFallbackElement:g.hydrateFallbackElement?g.hydrateFallbackElement:p.hydrateFallbackElement})}}function Fn(e,t){return"id"in e&&"id"in t&&e.id===t.id?!0:e.index===t.index&&e.path===t.path&&e.caseSensitive===t.caseSensitive?(!e.children||e.children.length===0)&&(!t.children||t.children.length===0)?!0:e.children.every((r,n)=>t.children?.some(a=>Fn(r,a))):!1}var on=new WeakMap,Nn=({key:e,route:t,manifest:r,mapRouteProperties:n})=>{let a=r[t.id];if(W(a,"No route found in manifest"),!a.lazy||typeof a.lazy!="object")return;let o=a.lazy[e];if(!o)return;let i=on.get(a);i||(i={},on.set(a,i));let l=i[e];if(l)return l;let s=(async()=>{let u=Ba(e),h=a[e]!==void 0&&e!=="hasErrorBoundary";if(u)ae(!u,"Route property "+e+" is not a supported lazy route property. This property will be ignored."),i[e]=Promise.resolve();else if(h)ae(!1,`Route "${a.id}" has a static property "${e}" defined. The lazy property will be ignored.`);else{let p=await o();p!=null&&(Object.assign(a,{[e]:p}),Object.assign(a,n(a)))}typeof a.lazy=="object"&&(a.lazy[e]=void 0,Object.values(a.lazy).every(p=>p===void 0)&&(a.lazy=void 0))})();return i[e]=s,s},ln=new WeakMap;function Do(e,t,r,n,a){let o=r[e.id];if(W(o,"No route found in manifest"),!e.lazy)return{lazyRoutePromise:void 0,lazyHandlerPromise:void 0};if(typeof e.lazy=="function"){let f=ln.get(o);if(f)return{lazyRoutePromise:f,lazyHandlerPromise:f};let h=(async()=>{W(typeof e.lazy=="function","No lazy route function found");let p=await e.lazy(),g={};for(let R in p){let P=p[R];if(P===void 0)continue;let E=Ya(R),b=o[R]!==void 0&&R!=="hasErrorBoundary";E?ae(!E,"Route property "+R+" is not a supported property to be returned from a lazy route function. This property will be ignored."):b?ae(!b,`Route "${o.id}" has a static property "${R}" defined but its lazy function is also returning a value for this property. The lazy route property "${R}" will be ignored.`):g[R]=P}Object.assign(o,g),Object.assign(o,{...n(o),lazy:void 0})})();return ln.set(o,h),h.catch(()=>{}),{lazyRoutePromise:h,lazyHandlerPromise:h}}let i=Object.keys(e.lazy),l=[],s;for(let f of i){if(a&&a.includes(f))continue;let h=Nn({key:f,route:e,manifest:r,mapRouteProperties:n});h&&(l.push(h),f===t&&(s=h))}let u=l.length>0?Promise.all(l).then(()=>{}):void 0;return u?.catch(()=>{}),s?.catch(()=>{}),{lazyRoutePromise:u,lazyHandlerPromise:s}}async function sn(e){let t=e.matches.filter(a=>a.shouldLoad),r={};return(await Promise.all(t.map(a=>
27a.resolve()))).forEach((a,o)=>{r[t[o].route.id]=a}),r}async function _o(e){return e.matches.some(t=>t.route.middleware)?kn(e,()=>sn(e)):sn(e)}function kn(e,t){return Oo(e,t,n=>n,Uo,r);function r(n,a,o){if(o)return Promise.resolve(Object.assign(o.value,{[a]:{type:"error",result:n}}));{let{matches:i}=e,l=Math.min(Math.max(i.findIndex(u=>u.route.id===a),0),Math.max(i.findIndex(u=>u.unstable_shouldCallHandler()),0)),s=Fe(i,i[l].route.id).route.id;return Promise.resolve({[s]:{type:"error",result:n}})}}}async function Oo(e,t,r,n,a){let{matches:o,request:i,params:l,context:s,unstable_pattern:u}=e,f=o.flatMap(p=>p.route.middleware?p.route.middleware.map(g=>[p.route.id,g]):[]);return await In({request:i,params:l,context:s,unstable_pattern:u},f,t,r,n,a)}async function In(e,t,r,n,a,o,i=0){let{request:l}=e;if(l.signal.aborted)throw l.signal.reason??new Error(`Request aborted: ${l.method} ${l.url}`);let s=t[i];if(!s)return await r();let[u,f]=s,h,p=async()=>{if(h)throw new Error("You may only call `next()` once per middleware");try{return h={value:await In(e,t,r,n,a,o,i+1)},h.value}catch(g){return h={value:await o(g,u,h)},h.value}};try{let g=await f(e,p),R=g!=null?n(g):void 0;return a(R)?R:h?R??h.value:(h={value:await p()},h.value)}catch(g){return await o(g,u,h)}}function $n(e,t,r,n,a){let o=Nn({key:"middleware",route:n.route,manifest:t,mapRouteProperties:e}),i=Do(n.route,pe(r.method)?"action":"loader",t,e,a);return{middleware:o,route:i.lazyRoutePromise,handler:i.lazyHandlerPromise}}function nr(e,t,r,n,a,o,i,l,s=null){let u=!1,f=$n(e,t,r,a,o);return{...a,_lazyPromises:f,shouldLoad:l,unstable_shouldRevalidateArgs:s,unstable_shouldCallHandler(h){return u=!0,s?typeof h=="boolean"?Ot(a,{...s,defaultShouldRevalidate:h}):Ot(a,s):l},resolve(h){let{lazy:p,loader:g,middleware:R}=a.route,P=u||l||h&&!pe(r.method)&&(p||g),E=R&&R.length>0&&!g&&!p;return P&&(pe(r.method)||!E)?Fo({request:r,unstable_pattern:n,match:a,lazyHandlerPromise:f?.handler,lazyRoutePromise:f?.route,handlerOverride:h,scopedContext:i}):Promise.resolve({type:"data",result:void 0})}}}function qe(e,t,r,n,a,o,i,l=null){return n.map(s=>s.route.id!==a.route.id?{...s,shouldLoad:!1,unstable_shouldRevalidateArgs:l,unstable_shouldCallHandler:()=>!1,_lazyPromises:$n(e,t,r,s,o),resolve:()=>Promise.resolve({type:"data",result:void 0})}:nr(e,t,r,pr(n.map(u=>u.route.path)),s,o,i,!0,l))}async function Ao(e,t,r,n,a,o){r.some(u=>u._lazyPromises?.middleware)&&await Promise.all(r.map(u=>u._lazyPromises?.middleware));let i={request:t,unstable_pattern:pr(r.map(u=>u.route.path)),params:r[0].params,context:a,matches:r},s=await e({...i,fetcherKey:n,runClientMiddleware:u=>{let f=i;return kn(f,()=>u({...f,fetcherKey:n,runClientMiddleware:()=>{throw new Error("Cannot call `runClientMiddleware()` from within an `runClientMiddleware` handler")}}))}});try{await Promise.all(r.flatMap(u=>[u._lazyPromises?.handler,u._lazyPromises?.route]))}catch{}return s}async function Fo({request:e,unstable_pattern:t,match:r,lazyHandlerPromise:n,lazyRoutePromise:a,handlerOverride:o,scopedContext:i}){let l,s,u=pe(e.method),f=u?"action":"loader",h=p=>{let g,R=new Promise((S,b)=>g=b);s=()=>g(),e.signal.addEventListener("abort",s);let P=S=>typeof p!="function"?Promise.reject(new Error(`You cannot call the handler for a route which defines a boolean "${f}" [routeId: ${r.route.id}]`)):p({request:e,unstable_pattern:t,params:r.params,context:i},...S!==void 0?[S]:[]),E=(async()=>{try{return{type:"data",result:await(o?o(b=>P(b)):P())}}catch(S){return{type:"error",result:S}}})();return Promise.race([E,R])};try{let p=u?r.route.action:r.route.loader;if(n||a)if(p){let g,[R]=await Promise.all([h(p).catch(P=>{g=P}),n,a]);if(g!==void 0)throw g;l=R}else{await n;let g=u?r.route.action:r.route.loader;if(g)[l]=await Promise.all([h(g),a]);else if(f==="action"){let R=new URL(e.url),P=R.pathname+R.search;throw Re(405,{method:e.method,pathname:P,routeId:r.route.id})}else return{type:"data",result:void 0}}else if(p)l=await h(p);else{let g=new URL(e.url),R=g.pathname+g.search;throw Re(404,{pathname:R})}}catch(p){return{type:"error",result:p}}finally{s&&e.signal.removeEventListener("abort",s)}return l}async function No(e){let t=e.headers.get("Content-Type");return t&&/\bapplication\/json\b/.test(t)?e.body==null?null:e.json():e.text()}async function ko(e){let{result:t,type:r}=e;if(gr(t)){let n;try{n=await No(t)}catch(a){return{type:"error",error:a}}return r==="error"?{type:"error",error:new Be(t.status,t.statusText,n),statusCode:t.status,headers:t.headers}:{type:"data",data:n,statusCode:t.status,headers:t.headers}}return r==="error"?or(t)?t.data instanceof Error?{type:"error",error:t.data,statusCode:t.init?.status,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:"error",error:new Be(t.init?.status||500,void 0,t.data),statusCode:We(t)?t.status:void 0,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:"error",error:t,statusCode:We(t)?t.status:void 0}:or(t)?{type:"data",data:t.data,statusCode:t.init?.status,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:"data",data:t}}function Io(e,t,r,n,a){let o=e.headers.get("Location");if(W(o,"Redirects returned/thrown from loaders/actions must have a Location header"),!yr(o)){let i=n.slice(0,n.findIndex(l=>l.route.id===r)+1);o=tr(new URL(t.url),i,a,o),e.headers.set("Location",o)}return e}function un(e,t,r){if(yr(e)){let n=e,a=n.startsWith("//")?new URL(t.protocol+n):new URL(n),o=Ee(a.pathname,r)!=null;if(a.origin===t.origin&&o)return a.pathname+a.search+a.hash}return e}function Ke(e,t,r,n){let a=e.createURL(jn(t)).toString(),o={signal:r};if(n&&pe(n.formMethod)){let{formMethod:i,formEncType:l}=n;o.method=i.toUpperCase(),l==="application/json"?(o.headers=new Headers({"Content-Type":l}),o.body=JSON.stringify(n.json)):l==="text/plain"?o.body=n.text:l==="application/x-www-form-urlencoded"&&n.formData?o.body=ar(n.formData):o.body=n.formData}
27return new Request(a,o)}function ar(e){let t=new URLSearchParams;for(let[r,n]of e.entries())t.append(r,typeof n=="string"?n:n.name);return t}function cn(e){let t=new FormData;for(let[r,n]of e.entries())t.append(r,n);return t}function $o(e,t,r,n=!1,a=!1){let o={},i=null,l,s=!1,u={},f=r&&we(r[1])?r[1].error:void 0;return e.forEach(h=>{if(!(h.route.id in t))return;let p=h.route.id,g=t[p];if(W(!ze(g),"Cannot handle redirect results in processLoaderData"),we(g)){let R=g.error;if(f!==void 0&&(R=f,f=void 0),i=i||{},a)i[p]=R;else{let P=Fe(e,p);i[P.route.id]==null&&(i[P.route.id]=R)}n||(o[p]=An),s||(s=!0,l=We(g.error)?g.error.status:500),g.headers&&(u[p]=g.headers)}else o[p]=g.data,g.statusCode&&g.statusCode!==200&&!s&&(l=g.statusCode),g.headers&&(u[p]=g.headers)}),f!==void 0&&r&&(i={[r[0]]:f},r[2]&&(o[r[2]]=void 0)),{loaderData:o,errors:i,statusCode:l||200,loaderHeaders:u}}function dn(e,t,r,n,a,o){let{loaderData:i,errors:l}=$o(t,r,n);return a.filter(s=>!s.matches||s.matches.some(u=>u.shouldLoad)).forEach(s=>{let{key:u,match:f,controller:h}=s;if(h&&h.signal.aborted)return;let p=o[u];if(W(p,"Did not find corresponding fetcher result"),we(p)){let g=Fe(e.matches,f?.route.id);l&&l[g.route.id]||(l={...l,[g.route.id]:p.error}),e.fetchers.delete(u)}else if(ze(p))W(!1,"Unhandled fetcher revalidation redirect");else{let g=_e(p.data);e.fetchers.set(u,g)}}),{loaderData:i,errors:l}}function fn(e,t,r,n){let a=Object.entries(t).filter(([,o])=>o!==An).reduce((o,[i,l])=>(o[i]=l,o),{});for(let o of r){let i=o.route.id;if(!t.hasOwnProperty(i)&&e.hasOwnProperty(i)&&o.route.loader&&(a[i]=e[i]),n&&n.hasOwnProperty(i))break}return a}function hn(e){return e?we(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function Fe(e,t){return(t?e.slice(0,e.findIndex(n=>n.route.id===t)+1):[...e]).reverse().find(n=>n.route.hasErrorBoundary===!0)||e[0]}function Et(e){let t=e.length===1?e[0]:e.find(r=>r.index||!r.path||r.path==="/")||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function Re(e,{pathname:t,routeId:r,method:n,type:a,message:o}={}){let i="Unknown Server Error",l="Unknown @remix-run/router error";return e===400?(i="Bad Request",n&&t&&r?l=`You made a ${n} request to "${t}" but did not provide a \`loader\` for route "${r}", so there is no way to handle the request.`:a==="invalid-body"&&(l="Unable to encode submission body")):e===403?(i="Forbidden",l=`Route "${r}" does not match URL "${t}"`):e===404?(i="Not Found",l=`No route matches URL "${t}"`):e===405&&(i="Method Not Allowed",n&&t&&r?l=`You made a ${n.toUpperCase()} request to "${t}" but did not provide an \`action\` for route "${r}", so there is no way to handle the request.`:n&&(l=`Invalid request method "${n.toUpperCase()}"`)),new Be(e||500,i,new Error(l),!0)}function Rt(e){let t=Object.entries(e);for(let r=t.length-1;r>=0;r--){let[n,a]=t[r];if(ze(a))return{key:n,result:a}}}function jn(e){let t=typeof e=="string"?ke(e):e;return Pe({...t,hash:""})}function jo(e,t){return e.pathname!==t.pathname||e.search!==t.search?!1:e.hash===""?t.hash!=="":e.hash===t.hash?!0:t.hash!==""}function Uo(e){return e!=null&&typeof e=="object"&&Object.entries(e).every(([t,r])=>typeof t=="string"&&Ho(r))}function Ho(e){return e!=null&&typeof e=="object"&&"type"in e&&"result"in e&&(e.type==="data"||e.type==="error")}function zo(e){return gr(e.result)&&So.has(e.result.status)}function we(e){return e.type==="error"}function ze(e){return(e&&e.type)==="redirect"}function or(e){return typeof e=="object"&&e!=null&&"type"in e&&"data"in e&&"init"in e&&e.type==="DataWithResponseInit"}function gr(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.headers=="object"&&typeof e.body<"u"}function Bo(e){return bo.has(e.toUpperCase())}function pe(e){return Eo.has(e.toUpperCase())}function wr(e){return new URLSearchParams(e).getAll("index").some(t=>t==="")}function Pt(e,t){let r=typeof t=="string"?ke(t).search:t.search;if(e[e.length-1].route.index&&wr(r||""))return e[e.length-1];let n=Mn(e);return n[n.length-1]}function mn(e){let{formMethod:t,formAction:r,formEncType:n,text:a,formData:o,json:i}=e;
27if(!(!t||!r||!n)){if(a!=null)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:void 0,text:a};if(o!=null)return{formMethod:t,formAction:r,formEncType:n,formData:o,json:void 0,text:void 0};if(i!==void 0)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:i,text:void 0}}}function Xt(e,t){return t?{state:"loading",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}:{state:"loading",location:e,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function Wo(e,t){return{state:"submitting",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}}function ot(e,t){return e?{state:"loading",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function Yo(e,t){return{state:"submitting",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0}}function _e(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}function Vo(e,t){try{let r=e.sessionStorage.getItem(On);if(r){let n=JSON.parse(r);for(let[a,o]of Object.entries(n||{}))o&&Array.isArray(o)&&t.set(a,new Set(o||[]))}}catch{}}function Jo(e,t){if(t.size>0){let r={};for(let[n,a]of t)r[n]=[...a];try{e.sessionStorage.setItem(On,JSON.stringify(r))}catch(n){ae(!1,`Failed to save applied view transitions in sessionStorage (${n}).`)}}}function Go(){let e,t,r=new Promise((n,a)=>{e=async o=>{n(o);try{await r}catch{}},t=async o=>{a(o);try{await r}catch{}}});return{promise:r,resolve:e,reject:t}}var Ye=c.createContext(null);Ye.displayName="DataRouter";var Qe=c.createContext(null);Qe.displayName="DataRouterState";var Ko=c.createContext(!1);function Xo(){return c.useContext(Ko)}var Er=c.createContext({isTransitioning:!1});Er.displayName="ViewTransition";var Rr=c.createContext(new Map);Rr.displayName="Fetchers";var qo=c.createContext(null);qo.displayName="Await";var be=c.createContext(null);be.displayName="Navigation";var Nt=c.createContext(null);Nt.displayName="Location";var Se=c.createContext({outlet:null,matches:[],isDataRoute:!1});Se.displayName="Route";var br=c.createContext(null);br.displayName="RouteError";function Qo(e,{relative:t}={}){W(dt(),"useHref() may be used only in the context of a <Router> component.");let{basename:r,navigator:n}=c.useContext(be),{hash:a,pathname:o,search:i}=ft(e,{relative:t}),l=o;return r!=="/"&&(l=o==="/"?r:Le([r,o])),n.createHref({pathname:l,search:i,hash:a})}function dt(){return c.useContext(Nt)!=null}function xe(){return W(dt(),"useLocation() may be used only in the context of a <Router> component."),c.useContext(Nt).location}var Un="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function Hn(e){c.useContext(be).static||c.useLayoutEffect(e)}function zn(){let{isDataRoute:e}=c.useContext(Se);return e?di():Zo()}function Zo(){W(dt(),"useNavigate() may be used only in the context of a <Router> component.");
27let e=c.useContext(Ye),{basename:t,navigator:r}=c.useContext(be),{matches:n}=c.useContext(Se),{pathname:a}=xe(),o=JSON.stringify(hr(n)),i=c.useRef(!1);return Hn(()=>{i.current=!0}),c.useCallback((s,u={})=>{if(ae(i.current,Un),!i.current)return;if(typeof s=="number"){r.go(s);return}let f=mr(s,JSON.parse(o),a,u.relative==="path");e==null&&t!=="/"&&(f.pathname=f.pathname==="/"?t:Le([t,f.pathname])),(u.replace?r.replace:r.push)(f,u.state,u)},[t,r,o,a,e])}var ei=c.createContext(null);function ti(e){let t=c.useContext(Se).outlet;return c.useMemo(()=>t&&c.createElement(ei.Provider,{value:e},t),[t,e])}function Bn(){let{matches:e}=c.useContext(Se),t=e[e.length-1];return t?t.params:{}}function ft(e,{relative:t}={}){let{matches:r}=c.useContext(Se),{pathname:n}=xe(),a=JSON.stringify(hr(r));return c.useMemo(()=>mr(e,JSON.parse(a),n,t==="path"),[e,a,n,t])}function ri(e,t,r,n,a){W(dt(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:o}=c.useContext(be),{matches:i}=c.useContext(Se),l=i[i.length-1],s=l?l.params:{},u=l?l.pathname:"/",f=l?l.pathnameBase:"/",h=l&&l.route;{let b=h&&h.path||"";Jn(u,!h||b.endsWith("*")||b.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${u}" (under <Route path="${b}">) 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.
28
29Please change the parent <Route path="${b}"> to <Route path="${b==="/"?"*":`${b}/*`}">.`)}let p=xe(),g;g=p;let R=g.pathname||"/",P=R;if(f!=="/"){let b=f.replace(/^\//,"").split("/");P="/"+R.replace(/^\//,"").split("/").slice(b.length).join("/")}let E=Oe(e,{pathname:P});return ae(h||E!=null,`No routes matched location "${g.pathname}${g.search}${g.hash}" `),ae(E==null||E[E.length-1].route.element!==void 0||E[E.length-1].route.Component!==void 0||E[E.length-1].route.lazy!==void 0,`Matched leaf route at location "${g.pathname}${g.search}${g.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`),li(E&&E.map(b=>Object.assign({},b,{params:Object.assign({},s,b.params),pathname:Le([f,o.encodeLocation?o.encodeLocation(b.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:b.pathname]),pathnameBase:b.pathnameBase==="/"?f:Le([f,o.encodeLocation?o.encodeLocation(b.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:b.pathnameBase])})),i,r,n,a)}function ni(){let e=Cr(),t=We(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null,n="rgba(200,200,200, 0.5)",a={padding:"0.5rem",backgroundColor:n},o={padding:"2px 4px",backgroundColor:n},i=null;return console.error("Error handled by React Router default ErrorBoundary:",e),i=c.createElement(c.Fragment,null,c.createElement("p",null,"💿 Hey developer 👋"),c.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",c.createElement("code",{style:o},"ErrorBoundary")," or"," ",c.createElement("code",{style:o},"errorElement")," prop on your route.")),c.createElement(c.Fragment,null,c.createElement("h2",null,"Unexpected Application Error!"),c.createElement("h3",{style:{fontStyle:"italic"}},t),r?c.createElement("pre",{style:a},r):null,i)}var ai=c.createElement(ni,null),oi=class extends c.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.unstable_onError?this.props.unstable_onError(e,t):console.error("React Router caught the following error during render",e)}render(){return this.state.error!==void 0?c.createElement(Se.Provider,{value:this.props.routeContext},c.createElement(br.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};function ii({routeContext:e,match:t,children:r}){let n=c.useContext(Ye);return n&&n.static&&n.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(n.staticContext._deepestRenderedBoundaryId=t.route.id),c.createElement(Se.Provider,{value:e},r)}function li(e,t=[],r=null,n=null,a=null){if(e==null){if(!r)return null;if(r.errors)e=r.matches;else if(t.length===0&&!r.initialized&&r.matches.length>0)e=r.matches;else return null}let o=e,i=r?.errors;if(i!=null){let u=o.findIndex(f=>f.route.id&&i?.[f.route.id]!==void 0);W(u>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(i).join(",")}`),o=o.slice(0,Math.min(o.length,u+1))}let l=!1,s=-1;if(r)for(let u=0;u<o.length;u++){let f=o[u];if((f.route.HydrateFallback||f.route.hydrateFallbackElement)&&(s=u),f.route.id){let{loaderData:h,errors:p}
29=r,g=f.route.loader&&!h.hasOwnProperty(f.route.id)&&(!p||p[f.route.id]===void 0);if(f.route.lazy||g){l=!0,s>=0?o=o.slice(0,s+1):o=[o[0]];break}}}return o.reduceRight((u,f,h)=>{let p,g=!1,R=null,P=null;r&&(p=i&&f.route.id?i[f.route.id]:void 0,R=f.route.errorElement||ai,l&&(s<0&&h===0?(Jn("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),g=!0,P=null):s===h&&(g=!0,P=f.route.hydrateFallbackElement||null)));let E=t.concat(o.slice(0,h+1)),S=()=>{let b;return p?b=R:g?b=P:f.route.Component?b=c.createElement(f.route.Component,null):f.route.element?b=f.route.element:b=u,c.createElement(ii,{match:f,routeContext:{outlet:u,matches:E,isDataRoute:r!=null},children:b})};return r&&(f.route.ErrorBoundary||f.route.errorElement||h===0)?c.createElement(oi,{location:r.location,revalidation:r.revalidation,component:R,error:p,children:S(),routeContext:{outlet:null,matches:E,isDataRoute:!0},unstable_onError:n}):S()},null)}function Sr(e){return`${e} must be used within a data router.  See https://reactrouter.com/en/main/routers/picking-a-router.`}function Wn(e){let t=c.useContext(Ye);return W(t,Sr(e)),t}function Ve(e){let t=c.useContext(Qe);return W(t,Sr(e)),t}function si(e){let t=c.useContext(Se);return W(t,Sr(e)),t}function ht(e){let t=si(e),r=t.matches[t.matches.length-1];return W(r.route.id,`${e} can only be used on routes that contain a unique "id"`),r.route.id}function ui(){return ht("useRouteId")}function ci(){return Ve("useNavigation").navigation}function Gl(){let e=Wn("useRevalidator"),t=Ve("useRevalidator"),r=c.useCallback(async()=>{await e.router.revalidate()},[e.router]);return c.useMemo(()=>({revalidate:r,state:t.revalidation}),[r,t.revalidation])}function xr(){let{matches:e,loaderData:t}=Ve("useMatches");return c.useMemo(()=>e.map(r=>xn(r,t)),[e,t])}function Yn(){let e=Ve("useLoaderData"),t=ht("useLoaderData");return e.loaderData[t]}function Kl(e){return Ve("useRouteLoaderData").loaderData[e]}function Vn(){let e=Ve("useActionData"),t=ht("useLoaderData");return e.actionData?e.actionData[t]:void 0}function Cr(){let e=c.useContext(br),t=Ve("useRouteError"),r=ht("useRouteError");return e!==void 0?e:t.errors?.[r]}function di(){let{router:e}=Wn("useNavigate"),t=ht("useNavigate"),r=c.useRef(!1);return Hn(()=>{r.current=!0}),c.useCallback(async(a,o={})=>{ae(r.current,Un),r.current&&(typeof a=="number"?e.navigate(a):await e.navigate(a,{fromRouteId:t,...o}))},[e,t])}var pn={};function Jn(e,t,r){!t&&!pn[e]&&(pn[e]=!0,ae(!1,r))}var yn={};function ir(e,t){!e&&!yn[t]&&(yn[t]=!0,console.warn(t))}function Xl(e){let t={hasErrorBoundary:e.hasErrorBoundary||e.ErrorBoundary!=null||e.errorElement!=null};return e.Component&&(e.element&&ae(!1,"You should not include both `Component` and `element` on your route - `Component` will be used."),Object.assign(t,{element:c.createElement(e.Component),Component:void 0})),e.HydrateFallback&&(e.hydrateFallbackElement&&ae(!1,"You should not include both `HydrateFallback` and `hydrateFallbackElement` on your route - `HydrateFallback` will be used."),Object.assign(t,{hydrateFallbackElement:c.createElement(e.HydrateFallback),HydrateFallback:void 0})),e.ErrorBoundary&&(e.errorElement&&ae(!1,"You should not include both `ErrorBoundary` and `errorElement` on your route - `ErrorBoundary` will be used."),Object.assign(t,{errorElement:c.createElement(e.ErrorBoundary),ErrorBoundary:void 0})),t}var ql=["HydrateFallback","hydrateFallbackElement"],fi=class{constructor(){this.status="pending",this.promise=new Promise((e,t)=>{this.resolve=r=>{this.status==="pending"&&(this.status="resolved",e(r))},this.reject=r=>{this.status==="pending"&&(this.status="rejected",t(r))}})}};function Ql({router:e,flushSync:t,unstable_onError:r}){let[n,a]=c.useState(e.state),[o,i]=c.useState(),[l,s]=c.useState({isTransitioning:!1}),[u,f]=c.useState(),[h,p]=c.useState(),[g,R]=c.useState(),P=c.useRef(new Map),E=c.useCallback(x=>{a(_=>(x.errors&&r&&Object.entries(x.errors).forEach(([v,H])=>{_.errors?.[v]!==H&&r(H)}),x))},[r]),S=c.useCallback((x,{deletedFetchers:_,flushSync:v,viewTransitionOpts:H})=>
29{x.fetchers.forEach((z,ee)=>{z.data!==void 0&&P.current.set(ee,z.data)}),_.forEach(z=>P.current.delete(z)),ir(v===!1||t!=null,'You provided the `flushSync` option to a router update, but you are not using the `<RouterProvider>` from `react-router/dom` so `ReactDOM.flushSync()` is unavailable.  Please update your app to `import { RouterProvider } from "react-router/dom"` and ensure you have `react-dom` installed as a dependency to use the `flushSync` option.');let J=e.window!=null&&e.window.document!=null&&typeof e.window.document.startViewTransition=="function";if(ir(H==null||J,"You provided the `viewTransition` option to a router update, but you do not appear to be running in a DOM environment as `window.startViewTransition` is not available."),!H||!J){t&&v?t(()=>E(x)):c.startTransition(()=>E(x));return}if(t&&v){t(()=>{h&&(u&&u.resolve(),h.skipTransition()),s({isTransitioning:!0,flushSync:!0,currentLocation:H.currentLocation,nextLocation:H.nextLocation})});let z=e.window.document.startViewTransition(()=>{t(()=>E(x))});z.finished.finally(()=>{t(()=>{f(void 0),p(void 0),i(void 0),s({isTransitioning:!1})})}),t(()=>p(z));return}h?(u&&u.resolve(),h.skipTransition(),R({state:x,currentLocation:H.currentLocation,nextLocation:H.nextLocation})):(i(x),s({isTransitioning:!0,flushSync:!1,currentLocation:H.currentLocation,nextLocation:H.nextLocation}))},[e.window,t,h,u,E]);c.useLayoutEffect(()=>e.subscribe(S),[e,S]),c.useEffect(()=>{l.isTransitioning&&!l.flushSync&&f(new fi)},[l]),c.useEffect(()=>{if(u&&o&&e.window){let x=o,_=u.promise,v=e.window.document.startViewTransition(async()=>{c.startTransition(()=>E(x)),await _});v.finished.finally(()=>{f(void 0),p(void 0),i(void 0),s({isTransitioning:!1})}),p(v)}},[o,u,e.window,E]),c.useEffect(()=>{u&&o&&n.location.key===o.location.key&&u.resolve()},[u,h,n.location,o]),c.useEffect(()=>{!l.isTransitioning&&g&&(i(g.state),s({isTransitioning:!0,flushSync:!1,currentLocation:g.currentLocation,nextLocation:g.nextLocation}),R(void 0))},[l.isTransitioning,g]);let b=c.useMemo(()=>({createHref:e.createHref,encodeLocation:e.encodeLocation,go:x=>e.navigate(x),push:(x,_,v)=>e.navigate(x,{state:_,preventScrollReset:v?.preventScrollReset}),replace:(x,_,v)=>e.navigate(x,{replace:!0,state:_,preventScrollReset:v?.preventScrollReset})}),[e]),T=e.basename||"/",D=c.useMemo(()=>({router:e,navigator:b,static:!1,basename:T,unstable_onError:r}),[e,b,T,r]);return c.createElement(c.Fragment,null,c.createElement(Ye.Provider,{value:D},c.createElement(Qe.Provider,{value:n},c.createElement(Rr.Provider,{value:P.current},c.createElement(Er.Provider,{value:l},c.createElement(pi,{basename:T,location:n.location,navigationType:n.historyAction,navigator:b},c.createElement(hi,{routes:e.routes,future:e.future,state:n,unstable_onError:r})))))),null)}var hi=c.memo(mi);function mi({routes:e,future:t,state:r,unstable_onError:n}){return ri(e,void 0,r,n,t)}function Zl(e){return ti(e.context)}function pi({basename:e="/",children:t=null,location:r,navigationType:n="POP",navigator:a,static:o=!1}){W(!dt(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let i=e.replace(/^\/*/,"/"),l=c.useMemo(()=>({basename:i,navigator:a,static:o,future:{}}),[i,a,o]);typeof r=="string"&&(r=ke(r));let{pathname:s="/",search:u="",hash:f="",state:h=null,key:p="default"}=r,g=c.useMemo(()=>{let R=Ee(s,i);return R==null?null:{location:{pathname:R,search:u,hash:f,state:h,key:p},navigationType:n}},[i,s,u,f,h,p,n]);return ae(g!=null,`<Router basename="${i}"> is not able to match the URL "${s}${u}${f}" because it does not start with the basename, so the <Router> won't render anything.`),g==null?null:c.createElement(be.Provider,{value:l},c.createElement(Nt.Provider,{children:t,value:g}))}function yi(){return{params:Bn(),loaderData:Yn(),actionData:Vn(),matches:xr()}}function es(e){return function(){const r=yi();return c.createElement(e,r)}}function vi(){return{params:Bn(),loaderData:Yn(),actionData:Vn(),error:Cr()}}function ts(e){return function(){const r=vi();return c.createElement(e,r)}}var Mt="get",Tt="application/x-www-form-urlencoded";function kt(e){return e!=null&&typeof e.tagName=="string"}function gi(e){return kt(e)&&e.tagName.toLowerCase()==="button"}function wi(e){return kt(e)&&e.tagName.toLowerCase()==="form"}function Ei(e){return kt(e)&&e.tagName.toLowerCase()==="input"}function Ri(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function bi(e,t){return e.button===0&&(!t||t==="_self")&&!Ri(e)}function lr(e=""){return new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,r)=>{let n=e[r];return t.concat(Array.isArray(n)?n.map(a=>[r,a]):[[r,n]])},[]))}function Si(e,t){let r=lr(e);return t&&t.forEach((n,a)=>
29{r.has(a)||t.getAll(a).forEach(o=>{r.append(a,o)})}),r}var bt=null;function xi(){if(bt===null)try{new FormData(document.createElement("form"),0),bt=!1}catch{bt=!0}return bt}var Ci=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function qt(e){return e!=null&&!Ci.has(e)?(ae(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${Tt}"`),null):e}function Li(e,t){let r,n,a,o,i;if(wi(e)){let l=e.getAttribute("action");n=l?Ee(l,t):null,r=e.getAttribute("method")||Mt,a=qt(e.getAttribute("enctype"))||Tt,o=new FormData(e)}else if(gi(e)||Ei(e)&&(e.type==="submit"||e.type==="image")){let l=e.form;if(l==null)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let s=e.getAttribute("formaction")||l.getAttribute("action");if(n=s?Ee(s,t):null,r=e.getAttribute("formmethod")||l.getAttribute("method")||Mt,a=qt(e.getAttribute("formenctype"))||qt(l.getAttribute("enctype"))||Tt,o=new FormData(l,e),!xi()){let{name:u,type:f,value:h}=e;if(f==="image"){let p=u?`${u}.`:"";o.append(`${p}x`,"0"),o.append(`${p}y`,"0")}else u&&o.append(u,h)}}else{if(kt(e))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');r=Mt,n=null,a=Tt,i=e}return o&&a==="text/plain"&&(i=o,o=void 0),{action:n,method:r.toLowerCase(),encType:a,formData:o,body:i}}var Pi=-1,Mi=-2,Ti=-3,Di=-4,_i=-5,Oi=-6,Ai=-7,Fi="B",Ni="D",Gn="E",ki="M",Ii="N",Kn="P",$i="R",ji="S",Ui="Y",Hi="U",zi="Z",Xn=class{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}};function Bi(){const e=new TextDecoder;let t="";return new TransformStream({transform(r,n){const a=e.decode(r,{stream:!0}),o=(t+a).split(`
30`);t=o.pop()||"";for(const i of o)n.enqueue(i)},flush(r){t&&r.enqueue(t)}})}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var Qt=typeof window<"u"?window:typeof globalThis<"u"?globalThis:void 0;function sr(e){const{hydrated:t,values:r}=this;if(typeof e=="number")return vn.call(this,e);if(!Array.isArray(e)||!e.length)throw new SyntaxError;const n=r.length;for(const a of e)r.push(a);return t.length=r.length,vn.call(this,n)}function vn(e){const{hydrated:t,values:r,deferred:n,plugins:a}=this;let o;const i=[[e,s=>{o=s}]];let l=[];for(;i.length>0;){const[s,u]=i.pop();switch(s){case Ai:u(void 0);continue;case _i:u(null);continue;case Mi:u(NaN);continue;case Oi:u(1/0);continue;case Ti:u(-1/0);continue;case Di:u(-0);continue}if(t[s]){u(t[s]);continue}const f=r[s];if(!f||typeof f!="object"){t[s]=f,u(f);continue}if(Array.isArray(f))if(typeof f[0]=="string"){const[h,p,g]=f;switch(h){case Ni:u(t[s]=new Date(p));continue;case Hi:u(t[s]=new URL(p));continue;case Fi:u(t[s]=BigInt(p));continue;case $i:u(t[s]=new RegExp(p,g));continue;case Ui:u(t[s]=Symbol.for(p));continue;case ji:const R=new Set;t[s]=R;for(let D=f.length-1;D>0;D--)i.push([f[D],x=>{R.add(x)}]);u(R);continue;case ki:const P=new Map;t[s]=P;for(let D=f.length-2;D>0;D-=2){const x=[];i.push([f[D+1],_=>{x[1]=_}]),i.push([f[D],_=>{x[0]=_}]),l.push(()=>{P.set(x[0],x[1])})}u(P);continue;case Ii:const E=Object.create(null);t[s]=E;for(const D of Object.keys(p).reverse()){const x=[];i.push([p[D],_=>{x[1]=_}]),i.push([Number(D.slice(1)),_=>{x[0]=_}]),l.push(()=>{E[x[0]]=x[1]})}u(E);continue;case Kn:if(t[p])u(t[s]=t[p]);else{const D=new Xn;n[p]=D,u(t[s]=D.promise)}continue;case Gn:const[,S,b]=f;let T=b&&Qt&&Qt[b]?new Qt[b](S):new Error(S);t[s]=T,u(T);continue;case zi:u(t[s]=t[p]);continue;default:if(Array.isArray(a)){const D=[],x=f.slice(1);for(let _=0;_<x.length;_++){const v=x[_];i.push([v,H=>{D[_]=H}])}l.push(()=>{for(const _ of a){const v=_(f[0],...D);if(v){u(t[s]=v.value);return}}throw new SyntaxError});continue}throw new SyntaxError}}else{const h=[];t[s]=h;for(let p=0;p<f.length;p++){const g=f[p];g!==Pi&&i.push([g,R=>{h[p]=R}])}u(h);continue}else{const h={};t[s]=h;for(const p of Object.keys(f).reverse()){const g=[];i.push([f[p],R=>{g[1]=R}]),i.push([Number(p.slice(1)),R=>{g[0]=R}]),l.push(()=>{h[g[0]]=g[1]})}u(h);continue}}for(;l.length>0;)l.pop()();return o}async function Wi(e,t){const{plugins:r}=t??{},n=new Xn,a=e.pipeThrough(Bi()).getReader(),o={values:[],hydrated:[],deferred:{},plugins:r},i=await Yi.call(o,a);let l=n.promise;
30return i.done?n.resolve():l=Vi.call(o,a).then(n.resolve).catch(s=>{for(const u of Object.values(o.deferred))u.reject(s);n.reject(s)}),{done:l.then(()=>a.closed),value:i.value}}async function Yi(e){const t=await e.read();if(!t.value)throw new SyntaxError;let r;try{r=JSON.parse(t.value)}catch{throw new SyntaxError}return{done:t.done,value:sr.call(this,r)}}async function Vi(e){let t=await e.read();for(;!t.done;){if(!t.value)continue;const r=t.value;switch(r[0]){case Kn:{const n=r.indexOf(":"),a=Number(r.slice(1,n)),o=this.deferred[a];if(!o)throw new Error(`Deferred ID ${a} not found in stream`);const i=r.slice(n+1);let l;try{l=JSON.parse(i)}catch{throw new SyntaxError}const s=sr.call(this,l);o.resolve(s);break}case Gn:{const n=r.indexOf(":"),a=Number(r.slice(1,n)),o=this.deferred[a];if(!o)throw new Error(`Deferred ID ${a} not found in stream`);const i=r.slice(n+1);let l;try{l=JSON.parse(i)}catch{throw new SyntaxError}const s=sr.call(this,l);o.reject(s);break}default:throw new SyntaxError}t=await e.read()}}async function Ji(e){let t={signal:e.signal};if(e.method!=="GET"){t.method=e.method;let r=e.headers.get("Content-Type");r&&/\bapplication\/json\b/.test(r)?(t.headers={"Content-Type":r},t.body=JSON.stringify(await e.json())):r&&/\btext\/plain\b/.test(r)?(t.headers={"Content-Type":r},t.body=await e.text()):r&&/\bapplication\/x-www-form-urlencoded\b/.test(r)?t.body=new URLSearchParams(await e.text()):t.body=await e.formData()}return t}var Gi={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},Ki=/[&><\u2028\u2029]/g;function Xi(e){return e.replace(Ki,t=>Gi[t])}function ye(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}var ur=Symbol("SingleFetchRedirect"),qn=class extends Error{},qi=202,Qi=new Set([100,101,204,205]);function rs(e,t,r,n,a){let o=Zi(e,i=>{let l=t.routes[i.route.id];ye(l,"Route not found in manifest");let s=r[i.route.id];return{hasLoader:l.hasLoader,hasClientLoader:l.hasClientLoader,hasS
30houldRevalidate:!!s?.shouldRevalidate}},il,n,a);return async i=>i.runClientMiddleware(o)}function Zi(e,t,r,n,a,o=()=>!0){return async i=>{let{request:l,matches:s,fetcherKey:u}=i,f=e();if(l.method!=="GET")return el(i,r,a);let h=s.some(p=>{let{hasLoader:g,hasClientLoader:R}=t(p);return p.unstable_shouldCallHandler()&&g&&!R});return!n&&!h?tl(i,t,r,a):u?al(i,r,a):rl(i,f,t,r,n,a,o)}}async function el(e,t,r){let n=e.matches.find(i=>i.unstable_shouldCallHandler());ye(n,"No action match found");let a,o=await n.resolve(async i=>await i(async()=>{let{data:s,status:u}=await t(e,r,[n.route.id]);return a=u,ct(s,n.route.id)}));return gr(o.result)||We(o.result)||or(o.result)?{[n.route.id]:o}:{[n.route.id]:{type:o.type,result:fo(o.result,a)}}}async function tl(e,t,r,n){let a=e.matches.filter(i=>i.unstable_shouldCallHandler()),o={};return await Promise.all(a.map(i=>i.resolve(async l=>{try{let{hasClientLoader:s}=t(i),u=i.route.id,f=s?await l(async()=>{let{data:h}=await r(e,n,[u]);return ct(h,u)}):await l();o[i.route.id]={type:"data",result:f}}catch(s){o[i.route.id]={type:"error",result:s}}}))),o}async function rl(e,t,r,n,a,o,i=()=>!0){let l=new Set,s=!1,u=e.matches.map(()=>gn()),f=gn(),h={},p=Promise.all(e.matches.map(async(R,P)=>R.resolve(async E=>{u[P].resolve();let S=R.route.id,{hasLoader:b,hasClientLoader:T,hasShouldRevalidate:D}=r(R),x=!R.unstable_shouldRevalidateArgs||R.unstable_shouldRevalidateArgs.actionStatus==null||R.unstable_shouldRevalidateArgs.actionStatus<400;if(!R.unstable_shouldCallHandler(x)){s||(s=R.unstable_shouldRevalidateArgs!=null&&b&&D===!0);return}if(i(R)&&T){b&&(s=!0);try{let v=await E(async()=>{let{data:H}=await n(e,o,[S]);return ct(H,S)});h[S]={type:"data",result:v}}catch(v){h[S]={type:"error",result:v}}return}b&&l.add(S);try{let v=await E(async()=>{let H=await f.promise;return ct(H,S)});h[S]={type:"data",result:v}}catch(v){h[S]={type:"error",result:v}}})));if(await Promise.all(u.map(R=>R.promise)),(!t.state.initialized&&t.state.navigation.state==="idle"||l.size===0)&&!window.__reactRouterHdrActive)f.resolve({routes:{}});else{let R=a&&s&&l.size>0?[...l.keys()]:void 0;try{let P=await n(e,o,R);f.resolve(P.data)}catch(P){f.reject(P)}}return await p,await nl(f.promise,e.matches,l,h),h}async function nl(e,t,r,n){try{let a,o=await e;if("routes"in o){for(let i of t)if(i.route.id in o.routes){let l=o.routes[i.route.id];if("error"in l){a=l.error,n[i.route.id]?.result==null&&(n[i.route.id]={type:"error",result:a});break}}}a!==void 0&&Array.from(r.values()).forEach(i=>{n[i].result instanceof qn&&(n[i].result=a)})}catch{}}async function al(e,t,r){let n=e.matches.find(i=>i.unstable_shouldCallHandler());ye(n,"No fetcher match found");let a=n.route.id,o=await n.resolve(async i=>i(async()=>{let{data:l}=await t(e,r,[a]);return ct(l,a)}));return{[n.route.id]:o}}function ol(e){let t=e.searchParams.getAll("index");e.searchParams.delete("index");let r=[];for(let n of t)n&&r.push(n);for(let n of r)e.searchParams.append("index",n);return e}function Qn(e,t,r){let n=typeof e=="string"?new URL(e,typeof window>"u"?"server://singlefetch/":window.location.origin):e;return n.pathname==="/"?n.pathname=`_root.${r}`:t&&Ee(n.pathname,t)==="/"?n.pathname=`${t.replace(/\/$/,"")}/_root.${r}`:n.pathname=`${n.pathname.replace(/\/$/,"")}.${r}`,n}async function il(e,t,r){let{request:n}=e,a=Qn(n.url,t,"data");n.method==="GET"&&(a=ol(a),r&&a.searchParams.set("_routes",r.join(",")));let o=await fetch(a,await Ji(n));if(o.status>=400&&!o.headers.has("X-Remix-Response"))throw new Be(o.status,o.statusText,await o.text());if(o.status===204&&o.headers.has("X-Remix-Redirect"))return{status:qi,data:{redirect:{redirect:o.headers.get("X-Remix-Redirect"),status:Number(o.headers.get("X-Remix-Status")||"302"),revalidate:o.headers.get("X-Remix-Revalidate")==="true",reload:o.headers.get("X-Remix-Reload-Document")==="true",replace:o.headers.get("X-Remix-Replace")==="true"}}};if(Qi.has(o.status)){let i={};return r&&n.method!=="GET"&&(i[r[0]]={data:void 0}),{status:o.status,data:{routes:i}}}ye(o.body,"No response body to decode");try{let i=await ll(o.body,window),l;if(n.method==="GET"){let s=i.value;ur in s?l={redirect:s[ur]}:l={routes:s}}else{let s=i.value,u=r?.[0];ye(u,"No routeId found for single fetch call decoding"),"redirect"in s?l={redirect:s}:l={routes:{[u]:s}}}return{status:o.status,data:l}}catch{throw new Error("Unable to decode turbo-stream response")}}function ll(e,t){return Wi(e,{plugins:[(r,...n)=>{if(r==="SanitizedError"){let[a,o,i]=n,l=Error;a&&a in t&&typeof t[a]=="function"&&(l=t[a]);let s=new l(o);return s.stack=i,{value:s}}if(r==="ErrorResponse"){let[a,o,i]=n;return{value:new Be(o,i,a)}}if(r==="SingleFetchRedirect")return{value:{[ur]:n[0]}};if(r==="SingleFetchClassInstance")return{value:n[0]};if(r==="SingleFetchFallback")return{value:void 0}}]})}function ct(e,t){if("redirect"in e){let{redirect:n,revalidate:a,reload:o,replace:i,status:l}=e.redirect;throw ho(n,{status:l,headers:{...a?{"X-Remix-Revalidate":"yes"}:null,...o?{"X-Remix-Reload-Document":"yes"}:null,...i?{"X-Remix-Replace":"yes"}:null}})}let r=e.routes[t];if(r==null)throw new qn(`No result found for routeId "${t}"`);if("error"in r)throw r.error;if("data"in r)return r.data;throw new Error(`Invalid response found for routeId "${t}"`)}function gn(){let e,t,r=new Promise((n,a)=>{e=async o=>
30{n(o);try{await r}catch{}},t=async o=>{a(o);try{await r}catch{}}});return{promise:r,resolve:e,reject:t}}async function Zn(e,t){if(e.id in t)return t[e.id];try{let r=await import(e.module);return t[e.id]=r,r}catch(r){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(r),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function sl(e,t,r){let n=e.map(o=>{let i=t[o.route.id],l=r.routes[o.route.id];return[l&&l.css?l.css.map(s=>({rel:"stylesheet",href:s})):[],i?.links?.()||[]]}).flat(2),a=Pr(e,r);return na(n,a)}function ea(e){return e.css?e.css.map(t=>({rel:"stylesheet",href:t})):[]}async function ul(e){if(!e.css)return;let t=ea(e);await Promise.all(t.map(ra))}async function ta(e,t){if(!e.css&&!t.links||!ml())return;let r=[];if(e.css&&r.push(...ea(e)),t.links&&r.push(...t.links()),r.length===0)return;let n=[];for(let a of r)!Lr(a)&&a.rel==="stylesheet"&&n.push({...a,rel:"preload",as:"style"});await Promise.all(n.map(ra))}async function ra(e){return new Promise(t=>{if(e.media&&!window.matchMedia(e.media).matches||document.querySelector(`link[rel="stylesheet"][href="${e.href}"]`))return t();let r=document.createElement("link");Object.assign(r,e);function n(){document.head.contains(r)&&document.head.removeChild(r)}r.onload=()=>{n(),t()},r.onerror=()=>{n(),t()},document.head.appendChild(r)})}function Lr(e){return e!=null&&typeof e.page=="string"}function cl(e){return e==null?!1:e.href==null?e.rel==="preload"&&typeof e.imageSrcSet=="string"&&typeof e.imageSizes=="string":typeof e.rel=="string"&&typeof e.href=="string"}async function dl(e,t,r){let n=await Promise.all(e.map(async a=>{let o=t.routes[a.route.id];if(o){let i=await Zn(o,r);return i.links?i.links():[]}return[]}));return na(n.flat(1).filter(cl).filter(a=>a.rel==="stylesheet"||a.rel==="preload").map(a=>a.rel==="stylesheet"?{...a,rel:"prefetch",as:"style"}:{...a,rel:"prefetch"}))}function wn(e,t,r,n,a,o){let i=(s,u)=>r[u]?s.route.id!==r[u].route.id:!0,l=(s,u)=>r[u].pathname!==s.pathname||r[u].route.path?.endsWith("*")&&r[u].params["*"]!==s.params["*"];return o==="assets"?t.filter((s,u)=>i(s,u)||l(s,u)):o==="data"?t.filter((s,u)=>{let f=n.routes[s.route.id];if(!f||!f.hasLoader)return!1;if(i(s,u)||l(s,u))return!0;if(s.route.shouldRevalidate){let h=s.route.shouldRevalidate({currentUrl:new URL(a.pathname+a.search+a.hash,window.origin),currentParams:r[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:s.params,defaultShouldRevalidate:!0});if(typeof h=="boolean")return h}return!0}):[]}function Pr(e,t,{includeHydrateFallback:r}={}){return fl(e.map(n=>{let a=t.routes[n.route.id];if(!a)return[];let o=[a.module];return a.clientActionModule&&(o=o.concat(a.clientActionModule)),a.clientLoaderModule&&(o=o.concat(a.clientLoaderModule)),r&&a.hydrateFallbackModule&&(o=o.concat(a.hydrateFallbackModule)),a.imports&&(o=o.concat(a.imports)),o}).flat(1))}function fl(e){return[...new Set(e)]}function hl(e){let t={},r=Object.keys(e).sort();for(let n of r)t[n]=e[n];return t}function na(e,t){let r=new Set,n=new Set(t);return e.reduce((a,o)=>{if(t&&!Lr(o)&&o.as==="script"&&o.href&&n.has(o.href))return a;let l=JSON.stringify(hl(o));return r.has(l)||(r.add(l),a.push({key:l,link:o})),a},[])}var St;function ml(){if(St!==void 0)return St;let e=document.createElement("link");return St=e.relList.supports("preload"),e=null,St}function pl(){return c.createElement(cr,{title:"Loading...",renderScripts:!0},c.createElement("script",{dangerouslySetInnerHTML:{__html:`
31              console.log(
32                "💿 Hey developer 👋. You can provide a way better UX than this " +
33                "when your app is loading JS modules and/or running \`clientLoader\` " +
34                "functions. Check out https://reactrouter.com/start/framework/route-module#hydratefallback " +
35                "for more information."
36              );
37            `}}))}function aa(e){let t={};return Object.values(e).forEach(r=>{if(r){let n=r.parentId||"";t[n]||(t[n]=[]),t[n].push(r)}}),t}function yl(e,t,r){let n=oa(t),a=t.HydrateFallback&&(!r||e.id==="root")?t.HydrateFallback:e.id==="root"?pl:void 0,o=t.ErrorBoundary?t.ErrorBoundary:e.id==="root"?()=>c.createElement(sa,{error:Cr()}):void 0;return e.id==="root"&&t.Layout?{...n?{element:c.createElement(t.Layout,null,c.createElement(n,null))}:{Component:n},...o?{errorElement:c.createElement(t.Layout,null,c.createElement(o,null))}:{ErrorBoundary:o},...a?{hydrateFallbackElement:c.createElement(t.Layout,null,c.createElement(a,null))}:{HydrateFallback:a}}:{Component:n,ErrorBoundary:o,HydrateFallback:a}}function ns(e,t,r,n,a,o){return Mr(t,r,n,a,o,"",aa(t),e)}function xt(e,t){if(e==="loader"&&!t.hasLoader||e==="action"&&!t.hasAction){let n=`You are trying to call ${e==="action"?"serverAction()":"serverLoader()"} on a route that does not have a server ${e} (routeId: "${t.id}")`;throw console.error(n),new Be(400,"Bad Request",new Error(n),!0)}}function Zt(e,t){let r=e==="clientAction"?"a":"an",n=`Route "${t}" does not have ${r} ${e}, but you are trying to submit to it. To fix this, please add ${r} \`${e}\` function to the route`;throw console.error(n),new Be(405,"Method Not Allowed",new Error(n),!0)}function Mr(e,t,r,n,a,o="",i=aa(e),l){return(i[o]||[]).map(s=>{let u=t[s.id];function f(b){return ye(typeof b=="function","No single fetch function available for route handler"),b()}
37function h(b){return s.hasLoader?f(b):Promise.resolve(null)}function p(b){if(!s.hasAction)throw Zt("action",s.id);return f(b)}function g(b){import(b)}function R(b){b.clientActionModule&&g(b.clientActionModule),b.clientLoaderModule&&g(b.clientLoaderModule)}async function P(b){let T=t[s.id],D=T?ta(s,T):Promise.resolve();try{return b()}finally{await D}}let E={id:s.id,index:s.index,path:s.path};if(u){Object.assign(E,{...E,...yl(s,u,a),middleware:u.clientMiddleware,handle:u.handle,shouldRevalidate:En(E.path,u,s,n,l)});let b=r&&r.loaderData&&s.id in r.loaderData,T=b?r?.loaderData?.[s.id]:void 0,D=r&&r.errors&&s.id in r.errors,x=D?r?.errors?.[s.id]:void 0,_=l==null&&(u.clientLoader?.hydrate===!0||!s.hasLoader);E.loader=async({request:v,params:H,context:J,unstable_pattern:z},ee)=>{try{return await P(async()=>(ye(u,"No `routeModule` available for critical-route loader"),u.clientLoader?u.clientLoader({request:v,params:H,context:J,unstable_pattern:z,async serverLoader(){if(xt("loader",s),_){if(b)return T;if(D)throw x}return h(ee)}}):h(ee)))}finally{_=!1}},E.loader.hydrate=wl(s.id,u.clientLoader,s.hasLoader,a),E.action=({request:v,params:H,context:J,unstable_pattern:z},ee)=>P(async()=>{if(ye(u,"No `routeModule` available for critical-route action"),!u.clientAction){if(a)throw Zt("clientAction",s.id);return p(ee)}return u.clientAction({request:v,params:H,context:J,unstable_pattern:z,async serverAction(){return xt("action",s),p(ee)}})})}else{s.hasClientLoader||(E.loader=(D,x)=>P(()=>h(x))),s.hasClientAction||(E.action=(D,x)=>P(()=>{if(a)throw Zt("clientAction",s.id);return p(x)}));let b;async function T(){return b?await b:(b=(async()=>{(s.clientLoaderModule||s.clientActionModule)&&await new Promise(x=>setTimeout(x,0));let D=gl(s,t);return R(s),await D})(),await b)}E.lazy={loader:s.hasClientLoader?async()=>{let{clientLoader:D}=s.clientLoaderModule?await import(s.clientLoaderModule):await T();return ye(D,"No `clientLoader` export found"),(x,_)=>D({...x,async serverLoader(){return xt("loader",s),h(_)}})}:void 0,action:s.hasClientAction?async()=>{let D=s.clientActionModule?import(s.clientActionModule):T();R(s);let{clientAction:x}=await D;return ye(x,"No `clientAction` export found"),(_,v)=>x({..._,async serverAction(){return xt("action",s),p(v)}})}:void 0,middleware:s.hasClientMiddleware?async()=>{let{clientMiddleware:D}=s.clientMiddlewareModule?await import(s.clientMiddlewareModule):await T();return ye(D,"No `clientMiddleware` export found"),D}:void 0,shouldRevalidate:async()=>{let D=await T();return En(E.path,D,s,n,l)},handle:async()=>(await T()).handle,Component:async()=>(await T()).Component,ErrorBoundary:s.hasErrorBoundary?async()=>(await T()).ErrorBoundary:void 0}}let S=Mr(e,t,r,n,a,s.id,i,l);return S.length>0&&(E.children=S),E})}function En(e,t,r,n,a){if(a)return vl(r.id,t.shouldRevalidate,a);if(!n&&r.hasLoader&&!r.hasClientLoader){let o=e?Pn(e)[1].map(l=>l.paramName):[];const i=l=>o.some(s=>l.currentParams[s]!==l.nextParams[s]);if(t.shouldRevalidate){let l=t.shouldRevalidate;return s=>l({...s,defaultShouldRevalidate:i(s)})}else return l=>i(l)}if(n&&t.shouldRevalidate){let o=t.shouldRevalidate;return i=>o({...i,defaultShouldRevalidate:!0})}return t.shouldRevalidate}function vl(e,t,r){let n=!1;return a=>n?t?t(a):a.defaultShouldRevalidate:(n=!0,r.has(e))}async function gl(e,t){let r=Zn(e,t),n=ul(e),a=await r;return await Promise.all([n,ta(e,a)]),{Component:oa(a),ErrorBoundary:a.ErrorBoundary,clientMiddleware:a.clientMiddleware,clientAction:a.clientAction,clientLoader:a.clientLoader,handle:a.handle,links:a.links,meta:a.meta,shouldRevalidate:a.shouldRevalidate}}function oa(e){if(e.default==null)return;if(!(typeof e.default=="object"&&Object.keys(e.default).length===0))return e.default}function wl(e,t,r,n){return n&&e!=="root"||t!=null&&(t.hydrate===!0||r!==!0)}var Dt=new Set,El=1e3,At=new Set,Rl=7680;function Tr(e,t){return e.mode==="lazy"&&t===!0}function bl({sri:e,...t},r){let n=new Set(r.state.matches.map(l=>l.route.id)),a=r.state.location.pathname.split("/").filter(Boolean),o=["/"];for(a.pop();a.length>0;)o.push(`/${a.join("/")}`),a.pop();o.forEach(l=>{let s=Oe(r.routes,l,r.basename);
37s&&s.forEach(u=>n.add(u.route.id))});let i=[...n].reduce((l,s)=>Object.assign(l,{[s]:t.routes[s]}),{});return{...t,routes:i,sri:e?!0:void 0}}function as(e,t,r,n,a,o){if(Tr(n,r))return async({path:i,patch:l,signal:s,fetcherKey:u})=>{At.has(i)||await ia([i],u?window.location.href:i,e,t,r,a,o,n.manifestPath,l,s)}}function os(e,t,r,n,a,o){c.useEffect(()=>{if(!Tr(a,n)||window.navigator?.connection?.saveData===!0)return;function i(f){let h=f.tagName==="FORM"?f.getAttribute("action"):f.getAttribute("href");if(!h)return;let p=f.tagName==="A"?f.pathname:new URL(h,window.location.origin).pathname;At.has(p)||Dt.add(p)}async function l(){document.querySelectorAll("a[data-discover], form[data-discover]").forEach(i);let f=Array.from(Dt.keys()).filter(h=>At.has(h)?(Dt.delete(h),!1):!0);if(f.length!==0)try{await ia(f,null,t,r,n,o,e.basename,a.manifestPath,e.patchRoutes)}catch(h){console.error("Failed to fetch manifest patches",h)}}let s=Cl(l,100);l();let u=new MutationObserver(()=>s());return u.observe(document.documentElement,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["data-discover","href","action"]}),()=>u.disconnect()},[n,o,t,r,e,a])}function Sl(e,t){let r=e||"/__manifest";return t==null?r:`${t}${r}`.replace(/\/+/g,"/")}var er="react-router-manifest-version";async function ia(e,t,r,n,a,o,i,l,s,u){const f=new URLSearchParams;f.set("paths",e.sort().join(",")),f.set("version",r.version);let h=new URL(Sl(l,i),window.location.origin);if(h.search=f.toString(),h.toString().length>Rl){Dt.clear();return}let p;try{let E=await fetch(h,{signal:u});if(E.ok){if(E.status===204&&E.headers.has("X-Remix-Reload-Document")){if(!t){console.warn("Detected a manifest version mismatch during eager route discovery. The next navigation/fetch to an undiscovered route will result in a new document navigation to sync up with the latest manifest.");return}try{if(sessionStorage.getItem(er)===r.version){console.error("Unable to discover routes due to manifest version mismatch.");return}sessionStorage.setItem(er,r.version)}catch{}window.location.href=t,console.warn("Detected manifest version mismatch, reloading..."),await new Promise(()=>{})}else if(E.status>=400)throw new Error(await E.text())}else throw new Error(`${E.status} ${E.statusText}`);try{sessionStorage.removeItem(er)}catch{}p=await E.json()}catch(E){if(u?.aborted)return;throw E}let g=new Set(Object.keys(r.routes)),R=Object.values(p).reduce((E,S)=>(S&&!g.has(S.id)&&(E[S.id]=S),E),{});Object.assign(r.routes,R),e.forEach(E=>xl(E,At));let P=new Set;Object.values(R).forEach(E=>{E&&(!E.parentId||!R[E.parentId])&&P.add(E.parentId)}),P.forEach(E=>s(E||null,Mr(R,n,null,a,o,E)))}function xl(e,t){if(t.size>=El){let r=t.values().next().value;t.delete(r)}t.add(e)}function Cl(e,t){let r;return(...n)=>{window.clearTimeout(r),r=window.setTimeout(()=>e(...n),t)}}function Dr(){let e=c.useContext(Ye);return ye(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function It(){let e=c.useContext(Qe);return ye(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}var $t=c.createContext(void 0);$t.displayName="FrameworkContext";function Ze(){let e=c.useContext($t);return ye(e,"You must render this element inside a <HydratedRouter> element"),e}function Ll(e,t){let r=c.useContext($t),[n,a]=c.useState(!1),[o,i]=c.useState(!1),{onFocus:l,onBlur:s,onMouseEnter:u,onMouseLeave:f,onTouchStart:h}=t,p=c.useRef(null);c.useEffect(()=>{if(e==="render"&&i(!0),e==="viewport"){let P=S=>{S.forEach(b=>{i(b.isIntersecting)})},E=new IntersectionObserver(P,{threshold:.5});return p.current&&E.observe(p.current),()=>{E.disconnect()}}},[e]),c.useEffect(()=>{if(n){let P=setTimeout(()=>{i(!0)},100);return()=>{clearTimeout(P)}}},[n]);let g=()=>{a(!0)},R=()=>{a(!1),i(!1)};return r?e!=="intent"?[o,p,{}]:[o,p,{onFocus:it(l,g),onBlur:it(s,R),onMouseEnter:it(u,g),onMouseLeave:it(f,R),onTouchStart:it(h,g)}]:[!1,p,{}]}function it(e,t){return r=>{e&&e(r),r.defaultPrevented||t(r)}}function _r(e,t,r){if(r&&!Ft)return[e[0]];if(t){let n=e.findIndex(a=>t[a.route.id]!==void 0);return e.slice(0,n+1)}return e}var Rn="data-react-router-critical-css";function is({nonce:e}
37){let{isSpaMode:t,manifest:r,routeModules:n,criticalCss:a}=Ze(),{errors:o,matches:i}=It(),l=_r(i,o,t),s=c.useMemo(()=>sl(l,n,r),[l,n,r]);return c.createElement(c.Fragment,null,typeof a=="string"?c.createElement("style",{[Rn]:"",dangerouslySetInnerHTML:{__html:a}}):null,typeof a=="object"?c.createElement("link",{[Rn]:"",rel:"stylesheet",href:a.href,nonce:e}):null,s.map(({key:u,link:f})=>Lr(f)?c.createElement(la,{key:u,nonce:e,...f}):c.createElement("link",{key:u,nonce:e,...f})))}function la({page:e,...t}){let{router:r}=Dr(),n=c.useMemo(()=>Oe(r.routes,e,r.basename),[r.routes,e,r.basename]);return n?c.createElement(Ml,{page:e,matches:n,...t}):null}function Pl(e){let{manifest:t,routeModules:r}=Ze(),[n,a]=c.useState([]);return c.useEffect(()=>{let o=!1;return dl(e,t,r).then(i=>{o||a(i)}),()=>{o=!0}},[e,t,r]),n}function Ml({page:e,matches:t,...r}){let n=xe(),{manifest:a,routeModules:o}=Ze(),{basename:i}=Dr(),{loaderData:l,matches:s}=It(),u=c.useMemo(()=>wn(e,t,s,a,n,"data"),[e,t,s,a,n]),f=c.useMemo(()=>wn(e,t,s,a,n,"assets"),[e,t,s,a,n]),h=c.useMemo(()=>{if(e===n.pathname+n.search+n.hash)return[];let R=new Set,P=!1;if(t.forEach(S=>{let b=a.routes[S.route.id];!b||!b.hasLoader||(!u.some(T=>T.route.id===S.route.id)&&S.route.id in l&&o[S.route.id]?.shouldRevalidate||b.hasClientLoader?P=!0:R.add(S.route.id))}),R.size===0)return[];let E=Qn(e,i,"data");return P&&R.size>0&&E.searchParams.set("_routes",t.filter(S=>R.has(S.route.id)).map(S=>S.route.id).join(",")),[E.pathname+E.search]},[i,l,n,a,u,t,e,o]),p=c.useMemo(()=>Pr(f,a),[f,a]),g=Pl(f);return c.createElement(c.Fragment,null,h.map(R=>c.createElement("link",{key:R,rel:"prefetch",as:"fetch",href:R,...r})),p.map(R=>c.createElement("link",{key:R,rel:"modulepreload",href:R,...r})),g.map(({key:R,link:P})=>c.createElement("link",{key:R,nonce:r.nonce,...P})))}function ls(){let{isSpaMode:e,routeModules:t}=Ze(),{errors:r,matches:n,loaderData:a}=It(),o=xe(),i=_r(n,r,e),l=null;r&&(l=r[i[i.length-1].route.id]);let s=[],u=null,f=[];for(let h=0;h<i.length;h++){let p=i[h],g=p.route.id,R=a[g],P=p.params,E=t[g],S=[],b={id:g,data:R,loaderData:R,meta:[],params:p.params,pathname:p.pathname,handle:p.route.handle,error:l};if(f[h]=b,E?.meta?S=typeof E.meta=="function"?E.meta({data:R,loaderData:R,params:P,location:o,matches:f,error:l}):Array.isArray(E.meta)?[...E.meta]:E.meta:u&&(S=[...u]),S=S||[],!Array.isArray(S))throw new Error("The route at "+p.route.path+` returns an invalid value. All route meta functions must return an array of meta objects.
38
39To reference the meta function API, see https://remix.run/route/meta`);b.meta=S,f[h]=b,s=[...S],u=s}return c.createElement(c.Fragment,null,s.flat().map(h=>{if(!h)return null;if("tagName"in h){let{tagName:p,...g}=h;if(!Tl(p))return console.warn(`A meta object uses an invalid tagName: ${p}. Expected either 'link' or 'meta'`),null;let R=p;return c.createElement(R,{key:JSON.stringify(g),...g})}if("title"in h)return c.createElement("title",{key:"title"},String(h.title));if("charset"in h&&(h.charSet??(h.charSet=h.charset),delete h.charset),"charSet"in h&&h.charSet!=null)return typeof h.charSet=="string"?c.createElement("meta",{key:"charSet",charSet:h.charSet}):null;if("script:ld+json"in h)try{let p=JSON.stringify(h["script:ld+json"]);return c.createElement("script",{key:`script:ld+json:${p}`,type:"application/ld+json",dangerouslySetInnerHTML:{__html:Xi(p)}})}catch{return null}return c.createElement("meta",{key:JSON.stringify(h),...h})}))}function Tl(e){return typeof e=="string"&&/^(meta|link)$/.test(e)}var Ft=!1;function Dl(){Ft=!0}function _l(e){let{manifest:t,serverHandoffString:r,isSpaMode:n,renderMeta:a,routeDiscovery:o,ssr:i}=Ze(),{router:l,static:s,staticContext:u}=Dr(),{matches:f}=It(),h=Xo(),p=Tr(o,i);a&&(a.didRenderScripts=!0);let g=_r(f,null,n);c.useEffect(()=>{Dl()},[]);let R=c.useMemo(()=>{if(h)return null;let b=u?`window.__reactRouterContext = ${r};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());`:" ",T=s?`${t.hmr?.runtime?`import ${JSON.stringify(t.hmr.runtime)};`:""}${p?"":`import ${JSON.stringify(t.url)}`};
40${g.map((D,x)=>{let _=`route${x}`,v=t.routes[D.route.id];ye(v,`Route ${D.route.id} not found in manifest`);let{clientActionModule:H,clientLoaderModule:J,clientMiddlewareModule:z,hydrateFallbackModule:ee,module:ue}=v,ve=[...H?[{module:H,varName:`${_}_clientAction`}]:[],...J?[{module:J,varName:`${_}_clientLoader`}]:[],...z?[{module:z,varName:`${_}_clientMiddleware`}]:[],...ee?[{module:ee,varName:`${_}_HydrateFallback`}]:[],{module:ue,varName:`${_}_main`}];if(ve.length===1)return`import * as ${_} from ${JSON.stringify(ue)};`;let q=ve.map(oe=>`import * as ${oe.varName} from "${oe.module}";`).join(`
41`),X=`const ${_} = {${ve.map(oe=>`...${oe.varName}`).join(",")}};`;return[q,X].join(`
42`)}).join(`
43`)}
44  ${p?`window.__reactRouterManifest = ${JSON.stringify(bl(t,l),null,2)};`:""}
45  window.__reactRouterRouteModules = {${g.map((D,x)=>`${JSON.stringify(D.route.id)}:route${x}`).join(",")}};
46
47import(${JSON.stringify(t.entry.module)});`:" ";return c.createElement(c.Fragment,null,c.createElement("script",{...e,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:b},type:void 0}),c.createElement("script",{...e,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:T},type:"module",async:!0}))},[]),P=Ft||h?[]:Ol(t.entry.imports.concat(Pr(g,t,{includeHydrateFallback:!0}))),E=typeof t.sri=="object"?t.sri:{};return ir(!h,"The <Scripts /> element is a no-op when using RSC and can be safely removed."),Ft||h?null:c.
47createElement(c.Fragment,null,typeof t.sri=="object"?c.createElement("script",{"rr-importmap":"",type:"importmap",suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:JSON.stringify({integrity:E})}}):null,p?null:c.createElement("link",{rel:"modulepreload",href:t.url,crossOrigin:e.crossOrigin,integrity:E[t.url],suppressHydrationWarning:!0}),c.createElement("link",{rel:"modulepreload",href:t.entry.module,crossOrigin:e.crossOrigin,integrity:E[t.entry.module],suppressHydrationWarning:!0}),P.map(S=>c.createElement("link",{key:S,rel:"modulepreload",href:S,crossOrigin:e.crossOrigin,integrity:E[S],suppressHydrationWarning:!0})),R)}function Ol(e){return[...new Set(e)]}function Al(...e){return t=>{e.forEach(r=>{typeof r=="function"?r(t):r!=null&&(r.current=t)})}}var ss=class extends c.Component{constructor(e){super(e),this.state={error:e.error||null,location:e.location}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location?{error:e.error||null,location:e.location}:{error:e.error||t.error,location:t.location}}render(){return this.state.error?c.createElement(sa,{error:this.state.error,isOutsideRemixApp:!0}):this.props.children}};function sa({error:e,isOutsideRemixApp:t}){console.error(e);let r=c.createElement("script",{dangerouslySetInnerHTML:{__html:`
48        console.log(
49          "💿 Hey developer 👋. You can provide a way better UX than this when your app throws errors. Check out https://reactrouter.com/how-to/error-boundary for more information."
50        );
51      `}});if(We(e))return c.createElement(cr,{title:"Unhandled Thrown Response!"},c.createElement("h1",{style:{fontSize:"24px"}},e.status," ",e.statusText),r);let n;if(e instanceof Error)n=e;else{let a=e==null?"Unknown Error":typeof e=="object"&&"toString"in e?e.toString():JSON.stringify(e);n=new Error(a)}return c.createElement(cr,{title:"Application Error!",isOutsideRemixApp:t},c.createElement("h1",{style:{fontSize:"24px"}},"Application Error"),c.createElement("pre",{style:{padding:"2rem",background:"hsla(10, 50%, 50%, 0.1)",color:"red",overflow:"auto"}},n.stack),r)}function cr({title:e,renderScripts:t,isOutsideRemixApp:r,children:n}){let{routeModules:a}=Ze();return a.root?.Layout&&!r?n:c.createElement("html",{lang:"en"},c.createElement("head",null,c.createElement("meta",{charSet:"utf-8"}),c.createElement("meta",{name:"viewport",content:"width=device-width,initial-scale=1,viewport-fit=cover"}),c.createElement("title",null,e)),c.createElement("body",null,c.createElement("main",{style:{fontFamily:"system-ui, sans-serif",padding:"2rem"}},n,t?c.createElement(_l,null):null)))}var ua=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";try{ua&&(window.__reactRouterVersion="7.9.5")}catch{}var ca=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,da=c.forwardRef(function({onClick:t,discover:r="render",prefetch:n="none",relative:a,reloadDocument:o,replace:i,state:l,target:s,to:u,preventScrollReset:f,viewTransition:h,...p},g){let{basename:R}=c.useContext(be),P=typeof u=="string"&&ca.test(u),E,S=!1;if(typeof u=="string"&&P&&(E=u,ua))try{let J=new URL(window.location.href),z=u.startsWith("//")?new URL(J.protocol+u):new URL(u),ee=Ee(z.pathname,R);z.origin===J.origin&&ee!=null?u=ee+z.search+z.hash:S=!0}catch{ae(!1,`<Link to="${u}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}let b=Qo(u,{relative:a}),[T,D,x]=Ll(n,p),_=kl(u,{replace:i,state:l,target:s,preventScrollReset:f,relative:a,viewTransition:h});function v(J){t&&t(J),J.defaultPrevented||_(J)}let H=c.createElement("a",{...p,...x,href:E||b,onClick:S||o?t:v,ref:Al(g,D),target:s,"data-discover":!P&&r==="render"?"true":void 0});return T&&!P?c.createElement(c.Fragment,null,H,c.createElement(la,{page:b})):H});da.displayName="Link";var Fl=c.forwardRef(function({"aria-current":t="page",caseSensitive:r=!1,className:n="",end:a=!1,style:o,to:i,viewTransition:l,children:s,...u},f){let h=ft(i,{relative:u.relative}),p=xe(),g=c.useContext(Qe),{navigator:R,basename:P}=c.useContext(be),E=g!=null&&zl(h)&&l===!0,S=R.encodeLocation?R.encodeLocation(h).pathname:h.pathname,b=p.pathname,T=g&&g.navigation&&g.navigation.location?g.navigation.location.pathname:null;r||(b=b.toLowerCase(),T=T?T.toLowerCase():null,S=S.toLowerCase()),T&&P&&(T=Ee(T,P)||T);const D=S!=="/"&&S.endsWith("/")?S.length-1:S.length;let x=b===S||!a&&b.startsWith(S)&&b.charAt(D)==="/",_=T!=null&&(T===S||!a&&T.startsWith(S)&&T.charAt(S.length)==="/"),v={isActive:x,isPending:_,isTransitioning:E},H=x?t:void 0,J;typeof n=="function"?J=n(v):J=[n,x?"active":null,_?"pending":null,E?"transitioning":null].filter(
51Boolean).join(" ");let z=typeof o=="function"?o(v):o;return c.createElement(da,{...u,"aria-current":H,className:J,ref:f,style:z,to:i,viewTransition:l},typeof s=="function"?s(v):s)});Fl.displayName="NavLink";var fa=c.forwardRef(({discover:e="render",fetcherKey:t,navigate:r,reloadDocument:n,replace:a,state:o,method:i=Mt,action:l,onSubmit:s,relative:u,preventScrollReset:f,viewTransition:h,...p},g)=>{let R=ma(),P=jl(l,{relative:u}),E=i.toLowerCase()==="get"?"get":"post",S=typeof l=="string"&&ca.test(l),b=T=>{if(s&&s(T),T.defaultPrevented)return;T.preventDefault();let D=T.nativeEvent.submitter,x=D?.getAttribute("formmethod")||i;R(D||T.currentTarget,{fetcherKey:t,method:x,navigate:r,replace:a,state:o,relative:u,preventScrollReset:f,viewTransition:h})};return c.createElement("form",{ref:g,method:E,action:P,onSubmit:n?s:b,...p,"data-discover":!S&&e==="render"?"true":void 0})});fa.displayName="Form";function Nl({getKey:e,storageKey:t,...r}){let n=c.useContext($t),{basename:a}=c.useContext(be),o=xe(),i=xr();Ul({getKey:e,storageKey:t});let l=c.useMemo(()=>{if(!n||!e)return null;let u=fr(o,i,a,e);return u!==o.key?u:null},[]);if(!n||n.isSpaMode)return null;let s=((u,f)=>{if(!window.history.state||!window.history.state.key){let h=Math.random().toString(32).slice(2);window.history.replaceState({key:h},"")}try{let p=JSON.parse(sessionStorage.getItem(u)||"{}")[f||window.history.state.key];typeof p=="number"&&window.scrollTo(0,p)}catch(h){console.error(h),sessionStorage.removeItem(u)}}).toString();return c.createElement("script",{...r,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:`(${s})(${JSON.stringify(t||dr)}, ${JSON.stringify(l)})`}})}Nl.displayName="ScrollRestoration";function ha(e){return`${e} must be used within a data router.  See https://reactrouter.com/en/main/routers/picking-a-router.`}function jt(e){let t=c.useContext(Ye);return W(t,ha(e)),t}function Or(e){let t=c.useContext(Qe);return W(t,ha(e)),t}function kl(e,{target:t,replace:r,state:n,preventScrollReset:a,relative:o,viewTransition:i}={}){let l=zn(),s=xe(),u=ft(e,{relative:o});return c.useCallback(f=>{if(bi(f,t)){f.preventDefault();let h=r!==void 0?r:Pe(s)===Pe(u);l(e,{replace:h,state:n,preventScrollReset:a,relative:o,viewTransition:i})}},[s,l,u,r,n,t,e,a,o,i])}function us(e){ae(typeof URLSearchParams<"u","You cannot use the `useSearchParams` hook in a browser that does not support the URLSearchParams API. If you need to support Internet Explorer 11, we recommend you load a polyfill such as https://github.com/ungap/url-search-params.");let t=c.useRef(lr(e)),r=c.useRef(!1),n=xe(),a=c.useMemo(()=>Si(n.search,r.current?null:t.current),[n.search]),o=zn(),i=c.useCallback((l,s)=>{const u=lr(typeof l=="function"?l(new URLSearchParams(a)):l);r.current=!0,o("?"+u,s)},[o,a]);return[a,i]}var Il=0,$l=()=>`__${String(++Il)}__`;function ma(){let{router:e}=jt("useSubmit"),{basename:t}=c.useContext(be),r=ui();return c.useCallback(async(n,a={})=>{let{action:o,method:i,encType:l,formData:s,body:u}=Li(n,t);if(a.navigate===!1){let f=a.fetcherKey||$l();await e.fetch(f,r,a.action||o,{preventScrollReset:a.preventScrollReset,formData:s,body:u,formMethod:a.method||i,formEncType:a.encType||l,flushSync:a.flushSync})}else await e.navigate(a.action||o,{preventScrollReset:a.preventScrollReset,formData:s,body:u,formMethod:a.method||i,formEncType:a.encType||l,replace:a.replace,state:a.state,fromRouteId:r,flushSync:a.flushSync,viewTransition:a.viewTransition})},[e,t,r])}function jl(e,{relative:t}={}){let{basename:r}=c.useContext(be),n=c.useContext(Se);W(n,"useFormAction must be used inside a RouteContext");let[a]=n.matches.slice(-1),o={...ft(e||".",{relative:t})},i=xe();if(e==null){o.search=i.search;let l=new URLSearchParams(o.search),s=l.getAll("index");if(s.some(f=>f==="")){l.delete("index"),s.filter(h=>h).forEach(h=>l.append("index",h));let f=l.toString();o.search=f?`?${f}`:""}}return(!e||e===".")&&a.route.index&&(o.search=o.search?o.search.replace(/^\?/,"?index&"):"?index"),r!=="/"&&(o.pathname=o.pathname==="/"?r:Le([r,o.pathname])),Pe(o)}function cs({key:e}={}){let{router:t}=jt("useFetcher"),r=Or("useFetcher"),n=c.useContext(Rr),a=c.useContext(Se),o=a.matches[a.matches.length-1]?.route.id;W(n,"useFetcher must be used inside a FetchersContext"),W(a,"useFetcher must be used inside a RouteContext"),W(o!=null,'useFetcher can only be used on routes that contain a unique "id"');let i=c.useId(),[l,s]=c.useState(e||i);e&&e!==l&&s(e),c.useEffect(()=>(t.getFetcher(l),()=>t.deleteFetcher(l)),[t,l]);let u=c.useCallback(async(S,b)=>{W(o,"No routeId available for fetcher.load()"),await t.fetch(l,o,S,b)},[l,o,t]),f=ma(),h=c.useCallback(async(S,b)=>{await f(S,{...b,navigate:!1,fetcherKey:l})},[l,f]),p=c.useCallback(S=>t.resetFetcher(l,S),[t,l]),g=c.useMemo(()=>{let S=c.forwardRef((b,T)=>c.createElement(fa,{...b,navigate:!1,fetcherKey:l,ref:T}));return S.displayName="fetcher.Form",S},[l]),R=r.fetchers.get(l)||_n,P=n.get(l);return c.useMemo(()=>({Form:g,submit:h,load:u,unstable_reset:p,...R,data:P}),[g,h,u,p,R,P])}function ds(){let e=Or("useFetchers");return Array.from(e.fetchers.entries()).map(([t,r])=>({...r,key:t}))}var dr="react-router-scroll-positions",Ct={};function fr(e,t,r,n){let a=null;return n&&(r!=="/"?a=n({...e,pathname:Ee(e.pathname,r)||e.pathname},t):a=n(e,t)),a==null&&(a=e.key),a}function Ul({getKey:e,storageKey:t}={}){let{router:r}=jt("useScrollRestoration"),{restoreScrollPosition:n,preventScrollReset:a}
51=Or("useScrollRestoration"),{basename:o}=c.useContext(be),i=xe(),l=xr(),s=ci();c.useEffect(()=>(window.history.scrollRestoration="manual",()=>{window.history.scrollRestoration="auto"}),[]),Hl(c.useCallback(()=>{if(s.state==="idle"){let u=fr(i,l,o,e);Ct[u]=window.scrollY}try{sessionStorage.setItem(t||dr,JSON.stringify(Ct))}catch(u){ae(!1,`Failed to save scroll positions in sessionStorage, <ScrollRestoration /> will not work properly (${u}).`)}window.history.scrollRestoration="auto"},[s.state,e,o,i,l,t])),typeof document<"u"&&(c.useLayoutEffect(()=>{try{let u=sessionStorage.getItem(t||dr);u&&(Ct=JSON.parse(u))}catch{}},[t]),c.useLayoutEffect(()=>{let u=r?.enableScrollRestoration(Ct,()=>window.scrollY,e?(f,h)=>fr(f,h,o,e):void 0);return()=>u&&u()},[r,o,e]),c.useLayoutEffect(()=>{if(n!==!1){if(typeof n=="number"){window.scrollTo(0,n);return}try{if(i.hash){let u=document.getElementById(decodeURIComponent(i.hash.slice(1)));if(u){u.scrollIntoView();return}}}catch{ae(!1,`"${i.hash.slice(1)}" is not a decodable element ID. The view will not scroll to it.`)}a!==!0&&window.scrollTo(0,0)}},[i,n,a]))}function Hl(e,t){let{capture:r}={};c.useEffect(()=>{let n=r!=null?{capture:r}:void 0;return window.addEventListener("pagehide",e,n),()=>{window.removeEventListener("pagehide",e,n)}},[e,r])}function zl(e,{relative:t}={}){let r=c.useContext(Er);W(r!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`.  Did you accidentally import `RouterProvider` from `react-router`?");let{basename:n}=jt("useViewTransitionState"),a=ft(e,{relative:t});if(!r.isTransitioning)return!1;let o=Ee(r.currentLocation.pathname,n)||r.currentLocation.pathname,i=Ee(r.nextLocation.pathname,n)||r.nextLocation.pathname;return _t(a.pathname,i)!=null||_t(a.pathname,o)!=null}export{os as A,$t as B,ss as C,Ql as D,Be as E,fa as F,ll as G,Mr as H,Jl as I,as as J,rs as K,da as L,Vl as M,Fl as N,Zl as O,ns as P,Xl as Q,Yl as R,ql as S,ft as T,ds as U,ls as V,is as W,Nl as X,_l as Y,Bl as Z,ts as a,cs as b,us as c,ma as d,Cr as e,Bn as f,Kl as g,xr as h,We as i,Wl as j,ci as k,Yn as l,Gl as m,ka as n,Ia as o,Vn as p,zn as q,c as r,Oa as s,jl as t,xe as u,Oe as v,es as w,wl as x,Qi as y,W as z};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.