{"version":3,"file":"static/js/main.e869ce78.js","mappings":"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","sources":["../node_modules/axios/index.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/utils.js","../node_modules/base64-js/index.js","../node_modules/buffer/index.js","../node_modules/ieee754/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/reactjs-localstorage/react-localstorage.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","config/config.js","components/Loader.js","../node_modules/decode-uri-component/index.js","../node_modules/split-on-first/index.js","../node_modules/filter-obj/index.js","../node_modules/query-string/base.js","../node_modules/query-string/index.js","utils.js","CommonScript.js","components/text.js","Context/Context.js","components/HeModal.js","components/WelcomePage.js","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","components/MenuBar.js","components/Lang.js","components/Home.js","components/HostedPage.js","components/ContestWelcome.js","components/Error.js","components/MsgAlert.js","components/Quiz.js","components/Scoreboard.js","components/Login.js","components/Otp.js","components/Modal.js","components/Unsub.js","components/SubPage.js","components/GoToSub.js","components/OtpPage.js","components/section/Destination.jsx","components/section/Kitchen.jsx","components/section/TourGuide.jsx","components/section/Culture.jsx","components/UnlockQuestions.jsx","components/ModalNew.js","components/SubModal.jsx","components/Gallery.js","components/UnsubModal.js","components/UnlockModal.js","components/UnlockResponse.js","components/QuizModal.js","components/UnlockFailModal.js","components/Activate.js","components/Pack.js","components/ThankYou.js","components/Subscription.js","App.js","index.js"],"sourcesContent":["module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar transitionalDefaults = require('../defaults/transitional');\nvar AxiosError = require('../core/AxiosError');\nvar CanceledError = require('../cancel/CanceledError');\nvar parseProtocol = require('../helpers/parseProtocol');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData) && utils.isStandardBrowserEnv()) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new CanceledError() : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n var protocol = parseProtocol(fullPath);\n\n if (protocol && [ 'http', 'https', 'file' ].indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = require('./cancel/CanceledError');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\naxios.toFormData = require('./helpers/toFormData');\n\n// Expose AxiosError class\naxios.AxiosError = require('../lib/core/AxiosError');\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\nvar CanceledError = require('./CanceledError');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nvar AxiosError = require('../core/AxiosError');\nvar utils = require('../utils');\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction CanceledError(message) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nmodule.exports = CanceledError;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar buildFullPath = require('./buildFullPath');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n var fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url: url,\n data: data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nvar prototype = AxiosError.prototype;\nvar descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED'\n// eslint-disable-next-line func-names\n].forEach(function(code) {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = function(error, code, config, request, response, customProps) {\n var axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nmodule.exports = AxiosError;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar CanceledError = require('../cancel/CanceledError');\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'beforeRedirect': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","'use strict';\n\nvar AxiosError = require('./AxiosError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar normalizeHeaderName = require('../helpers/normalizeHeaderName');\nvar AxiosError = require('../core/AxiosError');\nvar transitionalDefaults = require('./transitional');\nvar toFormData = require('../helpers/toFormData');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('../adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('../adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n var isObjectPayload = utils.isObject(data);\n var contentType = headers && headers['Content-Type'];\n\n var isFileList;\n\n if ((isFileList = utils.isFileList(data)) || (isObjectPayload && contentType === 'multipart/form-data')) {\n var _FormData = this.env && this.env.FormData;\n return toFormData(isFileList ? {'files[]': data} : data, _FormData && new _FormData());\n } else if (isObjectPayload || contentType === 'application/json') {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: require('./env/FormData')\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","module.exports = {\n \"version\": \"0.27.2\"\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","// eslint-disable-next-line strict\nmodule.exports = null;\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nmodule.exports = function parseProtocol(url) {\n var match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Convert a data object to FormData\n * @param {Object} obj\n * @param {?Object} [formData]\n * @returns {Object}\n **/\n\nfunction toFormData(obj, formData) {\n // eslint-disable-next-line no-param-reassign\n formData = formData || new FormData();\n\n var stack = [];\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n function build(data, parentKey) {\n if (utils.isPlainObject(data) || utils.isArray(data)) {\n if (stack.indexOf(data) !== -1) {\n throw Error('Circular reference detected in ' + parentKey);\n }\n\n stack.push(data);\n\n utils.forEach(data, function each(value, key) {\n if (utils.isUndefined(value)) return;\n var fullKey = parentKey ? parentKey + '.' + key : key;\n var arr;\n\n if (value && !parentKey && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (utils.endsWith(key, '[]') && (arr = utils.toArray(value))) {\n // eslint-disable-next-line func-names\n arr.forEach(function(el) {\n !utils.isUndefined(el) && formData.append(fullKey, convertValue(el));\n });\n return;\n }\n }\n\n build(value, fullKey);\n });\n\n stack.pop();\n } else {\n formData.append(parentKey, convertValue(data));\n }\n }\n\n build(obj);\n\n return formData;\n}\n\nmodule.exports = toFormData;\n","'use strict';\n\nvar VERSION = require('../env/data').version;\nvar AxiosError = require('../core/AxiosError');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n// eslint-disable-next-line func-names\nvar kindOf = (function(cache) {\n // eslint-disable-next-line func-names\n return function(thing) {\n var str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n };\n})(Object.create(null));\n\nfunction kindOfTest(type) {\n type = type.toLowerCase();\n return function isKindOf(thing) {\n return kindOf(thing) === type;\n };\n}\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nvar isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nvar isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nvar isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} thing The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(thing) {\n var pattern = '[object FormData]';\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) ||\n toString.call(thing) === pattern ||\n (isFunction(thing.toString) && thing.toString() === pattern)\n );\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nvar isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n */\n\nfunction inherits(constructor, superConstructor, props, descriptors) {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function} [filter]\n * @returns {Object}\n */\n\nfunction toFlatObject(sourceObj, destObj, filter) {\n var props;\n var i;\n var prop;\n var merged = {};\n\n destObj = destObj || {};\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if (!merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = Object.getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/*\n * determines whether a string ends with the characters of a specified string\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n * @returns {boolean}\n */\nfunction endsWith(str, searchString, position) {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n var lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object\n * @param {*} [thing]\n * @returns {Array}\n */\nfunction toArray(thing) {\n if (!thing) return null;\n var i = thing.length;\n if (isUndefined(i)) return null;\n var arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n// eslint-disable-next-line func-names\nvar isTypedArray = (function(TypedArray) {\n // eslint-disable-next-line func-names\n return function(thing) {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && Object.getPrototypeOf(Uint8Array));\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM,\n inherits: inherits,\n toFlatObject: toFlatObject,\n kindOf: kindOf,\n kindOfTest: kindOfTest,\n endsWith: endsWith,\n toArray: toArray,\n isTypedArray: isTypedArray,\n isFileList: isFileList\n};\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: State;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n // We keep the raw Response for redirects so we can return it verbatim\n response: Response;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\n/**\n * Result from a loader or action called via dataStrategy\n */\nexport interface HandlerResult {\n type: \"data\" | \"error\";\n result: unknown; // data, Error, Response, DeferredData\n status?: number;\n}\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\ntype DataFunctionReturnValue = Promise | DataFunctionValue;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (\n args: LoaderFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (\n args: ActionFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n unstable_actionStatus?: number;\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\nexport interface DataStrategyMatch\n extends AgnosticRouteMatch {\n shouldLoad: boolean;\n resolve: (\n handlerOverride?: (\n handler: (ctx?: unknown) => DataFunctionReturnValue\n ) => Promise\n ) => Promise;\n}\n\nexport interface DataStrategyFunctionArgs\n extends DataFunctionArgs {\n matches: DataStrategyMatch[];\n}\n\nexport interface DataStrategyFunction {\n (args: DataStrategyFunctionArgs): Promise;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction | boolean;\n action?: ActionFunction | boolean;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: number[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(branches[i], decoded);\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nfunction decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === matches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DataStrategyMatch,\n AgnosticRouteObject,\n DataResult,\n DataStrategyFunction,\n DataStrategyFunctionArgs,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n HandlerResult,\n ImmutableRouteKey,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n unstable_skipActionErrorRevalidation: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n unstable_dataStrategy?: DataStrategyFunction;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: {\n routeId?: string;\n requestContext?: unknown;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n unstable_viewTransitionOpts?: ViewTransitionOpts;\n unstable_flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n unstable_viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ntype PendingActionResult = [string, SuccessResult | ErrorResult];\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Tuple for the returned or thrown value from the current action. The routeId\n * is the action route for success and the bubbled boundary route for errors.\n */\n pendingActionResult?: PendingActionResult;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n let dataStrategyImpl = init.unstable_dataStrategy || defaultDataStrategy;\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n unstable_skipActionErrorRevalidation: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n let initialized: boolean;\n let hasLazyRoutes = initialMatches.some((m) => m.route.lazy);\n let hasLoaders = initialMatches.some((m) => m.route.loader);\n if (hasLazyRoutes) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!hasLoaders) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n let isRouteInitialized = (m: AgnosticDataRouteMatch) => {\n // No loader, nothing to initialize\n if (!m.route.loader) {\n return true;\n }\n // Explicitly opting-in to running on hydration\n if (\n typeof m.route.loader === \"function\" &&\n m.route.loader.hydrate === true\n ) {\n return false;\n }\n // Otherwise, initialized if hydrated with data or an error\n return (\n (loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined)\n );\n };\n\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(\n (m) => errors![m.route.id] !== undefined\n );\n initialized = initialMatches.slice(0, idx + 1).every(isRouteInitialized);\n } else {\n initialized = initialMatches.every(isRouteInitialized);\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionResult: PendingActionResult | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingActionResult = [\n findNearestBoundary(matches).route.id,\n { type: ResultType.error, error: opts.pendingError },\n ];\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionResult = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace, flushSync }\n );\n\n if (actionResult.shortCircuited) {\n return;\n }\n\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n\n // Create a GET request for the loaders\n request = createClientSideRequest(\n init.history,\n request.url,\n request.signal\n );\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionResult\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches,\n ...getActionDataForCommit(pendingActionResult),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches\n );\n result = results[0];\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n let location = normalizeRedirectLocation(\n result.response.headers.get(\"Location\")!,\n new URL(request.url),\n basename\n );\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, {\n submission,\n replace,\n });\n return { shortCircuited: true };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n pendingActionResult: [boundaryMatch.route.id, result],\n };\n }\n\n return {\n pendingActionResult: [actionMatch.route.id, result],\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionResult?: PendingActionResult\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n future.unstable_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionResult\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? { [pendingActionResult[0]]: pendingActionResult[1].error }\n : null,\n ...getActionDataForCommit(pendingActionResult),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n if (\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration)\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n\n let actionData: Record | null | undefined;\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n actionData = {\n [pendingActionResult[0]]: pendingActionResult[1].data as any,\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n actionData = null;\n } else {\n actionData = state.actionData;\n }\n }\n\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData !== undefined ? { actionData } : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect([...loaderResults, ...fetcherResults]);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n await startRedirectNavigation(request, redirect.result, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingActionResult,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n // During partial hydration, preserve SSR errors for routes that don't re-run\n if (future.v7_partialHydration && initialHydration && state.errors) {\n Object.entries(state.errors)\n .filter(([id]) => !matchesToLoad.some((m) => m.route.id === id))\n .forEach(([routeId, error]) => {\n errors = Object.assign(errors || {}, { [routeId]: error });\n });\n }\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\n \"action\",\n fetchRequest,\n [match],\n requestMatches\n );\n let actionResult = actionResults[0];\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, {\n fetcherSubmission: submission,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n future.unstable_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n [match.route.id, actionResult]\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect([...loaderResults, ...fetcherResults]);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n return startRedirectNavigation(revalidationRequest, redirect.result);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\n \"loader\",\n fetchRequest,\n [match],\n matches\n );\n let result = results[0];\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n request: Request,\n redirect: RedirectResult,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(\n location,\n new URL(request.url),\n basename\n );\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true,\n });\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.response.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[]\n ): Promise {\n try {\n let results = await callDataStrategyImpl(\n dataStrategyImpl,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n return {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n ),\n };\n }\n\n return convertHandlerResultToDataResult(result);\n })\n );\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n return matchesToLoad.map(() => ({\n type: ResultType.error,\n error: e,\n }));\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n let [loaderResults, ...fetcherResults] = await Promise.all([\n matchesToLoad.length\n ? callDataStrategy(\"loader\", request, matchesToLoad, matches)\n : [],\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n let fetcherRequest = createClientSideRequest(\n init.history,\n f.path,\n f.controller.signal\n );\n return callDataStrategy(\n \"loader\",\n fetcherRequest,\n [f.match],\n f.matches\n ).then((r) => r[0]);\n } else {\n return Promise.resolve({\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path,\n }),\n });\n }\n }),\n ]);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n loaderResults.map(() => request.signal),\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n fetchersToLoad.map((f) => (f.controller ? f.controller.signal : null)),\n true\n ),\n ]);\n\n return {\n loaderResults,\n fetcherResults,\n };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n *\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(\n request: Request,\n {\n requestContext,\n skipLoaderErrorBubbling,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n skipLoaderErrorBubbling === true,\n null\n );\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n *\n * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n routeId?: string;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n false,\n match\n );\n\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction for a\n // `queryRoute` call, we throw the `HandlerResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isHandlerResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n result = results[0];\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")!,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = skipLoaderErrorBubbling\n ? actionMatch\n : findNearestBoundary(matches, actionMatch.route.id);\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null,\n [boundaryMatch.route.id, result]\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : result.statusCode != null\n ? result.statusCode\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null\n );\n\n return {\n ...context,\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionHeaders: result.headers\n ? { [actionMatch.route.id]: result.headers }\n : {},\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null,\n pendingActionResult?: PendingActionResult\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : pendingActionResult && isErrorResult(pendingActionResult[1])\n ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0])\n : matches;\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? {\n [pendingActionResult[0]]: pendingActionResult[1].error,\n }\n : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await callDataStrategy(\n \"loader\",\n request,\n matchesToLoad,\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionResult,\n activeDeferreds,\n skipLoaderErrorBubbling\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n isRouteRequest: boolean,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null\n ): Promise {\n let results = await callDataStrategyImpl(\n unstable_dataStrategy || defaultDataStrategy,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties,\n requestContext\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n );\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n\n return convertHandlerResultToDataResult(result);\n })\n );\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isInitialLoad: boolean,\n skipActionErrorRevalidation: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionResult?: PendingActionResult\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingActionResult\n ? isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : pendingActionResult[1].data\n : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[0]\n : undefined;\n let boundaryMatches = boundaryId\n ? getLoaderMatchesUntilBoundary(matches, boundaryId)\n : matches;\n\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult\n ? pendingActionResult[1].statusCode\n : undefined;\n let shouldSkipRevalidation =\n skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (typeof route.loader !== \"function\" || route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n unstable_actionStatus: actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.includes(key)) {\n // Always revalidate if the fetcher was cancelled\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n unstable_actionStatus: actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nfunction defaultDataStrategy(\n opts: DataStrategyFunctionArgs\n): ReturnType {\n return Promise.all(opts.matches.map((m) => m.resolve()));\n}\n\nasync function callDataStrategyImpl(\n dataStrategyImpl: DataStrategyFunction,\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n requestContext?: unknown\n): Promise {\n let routeIdsToLoad = matchesToLoad.reduce(\n (acc, m) => acc.add(m.route.id),\n new Set()\n );\n let loadedMatches = new Set();\n\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: matches.map((match) => {\n let shouldLoad = routeIdsToLoad.has(match.route.id);\n // `resolve` encapsulates the route.lazy, executing the\n // loader/action, and mapping return values/thrown errors to a\n // HandlerResult. Users can pass a callback to take fine-grained control\n // over the execution of the loader/action\n let resolve: DataStrategyMatch[\"resolve\"] = (handlerOverride) => {\n loadedMatches.add(match.route.id);\n return shouldLoad\n ? callLoaderOrAction(\n type,\n request,\n match,\n manifest,\n mapRouteProperties,\n handlerOverride,\n requestContext\n )\n : Promise.resolve({ type: ResultType.data, result: undefined });\n };\n\n return {\n ...match,\n shouldLoad,\n resolve,\n };\n }),\n request,\n params: matches[0].params,\n context: requestContext,\n });\n\n // Throw if any loadRoute implementations not called since they are what\n // ensures a route is fully loaded\n matches.forEach((m) =>\n invariant(\n loadedMatches.has(m.route.id),\n `\\`match.resolve()\\` was not called for route id \"${m.route.id}\". ` +\n \"You must call `match.resolve()` on every match passed to \" +\n \"`dataStrategy` to ensure all routes are properly loaded.\"\n )\n );\n\n // Filter out any middleware-only matches for which we didn't need to run handlers\n return results.filter((_, i) => routeIdsToLoad.has(matches[i].route.id));\n}\n\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n handlerOverride: Parameters[0],\n staticContext?: unknown\n): Promise {\n let result: HandlerResult;\n let onReject: (() => void) | undefined;\n\n let runHandler = (\n handler: AgnosticRouteObject[\"loader\"] | AgnosticRouteObject[\"action\"]\n ): Promise => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n // This will never resolve so safe to type it as Promise to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n let actualHandler = (ctx?: unknown) => {\n if (typeof handler !== \"function\") {\n return Promise.reject(\n new Error(\n `You cannot call the handler for a route which defines a boolean ` +\n `\"${type}\" [routeId: ${match.route.id}]`\n )\n );\n }\n return handler(\n {\n request,\n params: match.params,\n context: staticContext,\n },\n ...(ctx !== undefined ? [ctx] : [])\n );\n };\n\n let handlerPromise: Promise;\n if (handlerOverride) {\n handlerPromise = handlerOverride((ctx: unknown) => actualHandler(ctx));\n } else {\n handlerPromise = (async () => {\n try {\n let val = await actualHandler();\n return { type: \"data\", result: val };\n } catch (e) {\n return { type: \"error\", result: e };\n }\n })();\n }\n\n return Promise.race([handlerPromise, abortPromise]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n ]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value!;\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still runs even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, result: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result.result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n // We should already be catching and converting normal handler executions to\n // HandlerResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return { type: ResultType.error, result: e };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n return result;\n}\n\nasync function convertHandlerResultToDataResult(\n handlerResult: HandlerResult\n): Promise {\n let { result, type, status } = handlerResult;\n\n if (isResponse(result)) {\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : status,\n };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n return { type: ResultType.data, data: result, statusCode: status };\n}\n\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(\n response: Response,\n request: Request,\n routeId: string,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n v7_relativeSplatPath: boolean\n) {\n let location = response.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(\n 0,\n matches.findIndex((m) => m.route.id === routeId) + 1\n );\n location = normalizeTo(\n new URL(request.url),\n trimmedMatches,\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n response.headers.set(\"Location\", location);\n }\n\n return response;\n}\n\nfunction normalizeRedirectLocation(\n location: string,\n currentUrl: URL,\n basename: string\n): string {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\")\n ? new URL(currentUrl.protocol + normalizedLocation)\n : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingActionResult: PendingActionResult | undefined,\n activeDeferreds: Map,\n skipLoaderErrorBubbling: boolean\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n let pendingError =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : undefined;\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = { [pendingActionResult[0]]: pendingError };\n loaderData[pendingActionResult[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingActionResult: PendingActionResult | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionResult,\n activeDeferreds,\n false // This method is only called client side so we always want to bubble\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match, controller } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\nfunction getActionDataForCommit(\n pendingActionResult: PendingActionResult | undefined\n) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1])\n ? {\n // Clear out prior actionData on errors\n actionData: {},\n }\n : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data,\n },\n };\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\";\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: DataResult[]\n): { result: RedirectResult; idx: number } | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return { result, idx: i };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isHandlerResult(result: unknown): result is HandlerResult {\n return (\n result != null &&\n typeof result === \"object\" &&\n \"type\" in result &&\n \"result\" in result &&\n (result.type === ResultType.data || result.type === ResultType.error)\n );\n}\n\nfunction isRedirectHandlerResult(result: HandlerResult) {\n return (\n isResponse(result.result) && redirectStatusCodes.has(result.result.status)\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signals: (AbortSignal | null)[],\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(\n signal,\n \"Expected an AbortSignal for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n\n//#endregion\n","import * as React from \"react\";\nimport type {\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n AgnosticRouteMatch,\n History,\n LazyRouteFunction,\n Location,\n Action as NavigationType,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject\n // Omit `future` since those can be pulled from the `router`\n // `NavigationContext` needs future since it doesn't have a `router` in all cases\n extends Omit {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n unstable_viewTransition?: boolean;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n future: {\n v7_relativeSplatPath: boolean;\n };\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n UIMatch,\n} from \"@remix-run/router\";\nimport {\n IDLE_BLOCKER,\n Action as NavigationType,\n UNSAFE_convertRouteMatchToUiMatch as convertRouteMatchToUiMatch,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteMatch,\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, future, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { future } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"],\n future?: RemixRouter[\"future\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined ||\n matches[matches.length - 1].route.lazy !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState,\n future\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n

💿 Hey developer 👋

\n

\n You can provide a way better UX than this when your app throws errors\n by providing your own ErrorBoundary or{\" \"}\n errorElement prop on your route.\n

\n \n );\n }\n\n return (\n <>\n

Unexpected Application Error!

\n

{message}

\n {stack ?
{stack}
: null}\n {devInfo}\n \n );\n}\n\nconst defaultErrorElement = ;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n revalidation: RevalidationState;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n revalidation: RevalidationState;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (\n state.location !== props.location ||\n (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n ) {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error !== undefined ? (\n \n \n \n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n \n {children}\n \n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState: RemixRouter[\"state\"] | null = null,\n future: RemixRouter[\"future\"] | null = null\n): React.ReactElement | null {\n if (matches == null) {\n if (dataRouterState?.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id] !== undefined\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n\n if (match.route.id) {\n let { loaderData, errors } = dataRouterState;\n let needsToRunLoader =\n match.route.loader &&\n loaderData[match.route.id] === undefined &&\n (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error: any;\n let shouldRenderHydrateFallback = false;\n let errorElement: React.ReactNode | null = null;\n let hydrateFallbackElement: React.ReactNode | null = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\n \"route-fallback\",\n false,\n \"No `HydrateFallback` element provided to render during initial hydration\"\n );\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = ;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\n \n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(\n () => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n }),\n [dataRouterContext.router.revalidate, state.revalidation]\n );\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches(): UIMatch[] {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () => matches.map((m) => convertRouteMatchToUiMatch(m, loaderData)),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `` value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `` value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router, basename } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(\n (arg) => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let { currentLocation, nextLocation, historyAction } = arg;\n return shouldBlock({\n currentLocation: {\n ...currentLocation,\n pathname:\n stripBasename(currentLocation.pathname, basename) ||\n currentLocation.pathname,\n },\n nextLocation: {\n ...nextLocation,\n pathname:\n stripBasename(nextLocation.pathname, basename) ||\n nextLocation.pathname,\n },\n historyAction,\n });\n },\n [basename, shouldBlock]\n );\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey)\n ? state.blockers.get(blockerKey)!\n : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable(): NavigateFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n\n return navigate;\n}\n\nconst alreadyWarned: Record = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import type {\n InitialEntry,\n LazyRouteFunction,\n Location,\n MemoryHistory,\n RelativeRoutingType,\n Router as RemixRouter,\n RouterState,\n RouterSubscriber,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\nimport {\n AbortedDeferredError,\n Action as NavigationType,\n createMemoryHistory,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\nimport * as React from \"react\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n Navigator,\n NonIndexRouteObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n} from \"./context\";\nimport {\n _renderMatches,\n useAsyncValue,\n useInRouterContext,\n useLocation,\n useNavigate,\n useOutlet,\n useRoutes,\n useRoutesImpl,\n} from \"./hooks\";\n\nexport interface FutureConfig {\n v7_relativeSplatPath: boolean;\n v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n // Only accept future flags relevant to rendering behavior\n // routing flags should be accessed via router.future\n future?: Partial>;\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n future,\n}: RouterProviderProps): React.ReactElement {\n let [state, setStateImpl] = React.useState(router.state);\n let { v7_startTransition } = future || {};\n\n let setState = React.useCallback(\n (newState: RouterState) => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n },\n [setStateImpl, v7_startTransition]\n );\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n React.useEffect(() => {\n warning(\n fallbackElement == null || !router.future.v7_partialHydration,\n \"`` is deprecated when using \" +\n \"`v7_partialHydration`, use a `HydrateFallback` component instead\"\n );\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a