diff --git a/THIRD_PARTY.txt b/THIRD_PARTY.txt
index 9cc1e626..a342a32a 100644
--- a/THIRD_PARTY.txt
+++ b/THIRD_PARTY.txt
@@ -1425,7 +1425,7 @@ https://cdnjs.cloudflare.com/ajax/libs/vue-i18n/10.0.4/vue-i18n.global.prod.min.
https://cdnjs.cloudflare.com/ajax/libs/vue-i18n/8.27.2/vue-i18n.min.js
https://cdnjs.cloudflare.com/ajax/libs/vue-i18n/9.14.0/vue-i18n.global.prod.min.js
https://cdnjs.cloudflare.com/ajax/libs/vue-router/3.6.5/vue-router.min.js
-https://cdnjs.cloudflare.com/ajax/libs/vue-router/4.4.4/vue-router.global.min.js
+https://cdnjs.cloudflare.com/ajax/libs/vue-router/4.4.5/vue-router.global.min.js
https://cdnjs.cloudflare.com/ajax/libs/vuex/3.6.2/vuex.min.js
https://cdnjs.cloudflare.com/ajax/libs/vuex/4.1.0/vuex.cjs.min.js
https://cdnjs.cloudflare.com/ajax/libs/waypoints/4.0.1/jquery.waypoints.min.js
diff --git a/modules/internal/targets.js b/modules/internal/targets.js
index 95829e0e..00f1b361 100644
--- a/modules/internal/targets.js
+++ b/modules/internal/targets.js
@@ -503,7 +503,7 @@ targets.setLastVersion = function (type, version) {
if (type.startsWith('/vue-match-media/1.')) return '1.0.3';
if (type.startsWith('/vue-resource/1.')) return '1.5.3';
if (type.startsWith('/vue-router/3.')) return '3.6.5';
- if (type.startsWith('/vue-router/4.')) return '4.4.4';
+ if (type.startsWith('/vue-router/4.')) return '4.4.5';
if (type.startsWith('/vuex/3.')) return '3.6.2';
if (type.startsWith('/vuex/4.')) return '4.1.0';
if (type.startsWith('/waypoints/4.')) return '4.0.1';
diff --git a/pages/updates/updates.html b/pages/updates/updates.html
index c3b6c8cf..b673c543 100644
--- a/pages/updates/updates.html
+++ b/pages/updates/updates.html
@@ -48,6 +48,7 @@
diff --git a/resources/vue-router/4.4.4/vue-router.global.min.jsm b/resources/vue-router/4.4.5/vue-router.global.min.jsm
similarity index 77%
rename from resources/vue-router/4.4.4/vue-router.global.min.jsm
rename to resources/vue-router/4.4.5/vue-router.global.min.jsm
index ebd2a4fc..8bba702d 100644
--- a/resources/vue-router/4.4.4/vue-router.global.min.jsm
+++ b/resources/vue-router/4.4.5/vue-router.global.min.jsm
@@ -1,17 +1,17 @@
var VueRouter=function(e,N){"use strict";const M="undefined"!=typeof document;function p(e){return"object"==typeof e||"displayName"in e||"props"in e||"__vccOpts"in e}function f(e){return e.__esModule||"Module"===e[Symbol.toStringTag]||e.default&&p(e.default)}const U=Object.assign;function D(e,t){const n={};for(const r in t){const o=t[r];n[r]=B(o)?o.map(e):e(o)}return n}const V=()=>{},B=Array.isArray;function W(e){var t=Array.from(arguments).slice(1);console.warn.apply(console,["[Vue Router warn]: "+e].concat(t))}const r=/#/g,o=/&/g,c=/\//g,m=/=/g,v=/\?/g,g=/\+/g,y=/%5B/g,b=/%5D/g,se=/%5E/g,w=/%60/g,le=/%7B/g,k=/%7C/g,ce=/%7D/g,E=/%20/g;function q(e){return encodeURI(""+e).replace(k,"|").replace(y,"[").replace(b,"]")}function a(e){return q(e).replace(g,"%2B").replace(E,"+").replace(r,"%23").replace(o,"%26").replace(w,"`").replace(le,"{").replace(ce,"}").replace(se,"^")}function ue(e){return null==e?"":q(e).replace(r,"%23").replace(v,"%3F").replace(c,"%2F")}function G(t){try{return decodeURIComponent(""+t)}catch(e){W(`Error decoding "${t}". Using original value`)}return""+t}const $=/\/$/,R=e=>e.replace($,"");function F(e,t,n="/"){let r,o={},a="",i="";var s=t.indexOf("#");let l=t.indexOf("?");return-1<(l=s
e===n[t]):1===e.length&&e[0]===n}const Q={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};var H,d,t;(t=H=H||{}).pop="pop",t.push="push",(t=d=d||{}).back="back",t.forward="forward";t.unknown="";function x(e){if(!e)if(M){const t=document.querySelector("base");e=(e=t&&t.getAttribute("href")||"/").replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return"/"!==e[0]&&"#"!==e[0]&&(e="/"+e),R(e)}const S=/^[^#]+#/;function j(e,t){return e.replace(S,"#")+t}const z=()=>({left:window.scrollX,top:window.scrollY});function he(t){let e;if("el"in t){const a=t.el;var n="string"==typeof a&&a.startsWith("#");if(!("string"!=typeof t.el||n&&document.getElementById(t.el.slice(1))))try{var r=document.querySelector(t.el);if(n&&r)return void W(`The selector "${t.el}" should be passed as "el: document.querySelector('${t.el}')" because it starts with "#".`)}catch(e){return void W(`The selector "${t.el}" is invalid. If you are using an id selector, make sure to escape it. You can find more information about escaping characters in selectors at https://mathiasbynens.be/notes/css-escapes or use CSS.escape (https://developer.mozilla.org/en-US/docs/Web/API/CSS/escape).`)}r="string"==typeof a?n?document.getElementById(a.slice(1)):document.querySelector(a):a;if(!r)return void W(`Couldn't find element using selector "${t.el}" returned by scrollBehavior.`);e=(n=r,r=t,o=document.documentElement.getBoundingClientRect(),n=n.getBoundingClientRect(),{behavior:r.behavior,left:n.left-o.left-(r.left||0),top:n.top-o.top-(r.top||0)})}else e=t;var o;"scrollBehavior"in document.documentElement.style?window.scrollTo(e):window.scrollTo(null!=e.left?e.left:window.scrollX,null!=e.top?e.top:window.scrollY)}function pe(e,t){return(history.state?history.state.position-t:-1)+e}const J=new Map;let I=()=>location.protocol+"//"+location.host;function T(t,n){const{pathname:e,search:r,hash:o}=n;n=t.indexOf("#");if(-1{var t=T(a,location);const n=s.value;var r=i.value;let o=0;if(e){if(s.value=t,i.value=e,u&&u===n)return void(u=null);o=r?e.position-r.position:0}else l(t);c.forEach(e=>{e(s.value,n,{delta:o,type:H.pop,direction:o?0{var e=c.indexOf(t);-1t.location.value}),Object.defineProperty(e,"state",{enumerable:!0,get:()=>t.state.value}),e}function Y(e){return"string"==typeof e||e&&"object"==typeof e}function ve(e){return"string"==typeof e||"symbol"==typeof e}const ge=Symbol("navigation failure"),ye=(e.NavigationFailureType=void 0,(t=e.NavigationFailureType||(e.NavigationFailureType={}))[t.aborted=4]="aborted",t[t.cancelled=8]="cancelled",t[t.duplicated=16]="duplicated",{[1]({location:e,currentLocation:t}){return`No match for
- `+JSON.stringify(e)+(t?"\nwhile being at\n"+JSON.stringify(t):"")},2({from:e,to:t}){return`Redirected from "${e.fullPath}" to "${function(e){if("string"==typeof e)return e;if(null!=e.path)return e.path;const t={};for(const n of be)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}(t)}" via a navigation guard.`},4({from:e,to:t}){return`Navigation aborted from "${e.fullPath}" to "${t.fullPath}" via a navigation guard.`},8({from:e,to:t}){return`Navigation cancelled from "${e.fullPath}" to "${t.fullPath}" with a new navigation.`},16({from:e}){return`Avoided redundant navigation to current location: "${e.fullPath}".`}});function X(e,t){return U(new Error(ye[e](t)),{type:e,[ge]:!0},t)}function Z(e,t){return e instanceof Error&&ge in e&&(null==t||!!(e.type&t))}const be=["params","query","hash"];const we={sensitive:!1,strict:!1,start:!0,end:!0},_e=/[.+*?^${}()[\]/\\]/g;function ke(c,e){var r=U({},we,e);const t=[];let o=r.start?"^":"";const a=[];for(const h of c){const p=h.length?[]:[90];r.strict&&!h.length&&(o+="/");for(let n=0;nt.length?1===t.length&&80===t[0]?1:-1:0}(r[n],o[n]);if(a)return a;n++}if(1===Math.abs(o.length-r.length)){if($e(r))return 1;if($e(o))return-1}return o.length-r.length}function $e(e){var t=e[e.length-1];return 0>1;Ee(e,t[o])<0?r=o:n=1+o}var a=function(e){let t=e;for(;t=t.parent;)if(Ie(t)&&0===Ee(e,t))return t}(e);a&&(r=t.lastIndexOf(a,r-1))<0&&W(`Finding ancestor route "${a.record.path}" failed for "${e.record.path}"`);return r}(h=s,g),g.splice(d,0,h),h.record.name&&!Se(h)&&y.set(h.record.name,h)),i.children){var p=i.children;for(let e=0;e{w(u)}:V}function w(e){if(ve(e)){const n=y.get(e);n&&(y.delete(e),g.splice(g.indexOf(n),1),n.children.forEach(w),n.alias.forEach(w))}else{var t=g.indexOf(e);-1b(e)),{addRoute:b,resolve:function(e,t){let n,r={},o,a;if("name"in e&&e.name){if(!(n=y.get(e.name)))throw X(1,{location:e});{const l=Object.keys(e.params||{}).filter(t=>!n.keys.find(e=>e.name===t));l.length&&W(`Discarded invalid param(s) "${l.join('", "')}" when navigating. See https://github.com/vuejs/router/blob/main/packages/router/CHANGELOG.md#414-2022-08-22 for more details.`)}a=n.record.name,r=U(xe(t.params,n.keys.filter(e=>!e.optional).concat(n.parent?n.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&xe(e.params,n.keys.map(e=>e.name))),o=n.stringify(r)}else if(null!=e.path)(o=e.path).startsWith("/")||W(`The Matcher cannot resolve relative paths but received "${o}". Unless you directly called \`matcher.resolve("${o}")\`, this is probably a bug in vue-router. Please open an issue at https://github.com/vuejs/router/issues/new/choose.`),(n=g.find(e=>e.re.test(o)))&&(r=n.parse(o),a=n.record.name);else{if(!(n=t.name?y.get(t.name):g.find(e=>e.re.test(t.path))))throw X(1,{location:e,currentLocation:t});a=n.record.name,r=U({},t.params,e.params),o=n.stringify(r)}const i=[];let s=n;for(;s;)i.unshift(s.record),s=s.parent;return{name:a,path:o,params:r,matched:i,meta:i.reduce((e,t)=>U(e,t.meta),{})}},removeRoute:w,clearRoutes:function(){g.length=0,y.clear()},getRoutes:function(){return g},getRecordMatcher:function(e){return y.get(e)}}}function xe(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function Se(e){for(;e;){if(e.record.aliasOf)return 1;e=e.parent}}function je(e,t){const n={};for(const r in e)n[r]=(r in t?t:e)[r];return n}function _(e,t){return e.name===t.name&&e.optional===t.optional&&e.repeatable===t.repeatable}function Ie({record:e}){return e.name||e.components&&Object.keys(e.components).length||e.redirect}function Te(e){const t={};if(""===e||"?"===e)return t;const n=("?"===e[0]?e.slice(1):e).split("&");for(let e=0;ee&&a(e)):[r&&a(r)];o.forEach(e=>{void 0!==e&&(n+=(n.length?"&":"")+t,null!=e&&(n+="="+e))})}}return n}const i=Symbol("router view location matched"),s=Symbol("router view depth"),te=Symbol("router"),ne=Symbol("route location"),re=Symbol("router view location");function oe(){let n=[];return{add:function(t){return n.push(t),()=>{var e=n.indexOf(t);-1n.slice(),reset:function(){n=[]}}}function Ae(e,t,n){var r=()=>{e[t].delete(n)};N.onUnmounted(r),N.onDeactivated(r),N.onActivated(()=>{e[t].add(n)}),e[t].add(n)}function ae(i,s,l,c,u,d=e=>e()){const h=c&&(c.enterCallbacks[u]=c.enterCallbacks[u]||[]);return()=>new Promise((t,n)=>{const r=e=>{!1===e?n(X(4,{from:l,to:s})):e instanceof Error?n(e):Y(e)?n(X(2,{from:s,to:e})):(h&&c.enterCallbacks[u]===h&&"function"==typeof e&&h.push(e),t())};var e=d(()=>i.call(c&&c.instances[u],s,l,function(e,t,n){let r=0;return function(){1==r++&&W(`The "next" callback was called more than once in one navigation guard when going from "${n.fullPath}" to "${t.fullPath}". It should be called exactly one time in each navigation guard. This will fail in production.`),e._called=!0,1===r&&e.apply(null,arguments)}}(r,s,l)));let o=Promise.resolve(e);if(i.length<3&&(o=o.then(r)),2t.length?1===t.length&&80===t[0]?1:-1:0}(r[n],o[n]);if(a)return a;n++}if(1===Math.abs(o.length-r.length)){if($e(r))return 1;if($e(o))return-1}return o.length-r.length}function $e(e){var t=e[e.length-1];return 0>1;Ee(e,t[o])<0?r=o:n=1+o}var a=function(e){let t=e;for(;t=t.parent;)if(Te(t)&&0===Ee(e,t))return t}(e);a&&(r=t.lastIndexOf(a,r-1))<0&&W(`Finding ancestor route "${a.record.path}" failed for "${e.record.path}"`);return r}(h=s,g),g.splice(d,0,h),h.record.name&&!je(h)&&y.set(h.record.name,h)),i.children){var p=i.children;for(let e=0;e{w(u)}:V}function w(e){if(ve(e)){const n=y.get(e);n&&(y.delete(e),g.splice(g.indexOf(n),1),n.children.forEach(w),n.alias.forEach(w))}else{var t=g.indexOf(e);-1b(e)),{addRoute:b,resolve:function(e,t){let n,r={},o,a;if("name"in e&&e.name){if(!(n=y.get(e.name)))throw X(1,{location:e});{const l=Object.keys(e.params||{}).filter(t=>!n.keys.find(e=>e.name===t));l.length&&W(`Discarded invalid param(s) "${l.join('", "')}" when navigating. See https://github.com/vuejs/router/blob/main/packages/router/CHANGELOG.md#414-2022-08-22 for more details.`)}a=n.record.name,r=U(xe(t.params,n.keys.filter(e=>!e.optional).concat(n.parent?n.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&xe(e.params,n.keys.map(e=>e.name))),o=n.stringify(r)}else if(null!=e.path)(o=e.path).startsWith("/")||W(`The Matcher cannot resolve relative paths but received "${o}". Unless you directly called \`matcher.resolve("${o}")\`, this is probably a bug in vue-router. Please open an issue at https://github.com/vuejs/router/issues/new/choose.`),(n=g.find(e=>e.re.test(o)))&&(r=n.parse(o),a=n.record.name);else{if(!(n=t.name?y.get(t.name):g.find(e=>e.re.test(t.path))))throw X(1,{location:e,currentLocation:t});a=n.record.name,r=U({},t.params,e.params),o=n.stringify(r)}const i=[];let s=n;for(;s;)i.unshift(s.record),s=s.parent;return{name:a,path:o,params:r,matched:i,meta:i.reduce((e,t)=>U(e,t.meta),{})}},removeRoute:w,clearRoutes:function(){g.length=0,y.clear()},getRoutes:function(){return g},getRecordMatcher:function(e){return y.get(e)}}}function xe(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function Se(e){e={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:function(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]="object"==typeof n?n[r]:n;return t}(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(e,"mods",{value:{}}),e}function je(e){for(;e;){if(e.record.aliasOf)return 1;e=e.parent}}function Ie(e,t){const n={};for(const r in e)n[r]=(r in t?t:e)[r];return n}function _(e,t){return e.name===t.name&&e.optional===t.optional&&e.repeatable===t.repeatable}function Te({record:e}){return e.name||e.components&&Object.keys(e.components).length||e.redirect}function Ae(e){const t={};if(""===e||"?"===e)return t;const n=("?"===e[0]?e.slice(1):e).split("&");for(let e=0;ee&&a(e)):[r&&a(r)];o.forEach(e=>{void 0!==e&&(n+=(n.length?"&":"")+t,null!=e&&(n+="="+e))})}}return n}const i=Symbol("router view location matched"),s=Symbol("router view depth"),te=Symbol("router"),ne=Symbol("route location"),re=Symbol("router view location");function oe(){let n=[];return{add:function(t){return n.push(t),()=>{var e=n.indexOf(t);-1n.slice(),reset:function(){n=[]}}}function Le(e,t,n){var r=()=>{e[t].delete(n)};N.onUnmounted(r),N.onDeactivated(r),N.onActivated(()=>{e[t].add(n)}),e[t].add(n)}function ae(i,s,l,c,u,d=e=>e()){const h=c&&(c.enterCallbacks[u]=c.enterCallbacks[u]||[]);return()=>new Promise((t,n)=>{const r=e=>{!1===e?n(X(4,{from:l,to:s})):e instanceof Error?n(e):Y(e)?n(X(2,{from:s,to:e})):(h&&c.enterCallbacks[u]===h&&"function"==typeof e&&h.push(e),t())};var e=d(()=>i.call(c&&c.instances[u],s,l,function(e,t,n){let r=0;return function(){1==r++&&W(`The "next" callback was called more than once in one navigation guard when going from "${n.fullPath}" to "${t.fullPath}". It should be called exactly one time in each navigation guard. This will fail in production.`),e._called=!0,1===r&&e.apply(null,arguments)}}(r,s,l)));let o=Promise.resolve(e);if(i.length<3&&(o=o.then(r)),2r._called?e:(W(a),Promise.reject(new Error("Invalid navigation guard"))));else if(void 0!==e&&!r._called)return W(a),void n(new Error("Invalid navigation guard"))}o.catch(e=>n(e))})}function ie(e,n,r,o,a=e=>e()){const i=[];for(const l of e){l.components||l.children.length||W(`Record with path "${l.path}" is either missing a "component(s)"`+' or "children" property.');for(const c in l.components){let t=l.components[c];if(!t||"object"!=typeof t&&"function"!=typeof t)throw W(`Component "${c}" in record with path "${l.path}" is not`+` a valid component. Received "${String(t)}".`),new Error("Invalid route component");if("then"in t){W(`Component "${c}" in record with path "${l.path}" is a `+"Promise instead of a function that returns a Promise. Did you "+`write "import('./MyPage.vue')" instead of `+`"() => import('./MyPage.vue')" ? This will break in `+"production if not fixed.");const u=t;t=()=>u}else t.__asyncLoader&&!t.__warnedDefineAsync&&(t.__warnedDefineAsync=!0,W(`Component "${c}" in record with path "${l.path}" is defined `+'using "defineAsyncComponent()". '+`Write "() => import('./MyPage.vue')" instead of `+`"defineAsyncComponent(() => import('./MyPage.vue'))".`));if("beforeRouteEnter"===n||l.instances[c])if(p(t)){var s=(t.__vccOpts||t)[n];s&&i.push(ae(s,r,o,l,c,a))}else{let e=t();"catch"in e||(W(`Component "${c}" in record with path "${l.path}" is a function that does not return a Promise. If you were passing a functional component, make sure to add a "displayName" to the component. This will break in production if not fixed.`),e=Promise.resolve(e)),i.push(()=>e.then(e=>{if(!e)throw new Error(`Couldn't resolve component "${c}" at "${l.path}"`);var t=f(e)?e.default:e,e=(l.mods[c]=e,(l.components[c]=t).__vccOpts||t),t=e[n];return t&&ae(t,r,o,l,c,a)()}))}}}return i}function l(t){const n=N.inject(te),i=N.inject(ne);let r=!1,o=null;const s=N.computed(()=>{var e=N.unref(t.to);return r&&e===o||(Y(e)||(r?W(`Invalid value for prop "to" in useLink()
- to:`,e,`
- previous to:`,o,`
- props:`,t):W(`Invalid value for prop "to" in useLink()
- to:`,e,`
-- props:`,t)),o=e,r=!0),n.resolve(e)}),e=N.computed(()=>{var e=s.value["matched"],t=e["length"],n=e[t-1];const r=i.matched;if(!n||!r.length)return-1;var o=r.findIndex(K.bind(null,n));if(-1-1e!==o[t]))return!1}return!0}(i.params,s.value.params)),l=N.computed(()=>-1{u.route=s.value,u.isActive=a.value,u.isExactActive=l.value,u.error=Y(N.unref(t.to))?null:'Invalid "to" value'},{flush:"post"})}}return{route:s,href:N.computed(()=>s.value.href),isActive:a,isExactActive:l,navigate:function(e={}){return function(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey||e.defaultPrevented||void 0!==e.button&&0!==e.button)){if(e.currentTarget&&e.currentTarget.getAttribute){var t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),1}}(e)?n[N.unref(t.replace)?"replace":"push"](N.unref(t.to)).catch(V):Promise.resolve()}}}const Le=N.defineComponent({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:l,setup(t,{slots:n}){const r=N.reactive(l(t)),e=N.inject(te)["options"],o=N.computed(()=>({[Me(t.activeClass,e.linkActiveClass,"router-link-active")]:r.isActive,[Me(t.exactActiveClass,e.linkExactActiveClass,"router-link-exact-active")]:r.isExactActive}));return()=>{var e=n.default&&n.default(r);return t.custom?e:N.h("a",{"aria-current":r.isExactActive?t.ariaCurrentValue:null,href:r.href,onClick:r.navigate,class:o.value},e)}}});function Ne(e){return e?(e.aliasOf||e).path:""}const Me=(e,t,n)=>null!=e?e:null!=t?t:n;function Ue(e,t){if(!e)return null;e=e(t);return 1===e.length?e[0]:e}const De=N.defineComponent({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(c,{attrs:u,slots:d}){{const n=N.getCurrentInstance(),o=n.parent&&n.parent.type.name,a=n.parent&&n.parent.subTree&&n.parent.subTree.type;var e;o&&("KeepAlive"===o||o.includes("Transition"))&&"object"==typeof a&&"RouterView"===a.name&&W(' can no longer be used directly inside or .\nUse slot props instead:\n\n\n'+` <${e="KeepAlive"===o?"keep-alive":"transition"}>
+- props:`,t)),o=e,r=!0),n.resolve(e)}),e=N.computed(()=>{var e=s.value["matched"],t=e["length"],n=e[t-1];const r=i.matched;if(!n||!r.length)return-1;var o=r.findIndex(K.bind(null,n));if(-1-1e!==o[t]))return!1}return!0}(i.params,s.value.params)),l=N.computed(()=>-1{u.route=s.value,u.isActive=a.value,u.isExactActive=l.value,u.error=Y(N.unref(t.to))?null:'Invalid "to" value'},{flush:"post"})}}return{route:s,href:N.computed(()=>s.value.href),isActive:a,isExactActive:l,navigate:function(e={}){return function(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey||e.defaultPrevented||void 0!==e.button&&0!==e.button)){if(e.currentTarget&&e.currentTarget.getAttribute){var t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),1}}(e)?n[N.unref(t.replace)?"replace":"push"](N.unref(t.to)).catch(V):Promise.resolve()}}}const Ne=N.defineComponent({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:l,setup(t,{slots:n}){const r=N.reactive(l(t)),e=N.inject(te)["options"],o=N.computed(()=>({[Ue(t.activeClass,e.linkActiveClass,"router-link-active")]:r.isActive,[Ue(t.exactActiveClass,e.linkExactActiveClass,"router-link-exact-active")]:r.isExactActive}));return()=>{var e=n.default&&n.default(r);return t.custom?e:N.h("a",{"aria-current":r.isExactActive?t.ariaCurrentValue:null,href:r.href,onClick:r.navigate,class:o.value},e)}}});function Me(e){return e?(e.aliasOf||e).path:""}const Ue=(e,t,n)=>null!=e?e:null!=t?t:n;function De(e,t){if(!e)return null;e=e(t);return 1===e.length?e[0]:e}const Ve=N.defineComponent({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(c,{attrs:u,slots:d}){{const n=N.getCurrentInstance(),o=n.parent&&n.parent.type.name,a=n.parent&&n.parent.subTree&&n.parent.subTree.type;var e;o&&("KeepAlive"===o||o.includes("Transition"))&&"object"==typeof a&&"RouterView"===a.name&&W(' can no longer be used directly inside or .\nUse slot props instead:\n\n\n'+` <${e="KeepAlive"===o?"keep-alive":"transition"}>
`+`
`+` ${e}>
-`+"")}const t=N.inject(re),h=N.computed(()=>c.route||t.value),r=N.inject(s,0),p=N.computed(()=>{let e=N.unref(r);for(var t,n=h.value["matched"];(t=n[e])&&!t.components;)e++;return e}),f=N.computed(()=>h.value.matched[p.value]),m=(N.provide(s,N.computed(()=>p.value+1)),N.provide(i,f),N.provide(re,h),N.ref());return N.watch(()=>[m.value,f.value,c.name],([t,e,n],[r,o])=>{e&&(e.instances[n]=t,o&&o!==e&&t&&t===r&&(e.leaveGuards.size||(e.leaveGuards=o.leaveGuards),e.updateGuards.size||(e.updateGuards=o.updateGuards))),!t||!e||o&&K(e,o)&&r||(e.enterCallbacks[n]||[]).forEach(e=>e(t))},{flush:"post"}),()=>{var e=h.value;const t=c.name,n=f.value;var r=n&&n.components[t];if(!r)return Ue(d.default,{Component:r,route:e});const o=n.props[t];var a=o?!0===o?e.params:"function"==typeof o?o(e):o:null;const i=N.h(r,U({},a,u,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(n.instances[t]=null)},ref:m}));if(M&&i.ref){const s={depth:p.value,name:n.name,path:n.path,meta:n.meta},l=B(i.ref)?i.ref.map(e=>e.i):[i.ref.i];l.forEach(e=>{e.__vrv_devtools=s})}return Ue(d.default,{Component:i,route:e})||i}}});function Ve(){return"undefined"!=typeof navigator&&"undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:{}}const Be="function"==typeof Proxy,We="devtools-plugin:setup";let n,qe;function Ge(){return void 0!==n||("undefined"!=typeof window&&window.performance?(n=!0,qe=window.performance):"undefined"!=typeof globalThis&&null!=(e=globalThis.perf_hooks)&&e.performance?(n=!0,qe=globalThis.perf_hooks.performance):n=!1),(n?qe:Date).now();var e}class Fe{constructor(e,t){this.target=null,this.targetQueue=[],this.onQueue=[],this.plugin=e,this.hook=t;const n={};if(e.settings)for(const l in e.settings){var r=e.settings[l];n[l]=r.defaultValue}const o="__vue-devtools-plugin-settings__"+e.id;let a=Object.assign({},n);try{var i=localStorage.getItem(o),s=JSON.parse(i);Object.assign(a,s)}catch(e){}this.fallbacks={getSettings(){return a},setSettings(e){try{localStorage.setItem(o,JSON.stringify(e))}catch(e){}a=e},now(){return Ge()}},t&&t.on("plugin:settings:set",(e,t)=>{e===this.plugin.id&&this.fallbacks.setSettings(t)}),this.proxiedOn=new Proxy({},{get:(e,t)=>this.target?this.target.on[t]:(...e)=>{this.onQueue.push({method:t,args:e})}}),this.proxiedTarget=new Proxy({},{get:(e,n)=>this.target?this.target[n]:"on"===n?this.proxiedOn:Object.keys(this.fallbacks).includes(n)?(...e)=>(this.targetQueue.push({method:n,args:e,resolve:()=>{}}),this.fallbacks[n](...e)):(...t)=>new Promise(e=>{this.targetQueue.push({method:n,args:t,resolve:e})})})}async setRealTarget(e){this.target=e;for(const t of this.onQueue)this.target.on[t.method](...t.args);for(const n of this.targetQueue)n.resolve(await this.target[n.method](...n.args))}}function Ke(e,t){var n=e;const r=Ve(),o=Ve().__VUE_DEVTOOLS_GLOBAL_HOOK__;var a=Be&&n.enableEarlyProxy;if(!o||!r.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__&&a){a=a?new Fe(n,o):null;const i=r.__VUE_DEVTOOLS_PLUGINS__=r.__VUE_DEVTOOLS_PLUGINS__||[];i.push({pluginDescriptor:n,setupFn:t,proxy:a}),a&&t(a.proxiedTarget)}else o.emit(We,e,t)}function u(e,t){var n=U({},e,{matched:e.matched.map(e=>{{var t=e,n=["instances","children","aliasOf"];const r={};for(const o in t)n.includes(o)||(r[o]=t[o]);return r}})});return{_custom:{type:null,readOnly:!0,display:e.fullPath,tooltip:t,value:n}}}function h(e){return{_custom:{display:e}}}let Qe=0;function He(s,l,c){if(!l.__hasDevtools){l.__hasDevtools=!0;const e=Qe++;Ke({id:"org.vuejs.router"+(e?"."+e:""),label:"Vue Router",packageName:"vue-router",homepage:"https://router.vuejs.org",logo:"https://router.vuejs.org/logo.png",componentStateTypes:["Routing"],app:s},o=>{"function"!=typeof o.now&&console.warn("[Vue Router]: You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html."),o.on.inspectComponent((e,t)=>{e.instanceData&&e.instanceData.state.push({type:"Routing",key:"$route",editable:!1,value:u(l.currentRoute.value,"Current Route")})}),o.on.visitComponentTree(({treeNode:a,componentInstance:e})=>{if(e.__vrv_devtools){const t=e.__vrv_devtools;a.tags.push({label:(t.name?t.name.toString()+": ":"")+t.path,textColor:0,tooltip:"This component is rendered by <router-view>",backgroundColor:ze})}B(e.__vrl_devtools)&&(e.__devtoolsApi=o,e.__vrl_devtools.forEach(e=>{let t=e.route.path,n=Ze,r="",o=0;e.error?(t=e.error,n=tt,o=nt):e.isExactActive?(n=Ye,r="This is exactly active"):e.isActive&&(n=Je,r="This link is active"),a.tags.push({label:t,textColor:o,tooltip:r,backgroundColor:n})}))}),N.watch(l.currentRoute,()=>{t(),o.notifyComponentUpdate(),o.sendInspectorTree(r),o.sendInspectorState(r)});const a="router:navigations:"+e;o.addTimelineLayer({id:a,label:`Router${e?" "+e:""} Navigations`,color:4237508}),l.onError((e,t)=>{o.addTimelineEvent({layerId:a,event:{title:"Error during Navigation",subtitle:t.fullPath,logType:"error",time:o.now(),data:{error:e},groupId:t.meta.__navigationId}})});let n=0;l.beforeEach((e,t)=>{t={guard:h("beforeEach"),from:u(t,"Current Location during this navigation"),to:u(e,"Target location")};Object.defineProperty(e.meta,"__navigationId",{value:n++}),o.addTimelineEvent({layerId:a,event:{time:o.now(),title:"Start of navigation",subtitle:e.fullPath,data:t,groupId:e.meta.__navigationId}})}),l.afterEach((e,t,n)=>{const r={guard:h("afterEach")};n?(r.failure={_custom:{type:Error,readOnly:!0,display:n?n.message:"",tooltip:"Navigation Failure",value:n}},r.status=h("❌")):r.status=h("✅"),r.from=u(t,"Current Location during this navigation"),r.to=u(e,"Target location"),o.addTimelineEvent({layerId:a,event:{title:"End of navigation",subtitle:e.fullPath,time:o.now(),data:r,logType:n?"warning":"default",groupId:e.meta.__navigationId}})});const r="router-inspector:"+e;function t(){if(i){const t=i;let e=c.getRoutes().filter(e=>!e.parent||!e.parent.record.components);e.forEach(it),(e=t.filter?e.filter(e=>function t(e,n){const r=String(e.re).match(at);e.__vd_match=!1;if(!r||r.length<3)return!1;const o=new RegExp(r[1].replace(/\$$/,""),r[2]);if(o.test(n))return e.children.forEach(e=>t(e,n)),("/"!==e.record.path||"/"===n)&&(e.__vd_match=e.re.test(n),!0);const a=e.record.path.toLowerCase();const i=G(a);if(!n.startsWith("/")&&(i.includes(n)||a.includes(n)))return!0;if(i.startsWith(n)||a.startsWith(n))return!0;if(e.record.name&&String(e.record.name).includes(n))return!0;return e.children.some(e=>t(e,n))}(e,t.filter.toLowerCase())):e).forEach(e=>function t(n,r){const e=r.matched.length&&K(r.matched[r.matched.length-1],n.record);n.__vd_exactActive=n.__vd_active=e;e||(n.__vd_active=r.matched.some(e=>K(e,n.record)));n.children.forEach(e=>t(e,r))}(e,l.currentRoute.value)),t.rootNodes=e.map(rt)}}o.addInspector({id:r,label:"Routes"+(e?" "+e:""),icon:"book",treeFilterPlaceholder:"Search routes"});let i;o.on.getInspectorTree(e=>{(i=e).app===s&&e.inspectorId===r&&t()}),o.on.getInspectorState(t=>{if(t.app===s&&t.inspectorId===r){const n=c.getRoutes();var e=n.find(e=>e.record.__vd_id===t.nodeId);e&&(t.state={options:function(e){const t=e["record"],n=[{editable:!1,key:"path",value:t.path}];null!=t.name&&n.push({editable:!1,key:"name",value:t.name});n.push({editable:!1,key:"regexp",value:e.re}),e.keys.length&&n.push({editable:!1,key:"keys",value:{_custom:{type:null,readOnly:!0,display:e.keys.map(e=>""+e.name+function(e){return e.optional?e.repeatable?"*":"?":e.repeatable?"+":""}(e)).join(" "),tooltip:"Param keys",value:e.keys}}});null!=t.redirect&&n.push({editable:!1,key:"redirect",value:t.redirect});e.alias.length&&n.push({editable:!1,key:"aliases",value:e.alias.map(e=>e.record.path)});Object.keys(e.record.meta).length&&n.push({editable:!1,key:"meta",value:e.record.meta});return n.push({key:"score",editable:!1,value:{_custom:{type:null,readOnly:!0,display:e.score.map(e=>e.join(", ")).join(" | "),tooltip:"Score used to sort routes",value:e.score}}}),n}(e)})}}),o.sendInspectorTree(r),o.sendInspectorState(r)})}}const ze=15485081,Je=2450411,Ye=8702998,Xe=2282478,Ze=16486972,et=6710886,tt=16704226,nt=12131356;function rt(e){const t=[],n=e["record"];null!=n.name&&t.push({label:String(n.name),textColor:0,backgroundColor:Xe}),n.aliasOf&&t.push({label:"alias",textColor:0,backgroundColor:Ze}),e.__vd_match&&t.push({label:"matches",textColor:0,backgroundColor:ze}),e.__vd_exactActive&&t.push({label:"exact",textColor:0,backgroundColor:Ye}),e.__vd_active&&t.push({label:"active",textColor:0,backgroundColor:Je}),n.redirect&&t.push({label:"string"==typeof n.redirect?"redirect: "+n.redirect:"redirects",textColor:16777215,backgroundColor:et});let r=n.__vd_id;return null==r&&(r=String(ot++),n.__vd_id=r),{id:r,label:n.path,tags:t,children:e.children.map(rt)}}let ot=0;const at=/^\/(.*)\/([a-z]*)$/;function it(e){e.__vd_match=!1,e.children.forEach(it)}return e.RouterLink=Le,e.RouterView=De,e.START_LOCATION=Q,e.createMemoryHistory=function(e=""){let l=[],c=[""],u=0;function n(e){++u!==c.length&&c.splice(u),c.push(e)}return e={location:"",state:{},base:e=x(e),createHref:j.bind(null,e),replace(e){c.splice(u--,1),n(e)},push(e,t){n(e)},listen(t){return l.push(t),()=>{var e=l.indexOf(t);-1c[u]}),e},e.createRouter=function(l){const c=Pe(l.routes,l),u=l.parseQuery||Te,d=l.stringifyQuery||ee,h=l.history;if(!h)throw new Error('Provide the "history" option when calling "createRouter()": https://router.vuejs.org/api/interfaces/RouterOptions.html#history');const p=oe(),f=oe(),e=oe(),m=N.shallowRef(Q);let v=Q;M&&l.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const g=D.bind(null,e=>""+e),y=D.bind(null,ue),b=D.bind(null,G);function w(e,t){if(t=U({},t||m.value),"string"==typeof e){var n=F(u,e,t.path);const o=c.resolve({path:n.path},t),i=h.createHref(n.fullPath);return i.startsWith("//")?W(`Location "${e}" resolved to "${i}". A resolved location cannot start with multiple slashes.`):o.matched.length||W(`No match found for location with path "${e}"`),U(n,o,{params:b(o.params),hash:G(n.hash),redirectedFrom:void 0,href:i})}if(!Y(e))return W(`router.resolve() was passed an invalid location. This will fail in production.
+`+"")}const t=N.inject(re),h=N.computed(()=>c.route||t.value),r=N.inject(s,0),p=N.computed(()=>{let e=N.unref(r);for(var t,n=h.value["matched"];(t=n[e])&&!t.components;)e++;return e}),f=N.computed(()=>h.value.matched[p.value]),m=(N.provide(s,N.computed(()=>p.value+1)),N.provide(i,f),N.provide(re,h),N.ref());return N.watch(()=>[m.value,f.value,c.name],([t,e,n],[r,o])=>{e&&(e.instances[n]=t,o&&o!==e&&t&&t===r&&(e.leaveGuards.size||(e.leaveGuards=o.leaveGuards),e.updateGuards.size||(e.updateGuards=o.updateGuards))),!t||!e||o&&K(e,o)&&r||(e.enterCallbacks[n]||[]).forEach(e=>e(t))},{flush:"post"}),()=>{var e=h.value;const t=c.name,n=f.value;var r=n&&n.components[t];if(!r)return De(d.default,{Component:r,route:e});const o=n.props[t];var a=o?!0===o?e.params:"function"==typeof o?o(e):o:null;const i=N.h(r,U({},a,u,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(n.instances[t]=null)},ref:m}));if(M&&i.ref){const s={depth:p.value,name:n.name,path:n.path,meta:n.meta},l=B(i.ref)?i.ref.map(e=>e.i):[i.ref.i];l.forEach(e=>{e.__vrv_devtools=s})}return De(d.default,{Component:i,route:e})||i}}});function Be(){return"undefined"!=typeof navigator&&"undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:{}}const We="function"==typeof Proxy,qe="devtools-plugin:setup";let n,Ge;function Fe(){return void 0!==n||("undefined"!=typeof window&&window.performance?(n=!0,Ge=window.performance):"undefined"!=typeof globalThis&&null!=(e=globalThis.perf_hooks)&&e.performance?(n=!0,Ge=globalThis.perf_hooks.performance):n=!1),(n?Ge:Date).now();var e}class Ke{constructor(e,t){this.target=null,this.targetQueue=[],this.onQueue=[],this.plugin=e,this.hook=t;const n={};if(e.settings)for(const l in e.settings){var r=e.settings[l];n[l]=r.defaultValue}const o="__vue-devtools-plugin-settings__"+e.id;let a=Object.assign({},n);try{var i=localStorage.getItem(o),s=JSON.parse(i);Object.assign(a,s)}catch(e){}this.fallbacks={getSettings(){return a},setSettings(e){try{localStorage.setItem(o,JSON.stringify(e))}catch(e){}a=e},now(){return Fe()}},t&&t.on("plugin:settings:set",(e,t)=>{e===this.plugin.id&&this.fallbacks.setSettings(t)}),this.proxiedOn=new Proxy({},{get:(e,t)=>this.target?this.target.on[t]:(...e)=>{this.onQueue.push({method:t,args:e})}}),this.proxiedTarget=new Proxy({},{get:(e,n)=>this.target?this.target[n]:"on"===n?this.proxiedOn:Object.keys(this.fallbacks).includes(n)?(...e)=>(this.targetQueue.push({method:n,args:e,resolve:()=>{}}),this.fallbacks[n](...e)):(...t)=>new Promise(e=>{this.targetQueue.push({method:n,args:t,resolve:e})})})}async setRealTarget(e){this.target=e;for(const t of this.onQueue)this.target.on[t.method](...t.args);for(const n of this.targetQueue)n.resolve(await this.target[n.method](...n.args))}}function Qe(e,t){var n=e;const r=Be(),o=Be().__VUE_DEVTOOLS_GLOBAL_HOOK__;var a=We&&n.enableEarlyProxy;if(!o||!r.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__&&a){a=a?new Ke(n,o):null;const i=r.__VUE_DEVTOOLS_PLUGINS__=r.__VUE_DEVTOOLS_PLUGINS__||[];i.push({pluginDescriptor:n,setupFn:t,proxy:a}),a&&t(a.proxiedTarget)}else o.emit(qe,e,t)}function u(e,t){var n=U({},e,{matched:e.matched.map(e=>{{var t=e,n=["instances","children","aliasOf"];const r={};for(const o in t)n.includes(o)||(r[o]=t[o]);return r}})});return{_custom:{type:null,readOnly:!0,display:e.fullPath,tooltip:t,value:n}}}function h(e){return{_custom:{display:e}}}let He=0;function ze(s,l,c){if(!l.__hasDevtools){l.__hasDevtools=!0;const e=He++;Qe({id:"org.vuejs.router"+(e?"."+e:""),label:"Vue Router",packageName:"vue-router",homepage:"https://router.vuejs.org",logo:"https://router.vuejs.org/logo.png",componentStateTypes:["Routing"],app:s},o=>{"function"!=typeof o.now&&console.warn("[Vue Router]: You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html."),o.on.inspectComponent((e,t)=>{e.instanceData&&e.instanceData.state.push({type:"Routing",key:"$route",editable:!1,value:u(l.currentRoute.value,"Current Route")})}),o.on.visitComponentTree(({treeNode:a,componentInstance:e})=>{if(e.__vrv_devtools){const t=e.__vrv_devtools;a.tags.push({label:(t.name?t.name.toString()+": ":"")+t.path,textColor:0,tooltip:"This component is rendered by <router-view>",backgroundColor:Je})}B(e.__vrl_devtools)&&(e.__devtoolsApi=o,e.__vrl_devtools.forEach(e=>{let t=e.route.path,n=et,r="",o=0;e.error?(t=e.error,n=nt,o=rt):e.isExactActive?(n=Xe,r="This is exactly active"):e.isActive&&(n=Ye,r="This link is active"),a.tags.push({label:t,textColor:o,tooltip:r,backgroundColor:n})}))}),N.watch(l.currentRoute,()=>{t(),o.notifyComponentUpdate(),o.sendInspectorTree(r),o.sendInspectorState(r)});const a="router:navigations:"+e;o.addTimelineLayer({id:a,label:`Router${e?" "+e:""} Navigations`,color:4237508}),l.onError((e,t)=>{o.addTimelineEvent({layerId:a,event:{title:"Error during Navigation",subtitle:t.fullPath,logType:"error",time:o.now(),data:{error:e},groupId:t.meta.__navigationId}})});let n=0;l.beforeEach((e,t)=>{t={guard:h("beforeEach"),from:u(t,"Current Location during this navigation"),to:u(e,"Target location")};Object.defineProperty(e.meta,"__navigationId",{value:n++}),o.addTimelineEvent({layerId:a,event:{time:o.now(),title:"Start of navigation",subtitle:e.fullPath,data:t,groupId:e.meta.__navigationId}})}),l.afterEach((e,t,n)=>{const r={guard:h("afterEach")};n?(r.failure={_custom:{type:Error,readOnly:!0,display:n?n.message:"",tooltip:"Navigation Failure",value:n}},r.status=h("❌")):r.status=h("✅"),r.from=u(t,"Current Location during this navigation"),r.to=u(e,"Target location"),o.addTimelineEvent({layerId:a,event:{title:"End of navigation",subtitle:e.fullPath,time:o.now(),data:r,logType:n?"warning":"default",groupId:e.meta.__navigationId}})});const r="router-inspector:"+e;function t(){if(i){const t=i;let e=c.getRoutes().filter(e=>!e.parent||!e.parent.record.components);e.forEach(st),(e=t.filter?e.filter(e=>function t(e,n){const r=String(e.re).match(it);e.__vd_match=!1;if(!r||r.length<3)return!1;const o=new RegExp(r[1].replace(/\$$/,""),r[2]);if(o.test(n))return e.children.forEach(e=>t(e,n)),("/"!==e.record.path||"/"===n)&&(e.__vd_match=e.re.test(n),!0);const a=e.record.path.toLowerCase();const i=G(a);if(!n.startsWith("/")&&(i.includes(n)||a.includes(n)))return!0;if(i.startsWith(n)||a.startsWith(n))return!0;if(e.record.name&&String(e.record.name).includes(n))return!0;return e.children.some(e=>t(e,n))}(e,t.filter.toLowerCase())):e).forEach(e=>function t(n,r){const e=r.matched.length&&K(r.matched[r.matched.length-1],n.record);n.__vd_exactActive=n.__vd_active=e;e||(n.__vd_active=r.matched.some(e=>K(e,n.record)));n.children.forEach(e=>t(e,r))}(e,l.currentRoute.value)),t.rootNodes=e.map(ot)}}o.addInspector({id:r,label:"Routes"+(e?" "+e:""),icon:"book",treeFilterPlaceholder:"Search routes"});let i;o.on.getInspectorTree(e=>{(i=e).app===s&&e.inspectorId===r&&t()}),o.on.getInspectorState(t=>{if(t.app===s&&t.inspectorId===r){const n=c.getRoutes();var e=n.find(e=>e.record.__vd_id===t.nodeId);e&&(t.state={options:function(e){const t=e["record"],n=[{editable:!1,key:"path",value:t.path}];null!=t.name&&n.push({editable:!1,key:"name",value:t.name});n.push({editable:!1,key:"regexp",value:e.re}),e.keys.length&&n.push({editable:!1,key:"keys",value:{_custom:{type:null,readOnly:!0,display:e.keys.map(e=>""+e.name+function(e){return e.optional?e.repeatable?"*":"?":e.repeatable?"+":""}(e)).join(" "),tooltip:"Param keys",value:e.keys}}});null!=t.redirect&&n.push({editable:!1,key:"redirect",value:t.redirect});e.alias.length&&n.push({editable:!1,key:"aliases",value:e.alias.map(e=>e.record.path)});Object.keys(e.record.meta).length&&n.push({editable:!1,key:"meta",value:e.record.meta});return n.push({key:"score",editable:!1,value:{_custom:{type:null,readOnly:!0,display:e.score.map(e=>e.join(", ")).join(" | "),tooltip:"Score used to sort routes",value:e.score}}}),n}(e)})}}),o.sendInspectorTree(r),o.sendInspectorState(r)})}}const Je=15485081,Ye=2450411,Xe=8702998,Ze=2282478,et=16486972,tt=6710886,nt=16704226,rt=12131356;function ot(e){const t=[],n=e["record"];null!=n.name&&t.push({label:String(n.name),textColor:0,backgroundColor:Ze}),n.aliasOf&&t.push({label:"alias",textColor:0,backgroundColor:et}),e.__vd_match&&t.push({label:"matches",textColor:0,backgroundColor:Je}),e.__vd_exactActive&&t.push({label:"exact",textColor:0,backgroundColor:Xe}),e.__vd_active&&t.push({label:"active",textColor:0,backgroundColor:Ye}),n.redirect&&t.push({label:"string"==typeof n.redirect?"redirect: "+n.redirect:"redirects",textColor:16777215,backgroundColor:tt});let r=n.__vd_id;return null==r&&(r=String(at++),n.__vd_id=r),{id:r,label:n.path,tags:t,children:e.children.map(ot)}}let at=0;const it=/^\/(.*)\/([a-z]*)$/;function st(e){e.__vd_match=!1,e.children.forEach(st)}return e.RouterLink=Ne,e.RouterView=Ve,e.START_LOCATION=Q,e.createMemoryHistory=function(e=""){let l=[],c=[""],u=0;function n(e){++u!==c.length&&c.splice(u),c.push(e)}return e={location:"",state:{},base:e=x(e),createHref:j.bind(null,e),replace(e){c.splice(u--,1),n(e)},push(e,t){n(e)},listen(t){return l.push(t),()=>{var e=l.indexOf(t);-1c[u]}),e},e.createRouter=function(l){const c=Pe(l.routes,l),u=l.parseQuery||Ae,d=l.stringifyQuery||ee,h=l.history;if(!h)throw new Error('Provide the "history" option when calling "createRouter()": https://router.vuejs.org/api/interfaces/RouterOptions.html#history');const p=oe(),f=oe(),e=oe(),m=N.shallowRef(Q);let v=Q;M&&l.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const g=D.bind(null,e=>""+e),y=D.bind(null,ue),b=D.bind(null,G);function w(e,t){if(t=U({},t||m.value),"string"==typeof e){var n=F(u,e,t.path);const o=c.resolve({path:n.path},t),i=h.createHref(n.fullPath);return i.startsWith("//")?W(`Location "${e}" resolved to "${i}". A resolved location cannot start with multiple slashes.`):o.matched.length||W(`No match found for location with path "${e}"`),U(n,o,{params:b(o.params),hash:G(n.hash),redirectedFrom:void 0,href:i})}if(!Y(e))return W(`router.resolve() was passed an invalid location. This will fail in production.
- Location:`,e),w({});let r;if(null!=e.path)"params"in e&&!("name"in e)&&Object.keys(e.params).length&&W(`Path "${e.path}" was passed with params but they will be ignored. Use a named route alongside params instead.`),r=U({},e,{path:F(u,e.path,t.path).path});else{const s=U({},e.params);for(const l in s)null==s[l]&&delete s[l];r=U({},e,{params:y(s)}),t.params=y(t.params)}const o=c.resolve(r,t),a=e.hash||"";a&&!a.startsWith("#")&&W(`A \`hash\` should always start with the character "#". Replace "${a}" with "#${a}".`),o.params=g(b(o.params));n=d,t=U({},e,{hash:q(a).replace(le,"{").replace(ce,"}").replace(se,"^"),path:o.path}),n=t.query?n(t.query):"";t=t.path+(n&&"?")+n+(t.hash||"");const i=h.createHref(t);return i.startsWith("//")?W(`Location "${e}" resolved to "${i}". A resolved location cannot start with multiple slashes.`):o.matched.length||W(`No match found for location with path "${null!=e.path?e.path:e}"`),U({fullPath:t,hash:a,query:d===ee?function(e){const t={};for(const n in e){const r=e[n];void 0!==r&&(t[n]=B(r)?r.map(e=>null==e?null:""+e):null==r?r:""+r)}return t}(e.query):e.query||{}},o,{redirectedFrom:void 0,href:i})}function _(e){return"string"==typeof e?F(u,e,m.value.path):U({},e)}function k(e,t){if(v!==e)return X(8,{from:t,to:e})}function o(e){return $(e)}function E(t){var n=t.matched[t.matched.length-1];if(n&&n.redirect){const r=n["redirect"];let e="function"==typeof r?r(t):r;if("string"==typeof e&&((e=e.includes("?")||e.includes("#")?e=_(e):{path:e}).params={}),null!=e.path||"name"in e)return U({query:t.query,hash:t.hash,params:null!=e.path?{}:t.params},e);throw W(`Invalid redirect found:
${JSON.stringify(e,null,2)}
when navigating to "${t.fullPath}". A redirect must contain a name or path. This will break in production.`),new Error("Invalid redirect")}}function $(e,t){var n=v=w(e);const r=m.value,o=e.state,a=e.force,i=!0===e.replace;e=E(n);if(e)return $(U(_(e),{state:"object"==typeof e?U({},o,e.state):o,force:a,replace:i}),t||n);const s=n;s.redirectedFrom=t;let l;return!a&&de(d,r,n)&&(l=X(16,{to:s,from:r}),j(r,r,!0,!1)),(l?Promise.resolve(l):C(s,r)).catch(e=>Z(e)?Z(e,2)?e:S(e):x(e,s,r)).then(e=>{if(e){if(Z(e,2))return de(d,w(e.to),s)&&t&&30<(t._count=t._count?t._count+1:1)?(W(`Detected a possibly infinite redirection in a navigation guard when going from "${r.fullPath}" to "${s.fullPath}". Aborting to avoid a Stack Overflow.
- Are you always returning a new location within a navigation guard? That would lead to this error. Only return when redirecting or aborting, that should fix this. This might break in production if not fixed.`),Promise.reject(new Error("Infinite redirect in navigation guard"))):$(U({replace:i},_(e.to),{state:"object"==typeof e.to?U({},o,e.to.state):o,force:a}),t||s)}else e=P(s,r,!0,i,o);return O(s,r,e),e})}function R(e){const t=T.values().next().value;return t&&"function"==typeof t.runWithContext?t.runWithContext(e):e()}function C(n,r){let o;const[e,t,a]=function(t,n){const r=[],o=[],a=[],i=Math.max(n.matched.length,t.matched.length);for(let e=0;eK(e,s))?o:r).push(s),t.matched[e]);!l||n.matched.find(e=>K(e,l))||a.push(l)}return[r,o,a]}(n,r);o=ie(e.reverse(),"beforeRouteLeave",n,r);for(const s of e)s.leaveGuards.forEach(e=>{o.push(ae(e,n,r))});const i=function(e,t){return(e=k(e,t))?Promise.reject(e):Promise.resolve()}.bind(null,n,r);return o.push(i),L(o).then(()=>{o=[];for(const e of p.list())o.push(ae(e,n,r));return o.push(i),L(o)}).then(()=>{o=ie(t,"beforeRouteUpdate",n,r);for(const e of t)e.updateGuards.forEach(e=>{o.push(ae(e,n,r))});return o.push(i),L(o)}).then(()=>{o=[];for(const e of a)if(e.beforeEnter)if(B(e.beforeEnter))for(const t of e.beforeEnter)o.push(ae(t,n,r));else o.push(ae(e.beforeEnter,n,r));return o.push(i),L(o)}).then(()=>(n.matched.forEach(e=>e.enterCallbacks={}),(o=ie(a,"beforeRouteEnter",n,r,R)).push(i),L(o))).then(()=>{o=[];for(const e of f.list())o.push(ae(e,n,r));return o.push(i),L(o)}).catch(e=>Z(e,8)?e:Promise.reject(e))}function O(t,n,r){e.list().forEach(e=>R(()=>e(t,n,r)))}function P(e,t,n,r,o){var a=k(e,t);if(a)return a;var a=t===Q,i=M?history.state:{};n&&(r||a?h.replace(e.fullPath,U({scroll:a&&i&&i.scroll},o)):h.push(e.fullPath,o)),j(m.value=e,t,n,a),S()}let a;function t(){a=a||h.listen((e,t,n)=>{if(A.listening){const o=w(e);var r,e=E(o);if(e)$(U(e,{replace:!0}),o).catch(V);else{v=o;const a=m.value;M&&(e=pe(a.fullPath,n.delta),r=z(),J.set(e,r)),C(o,a).catch(e=>Z(e,12)?e:Z(e,2)?($(e.to,o).then(e=>{Z(e,20)&&!n.delta&&n.type===H.pop&&h.go(-1,!1)}).catch(V),Promise.reject()):(n.delta&&h.go(-n.delta,!1),x(e,o,a))).then(e=>{(e=e||P(o,a,!1))&&(n.delta&&!Z(e,8)?h.go(-n.delta,!1):n.type===H.pop&&Z(e,20)&&h.go(-1,!1)),O(o,a,e)}).catch(V)}}})}let r=oe(),i=oe(),s;function x(t,n,r){S(t);const e=i.list();return e.length?e.forEach(e=>e(t,n,r)):(W("uncaught error during route navigation:"),console.error(t)),Promise.reject(t)}function S(n){return s||(s=!n,t(),r.list().forEach(([e,t])=>n?t(n):e()),r.reset()),n}function j(t,n,e,r){const o=l["scrollBehavior"];if(!M||!o)return Promise.resolve();const a=!e&&(i=pe(t.fullPath,0),s=J.get(i),J.delete(i),s)||(r||!e)&&history.state&&history.state.scroll||null;var i,s;N.nextTick().then(()=>o(t,n,a)).then(e=>e&&he(e)).catch(e=>x(e,t,n))}const n=e=>h.go(e);let I;const T=new Set,A={currentRoute:m,listening:!0,addRoute:function(e,t){let n,r;return r=ve(e)?((n=c.getRecordMatcher(e))||W(`Parent route "${String(e)}" not found when adding child route`,t),t):e,c.addRoute(r,n)},removeRoute:function(e){var t=c.getRecordMatcher(e);t?c.removeRoute(t):W(`Cannot remove non-existent route "${String(e)}"`)},clearRoutes:c.clearRoutes,hasRoute:function(e){return!!c.getRecordMatcher(e)},getRoutes:function(){return c.getRoutes().map(e=>e.record)},resolve:w,options:l,push:o,replace:function(e){return o(U(_(e),{replace:!0}))},go:n,back:()=>n(-1),forward:()=>n(1),beforeEach:p.add,beforeResolve:f.add,afterEach:e.add,onError:i.add,isReady:function(){return s&&m.value!==Q?Promise.resolve():new Promise((e,t)=>{r.add([e,t])})},install(e){e.component("RouterLink",Le),e.component("RouterView",De),e.config.globalProperties.$router=this,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>N.unref(m)}),M&&!I&&m.value===Q&&(I=!0,o(h.location).catch(e=>{W("Unexpected error when starting the router:",e)}));var t={};for(const r in Q)Object.defineProperty(t,r,{get:()=>m.value[r],enumerable:!0});e.provide(te,this),e.provide(ne,N.shallowReactive(t)),e.provide(re,m);const n=e.unmount;T.add(e),e.unmount=function(){T.delete(e),T.size<1&&(v=Q,a&&a(),a=null,m.value=Q,I=!1,s=!1),n()},M&&He(e,this,c)}};function L(e){return e.reduce((e,t)=>e.then(()=>R(t)),Promise.resolve())}return A},e.createRouterMatcher=Pe,e.createWebHashHistory=function(e){return(e=location.host?e||location.pathname+location.search:"").includes("#")||(e+="#"),e.endsWith("#/")||e.endsWith("#")||W(`A hash base must end with a "#":
-"${e}" should be "${e.replace(/#.*$/,"#")}".`),me(e)},e.createWebHistory=me,e.isNavigationFailure=Z,e.loadRouteLocation=function(e){return e.matched.every(e=>e.redirect)?Promise.reject(new Error("Cannot load a route that redirects.")):Promise.all(e.matched.map(r=>r.components&&Promise.all(Object.keys(r.components).reduce((e,n)=>{const t=r.components[n];return"function"!=typeof t||"displayName"in t||e.push(t().then(e=>{if(!e)return Promise.reject(new Error(`Couldn't resolve component "${n}" at "${r.path}". Ensure you passed a function that returns a promise.`));var t=f(e)?e.default:e;r.mods[n]=e,r.components[n]=t})),e},[])))).then(()=>e)},e.matchedRouteKey=i,e.onBeforeRouteLeave=function(e){var t;N.getCurrentInstance()?(t=N.inject(i,{}).value)?Ae(t,"leaveGuards",e):W("No active route record was found when calling `onBeforeRouteLeave()`. Make sure you call this function inside a component child of . Maybe you called it inside of App.vue?"):W("getCurrentInstance() returned null. onBeforeRouteLeave() must be called at the top of a setup function")},e.onBeforeRouteUpdate=function(e){var t;N.getCurrentInstance()?(t=N.inject(i,{}).value)?Ae(t,"updateGuards",e):W("No active route record was found when calling `onBeforeRouteUpdate()`. Make sure you call this function inside a component child of . Maybe you called it inside of App.vue?"):W("getCurrentInstance() returned null. onBeforeRouteUpdate() must be called at the top of a setup function")},e.parseQuery=Te,e.routeLocationKey=ne,e.routerKey=te,e.routerViewLocationKey=re,e.stringifyQuery=ee,e.useLink=l,e.useRoute=function(e){return N.inject(ne)},e.useRouter=function(){return N.inject(te)},e.viewDepthKey=s,e}({},Vue);
\ No newline at end of file
+ Are you always returning a new location within a navigation guard? That would lead to this error. Only return when redirecting or aborting, that should fix this. This might break in production if not fixed.`),Promise.reject(new Error("Infinite redirect in navigation guard"))):$(U({replace:i},_(e.to),{state:"object"==typeof e.to?U({},o,e.to.state):o,force:a}),t||s)}else e=P(s,r,!0,i,o);return O(s,r,e),e})}function R(e){const t=T.values().next().value;return t&&"function"==typeof t.runWithContext?t.runWithContext(e):e()}function C(n,r){let o;const[e,t,a]=function(t,n){const r=[],o=[],a=[],i=Math.max(n.matched.length,t.matched.length);for(let e=0;eK(e,s))?o:r).push(s),t.matched[e]);!l||n.matched.find(e=>K(e,l))||a.push(l)}return[r,o,a]}(n,r);o=ie(e.reverse(),"beforeRouteLeave",n,r);for(const s of e)s.leaveGuards.forEach(e=>{o.push(ae(e,n,r))});const i=function(e,t){return(e=k(e,t))?Promise.reject(e):Promise.resolve()}.bind(null,n,r);return o.push(i),L(o).then(()=>{o=[];for(const e of p.list())o.push(ae(e,n,r));return o.push(i),L(o)}).then(()=>{o=ie(t,"beforeRouteUpdate",n,r);for(const e of t)e.updateGuards.forEach(e=>{o.push(ae(e,n,r))});return o.push(i),L(o)}).then(()=>{o=[];for(const e of a)if(e.beforeEnter)if(B(e.beforeEnter))for(const t of e.beforeEnter)o.push(ae(t,n,r));else o.push(ae(e.beforeEnter,n,r));return o.push(i),L(o)}).then(()=>(n.matched.forEach(e=>e.enterCallbacks={}),(o=ie(a,"beforeRouteEnter",n,r,R)).push(i),L(o))).then(()=>{o=[];for(const e of f.list())o.push(ae(e,n,r));return o.push(i),L(o)}).catch(e=>Z(e,8)?e:Promise.reject(e))}function O(t,n,r){e.list().forEach(e=>R(()=>e(t,n,r)))}function P(e,t,n,r,o){var a=k(e,t);if(a)return a;var a=t===Q,i=M?history.state:{};n&&(r||a?h.replace(e.fullPath,U({scroll:a&&i&&i.scroll},o)):h.push(e.fullPath,o)),j(m.value=e,t,n,a),S()}let a;function t(){a=a||h.listen((e,t,n)=>{if(A.listening){const o=w(e);var r,e=E(o);if(e)$(U(e,{replace:!0}),o).catch(V);else{v=o;const a=m.value;M&&(e=pe(a.fullPath,n.delta),r=z(),J.set(e,r)),C(o,a).catch(e=>Z(e,12)?e:Z(e,2)?($(e.to,o).then(e=>{Z(e,20)&&!n.delta&&n.type===H.pop&&h.go(-1,!1)}).catch(V),Promise.reject()):(n.delta&&h.go(-n.delta,!1),x(e,o,a))).then(e=>{(e=e||P(o,a,!1))&&(n.delta&&!Z(e,8)?h.go(-n.delta,!1):n.type===H.pop&&Z(e,20)&&h.go(-1,!1)),O(o,a,e)}).catch(V)}}})}let r=oe(),i=oe(),s;function x(t,n,r){S(t);const e=i.list();return e.length?e.forEach(e=>e(t,n,r)):(W("uncaught error during route navigation:"),console.error(t)),Promise.reject(t)}function S(n){return s||(s=!n,t(),r.list().forEach(([e,t])=>n?t(n):e()),r.reset()),n}function j(t,n,e,r){const o=l["scrollBehavior"];if(!M||!o)return Promise.resolve();const a=!e&&(i=pe(t.fullPath,0),s=J.get(i),J.delete(i),s)||(r||!e)&&history.state&&history.state.scroll||null;var i,s;N.nextTick().then(()=>o(t,n,a)).then(e=>e&&he(e)).catch(e=>x(e,t,n))}const n=e=>h.go(e);let I;const T=new Set,A={currentRoute:m,listening:!0,addRoute:function(e,t){let n,r;return r=ve(e)?((n=c.getRecordMatcher(e))||W(`Parent route "${String(e)}" not found when adding child route`,t),t):e,c.addRoute(r,n)},removeRoute:function(e){var t=c.getRecordMatcher(e);t?c.removeRoute(t):W(`Cannot remove non-existent route "${String(e)}"`)},clearRoutes:c.clearRoutes,hasRoute:function(e){return!!c.getRecordMatcher(e)},getRoutes:function(){return c.getRoutes().map(e=>e.record)},resolve:w,options:l,push:o,replace:function(e){return o(U(_(e),{replace:!0}))},go:n,back:()=>n(-1),forward:()=>n(1),beforeEach:p.add,beforeResolve:f.add,afterEach:e.add,onError:i.add,isReady:function(){return s&&m.value!==Q?Promise.resolve():new Promise((e,t)=>{r.add([e,t])})},install(e){e.component("RouterLink",Ne),e.component("RouterView",Ve),e.config.globalProperties.$router=this,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>N.unref(m)}),M&&!I&&m.value===Q&&(I=!0,o(h.location).catch(e=>{W("Unexpected error when starting the router:",e)}));var t={};for(const r in Q)Object.defineProperty(t,r,{get:()=>m.value[r],enumerable:!0});e.provide(te,this),e.provide(ne,N.shallowReactive(t)),e.provide(re,m);const n=e.unmount;T.add(e),e.unmount=function(){T.delete(e),T.size<1&&(v=Q,a&&a(),a=null,m.value=Q,I=!1,s=!1),n()},M&&ze(e,this,c)}};function L(e){return e.reduce((e,t)=>e.then(()=>R(t)),Promise.resolve())}return A},e.createRouterMatcher=Pe,e.createWebHashHistory=function(e){return(e=location.host?e||location.pathname+location.search:"").includes("#")||(e+="#"),e.endsWith("#/")||e.endsWith("#")||W(`A hash base must end with a "#":
+"${e}" should be "${e.replace(/#.*$/,"#")}".`),me(e)},e.createWebHistory=me,e.isNavigationFailure=Z,e.loadRouteLocation=function(e){return e.matched.every(e=>e.redirect)?Promise.reject(new Error("Cannot load a route that redirects.")):Promise.all(e.matched.map(r=>r.components&&Promise.all(Object.keys(r.components).reduce((e,n)=>{const t=r.components[n];return"function"!=typeof t||"displayName"in t||e.push(t().then(e=>{if(!e)return Promise.reject(new Error(`Couldn't resolve component "${n}" at "${r.path}". Ensure you passed a function that returns a promise.`));var t=f(e)?e.default:e;r.mods[n]=e,r.components[n]=t})),e},[])))).then(()=>e)},e.matchedRouteKey=i,e.onBeforeRouteLeave=function(e){var t;N.getCurrentInstance()?(t=N.inject(i,{}).value)?Le(t,"leaveGuards",e):W("No active route record was found when calling `onBeforeRouteLeave()`. Make sure you call this function inside a component child of . Maybe you called it inside of App.vue?"):W("getCurrentInstance() returned null. onBeforeRouteLeave() must be called at the top of a setup function")},e.onBeforeRouteUpdate=function(e){var t;N.getCurrentInstance()?(t=N.inject(i,{}).value)?Le(t,"updateGuards",e):W("No active route record was found when calling `onBeforeRouteUpdate()`. Make sure you call this function inside a component child of . Maybe you called it inside of App.vue?"):W("getCurrentInstance() returned null. onBeforeRouteUpdate() must be called at the top of a setup function")},e.parseQuery=Ae,e.routeLocationKey=ne,e.routerKey=te,e.routerViewLocationKey=re,e.stringifyQuery=ee,e.useLink=l,e.useRoute=function(e){return N.inject(ne)},e.useRouter=function(){return N.inject(te)},e.viewDepthKey=s,e}({},Vue);
\ No newline at end of file