import{Ka as Ja,a as Fe}from"/build/_shared/chunk-PZHSR7PL.js";import{b as fr,e as Ne,h as B}from"/build/_shared/chunk-EORSPQDF.js";function X(){return X=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},X.apply(this,arguments)}function wr(e){e===void 0&&(e={});function t(n,a){let{pathname:i,search:o,hash:l}=n.location;return yt("",{pathname:i,search:o,hash:l},a.state&&a.state.usr||null,a.state&&a.state.key||"default")}function r(n,a){return typeof a=="string"?a:ve(a)}return Xa(t,r,null,e)}function U(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function Je(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function Ya(){return Math.random().toString(36).substr(2,8)}function hn(e,t){return{usr:e.state,key:e.key,idx:t}}function yt(e,t,r,n){return r===void 0&&(r=null),X({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?oe(t):t,{state:r,key:t&&t.key||n||Ya()})}function ve(e){let{pathname:t="/",search:r="",hash:n=""}=e;return r&&r!=="?"&&(t+=r.charAt(0)==="?"?r:"?"+r),n&&n!=="#"&&(t+=n.charAt(0)==="#"?n:"#"+n),t}function oe(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substr(r),e=e.substr(0,r));let n=e.indexOf("?");n>=0&&(t.search=e.substr(n),e=e.substr(0,n)),e&&(t.pathname=e)}return t}function Xa(e,t,r,n){n===void 0&&(n={});let{window:a=document.defaultView,v5Compat:i=!1}=n,o=a.history,l=J.Pop,s=null,c=u();c==null&&(c=0,o.replaceState(X({},o.state,{idx:c}),""));function u(){return(o.state||{idx:null}).idx}function f(){l=J.Pop;let y=u(),_=y==null?null:y-c;c=y,s&&s({action:l,location:x.location,delta:_})}function p(y,_){l=J.Push;let R=yt(x.location,y,_);r&&r(R,y),c=u()+1;let D=hn(R,c),k=x.createHref(R);try{o.pushState(D,"",k)}catch(P){if(P instanceof DOMException&&P.name==="DataCloneError")throw P;a.location.assign(k)}i&&s&&s({action:l,location:x.location,delta:1})}function g(y,_){l=J.Replace;let R=yt(x.location,y,_);r&&r(R,y),c=u();let D=hn(R,c),k=x.createHref(R);o.replaceState(D,"",k),i&&s&&s({action:l,location:x.location,delta:0})}function E(y){let _=a.location.origin!=="null"?a.location.origin:a.location.href,R=typeof y=="string"?y:ve(y);return U(_,"No window.location.(origin|href) available to create URL for href: "+R),new URL(R,_)}let x={get action(){return l},get location(){return e(a,o)},listen(y){if(s)throw new Error("A history only accepts one active listener");return a.addEventListener(fn,f),s=y,()=>{a.removeEventListener(fn,f),s=null}},createHref(y){return t(a,y)},createURL:E,encodeLocation(y){let _=E(y);return{pathname:_.pathname,search:_.search,hash:_.hash}},push:p,replace:g,go(y){return o.go(y)}};return x}function Qa(e){return e.index===!0}function vr(e,t,r,n){return r===void 0&&(r=[]),n===void 0&&(n={}),e.map((a,i)=>{let o=[...r,i],l=typeof a.id=="string"?a.id:o.join("-");if(U(a.index!==!0||!a.children,"Cannot specify children on an index route"),U(!n[l],'Found a route id collision on id "'+l+`".  Route id's must be globally unique within Data Router usages`),Qa(a)){let s=X({},a,t(a),{id:l});return n[l]=s,s}else{let s=X({},a,t(a),{id:l,children:void 0});return n[l]=s,a.children&&(s.children=vr(a.children,t,o,n)),s}})}function ae(e,t,r){r===void 0&&(r="/");let n=typeof t=="string"?oe(t):t,a=le(n.pathname||"/",r);if(a==null)return null;let i=Nn(e);Za(i);let o=null;for(let l=0;o==null&&l<i.length;++l)o=lo(i[l],uo(a));return o}function Er(e,t){let{route:r,pathname:n,params:a}=e;return{id:r.id,pathname:n,params:a,data:t[r.id],handle:r.handle}}function Nn(e,t,r,n){t===void 0&&(t=[]),r===void 0&&(r=[]),n===void 0&&(n="");let a=(i,o,l)=>{let s={relativePath:l===void 0?i.path||"":l,caseSensitive:i.caseSensitive===!0,childrenIndex:o,route:i};s.relativePath.startsWith("/")&&(U(s.relativePath.startsWith(n),'Absolute route path "'+s.relativePath+'" nested under path '+('"'+n+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),s.relativePath=s.relativePath.slice(n.length));let c=pe([n,s.relativePath]),u=r.concat(s);i.children&&i.children.length>0&&(U(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+c+'".')),Nn(i.children,t,u,c)),!(i.path==null&&!i.index)&&t.push({path:c,score:oo(c,i.index),routesMeta:u})};return e.forEach((i,o)=>{var l;if(i.path===""||!((l=i.path)!=null&&l.includes("?")))a(i,o);else for(let s of Dn(i.path))a(i,o,s)}),t}function Dn(e){let t=e.split("/");if(t.length===0)return[];let[r,...n]=t,a=r.endsWith("?"),i=r.replace(/\?$/,"");if(n.length===0)return a?[i,""]:[i];let o=Dn(n.join("/")),l=[];return l.push(...o.map(s=>s===""?i:[i,s].join("/"))),a&&l.push(...o),l.map(s=>e.startsWith("/")&&s===""?"/":s)}function Za(e){e.sort((t,r)=>t.score!==r.score?r.score-t.score:io(t.routesMeta.map(n=>n.childrenIndex),r.routesMeta.map(n=>n.childrenIndex)))}function oo(e,t){let r=e.split("/"),n=r.length;return r.some(mn)&&(n+=ao),t&&(n+=to),r.filter(a=>!mn(a)).reduce((a,i)=>a+(qa.test(i)?eo:i===""?ro:no),n)}function io(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 lo(e,t){let{routesMeta:r}=e,n={},a="/",i=[];for(let o=0;o<r.length;++o){let l=r[o],s=o===r.length-1,c=a==="/"?t:t.slice(a.length)||"/",u=Me({path:l.relativePath,caseSensitive:l.caseSensitive,end:s},c);if(!u)return null;Object.assign(n,u.params);let f=l.route;i.push({params:n,pathname:pe([a,u.pathname]),pathnameBase:ho(pe([a,u.pathnameBase])),route:f}),u.pathnameBase!=="/"&&(a=pe([a,u.pathnameBase]))}return i}function Me(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[r,n]=so(e.path,e.caseSensitive,e.end),a=t.match(r);if(!a)return null;let i=a[0],o=i.replace(/(.)\/+$/,"$1"),l=a.slice(1);return{params:n.reduce((c,u,f)=>{let{paramName:p,isOptional:g}=u;if(p==="*"){let x=l[f]||"";o=i.slice(0,i.length-x.length).replace(/(.)\/+$/,"$1")}let E=l[f];return g&&!E?c[p]=void 0:c[p]=co(E||"",p),c},{}),pathname:i,pathnameBase:o,pattern:e}}function so(e,t,r){t===void 0&&(t=!1),r===void 0&&(r=!0),Je(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,(o,l,s)=>(n.push({paramName:l,isOptional:s!=null}),s?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(n.push({paramName:"*"}),a+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?a+="\\/*$":e!==""&&e!=="/"&&(a+="(?:(?=\\/|$))"),[new RegExp(a,t?void 0:"i"),n]}function uo(e){try{return decodeURI(e)}catch(t){return Je(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function co(e,t){try{return decodeURIComponent(e)}catch(r){return Je(!1,'The value for the URL param "'+t+'" will not be decoded because'+(' the string "'+e+'" is a malformed URL segment. This is probably')+(" due to a bad percent encoding ("+r+").")),e}}function le(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 Ut(e,t){t===void 0&&(t="/");let{pathname:r,search:n="",hash:a=""}=typeof e=="string"?oe(e):e;return{pathname:r?r.startsWith("/")?r:fo(r,t):t,search:mo(n),hash:po(a)}}function fo(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 hr(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 Cn(e){return e.filter((t,r)=>r===0||t.route.path&&t.route.path.length>0)}function kt(e,t){let r=Cn(e);return t?r.map((n,a)=>a===e.length-1?n.pathname:n.pathnameBase):r.map(n=>n.pathnameBase)}function Tt(e,t,r,n){n===void 0&&(n=!1);let a;typeof e=="string"?a=oe(e):(a=X({},e),U(!a.pathname||!a.pathname.includes("?"),hr("?","pathname","search",a)),U(!a.pathname||!a.pathname.includes("#"),hr("#","pathname","hash",a)),U(!a.search||!a.search.includes("#"),hr("#","search","hash",a)));let i=e===""||a.pathname==="",o=i?"/":a.pathname,l;if(o==null)l=r;else{let f=t.length-1;if(!n&&o.startsWith("..")){let p=o.split("/");for(;p[0]==="..";)p.shift(),f-=1;a.pathname=p.join("/")}l=f>=0?t[f]:"/"}let s=Ut(a,l),c=o&&o!=="/"&&o.endsWith("/"),u=(i||o===".")&&r.endsWith("/");return!s.pathname.endsWith("/")&&(c||u)&&(s.pathname+="/"),s}function vo(e){return e instanceof Promise&&e._tracked===!0}function yo(e){if(!vo(e))return e;if(e._error)throw e._error;return e._data}function Ue(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}function Ht(e){let t=e.window?e.window:typeof window<"u"?window:void 0,r=typeof t<"u"&&typeof t.document<"u"&&typeof t.document.createElement<"u",n=!r;U(e.routes.length>0,"You must provide a non-empty routes array to createRouter");let a;if(e.mapRouteProperties)a=e.mapRouteProperties;else if(e.detectErrorBoundary){let d=e.detectErrorBoundary;a=m=>({hasErrorBoundary:d(m)})}else a=_o;let i={},o=vr(e.routes,a,void 0,i),l,s=e.basename||"/",c=X({v7_fetcherPersist:!1,v7_normalizeFormMethod:!1,v7_partialHydration:!1,v7_prependBasename:!1,v7_relativeSplatPath:!1},e.future),u=null,f=new Set,p=null,g=null,E=null,x=e.hydrationData!=null,y=ae(o,e.history.location,s),_=null;if(y==null){let d=me(404,{pathname:e.history.location.pathname}),{matches:m,route:v}=bn(o);y=m,_={[v.id]:d}}let R,D=y.some(d=>d.route.lazy),k=y.some(d=>d.route.loader);if(D)R=!1;else if(!k)R=!0;else if(c.v7_partialHydration){let d=e.hydrationData?e.hydrationData.loaderData:null,m=e.hydrationData?e.hydrationData.errors:null;R=y.every(v=>v.route.loader&&v.route.loader.hydrate!==!0&&(d&&d[v.route.id]!==void 0||m&&m[v.route.id]!==void 0))}else R=e.hydrationData!=null;let P,h={historyAction:e.history.action,location:e.history.location,matches:y,initialized:R,navigation:mr,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||_,fetchers:new Map,blockers:new Map},N=J.Pop,T=!1,A,$=!1,W=new Map,ne=null,Y=!1,ue=!1,Dt=[],Ct=[],Z=new Map,Lt=0,st=-1,Ze=new Map,Se=new Set,qe=new Map,ut=new Map,xe=new Set,Be=new Map,Ve=new Map,or=!1;function Fa(){if(u=e.history.listen(d=>{let{action:m,location:v,delta:S}=d;if(or){or=!1;return}Je(Ve.size===0||S!=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=un({currentLocation:h.location,nextLocation:v,historyAction:m});if(L&&S!=null){or=!0,e.history.go(S*-1),At(L,{state:"blocked",location:v,proceed(){At(L,{state:"proceeding",proceed:void 0,reset:void 0,location:v}),e.history.go(S)},reset(){let H=new Map(h.blockers);H.set(L,nt),ce({blockers:H})}});return}return $e(m,v)}),r){Mo(t,W);let d=()=>Uo(t,W);t.addEventListener("pagehide",d),ne=()=>t.removeEventListener("pagehide",d)}return h.initialized||$e(J.Pop,h.location,{initialHydration:!0}),P}function Oa(){u&&u(),ne&&ne(),f.clear(),A&&A.abort(),h.fetchers.forEach((d,m)=>Pt(m)),h.blockers.forEach((d,m)=>sn(m))}function Ma(d){return f.add(d),()=>f.delete(d)}function ce(d,m){m===void 0&&(m={}),h=X({},h,d);let v=[],S=[];c.v7_fetcherPersist&&h.fetchers.forEach((L,H)=>{L.state==="idle"&&(xe.has(H)?S.push(H):v.push(H))}),[...f].forEach(L=>L(h,{deletedFetchers:S,unstable_viewTransitionOpts:m.viewTransitionOpts,unstable_flushSync:m.flushSync===!0})),c.v7_fetcherPersist&&(v.forEach(L=>h.fetchers.delete(L)),S.forEach(L=>Pt(L)))}function ct(d,m,v){var S,L;let{flushSync:H}=v===void 0?{}:v,M=h.actionData!=null&&h.navigation.formMethod!=null&&ge(h.navigation.formMethod)&&h.navigation.state==="loading"&&((S=d.state)==null?void 0:S._isRedirect)!==!0,O;m.actionData?Object.keys(m.actionData).length>0?O=m.actionData:O=null:M?O=h.actionData:O=null;let F=m.loaderData?En(h.loaderData,m.loaderData,m.matches||[],m.errors):h.loaderData,j=h.blockers;j.size>0&&(j=new Map(j),j.forEach((z,te)=>j.set(te,nt)));let q=T===!0||h.navigation.formMethod!=null&&ge(h.navigation.formMethod)&&((L=d.state)==null?void 0:L._isRedirect)!==!0;l&&(o=l,l=void 0),Y||N===J.Pop||(N===J.Push?e.history.push(d,d.state):N===J.Replace&&e.history.replace(d,d.state));let I;if(N===J.Pop){let z=W.get(h.location.pathname);z&&z.has(d.pathname)?I={currentLocation:h.location,nextLocation:d}:W.has(d.pathname)&&(I={currentLocation:d,nextLocation:h.location})}else if($){let z=W.get(h.location.pathname);z?z.add(d.pathname):(z=new Set([d.pathname]),W.set(h.location.pathname,z)),I={currentLocation:h.location,nextLocation:d}}ce(X({},m,{actionData:O,loaderData:F,historyAction:N,location:d,initialized:!0,navigation:mr,revalidation:"idle",restoreScrollPosition:dn(d,m.matches||h.matches),preventScrollReset:q,blockers:j}),{viewTransitionOpts:I,flushSync:H===!0}),N=J.Pop,T=!1,$=!1,Y=!1,ue=!1,Dt=[],Ct=[]}async function tn(d,m){if(typeof d=="number"){e.history.go(d);return}let v=yr(h.location,h.matches,s,c.v7_prependBasename,d,c.v7_relativeSplatPath,m?.fromRouteId,m?.relative),{path:S,submission:L,error:H}=pn(c.v7_normalizeFormMethod,!1,v,m),M=h.location,O=yt(h.location,S,m&&m.state);O=X({},O,e.history.encodeLocation(O));let F=m&&m.replace!=null?m.replace:void 0,j=J.Push;F===!0?j=J.Replace:F===!1||L!=null&&ge(L.formMethod)&&L.formAction===h.location.pathname+h.location.search&&(j=J.Replace);let q=m&&"preventScrollReset"in m?m.preventScrollReset===!0:void 0,I=(m&&m.unstable_flushSync)===!0,z=un({currentLocation:M,nextLocation:O,historyAction:j});if(z){At(z,{state:"blocked",location:O,proceed(){At(z,{state:"proceeding",proceed:void 0,reset:void 0,location:O}),tn(d,m)},reset(){let te=new Map(h.blockers);te.set(z,nt),ce({blockers:te})}});return}return await $e(j,O,{submission:L,pendingError:H,preventScrollReset:q,replace:m&&m.replace,enableViewTransition:m&&m.unstable_viewTransition,flushSync:I})}function Ua(){if(ir(),ce({revalidation:"loading"}),h.navigation.state!=="submitting"){if(h.navigation.state==="idle"){$e(h.historyAction,h.location,{startUninterruptedRevalidation:!0});return}$e(N||h.historyAction,h.navigation.location,{overrideNavigation:h.navigation})}}async function $e(d,m,v){A&&A.abort(),A=null,N=d,Y=(v&&v.startUninterruptedRevalidation)===!0,za(h.location,h.matches),T=(v&&v.preventScrollReset)===!0,$=(v&&v.enableViewTransition)===!0;let S=l||o,L=v&&v.overrideNavigation,H=ae(S,m,s),M=(v&&v.flushSync)===!0;if(!H){let te=me(404,{pathname:m.pathname}),{matches:he,route:ee}=bn(S);lr(),ct(m,{matches:he,loaderData:{},errors:{[ee.id]:te}},{flushSync:M});return}if(h.initialized&&!ue&&Co(h.location,m)&&!(v&&v.submission&&ge(v.submission.formMethod))){ct(m,{matches:H},{flushSync:M});return}A=new AbortController;let O=mt(e.history,m,A.signal,v&&v.submission),F,j;if(v&&v.pendingError)j={[vt(H).route.id]:v.pendingError};else if(v&&v.submission&&ge(v.submission.formMethod)){let te=await ka(O,m,v.submission,H,{replace:v.replace,flushSync:M});if(te.shortCircuited)return;F=te.pendingActionData,j=te.pendingActionError,L=pr(m,v.submission),M=!1,O=new Request(O.url,{signal:O.signal})}let{shortCircuited:q,loaderData:I,errors:z}=await Ta(O,m,H,L,v&&v.submission,v&&v.fetcherSubmission,v&&v.replace,v&&v.initialHydration===!0,M,F,j);q||(A=null,ct(m,X({matches:H},F?{actionData:F}:{},{loaderData:I,errors:z})))}async function ka(d,m,v,S,L){L===void 0&&(L={}),ir();let H=Fo(m,v);ce({navigation:H},{flushSync:L.flushSync===!0});let M,O=gr(S,m);if(!O.route.action&&!O.route.lazy)M={type:G.error,error:me(405,{method:d.method,pathname:m.pathname,routeId:O.route.id})};else if(M=await ht("action",d,O,S,i,a,s,c.v7_relativeSplatPath),d.signal.aborted)return{shortCircuited:!0};if(Ke(M)){let F;return L&&L.replace!=null?F=L.replace:F=M.location===h.location.pathname+h.location.search,await dt(h,M,{submission:v,replace:F}),{shortCircuited:!0}}if(at(M)){let F=vt(S,O.route.id);return(L&&L.replace)!==!0&&(N=J.Push),{pendingActionData:{},pendingActionError:{[F.route.id]:M.error}}}if(We(M))throw me(400,{type:"defer-action"});return{pendingActionData:{[O.route.id]:M.data}}}async function Ta(d,m,v,S,L,H,M,O,F,j,q){let I=S||pr(m,L),z=L||H||xn(I),te=l||o,[he,ee]=vn(e.history,h,v,z,m,c.v7_partialHydration&&O===!0,ue,Dt,Ct,xe,qe,Se,te,s,j,q);if(lr(V=>!(v&&v.some(K=>K.route.id===V))||he&&he.some(K=>K.route.id===V)),st=++Lt,he.length===0&&ee.length===0){let V=on();return ct(m,X({matches:v,loaderData:{},errors:q||null},j?{actionData:j}:{},V?{fetchers:new Map(h.fetchers)}:{}),{flushSync:F}),{shortCircuited:!0}}if(!Y&&(!c.v7_partialHydration||!O)){ee.forEach(K=>{let be=h.fetchers.get(K.key),Ot=pt(void 0,be?be.data:void 0);h.fetchers.set(K.key,Ot)});let V=j||h.actionData;ce(X({navigation:I},V?Object.keys(V).length===0?{actionData:null}:{actionData:V}:{},ee.length>0?{fetchers:new Map(h.fetchers)}:{}),{flushSync:F})}ee.forEach(V=>{Z.has(V.key)&&Pe(V.key),V.controller&&Z.set(V.key,V.controller)});let et=()=>ee.forEach(V=>Pe(V.key));A&&A.signal.addEventListener("abort",et);let{results:sr,loaderResults:tt,fetcherResults:Ae}=await rn(h.matches,v,he,ee,d);if(d.signal.aborted)return{shortCircuited:!0};A&&A.signal.removeEventListener("abort",et),ee.forEach(V=>Z.delete(V.key));let ze=_n(sr);if(ze){if(ze.idx>=he.length){let V=ee[ze.idx-he.length].key;Se.add(V)}return await dt(h,ze.result,{replace:M}),{shortCircuited:!0}}let{loaderData:ur,errors:cr}=wn(h,v,he,tt,q,ee,Ae,Be);Be.forEach((V,K)=>{V.subscribe(be=>{(be||V.done)&&Be.delete(K)})});let dr=on(),rt=ln(st),Ft=dr||rt||ee.length>0;return X({loaderData:ur,errors:cr},Ft?{fetchers:new Map(h.fetchers)}:{})}function Ia(d,m,v,S){if(n)throw new Error("router.fetch() was called during the server render, but it shouldn't be. You are likely calling a useFetcher() method in the body of your component. Try moving it to a useEffect or a callback.");Z.has(d)&&Pe(d);let L=(S&&S.unstable_flushSync)===!0,H=l||o,M=yr(h.location,h.matches,s,c.v7_prependBasename,v,c.v7_relativeSplatPath,m,S?.relative),O=ae(H,M,s);if(!O){ft(d,m,me(404,{pathname:M}),{flushSync:L});return}let{path:F,submission:j,error:q}=pn(c.v7_normalizeFormMethod,!0,M,S);if(q){ft(d,m,q,{flushSync:L});return}let I=gr(O,F);if(T=(S&&S.preventScrollReset)===!0,j&&ge(j.formMethod)){Ha(d,m,F,I,O,L,j);return}qe.set(d,{routeId:m,path:F}),ja(d,m,F,I,O,L,j)}async function Ha(d,m,v,S,L,H,M){if(ir(),qe.delete(d),!S.route.action&&!S.route.lazy){let K=me(405,{method:M.formMethod,pathname:v,routeId:m});ft(d,m,K,{flushSync:H});return}let O=h.fetchers.get(d);Le(d,Oo(M,O),{flushSync:H});let F=new AbortController,j=mt(e.history,v,F.signal,M);Z.set(d,F);let q=Lt,I=await ht("action",j,S,L,i,a,s,c.v7_relativeSplatPath);if(j.signal.aborted){Z.get(d)===F&&Z.delete(d);return}if(c.v7_fetcherPersist&&xe.has(d)){if(Ke(I)||at(I)){Le(d,Oe(void 0));return}}else{if(Ke(I))if(Z.delete(d),st>q){Le(d,Oe(void 0));return}else return Se.add(d),Le(d,pt(M)),dt(h,I,{fetcherSubmission:M});if(at(I)){ft(d,m,I.error);return}}if(We(I))throw me(400,{type:"defer-action"});let z=h.navigation.location||h.location,te=mt(e.history,z,F.signal),he=l||o,ee=h.navigation.state!=="idle"?ae(he,h.navigation.location,s):h.matches;U(ee,"Didn't find any matches after fetcher action");let et=++Lt;Ze.set(d,et);let sr=pt(M,I.data);h.fetchers.set(d,sr);let[tt,Ae]=vn(e.history,h,ee,M,z,!1,ue,Dt,Ct,xe,qe,Se,he,s,{[S.route.id]:I.data},void 0);Ae.filter(K=>K.key!==d).forEach(K=>{let be=K.key,Ot=h.fetchers.get(be),Ka=pt(void 0,Ot?Ot.data:void 0);h.fetchers.set(be,Ka),Z.has(be)&&Pe(be),K.controller&&Z.set(be,K.controller)}),ce({fetchers:new Map(h.fetchers)});let ze=()=>Ae.forEach(K=>Pe(K.key));F.signal.addEventListener("abort",ze);let{results:ur,loaderResults:cr,fetcherResults:dr}=await rn(h.matches,ee,tt,Ae,te);if(F.signal.aborted)return;F.signal.removeEventListener("abort",ze),Ze.delete(d),Z.delete(d),Ae.forEach(K=>Z.delete(K.key));let rt=_n(ur);if(rt){if(rt.idx>=tt.length){let K=Ae[rt.idx-tt.length].key;Se.add(K)}return dt(h,rt.result)}let{loaderData:Ft,errors:V}=wn(h,h.matches,tt,cr,void 0,Ae,dr,Be);if(h.fetchers.has(d)){let K=Oe(I.data);h.fetchers.set(d,K)}ln(et),h.navigation.state==="loading"&&et>st?(U(N,"Expected pending action"),A&&A.abort(),ct(h.navigation.location,{matches:ee,loaderData:Ft,errors:V,fetchers:new Map(h.fetchers)})):(ce({errors:V,loaderData:En(h.loaderData,Ft,ee,V),fetchers:new Map(h.fetchers)}),ue=!1)}async function ja(d,m,v,S,L,H,M){let O=h.fetchers.get(d);Le(d,pt(M,O?O.data:void 0),{flushSync:H});let F=new AbortController,j=mt(e.history,v,F.signal);Z.set(d,F);let q=Lt,I=await ht("loader",j,S,L,i,a,s,c.v7_relativeSplatPath);if(We(I)&&(I=await Un(I,j.signal,!0)||I),Z.get(d)===F&&Z.delete(d),!j.signal.aborted){if(xe.has(d)){Le(d,Oe(void 0));return}if(Ke(I))if(st>q){Le(d,Oe(void 0));return}else{Se.add(d),await dt(h,I);return}if(at(I)){ft(d,m,I.error);return}U(!We(I),"Unhandled fetcher deferred data"),Le(d,Oe(I.data))}}async function dt(d,m,v){let{submission:S,fetcherSubmission:L,replace:H}=v===void 0?{}:v;m.revalidate&&(ue=!0);let M=yt(d.location,m.location,{_isRedirect:!0});if(U(M,"Expected a location on the redirect navigation"),r){let z=!1;if(m.reloadDocument)z=!0;else if(An.test(m.location)){let te=e.history.createURL(m.location);z=te.origin!==t.location.origin||le(te.pathname,s)==null}if(z){H?t.location.replace(m.location):t.location.assign(m.location);return}}A=null;let O=H===!0?J.Replace:J.Push,{formMethod:F,formAction:j,formEncType:q}=d.navigation;!S&&!L&&F&&j&&q&&(S=xn(d.navigation));let I=S||L;if(bo.has(m.status)&&I&&ge(I.formMethod))await $e(O,M,{submission:X({},I,{formAction:m.location}),preventScrollReset:T});else{let z=pr(M,S);await $e(O,M,{overrideNavigation:z,fetcherSubmission:L,preventScrollReset:T})}}async function rn(d,m,v,S,L){let H=await Promise.all([...v.map(F=>ht("loader",L,F,m,i,a,s,c.v7_relativeSplatPath)),...S.map(F=>F.matches&&F.match&&F.controller?ht("loader",mt(e.history,F.path,F.controller.signal),F.match,F.matches,i,a,s,c.v7_relativeSplatPath):{type:G.error,error:me(404,{pathname:F.path})})]),M=H.slice(0,v.length),O=H.slice(v.length);return await Promise.all([Sn(d,v,M,M.map(()=>L.signal),!1,h.loaderData),Sn(d,S.map(F=>F.match),O,S.map(F=>F.controller?F.controller.signal:null),!0)]),{results:H,loaderResults:M,fetcherResults:O}}function ir(){ue=!0,Dt.push(...lr()),qe.forEach((d,m)=>{Z.has(m)&&(Ct.push(m),Pe(m))})}function Le(d,m,v){v===void 0&&(v={}),h.fetchers.set(d,m),ce({fetchers:new Map(h.fetchers)},{flushSync:(v&&v.flushSync)===!0})}function ft(d,m,v,S){S===void 0&&(S={});let L=vt(h.matches,m);Pt(d),ce({errors:{[L.route.id]:v},fetchers:new Map(h.fetchers)},{flushSync:(S&&S.flushSync)===!0})}function nn(d){return c.v7_fetcherPersist&&(ut.set(d,(ut.get(d)||0)+1),xe.has(d)&&xe.delete(d)),h.fetchers.get(d)||Pn}function Pt(d){let m=h.fetchers.get(d);Z.has(d)&&!(m&&m.state==="loading"&&Ze.has(d))&&Pe(d),qe.delete(d),Ze.delete(d),Se.delete(d),xe.delete(d),h.fetchers.delete(d)}function Ba(d){if(c.v7_fetcherPersist){let m=(ut.get(d)||0)-1;m<=0?(ut.delete(d),xe.add(d)):ut.set(d,m)}else Pt(d);ce({fetchers:new Map(h.fetchers)})}function Pe(d){let m=Z.get(d);U(m,"Expected fetch controller: "+d),m.abort(),Z.delete(d)}function an(d){for(let m of d){let v=nn(m),S=Oe(v.data);h.fetchers.set(m,S)}}function on(){let d=[],m=!1;for(let v of Se){let S=h.fetchers.get(v);U(S,"Expected fetcher: "+v),S.state==="loading"&&(Se.delete(v),d.push(v),m=!0)}return an(d),m}function ln(d){let m=[];for(let[v,S]of Ze)if(S<d){let L=h.fetchers.get(v);U(L,"Expected fetcher: "+v),L.state==="loading"&&(Pe(v),Ze.delete(v),m.push(v))}return an(m),m.length>0}function Va(d,m){let v=h.blockers.get(d)||nt;return Ve.get(d)!==m&&Ve.set(d,m),v}function sn(d){h.blockers.delete(d),Ve.delete(d)}function At(d,m){let v=h.blockers.get(d)||nt;U(v.state==="unblocked"&&m.state==="blocked"||v.state==="blocked"&&m.state==="blocked"||v.state==="blocked"&&m.state==="proceeding"||v.state==="blocked"&&m.state==="unblocked"||v.state==="proceeding"&&m.state==="unblocked","Invalid blocker state transition: "+v.state+" -> "+m.state);let S=new Map(h.blockers);S.set(d,m),ce({blockers:S})}function un(d){let{currentLocation:m,nextLocation:v,historyAction:S}=d;if(Ve.size===0)return;Ve.size>1&&Je(!1,"A router only supports one blocker at a time");let L=Array.from(Ve.entries()),[H,M]=L[L.length-1],O=h.blockers.get(H);if(!(O&&O.state==="proceeding")&&M({currentLocation:m,nextLocation:v,historyAction:S}))return H}function lr(d){let m=[];return Be.forEach((v,S)=>{(!d||d(S))&&(v.cancel(),m.push(S),Be.delete(S))}),m}function $a(d,m,v){if(p=d,E=m,g=v||null,!x&&h.navigation===mr){x=!0;let S=dn(h.location,h.matches);S!=null&&ce({restoreScrollPosition:S})}return()=>{p=null,E=null,g=null}}function cn(d,m){return g&&g(d,m.map(S=>Er(S,h.loaderData)))||d.key}function za(d,m){if(p&&E){let v=cn(d,m);p[v]=E()}}function dn(d,m){if(p){let v=cn(d,m),S=p[v];if(typeof S=="number")return S}return null}function Wa(d){i={},l=vr(d,a,void 0,i)}return P={get basename(){return s},get future(){return c},get state(){return h},get routes(){return o},get window(){return t},initialize:Fa,subscribe:Ma,enableScrollRestoration:$a,navigate:tn,fetch:Ia,revalidate:Ua,createHref:d=>e.history.createHref(d),encodeLocation:d=>e.history.encodeLocation(d),getFetcher:nn,deleteFetcher:Ba,dispose:Oa,getBlocker:Va,deleteBlocker:sn,_internalFetchControllers:Z,_internalActiveDeferreds:Be,_internalSetRoutes:Wa},P}function So(e){return e!=null&&("formData"in e&&e.formData!=null||"body"in e&&e.body!==void 0)}function yr(e,t,r,n,a,i,o,l){let s,c;if(o){s=[];for(let f of t)if(s.push(f),f.route.id===o){c=f;break}}else s=t,c=t[t.length-1];let u=Tt(a||".",kt(s,i),le(e.pathname,r)||e.pathname,l==="path");return a==null&&(u.search=e.search,u.hash=e.hash),(a==null||a===""||a===".")&&c&&c.route.index&&!br(u.search)&&(u.search=u.search?u.search.replace(/^\?/,"?index&"):"?index"),n&&r!=="/"&&(u.pathname=u.pathname==="/"?r:pe([r,u.pathname])),ve(u)}function pn(e,t,r,n){if(!n||!So(n))return{path:r};if(n.formMethod&&!Ao(n.formMethod))return{path:r,error:me(405,{method:n.formMethod})};let a=()=>({path:r,error:me(400,{type:"invalid-body"})}),i=n.formMethod||"get",o=e?i.toUpperCase():i.toLowerCase(),l=Mn(r);if(n.body!==void 0){if(n.formEncType==="text/plain"){if(!ge(o))return a();let p=typeof n.body=="string"?n.body:n.body instanceof FormData||n.body instanceof URLSearchParams?Array.from(n.body.entries()).reduce((g,E)=>{let[x,y]=E;return""+g+x+"="+y+`
`},""):String(n.body);return{path:r,submission:{formMethod:o,formAction:l,formEncType:n.formEncType,formData:void 0,json:void 0,text:p}}}else if(n.formEncType==="application/json"){if(!ge(o))return a();try{let p=typeof n.body=="string"?JSON.parse(n.body):n.body;return{path:r,submission:{formMethod:o,formAction:l,formEncType:n.formEncType,formData:void 0,json:p,text:void 0}}}catch{return a()}}}U(typeof FormData=="function","FormData is not available in this environment");let s,c;if(n.formData)s=Rr(n.formData),c=n.formData;else if(n.body instanceof FormData)s=Rr(n.body),c=n.body;else if(n.body instanceof URLSearchParams)s=n.body,c=gn(s);else if(n.body==null)s=new URLSearchParams,c=new FormData;else try{s=new URLSearchParams(n.body),c=gn(s)}catch{return a()}let u={formMethod:o,formAction:l,formEncType:n&&n.formEncType||"application/x-www-form-urlencoded",formData:c,json:void 0,text:void 0};if(ge(u.formMethod))return{path:r,submission:u};let f=oe(r);return t&&f.search&&br(f.search)&&s.append("index",""),f.search="?"+s,{path:ve(f),submission:u}}function xo(e,t){let r=e;if(t){let n=e.findIndex(a=>a.route.id===t);n>=0&&(r=e.slice(0,n))}return r}function vn(e,t,r,n,a,i,o,l,s,c,u,f,p,g,E,x){let y=x?Object.values(x)[0]:E?Object.values(E)[0]:void 0,_=e.createURL(t.location),R=e.createURL(a),D=x?Object.keys(x)[0]:void 0,P=xo(r,D).filter((N,T)=>{let{route:A}=N;if(A.lazy)return!0;if(A.loader==null)return!1;if(i)return A.loader.hydrate?!0:t.loaderData[A.id]===void 0&&(!t.errors||t.errors[A.id]===void 0);if(No(t.loaderData,t.matches[T],N)||l.some(ne=>ne===N.route.id))return!0;let $=t.matches[T],W=N;return yn(N,X({currentUrl:_,currentParams:$.params,nextUrl:R,nextParams:W.params},n,{actionResult:y,defaultShouldRevalidate:o||_.pathname+_.search===R.pathname+R.search||_.search!==R.search||On($,W)}))}),h=[];return u.forEach((N,T)=>{if(i||!r.some(Y=>Y.route.id===N.routeId)||c.has(T))return;let A=ae(p,N.path,g);if(!A){h.push({key:T,routeId:N.routeId,path:N.path,matches:null,match:null,controller:null});return}let $=t.fetchers.get(T),W=gr(A,N.path),ne=!1;f.has(T)?ne=!1:s.includes(T)?ne=!0:$&&$.state!=="idle"&&$.data===void 0?ne=o:ne=yn(W,X({currentUrl:_,currentParams:t.matches[t.matches.length-1].params,nextUrl:R,nextParams:r[r.length-1].params},n,{actionResult:y,defaultShouldRevalidate:o})),ne&&h.push({key:T,routeId:N.routeId,path:N.path,matches:A,match:W,controller:new AbortController})}),[P,h]}function No(e,t,r){let n=!t||r.route.id!==t.route.id,a=e[r.route.id]===void 0;return n||a}function On(e,t){let r=e.route.path;return e.pathname!==t.pathname||r!=null&&r.endsWith("*")&&e.params["*"]!==t.params["*"]}function yn(e,t){if(e.route.shouldRevalidate){let r=e.route.shouldRevalidate(t);if(typeof r=="boolean")return r}return t.defaultShouldRevalidate}async function Rn(e,t,r){if(!e.lazy)return;let n=await e.lazy();if(!e.lazy)return;let a=r[e.id];U(a,"No route found in manifest");let i={};for(let o in n){let s=a[o]!==void 0&&o!=="hasErrorBoundary";Je(!s,'Route "'+a.id+'" has a static property "'+o+'" defined but its lazy function is also returning a value for this property. '+('The lazy route property "'+o+'" will be ignored.')),!s&&!Ga.has(o)&&(i[o]=n[o])}Object.assign(a,i),Object.assign(a,X({},t(a),{lazy:void 0}))}async function ht(e,t,r,n,a,i,o,l,s){s===void 0&&(s={});let c,u,f,p=x=>{let y,_=new Promise((R,D)=>y=D);return f=()=>y(),t.signal.addEventListener("abort",f),Promise.race([x({request:t,params:r.params,context:s.requestContext}),_])};try{let x=r.route[e];if(r.route.lazy)if(x){let y,_=await Promise.all([p(x).catch(R=>{y=R}),Rn(r.route,i,a)]);if(y)throw y;u=_[0]}else if(await Rn(r.route,i,a),x=r.route[e],x)u=await p(x);else if(e==="action"){let y=new URL(t.url),_=y.pathname+y.search;throw me(405,{method:t.method,pathname:_,routeId:r.route.id})}else return{type:G.data,data:void 0};else if(x)u=await p(x);else{let y=new URL(t.url),_=y.pathname+y.search;throw me(404,{pathname:_})}U(u!==void 0,"You defined "+(e==="action"?"an action":"a loader")+" for route "+('"'+r.route.id+"\" but didn't return anything from your `"+e+"` ")+"function. Please return a value or `null`.")}catch(x){c=G.error,u=x}finally{f&&t.signal.removeEventListener("abort",f)}if(Po(u)){let x=u.status;if(Eo.has(x)){let _=u.headers.get("Location");if(U(_,"Redirects returned/thrown from loaders/actions must have a Location header"),!An.test(_))_=yr(new URL(t.url),n.slice(0,n.indexOf(r)+1),o,!0,_,l);else if(!s.isStaticRequest){let R=new URL(t.url),D=_.startsWith("//")?new URL(R.protocol+_):new URL(_),k=le(D.pathname,o)!=null;D.origin===R.origin&&k&&(_=D.pathname+D.search+D.hash)}if(s.isStaticRequest)throw u.headers.set("Location",_),u;return{type:G.redirect,status:x,location:_,revalidate:u.headers.get("X-Remix-Revalidate")!==null,reloadDocument:u.headers.get("X-Remix-Reload-Document")!==null}}if(s.isRouteRequest)throw{type:c===G.error?G.error:G.data,response:u};let y;try{let _=u.headers.get("Content-Type");_&&/\bapplication\/json\b/.test(_)?u.body==null?y=null:y=await u.json():y=await u.text()}catch(_){return{type:G.error,error:_}}return c===G.error?{type:c,error:new we(x,u.statusText,y),headers:u.headers}:{type:G.data,data:y,statusCode:u.status,headers:u.headers}}if(c===G.error)return{type:c,error:u};if(Lo(u)){var g,E;return{type:G.deferred,deferredData:u,statusCode:(g=u.init)==null?void 0:g.status,headers:((E=u.init)==null?void 0:E.headers)&&new Headers(u.init.headers)}}return{type:G.data,data:u}}function mt(e,t,r,n){let a=e.createURL(Mn(t)).toString(),i={signal:r};if(n&&ge(n.formMethod)){let{formMethod:o,formEncType:l}=n;i.method=o.toUpperCase(),l==="application/json"?(i.headers=new Headers({"Content-Type":l}),i.body=JSON.stringify(n.json)):l==="text/plain"?i.body=n.text:l==="application/x-www-form-urlencoded"&&n.formData?i.body=Rr(n.formData):i.body=n.formData}return new Request(a,i)}function Rr(e){let t=new URLSearchParams;for(let[r,n]of e.entries())t.append(r,typeof n=="string"?n:n.name);return t}function gn(e){let t=new FormData;for(let[r,n]of e.entries())t.append(r,n);return t}function Do(e,t,r,n,a){let i={},o=null,l,s=!1,c={};return r.forEach((u,f)=>{let p=t[f].route.id;if(U(!Ke(u),"Cannot handle redirect results in processLoaderData"),at(u)){let g=vt(e,p),E=u.error;n&&(E=Object.values(n)[0],n=void 0),o=o||{},o[g.route.id]==null&&(o[g.route.id]=E),i[p]=void 0,s||(s=!0,l=Ue(u.error)?u.error.status:500),u.headers&&(c[p]=u.headers)}else We(u)?(a.set(p,u.deferredData),i[p]=u.deferredData.data):i[p]=u.data,u.statusCode!=null&&u.statusCode!==200&&!s&&(l=u.statusCode),u.headers&&(c[p]=u.headers)}),n&&(o=n,i[Object.keys(n)[0]]=void 0),{loaderData:i,errors:o,statusCode:l||200,loaderHeaders:c}}function wn(e,t,r,n,a,i,o,l){let{loaderData:s,errors:c}=Do(t,r,n,a,l);for(let u=0;u<i.length;u++){let{key:f,match:p,controller:g}=i[u];U(o!==void 0&&o[u]!==void 0,"Did not find corresponding fetcher result");let E=o[u];if(!(g&&g.signal.aborted))if(at(E)){let x=vt(e.matches,p?.route.id);c&&c[x.route.id]||(c=X({},c,{[x.route.id]:E.error})),e.fetchers.delete(f)}else if(Ke(E))U(!1,"Unhandled fetcher revalidation redirect");else if(We(E))U(!1,"Unhandled fetcher deferred data");else{let x=Oe(E.data);e.fetchers.set(f,x)}}return{loaderData:s,errors:c}}function En(e,t,r,n){let a=X({},t);for(let i of r){let o=i.route.id;if(t.hasOwnProperty(o)?t[o]!==void 0&&(a[o]=t[o]):e[o]!==void 0&&i.route.loader&&(a[o]=e[o]),n&&n.hasOwnProperty(o))break}return a}function vt(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 bn(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 me(e,t){let{pathname:r,routeId:n,method:a,type:i}=t===void 0?{}:t,o="Unknown Server Error",l="Unknown @remix-run/router error";return e===400?(o="Bad Request",a&&r&&n?l="You made a "+a+' request to "'+r+'" but '+('did not provide a `loader` for route "'+n+'", ')+"so there is no way to handle the request.":i==="defer-action"?l="defer() is not supported in actions":i==="invalid-body"&&(l="Unable to encode submission body")):e===403?(o="Forbidden",l='Route "'+n+'" does not match URL "'+r+'"'):e===404?(o="Not Found",l='No route matches URL "'+r+'"'):e===405&&(o="Method Not Allowed",a&&r&&n?l="You made a "+a.toUpperCase()+' request to "'+r+'" but '+('did not provide an `action` for route "'+n+'", ')+"so there is no way to handle the request.":a&&(l='Invalid request method "'+a.toUpperCase()+'"')),new we(e||500,o,new Error(l),!0)}function _n(e){for(let t=e.length-1;t>=0;t--){let r=e[t];if(Ke(r))return{result:r,idx:t}}}function Mn(e){let t=typeof e=="string"?oe(e):e;return ve(X({},t,{hash:""}))}function Co(e,t){return e.pathname!==t.pathname||e.search!==t.search?!1:e.hash===""?t.hash!=="":e.hash===t.hash?!0:t.hash!==""}function We(e){return e.type===G.deferred}function at(e){return e.type===G.error}function Ke(e){return(e&&e.type)===G.redirect}function Lo(e){let t=e;return t&&typeof t=="object"&&typeof t.data=="object"&&typeof t.subscribe=="function"&&typeof t.cancel=="function"&&typeof t.resolveData=="function"}function Po(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.headers=="object"&&typeof e.body<"u"}function Ao(e){return wo.has(e.toLowerCase())}function ge(e){return Ro.has(e.toLowerCase())}async function Sn(e,t,r,n,a,i){for(let o=0;o<r.length;o++){let l=r[o],s=t[o];if(!s)continue;let c=e.find(f=>f.route.id===s.route.id),u=c!=null&&!On(c,s)&&(i&&i[s.route.id])!==void 0;if(We(l)&&(a||u)){let f=n[o];U(f,"Expected an AbortSignal for revalidating fetcher deferred result"),await Un(l,f,a).then(p=>{p&&(r[o]=p||r[o])})}}}async function Un(e,t,r){if(r===void 0&&(r=!1),!await e.deferredData.resolveData(t)){if(r)try{return{type:G.data,data:e.deferredData.unwrappedData}}catch(a){return{type:G.error,error:a}}return{type:G.data,data:e.deferredData.data}}}function br(e){return new URLSearchParams(e).getAll("index").some(t=>t==="")}function gr(e,t){let r=typeof t=="string"?oe(t).search:t.search;if(e[e.length-1].route.index&&br(r||""))return e[e.length-1];let n=Cn(e);return n[n.length-1]}function xn(e){let{formMethod:t,formAction:r,formEncType:n,text:a,formData:i,json:o}=e;if(!(!t||!r||!n)){if(a!=null)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:void 0,text:a};if(i!=null)return{formMethod:t,formAction:r,formEncType:n,formData:i,json:void 0,text:void 0};if(o!==void 0)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:o,text:void 0}}}function pr(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 Fo(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 pt(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 Oo(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 Oe(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 Mo(e,t){try{let r=e.sessionStorage.getItem(Fn);if(r){let n=JSON.parse(r);for(let[a,i]of Object.entries(n||{}))i&&Array.isArray(i)&&t.set(a,new Set(i||[]))}}catch{}}function Uo(e,t){if(t.size>0){let r={};for(let[n,a]of t)r[n]=[...a];try{e.sessionStorage.setItem(Fn,JSON.stringify(r))}catch(n){Je(!1,"Failed to save applied view transitions in sessionStorage ("+n+").")}}}var J,fn,G,Ga,qa,eo,to,ro,no,ao,mn,pe,ho,mo,po,_e,Mt,It,we,Ln,Ro,go,wo,Eo,bo,mr,Pn,nt,An,_o,Fn,rl,ke=fr(()=>{B();(function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"})(J||(J={}));fn="popstate";(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(G||(G={}));Ga=new Set(["lazy","caseSensitive","path","id","index","children"]);qa=/^:[\w-]+$/,eo=3,to=2,ro=1,no=10,ao=-2,mn=e=>e==="*";pe=e=>e.join("/").replace(/\/\/+/g,"/"),ho=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),mo=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,po=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e,_e=class extends Error{},Mt=class{constructor(t,r){this.pendingKeysSet=new Set,this.subscribers=new Set,this.deferredKeys=[],U(t&&typeof t=="object"&&!Array.isArray(t),"defer() only accepts plain objects");let n;this.abortPromise=new Promise((i,o)=>n=o),this.controller=new AbortController;let a=()=>n(new _e("Deferred data aborted"));this.unlistenAbortSignal=()=>this.controller.signal.removeEventListener("abort",a),this.controller.signal.addEventListener("abort",a),this.data=Object.entries(t).reduce((i,o)=>{let[l,s]=o;return Object.assign(i,{[l]:this.trackPromise(l,s)})},{}),this.done&&this.unlistenAbortSignal(),this.init=r}trackPromise(t,r){if(!(r instanceof Promise))return r;this.deferredKeys.push(t),this.pendingKeysSet.add(t);let n=Promise.race([r,this.abortPromise]).then(a=>this.onSettle(n,t,void 0,a),a=>this.onSettle(n,t,a));return n.catch(()=>{}),Object.defineProperty(n,"_tracked",{get:()=>!0}),n}onSettle(t,r,n,a){if(this.controller.signal.aborted&&n instanceof _e)return this.unlistenAbortSignal(),Object.defineProperty(t,"_error",{get:()=>n}),Promise.reject(n);if(this.pendingKeysSet.delete(r),this.done&&this.unlistenAbortSignal(),n===void 0&&a===void 0){let i=new Error('Deferred data for key "'+r+'" resolved/rejected with `undefined`, you must resolve/reject with a value or `null`.');return Object.defineProperty(t,"_error",{get:()=>i}),this.emit(!1,r),Promise.reject(i)}return a===void 0?(Object.defineProperty(t,"_error",{get:()=>n}),this.emit(!1,r),Promise.reject(n)):(Object.defineProperty(t,"_data",{get:()=>a}),this.emit(!1,r),a)}emit(t,r){this.subscribers.forEach(n=>n(t,r))}subscribe(t){return this.subscribers.add(t),()=>this.subscribers.delete(t)}cancel(){this.controller.abort(),this.pendingKeysSet.forEach((t,r)=>this.pendingKeysSet.delete(r)),this.emit(!0)}async resolveData(t){let r=!1;if(!this.done){let n=()=>this.cancel();t.addEventListener("abort",n),r=await new Promise(a=>{this.subscribe(i=>{t.removeEventListener("abort",n),(i||this.done)&&a(i)})})}return r}get done(){return this.pendingKeysSet.size===0}get unwrappedData(){return U(this.data!==null&&this.done,"Can only unwrap data on initialized and settled deferreds"),Object.entries(this.data).reduce((t,r)=>{let[n,a]=r;return Object.assign(t,{[n]:yo(a)})},{})}get pendingKeys(){return Array.from(this.pendingKeysSet)}};It=function(t,r){r===void 0&&(r=302);let n=r;typeof n=="number"?n={status:n}:typeof n.status>"u"&&(n.status=302);let a=new Headers(n.headers);return a.set("Location",t),new Response(null,X({},n,{headers:a}))},we=class{constructor(t,r,n,a){a===void 0&&(a=!1),this.status=t,this.statusText=r||"",this.internal=a,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}};Ln=["post","put","patch","delete"],Ro=new Set(Ln),go=["get",...Ln],wo=new Set(go),Eo=new Set([301,302,303,307,308]),bo=new Set([307,308]),mr={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},Pn={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},nt={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},An=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,_o=e=>({hasErrorBoundary:Boolean(e.hasErrorBoundary)}),Fn="remix-router-transitions";rl=Symbol("deferred")});function Rt(){return Rt=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Rt.apply(this,arguments)}function Ye(e,t){let{relative:r}=t===void 0?{}:t;ot()||U(!1);let{basename:n,navigator:a}=w.useContext(fe),{hash:i,pathname:o,search:l}=Ie(e,{relative:r}),s=o;return n!=="/"&&(s=o==="/"?n:pe([n,o])),a.createHref({pathname:s,search:l,hash:i})}function ot(){return w.useContext(gt)!=null}function ie(){return ot()||U(!1),w.useContext(gt).location}function Hn(e){w.useContext(fe).static||w.useLayoutEffect(e)}function Bt(){let{isDataRoute:e}=w.useContext(Re);return e?Ko():Ho()}function Ho(){ot()||U(!1);let e=w.useContext(De),{basename:t,future:r,navigator:n}=w.useContext(fe),{matches:a}=w.useContext(Re),{pathname:i}=ie(),o=JSON.stringify(kt(a,r.v7_relativeSplatPath)),l=w.useRef(!1);return Hn(()=>{l.current=!0}),w.useCallback(function(c,u){if(u===void 0&&(u={}),!l.current)return;if(typeof c=="number"){n.go(c);return}let f=Tt(c,JSON.parse(o),i,u.relative==="path");e==null&&t!=="/"&&(f.pathname=f.pathname==="/"?t:pe([t,f.pathname])),(u.replace?n.replace:n.push)(f,u.state,u)},[t,n,o,i,e])}function xr(e){let t=w.useContext(Re).outlet;return t&&w.createElement(jo.Provider,{value:e},t)}function jn(){let{matches:e}=w.useContext(Re),t=e[e.length-1];return t?t.params:{}}function Ie(e,t){let{relative:r}=t===void 0?{}:t,{future:n}=w.useContext(fe),{matches:a}=w.useContext(Re),{pathname:i}=ie(),o=JSON.stringify(kt(a,n.v7_relativeSplatPath));return w.useMemo(()=>Tt(e,JSON.parse(o),i,r==="path"),[e,o,i,r])}function Bn(e,t,r,n){ot()||U(!1);let{navigator:a}=w.useContext(fe),{matches:i}=w.useContext(Re),o=i[i.length-1],l=o?o.params:{},s=o?o.pathname:"/",c=o?o.pathnameBase:"/",u=o&&o.route,f=ie(),p;if(t){var g;let R=typeof t=="string"?oe(t):t;c==="/"||(g=R.pathname)!=null&&g.startsWith(c)||U(!1),p=R}else p=f;let E=p.pathname||"/",x=c==="/"?E:E.slice(c.length)||"/",y=ae(e,{pathname:x}),_=zo(y&&y.map(R=>Object.assign({},R,{params:Object.assign({},l,R.params),pathname:pe([c,a.encodeLocation?a.encodeLocation(R.pathname).pathname:R.pathname]),pathnameBase:R.pathnameBase==="/"?c:pe([c,a.encodeLocation?a.encodeLocation(R.pathnameBase).pathname:R.pathnameBase])})),i,r,n);return t&&_?w.createElement(gt.Provider,{value:{location:Rt({pathname:"/",search:"",hash:"",state:null,key:"default"},p),navigationType:J.Pop}},_):_}function Bo(){let e=Et(),t=Ue(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},i={padding:"2px 4px",backgroundColor:n};return w.createElement(w.Fragment,null,w.createElement("h2",null,"Unexpected Application Error!"),w.createElement("h3",{style:{fontStyle:"italic"}},t),r?w.createElement("pre",{style:a},r):null,null)}function $o(e){let{routeContext:t,match:r,children:n}=e,a=w.useContext(De);return a&&a.static&&a.staticContext&&(r.route.errorElement||r.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=r.route.id),w.createElement(Re.Provider,{value:t},n)}function zo(e,t,r,n){var a;if(t===void 0&&(t=[]),r===void 0&&(r=null),n===void 0&&(n=null),e==null){var i;if((i=r)!=null&&i.errors)e=r.matches;else return null}let o=e,l=(a=r)==null?void 0:a.errors;if(l!=null){let u=o.findIndex(f=>f.route.id&&l?.[f.route.id]);u>=0||U(!1),o=o.slice(0,Math.min(o.length,u+1))}let s=!1,c=-1;if(r&&n&&n.v7_partialHydration)for(let u=0;u<o.length;u++){let f=o[u];if((f.route.HydrateFallback||f.route.hydrateFallbackElement)&&(c=u),f.route.id){let{loaderData:p,errors:g}=r,E=f.route.loader&&p[f.route.id]===void 0&&(!g||g[f.route.id]===void 0);if(f.route.lazy||E){s=!0,c>=0?o=o.slice(0,c+1):o=[o[0]];break}}}return o.reduceRight((u,f,p)=>{let g,E=!1,x=null,y=null;r&&(g=l&&f.route.id?l[f.route.id]:void 0,x=f.route.errorElement||Vo,s&&(c<0&&p===0?(Jo("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),E=!0,y=null):c===p&&(E=!0,y=f.route.hydrateFallbackElement||null)));let _=t.concat(o.slice(0,p+1)),R=()=>{let D;return g?D=x:E?D=y:f.route.Component?D=w.createElement(f.route.Component,null):f.route.element?D=f.route.element:D=u,w.createElement($o,{match:f,routeContext:{outlet:u,matches:_,isDataRoute:r!=null},children:D})};return r&&(f.route.ErrorBoundary||f.route.errorElement||p===0)?w.createElement(_r,{location:r.location,revalidation:r.revalidation,component:x,error:g,children:R(),routeContext:{outlet:null,matches:_,isDataRoute:!0}}):R()},null)}function Vn(e){let t=w.useContext(De);return t||U(!1),t}function Xe(e){let t=w.useContext(Te);return t||U(!1),t}function Wo(e){let t=w.useContext(Re);return t||U(!1),t}function wt(e){let t=Wo(e),r=t.matches[t.matches.length-1];return r.route.id||U(!1),r.route.id}function Dr(){return wt(de.UseRouteId)}function it(){return Xe(de.UseNavigation).navigation}function $n(){let e=Vn(Nr.UseRevalidator),t=Xe(de.UseRevalidator);return w.useMemo(()=>({revalidate:e.router.revalidate,state:t.revalidation}),[e.router.revalidate,t.revalidation])}function lt(){let{matches:e,loaderData:t}=Xe(de.UseMatches);return w.useMemo(()=>e.map(r=>Er(r,t)),[e,t])}function Cr(){let e=Xe(de.UseLoaderData),t=wt(de.UseLoaderData);if(e.errors&&e.errors[t]!=null){console.error("You cannot `useLoaderData` in an errorElement (routeId: "+t+")");return}return e.loaderData[t]}function Lr(e){return Xe(de.UseRouteLoaderData).loaderData[e]}function Pr(){let e=Xe(de.UseActionData),t=wt(de.UseLoaderData);return e.actionData?e.actionData[t]:void 0}function Et(){var e;let t=w.useContext(In),r=Xe(de.UseRouteError),n=wt(de.UseRouteError);return t!==void 0?t:(e=r.errors)==null?void 0:e[n]}function Ar(){let e=w.useContext(jt);return e?._data}function Vt(){let e=w.useContext(jt);return e?._error}function Ko(){let{router:e}=Vn(Nr.UseNavigateStable),t=wt(de.UseNavigateStable),r=w.useRef(!1);return Hn(()=>{r.current=!0}),w.useCallback(function(a,i){i===void 0&&(i={}),r.current&&(typeof a=="number"?e.navigate(a):e.navigate(a,Rt({fromRouteId:t},i)))},[e,t])}function Jo(e,t,r){!t&&!kn[e]&&(kn[e]=!0)}function zn(e){return xr(e.context)}function Fr(e){let{basename:t="/",children:r=null,location:n,navigationType:a=J.Pop,navigator:i,static:o=!1,future:l}=e;ot()&&U(!1);let s=t.replace(/^\/*/,"/"),c=w.useMemo(()=>({basename:s,navigator:i,static:o,future:Rt({v7_relativeSplatPath:!1},l)}),[s,l,i,o]);typeof n=="string"&&(n=oe(n));let{pathname:u="/",search:f="",hash:p="",state:g=null,key:E="default"}=n,x=w.useMemo(()=>{let y=le(u,s);return y==null?null:{location:{pathname:y,search:f,hash:p,state:g,key:E},navigationType:a}},[s,u,f,p,g,E,a]);return x==null?null:w.createElement(fe.Provider,{value:c},w.createElement(gt.Provider,{children:r,value:x}))}function Or(e){let{children:t,errorElement:r,resolve:n}=e;return w.createElement(Sr,{resolve:n,errorElement:r},w.createElement(Go,null,t))}function Go(e){let{children:t}=e,r=Ar(),n=typeof t=="function"?t(r):t;return w.createElement(w.Fragment,null,n)}function Mr(e){let t={hasErrorBoundary:e.ErrorBoundary!=null||e.errorElement!=null};return e.Component&&Object.assign(t,{element:w.createElement(e.Component),Component:void 0}),e.HydrateFallback&&Object.assign(t,{hydrateFallbackElement:w.createElement(e.HydrateFallback),HydrateFallback:void 0}),e.ErrorBoundary&&Object.assign(t,{errorElement:w.createElement(e.ErrorBoundary),ErrorBoundary:void 0}),t}var w,De,Te,jt,fe,gt,Re,In,jo,Vo,_r,Nr,de,kn,Yo,sl,ye,Xo,Sr,$t=fr(()=>{B();w=Ne(Fe());ke();ke();De=w.createContext(null),Te=w.createContext(null),jt=w.createContext(null),fe=w.createContext(null),gt=w.createContext(null),Re=w.createContext({outlet:null,matches:[],isDataRoute:!1}),In=w.createContext(null);jo=w.createContext(null);Vo=w.createElement(Bo,null),_r=class extends w.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,r){return r.location!==t.location||r.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:r.error,location:r.location,revalidation:t.revalidation||r.revalidation}}componentDidCatch(t,r){console.error("React Router caught the following error during render",t,r)}render(){return this.state.error!==void 0?w.createElement(Re.Provider,{value:this.props.routeContext},w.createElement(In.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};Nr=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(Nr||{}),de=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(de||{});kn={};Yo="startTransition",sl=w[Yo];ye=function(e){return e[e.pending=0]="pending",e[e.success=1]="success",e[e.error=2]="error",e}(ye||{}),Xo=new Promise(()=>{}),Sr=class extends w.Component{constructor(t){super(t),this.state={error:null}}static getDerivedStateFromError(t){return{error:t}}componentDidCatch(t,r){console.error("<Await> caught the following error during render",t,r)}render(){let{children:t,errorElement:r,resolve:n}=this.props,a=null,i=ye.pending;if(!(n instanceof Promise))i=ye.success,a=Promise.resolve(),Object.defineProperty(a,"_tracked",{get:()=>!0}),Object.defineProperty(a,"_data",{get:()=>n});else if(this.state.error){i=ye.error;let o=this.state.error;a=Promise.reject().catch(()=>{}),Object.defineProperty(a,"_tracked",{get:()=>!0}),Object.defineProperty(a,"_error",{get:()=>o})}else n._tracked?(a=n,i=a._error!==void 0?ye.error:a._data!==void 0?ye.success:ye.pending):(i=ye.pending,Object.defineProperty(n,"_tracked",{get:()=>!0}),a=n.then(o=>Object.defineProperty(n,"_data",{get:()=>o}),o=>Object.defineProperty(n,"_error",{get:()=>o})));if(i===ye.error&&a._error instanceof _e)throw Xo;if(i===ye.error&&!r)throw a._error;if(i===ye.error)return w.createElement(jt.Provider,{value:a,children:r});if(i===ye.success)return w.createElement(jt.Provider,{value:a,children:t});throw a}}});function Ge(){return Ge=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Ge.apply(this,arguments)}function Hr(e,t){if(e==null)return{};var r={},n=Object.keys(e),a,i;for(i=0;i<n.length;i++)a=n[i],!(t.indexOf(a)>=0)&&(r[a]=e[a]);return r}function Jt(e){return e!=null&&typeof e.tagName=="string"}function ri(e){return Jt(e)&&e.tagName.toLowerCase()==="button"}function ni(e){return Jt(e)&&e.tagName.toLowerCase()==="form"}function ai(e){return Jt(e)&&e.tagName.toLowerCase()==="input"}function oi(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function ii(e,t){return e.button===0&&(!t||t==="_self")&&!oi(e)}function li(){if(zt===null)try{new FormData(document.createElement("form"),0),zt=!1}catch{zt=!0}return zt}function kr(e){return e!=null&&!si.has(e)?null:e}function ui(e,t){let r,n,a,i,o;if(ni(e)){let l=e.getAttribute("action");n=l?le(l,t):null,r=e.getAttribute("method")||Kt,a=kr(e.getAttribute("enctype"))||Ur,i=new FormData(e)}else if(ri(e)||ai(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?le(s,t):null,r=e.getAttribute("formmethod")||l.getAttribute("method")||Kt,a=kr(e.getAttribute("formenctype"))||kr(l.getAttribute("enctype"))||Ur,i=new FormData(l,e),!li()){let{name:c,type:u,value:f}=e;if(u==="image"){let p=c?c+".":"";i.append(p+"x","0"),i.append(p+"y","0")}else c&&i.append(c,f)}}else{if(Jt(e))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');r=Kt,n=null,a=Ur,o=e}return i&&a==="text/plain"&&(o=i,i=void 0),{action:n,method:r.toLowerCase(),encType:a,formData:i,body:o}}function Ri(e){Wn?Wn(e):e()}function bt(e){Kn?Kn(e):e()}function Gn(e){let{fallbackElement:t,router:r,future:n}=e,[a,i]=C.useState(r.state),[o,l]=C.useState(),[s,c]=C.useState({isTransitioning:!1}),[u,f]=C.useState(),[p,g]=C.useState(),[E,x]=C.useState(),y=C.useRef(new Map),{v7_startTransition:_}=n||{},R=C.useCallback(N=>{_?Ri(N):N()},[_]),D=C.useCallback((N,T)=>{let{deletedFetchers:A,unstable_flushSync:$,unstable_viewTransitionOpts:W}=T;A.forEach(Y=>y.current.delete(Y)),N.fetchers.forEach((Y,ue)=>{Y.data!==void 0&&y.current.set(ue,Y.data)});let ne=r.window==null||typeof r.window.document.startViewTransition!="function";if(!W||ne){$?bt(()=>i(N)):R(()=>i(N));return}if($){bt(()=>{p&&(u&&u.resolve(),p.skipTransition()),c({isTransitioning:!0,flushSync:!0,currentLocation:W.currentLocation,nextLocation:W.nextLocation})});let Y=r.window.document.startViewTransition(()=>{bt(()=>i(N))});Y.finished.finally(()=>{bt(()=>{f(void 0),g(void 0),l(void 0),c({isTransitioning:!1})})}),bt(()=>g(Y));return}p?(u&&u.resolve(),p.skipTransition(),x({state:N,currentLocation:W.currentLocation,nextLocation:W.nextLocation})):(l(N),c({isTransitioning:!0,flushSync:!1,currentLocation:W.currentLocation,nextLocation:W.nextLocation}))},[r.window,p,u,y,R]);C.useLayoutEffect(()=>r.subscribe(D),[r,D]),C.useEffect(()=>{s.isTransitioning&&!s.flushSync&&f(new Tr)},[s]),C.useEffect(()=>{if(u&&o&&r.window){let N=o,T=u.promise,A=r.window.document.startViewTransition(async()=>{R(()=>i(N)),await T});A.finished.finally(()=>{f(void 0),g(void 0),l(void 0),c({isTransitioning:!1})}),g(A)}},[R,o,u,r.window]),C.useEffect(()=>{u&&o&&a.location.key===o.location.key&&u.resolve()},[u,p,a.location,o]),C.useEffect(()=>{!s.isTransitioning&&E&&(l(E.state),c({isTransitioning:!0,flushSync:!1,currentLocation:E.currentLocation,nextLocation:E.nextLocation}),x(void 0))},[s.isTransitioning,E]),C.useEffect(()=>{},[]);let k=C.useMemo(()=>({createHref:r.createHref,encodeLocation:r.encodeLocation,go:N=>r.navigate(N),push:(N,T,A)=>r.navigate(N,{state:T,preventScrollReset:A?.preventScrollReset}),replace:(N,T,A)=>r.navigate(N,{replace:!0,state:T,preventScrollReset:A?.preventScrollReset})}),[r]),P=r.basename||"/",h=C.useMemo(()=>({router:r,navigator:k,static:!1,basename:P}),[r,k,P]);return C.createElement(C.Fragment,null,C.createElement(De.Provider,{value:h},C.createElement(Te.Provider,{value:a},C.createElement(mi.Provider,{value:y.current},C.createElement(Xn.Provider,{value:s},C.createElement(Fr,{basename:P,location:a.location,navigationType:a.historyAction,navigator:k,future:{v7_relativeSplatPath:r.future.v7_relativeSplatPath}},a.initialized||r.future.v7_partialHydration?C.createElement(gi,{routes:r.routes,future:r.future,state:a}):t))))),null)}function gi(e){let{routes:t,future:r,state:n}=e;return Bn(t,void 0,n,r)}function Br(e){let t=C.useContext(De);return t||U(!1),t}function _i(e){let t=C.useContext(Te);return t||U(!1),t}function Si(e,t){let{target:r,replace:n,state:a,preventScrollReset:i,relative:o,unstable_viewTransition:l}=t===void 0?{}:t,s=Bt(),c=ie(),u=Ie(e,{relative:o});return C.useCallback(f=>{if(ii(f,r)){f.preventDefault();let p=n!==void 0?n:ve(c)===ve(u);s(e,{replace:p,state:a,preventScrollReset:i,relative:o,unstable_viewTransition:l})}},[c,s,u,n,a,r,e,i,o,l])}function xi(){if(typeof document>"u")throw new Error("You are calling submit during the server render. Try calling submit within a `useEffect` or callback instead.")}function Zn(){let{router:e}=Br(_t.UseSubmit),{basename:t}=C.useContext(fe),r=Dr();return C.useCallback(function(n,a){a===void 0&&(a={}),xi();let{action:i,method:o,encType:l,formData:s,body:c}=ui(n,t);if(a.navigate===!1){let u=a.fetcherKey||Di();e.fetch(u,r,a.action||i,{preventScrollReset:a.preventScrollReset,formData:s,body:c,formMethod:a.method||o,formEncType:a.encType||l,unstable_flushSync:a.unstable_flushSync})}else e.navigate(a.action||i,{preventScrollReset:a.preventScrollReset,formData:s,body:c,formMethod:a.method||o,formEncType:a.encType||l,replace:a.replace,state:a.state,fromRouteId:r,unstable_flushSync:a.unstable_flushSync,unstable_viewTransition:a.unstable_viewTransition})},[e,t,r])}function qn(e,t){let{relative:r}=t===void 0?{}:t,{basename:n}=C.useContext(fe),a=C.useContext(Re);a||U(!1);let[i]=a.matches.slice(-1),o=Ge({},Ie(e||".",{relative:r})),l=ie();if(e==null){o.search=l.search;let s=new URLSearchParams(o.search);s.has("index")&&s.get("index")===""&&(s.delete("index"),o.search=s.toString()?"?"+s.toString():"")}return(!e||e===".")&&i.route.index&&(o.search=o.search?o.search.replace(/^\?/,"?index&"):"?index"),n!=="/"&&(o.pathname=o.pathname==="/"?n:pe([n,o.pathname])),ve(o)}function ea(e){let{getKey:t,storageKey:r}=e===void 0?{}:e,{router:n}=Br(_t.UseScrollRestoration),{restoreScrollPosition:a,preventScrollReset:i}=_i(Ir.UseScrollRestoration),{basename:o}=C.useContext(fe),l=ie(),s=lt(),c=it();C.useEffect(()=>(window.history.scrollRestoration="manual",()=>{window.history.scrollRestoration="auto"}),[]),Ci(C.useCallback(()=>{if(c.state==="idle"){let u=(t?t(l,s):null)||l.key;Wt[u]=window.scrollY}try{sessionStorage.setItem(r||Jn,JSON.stringify(Wt))}catch{}window.history.scrollRestoration="auto"},[r,t,c.state,l,s])),typeof document<"u"&&(C.useLayoutEffect(()=>{try{let u=sessionStorage.getItem(r||Jn);u&&(Wt=JSON.parse(u))}catch{}},[r]),C.useLayoutEffect(()=>{let u=t&&o!=="/"?(p,g)=>t(Ge({},p,{pathname:le(p.pathname,o)||p.pathname}),g):t,f=n?.enableScrollRestoration(Wt,()=>window.scrollY,u);return()=>f&&f()},[n,o,t]),C.useLayoutEffect(()=>{if(a!==!1){if(typeof a=="number"){window.scrollTo(0,a);return}if(l.hash){let u=document.getElementById(decodeURIComponent(l.hash.slice(1)));if(u){u.scrollIntoView();return}}i!==!0&&window.scrollTo(0,0)}},[l,a,i]))}function Ci(e,t){let{capture:r}=t||{};C.useEffect(()=>{let n=r!=null?{capture:r}:void 0;return window.addEventListener("pagehide",e,n),()=>{window.removeEventListener("pagehide",e,n)}},[e,r])}function ta(e,t){t===void 0&&(t={});let r=C.useContext(Xn);r==null&&U(!1);let{basename:n}=Br(_t.useViewTransitionState),a=Ie(e,{relative:t.relative});if(!r.isTransitioning)return!1;let i=le(r.currentLocation.pathname,n)||r.currentLocation.pathname,o=le(r.nextLocation.pathname,n)||r.nextLocation.pathname;return Me(a.pathname,o)!=null||Me(a.pathname,i)!=null}var C,ti,Kt,Ur,zt,si,ci,di,fi,hi,Xn,mi,pi,Wn,vi,Kn,yi,_l,Tr,wi,Ei,jr,Qn,bi,_t,Ir,Ni,Di,Jn,Wt,He=fr(()=>{B();C=Ne(Fe()),ti=Ne(Ja());$t();$t();ke();Kt="get",Ur="application/x-www-form-urlencoded";zt=null;si=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);ci=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","unstable_viewTransition"],di=["aria-current","caseSensitive","className","end","style","to","unstable_viewTransition","children"],fi=["fetcherKey","navigate","reloadDocument","replace","state","method","action","onSubmit","relative","preventScrollReset","unstable_viewTransition"],hi="6";try{window.__reactRouterVersion=hi}catch{}Xn=C.createContext({isTransitioning:!1}),mi=C.createContext(new Map),pi="startTransition",Wn=C[pi],vi="flushSync",Kn=ti[vi],yi="useId",_l=C[yi];Tr=class{constructor(){this.status="pending",this.promise=new Promise((t,r)=>{this.resolve=n=>{this.status==="pending"&&(this.status="resolved",t(n))},this.reject=n=>{this.status==="pending"&&(this.status="rejected",r(n))}})}};wi=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",Ei=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,jr=C.forwardRef(function(t,r){let{onClick:n,relative:a,reloadDocument:i,replace:o,state:l,target:s,to:c,preventScrollReset:u,unstable_viewTransition:f}=t,p=Hr(t,ci),{basename:g}=C.useContext(fe),E,x=!1;if(typeof c=="string"&&Ei.test(c)&&(E=c,wi))try{let D=new URL(window.location.href),k=c.startsWith("//")?new URL(D.protocol+c):new URL(c),P=le(k.pathname,g);k.origin===D.origin&&P!=null?c=P+k.search+k.hash:x=!0}catch{}let y=Ye(c,{relative:a}),_=Si(c,{replace:o,state:l,target:s,preventScrollReset:u,relative:a,unstable_viewTransition:f});function R(D){n&&n(D),D.defaultPrevented||_(D)}return C.createElement("a",Ge({},p,{href:E||y,onClick:x||i?n:R,ref:r,target:s}))}),Qn=C.forwardRef(function(t,r){let{"aria-current":n="page",caseSensitive:a=!1,className:i="",end:o=!1,style:l,to:s,unstable_viewTransition:c,children:u}=t,f=Hr(t,di),p=Ie(s,{relative:f.relative}),g=ie(),E=C.useContext(Te),{navigator:x,basename:y}=C.useContext(fe),_=E!=null&&ta(p)&&c===!0,R=x.encodeLocation?x.encodeLocation(p).pathname:p.pathname,D=g.pathname,k=E&&E.navigation&&E.navigation.location?E.navigation.location.pathname:null;a||(D=D.toLowerCase(),k=k?k.toLowerCase():null,R=R.toLowerCase()),k&&y&&(k=le(k,y)||k);let P=R!=="/"&&R.endsWith("/")?R.length-1:R.length,h=D===R||!o&&D.startsWith(R)&&D.charAt(P)==="/",N=k!=null&&(k===R||!o&&k.startsWith(R)&&k.charAt(R.length)==="/"),T={isActive:h,isPending:N,isTransitioning:_},A=h?n:void 0,$;typeof i=="function"?$=i(T):$=[i,h?"active":null,N?"pending":null,_?"transitioning":null].filter(Boolean).join(" ");let W=typeof l=="function"?l(T):l;return C.createElement(jr,Ge({},f,{"aria-current":A,className:$,ref:r,style:W,to:s,unstable_viewTransition:c}),typeof u=="function"?u(T):u)}),bi=C.forwardRef((e,t)=>{let{fetcherKey:r,navigate:n,reloadDocument:a,replace:i,state:o,method:l=Kt,action:s,onSubmit:c,relative:u,preventScrollReset:f,unstable_viewTransition:p}=e,g=Hr(e,fi),E=Zn(),x=qn(s,{relative:u}),y=l.toLowerCase()==="get"?"get":"post";return C.createElement("form",Ge({ref:t,method:y,action:x,onSubmit:a?c:R=>{if(c&&c(R),R.defaultPrevented)return;R.preventDefault();let D=R.nativeEvent.submitter,k=D?.getAttribute("formmethod")||l;E(D||R.currentTarget,{fetcherKey:r,method:k,navigate:n,replace:i,state:o,relative:u,preventScrollReset:f,unstable_viewTransition:p})}},g))});(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(_t||(_t={}));(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(Ir||(Ir={}));Ni=0,Di=()=>"__"+String(++Ni)+"__";Jn="react-router-scroll-positions",Wt={}});B();ke();var se=Ne(Fe());$t();He();B();B();function Q(){return Q=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Q.apply(this,arguments)}var b=Ne(Fe());He();B();function Ce(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}B();He();B();async function Yt(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{return window.__remixContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function ra(e,t,r){let n=e.map(i=>{var o;let l=t[i.route.id],s=r.routes[i.route.id];return[s.css?s.css.map(c=>({rel:"stylesheet",href:c})):[],(l==null||(o=l.links)===null||o===void 0?void 0:o.call(l))||[]]}).flat(2),a=Ai(e,r);return ia(n,a)}async function Vr(e,t){var r,n;if(!e.css&&!t.links||!Oi())return;let a=[((r=e.css)===null||r===void 0?void 0:r.map(l=>({rel:"stylesheet",href:l})))??[],((n=t.links)===null||n===void 0?void 0:n.call(t))??[]].flat(1);if(a.length===0)return;let i=[];for(let l of a)!Gt(l)&&l.rel==="stylesheet"&&i.push({...l,rel:"preload",as:"style"});let o=i.filter(l=>(!l.media||window.matchMedia(l.media).matches)&&!document.querySelector(`link[rel="stylesheet"][href="${l.href}"]`));await Promise.all(o.map(Li))}async function Li(e){return new Promise(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 Gt(e){return e!=null&&typeof e.page=="string"}function Pi(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 na(e,t,r){let n=await Promise.all(e.map(async a=>{let i=await Yt(t.routes[a.route.id],r);return i.links?i.links():[]}));return ia(n.flat(1).filter(Pi).filter(a=>a.rel==="stylesheet"||a.rel==="preload").map(a=>a.rel==="stylesheet"?{...a,rel:"prefetch",as:"style"}:{...a,rel:"prefetch"}))}function $r(e,t,r,n,a,i){let o=la(e),l=(u,f)=>r[f]?u.route.id!==r[f].route.id:!0,s=(u,f)=>{var p;return r[f].pathname!==u.pathname||((p=r[f].route.path)===null||p===void 0?void 0:p.endsWith("*"))&&r[f].params["*"]!==u.params["*"]};return i==="data"&&a.search!==o.search?t.filter((u,f)=>{if(!n.routes[u.route.id].hasLoader)return!1;if(l(u,f)||s(u,f))return!0;if(u.route.shouldRevalidate){var g;let E=u.route.shouldRevalidate({currentUrl:new URL(a.pathname+a.search+a.hash,window.origin),currentParams:((g=r[0])===null||g===void 0?void 0:g.params)||{},nextUrl:new URL(e,window.origin),nextParams:u.params,defaultShouldRevalidate:!0});if(typeof E=="boolean")return E}return!0}):t.filter((u,f)=>{let p=n.routes[u.route.id];return(i==="assets"||p.hasLoader)&&(l(u,f)||s(u,f))})}function aa(e,t,r){let n=la(e);return zr(t.filter(a=>r.routes[a.route.id].hasLoader).map(a=>{let{pathname:i,search:o}=n,l=new URLSearchParams(o);return l.set("_data",a.route.id),`${i}?${l}`}))}function oa(e,t){return zr(e.map(r=>{let n=t.routes[r.route.id],a=[n.module];return n.imports&&(a=a.concat(n.imports)),a}).flat(1))}function Ai(e,t){return zr(e.map(r=>{let n=t.routes[r.route.id],a=[n.module];return n.imports&&(a=a.concat(n.imports)),a}).flat(1))}function zr(e){return[...new Set(e)]}function Fi(e){let t={},r=Object.keys(e).sort();for(let n of r)t[n]=e[n];return t}function ia(e,t){let r=new Set,n=new Set(t);return e.reduce((a,i)=>{if(t&&!Gt(i)&&i.as==="script"&&i.href&&n.has(i.href))return a;let l=JSON.stringify(Fi(i));return r.has(l)||(r.add(l),a.push({key:l,link:i})),a},[])}function la(e){let t=oe(e);return t.search===void 0&&(t.search=""),t}var Xt;function Oi(){if(Xt!==void 0)return Xt;let e=document.createElement("link");return Xt=e.relList.supports("preload"),e=null,Xt}B();var Mi={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},Ui=/[&><\u2028\u2029]/g;function St(e){return e.replace(Ui,t=>Mi[t])}function Wr(e){return{__html:e}}function ua(){let e=b.useContext(De);return Ce(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function Zt(){let e=b.useContext(Te);return Ce(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}var Nt=b.createContext(void 0);Nt.displayName="Remix";function Qe(){let e=b.useContext(Nt);return Ce(e,"You must render this element inside a <Remix> element"),e}function ca(e,t){let[r,n]=b.useState(!1),[a,i]=b.useState(!1),{onFocus:o,onBlur:l,onMouseEnter:s,onMouseLeave:c,onTouchStart:u}=t,f=b.useRef(null);b.useEffect(()=>{if(e==="render"&&i(!0),e==="viewport"){let E=y=>{y.forEach(_=>{i(_.isIntersecting)})},x=new IntersectionObserver(E,{threshold:.5});return f.current&&x.observe(f.current),()=>{x.disconnect()}}},[e]);let p=()=>{e==="intent"&&n(!0)},g=()=>{e==="intent"&&(n(!1),i(!1))};return b.useEffect(()=>{if(r){let E=setTimeout(()=>{i(!0)},100);return()=>{clearTimeout(E)}}},[r]),[a,f,{onFocus:xt(o,p),onBlur:xt(l,g),onMouseEnter:xt(s,p),onMouseLeave:xt(c,g),onTouchStart:xt(u,p)}]}var da=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,fa=b.forwardRef(({to:e,prefetch:t="none",...r},n)=>{let a=typeof e=="string"&&da.test(e),i=Ye(e),[o,l,s]=ca(t,r);return b.createElement(b.Fragment,null,b.createElement(Qn,Q({},r,s,{ref:pa(n,l),to:e})),o&&!a?b.createElement(qt,{page:i}):null)});fa.displayName="NavLink";var ha=b.forwardRef(({to:e,prefetch:t="none",...r},n)=>{let a=typeof e=="string"&&da.test(e),i=Ye(e),[o,l,s]=ca(t,r);return b.createElement(b.Fragment,null,b.createElement(jr,Q({},r,s,{ref:pa(n,l),to:e})),o&&!a?b.createElement(qt,{page:i}):null)});ha.displayName="Link";function xt(e,t){return r=>{e&&e(r),r.defaultPrevented||t(r)}}function Kr(e,t,r){if(r&&!Qt)return[e[0]];if(t){let n=e.findIndex(a=>t[a.route.id]);return e.slice(0,n+1)}return e}function ki(){let{isSpaMode:e,manifest:t,routeModules:r,criticalCss:n}=Qe(),{errors:a,matches:i}=Zt(),o=Kr(i,a,e),l=b.useMemo(()=>ra(o,r,t),[o,r,t]);return b.createElement(b.Fragment,null,n?b.createElement("style",{dangerouslySetInnerHTML:{__html:n}}):null,l.map(({key:s,link:c})=>Gt(c)?b.createElement(qt,Q({key:s},c)):b.createElement("link",Q({key:s},c))))}function qt({page:e,...t}){let{router:r}=ua(),n=b.useMemo(()=>ae(r.routes,e),[r.routes,e]);return n?b.createElement(Ii,Q({page:e,matches:n},t)):(console.warn(`Tried to prefetch ${e} but no routes matched.`),null)}function Ti(e){let{manifest:t,routeModules:r}=Qe(),[n,a]=b.useState([]);return b.useEffect(()=>{let i=!1;return na(e,t,r).then(o=>{i||a(o)}),()=>{i=!0}},[e,t,r]),n}function Ii({page:e,matches:t,...r}){let n=ie(),{manifest:a}=Qe(),{matches:i}=Zt(),o=b.useMemo(()=>$r(e,t,i,a,n,"data"),[e,t,i,a,n]),l=b.useMemo(()=>$r(e,t,i,a,n,"assets"),[e,t,i,a,n]),s=b.useMemo(()=>aa(e,o,a),[o,e,a]),c=b.useMemo(()=>oa(l,a),[l,a]),u=Ti(l);return b.createElement(b.Fragment,null,s.map(f=>b.createElement("link",Q({key:f,rel:"prefetch",as:"fetch",href:f},r))),c.map(f=>b.createElement("link",Q({key:f,rel:"modulepreload",href:f},r))),u.map(({key:f,link:p})=>b.createElement("link",Q({key:f},p))))}function Hi(){let{isSpaMode:e,routeModules:t}=Qe(),{errors:r,matches:n,loaderData:a}=Zt(),i=ie(),o=Kr(n,r,e),l=null;r&&(l=r[o[o.length-1].route.id]);let s=[],c=null,u=[];for(let f=0;f<o.length;f++){let p=o[f],g=p.route.id,E=a[g],x=p.params,y=t[g],_=[],R={id:g,data:E,meta:[],params:p.params,pathname:p.pathname,handle:p.route.handle,error:l};if(u[f]=R,y!=null&&y.meta?_=typeof y.meta=="function"?y.meta({data:E,params:x,location:i,matches:u,error:l}):Array.isArray(y.meta)?[...y.meta]:y.meta:c&&(_=[...c]),_=_||[],!Array.isArray(_))throw new Error("The route at "+p.route.path+` returns an invalid value. All route meta functions must return an array of meta objects.

To reference the meta function API, see https://remix.run/route/meta`);R.meta=_,u[f]=R,s=[..._],c=s}return b.createElement(b.Fragment,null,s.flat().map(f=>{if(!f)return null;if("tagName"in f){let{tagName:p,...g}=f;return ji(p)?b.createElement(p,Q({key:JSON.stringify(g)},g)):(console.warn(`A meta object uses an invalid tagName: ${p}. Expected either 'link' or 'meta'`),null)}if("title"in f)return b.createElement("title",{key:"title"},String(f.title));if("charset"in f&&(f.charSet??=f.charset,delete f.charset),"charSet"in f&&f.charSet!=null)return typeof f.charSet=="string"?b.createElement("meta",{key:"charSet",charSet:f.charSet}):null;if("script:ld+json"in f)try{let p=JSON.stringify(f["script:ld+json"]);return b.createElement("script",{key:`script:ld+json:${p}`,type:"application/ld+json",dangerouslySetInnerHTML:{__html:p}})}catch{return null}return b.createElement("meta",Q({key:JSON.stringify(f)},f))}))}function ji(e){return typeof e=="string"&&/^(meta|link)$/.test(e)}function ma(e){return b.createElement(Or,e)}var Qt=!1;function Jr(e){let{manifest:t,serverHandoffString:r,abortDelay:n,serializeError:a,isSpaMode:i}=Qe(),{router:o,static:l,staticContext:s}=ua(),{matches:c}=Zt(),u=it(),f=Kr(c,null,i);b.useEffect(()=>{Qt=!0},[]);let p=(P,h)=>{let N;return a&&h instanceof Error?N=a(h):N=h,`${JSON.stringify(P)}:__remixContext.p(!1, ${St(JSON.stringify(N))})`},g=(P,h,N)=>{let T;try{T=JSON.stringify(N)}catch(A){return p(h,A)}return`${JSON.stringify(h)}:__remixContext.p(${St(T)})`},E=(P,h,N)=>{let T;return a&&N instanceof Error?T=a(N):T=N,`__remixContext.r(${JSON.stringify(P)}, ${JSON.stringify(h)}, !1, ${St(JSON.stringify(T))})`},x=(P,h,N)=>{let T;try{T=JSON.stringify(N)}catch(A){return E(P,h,A)}return`__remixContext.r(${JSON.stringify(P)}, ${JSON.stringify(h)}, ${St(T)})`},y=[],_=b.useMemo(()=>{var P;let h=s?`window.__remixContext = ${r};`:" ",N=s?.activeDeferreds;h+=N?["__remixContext.p = function(v,e,p,x) {","  if (typeof e !== 'undefined') {",`    x=new Error("Unexpected Server Error");
    x.stack=undefined;`,"    p=Promise.reject(x);","  } else {","    p=Promise.resolve(v);","  }","  return p;","};","__remixContext.n = function(i,k) {","  __remixContext.t = __remixContext.t || {};","  __remixContext.t[i] = __remixContext.t[i] || {};","  let p = new Promise((r, e) => {__remixContext.t[i][k] = {r:(v)=>{r(v);},e:(v)=>{e(v);}};});",typeof n=="number"?`setTimeout(() => {if(typeof p._error !== "undefined" || typeof p._data !== "undefined"){return;} __remixContext.t[i][k].e(new Error("Server timeout."))}, ${n});`:"","  return p;","};","__remixContext.r = function(i,k,v,e,p,x) {","  p = __remixContext.t[i][k];","  if (typeof e !== 'undefined') {",`    x=new Error("Unexpected Server Error");
    x.stack=undefined;`,"    p.e(x);","  } else {","    p.r(v);","  }","};"].join(`
`)+Object.entries(N).map(([A,$])=>{let W=new Set($.pendingKeys),ne=$.deferredKeys.map(Y=>{if(W.has(Y))return y.push(b.createElement(sa,{key:`${A} | ${Y}`,deferredData:$,routeId:A,dataKey:Y,scriptProps:e,serializeData:x,serializeError:E})),`${JSON.stringify(Y)}:__remixContext.n(${JSON.stringify(A)}, ${JSON.stringify(Y)})`;{let ue=$.data[Y];return typeof ue._error<"u"?p(Y,ue._error):g(A,Y,ue._data)}}).join(`,
`);return`Object.assign(__remixContext.state.loaderData[${JSON.stringify(A)}], {${ne}});`}).join(`
`)+(y.length>0?`__remixContext.a=${y.length};`:""):"";let T=l?`${(P=t.hmr)!==null&&P!==void 0&&P.runtime?`import ${JSON.stringify(t.hmr.runtime)};`:""}import ${JSON.stringify(t.url)};
${f.map((A,$)=>`import * as route${$} from ${JSON.stringify(t.routes[A.route.id].module)};`).join(`
`)}
window.__remixRouteModules = {${f.map((A,$)=>`${JSON.stringify(A.route.id)}:route${$}`).join(",")}};

import(${JSON.stringify(t.entry.module)});`:" ";return b.createElement(b.Fragment,null,b.createElement("script",Q({},e,{suppressHydrationWarning:!0,dangerouslySetInnerHTML:Wr(h),type:void 0})),b.createElement("script",Q({},e,{suppressHydrationWarning:!0,dangerouslySetInnerHTML:Wr(T),type:"module",async:!0})))},[]);if(!l&&typeof __remixContext=="object"&&__remixContext.a)for(let P=0;P<__remixContext.a;P++)y.push(b.createElement(sa,{key:P,scriptProps:e,serializeData:x,serializeError:E}));let R=b.useMemo(()=>{if(u.location){let P=ae(o.routes,u.location);return Ce(P,`No routes match path "${u.location.pathname}"`),P}return[]},[u.location,o.routes]),D=f.concat(R).map(P=>{let h=t.routes[P.route.id];return(h.imports||[]).concat([h.module])}).flat(1),k=Qt?[]:t.entry.imports.concat(D);return Qt?null:b.createElement(b.Fragment,null,b.createElement("link",{rel:"modulepreload",href:t.url,crossOrigin:e.crossOrigin}),b.createElement("link",{rel:"modulepreload",href:t.entry.module,crossOrigin:e.crossOrigin}),Vi(k).map(P=>b.createElement("link",{key:P,rel:"modulepreload",href:P,crossOrigin:e.crossOrigin})),_,y)}function sa({dataKey:e,deferredData:t,routeId:r,scriptProps:n,serializeData:a,serializeError:i}){return typeof document>"u"&&t&&e&&r&&Ce(t.pendingKeys.includes(e),`Deferred data for route ${r} with key ${e} was not pending but tried to render a script for it.`),b.createElement(b.Suspense,{fallback:typeof document>"u"&&t&&e&&r?null:b.createElement("script",Q({},n,{async:!0,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:" "}}))},typeof document>"u"&&t&&e&&r?b.createElement(ma,{resolve:t.data[e],errorElement:b.createElement(Bi,{dataKey:e,routeId:r,scriptProps:n,serializeError:i}),children:o=>b.createElement("script",Q({},n,{async:!0,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:a(r,e,o)}}))}):b.createElement("script",Q({},n,{async:!0,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:" "}})))}function Bi({dataKey:e,routeId:t,scriptProps:r,serializeError:n}){let a=Vt();return b.createElement("script",Q({},r,{suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:n(t,e,a)}}))}function Vi(e){return[...new Set(e)]}function $i(){return Cr()}function zi(e){return Lr(e)}function Wi(){return Pr()}var Ki=()=>null;function pa(...e){return t=>{e.forEach(r=>{typeof r=="function"?r(t):r!=null&&(r.current=t)})}}B();var re=Ne(Fe());He();var er=class extends re.Component{constructor(t){super(t),this.state={error:t.error||null,location:t.location}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,r){return r.location!==t.location?{error:t.error||null,location:t.location}:{error:t.error||r.error,location:r.location}}render(){return this.state.error?re.createElement(Yr,{error:this.state.error}):this.props.children}};function Yr({error:e}){if(console.error(e),Ue(e))return re.createElement(va,{title:"Unhandled Thrown Response!"},re.createElement("h1",{style:{fontFamily:"system-ui, sans-serif",padding:"2rem"}},e.status," ",e.statusText));let t;if(e instanceof Error)t=e;else{let r=e==null?"Unknown Error":typeof e=="object"&&"toString"in e?e.toString():JSON.stringify(e);t=new Error(r)}return re.createElement(va,{title:"Application Error!"},re.createElement("main",{style:{fontFamily:"system-ui, sans-serif",padding:"2rem"}},re.createElement("h1",{style:{fontSize:"24px"}},"Application Error"),re.createElement("pre",{style:{padding:"2rem",background:"hsla(10, 50%, 50%, 0.1)",color:"red",overflow:"auto"}},t.stack)))}function va({title:e,children:t}){return re.createElement("html",{lang:"en"},re.createElement("head",null,re.createElement("meta",{charSet:"utf-8"}),re.createElement("meta",{name:"viewport",content:"width=device-width,initial-scale=1,viewport-fit=cover"}),re.createElement("title",null,e)),re.createElement("body",null,t,re.createElement("script",{dangerouslySetInnerHTML:{__html:`
              console.log(
                "\u{1F4BF} Hey developer \u{1F44B}. You can provide a way better UX than this when your app throws errors. Check out https://remix.run/guides/errors for more information."
              );
            `}})))}B();ke();function ya(e){if(!e)return null;let t=Object.entries(e),r={};for(let[n,a]of t)if(a&&a.__type==="RouteErrorResponse")r[n]=new we(a.status,a.statusText,a.data,a.internal===!0);else if(a&&a.__type==="Error"){if(a.__subType){let i=window[a.__subType];if(typeof i=="function")try{let o=new i(a.message);o.stack=a.stack,r[n]=o}catch{}}if(r[n]==null){let i=new Error(a.message);i.stack=a.stack,r[n]=i}}else r[n]=a;return r}B();var Da=Ne(Fe());ke();He();B();ke();function ga(e){return e.headers.get("X-Remix-Catch")!=null}function Ji(e){return e.headers.get("X-Remix-Error")!=null}function Yi(e){return Xr(e)&&e.status>=400&&e.headers.get("X-Remix-Error")==null&&e.headers.get("X-Remix-Catch")==null&&e.headers.get("X-Remix-Response")==null}function wa(e){return e.headers.get("X-Remix-Redirect")!=null}function Ea(e){var t;return!!((t=e.headers.get("Content-Type"))!==null&&t!==void 0&&t.match(/text\/remix-deferred/))}function Xr(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.headers=="object"&&typeof e.body<"u"}function ba(e){let t=e;return t&&typeof t=="object"&&typeof t.data=="object"&&typeof t.subscribe=="function"&&typeof t.cancel=="function"&&typeof t.resolveData=="function"}async function Gr(e,t,r=0){let n=new URL(e.url);n.searchParams.set("_data",t);let a={signal:e.signal};if(e.method!=="GET"){a.method=e.method;let l=e.headers.get("Content-Type");l&&/\bapplication\/json\b/.test(l)?(a.headers={"Content-Type":l},a.body=JSON.stringify(await e.json())):l&&/\btext\/plain\b/.test(l)?(a.headers={"Content-Type":l},a.body=await e.text()):l&&/\bapplication\/x-www-form-urlencoded\b/.test(l)?a.body=new URLSearchParams(await e.text()):a.body=await e.formData()}r>0&&await new Promise(l=>setTimeout(l,5**r*10));let i=window.__remixRevalidation,o=await fetch(n.href,a).catch(l=>{if(typeof i=="number"&&i===window.__remixRevalidation&&l?.name==="TypeError"&&r<3)return Gr(e,t,r+1);throw l});if(Ji(o)){let l=await o.json(),s=new Error(l.message);return s.stack=l.stack,s}if(Yi(o)){let l=await o.text(),s=new Error(l);return s.stack=void 0,s}return o}var Xi="__deferred_promise:";async function _a(e){if(!e)throw new Error("parseDeferredReadableStream requires stream argument");let t,r={};try{let n=Gi(e),i=(await n.next()).value;if(!i)throw new Error("no critical data");let o=JSON.parse(i);if(typeof o=="object"&&o!==null)for(let[l,s]of Object.entries(o))typeof s!="string"||!s.startsWith(Xi)||(t=t||{},t[l]=new Promise((c,u)=>{r[l]={resolve:f=>{c(f),delete r[l]},reject:f=>{u(f),delete r[l]}}}));return(async()=>{try{for await(let l of n){let[s,...c]=l.split(":"),u=c.join(":"),f=JSON.parse(u);if(s==="data")for(let[p,g]of Object.entries(f))r[p]&&r[p].resolve(g);else if(s==="error")for(let[p,g]of Object.entries(f)){let E=new Error(g.message);E.stack=g.stack,r[p]&&r[p].reject(E)}}for(let[l,s]of Object.entries(r))s.reject(new _e(`Deferred ${l} will never be resolved`))}catch(l){for(let s of Object.values(r))s.reject(l)}})(),new Mt({...o,...t})}catch(n){for(let a of Object.values(r))a.reject(n);throw n}}async function*Gi(e){let t=e.getReader(),r=[],n=[],a=!1,i=new TextEncoder,o=new TextDecoder,l=async()=>{if(n.length>0)return n.shift();for(;!a&&n.length===0;){let c=await t.read();if(c.done){a=!0;break}r.push(c.value);try{let f=o.decode(Ra(...r)).split(`

`);if(f.length>=2&&(n.push(...f.slice(0,-1)),r=[i.encode(f.slice(-1).join(`

`))]),n.length>0)break}catch{continue}}return n.length>0||r.length>0&&(n=o.decode(Ra(...r)).split(`

`).filter(u=>u),r=[]),n.shift()},s=await l();for(;s;)yield s,s=await l()}function Ra(...e){let t=new Uint8Array(e.reduce((n,a)=>n+a.length,0)),r=0;for(let n of e)t.set(n,r),r+=n.length;return t}B();var je=Ne(Fe());function Sa(){return je.createElement("html",{lang:"en"},je.createElement("head",null,je.createElement("meta",{charSet:"utf-8"}),je.createElement("meta",{name:"viewport",content:"width=device-width,initial-scale=1,viewport-fit=cover"})),je.createElement("body",null,je.createElement(Jr,null),je.createElement("script",{dangerouslySetInnerHTML:{__html:`
              console.log(
                "\u{1F4BF} Hey developer \u{1F44B}. You can provide a way better UX than this " +
                "when your app is running \`clientLoader\` functions on hydration. " +
                "Check out https://remix.run/route/hydrate-fallback for more information."
              );
            `}})," "))}function Ca(e){let t={};return Object.values(e).forEach(r=>{let n=r.parentId||"";t[n]||(t[n]=[]),t[n].push(r)}),t}function La(e,t,r,n,a,i){return nr(t,r,n,a,i,"",Ca(t),e)}function tr(e,t,r){if(r){let o=`You cannot call ${e==="action"?"serverAction()":"serverLoader()"} in SPA Mode (routeId: "${t.id}")`;throw console.error(o),new we(400,"Bad Request",new Error(o),!0)}let a=`You are trying to call ${e==="action"?"serverAction()":"serverLoader()"} on a route that does not have a server ${e} (routeId: "${t.id}")`;if(e==="loader"&&!t.hasLoader||e==="action"&&!t.hasAction)throw console.error(a),new we(400,"Bad Request",new Error(a),!0)}function Qr(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 we(405,"Method Not Allowed",new Error(n),!0)}function nr(e,t,r,n,a,i="",o=Ca(e),l){return(o[i]||[]).map(s=>{let c=t[s.id];async function u(R){return s.hasLoader?Na(R,s):null}async function f(R){if(!s.hasAction)throw Qr("action",s.id);return Na(R,s)}async function p(R){let D=t[s.id],k=D?Vr(s,D):Promise.resolve();try{return R()}finally{await k}}let g={id:s.id,index:s.index,path:s.path};if(c){var E,x,y;Object.assign(g,{...g,Component:Pa(c),HydrateFallback:c.HydrateFallback&&(!a||s.id==="root")?c.HydrateFallback:s.id==="root"?Sa:void 0,ErrorBoundary:c.ErrorBoundary?c.ErrorBoundary:s.id==="root"?()=>Da.createElement(Yr,{error:Et()}):void 0,handle:c.handle,shouldRevalidate:l?xa(s.id,c.shouldRevalidate,l):c.shouldRevalidate});let R=r==null||(E=r.loaderData)===null||E===void 0?void 0:E[s.id],D=r==null||(x=r.errors)===null||x===void 0?void 0:x[s.id],k=l==null&&(((y=c.clientLoader)===null||y===void 0?void 0:y.hydrate)===!0||!s.hasLoader);g.loader=async({request:P,params:h})=>{try{return await p(async()=>(Ce(c,"No `routeModule` available for critical-route loader"),c.clientLoader?c.clientLoader({request:P,params:h,async serverLoader(){if(tr("loader",s,a),k){if(D!==void 0)throw D;return R}let T=await u(P);return await rr(T)}}):a?null:u(P)))}finally{k=!1}},g.loader.hydrate=Zr(s,c,a),g.action=({request:P,params:h})=>p(async()=>{if(Ce(c,"No `routeModule` available for critical-route action"),!c.clientAction){if(a)throw Qr("clientAction",s.id);return f(P)}return c.clientAction({request:P,params:h,async serverAction(){tr("action",s,a);let N=await f(P);return await rr(N)}})})}else s.hasClientLoader||(g.loader=({request:R})=>p(()=>a?Promise.resolve(null):u(R))),s.hasClientAction||(g.action=({request:R})=>p(()=>{if(a)throw Qr("clientAction",s.id);return f(R)})),g.lazy=async()=>{let R=await Qi(s,t),D={...R};if(R.clientLoader){let k=R.clientLoader;D.loader=P=>k({...P,async serverLoader(){tr("loader",s,a);let h=await u(P.request);return await rr(h)}})}if(R.clientAction){let k=R.clientAction;D.action=P=>k({...P,async serverAction(){tr("action",s,a);let h=await f(P.request);return await rr(h)}})}return l&&(D.shouldRevalidate=xa(s.id,R.shouldRevalidate,l)),{...D.loader?{loader:D.loader}:{},...D.action?{action:D.action}:{},hasErrorBoundary:D.hasErrorBoundary,shouldRevalidate:D.shouldRevalidate,handle:D.handle,Component:D.Component,ErrorBoundary:D.ErrorBoundary}};let _=nr(e,t,r,n,a,s.id,o,l);return _.length>0&&(g.children=_),g})}function xa(e,t,r){let n=!1;return a=>n?t?t(a):a.defaultShouldRevalidate:(n=!0,r.has(e))}async function Qi(e,t){let r=await Yt(e,t);return await Vr(e,r),{Component:Pa(r),ErrorBoundary:r.ErrorBoundary,clientAction:r.clientAction,clientLoader:r.clientLoader,handle:r.handle,links:r.links,meta:r.meta,shouldRevalidate:r.shouldRevalidate}}async function Na(e,t){let r=await Gr(e,t.id);if(r instanceof Error)throw r;if(wa(r))throw Zi(r);if(ga(r))throw r;return Ea(r)&&r.body?await _a(r.body):r}function rr(e){if(ba(e))return e.data;if(Xr(e)){let t=e.headers.get("Content-Type");return t&&/\bapplication\/json\b/.test(t)?e.json():e.text()}return e}function Zi(e){let t=parseInt(e.headers.get("X-Remix-Status"),10)||302,r=e.headers.get("X-Remix-Redirect"),n={},a=e.headers.get("X-Remix-Revalidate");a&&(n["X-Remix-Revalidate"]=a);let i=e.headers.get("X-Remix-Reload-Document");return i&&(n["X-Remix-Reload-Document"]=i),It(r,{status:t,headers:n})}function Pa(e){if(e.default==null)return;if(!(typeof e.default=="object"&&Object.keys(e.default).length===0))return e.default}function Zr(e,t,r){return r&&e.id!=="root"||t.clientLoader!=null&&(t.clientLoader.hydrate===!0||e.hasLoader!==!0)}var Ee,qr=!1;var en,bs=new Promise(e=>{en=e}).catch(()=>{}),qi=()=>{};function el(e){if(!Ee){let i=window.__remixContext.url,o=window.location.pathname;if(i!==o&&!window.__remixContext.isSpaMode){let c=`Initial URL (${i}) does not match URL at time of hydration (${o}), reloading page...`;return console.error(c),window.location.reload(),se.createElement(se.Fragment,null)}let l=nr(window.__remixManifest.routes,window.__remixRouteModules,window.__remixContext.state,window.__remixContext.future,window.__remixContext.isSpaMode),s;if(!window.__remixContext.isSpaMode){s={...window.__remixContext.state,loaderData:{...window.__remixContext.state.loaderData}};let c=ae(l,window.location);if(c)for(let u of c){let f=u.route.id,p=window.__remixRouteModules[f],g=window.__remixManifest.routes[f];p&&Zr(g,p,window.__remixContext.isSpaMode)&&(p.HydrateFallback||!g.hasLoader)?s.loaderData[f]=void 0:g&&!g.hasLoader&&(s.loaderData[f]=null)}s&&s.errors&&(s.errors=ya(s.errors))}Ee=Ht({routes:l,history:wr(),future:{v7_normalizeFormMethod:!0,v7_fetcherPersist:window.__remixContext.future.v3_fetcherPersist,v7_partialHydration:!0,v7_prependBasename:!0,v7_relativeSplatPath:window.__remixContext.future.v3_relativeSplatPath},hydrationData:s,mapRouteProperties:Mr}),Ee.state.initialized&&(qr=!0,Ee.initialize()),Ee.createRoutesForHMR=La,window.__remixRouter=Ee,en&&en(Ee)}let[t,r]=se.useReducer(qi,window.__remixContext.criticalCss);window.__remixClearCriticalCss=r;let[n,a]=se.useState(Ee.state.location);return se.useLayoutEffect(()=>{qr||(qr=!0,Ee.initialize())},[]),se.useLayoutEffect(()=>Ee.subscribe(i=>{i.location!==n&&a(i.location)}),[n]),se.createElement(Nt.Provider,{value:{manifest:window.__remixManifest,routeModules:window.__remixRouteModules,future:window.__remixContext.future,criticalCss:t,isSpaMode:window.__remixContext.isSpaMode}},se.createElement(er,{location:n},se.createElement(Gn,{router:Ee,fallbackElement:null,future:{v7_startTransition:!0}})))}B();He();B();var ar=Ne(Fe());He();var Aa="positions";function tl({getKey:e,...t}){let{isSpaMode:r}=Qe(),n=ie(),a=lt();ea({getKey:e,storageKey:Aa});let i=ar.useMemo(()=>{if(!e)return null;let l=e(n,a);return l!==n.key?l:null},[]);if(r)return null;let o=((l,s)=>{if(!window.history.state||!window.history.state.key){let c=Math.random().toString(32).slice(2);window.history.replaceState({key:c},"")}try{let u=JSON.parse(sessionStorage.getItem(l)||"{}")[s||window.history.state.key];typeof u=="number"&&window.scrollTo(0,u)}catch(c){console.error(c),sessionStorage.removeItem(l)}}).toString();return ar.createElement("script",Q({},t,{suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:`(${o})(${JSON.stringify(Aa)}, ${JSON.stringify(i)})`}}))}export{Ue as a,Bt as b,jn as c,it as d,$n as e,Et as f,zn as g,bi as h,ha as i,ki as j,Hi as k,Jr as l,$i as m,zi as n,Wi as o,Ki as p,el as q,tl as r};
/*! Bundled license information:

@remix-run/router/dist/router.js:
  (**
   * @remix-run/router v1.15.0
   *
   * Copyright (c) Remix Software Inc.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE.md file in the root directory of this source tree.
   *
   * @license MIT
   *)

react-router/dist/index.js:
  (**
   * React Router v6.22.0
   *
   * Copyright (c) Remix Software Inc.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE.md file in the root directory of this source tree.
   *
   * @license MIT
   *)

react-router-dom/dist/index.js:
  (**
   * React Router DOM v6.22.0
   *
   * Copyright (c) Remix Software Inc.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE.md file in the root directory of this source tree.
   *
   * @license MIT
   *)

@remix-run/react/dist/esm/_virtual/_rollupPluginBabelHelpers.js:
  (**
   * @remix-run/react v2.6.0
   *
   * Copyright (c) Remix Software Inc.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE.md file in the root directory of this source tree.
   *
   * @license MIT
   *)

@remix-run/react/dist/esm/invariant.js:
  (**
   * @remix-run/react v2.6.0
   *
   * Copyright (c) Remix Software Inc.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE.md file in the root directory of this source tree.
   *
   * @license MIT
   *)

@remix-run/react/dist/esm/routeModules.js:
  (**
   * @remix-run/react v2.6.0
   *
   * Copyright (c) Remix Software Inc.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE.md file in the root directory of this source tree.
   *
   * @license MIT
   *)

@remix-run/react/dist/esm/links.js:
  (**
   * @remix-run/react v2.6.0
   *
   * Copyright (c) Remix Software Inc.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE.md file in the root directory of this source tree.
   *
   * @license MIT
   *)

@remix-run/react/dist/esm/markup.js:
  (**
   * @remix-run/react v2.6.0
   *
   * Copyright (c) Remix Software Inc.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE.md file in the root directory of this source tree.
   *
   * @license MIT
   *)

@remix-run/react/dist/esm/components.js:
  (**
   * @remix-run/react v2.6.0
   *
   * Copyright (c) Remix Software Inc.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE.md file in the root directory of this source tree.
   *
   * @license MIT
   *)

@remix-run/react/dist/esm/errorBoundaries.js:
  (**
   * @remix-run/react v2.6.0
   *
   * Copyright (c) Remix Software Inc.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE.md file in the root directory of this source tree.
   *
   * @license MIT
   *)

@remix-run/react/dist/esm/errors.js:
  (**
   * @remix-run/react v2.6.0
   *
   * Copyright (c) Remix Software Inc.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE.md file in the root directory of this source tree.
   *
   * @license MIT
   *)

@remix-run/react/dist/esm/data.js:
  (**
   * @remix-run/react v2.6.0
   *
   * Copyright (c) Remix Software Inc.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE.md file in the root directory of this source tree.
   *
   * @license MIT
   *)

@remix-run/react/dist/esm/fallback.js:
  (**
   * @remix-run/react v2.6.0
   *
   * Copyright (c) Remix Software Inc.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE.md file in the root directory of this source tree.
   *
   * @license MIT
   *)

@remix-run/react/dist/esm/routes.js:
  (**
   * @remix-run/react v2.6.0
   *
   * Copyright (c) Remix Software Inc.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE.md file in the root directory of this source tree.
   *
   * @license MIT
   *)

@remix-run/react/dist/esm/browser.js:
  (**
   * @remix-run/react v2.6.0
   *
   * Copyright (c) Remix Software Inc.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE.md file in the root directory of this source tree.
   *
   * @license MIT
   *)

@remix-run/react/dist/esm/scroll-restoration.js:
  (**
   * @remix-run/react v2.6.0
   *
   * Copyright (c) Remix Software Inc.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE.md file in the root directory of this source tree.
   *
   * @license MIT
   *)

@remix-run/react/dist/esm/index.js:
  (**
   * @remix-run/react v2.6.0
   *
   * Copyright (c) Remix Software Inc.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE.md file in the root directory of this source tree.
   *
   * @license MIT
   *)
*/
