{"version":3,"sources":["webpack:///./node_modules/vue-router/dist/vue-router.esm.js"],"names":["extend","a","b","key","encodeReserveRE","encodeReserveReplacer","c","charCodeAt","toString","commaRE","encode","str","encodeURIComponent","replace","decode","decodeURIComponent","err","resolveQuery","query","extraQuery","_parseQuery","parsedQuery","parse","parseQuery","e","value","Array","isArray","map","castQueryParamValue","String","res","trim","split","forEach","param","parts","shift","val","length","join","undefined","push","stringifyQuery","obj","Object","keys","result","val2","filter","x","trailingSlashRE","createRoute","record","location","redirectedFrom","router","options","clone","route","name","meta","path","hash","params","fullPath","getFullPath","matched","formatMatch","freeze","START","unshift","parent","ref","_stringifyQuery","stringify","isSameRoute","onlyPath","isObjectEqual","aKeys","sort","bKeys","every","i","aVal","bKey","bVal","isIncludedRoute","current","target","indexOf","queryIncludes","handleRouteEntered","instances","instance","cbs","enteredCbs","i$1","_isBeingDestroyed","View","functional","props","type","default","render","_","children","data","routerView","h","$createElement","$route","cache","_routerViewCache","depth","inactive","_routerRoot","vnodeData","$vnode","keepAlive","_directInactive","_inactive","$parent","routerViewDepth","cachedData","cachedComponent","component","configProps","fillPropsinData","components","registerRouteInstance","vm","hook","prepatch","vnode","componentInstance","init","propsToPass","resolveProps","attrs","config","resolvePath","relative","base","append","firstChar","charAt","stack","pop","segments","segment","parsePath","hashIndex","slice","queryIndex","cleanPath","isarray","arr","prototype","call","pathToRegexp_1","pathToRegexp","parse_1","compile_1","compile","tokensToFunction_1","tokensToFunction","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","RegExp","tokens","index","defaultDelimiter","delimiter","exec","m","escaped","offset","next","prefix","capture","group","modifier","asterisk","partial","repeat","optional","pattern","escapeGroup","escapeString","substr","encodeURIComponentPretty","encodeURI","toUpperCase","encodeAsterisk","matches","flags","opts","pretty","token","TypeError","JSON","j","test","attachKeys","re","sensitive","regexpToRegexp","groups","source","match","arrayToRegexp","regexp","stringToRegexp","strict","end","endsWithDelimiter","regexpCompileCache","create","fillParams","routeMsg","filler","pathMatch","normalizeLocation","raw","_normalized","params$1","rawPath","parsedPath","basePath","_Vue","toTypes","eventTypes","noop","Link","to","required","tag","custom","Boolean","exact","exactPath","activeClass","exactActiveClass","ariaCurrentValue","event","this$1","this","$router","resolve","href","classes","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","handler","guardEvent","on","click","class","scopedSlot","$scopedSlots","$hasNormal","navigate","isActive","isExactActive","aria-current","findAnchor","$slots","isStatic","aData","handler$1","event$1","aAttrs","metaKey","altKey","ctrlKey","shiftKey","defaultPrevented","button","currentTarget","getAttribute","preventDefault","child","install","Vue","installed","isDef","v","registerInstance","callVal","$options","_parentVnode","mixin","beforeCreate","_router","util","defineReactive","history","destroyed","defineProperty","get","_route","strats","optionMergeStrategies","beforeRouteEnter","beforeRouteLeave","beforeRouteUpdate","created","inBrowser","window","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","parentRoute","pathList","pathMap","nameMap","addRouteRecord","l","splice","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","caseSensitive","regex","compileRouteRegex","alias","redirect","beforeEnter","childMatchAs","aliases","aliasRoute","createMatcher","addRoutes","addRoute","parentOrRoute","getRoutes","currentRoute","_createRoute","paramNames","record$1","matchRoute","originalRedirect","hasOwnProperty","resolveRecordPath","resolvedPath","aliasedPath","aliasedMatch","aliasedRecord","len","Time","performance","now","Date","genStateKey","toFixed","_key","getStateKey","setStateKey","positionStore","setupScroll","scrollRestoration","protocolAndPath","protocol","host","absolutePath","stateCopy","state","replaceState","addEventListener","handlePopState","removeEventListener","handleScroll","from","isPop","app","behavior","scrollBehavior","$nextTick","position","getScrollPosition","shouldScroll","then","scrollToPosition","catch","saveScrollPosition","pageXOffset","y","pageYOffset","getElementPosition","el","docEl","document","documentElement","docRect","getBoundingClientRect","elRect","left","top","isValidPosition","isNumber","normalizePosition","normalizeOffset","hashStartsWithNumberRE","isObject","selector","getElementById","querySelector","style","scrollTo","supportsPushState","ua","navigator","userAgent","pushState","url","runQueue","queue","fn","cb","step","NavigationFailureType","redirected","aborted","cancelled","duplicated","createNavigationRedirectedError","createRouterError","stringifyRoute","createNavigationDuplicatedError","error","createNavigationCancelledError","createNavigationAbortedError","message","Error","_isRouter","propertiesToLog","isError","isNavigationFailure","errorType","resolveAsyncComponents","hasAsync","pending","flatMapComponents","def","cid","once","resolvedDef","isESModule","resolved","reject","reason","msg","comp","flatten","concat","apply","hasSymbol","Symbol","toStringTag","__esModule","called","args","arguments","History","normalizeBase","ready","readyCbs","readyErrorCbs","errorCbs","listeners","baseEl","resolveQueue","max","Math","updated","activated","deactivated","extractGuards","records","bind","reverse","guards","guard","extractGuard","extractLeaveGuards","bindGuard","extractUpdateHooks","extractEnterGuards","bindEnterGuard","listen","onReady","errorCb","onError","transitionTo","onComplete","onAbort","prev","confirmTransition","updateRoute","ensureURL","afterHooks","abort","console","lastRouteIndex","lastCurrentIndex","beforeHooks","iterator","enterGuards","resolveHooks","setupListeners","teardown","cleanupListener","HTML5History","_startLocation","getLocation","__proto__","constructor","expectScroll","supportsScroll","handleRoutingEvent","go","n","fromRoute","getCurrentLocation","pathname","pathLowerCase","toLowerCase","baseLowerCase","search","HashHistory","fallback","checkFallback","ensureSlash","getHash","replaceHash","eventType","pushHash","getUrl","AbstractHistory","targetIndex","VueRouter","apps","matcher","mode","prototypeAccessors","configurable","registerHook","list","createHref","$once","handleInitialScroll","routeOrError","beforeEach","beforeResolve","afterEach","Promise","back","forward","getMatchedComponents","normalizedTo","defineProperties","version","START_LOCATION","use","__webpack_exports__"],"mappings":"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","file":"js/chunk-vendors~b1f96ece.69e13a17.js","sourcesContent":["/*!\n * vue-router v3.5.3\n * (c) 2021 Evan You\n * @license MIT\n */\n/* */\n\nfunction assert (condition, message) {\n if (!condition) {\n throw new Error((\"[vue-router] \" + message))\n }\n}\n\nfunction warn (condition, message) {\n if (!condition) {\n typeof console !== 'undefined' && console.warn((\"[vue-router] \" + message));\n }\n}\n\nfunction extend (a, b) {\n for (var key in b) {\n a[key] = b[key];\n }\n return a\n}\n\n/* */\n\nvar encodeReserveRE = /[!'()*]/g;\nvar encodeReserveReplacer = function (c) { return '%' + c.charCodeAt(0).toString(16); };\nvar commaRE = /%2C/g;\n\n// fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nvar encode = function (str) { return encodeURIComponent(str)\n .replace(encodeReserveRE, encodeReserveReplacer)\n .replace(commaRE, ','); };\n\nfunction decode (str) {\n try {\n return decodeURIComponent(str)\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"Error decoding \\\"\" + str + \"\\\". Leaving it intact.\"));\n }\n }\n return str\n}\n\nfunction resolveQuery (\n query,\n extraQuery,\n _parseQuery\n) {\n if ( extraQuery === void 0 ) extraQuery = {};\n\n var parse = _parseQuery || parseQuery;\n var parsedQuery;\n try {\n parsedQuery = parse(query || '');\n } catch (e) {\n process.env.NODE_ENV !== 'production' && warn(false, e.message);\n parsedQuery = {};\n }\n for (var key in extraQuery) {\n var value = extraQuery[key];\n parsedQuery[key] = Array.isArray(value)\n ? value.map(castQueryParamValue)\n : castQueryParamValue(value);\n }\n return parsedQuery\n}\n\nvar castQueryParamValue = function (value) { return (value == null || typeof value === 'object' ? value : String(value)); };\n\nfunction parseQuery (query) {\n var res = {};\n\n query = query.trim().replace(/^(\\?|#|&)/, '');\n\n if (!query) {\n return res\n }\n\n query.split('&').forEach(function (param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = decode(parts.shift());\n var val = parts.length > 0 ? decode(parts.join('=')) : null;\n\n if (res[key] === undefined) {\n res[key] = val;\n } else if (Array.isArray(res[key])) {\n res[key].push(val);\n } else {\n res[key] = [res[key], val];\n }\n });\n\n return res\n}\n\nfunction stringifyQuery (obj) {\n var res = obj\n ? Object.keys(obj)\n .map(function (key) {\n var val = obj[key];\n\n if (val === undefined) {\n return ''\n }\n\n if (val === null) {\n return encode(key)\n }\n\n if (Array.isArray(val)) {\n var result = [];\n val.forEach(function (val2) {\n if (val2 === undefined) {\n return\n }\n if (val2 === null) {\n result.push(encode(key));\n } else {\n result.push(encode(key) + '=' + encode(val2));\n }\n });\n return result.join('&')\n }\n\n return encode(key) + '=' + encode(val)\n })\n .filter(function (x) { return x.length > 0; })\n .join('&')\n : null;\n return res ? (\"?\" + res) : ''\n}\n\n/* */\n\nvar trailingSlashRE = /\\/?$/;\n\nfunction createRoute (\n record,\n location,\n redirectedFrom,\n router\n) {\n var stringifyQuery = router && router.options.stringifyQuery;\n\n var query = location.query || {};\n try {\n query = clone(query);\n } catch (e) {}\n\n var route = {\n name: location.name || (record && record.name),\n meta: (record && record.meta) || {},\n path: location.path || '/',\n hash: location.hash || '',\n query: query,\n params: location.params || {},\n fullPath: getFullPath(location, stringifyQuery),\n matched: record ? formatMatch(record) : []\n };\n if (redirectedFrom) {\n route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery);\n }\n return Object.freeze(route)\n}\n\nfunction clone (value) {\n if (Array.isArray(value)) {\n return value.map(clone)\n } else if (value && typeof value === 'object') {\n var res = {};\n for (var key in value) {\n res[key] = clone(value[key]);\n }\n return res\n } else {\n return value\n }\n}\n\n// the starting route that represents the initial state\nvar START = createRoute(null, {\n path: '/'\n});\n\nfunction formatMatch (record) {\n var res = [];\n while (record) {\n res.unshift(record);\n record = record.parent;\n }\n return res\n}\n\nfunction getFullPath (\n ref,\n _stringifyQuery\n) {\n var path = ref.path;\n var query = ref.query; if ( query === void 0 ) query = {};\n var hash = ref.hash; if ( hash === void 0 ) hash = '';\n\n var stringify = _stringifyQuery || stringifyQuery;\n return (path || '/') + stringify(query) + hash\n}\n\nfunction isSameRoute (a, b, onlyPath) {\n if (b === START) {\n return a === b\n } else if (!b) {\n return false\n } else if (a.path && b.path) {\n return a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') && (onlyPath ||\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query))\n } else if (a.name && b.name) {\n return (\n a.name === b.name &&\n (onlyPath || (\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query) &&\n isObjectEqual(a.params, b.params))\n )\n )\n } else {\n return false\n }\n}\n\nfunction isObjectEqual (a, b) {\n if ( a === void 0 ) a = {};\n if ( b === void 0 ) b = {};\n\n // handle null value #1566\n if (!a || !b) { return a === b }\n var aKeys = Object.keys(a).sort();\n var bKeys = Object.keys(b).sort();\n if (aKeys.length !== bKeys.length) {\n return false\n }\n return aKeys.every(function (key, i) {\n var aVal = a[key];\n var bKey = bKeys[i];\n if (bKey !== key) { return false }\n var bVal = b[key];\n // query values can be null and undefined\n if (aVal == null || bVal == null) { return aVal === bVal }\n // check nested equality\n if (typeof aVal === 'object' && typeof bVal === 'object') {\n return isObjectEqual(aVal, bVal)\n }\n return String(aVal) === String(bVal)\n })\n}\n\nfunction isIncludedRoute (current, target) {\n return (\n current.path.replace(trailingSlashRE, '/').indexOf(\n target.path.replace(trailingSlashRE, '/')\n ) === 0 &&\n (!target.hash || current.hash === target.hash) &&\n queryIncludes(current.query, target.query)\n )\n}\n\nfunction queryIncludes (current, target) {\n for (var key in target) {\n if (!(key in current)) {\n return false\n }\n }\n return true\n}\n\nfunction handleRouteEntered (route) {\n for (var i = 0; i < route.matched.length; i++) {\n var record = route.matched[i];\n for (var name in record.instances) {\n var instance = record.instances[name];\n var cbs = record.enteredCbs[name];\n if (!instance || !cbs) { continue }\n delete record.enteredCbs[name];\n for (var i$1 = 0; i$1 < cbs.length; i$1++) {\n if (!instance._isBeingDestroyed) { cbs[i$1](instance); }\n }\n }\n }\n}\n\nvar View = {\n name: 'RouterView',\n functional: true,\n props: {\n name: {\n type: String,\n default: 'default'\n }\n },\n render: function render (_, ref) {\n var props = ref.props;\n var children = ref.children;\n var parent = ref.parent;\n var data = ref.data;\n\n // used by devtools to display a router-view badge\n data.routerView = true;\n\n // directly use parent context's createElement() function\n // so that components rendered by router-view can resolve named slots\n var h = parent.$createElement;\n var name = props.name;\n var route = parent.$route;\n var cache = parent._routerViewCache || (parent._routerViewCache = {});\n\n // determine current view depth, also check to see if the tree\n // has been toggled inactive but kept-alive.\n var depth = 0;\n var inactive = false;\n while (parent && parent._routerRoot !== parent) {\n var vnodeData = parent.$vnode ? parent.$vnode.data : {};\n if (vnodeData.routerView) {\n depth++;\n }\n if (vnodeData.keepAlive && parent._directInactive && parent._inactive) {\n inactive = true;\n }\n parent = parent.$parent;\n }\n data.routerViewDepth = depth;\n\n // render previous view if the tree is inactive and kept-alive\n if (inactive) {\n var cachedData = cache[name];\n var cachedComponent = cachedData && cachedData.component;\n if (cachedComponent) {\n // #2301\n // pass props\n if (cachedData.configProps) {\n fillPropsinData(cachedComponent, data, cachedData.route, cachedData.configProps);\n }\n return h(cachedComponent, data, children)\n } else {\n // render previous empty view\n return h()\n }\n }\n\n var matched = route.matched[depth];\n var component = matched && matched.components[name];\n\n // render empty node if no matched route or no config component\n if (!matched || !component) {\n cache[name] = null;\n return h()\n }\n\n // cache component\n cache[name] = { component: component };\n\n // attach instance registration hook\n // this will be called in the instance's injected lifecycle hooks\n data.registerRouteInstance = function (vm, val) {\n // val could be undefined for unregistration\n var current = matched.instances[name];\n if (\n (val && current !== vm) ||\n (!val && current === vm)\n ) {\n matched.instances[name] = val;\n }\n }\n\n // also register instance in prepatch hook\n // in case the same component instance is reused across different routes\n ;(data.hook || (data.hook = {})).prepatch = function (_, vnode) {\n matched.instances[name] = vnode.componentInstance;\n };\n\n // register instance in init hook\n // in case kept-alive component be actived when routes changed\n data.hook.init = function (vnode) {\n if (vnode.data.keepAlive &&\n vnode.componentInstance &&\n vnode.componentInstance !== matched.instances[name]\n ) {\n matched.instances[name] = vnode.componentInstance;\n }\n\n // if the route transition has already been confirmed then we weren't\n // able to call the cbs during confirmation as the component was not\n // registered yet, so we call it here.\n handleRouteEntered(route);\n };\n\n var configProps = matched.props && matched.props[name];\n // save route and configProps in cache\n if (configProps) {\n extend(cache[name], {\n route: route,\n configProps: configProps\n });\n fillPropsinData(component, data, route, configProps);\n }\n\n return h(component, data, children)\n }\n};\n\nfunction fillPropsinData (component, data, route, configProps) {\n // resolve props\n var propsToPass = data.props = resolveProps(route, configProps);\n if (propsToPass) {\n // clone to prevent mutation\n propsToPass = data.props = extend({}, propsToPass);\n // pass non-declared props as attrs\n var attrs = data.attrs = data.attrs || {};\n for (var key in propsToPass) {\n if (!component.props || !(key in component.props)) {\n attrs[key] = propsToPass[key];\n delete propsToPass[key];\n }\n }\n }\n}\n\nfunction resolveProps (route, config) {\n switch (typeof config) {\n case 'undefined':\n return\n case 'object':\n return config\n case 'function':\n return config(route)\n case 'boolean':\n return config ? route.params : undefined\n default:\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n \"props in \\\"\" + (route.path) + \"\\\" is a \" + (typeof config) + \", \" +\n \"expecting an object, function or boolean.\"\n );\n }\n }\n}\n\n/* */\n\nfunction resolvePath (\n relative,\n base,\n append\n) {\n var firstChar = relative.charAt(0);\n if (firstChar === '/') {\n return relative\n }\n\n if (firstChar === '?' || firstChar === '#') {\n return base + relative\n }\n\n var stack = base.split('/');\n\n // remove trailing segment if:\n // - not appending\n // - appending to trailing slash (last segment is empty)\n if (!append || !stack[stack.length - 1]) {\n stack.pop();\n }\n\n // resolve relative path\n var segments = relative.replace(/^\\//, '').split('/');\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n if (segment === '..') {\n stack.pop();\n } else if (segment !== '.') {\n stack.push(segment);\n }\n }\n\n // ensure leading slash\n if (stack[0] !== '') {\n stack.unshift('');\n }\n\n return stack.join('/')\n}\n\nfunction parsePath (path) {\n var hash = '';\n var query = '';\n\n var hashIndex = path.indexOf('#');\n if (hashIndex >= 0) {\n hash = path.slice(hashIndex);\n path = path.slice(0, hashIndex);\n }\n\n var queryIndex = path.indexOf('?');\n if (queryIndex >= 0) {\n query = path.slice(queryIndex + 1);\n path = path.slice(0, queryIndex);\n }\n\n return {\n path: path,\n query: query,\n hash: hash\n }\n}\n\nfunction cleanPath (path) {\n return path.replace(/\\/+/g, '/')\n}\n\nvar isarray = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = options && options.delimiter || '/';\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n continue\n }\n\n var next = str[index];\n var prefix = res[2];\n var name = res[3];\n var capture = res[4];\n var group = res[5];\n var modifier = res[6];\n var asterisk = res[7];\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n }\n\n var partial = prefix != null && next != null && next !== prefix;\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var delimiter = res[2] || defaultDelimiter;\n var pattern = capture || group;\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n });\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index);\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path);\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));\n }\n }\n\n return function (obj, opts) {\n var path = '';\n var data = obj || {};\n var options = opts || {};\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n\n continue\n }\n\n var value = data[token.name];\n var segment;\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix;\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j]);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys;\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n });\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n var strict = options.strict;\n var end = options.end !== false;\n var route = '';\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var prefix = escapeString(token.prefix);\n var capture = '(?:' + token.pattern + ')';\n\n keys.push(token);\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*';\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?';\n } else {\n capture = prefix + '(' + capture + ')?';\n }\n } else {\n capture = prefix + '(' + capture + ')';\n }\n\n route += capture;\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/');\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n }\n\n if (end) {\n route += '$';\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\npathToRegexp_1.parse = parse_1;\npathToRegexp_1.compile = compile_1;\npathToRegexp_1.tokensToFunction = tokensToFunction_1;\npathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n/* */\n\n// $flow-disable-line\nvar regexpCompileCache = Object.create(null);\n\nfunction fillParams (\n path,\n params,\n routeMsg\n) {\n params = params || {};\n try {\n var filler =\n regexpCompileCache[path] ||\n (regexpCompileCache[path] = pathToRegexp_1.compile(path));\n\n // Fix #2505 resolving asterisk routes { name: 'not-found', params: { pathMatch: '/not-found' }}\n // and fix #3106 so that you can work with location descriptor object having params.pathMatch equal to empty string\n if (typeof params.pathMatch === 'string') { params[0] = params.pathMatch; }\n\n return filler(params, { pretty: true })\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n // Fix #3072 no warn if `pathMatch` is string\n warn(typeof params.pathMatch === 'string', (\"missing param for \" + routeMsg + \": \" + (e.message)));\n }\n return ''\n } finally {\n // delete the 0 if it was added\n delete params[0];\n }\n}\n\n/* */\n\nfunction normalizeLocation (\n raw,\n current,\n append,\n router\n) {\n var next = typeof raw === 'string' ? { path: raw } : raw;\n // named target\n if (next._normalized) {\n return next\n } else if (next.name) {\n next = extend({}, raw);\n var params = next.params;\n if (params && typeof params === 'object') {\n next.params = extend({}, params);\n }\n return next\n }\n\n // relative params\n if (!next.path && next.params && current) {\n next = extend({}, next);\n next._normalized = true;\n var params$1 = extend(extend({}, current.params), next.params);\n if (current.name) {\n next.name = current.name;\n next.params = params$1;\n } else if (current.matched.length) {\n var rawPath = current.matched[current.matched.length - 1].path;\n next.path = fillParams(rawPath, params$1, (\"path \" + (current.path)));\n } else if (process.env.NODE_ENV !== 'production') {\n warn(false, \"relative params navigation requires a current route.\");\n }\n return next\n }\n\n var parsedPath = parsePath(next.path || '');\n var basePath = (current && current.path) || '/';\n var path = parsedPath.path\n ? resolvePath(parsedPath.path, basePath, append || next.append)\n : basePath;\n\n var query = resolveQuery(\n parsedPath.query,\n next.query,\n router && router.options.parseQuery\n );\n\n var hash = next.hash || parsedPath.hash;\n if (hash && hash.charAt(0) !== '#') {\n hash = \"#\" + hash;\n }\n\n return {\n _normalized: true,\n path: path,\n query: query,\n hash: hash\n }\n}\n\n/* */\n\n// work around weird flow bug\nvar toTypes = [String, Object];\nvar eventTypes = [String, Array];\n\nvar noop = function () {};\n\nvar warnedCustomSlot;\nvar warnedTagProp;\nvar warnedEventProp;\n\nvar Link = {\n name: 'RouterLink',\n props: {\n to: {\n type: toTypes,\n required: true\n },\n tag: {\n type: String,\n default: 'a'\n },\n custom: Boolean,\n exact: Boolean,\n exactPath: Boolean,\n append: Boolean,\n replace: Boolean,\n activeClass: String,\n exactActiveClass: String,\n ariaCurrentValue: {\n type: String,\n default: 'page'\n },\n event: {\n type: eventTypes,\n default: 'click'\n }\n },\n render: function render (h) {\n var this$1 = this;\n\n var router = this.$router;\n var current = this.$route;\n var ref = router.resolve(\n this.to,\n current,\n this.append\n );\n var location = ref.location;\n var route = ref.route;\n var href = ref.href;\n\n var classes = {};\n var globalActiveClass = router.options.linkActiveClass;\n var globalExactActiveClass = router.options.linkExactActiveClass;\n // Support global empty active class\n var activeClassFallback =\n globalActiveClass == null ? 'router-link-active' : globalActiveClass;\n var exactActiveClassFallback =\n globalExactActiveClass == null\n ? 'router-link-exact-active'\n : globalExactActiveClass;\n var activeClass =\n this.activeClass == null ? activeClassFallback : this.activeClass;\n var exactActiveClass =\n this.exactActiveClass == null\n ? exactActiveClassFallback\n : this.exactActiveClass;\n\n var compareTarget = route.redirectedFrom\n ? createRoute(null, normalizeLocation(route.redirectedFrom), null, router)\n : route;\n\n classes[exactActiveClass] = isSameRoute(current, compareTarget, this.exactPath);\n classes[activeClass] = this.exact || this.exactPath\n ? classes[exactActiveClass]\n : isIncludedRoute(current, compareTarget);\n\n var ariaCurrentValue = classes[exactActiveClass] ? this.ariaCurrentValue : null;\n\n var handler = function (e) {\n if (guardEvent(e)) {\n if (this$1.replace) {\n router.replace(location, noop);\n } else {\n router.push(location, noop);\n }\n }\n };\n\n var on = { click: guardEvent };\n if (Array.isArray(this.event)) {\n this.event.forEach(function (e) {\n on[e] = handler;\n });\n } else {\n on[this.event] = handler;\n }\n\n var data = { class: classes };\n\n var scopedSlot =\n !this.$scopedSlots.$hasNormal &&\n this.$scopedSlots.default &&\n this.$scopedSlots.default({\n href: href,\n route: route,\n navigate: handler,\n isActive: classes[activeClass],\n isExactActive: classes[exactActiveClass]\n });\n\n if (scopedSlot) {\n if (process.env.NODE_ENV !== 'production' && !this.custom) {\n !warnedCustomSlot && warn(false, 'In Vue Router 4, the v-slot API will by default wrap its content with an element. Use the custom prop to remove this warning:\\n\\n');\n warnedCustomSlot = true;\n }\n if (scopedSlot.length === 1) {\n return scopedSlot[0]\n } else if (scopedSlot.length > 1 || !scopedSlot.length) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n (\" with to=\\\"\" + (this.to) + \"\\\" is trying to use a scoped slot but it didn't provide exactly one child. Wrapping the content with a span element.\")\n );\n }\n return scopedSlot.length === 0 ? h() : h('span', {}, scopedSlot)\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if ('tag' in this.$options.propsData && !warnedTagProp) {\n warn(\n false,\n \"'s tag prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedTagProp = true;\n }\n if ('event' in this.$options.propsData && !warnedEventProp) {\n warn(\n false,\n \"'s event prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedEventProp = true;\n }\n }\n\n if (this.tag === 'a') {\n data.on = on;\n data.attrs = { href: href, 'aria-current': ariaCurrentValue };\n } else {\n // find the first child and apply listener and href\n var a = findAnchor(this.$slots.default);\n if (a) {\n // in case the is a static node\n a.isStatic = false;\n var aData = (a.data = extend({}, a.data));\n aData.on = aData.on || {};\n // transform existing events in both objects into arrays so we can push later\n for (var event in aData.on) {\n var handler$1 = aData.on[event];\n if (event in on) {\n aData.on[event] = Array.isArray(handler$1) ? handler$1 : [handler$1];\n }\n }\n // append new listeners for router-link\n for (var event$1 in on) {\n if (event$1 in aData.on) {\n // on[event] is always a function\n aData.on[event$1].push(on[event$1]);\n } else {\n aData.on[event$1] = handler;\n }\n }\n\n var aAttrs = (a.data.attrs = extend({}, a.data.attrs));\n aAttrs.href = href;\n aAttrs['aria-current'] = ariaCurrentValue;\n } else {\n // doesn't have child, apply listener to self\n data.on = on;\n }\n }\n\n return h(this.tag, data, this.$slots.default)\n }\n};\n\nfunction guardEvent (e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n // don't redirect when preventDefault called\n if (e.defaultPrevented) { return }\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0) { return }\n // don't redirect if `target=\"_blank\"`\n if (e.currentTarget && e.currentTarget.getAttribute) {\n var target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target)) { return }\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault) {\n e.preventDefault();\n }\n return true\n}\n\nfunction findAnchor (children) {\n if (children) {\n var child;\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n if (child.tag === 'a') {\n return child\n }\n if (child.children && (child = findAnchor(child.children))) {\n return child\n }\n }\n }\n}\n\nvar _Vue;\n\nfunction install (Vue) {\n if (install.installed && _Vue === Vue) { return }\n install.installed = true;\n\n _Vue = Vue;\n\n var isDef = function (v) { return v !== undefined; };\n\n var registerInstance = function (vm, callVal) {\n var i = vm.$options._parentVnode;\n if (isDef(i) && isDef(i = i.data) && isDef(i = i.registerRouteInstance)) {\n i(vm, callVal);\n }\n };\n\n Vue.mixin({\n beforeCreate: function beforeCreate () {\n if (isDef(this.$options.router)) {\n this._routerRoot = this;\n this._router = this.$options.router;\n this._router.init(this);\n Vue.util.defineReactive(this, '_route', this._router.history.current);\n } else {\n this._routerRoot = (this.$parent && this.$parent._routerRoot) || this;\n }\n registerInstance(this, this);\n },\n destroyed: function destroyed () {\n registerInstance(this);\n }\n });\n\n Object.defineProperty(Vue.prototype, '$router', {\n get: function get () { return this._routerRoot._router }\n });\n\n Object.defineProperty(Vue.prototype, '$route', {\n get: function get () { return this._routerRoot._route }\n });\n\n Vue.component('RouterView', View);\n Vue.component('RouterLink', Link);\n\n var strats = Vue.config.optionMergeStrategies;\n // use the same hook merging strategy for route hooks\n strats.beforeRouteEnter = strats.beforeRouteLeave = strats.beforeRouteUpdate = strats.created;\n}\n\n/* */\n\nvar inBrowser = typeof window !== 'undefined';\n\n/* */\n\nfunction createRouteMap (\n routes,\n oldPathList,\n oldPathMap,\n oldNameMap,\n parentRoute\n) {\n // the path list is used to control path matching priority\n var pathList = oldPathList || [];\n // $flow-disable-line\n var pathMap = oldPathMap || Object.create(null);\n // $flow-disable-line\n var nameMap = oldNameMap || Object.create(null);\n\n routes.forEach(function (route) {\n addRouteRecord(pathList, pathMap, nameMap, route, parentRoute);\n });\n\n // ensure wildcard routes are always at the end\n for (var i = 0, l = pathList.length; i < l; i++) {\n if (pathList[i] === '*') {\n pathList.push(pathList.splice(i, 1)[0]);\n l--;\n i--;\n }\n }\n\n if (process.env.NODE_ENV === 'development') {\n // warn if routes do not include leading slashes\n var found = pathList\n // check for missing leading slash\n .filter(function (path) { return path && path.charAt(0) !== '*' && path.charAt(0) !== '/'; });\n\n if (found.length > 0) {\n var pathNames = found.map(function (path) { return (\"- \" + path); }).join('\\n');\n warn(false, (\"Non-nested routes must include a leading slash character. Fix the following routes: \\n\" + pathNames));\n }\n }\n\n return {\n pathList: pathList,\n pathMap: pathMap,\n nameMap: nameMap\n }\n}\n\nfunction addRouteRecord (\n pathList,\n pathMap,\n nameMap,\n route,\n parent,\n matchAs\n) {\n var path = route.path;\n var name = route.name;\n if (process.env.NODE_ENV !== 'production') {\n assert(path != null, \"\\\"path\\\" is required in a route configuration.\");\n assert(\n typeof route.component !== 'string',\n \"route config \\\"component\\\" for path: \" + (String(\n path || name\n )) + \" cannot be a \" + \"string id. Use an actual component instead.\"\n );\n\n warn(\n // eslint-disable-next-line no-control-regex\n !/[^\\u0000-\\u007F]+/.test(path),\n \"Route with path \\\"\" + path + \"\\\" contains unencoded characters, make sure \" +\n \"your path is correctly encoded before passing it to the router. Use \" +\n \"encodeURI to encode static segments of your path.\"\n );\n }\n\n var pathToRegexpOptions =\n route.pathToRegexpOptions || {};\n var normalizedPath = normalizePath(path, parent, pathToRegexpOptions.strict);\n\n if (typeof route.caseSensitive === 'boolean') {\n pathToRegexpOptions.sensitive = route.caseSensitive;\n }\n\n var record = {\n path: normalizedPath,\n regex: compileRouteRegex(normalizedPath, pathToRegexpOptions),\n components: route.components || { default: route.component },\n alias: route.alias\n ? typeof route.alias === 'string'\n ? [route.alias]\n : route.alias\n : [],\n instances: {},\n enteredCbs: {},\n name: name,\n parent: parent,\n matchAs: matchAs,\n redirect: route.redirect,\n beforeEnter: route.beforeEnter,\n meta: route.meta || {},\n props:\n route.props == null\n ? {}\n : route.components\n ? route.props\n : { default: route.props }\n };\n\n if (route.children) {\n // Warn if route is named, does not redirect and has a default child route.\n // If users navigate to this route by name, the default child will\n // not be rendered (GH Issue #629)\n if (process.env.NODE_ENV !== 'production') {\n if (\n route.name &&\n !route.redirect &&\n route.children.some(function (child) { return /^\\/?$/.test(child.path); })\n ) {\n warn(\n false,\n \"Named Route '\" + (route.name) + \"' has a default child route. \" +\n \"When navigating to this named route (:to=\\\"{name: '\" + (route.name) + \"'\\\"), \" +\n \"the default child route will not be rendered. Remove the name from \" +\n \"this route and use the name of the default child route for named \" +\n \"links instead.\"\n );\n }\n }\n route.children.forEach(function (child) {\n var childMatchAs = matchAs\n ? cleanPath((matchAs + \"/\" + (child.path)))\n : undefined;\n addRouteRecord(pathList, pathMap, nameMap, child, record, childMatchAs);\n });\n }\n\n if (!pathMap[record.path]) {\n pathList.push(record.path);\n pathMap[record.path] = record;\n }\n\n if (route.alias !== undefined) {\n var aliases = Array.isArray(route.alias) ? route.alias : [route.alias];\n for (var i = 0; i < aliases.length; ++i) {\n var alias = aliases[i];\n if (process.env.NODE_ENV !== 'production' && alias === path) {\n warn(\n false,\n (\"Found an alias with the same value as the path: \\\"\" + path + \"\\\". You have to remove that alias. It will be ignored in development.\")\n );\n // skip in dev to make it work\n continue\n }\n\n var aliasRoute = {\n path: alias,\n children: route.children\n };\n addRouteRecord(\n pathList,\n pathMap,\n nameMap,\n aliasRoute,\n parent,\n record.path || '/' // matchAs\n );\n }\n }\n\n if (name) {\n if (!nameMap[name]) {\n nameMap[name] = record;\n } else if (process.env.NODE_ENV !== 'production' && !matchAs) {\n warn(\n false,\n \"Duplicate named routes definition: \" +\n \"{ name: \\\"\" + name + \"\\\", path: \\\"\" + (record.path) + \"\\\" }\"\n );\n }\n }\n}\n\nfunction compileRouteRegex (\n path,\n pathToRegexpOptions\n) {\n var regex = pathToRegexp_1(path, [], pathToRegexpOptions);\n if (process.env.NODE_ENV !== 'production') {\n var keys = Object.create(null);\n regex.keys.forEach(function (key) {\n warn(\n !keys[key.name],\n (\"Duplicate param keys in route with path: \\\"\" + path + \"\\\"\")\n );\n keys[key.name] = true;\n });\n }\n return regex\n}\n\nfunction normalizePath (\n path,\n parent,\n strict\n) {\n if (!strict) { path = path.replace(/\\/$/, ''); }\n if (path[0] === '/') { return path }\n if (parent == null) { return path }\n return cleanPath(((parent.path) + \"/\" + path))\n}\n\n/* */\n\n\n\nfunction createMatcher (\n routes,\n router\n) {\n var ref = createRouteMap(routes);\n var pathList = ref.pathList;\n var pathMap = ref.pathMap;\n var nameMap = ref.nameMap;\n\n function addRoutes (routes) {\n createRouteMap(routes, pathList, pathMap, nameMap);\n }\n\n function addRoute (parentOrRoute, route) {\n var parent = (typeof parentOrRoute !== 'object') ? nameMap[parentOrRoute] : undefined;\n // $flow-disable-line\n createRouteMap([route || parentOrRoute], pathList, pathMap, nameMap, parent);\n\n // add aliases of parent\n if (parent && parent.alias.length) {\n createRouteMap(\n // $flow-disable-line route is defined if parent is\n parent.alias.map(function (alias) { return ({ path: alias, children: [route] }); }),\n pathList,\n pathMap,\n nameMap,\n parent\n );\n }\n }\n\n function getRoutes () {\n return pathList.map(function (path) { return pathMap[path]; })\n }\n\n function match (\n raw,\n currentRoute,\n redirectedFrom\n ) {\n var location = normalizeLocation(raw, currentRoute, false, router);\n var name = location.name;\n\n if (name) {\n var record = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n warn(record, (\"Route with name '\" + name + \"' does not exist\"));\n }\n if (!record) { return _createRoute(null, location) }\n var paramNames = record.regex.keys\n .filter(function (key) { return !key.optional; })\n .map(function (key) { return key.name; });\n\n if (typeof location.params !== 'object') {\n location.params = {};\n }\n\n if (currentRoute && typeof currentRoute.params === 'object') {\n for (var key in currentRoute.params) {\n if (!(key in location.params) && paramNames.indexOf(key) > -1) {\n location.params[key] = currentRoute.params[key];\n }\n }\n }\n\n location.path = fillParams(record.path, location.params, (\"named route \\\"\" + name + \"\\\"\"));\n return _createRoute(record, location, redirectedFrom)\n } else if (location.path) {\n location.params = {};\n for (var i = 0; i < pathList.length; i++) {\n var path = pathList[i];\n var record$1 = pathMap[path];\n if (matchRoute(record$1.regex, location.path, location.params)) {\n return _createRoute(record$1, location, redirectedFrom)\n }\n }\n }\n // no match\n return _createRoute(null, location)\n }\n\n function redirect (\n record,\n location\n ) {\n var originalRedirect = record.redirect;\n var redirect = typeof originalRedirect === 'function'\n ? originalRedirect(createRoute(record, location, null, router))\n : originalRedirect;\n\n if (typeof redirect === 'string') {\n redirect = { path: redirect };\n }\n\n if (!redirect || typeof redirect !== 'object') {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false, (\"invalid redirect option: \" + (JSON.stringify(redirect)))\n );\n }\n return _createRoute(null, location)\n }\n\n var re = redirect;\n var name = re.name;\n var path = re.path;\n var query = location.query;\n var hash = location.hash;\n var params = location.params;\n query = re.hasOwnProperty('query') ? re.query : query;\n hash = re.hasOwnProperty('hash') ? re.hash : hash;\n params = re.hasOwnProperty('params') ? re.params : params;\n\n if (name) {\n // resolved named direct\n var targetRecord = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n assert(targetRecord, (\"redirect failed: named route \\\"\" + name + \"\\\" not found.\"));\n }\n return match({\n _normalized: true,\n name: name,\n query: query,\n hash: hash,\n params: params\n }, undefined, location)\n } else if (path) {\n // 1. resolve relative redirect\n var rawPath = resolveRecordPath(path, record);\n // 2. resolve params\n var resolvedPath = fillParams(rawPath, params, (\"redirect route with path \\\"\" + rawPath + \"\\\"\"));\n // 3. rematch with existing query and hash\n return match({\n _normalized: true,\n path: resolvedPath,\n query: query,\n hash: hash\n }, undefined, location)\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"invalid redirect option: \" + (JSON.stringify(redirect))));\n }\n return _createRoute(null, location)\n }\n }\n\n function alias (\n record,\n location,\n matchAs\n ) {\n var aliasedPath = fillParams(matchAs, location.params, (\"aliased route with path \\\"\" + matchAs + \"\\\"\"));\n var aliasedMatch = match({\n _normalized: true,\n path: aliasedPath\n });\n if (aliasedMatch) {\n var matched = aliasedMatch.matched;\n var aliasedRecord = matched[matched.length - 1];\n location.params = aliasedMatch.params;\n return _createRoute(aliasedRecord, location)\n }\n return _createRoute(null, location)\n }\n\n function _createRoute (\n record,\n location,\n redirectedFrom\n ) {\n if (record && record.redirect) {\n return redirect(record, redirectedFrom || location)\n }\n if (record && record.matchAs) {\n return alias(record, location, record.matchAs)\n }\n return createRoute(record, location, redirectedFrom, router)\n }\n\n return {\n match: match,\n addRoute: addRoute,\n getRoutes: getRoutes,\n addRoutes: addRoutes\n }\n}\n\nfunction matchRoute (\n regex,\n path,\n params\n) {\n var m = path.match(regex);\n\n if (!m) {\n return false\n } else if (!params) {\n return true\n }\n\n for (var i = 1, len = m.length; i < len; ++i) {\n var key = regex.keys[i - 1];\n if (key) {\n // Fix #1994: using * with props: true generates a param named 0\n params[key.name || 'pathMatch'] = typeof m[i] === 'string' ? decode(m[i]) : m[i];\n }\n }\n\n return true\n}\n\nfunction resolveRecordPath (path, record) {\n return resolvePath(path, record.parent ? record.parent.path : '/', true)\n}\n\n/* */\n\n// use User Timing api (if present) for more accurate key precision\nvar Time =\n inBrowser && window.performance && window.performance.now\n ? window.performance\n : Date;\n\nfunction genStateKey () {\n return Time.now().toFixed(3)\n}\n\nvar _key = genStateKey();\n\nfunction getStateKey () {\n return _key\n}\n\nfunction setStateKey (key) {\n return (_key = key)\n}\n\n/* */\n\nvar positionStore = Object.create(null);\n\nfunction setupScroll () {\n // Prevent browser scroll behavior on History popstate\n if ('scrollRestoration' in window.history) {\n window.history.scrollRestoration = 'manual';\n }\n // Fix for #1585 for Firefox\n // Fix for #2195 Add optional third attribute to workaround a bug in safari https://bugs.webkit.org/show_bug.cgi?id=182678\n // Fix for #2774 Support for apps loaded from Windows file shares not mapped to network drives: replaced location.origin with\n // window.location.protocol + '//' + window.location.host\n // location.host contains the port and location.hostname doesn't\n var protocolAndPath = window.location.protocol + '//' + window.location.host;\n var absolutePath = window.location.href.replace(protocolAndPath, '');\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, window.history.state);\n stateCopy.key = getStateKey();\n window.history.replaceState(stateCopy, '', absolutePath);\n window.addEventListener('popstate', handlePopState);\n return function () {\n window.removeEventListener('popstate', handlePopState);\n }\n}\n\nfunction handleScroll (\n router,\n to,\n from,\n isPop\n) {\n if (!router.app) {\n return\n }\n\n var behavior = router.options.scrollBehavior;\n if (!behavior) {\n return\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(typeof behavior === 'function', \"scrollBehavior must be a function\");\n }\n\n // wait until re-render finishes before scrolling\n router.app.$nextTick(function () {\n var position = getScrollPosition();\n var shouldScroll = behavior.call(\n router,\n to,\n from,\n isPop ? position : null\n );\n\n if (!shouldScroll) {\n return\n }\n\n if (typeof shouldScroll.then === 'function') {\n shouldScroll\n .then(function (shouldScroll) {\n scrollToPosition((shouldScroll), position);\n })\n .catch(function (err) {\n if (process.env.NODE_ENV !== 'production') {\n assert(false, err.toString());\n }\n });\n } else {\n scrollToPosition(shouldScroll, position);\n }\n });\n}\n\nfunction saveScrollPosition () {\n var key = getStateKey();\n if (key) {\n positionStore[key] = {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n }\n}\n\nfunction handlePopState (e) {\n saveScrollPosition();\n if (e.state && e.state.key) {\n setStateKey(e.state.key);\n }\n}\n\nfunction getScrollPosition () {\n var key = getStateKey();\n if (key) {\n return positionStore[key]\n }\n}\n\nfunction getElementPosition (el, offset) {\n var docEl = document.documentElement;\n var docRect = docEl.getBoundingClientRect();\n var elRect = el.getBoundingClientRect();\n return {\n x: elRect.left - docRect.left - offset.x,\n y: elRect.top - docRect.top - offset.y\n }\n}\n\nfunction isValidPosition (obj) {\n return isNumber(obj.x) || isNumber(obj.y)\n}\n\nfunction normalizePosition (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : window.pageXOffset,\n y: isNumber(obj.y) ? obj.y : window.pageYOffset\n }\n}\n\nfunction normalizeOffset (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : 0,\n y: isNumber(obj.y) ? obj.y : 0\n }\n}\n\nfunction isNumber (v) {\n return typeof v === 'number'\n}\n\nvar hashStartsWithNumberRE = /^#\\d/;\n\nfunction scrollToPosition (shouldScroll, position) {\n var isObject = typeof shouldScroll === 'object';\n if (isObject && typeof shouldScroll.selector === 'string') {\n // getElementById would still fail if the selector contains a more complicated query like #main[data-attr]\n // but at the same time, it doesn't make much sense to select an element with an id and an extra selector\n var el = hashStartsWithNumberRE.test(shouldScroll.selector) // $flow-disable-line\n ? document.getElementById(shouldScroll.selector.slice(1)) // $flow-disable-line\n : document.querySelector(shouldScroll.selector);\n\n if (el) {\n var offset =\n shouldScroll.offset && typeof shouldScroll.offset === 'object'\n ? shouldScroll.offset\n : {};\n offset = normalizeOffset(offset);\n position = getElementPosition(el, offset);\n } else if (isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n } else if (isObject && isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n\n if (position) {\n // $flow-disable-line\n if ('scrollBehavior' in document.documentElement.style) {\n window.scrollTo({\n left: position.x,\n top: position.y,\n // $flow-disable-line\n behavior: shouldScroll.behavior\n });\n } else {\n window.scrollTo(position.x, position.y);\n }\n }\n}\n\n/* */\n\nvar supportsPushState =\n inBrowser &&\n (function () {\n var ua = window.navigator.userAgent;\n\n if (\n (ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) &&\n ua.indexOf('Mobile Safari') !== -1 &&\n ua.indexOf('Chrome') === -1 &&\n ua.indexOf('Windows Phone') === -1\n ) {\n return false\n }\n\n return window.history && typeof window.history.pushState === 'function'\n })();\n\nfunction pushState (url, replace) {\n saveScrollPosition();\n // try...catch the pushState call to get around Safari\n // DOM Exception 18 where it limits to 100 pushState calls\n var history = window.history;\n try {\n if (replace) {\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, history.state);\n stateCopy.key = getStateKey();\n history.replaceState(stateCopy, '', url);\n } else {\n history.pushState({ key: setStateKey(genStateKey()) }, '', url);\n }\n } catch (e) {\n window.location[replace ? 'replace' : 'assign'](url);\n }\n}\n\nfunction replaceState (url) {\n pushState(url, true);\n}\n\n/* */\n\nfunction runQueue (queue, fn, cb) {\n var step = function (index) {\n if (index >= queue.length) {\n cb();\n } else {\n if (queue[index]) {\n fn(queue[index], function () {\n step(index + 1);\n });\n } else {\n step(index + 1);\n }\n }\n };\n step(0);\n}\n\n// When changing thing, also edit router.d.ts\nvar NavigationFailureType = {\n redirected: 2,\n aborted: 4,\n cancelled: 8,\n duplicated: 16\n};\n\nfunction createNavigationRedirectedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.redirected,\n (\"Redirected when going from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (stringifyRoute(\n to\n )) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createNavigationDuplicatedError (from, to) {\n var error = createRouterError(\n from,\n to,\n NavigationFailureType.duplicated,\n (\"Avoided redundant navigation to current location: \\\"\" + (from.fullPath) + \"\\\".\")\n );\n // backwards compatible with the first introduction of Errors\n error.name = 'NavigationDuplicated';\n return error\n}\n\nfunction createNavigationCancelledError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.cancelled,\n (\"Navigation cancelled from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" with a new navigation.\")\n )\n}\n\nfunction createNavigationAbortedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.aborted,\n (\"Navigation aborted from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createRouterError (from, to, type, message) {\n var error = new Error(message);\n error._isRouter = true;\n error.from = from;\n error.to = to;\n error.type = type;\n\n return error\n}\n\nvar propertiesToLog = ['params', 'query', 'hash'];\n\nfunction stringifyRoute (to) {\n if (typeof to === 'string') { return to }\n if ('path' in to) { return to.path }\n var location = {};\n propertiesToLog.forEach(function (key) {\n if (key in to) { location[key] = to[key]; }\n });\n return JSON.stringify(location, null, 2)\n}\n\nfunction isError (err) {\n return Object.prototype.toString.call(err).indexOf('Error') > -1\n}\n\nfunction isNavigationFailure (err, errorType) {\n return (\n isError(err) &&\n err._isRouter &&\n (errorType == null || err.type === errorType)\n )\n}\n\n/* */\n\nfunction resolveAsyncComponents (matched) {\n return function (to, from, next) {\n var hasAsync = false;\n var pending = 0;\n var error = null;\n\n flatMapComponents(matched, function (def, _, match, key) {\n // if it's a function and doesn't have cid attached,\n // assume it's an async component resolve function.\n // we are not using Vue's default async resolving mechanism because\n // we want to halt the navigation until the incoming component has been\n // resolved.\n if (typeof def === 'function' && def.cid === undefined) {\n hasAsync = true;\n pending++;\n\n var resolve = once(function (resolvedDef) {\n if (isESModule(resolvedDef)) {\n resolvedDef = resolvedDef.default;\n }\n // save resolved on async factory in case it's used elsewhere\n def.resolved = typeof resolvedDef === 'function'\n ? resolvedDef\n : _Vue.extend(resolvedDef);\n match.components[key] = resolvedDef;\n pending--;\n if (pending <= 0) {\n next();\n }\n });\n\n var reject = once(function (reason) {\n var msg = \"Failed to resolve async component \" + key + \": \" + reason;\n process.env.NODE_ENV !== 'production' && warn(false, msg);\n if (!error) {\n error = isError(reason)\n ? reason\n : new Error(msg);\n next(error);\n }\n });\n\n var res;\n try {\n res = def(resolve, reject);\n } catch (e) {\n reject(e);\n }\n if (res) {\n if (typeof res.then === 'function') {\n res.then(resolve, reject);\n } else {\n // new syntax in Vue 2.3\n var comp = res.component;\n if (comp && typeof comp.then === 'function') {\n comp.then(resolve, reject);\n }\n }\n }\n }\n });\n\n if (!hasAsync) { next(); }\n }\n}\n\nfunction flatMapComponents (\n matched,\n fn\n) {\n return flatten(matched.map(function (m) {\n return Object.keys(m.components).map(function (key) { return fn(\n m.components[key],\n m.instances[key],\n m, key\n ); })\n }))\n}\n\nfunction flatten (arr) {\n return Array.prototype.concat.apply([], arr)\n}\n\nvar hasSymbol =\n typeof Symbol === 'function' &&\n typeof Symbol.toStringTag === 'symbol';\n\nfunction isESModule (obj) {\n return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module')\n}\n\n// in Webpack 2, require.ensure now also returns a Promise\n// so the resolve/reject functions may get called an extra time\n// if the user uses an arrow function shorthand that happens to\n// return that Promise.\nfunction once (fn) {\n var called = false;\n return function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n if (called) { return }\n called = true;\n return fn.apply(this, args)\n }\n}\n\n/* */\n\nvar History = function History (router, base) {\n this.router = router;\n this.base = normalizeBase(base);\n // start with a route object that stands for \"nowhere\"\n this.current = START;\n this.pending = null;\n this.ready = false;\n this.readyCbs = [];\n this.readyErrorCbs = [];\n this.errorCbs = [];\n this.listeners = [];\n};\n\nHistory.prototype.listen = function listen (cb) {\n this.cb = cb;\n};\n\nHistory.prototype.onReady = function onReady (cb, errorCb) {\n if (this.ready) {\n cb();\n } else {\n this.readyCbs.push(cb);\n if (errorCb) {\n this.readyErrorCbs.push(errorCb);\n }\n }\n};\n\nHistory.prototype.onError = function onError (errorCb) {\n this.errorCbs.push(errorCb);\n};\n\nHistory.prototype.transitionTo = function transitionTo (\n location,\n onComplete,\n onAbort\n) {\n var this$1 = this;\n\n var route;\n // catch redirect option https://github.com/vuejs/vue-router/issues/3201\n try {\n route = this.router.match(location, this.current);\n } catch (e) {\n this.errorCbs.forEach(function (cb) {\n cb(e);\n });\n // Exception should still be thrown\n throw e\n }\n var prev = this.current;\n this.confirmTransition(\n route,\n function () {\n this$1.updateRoute(route);\n onComplete && onComplete(route);\n this$1.ensureURL();\n this$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n\n // fire ready cbs once\n if (!this$1.ready) {\n this$1.ready = true;\n this$1.readyCbs.forEach(function (cb) {\n cb(route);\n });\n }\n },\n function (err) {\n if (onAbort) {\n onAbort(err);\n }\n if (err && !this$1.ready) {\n // Initial redirection should not mark the history as ready yet\n // because it's triggered by the redirection instead\n // https://github.com/vuejs/vue-router/issues/3225\n // https://github.com/vuejs/vue-router/issues/3331\n if (!isNavigationFailure(err, NavigationFailureType.redirected) || prev !== START) {\n this$1.ready = true;\n this$1.readyErrorCbs.forEach(function (cb) {\n cb(err);\n });\n }\n }\n }\n );\n};\n\nHistory.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {\n var this$1 = this;\n\n var current = this.current;\n this.pending = route;\n var abort = function (err) {\n // changed after adding errors with\n // https://github.com/vuejs/vue-router/pull/3047 before that change,\n // redirect and aborted navigation would produce an err == null\n if (!isNavigationFailure(err) && isError(err)) {\n if (this$1.errorCbs.length) {\n this$1.errorCbs.forEach(function (cb) {\n cb(err);\n });\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, 'uncaught error during route navigation:');\n }\n console.error(err);\n }\n }\n onAbort && onAbort(err);\n };\n var lastRouteIndex = route.matched.length - 1;\n var lastCurrentIndex = current.matched.length - 1;\n if (\n isSameRoute(route, current) &&\n // in the case the route map has been dynamically appended to\n lastRouteIndex === lastCurrentIndex &&\n route.matched[lastRouteIndex] === current.matched[lastCurrentIndex]\n ) {\n this.ensureURL();\n if (route.hash) {\n handleScroll(this.router, current, route, false);\n }\n return abort(createNavigationDuplicatedError(current, route))\n }\n\n var ref = resolveQueue(\n this.current.matched,\n route.matched\n );\n var updated = ref.updated;\n var deactivated = ref.deactivated;\n var activated = ref.activated;\n\n var queue = [].concat(\n // in-component leave guards\n extractLeaveGuards(deactivated),\n // global before hooks\n this.router.beforeHooks,\n // in-component update hooks\n extractUpdateHooks(updated),\n // in-config enter guards\n activated.map(function (m) { return m.beforeEnter; }),\n // async components\n resolveAsyncComponents(activated)\n );\n\n var iterator = function (hook, next) {\n if (this$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n try {\n hook(route, current, function (to) {\n if (to === false) {\n // next(false) -> abort navigation, ensure current URL\n this$1.ensureURL(true);\n abort(createNavigationAbortedError(current, route));\n } else if (isError(to)) {\n this$1.ensureURL(true);\n abort(to);\n } else if (\n typeof to === 'string' ||\n (typeof to === 'object' &&\n (typeof to.path === 'string' || typeof to.name === 'string'))\n ) {\n // next('/') or next({ path: '/' }) -> redirect\n abort(createNavigationRedirectedError(current, route));\n if (typeof to === 'object' && to.replace) {\n this$1.replace(to);\n } else {\n this$1.push(to);\n }\n } else {\n // confirm transition and pass on the value\n next(to);\n }\n });\n } catch (e) {\n abort(e);\n }\n };\n\n runQueue(queue, iterator, function () {\n // wait until async components are resolved before\n // extracting in-component enter guards\n var enterGuards = extractEnterGuards(activated);\n var queue = enterGuards.concat(this$1.router.resolveHooks);\n runQueue(queue, iterator, function () {\n if (this$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n this$1.pending = null;\n onComplete(route);\n if (this$1.router.app) {\n this$1.router.app.$nextTick(function () {\n handleRouteEntered(route);\n });\n }\n });\n });\n};\n\nHistory.prototype.updateRoute = function updateRoute (route) {\n this.current = route;\n this.cb && this.cb(route);\n};\n\nHistory.prototype.setupListeners = function setupListeners () {\n // Default implementation is empty\n};\n\nHistory.prototype.teardown = function teardown () {\n // clean up event listeners\n // https://github.com/vuejs/vue-router/issues/2341\n this.listeners.forEach(function (cleanupListener) {\n cleanupListener();\n });\n this.listeners = [];\n\n // reset current history route\n // https://github.com/vuejs/vue-router/issues/3294\n this.current = START;\n this.pending = null;\n};\n\nfunction normalizeBase (base) {\n if (!base) {\n if (inBrowser) {\n // respect tag\n var baseEl = document.querySelector('base');\n base = (baseEl && baseEl.getAttribute('href')) || '/';\n // strip full URL origin\n base = base.replace(/^https?:\\/\\/[^\\/]+/, '');\n } else {\n base = '/';\n }\n }\n // make sure there's the starting slash\n if (base.charAt(0) !== '/') {\n base = '/' + base;\n }\n // remove trailing slash\n return base.replace(/\\/$/, '')\n}\n\nfunction resolveQueue (\n current,\n next\n) {\n var i;\n var max = Math.max(current.length, next.length);\n for (i = 0; i < max; i++) {\n if (current[i] !== next[i]) {\n break\n }\n }\n return {\n updated: next.slice(0, i),\n activated: next.slice(i),\n deactivated: current.slice(i)\n }\n}\n\nfunction extractGuards (\n records,\n name,\n bind,\n reverse\n) {\n var guards = flatMapComponents(records, function (def, instance, match, key) {\n var guard = extractGuard(def, name);\n if (guard) {\n return Array.isArray(guard)\n ? guard.map(function (guard) { return bind(guard, instance, match, key); })\n : bind(guard, instance, match, key)\n }\n });\n return flatten(reverse ? guards.reverse() : guards)\n}\n\nfunction extractGuard (\n def,\n key\n) {\n if (typeof def !== 'function') {\n // extend now so that global mixins are applied.\n def = _Vue.extend(def);\n }\n return def.options[key]\n}\n\nfunction extractLeaveGuards (deactivated) {\n return extractGuards(deactivated, 'beforeRouteLeave', bindGuard, true)\n}\n\nfunction extractUpdateHooks (updated) {\n return extractGuards(updated, 'beforeRouteUpdate', bindGuard)\n}\n\nfunction bindGuard (guard, instance) {\n if (instance) {\n return function boundRouteGuard () {\n return guard.apply(instance, arguments)\n }\n }\n}\n\nfunction extractEnterGuards (\n activated\n) {\n return extractGuards(\n activated,\n 'beforeRouteEnter',\n function (guard, _, match, key) {\n return bindEnterGuard(guard, match, key)\n }\n )\n}\n\nfunction bindEnterGuard (\n guard,\n match,\n key\n) {\n return function routeEnterGuard (to, from, next) {\n return guard(to, from, function (cb) {\n if (typeof cb === 'function') {\n if (!match.enteredCbs[key]) {\n match.enteredCbs[key] = [];\n }\n match.enteredCbs[key].push(cb);\n }\n next(cb);\n })\n }\n}\n\n/* */\n\nvar HTML5History = /*@__PURE__*/(function (History) {\n function HTML5History (router, base) {\n History.call(this, router, base);\n\n this._startLocation = getLocation(this.base);\n }\n\n if ( History ) HTML5History.__proto__ = History;\n HTML5History.prototype = Object.create( History && History.prototype );\n HTML5History.prototype.constructor = HTML5History;\n\n HTML5History.prototype.setupListeners = function setupListeners () {\n var this$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1.current;\n\n // Avoiding first `popstate` event dispatched in some browsers but first\n // history route not updated since async guard at the same time.\n var location = getLocation(this$1.base);\n if (this$1.current === START && location === this$1._startLocation) {\n return\n }\n\n this$1.transitionTo(location, function (route) {\n if (supportsScroll) {\n handleScroll(router, route, current, true);\n }\n });\n };\n window.addEventListener('popstate', handleRoutingEvent);\n this.listeners.push(function () {\n window.removeEventListener('popstate', handleRoutingEvent);\n });\n };\n\n HTML5History.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HTML5History.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n pushState(cleanPath(this$1.base + route.fullPath));\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n replaceState(cleanPath(this$1.base + route.fullPath));\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.ensureURL = function ensureURL (push) {\n if (getLocation(this.base) !== this.current.fullPath) {\n var current = cleanPath(this.base + this.current.fullPath);\n push ? pushState(current) : replaceState(current);\n }\n };\n\n HTML5History.prototype.getCurrentLocation = function getCurrentLocation () {\n return getLocation(this.base)\n };\n\n return HTML5History;\n}(History));\n\nfunction getLocation (base) {\n var path = window.location.pathname;\n var pathLowerCase = path.toLowerCase();\n var baseLowerCase = base.toLowerCase();\n // base=\"/a\" shouldn't turn path=\"/app\" into \"/a/pp\"\n // https://github.com/vuejs/vue-router/issues/3555\n // so we ensure the trailing slash in the base\n if (base && ((pathLowerCase === baseLowerCase) ||\n (pathLowerCase.indexOf(cleanPath(baseLowerCase + '/')) === 0))) {\n path = path.slice(base.length);\n }\n return (path || '/') + window.location.search + window.location.hash\n}\n\n/* */\n\nvar HashHistory = /*@__PURE__*/(function (History) {\n function HashHistory (router, base, fallback) {\n History.call(this, router, base);\n // check history fallback deeplinking\n if (fallback && checkFallback(this.base)) {\n return\n }\n ensureSlash();\n }\n\n if ( History ) HashHistory.__proto__ = History;\n HashHistory.prototype = Object.create( History && History.prototype );\n HashHistory.prototype.constructor = HashHistory;\n\n // this is delayed until the app mounts\n // to avoid the hashchange listener being fired too early\n HashHistory.prototype.setupListeners = function setupListeners () {\n var this$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1.current;\n if (!ensureSlash()) {\n return\n }\n this$1.transitionTo(getHash(), function (route) {\n if (supportsScroll) {\n handleScroll(this$1.router, route, current, true);\n }\n if (!supportsPushState) {\n replaceHash(route.fullPath);\n }\n });\n };\n var eventType = supportsPushState ? 'popstate' : 'hashchange';\n window.addEventListener(\n eventType,\n handleRoutingEvent\n );\n this.listeners.push(function () {\n window.removeEventListener(eventType, handleRoutingEvent);\n });\n };\n\n HashHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n pushHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n replaceHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HashHistory.prototype.ensureURL = function ensureURL (push) {\n var current = this.current.fullPath;\n if (getHash() !== current) {\n push ? pushHash(current) : replaceHash(current);\n }\n };\n\n HashHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n return getHash()\n };\n\n return HashHistory;\n}(History));\n\nfunction checkFallback (base) {\n var location = getLocation(base);\n if (!/^\\/#/.test(location)) {\n window.location.replace(cleanPath(base + '/#' + location));\n return true\n }\n}\n\nfunction ensureSlash () {\n var path = getHash();\n if (path.charAt(0) === '/') {\n return true\n }\n replaceHash('/' + path);\n return false\n}\n\nfunction getHash () {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var index = href.indexOf('#');\n // empty path\n if (index < 0) { return '' }\n\n href = href.slice(index + 1);\n\n return href\n}\n\nfunction getUrl (path) {\n var href = window.location.href;\n var i = href.indexOf('#');\n var base = i >= 0 ? href.slice(0, i) : href;\n return (base + \"#\" + path)\n}\n\nfunction pushHash (path) {\n if (supportsPushState) {\n pushState(getUrl(path));\n } else {\n window.location.hash = path;\n }\n}\n\nfunction replaceHash (path) {\n if (supportsPushState) {\n replaceState(getUrl(path));\n } else {\n window.location.replace(getUrl(path));\n }\n}\n\n/* */\n\nvar AbstractHistory = /*@__PURE__*/(function (History) {\n function AbstractHistory (router, base) {\n History.call(this, router, base);\n this.stack = [];\n this.index = -1;\n }\n\n if ( History ) AbstractHistory.__proto__ = History;\n AbstractHistory.prototype = Object.create( History && History.prototype );\n AbstractHistory.prototype.constructor = AbstractHistory;\n\n AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1.stack = this$1.stack.slice(0, this$1.index + 1).concat(route);\n this$1.index++;\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1.stack = this$1.stack.slice(0, this$1.index).concat(route);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.go = function go (n) {\n var this$1 = this;\n\n var targetIndex = this.index + n;\n if (targetIndex < 0 || targetIndex >= this.stack.length) {\n return\n }\n var route = this.stack[targetIndex];\n this.confirmTransition(\n route,\n function () {\n var prev = this$1.current;\n this$1.index = targetIndex;\n this$1.updateRoute(route);\n this$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n },\n function (err) {\n if (isNavigationFailure(err, NavigationFailureType.duplicated)) {\n this$1.index = targetIndex;\n }\n }\n );\n };\n\n AbstractHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n var current = this.stack[this.stack.length - 1];\n return current ? current.fullPath : '/'\n };\n\n AbstractHistory.prototype.ensureURL = function ensureURL () {\n // noop\n };\n\n return AbstractHistory;\n}(History));\n\n/* */\n\nvar VueRouter = function VueRouter (options) {\n if ( options === void 0 ) options = {};\n\n if (process.env.NODE_ENV !== 'production') {\n warn(this instanceof VueRouter, \"Router must be called with the new operator.\");\n }\n this.app = null;\n this.apps = [];\n this.options = options;\n this.beforeHooks = [];\n this.resolveHooks = [];\n this.afterHooks = [];\n this.matcher = createMatcher(options.routes || [], this);\n\n var mode = options.mode || 'hash';\n this.fallback =\n mode === 'history' && !supportsPushState && options.fallback !== false;\n if (this.fallback) {\n mode = 'hash';\n }\n if (!inBrowser) {\n mode = 'abstract';\n }\n this.mode = mode;\n\n switch (mode) {\n case 'history':\n this.history = new HTML5History(this, options.base);\n break\n case 'hash':\n this.history = new HashHistory(this, options.base, this.fallback);\n break\n case 'abstract':\n this.history = new AbstractHistory(this, options.base);\n break\n default:\n if (process.env.NODE_ENV !== 'production') {\n assert(false, (\"invalid mode: \" + mode));\n }\n }\n};\n\nvar prototypeAccessors = { currentRoute: { configurable: true } };\n\nVueRouter.prototype.match = function match (raw, current, redirectedFrom) {\n return this.matcher.match(raw, current, redirectedFrom)\n};\n\nprototypeAccessors.currentRoute.get = function () {\n return this.history && this.history.current\n};\n\nVueRouter.prototype.init = function init (app /* Vue component instance */) {\n var this$1 = this;\n\n process.env.NODE_ENV !== 'production' &&\n assert(\n install.installed,\n \"not installed. Make sure to call `Vue.use(VueRouter)` \" +\n \"before creating root instance.\"\n );\n\n this.apps.push(app);\n\n // set up app destroyed handler\n // https://github.com/vuejs/vue-router/issues/2639\n app.$once('hook:destroyed', function () {\n // clean out app from this.apps array once destroyed\n var index = this$1.apps.indexOf(app);\n if (index > -1) { this$1.apps.splice(index, 1); }\n // ensure we still have a main app or null if no apps\n // we do not release the router so it can be reused\n if (this$1.app === app) { this$1.app = this$1.apps[0] || null; }\n\n if (!this$1.app) { this$1.history.teardown(); }\n });\n\n // main app previously initialized\n // return as we don't need to set up new history listener\n if (this.app) {\n return\n }\n\n this.app = app;\n\n var history = this.history;\n\n if (history instanceof HTML5History || history instanceof HashHistory) {\n var handleInitialScroll = function (routeOrError) {\n var from = history.current;\n var expectScroll = this$1.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll && 'fullPath' in routeOrError) {\n handleScroll(this$1, routeOrError, from, false);\n }\n };\n var setupListeners = function (routeOrError) {\n history.setupListeners();\n handleInitialScroll(routeOrError);\n };\n history.transitionTo(\n history.getCurrentLocation(),\n setupListeners,\n setupListeners\n );\n }\n\n history.listen(function (route) {\n this$1.apps.forEach(function (app) {\n app._route = route;\n });\n });\n};\n\nVueRouter.prototype.beforeEach = function beforeEach (fn) {\n return registerHook(this.beforeHooks, fn)\n};\n\nVueRouter.prototype.beforeResolve = function beforeResolve (fn) {\n return registerHook(this.resolveHooks, fn)\n};\n\nVueRouter.prototype.afterEach = function afterEach (fn) {\n return registerHook(this.afterHooks, fn)\n};\n\nVueRouter.prototype.onReady = function onReady (cb, errorCb) {\n this.history.onReady(cb, errorCb);\n};\n\nVueRouter.prototype.onError = function onError (errorCb) {\n this.history.onError(errorCb);\n};\n\nVueRouter.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1.history.push(location, resolve, reject);\n })\n } else {\n this.history.push(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1.history.replace(location, resolve, reject);\n })\n } else {\n this.history.replace(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.go = function go (n) {\n this.history.go(n);\n};\n\nVueRouter.prototype.back = function back () {\n this.go(-1);\n};\n\nVueRouter.prototype.forward = function forward () {\n this.go(1);\n};\n\nVueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) {\n var route = to\n ? to.matched\n ? to\n : this.resolve(to).route\n : this.currentRoute;\n if (!route) {\n return []\n }\n return [].concat.apply(\n [],\n route.matched.map(function (m) {\n return Object.keys(m.components).map(function (key) {\n return m.components[key]\n })\n })\n )\n};\n\nVueRouter.prototype.resolve = function resolve (\n to,\n current,\n append\n) {\n current = current || this.history.current;\n var location = normalizeLocation(to, current, append, this);\n var route = this.match(location, current);\n var fullPath = route.redirectedFrom || route.fullPath;\n var base = this.history.base;\n var href = createHref(base, fullPath, this.mode);\n return {\n location: location,\n route: route,\n href: href,\n // for backwards compat\n normalizedTo: location,\n resolved: route\n }\n};\n\nVueRouter.prototype.getRoutes = function getRoutes () {\n return this.matcher.getRoutes()\n};\n\nVueRouter.prototype.addRoute = function addRoute (parentOrRoute, route) {\n this.matcher.addRoute(parentOrRoute, route);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nVueRouter.prototype.addRoutes = function addRoutes (routes) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, 'router.addRoutes() is deprecated and has been removed in Vue Router 4. Use router.addRoute() instead.');\n }\n this.matcher.addRoutes(routes);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nObject.defineProperties( VueRouter.prototype, prototypeAccessors );\n\nfunction registerHook (list, fn) {\n list.push(fn);\n return function () {\n var i = list.indexOf(fn);\n if (i > -1) { list.splice(i, 1); }\n }\n}\n\nfunction createHref (base, fullPath, mode) {\n var path = mode === 'hash' ? '#' + fullPath : fullPath;\n return base ? cleanPath(base + '/' + path) : path\n}\n\nVueRouter.install = install;\nVueRouter.version = '3.5.3';\nVueRouter.isNavigationFailure = isNavigationFailure;\nVueRouter.NavigationFailureType = NavigationFailureType;\nVueRouter.START_LOCATION = START;\n\nif (inBrowser && window.Vue) {\n window.Vue.use(VueRouter);\n}\n\nexport default VueRouter;\n"],"sourceRoot":""}