티스토리 수익 글 보기

티스토리 수익 글 보기

“use strict”;(globalThis.webpackChunk_github_ui_github_ui=globalThis.webpackChunk_github_ui_github_ui||[]).push([[“react-core”],{3291:(e,t,r)=>{r.d(t,{e:()=>i,f:()=>s});var n=r(13017),a=r(96540),o=r(56629);let i=(0,a.memo)(function(){let e=(0,n.zy)(),t=!!(0,n.cq)().location;return(0,o.n)(e,t,null),null}),s=(0,a.memo)(function(){let e=(0,n.zy)();return(0,o.n)(e,!1,null),null});try{i.displayName||(i.displayName=”SoftNavLifecycleListener”)}catch{}try{s.displayName||(s.displayName=”SoftNavLifecycleListenerLegacy”)}catch{}},3962:(e,t,r)=>{r.d(t,{A:()=>a,I:()=>n});var n=(0,r(49236).qU)({fontFamily:{property:”fontFamily”,scale:”fonts”},fontSize:{property:”fontSize”,scale:”fontSizes”,defaultScale:[12,14,16,20,24,32,48,64,72]},fontWeight:{property:”fontWeight”,scale:”fontWeights”},lineHeight:{property:”lineHeight”,scale:”lineHeights”},letterSpacing:{property:”letterSpacing”,scale:”letterSpacings”},textAlign:!0,fontStyle:!0});let a=n},4143:(e,t,r)=>{r.d(t,{Wy:()=>QueryRoute,yT:()=>g});var n=r(35750),a=r(18150),o=r(85242),i=r(88243),s=r(16213),l=r(50467),u=r(13017),c=r(71315),d=r(31993),h=r(16235),p=r(86596),f=r(74848),m=r(11934);function y(e,{element:t,Component:r}){if(!t&&!r)return;let n=null;if(void 0!==t?n=(0,f.jsx)(f.Fragment,{children:t}):r&&(n=(0,f.jsx)(r,{})),n)return(0,f.jsx)(m.U,{id:e,children:n})}function g(){return(0,u.FE)()}let v={refetchOnWindowFocus:!1,retry:!1,networkMode:”always”,staleTime:864e5},b=200;var w=new WeakMap,S=new WeakMap,R=new WeakSet,E=new WeakSet,x=new WeakMap,C=new WeakSet;let QueryRoute=class QueryRoute{isSameRoute(e){return!!(“object”==typeof e&&e&&”id”in e&&”string”==typeof e.id&&e.id===this.id)}generatePath(e,t){return(0,u.AO)({pathname:(0,u.tW)(this.path,e),search:t?.search?new URLSearchParams(t.search).toString():void 0,hash:t?.hash})}constructor(e){(0,s._)(this,R),(0,s._)(this,E),(0,s._)(this,C),(0,a._)(this,w,{writable:!0,value:void 0}),(0,a._)(this,S,{writable:!0,value:void 0}),(0,l._)(this,”id”,void 0),(0,l._)(this,”path”,void 0),(0,l._)(this,”queries”,void 0),(0,l._)(this,”index”,void 0),(0,a._)(this,x,{writable:!0,value:async({request:e,params:t})=>{let r=[],{searchParams:n}=new URL(e.url,c.fV.origin),a=function(e,t){return(0,u.tW)(e,Object.fromEntries(L(t).map(([e,t])=>[e,void 0===t?null:t])))}(this.path,t),o=(0,h.S)(),s=L(this.queries).map(([e,{queryFn:s,queryDeps:l,makeQueryKey:u,type:h=p.g.Deferred,staleTimeForNavigation:f=b,…m}])=>{let y=u(l?.({pathname:a,params:t,searchParams:n})??{}),g=(0,d.j)({…v,queryKey:y,queryFn:({signal:e,meta:t})=>s(function(e){return{appName:e[0],routeId:e[1],routePath:e[2],queryName:e[3],queryDeps:e[4]}}(y),{signal:e,meta:t}),…m});if((0,i._)(this,E,k).call(this,e,g.queryKey),c.KJ){let e={…g,staleTime:f};switch(h){case p.g.Deferred:o.prefetchQuery(e);break;case p.g.Blocking:{let t=o.getQueryState(e.queryKey);t?Date.now()-t.dataUpdatedAt>=f&&o.fetchQuery(e):r.push(o.fetchQuery(e));break}default:throw Error(`Invalid QueryRouteQueryType defined, \`${h}\`. Valid QueryRouteQueryTypes are ${JSON.stringify(Object.keys(p.g))}`)}}return[e,{queryConfig:g,type:h}]});return await Promise.all(r),{route:this,queries:Object.fromEntries(s)}}}),(0,l._)(this,”toRoute”,({Component:e,element:t,…r})=>this.index?{…r,id:this.id,children:void 0,path:this.path,index:this.index,loader:(0,n._)(this,x),element:y(this.id,{element:t,Component:e})}:{…r,id:this.id,path:this.path,index:this.index,loader:(0,n._)(this,x),element:y(this.id,{element:t,Component:e})}),(0,o._)(this,w,e.appName),this.id=e.id,this.path=e.path,this.queries=(0,i._)(this,R,_).call(this,e.queries),this.index=e.index,(0,o._)(this,S,e.getEmbeddedData)}};function _(e){return Object.fromEntries(L(e).map(([e,t])=>{let r=t=>(function({appName:e,routeId:t,routePath:r,queryName:n,queryDeps:a}){return[e,t,r,n,a]})({appName:(0,n._)(this,w),routeId:this.id,routePath:this.path,queryName:e.toString(),queryDeps:t??{}});return[e,{…t,makeQueryKey:r}]}))}function k(e,t){let r=(0,h.S)(),a=(0,n._)(this,S).call(this),o=a?.payload,s=(0,i._)(this,C,N).call(this,a,e);s&&(“mainQuery”===e?delete o?.[this.id]:delete o?.[this.id]?.[e],r.setQueryData(t,s))}function N(e,t){let r=e?.payload,n=r?.[this.id];if(!n)return;if(“mainQuery”!==t)return n?.[t];let a=e?.title||e?.meta?.title;return{meta:a?{title:a}:void 0,payload:n}}let L=e=>Object.entries(e)},5330:(e,t,r)=>{r.d(t,{d:()=>i});var n=r(74848),a=r(21728),o=r(24518);function i(e){let t,r,i=(0,a.c)(5),{routes:s,children:l}=e;i[0]!==s?(t={routes:s},i[0]=s,i[1]=t):t=i[1];let u=t;return i[2]!==u||i[3]!==l?(r=(0,n.jsx)(o.k.Provider,{value:u,children:l}),i[2]=u,i[3]=l,i[4]=r):r=i[4],r}try{i.displayName||(i.displayName=”RoutesContextProvider”)}catch{}},6152:(e,t,r)=>{r.d(t,{Y:()=>n});let n=(0,r(96540).createContext)({})},7123:(e,t,r)=>{r.d(t,{k:()=>f});var n=r(50467),a=r(31635),o=r(74848),i=r(39595),s=r(13017),l=r(18501),u=r(11934),c=r(26865);let d=new(r(86917)).R;var h=r(40558);let p=class ReactPartialElement extends h.H{async getReactNode(e,t){var r;let{Component:n}=await (r=this.name,d.getRegistration(r).promise),a=this.closest(“react-partial-anchor”),i=(0,c.b3)(a),h={…e,props:{…e.props,…i}};return(0,o.jsx)(u.f,{appName:this.name,isDataRouterEnabled:!1,children:(0,o.jsx)(u.U,{id:this.name,children:(0,o.jsx)(l.c,{partialName:this.name,wasServerRendered:this.hasSSRContent,onError:t,ssrError:this.ssrError,children:(0,o.jsx)(s.Kd,{children:(0,o.jsx)(s.BV,{children:(0,o.jsx)(s.qh,{path:”*”,element:(0,o.jsx)(n,{…h.props})})})})})})})}constructor(…e){super(…e),(0,n._)(this,”nameAttribute”,”partial-name”)}};function f(e,t){return d.register(e,t)}p=(0,a.Cg)([i.p_],p)},7820:(e,t,r)=>{r.d(t,{z:()=>n});let n={“Workers not ready”:”Alloy is warming its workers. This is expected during deploys and should resolve shortly.”}},11934:(e,t,r)=>{r.d(t,{U:()=>d,f:()=>c});var n=r(74848),a=r(21728),o=r(73189),i=r(96540),s=r(69599),l=r(11083);let u=(0,i.createContext)(null),c=(0,i.memo)(function(e){let t,r,o=(0,a.c)(6),{isDataRouterEnabled:c,appName:d,children:h}=e;o[0]!==d||o[1]!==c?(t={appName:d,isDataRouterEnabled:c},o[0]=d,o[1]=c,o[2]=t):t=o[2];let{onRender:p}=function(e){let t,r,n=(0,a.c)(5),{appName:o,isDataRouterEnabled:u}=e;n[0]!==o||n[1]!==u?(t=(e,t,r,n,a,c)=>{“undefined”!=typeof window&&(0,s.G7)(“react_quality_profiling”)&&(0,l.i)({requestUrl:window.location.href,reactRenderPerformance:{actualDuration:r,baseDuration:n,commitLag:c-a,phase:t,appName:o,isDataRouterEnabled:u,componentId:e,reactVersion:i.version}})},n[0]=o,n[1]=u,n[2]=t):t=n[2];let c=t;return n[3]!==c?(r={onRender:c},n[3]=c,n[4]=r):r=n[4],r}(t);return o[3]!==h||o[4]!==p?(r=(0,n.jsx)(u.Provider,{value:p,children:h}),o[3]=h,o[4]=p,o[5]=r):r=o[5],r}),d=(0,i.memo)(function(e){let t,r=(0,a.c)(4),{id:s,children:l}=e,c=(0,i.useContext)(u)??o.l;return r[0]!==l||r[1]!==s||r[2]!==c?(t=(0,n.jsx)(i.Profiler,{id:s,onRender:c,children:l}),r[0]=l,r[1]=s,r[2]=c,r[3]=t):t=r[3],t});try{u.displayName||(u.displayName=”ProfilerContext”)}catch{}try{c.displayName||(c.displayName=”ProfilerProvider”)}catch{}try{d.displayName||(d.displayName=”Profiler”)}catch{}},12435:(e,t,r)=>{r.d(t,{$h:()=>DataRouterApplicationBuilder});var n=r(35750),a=r(18150),o=r(85242),i=r(88243),s=r(16213),l=r(50467),u=r(4143),c=new WeakMap,d=new WeakSet;let DataRouterApplication=class DataRouterApplication{registration(e){return this.embeddedData=e?.embeddedData,{routes:(0,i._)(this,d,h).call(this)}}constructor(e,t){(0,s._)(this,d),(0,l._)(this,”name”,void 0),(0,a._)(this,c,{writable:!0,value:void 0}),(0,l._)(this,”embeddedData”,void 0),this.name=e,(0,o._)(this,c,t),this.registration=this.registration.bind(this)}};function h(){if(“function”==typeof(0,n._)(this,c)){let e=e=>{let t=this.embeddedData?.appPayload?.enabled_features;if(t&&e in t)return t[e]};return(0,n._)(this,c).call(this,{isEnabled:e})}return(0,n._)(this,c)}var p=new WeakMap;let DataRouterApplicationBuilder=class DataRouterApplicationBuilder{static create(e){return new DataRouterApplicationBuilder(e)}createDataRouterAppFromRoutes(e){return(0,o._)(this,p,new DataRouterApplication(this.name,e)),(0,n._)(this,p)}createQueryRouteConfig(e,{path:t,index:r,queries:n=[]}){return function(e){if(e.length>4)throw new m(e.length)}(n),function(e){if(!/^[a-z][a-zA-Z0-9]*$/.test(e))throw new InvalidIdentifierError(e)}(e),new u.Wy({appName:this.name,id:e,path:t,queries:function(e){let t=new Set;return Object.fromEntries(e.map(({queryName:e,…r})=>{if(t.has(e))throw new f(e);return t.add(e),[e,r]}))}(n),index:r??!1,getEmbeddedData:this.getEmbeddedData})}constructor(e){(0,l._)(this,”name”,void 0),(0,a._)(this,p,{writable:!0,value:void 0}),(0,l._)(this,”getEmbeddedData”,()=>{if(!(0,n._)(this,p))throw Error(“getEmbeddedData should only be called after createDataRouterAppFromRoutes”);return(0,n._)(this,p).embeddedData}),this.name=e}};let f=class DuplicateRouteQueryNameError extends Error{constructor(e){super(`query names cannot be duplicated: \`${e}\` has already been defined for this route.`),this.name=”DuplicateRouteQueryNameError”}},m=class InvalidNumberOfQueryConfigsError extends Error{constructor(e){super(`Invalid number of query configs error. ${e} queries supplied of a max 4 queries allowed.`),this.name=”InvalidNumberOfQueryConfigsError”}};let InvalidIdentifierError=class InvalidIdentifierError extends Error{constructor(e){super(`\`${e}\` must be camel cased`),this.name=”InvalidIdentifierError”}}},13017:(e,t,r)=>{r.d(t,{AO:()=>f,B6:()=>k,BV:()=>tN,C5:()=>tx,Ew:()=>td,FE:()=>tu,Gy:()=>t3,Ix:()=>tk,K:()=>re,KP:()=>tf,Kd:()=>tQ,LG:()=>tc,N_:()=>tZ,OA:()=>t1,PI:()=>tj,RQ:()=>e2,Ye:()=>e9,Ys:()=>tG,Zp:()=>e5,_3:()=>eX,cq:()=>tl,g:()=>e6,k2:()=>t0,o1:()=>P,ok:()=>t5,pX:()=>z,pg:()=>tR,qh:()=>t_,r5:()=>th,rc:()=>s,sv:()=>tC,tW:()=>_,ue:()=>S,wQ:()=>e1,x$:()=>e7,zR:()=>u,zy:()=>e0});var n,a=r(96540),o=e=>{throw TypeError(e)},i=(e,t,r)=>(t.has(e)||o(“Cannot read from private field”),r?r.call(e):t.get(e)),s=(e=>(e.Pop=”POP”,e.Push=”PUSH”,e.Replace=”REPLACE”,e))(s||{}),l=”popstate”;function u(e={}){return function(e,t,r,n={}){let{window:a=document.defaultView,v5Compat:o=!1}=n,i=a.history,s=”POP”,u=null,c=d();function d(){return(i.state||{idx:null}).idx}function f(){s=”POP”;let e=d(),t=null==e?null:e-c;c=e,u&&u({action:s,location:m.location,delta:t})}null==c&&(c=0,i.replaceState({…i.state,idx:c},””));let m={get action(){return s},get location(){return e(a,i)},listen(e){if(u)throw Error(“A history only accepts one active listener”);return a.addEventListener(l,f),u=e,()=>{a.removeEventListener(l,f),u=null}},createHref:e=>t(a,e),createURL:function(e){return y(e)},encodeLocation(e){let t=y(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(e,t){s=”PUSH”;let r=p(m.location,e,t);let n=h(r,c=d()+1),l=m.createHref(r);try{i.pushState(n,””,l)}catch(e){if(e instanceof DOMException&&”DataCloneError”===e.name)throw e;a.location.assign(l)}o&&u&&u({action:s,location:m.location,delta:1})},replace:function(e,t){s=”REPLACE”;let n=p(m.location,e,t);r&&r(n,e);let a=h(n,c=d()),l=m.createHref(n);i.replaceState(a,””,l),o&&u&&u({action:s,location:m.location,delta:0})},go:e=>i.go(e)};return m}(function(e,t){let{pathname:r,search:n,hash:a}=e.location;return p(“”,{pathname:r,search:n,hash:a},t.state&&t.state.usr||null,t.state&&t.state.key||”default”)},function(e,t){return”string”==typeof t?t:f(t)},null,e)}function c(e,t){if(!1===e||null==e)throw Error(t)}function d(e,t){if(!e){“undefined”!=typeof console&&console.warn(t);try{throw Error(t)}catch(e){}}}function h(e,t){return{usr:e.state,key:e.key,idx:t}}function p(e,t,r=null,n){return{pathname:”string”==typeof e?e:e.pathname,search:””,hash:””,…”string”==typeof t?m(t):t,state:r,key:t&&t.key||n||Math.random().toString(36).substring(2,10)}}function f({pathname:e=”/”,search:t=””,hash:r=””}){return t&&”?”!==t&&(e+=”?”===t.charAt(0)?t:”?”+t),r&&”#”!==r&&(e+=”#”===r.charAt(0)?r:”#”+r),e}function m(e){let t={};if(e){let r=e.indexOf(“#”);r>=0&&(t.hash=e.substring(r),e=e.substring(0,r));let n=e.indexOf(“?”);n>=0&&(t.search=e.substring(n),e=e.substring(0,n)),e&&(t.pathname=e)}return t}function y(e,t=!1){let r=”http://localhost”;”undefined”!=typeof window&&(r=”null”!==window.location.origin?window.location.origin:window.location.href),c(r,”No window.location.(origin|href) available to create URL”);let n=”string”==typeof e?e:f(e);return n=n.replace(/ $/,”%20″),!t&&n.startsWith(“//”)&&(n=r+n),new URL(n,r)}var g=class{constructor(e){if(((e,t,r)=>t.has(e)?o(“Cannot add the same private member more than once”):t instanceof WeakSet?t.add(e):t.set(e,r))(this,n,new Map),e)for(let[t,r]of e)this.set(t,r)}get(e){if(i(this,n).has(e))return i(this,n).get(e);if(void 0!==e.defaultValue)return e.defaultValue;throw Error(“No value found for context”)}set(e,t){i(this,n).set(e,t)}};n=new WeakMap;var v=new Set([“lazy”,”caseSensitive”,”path”,”id”,”index”,”children”]),b=new Set([“lazy”,”caseSensitive”,”path”,”id”,”index”,”unstable_middleware”,”children”]);function w(e,t,r=[],n={},a=!1){return e.map((e,o)=>{let i=[…r,String(o)],s=”string”==typeof e.id?e.id:i.join(“-“);if(c(!0!==e.index||!e.children,”Cannot specify children on an index route”),c(a||!n[s],`Found a route id collision on id “${s}”. Route id’s must be globally unique within Data Router usages`),!0===e.index){let r={…e,…t(e),id:s};return n[s]=r,r}{let r={…e,…t(e),id:s,children:void 0};return n[s]=r,e.children&&(r.children=w(e.children,t,i,n,a)),r}})}function S(e,t,r=”/”){return R(e,t,r,!1)}function R(e,t,r,n){let a=L((“string”==typeof t?m(t):t).pathname||”/”,r);if(null==a)return null;let o=function e(t,r=[],n=[],a=””,o=!1){let i=(t,i,s=o,l)=>{var u,d;let h,p,f={relativePath:void 0===l?t.path||””:l,caseSensitive:!0===t.caseSensitive,childrenIndex:i,route:t};if(f.relativePath.startsWith(“/”)){if(!f.relativePath.startsWith(a)&&s)return;c(f.relativePath.startsWith(a),`Absolute route path “${f.relativePath}” nested under path “${a}” is not valid. An absolute child route path must start with the combined path of all its parent routes.`),f.relativePath=f.relativePath.slice(a.length)}let m=O([a,f.relativePath]),y=n.concat(f);t.children&&t.children.length>0&&(c(!0!==t.index,`Index routes must not have child routes. Please remove all child routes from route path “${m}”.`),e(t.children,r,y,m,s)),(null!=t.path||t.index)&&r.push({path:m,score:(u=m,d=t.index,p=(h=u.split(“/”)).length,h.some(C)&&(p+=-2),d&&(p+=2),h.filter(e=>!C(e)).reduce((e,t)=>e+(x.test(t)?3:””===t?1:10),p)),routesMeta:y})};return t.forEach((e,t)=>{if(“”!==e.path&&e.path?.includes(“?”))for(let r of function e(t){let r=t.split(“/”);if(0===r.length)return[];let[n,…a]=r,o=n.endsWith(“?”),i=n.replace(/\?$/,””);if(0===a.length)return o?[i,””]:[i];let s=e(a.join(“/”)),l=[];return l.push(…s.map(e=>””===e?i:[i,e].join(“/”))),o&&l.push(…s),l.map(e=>t.startsWith(“/”)&&””===e?”/”:e)}(e.path))i(e,t,!0,r);else i(e,t)}),r}(e);o.sort((e,t)=>{var r,n;return e.score!==t.score?t.score-e.score:(r=e.routesMeta.map(e=>e.childrenIndex),n=t.routesMeta.map(e=>e.childrenIndex),r.length===n.length&&r.slice(0,-1).every((e,t)=>e===n[t])?r[r.length-1]-n[n.length-1]:0)});let i=null;for(let e=0;null==i&&e“*”===e;function _(e,t={}){let r=e;r.endsWith(“*”)&&”*”!==r&&!r.endsWith(“/*”)&&(d(!1,`Route path “${r}” will be treated as if it were “${r.replace(/\*$/,”/*”)}” because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to “${r.replace(/\*$/,”/*”)}”.`),r=r.replace(/\*$/,”/*”));let n=r.startsWith(“/”)?”/”:””,a=e=>null==e?””:”string”==typeof e?e:String(e);return n+r.split(/\/+/).map((e,r,n)=>{if(r===n.length-1&&”*”===e)return a(t[“*”]);let o=e.match(/^:([\w-]+)(\??)$/);if(o){let[,e,r]=o,n=t[e];return c(“?”===r||null!=n,`Missing “:${e}” param`),a(n)}return e.replace(/\?$/g,””)}).filter(e=>!!e).join(“/”)}function k(e,t){“string”==typeof e&&(e={path:e,caseSensitive:!1,end:!0});let[r,n]=function(e,t=!1,r=!0){d(“*”===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,(e,t,r)=>(n.push({paramName:t,isOptional:null!=r}),r?”/?([^\\/]+)?”:”/([^\\/]+)”)).replace(/\/([\w-]+)\?(\/|$)/g,”(/$1)?$2″);return e.endsWith(“*”)?(n.push({paramName:”*”}),a+=”*”===e||”/*”===e?”(.*)$”:”(?:\\/(.+)|\\/*)$”):r?a+=”\\/*$”:””!==e&&”/”!==e&&(a+=”(?:(?=\\/|$))”),[new RegExp(a,t?void 0:”i”),n]}(e.path,e.caseSensitive,e.end),a=t.match(r);if(!a)return null;let o=a[0],i=o.replace(/(.)\/+$/,”$1″),s=a.slice(1);return{params:n.reduce((e,{paramName:t,isOptional:r},n)=>{if(“*”===t){let e=s[n]||””;i=o.slice(0,o.length-e.length).replace(/(.)\/+$/,”$1″)}let a=s[n];return r&&!a?e[t]=void 0:e[t]=(a||””).replace(/%2F/g,”/”),e},{}),pathname:o,pathnameBase:i,pattern:e}}function N(e){try{return e.split(“/”).map(e=>decodeURIComponent(e).replace(/\//g,”%2F”)).join(“/”)}catch(t){return d(!1,`The URL path “${e}” could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function L(e,t){if(“/”===t)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let r=t.endsWith(“/”)?t.length-1:t.length,n=e.charAt(r);return n&&”/”!==n?null:e.slice(r)||”/”}function P(e,t=”/”){var r;let n,{pathname:a,search:o=””,hash:i=””}=”string”==typeof e?m(e):e;return{pathname:a?a.startsWith(“/”)?a:(r=a,n=t.replace(/\/+$/,””).split(“/”),r.split(“/”).forEach(e=>{“..”===e?n.length>1&&n.pop():”.”!==e&&n.push(e)}),n.length>1?n.join(“/”):”/”):t,search:M(o),hash:$(i)}}function A(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 and the router will parse it for you.`}function j(e){return e.filter((e,t)=>0===t||e.route.path&&e.route.path.length>0)}function T(e){let t=j(e);return t.map((e,r)=>r===t.length-1?e.pathname:e.pathnameBase)}function D(e,t,r,n=!1){let a,o;”string”==typeof e?a=m(e):(c(!(a={…e}).pathname||!a.pathname.includes(“?”),A(“?”,”pathname”,”search”,a)),c(!a.pathname||!a.pathname.includes(“#”),A(“#”,”pathname”,”hash”,a)),c(!a.search||!a.search.includes(“#”),A(“#”,”search”,”hash”,a)));let i=””===e||””===a.pathname,s=i?”/”:a.pathname;if(null==s)o=r;else{let e=t.length-1;if(!n&&s.startsWith(“..”)){let t=s.split(“/”);for(;”..”===t[0];)t.shift(),e-=1;a.pathname=t.join(“/”)}o=e>=0?t[e]:”/”}let l=P(a,o),u=s&&”/”!==s&&s.endsWith(“/”),d=(i||”.”===s)&&r.endsWith(“/”);return!l.pathname.endsWith(“/”)&&(u||d)&&(l.pathname+=”/”),l}var O=e=>e.join(“/”).replace(/\/\/+/g,”/”),I=e=>e.replace(/\/+$/,””).replace(/^\/*/,”/”),M=e=>e&&”?”!==e?e.startsWith(“?”)?e:”?”+e:””,$=e=>e&&”#”!==e?e.startsWith(“#”)?e:”#”+e:””,W=class{constructor(e,t,r,n=!1){this.status=e,this.statusText=t||””,this.internal=n,r instanceof Error?(this.data=r.toString(),this.error=r):this.data=r}};function z(e){return null!=e&&”number”==typeof e.status&&”string”==typeof e.statusText&&”boolean”==typeof e.internal&&”data”in e}var U=[“POST”,”PUT”,”PATCH”,”DELETE”],B=new Set(U),F=new Set([“GET”,…U]),H=new Set([301,302,303,307,308]),q=new Set([307,308]),Y={state:”idle”,location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},V={state:”idle”,data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},J={state:”unblocked”,proceed:void 0,reset:void 0,location:void 0},X=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,G=e=>X.test(e),Q=e=>({hasErrorBoundary:!!e.hasErrorBoundary}),K=”remix-router-transitions”,Z=Symbol(“ResetLoaderData”);function ee(e,t,r,n,a,o){let i,s;if(a){for(let e of(i=[],t))if(i.push(e),e.route.id===a){s=e;break}}else i=t,s=t[t.length-1];let l=D(n||”.”,T(i),L(e.pathname,r)||e.pathname,”path”===o);if(null==n&&(l.search=e.search,l.hash=e.hash),(null==n||””===n||”.”===n)&&s){let e=e$(l.search);if(s.route.index&&!e)l.search=l.search?l.search.replace(/^\?/,”?index&”):”?index”;else if(!s.route.index&&e){let e=new URLSearchParams(l.search),t=e.getAll(“index”);e.delete(“index”),t.filter(e=>e).forEach(t=>e.append(“index”,t));let r=e.toString();l.search=r?`?${r}`:””}}return”/”!==r&&(l.pathname=function({basename:e,pathname:t}){return”/”===t?e:O([e,t])}({basename:r,pathname:l.pathname})),f(l)}function et(e,t,r){var n;let a,o;if(!r||!(null!=r&&(“formData”in r&&null!=r.formData||”body”in r&&void 0!==r.body)))return{path:t};if(r.formMethod&&(n=r.formMethod,!F.has(n.toUpperCase())))return{path:t,error:eP(405,{method:r.formMethod})};let i=()=>({path:t,error:eP(400,{type:”invalid-body”})}),s=(r.formMethod||”get”).toUpperCase(),l=ej(t);if(void 0!==r.body){if(“text/plain”===r.formEncType){if(!eM(s))return i();let e=”string”==typeof r.body?r.body:r.body instanceof FormData||r.body instanceof URLSearchParams?Array.from(r.body.entries()).reduce((e,[t,r])=>`${e}${t}=${r} `,””):String(r.body);return{path:t,submission:{formMethod:s,formAction:l,formEncType:r.formEncType,formData:void 0,json:void 0,text:e}}}else if(“application/json”===r.formEncType){if(!eM(s))return i();try{let e=”string”==typeof r.body?JSON.parse(r.body):r.body;return{path:t,submission:{formMethod:s,formAction:l,formEncType:r.formEncType,formData:void 0,json:e,text:void 0}}}catch(e){return i()}}}if(c(“function”==typeof FormData,”FormData is not available in this environment”),r.formData)a=eE(r.formData),o=r.formData;else if(r.body instanceof FormData)a=eE(r.body),o=r.body;else if(r.body instanceof URLSearchParams)o=ex(a=r.body);else if(null==r.body)a=new URLSearchParams,o=new FormData;else try{a=new URLSearchParams(r.body),o=ex(a)}catch(e){return i()}let u={formMethod:s,formAction:l,formEncType:r&&r.formEncType||”application/x-www-form-urlencoded”,formData:o,json:void 0,text:void 0};if(eM(u.formMethod))return{path:t,submission:u};let d=m(t);return e&&d.search&&e$(d.search)&&a.append(“index”,””),d.search=`?${a}`,{path:f(d),submission:u}}function er(e,t,r,n,a,o,i,s,l,u,c,d,h,p,f,m,y,g,v,b){let w,R=b?eT(b[1])?b[1].error:b[1].data:void 0,E=a.createURL(o.location),x=a.createURL(l);if(c&&o.errors){let e=Object.keys(o.errors)[0];w=i.findIndex(t=>t.route.id===e)}else if(b&&eT(b[1])){let e=b[0];w=i.findIndex(t=>t.route.id===e)-1}let C=b?b[1].statusCode:void 0,_=C&&C>=400,k={currentUrl:E,currentParams:o.matches[0]?.params||{},nextUrl:x,nextParams:i[0].params,…s,actionResult:R,actionStatus:C},N=i.map((a,i)=>{var s,l,h,p,f;let m,y,g,{route:v}=a,b=null;if(null!=w&&i>w?b=!1:v.lazy?b=!0:null==v.loader?b=!1:c?b=en(v,o.loaderData,o.errors):(s=o.loaderData,l=o.matches[i],h=a,m=!l||h.route.id!==l.route.id,y=!s.hasOwnProperty(h.route.id),(m||y)&&(b=!0)),null!==b)return em(r,n,e,a,u,t,b);let S=!_&&(d||E.pathname+E.search===x.pathname+x.search||E.search!==x.search||(p=o.matches[i],f=a,g=p.route.path,p.pathname!==f.pathname||null!=g&&g.endsWith(“*”)&&p.params[“*”]!==f.params[“*”])),R={…k,defaultShouldRevalidate:S},C=ea(a,R);return em(r,n,e,a,u,t,C,R)}),L=[];return f.forEach((e,s)=>{if(c||!i.some(t=>t.route.id===e.routeId)||p.has(s))return;let l=o.fetchers.get(s),f=l&&”idle”!==l.state&&void 0===l.data,b=S(y,e.path,g);if(!b){if(v&&f)return;L.push({key:s,routeId:e.routeId,path:e.path,matches:null,match:null,request:null,controller:null});return}if(m.has(s))return;let w=eW(b,e.path),R=new AbortController,E=eR(a,e.path,R.signal),x=null;if(h.has(s))h.delete(s),x=ey(r,n,E,b,w,u,t);else if(f)d&&(x=ey(r,n,E,b,w,u,t));else{let e={…k,defaultShouldRevalidate:!_&&d};ea(w,e)&&(x=ey(r,n,E,b,w,u,t,e))}x&&L.push({key:s,routeId:e.routeId,path:e.path,matches:x,match:w,request:E,controller:R})}),{dsMatches:N,revalidatingFetchers:L}}function en(e,t,r){if(e.lazy)return!0;if(!e.loader)return!1;let n=null!=t&&e.id in t,a=null!=r&&void 0!==r[e.id];return(!!n||!a)&&(“function”==typeof e.loader&&!0===e.loader.hydrate||!n&&!a)}function ea(e,t){if(e.route.shouldRevalidate){let r=e.route.shouldRevalidate(t);if(“boolean”==typeof r)return r}return t.defaultShouldRevalidate}function eo(e,t,r,n,a,o){let i;if(e){let t=n[e];c(t,`No route found to patch children into: routeId = ${e}`),t.children||(t.children=[]),i=t.children}else i=r;let s=[],l=[];if(t.forEach(e=>{let t=i.find(t=>(function e(t,r){return”id”in t&&”id”in r&&t.id===r.id||t.index===r.index&&t.path===r.path&&t.caseSensitive===r.caseSensitive&&((!t.children||0===t.children.length)&&(!r.children||0===r.children.length)||t.children.every((t,n)=>r.children?.some(r=>e(t,r))))})(e,t));t?l.push({existingRoute:t,newRoute:e}):s.push(e)}),s.length>0){let t=w(s,a,[e||”_”,”patch”,String(i?.length||”0″)],n);i.push(…t)}if(o&&l.length>0)for(let e=0;e{let a=r[t.id];if(c(a,”No route found in manifest”),!a.lazy||”object”!=typeof a.lazy)return;let o=a.lazy[e];if(!o)return;let i=ei.get(a);i||(i={},ei.set(a,i));let s=i[e];if(s)return s;let l=(async()=>{let t=v.has(e),r=void 0!==a[e]&&”hasErrorBoundary”!==e;if(t)d(!t,”Route property “+e+” is not a supported lazy route property. This property will be ignored.”),i[e]=Promise.resolve();else if(r)d(!1,`Route “${a.id}” has a static property “${e}” defined. The lazy property will be ignored.`);else{let t=await o();null!=t&&(Object.assign(a,{[e]:t}),Object.assign(a,n(a)))}”object”==typeof a.lazy&&(a.lazy[e]=void 0,Object.values(a.lazy).every(e=>void 0===e)&&(a.lazy=void 0))})();return i[e]=l,l},el=new WeakMap;async function eu(e){let t=e.matches.filter(e=>e.shouldLoad),r={};return(await Promise.all(t.map(e=>e.resolve()))).forEach((e,n)=>{r[t[n].route.id]=e}),r}async function ec(e){if(!e.matches.some(e=>e.route.unstable_middleware))return eu(e);let t=!1;return eh(e,()=>(t=!0,eu(e)),(r,n)=>ed(r,n,e.matches,t))}function ed(e,t,r,n){if(n)return{[t]:{type:”error”,result:e}};{let n=Math.min(r.findIndex(e=>e.route.id===t)||0,r.findIndex(e=>e.unstable_shouldCallHandler())||0);return{[eN(r,r[n].route.id).route.id]:{type:”error”,result:e}}}}async function eh(e,t,r){let{matches:n,request:a,params:o,context:i}=e,s=n.flatMap(e=>e.route.unstable_middleware?e.route.unstable_middleware.map(t=>[e.route.id,t]):[]),l={};return await ep({request:a,params:o,context:i},s,t,r,l),l}async function ep(e,t,r,n,a={},o=0){let{request:i}=e;if(i.signal.aborted){if(i.signal.reason)throw i.signal.reason;throw Error(`Request aborted without an \`AbortSignal.reason\`: ${i.method} ${i.url}`)}let s=t[o];if(!s)return void Object.assign(a,await r());let[l,u]=s,c=!1,d=async()=>{if(c)throw Error(“You may only call `next()` once per middleware”);c=!0;try{let i=await ep(e,t,r,n,a,o+1);Object.assign(a,i)}catch(e){Object.assign(a,await n(e,l))}};try{let t=await u({request:e.request,params:e.params,context:e.context},d);void 0!==t&&console.warn(“client middlewares are not intended to return values, the value will be ignored”,t),c||await d()}catch(e){Object.assign(a,await n(e,l))}}function ef(e,t,r,n,a){let o=es({key:”unstable_middleware”,route:n.route,manifest:t,mapRouteProperties:e}),i=function(e,t,r,n,a){let o,i=r[e.id];if(c(i,”No route found in manifest”),!e.lazy)return{lazyRoutePromise:void 0,lazyHandlerPromise:void 0};if(“function”==typeof e.lazy){let t=el.get(i);if(t)return{lazyRoutePromise:t,lazyHandlerPromise:t};let r=(async()=>{c(“function”==typeof e.lazy,”No lazy route function found”);let t=await e.lazy(),r={};for(let e in t){let n=t[e];if(void 0===n)continue;let a=b.has(e),o=void 0!==i[e]&&”hasErrorBoundary”!==e;a?d(!a,”Route property “+e+” is not a supported property to be returned from a lazy route function. This property will be ignored.”):o?d(!o,`Route “${i.id}” has a static property “${e}” defined but its lazy function is also returning a value for this property. The lazy route property “${e}” will be ignored.`):r[e]=n}Object.assign(i,r),Object.assign(i,{…n(i),lazy:void 0})})();return el.set(i,r),r.catch(()=>{}),{lazyRoutePromise:r,lazyHandlerPromise:r}}let s=Object.keys(e.lazy),l=[];for(let i of s){if(a&&a.includes(i))continue;let s=es({key:i,route:e,manifest:r,mapRouteProperties:n});s&&(l.push(s),i===t&&(o=s))}let u=l.length>0?Promise.all(l).then(()=>{}):void 0;return u?.catch(()=>{}),o?.catch(()=>{}),{lazyRoutePromise:u,lazyHandlerPromise:o}}(n.route,eM(r.method)?”action”:”loader”,t,e,a);return{middleware:o,route:i.lazyRoutePromise,handler:i.lazyHandlerPromise}}function em(e,t,r,n,a,o,i,s=null){let l=!1,u=ef(e,t,r,n,a);return{…n,_lazyPromises:u,shouldLoad:i,unstable_shouldRevalidateArgs:s,unstable_shouldCallHandler:e=>(l=!0,s)?”boolean”==typeof e?ea(n,{…s,defaultShouldRevalidate:e}):ea(n,s):i,resolve:e=>l||i||e&&!eM(r.method)&&(n.route.lazy||n.route.loader)?ev({request:r,match:n,lazyHandlerPromise:u?.handler,lazyRoutePromise:u?.route,handlerOverride:e,scopedContext:o}):Promise.resolve({type:”data”,result:void 0})}}function ey(e,t,r,n,a,o,i,s=null){return n.map(n=>n.route.id!==a.route.id?{…n,shouldLoad:!1,unstable_shouldRevalidateArgs:s,unstable_shouldCallHandler:()=>!1,_lazyPromises:ef(e,t,r,n,o),resolve:()=>Promise.resolve({type:”data”,result:void 0})}:em(e,t,r,n,o,i,!0,s))}async function eg(e,t,r,n,a,o){r.some(e=>e._lazyPromises?.middleware)&&await Promise.all(r.map(e=>e._lazyPromises?.middleware));let i={request:t,params:r[0].params,context:a,matches:r},s=o?()=>{throw Error(“You cannot call `unstable_runClientMiddleware()` from a static handler `dataStrategy`. Middleware is run outside of `dataStrategy` during SSR in order to bubble up the Response. You can enable middleware via the `respond` API in `query`/`queryRoute`”)}:e=>{let t=!1;return eh(i,()=>(t=!0,e({…i,fetcherKey:n,unstable_runClientMiddleware:()=>{throw Error(“Cannot call `unstable_runClientMiddleware()` from within an `unstable_runClientMiddleware` handler”)}})),(e,n)=>ed(e,n,r,t))},l=await e({…i,fetcherKey:n,unstable_runClientMiddleware:s});try{await Promise.all(r.flatMap(e=>[e._lazyPromises?.handler,e._lazyPromises?.route]))}catch(e){}return l}async function ev({request:e,match:t,lazyHandlerPromise:r,lazyRoutePromise:n,handlerOverride:a,scopedContext:o}){let i,s,l=eM(e.method),u=l?”action”:”loader”,c=r=>{let n,i=new Promise((e,t)=>n=t);s=()=>n(),e.signal.addEventListener(“abort”,s);let l=n=>”function”!=typeof r?Promise.reject(Error(`You cannot call the handler for a route which defines a boolean “${u}” [routeId: ${t.route.id}]`)):r({request:e,params:t.params,context:o},…void 0!==n?[n]:[]);return Promise.race([(async()=>{try{let e=await (a?a(e=>l(e)):l());return{type:”data”,result:e}}catch(e){return{type:”error”,result:e}}})(),i])};try{let a=l?t.route.action:t.route.loader;if(r||n)if(a){let e,[t]=await Promise.all([c(a).catch(t=>{e=t}),r,n]);if(void 0!==e)throw e;i=t}else{await r;let a=l?t.route.action:t.route.loader;if(a)[i]=await Promise.all([c(a),n]);else{if(“action”!==u)return{type:”data”,result:void 0};let r=new URL(e.url),n=r.pathname+r.search;throw eP(405,{method:e.method,pathname:n,routeId:t.route.id})}}else if(a)i=await c(a);else{let t=new URL(e.url),r=t.pathname+t.search;throw eP(404,{pathname:r})}}catch(e){return{type:”error”,result:e}}finally{s&&e.signal.removeEventListener(“abort”,s)}return i}async function eb(e){let t=e.headers.get(“Content-Type”);return t&&/\bapplication\/json\b/.test(t)?null==e.body?null:e.json():e.text()}async function ew(e){let{result:t,type:r}=e;if(eI(t)){let e;try{e=await eb(t)}catch(e){return{type:”error”,error:e}}return”error”===r?{type:”error”,error:new W(t.status,t.statusText,e),statusCode:t.status,headers:t.headers}:{type:”data”,data:e,statusCode:t.status,headers:t.headers}}if(“error”===r)return eO(t)?t.data instanceof Error?{type:”error”,error:t.data,statusCode:t.init?.status,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:”error”,error:new W(t.init?.status||500,void 0,t.data),statusCode:z(t)?t.status:void 0,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:”error”,error:t,statusCode:z(t)?t.status:void 0};return eO(t)?{type:”data”,data:t.data,statusCode:t.init?.status,headers:t.init?.headers?new Headers(t.init.headers):void 0}:{type:”data”,data:t}}function eS(e,t,r){if(G(e)){let n=new URL(e.startsWith(“//”)?t.protocol+e:e),a=null!=L(n.pathname,r);if(n.origin===t.origin&&a)return n.pathname+n.search+n.hash}return e}function eR(e,t,r,n){let a=e.createURL(ej(t)).toString(),o={signal:r};if(n&&eM(n.formMethod)){let{formMethod:e,formEncType:t}=n;o.method=e.toUpperCase(),”application/json”===t?(o.headers=new Headers({“Content-Type”:t}),o.body=JSON.stringify(n.json)):”text/plain”===t?o.body=n.text:”application/x-www-form-urlencoded”===t&&n.formData?o.body=eE(n.formData):o.body=n.formData}return new Request(a,o)}function eE(e){let t=new URLSearchParams;for(let[r,n]of e.entries())t.append(r,”string”==typeof n?n:n.name);return t}function ex(e){let t=new FormData;for(let[r,n]of e.entries())t.append(r,n);return t}function eC(e,t,r,n,a,o){let{loaderData:i,errors:s}=function(e,t,r,n=!1,a=!1){let o,i={},s=null,l=!1,u={},d=r&&eT(r[1])?r[1].error:void 0;return e.forEach(r=>{if(!(r.route.id in t))return;let h=r.route.id,p=t[h];if(c(!eD(p),”Cannot handle redirect results in processLoaderData”),eT(p)){let t=p.error;if(void 0!==d&&(t=d,d=void 0),s=s||{},a)s[h]=t;else{let r=eN(e,h);null==s[r.route.id]&&(s[r.route.id]=t)}n||(i[h]=Z),l||(l=!0,o=z(p.error)?p.error.status:500),p.headers&&(u[h]=p.headers)}else i[h]=p.data,p.statusCode&&200!==p.statusCode&&!l&&(o=p.statusCode),p.headers&&(u[h]=p.headers)}),void 0!==d&&r&&(s={[r[0]]:d},r[2]&&(i[r[2]]=void 0)),{loaderData:i,errors:s,statusCode:o||200,loaderHeaders:u}}(t,r,n);return a.filter(e=>!e.matches||e.matches.some(e=>e.shouldLoad)).forEach(t=>{let{key:r,match:n,controller:a}=t;if(a&&a.signal.aborted)return;let i=o[r];if(c(i,”Did not find corresponding fetcher result”),eT(i)){let t=eN(e.matches,n?.route.id);s&&s[t.route.id]||(s={…s,[t.route.id]:i.error}),e.fetchers.delete(r)}else if(eD(i))c(!1,”Unhandled fetcher revalidation redirect”);else{let t=eF(i.data);e.fetchers.set(r,t)}}),{loaderData:i,errors:s}}function e_(e,t,r,n){let a=Object.entries(t).filter(([,e])=>e!==Z).reduce((e,[t,r])=>(e[t]=r,e),{});for(let o of r){let r=o.route.id;if(!t.hasOwnProperty(r)&&e.hasOwnProperty(r)&&o.route.loader&&(a[r]=e[r]),n&&n.hasOwnProperty(r))break}return a}function ek(e){return e?eT(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function eN(e,t){return(t?e.slice(0,e.findIndex(e=>e.route.id===t)+1):[…e]).reverse().find(e=>!0===e.route.hasErrorBoundary)||e[0]}function eL(e){let t=1===e.length?e[0]:e.find(e=>e.index||!e.path||”/”===e.path)||{id:”__shim-error-route__”};return{matches:[{params:{},pathname:””,pathnameBase:””,route:t}],route:t}}function eP(e,{pathname:t,routeId:r,method:n,type:a,message:o}={}){let i=”Unknown Server Error”,s=”Unknown @remix-run/router error”;return 400===e?(i=”Bad Request”,n&&t&&r?s=`You made a ${n} request to “${t}” but did not provide a \`loader\` for route “${r}”, so there is no way to handle the request.`:”invalid-body”===a&&(s=”Unable to encode submission body”)):403===e?(i=”Forbidden”,s=`Route “${r}” does not match URL “${t}”`):404===e?(i=”Not Found”,s=`No route matches URL “${t}”`):405===e&&(i=”Method Not Allowed”,n&&t&&r?s=`You made a ${n.toUpperCase()} request to “${t}” but did not provide an \`action\` for route “${r}”, so there is no way to handle the request.`:n&&(s=`Invalid request method “${n.toUpperCase()}”`)),new W(e||500,i,Error(s),!0)}function eA(e){let t=Object.entries(e);for(let e=t.length-1;e>=0;e–){let[r,n]=t[e];if(eD(n))return{key:r,result:n}}}function ej(e){return f({…”string”==typeof e?m(e):e,hash:””})}function eT(e){return”error”===e.type}function eD(e){return”redirect”===(e&&e.type)}function eO(e){return”object”==typeof e&&null!=e&&”type”in e&&”data”in e&&”init”in e&&”DataWithResponseInit”===e.type}function eI(e){return null!=e&&”number”==typeof e.status&&”string”==typeof e.statusText&&”object”==typeof e.headers&&void 0!==e.body}function eM(e){return B.has(e.toUpperCase())}function e$(e){return new URLSearchParams(e).getAll(“index”).some(e=>””===e)}function eW(e,t){let r=”string”==typeof t?m(t).search:t.search;if(e[e.length-1].route.index&&e$(r||””))return e[e.length-1];let n=j(e);return n[n.length-1]}function ez(e){let{formMethod:t,formAction:r,formEncType:n,text:a,formData:o,json:i}=e;if(t&&r&&n){if(null!=a)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:void 0,text:a};else if(null!=o)return{formMethod:t,formAction:r,formEncType:n,formData:o,json:void 0,text:void 0};else if(void 0!==i)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:i,text:void 0}}}function eU(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 eB(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 eF(e){return{state:”idle”,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}var eH=a.createContext(null);eH.displayName=”DataRouter”;var eq=a.createContext(null);eq.displayName=”DataRouterState”;var eY=a.createContext(!1),eV=a.createContext({isTransitioning:!1});eV.displayName=”ViewTransition”;var eJ=a.createContext(new Map);eJ.displayName=”Fetchers”,a.createContext(null).displayName=”Await”;var eX=a.createContext(null);eX.displayName=”Navigation”;var eG=a.createContext(null);eG.displayName=”Location”;var eQ=a.createContext({outlet:null,matches:[],isDataRoute:!1});eQ.displayName=”Route”;var eK=a.createContext(null);function eZ(){return null!=a.useContext(eG)}function e0(){return c(eZ(),”useLocation() may be used only in the context of a component.”),a.useContext(eG).location}function e1(){return a.useContext(eG).navigationType}function e2(e){c(eZ(),”useMatch() may be used only in the context of a component.”);let{pathname:t}=e0();return a.useMemo(()=>k(e,N(t)),[t,e])}eK.displayName=”RouteError”;var e4=”You should call navigate() in a React.useEffect(), not when your component is first rendered.”;function e3(e){a.useContext(eX).static||a.useLayoutEffect(e)}function e5(){let{isDataRoute:e}=a.useContext(eQ);return e?function(){let{router:e}=to(“useNavigate”),t=ts(“useNavigate”),r=a.useRef(!1);return e3(()=>{r.current=!0}),a.useCallback(async(n,a={})=>{d(r.current,e4),r.current&&(“number”==typeof n?e.navigate(n):await e.navigate(n,{fromRouteId:t,…a}))},[e,t])}():function(){c(eZ(),”useNavigate() may be used only in the context of a component.”);let e=a.useContext(eH),{basename:t,navigator:r}=a.useContext(eX),{matches:n}=a.useContext(eQ),{pathname:o}=e0(),i=JSON.stringify(T(n)),s=a.useRef(!1);return e3(()=>{s.current=!0}),a.useCallback((n,a={})=>{if(d(s.current,e4),!s.current)return;if(“number”==typeof n)return void r.go(n);let l=D(n,JSON.parse(i),o,”path”===a.relative);null==e&&”/”!==t&&(l.pathname=”/”===l.pathname?t:O([t,l.pathname])),(a.replace?r.replace:r.push)(l,a.state,a)},[t,r,i,o,e])}()}var e8=a.createContext(null);function e6(){let{matches:e}=a.useContext(eQ),t=e[e.length-1];return t?t.params:{}}function e7(e,{relative:t}={}){let{matches:r}=a.useContext(eQ),{pathname:n}=e0(),o=JSON.stringify(T(r));return a.useMemo(()=>D(e,JSON.parse(o),n,”path”===t),[e,o,n,t])}function e9(e,t){return te(e,t)}function te(e,t,r,n){let o;c(eZ(),”useRoutes() may be used only in the context of a component.”);let{navigator:i}=a.useContext(eX),{matches:s}=a.useContext(eQ),l=s[s.length-1],u=l?l.params:{},h=l?l.pathname:”/”,p=l?l.pathnameBase:”/”,f=l&&l.route;{let e=f&&f.path||””;ty(h,!f||e.endsWith(“*”)||e.endsWith(“*?”),`You rendered descendant (or called \`useRoutes()\`) at “${h}” (under ) but the parent route path has no trailing “*”. This means if you navigate deeper, the parent won’t match anymore and therefore the child routes will never render. Please change the parent to .`)}let y=e0();if(t){let e=”string”==typeof t?m(t):t;c(“/”===p||e.pathname?.startsWith(p),`When overriding the location using \`\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is “${p}” but pathname “${e.pathname}” was given in the \`location\` prop.`),o=e}else o=y;let g=o.pathname||”/”,v=g;if(“/”!==p){let e=p.replace(/^\//,””).split(“/”);v=”/”+g.replace(/^\//,””).split(“/”).slice(e.length).join(“/”)}let b=S(e,{pathname:v});d(f||null!=b,`No routes matched location “${o.pathname}${o.search}${o.hash}” `),d(null==b||void 0!==b[b.length-1].route.element||void 0!==b[b.length-1].route.Component||void 0!==b[b.length-1].route.lazy,`Matched leaf route at location “${o.pathname}${o.search}${o.hash}” does not have an element or Component. This means it will render an with a null value by default resulting in an “empty” page.`);let w=function(e,t=[],r=null,n=null){if(null==e){if(!r)return null;if(r.errors)e=r.matches;else{if(0!==t.length||r.initialized||!(r.matches.length>0))return null;e=r.matches}}let o=e,i=r?.errors;if(null!=i){let e=o.findIndex(e=>e.route.id&&i?.[e.route.id]!==void 0);c(e>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(i).join(“,”)}`),o=o.slice(0,Math.min(o.length,e+1))}let s=!1,l=-1;if(r)for(let e=0;e=0?o.slice(0,l+1):[o[0]];break}}}return o.reduceRight((e,n,u)=>{let c,d=!1,h=null,p=null;r&&(c=i&&n.route.id?i[n.route.id]:void 0,h=n.route.errorElement||tt,s&&(l<0&&0===u?(ty("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),d=!0,p=null):l===u&&(d=!0,p=n.route.hydrateFallbackElement||null)));let f=t.concat(o.slice(0,u+1)),m=()=>{let t;return t=c?h:d?p:n.route.Component?a.createElement(n.route.Component,null):n.route.element?n.route.element:e,a.createElement(tn,{match:n,routeContext:{outlet:e,matches:f,isDataRoute:null!=r},children:t})};return r&&(n.route.ErrorBoundary||n.route.errorElement||0===u)?a.createElement(tr,{location:r.location,revalidation:r.revalidation,component:h,error:c,children:m(),routeContext:{outlet:null,matches:f,isDataRoute:!0}}):m()},null)}(b&&b.map(e=>Object.assign({},e,{params:Object.assign({},u,e.params),pathname:O([p,i.encodeLocation?i.encodeLocation(e.pathname).pathname:e.pathname]),pathnameBase:”/”===e.pathnameBase?p:O([p,i.encodeLocation?i.encodeLocation(e.pathnameBase).pathname:e.pathnameBase])})),s,r,n);return t&&w?a.createElement(eG.Provider,{value:{location:{pathname:”/”,search:””,hash:””,state:null,key:”default”,…o},navigationType:”POP”}},w):w}var tt=a.createElement(function(){let e=th(),t=z(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null,n=”rgba(200,200,200, 0.5)”,o={padding:”2px 4px”,backgroundColor:n},i=null;return console.error(“Error handled by React Router default ErrorBoundary:”,e),i=a.createElement(a.Fragment,null,a.createElement(“p”,null,”\u{1F4BF} Hey developer \u{1F44B}”),a.createElement(“p”,null,”You can provide a way better UX than this when your app throws errors by providing your own “,a.createElement(“code”,{style:o},”ErrorBoundary”),” or”,” “,a.createElement(“code”,{style:o},”errorElement”),” prop on your route.”)),a.createElement(a.Fragment,null,a.createElement(“h2″,null,”Unexpected Application Error!”),a.createElement(“h3″,{style:{fontStyle:”italic”}},t),r?a.createElement(“pre”,{style:{padding:”0.5rem”,backgroundColor:n}},r):null,i)},null),tr=class extends a.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||”idle”!==t.revalidation&&”idle”===e.revalidation?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:void 0!==e.error?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){console.error(“React Router caught the following error during render”,e,t)}render(){return void 0!==this.state.error?a.createElement(eQ.Provider,{value:this.props.routeContext},a.createElement(eK.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};function tn({routeContext:e,match:t,children:r}){let n=a.useContext(eH);return n&&n.static&&n.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(n.staticContext._deepestRenderedBoundaryId=t.route.id),a.createElement(eQ.Provider,{value:e},r)}function ta(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function to(e){let t=a.useContext(eH);return c(t,ta(e)),t}function ti(e){let t=a.useContext(eq);return c(t,ta(e)),t}function ts(e){let t,r=(c(t=a.useContext(eQ),ta(e)),t),n=r.matches[r.matches.length-1];return c(n.route.id,`${e} can only be used on routes that contain a unique “id”`),n.route.id}function tl(){return ti(“useNavigation”).navigation}function tu(){let{matches:e,loaderData:t}=ti(“useMatches”);return a.useMemo(()=>e.map(e=>E(e,t)),[e,t])}function tc(){let e=ti(“useLoaderData”),t=ts(“useLoaderData”);return e.loaderData[t]}function td(e){return ti(“useRouteLoaderData”).loaderData[e]}function th(){let e=a.useContext(eK),t=ti(“useRouteError”),r=ts(“useRouteError”);return void 0!==e?e:t.errors?.[r]}var tp=0;function tf(e){let{router:t,basename:r}=to(“useBlocker”),n=ti(“useBlocker”),[o,i]=a.useState(“”),s=a.useCallback(t=>{if(“function”!=typeof e)return!!e;if(“/”===r)return e(t);let{currentLocation:n,nextLocation:a,historyAction:o}=t;return e({currentLocation:{…n,pathname:L(n.pathname,r)||n.pathname},nextLocation:{…a,pathname:L(a.pathname,r)||a.pathname},historyAction:o})},[r,e]);return a.useEffect(()=>{let e=String(++tp);return i(e),()=>t.deleteBlocker(e)},[t]),a.useEffect(()=>{“”!==o&&t.getBlocker(o,s)},[t,o,s]),o&&n.blockers.has(o)?n.blockers.get(o):J}var tm={};function ty(e,t,r){t||tm[e]||(tm[e]=!0,d(!1,r))}var tg={};function tv(e,t){e||tg[t]||(tg[t]=!0,console.warn(t))}function tb(e){let t={hasErrorBoundary:e.hasErrorBoundary||null!=e.ErrorBoundary||null!=e.errorElement};return e.Component&&(e.element&&d(!1,”You should not include both `Component` and `element` on your route – `Component` will be used.”),Object.assign(t,{element:a.createElement(e.Component),Component:void 0})),e.HydrateFallback&&(e.hydrateFallbackElement&&d(!1,”You should not include both `HydrateFallback` and `hydrateFallbackElement` on your route – `HydrateFallback` will be used.”),Object.assign(t,{hydrateFallbackElement:a.createElement(e.HydrateFallback),HydrateFallback:void 0})),e.ErrorBoundary&&(e.errorElement&&d(!1,”You should not include both `ErrorBoundary` and `errorElement` on your route – `ErrorBoundary` will be used.”),Object.assign(t,{errorElement:a.createElement(e.ErrorBoundary),ErrorBoundary:void 0})),t}var tw=[“HydrateFallback”,”hydrateFallbackElement”],tS=class{constructor(){this.status=”pending”,this.promise=new Promise((e,t)=>{this.resolve=t=>{“pending”===this.status&&(this.status=”resolved”,e(t))},this.reject=e=>{“pending”===this.status&&(this.status=”rejected”,t(e))}})}};function tR({router:e,flushSync:t}){let[r,n]=a.useState(e.state),[o,i]=a.useState(),[s,l]=a.useState({isTransitioning:!1}),[u,c]=a.useState(),[d,h]=a.useState(),[p,f]=a.useState(),m=a.useRef(new Map),y=a.useCallback((r,{deletedFetchers:o,flushSync:s,viewTransitionOpts:p})=>{r.fetchers.forEach((e,t)=>{void 0!==e.data&&m.current.set(t,e.data)}),o.forEach(e=>m.current.delete(e)),tv(!1===s||null!=t,’You provided the `flushSync` option to a router update, but you are not using the `` from `react-router/dom` so `ReactDOM.flushSync()` is unavailable. Please update your app to `import { RouterProvider } from “react-router/dom”` and ensure you have `react-dom` installed as a dependency to use the `flushSync` option.’);let y=null!=e.window&&null!=e.window.document&&”function”==typeof e.window.document.startViewTransition;if(tv(null==p||y,”You provided the `viewTransition` option to a router update, but you do not appear to be running in a DOM environment as `window.startViewTransition` is not available.”),!p||!y)return void(t&&s?t(()=>n(r)):a.startTransition(()=>n(r)));if(t&&s){t(()=>{d&&(u&&u.resolve(),d.skipTransition()),l({isTransitioning:!0,flushSync:!0,currentLocation:p.currentLocation,nextLocation:p.nextLocation})});let a=e.window.document.startViewTransition(()=>{t(()=>n(r))});a.finished.finally(()=>{t(()=>{c(void 0),h(void 0),i(void 0),l({isTransitioning:!1})})}),t(()=>h(a));return}d?(u&&u.resolve(),d.skipTransition(),f({state:r,currentLocation:p.currentLocation,nextLocation:p.nextLocation})):(i(r),l({isTransitioning:!0,flushSync:!1,currentLocation:p.currentLocation,nextLocation:p.nextLocation}))},[e.window,t,d,u]);a.useLayoutEffect(()=>e.subscribe(y),[e,y]),a.useEffect(()=>{s.isTransitioning&&!s.flushSync&&c(new tS)},[s]),a.useEffect(()=>{if(u&&o&&e.window){let t=u.promise,r=e.window.document.startViewTransition(async()=>{a.startTransition(()=>n(o)),await t});r.finished.finally(()=>{c(void 0),h(void 0),i(void 0),l({isTransitioning:!1})}),h(r)}},[o,u,e.window]),a.useEffect(()=>{u&&o&&r.location.key===o.location.key&&u.resolve()},[u,d,r.location,o]),a.useEffect(()=>{!s.isTransitioning&&p&&(i(p.state),l({isTransitioning:!0,flushSync:!1,currentLocation:p.currentLocation,nextLocation:p.nextLocation}),f(void 0))},[s.isTransitioning,p]);let g=a.useMemo(()=>({createHref:e.createHref,encodeLocation:e.encodeLocation,go:t=>e.navigate(t),push:(t,r,n)=>e.navigate(t,{state:r,preventScrollReset:n?.preventScrollReset}),replace:(t,r,n)=>e.navigate(t,{replace:!0,state:r,preventScrollReset:n?.preventScrollReset})}),[e]),v=e.basename||”/”,b=a.useMemo(()=>({router:e,navigator:g,static:!1,basename:v}),[e,g,v]);return a.createElement(a.Fragment,null,a.createElement(eH.Provider,{value:b},a.createElement(eq.Provider,{value:r},a.createElement(eJ.Provider,{value:m.current},a.createElement(eV.Provider,{value:s},a.createElement(tk,{basename:v,location:r.location,navigationType:r.historyAction,navigator:g},a.createElement(tE,{routes:e.routes,future:e.future,state:r})))))),null)}var tE=a.memo(function({routes:e,future:t,state:r}){return te(e,void 0,r,t)});function tx({to:e,replace:t,state:r,relative:n}){c(eZ(),” may be used only in the context of a component.”);let{static:o}=a.useContext(eX);d(!o,” must not be used on the initial render in a . This is a no-op, but you should modify your code so the is only ever rendered in response to some user interaction or state change.”);let{matches:i}=a.useContext(eQ),{pathname:s}=e0(),l=e5(),u=JSON.stringify(D(e,T(i),s,”path”===n));return a.useEffect(()=>{l(JSON.parse(u),{replace:t,state:r,relative:n})},[l,u,n,t,r]),null}function tC(e){var t;let r;return t=e.context,(r=a.useContext(eQ).outlet)?a.createElement(e8.Provider,{value:t},r):r}function t_(e){c(!1,”A is only ever to be used as the child of element, never rendered directly. Please wrap your in a .”)}function tk({basename:e=”/”,children:t=null,location:r,navigationType:n=”POP”,navigator:o,static:i=!1}){c(!eZ(),”You cannot render a inside another . You should never have more than one in your app.”);let s=e.replace(/^\/*/,”/”),l=a.useMemo(()=>({basename:s,navigator:o,static:i,future:{}}),[s,o,i]);”string”==typeof r&&(r=m(r));let{pathname:u=”/”,search:h=””,hash:p=””,state:f=null,key:y=”default”}=r,g=a.useMemo(()=>{let e=L(u,s);return null==e?null:{location:{pathname:e,search:h,hash:p,state:f,key:y},navigationType:n}},[s,u,h,p,f,y,n]);return(d(null!=g,` is not able to match the URL “${u}${h}${p}” because it does not start with the basename, so the won’t render anything.`),null==g)?null:a.createElement(eX.Provider,{value:l},a.createElement(eG.Provider,{children:t,value:g}))}function tN({children:e,location:t}){return te(function e(t,r=[]){let n=[];return a.Children.forEach(t,(t,o)=>{if(!a.isValidElement(t))return;let i=[…r,o];if(t.type===a.Fragment)return void n.push.apply(n,e(t.props.children,i));c(t.type===t_,`[${“string”==typeof t.type?t.type:t.type.name}] is not a component. All component children of must be a or `),c(!t.props.index||!t.props.children,”An index route cannot have child routes.”);let s={id:t.props.id||i.join(“-“),caseSensitive:t.props.caseSensitive,element:t.props.element,Component:t.props.Component,index:t.props.index,path:t.props.path,loader:t.props.loader,action:t.props.action,hydrateFallbackElement:t.props.hydrateFallbackElement,HydrateFallback:t.props.HydrateFallback,errorElement:t.props.errorElement,ErrorBoundary:t.props.ErrorBoundary,hasErrorBoundary:!0===t.props.hasErrorBoundary||null!=t.props.ErrorBoundary||null!=t.props.errorElement,shouldRevalidate:t.props.shouldRevalidate,handle:t.props.handle,lazy:t.props.lazy};t.props.children&&(s.children=e(t.props.children,i)),n.push(s)}),n}(e),t)}a.Component;var tL=”get”,tP=”application/x-www-form-urlencoded”;function tA(e){return null!=e&&”string”==typeof e.tagName}function tj(e=””){return new URLSearchParams(“string”==typeof e||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(e=>[r,e]):[[r,n]])},[]))}var tT=null,tD=new Set([“application/x-www-form-urlencoded”,”multipart/form-data”,”text/plain”]);function tO(e){return null==e||tD.has(e)?e:(d(!1,`”${e}” is not a valid \`encType\` for \`
\`/\`\` and will default to “${tP}”`),null)}function tI(e,t){if(!1===e||null==e)throw Error(t)}async function tM(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(t){return console.error(`Error loading route module \`${e.module}\`, reloading page…`),console.error(t),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function t$(e){return null!=e&&(null==e.href?”preload”===e.rel&&”string”==typeof e.imageSrcSet&&”string”==typeof e.imageSizes:”string”==typeof e.rel&&”string”==typeof e.href)}async function tW(e,t,r){var n,a;let o,i;return n=(await Promise.all(e.map(async e=>{let n=t.routes[e.route.id];if(n){let e=await tM(n,r);return e.links?e.links():[]}return[]}))).flat(1).filter(t$).filter(e=>”stylesheet”===e.rel||”preload”===e.rel).map(e=>”stylesheet”===e.rel?{…e,rel:”prefetch”,as:”style”}:{…e,rel:”prefetch”}),o=new Set,i=new Set(void 0),n.reduce((e,t)=>{if(a&&(null==t||”string”!=typeof t.page)&&”script”===t.as&&t.href&&i.has(t.href))return e;let r=JSON.stringify(function(e){let t={};for(let r of Object.keys(e).sort())t[r]=e[r];return t}(t));return o.has(r)||(o.add(r),e.push({key:r,link:t})),e},[])}function tz(e,t,r,n,a,o){let i=(e,t)=>!r[t]||e.route.id!==r[t].route.id,s=(e,t)=>r[t].pathname!==e.pathname||r[t].route.path?.endsWith(“*”)&&r[t].params[“*”]!==e.params[“*”];return”assets”===o?t.filter((e,t)=>i(e,t)||s(e,t)):”data”===o?t.filter((t,o)=>{let l=n.routes[t.route.id];if(!l||!l.hasLoader)return!1;if(i(t,o)||s(t,o))return!0;if(t.route.shouldRevalidate){let n=t.route.shouldRevalidate({currentUrl:new URL(a.pathname+a.search+a.hash,window.origin),currentParams:r[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:t.params,defaultShouldRevalidate:!0});if(“boolean”==typeof n)return n}return!0}):[]}function tU(e,t,{includeHydrateFallback:r}={}){return[…new Set(e.map(e=>{let n=t.routes[e.route.id];if(!n)return[];let a=[n.module];return n.clientActionModule&&(a=a.concat(n.clientActionModule)),n.clientLoaderModule&&(a=a.concat(n.clientLoaderModule)),r&&n.hydrateFallbackModule&&(a=a.concat(n.hydrateFallbackModule)),n.imports&&(a=a.concat(n.imports)),a}).flat(1))]}function tB(){let e=a.useContext(eH);return tI(e,”You must render this element inside a element”),e}function tF(){let e=a.useContext(eq);return tI(e,”You must render this element inside a element”),e}Object.getOwnPropertyNames(Object.prototype).sort().join(“\0″),”undefined”!=typeof window&&window,Symbol(“SingleFetchRedirect”);var tH=a.createContext(void 0);function tq(){let e=a.useContext(tH);return tI(e,”You must render this element inside a element”),e}function tY(e,t){return r=>{e&&e(r),r.defaultPrevented||t(r)}}function tV({page:e,…t}){let{router:r}=tB(),n=a.useMemo(()=>S(r.routes,e,r.basename),[r.routes,e,r.basename]);return n?a.createElement(tJ,{page:e,matches:n,…t}):null}function tJ({page:e,matches:t,…r}){let n=e0(),{manifest:o,routeModules:i}=tq(),{basename:s}=tB(),{loaderData:l,matches:u}=tF(),c=a.useMemo(()=>tz(e,t,u,o,n,”data”),[e,t,u,o,n]),d=a.useMemo(()=>tz(e,t,u,o,n,”assets”),[e,t,u,o,n]),h=a.useMemo(()=>{var r;let a;if(e===n.pathname+n.search+n.hash)return[];let u=new Set,d=!1;if(t.forEach(e=>{let t=o.routes[e.route.id];t&&t.hasLoader&&(!c.some(t=>t.route.id===e.route.id)&&e.route.id in l&&i[e.route.id]?.shouldRevalidate||t.hasClientLoader?d=!0:u.add(e.route.id))}),0===u.size)return[];let h=(r=”data”,”/”===(a=”string”==typeof e?new URL(e,”undefined”==typeof window?”server://singlefetch/”:window.location.origin):e).pathname?a.pathname=`_root.${r}`:s&&”/”===L(a.pathname,s)?a.pathname=`${s.replace(/\/$/,””)}/_root.${r}`:a.pathname=`${a.pathname.replace(/\/$/,””)}.${r}`,a);return d&&u.size>0&&h.searchParams.set(“_routes”,t.filter(e=>u.has(e.route.id)).map(e=>e.route.id).join(“,”)),[h.pathname+h.search]},[s,l,n,o,c,t,e,i]),p=a.useMemo(()=>tU(d,o),[d,o]),f=function(e){let{manifest:t,routeModules:r}=tq(),[n,o]=a.useState([]);return a.useEffect(()=>{let n=!1;return tW(e,t,r).then(e=>{n||o(e)}),()=>{n=!0}},[e,t,r]),n}(d);return a.createElement(a.Fragment,null,h.map(e=>a.createElement(“link”,{key:e,rel:”prefetch”,as:”fetch”,href:e,…r})),p.map(e=>a.createElement(“link”,{key:e,rel:”modulepreload”,href:e,…r})),f.map(({key:e,link:t})=>a.createElement(“link”,{key:e,nonce:r.nonce,…t})))}tH.displayName=”FrameworkContext”;a.Component;var tX=”undefined”!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement;try{tX&&(window.__reactRouterVersion=”7.8.1″)}catch(e){}function tG(e,t){let r;return(function(e){let t,r,n,a,o,i=e.window?e.window:”undefined”!=typeof window?window:void 0,s=void 0!==i&&void 0!==i.document&&void 0!==i.document.createElement;c(e.routes.length>0,”You must provide a non-empty routes array to createRouter”);let l=e.hydrationRouteProperties||[],u=e.mapRouteProperties||Q,h={},f=w(e.routes,u,void 0,h),m=e.basename||”/”,v=e.dataStrategy||ec,b={unstable_middleware:!1,…e.future},x=null,C=new Set,_=null,k=null,N=null,P=null!=e.hydrationData,A=S(f,e.history.location,m),j=!1,T=null;if(null!=A||e.patchRoutesOnNavigation)if(A&&!e.hydrationData&&e7(A,f,e.history.location.pathname).active&&(A=null),A)if(A.some(e=>e.route.lazy))r=!1;else if(A.some(e=>e.route.loader)){let t=e.hydrationData?e.hydrationData.loaderData:null,n=e.hydrationData?e.hydrationData.errors:null;if(n){let e=A.findIndex(e=>void 0!==n[e.route.id]);r=A.slice(0,e+1).every(e=>!en(e.route,t,n))}else r=A.every(e=>!en(e.route,t,n))}else r=!0;else{r=!1,A=[];let t=e7(null,f,e.history.location.pathname);t.active&&t.matches&&(j=!0,A=t.matches)}else{let t=eP(404,{pathname:e.history.location.pathname}),{matches:n,route:a}=eL(f);r=!0,A=n,T={[a.id]:t}}let D={historyAction:e.history.action,location:e.history.location,matches:A,initialized:r,navigation:Y,restoreScrollPosition:null==e.hydrationData&&null,preventScrollReset:!1,revalidation:”idle”,loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||T,fetchers:new Map,blockers:new Map},O=”POP”,I=!1,M=!1,$=new Map,W=null,U=!1,B=!1,F=new Set,X=new Map,Z=0,ea=-1,ei=new Map,es=new Set,el=new Map,eu=new Map,ed=new Set,eh=new Map,ep=null;function ef(e,t={}){e.matches&&(e.matches=e.matches.map(e=>{let t=h[e.route.id],r=e.route;return r.element!==t.element||r.errorElement!==t.errorElement||r.hydrateFallbackElement!==t.hydrateFallbackElement?{…e,route:t}:e}));let r=[],n=[];(D={…D,…e}).fetchers.forEach((e,t)=>{“idle”===e.state&&(ed.has(t)?r.push(t):n.push(t))}),ed.forEach(e=>{D.fetchers.has(e)||X.has(e)||r.push(e)}),[…C].forEach(e=>e(D,{deletedFetchers:r,viewTransitionOpts:t.viewTransitionOpts,flushSync:!0===t.flushSync})),r.forEach(e=>eQ(e)),n.forEach(e=>D.fetchers.delete(e))}function em(r,n,{flushSync:a}={}){let o,i,s=null!=D.actionData&&null!=D.navigation.formMethod&&eM(D.navigation.formMethod)&&”loading”===D.navigation.state&&r.state?._isRedirect!==!0;o=n.actionData?Object.keys(n.actionData).length>0?n.actionData:null:s?D.actionData:null;let l=n.loaderData?e_(D.loaderData,n.loaderData,n.matches||[],n.errors):D.loaderData,u=D.blockers;u.size>0&&(u=new Map(u)).forEach((e,t)=>u.set(t,J));let c=!U&&e6(r,n.matches||D.matches),d=!0===I||null!=D.navigation.formMethod&&eM(D.navigation.formMethod)&&r.state?._isRedirect!==!0;if(t&&(f=t,t=void 0),U||”POP”===O||(“PUSH”===O?e.history.push(r,r.state):”REPLACE”===O&&e.history.replace(r,r.state)),”POP”===O){let e=$.get(D.location.pathname);e&&e.has(r.pathname)?i={currentLocation:D.location,nextLocation:r}:$.has(r.pathname)&&(i={currentLocation:r,nextLocation:D.location})}else if(M){let e=$.get(D.location.pathname);e?e.add(r.pathname):(e=new Set([r.pathname]),$.set(D.location.pathname,e)),i={currentLocation:D.location,nextLocation:r}}ef({…n,actionData:o,loaderData:l,historyAction:O,location:r,initialized:!0,navigation:Y,revalidation:”idle”,restoreScrollPosition:c,preventScrollReset:d,blockers:u},{viewTransitionOpts:i,flushSync:!0===a}),O=”POP”,I=!1,M=!1,U=!1,B=!1,ep?.resolve(),ep=null}async function ev(t,r){if(“number”==typeof t)return void e.history.go(t);let{path:n,submission:a,error:o}=et(!1,ee(D.location,D.matches,m,t,r?.fromRouteId,r?.relative),r),i=D.location,s=p(D.location,n,r&&r.state);s={…s,…e.history.encodeLocation(s)};let l=r&&null!=r.replace?r.replace:void 0,u=”PUSH”;!0===l?u=”REPLACE”:!1===l||null!=a&&eM(a.formMethod)&&a.formAction===D.location.pathname+D.location.search&&(u=”REPLACE”);let c=r&&”preventScrollReset”in r?!0===r.preventScrollReset:void 0,d=!0===(r&&r.flushSync),h=e3({currentLocation:i,nextLocation:s,historyAction:u});if(h)return void e4(h,{state:”blocked”,location:s,proceed(){e4(h,{state:”proceeding”,proceed:void 0,reset:void 0,location:s}),ev(t,r)},reset(){let e=new Map(D.blockers);e.set(h,J),ef({blockers:e})}});await eb(u,s,{submission:a,pendingError:o,preventScrollReset:c,replace:r&&r.replace,enableViewTransition:r&&r.viewTransition,flushSync:d})}async function eb(r,n,o){var i,s,l,u;let c;a&&a.abort(),a=null,O=r,U=!0===(o&&o.startUninterruptedRevalidation),i=D.location,s=D.matches,_&&N&&(_[e8(i,s)]=N()),I=!0===(o&&o.preventScrollReset),M=!0===(o&&o.enableViewTransition);let d=t||f,h=o&&o.overrideNavigation,p=o?.initialHydration&&D.matches&&D.matches.length>0&&!j?D.matches:S(d,n,m),y=!0===(o&&o.flushSync);if(p&&D.initialized&&!B&&(l=D.location,u=n,l.pathname===u.pathname&&l.search===u.search&&(“”===l.hash?””!==u.hash:l.hash===u.hash||””!==u.hash||!1))&&!(o&&o.submission&&eM(o.submission.formMethod)))return void em(n,{matches:p},{flushSync:y});let v=e7(p,d,n.pathname);if(v.active&&v.matches&&(p=v.matches),!p){let{error:e,notFoundMatches:t,route:r}=e5(n.pathname);em(n,{matches:t,loaderData:{},errors:{[r.id]:e}},{flushSync:y});return}a=new AbortController;let b=eR(e.history,n,a.signal,o&&o.submission),w=e.unstable_getContext?await e.unstable_getContext():new g;if(o&&o.pendingError)c=[eN(p).route.id,{type:”error”,error:o.pendingError}];else if(o&&o.submission&&eM(o.submission.formMethod)){let t=await eE(b,n,o.submission,p,w,v.active,o&&!0===o.initialHydration,{replace:o.replace,flushSync:y});if(t.shortCircuited)return;if(t.pendingActionResult){let[e,r]=t.pendingActionResult;if(eT(r)&&z(r.error)&&404===r.error.status){a=null,em(n,{matches:t.matches,loaderData:{},errors:{[e]:r.error}});return}}p=t.matches||p,c=t.pendingActionResult,h=eU(n,o.submission),y=!1,v.active=!1,b=eR(e.history,b.url,b.signal)}let{shortCircuited:R,matches:E,loaderData:x,errors:C}=await ex(b,n,p,w,v.active,h,o&&o.submission,o&&o.fetcherSubmission,o&&o.replace,o&&!0===o.initialHydration,y,c);R||(a=null,em(n,{matches:E||p,…ek(c),loaderData:x,errors:C}))}async function eE(e,t,r,n,a,o,i,s={}){var c;let d;if(eV(),ef({navigation:{state:”submitting”,location:t,formMethod:(c=r).formMethod,formAction:c.formAction,formEncType:c.formEncType,formData:c.formData,json:c.json,text:c.text}},{flushSync:!0===s.flushSync}),o){let r=await e9(n,t.pathname,e.signal);if(“aborted”===r.type)return{shortCircuited:!0};if(“error”===r.type){let e=eN(r.partialMatches).route.id;return{matches:r.partialMatches,pendingActionResult:[e,{type:”error”,error:r.error}]}}if(r.matches)n=r.matches;else{let{notFoundMatches:e,error:r,route:n}=e5(t.pathname);return{matches:e,pendingActionResult:[n.id,{type:”error”,error:r}]}}}let p=eW(n,t);if(p.route.action||p.route.lazy){let t=ey(u,h,e,n,p,i?[]:l,a),r=await eq(e,t,a,null);if(!(d=r[p.route.id])){for(let e of n)if(r[e.route.id]){d=r[e.route.id];break}}if(e.signal.aborted)return{shortCircuited:!0}}else d={type:”error”,error:eP(405,{method:e.method,pathname:t.pathname,routeId:p.route.id})};if(eD(d)){let t;return t=s&&null!=s.replace?s.replace:eS(d.response.headers.get(“Location”),new URL(e.url),m)===D.location.pathname+D.location.search,await eH(e,d,!0,{submission:r,replace:t}),{shortCircuited:!0}}if(eT(d)){let e=eN(n,p.route.id);return!0!==(s&&s.replace)&&(O=”PUSH”),{matches:n,pendingActionResult:[e.route.id,d,p.route.id]}}return{matches:n,pendingActionResult:[p.route.id,d]}}async function ex(r,n,o,i,s,c,d,p,y,g,v,b){let w=c||eU(n,d),S=d||p||ez(w),R=!U&&!g;if(s){if(R){let e=ej(b);ef({navigation:w,…void 0!==e?{actionData:e}:{}},{flushSync:v})}let e=await e9(o,n.pathname,r.signal);if(“aborted”===e.type)return{shortCircuited:!0};if(“error”===e.type){let t=eN(e.partialMatches).route.id;return{matches:e.partialMatches,loaderData:{},errors:{[t]:e.error}}}if(e.matches)o=e.matches;else{let{error:e,notFoundMatches:t,route:r}=e5(n.pathname);return{matches:t,loaderData:{},errors:{[r.id]:e}}}}let E=t||f,{dsMatches:x,revalidatingFetchers:C}=er(r,i,u,h,e.history,D,o,S,n,g?[]:l,!0===g,B,F,ed,el,es,E,m,null!=e.patchRoutesOnNavigation,b);if(ea=++Z,!e.dataStrategy&&!x.some(e=>e.shouldLoad)&&!x.some(e=>e.route.unstable_middleware)&&0===C.length){let e=e0();return em(n,{matches:o,loaderData:{},errors:b&&eT(b[1])?{[b[0]]:b[1].error}:null,…ek(b),…e?{fetchers:new Map(D.fetchers)}:{}},{flushSync:v}),{shortCircuited:!0}}if(R){let e={};if(!s){e.navigation=w;let t=ej(b);void 0!==t&&(e.actionData=t)}C.length>0&&(C.forEach(e=>{let t=D.fetchers.get(e.key),r=eB(void 0,t?t.data:void 0);D.fetchers.set(e.key,r)}),e.fetchers=new Map(D.fetchers)),ef(e,{flushSync:v})}C.forEach(e=>{eK(e.key),e.controller&&X.set(e.key,e.controller)});let _=()=>C.forEach(e=>eK(e.key));a&&a.signal.addEventListener(“abort”,_);let{loaderResults:k,fetcherResults:N}=await eY(x,C,r,i);if(r.signal.aborted)return{shortCircuited:!0};a&&a.signal.removeEventListener(“abort”,_),C.forEach(e=>X.delete(e.key));let L=eA(k);if(L)return await eH(r,L.result,!0,{replace:y}),{shortCircuited:!0};if(L=eA(N))return es.add(L.key),await eH(r,L.result,!0,{replace:y}),{shortCircuited:!0};let{loaderData:P,errors:A}=eC(D,o,k,b,C,N);g&&D.errors&&(A={…D.errors,…A});let j=e0(),T=e1(ea);return{matches:o,loaderData:P,errors:A,…j||T||C.length>0?{fetchers:new Map(D.fetchers)}:{}}}function ej(e){if(e&&!eT(e[1]))return{[e[0]]:e[1].data};if(D.actionData)if(0===Object.keys(D.actionData).length)return null;else return D.actionData}async function eO(r,n,o,i,s,d,p,y,g){var v,b;eV(),el.delete(r);let w=D.fetchers.get(r);eJ(r,(v=g,b=w,{state:”submitting”,formMethod:v.formMethod,formAction:v.formAction,formEncType:v.formEncType,formData:v.formData,json:v.json,text:v.text,data:b?b.data:void 0}),{flushSync:p});let R=new AbortController,E=eR(e.history,o,R.signal,g);if(d){let e=await e9(i,new URL(E.url).pathname,E.signal,r);if(“aborted”===e.type)return;if(“error”===e.type)return void eX(r,n,e.error,{flushSync:p});if(!e.matches)return void eX(r,n,eP(404,{pathname:o}),{flushSync:p});i=e.matches}let x=eW(i,o);if(!x.route.action&&!x.route.lazy){let e=eP(405,{method:g.formMethod,pathname:o,routeId:n});eX(r,n,e,{flushSync:p});return}X.set(r,R);let C=Z,_=ey(u,h,E,i,x,l,s),k=(await eq(E,_,s,r))[x.route.id];if(E.signal.aborted){X.get(r)===R&&X.delete(r);return}if(ed.has(r)){if(eD(k)||eT(k))return void eJ(r,eF(void 0))}else{if(eD(k))return(X.delete(r),ea>C)?void eJ(r,eF(void 0)):(es.add(r),eJ(r,eB(g)),eH(E,k,!1,{fetcherSubmission:g,preventScrollReset:y}));if(eT(k))return void eX(r,n,k.error)}let N=D.navigation.location||D.location,L=eR(e.history,N,R.signal),P=t||f,A=”idle”!==D.navigation.state?S(P,D.navigation.location,m):D.matches;c(A,”Didn’t find any matches after fetcher action”);let j=++Z;ei.set(r,j);let T=eB(g,k.data);D.fetchers.set(r,T);let{dsMatches:I,revalidatingFetchers:M}=er(L,s,u,h,e.history,D,A,g,N,l,!1,B,F,ed,el,es,P,m,null!=e.patchRoutesOnNavigation,[x.route.id,k]);M.filter(e=>e.key!==r).forEach(e=>{let t=e.key,r=D.fetchers.get(t),n=eB(void 0,r?r.data:void 0);D.fetchers.set(t,n),eK(t),e.controller&&X.set(t,e.controller)}),ef({fetchers:new Map(D.fetchers)});let $=()=>M.forEach(e=>eK(e.key));R.signal.addEventListener(“abort”,$);let{loaderResults:W,fetcherResults:z}=await eY(I,M,L,s);if(R.signal.aborted)return;if(R.signal.removeEventListener(“abort”,$),ei.delete(r),X.delete(r),M.forEach(e=>X.delete(e.key)),D.fetchers.has(r)){let e=eF(k.data);D.fetchers.set(r,e)}let U=eA(W);if(U)return eH(L,U.result,!1,{preventScrollReset:y});if(U=eA(z))return es.add(U.key),eH(L,U.result,!1,{preventScrollReset:y});let{loaderData:H,errors:q}=eC(D,A,W,void 0,M,z);e1(j),”loading”===D.navigation.state&&j>ea?(c(O,”Expected pending action”),a&&a.abort(),em(D.navigation.location,{matches:A,loaderData:H,errors:q,fetchers:new Map(D.fetchers)})):(ef({errors:q,loaderData:e_(D.loaderData,H,A,q),fetchers:new Map(D.fetchers)}),B=!1)}async function e$(t,r,n,a,o,i,s,c,d){let p=D.fetchers.get(t);eJ(t,eB(d,p?p.data:void 0),{flushSync:s});let f=new AbortController,m=eR(e.history,n,f.signal);if(i){let e=await e9(a,new URL(m.url).pathname,m.signal,t);if(“aborted”===e.type)return;if(“error”===e.type)return void eX(t,r,e.error,{flushSync:s});if(!e.matches)return void eX(t,r,eP(404,{pathname:n}),{flushSync:s});a=e.matches}let y=eW(a,n);X.set(t,f);let g=Z,v=ey(u,h,m,a,y,l,o),b=(await eq(m,v,o,t))[y.route.id];if(X.get(t)===f&&X.delete(t),!m.signal.aborted){if(ed.has(t))return void eJ(t,eF(void 0));if(eD(b))if(ea>g)return void eJ(t,eF(void 0));else{es.add(t),await eH(m,b,!1,{preventScrollReset:c});return}if(eT(b))return void eX(t,r,b.error);eJ(t,eF(b.data))}}async function eH(e,t,r,{submission:n,fetcherSubmission:o,preventScrollReset:l,replace:u}={}){t.response.headers.has(“X-Remix-Revalidate”)&&(B=!0);let d=t.response.headers.get(“Location”);c(d,”Expected a Location header on the redirect Response”),d=eS(d,new URL(e.url),m);let h=p(D.location,d,{_isRedirect:!0});if(s){let e=!1;if(t.response.headers.has(“X-Remix-Reload-Document”))e=!0;else if(G(d)){let t=y(d,!0);e=t.origin!==i.location.origin||null==L(t.pathname,m)}if(e)return void(u?i.location.replace(d):i.location.assign(d))}a=null;let f=!0===u||t.response.headers.has(“X-Remix-Replace”)?”REPLACE”:”PUSH”,{formMethod:g,formAction:v,formEncType:b}=D.navigation;!n&&!o&&g&&v&&b&&(n=ez(D.navigation));let w=n||o;if(q.has(t.response.status)&&w&&eM(w.formMethod))await eb(f,h,{submission:{…w,formAction:d},preventScrollReset:l||I,enableViewTransition:r?M:void 0});else{let e=eU(h,n);await eb(f,h,{overrideNavigation:e,fetcherSubmission:o,preventScrollReset:l||I,enableViewTransition:r?M:void 0})}}async function eq(e,t,r,n){let a,o={};try{a=await eg(v,e,t,n,r,!1)}catch(e){return t.filter(e=>e.shouldLoad).forEach(t=>{o[t.route.id]={type:”error”,error:e}}),o}if(e.signal.aborted)return o;for(let[r,n]of Object.entries(a)){var i;if(eI((i=n).result)&&H.has(i.result.status)){let a=n.result;o[r]={type:”redirect”,response:function(e,t,r,n,a){let o=e.headers.get(“Location”);if(c(o,”Redirects returned/thrown from loaders/actions must have a Location header”),!G(o)){let i=n.slice(0,n.findIndex(e=>e.route.id===r)+1);o=ee(new URL(t.url),i,a,o),e.headers.set(“Location”,o)}return e}(a,e,r,t,m)}}else o[r]=await ew(n)}return o}async function eY(e,t,r,n){let a=eq(r,e,n,null),o=Promise.all(t.map(async e=>{if(!e.matches||!e.match||!e.request||!e.controller)return Promise.resolve({[e.key]:{type:”error”,error:eP(404,{pathname:e.path})}});{let t=(await eq(e.request,e.matches,n,e.key))[e.match.route.id];return{[e.key]:t}}}));return{loaderResults:await a,fetcherResults:(await o).reduce((e,t)=>Object.assign(e,t),{})}}function eV(){B=!0,el.forEach((e,t)=>{X.has(t)&&F.add(t),eK(t)})}function eJ(e,t,r={}){D.fetchers.set(e,t),ef({fetchers:new Map(D.fetchers)},{flushSync:!0===(r&&r.flushSync)})}function eX(e,t,r,n={}){let a=eN(D.matches,t);eQ(e),ef({errors:{[a.route.id]:r},fetchers:new Map(D.fetchers)},{flushSync:!0===(n&&n.flushSync)})}function eG(e){return eu.set(e,(eu.get(e)||0)+1),ed.has(e)&&ed.delete(e),D.fetchers.get(e)||V}function eQ(e){let t=D.fetchers.get(e);X.has(e)&&!(t&&”loading”===t.state&&ei.has(e))&&eK(e),el.delete(e),ei.delete(e),es.delete(e),ed.delete(e),F.delete(e),D.fetchers.delete(e)}function eK(e){let t=X.get(e);t&&(t.abort(),X.delete(e))}function eZ(e){for(let t of e){let e=eF(eG(t).data);D.fetchers.set(t,e)}}function e0(){let e=[],t=!1;for(let r of es){let n=D.fetchers.get(r);c(n,`Expected fetcher: ${r}`),”loading”===n.state&&(es.delete(r),e.push(r),t=!0)}return eZ(e),t}function e1(e){let t=[];for(let[r,n]of ei)if(n0}function e2(e){D.blockers.delete(e),eh.delete(e)}function e4(e,t){let r=D.blockers.get(e)||J;c(“unblocked”===r.state&&”blocked”===t.state||”blocked”===r.state&&”blocked”===t.state||”blocked”===r.state&&”proceeding”===t.state||”blocked”===r.state&&”unblocked”===t.state||”proceeding”===r.state&&”unblocked”===t.state,`Invalid blocker state transition: ${r.state} -> ${t.state}`);let n=new Map(D.blockers);n.set(e,t),ef({blockers:n})}function e3({currentLocation:e,nextLocation:t,historyAction:r}){if(0===eh.size)return;eh.size>1&&d(!1,”A router only supports one blocker at a time”);let n=Array.from(eh.entries()),[a,o]=n[n.length-1],i=D.blockers.get(a);if((!i||”proceeding”!==i.state)&&o({currentLocation:e,nextLocation:t,historyAction:r}))return a}function e5(e){let r=eP(404,{pathname:e}),{matches:n,route:a}=eL(t||f);return{notFoundMatches:n,route:a,error:r}}function e8(e,t){return k&&k(e,t.map(e=>E(e,D.loaderData)))||e.key}function e6(e,t){if(_){let r=_[e8(e,t)];if(“number”==typeof r)return r}return null}function e7(t,r,n){if(e.patchRoutesOnNavigation){if(!t)return{active:!0,matches:R(r,n,m,!0)||[]};else if(Object.keys(t[0].params).length>0)return{active:!0,matches:R(r,n,m,!0)}}return{active:!1,matches:null}}async function e9(r,n,a,o){if(!e.patchRoutesOnNavigation)return{type:”success”,matches:r};let i=r;for(;;){let r=null==t,s=t||f,l=h;try{await e.patchRoutesOnNavigation({signal:a,path:n,matches:i,fetcherKey:o,patch:(e,t)=>{a.aborted||eo(e,t,s,l,u,!1)}})}catch(e){return{type:”error”,error:e,partialMatches:i}}finally{r&&!a.aborted&&(f=[…f])}if(a.aborted)return{type:”aborted”};let c=S(s,n,m);if(c)return{type:”success”,matches:c};let d=R(s,n,m,!0);if(!d||i.length===d.length&&i.every((e,t)=>e.route.id===d[t].route.id))return{type:”success”,matches:null};i=d}}return n={get basename(){return m},get future(){return b},get state(){return D},get routes(){return f},get window(){return i},initialize:function(){if(x=e.history.listen(({action:t,location:r,delta:n})=>{if(o){o(),o=void 0;return}d(0===eh.size||null!=n,”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 a=e3({currentLocation:D.location,nextLocation:r,historyAction:t});if(a&&null!=n){let t=new Promise(e=>{o=e});e.history.go(-1*n),e4(a,{state:”blocked”,location:r,proceed(){e4(a,{state:”proceeding”,proceed:void 0,reset:void 0,location:r}),t.then(()=>e.history.go(n))},reset(){let e=new Map(D.blockers);e.set(a,J),ef({blockers:e})}});return}return eb(t,r)}),s){var t=i,r=$;try{let e=t.sessionStorage.getItem(K);if(e){let t=JSON.parse(e);for(let[e,n]of Object.entries(t||{}))n&&Array.isArray(n)&&r.set(e,new Set(n||[]))}}catch(e){}let e=()=>(function(e,t){if(t.size>0){let r={};for(let[e,n]of t)r[e]=[…n];try{e.sessionStorage.setItem(K,JSON.stringify(r))}catch(e){d(!1,`Failed to save applied view transitions in sessionStorage (${e}).`)}}})(i,$);i.addEventListener(“pagehide”,e),W=()=>i.removeEventListener(“pagehide”,e)}return D.initialized||eb(“POP”,D.location,{initialHydration:!0}),n},subscribe:function(e){return C.add(e),()=>C.delete(e)},enableScrollRestoration:function(e,t,r){if(_=e,N=t,k=r||null,!P&&D.navigation===Y){P=!0;let e=e6(D.location,D.matches);null!=e&&ef({restoreScrollPosition:e})}return()=>{_=null,N=null,k=null}},navigate:ev,fetch:async function r(r,n,a,o){eK(r);let i=!0===(o&&o.flushSync),s=t||f,l=ee(D.location,D.matches,m,a,n,o?.relative),u=S(s,l,m),c=e7(u,s,l);if(c.active&&c.matches&&(u=c.matches),!u)return void eX(r,n,eP(404,{pathname:l}),{flushSync:i});let{path:d,submission:h,error:p}=et(!0,l,o);if(p)return void eX(r,n,p,{flushSync:i});let y=e.unstable_getContext?await e.unstable_getContext():new g,v=!0===(o&&o.preventScrollReset);if(h&&eM(h.formMethod))return void await eO(r,n,d,u,y,c.active,i,v,h);el.set(r,{routeId:n,path:d}),await e$(r,n,d,u,y,c.active,i,v,h)},revalidate:function(){let e,t,r;ep||(ep={promise:r=new Promise((n,a)=>{e=async e=>{n(e);try{await r}catch(e){}},t=async e=>{a(e);try{await r}catch(e){}}}),resolve:e,reject:t}),eV(),ef({revalidation:”loading”});let n=ep.promise;return”submitting”===D.navigation.state||(“idle”===D.navigation.state?eb(D.historyAction,D.location,{startUninterruptedRevalidation:!0}):eb(O||D.historyAction,D.navigation.location,{overrideNavigation:D.navigation,enableViewTransition:!0===M})),n},createHref:t=>e.history.createHref(t),encodeLocation:t=>e.history.encodeLocation(t),getFetcher:eG,deleteFetcher:function(e){let t=(eu.get(e)||0)-1;t<=0?(eu.delete(e),ed.add(e)):eu.set(e,t),ef({fetchers:new Map(D.fetchers)})},dispose:function(){x&&x(),W&&W(),C.clear(),a&&a.abort(),D.fetchers.forEach((e,t)=>eQ(t)),D.blockers.forEach((e,t)=>e2(t))},getBlocker:function(e,t){let r=D.blockers.get(e)||J;return eh.get(e)!==t&&eh.set(e,t),r},deleteBlocker:e2,patchRoutes:function(e,r,n=!1){let a=null==t;eo(e,r,t||f,h,u,n),a&&(f=[…f],ef({}))},_internalFetchControllers:X,_internalSetRoutes:function(e){t=w(e,u,void 0,h={})},_internalSetStateDoNotUseOrYouWillBreakYourApp(e){ef(e)}}})({basename:t?.basename,unstable_getContext:t?.unstable_getContext,future:t?.future,history:u({window:t?.window}),hydrationData:t?.hydrationData||((r=window?.__staticRouterHydrationData)&&r.errors&&(r={…r,errors:function(e){if(!e)return null;let t=Object.entries(e),r={};for(let[e,n]of t)if(n&&”RouteErrorResponse”===n.__type)r[e]=new W(n.status,n.statusText,n.data,!0===n.internal);else if(n&&”Error”===n.__type){if(n.__subType){let t=window[n.__subType];if(“function”==typeof t)try{let a=new t(n.message);a.stack=””,r[e]=a}catch(e){}}if(null==r[e]){let t=Error(n.message);t.stack=””,r[e]=t}}else r[e]=n;return r}(r.errors)}),r),routes:e,mapRouteProperties:tb,hydrationRouteProperties:tw,dataStrategy:t?.dataStrategy,patchRoutesOnNavigation:t?.patchRoutesOnNavigation,window:t?.window}).initialize()}function tQ({basename:e,children:t,window:r}){let n=a.useRef();null==n.current&&(n.current=u({window:r,v5Compat:!0}));let o=n.current,[i,s]=a.useState({action:o.action,location:o.location}),l=a.useCallback(e=>{a.startTransition(()=>s(e))},[s]);return a.useLayoutEffect(()=>o.listen(l),[o,l]),a.createElement(tk,{basename:e,children:t,location:i.location,navigationType:i.action,navigator:o})}var tK=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,tZ=a.forwardRef(function({onClick:e,discover:t=”render”,prefetch:r=”none”,relative:n,reloadDocument:o,replace:i,state:s,target:l,to:u,preventScrollReset:h,viewTransition:p,…f},m){let y,{basename:g}=a.useContext(eX),v=”string”==typeof u&&tK.test(u),b=!1;if(“string”==typeof u&&v&&(y=u,tX))try{let e=new URL(window.location.href),t=new URL(u.startsWith(“//”)?e.protocol+u:u),r=L(t.pathname,g);t.origin===e.origin&&null!=r?u=r+t.search+t.hash:b=!0}catch(e){d(!1,` contains an invalid URL which will probably break when clicked – please update to a valid URL path.`)}let w=function(e,{relative:t}={}){c(eZ(),”useHref() may be used only in the context of a component.”);let{basename:r,navigator:n}=a.useContext(eX),{hash:o,pathname:i,search:s}=e7(e,{relative:t}),l=i;return”/”!==r&&(l=”/”===i?r:O([r,i])),n.createHref({pathname:l,search:s,hash:o})}(u,{relative:n}),[S,R,E]=function(e,t){let r=a.useContext(tH),[n,o]=a.useState(!1),[i,s]=a.useState(!1),{onFocus:l,onBlur:u,onMouseEnter:c,onMouseLeave:d,onTouchStart:h}=t,p=a.useRef(null);a.useEffect(()=>{if(“render”===e&&s(!0),”viewport”===e){let e=new IntersectionObserver(e=>{e.forEach(e=>{s(e.isIntersecting)})},{threshold:.5});return p.current&&e.observe(p.current),()=>{e.disconnect()}}},[e]),a.useEffect(()=>{if(n){let e=setTimeout(()=>{s(!0)},100);return()=>{clearTimeout(e)}}},[n]);let f=()=>{o(!0)},m=()=>{o(!1),s(!1)};return r?”intent”!==e?[i,p,{}]:[i,p,{onFocus:tY(l,f),onBlur:tY(u,m),onMouseEnter:tY(c,f),onMouseLeave:tY(d,m),onTouchStart:tY(h,f)}]:[!1,p,{}]}(r,f),x=t3(u,{replace:i,state:s,target:l,preventScrollReset:h,relative:n,viewTransition:p}),C=a.createElement(“a”,{…f,…E,href:y||w,onClick:b||o?e:function(t){e&&e(t),t.defaultPrevented||x(t)},ref:function(…e){return t=>{e.forEach(e=>{“function”==typeof e?e(t):null!=e&&(e.current=t)})}}(m,R),target:l,”data-discover”:v||”render”!==t?void 0:”true”});return S&&!v?a.createElement(a.Fragment,null,C,a.createElement(tV,{page:w})):C});tZ.displayName=”Link”;var t0=a.forwardRef(function({“aria-current”:e=”page”,caseSensitive:t=!1,className:r=””,end:n=!1,style:o,to:i,viewTransition:s,children:l,…u},d){let h,p=e7(i,{relative:u.relative}),f=e0(),m=a.useContext(eq),{navigator:y,basename:g}=a.useContext(eX),v=null!=m&&function(e,{relative:t}={}){let r=a.useContext(eV);c(null!=r,”`useViewTransitionState` must be used within `react-router-dom`’s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?”);let{basename:n}=t4(“useViewTransitionState”),o=e7(e,{relative:t});if(!r.isTransitioning)return!1;let i=L(r.currentLocation.pathname,n)||r.currentLocation.pathname,s=L(r.nextLocation.pathname,n)||r.nextLocation.pathname;return null!=k(o.pathname,s)||null!=k(o.pathname,i)}(p)&&!0===s,b=y.encodeLocation?y.encodeLocation(p).pathname:p.pathname,w=f.pathname,S=m&&m.navigation&&m.navigation.location?m.navigation.location.pathname:null;t||(w=w.toLowerCase(),S=S?S.toLowerCase():null,b=b.toLowerCase()),S&&g&&(S=L(S,g)||S);let R=”/”!==b&&b.endsWith(“/”)?b.length-1:b.length,E=w===b||!n&&w.startsWith(b)&&”/”===w.charAt(R),x=null!=S&&(S===b||!n&&S.startsWith(b)&&”/”===S.charAt(b.length)),C={isActive:E,isPending:x,isTransitioning:v},_=E?e:void 0;h=”function”==typeof r?r(C):[r,E?”active”:null,x?”pending”:null,v?”transitioning”:null].filter(Boolean).join(” “);let N=”function”==typeof o?o(C):o;return a.createElement(tZ,{…u,”aria-current”:_,className:h,ref:d,style:N,to:i,viewTransition:s},”function”==typeof l?l(C):l)});function t1({getKey:e,storageKey:t,…r}){let n=a.useContext(tH),{basename:o}=a.useContext(eX),i=e0(),s=tu();!function({getKey:e,storageKey:t}={}){let r,{router:n}=t4(“useScrollRestoration”),{restoreScrollPosition:o,preventScrollReset:i}=(c(r=a.useContext(eq),t2(“useScrollRestoration”)),r),{basename:s}=a.useContext(eX),l=e0(),u=tu(),h=tl();a.useEffect(()=>(window.history.scrollRestoration=”manual”,()=>{window.history.scrollRestoration=”auto”}),[]),function(e,t){let{capture:r}={};a.useEffect(()=>{let t=null!=r?{capture:r}:void 0;return window.addEventListener(“pagehide”,e,t),()=>{window.removeEventListener(“pagehide”,e,t)}},[e,r])}(a.useCallback(()=>{“idle”===h.state&&(t7[t9(l,u,s,e)]=window.scrollY);try{sessionStorage.setItem(t||t6,JSON.stringify(t7))}catch(e){d(!1,`Failed to save scroll positions in sessionStorage, will not work properly (${e}).`)}window.history.scrollRestoration=”auto”},[h.state,e,s,l,u,t])),”undefined”!=typeof document&&(a.useLayoutEffect(()=>{try{let e=sessionStorage.getItem(t||t6);e&&(t7=JSON.parse(e))}catch(e){}},[t]),a.useLayoutEffect(()=>{let t=n?.enableScrollRestoration(t7,()=>window.scrollY,e?(t,r)=>t9(t,r,s,e):void 0);return()=>t&&t()},[n,s,e]),a.useLayoutEffect(()=>{if(!1!==o){if(“number”==typeof o)return void window.scrollTo(0,o);try{if(l.hash){let e=document.getElementById(decodeURIComponent(l.hash.slice(1)));if(e)return void e.scrollIntoView()}}catch{d(!1,`”${l.hash.slice(1)}” is not a decodable element ID. The view will not scroll to it.`)}!0!==i&&window.scrollTo(0,0)}},[l,o,i]))}({getKey:e,storageKey:t});let l=a.useMemo(()=>{if(!n||!e)return null;let t=t9(i,s,o,e);return t!==i.key?t:null},[]);if(!n||n.isSpaMode)return null;let u=((e,t)=>{if(!window.history.state||!window.history.state.key){let e=Math.random().toString(32).slice(2);window.history.replaceState({key:e},””)}try{let r=JSON.parse(sessionStorage.getItem(e)||”{}”)[t||window.history.state.key];”number”==typeof r&&window.scrollTo(0,r)}catch(t){console.error(t),sessionStorage.removeItem(e)}}).toString();return a.createElement(“script”,{…r,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:`(${u})(${JSON.stringify(t||t6)}, ${JSON.stringify(l)})`}})}function t2(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function t4(e){let t=a.useContext(eH);return c(t,t2(e)),t}function t3(e,{target:t,replace:r,state:n,preventScrollReset:o,relative:i,viewTransition:s}={}){let l=e5(),u=e0(),c=e7(e,{relative:i});return a.useCallback(a=>{0!==a.button||t&&”_self”!==t||a.metaKey||a.altKey||a.ctrlKey||a.shiftKey||(a.preventDefault(),l(e,{replace:void 0!==r?r:f(u)===f(c),state:n,preventScrollReset:o,relative:i,viewTransition:s}))},[u,l,c,r,n,t,e,o,i,s])}function t5(e){d(“undefined”!=typeof URLSearchParams,”You cannot use the `useSearchParams` hook in a browser that does not support the URLSearchParams API. If you need to support Internet Explorer 11, we recommend you load a polyfill such as https://github.com/ungap/url-search-params.”);let t=a.useRef(tj(e)),r=a.useRef(!1),n=e0(),o=a.useMemo(()=>{var e,a;let o;return e=n.search,a=r.current?null:t.current,o=tj(e),a&&a.forEach((e,t)=>{o.has(t)||a.getAll(t).forEach(e=>{o.append(t,e)})}),o},[n.search]),i=e5(),s=a.useCallback((e,t)=>{let n=tj(“function”==typeof e?e(new URLSearchParams(o)):e);r.current=!0,i(“?”+n,t)},[i,o]);return[o,s]}t0.displayName=”NavLink”,a.forwardRef(({discover:e=”render”,fetcherKey:t,navigate:r,reloadDocument:n,replace:o,state:i,method:s=tL,action:l,onSubmit:u,relative:d,preventScrollReset:h,viewTransition:p,…m},y)=>{let g=function(){let{router:e}=t4(“useSubmit”),{basename:t}=a.useContext(eX),r=ts(“useRouteId”);return a.useCallback(async(n,a={})=>{let{action:o,method:i,encType:s,formData:l,body:u}=function(e,t){let r,n,a,o,i;if(tA(e)&&”form”===e.tagName.toLowerCase()){let i=e.getAttribute(“action”);n=i?L(i,t):null,r=e.getAttribute(“method”)||tL,a=tO(e.getAttribute(“enctype”))||tP,o=new FormData(e)}else if(tA(e)&&”button”===e.tagName.toLowerCase()||tA(e)&&”input”===e.tagName.toLowerCase()&&(“submit”===e.type||”image”===e.type)){let i=e.form;if(null==i)throw Error(‘Cannot submit a