vendor: 13,565 bytes, lines 1-34
1var Na=Object.defineProperty;var ja=(e,t,r)=>t in e?Na(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var xt=(e,t,r)=>ja(e,typeof t!="symbol"?t+"":t,r);import{a as Cn}from"./gsap-ByPAgKVh.js";function Dn(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 i=Object.getOwnPropertyDescriptor(n,a);i&&Object.defineProperty(e,a,i.get?i:{enumerable:!0,get:()=>n[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var qt={exports:{}},ot={};/** 2 * @license React 3 * react-jsx-runtime.production.js 4 * 5 * Copyright (c) Meta Platforms, Inc. and affiliates. 6 * 7 * This source code is licensed under the MIT license found in the 8 * LICENSE file in the root directory of this source tree. 9 */var Kr;function ka(){if(Kr)return ot;Kr=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function r(n,a,i){var o=null;if(i!==void 0&&(o=""+i),a.key!==void 0&&(o=""+a.key),"key"in a){i={};for(var u in a)u!=="key"&&(i[u]=a[u])}else i=a;return a=i.ref,{$$typeof:e,type:n,key:o,ref:a!==void 0?a:null,props:i}}return ot.Fragment=t,ot.jsx=r,ot.jsxs=r,ot}var Xr;function Ia(){return Xr||(Xr=1,qt.exports=ka()),qt.exports}var cs=Ia(),Qt={exports:{}},J={};/** 10 * @license React 11 * react.production.js 12 * 13 * Copyright (c) Meta Platforms, Inc. and affiliates. 14 * 15 * This source code is licensed under the MIT license found in the 16 * LICENSE file in the root directory of this source tree. 17 */var Gr;function Ua(){if(Gr)return J;Gr=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),n=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),i=Symbol.for("react.consumer"),o=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),l=Symbol.for("react.suspense"),s=Symbol.for("react.memo"),d=Symbol.for("react.lazy"),c=Symbol.iterator;function m(p){return p===null||typeof p!="object"?null:(p=c&&p[c]||p["@@iterator"],typeof p=="function"?p:null)}var w={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,R={};function b(p,_,U){this.props=p,this.context=_,this.refs=R,this.updater=U||w}b.prototype.isReactComponent={},b.prototype.setState=function(p,_){if(typeof p!="object"&&typeof p!="function"&&p!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,p,_,"setState")},b.prototype.forceUpdate=function(p){this.updater.enqueueForceUpdate(this,p,"forceUpdate")};function C(){}C.prototype=b.prototype;function x(p,_,U){this.props=p,this.context=_,this.refs=R,this.updater=U||w}var D=x.prototype=new C;D.constructor=x,g(D,b.prototype),D.isPureReactComponent=!0;var P=Array.isArray,L={H:null,A:null,T:null,S:null,V:null},A=Object.prototype.hasOwnProperty;function y(p,_,U,F,V,G){return U=G.ref,{$$typeof:e,type:p,key:_,ref:U!==void 0?U:null,props:G}}function O(p,_){return y(p.type,_,void 0,void 0,void 0,p.props)}function z(p){return typeof p=="object"&&p!==null&&p.$$typeof===e}function $(p){var _={"=":"=0",":":"=2"};return"$"+p.replace(/[=:]/g,function(U){return _[U]})}var Q=/\/+/g;function X(p,_){return typeof p=="object"&&p!==null&&p.key!=null?$(""+p.key):_.toString(36)}function de(){}function fe(p){switch(p.status){case"fulfilled":return p.value;case"rejected":throw p.reason;default:switch(typeof p.status=="string"?p.then(de,de):(p.status="pending",p.then(function(_){p.status==="pending"&&(p.status="fulfilled",p.value=_)},function(_){p.status==="pending"&&(p.status="rejected",p.reason=_)})),p.status){case"fulfilled":return p.value;case"rejected":throw p.reason}}throw p}function re(p,_,U,F,V){var G=typeof p;(G==="undefined"||G==="boolean")&&(p=null);var B=!1;if(p===null)B=!0;else switch(G){case"bigint":case"string":case"number":B=!0;break;case"object":switch(p.$$typeof){case e:case t:B=!0;break;case d:return B=p._init,re(B(p._payload),_,U,F,V)}}if(B)return V=V(p),B=F===""?"."+X(p,0):F,P(V)?(U="",B!=null&&(U=B.replace(Q,"$&/")+"/"),re(V,_,U,"",function(Jt){return Jt})):V!=null&&(z(V)&&(V=O(V,U+(V.key==null||p&&p.key===V.key?"":(""+V.key).replace(Q,"$&/")+"/")+B)),_.push(V)),1;B=0;var me=F===""?".":F+":";if(P(p))for(var ae=0;ae<p.length;ae++)F=p[ae],G=me+X(F,ae),B+=re(F,_,U,G,V);else if(ae=m(p),typeof ae=="function")for(p=ae.call(p),ae=0;!(F=p.next()).done;)F=F.value,G=me+X(F,ae++),B+=re(F,_,U,G,V);else if(G==="object"){if(typeof p.then=="function")return re(fe(p),_,U,F,V);throw _=String(p),Error("Objects are not valid as a React child (found: "+(_==="[object Object]"?"object with keys {"+Object.keys(p).join(", ")+"}":_)+"). If you meant to render a collection of children, use an array instead.")}return B}function ge(p,_,U){if(p==null)return p;var F=[],V=0;return re(p,F,"","",function(G){return _.call(U,G,V++)}),F}function Ve(p){if(p._status===-1){var _=p._result;_=_(),_.then(function(U){(p._status===0||p._status===-1)&&(p._status=1,p._result=U)},function(U){(p._status===0||p._status===-1)&&(p._status=2,p._result=U)}),p._status===-1&&(p._status=0,p._result=_)}if(p._status===1)return p._result.default;throw p._result}var le=typeof reportError=="function"?reportError:function(p){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var _=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof p=="object"&&p!==null&&typeof p.message=="string"?String(p.message):String(p),error:p});if(!window.dispatchEvent(_))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",p);return}console.error(p)};function Ke(){}return J.Children={map:ge,forEach:function(p,_,U){ge(p,function(){_.apply(this,arguments)},U)},count:function(p){var _=0;return ge(p,function(){_++}),_},toArray:function(p){return ge(p,function(_){return _})||[]},only:function(p){if(!z(p))throw Error("React.Children.only expected to receive a single React element child.");return p}},J.Component=b,J.Fragment=r,J.Profiler=a,J.PureComponent=x,J.StrictMode=n,J.Suspense=l,J.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=L,J.__COMPILER_RUNTIME={__proto__:null,c:function(p){return L.H.useMemoCache(p)}},J.cache=function(p){return function(){return p.apply(null,arguments)}},J.cloneElement=function(p,_,U){if(p==null)throw Error("The argument must be a React element, but you passed "+p+".");var F=g({},p.props),V=p.key,G=void 0;if(_!=null)for(B in _.ref!==void 0&&(G=void 0),_.key!==void 0&&(V=""+_.key),_)!A.call(_,B)||B==="key"||B==="__self"||B==="__source"||B==="ref"&&_.ref===void 0||(F[B]=_[B]);var B=arguments.length-2;if(B===1)F.children=U;else if(1<B){for(var me=Array(B),ae=0;ae<B;ae++)me[ae]=arguments[ae+2];F.children=me}return y(p.type,V,void 0,void 0,G,F)},J.createContext=function(p){return p={$$typeof:o,_currentValue:p,_currentValue2:p,_threadCount:0,Provider:null,Consumer:null},p.Provider=p,p.Consumer={$$typeof:i,_context:p},p},J.createElement=function(p,_,U){var F,V={},G=null;if(_!=null)for(F in _.key!==void 0&&(G=""+_.key),_)A.call(_,F)&&F!=="key"&&F!=="__self"&&F!=="__source"&&(V[F]=_[F]);var B=arguments.length-2;if(B===1)V.children=U;else if(1<B){for(var me=Array(B),ae=0;ae<B;ae++)me[ae]=arguments[ae+2];V.children=me}if(p&&p.defaultProps)for(F in B=p.defaultProps,B)V[F]===void 0&&(V[F]=B[F]);return y(p,G,void 0,void 0,null,V)},J.createRef=function(){return{current:null}},J.forwardRef=function(p){return{$$typeof:u,render:p}},J.isValidElement=z,J.lazy=function(p){return{$$typeof:d,_payload:{_status:-1,_result:p},_init:Ve}},J.memo=function(p,_){return{$$typeof:s,type:p,compare:_===void 0?null:_}},J.startTransition=function(p){var _=L.T,U={};L.T=U;try{var F=p(),V=L.S;V!==null&&V(U,F),typeof F=="object"&&F!==null&&typeof F.then=="function"&&F.then(Ke,le)}catch(G){le(G)}finally{L.T=_}},J.unstable_useCacheRefresh=function(){return L.H.useCacheRefresh()},J.use=function(p){return L.H.use(p)},J.useActionState=function(p,_,U){return L.H.useActionState(p,_,U)},J.useCallback=function(p,_){return L.H.useCallback(p,_)},J.useContext=function(p){return L.H.useContext(p)},J.useDebugValue=function(){},J.useDeferredValue=function(p,_){return L.H.useDeferredValue(p,_)},J.useEffect=function(p,_,U){var F=L.H;if(typeof U=="function")throw Error("useEffect CRUD overload is not enabled in this build of React.");return F.useEffect(p,_)},J.useId=function(){return L.H.useId()},J.useImperativeHandle=function(p,_,U){return L.H.useImperativeHandle(p,_,U)},J.useInsertionEffect=function(p,_){return L.H.useInsertionEffect(p,_)},J.useLayoutEffect=function(p,_){return L.H.useLayoutEffect(p,_)},J.useMemo=function(p,_){return L.H.useMemo(p,_)},J.useOptimistic=function(p,_){return L.H.useOptimistic(p,_)},J.useReducer=function(p,_,U){return L.H.useReducer(p,_,U)},J.useRef=function(p){return L.H.useRef(p)},J.useState=function(p){return L.H.useState(p)},J.useSyncExternalStore=function(p,_,U){return L.H.useSyncExternalStore(p,_,U)},J.useTransition=function(){return L.H.useTransition()},J.version="19.1.1",J}var qr;function On(){return qr||(qr=1,Qt.exports=Ua()),Qt.exports}var f=On();const Fa=Cn(f),$a=Dn({__proto__:null,default:Fa},[f]);var Zt={exports:{}},pe={};/** 18 * @license React 19 * react-dom.production.js 20 * 21 * Copyright (c) Meta Platforms, Inc. and affiliates. 22 * 23 * This source code is licensed under the MIT license found in the 24 * LICENSE file in the root directory of this source tree. 25 */var Qr;function Ha(){if(Qr)return pe;Qr=1;var e=On();function t(l){var s="https://react.dev/errors/"+l;if(1<arguments.length){s+="?args[]="+encodeURIComponent(arguments[1]);for(var d=2;d<arguments.length;d++)s+="&args[]="+encodeURIComponent(arguments[d])}return"Minified React error #"+l+"; visit "+s+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function r(){}var n={d:{f:r,r:function(){throw Error(t(522))},D:r,C:r,L:r,m:r,X:r,S:r,M:r},p:0,findDOMNode:null},a=Symbol.for("react.portal");function i(l,s,d){var c=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:a,key:c==null?null:""+c,children:l,containerInfo:s,implementation:d}}var o=e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function u(l,s){if(l==="font")return"";if(typeof s=="string")return s==="use-credentials"?s:""}return pe.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=n,pe.createPortal=function(l,s){var d=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!s||s.nodeType!==1&&s.nodeType!==9&&s.nodeType!==11)throw Error(t(299));return i(l,s,null,d)},pe.flushSync=function(l){var s=o.T,d=n.p;try{if(o.T=null,n.p=2,l)return l()}finally{o.T=s,n.p=d,n.d.f()}},pe.preconnect=function(l,s){typeof l=="string"&&(s?(s=s.crossOrigin,s=typeof s=="string"?s==="use-credentials"?s:"":void 0):s=null,n.d.C(l,s))},pe.prefetchDNS=function(l){typeof l=="string"&&n.d.D(l)},pe.preinit=function(l,s){if(typeof l=="string"&&s&&typeof s.as=="string"){var d=s.as,c=u(d,s.crossOrigin),m=typeof s.integrity=="string"?s.integrity:void 0,w=typeof s.fetchPriority=="string"?s.fetchPriority:void 0;d==="style"?n.d.S(l,typeof s.precedence=="string"?s.precedence:void 0,{crossOrigin:c,integrity:m,fetchPriority:w}):d==="script"&&n.d.X(l,{crossOrigin:c,integrity:m,fetchPriority:w,nonce:typeof s.nonce=="string"?s.nonce:void 0})}},pe.preinitModule=function(l,s){if(typeof l=="string")if(typeof s=="object"&&s!==null){if(s.as==null||s.as==="script"){var d=u(s.as,s.crossOrigin);n.d.M(l,{crossOrigin:d,integrity:typeof s.integrity=="string"?s.integrity:void 0,nonce:typeof s.nonce=="string"?s.nonce:void 0})}}else s==null&&n.d.M(l)},pe.preload=function(l,s){if(typeof l=="string"&&typeof s=="object"&&s!==null&&typeof s.as=="string"){var d=s.as,c=u(d,s.crossOrigin);n.d.L(l,d,{crossOrigin:c,integrity:typeof s.integrity=="string"?s.integrity:void 0,nonce:typeof s.nonce=="string"?s.nonce:void 0,type:typeof s.type=="string"?s.type:void 0,fetchPriority:typeof s.fetchPriority=="string"?s.fetchPriority:void 0,referrerPolicy:typeof s.referrerPolicy=="string"?s.referrerPolicy:void 0,imageSrcSet:typeof s.imageSrcSet=="string"?s.imageSrcSet:void 0,imageSizes:typeof s.imageSizes=="string"?s.imageSizes:void 0,media:typeof s.media=="string"?s.media:void 0})}},pe.preloadModule=function(l,s){if(typeof l=="string")if(s){var d=u(s.as,s.crossOrigin);n.d.m(l,{as:typeof s.as=="string"&&s.as!=="script"?s.as:void 0,crossOrigin:d,integrity:typeof s.integrity=="string"?s.integrity:void 0})}else n.d.m(l)},pe.requestFormReset=function(l){n.d.r(l)},pe.unstable_batchedUpdates=function(l,s){return l(s)},pe.useFormState=function(l,s,d){return o.H.useFormState(l,s,d)},pe.useFormStatus=function(){return o.H.useHostTransitionStatus()},pe.version="19.1.1",pe}var Zr;function za(){if(Zr)return Zt.exports;Zr=1;function e(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),Zt.exports=Ha(),Zt.exports}var An=za();const Ba=Cn(An),Ya=Dn({__proto__:null,default:Ba},[An]);/** 26 * @remix-run/router v1.23.3 27 * 28 * Copyright (c) Remix Software Inc. 29 * 30 * This source code is licensed under the MIT license found in the 31 * LICENSE.md file in the root directory of this source tree. 32 * 33 * @license MIT 34 */function ne(){return ne=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}
34).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},ne.apply(null,arguments)}var ue;(function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"})(ue||(ue={}));const en="popstate";function ds(e){e===void 0&&(e={});function t(n,a){let{pathname:i,search:o,hash:u}=n.location;return ht("",{pathname:i,search:o,hash:u},a.state&&a.state.usr||null,a.state&&a.state.key||"default")}function r(n,a){return typeof a=="string"?a:Ie(a)}return Ja(t,r,null,e)}function Y(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function Be(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function Wa(){return Math.random().toString(36).substr(2,8)}function tn(e,t){return{usr:e.state,key:e.key,idx:t}}function ht(e,t,r,n){return r===void 0&&(r=null),ne({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Ae(t):t,{state:r,key:t&&t.key||n||Wa()})}function Ie(e){let{pathname:t="/",search:r="",hash:n=""}=e;return r&&r!=="?"&&(t+=r.charAt(0)==="?"?r:"?"+r),n&&n!=="#"&&(t+=n.charAt(0)==="#"?n:"#"+n),t}function Ae(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substr(r),e=e.substr(0,r));let n=e.indexOf("?");n>=0&&(t.search=e.substr(n),e=e.substr(0,n)),e&&(t.pathname=e)}return t}function Ja(e,t,r,n){n===void 0&&(n={});let{window:a=document.defaultView,v5Compat:i=!1}=n,o=a.history,u=ue.Pop,l=null,s=d();s==null&&(s=0,o.replaceState(ne({},o.state,{idx:s}),""));function d(){return(o.state||{idx:null}).idx}function c(){u=ue.Pop;let b=d(),C=b==null?null:b-s;s=b,l&&l({action:u,location:R.location,delta:C})}function m(b,C){u=ue.Push;let x=ht(R.location,b,C);s=d()+1;let D=tn(x,s),P=R.createHref(x);try{o.pushState(D,"",P)}catch(L){if(L instanceof DOMException&&L.name==="DataCloneError")throw L;a.location.assign(P)}i&&l&&l({action:u,location:R.location,delta:1})}function w(b,C){u=ue.Replace;let x=ht(R.location,b,C);s=d();let D=tn(x,s),P=R.createHref(x);o.replaceState(D,"",P),i&&l&&l({action:u,location:R.location,delta:0})}function g(b){let C=a.location.origin!=="null"?a.location.origin:a.location.href,x=typeof b=="string"?b:Ie(b);return x=x.replace(/ $/,"%20"),Y(C,"No window.location.(origin|href) available to create URL for href: "+x),new URL(x,C)}let R={get action(){return u},get location(){return e(a,o)},listen(b){if(l)throw new Error("A history only accepts one active listener");return a.addEventListener(en,c),l=b,()=>{a.removeEventListener(en,c),l=null}},createHref(b){return t(a,b)},createURL:g,encodeLocation(b){let C=g(b);return{pathname:C.pathname,search:C.search,hash:C.hash}},push:m,replace:w,go(b){return o.go(b)}};return R}var ee;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(ee||(ee={}));const Va=new Set(["lazy","caseSensitive","path","id","index","children"]);function Ka(e){return e.index===!0}function Nt(e,t,r,n){return r===void 0&&(r=[]),n===void 0&&(n={}),e.map((a,i)=>{let o=[...r,String(i)],u=typeof a.id=="string"?a.id:o.join("-");if(Y(a.index!==!0||!a.children,"Cannot specify children on an index route"),Y(!n[u],'Found a route id collision on i
34d "'+u+`". Route id's must be globally unique within Data Router usages`),Ka(a)){let l=ne({},a,t(a),{id:u});return n[u]=l,l}else{let l=ne({},a,t(a),{id:u,children:void 0});return n[u]=l,a.children&&(l.children=Nt(a.children,t,o,n)),l}})}function De(e,t,r){return r===void 0&&(r="/"),Dt(e,t,r,!1)}function Dt(e,t,r,n){let a=typeof t=="string"?Ae(t):t,i=Re(a.pathname||"/",r);if(i==null)return null;let o=Nn(e);Xa(o);let u=null,l=oi(i);for(let s=0;u==null&&s<o.length;++s)u=ai(o[s],l,n);return u}function Mn(e,t){let{route:r,pathname:n,params:a}=e;return{id:r.id,pathname:n,params:a,data:t[r.id],handle:r.handle}}function Nn(e,t,r,n){t===void 0&&(t=[]),r===void 0&&(r=[]),n===void 0&&(n="");let a=(i,o,u)=>{let l={relativePath:u===void 0?i.path||"":u,caseSensitive:i.caseSensitive===!0,childrenIndex:o,route:i};l.relativePath.startsWith("/")&&(Y(l.relativePath.startsWith(n),'Absolute route path "'+l.relativePath+'" nested under path '+('"'+n+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),l.relativePath=l.relativePath.slice(n.length));let s=_e([n,l.relativePath]),d=r.concat(l);i.children&&i.children.length>0&&(Y(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+s+'".')),Nn(i.children,t,d,s)),!(i.path==null&&!i.index)&&t.push({path:s,score:ri(s,i.index),routesMeta:d})};return e.forEach((i,o)=>{var u;if(i.path===""||!((u=i.path)!=null&&u.includes("?")))a(i,o);else for(let l of jn(i.path))a(i,o,l)}),t}function jn(e){let t=e.split("/");if(t.length===0)return[];let[r,...n]=t,a=r.endsWith("?"),i=r.replace(/\?$/,"");if(n.length===0)return a?[i,""]:[i];let o=jn(n.join("/")),u=[];return u.push(...o.map(l=>l===""?i:[i,l].join("/"))),a&&u.push(...o),u.map(l=>e.startsWith("/")&&l===""?"/":l)}function Xa(e){e.sort((t,r)=>t.score!==r.score?r.score-t.score:ni(t.routesMeta.map(n=>n.childrenIndex),r.routesMeta.map(n=>n.childrenIndex)))}const Ga=/^:[\w-]+$/,qa=3,Qa=2,Za=1,ei=10,ti=-2,rn=e=>e==="*";function ri(e,t){let r=e.split("/"),n=r.length;return r.some(rn)&&(n+=ti),t&&(n+=Qa),r.filter(a=>!rn(a)).reduce((a,i)=>a+(Ga.test(i)?qa:i===""?Za:ei),n)}function ni(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 ai(e,t,r){r===void 0&&(r=!1);let{routesMeta:n}=e,a={},i="/",o=[];for(let u=0;u<n.length;++u){let l=n[u],s=u===n.length-1,d=i==="/"?t:t.slice(i.length)||"/",c=jt({path:l.relativePath,caseSensitive:l.caseSensitive,end:s},d),m=l.route;if(!c&&s&&r&&!n[n.length-1].route.index&&(c=jt({path:l.relativePath,caseSensitive:l.caseSensitive,end:!1},d)),!c)return null;
34Object.assign(a,c.params),o.push({params:a,pathname:_e([i,c.pathname]),pathnameBase:ci(_e([i,c.pathnameBase])),route:m}),c.pathnameBase!=="/"&&(i=_e([i,c.pathnameBase]))}return o}function jt(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[r,n]=ii(e.path,e.caseSensitive,e.end),a=t.match(r);if(!a)return null;let i=a[0],o=i.replace(/(.)\/+$/,"$1"),u=a.slice(1);return{params:n.reduce((s,d,c)=>{let{paramName:m,isOptional:w}=d;if(m==="*"){let R=u[c]||"";o=i.slice(0,i.length-R.length).replace(/(.)\/+$/,"$1")}const g=u[c];return w&&!g?s[m]=void 0:s[m]=(g||"").replace(/%2F/g,"/"),s},{}),pathname:i,pathnameBase:o,pattern:e}}function ii(e,t,r){t===void 0&&(t=!1),r===void 0&&(r=!0),Be(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let n=[],a="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,u,l)=>(n.push({paramName:u,isOptional:l!=null}),l?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(n.push({paramName:"*"}),a+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?a+="\\/*$":e!==""&&e!=="/"&&(a+="(?:(?=\\/|$))"),[new RegExp(a,t?void 0:"i"),n]}function oi(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return Be(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function Re(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)||"/"}const li=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,si=e=>li.test(e);function ui(e,t){t===void 0&&(t="/");let{pathname:r,search:n="",hash:a=""}=typeof e=="string"?Ae(e):e,i;if(r)if(si(r))i=r;else{if(r.includes("//")){let o=r;r=gr(r),Be(!1,"Pathnames cannot have embedded double slashes - normalizing "+(o+" -> "+r))}r.startsWith("/")?i=nn(r.substring(1),"/"):i=nn(r,t)}else i=t;return{pathname:i,search:di(n),hash:fi(a)}}function nn(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 er(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 kn(e){return e.filter((t,r)=>r===0||t.route.path&&t.route.path.length>0)}function vr(e,t){let r=kn(e);return t?r.map((n,a)=>a===r.length-1?n.pathname:n.pathnameBase):r.map(n=>n.pathnameBase)}function yr(e,t,r,n){n===void 0&&(n=!1);let a;typeof e=="string"?a=Ae(e):(a=ne({},e),Y(!a.pathname||!a.pathname.includes("?"),er("?","pathname","search",a)),Y(!a.pathname||!a.pathname.includes("#"),er("#","pathname","hash",a)),Y(!a.search||!a.search.includes("#"),er("#","search","hash",a)));let i=e===""||a.pathname==="",o=i?"/":a.pathname,u;if(o==null)u=r;else{let c=t.length-1;if(!n&&o.startsWith("..")){let m=o.split("/");for(;m[0]==="..";)m.shift(),c-=1;a.pathname=m.join("/")}u=c>=0?t[c]:"/"}let l=ui(a,u),s=o&&o!=="/"&&o.endsWith("/"),d=(i||o===".")&&r.endsWith("/");return!l.pathname.endsWith("/")&&(s||d)&&(l.pathname+="/"),l}const gr=e=>e.replace(/\/\/+/g,"/"),_e=e=>gr(e.join("/")),ci=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),di=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,fi=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;class hi{constructor(t,r){this.type="DataWithResponseInit",this.data=t,this.init=r||null}}function mi(e,t){return new hi(e,typeof t=="number"?{status:t}:t)}class kt extends Error{}class pi{constructor(t,r){this.pendingKeysSet=new Set,this.subscribers=new Set,this.deferredKeys=[],Y(t&&typeof t=="object"&&!Array.isArray(t),"defer() only accepts plain objects");let n;this.abortPromise=new Promise((i,o)=>n=o),this.controller=new AbortController;let a=()=>n(new kt("Deferred data aborted"));this.unlistenAbortSignal=()=>this.controller.signal.removeEventListener("abort",a),this.controller.signal.addEventListener("abort",a),this.data=Object.entries(t).reduce((i,o)=>{let[u,l]=o;return Object.assign(i,{[u]:this.trackPromise(u,l)})},{}),this.done&&this.unlistenAbortSignal(),this.init=r}trackPromise(t,r){if(!(r instanceof Promise))return r;this.deferredKeys.push(t),this.pendingKeysSet.add(t);let n=Promise.race([r,this.abortPromise]).then(a=>this.onSettle(n,t,void 0,a),a=>this.onSettle(n,t,a));return n.catch(()=>{}),Object.defineProperty(n,"_tracked",{get:()=>!0}),n}onSettle(t,r,n,a){if(this.controller.signal.aborted&&n instanceof kt)return this.unlistenAbortSignal(),Object.defineProperty(t,"_error",{get:()=>n}),Promise.reject(n);if(this.pendingKeysSet.delete(r),this.done&&this.unlistenAbortSignal(),n===void 0&&a===void 0){let i=new Error('Deferred data for key "'+r+'" resolved/rejected with `undefined`, you must resolve/reject with a value or `null`.');return Object.defineProperty(t,"_error",{get:()=>i}
34),this.emit(!1,r),Promise.reject(i)}return a===void 0?(Object.defineProperty(t,"_error",{get:()=>n}),this.emit(!1,r),Promise.reject(n)):(Object.defineProperty(t,"_data",{get:()=>a}),this.emit(!1,r),a)}emit(t,r){this.subscribers.forEach(n=>n(t,r))}subscribe(t){return this.subscribers.add(t),()=>this.subscribers.delete(t)}cancel(){this.controller.abort(),this.pendingKeysSet.forEach((t,r)=>this.pendingKeysSet.delete(r)),this.emit(!0)}async resolveData(t){let r=!1;if(!this.done){let n=()=>this.cancel();t.addEventListener("abort",n),r=await new Promise(a=>{this.subscribe(i=>{t.removeEventListener("abort",n),(i||this.done)&&a(i)})})}return r}get done(){return this.pendingKeysSet.size===0}get unwrappedData(){return Y(this.data!==null&&this.done,"Can only unwrap data on initialized and settled deferreds"),Object.entries(this.data).reduce((t,r)=>{let[n,a]=r;return Object.assign(t,{[n]:yi(a)})},{})}get pendingKeys(){return Array.from(this.pendingKeysSet)}}function vi(e){return e instanceof Promise&&e._tracked===!0}function yi(e){if(!vi(e))return e;if(e._error)throw e._error;return e._data}const In=function(t,r){r===void 0&&(r=302);let n=r;typeof n=="number"?n={status:n}:typeof n.status>"u"&&(n.status=302);let a=new Headers(n.headers);return a.set("Location",t),new Response(null,ne({},n,{headers:a}))};class Ye{constructor(t,r,n,a){a===void 0&&(a=!1),this.status=t,this.statusText=r||"",this.internal=a,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}}function We(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const Un=["post","put","patch","delete"],gi=new Set(Un),wi=["get",...Un],Ei=new Set(wi),Ri=new Set([301,302,303,307,308]),Si=new Set([307,308]),tr={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},bi={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},lt={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},wr=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,xi=e=>({hasErrorBoundary:!!e.hasErrorBoundary}),Fn="remix-router-transitions";function fs(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",n=!r;Y(e.routes.length>0,"You must provide a non-empty routes array to createRouter");let a;if(e.mapRouteProperties)a=e.mapRouteProperties;else if(e.detectErrorBoundary){let h=e.detectErrorBoundary;a=v=>({hasErrorBoundary:h(v)})}else a=xi;let i={},o=Nt(e.routes,a,void 0,i),u,l=e.basename||"/",s=e.dataStrategy||Ti,d=e.patchRoutesOnNavigation,c=ne({v7_fetcherPersist:!1,v7_normalizeFormMethod:!1,v7_partialHydration:!1,v7_prependBasename:!1,v7_relativeSplatPath:!1,v7_skipActionErrorRevalidation:!1},e.future),m=null,w=new Set,g=null,R=null,b=null,C=e.hydrationData!=null,x=De(o,e.history.location,l),D=!1,P=null;if(x==null&&!d){let h=ye(404,{pathname:e.history.location.pathname}),{matches:v,route:E}=pn(o);x=v,P={[E.id]:h}}x&&!e.hydrationData&&Et(x,o,e.history.location.pathname).active&&(x=null);let L;if(x)if(x.some(h=>h.route.lazy))L=!1;else if(!x.some(h=>h.route.loader))L=!0;else if(c.v7_partialHydration){let h=e.hydrationData?e.hydrationData.loaderData:null,v=e.hydrationData?e.hydrationData.errors:null;if(v){let E=x.findIndex(S=>v[S.route.id]!==void 0);L=x.slice(0,E+1).every(S=>!ur(S.route,h,v))}else L=x.every(E=>!ur(E.route,h,v))}else L=e.hydrationData!=null;else if(L=!1,x=[],c.v7_partialHydration){let h=Et(null,o,e.history.location.pathname);h.active&&h.matches&&(D=!0,x=h.matches)}let A,y={historyAction:e.history.action,location:e.history.location,matches:x,initialized:L,navigation:tr,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||P,fetchers:new Map,blockers:new Map},O=ue.Pop,z=!1,$,Q=!1,X=new Map,de=null,fe=!1,re=!1,ge=[],Ve=new Set,le=new Map,Ke=0,p=-1,_=new Map,U=new Set,F=new Map,V=new Map,G=new Set,B=new Map,me=new Map,ae;
34function Jt(){if(m=e.history.listen(h=>{let{action:v,location:E,delta:S}=h;if(ae){ae(),ae=void 0;return}Be(me.size===0||S!=null,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let T=Yr({currentLocation:y.location,nextLocation:E,historyAction:v});if(T&&S!=null){let I=new Promise(H=>{ae=H});e.history.go(S*-1),wt(T,{state:"blocked",location:E,proceed(){wt(T,{state:"proceeding",proceed:void 0,reset:void 0,location:E}),I.then(()=>e.history.go(S))},reset(){let H=new Map(y.blockers);H.set(T,lt),ve({blockers:H})}});return}return Ue(v,E)}),r){zi(t,X);let h=()=>Bi(t,X);t.addEventListener("pagehide",h),de=()=>t.removeEventListener("pagehide",h)}return y.initialized||Ue(ue.Pop,y.location,{initialHydration:!0}),A}function ga(){m&&m(),de&&de(),w.clear(),$&&$.abort(),y.fetchers.forEach((h,v)=>gt(v)),y.blockers.forEach((h,v)=>Br(v))}function wa(h){return w.add(h),()=>w.delete(h)}function ve(h,v){v===void 0&&(v={}),y=ne({},y,h);let E=[],S=[];c.v7_fetcherPersist&&y.fetchers.forEach((T,I)=>{T.state==="idle"&&(G.has(I)?S.push(I):E.push(I))}),G.forEach(T=>{!y.fetchers.has(T)&&!le.has(T)&&S.push(T)}),[...w].forEach(T=>T(y,{deletedFetchers:S,viewTransitionOpts:v.viewTransitionOpts,flushSync:v.flushSync===!0})),c.v7_fetcherPersist?(E.forEach(T=>y.fetchers.delete(T)),S.forEach(T=>gt(T))):S.forEach(T=>G.delete(T))}function Xe(h,v,E){var S,T;let{flushSync:I}=E===void 0?{}:E,H=y.actionData!=null&&y.navigation.formMethod!=null&&Se(y.navigation.formMethod)&&y.navigation.state==="loading"&&((S=h.state)==null?void 0:S._isRedirect)!==!0,N;v.actionData?Object.keys(v.actionData).length>0?N=v.actionData:N=null:H?N=y.actionData:N=null;let j=v.loaderData?hn(y.loaderData,v.loaderData,v.matches||[],v.errors):y.loaderData,M=y.blockers;M.size>0&&(M=new Map(M),M.forEach((K,he)=>M.set(he,lt)));let k=z===!0||y.navigation.formMethod!=null&&Se(y.navigation.formMethod)&&((T=h.state)==null?void 0:T._isRedirect)!==!0;u&&(o=u,u=void 0),fe||O===ue.Pop||(O===ue.Push?e.history.push(h,h.state):O===ue.Replace&&e.history.replace(h,h.state));let W;if(O===ue.Pop){let K=X.get(y.location.pathname);K&&K.has(h.pathname)?W={currentLocation:y.location,nextLocation:h}:X.has(h.pathname)&&(W={currentLocation:h,nextLocation:y.location})}else if(Q){let K=X.get(y.location.pathname);K?K.add(h.pathname):(K=new Set([h.pathname]),X.set(y.location.pathname,K)),W={currentLocation:y.location,nextLocation:h}}ve(ne({},v,{actionData:N,loaderData:j,historyAction:O,location:h,initialized:!0,navigation:tr,revalidation:"idle",restoreScrollPosition:Jr(h,v.matches||y.matches),preventScrollReset:k,blockers:M}),{viewTransitionOpts:W,flushSync:I===!0}),O=ue.Pop,z=!1,Q=!1,fe=!1,re=!1,ge=[]}async function kr(h,v){if(typeof h=="number"){e.history.go(h);return}let E=sr(y.location,y.matches,l,c.v7_prependBasename,h,c.v7_relativeSplatPath,v==null?void 0:v.fromRouteId,v==null?void 0:v.relative),{path:S,submission:T,error:I}=an(c.v7_normalizeFormMethod,!1,E,v),H=y.location,N=ht(y.location,S,v&&v.state);N=ne({},N,e.history.encodeLocation(N));let j=v&&v.replace!=null?v.replace:void 0,M=ue.Push;j===!0?M=ue.Replace:j===!1||T!=null&&Se(T.formMethod)&&T.formAction===y.location.pathname+y.location.search&&(M=ue.Replace);let k=v&&"preventScrollReset"in v?v.preventScrollReset===!0:void 0,W=(v&&v.flushSync)===!0,K=Yr({currentLocation:H,nextLocation:N,historyAction:M});if(K){wt(K,{state:"blocked",location:N,proceed(){wt(K,{state:"proceeding",proceed:void 0,reset:void 0,location:N}),kr(h,v)},reset(){let he=new Map(y.blockers);he.set(K,lt),ve({blockers:he})}});return}return await Ue(M,N,{submission:T,pendingError:I,preventScrollReset:k,replace:v&&v.replace,enableViewTransition:v&&v.viewTransition,flushSync:W})}function Ea(){if(Vt(),ve({revalidation:"loading"}),y.navigation.state!=="submitting"){if(y.navigation.state==="idle"){Ue(y.historyAction,y.location,{startUninterruptedRevalidation:!0}
34);return}Ue(O||y.historyAction,y.navigation.location,{overrideNavigation:y.navigation,enableViewTransition:Q===!0})}}async function Ue(h,v,E){$&&$.abort(),$=null,O=h,fe=(E&&E.startUninterruptedRevalidation)===!0,Da(y.location,y.matches),z=(E&&E.preventScrollReset)===!0,Q=(E&&E.enableViewTransition)===!0;let S=u||o,T=E&&E.overrideNavigation,I=E!=null&&E.initialHydration&&y.matches&&y.matches.length>0&&!D?y.matches:De(S,v,l),H=(E&&E.flushSync)===!0;if(I&&y.initialized&&!re&&Ni(y.location,v)&&!(E&&E.submission&&Se(E.submission.formMethod))){Xe(v,{matches:I},{flushSync:H});return}let N=Et(I,S,v.pathname);if(N.active&&N.matches&&(I=N.matches),!I){let{error:te,notFoundMatches:Z,route:ie}=Kt(v.pathname);Xe(v,{matches:Z,loaderData:{},errors:{[ie.id]:te}},{flushSync:H});return}$=new AbortController;let j=Ze(e.history,v,$.signal,E&&E.submission),M;if(E&&E.pendingError)M=[He(I).route.id,{type:ee.error,error:E.pendingError}];else if(E&&E.submission&&Se(E.submission.formMethod)){let te=await Ra(j,v,E.submission,I,N.active,{replace:E.replace,flushSync:H});if(te.shortCircuited)return;if(te.pendingActionResult){let[Z,ie]=te.pendingActionResult;if(we(ie)&&We(ie.error)&&ie.error.status===404){$=null,Xe(v,{matches:te.matches,loaderData:{},errors:{[Z]:ie.error}});return}}I=te.matches||I,M=te.pendingActionResult,T=rr(v,E.submission),H=!1,N.active=!1,j=Ze(e.history,j.url,j.signal)}let{shortCircuited:k,matches:W,loaderData:K,errors:he}=await Sa(j,v,I,N.active,T,E&&E.submission,E&&E.fetcherSubmission,E&&E.replace,E&&E.initialHydration===!0,H,M);k||($=null,Xe(v,ne({matches:W||I},mn(M),{loaderData:K,errors:he})))}async function Ra(h,v,E,S,T,I){I===void 0&&(I={}),Vt();let H=$i(v,E);if(ve({navigation:H},{flushSync:I.flushSync===!0}),T){let M=await Rt(S,v.pathname,h.signal);if(M.type==="aborted")return{shortCircuited:!0};if(M.type==="error"){let k=He(M.partialMatches).route.id;return{matches:M.partialMatches,pendingActionResult:[k,{type:ee.error,error:M.error}]}}else if(M.matches)S=M.matches;else{let{notFoundMatches:k,error:W,route:K}=Kt(v.pathname);return{matches:k,pendingActionResult:[K.id,{type:ee.error,error:W}]}}}let N,j=dt(S,v);if(!j.route.action&&!j.route.lazy)N={type:ee.error,error:ye(405,{method:h.method,pathname:v.pathname,routeId:j.route.id})};else if(N=(await rt("action",y,h,[j],S,null))[j.route.id],h.signal.aborted)return{shortCircuited:!0};if(ze(N)){let M;return I&&I.replace!=null?M=I.replace:M=cn(N.response.headers.get("Location"),new URL(h.url),l,e.history)===y.location.pathname+y.location.search,await Fe(h,N,!0,{submission:E,replace:M}),{shortCircuited:!0}}if(ke(N))throw ye(400,{type:"defer-action"});if(we(N)){let M=He(S,j.route.id);return(I&&I.replace)!==!0&&(O=ue.Push),{matches:S,pendingActionResult:[M.route.id,N]}}return{matches:S,pendingActionResult:[j.route.id,N]}}async function Sa(h,v,E,S,T,I,H,N,j,M,k){let W=T||rr(v,I),K=I||H||yn(W),he=!fe&&(!c.v7_partialHydration||!j);if(S){if(he){let oe=Ir(k);ve(ne({navigation:W},oe!==void 0?{actionData:oe}:{}),{flushSync:M})}let q=await Rt(E,v.pathname,h.signal);if(q.type==="aborted")return{shortCircuited:!0};if(q.type==="error"){let oe=He(q.partialMatches).route.id;return{matches:q.partialMatches,loaderData:{},errors:{[oe]:q.error}}}else if(q.matches)E=q.matches;else{let{error:oe,notFoundMatches:qe,route:it}=Kt(v.pathname);return{matches:qe,loaderData:{},errors:{[it.id]:oe}}}}let te=u||o,[Z,ie]=ln(e.history,y,E,K,v,c.v7_partialHydration&&j===!0,c.v7_skipActionErrorRevalidation,re,ge,Ve,G,F,U,te,l,k);if(Xt(q=>!(E&&E.some(oe=>oe.route.id===q))||Z&&Z.some(oe=>oe.route.id===q)),p=++Ke,Z.length===0&&ie.length===0){let q=Hr();return Xe(v,ne({matches:E,loaderData:{},errors:k&&we(k[1])?{[k[0]]:k[1].error}:null},mn(k),q?{fetchers:new Map(y.fetchers)}:{}),{flushSync:M}),{shortCircuited:!0}}if(he){let q={};if(!S){q.navigation=W;let oe=Ir(k);oe!==void 0&&(q.actionData=oe)}ie.length>0&&(q.fetchers=ba(ie)),ve(q,{flushSync:M})}ie.forEach(q=>{Ne(q.key),q.controller&&le.set(q.key,q.controller)});let Ge=()=>ie.forEach(q=>Ne(q.key));$&&$.signal.addEventListener("abort",Ge);let{loaderResults:nt,fetcherResults:Ce}=await Ur(y,E,Z,ie,h);if(h.signal.aborted)return{shortCircuited:!0};$&&$.signal.removeEventListener("abort",Ge),ie.forEach(q=>le.delete(q.key));let xe=_t(nt);if(xe)return await Fe(h,xe.result,!0,{replace:N}),{shortCircuited:!0};if(xe=_t(Ce),xe)return U.add(xe.key),await Fe(h,xe.result,!0,{replace:N}),{shortCircuited:!0};let{loaderData:Gt,errors:at}=fn(y,E,nt,k,ie,Ce,B);B.forEach((q,oe)=>{q.subscribe(qe=>{(qe||q.done)&&B.delete(oe)})}),c.v7_partialHydration&&j&&y.errors&&(at=ne({},y.errors,at));let $e=Hr(),St=zr(p),bt=$e||St||ie.length>0;return ne({matches:E,loaderData:Gt,errors:at},bt?{fetchers:new Map(y.fetchers)}:{})}function Ir(h){if(h&&!we(h[1]))return{[h[0]]:h[1].data};if(y.actionData)return Object.keys(y.actionData).length===0?null:y.actionData}function ba(h){return h.forEach(v=>{let E=y.fetchers.get(v.key),S=st(void 0,E?E.data:void 0);y.fetchers.set(v.key,S)}),new Map(y.fetchers)}
34function xa(h,v,E,S){if(n)throw new Error("router.fetch() was called during the server render, but it shouldn't be. You are likely calling a useFetcher() method in the body of your component. Try moving it to a useEffect or a callback.");Ne(h);let T=(S&&S.flushSync)===!0,I=u||o,H=sr(y.location,y.matches,l,c.v7_prependBasename,E,c.v7_relativeSplatPath,v,S==null?void 0:S.relative),N=De(I,H,l),j=Et(N,I,H);if(j.active&&j.matches&&(N=j.matches),!N){Te(h,v,ye(404,{pathname:H}),{flushSync:T});return}let{path:M,submission:k,error:W}=an(c.v7_normalizeFormMethod,!0,H,S);if(W){Te(h,v,W,{flushSync:T});return}let K=dt(N,M),he=(S&&S.preventScrollReset)===!0;if(k&&Se(k.formMethod)){_a(h,v,M,K,N,j.active,T,he,k);return}F.set(h,{routeId:v,path:M}),Pa(h,v,M,K,N,j.active,T,he,k)}async function _a(h,v,E,S,T,I,H,N,j){Vt(),F.delete(h);function M(se){if(!se.route.action&&!se.route.lazy){let Qe=ye(405,{method:j.formMethod,pathname:E,routeId:v});return Te(h,v,Qe,{flushSync:H}),!0}return!1}if(!I&&M(S))return;let k=y.fetchers.get(h);Me(h,Hi(j,k),{flushSync:H});let W=new AbortController,K=Ze(e.history,E,W.signal,j);if(I){let se=await Rt(T,new URL(K.url).pathname,K.signal,h);if(se.type==="aborted")return;if(se.type==="error"){Te(h,v,se.error,{flushSync:H});return}else if(se.matches){if(T=se.matches,S=dt(T,E),M(S))return}else{Te(h,v,ye(404,{pathname:E}),{flushSync:H});return}}le.set(h,W);let he=Ke,Z=(await rt("action",y,K,[S],T,h))[S.route.id];if(K.signal.aborted){le.get(h)===W&&le.delete(h);return}if(c.v7_fetcherPersist&&G.has(h)){if(ze(Z)||we(Z)){Me(h,je(void 0));return}}else{if(ze(Z))if(le.delete(h),p>he){Me(h,je(void 0));return}else return U.add(h),Me(h,st(j)),Fe(K,Z,!1,{fetcherSubmission:j,preventScrollReset:N});
34if(we(Z)){Te(h,v,Z.error);return}}if(ke(Z))throw ye(400,{type:"defer-action"});let ie=y.navigation.location||y.location,Ge=Ze(e.history,ie,W.signal),nt=u||o,Ce=y.navigation.state!=="idle"?De(nt,y.navigation.location,l):y.matches;Y(Ce,"Didn't find any matches after fetcher action");let xe=++Ke;_.set(h,xe);let Gt=st(j,Z.data);y.fetchers.set(h,Gt);let[at,$e]=ln(e.history,y,Ce,j,ie,!1,c.v7_skipActionErrorRevalidation,re,ge,Ve,G,F,U,nt,l,[S.route.id,Z]);$e.filter(se=>se.key!==h).forEach(se=>{let Qe=se.key,Vr=y.fetchers.get(Qe),Ma=st(void 0,Vr?Vr.data:void 0);y.fetchers.set(Qe,Ma),Ne(Qe),se.controller&&le.set(Qe,se.controller)}),ve({fetchers:new Map(y.fetchers)});let St=()=>$e.forEach(se=>Ne(se.key));W.signal.addEventListener("abort",St);let{loaderResults:bt,fetcherResults:q}=await Ur(y,Ce,at,$e,Ge);if(W.signal.aborted)return;W.signal.removeEventListener("abort",St),_.delete(h),le.delete(h),$e.forEach(se=>le.delete(se.key));let oe=_t(bt);if(oe)return Fe(Ge,oe.result,!1,{preventScrollReset:N});if(oe=_t(q),oe)return U.add(oe.key),Fe(Ge,oe.result,!1,{preventScrollReset:N});let{loaderData:qe,errors:it}=fn(y,Ce,bt,void 0,$e,q,B);if(y.fetchers.has(h)){let se=je(Z.data);y.fetchers.set(h,se)}zr(xe),y.navigation.state==="loading"&&xe>p?(Y(O,"Expected pending action"),$&&$.abort(),Xe(y.navigation.location,{matches:Ce,loaderData:qe,errors:it,fetchers:new Map(y.fetchers)})):(ve({errors:it,loaderData:hn(y.loaderData,qe,Ce,it),fetchers:new Map(y.fetchers)}),re=!1)}async function Pa(h,v,E,S,T,I,H,N,j){let M=y.fetchers.get(h);Me(h,st(j,M?M.data:void 0),{flushSync:H});let k=new AbortController,W=Ze(e.history,E,k.signal);if(I){let Z=await Rt(T,new URL(W.url).pathname,W.signal,h);if(Z.type==="aborted")return;if(Z.type==="error"){Te(h,v,Z.error,{flushSync:H});return}else if(Z.matches)T=Z.matches,S=dt(T,E);else{Te(h,v,ye(404,{pathname:E}),{flushSync:H});return}}le.set(h,k);let K=Ke,te=(await rt("loader",y,W,[S],T,h))[S.route.id];if(ke(te)&&(te=await Er(te,W.signal,!0)||te),le.get(h)===k&&le.delete(h),!W.signal.aborted){if(G.has(h)){Me(h,je(void 0));return}if(ze(te))if(p>K){Me(h,je(void 0));return}else{U.add(h),await Fe(W,te,!1,{preventScrollReset:N});return}if(we(te)){Te(h,v,te.error);return}Y(!ke(te),"Unhandled fetcher deferred data"),Me(h,je(te.data))}}async function Fe(h,v,E,S){let{submission:T,fetcherSubmission:I,preventScrollReset:H,replace:N}=S===void 0?{}:S;v.response.headers.has("X-Remix-Revalidate")&&(re=!0);let j=v.response.headers.get("Location");Y(j,"Expected a Location header on the redirect Response"),j=cn(j,new URL(h.url),l,e.history);let M=ht(y.location,j,{_isRedirect:!0});if(r){let Z=!1;if(v.response.headers.has("X-Remix-Reload-Document"))Z=!0;else if(wr.test(j)){const ie=e.history.createURL(j);Z=ie.origin!==t.location.origin||Re(ie.pathname,l)==null}if(Z){N?t.location.replace(j):t.location.assign(j);return}}$=null;let k=N===!0||v.response.headers.has("X-Remix-Replace")?ue.Replace:ue.Push,{formMethod:W,formAction:K,formEncType:he}=y.navigation;!T&&!I&&W&&K&&he&&(T=yn(y.navigation));let te=T||I;if(Si.has(v.response.status)&&te&&Se(te.formMethod))await Ue(k,M,{submission:ne({},te,{formAction:j}),preventScrollReset:H||z,enableViewTransition:E?Q:void 0});else{let Z=rr(M,T);await Ue(k,M,{overrideNavigation:Z,fetcherSubmission:I,preventScrollReset:H||z,enableViewTransition:E?Q:void 0})}}async function rt(h,v,E,S,T,I){let H,N={};try{H=await Ci(s,h,v,E,S,T,I,i,a)}catch(j){return S.forEach(M=>{N[M.route.id]={type:ee.error,error:j}}),N}for(let[j,M]of Object.entries(H))if(ji(M)){let k=M.result;N[j]={type:ee.redirect,response:Ai(k,E,j,T,l,c.v7_relativeSplatPath)}}else N[j]=await Oi(M);return N}async function Ur(h,v,E,S,T){let I=h.matches,H=rt("loader",h,T,E,v,null),N=Promise.all(S.map(async k=>{if(k.matches&&k.match&&k.controller){let K=(await rt("loader",h,Ze(e.history,k.path,k.controller.signal),[k.match],k.matches,k.key))[k.match.route.id];return{[k.key]:K}}else return Promise.resolve({[k.key]:{type:ee.error,error:ye(404,{pathname:k.path})}})})),j=await H,M=(await N).reduce((k,W)=>Object.assign(k,W),{});return await Promise.all([Ui(v,j,T.signal,I,h.loaderData),Fi(v,M,S)]),{loaderResults:j,fetcherResults:M}}function Vt(){re=!0,ge.push(...Xt()),F.forEach((h,v)=>{le.has(v)&&Ve.add(v),Ne(v)})}function Me(h,v,E){E===void 0&&(E={}),y.fetchers.set(h,v),ve({fetchers:new Map(y.fetchers)},{flushSync:(E&&E.flushSync)===!0})}function Te(h,v,E,S){S===void 0&&(S={});let T=He(y.matches,v);gt(h),ve({errors:{[T.route.id]:E},fetchers:new Map(y.fetchers)},{flushSync:(S&&S.flushSync)===!0})}function Fr(h){return V.set(h,(V.get(h)||0)+1),G.has(h)&&G.delete(h),y.fetchers.get(h)||bi}function gt(h){let v=y.fetchers.get(h);
34le.has(h)&&!(v&&v.state==="loading"&&_.has(h))&&Ne(h),F.delete(h),_.delete(h),U.delete(h),c.v7_fetcherPersist&&G.delete(h),Ve.delete(h),y.fetchers.delete(h)}function La(h){let v=(V.get(h)||0)-1;v<=0?(V.delete(h),G.add(h),c.v7_fetcherPersist||gt(h)):V.set(h,v),ve({fetchers:new Map(y.fetchers)})}function Ne(h){let v=le.get(h);v&&(v.abort(),le.delete(h))}function $r(h){for(let v of h){let E=Fr(v),S=je(E.data);y.fetchers.set(v,S)}}function Hr(){let h=[],v=!1;for(let E of U){let S=y.fetchers.get(E);Y(S,"Expected fetcher: "+E),S.state==="loading"&&(U.delete(E),h.push(E),v=!0)}return $r(h),v}function zr(h){let v=[];for(let[E,S]of _)if(S<h){let T=y.fetchers.get(E);Y(T,"Expected fetcher: "+E),T.state==="loading"&&(Ne(E),_.delete(E),v.push(E))}return $r(v),v.length>0}function Ta(h,v){let E=y.blockers.get(h)||lt;return me.get(h)!==v&&me.set(h,v),E}function Br(h){y.blockers.delete(h),me.delete(h)}function wt(h,v){let E=y.blockers.get(h)||lt;Y(E.state==="unblocked"&&v.state==="blocked"||E.state==="blocked"&&v.state==="blocked"||E.state==="blocked"&&v.state==="proceeding"||E.state==="blocked"&&v.state==="unblocked"||E.state==="proceeding"&&v.state==="unblocked","Invalid blocker state transition: "+E.state+" -> "+v.state);let S=new Map(y.blockers);S.set(h,v),ve({blockers:S})}function Yr(h){let{currentLocation:v,nextLocation:E,historyAction:S}=h;if(me.size===0)return;me.size>1&&Be(!1,"A router only supports one blocker at a time");let T=Array.from(me.entries()),[I,H]=T[T.length-1],N=y.blockers.get(I);if(!(N&&N.state==="proceeding")&&H({currentLocation:v,nextLocation:E,historyAction:S}))return I}function Kt(h){let v=ye(404,{pathname:h}),E=u||o,{matches:S,route:T}=pn(E);return Xt(),{notFoundMatches:S,route:T,error:v}}function Xt(h){let v=[];return B.forEach((E,S)=>{(!h||h(S))&&(E.cancel(),v.push(S),B.delete(S))}),v}function Ca(h,v,E){if(g=h,b=v,R=E||null,!C&&y.navigation===tr){C=!0;let S=Jr(y.location,y.matches);S!=null&&ve({restoreScrollPosition:S})}return()=>{g=null,b=null,R=null}}function Wr(h,v){return R&&R(h,v.map(S=>Mn(S,y.loaderData)))||h.key}function Da(h,v){if(g&&b){let E=Wr(h,v);g[E]=b()}}function Jr(h,v){if(g){let E=Wr(h,v),S=g[E];if(typeof S=="number")return S}return null}function Et(h,v,E){if(d)if(h){if(Object.keys(h[0].params).length>0)return{active:!0,matches:Dt(v,E,l,!0)}}else return{active:!0,matches:Dt(v,E,l,!0)||[]};return{active:!1,matches:null}}async function Rt(h,v,E,S){if(!d)return{type:"success",matches:h};let T=h;for(;;){let I=u==null,H=u||o,N=i;try{await d({signal:E,path:v,matches:T,fetcherKey:S,patch:(k,W)=>{E.aborted||un(k,W,H,N,a)}})}catch(k){return{type:"error",error:k,partialMatches:T}}finally{I&&!E.aborted&&(o=[...o])}if(E.aborted)return{type:"aborted"};let j=De(H,v,l);if(j)return{type:"success",matches:j};let M=Dt(H,v,l,!0);if(!M||T.length===M.length&&T.every((k,W)=>k.route.id===M[W].route.id))return{type:"success",matches:null};T=M}}function Oa(h){i={},u=Nt(h,a,void 0,i)}function Aa(h,v){let E=u==null;un(h,v,u||o,i,a),E&&(o=[...o],ve({}))}return A={get basename(){return l},get future(){return c},get state(){return y},get routes(){return o},get window(){return t},initialize:Jt,subscribe:wa,enableScrollRestoration:Ca,navigate:kr,fetch:xa,revalidate:Ea,createHref:h=>e.history.createHref(h),encodeLocation:h=>e.history.encodeLocation(h),getFetcher:Fr,deleteFetcher:La,dispose:ga,getBlocker:Ta,deleteBlocker:Br,patchRoutes:Aa,_internalFetchControllers:le,_internalActiveDeferreds:B,_internalSetRoutes:Oa},A}function _i(e){return e!=null&&("formData"in e&&e.formData!=null||"body"in e&&e.body!==void 0)}function sr(e,t,r,n,a,i,o,u){let l,s;if(o){l=[];for(let c of t)if(l.push(c),c.route.id===o){s=c;break}}else l=t,s=t[t.length-1];let d=yr(a||".",vr(l,i),Re(e.pathname,r)||e.pathname,u==="path");if(a==null&&(d.search=e.search,d.hash=e.hash),(a==null||a===""||a===".")&&s){let c=Rr(d.search);if(s.route.index&&!c)d.search=d.search?d.search.replace(/^\?/,"?index&"):"?index";else if(!s.route.index&&c){let m=new URLSearchParams(d.search),w=m.getAll("index");m.delete("index"),w.filter(R=>R).forEach(R=>m.append("index",R));let g=m.toString();d.search=g?"?"+g:""}}return n&&r!=="/"&&(d.pathname=d.pathname==="/"?r:_e([r,d.pathname])),Ie(d)}function an(e,t,r,n){if(!n||!_i(n))return{path:r};if(n.formMethod&&!Ii(n.formMethod))return{path:r,error:ye(405,{method:n.formMethod})};let a=()=>({path:r,error:ye(400,{type:"invalid-body"})}),i=n.formMethod||"get",o=e?i.toUpperCase():i.toLowerCase(),u=zn(r);if(n.body!==void 0){if(n.formEncType==="text/plain"){if(!Se(o))return a();
34let m=typeof n.body=="string"?n.body:n.body instanceof FormData||n.body instanceof URLSearchParams?Array.from(n.body.entries()).reduce((w,g)=>{let[R,b]=g;return""+w+R+"="+b+` 35`},""):String(n.body);return{path:r,submission:{formMethod:o,formAction:u,formEncType:n.formEncType,formData:void 0,json:void 0,text:m}}}else if(n.formEncType==="application/json"){if(!Se(o))return a();try{let m=typeof n.body=="string"?JSON.parse(n.body):n.body;return{path:r,submission:{formMethod:o,formAction:u,formEncType:n.formEncType,formData:void 0,json:m,text:void 0}}}catch{return a()}}}Y(typeof FormData=="function","FormData is not available in this environment");let l,s;if(n.formData)l=cr(n.formData),s=n.formData;else if(n.body instanceof FormData)l=cr(n.body),s=n.body;else if(n.body instanceof URLSearchParams)l=n.body,s=dn(l);else if(n.body==null)l=new URLSearchParams,s=new FormData;else try{l=new URLSearchParams(n.body),s=dn(l)}catch{return a()}let d={formMethod:o,formAction:u,formEncType:n&&n.formEncType||"application/x-www-form-urlencoded",formData:s,json:void 0,text:void 0};if(Se(d.formMethod))return{path:r,submission:d};let c=Ae(r);return t&&c.search&&Rr(c.search)&&l.append("index",""),c.search="?"+l,{path:Ie(c),submission:d}}function on(e,t,r){r===void 0&&(r=!1);let n=e.findIndex(a=>a.route.id===t);return n>=0?e.slice(0,r?n+1:n):e}function ln(e,t,r,n,a,i,o,u,l,s,d,c,m,w,g,R){let b=R?we(R[1])?R[1].error:R[1].data:void 0,C=e.createURL(t.location),x=e.createURL(a),D=r;i&&t.errors?D=on(r,Object.keys(t.errors)[0],!0):R&&we(R[1])&&(D=on(r,R[0]));let P=R?R[1].statusCode:void 0,L=o&&P&&P>=400,A=D.filter((O,z)=>{let{route:$}=O;if($.lazy)return!0;if($.loader==null)return!1;if(i)return ur($,t.loaderData,t.errors);if(Pi(t.loaderData,t.matches[z],O)||l.some(de=>de===O.route.id))return!0;let Q=t.matches[z],X=O;return sn(O,ne({currentUrl:C,currentParams:Q.params,nextUrl:x,nextParams:X.params},n,{actionResult:b,actionStatus:P,defaultShouldRevalidate:L?!1:u||C.pathname+C.search===x.pathname+x.search||C.search!==x.search||$n(Q,X)}))}),y=[];return c.forEach((O,z)=>{if(i||!r.some(fe=>fe.route.id===O.routeId)||d.has(z))return;let $=De(w,O.path,g);if(!$){y.push({key:z,routeId:O.routeId,path:O.path,matches:null,match:null,controller:null});return}let Q=t.fetchers.get(z),X=dt($,O.path),de=!1;m.has(z)?de=!1:s.has(z)?(s.delete(z),de=!0):Q&&Q.state!=="idle"&&Q.data===void 0?de=u:de=sn(X,ne({currentUrl:C,currentParams:t.matches[t.matches.length-1].params,nextUrl:x,nextParams:r[r.length-1].params},n,{actionResult:b,actionStatus:P,defaultShouldRevalidate:L?!1:u})),de&&y.push({key:z,routeId:O.routeId,path:O.path,matches:$,match:X,controller:new AbortController})}),[A,y]}function ur(e,t,r){if(e.lazy)return!0;if(!e.loader)return!1;let n=t!=null&&t[e.id]!==void 0,a=r!=null&&r[e.id]!==void 0;return!n&&a?!1:typeof e.loader=="function"&&e.loader.hydrate===!0?!0:!n&&!a}function Pi(e,t,r){let n=!t||r.route.id!==t.route.id,a=e[r.route.id]===void 0;return n||a}function $n(e,t){let r=e.route.path;return e.pathname!==t.pathname||r!=null&&r.endsWith("*")&&e.params["*"]!==t.params["*"]}function sn(e,t){if(e.route.shouldRevalidate){let r=e.route.shouldRevalidate(t);if(typeof r=="boolean")return r}return t.defaultShouldRevalidate}function un(e,t,r,n,a){var i;let o;if(e){let s=n[e];Y(s,"No route found to patch children into: routeId = "+e),s.children||(s.children=[]),o=s.children}else o=r;let u=t.filter(s=>!o.some(d=>Hn(s,d))),l=Nt(u,a,[e||"_","patch",String(((i=o)==null?void 0:i.length)||"0")],n);o.push(...l)}function Hn(e,t){return"id"in e&&"id"in t&&e.id===t.id?!0:e.index===t.index&&e.path===t.path&&e.caseSensitive===t.caseSensitive?(!e.children||e.children.length===0)&&(!t.children||t.children.length===0)?!0:e.children.every((r,n)=>{var a;return(a=t.children)==null?void 0:a.some(i=>Hn(r,i))}):!1}async function Li(e,t,r){if(!e.lazy)return;let n=await e.lazy();if(!e.lazy)return;let a=r[e.id];Y(a,"No route found in manifest");let i={};for(let o in n){let l=a[o]!==void 0&&o!=="hasErrorBoundary";Be(!l,'Route "'+a.id+'" has a static property "'+o+'" defined but its lazy function is also returning a value for this property. '+('The lazy route property "'+o+'" will be ignored.')),!l&&!Va.has(o)&&(i[o]=n[o])}Object.assign(a,i),Object.assign(a,ne({},t(a),{lazy:void 0}))}async function Ti(e){let{matches:t}=e,r=t.filter(a=>a.shouldLoad);return(await Promise.all(r.map(a=>a.resolve()))).reduce((a,i,o)=>Object.assign(a,{[r[o].route.id]:i}),{})}async function Ci(e,t,r,n,a,i,o,u,l,s){let d=i.map(w=>w.route.lazy?Li(w.route,l,u):void 0),c=i.map((w,g)=>{let R=d[g],b=a.some(x=>x.route.id===w.route.id);return ne({},w,{shouldLoad:b,resolve:async x=>(x&&n.method==="GET"&&(w.route.lazy||w.route.loader)&&(b=!0),b?Di(t,n,w,R,x,s):Promise.resolve({type:ee.data,result:void 0}))})}),m=await e({matches:c,request:n,params:i[0].params,fetcherKey:o,context:s});try{await Promise.all(d)}catch{}return m}async function Di(e,t,r,n,a,i){let o,u,l=s=>{let d,c=new Promise((g,R)=>d=R);u=()=>d(),t.signal.addEventListener("abort",u);let m=g=>typeof s!="function"?Promise.reject(new Error("You cannot call the handler for a route which defines a boolean "+('"'+e+'" [routeId: '+r.route.id+"]"))):s({request:t,params:r.params,context:i},...g!==void 0?[g]:[]),w=(async()=>{try{return{type:"data",result:await(a?a(R=>m(R)):m())}}catch(g){return{type:"error",result:g}}})();return Promise.race([w,c])};try{let s=r.route[e];if(n)if(s){let d,[c]=await Promise.all([l(s).catch(m=>{d=m}),n]);if(d!==void 0)throw d;o=c}else if(await n,s=r.route[e],s)o=await l(s);else if(e==="action"){let d=new URL(t.url),c=d.pathname+d.search;throw ye(405,{method:t.method,pathname:c,routeId:r.route.id})}else return{type:ee.data,result:void 0};else if(s)o=await l(s);else{let d=new URL(t.url),c=d.pathname+d.search;throw ye(404,{pathname:c})}Y(o.result!==void 0,"You defined "+(e==="action"?"an action":"a loader")+" for route "+('"'+r.route.id+"\" but didn't return anything from your `"+e+"` ")+"function. Please return a value or `null`.")}catch(s){return{type:ee.error,result:s}}finally{u&&t.signal.removeEventListener("abort",u)}return o}async function Oi(e){let{result:t,type:r}=e;if(Bn(t)){let c;try{let m=t.headers.get("Content-Type");m&&/\bapplication\/json\b/.test(m)?t.body==null?c=null:c=await t.json():c=await t.text()}catch(m){return{type:ee.error,error:m}}return r===ee.error?{type:ee.error,error:new Ye(t.status,t.statusText,c),statusCode:t.status,headers:t.headers}:{type:ee.data,data:c,statusCode:t.status,headers:t.headers}}if(r===ee.error){if(vn(t)){var n,a;if(t.data instanceof Error){var i,o;return{type:ee.error,error:t.data,statusCode:(i=t.init)==null?void 0:i.status,headers:(o=t.init)!=null&&o.headers?new Headers(t.init.headers):void 0}}return{type:ee.error,error:new Ye(((n=t.init)==null?void 0:n.status)||500,void 0,t.data),statusCode:We(t)?t.status:void 0,headers:(a=t.init)!=null&&a.headers?new Headers(t.init.headers):void 0}}return{type:ee.error,error:t,statusCode:We(t)?t.status:void 0}}if(ki(t)){var u,l;return{type:ee.deferred,deferredData:t,statusCode:(u=t.init)==null?void 0:u.status,headers:((l=t.init)==null?void 0:l.headers)&&new Headers(t.init.headers)}}if(vn(t)){var s,d;return{type:ee.data,data:t.data,statusCode:(s=t.init)==null?void 0:s.status,headers:(d=t.init)!=null&&d.headers?new Headers(t.init.headers):void 0}}return{type:ee.data,data:t}}function Ai(e,t,r,n,a,i){let o=e.headers.get("Location");if(Y(o,"Redirects returned/thrown from loaders/actions must have a Location header"),!wr.test(o)){let u=n.slice(0,n.findIndex(l=>l.route.id===r)+1);
35o=sr(new URL(t.url),u,a,!0,o,i),e.headers.set("Location",o)}return e}function cn(e,t,r,n){let a=["about:","blob:","chrome:","chrome-untrusted:","content:","data:","devtools:","file:","filesystem:","javascript:"];if(wr.test(e)){let i=e,o=i.startsWith("//")?new URL(t.protocol+i):new URL(i);if(a.includes(o.protocol))throw new Error("Invalid redirect location");let u=Re(o.pathname,r)!=null;if(o.origin===t.origin&&u)return gr(o.pathname)+o.search+o.hash}try{let i=n.createURL(e);if(a.includes(i.protocol))throw new Error("Invalid redirect location")}catch{}return e}function Ze(e,t,r,n){let a=e.createURL(zn(t)).toString(),i={signal:r};if(n&&Se(n.formMethod)){let{formMethod:o,formEncType:u}=n;i.method=o.toUpperCase(),u==="application/json"?(i.headers=new Headers({"Content-Type":u}),i.body=JSON.stringify(n.json)):u==="text/plain"?i.body=n.text:u==="application/x-www-form-urlencoded"&&n.formData?i.body=cr(n.formData):i.body=n.formData}return new Request(a,i)}function cr(e){let t=new URLSearchParams;for(let[r,n]of e.entries())t.append(r,typeof n=="string"?n:n.name);return t}function dn(e){let t=new FormData;for(let[r,n]of e.entries())t.append(r,n);return t}function Mi(e,t,r,n,a){let i={},o=null,u,l=!1,s={},d=r&&we(r[1])?r[1].error:void 0;return e.forEach(c=>{if(!(c.route.id in t))return;let m=c.route.id,w=t[m];if(Y(!ze(w),"Cannot handle redirect results in processLoaderData"),we(w)){let g=w.error;d!==void 0&&(g=d,d=void 0),o=o||{};{let R=He(e,m);o[R.route.id]==null&&(o[R.route.id]=g)}i[m]=void 0,l||(l=!0,u=We(w.error)?w.error.status:500),w.headers&&(s[m]=w.headers)}else ke(w)?(n.set(m,w.deferredData),i[m]=w.deferredData.data,w.statusCode!=null&&w.statusCode!==200&&!l&&(u=w.statusCode),w.headers&&(s[m]=w.headers)):(i[m]=w.data,w.statusCode&&w.statusCode!==200&&!l&&(u=w.statusCode),w.headers&&(s[m]=w.headers))}
35),d!==void 0&&r&&(o={[r[0]]:d},i[r[0]]=void 0),{loaderData:i,errors:o,statusCode:u||200,loaderHeaders:s}}function fn(e,t,r,n,a,i,o){let{loaderData:u,errors:l}=Mi(t,r,n,o);return a.forEach(s=>{let{key:d,match:c,controller:m}=s,w=i[d];if(Y(w,"Did not find corresponding fetcher result"),!(m&&m.signal.aborted))if(we(w)){let g=He(e.matches,c==null?void 0:c.route.id);l&&l[g.route.id]||(l=ne({},l,{[g.route.id]:w.error})),e.fetchers.delete(d)}else if(ze(w))Y(!1,"Unhandled fetcher revalidation redirect");else if(ke(w))Y(!1,"Unhandled fetcher deferred data");else{let g=je(w.data);e.fetchers.set(d,g)}}),{loaderData:u,errors:l}}function hn(e,t,r,n){let a=ne({},t);for(let i of r){let o=i.route.id;if(t.hasOwnProperty(o)?t[o]!==void 0&&(a[o]=t[o]):e[o]!==void 0&&i.route.loader&&(a[o]=e[o]),n&&n.hasOwnProperty(o))break}return a}function mn(e){return e?we(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function He(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 pn(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 ye(e,t){let{pathname:r,routeId:n,method:a,type:i,message:o}=t===void 0?{}:t,u="Unknown Server Error",l="Unknown @remix-run/router error";return e===400?(u="Bad Request",a&&r&&n?l="You made a "+a+' request to "'+r+'" but '+('did not provide a `loader` for route "'+n+'", ')+"so there is no way to handle the request.":i==="defer-action"?l="defer() is not supported in actions":i==="invalid-body"&&(l="Unable to encode submission body")):e===403?(u="Forbidden",l='Route "'+n+'" does not match URL "'+r+'"'):e===404?(u="Not Found",l='No route matches URL "'+r+'"'):e===405&&(u="Method Not Allowed",a&&r&&n?l="You made a "+a.toUpperCase()+' request to "'+r+'" but '+('did not provide an `action` for route "'+n+'", ')+"so there is no way to handle the request.":a&&(l='Invalid request method "'+a.toUpperCase()+'"')),new Ye(e||500,u,new Error(l),!0)}function _t(e){let t=Object.entries(e);for(let r=t.length-1;r>=0;r--){let[n,a]=t[r];if(ze(a))return{key:n,result:a}}}function zn(e){let t=typeof e=="string"?Ae(e):e;return Ie(ne({},t,{hash:""}))}function Ni(e,t){return e.pathname!==t.pathname||e.search!==t.search?!1:e.hash===""?t.hash!=="":e.hash===t.hash?!0:t.hash!==""}function ji(e){return Bn(e.result)&&Ri.has(e.result.status)}function ke(e){return e.type===ee.deferred}function we(e){return e.type===ee.error}function ze(e){return(e&&e.type)===ee.redirect}function vn(e){return typeof e=="object"&&e!=null&&"type"in e&&"data"in e&&"init"in e&&e.type==="DataWithResponseInit"}function ki(e){let t=e;return t&&typeof t=="object"&&typeof t.data=="object"&&typeof t.subscribe=="function"&&typeof t.cancel=="function"&&typeof t.resolveData=="function"}function Bn(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.headers=="object"&&typeof e.body<"u"}function Ii(e){return Ei.has(e.toLowerCase())}function Se(e){return gi.has(e.toLowerCase())}async function Ui(e,t,r,n,a){let i=Object.entries(t);for(let o=0;o<i.length;o++){let[u,l]=i[o],s=e.find(m=>(m==null?void 0:m.route.id)===u);if(!s)continue;let d=n.find(m=>m.route.id===s.route.id),c=d!=null&&!$n(d,s)&&(a&&a[s.route.id])!==void 0;ke(l)&&c&&await Er(l,r,!1).then(m=>{m&&(t[u]=m)})}}async function Fi(e,t,r){for(let n=0;n<r.length;n++){let{key:a,routeId:i,controller:o}=r[n],u=t[a];e.find(s=>(s==null?void 0:s.route.id)===i)&&ke(u)&&(Y(o,"Expected an AbortController for revalidating fetcher deferred result"),await Er(u,o.signal,!0).then(s=>{s&&(t[a]=s)}))}}async function Er(e,t,r){if(r===void 0&&(r=!1),!await e.deferredData.resolveData(t)){if(r)try{return{type:ee.data,data:e.deferredData.unwrappedData}}catch(a){return{type:ee.error,error:a}}return{type:ee.data,data:e.deferredData.data}}}function Rr(e){return new URLSearchParams(e).getAll("index").some(t=>t==="")}function dt(e,t){let r=typeof t=="string"?Ae(t).search:t.search;if(e[e.length-1].route.index&&Rr(r||""))return e[e.length-1];let n=kn(e);return n[n.length-1]}function yn(e){let{formMethod:t,formAction:r,formEncType:n,text:a,formData:i,json:o}=e;
35if(!(!t||!r||!n)){if(a!=null)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:void 0,text:a};if(i!=null)return{formMethod:t,formAction:r,formEncType:n,formData:i,json:void 0,text:void 0};if(o!==void 0)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:o,text:void 0}}}function rr(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 $i(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 st(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 Hi(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 je(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 zi(e,t){try{let r=e.sessionStorage.getItem(Fn);if(r){let n=JSON.parse(r);for(let[a,i]of Object.entries(n||{}))i&&Array.isArray(i)&&t.set(a,new Set(i||[]))}}catch{}}function Bi(e,t){if(t.size>0){let r={};for(let[n,a]of t)r[n]=[...a];try{e.sessionStorage.setItem(Fn,JSON.stringify(r))}catch(n){Be(!1,"Failed to save applied view transitions in sessionStorage ("+n+").")}}}/** 36 * React Router v6.30.4 37 * 38 * Copyright (c) Remix Software Inc. 39 * 40 * This source code is licensed under the MIT license found in the 41 * LICENSE.md file in the root directory of this source tree. 42 * 43 * @license MIT 44 */function It(){return It=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},It.apply(null,arguments)}const et=f.createContext(null),pt=f.createContext(null),Ut=f.createContext(null),be=f.createContext(null),Sr=f.createContext(null),Pe=f.createContext({outlet:null,matches:[],isDataRoute:!1}),Yn=f.createContext(null);function br(e,t){let{relative:r}=t===void 0?{}:t;vt()||Y(!1);let{basename:n,navigator:a}=f.useContext(be),{hash:i,pathname:o,search:u}=yt(e,{relative:r}),l=o;return n!=="/"&&(l=o==="/"?n:_e([n,o])),a.createHref({pathname:l,search:u,hash:i})}function vt(){return f.useContext(Sr)!=null}function Le(){return vt()||Y(!1),f.useContext(Sr).location}function Wn(e){f.useContext(be).static||f.useLayoutEffect(e)}function Jn(){let{isDataRoute:e}=f.useContext(Pe);return e?lo():Yi()}function Yi(){vt()||Y(!1);let e=f.useContext(et),{basename:t,future:r,navigator:n}=f.useContext(be),{matches:a}=f.useContext(Pe),{pathname:i}=Le(),o=JSON.stringify(vr(a,r.v7_relativeSplatPath)),u=f.useRef(!1);return Wn(()=>{u.current=!0}),f.useCallback(function(s,d){if(d===void 0&&(d={}),!u.current)return;if(typeof s=="number"){n.go(s);return}let c=yr(s,JSON.parse(o),i,d.relative==="path");e==null&&t!=="/"&&(c.pathname=c.pathname==="/"?t:_e([t,c.pathname])),(d.replace?n.replace:n.push)(c,d.state,d)},[t,n,o,i,e])}const Wi=f.createContext(null);function Ji(e){let t=f.useContext(Pe).outlet;return t&&f.createElement(Wi.Provider,{value:e},t)}function hs(){let{matches:e}=f.useContext(Pe),t=e[e.length-1];return t?t.params:{}}function yt(e,t){let{relative:r}=t===void 0?{}:t,{future:n}=f.useContext(be),{matches:a}=f.useContext(Pe),{pathname:i}=Le(),o=JSON.stringify(vr(a,n.v7_relativeSplatPath));return f.useMemo(()=>yr(e,JSON.parse(o),i,r==="path"),[e,o,i,r])}function Vi(e,t,r,n){vt()||Y(!1);let{navigator:a}=f.useContext(be),{matches:i}=f.useContext(Pe),o=i[i.length-1],u=o?o.params:{};o&&o.pathname;let l=o?o.pathnameBase:"/";o&&o.route;let s=Le(),d;d=s;let c=d.pathname||"/",m=c;if(l!=="/"){let R=l.replace(/^\//,"").split("/");m="/"+c.replace(/^\//,"").split("/").slice(R.length).join("/")}let w=De(e,{pathname:m});return Qi(w&&w.map(R=>Object.assign({},R,{params:Object.assign({},u,R.params),pathname:_e([l,a.encodeLocation?a.encodeLocation(R.pathname).pathname:R.pathname]),pathnameBase:R.pathnameBase==="/"?l:_e([l,a.encodeLocation?a.encodeLocation(R.pathnameBase).pathname:R.pathnameBase])})),i,r,n)}function Ki(){let e=Xn(),t=We(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null,a={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return f.createElement(f.Fragment,null,f.createElement("h2",null,"Unexpected Application
44Error!"),f.createElement("h3",{style:{fontStyle:"italic"}},t),r?f.createElement("pre",{style:a},r):null,null)}const Xi=f.createElement(Ki,null);class Gi extends f.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,r){return r.location!==t.location||r.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:r.error,location:r.location,revalidation:t.revalidation||r.revalidation}}componentDidCatch(t,r){console.error("React Router caught the following error during render",t,r)}render(){return this.state.error!==void 0?f.createElement(Pe.Provider,{value:this.props.routeContext},f.createElement(Yn.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function qi(e){let{routeContext:t,match:r,children:n}=e,a=f.useContext(et);return a&&a.static&&a.staticContext&&(r.route.errorElement||r.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=r.route.id),f.createElement(Pe.Provider,{value:t},n)}function Qi(e,t,r,n){var a;if(t===void 0&&(t=[]),r===void 0&&(r=null),n===void 0&&(n=null),e==null){var i;if(!r)return null;if(r.errors)e=r.matches;else if((i=n)!=null&&i.v7_partialHydration&&t.length===0&&!r.initialized&&r.matches.length>0)e=r.matches;else return null}let o=e,u=(a=r)==null?void 0:a.errors;if(u!=null){let d=o.findIndex(c=>c.route.id&&(u==null?void 0:u[c.route.id])!==void 0);d>=0||Y(!1),o=o.slice(0,Math.min(o.length,d+1))}let l=!1,s=-1;if(r&&n&&n.v7_partialHydration)for(let d=0;d<o.length;d++){let c=o[d];if((c.route.HydrateFallback||c.route.hydrateFallbackElement)&&(s=d),c.route.id){let{loaderData:m,errors:w}=r,g=c.route.loader&&m[c.route.id]===void 0&&(!w||w[c.route.id]===void 0);if(c.route.lazy||g){l=!0,s>=0?o=o.slice(0,s+1):o=[o[0]];break}}}return o.reduceRight((d,c,m)=>{let w,g=!1,R=null,b=null;r&&(w=u&&c.route.id?u[c.route.id]:void 0,R=c.route.errorElement||Xi,l&&(s<0&&m===0?(so("route-fallback"),g=!0,b=null):s===m&&(g=!0,b=c.route.hydrateFallbackElement||null)));let C=t.concat(o.slice(0,m+1)),x=()=>{let D;return w?D=R:g?D=b:c.route.Component?D=f.createElement(c.route.Component,null):c.route.element?D=c.route.element:D=d,f.createElement(qi,{match:c,routeContext:{outlet:d,matches:C,isDataRoute:r!=null},children:D})};return r&&(c.route.ErrorBoundary||c.route.errorElement||m===0)?f.createElement(Gi,{location:r.location,revalidation:r.revalidation,component:R,error:w,children:x(),routeContext:{outlet:null,matches:C,isDataRoute:!0}}):x()},null)}var Vn=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(Vn||{}),Kn=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(Kn||{});function Zi(e){let t=f.useContext(et);return t||Y(!1),t}function $t(e){let t=f.useContext(pt);return t||Y(!1),t}function eo(e){let t=f.useContext(Pe);return t||Y(!1),t}function Ht(e){let t=eo(),r=t.matches[t.matches.length-1];return r.route.id||Y(!1),r.route.id}function to(){return Ht()}function ro(){return $t().navigation}function no(){let{matches:e,loaderData:t}=$t();return f.useMemo(()=>e.map(r=>Mn(r,t)),[e,t])}function ao(){let e=$t(),t=Ht();if(e.errors&&e.errors[t]!=null){console.error("You cannot `useLoaderData` in an errorElement (routeId: "+t+")");return}return e.loaderData[t]}function Xn(){var e;let t=f.useContext(Yn),r=$t(Kn.UseRouteError),n=Ht();return t!==void 0?t:(e=r.errors)==null?void 0:e[n]}function io(){let e=f.useContext(Ut);return e==null?void 0:e._data}function oo(){let e=f.useContext(Ut);return e==null?void 0:e._error}function lo(){let{router:e}=Zi(Vn.UseNavigateStable),t=Ht(),r=f.useRef(!1);return Wn(()=>{r.current=!0}),f.useCallback(function(a,i){i===void 0&&(i={}),r.current&&(typeof a=="number"?e.navigate(a):e.navigate(a,It({fromRouteId:t},i)))},[e,t])}const gn={};function so(e,t,r){gn[e]||(gn[e]=!0)}function uo(e,t){e==null||e.v7_startTransition,(e==null?void 0:e.v7_relativeSplatPath)===void 0&&(!t||t.v7_relativeSplatPath),t&&(t.v7_fetcherPersist,t.v7_normalizeFormMethod,t.v7_partialHydration,t.v7_skipActionErrorRevalidation)}function ms(e){return Ji(e.context)}function co(e){let{basename:t="/",children:r=null,location:n,navigationType:a=ue.Pop,navigator:i,static:o=!1,future:u}=e;vt()&&Y(!1);let l=t.replace(/^\/*/,"/"),s=f.useMemo(()=>({basename:l,navigator:i,static:o,future:It({v7_relativeSplatPath:!1},u)}),[l,u,i,o]);typeof n=="string"&&(n=Ae(n));
44let{pathname:d="/",search:c="",hash:m="",state:w=null,key:g="default"}=n,R=f.useMemo(()=>{let b=Re(d,l);return b==null?null:{location:{pathname:b,search:c,hash:m,state:w,key:g},navigationType:a}},[l,d,c,m,w,g,a]);return R==null?null:f.createElement(be.Provider,{value:s},f.createElement(Sr.Provider,{children:r,value:R}))}function fo(e){let{children:t,errorElement:r,resolve:n}=e;return f.createElement(mo,{resolve:n,errorElement:r},f.createElement(po,null,t))}var Ee=function(e){return e[e.pending=0]="pending",e[e.success=1]="success",e[e.error=2]="error",e}(Ee||{});const ho=new Promise(()=>{});class mo extends f.Component{constructor(t){super(t),this.state={error:null}}static getDerivedStateFromError(t){return{error:t}}componentDidCatch(t,r){console.error("<Await> caught the following error during render",t,r)}render(){let{children:t,errorElement:r,resolve:n}=this.props,a=null,i=Ee.pending;if(!(n instanceof Promise))i=Ee.success,a=Promise.resolve(),Object.defineProperty(a,"_tracked",{get:()=>!0}),Object.defineProperty(a,"_data",{get:()=>n});else if(this.state.error){i=Ee.error;let o=this.state.error;a=Promise.reject().catch(()=>{}),Object.defineProperty(a,"_tracked",{get:()=>!0}),Object.defineProperty(a,"_error",{get:()=>o})}else n._tracked?(a=n,i="_error"in a?Ee.error:"_data"in a?Ee.success:Ee.pending):(i=Ee.pending,Object.defineProperty(n,"_tracked",{get:()=>!0}),a=n.then(o=>Object.defineProperty(n,"_data",{get:()=>o}),o=>Object.defineProperty(n,"_error",{get:()=>o})));if(i===Ee.error&&a._error instanceof kt)throw ho;if(i===Ee.error&&!r)throw a._error;if(i===Ee.error)return f.createElement(Ut.Provider,{value:a,children:r});if(i===Ee.success)return f.createElement(Ut.Provider,{value:a,children:t});throw a}}function po(e){let{children:t}=e,r=io(),n=typeof t=="function"?t(r):t;return f.createElement(f.Fragment,null,n)}function ps(e){let t={hasErrorBoundary:e.ErrorBoundary!=null||e.errorElement!=null};return e.Component&&Object.assign(t,{element:f.createElement(e.Component),Component:void 0}),e.HydrateFallback&&Object.assign(t,{hydrateFallbackElement:f.createElement(e.HydrateFallback),HydrateFallback:void 0}),e.ErrorBoundary&&Object.assign(t,{errorElement:f.createElement(e.ErrorBoundary),ErrorBoundary:void 0}),t}/** 45 * React Router DOM v6.30.4 46 * 47 * Copyright (c) Remix Software Inc. 48 * 49 * This source code is licensed under the MIT license found in the 50 * LICENSE.md file in the root directory of this source tree. 51 * 52 * @license MIT 53 */function Je(){return Je=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Je.apply(null,arguments)}function xr(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}const Ot="get",nr="application/x-www-form-urlencoded";function zt(e){return e!=null&&typeof e.tagName=="string"}function vo(e){return zt(e)&&e.tagName.toLowerCase()==="button"}function yo(e){return zt(e)&&e.tagName.toLowerCase()==="form"}function go(e){return zt(e)&&e.tagName.toLowerCase()==="input"}function wo(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function Eo(e,t){return e.button===0&&(!t||t==="_self")&&!wo(e)}function dr(e){return e===void 0&&(e=""),new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,r)=>{let n=e[r];return t.concat(Array.isArray(n)?n.map(a=>[r,a]):[[r,n]])},[]))}function Ro(e,t){let r=dr(e);return t&&t.forEach((n,a)=>{r.has(a)||t.getAll(a).forEach(i=>{r.append(a,i)})}),r}let Pt=null;function So(){if(Pt===null)try{new FormData(document.createElement("form"),0),Pt=!1}catch{Pt=!0}return Pt}const bo=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function ar(e){return e!=null&&!bo.has(e)?null:e}function xo(e,t){let r,n,a,i,o;if(yo(e)){let u=e.getAttribute("action");n=u?Re(u,t):null,r=e.getAttribute("method")||Ot,a=ar(e.getAttribute("enctype"))||nr,i=new FormData(e)}else if(vo(e)||go(e)&&(e.type==="submit"||e.type==="image")){let u=e.form;if(u==null)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let l=e.getAttribute("formaction")||u.getAttribute("action");if(n=l?Re(l,t):null,r=e.getAttribute("formmethod")||u.getAttribute("method")||Ot,a=ar(e.getAttribute("formenctype"))||ar(u.getAttribute("enctype"))||nr,i=new FormData(u,e),!So()){let{name:s,type:d,value:c}=e;if(d==="image"){let m=s?s+".":"";i.append(m+"x","0"),i.append(m+"y","0")}else s&&i.append(s,c)}}else{if(zt(e))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');r=Ot,n=null,a=nr,o=e}return i&&a==="text/plain"&&(o=i,i=void 0),{action:n,method:r.toLowerCase(),encType:a,formData:i,body:o}}const _o=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],Po=["aria-current","caseSensitive","className","end","style","to","viewTransition","children"],Lo=["fetcherKey","navigate","reloadDocument","replace","state","method","action","onSubmit","relative","preventScrollReset","viewTransition"],To="6";try{window.__reactRouterVersion=To}catch{}const Gn=f.createContext({isTransitioning:!1}
53),Co=f.createContext(new Map),Do="startTransition",wn=$a[Do],Oo="flushSync",En=Ya[Oo];function Ao(e){wn?wn(e):e()}function ut(e){En?En(e):e()}let Mo=class{constructor(){this.status="pending",this.promise=new Promise((t,r)=>{this.resolve=n=>{this.status==="pending"&&(this.status="resolved",t(n))},this.reject=n=>{this.status==="pending"&&(this.status="rejected",r(n))}})}};function ys(e){let{fallbackElement:t,router:r,future:n}=e,[a,i]=f.useState(r.state),[o,u]=f.useState(),[l,s]=f.useState({isTransitioning:!1}),[d,c]=f.useState(),[m,w]=f.useState(),[g,R]=f.useState(),b=f.useRef(new Map),{v7_startTransition:C}=n||{},x=f.useCallback(O=>{C?Ao(O):O()},[C]),D=f.useCallback((O,z)=>{let{deletedFetchers:$,flushSync:Q,viewTransitionOpts:X}=z;O.fetchers.forEach((fe,re)=>{fe.data!==void 0&&b.current.set(re,fe.data)}),$.forEach(fe=>b.current.delete(fe));let de=r.window==null||r.window.document==null||typeof r.window.document.startViewTransition!="function";if(!X||de){Q?ut(()=>i(O)):x(()=>i(O));return}if(Q){ut(()=>{m&&(d&&d.resolve(),m.skipTransition()),s({isTransitioning:!0,flushSync:!0,currentLocation:X.currentLocation,nextLocation:X.nextLocation})});let fe=r.window.document.startViewTransition(()=>{ut(()=>i(O))});fe.finished.finally(()=>{ut(()=>{c(void 0),w(void 0),u(void 0),s({isTransitioning:!1})})}),ut(()=>w(fe));return}m?(d&&d.resolve(),m.skipTransition(),R({state:O,currentLocation:X.currentLocation,nextLocation:X.nextLocation})):(u(O),s({isTransitioning:!0,flushSync:!1,currentLocation:X.currentLocation,nextLocation:X.nextLocation}))},[r.window,m,d,b,x]);f.useLayoutEffect(()=>r.subscribe(D),[r,D]),f.useEffect(()=>{l.isTransitioning&&!l.flushSync&&c(new Mo)},[l]),f.useEffect(()=>{if(d&&o&&r.window){let O=o,z=d.promise,$=r.window.document.startViewTransition(async()=>{x(()=>i(O)),await z});$.finished.finally(()=>{c(void 0),w(void 0),u(void 0),s({isTransitioning:!1})}),w($)}},[x,o,d,r.window]),f.useEffect(()=>{d&&o&&a.location.key===o.location.key&&d.resolve()},[d,m,a.location,o]),f.useEffect(()=>{!l.isTransitioning&&g&&(u(g.state),s({isTransitioning:!0,flushSync:!1,currentLocation:g.currentLocation,nextLocation:g.nextLocation}),R(void 0))},[l.isTransitioning,g]),f.useEffect(()=>{},[]);let P=f.useMemo(()=>({createHref:r.createHref,encodeLocation:r.encodeLocation,go:O=>r.navigate(O),push:(O,z,$)=>r.navigate(O,{state:z,preventScrollReset:$==null?void 0:$.preventScrollReset}),replace:(O,z,$)=>r.navigate(O,{replace:!0,state:z,preventScrollReset:$==null?void 0:$.preventScrollReset})}),[r]),L=r.basename||"/",A=f.useMemo(()=>({router:r,navigator:P,static:!1,basename:L}),[r,P,L]),y=f.useMemo(()=>({v7_relativeSplatPath:r.future.v7_relativeSplatPath}),[r.future.v7_relativeSplatPath]);return f.useEffect(()=>uo(n,r.future),[n,r.future]),f.createElement(f.Fragment,null,f.createElement(et.Provider,{value:A},f.createElement(pt.Provider,{value:a},f.createElement(Co.Provider,{value:b.current},f.createElement(Gn.Provider,{value:l},f.createElement(co,{basename:L,location:a.location,navigationType:a.historyAction,navigator:P,future:y},a.initialized||r.future.v7_partialHydration?f.createElement(No,{routes:r.routes,future:r.future,state:a}):t))))),null)}const No=f.memo(jo);function jo(e){let{routes:t,future:r,state:n}=e;return Vi(t,void 0,n,r)}const ko=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",Io=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,qn=f.forwardRef(function(t,r){let{onClick:n,relative:a,reloadDocument:i,replace:o,state:u,target:l,to:s,preventScrollReset:d,viewTransition:c}=t,m=xr(t,_o),{basename:w}=f.useContext(be),g,R=!1;if(typeof s=="string"&&Io.test(s)&&(g=s,ko))try{let D=new URL(window.location.href),P=s.startsWith("//")?new URL(D.protocol+s):new URL(s),L=Re(P.pathname,w);P.origin===D.origin&&L!=null?s=L+P.search+P.hash:R=!0}catch{}let b=br(s,{relative:a}),C=Ho(s,{replace:o,state:u,target:l,preventScrollReset:d,relative:a,viewTransition:c});function x(D){n&&n(D),D.defaultPrevented||C(D)}return f.createElement("a",Je({},m,{href:g||b,onClick:R||i?n:x,ref:r,target:l}))}),Uo=f.forwardRef(function(t,r){let{"aria-current":n="page",caseSensitive:a=!1,className:i="",end:o=!1,style:u,to:l,viewTransition:s,children:d}=t,c=xr(t,Po),m=yt(l,{relative:c.relative}),w=Le(),g=f.useContext(pt),{navigator:R,basename:b}=f.useContext(be),C=g!=null&&Ko(m)&&s===!0,x=R.encodeLocation?R.encodeLocation(m).pathname:m.pathname,D=w.pathname,P=g&&g.navigation&&g.navigation.location?g.navigation.location.pathname:null;a||(D=D.toLowerCase(),P=P?P.toLowerCase():null,x=x.toLowerCase()),P&&b&&(P=Re(P,b)||P);const L=x!=="/"&&x.endsWith("/")?x.length-1:x.length;let A=D===x||!o&&D.startsWith(x)&&D.charAt(L)==="/",y=P!=null&&(P===x||!o&&P.startsWith(x)&&P.charAt(x.length)==="/"),O={isActive:A,isPending:y,isTransitioning:C},z=A?n:void 0,$;typeof i=="function"?$=i(O):$=[i,A?"active":null,y?"pending":null,C?"transitioning":null].filter(
53Boolean).join(" ");let Q=typeof u=="function"?u(O):u;return f.createElement(qn,Je({},c,{"aria-current":z,className:$,ref:r,style:Q,to:l,viewTransition:s}),typeof d=="function"?d(O):d)}),Fo=f.forwardRef((e,t)=>{let{fetcherKey:r,navigate:n,reloadDocument:a,replace:i,state:o,method:u=Ot,action:l,onSubmit:s,relative:d,preventScrollReset:c,viewTransition:m}=e,w=xr(e,Lo),g=Wo(),R=Jo(l,{relative:d}),b=u.toLowerCase()==="get"?"get":"post",C=x=>{if(s&&s(x),x.defaultPrevented)return;x.preventDefault();let D=x.nativeEvent.submitter,P=(D==null?void 0:D.getAttribute("formmethod"))||u;g(D||x.currentTarget,{fetcherKey:r,method:P,navigate:n,replace:i,state:o,relative:d,preventScrollReset:c,viewTransition:m})};return f.createElement("form",Je({ref:t,method:b,action:R,onSubmit:a?s:C},w))});var mt;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(mt||(mt={}));var fr;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(fr||(fr={}));function _r(e){let t=f.useContext(et);return t||Y(!1),t}function $o(e){let t=f.useContext(pt);return t||Y(!1),t}function Ho(e,t){let{target:r,replace:n,state:a,preventScrollReset:i,relative:o,viewTransition:u}=t===void 0?{}:t,l=Jn(),s=Le(),d=yt(e,{relative:o});return f.useCallback(c=>{if(Eo(c,r)){c.preventDefault();let m=n!==void 0?n:Ie(s)===Ie(d);l(e,{replace:m,state:a,preventScrollReset:i,relative:o,viewTransition:u})}},[s,l,d,n,a,r,e,i,o,u])}function gs(e){let t=f.useRef(dr(e)),r=f.useRef(!1),n=Le(),a=f.useMemo(()=>Ro(n.search,r.current?null:t.current),[n.search]),i=Jn(),o=f.useCallback((u,l)=>{const s=dr(typeof u=="function"?u(a):u);r.current=!0,i("?"+s,l)},[i,a]);return[a,o]}function zo(){if(typeof document>"u")throw new Error("You are calling submit during the server render. Try calling submit within a `useEffect` or callback instead.")}let Bo=0,Yo=()=>"__"+String(++Bo)+"__";function Wo(){let{router:e}
53=_r(mt.UseSubmit),{basename:t}=f.useContext(be),r=to();return f.useCallback(function(n,a){a===void 0&&(a={}),zo();let{action:i,method:o,encType:u,formData:l,body:s}=xo(n,t);if(a.navigate===!1){let d=a.fetcherKey||Yo();e.fetch(d,r,a.action||i,{preventScrollReset:a.preventScrollReset,formData:l,body:s,formMethod:a.method||o,formEncType:a.encType||u,flushSync:a.flushSync})}else e.navigate(a.action||i,{preventScrollReset:a.preventScrollReset,formData:l,body:s,formMethod:a.method||o,formEncType:a.encType||u,replace:a.replace,state:a.state,fromRouteId:r,flushSync:a.flushSync,viewTransition:a.viewTransition})},[e,t,r])}function Jo(e,t){let{relative:r}=t===void 0?{}:t,{basename:n}=f.useContext(be),a=f.useContext(Pe);a||Y(!1);let[i]=a.matches.slice(-1),o=Je({},yt(e||".",{relative:r})),u=Le();if(e==null){o.search=u.search;let l=new URLSearchParams(o.search),s=l.getAll("index");if(s.some(c=>c==="")){l.delete("index"),s.filter(m=>m).forEach(m=>l.append("index",m));let c=l.toString();o.search=c?"?"+c:""}}return(!e||e===".")&&i.route.index&&(o.search=o.search?o.search.replace(/^\?/,"?index&"):"?index"),n!=="/"&&(o.pathname=o.pathname==="/"?n:_e([n,o.pathname])),Ie(o)}const Rn="react-router-scroll-positions";let Lt={};function ws(e){let{getKey:t,storageKey:r}=e===void 0?{}:e,{router:n}=_r(mt.UseScrollRestoration),{restoreScrollPosition:a,preventScrollReset:i}=$o(fr.UseScrollRestoration),{basename:o}=f.useContext(be),u=Le(),l=no(),s=ro();f.useEffect(()=>(window.history.scrollRestoration="manual",()=>{window.history.scrollRestoration="auto"}),[]),Vo(f.useCallback(()=>{if(s.state==="idle"){let d=(t?t(u,l):null)||u.key;Lt[d]=window.scrollY}try{sessionStorage.setItem(r||Rn,JSON.stringify(Lt))}catch{}window.history.scrollRestoration="auto"},[r,t,s.state,u,l])),typeof document<"u"&&(f.useLayoutEffect(()=>{try{let d=sessionStorage.getItem(r||Rn);d&&(Lt=JSON.parse(d))}catch{}},[r]),f.useLayoutEffect(()=>{let d=t&&o!=="/"?(m,w)=>t(Je({},m,{pathname:Re(m.pathname,o)||m.pathname}),w):t,c=n==null?void 0:n.enableScrollRestoration(Lt,()=>window.scrollY,d);return()=>c&&c()},[n,o,t]),f.useLayoutEffect(()=>{if(a!==!1){if(typeof a=="number"){window.scrollTo(0,a);return}if(u.hash){let d=document.getElementById(decodeURIComponent(u.hash.slice(1)));if(d){d.scrollIntoView();return}}i!==!0&&window.scrollTo(0,0)}},[u,a,i]))}function Vo(e,t){let{capture:r}={};f.useEffect(()=>{let n=r!=null?{capture:r}:void 0;return window.addEventListener("pagehide",e,n),()=>{window.removeEventListener("pagehide",e,n)}},[e,r])}function Ko(e,t){t===void 0&&(t={});let r=f.useContext(Gn);r==null&&Y(!1);let{basename:n}=_r(mt.useViewTransitionState),a=yt(e,{relative:t.relative});if(!r.isTransitioning)return!1;let i=Re(r.currentLocation.pathname,n)||r.currentLocation.pathname,o=Re(r.nextLocation.pathname,n)||r.nextLocation.pathname;return jt(a.pathname,o)!=null||jt(a.pathname,i)!=null}var Xo=-1,Go=-2,qo=-3,Qo=-4,Zo=-5,el=-6,tl=-7,rl="B",nl="D",Qn="E",al="M",il="N",Zn="P",ol="R",ll="S",sl="Y",ul="U",cl="Z",ea=class{constructor(){xt(this,"promise");xt(this,"resolve");xt(this,"reject");this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}};function dl(){const e=new TextDecoder;let t="";return new TransformStream({transform(r,n){const a=e.decode(r,{stream:!0}),i=(t+a).split(` 54`);t=i.pop()||"";for(const o of i)n.enqueue(o)},flush(r){t&&r.enqueue(t)}})}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var ir=typeof window<"u"?window:typeof globalThis<"u"?globalThis:void 0;function hr(e){const{hydrated:t,values:r}=this;if(typeof e=="number")return Sn.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,Sn.call(this,n)}function Sn(e){const{hydrated:t,values:r,deferred:n,plugins:a}=this;let i;const o=[[e,l=>{i=l}]];let u=[];for(;o.length>0;){const[l,s]=o.pop();switch(l){case tl:s(void 0);continue;case Zo:s(null);continue;case Go:s(NaN);continue;case el:s(1/0);continue;case qo:s(-1/0);continue;case Qo:s(-0);continue}if(t[l]){s(t[l]);continue}const d=r[l];if(!d||typeof d!="object"){t[l]=d,s(d);continue}if(Array.isArray(d))if(typeof d[0]=="string"){const[c,m,w]=d;switch(c){case nl:s(t[l]=new Date(m));continue;case ul:s(t[l]=new URL(m));continue;case rl:s(t[l]=BigInt(m));continue;case ol:s(t[l]=new RegExp(m,w));continue;case sl:s(t[l]=Symbol.for(m));continue;case ll:const g=new Set;t[l]=g;for(let P=1;P<d.length;P++)o.push([d[P],L=>{g.add(L)}]);s(g);continue;case al:const R=new Map;t[l]=R;for(let P=1;P<d.length;P+=2){const L=[];o.push([d[P+1],A=>{L[1]=A}]),o.push([d[P],A=>{L[0]=A}]),u.push(()=>{R.set(L[0],L[1])})}s(R);continue;case il:const b=Object.create(null);t[l]=b;for(const P of Object.keys(m).reverse()){const L=[];o.push([m[P],A=>{L[1]=A}]),o.push([Number(P.slice(1)),A=>{L[0]=A}]),u.push(()=>{b[L[0]]=L[1]})}s(b);continue;case Zn:if(t[m])s(t[l]=t[m]);else{const P=new ea;n[m]=P,s(t[l]=P.promise)}continue;case Qn:const[,C,x]=d;let D=x&&ir&&ir[x]?new ir[x](C):new Error(C);t[l]=D,s(D);continue;case cl:s(t[l]=t[m]);continue;default:if(Array.isArray(a)){const P=[],L=d.slice(1);for(let A=0;A<L.length;A++){const y=L[A];
54o.push([y,O=>{P[A]=O}])}u.push(()=>{for(const A of a){const y=A(d[0],...P);if(y){s(t[l]=y.value);return}}throw new SyntaxError});continue}throw new SyntaxError}}else{const c=[];t[l]=c;for(let m=0;m<d.length;m++){const w=d[m];w!==Xo&&o.push([w,g=>{c[m]=g}])}s(c);continue}else{const c={};t[l]=c;for(const m of Object.keys(d).reverse()){const w=[];o.push([d[m],g=>{w[1]=g}]),o.push([Number(m.slice(1)),g=>{w[0]=g}]),u.push(()=>{c[w[0]]=w[1]})}s(c);continue}}for(;u.length>0;)u.pop()();return i}async function fl(e,t){const{plugins:r}=t??{},n=new ea,a=e.pipeThrough(dl()).getReader(),i={values:[],hydrated:[],deferred:{},plugins:r},o=await hl.call(i,a);let u=n.promise;return o.done?n.resolve():u=ml.call(i,a).then(n.resolve).catch(l=>{for(const s of Object.values(i.deferred))s.reject(l);n.reject(l)}),{done:u.then(()=>a.closed),value:o.value}}async function hl(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:hr.call(this,r)}}async function ml(e){let t=await e.read();for(;!t.done;){if(!t.value)continue;const r=t.value;switch(r[0]){case Zn:{const n=r.indexOf(":"),a=Number(r.slice(1,n)),i=this.deferred[a];if(!i)throw new Error(`Deferred ID ${a} not found in stream`);const o=r.slice(n+1);let u;try{u=JSON.parse(o)}catch{throw new SyntaxError}const l=hr.call(this,u);i.resolve(l);break}case Qn:{const n=r.indexOf(":"),a=Number(r.slice(1,n)),i=this.deferred[a];if(!i)throw new Error(`Deferred ID ${a} not found in stream`);const o=r.slice(n+1);let u;try{u=JSON.parse(o)}catch{throw new SyntaxError}const l=hr.call(this,u);i.reject(l);break}default:throw new SyntaxError}t=await e.read()}}/** 55 * @remix-run/server-runtime v2.17.5 56 * 57 * Copyright (c) Remix Software Inc. 58 * 59 * This source code is licensed under the MIT license found in the 60 * LICENSE.md file in the root directory of this source tree. 61 * 62 * @license MIT 63 */const ta=Symbol("SingleFetchRedirect");/** 64 * @remix-run/react v2.17.5 65 * 66 * Copyright (c) Remix Software Inc. 67 * 68 * This source code is licensed under the MIT license found in the 69 * LICENSE.md file in the root directory of this source tree. 70 * 71 * @license MIT 72 */function ce(){return ce=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},ce.apply(this,arguments)}/** 73 * @remix-run/react v2.17.5 74 * 75 * Copyright (c) Remix Software Inc. 76 * 77 * This source code is licensed under the MIT license found in the 78 * LICENSE.md file in the root directory of this source tree. 79 * 80 * @license MIT 81 */function Oe(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}/** 82 * @remix-run/react v2.17.5 83 * 84 * Copyright (c) Remix Software Inc. 85 * 86 * This source code is licensed under the MIT license found in the 87 * LICENSE.md file in the root directory of this source tree. 88 * 89 * @license MIT 90 */async function ra(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.__remixContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}/** 91 * @remix-run/react v2.17.5 92 * 93 * Copyright (c) Remix Software Inc. 94 * 95 * This source code is licensed under the MIT license found in the 96 * LICENSE.md file in the root directory of this source tree. 97 * 98 * @license MIT 99 */function pl(e,t,r){let n=e.map(i=>{var o;let u=t[i.route.id],l=r.routes[i.route.id];return[l.css?l.css.map(s=>({rel:"stylesheet",href:s})):[],(u==null||(o=u.links)===null||o===void 0?void 0:o.call(u))||[]]}).flat(2),a=Rl(e,r);return aa(n,a)}async function na(e,t){var r,n;if(!e.css&&!t.links||!bl())return;let a=[((r=e.css)===null||r===void 0?void 0:r.map(u=>({rel:"stylesheet",href:u})))??[],((n=t.links)===null||n===void 0?void 0:n.call(t))??[]].flat(1);if(a.length===0)return;let i=[];for(let u of a)!Pr(u)&&u.rel==="stylesheet"&&i.push({...u,rel:"preload",as:"style"});let o=i.filter(u=>(!u.media||window.matchMedia(u.media).matches)&&!document.querySelector(`link[rel="stylesheet"][href="${u.href}"]`));await Promise.all(o.map(vl))}async function vl(e){return new Promise(t=>{let r=document.createElement("link");Object.assign(r,e);function n(){document.head.contains(r)&&document.head.removeChild(r)}r.onload=()=>{n(),t()},r.onerror=()=>{n(),t()},document.head.appendChild(r)})}function Pr(e){return e!=null&&typeof e.page=="string"}function yl(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 gl(e,t,r){let n=await Promise.all(e.map(async a=>{let i=await ra(t.routes[a.route.id],r);return i.links?i.links():[]}));return aa(n.flat(1).filter(yl).filter(a=>a.rel==="stylesheet"||a.rel==="preload").map(a=>a.rel==="stylesheet"?{...a,rel:"prefetch",as:"style"}:{...a,rel:"prefetch"}))}function bn(e,t,r,n,a,i,o){let u=ia(e),l=(c,m)=>r[m]?c.route.id!==r[m].route.id:!0,s=(c,m)=>{var w;return r[m].pathname!==c.pathname||((w=r[m].route.path)===null||w===void 0?void 0:w.endsWith("*"))&&r[m].params["*"]!==c.params["*"]};return o==="data"&&(i.v3_singleFetch||a.search!==u.search)?t.filter((c,m)=>{if(!n.routes[c.route.id].hasLoader)return!1;if(l(c,m)||s(c,m))return!0;let g=i.v3_singleFetch||a.search!==u.search;
99if(c.route.shouldRevalidate){var R;let b=c.route.shouldRevalidate({currentUrl:new URL(a.pathname+a.search+a.hash,window.origin),currentParams:((R=r[0])===null||R===void 0?void 0:R.params)||{},nextUrl:new URL(e,window.origin),nextParams:c.params,defaultShouldRevalidate:g});if(typeof b=="boolean")return b}return g}):t.filter((c,m)=>{let w=n.routes[c.route.id];return(o==="assets"||w.hasLoader)&&(l(c,m)||s(c,m))})}function wl(e,t,r){let n=ia(e);return Lr(t.filter(a=>r.routes[a.route.id].hasLoader&&!r.routes[a.route.id].hasClientLoader).map(a=>{let{pathname:i,search:o}=n,u=new URLSearchParams(o);return u.set("_data",a.route.id),`${i}?${u}`}))}function El(e,t){return Lr(e.map(r=>{let n=t.routes[r.route.id],a=[n.module];return n.imports&&(a=a.concat(n.imports)),a}).flat(1))}function Rl(e,t){return Lr(e.map(r=>{let n=t.routes[r.route.id],a=[n.module];return n.imports&&(a=a.concat(n.imports)),a}).flat(1))}function Lr(e){return[...new Set(e)]}function Sl(e){let t={},r=Object.keys(e).sort();for(let n of r)t[n]=e[n];return t}function aa(e,t){let r=new Set,n=new Set(t);return e.reduce((a,i)=>{if(t&&!Pr(i)&&i.as==="script"&&i.href&&n.has(i.href))return a;let u=JSON.stringify(Sl(i));return r.has(u)||(r.add(u),a.push({key:u,link:i})),a},[])}function ia(e){let t=Ae(e);return t.search===void 0&&(t.search=""),t}let Tt;function bl(){if(Tt!==void 0)return Tt;let e=document.createElement("link");return Tt=e.relList.supports("preload"),e=null,Tt}/** 100 * @remix-run/react v2.17.5 101 * 102 * Copyright (c) Remix Software Inc. 103 * 104 * This source code is licensed under the MIT license found in the 105 * LICENSE.md file in the root directory of this source tree. 106 * 107 * @license MIT 108 */const xl={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},_l=/[&><\u2028\u2029]/g;function ft(e){return e.replace(_l,t=>xl[t])}function xn(e){return{__html:e}}/** 109 * @remix-run/react v2.17.5 110 * 111 * Copyright (c) Remix Software Inc. 112 * 113 * This source code is licensed under the MIT license found in the 114 * LICENSE.md file in the root directory of this source tree. 115 * 116 * @license MIT 117 */function Pl(e){return e.headers.get("X-Remix-Catch")!=null}function Ll(e){return e.headers.get("X-Remix-Error")!=null}function Tl(e){return Tr(e)&&e.status>=400&&e.headers.get("X-Remix-Error")==null&&e.headers.get("X-Remix-Catch")==null&&e.headers.get("X-Remix-Response")==null}function Cl(e){return e.headers.get("X-Remix-Redirect")!=null}function Dl(e){var t;return!!((t=e.headers.get("Content-Type"))!==null&&t!==void 0&&t.match(/text\/remix-deferred/))}function Tr(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.headers=="object"&&typeof e.body<"u"}function Ol(e){let t=e;return t&&typeof t=="object"&&typeof t.data=="object"&&typeof t.subscribe=="function"&&typeof t.cancel=="function"&&typeof t.resolveData=="function"}async function oa(e,t,r=0){let n=new URL(e.url);n.searchParams.set("_data",t),r>0&&await new Promise(u=>setTimeout(u,5**r*10));let a=await Bt(e),i=window.__remixRevalidation,o=await fetch(n.href,a).catch(u=>{if(typeof i=="number"&&i===window.__remixRevalidation&&(u==null?void 0:u.name)==="TypeError"&&r<3)return oa(e,t,r+1);throw u});if(Ll(o)){let u=await o.json(),l=new Error(u.message);return l.stack=u.stack,l}if(Tl(o)){let u=await o.text(),l=new Error(u);return l.stack=void 0,l}return o}async function Bt(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}const Al="__deferred_promise:";async function Ml(e){if(!e)throw new Error("parseDeferredReadableStream requires stream argument");let t,r={};try{let n=Nl(e),i=(await n.next()).value;if(!i)throw new Error("no critical data");let o=JSON.parse(i);if(typeof o=="object"&&o!==null)for(let[u,l]of Object.entries(o))typeof l!="string"||!l.startsWith(Al)||(t=t||{},t[u]=new Promise((s,d)=>{r[u]={resolve:c=>{s(c),delete r[u]},reject:c=>{d(c),delete r[u]}}}));return(async()=>{try{for await(let u of n){let[l,...s]=u.split(":"),d=s.join(":"),c=JSON.parse(d);if(l==="data")for(let[m,w]of Object.entries(c))r[m]&&r[m].resolve(w);else if(l==="error")for(let[m,w]of Object.entries(c)){let g=new Error(w.message);g.stack=w.stack,r[m]&&r[m].reject(g)}}for(let[u,l]of Object.entries(r))l.reject(new kt(`Deferred ${u} will never be resolved`))}catch(u){for(let l of Object.values(r))l.reject(u)}})(),new pi({...o,...t})}catch(n){for(let a of Object.values(r))a.reject(n);throw n}}
117async function*Nl(e){let t=e.getReader(),r=[],n=[],a=!1,i=new TextEncoder,o=new TextDecoder,u=async()=>{if(n.length>0)return n.shift();for(;!a&&n.length===0;){let s=await t.read();if(s.done){a=!0;break}r.push(s.value);try{let c=o.decode(_n(...r)).split(` 118 119`);if(c.length>=2&&(n.push(...c.slice(0,-1)),r=[i.encode(c.slice(-1).join(` 120 121`))]),n.length>0)break}catch{continue}}return n.length>0||r.length>0&&(n=o.decode(_n(...r)).split(` 122 123`).filter(d=>d),r=[]),n.shift()},l=await u();for(;l;)yield l,l=await u()}function _n(...e){let t=new Uint8Array(e.reduce((n,a)=>n+a.length,0)),r=0;for(let n of e)t.set(n,r),r+=n.length;return t}/** 124 * @remix-run/react v2.17.5 125 * 126 * Copyright (c) Remix Software Inc. 127 * 128 * This source code is licensed under the MIT license found in the 129 * LICENSE.md file in the root directory of this source tree. 130 * 131 * @license MIT 132 */function Es(e,t,r){return async({request:n,matches:a,fetcherKey:i})=>["POST","PUT","PATCH","DELETE"].includes(n.method)?jl(n,a):i?Il(n,a):kl(e,t,r(),n,a)}async function jl(e,t){let r=t.find(i=>i.shouldLoad);Oe(r,"No action match found");let n,a=await r.resolve(async i=>await i(async()=>{let u=Yt(e.url),l=await Bt(e),{data:s,status:d}=await Cr(u,l);return n=d,mr(s,r.route.id)}));return Tr(a.result)||We(a.result)?{[r.route.id]:a}:{[r.route.id]:{type:a.type,result:mi(a.result,n)}}}async function kl(e,t,r,n,a){let i=new Set,o=!1,u=a.map(()=>Pn()),l=Promise.all(u.map(g=>g.promise)),s=Pn(),d=sa(Yt(n.url)),c=await Bt(n),m={},w=Promise.all(a.map(async(g,R)=>g.resolve(async b=>{if(u[R].resolve(),!g.shouldLoad){var C;if(!r.state.initialized)return;if(g.route.id in r.state.loaderData&&e.routes[g.route.id]&&(C=t[g.route.id])!==null&&C!==void 0&&C.shouldRevalidate){e.routes[g.route.id].hasLoader&&(o=!0);return}}if(e.routes[g.route.id].hasClientLoader){e.routes[g.route.id].hasLoader&&(o=!0);try{let x=await la(b,d,c,g.route.id);m[g.route.id]={type:"data",result:x}}catch(x){m[g.route.id]={type:"error",result:x}}return}e.routes[g.route.id].hasLoader&&i.add(g.route.id);try{let x=await b(async()=>{let D=await s.promise;return ua(D,g.route.id)});m[g.route.id]={type:"data",result:x}}catch(x){m[g.route.id]={type:"error",result:x}}})));if(await l,(!r.state.initialized||i.size===0)&&!window.__remixHdrActive)s.resolve({});else try{o&&i.size>0&&d.searchParams.set("_routes",a.filter(R=>i.has(R.route.id)).map(R=>R.route.id).join(","));let g=await Cr(d,c);s.resolve(g.data)}catch(g){s.reject(g)}return await w,m}async function Il(e,t){let r=t.find(a=>a.shouldLoad);Oe(r,"No fetcher match found");let n=await r.resolve(async a=>{let i=sa(Yt(e.url)),o=await Bt(e);return la(a,i,o,r.route.id)});return{[r.route.id]:n}}function la(e,t,r,n){return e(async()=>{let a=new URL(t);a.searchParams.set("_routes",n);let{data:i}=await Cr(a,r);return ua(i,n)})}function sa(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 Yt(e){let t=typeof e=="string"?new URL(e,typeof window>"u"?"server://singlefetch/":window.location.origin):e;return t.pathname==="/"?t.pathname="_root.data":t.pathname=`${t.pathname.replace(/\/$/,"")}.data`,t}async function Cr(e,t){let r=await fetch(e,t);if(new Set([100,101,204,205]).has(r.status))return!t.method||t.method==="GET"?{status:r.status,data:{}}:{status:r.status,data:{data:null}};Oe(r.body,"No response body to decode");try{let a=await Ul(r.body,window);return{status:r.status,data:a.value}}catch(a){throw console.error(a),new Error(`Unable to decode turbo-stream response from URL: ${e.toString()}`)}}function Ul(e,t){return fl(e,{plugins:[(r,...n)=>{if(r==="SanitizedError"){let[a,i,o]=n,u=Error;a&&a in t&&typeof t[a]=="function"&&(u=t[a]);let l=new u(i);return l.stack=o,{value:l}}if(r==="ErrorResponse"){let[a,i,o]=n;return{value:new Ye(i,o,a)}}if(r==="SingleFetchRedirect")return{value:{[ta]:n[0]}}},(r,n)=>{if(r==="SingleFetchFallback")return{value:void 0};if(r==="SingleFetchClassInstance")return{value:n}}]})}function ua(e,t){let r=e[ta];return r?mr(r,t):e[t]!==void 0?mr(e[t],t):null}function mr(e,t){if("error"in e)throw e.error;if("redirect"in e){let r={};throw e.revalidate&&(r["X-Remix-Revalidate"]="yes"),e.reload&&(r["X-Remix-Reload-Document"]="yes"),e.replace&&(r["X-Remix-Replace"]="yes"),In(e.redirect,{status:e.status,headers:r})}else{if("data"in e)return e.data;throw new Error(`No response found for routeId "${t}"`)}}function Pn(){let e,t,r=new Promise((n,a)=>{e=async i=>{n(i);try{await r}catch{}},t=async i=>{a(i);try{await r}catch{}}});return{promise:r,resolve:e,reject:t}}/** 133 * @remix-run/react v2.17.5 134 * 135 * Copyright (c) Remix Software Inc. 136 * 137 * This source code is licensed under the MIT license found in the 138 * LICENSE.md file in the root directory of this source tree. 139 * 140 * @license MIT 141 */class Rs extends f.Component{constructor(t){super(t),this.state={error:t.error||null,location:t.location}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,r){return r.location!==t.location?{error:t.error||null,location:t.location}:{error:t.error||r.error,location:r.location}}render(){return this.state.error?f.createElement(ca,{error:this.state.error,isOutsideRemixApp:!0}):this.props.children}}function ca({error:e,isOutsideRemixApp:t}){console.error(e);let r=f.createElement("script",{dangerouslySetInnerHTML:{__html:` 142 console.log( 143 "ð¿ Hey developer ð. You can provide a way better UX than this when your app throws errors. Check out https://remix.run/guides/errors for more information." 144 ); 145 `}});if(We(e))return f.createElement(pr,{title:"Unhandled Thrown Response!"},f.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)}
145return f.createElement(pr,{title:"Application Error!",isOutsideRemixApp:t},f.createElement("h1",{style:{fontSize:"24px"}},"Application Error"),f.createElement("pre",{style:{padding:"2rem",background:"hsla(10, 50%, 50%, 0.1)",color:"red",overflow:"auto"}},n.stack),r)}function pr({title:e,renderScripts:t,isOutsideRemixApp:r,children:n}){var a;let{routeModules:i}=tt();return(a=i.root)!==null&&a!==void 0&&a.Layout&&!r?n:f.createElement("html",{lang:"en"},f.createElement("head",null,f.createElement("meta",{charSet:"utf-8"}),f.createElement("meta",{name:"viewport",content:"width=device-width,initial-scale=1,viewport-fit=cover"}),f.createElement("title",null,e)),f.createElement("body",null,f.createElement("main",{style:{fontFamily:"system-ui, sans-serif",padding:"2rem"}},n,t?f.createElement(is,null):null)))}/** 146 * @remix-run/react v2.17.5 147 * 148 * Copyright (c) Remix Software Inc. 149 * 150 * This source code is licensed under the MIT license found in the 151 * LICENSE.md file in the root directory of this source tree. 152 * 153 * @license MIT 154 */function Fl(){return f.createElement(pr,{title:"Loading...",renderScripts:!0},f.createElement("script",{dangerouslySetInnerHTML:{__html:` 155 console.log( 156 "ð¿ Hey developer ð. You can provide a way better UX than this " + 157 "when your app is loading JS modules and/or running \`clientLoader\` " + 158 "functions. Check out https://remix.run/route/hydrate-fallback " + 159 "for more information." 160 ); 161 `}}))}/** 162 * @remix-run/react v2.17.5 163 * 164 * Copyright (c) Remix Software Inc. 165 * 166 * This source code is licensed under the MIT license found in the 167 * LICENSE.md file in the root directory of this source tree. 168 * 169 * @license MIT 170 */function da(e){let t={};return Object.values(e).forEach(r=>{let n=r.parentId||"";t[n]||(t[n]=[]),t[n].push(r)}),t}function $l(e,t,r){let n=fa(t),a=t.HydrateFallback&&(!r||e.id==="root")?t.HydrateFallback:e.id==="root"?Fl:void 0,i=t.ErrorBoundary?t.ErrorBoundary:e.id==="root"?()=>f.createElement(ca,{error:Xn()}):void 0;return e.id==="root"&&t.Layout?{...n?{element:f.createElement(t.Layout,null,f.createElement(n,null))}:{Component:n},...i?{errorElement:f.createElement(t.Layout,null,f.createElement(i,null))}:{ErrorBoundary:i},...a?{hydrateFallbackElement:f.createElement(t.Layout,null,f.createElement(a,null))}:{HydrateFallback:a}}:{Component:n,ErrorBoundary:i,HydrateFallback:a}}function Ss(e,t,r,n,a,i){return Dr(t,r,n,a,i,"",da(t),e)}function Ct(e,t,r){if(r){let o=`You cannot call ${e==="action"?"serverAction()":"serverLoader()"} in SPA Mode (routeId: "${t.id}")`;throw console.error(o),new Ye(400,"Bad Request",new Error(o),!0)}let a=`You are trying to call ${e==="action"?"serverAction()":"serverLoader()"} on a route that does not have a server ${e} (routeId: "${t.id}")`;if(e==="loader"&&!t.hasLoader||e==="action"&&!t.hasAction)throw console.error(a),new Ye(400,"Bad Request",new Error(a),!0)}function or(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 Ye(405,"Method Not Allowed",new Error(n),!0)}function Dr(e,t,r,n,a,i="",o=da(e),u){return(o[i]||[]).map(l=>{let s=t[l.id];async function d(D,P,L){if(typeof L=="function")return await L();let A=await Bl(D,l);return P?Yl(A):A}function c(D,P,L){return l.hasLoader?d(D,P,L):Promise.resolve(null)}function m(D,P,L){if(!l.hasAction)throw or("action",l.id);return d(D,P,L)}async function w(D){let P=t[l.id],L=P?na(l,P):Promise.resolve();try{return D()}finally{await L}}let g={id:l.id,index:l.index,path:l.path};if(s){var R,b,C;Object.assign(g,{...g,...$l(l,s,a),handle:s.handle,shouldRevalidate:Ln(n,s,l.id,u)});let D=r==null||(R=r.loaderData)===null||R===void 0?void 0:R[l.id],P=r==null||(b=r.errors)===null||b===void 0?void 0:b[l.id],L=u==null&&(((C=s.clientLoader)===null||C===void 0?void 0:C.hydrate)===!0||!l.hasLoader);g.loader=async({request:A,params:y},O)=>{try{return await w(async()=>(Oe(s,"No `routeModule` available for critical-route loader"),s.clientLoader?s.clientLoader({request:A,params:y,async serverLoader(){if
170(Ct("loader",l,a),L){if(D!==void 0)return D;if(P!==void 0)throw P;return null}return c(A,!0,O)}}):a?null:c(A,!1,O)))}finally{L=!1}},g.loader.hydrate=Jl(l,s,a),g.action=({request:A,params:y},O)=>w(async()=>{if(Oe(s,"No `routeModule` available for critical-route action"),!s.clientAction){if(a)throw or("clientAction",l.id);return m(A,!1,O)}return s.clientAction({request:A,params:y,async serverAction(){return Ct("action",l,a),m(A,!0,O)}})})}else l.hasClientLoader||(g.loader=({request:D},P)=>w(()=>a?Promise.resolve(null):c(D,!1,P))),l.hasClientAction||(g.action=({request:D},P)=>w(()=>{if(a)throw or("clientAction",l.id);return m(D,!1,P)})),g.lazy=async()=>{let D=await zl(l,t),P={...D};if(D.clientLoader){let L=D.clientLoader;P.loader=(A,y)=>L({...A,async serverLoader(){return Ct("loader",l,a),c(A.request,!0,y)}})}if(D.clientAction){let L=D.clientAction;P.action=(A,y)=>L({...A,async serverAction(){return Ct("action",l,a),m(A.request,!0,y)}})}return{...P.loader?{loader:P.loader}:{},...P.action?{action:P.action}:{},hasErrorBoundary:P.hasErrorBoundary,shouldRevalidate:Ln(n,P,l.id,u),handle:P.handle,Component:P.Component,ErrorBoundary:P.ErrorBoundary}};let x=Dr(e,t,r,n,a,l.id,o,u);return x.length>0&&(g.children=x),g})}function Ln(e,t,r,n){if(n)return Hl(r,t.shouldRevalidate,n);if(e.v3_singleFetch&&t.shouldRevalidate){let a=t.shouldRevalidate;return i=>a({...i,defaultShouldRevalidate:!0})}return t.shouldRevalidate}function Hl(e,t,r){let n=!1;return a=>n?t?t(a):a.defaultShouldRevalidate:(n=!0,r.has(e))}async function zl(e,t){let r=await ra(e,t);return await na(e,r),{Component:fa(r),ErrorBoundary:r.ErrorBoundary,clientAction:r.clientAction,clientLoader:r.clientLoader,handle:r.handle,links:r.links,meta:r.meta,shouldRevalidate:r.shouldRevalidate}}async function Bl(e,t){let r=await oa(e,t.id);if(r instanceof Error)throw r;if(Cl(r))throw Wl(r);if(Pl(r))throw r;return Dl(r)&&r.body?await Ml(r.body):r}function Yl(e){if(Ol(e))return e.data;if(Tr(e)){let t=e.headers.get("Content-Type");return t&&/\bapplication\/json\b/.test(t)?e.json():e.text()}return e}function Wl(e){let t=parseInt(e.headers.get("X-Remix-Status"),10)||302,r=e.headers.get("X-Remix-Redirect"),n={},a=e.headers.get("X-Remix-Revalidate");a&&(n["X-Remix-Revalidate"]=a);let i=e.headers.get("X-Remix-Reload-Document");i&&(n["X-Remix-Reload-Document"]=i);let o=e.headers.get("X-Remix-Replace");return o&&(n["X-Remix-Replace"]=o),In(r,{status:t,headers:n})}function fa(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){return r&&e.id!=="root"||t.clientLoader!=null&&(t.clientLoader.hydrate===!0||e.hasLoader!==!0)}/** 171 * @remix-run/react v2.17.5 172 * 173 * Copyright (c) Remix Software Inc. 174 * 175 * This source code is licensed under the MIT license found in the 176 * LICENSE.md file in the root directory of this source tree. 177 * 178 * @license MIT 179 */const At=new Set,Vl=1e3,Ft=new Set,Kl=7680;function Or(e,t){return e.v3_lazyRouteDiscovery===!0&&!t}function Xl(e,t){let r=new Set(t.state.matches.map(o=>o.route.id)),n=t.state.location.pathname.split("/").filter(Boolean),a=["/"];for(n.pop();n.length>0;)a.push(`/${n.join("/")}`),n.pop();a.forEach(o=>{let u=De(t.routes,o,t.basename);u&&u.forEach(l=>r.add(l.route.id))});let i=[...r].reduce((o,u)=>Object.assign(o,{[u]:e.routes[u]}),{});return{...e,routes:i}}function bs(e,t,r,n,a){if(Or(r,n))return async({path:i,patch:o,signal:u,fetcherKey:l})=>{Ft.has(i)||await ha([i],l?window.location.href:i,e,t,r,n,a,o,u)}}function xs(e,t,r,n,a){f.useEffect(()=>{var i;if(!Or(n,a)||((i=navigator.connection)===null||i===void 0?void 0:i.saveData)===!0)return;function o(c){let m=c.tagName==="FORM"?c.getAttribute("action"):c.getAttribute("href");if(!m)return;let w=new URL(m,window.location.origin);Ft.has(w.pathname)||At.add(w.pathname)}async function u(){let c=Array.from(At.keys()).filter(m=>Ft.has(m)?(At.delete(m),!1):!0);if(c.length!==0)try{await ha(c,null,t,r,n,a,e.basename,e.patchRoutes)}catch(m){console.error("Failed to fetch manifest patches",m)}}document.body.querySelectorAll("a[data-discover], form[data-discover]").forEach(c=>o(c)),u();let l=ql(u,100);function s(c){return c.nodeType===Node.ELEMENT_NODE}let d=new MutationObserver(c=>{let m=new Set;
179c.forEach(w=>{[w.target,...w.addedNodes].forEach(g=>{s(g)&&((g.tagName==="A"&&g.getAttribute("data-discover")||g.tagName==="FORM"&&g.getAttribute("data-discover"))&&m.add(g),g.tagName!=="A"&&g.querySelectorAll("a[data-discover], form[data-discover]").forEach(R=>m.add(R)))})}),m.forEach(w=>o(w)),l()});return d.observe(document.documentElement,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["data-discover","href","action"]}),()=>d.disconnect()},[n,a,t,r,e])}const lr="remix-manifest-version";async function ha(e,t,r,n,a,i,o,u,l){let s=`${o??"/"}/__manifest`.replace(/\/+/g,"/"),d=new URL(s,window.location.origin);if(e.sort().forEach(R=>d.searchParams.append("p",R)),d.searchParams.set("version",r.version),d.toString().length>Kl){At.clear();return}let c;try{let R=await fetch(d,{signal:l});if(R.ok){if(R.status===204&&R.headers.has("X-Remix-Reload-Document")){if(!t){console.warn("Detected a manifest version mismatch during eager route discovery. The next navigation/fetch to an undiscovered route will result in a new document navigation to sync up with the latest manifest.");return}if(sessionStorage.getItem(lr)===r.version){console.error("Unable to discover routes due to manifest version mismatch.");return}throw sessionStorage.setItem(lr,r.version),window.location.href=t,new Error("Detected manifest version mismatch, reloading...")}else if(R.status>=400)throw new Error(await R.text())}else throw new Error(`${R.status} ${R.statusText}`);sessionStorage.removeItem(lr),c=await R.json()}catch(R){if(l!=null&&l.aborted)return;throw R}let m=new Set(Object.keys(r.routes)),w=Object.values(c).reduce((R,b)=>m.has(b.id)?R:Object.assign(R,{[b.id]:b}),{});Object.assign(r.routes,w),e.forEach(R=>Gl(R,Ft));let g=new Set;Object.values(w).forEach(R=>{(!R.parentId||!w[R.parentId])&&g.add(R.parentId)}),g.forEach(R=>u(R||null,Dr(w,n,null,a,i,R)))}function Gl(e,t){if(t.size>=Vl){let r=t.values().next().value;typeof r=="string"&&t.delete(r)}t.add(e)}function ql(e,t){let r;return(...n)=>{window.clearTimeout(r),r=window.setTimeout(()=>e(...n),t)}}function ma(){let e=f.useContext(et);return Oe(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function Wt(){let e=f.useContext(pt);return Oe(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}const pa=f.createContext(void 0);pa.displayName="Remix";function tt(){let e=f.useContext(pa);return Oe(e,"You must render this element inside a <Remix> element"),e}function va(e,t){let[r,n]=f.useState(!1),[a,i]=f.useState(!1),{onFocus:o,onBlur:u,onMouseEnter:l,onMouseLeave:s,onTouchStart:d}=t,c=f.useRef(null);f.useEffect(()=>{if(e==="render"&&i(!0),e==="viewport"){let g=b=>{b.forEach(C=>{i(C.isIntersecting)})},R=new IntersectionObserver(g,{threshold:.5});return c.current&&R.observe(c.current),()=>{R.disconnect()}}},[e]);let m=()=>{e==="intent"&&n(!0)},w=()=>{e==="intent"&&(n(!1),i(!1))};return f.useEffect(()=>{if(r){let g=setTimeout(()=>{i(!0)},100);return()=>{clearTimeout(g)}}},[r]),[a,c,{onFocus:ct(o,m),onBlur:ct(u,w),onMouseEnter:ct(l,m),onMouseLeave:ct(s,w),onTouchStart:ct(d,m)}]}const Ar=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;function Mr(e,t,r){return e==="render"&&!t&&!r?"true":void 0}let Ql=f.forwardRef(({to:e,prefetch:t="none",discover:r="render",...n},a)=>{let i=typeof e=="string"&&Ar.test(e),o=br(e),[u,l,s]=va(t,n);return f.createElement(f.Fragment,null,f.createElement(Uo,ce({},n,s,{ref:ya(a,l),to:e,"data-discover":Mr(r,i,n.reloadDocument)})),u&&!i?f.createElement(jr,{page:o}):null)});Ql.displayName="NavLink";let Zl=f.forwardRef(({to:e,prefetch:t="none",discover:r="render",...n},a)=>{let i=typeof e=="string"&&Ar.test(e),o=br(e),[u,l,s]=va(t,n);return f.createElement(f.Fragment,null,f.createElement(qn,ce({},n,s,{ref:ya(a,l),to:e,"data-discover":Mr(r,i,n.reloadDocument)})),u&&!i?f.createElement(jr,{page:o}):null)});Zl.displayName="Link";let es=f.forwardRef(({discover:e="render",...t},r)=>{let n=typeof t.action=="string"&&Ar.test(t.action);return f.createElement(Fo,ce({},t,{ref:r,"data-discover":Mr(e,n,t.reloadDocument)}))});es.displayName="Form";function ct(e,t){return r=>{e&&e(r),r.defaultPrevented||t(r)}}function Nr(e,t,r){if(r&&!Mt)return[e[0]];if(t){let n=e.findIndex(a=>t[a.route.id]!==void 0);return e.slice(0,n+1)}return e}
179function _s(){let{isSpaMode:e,manifest:t,routeModules:r,criticalCss:n}=tt(),{errors:a,matches:i}=Wt(),o=Nr(i,a,e),u=f.useMemo(()=>pl(o,r,t),[o,r,t]);return f.createElement(f.Fragment,null,n?f.createElement("style",{dangerouslySetInnerHTML:{__html:n}}):null,u.map(({key:l,link:s})=>Pr(s)?f.createElement(jr,ce({key:l},s)):f.createElement("link",ce({key:l},s))))}function jr({page:e,...t}){let{router:r}=ma(),n=f.useMemo(()=>De(r.routes,e,r.basename),[r.routes,e,r.basename]);return n?f.createElement(rs,ce({page:e,matches:n},t)):(console.warn(`Tried to prefetch ${e} but no routes matched.`),null)}function ts(e){let{manifest:t,routeModules:r}=tt(),[n,a]=f.useState([]);return f.useEffect(()=>{let i=!1;return gl(e,t,r).then(o=>{i||a(o)}),()=>{i=!0}},[e,t,r]),n}function rs({page:e,matches:t,...r}){let n=Le(),{future:a,manifest:i,routeModules:o}=tt(),{loaderData:u,matches:l}=Wt(),s=f.useMemo(()=>bn(e,t,l,i,n,a,"data"),[e,t,l,i,n,a]),d=f.useMemo(()=>{if(!a.v3_singleFetch)return wl(e,s,i);if(e===n.pathname+n.search+n.hash)return[];let g=new Set,R=!1;if(t.forEach(C=>{var x;i.routes[C.route.id].hasLoader&&(!s.some(D=>D.route.id===C.route.id)&&C.route.id in u&&(x=o[C.route.id])!==null&&x!==void 0&&x.shouldRevalidate||i.routes[C.route.id].hasClientLoader?R=!0:g.add(C.route.id))}),g.size===0)return[];let b=Yt(e);return R&&g.size>0&&b.searchParams.set("_routes",t.filter(C=>g.has(C.route.id)).map(C=>C.route.id).join(",")),[b.pathname+b.search]},[a.v3_singleFetch,u,n,i,s,t,e,o]),c=f.useMemo(()=>bn(e,t,l,i,n,a,"assets"),[e,t,l,i,n,a]),m=f.useMemo(()=>El(c,i),[c,i]),w=ts(c);return f.createElement(f.Fragment,null,d.map(g=>f.createElement("link",ce({key:g,rel:"prefetch",as:"fetch",href:g},r))),m.map(g=>f.createElement("link",ce({key:g,rel:"modulepreload",href:g},r))),w.map(({key:g,link:R})=>f.createElement("link",ce({key:g},R))))}function Ps(){let{isSpaMode:e,routeModules:t}=tt(),{errors:r,matches:n,loaderData:a}=Wt(),i=Le(),o=Nr(n,r,e),u=null;r&&(u=r[o[o.length-1].route.id]);let l=[],s=null,d=[];for(let c=0;c<o.length;c++){let m=o[c],w=m.route.id,g=a[w],R=m.params,b=t[w],C=[],x={id:w,data:g,meta:[],params:m.params,pathname:m.pathname,handle:m.route.handle,error:u};if(d[c]=x,b!=null&&b.meta?C=typeof b.meta=="function"?b.meta({data:g,params:R,location:i,matches:d,error:u}):Array.isArray(b.meta)?[...b.meta]:b.meta:s&&(C=[...s]),C=C||[],!Array.isArray(C))throw new Error("The route at "+m.route.path+` returns an invalid value. All route meta functions must return an array of meta objects. 180 181To reference the meta function API, see https://remix.run/route/meta`);x.meta=C,d[c]=x,l=[...C],s=l}return f.createElement(f.Fragment,null,l.flat().map(c=>{if(!c)return null;if("tagName"in c){let{tagName:m,...w}=c;if(!ns(m))return console.warn(`A meta object uses an invalid tagName: ${m}. Expected either 'link' or 'meta'`),null;let g=m;return f.createElement(g,ce({key:JSON.stringify(w)},w))}if("title"in c)return f.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"?f.createElement("meta",{key:"charSet",charSet:c.charSet}):null;if("script:ld+json"in c)try{let m=JSON.stringify(c["script:ld+json"]);return f.createElement("script",{key:`script:ld+json:${m}`,type:"application/ld+json",dangerouslySetInnerHTML:{__html:ft(m)}})}catch{return null}return f.createElement("meta",ce({key:JSON.stringify(c)},c))}))}function ns(e){return typeof e=="string"&&/^(meta|link)$/.test(e)}function as(e){return f.createElement(fo,e)}let Mt=!1;function is(e){let{manifest:t,serverHandoffString:r,abortDelay:n,serializeError:a,isSpaMode:i,future:o,renderMeta:u}=tt(),{router:l,static:s,staticContext:d}=ma(),{matches:c}=Wt(),m=Or(o,i);u&&(u.didRenderScripts=!0);let w=Nr(c,null,i);f.useEffect(()=>{Mt=!0},[]);let g=(A,y)=>{let O;return a&&y instanceof Error?O=a(y):O=y,`${JSON.stringify(A)}:__remixContext.p(!1, ${ft(JSON.stringify(O))})`},R=(A,y,O)=>{let z;try{z=JSON.stringify(O)}catch($){return g(y,$)}return`${JSON.stringify(y)}:__remixContext.p(${ft(z)})`},b=(A,y,O)=>{let z;return a&&O instanceof Error?z=a(O):z=O,`__remixContext.r(${JSON.stringify(A)}, ${JSON.stringify(y)}, !1, ${ft(JSON.stringify(z))})`},C=(A,y,O)=>{let z;try{z=JSON.stringify(O)}catch($){return b(A,y,$)}return`__remixContext.r(${JSON.stringify(A)}, ${JSON.stringify(y)}, ${ft(z)})`},x=[],D=f.useMemo(()=>{var A;let y=o.v3_singleFetch?"window.__remixContext.stream = new ReadableStream({start(controller){window.__remixContext.streamController = controller;}}
181).pipeThrough(new TextEncoderStream());":"",O=d?`window.__remixContext = ${r};${y}`:" ",z=o.v3_singleFetch||d==null?void 0:d.activeDeferreds;O+=z?["__remixContext.p = function(v,e,p,x) {"," if (typeof e !== 'undefined') {",` x=new Error("Unexpected Server Error"); 182 x.stack=undefined;`," p=Promise.reject(x);"," } else {"," p=Promise.resolve(v);"," }"," return p;","};","__remixContext.n = function(i,k) {"," __remixContext.t = __remixContext.t || {};"," __remixContext.t[i] = __remixContext.t[i] || {};"," let p = new Promise((r, e) => {__remixContext.t[i][k] = {r:(v)=>{r(v);},e:(v)=>{e(v);}};});",typeof n=="number"?`setTimeout(() => {if(typeof p._error !== "undefined" || typeof p._data !== "undefined"){return;} __remixContext.t[i][k].e(new Error("Server timeout."))}, ${n});`:""," return p;","};","__remixContext.r = function(i,k,v,e,p,x) {"," p = __remixContext.t[i][k];"," if (typeof e !== 'undefined') {",` x=new Error("Unexpected Server Error"); 183 x.stack=undefined;`," p.e(x);"," } else {"," p.r(v);"," }","};"].join(` 184`)+Object.entries(z).map(([Q,X])=>{let de=new Set(X.pendingKeys),fe=X.deferredKeys.map(re=>{if(de.has(re))return x.push(f.createElement(Tn,{key:`${Q} | ${re}`,deferredData:X,routeId:Q,dataKey:re,scriptProps:e,serializeData:C,serializeError:b})),`${JSON.stringify(re)}:__remixContext.n(${JSON.stringify(Q)}, ${JSON.stringify(re)})`;{let ge=X.data[re];return typeof ge._error<"u"?g(re,ge._error):R(Q,re,ge._data)}}).join(`, 185`);return`Object.assign(__remixContext.state.loaderData[${JSON.stringify(Q)}], {${fe}});`}).join(` 186`)+(x.length>0?`__remixContext.a=${x.length};`:""):"";let $=s?`${(A=t.hmr)!==null&&A!==void 0&&A.runtime?`import ${JSON.stringify(t.hmr.runtime)};`:""}${m?"":`import ${JSON.stringify(t.url)}`}; 187${w.map((Q,X)=>`import * as route${X} from ${JSON.stringify(t.routes[Q.route.id].module)};`).join(` 188`)} 189${m?`window.__remixManifest = ${JSON.stringify(Xl(t,l),null,2)};`:""} 190window.__remixRouteModules = {${w.map((Q,X)=>`${JSON.stringify(Q.route.id)}:route${X}`).join(",")}}; 191 192import(${JSON.stringify(t.entry.module)});`:" ";return f.createElement(f.Fragment,null,f.createElement("script",ce({},e,{suppressHydrationWarning:!0,dangerouslySetInnerHTML:xn(O),type:void 0})),f.createElement("script",ce({},e,{suppressHydrationWarning:!0,dangerouslySetInnerHTML:xn($),type:"module",async:!0})))},[]);if(!s&&typeof __remixContext=="object"&&__remixContext.a)for(let A=0;A<__remixContext.a;A++)x.push(f.createElement(Tn,{key:A,scriptProps:e,serializeData:C,serializeError:b}));let P=w.map(A=>{let y=t.routes[A.route.id];return(y.imports||[]).concat([y.module])}).flat(1),L=Mt?[]:t.entry.imports.concat(P);return Mt?null:f.createElement(f.Fragment,null,m?null:f.createElement("link",{rel:"modulepreload",href:t.url,crossOrigin:e.crossOrigin}),f.createElement("link",{rel:"modulepreload",href:t.entry.module,crossOrigin:e.crossOrigin}),ls(L).map(A=>f.createElement("link",{key:A,rel:"modulepreload",href:A,crossOrigin:e.crossOrigin})),D,x)}function Tn({dataKey:e,deferredData:t,routeId:r,scriptProps:n,serializeData:a,serializeError:i}){return typeof document>"u"&&t&&e&&r&&Oe(t.pendingKeys.includes(e),`Deferred data for route ${r} with key ${e} was not pending but tried to render a script for it.`),f.createElement(f.Suspense,{fallback:typeof document>"u"&&t&&e&&r?null:f.createElement("script",ce({},n,{async:!0,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:" "}}))},typeof document>"u"&&t&&e&&r?f.createElement(as,{resolve:t.data[e],errorElement:f.createElement(os,{dataKey:e,routeId:r,scriptProps:n,serializeError:i}),children:o=>f.createElement("script",ce({},n,{async:!0,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:a(r,e,o)}}))}):f.createElement("script",ce({},n,{async:!0,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:" "}})))}function os({dataKey:e,routeId:t,scriptProps:r,serializeError:n}){let a=oo();return f.createElement("script",ce({},r,{suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:n(t,e,a)}}))}function ls(e){return[...new Set(e)]}function Ls(){return ao()}function ya(...e){return t=>{e.forEach(r=>{typeof r=="function"?r(t):r!=null&&(r.current=t)})}}export{pa as A,Rs as B,ys as C,ps as D,Ye as E,za as F,An as G,yt as H,Zl as L,Ps as M,Ql as N,ms as O,Fa as R,is as S,ce as _,Le as a,Xn as b,hs as c,Jn as d,gs as e,On as f,tt as g,no as h,We as i,cs as j,ws as k,ft as l,_s as m,Oe as n,Ul as o,Dr as p,De as q,f as r,Jl as s,fs as t,Ls as u,bs as v,Es as w,ds as x,Ss as y,xs 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.