PageSourceSearch

https://seldo.com/assets/chunk-LFPYN7LY-D5W5YvWW.js

js seldo.com collected 2026-10-02 03:36:16 UTC 126,984 bytes, 51 lines download raw bytes

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

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