"use strict";
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
exports.id = "vendor-chunks/use-intl@4.9.0_react@19.2.4";
exports.ids = ["vendor-chunks/use-intl@4.9.0_react@19.2.4"];
exports.modules = {
/***/ "(rsc)/./node_modules/.pnpm/use-intl@4.9.0_react@19.2.4/node_modules/use-intl/dist/esm/development/core.js":
/*!***********************************************************************************************************!*\
!*** ./node_modules/.pnpm/use-intl@4.9.0_react@19.2.4/node_modules/use-intl/dist/esm/development/core.js ***!
\***********************************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ IntlError: () => (/* reexport safe */ _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_0__.I),\n/* harmony export */ IntlErrorCode: () => (/* reexport safe */ _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_0__.a),\n/* harmony export */ _createCache: () => (/* reexport safe */ _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_0__.b),\n/* harmony export */ _createIntlFormatters: () => (/* reexport safe */ _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_0__.c),\n/* harmony export */ createFormatter: () => (/* reexport safe */ _initializeConfig_B5qJiBCm_js__WEBPACK_IMPORTED_MODULE_1__.c),\n/* harmony export */ createTranslator: () => (/* binding */ createTranslator),\n/* harmony export */ hasLocale: () => (/* binding */ hasLocale),\n/* harmony export */ initializeConfig: () => (/* reexport safe */ _initializeConfig_B5qJiBCm_js__WEBPACK_IMPORTED_MODULE_1__.i)\n/* harmony export */ });\n/* harmony import */ var _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formatters-r4aAmsMP.js */ \"(rsc)/./node_modules/.pnpm/use-intl@4.9.0_react@19.2.4/node_modules/use-intl/dist/esm/development/formatters-r4aAmsMP.js\");\n/* harmony import */ var _initializeConfig_B5qJiBCm_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./initializeConfig-B5qJiBCm.js */ \"(rsc)/./node_modules/.pnpm/use-intl@4.9.0_react@19.2.4/node_modules/use-intl/dist/esm/development/initializeConfig-B5qJiBCm.js\");\n\n\n\n\n\n\n\n\nfunction createTranslatorImpl({\n messages,\n namespace,\n ...rest\n}, namespacePrefix) {\n // The `namespacePrefix` is part of the type system.\n // See the comment in the function invocation.\n messages = messages[namespacePrefix];\n namespace = (0,_initializeConfig_B5qJiBCm_js__WEBPACK_IMPORTED_MODULE_1__.r)(namespace, namespacePrefix);\n return (0,_initializeConfig_B5qJiBCm_js__WEBPACK_IMPORTED_MODULE_1__.a)({\n ...rest,\n messages,\n namespace\n });\n}\n\n// This type is slightly more loose than `AbstractIntlMessages`\n// in order to avoid a type error.\n\n/**\n * @private Not intended for direct use.\n */\n\n/**\n * Translates messages from the given namespace by using the ICU syntax.\n * See https://formatjs.io/docs/core-concepts/icu-syntax.\n *\n * If no namespace is provided, all available messages are returned.\n * The namespace can also indicate nesting by using a dot\n * (e.g. `namespace.Component`).\n */\nfunction createTranslator({\n _cache = (0,_formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_0__.b)(),\n _formatters = (0,_formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_0__.c)(_cache),\n getMessageFallback = _initializeConfig_B5qJiBCm_js__WEBPACK_IMPORTED_MODULE_1__.d,\n messages,\n namespace,\n onError = _initializeConfig_B5qJiBCm_js__WEBPACK_IMPORTED_MODULE_1__.b,\n ...rest\n}) {\n // We have to wrap the actual function so the type inference for the optional\n // namespace works correctly. See https://stackoverflow.com/a/71529575/343045\n // The prefix (\"!\") is arbitrary.\n // @ts-expect-error Use the explicit annotation instead\n return createTranslatorImpl({\n ...rest,\n onError,\n cache: _cache,\n formatters: _formatters,\n getMessageFallback,\n // @ts-expect-error `messages` is allowed to be `undefined` here and will be handled internally\n messages: {\n '!': messages\n },\n namespace: namespace ? `!.${namespace}` : '!'\n }, '!');\n}\n\n/**\n * Checks if a locale exists in a list of locales.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale\n */\nfunction hasLocale(locales, candidate) {\n return locales.includes(candidate);\n}\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvLnBucG0vdXNlLWludGxANC45LjBfcmVhY3RAMTkuMi40L25vZGVfbW9kdWxlcy91c2UtaW50bC9kaXN0L2VzbS9kZXZlbG9wbWVudC9jb3JlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBdUY7QUFDVDtBQUN5RTtBQUMxRDs7Ozs7QUFLN0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsY0FBYyxnRUFBZ0I7QUFDOUIsU0FBUyxnRUFBb0I7QUFDN0I7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsMERBQVc7QUFDdEIsZ0JBQWdCLDBEQUFvQjtBQUNwQyx1QkFBdUIsNERBQXlCO0FBQ2hEO0FBQ0E7QUFDQSxZQUFZLDREQUFjO0FBQzFCO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLGdDQUFnQyxVQUFVO0FBQzFDLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVtSCIsInNvdXJjZXMiOlsiL1VzZXJzL21hcmNtaW50ZWwvUHJvamVjdHMvZS10aWIuY29tL25vZGVfbW9kdWxlcy8ucG5wbS91c2UtaW50bEA0LjkuMF9yZWFjdEAxOS4yLjQvbm9kZV9tb2R1bGVzL3VzZS1pbnRsL2Rpc3QvZXNtL2RldmVsb3BtZW50L2NvcmUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYyBhcyBjcmVhdGVJbnRsRm9ybWF0dGVycywgYiBhcyBjcmVhdGVDYWNoZSB9IGZyb20gJy4vZm9ybWF0dGVycy1yNGFBbXNNUC5qcyc7XG5leHBvcnQgeyBJIGFzIEludGxFcnJvciwgYSBhcyBJbnRsRXJyb3JDb2RlIH0gZnJvbSAnLi9mb3JtYXR0ZXJzLXI0YUFtc01QLmpzJztcbmltcG9ydCB7IHIgYXMgcmVzb2x2ZU5hbWVzcGFjZSwgYSBhcyBjcmVhdGVCYXNlVHJhbnNsYXRvciwgZCBhcyBkZWZhdWx0R2V0TWVzc2FnZUZhbGxiYWNrLCBiIGFzIGRlZmF1bHRPbkVycm9yIH0gZnJvbSAnLi9pbml0aWFsaXplQ29uZmlnLUI1cUppQkNtLmpzJztcbmV4cG9ydCB7IGMgYXMgY3JlYXRlRm9ybWF0dGVyLCBpIGFzIGluaXRpYWxpemVDb25maWcgfSBmcm9tICcuL2luaXRpYWxpemVDb25maWctQjVxSmlCQ20uanMnO1xuXG5cblxuXG5mdW5jdGlvbiBjcmVhdGVUcmFuc2xhdG9ySW1wbCh7XG4gIG1lc3NhZ2VzLFxuICBuYW1lc3BhY2UsXG4gIC4uLnJlc3Rcbn0sIG5hbWVzcGFjZVByZWZpeCkge1xuICAvLyBUaGUgYG5hbWVzcGFjZVByZWZpeGAgaXMgcGFydCBvZiB0aGUgdHlwZSBzeXN0ZW0uXG4gIC8vIFNlZSB0aGUgY29tbWVudCBpbiB0aGUgZnVuY3Rpb24gaW52b2NhdGlvbi5cbiAgbWVzc2FnZXMgPSBtZXNzYWdlc1tuYW1lc3BhY2VQcmVmaXhdO1xuICBuYW1lc3BhY2UgPSByZXNvbHZlTmFtZXNwYWNlKG5hbWVzcGFjZSwgbmFtZXNwYWNlUHJlZml4KTtcbiAgcmV0dXJuIGNyZWF0ZUJhc2VUcmFuc2xhdG9yKHtcbiAgICAuLi5yZXN0LFxuICAgIG1lc3NhZ2VzLFxuICAgIG5hbWVzcGFjZVxuICB9KTtcbn1cblxuLy8gVGhpcyB0eXBlIGlzIHNsaWdodGx5IG1vcmUgbG9vc2UgdGhhbiBgQWJzdHJhY3RJbnRsTWVzc2FnZXNgXG4vLyBpbiBvcmRlciB0byBhdm9pZCBhIHR5cGUgZXJyb3IuXG5cbi8qKlxuICogQHByaXZhdGUgTm90IGludGVuZGVkIGZvciBkaXJlY3QgdXNlLlxuICovXG5cbi8qKlxuICogVHJhbnNsYXRlcyBtZXNzYWdlcyBmcm9tIHRoZSBnaXZlbiBuYW1lc3BhY2UgYnkgdXNpbmcgdGhlIElDVSBzeW50YXguXG4gKiBTZWUgaHR0cHM6Ly9mb3JtYXRqcy5pby9kb2NzL2NvcmUtY29uY2VwdHMvaWN1LXN5bnRheC5cbiAqXG4gKiBJZiBubyBuYW1lc3BhY2UgaXMgcHJvdmlkZWQsIGFsbCBhdmFpbGFibGUgbWVzc2FnZXMgYXJlIHJldHVybmVkLlxuICogVGhlIG5hbWVzcGFjZSBjYW4gYWxzbyBpbmRpY2F0ZSBuZXN0aW5nIGJ5IHVzaW5nIGEgZG90XG4gKiAoZS5nLiBgbmFtZXNwYWNlLkNvbXBvbmVudGApLlxuICovXG5mdW5jdGlvbiBjcmVhdGVUcmFuc2xhdG9yKHtcbiAgX2NhY2hlID0gY3JlYXRlQ2FjaGUoKSxcbiAgX2Zvcm1hdHRlcnMgPSBjcmVhdGVJbnRsRm9ybWF0dGVycyhfY2FjaGUpLFxuICBnZXRNZXNzYWdlRmFsbGJhY2sgPSBkZWZhdWx0R2V0TWVzc2FnZUZhbGxiYWNrLFxuICBtZXNzYWdlcyxcbiAgbmFtZXNwYWNlLFxuICBvbkVycm9yID0gZGVmYXVsdE9uRXJyb3IsXG4gIC4uLnJlc3Rcbn0pIHtcbiAgLy8gV2UgaGF2ZSB0byB3cmFwIHRoZSBhY3R1YWwgZnVuY3Rpb24gc28gdGhlIHR5cGUgaW5mZXJlbmNlIGZvciB0aGUgb3B0aW9uYWxcbiAgLy8gbmFtZXNwYWNlIHdvcmtzIGNvcnJlY3RseS4gU2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS83MTUyOTU3NS8zNDMwNDVcbiAgLy8gVGhlIHByZWZpeCAoXCIhXCIpIGlzIGFyYml0cmFyeS5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvciBVc2UgdGhlIGV4cGxpY2l0IGFubm90YXRpb24gaW5zdGVhZFxuICByZXR1cm4gY3JlYXRlVHJhbnNsYXRvckltcGwoe1xuICAgIC4uLnJlc3QsXG4gICAgb25FcnJvcixcbiAgICBjYWNoZTogX2NhY2hlLFxuICAgIGZvcm1hdHRlcnM6IF9mb3JtYXR0ZXJzLFxuICAgIGdldE1lc3NhZ2VGYWxsYmFjayxcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIGBtZXNzYWdlc2AgaXMgYWxsb3dlZCB0byBiZSBgdW5kZWZpbmVkYCBoZXJlIGFuZCB3aWxsIGJlIGhhbmRsZWQgaW50ZXJuYWxseVxuICAgIG1lc3NhZ2VzOiB7XG4gICAgICAnISc6IG1lc3NhZ2VzXG4gICAgfSxcbiAgICBuYW1lc3BhY2U6IG5hbWVzcGFjZSA/IGAhLiR7bmFtZXNwYWNlfWAgOiAnISdcbiAgfSwgJyEnKTtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYSBsb2NhbGUgZXhpc3RzIGluIGEgbGlzdCBvZiBsb2NhbGVzLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvSW50bC9Mb2NhbGVcbiAqL1xuZnVuY3Rpb24gaGFzTG9jYWxlKGxvY2FsZXMsIGNhbmRpZGF0ZSkge1xuICByZXR1cm4gbG9jYWxlcy5pbmNsdWRlcyhjYW5kaWRhdGUpO1xufVxuXG5leHBvcnQgeyBjcmVhdGVDYWNoZSBhcyBfY3JlYXRlQ2FjaGUsIGNyZWF0ZUludGxGb3JtYXR0ZXJzIGFzIF9jcmVhdGVJbnRsRm9ybWF0dGVycywgY3JlYXRlVHJhbnNsYXRvciwgaGFzTG9jYWxlIH07XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/.pnpm/use-intl@4.9.0_react@19.2.4/node_modules/use-intl/dist/esm/development/core.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/.pnpm/use-intl@4.9.0_react@19.2.4/node_modules/use-intl/dist/esm/development/format-message/index.js":
/*!***************************************************************************************************************************!*\
!*** ./node_modules/.pnpm/use-intl@4.9.0_react@19.2.4/node_modules/use-intl/dist/esm/development/format-message/index.js ***!
\***************************************************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ formatMessage)\n/* harmony export */ });\n/* harmony import */ var intl_messageformat__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! intl-messageformat */ \"(rsc)/./node_modules/.pnpm/intl-messageformat@11.2.0/node_modules/intl-messageformat/src/core.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(rsc)/./node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js\");\n/* harmony import */ var _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../formatters-r4aAmsMP.js */ \"(rsc)/./node_modules/.pnpm/use-intl@4.9.0_react@19.2.4/node_modules/use-intl/dist/esm/development/formatters-r4aAmsMP.js\");\n\n\n\n\n\n/**\n * `intl-messageformat` uses separate keys for `date` and `time`, but there's\n * only one native API: `Intl.DateTimeFormat`. Additionally you might want to\n * include both a time and a date in a value, therefore the separation doesn't\n * seem so useful. We offer a single `dateTime` namespace instead, but we have\n * to convert the format before `intl-messageformat` can be used.\n */\nfunction convertFormatsToIntlMessageFormat(globalFormats, inlineFormats, timeZone) {\n const mfDateDefaults = intl_messageformat__WEBPACK_IMPORTED_MODULE_1__.IntlMessageFormat.formats.date;\n const mfTimeDefaults = intl_messageformat__WEBPACK_IMPORTED_MODULE_1__.IntlMessageFormat.formats.time;\n const dateTimeFormats = {\n ...globalFormats?.dateTime,\n ...inlineFormats?.dateTime\n };\n const allFormats = {\n date: {\n ...mfDateDefaults,\n ...dateTimeFormats\n },\n time: {\n ...mfTimeDefaults,\n ...dateTimeFormats\n },\n number: {\n ...globalFormats?.number,\n ...inlineFormats?.number\n }\n // (list is not supported in ICU messages)\n };\n if (timeZone) {\n // The only way to set a time zone with `intl-messageformat` is to merge it into the formats\n // https://github.com/formatjs/formatjs/blob/8256c5271505cf2606e48e3c97ecdd16ede4f1b5/packages/intl/src/message.ts#L15\n ['date', 'time'].forEach(property => {\n const formats = allFormats[property];\n for (const [key, value] of Object.entries(formats)) {\n formats[key] = {\n timeZone,\n ...value\n };\n }\n });\n }\n return allFormats;\n}\n\n// Placed here for improved tree shaking. Somehow when this is placed in\n// `formatters.tsx`, then it can't be shaken off from `next-intl`.\nfunction createMessageFormatter(cache, intlFormatters) {\n const getMessageFormat = (0,_formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_2__.m)((...args) => new intl_messageformat__WEBPACK_IMPORTED_MODULE_1__.IntlMessageFormat(args[0], args[1], args[2], {\n formatters: intlFormatters,\n ...args[3]\n }), cache.message);\n return getMessageFormat;\n}\nfunction getPlainMessage(candidate, values) {\n // To improve runtime performance, only compile message if:\n return (\n // 1. Values are provided\n values ||\n // 2. There are escaped braces (e.g. \"'{name'}\")\n /'[{}]/.test(candidate) ||\n // 3. There are missing arguments or tags (dev-only error handling)\n /<|{/.test(candidate) ? undefined // Compile\n : candidate // Don't compile\n );\n}\n\n/**\n * Compiles and formats an ICU message at runtime using intl-messageformat.\n * This is the default implementation used when messages are not precompiled.\n */\nfunction formatMessage(/** The raw ICU message string (or precompiled message, though this implementation ignores precompilation) */\n...[key, message, values, options]) {\n if (Array.isArray(message)) {\n throw new _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_2__.I(_formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_2__.a.INVALID_MESSAGE, `Message at \\`${key}\\` resolved to an array, but only strings are supported. See https://next-intl.dev/docs/usage/translations#arrays-of-messages` );\n }\n if (typeof message === 'object') {\n throw new _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_2__.I(_formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_2__.a.INSUFFICIENT_PATH, `Message at \\`${key}\\` resolved to \\`${typeof message}\\`, but only strings are supported. Use a \\`.\\` to retrieve nested messages. See https://next-intl.dev/docs/usage/translations#structuring-messages` );\n }\n\n // Hot path that avoids creating an `IntlMessageFormat` instance\n if (typeof message === 'string') {\n const plainMessage = getPlainMessage(message, values);\n if (plainMessage) return plainMessage;\n }\n const {\n cache,\n formats,\n formatters,\n globalFormats,\n locale,\n timeZone\n } = options;\n\n // Lazy init the message formatter for better tree\n // shaking in case message formatting is not used.\n if (!formatters.getMessageFormat) {\n formatters.getMessageFormat = createMessageFormatter(cache, formatters);\n }\n let messageFormat;\n try {\n messageFormat = formatters.getMessageFormat(message, locale, convertFormatsToIntlMessageFormat(globalFormats, formats, timeZone), {\n formatters: {\n ...formatters,\n getDateTimeFormat(locales, dateTimeOptions) {\n // Workaround for https://github.com/formatjs/formatjs/issues/4279\n return formatters.getDateTimeFormat(locales, {\n ...dateTimeOptions,\n timeZone: dateTimeOptions?.timeZone ?? timeZone\n });\n }\n }\n });\n } catch (error) {\n throw new _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_2__.I(_formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_2__.a.INVALID_MESSAGE, `${error.message} (${error.originalMessage})` );\n }\n const formattedMessage = messageFormat.format(\n // @ts-expect-error `intl-messageformat` expects a different format\n // for rich text elements since a recent minor update. This\n // needs to be evaluated in detail, possibly also in regard\n // to be able to format to parts.\n values);\n\n // Limit the function signature to return strings or React elements\n return /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.isValidElement)(formattedMessage) ||\n // Arrays of React elements\n Array.isArray(formattedMessage) || typeof formattedMessage === 'string' ? formattedMessage : String(formattedMessage);\n}\n\n// `t.raw` is supported\nformatMessage.raw = true;\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvLnBucG0vdXNlLWludGxANC45LjBfcmVhY3RAMTkuMi40L25vZGVfbW9kdWxlcy91c2UtaW50bC9kaXN0L2VzbS9kZXZlbG9wbWVudC9mb3JtYXQtbWVzc2FnZS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQXVEO0FBQ2hCO0FBQ3FEOzs7QUFHNUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QixpRUFBaUI7QUFDMUMseUJBQXlCLGlFQUFpQjtBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsMERBQU0sa0JBQWtCLGlFQUFpQjtBQUNwRTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNENBQTRDLE1BQU07QUFDbEQsU0FBUztBQUNUO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsc0RBQVMsQ0FBQyxzREFBYSxrQ0FBa0MsSUFBSTtBQUMzRTtBQUNBO0FBQ0EsY0FBYyxzREFBUyxDQUFDLHNEQUFhLG9DQUFvQyxJQUFJLG1CQUFtQixlQUFlO0FBQy9HOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7O0FBRUo7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsSUFBSTtBQUNKLGNBQWMsc0RBQVMsQ0FBQyxzREFBYSxxQkFBcUIsZUFBZSxHQUFHLHNCQUFzQjtBQUNsRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHNCQUFzQixxREFBYztBQUNwQztBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFb0MiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXJjbWludGVsL1Byb2plY3RzL2UtdGliLmNvbS9ub2RlX21vZHVsZXMvLnBucG0vdXNlLWludGxANC45LjBfcmVhY3RAMTkuMi40L25vZGVfbW9kdWxlcy91c2UtaW50bC9kaXN0L2VzbS9kZXZlbG9wbWVudC9mb3JtYXQtbWVzc2FnZS9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnRsTWVzc2FnZUZvcm1hdCB9IGZyb20gJ2ludGwtbWVzc2FnZWZvcm1hdCc7XG5pbXBvcnQgeyBpc1ZhbGlkRWxlbWVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEkgYXMgSW50bEVycm9yLCBhIGFzIEludGxFcnJvckNvZGUsIG0gYXMgbWVtb0ZuIH0gZnJvbSAnLi4vZm9ybWF0dGVycy1yNGFBbXNNUC5qcyc7XG5cblxuLyoqXG4gKiBgaW50bC1tZXNzYWdlZm9ybWF0YCB1c2VzIHNlcGFyYXRlIGtleXMgZm9yIGBkYXRlYCBhbmQgYHRpbWVgLCBidXQgdGhlcmUnc1xuICogb25seSBvbmUgbmF0aXZlIEFQSTogYEludGwuRGF0ZVRpbWVGb3JtYXRgLiBBZGRpdGlvbmFsbHkgeW91IG1pZ2h0IHdhbnQgdG9cbiAqIGluY2x1ZGUgYm90aCBhIHRpbWUgYW5kIGEgZGF0ZSBpbiBhIHZhbHVlLCB0aGVyZWZvcmUgdGhlIHNlcGFyYXRpb24gZG9lc24ndFxuICogc2VlbSBzbyB1c2VmdWwuIFdlIG9mZmVyIGEgc2luZ2xlIGBkYXRlVGltZWAgbmFtZXNwYWNlIGluc3RlYWQsIGJ1dCB3ZSBoYXZlXG4gKiB0byBjb252ZXJ0IHRoZSBmb3JtYXQgYmVmb3JlIGBpbnRsLW1lc3NhZ2Vmb3JtYXRgIGNhbiBiZSB1c2VkLlxuICovXG5mdW5jdGlvbiBjb252ZXJ0Rm9ybWF0c1RvSW50bE1lc3NhZ2VGb3JtYXQoZ2xvYmFsRm9ybWF0cywgaW5saW5lRm9ybWF0cywgdGltZVpvbmUpIHtcbiAgY29uc3QgbWZEYXRlRGVmYXVsdHMgPSBJbnRsTWVzc2FnZUZvcm1hdC5mb3JtYXRzLmRhdGU7XG4gIGNvbnN0IG1mVGltZURlZmF1bHRzID0gSW50bE1lc3NhZ2VGb3JtYXQuZm9ybWF0cy50aW1lO1xuICBjb25zdCBkYXRlVGltZUZvcm1hdHMgPSB7XG4gICAgLi4uZ2xvYmFsRm9ybWF0cz8uZGF0ZVRpbWUsXG4gICAgLi4uaW5saW5lRm9ybWF0cz8uZGF0ZVRpbWVcbiAgfTtcbiAgY29uc3QgYWxsRm9ybWF0cyA9IHtcbiAgICBkYXRlOiB7XG4gICAgICAuLi5tZkRhdGVEZWZhdWx0cyxcbiAgICAgIC4uLmRhdGVUaW1lRm9ybWF0c1xuICAgIH0sXG4gICAgdGltZToge1xuICAgICAgLi4ubWZUaW1lRGVmYXVsdHMsXG4gICAgICAuLi5kYXRlVGltZUZvcm1hdHNcbiAgICB9LFxuICAgIG51bWJlcjoge1xuICAgICAgLi4uZ2xvYmFsRm9ybWF0cz8ubnVtYmVyLFxuICAgICAgLi4uaW5saW5lRm9ybWF0cz8ubnVtYmVyXG4gICAgfVxuICAgIC8vIChsaXN0IGlzIG5vdCBzdXBwb3J0ZWQgaW4gSUNVIG1lc3NhZ2VzKVxuICB9O1xuICBpZiAodGltZVpvbmUpIHtcbiAgICAvLyBUaGUgb25seSB3YXkgdG8gc2V0IGEgdGltZSB6b25lIHdpdGggYGludGwtbWVzc2FnZWZvcm1hdGAgaXMgdG8gbWVyZ2UgaXQgaW50byB0aGUgZm9ybWF0c1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3JtYXRqcy9mb3JtYXRqcy9ibG9iLzgyNTZjNTI3MTUwNWNmMjYwNmU0OGUzYzk3ZWNkZDE2ZWRlNGYxYjUvcGFja2FnZXMvaW50bC9zcmMvbWVzc2FnZS50cyNMMTVcbiAgICBbJ2RhdGUnLCAndGltZSddLmZvckVhY2gocHJvcGVydHkgPT4ge1xuICAgICAgY29uc3QgZm9ybWF0cyA9IGFsbEZvcm1hdHNbcHJvcGVydHldO1xuICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoZm9ybWF0cykpIHtcbiAgICAgICAgZm9ybWF0c1trZXldID0ge1xuICAgICAgICAgIHRpbWVab25lLFxuICAgICAgICAgIC4uLnZhbHVlXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGFsbEZvcm1hdHM7XG59XG5cbi8vIFBsYWNlZCBoZXJlIGZvciBpbXByb3ZlZCB0cmVlIHNoYWtpbmcuIFNvbWVob3cgd2hlbiB0aGlzIGlzIHBsYWNlZCBpblxuLy8gYGZvcm1hdHRlcnMudHN4YCwgdGhlbiBpdCBjYW4ndCBiZSBzaGFrZW4gb2ZmIGZyb20gYG5leHQtaW50bGAuXG5mdW5jdGlvbiBjcmVhdGVNZXNzYWdlRm9ybWF0dGVyKGNhY2hlLCBpbnRsRm9ybWF0dGVycykge1xuICBjb25zdCBnZXRNZXNzYWdlRm9ybWF0ID0gbWVtb0ZuKCguLi5hcmdzKSA9PiBuZXcgSW50bE1lc3NhZ2VGb3JtYXQoYXJnc1swXSwgYXJnc1sxXSwgYXJnc1syXSwge1xuICAgIGZvcm1hdHRlcnM6IGludGxGb3JtYXR0ZXJzLFxuICAgIC4uLmFyZ3NbM11cbiAgfSksIGNhY2hlLm1lc3NhZ2UpO1xuICByZXR1cm4gZ2V0TWVzc2FnZUZvcm1hdDtcbn1cbmZ1bmN0aW9uIGdldFBsYWluTWVzc2FnZShjYW5kaWRhdGUsIHZhbHVlcykge1xuICAvLyBUbyBpbXByb3ZlIHJ1bnRpbWUgcGVyZm9ybWFuY2UsIG9ubHkgY29tcGlsZSBtZXNzYWdlIGlmOlxuICByZXR1cm4gKFxuICAgIC8vIDEuIFZhbHVlcyBhcmUgcHJvdmlkZWRcbiAgICB2YWx1ZXMgfHxcbiAgICAvLyAyLiBUaGVyZSBhcmUgZXNjYXBlZCBicmFjZXMgKGUuZy4gXCIne25hbWUnfVwiKVxuICAgIC8nW3t9XS8udGVzdChjYW5kaWRhdGUpIHx8XG4gICAgLy8gMy4gVGhlcmUgYXJlIG1pc3NpbmcgYXJndW1lbnRzIG9yIHRhZ3MgKGRldi1vbmx5IGVycm9yIGhhbmRsaW5nKVxuICAgIC88fHsvLnRlc3QoY2FuZGlkYXRlKSA/IHVuZGVmaW5lZCAvLyBDb21waWxlXG4gICAgOiBjYW5kaWRhdGUgLy8gRG9uJ3QgY29tcGlsZVxuICApO1xufVxuXG4vKipcbiAqIENvbXBpbGVzIGFuZCBmb3JtYXRzIGFuIElDVSBtZXNzYWdlIGF0IHJ1bnRpbWUgdXNpbmcgaW50bC1tZXNzYWdlZm9ybWF0LlxuICogVGhpcyBpcyB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiB1c2VkIHdoZW4gbWVzc2FnZXMgYXJlIG5vdCBwcmVjb21waWxlZC5cbiAqL1xuZnVuY3Rpb24gZm9ybWF0TWVzc2FnZSgvKiogVGhlIHJhdyBJQ1UgbWVzc2FnZSBzdHJpbmcgKG9yIHByZWNvbXBpbGVkIG1lc3NhZ2UsIHRob3VnaCB0aGlzIGltcGxlbWVudGF0aW9uIGlnbm9yZXMgcHJlY29tcGlsYXRpb24pICovXG4uLi5ba2V5LCBtZXNzYWdlLCB2YWx1ZXMsIG9wdGlvbnNdKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KG1lc3NhZ2UpKSB7XG4gICAgdGhyb3cgbmV3IEludGxFcnJvcihJbnRsRXJyb3JDb2RlLklOVkFMSURfTUVTU0FHRSwgYE1lc3NhZ2UgYXQgXFxgJHtrZXl9XFxgIHJlc29sdmVkIHRvIGFuIGFycmF5LCBidXQgb25seSBzdHJpbmdzIGFyZSBzdXBwb3J0ZWQuIFNlZSBodHRwczovL25leHQtaW50bC5kZXYvZG9jcy91c2FnZS90cmFuc2xhdGlvbnMjYXJyYXlzLW9mLW1lc3NhZ2VzYCApO1xuICB9XG4gIGlmICh0eXBlb2YgbWVzc2FnZSA9PT0gJ29iamVjdCcpIHtcbiAgICB0aHJvdyBuZXcgSW50bEVycm9yKEludGxFcnJvckNvZGUuSU5TVUZGSUNJRU5UX1BBVEgsIGBNZXNzYWdlIGF0IFxcYCR7a2V5fVxcYCByZXNvbHZlZCB0byBcXGAke3R5cGVvZiBtZXNzYWdlfVxcYCwgYnV0IG9ubHkgc3RyaW5ncyBhcmUgc3VwcG9ydGVkLiBVc2UgYSBcXGAuXFxgIHRvIHJldHJpZXZlIG5lc3RlZCBtZXNzYWdlcy4gU2VlIGh0dHBzOi8vbmV4dC1pbnRsLmRldi9kb2NzL3VzYWdlL3RyYW5zbGF0aW9ucyNzdHJ1Y3R1cmluZy1tZXNzYWdlc2AgKTtcbiAgfVxuXG4gIC8vIEhvdCBwYXRoIHRoYXQgYXZvaWRzIGNyZWF0aW5nIGFuIGBJbnRsTWVzc2FnZUZvcm1hdGAgaW5zdGFuY2VcbiAgaWYgKHR5cGVvZiBtZXNzYWdlID09PSAnc3RyaW5nJykge1xuICAgIGNvbnN0IHBsYWluTWVzc2FnZSA9IGdldFBsYWluTWVzc2FnZShtZXNzYWdlLCB2YWx1ZXMpO1xuICAgIGlmIChwbGFpbk1lc3NhZ2UpIHJldHVybiBwbGFpbk1lc3NhZ2U7XG4gIH1cbiAgY29uc3Qge1xuICAgIGNhY2hlLFxuICAgIGZvcm1hdHMsXG4gICAgZm9ybWF0dGVycyxcbiAgICBnbG9iYWxGb3JtYXRzLFxuICAgIGxvY2FsZSxcbiAgICB0aW1lWm9uZVxuICB9ID0gb3B0aW9ucztcblxuICAvLyBMYXp5IGluaXQgdGhlIG1lc3NhZ2UgZm9ybWF0dGVyIGZvciBiZXR0ZXIgdHJlZVxuICAvLyBzaGFraW5nIGluIGNhc2UgbWVzc2FnZSBmb3JtYXR0aW5nIGlzIG5vdCB1c2VkLlxuICBpZiAoIWZvcm1hdHRlcnMuZ2V0TWVzc2FnZUZvcm1hdCkge1xuICAgIGZvcm1hdHRlcnMuZ2V0TWVzc2FnZUZvcm1hdCA9IGNyZWF0ZU1lc3NhZ2VGb3JtYXR0ZXIoY2FjaGUsIGZvcm1hdHRlcnMpO1xuICB9XG4gIGxldCBtZXNzYWdlRm9ybWF0O1xuICB0cnkge1xuICAgIG1lc3NhZ2VGb3JtYXQgPSBmb3JtYXR0ZXJzLmdldE1lc3NhZ2VGb3JtYXQobWVzc2FnZSwgbG9jYWxlLCBjb252ZXJ0Rm9ybWF0c1RvSW50bE1lc3NhZ2VGb3JtYXQoZ2xvYmFsRm9ybWF0cywgZm9ybWF0cywgdGltZVpvbmUpLCB7XG4gICAgICBmb3JtYXR0ZXJzOiB7XG4gICAgICAgIC4uLmZvcm1hdHRlcnMsXG4gICAgICAgIGdldERhdGVUaW1lRm9ybWF0KGxvY2FsZXMsIGRhdGVUaW1lT3B0aW9ucykge1xuICAgICAgICAgIC8vIFdvcmthcm91bmQgZm9yIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3JtYXRqcy9mb3JtYXRqcy9pc3N1ZXMvNDI3OVxuICAgICAgICAgIHJldHVybiBmb3JtYXR0ZXJzLmdldERhdGVUaW1lRm9ybWF0KGxvY2FsZXMsIHtcbiAgICAgICAgICAgIC4uLmRhdGVUaW1lT3B0aW9ucyxcbiAgICAgICAgICAgIHRpbWVab25lOiBkYXRlVGltZU9wdGlvbnM/LnRpbWVab25lID8/IHRpbWVab25lXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICB0aHJvdyBuZXcgSW50bEVycm9yKEludGxFcnJvckNvZGUuSU5WQUxJRF9NRVNTQUdFLCBgJHtlcnJvci5tZXNzYWdlfSAoJHtlcnJvci5vcmlnaW5hbE1lc3NhZ2V9KWAgKTtcbiAgfVxuICBjb25zdCBmb3JtYXR0ZWRNZXNzYWdlID0gbWVzc2FnZUZvcm1hdC5mb3JtYXQoXG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgYGludGwtbWVzc2FnZWZvcm1hdGAgZXhwZWN0cyBhIGRpZmZlcmVudCBmb3JtYXRcbiAgLy8gZm9yIHJpY2ggdGV4dCBlbGVtZW50cyBzaW5jZSBhIHJlY2VudCBtaW5vciB1cGRhdGUuIFRoaXNcbiAgLy8gbmVlZHMgdG8gYmUgZXZhbHVhdGVkIGluIGRldGFpbCwgcG9zc2libHkgYWxzbyBpbiByZWdhcmRcbiAgLy8gdG8gYmUgYWJsZSB0byBmb3JtYXQgdG8gcGFydHMuXG4gIHZhbHVlcyk7XG5cbiAgLy8gTGltaXQgdGhlIGZ1bmN0aW9uIHNpZ25hdHVyZSB0byByZXR1cm4gc3RyaW5ncyBvciBSZWFjdCBlbGVtZW50c1xuICByZXR1cm4gLyojX19QVVJFX18qL2lzVmFsaWRFbGVtZW50KGZvcm1hdHRlZE1lc3NhZ2UpIHx8XG4gIC8vIEFycmF5cyBvZiBSZWFjdCBlbGVtZW50c1xuICBBcnJheS5pc0FycmF5KGZvcm1hdHRlZE1lc3NhZ2UpIHx8IHR5cGVvZiBmb3JtYXR0ZWRNZXNzYWdlID09PSAnc3RyaW5nJyA/IGZvcm1hdHRlZE1lc3NhZ2UgOiBTdHJpbmcoZm9ybWF0dGVkTWVzc2FnZSk7XG59XG5cbi8vIGB0LnJhd2AgaXMgc3VwcG9ydGVkXG5mb3JtYXRNZXNzYWdlLnJhdyA9IHRydWU7XG5cbmV4cG9ydCB7IGZvcm1hdE1lc3NhZ2UgYXMgZGVmYXVsdCB9O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/.pnpm/use-intl@4.9.0_react@19.2.4/node_modules/use-intl/dist/esm/development/format-message/index.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/.pnpm/use-intl@4.9.0_react@19.2.4/node_modules/use-intl/dist/esm/development/formatters-r4aAmsMP.js":
/*!**************************************************************************************************************************!*\
!*** ./node_modules/.pnpm/use-intl@4.9.0_react@19.2.4/node_modules/use-intl/dist/esm/development/formatters-r4aAmsMP.js ***!
\**************************************************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ I: () => (/* binding */ IntlError),\n/* harmony export */ a: () => (/* binding */ IntlErrorCode),\n/* harmony export */ b: () => (/* binding */ createCache),\n/* harmony export */ c: () => (/* binding */ createIntlFormatters),\n/* harmony export */ m: () => (/* binding */ memoFn)\n/* harmony export */ });\n/* harmony import */ var _formatjs_fast_memoize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @formatjs/fast-memoize */ \"(rsc)/./node_modules/.pnpm/@formatjs+fast-memoize@3.1.1/node_modules/@formatjs/fast-memoize/index.js\");\n\n\nclass IntlError extends Error {\n constructor(code, originalMessage) {\n let message = code;\n if (originalMessage) {\n message += ': ' + originalMessage;\n }\n super(message);\n this.code = code;\n if (originalMessage) {\n this.originalMessage = originalMessage;\n }\n }\n}\n\nvar IntlErrorCode = /*#__PURE__*/function (IntlErrorCode) {\n IntlErrorCode[\"MISSING_MESSAGE\"] = \"MISSING_MESSAGE\";\n IntlErrorCode[\"MISSING_FORMAT\"] = \"MISSING_FORMAT\";\n IntlErrorCode[\"ENVIRONMENT_FALLBACK\"] = \"ENVIRONMENT_FALLBACK\";\n IntlErrorCode[\"INSUFFICIENT_PATH\"] = \"INSUFFICIENT_PATH\";\n IntlErrorCode[\"INVALID_MESSAGE\"] = \"INVALID_MESSAGE\";\n IntlErrorCode[\"INVALID_KEY\"] = \"INVALID_KEY\";\n IntlErrorCode[\"FORMATTING_ERROR\"] = \"FORMATTING_ERROR\";\n return IntlErrorCode;\n}(IntlErrorCode || {});\n\nfunction createCache() {\n return {\n dateTime: {},\n number: {},\n message: {},\n relativeTime: {},\n pluralRules: {},\n list: {},\n displayNames: {}\n };\n}\nfunction createMemoCache(store) {\n return {\n create() {\n return {\n get(key) {\n return store[key];\n },\n set(key, value) {\n store[key] = value;\n }\n };\n }\n };\n}\nfunction memoFn(fn, cache) {\n return (0,_formatjs_fast_memoize__WEBPACK_IMPORTED_MODULE_0__.memoize)(fn, {\n cache: createMemoCache(cache),\n strategy: _formatjs_fast_memoize__WEBPACK_IMPORTED_MODULE_0__.strategies.variadic\n });\n}\nfunction memoConstructor(ConstructorFn, cache) {\n return memoFn((...args) => new ConstructorFn(...args), cache);\n}\nfunction createIntlFormatters(cache) {\n const getDateTimeFormat = memoConstructor(Intl.DateTimeFormat, cache.dateTime);\n const getNumberFormat = memoConstructor(Intl.NumberFormat, cache.number);\n const getPluralRules = memoConstructor(Intl.PluralRules, cache.pluralRules);\n const getRelativeTimeFormat = memoConstructor(Intl.RelativeTimeFormat, cache.relativeTime);\n const getListFormat = memoConstructor(Intl.ListFormat, cache.list);\n const getDisplayNames = memoConstructor(Intl.DisplayNames, cache.displayNames);\n return {\n getDateTimeFormat,\n getNumberFormat,\n getPluralRules,\n getRelativeTimeFormat,\n getListFormat,\n getDisplayNames\n };\n}\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvLnBucG0vdXNlLWludGxANC45LjBfcmVhY3RAMTkuMi40L25vZGVfbW9kdWxlcy91c2UtaW50bC9kaXN0L2VzbS9kZXZlbG9wbWVudC9mb3JtYXR0ZXJzLXI0YUFtc01QLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUE2RDs7QUFFN0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxvQkFBb0I7O0FBRXJCO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEIsY0FBYztBQUNkLGVBQWU7QUFDZixvQkFBb0I7QUFDcEIsbUJBQW1CO0FBQ25CLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVMsK0RBQU87QUFDaEI7QUFDQSxjQUFjLDhEQUFVO0FBQ3hCLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUV3RyIsInNvdXJjZXMiOlsiL1VzZXJzL21hcmNtaW50ZWwvUHJvamVjdHMvZS10aWIuY29tL25vZGVfbW9kdWxlcy8ucG5wbS91c2UtaW50bEA0LjkuMF9yZWFjdEAxOS4yLjQvbm9kZV9tb2R1bGVzL3VzZS1pbnRsL2Rpc3QvZXNtL2RldmVsb3BtZW50L2Zvcm1hdHRlcnMtcjRhQW1zTVAuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWVtb2l6ZSwgc3RyYXRlZ2llcyB9IGZyb20gJ0Bmb3JtYXRqcy9mYXN0LW1lbW9pemUnO1xuXG5jbGFzcyBJbnRsRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKGNvZGUsIG9yaWdpbmFsTWVzc2FnZSkge1xuICAgIGxldCBtZXNzYWdlID0gY29kZTtcbiAgICBpZiAob3JpZ2luYWxNZXNzYWdlKSB7XG4gICAgICBtZXNzYWdlICs9ICc6ICcgKyBvcmlnaW5hbE1lc3NhZ2U7XG4gICAgfVxuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMuY29kZSA9IGNvZGU7XG4gICAgaWYgKG9yaWdpbmFsTWVzc2FnZSkge1xuICAgICAgdGhpcy5vcmlnaW5hbE1lc3NhZ2UgPSBvcmlnaW5hbE1lc3NhZ2U7XG4gICAgfVxuICB9XG59XG5cbnZhciBJbnRsRXJyb3JDb2RlID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChJbnRsRXJyb3JDb2RlKSB7XG4gIEludGxFcnJvckNvZGVbXCJNSVNTSU5HX01FU1NBR0VcIl0gPSBcIk1JU1NJTkdfTUVTU0FHRVwiO1xuICBJbnRsRXJyb3JDb2RlW1wiTUlTU0lOR19GT1JNQVRcIl0gPSBcIk1JU1NJTkdfRk9STUFUXCI7XG4gIEludGxFcnJvckNvZGVbXCJFTlZJUk9OTUVOVF9GQUxMQkFDS1wiXSA9IFwiRU5WSVJPTk1FTlRfRkFMTEJBQ0tcIjtcbiAgSW50bEVycm9yQ29kZVtcIklOU1VGRklDSUVOVF9QQVRIXCJdID0gXCJJTlNVRkZJQ0lFTlRfUEFUSFwiO1xuICBJbnRsRXJyb3JDb2RlW1wiSU5WQUxJRF9NRVNTQUdFXCJdID0gXCJJTlZBTElEX01FU1NBR0VcIjtcbiAgSW50bEVycm9yQ29kZVtcIklOVkFMSURfS0VZXCJdID0gXCJJTlZBTElEX0tFWVwiO1xuICBJbnRsRXJyb3JDb2RlW1wiRk9STUFUVElOR19FUlJPUlwiXSA9IFwiRk9STUFUVElOR19FUlJPUlwiO1xuICByZXR1cm4gSW50bEVycm9yQ29kZTtcbn0oSW50bEVycm9yQ29kZSB8fCB7fSk7XG5cbmZ1bmN0aW9uIGNyZWF0ZUNhY2hlKCkge1xuICByZXR1cm4ge1xuICAgIGRhdGVUaW1lOiB7fSxcbiAgICBudW1iZXI6IHt9LFxuICAgIG1lc3NhZ2U6IHt9LFxuICAgIHJlbGF0aXZlVGltZToge30sXG4gICAgcGx1cmFsUnVsZXM6IHt9LFxuICAgIGxpc3Q6IHt9LFxuICAgIGRpc3BsYXlOYW1lczoge31cbiAgfTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZU1lbW9DYWNoZShzdG9yZSkge1xuICByZXR1cm4ge1xuICAgIGNyZWF0ZSgpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGdldChrZXkpIHtcbiAgICAgICAgICByZXR1cm4gc3RvcmVba2V5XTtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0KGtleSwgdmFsdWUpIHtcbiAgICAgICAgICBzdG9yZVtrZXldID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICB9O1xufVxuZnVuY3Rpb24gbWVtb0ZuKGZuLCBjYWNoZSkge1xuICByZXR1cm4gbWVtb2l6ZShmbiwge1xuICAgIGNhY2hlOiBjcmVhdGVNZW1vQ2FjaGUoY2FjaGUpLFxuICAgIHN0cmF0ZWd5OiBzdHJhdGVnaWVzLnZhcmlhZGljXG4gIH0pO1xufVxuZnVuY3Rpb24gbWVtb0NvbnN0cnVjdG9yKENvbnN0cnVjdG9yRm4sIGNhY2hlKSB7XG4gIHJldHVybiBtZW1vRm4oKC4uLmFyZ3MpID0+IG5ldyBDb25zdHJ1Y3RvckZuKC4uLmFyZ3MpLCBjYWNoZSk7XG59XG5mdW5jdGlvbiBjcmVhdGVJbnRsRm9ybWF0dGVycyhjYWNoZSkge1xuICBjb25zdCBnZXREYXRlVGltZUZvcm1hdCA9IG1lbW9Db25zdHJ1Y3RvcihJbnRsLkRhdGVUaW1lRm9ybWF0LCBjYWNoZS5kYXRlVGltZSk7XG4gIGNvbnN0IGdldE51bWJlckZvcm1hdCA9IG1lbW9Db25zdHJ1Y3RvcihJbnRsLk51bWJlckZvcm1hdCwgY2FjaGUubnVtYmVyKTtcbiAgY29uc3QgZ2V0UGx1cmFsUnVsZXMgPSBtZW1vQ29uc3RydWN0b3IoSW50bC5QbHVyYWxSdWxlcywgY2FjaGUucGx1cmFsUnVsZXMpO1xuICBjb25zdCBnZXRSZWxhdGl2ZVRpbWVGb3JtYXQgPSBtZW1vQ29uc3RydWN0b3IoSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQsIGNhY2hlLnJlbGF0aXZlVGltZSk7XG4gIGNvbnN0IGdldExpc3RGb3JtYXQgPSBtZW1vQ29uc3RydWN0b3IoSW50bC5MaXN0Rm9ybWF0LCBjYWNoZS5saXN0KTtcbiAgY29uc3QgZ2V0RGlzcGxheU5hbWVzID0gbWVtb0NvbnN0cnVjdG9yKEludGwuRGlzcGxheU5hbWVzLCBjYWNoZS5kaXNwbGF5TmFtZXMpO1xuICByZXR1cm4ge1xuICAgIGdldERhdGVUaW1lRm9ybWF0LFxuICAgIGdldE51bWJlckZvcm1hdCxcbiAgICBnZXRQbHVyYWxSdWxlcyxcbiAgICBnZXRSZWxhdGl2ZVRpbWVGb3JtYXQsXG4gICAgZ2V0TGlzdEZvcm1hdCxcbiAgICBnZXREaXNwbGF5TmFtZXNcbiAgfTtcbn1cblxuZXhwb3J0IHsgSW50bEVycm9yIGFzIEksIEludGxFcnJvckNvZGUgYXMgYSwgY3JlYXRlQ2FjaGUgYXMgYiwgY3JlYXRlSW50bEZvcm1hdHRlcnMgYXMgYywgbWVtb0ZuIGFzIG0gfTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/.pnpm/use-intl@4.9.0_react@19.2.4/node_modules/use-intl/dist/esm/development/formatters-r4aAmsMP.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/.pnpm/use-intl@4.9.0_react@19.2.4/node_modules/use-intl/dist/esm/development/initializeConfig-B5qJiBCm.js":
/*!********************************************************************************************************************************!*\
!*** ./node_modules/.pnpm/use-intl@4.9.0_react@19.2.4/node_modules/use-intl/dist/esm/development/initializeConfig-B5qJiBCm.js ***!
\********************************************************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ a: () => (/* binding */ createBaseTranslator),\n/* harmony export */ b: () => (/* binding */ defaultOnError),\n/* harmony export */ c: () => (/* binding */ createFormatter),\n/* harmony export */ d: () => (/* binding */ defaultGetMessageFallback),\n/* harmony export */ i: () => (/* binding */ initializeConfig),\n/* harmony export */ r: () => (/* binding */ resolveNamespace)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(rsc)/./node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js\");\n/* harmony import */ var use_intl_format_message__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! use-intl/format-message */ \"(rsc)/./node_modules/.pnpm/use-intl@4.9.0_react@19.2.4/node_modules/use-intl/dist/esm/development/format-message/index.js\");\n/* harmony import */ var _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./formatters-r4aAmsMP.js */ \"(rsc)/./node_modules/.pnpm/use-intl@4.9.0_react@19.2.4/node_modules/use-intl/dist/esm/development/formatters-r4aAmsMP.js\");\n\n\n\n\nfunction joinPath(...parts) {\n return parts.filter(Boolean).join('.');\n}\n\n/**\n * Contains defaults that are used for all entry points into the core.\n * See also `InitializedIntlConfiguration`.\n */\n\nfunction defaultGetMessageFallback(props) {\n return joinPath(props.namespace, props.key);\n}\nfunction defaultOnError(error) {\n console.error(error);\n}\n\nfunction prepareTranslationValues(values) {\n // Related to https://github.com/formatjs/formatjs/issues/1467\n const transformedValues = {};\n Object.keys(values).forEach(key => {\n let index = 0;\n const value = values[key];\n let transformed;\n if (typeof value === 'function') {\n transformed = chunks => {\n const result = value(chunks);\n return /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.isValidElement)(result) ? /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.cloneElement)(result, {\n key: key + index++\n }) : result;\n };\n } else {\n transformed = value;\n }\n transformedValues[key] = transformed;\n });\n return transformedValues;\n}\nfunction resolvePath(locale, messages, key, namespace) {\n const fullKey = joinPath(namespace, key);\n if (!messages) {\n throw new Error(`No messages available at \\`${namespace}\\`.` );\n }\n let message = messages;\n key.split('.').forEach(part => {\n const next = message[part];\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (part == null || next == null) {\n throw new Error(`Could not resolve \\`${fullKey}\\` in messages for locale \\`${locale}\\`.` );\n }\n message = next;\n });\n return message;\n}\nfunction getMessagesOrError(locale, messages, namespace) {\n try {\n if (!messages) {\n throw new Error(`No messages were configured.` );\n }\n const retrievedMessages = namespace ? resolvePath(locale, messages, namespace) : messages;\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!retrievedMessages) {\n throw new Error(`No messages for namespace \\`${namespace}\\` found.` );\n }\n return retrievedMessages;\n } catch (error) {\n const intlError = new _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.I(_formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.a.MISSING_MESSAGE, error.message);\n return intlError;\n }\n}\nfunction createBaseTranslator(config) {\n const messagesOrError = getMessagesOrError(config.locale, config.messages, config.namespace);\n return createBaseTranslatorImpl({\n ...config,\n messagesOrError\n });\n}\nfunction createBaseTranslatorImpl({\n cache,\n formats: globalFormats,\n formatters,\n getMessageFallback = defaultGetMessageFallback,\n locale,\n messagesOrError,\n namespace,\n onError,\n timeZone\n}) {\n const hasMessagesError = messagesOrError instanceof _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.I;\n function getFallbackFromErrorAndNotify(key, code, message, fallback) {\n const error = new _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.I(code, message);\n onError(error);\n return fallback ?? getMessageFallback({\n error,\n key,\n namespace\n });\n }\n function translateBaseFn(/** Use a dot to indicate a level of nesting (e.g. `namespace.nestedLabel`). */\n key, /** Key value pairs for values to interpolate into the message. */\n values, /** Provide custom formats for numbers, dates and times. */\n formats, _fallback) {\n const fallback = _fallback;\n let message;\n if (hasMessagesError) {\n if (fallback) {\n message = fallback;\n } else {\n onError(messagesOrError);\n return getMessageFallback({\n error: messagesOrError,\n key,\n namespace\n });\n }\n } else {\n const messages = messagesOrError;\n try {\n message = resolvePath(locale, messages, key, namespace);\n } catch (error) {\n if (fallback) {\n message = fallback;\n } else {\n return getFallbackFromErrorAndNotify(key, _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.a.MISSING_MESSAGE, error.message, fallback);\n }\n }\n }\n try {\n const messagePath = joinPath(namespace, key);\n return (0,use_intl_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(messagePath,\n // @ts-expect-error -- We have additional validation either in `compile-format.tsx` or in case of `format-only.tsx` in the loader\n message, values ? prepareTranslationValues(values) : values, {\n cache,\n formatters,\n globalFormats,\n formats,\n locale,\n timeZone\n });\n } catch (error) {\n let errorCode, errorMessage;\n if (error instanceof _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.I) {\n errorCode = error.code;\n errorMessage = error.originalMessage;\n } else {\n errorCode = _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.a.FORMATTING_ERROR;\n errorMessage = error.message;\n }\n return getFallbackFromErrorAndNotify(key, errorCode, errorMessage, fallback);\n }\n }\n function translateFn(/** Use a dot to indicate a level of nesting (e.g. `namespace.nestedLabel`). */\n key, /** Key value pairs for values to interpolate into the message. */\n values, /** Custom formats for numbers, dates and times. */\n formats, _fallback) {\n const result = translateBaseFn(key, values, formats, _fallback);\n if (typeof result !== 'string') {\n return getFallbackFromErrorAndNotify(key, _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.a.INVALID_MESSAGE, `The message \\`${key}\\` in ${namespace ? `namespace \\`${namespace}\\`` : 'messages'} didn't resolve to a string. If you want to format rich text, use \\`t.rich\\` instead.` );\n }\n return result;\n }\n translateFn.rich = translateBaseFn;\n\n // Augment `translateBaseFn` to return plain strings\n translateFn.markup = (key, values, formats, _fallback) => {\n const result = translateBaseFn(key,\n // @ts-expect-error -- `MarkupTranslationValues` is practically a sub type\n // of `RichTranslationValues` but TypeScript isn't smart enough here.\n values, formats, _fallback);\n if (typeof result !== 'string') {\n const error = new _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.I(_formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.a.FORMATTING_ERROR, \"`t.markup` only accepts functions for formatting that receive and return strings.\\n\\nE.g. t.markup('markup', {b: (chunks) => `${chunks}`})\");\n onError(error);\n return getMessageFallback({\n error,\n key,\n namespace\n });\n }\n return result;\n };\n translateFn.raw = key => {\n {\n if (!use_intl_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"].raw) {\n throw new Error('`t.raw` is not supported when messages are precompiled.');\n }\n }\n if (hasMessagesError) {\n onError(messagesOrError);\n return getMessageFallback({\n error: messagesOrError,\n key,\n namespace\n });\n }\n const messages = messagesOrError;\n try {\n return resolvePath(locale, messages, key, namespace);\n } catch (error) {\n return getFallbackFromErrorAndNotify(key, _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.a.MISSING_MESSAGE, error.message);\n }\n };\n translateFn.has = key => {\n if (hasMessagesError) {\n return false;\n }\n try {\n resolvePath(locale, messagesOrError, key, namespace);\n return true;\n } catch {\n return false;\n }\n };\n return translateFn;\n}\n\n/**\n * For the strictly typed messages to work we have to wrap the namespace into\n * a mandatory prefix. See https://stackoverflow.com/a/71529575/343045\n */\nfunction resolveNamespace(namespace, namespacePrefix) {\n return namespace === namespacePrefix ? undefined : namespace.slice((namespacePrefix + '.').length);\n}\n\nconst SECOND = 1;\nconst MINUTE = SECOND * 60;\nconst HOUR = MINUTE * 60;\nconst DAY = HOUR * 24;\nconst WEEK = DAY * 7;\nconst MONTH = DAY * (365 / 12); // Approximation\nconst QUARTER = MONTH * 3;\nconst YEAR = DAY * 365;\nconst UNIT_SECONDS = {\n second: SECOND,\n seconds: SECOND,\n minute: MINUTE,\n minutes: MINUTE,\n hour: HOUR,\n hours: HOUR,\n day: DAY,\n days: DAY,\n week: WEEK,\n weeks: WEEK,\n month: MONTH,\n months: MONTH,\n quarter: QUARTER,\n quarters: QUARTER,\n year: YEAR,\n years: YEAR\n};\nfunction resolveRelativeTimeUnit(seconds) {\n const absValue = Math.abs(seconds);\n if (absValue < MINUTE) {\n return 'second';\n } else if (absValue < HOUR) {\n return 'minute';\n } else if (absValue < DAY) {\n return 'hour';\n } else if (absValue < WEEK) {\n return 'day';\n } else if (absValue < MONTH) {\n return 'week';\n } else if (absValue < YEAR) {\n return 'month';\n }\n return 'year';\n}\nfunction calculateRelativeTimeValue(seconds, unit) {\n // We have to round the resulting values, as `Intl.RelativeTimeFormat`\n // will include fractions like '2.1 hours ago'.\n return Math.round(seconds / UNIT_SECONDS[unit]);\n}\nfunction createFormatter(props) {\n const {\n _cache: cache = (0,_formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.b)(),\n _formatters: formatters = (0,_formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.c)(cache),\n formats,\n locale,\n onError = defaultOnError,\n timeZone: globalTimeZone\n } = props;\n function applyTimeZone(options) {\n if (!options?.timeZone) {\n if (globalTimeZone) {\n options = {\n ...options,\n timeZone: globalTimeZone\n };\n } else {\n onError(new _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.I(_formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.a.ENVIRONMENT_FALLBACK, `The \\`timeZone\\` parameter wasn't provided and there is no global default configured. Consider adding a global default to avoid markup mismatches caused by environment differences. Learn more: https://next-intl.dev/docs/configuration#time-zone` ));\n }\n }\n return options;\n }\n function resolveFormatOrOptions(typeFormats, formatOrOptions, overrides) {\n let options;\n if (typeof formatOrOptions === 'string') {\n const formatName = formatOrOptions;\n options = typeFormats?.[formatName];\n if (!options) {\n const error = new _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.I(_formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.a.MISSING_FORMAT, `Format \\`${formatName}\\` is not available.` );\n onError(error);\n throw error;\n }\n } else {\n options = formatOrOptions;\n }\n if (overrides) {\n options = {\n ...options,\n ...overrides\n };\n }\n return options;\n }\n function getFormattedValue(formatOrOptions, overrides, typeFormats, formatter, getFallback) {\n let options;\n try {\n options = resolveFormatOrOptions(typeFormats, formatOrOptions, overrides);\n } catch {\n return getFallback();\n }\n try {\n return formatter(options);\n } catch (error) {\n onError(new _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.I(_formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.a.FORMATTING_ERROR, error.message));\n return getFallback();\n }\n }\n function dateTime(value, formatOrOptions, overrides) {\n return getFormattedValue(formatOrOptions, overrides, formats?.dateTime, options => {\n options = applyTimeZone(options);\n return formatters.getDateTimeFormat(locale, options).format(value);\n }, () => String(value));\n }\n function dateTimeRange(start, end, formatOrOptions, overrides) {\n return getFormattedValue(formatOrOptions, overrides, formats?.dateTime, options => {\n options = applyTimeZone(options);\n return formatters.getDateTimeFormat(locale, options).formatRange(start, end);\n }, () => [dateTime(start), dateTime(end)].join(' – '));\n }\n function number(value, formatOrOptions, overrides) {\n return getFormattedValue(formatOrOptions, overrides, formats?.number, options => formatters.getNumberFormat(locale, options).format(value), () => String(value));\n }\n function getGlobalNow() {\n // Only read when necessary to avoid triggering a `dynamicIO` error\n // unnecessarily (`now` is only needed for `format.relativeTime`)\n if (props.now) {\n return props.now;\n } else {\n onError(new _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.I(_formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.a.ENVIRONMENT_FALLBACK, `The \\`now\\` parameter wasn't provided to \\`relativeTime\\` and there is no global default configured, therefore the current time will be used as a fallback. See https://next-intl.dev/docs/usage/dates-times#relative-times-usenow` ));\n return new Date();\n }\n }\n function relativeTime(date, nowOrOptions) {\n try {\n let nowDate, unit;\n const opts = {};\n if (nowOrOptions instanceof Date || typeof nowOrOptions === 'number') {\n nowDate = new Date(nowOrOptions);\n } else if (nowOrOptions) {\n if (nowOrOptions.now != null) {\n nowDate = new Date(nowOrOptions.now);\n } else {\n nowDate = getGlobalNow();\n }\n unit = nowOrOptions.unit;\n opts.style = nowOrOptions.style;\n // @ts-expect-error -- Types are slightly outdated\n opts.numberingSystem = nowOrOptions.numberingSystem;\n }\n if (!nowDate) {\n nowDate = getGlobalNow();\n }\n const dateDate = new Date(date);\n const seconds = (dateDate.getTime() - nowDate.getTime()) / 1000;\n if (!unit) {\n unit = resolveRelativeTimeUnit(seconds);\n }\n\n // `numeric: 'auto'` can theoretically produce output like \"yesterday\",\n // but it only works with integers. E.g. -1 day will produce \"yesterday\",\n // but -1.1 days will produce \"-1.1 days\". Rounding before formatting is\n // not desired, as the given dates might cross a threshold were the\n // output isn't correct anymore. Example: 2024-01-08T23:00:00.000Z and\n // 2024-01-08T01:00:00.000Z would produce \"yesterday\", which is not the\n // case. By using `always` we can ensure correct output. The only exception\n // is the formatting of times <1 second as \"now\".\n opts.numeric = unit === 'second' ? 'auto' : 'always';\n const value = calculateRelativeTimeValue(seconds, unit);\n return formatters.getRelativeTimeFormat(locale, opts).format(value, unit);\n } catch (error) {\n onError(new _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.I(_formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.a.FORMATTING_ERROR, error.message));\n return String(date);\n }\n }\n function list(value, formatOrOptions, overrides) {\n const serializedValue = [];\n const richValues = new Map();\n\n // `formatToParts` only accepts strings, therefore we have to temporarily\n // replace React elements with a placeholder ID that can be used to retrieve\n // the original value afterwards.\n let index = 0;\n for (const item of value) {\n let serializedItem;\n if (typeof item === 'object') {\n serializedItem = String(index);\n richValues.set(serializedItem, item);\n } else {\n serializedItem = String(item);\n }\n serializedValue.push(serializedItem);\n index++;\n }\n return getFormattedValue(formatOrOptions, overrides, formats?.list,\n // @ts-expect-error -- `richValues.size` is used to determine the return type, but TypeScript can't infer the meaning of this correctly\n options => {\n const result = formatters.getListFormat(locale, options).formatToParts(serializedValue).map(part => part.type === 'literal' ? part.value : richValues.get(part.value) || part.value);\n if (richValues.size > 0) {\n return result;\n } else {\n return result.join('');\n }\n }, () => String(value));\n }\n return {\n dateTime,\n number,\n relativeTime,\n list,\n dateTimeRange\n };\n}\n\nfunction validateMessagesSegment(messages, invalidKeyLabels, parentPath) {\n Object.entries(messages).forEach(([key, messageOrMessages]) => {\n if (key.includes('.')) {\n let keyLabel = key;\n if (parentPath) keyLabel += ` (at ${parentPath})`;\n invalidKeyLabels.push(keyLabel);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (messageOrMessages != null && typeof messageOrMessages === 'object') {\n validateMessagesSegment(messageOrMessages, invalidKeyLabels, joinPath(parentPath, key));\n }\n });\n}\nfunction validateMessages(messages, onError) {\n const invalidKeyLabels = [];\n validateMessagesSegment(messages, invalidKeyLabels);\n if (invalidKeyLabels.length > 0) {\n onError(new _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.I(_formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.a.INVALID_KEY, `Namespace keys cannot contain the character \".\" as this is used to express nesting. Please remove it or replace it with another character.\n\nInvalid ${invalidKeyLabels.length === 1 ? 'key' : 'keys'}: ${invalidKeyLabels.join(', ')}\n\nIf you're migrating from a flat structure, you can convert your messages as follows:\n\nimport {set} from \"lodash\";\n\nconst input = {\n \"one.one\": \"1.1\",\n \"one.two\": \"1.2\",\n \"two.one.one\": \"2.1.1\"\n};\n\nconst output = Object.entries(input).reduce(\n (acc, [key, value]) => set(acc, key, value),\n {}\n);\n\n// Output:\n//\n// {\n// \"one\": {\n// \"one\": \"1.1\",\n// \"two\": \"1.2\"\n// },\n// \"two\": {\n// \"one\": {\n// \"one\": \"2.1.1\"\n// }\n// }\n// }\n` ));\n }\n}\n\n/**\n * Enhances the incoming props with defaults.\n */\nfunction initializeConfig({\n formats,\n getMessageFallback,\n messages,\n onError,\n ...rest\n}) {\n const finalOnError = onError || defaultOnError;\n const finalGetMessageFallback = getMessageFallback || defaultGetMessageFallback;\n {\n if (messages) {\n validateMessages(messages, finalOnError);\n }\n }\n return {\n ...rest,\n formats: formats || undefined,\n messages: messages || undefined,\n onError: finalOnError,\n getMessageFallback: finalGetMessageFallback\n };\n}\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvLnBucG0vdXNlLWludGxANC45LjBfcmVhY3RAMTkuMi40L25vZGVfbW9kdWxlcy91c2UtaW50bC9kaXN0L2VzbS9kZXZlbG9wbWVudC9pbml0aWFsaXplQ29uZmlnLUI1cUppQkNtLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFxRDtBQUNEO0FBQ3VFOztBQUUzSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLHFEQUFjLHdCQUF3QixtREFBWTtBQUM5RTtBQUNBLFNBQVM7QUFDVDtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtEQUFrRCxVQUFVO0FBQzVEO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSw2Q0FBNkMsUUFBUSw4QkFBOEIsT0FBTztBQUMxRjtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHFEQUFxRCxVQUFVO0FBQy9EO0FBQ0E7QUFDQSxJQUFJO0FBQ0osMEJBQTBCLHNEQUFTLENBQUMsc0RBQWE7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELHNEQUFzRCxzREFBUztBQUMvRDtBQUNBLHNCQUFzQixzREFBUztBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxVQUFVO0FBQ1Ysb0RBQW9ELHNEQUFhO0FBQ2pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLG1FQUFhO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsTUFBTTtBQUNOO0FBQ0EsMkJBQTJCLHNEQUFTO0FBQ3BDO0FBQ0E7QUFDQSxRQUFRO0FBQ1Isb0JBQW9CLHNEQUFhO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnREFBZ0Qsc0RBQWEsbUNBQW1DLElBQUksUUFBUSwyQkFBMkIsVUFBVSxrQkFBa0I7QUFDbks7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0Isc0RBQVMsQ0FBQyxzREFBYSxrSUFBa0kscUJBQXFCLE9BQU8sTUFBTTtBQUNuTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLCtEQUFhO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTixnREFBZ0Qsc0RBQWE7QUFDN0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQztBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSxJQUFJO0FBQ0o7QUFDQSxJQUFJO0FBQ0o7QUFDQSxJQUFJO0FBQ0o7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiwwREFBVztBQUMvQiw4QkFBOEIsMERBQW9CO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSLG9CQUFvQixzREFBUyxDQUFDLHNEQUFhO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLHNEQUFTLENBQUMsc0RBQWEsNkJBQTZCLFdBQVc7QUFDekY7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ04sa0JBQWtCLHNEQUFTLENBQUMsc0RBQWE7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ04sa0JBQWtCLHNEQUFTLENBQUMsc0RBQWE7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ04sa0JBQWtCLHNEQUFTLENBQUMsc0RBQWE7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMENBQTBDLFdBQVc7QUFDckQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLHNEQUFTLENBQUMsc0RBQWE7O0FBRXZDLFVBQVUsK0NBQStDLElBQUk7O0FBRTdEOztBQUVBLFFBQVEsS0FBSzs7QUFFYjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFOEoiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXJjbWludGVsL1Byb2plY3RzL2UtdGliLmNvbS9ub2RlX21vZHVsZXMvLnBucG0vdXNlLWludGxANC45LjBfcmVhY3RAMTkuMi40L25vZGVfbW9kdWxlcy91c2UtaW50bC9kaXN0L2VzbS9kZXZlbG9wbWVudC9pbml0aWFsaXplQ29uZmlnLUI1cUppQkNtLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNsb25lRWxlbWVudCwgaXNWYWxpZEVsZW1lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgZm9ybWF0TWVzc2FnZSBmcm9tICd1c2UtaW50bC9mb3JtYXQtbWVzc2FnZSc7XG5pbXBvcnQgeyBJIGFzIEludGxFcnJvciwgYSBhcyBJbnRsRXJyb3JDb2RlLCBjIGFzIGNyZWF0ZUludGxGb3JtYXR0ZXJzLCBiIGFzIGNyZWF0ZUNhY2hlIH0gZnJvbSAnLi9mb3JtYXR0ZXJzLXI0YUFtc01QLmpzJztcblxuZnVuY3Rpb24gam9pblBhdGgoLi4ucGFydHMpIHtcbiAgcmV0dXJuIHBhcnRzLmZpbHRlcihCb29sZWFuKS5qb2luKCcuJyk7XG59XG5cbi8qKlxuICogQ29udGFpbnMgZGVmYXVsdHMgdGhhdCBhcmUgdXNlZCBmb3IgYWxsIGVudHJ5IHBvaW50cyBpbnRvIHRoZSBjb3JlLlxuICogU2VlIGFsc28gYEluaXRpYWxpemVkSW50bENvbmZpZ3VyYXRpb25gLlxuICovXG5cbmZ1bmN0aW9uIGRlZmF1bHRHZXRNZXNzYWdlRmFsbGJhY2socHJvcHMpIHtcbiAgcmV0dXJuIGpvaW5QYXRoKHByb3BzLm5hbWVzcGFjZSwgcHJvcHMua2V5KTtcbn1cbmZ1bmN0aW9uIGRlZmF1bHRPbkVycm9yKGVycm9yKSB7XG4gIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xufVxuXG5mdW5jdGlvbiBwcmVwYXJlVHJhbnNsYXRpb25WYWx1ZXModmFsdWVzKSB7XG4gIC8vIFJlbGF0ZWQgdG8gaHR0cHM6Ly9naXRodWIuY29tL2Zvcm1hdGpzL2Zvcm1hdGpzL2lzc3Vlcy8xNDY3XG4gIGNvbnN0IHRyYW5zZm9ybWVkVmFsdWVzID0ge307XG4gIE9iamVjdC5rZXlzKHZhbHVlcykuZm9yRWFjaChrZXkgPT4ge1xuICAgIGxldCBpbmRleCA9IDA7XG4gICAgY29uc3QgdmFsdWUgPSB2YWx1ZXNba2V5XTtcbiAgICBsZXQgdHJhbnNmb3JtZWQ7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdHJhbnNmb3JtZWQgPSBjaHVua3MgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSB2YWx1ZShjaHVua3MpO1xuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qL2lzVmFsaWRFbGVtZW50KHJlc3VsdCkgPyAvKiNfX1BVUkVfXyovY2xvbmVFbGVtZW50KHJlc3VsdCwge1xuICAgICAgICAgIGtleToga2V5ICsgaW5kZXgrK1xuICAgICAgICB9KSA6IHJlc3VsdDtcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRyYW5zZm9ybWVkID0gdmFsdWU7XG4gICAgfVxuICAgIHRyYW5zZm9ybWVkVmFsdWVzW2tleV0gPSB0cmFuc2Zvcm1lZDtcbiAgfSk7XG4gIHJldHVybiB0cmFuc2Zvcm1lZFZhbHVlcztcbn1cbmZ1bmN0aW9uIHJlc29sdmVQYXRoKGxvY2FsZSwgbWVzc2FnZXMsIGtleSwgbmFtZXNwYWNlKSB7XG4gIGNvbnN0IGZ1bGxLZXkgPSBqb2luUGF0aChuYW1lc3BhY2UsIGtleSk7XG4gIGlmICghbWVzc2FnZXMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIG1lc3NhZ2VzIGF2YWlsYWJsZSBhdCBcXGAke25hbWVzcGFjZX1cXGAuYCApO1xuICB9XG4gIGxldCBtZXNzYWdlID0gbWVzc2FnZXM7XG4gIGtleS5zcGxpdCgnLicpLmZvckVhY2gocGFydCA9PiB7XG4gICAgY29uc3QgbmV4dCA9IG1lc3NhZ2VbcGFydF07XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LWNvbmRpdGlvblxuICAgIGlmIChwYXJ0ID09IG51bGwgfHwgbmV4dCA9PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCByZXNvbHZlIFxcYCR7ZnVsbEtleX1cXGAgaW4gbWVzc2FnZXMgZm9yIGxvY2FsZSBcXGAke2xvY2FsZX1cXGAuYCApO1xuICAgIH1cbiAgICBtZXNzYWdlID0gbmV4dDtcbiAgfSk7XG4gIHJldHVybiBtZXNzYWdlO1xufVxuZnVuY3Rpb24gZ2V0TWVzc2FnZXNPckVycm9yKGxvY2FsZSwgbWVzc2FnZXMsIG5hbWVzcGFjZSkge1xuICB0cnkge1xuICAgIGlmICghbWVzc2FnZXMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gbWVzc2FnZXMgd2VyZSBjb25maWd1cmVkLmAgKTtcbiAgICB9XG4gICAgY29uc3QgcmV0cmlldmVkTWVzc2FnZXMgPSBuYW1lc3BhY2UgPyByZXNvbHZlUGF0aChsb2NhbGUsIG1lc3NhZ2VzLCBuYW1lc3BhY2UpIDogbWVzc2FnZXM7XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LWNvbmRpdGlvblxuICAgIGlmICghcmV0cmlldmVkTWVzc2FnZXMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gbWVzc2FnZXMgZm9yIG5hbWVzcGFjZSBcXGAke25hbWVzcGFjZX1cXGAgZm91bmQuYCApO1xuICAgIH1cbiAgICByZXR1cm4gcmV0cmlldmVkTWVzc2FnZXM7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc3QgaW50bEVycm9yID0gbmV3IEludGxFcnJvcihJbnRsRXJyb3JDb2RlLk1JU1NJTkdfTUVTU0FHRSwgZXJyb3IubWVzc2FnZSk7XG4gICAgcmV0dXJuIGludGxFcnJvcjtcbiAgfVxufVxuZnVuY3Rpb24gY3JlYXRlQmFzZVRyYW5zbGF0b3IoY29uZmlnKSB7XG4gIGNvbnN0IG1lc3NhZ2VzT3JFcnJvciA9IGdldE1lc3NhZ2VzT3JFcnJvcihjb25maWcubG9jYWxlLCBjb25maWcubWVzc2FnZXMsIGNvbmZpZy5uYW1lc3BhY2UpO1xuICByZXR1cm4gY3JlYXRlQmFzZVRyYW5zbGF0b3JJbXBsKHtcbiAgICAuLi5jb25maWcsXG4gICAgbWVzc2FnZXNPckVycm9yXG4gIH0pO1xufVxuZnVuY3Rpb24gY3JlYXRlQmFzZVRyYW5zbGF0b3JJbXBsKHtcbiAgY2FjaGUsXG4gIGZvcm1hdHM6IGdsb2JhbEZvcm1hdHMsXG4gIGZvcm1hdHRlcnMsXG4gIGdldE1lc3NhZ2VGYWxsYmFjayA9IGRlZmF1bHRHZXRNZXNzYWdlRmFsbGJhY2ssXG4gIGxvY2FsZSxcbiAgbWVzc2FnZXNPckVycm9yLFxuICBuYW1lc3BhY2UsXG4gIG9uRXJyb3IsXG4gIHRpbWVab25lXG59KSB7XG4gIGNvbnN0IGhhc01lc3NhZ2VzRXJyb3IgPSBtZXNzYWdlc09yRXJyb3IgaW5zdGFuY2VvZiBJbnRsRXJyb3I7XG4gIGZ1bmN0aW9uIGdldEZhbGxiYWNrRnJvbUVycm9yQW5kTm90aWZ5KGtleSwgY29kZSwgbWVzc2FnZSwgZmFsbGJhY2spIHtcbiAgICBjb25zdCBlcnJvciA9IG5ldyBJbnRsRXJyb3IoY29kZSwgbWVzc2FnZSk7XG4gICAgb25FcnJvcihlcnJvcik7XG4gICAgcmV0dXJuIGZhbGxiYWNrID8/IGdldE1lc3NhZ2VGYWxsYmFjayh7XG4gICAgICBlcnJvcixcbiAgICAgIGtleSxcbiAgICAgIG5hbWVzcGFjZVxuICAgIH0pO1xuICB9XG4gIGZ1bmN0aW9uIHRyYW5zbGF0ZUJhc2VGbigvKiogVXNlIGEgZG90IHRvIGluZGljYXRlIGEgbGV2ZWwgb2YgbmVzdGluZyAoZS5nLiBgbmFtZXNwYWNlLm5lc3RlZExhYmVsYCkuICovXG4gIGtleSwgLyoqIEtleSB2YWx1ZSBwYWlycyBmb3IgdmFsdWVzIHRvIGludGVycG9sYXRlIGludG8gdGhlIG1lc3NhZ2UuICovXG4gIHZhbHVlcywgLyoqIFByb3ZpZGUgY3VzdG9tIGZvcm1hdHMgZm9yIG51bWJlcnMsIGRhdGVzIGFuZCB0aW1lcy4gKi9cbiAgZm9ybWF0cywgX2ZhbGxiYWNrKSB7XG4gICAgY29uc3QgZmFsbGJhY2sgPSBfZmFsbGJhY2s7XG4gICAgbGV0IG1lc3NhZ2U7XG4gICAgaWYgKGhhc01lc3NhZ2VzRXJyb3IpIHtcbiAgICAgIGlmIChmYWxsYmFjaykge1xuICAgICAgICBtZXNzYWdlID0gZmFsbGJhY2s7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvbkVycm9yKG1lc3NhZ2VzT3JFcnJvcik7XG4gICAgICAgIHJldHVybiBnZXRNZXNzYWdlRmFsbGJhY2soe1xuICAgICAgICAgIGVycm9yOiBtZXNzYWdlc09yRXJyb3IsXG4gICAgICAgICAga2V5LFxuICAgICAgICAgIG5hbWVzcGFjZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbWVzc2FnZXMgPSBtZXNzYWdlc09yRXJyb3I7XG4gICAgICB0cnkge1xuICAgICAgICBtZXNzYWdlID0gcmVzb2x2ZVBhdGgobG9jYWxlLCBtZXNzYWdlcywga2V5LCBuYW1lc3BhY2UpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKGZhbGxiYWNrKSB7XG4gICAgICAgICAgbWVzc2FnZSA9IGZhbGxiYWNrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBnZXRGYWxsYmFja0Zyb21FcnJvckFuZE5vdGlmeShrZXksIEludGxFcnJvckNvZGUuTUlTU0lOR19NRVNTQUdFLCBlcnJvci5tZXNzYWdlLCBmYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2VQYXRoID0gam9pblBhdGgobmFtZXNwYWNlLCBrZXkpO1xuICAgICAgcmV0dXJuIGZvcm1hdE1lc3NhZ2UobWVzc2FnZVBhdGgsXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIC0tIFdlIGhhdmUgYWRkaXRpb25hbCB2YWxpZGF0aW9uIGVpdGhlciBpbiBgY29tcGlsZS1mb3JtYXQudHN4YCBvciBpbiBjYXNlIG9mIGBmb3JtYXQtb25seS50c3hgIGluIHRoZSBsb2FkZXJcbiAgICAgIG1lc3NhZ2UsIHZhbHVlcyA/IHByZXBhcmVUcmFuc2xhdGlvblZhbHVlcyh2YWx1ZXMpIDogdmFsdWVzLCB7XG4gICAgICAgIGNhY2hlLFxuICAgICAgICBmb3JtYXR0ZXJzLFxuICAgICAgICBnbG9iYWxGb3JtYXRzLFxuICAgICAgICBmb3JtYXRzLFxuICAgICAgICBsb2NhbGUsXG4gICAgICAgIHRpbWVab25lXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgbGV0IGVycm9yQ29kZSwgZXJyb3JNZXNzYWdlO1xuICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgSW50bEVycm9yKSB7XG4gICAgICAgIGVycm9yQ29kZSA9IGVycm9yLmNvZGU7XG4gICAgICAgIGVycm9yTWVzc2FnZSA9IGVycm9yLm9yaWdpbmFsTWVzc2FnZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVycm9yQ29kZSA9IEludGxFcnJvckNvZGUuRk9STUFUVElOR19FUlJPUjtcbiAgICAgICAgZXJyb3JNZXNzYWdlID0gZXJyb3IubWVzc2FnZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBnZXRGYWxsYmFja0Zyb21FcnJvckFuZE5vdGlmeShrZXksIGVycm9yQ29kZSwgZXJyb3JNZXNzYWdlLCBmYWxsYmFjayk7XG4gICAgfVxuICB9XG4gIGZ1bmN0aW9uIHRyYW5zbGF0ZUZuKC8qKiBVc2UgYSBkb3QgdG8gaW5kaWNhdGUgYSBsZXZlbCBvZiBuZXN0aW5nIChlLmcuIGBuYW1lc3BhY2UubmVzdGVkTGFiZWxgKS4gKi9cbiAga2V5LCAvKiogS2V5IHZhbHVlIHBhaXJzIGZvciB2YWx1ZXMgdG8gaW50ZXJwb2xhdGUgaW50byB0aGUgbWVzc2FnZS4gKi9cbiAgdmFsdWVzLCAvKiogQ3VzdG9tIGZvcm1hdHMgZm9yIG51bWJlcnMsIGRhdGVzIGFuZCB0aW1lcy4gKi9cbiAgZm9ybWF0cywgX2ZhbGxiYWNrKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gdHJhbnNsYXRlQmFzZUZuKGtleSwgdmFsdWVzLCBmb3JtYXRzLCBfZmFsbGJhY2spO1xuICAgIGlmICh0eXBlb2YgcmVzdWx0ICE9PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIGdldEZhbGxiYWNrRnJvbUVycm9yQW5kTm90aWZ5KGtleSwgSW50bEVycm9yQ29kZS5JTlZBTElEX01FU1NBR0UsIGBUaGUgbWVzc2FnZSBcXGAke2tleX1cXGAgaW4gJHtuYW1lc3BhY2UgPyBgbmFtZXNwYWNlIFxcYCR7bmFtZXNwYWNlfVxcYGAgOiAnbWVzc2FnZXMnfSBkaWRuJ3QgcmVzb2x2ZSB0byBhIHN0cmluZy4gSWYgeW91IHdhbnQgdG8gZm9ybWF0IHJpY2ggdGV4dCwgdXNlIFxcYHQucmljaFxcYCBpbnN0ZWFkLmAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICB0cmFuc2xhdGVGbi5yaWNoID0gdHJhbnNsYXRlQmFzZUZuO1xuXG4gIC8vIEF1Z21lbnQgYHRyYW5zbGF0ZUJhc2VGbmAgdG8gcmV0dXJuIHBsYWluIHN0cmluZ3NcbiAgdHJhbnNsYXRlRm4ubWFya3VwID0gKGtleSwgdmFsdWVzLCBmb3JtYXRzLCBfZmFsbGJhY2spID0+IHtcbiAgICBjb25zdCByZXN1bHQgPSB0cmFuc2xhdGVCYXNlRm4oa2V5LFxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLS0gYE1hcmt1cFRyYW5zbGF0aW9uVmFsdWVzYCBpcyBwcmFjdGljYWxseSBhIHN1YiB0eXBlXG4gICAgLy8gb2YgYFJpY2hUcmFuc2xhdGlvblZhbHVlc2AgYnV0IFR5cGVTY3JpcHQgaXNuJ3Qgc21hcnQgZW5vdWdoIGhlcmUuXG4gICAgdmFsdWVzLCBmb3JtYXRzLCBfZmFsbGJhY2spO1xuICAgIGlmICh0eXBlb2YgcmVzdWx0ICE9PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgZXJyb3IgPSBuZXcgSW50bEVycm9yKEludGxFcnJvckNvZGUuRk9STUFUVElOR19FUlJPUiwgXCJgdC5tYXJrdXBgIG9ubHkgYWNjZXB0cyBmdW5jdGlvbnMgZm9yIGZvcm1hdHRpbmcgdGhhdCByZWNlaXZlIGFuZCByZXR1cm4gc3RyaW5ncy5cXG5cXG5FLmcuIHQubWFya3VwKCdtYXJrdXAnLCB7YjogKGNodW5rcykgPT4gYDxiPiR7Y2h1bmtzfTwvYj5gfSlcIik7XG4gICAgICBvbkVycm9yKGVycm9yKTtcbiAgICAgIHJldHVybiBnZXRNZXNzYWdlRmFsbGJhY2soe1xuICAgICAgICBlcnJvcixcbiAgICAgICAga2V5LFxuICAgICAgICBuYW1lc3BhY2VcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9O1xuICB0cmFuc2xhdGVGbi5yYXcgPSBrZXkgPT4ge1xuICAgIHtcbiAgICAgIGlmICghZm9ybWF0TWVzc2FnZS5yYXcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdgdC5yYXdgIGlzIG5vdCBzdXBwb3J0ZWQgd2hlbiBtZXNzYWdlcyBhcmUgcHJlY29tcGlsZWQuJyk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChoYXNNZXNzYWdlc0Vycm9yKSB7XG4gICAgICBvbkVycm9yKG1lc3NhZ2VzT3JFcnJvcik7XG4gICAgICByZXR1cm4gZ2V0TWVzc2FnZUZhbGxiYWNrKHtcbiAgICAgICAgZXJyb3I6IG1lc3NhZ2VzT3JFcnJvcixcbiAgICAgICAga2V5LFxuICAgICAgICBuYW1lc3BhY2VcbiAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBtZXNzYWdlcyA9IG1lc3NhZ2VzT3JFcnJvcjtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHJlc29sdmVQYXRoKGxvY2FsZSwgbWVzc2FnZXMsIGtleSwgbmFtZXNwYWNlKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmV0dXJuIGdldEZhbGxiYWNrRnJvbUVycm9yQW5kTm90aWZ5KGtleSwgSW50bEVycm9yQ29kZS5NSVNTSU5HX01FU1NBR0UsIGVycm9yLm1lc3NhZ2UpO1xuICAgIH1cbiAgfTtcbiAgdHJhbnNsYXRlRm4uaGFzID0ga2V5ID0+IHtcbiAgICBpZiAoaGFzTWVzc2FnZXNFcnJvcikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgcmVzb2x2ZVBhdGgobG9jYWxlLCBtZXNzYWdlc09yRXJyb3IsIGtleSwgbmFtZXNwYWNlKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIHRyYW5zbGF0ZUZuO1xufVxuXG4vKipcbiAqIEZvciB0aGUgc3RyaWN0bHkgdHlwZWQgbWVzc2FnZXMgdG8gd29yayB3ZSBoYXZlIHRvIHdyYXAgdGhlIG5hbWVzcGFjZSBpbnRvXG4gKiBhIG1hbmRhdG9yeSBwcmVmaXguIFNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNzE1Mjk1NzUvMzQzMDQ1XG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVOYW1lc3BhY2UobmFtZXNwYWNlLCBuYW1lc3BhY2VQcmVmaXgpIHtcbiAgcmV0dXJuIG5hbWVzcGFjZSA9PT0gbmFtZXNwYWNlUHJlZml4ID8gdW5kZWZpbmVkIDogbmFtZXNwYWNlLnNsaWNlKChuYW1lc3BhY2VQcmVmaXggKyAnLicpLmxlbmd0aCk7XG59XG5cbmNvbnN0IFNFQ09ORCA9IDE7XG5jb25zdCBNSU5VVEUgPSBTRUNPTkQgKiA2MDtcbmNvbnN0IEhPVVIgPSBNSU5VVEUgKiA2MDtcbmNvbnN0IERBWSA9IEhPVVIgKiAyNDtcbmNvbnN0IFdFRUsgPSBEQVkgKiA3O1xuY29uc3QgTU9OVEggPSBEQVkgKiAoMzY1IC8gMTIpOyAvLyBBcHByb3hpbWF0aW9uXG5jb25zdCBRVUFSVEVSID0gTU9OVEggKiAzO1xuY29uc3QgWUVBUiA9IERBWSAqIDM2NTtcbmNvbnN0IFVOSVRfU0VDT05EUyA9IHtcbiAgc2Vjb25kOiBTRUNPTkQsXG4gIHNlY29uZHM6IFNFQ09ORCxcbiAgbWludXRlOiBNSU5VVEUsXG4gIG1pbnV0ZXM6IE1JTlVURSxcbiAgaG91cjogSE9VUixcbiAgaG91cnM6IEhPVVIsXG4gIGRheTogREFZLFxuICBkYXlzOiBEQVksXG4gIHdlZWs6IFdFRUssXG4gIHdlZWtzOiBXRUVLLFxuICBtb250aDogTU9OVEgsXG4gIG1vbnRoczogTU9OVEgsXG4gIHF1YXJ0ZXI6IFFVQVJURVIsXG4gIHF1YXJ0ZXJzOiBRVUFSVEVSLFxuICB5ZWFyOiBZRUFSLFxuICB5ZWFyczogWUVBUlxufTtcbmZ1bmN0aW9uIHJlc29sdmVSZWxhdGl2ZVRpbWVVbml0KHNlY29uZHMpIHtcbiAgY29uc3QgYWJzVmFsdWUgPSBNYXRoLmFicyhzZWNvbmRzKTtcbiAgaWYgKGFic1ZhbHVlIDwgTUlOVVRFKSB7XG4gICAgcmV0dXJuICdzZWNvbmQnO1xuICB9IGVsc2UgaWYgKGFic1ZhbHVlIDwgSE9VUikge1xuICAgIHJldHVybiAnbWludXRlJztcbiAgfSBlbHNlIGlmIChhYnNWYWx1ZSA8IERBWSkge1xuICAgIHJldHVybiAnaG91cic7XG4gIH0gZWxzZSBpZiAoYWJzVmFsdWUgPCBXRUVLKSB7XG4gICAgcmV0dXJuICdkYXknO1xuICB9IGVsc2UgaWYgKGFic1ZhbHVlIDwgTU9OVEgpIHtcbiAgICByZXR1cm4gJ3dlZWsnO1xuICB9IGVsc2UgaWYgKGFic1ZhbHVlIDwgWUVBUikge1xuICAgIHJldHVybiAnbW9udGgnO1xuICB9XG4gIHJldHVybiAneWVhcic7XG59XG5mdW5jdGlvbiBjYWxjdWxhdGVSZWxhdGl2ZVRpbWVWYWx1ZShzZWNvbmRzLCB1bml0KSB7XG4gIC8vIFdlIGhhdmUgdG8gcm91bmQgdGhlIHJlc3VsdGluZyB2YWx1ZXMsIGFzIGBJbnRsLlJlbGF0aXZlVGltZUZvcm1hdGBcbiAgLy8gd2lsbCBpbmNsdWRlIGZyYWN0aW9ucyBsaWtlICcyLjEgaG91cnMgYWdvJy5cbiAgcmV0dXJuIE1hdGgucm91bmQoc2Vjb25kcyAvIFVOSVRfU0VDT05EU1t1bml0XSk7XG59XG5mdW5jdGlvbiBjcmVhdGVGb3JtYXR0ZXIocHJvcHMpIHtcbiAgY29uc3Qge1xuICAgIF9jYWNoZTogY2FjaGUgPSBjcmVhdGVDYWNoZSgpLFxuICAgIF9mb3JtYXR0ZXJzOiBmb3JtYXR0ZXJzID0gY3JlYXRlSW50bEZvcm1hdHRlcnMoY2FjaGUpLFxuICAgIGZvcm1hdHMsXG4gICAgbG9jYWxlLFxuICAgIG9uRXJyb3IgPSBkZWZhdWx0T25FcnJvcixcbiAgICB0aW1lWm9uZTogZ2xvYmFsVGltZVpvbmVcbiAgfSA9IHByb3BzO1xuICBmdW5jdGlvbiBhcHBseVRpbWVab25lKG9wdGlvbnMpIHtcbiAgICBpZiAoIW9wdGlvbnM/LnRpbWVab25lKSB7XG4gICAgICBpZiAoZ2xvYmFsVGltZVpvbmUpIHtcbiAgICAgICAgb3B0aW9ucyA9IHtcbiAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAgIHRpbWVab25lOiBnbG9iYWxUaW1lWm9uZVxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb25FcnJvcihuZXcgSW50bEVycm9yKEludGxFcnJvckNvZGUuRU5WSVJPTk1FTlRfRkFMTEJBQ0ssIGBUaGUgXFxgdGltZVpvbmVcXGAgcGFyYW1ldGVyIHdhc24ndCBwcm92aWRlZCBhbmQgdGhlcmUgaXMgbm8gZ2xvYmFsIGRlZmF1bHQgY29uZmlndXJlZC4gQ29uc2lkZXIgYWRkaW5nIGEgZ2xvYmFsIGRlZmF1bHQgdG8gYXZvaWQgbWFya3VwIG1pc21hdGNoZXMgY2F1c2VkIGJ5IGVudmlyb25tZW50IGRpZmZlcmVuY2VzLiBMZWFybiBtb3JlOiBodHRwczovL25leHQtaW50bC5kZXYvZG9jcy9jb25maWd1cmF0aW9uI3RpbWUtem9uZWAgKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG4gIGZ1bmN0aW9uIHJlc29sdmVGb3JtYXRPck9wdGlvbnModHlwZUZvcm1hdHMsIGZvcm1hdE9yT3B0aW9ucywgb3ZlcnJpZGVzKSB7XG4gICAgbGV0IG9wdGlvbnM7XG4gICAgaWYgKHR5cGVvZiBmb3JtYXRPck9wdGlvbnMgPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCBmb3JtYXROYW1lID0gZm9ybWF0T3JPcHRpb25zO1xuICAgICAgb3B0aW9ucyA9IHR5cGVGb3JtYXRzPy5bZm9ybWF0TmFtZV07XG4gICAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgSW50bEVycm9yKEludGxFcnJvckNvZGUuTUlTU0lOR19GT1JNQVQsIGBGb3JtYXQgXFxgJHtmb3JtYXROYW1lfVxcYCBpcyBub3QgYXZhaWxhYmxlLmAgKTtcbiAgICAgICAgb25FcnJvcihlcnJvcik7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBvcHRpb25zID0gZm9ybWF0T3JPcHRpb25zO1xuICAgIH1cbiAgICBpZiAob3ZlcnJpZGVzKSB7XG4gICAgICBvcHRpb25zID0ge1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAuLi5vdmVycmlkZXNcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG4gIGZ1bmN0aW9uIGdldEZvcm1hdHRlZFZhbHVlKGZvcm1hdE9yT3B0aW9ucywgb3ZlcnJpZGVzLCB0eXBlRm9ybWF0cywgZm9ybWF0dGVyLCBnZXRGYWxsYmFjaykge1xuICAgIGxldCBvcHRpb25zO1xuICAgIHRyeSB7XG4gICAgICBvcHRpb25zID0gcmVzb2x2ZUZvcm1hdE9yT3B0aW9ucyh0eXBlRm9ybWF0cywgZm9ybWF0T3JPcHRpb25zLCBvdmVycmlkZXMpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIGdldEZhbGxiYWNrKCk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gZm9ybWF0dGVyKG9wdGlvbnMpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBvbkVycm9yKG5ldyBJbnRsRXJyb3IoSW50bEVycm9yQ29kZS5GT1JNQVRUSU5HX0VSUk9SLCBlcnJvci5tZXNzYWdlKSk7XG4gICAgICByZXR1cm4gZ2V0RmFsbGJhY2soKTtcbiAgICB9XG4gIH1cbiAgZnVuY3Rpb24gZGF0ZVRpbWUodmFsdWUsIGZvcm1hdE9yT3B0aW9ucywgb3ZlcnJpZGVzKSB7XG4gICAgcmV0dXJuIGdldEZvcm1hdHRlZFZhbHVlKGZvcm1hdE9yT3B0aW9ucywgb3ZlcnJpZGVzLCBmb3JtYXRzPy5kYXRlVGltZSwgb3B0aW9ucyA9PiB7XG4gICAgICBvcHRpb25zID0gYXBwbHlUaW1lWm9uZShvcHRpb25zKTtcbiAgICAgIHJldHVybiBmb3JtYXR0ZXJzLmdldERhdGVUaW1lRm9ybWF0KGxvY2FsZSwgb3B0aW9ucykuZm9ybWF0KHZhbHVlKTtcbiAgICB9LCAoKSA9PiBTdHJpbmcodmFsdWUpKTtcbiAgfVxuICBmdW5jdGlvbiBkYXRlVGltZVJhbmdlKHN0YXJ0LCBlbmQsIGZvcm1hdE9yT3B0aW9ucywgb3ZlcnJpZGVzKSB7XG4gICAgcmV0dXJuIGdldEZvcm1hdHRlZFZhbHVlKGZvcm1hdE9yT3B0aW9ucywgb3ZlcnJpZGVzLCBmb3JtYXRzPy5kYXRlVGltZSwgb3B0aW9ucyA9PiB7XG4gICAgICBvcHRpb25zID0gYXBwbHlUaW1lWm9uZShvcHRpb25zKTtcbiAgICAgIHJldHVybiBmb3JtYXR0ZXJzLmdldERhdGVUaW1lRm9ybWF0KGxvY2FsZSwgb3B0aW9ucykuZm9ybWF0UmFuZ2Uoc3RhcnQsIGVuZCk7XG4gICAgfSwgKCkgPT4gW2RhdGVUaW1lKHN0YXJ0KSwgZGF0ZVRpbWUoZW5kKV0uam9pbign4oCJ4oCT4oCJJykpO1xuICB9XG4gIGZ1bmN0aW9uIG51bWJlcih2YWx1ZSwgZm9ybWF0T3JPcHRpb25zLCBvdmVycmlkZXMpIHtcbiAgICByZXR1cm4gZ2V0Rm9ybWF0dGVkVmFsdWUoZm9ybWF0T3JPcHRpb25zLCBvdmVycmlkZXMsIGZvcm1hdHM/Lm51bWJlciwgb3B0aW9ucyA9PiBmb3JtYXR0ZXJzLmdldE51bWJlckZvcm1hdChsb2NhbGUsIG9wdGlvbnMpLmZvcm1hdCh2YWx1ZSksICgpID0+IFN0cmluZyh2YWx1ZSkpO1xuICB9XG4gIGZ1bmN0aW9uIGdldEdsb2JhbE5vdygpIHtcbiAgICAvLyBPbmx5IHJlYWQgd2hlbiBuZWNlc3NhcnkgdG8gYXZvaWQgdHJpZ2dlcmluZyBhIGBkeW5hbWljSU9gIGVycm9yXG4gICAgLy8gdW5uZWNlc3NhcmlseSAoYG5vd2AgaXMgb25seSBuZWVkZWQgZm9yIGBmb3JtYXQucmVsYXRpdmVUaW1lYClcbiAgICBpZiAocHJvcHMubm93KSB7XG4gICAgICByZXR1cm4gcHJvcHMubm93O1xuICAgIH0gZWxzZSB7XG4gICAgICBvbkVycm9yKG5ldyBJbnRsRXJyb3IoSW50bEVycm9yQ29kZS5FTlZJUk9OTUVOVF9GQUxMQkFDSywgYFRoZSBcXGBub3dcXGAgcGFyYW1ldGVyIHdhc24ndCBwcm92aWRlZCB0byBcXGByZWxhdGl2ZVRpbWVcXGAgYW5kIHRoZXJlIGlzIG5vIGdsb2JhbCBkZWZhdWx0IGNvbmZpZ3VyZWQsIHRoZXJlZm9yZSB0aGUgY3VycmVudCB0aW1lIHdpbGwgYmUgdXNlZCBhcyBhIGZhbGxiYWNrLiBTZWUgaHR0cHM6Ly9uZXh0LWludGwuZGV2L2RvY3MvdXNhZ2UvZGF0ZXMtdGltZXMjcmVsYXRpdmUtdGltZXMtdXNlbm93YCApKTtcbiAgICAgIHJldHVybiBuZXcgRGF0ZSgpO1xuICAgIH1cbiAgfVxuICBmdW5jdGlvbiByZWxhdGl2ZVRpbWUoZGF0ZSwgbm93T3JPcHRpb25zKSB7XG4gICAgdHJ5IHtcbiAgICAgIGxldCBub3dEYXRlLCB1bml0O1xuICAgICAgY29uc3Qgb3B0cyA9IHt9O1xuICAgICAgaWYgKG5vd09yT3B0aW9ucyBpbnN0YW5jZW9mIERhdGUgfHwgdHlwZW9mIG5vd09yT3B0aW9ucyA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgbm93RGF0ZSA9IG5ldyBEYXRlKG5vd09yT3B0aW9ucyk7XG4gICAgICB9IGVsc2UgaWYgKG5vd09yT3B0aW9ucykge1xuICAgICAgICBpZiAobm93T3JPcHRpb25zLm5vdyAhPSBudWxsKSB7XG4gICAgICAgICAgbm93RGF0ZSA9IG5ldyBEYXRlKG5vd09yT3B0aW9ucy5ub3cpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5vd0RhdGUgPSBnZXRHbG9iYWxOb3coKTtcbiAgICAgICAgfVxuICAgICAgICB1bml0ID0gbm93T3JPcHRpb25zLnVuaXQ7XG4gICAgICAgIG9wdHMuc3R5bGUgPSBub3dPck9wdGlvbnMuc3R5bGU7XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLS0gVHlwZXMgYXJlIHNsaWdodGx5IG91dGRhdGVkXG4gICAgICAgIG9wdHMubnVtYmVyaW5nU3lzdGVtID0gbm93T3JPcHRpb25zLm51bWJlcmluZ1N5c3RlbTtcbiAgICAgIH1cbiAgICAgIGlmICghbm93RGF0ZSkge1xuICAgICAgICBub3dEYXRlID0gZ2V0R2xvYmFsTm93KCk7XG4gICAgICB9XG4gICAgICBjb25zdCBkYXRlRGF0ZSA9IG5ldyBEYXRlKGRhdGUpO1xuICAgICAgY29uc3Qgc2Vjb25kcyA9IChkYXRlRGF0ZS5nZXRUaW1lKCkgLSBub3dEYXRlLmdldFRpbWUoKSkgLyAxMDAwO1xuICAgICAgaWYgKCF1bml0KSB7XG4gICAgICAgIHVuaXQgPSByZXNvbHZlUmVsYXRpdmVUaW1lVW5pdChzZWNvbmRzKTtcbiAgICAgIH1cblxuICAgICAgLy8gYG51bWVyaWM6ICdhdXRvJ2AgY2FuIHRoZW9yZXRpY2FsbHkgcHJvZHVjZSBvdXRwdXQgbGlrZSBcInllc3RlcmRheVwiLFxuICAgICAgLy8gYnV0IGl0IG9ubHkgd29ya3Mgd2l0aCBpbnRlZ2Vycy4gRS5nLiAtMSBkYXkgd2lsbCBwcm9kdWNlIFwieWVzdGVyZGF5XCIsXG4gICAgICAvLyBidXQgLTEuMSBkYXlzIHdpbGwgcHJvZHVjZSBcIi0xLjEgZGF5c1wiLiBSb3VuZGluZyBiZWZvcmUgZm9ybWF0dGluZyBpc1xuICAgICAgLy8gbm90IGRlc2lyZWQsIGFzIHRoZSBnaXZlbiBkYXRlcyBtaWdodCBjcm9zcyBhIHRocmVzaG9sZCB3ZXJlIHRoZVxuICAgICAgLy8gb3V0cHV0IGlzbid0IGNvcnJlY3QgYW55bW9yZS4gRXhhbXBsZTogMjAyNC0wMS0wOFQyMzowMDowMC4wMDBaIGFuZFxuICAgICAgLy8gMjAyNC0wMS0wOFQwMTowMDowMC4wMDBaIHdvdWxkIHByb2R1Y2UgXCJ5ZXN0ZXJkYXlcIiwgd2hpY2ggaXMgbm90IHRoZVxuICAgICAgLy8gY2FzZS4gQnkgdXNpbmcgYGFsd2F5c2Agd2UgY2FuIGVuc3VyZSBjb3JyZWN0IG91dHB1dC4gVGhlIG9ubHkgZXhjZXB0aW9uXG4gICAgICAvLyBpcyB0aGUgZm9ybWF0dGluZyBvZiB0aW1lcyA8MSBzZWNvbmQgYXMgXCJub3dcIi5cbiAgICAgIG9wdHMubnVtZXJpYyA9IHVuaXQgPT09ICdzZWNvbmQnID8gJ2F1dG8nIDogJ2Fsd2F5cyc7XG4gICAgICBjb25zdCB2YWx1ZSA9IGNhbGN1bGF0ZVJlbGF0aXZlVGltZVZhbHVlKHNlY29uZHMsIHVuaXQpO1xuICAgICAgcmV0dXJuIGZvcm1hdHRlcnMuZ2V0UmVsYXRpdmVUaW1lRm9ybWF0KGxvY2FsZSwgb3B0cykuZm9ybWF0KHZhbHVlLCB1bml0KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgb25FcnJvcihuZXcgSW50bEVycm9yKEludGxFcnJvckNvZGUuRk9STUFUVElOR19FUlJPUiwgZXJyb3IubWVzc2FnZSkpO1xuICAgICAgcmV0dXJuIFN0cmluZyhkYXRlKTtcbiAgICB9XG4gIH1cbiAgZnVuY3Rpb24gbGlzdCh2YWx1ZSwgZm9ybWF0T3JPcHRpb25zLCBvdmVycmlkZXMpIHtcbiAgICBjb25zdCBzZXJpYWxpemVkVmFsdWUgPSBbXTtcbiAgICBjb25zdCByaWNoVmFsdWVzID0gbmV3IE1hcCgpO1xuXG4gICAgLy8gYGZvcm1hdFRvUGFydHNgIG9ubHkgYWNjZXB0cyBzdHJpbmdzLCB0aGVyZWZvcmUgd2UgaGF2ZSB0byB0ZW1wb3JhcmlseVxuICAgIC8vIHJlcGxhY2UgUmVhY3QgZWxlbWVudHMgd2l0aCBhIHBsYWNlaG9sZGVyIElEIHRoYXQgY2FuIGJlIHVzZWQgdG8gcmV0cmlldmVcbiAgICAvLyB0aGUgb3JpZ2luYWwgdmFsdWUgYWZ0ZXJ3YXJkcy5cbiAgICBsZXQgaW5kZXggPSAwO1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiB2YWx1ZSkge1xuICAgICAgbGV0IHNlcmlhbGl6ZWRJdGVtO1xuICAgICAgaWYgKHR5cGVvZiBpdGVtID09PSAnb2JqZWN0Jykge1xuICAgICAgICBzZXJpYWxpemVkSXRlbSA9IFN0cmluZyhpbmRleCk7XG4gICAgICAgIHJpY2hWYWx1ZXMuc2V0KHNlcmlhbGl6ZWRJdGVtLCBpdGVtKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNlcmlhbGl6ZWRJdGVtID0gU3RyaW5nKGl0ZW0pO1xuICAgICAgfVxuICAgICAgc2VyaWFsaXplZFZhbHVlLnB1c2goc2VyaWFsaXplZEl0ZW0pO1xuICAgICAgaW5kZXgrKztcbiAgICB9XG4gICAgcmV0dXJuIGdldEZvcm1hdHRlZFZhbHVlKGZvcm1hdE9yT3B0aW9ucywgb3ZlcnJpZGVzLCBmb3JtYXRzPy5saXN0LFxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLS0gYHJpY2hWYWx1ZXMuc2l6ZWAgaXMgdXNlZCB0byBkZXRlcm1pbmUgdGhlIHJldHVybiB0eXBlLCBidXQgVHlwZVNjcmlwdCBjYW4ndCBpbmZlciB0aGUgbWVhbmluZyBvZiB0aGlzIGNvcnJlY3RseVxuICAgIG9wdGlvbnMgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gZm9ybWF0dGVycy5nZXRMaXN0Rm9ybWF0KGxvY2FsZSwgb3B0aW9ucykuZm9ybWF0VG9QYXJ0cyhzZXJpYWxpemVkVmFsdWUpLm1hcChwYXJ0ID0+IHBhcnQudHlwZSA9PT0gJ2xpdGVyYWwnID8gcGFydC52YWx1ZSA6IHJpY2hWYWx1ZXMuZ2V0KHBhcnQudmFsdWUpIHx8IHBhcnQudmFsdWUpO1xuICAgICAgaWYgKHJpY2hWYWx1ZXMuc2l6ZSA+IDApIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiByZXN1bHQuam9pbignJyk7XG4gICAgICB9XG4gICAgfSwgKCkgPT4gU3RyaW5nKHZhbHVlKSk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBkYXRlVGltZSxcbiAgICBudW1iZXIsXG4gICAgcmVsYXRpdmVUaW1lLFxuICAgIGxpc3QsXG4gICAgZGF0ZVRpbWVSYW5nZVxuICB9O1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZU1lc3NhZ2VzU2VnbWVudChtZXNzYWdlcywgaW52YWxpZEtleUxhYmVscywgcGFyZW50UGF0aCkge1xuICBPYmplY3QuZW50cmllcyhtZXNzYWdlcykuZm9yRWFjaCgoW2tleSwgbWVzc2FnZU9yTWVzc2FnZXNdKSA9PiB7XG4gICAgaWYgKGtleS5pbmNsdWRlcygnLicpKSB7XG4gICAgICBsZXQga2V5TGFiZWwgPSBrZXk7XG4gICAgICBpZiAocGFyZW50UGF0aCkga2V5TGFiZWwgKz0gYCAoYXQgJHtwYXJlbnRQYXRofSlgO1xuICAgICAgaW52YWxpZEtleUxhYmVscy5wdXNoKGtleUxhYmVsKTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LWNvbmRpdGlvblxuICAgIGlmIChtZXNzYWdlT3JNZXNzYWdlcyAhPSBudWxsICYmIHR5cGVvZiBtZXNzYWdlT3JNZXNzYWdlcyA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHZhbGlkYXRlTWVzc2FnZXNTZWdtZW50KG1lc3NhZ2VPck1lc3NhZ2VzLCBpbnZhbGlkS2V5TGFiZWxzLCBqb2luUGF0aChwYXJlbnRQYXRoLCBrZXkpKTtcbiAgICB9XG4gIH0pO1xufVxuZnVuY3Rpb24gdmFsaWRhdGVNZXNzYWdlcyhtZXNzYWdlcywgb25FcnJvcikge1xuICBjb25zdCBpbnZhbGlkS2V5TGFiZWxzID0gW107XG4gIHZhbGlkYXRlTWVzc2FnZXNTZWdtZW50KG1lc3NhZ2VzLCBpbnZhbGlkS2V5TGFiZWxzKTtcbiAgaWYgKGludmFsaWRLZXlMYWJlbHMubGVuZ3RoID4gMCkge1xuICAgIG9uRXJyb3IobmV3IEludGxFcnJvcihJbnRsRXJyb3JDb2RlLklOVkFMSURfS0VZLCBgTmFtZXNwYWNlIGtleXMgY2Fubm90IGNvbnRhaW4gdGhlIGNoYXJhY3RlciBcIi5cIiBhcyB0aGlzIGlzIHVzZWQgdG8gZXhwcmVzcyBuZXN0aW5nLiBQbGVhc2UgcmVtb3ZlIGl0IG9yIHJlcGxhY2UgaXQgd2l0aCBhbm90aGVyIGNoYXJhY3Rlci5cblxuSW52YWxpZCAke2ludmFsaWRLZXlMYWJlbHMubGVuZ3RoID09PSAxID8gJ2tleScgOiAna2V5cyd9OiAke2ludmFsaWRLZXlMYWJlbHMuam9pbignLCAnKX1cblxuSWYgeW91J3JlIG1pZ3JhdGluZyBmcm9tIGEgZmxhdCBzdHJ1Y3R1cmUsIHlvdSBjYW4gY29udmVydCB5b3VyIG1lc3NhZ2VzIGFzIGZvbGxvd3M6XG5cbmltcG9ydCB7c2V0fSBmcm9tIFwibG9kYXNoXCI7XG5cbmNvbnN0IGlucHV0ID0ge1xuICBcIm9uZS5vbmVcIjogXCIxLjFcIixcbiAgXCJvbmUudHdvXCI6IFwiMS4yXCIsXG4gIFwidHdvLm9uZS5vbmVcIjogXCIyLjEuMVwiXG59O1xuXG5jb25zdCBvdXRwdXQgPSBPYmplY3QuZW50cmllcyhpbnB1dCkucmVkdWNlKFxuICAoYWNjLCBba2V5LCB2YWx1ZV0pID0+IHNldChhY2MsIGtleSwgdmFsdWUpLFxuICB7fVxuKTtcblxuLy8gT3V0cHV0OlxuLy9cbi8vIHtcbi8vICAgXCJvbmVcIjoge1xuLy8gICAgIFwib25lXCI6IFwiMS4xXCIsXG4vLyAgICAgXCJ0d29cIjogXCIxLjJcIlxuLy8gICB9LFxuLy8gICBcInR3b1wiOiB7XG4vLyAgICAgXCJvbmVcIjoge1xuLy8gICAgICAgXCJvbmVcIjogXCIyLjEuMVwiXG4vLyAgICAgfVxuLy8gICB9XG4vLyB9XG5gICkpO1xuICB9XG59XG5cbi8qKlxuICogRW5oYW5jZXMgdGhlIGluY29taW5nIHByb3BzIHdpdGggZGVmYXVsdHMuXG4gKi9cbmZ1bmN0aW9uIGluaXRpYWxpemVDb25maWcoe1xuICBmb3JtYXRzLFxuICBnZXRNZXNzYWdlRmFsbGJhY2ssXG4gIG1lc3NhZ2VzLFxuICBvbkVycm9yLFxuICAuLi5yZXN0XG59KSB7XG4gIGNvbnN0IGZpbmFsT25FcnJvciA9IG9uRXJyb3IgfHwgZGVmYXVsdE9uRXJyb3I7XG4gIGNvbnN0IGZpbmFsR2V0TWVzc2FnZUZhbGxiYWNrID0gZ2V0TWVzc2FnZUZhbGxiYWNrIHx8IGRlZmF1bHRHZXRNZXNzYWdlRmFsbGJhY2s7XG4gIHtcbiAgICBpZiAobWVzc2FnZXMpIHtcbiAgICAgIHZhbGlkYXRlTWVzc2FnZXMobWVzc2FnZXMsIGZpbmFsT25FcnJvcik7XG4gICAgfVxuICB9XG4gIHJldHVybiB7XG4gICAgLi4ucmVzdCxcbiAgICBmb3JtYXRzOiBmb3JtYXRzIHx8IHVuZGVmaW5lZCxcbiAgICBtZXNzYWdlczogbWVzc2FnZXMgfHwgdW5kZWZpbmVkLFxuICAgIG9uRXJyb3I6IGZpbmFsT25FcnJvcixcbiAgICBnZXRNZXNzYWdlRmFsbGJhY2s6IGZpbmFsR2V0TWVzc2FnZUZhbGxiYWNrXG4gIH07XG59XG5cbmV4cG9ydCB7IGNyZWF0ZUJhc2VUcmFuc2xhdG9yIGFzIGEsIGRlZmF1bHRPbkVycm9yIGFzIGIsIGNyZWF0ZUZvcm1hdHRlciBhcyBjLCBkZWZhdWx0R2V0TWVzc2FnZUZhbGxiYWNrIGFzIGQsIGluaXRpYWxpemVDb25maWcgYXMgaSwgcmVzb2x2ZU5hbWVzcGFjZSBhcyByIH07XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/.pnpm/use-intl@4.9.0_react@19.2.4/node_modules/use-intl/dist/esm/development/initializeConfig-B5qJiBCm.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/.pnpm/use-intl@4.9.0_react@19.2.4/node_modules/use-intl/dist/esm/development/format-message/index.js":
/*!***************************************************************************************************************************!*\
!*** ./node_modules/.pnpm/use-intl@4.9.0_react@19.2.4/node_modules/use-intl/dist/esm/development/format-message/index.js ***!
\***************************************************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ formatMessage)\n/* harmony export */ });\n/* harmony import */ var intl_messageformat__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! intl-messageformat */ \"(ssr)/./node_modules/.pnpm/intl-messageformat@11.2.0/node_modules/intl-messageformat/src/core.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../formatters-r4aAmsMP.js */ \"(ssr)/./node_modules/.pnpm/use-intl@4.9.0_react@19.2.4/node_modules/use-intl/dist/esm/development/formatters-r4aAmsMP.js\");\n\n\n\n\n\n/**\n * `intl-messageformat` uses separate keys for `date` and `time`, but there's\n * only one native API: `Intl.DateTimeFormat`. Additionally you might want to\n * include both a time and a date in a value, therefore the separation doesn't\n * seem so useful. We offer a single `dateTime` namespace instead, but we have\n * to convert the format before `intl-messageformat` can be used.\n */\nfunction convertFormatsToIntlMessageFormat(globalFormats, inlineFormats, timeZone) {\n const mfDateDefaults = intl_messageformat__WEBPACK_IMPORTED_MODULE_1__.IntlMessageFormat.formats.date;\n const mfTimeDefaults = intl_messageformat__WEBPACK_IMPORTED_MODULE_1__.IntlMessageFormat.formats.time;\n const dateTimeFormats = {\n ...globalFormats?.dateTime,\n ...inlineFormats?.dateTime\n };\n const allFormats = {\n date: {\n ...mfDateDefaults,\n ...dateTimeFormats\n },\n time: {\n ...mfTimeDefaults,\n ...dateTimeFormats\n },\n number: {\n ...globalFormats?.number,\n ...inlineFormats?.number\n }\n // (list is not supported in ICU messages)\n };\n if (timeZone) {\n // The only way to set a time zone with `intl-messageformat` is to merge it into the formats\n // https://github.com/formatjs/formatjs/blob/8256c5271505cf2606e48e3c97ecdd16ede4f1b5/packages/intl/src/message.ts#L15\n ['date', 'time'].forEach(property => {\n const formats = allFormats[property];\n for (const [key, value] of Object.entries(formats)) {\n formats[key] = {\n timeZone,\n ...value\n };\n }\n });\n }\n return allFormats;\n}\n\n// Placed here for improved tree shaking. Somehow when this is placed in\n// `formatters.tsx`, then it can't be shaken off from `next-intl`.\nfunction createMessageFormatter(cache, intlFormatters) {\n const getMessageFormat = (0,_formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_2__.m)((...args) => new intl_messageformat__WEBPACK_IMPORTED_MODULE_1__.IntlMessageFormat(args[0], args[1], args[2], {\n formatters: intlFormatters,\n ...args[3]\n }), cache.message);\n return getMessageFormat;\n}\nfunction getPlainMessage(candidate, values) {\n // To improve runtime performance, only compile message if:\n return (\n // 1. Values are provided\n values ||\n // 2. There are escaped braces (e.g. \"'{name'}\")\n /'[{}]/.test(candidate) ||\n // 3. There are missing arguments or tags (dev-only error handling)\n /<|{/.test(candidate) ? undefined // Compile\n : candidate // Don't compile\n );\n}\n\n/**\n * Compiles and formats an ICU message at runtime using intl-messageformat.\n * This is the default implementation used when messages are not precompiled.\n */\nfunction formatMessage(/** The raw ICU message string (or precompiled message, though this implementation ignores precompilation) */\n...[key, message, values, options]) {\n if (Array.isArray(message)) {\n throw new _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_2__.I(_formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_2__.a.INVALID_MESSAGE, `Message at \\`${key}\\` resolved to an array, but only strings are supported. See https://next-intl.dev/docs/usage/translations#arrays-of-messages` );\n }\n if (typeof message === 'object') {\n throw new _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_2__.I(_formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_2__.a.INSUFFICIENT_PATH, `Message at \\`${key}\\` resolved to \\`${typeof message}\\`, but only strings are supported. Use a \\`.\\` to retrieve nested messages. See https://next-intl.dev/docs/usage/translations#structuring-messages` );\n }\n\n // Hot path that avoids creating an `IntlMessageFormat` instance\n if (typeof message === 'string') {\n const plainMessage = getPlainMessage(message, values);\n if (plainMessage) return plainMessage;\n }\n const {\n cache,\n formats,\n formatters,\n globalFormats,\n locale,\n timeZone\n } = options;\n\n // Lazy init the message formatter for better tree\n // shaking in case message formatting is not used.\n if (!formatters.getMessageFormat) {\n formatters.getMessageFormat = createMessageFormatter(cache, formatters);\n }\n let messageFormat;\n try {\n messageFormat = formatters.getMessageFormat(message, locale, convertFormatsToIntlMessageFormat(globalFormats, formats, timeZone), {\n formatters: {\n ...formatters,\n getDateTimeFormat(locales, dateTimeOptions) {\n // Workaround for https://github.com/formatjs/formatjs/issues/4279\n return formatters.getDateTimeFormat(locales, {\n ...dateTimeOptions,\n timeZone: dateTimeOptions?.timeZone ?? timeZone\n });\n }\n }\n });\n } catch (error) {\n throw new _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_2__.I(_formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_2__.a.INVALID_MESSAGE, `${error.message} (${error.originalMessage})` );\n }\n const formattedMessage = messageFormat.format(\n // @ts-expect-error `intl-messageformat` expects a different format\n // for rich text elements since a recent minor update. This\n // needs to be evaluated in detail, possibly also in regard\n // to be able to format to parts.\n values);\n\n // Limit the function signature to return strings or React elements\n return /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.isValidElement)(formattedMessage) ||\n // Arrays of React elements\n Array.isArray(formattedMessage) || typeof formattedMessage === 'string' ? formattedMessage : String(formattedMessage);\n}\n\n// `t.raw` is supported\nformatMessage.raw = true;\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvLnBucG0vdXNlLWludGxANC45LjBfcmVhY3RAMTkuMi40L25vZGVfbW9kdWxlcy91c2UtaW50bC9kaXN0L2VzbS9kZXZlbG9wbWVudC9mb3JtYXQtbWVzc2FnZS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQXVEO0FBQ2hCO0FBQ3FEOzs7QUFHNUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QixpRUFBaUI7QUFDMUMseUJBQXlCLGlFQUFpQjtBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsMERBQU0sa0JBQWtCLGlFQUFpQjtBQUNwRTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNENBQTRDLE1BQU07QUFDbEQsU0FBUztBQUNUO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsc0RBQVMsQ0FBQyxzREFBYSxrQ0FBa0MsSUFBSTtBQUMzRTtBQUNBO0FBQ0EsY0FBYyxzREFBUyxDQUFDLHNEQUFhLG9DQUFvQyxJQUFJLG1CQUFtQixlQUFlO0FBQy9HOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7O0FBRUo7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsSUFBSTtBQUNKLGNBQWMsc0RBQVMsQ0FBQyxzREFBYSxxQkFBcUIsZUFBZSxHQUFHLHNCQUFzQjtBQUNsRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHNCQUFzQixxREFBYztBQUNwQztBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFb0MiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXJjbWludGVsL1Byb2plY3RzL2UtdGliLmNvbS9ub2RlX21vZHVsZXMvLnBucG0vdXNlLWludGxANC45LjBfcmVhY3RAMTkuMi40L25vZGVfbW9kdWxlcy91c2UtaW50bC9kaXN0L2VzbS9kZXZlbG9wbWVudC9mb3JtYXQtbWVzc2FnZS9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnRsTWVzc2FnZUZvcm1hdCB9IGZyb20gJ2ludGwtbWVzc2FnZWZvcm1hdCc7XG5pbXBvcnQgeyBpc1ZhbGlkRWxlbWVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEkgYXMgSW50bEVycm9yLCBhIGFzIEludGxFcnJvckNvZGUsIG0gYXMgbWVtb0ZuIH0gZnJvbSAnLi4vZm9ybWF0dGVycy1yNGFBbXNNUC5qcyc7XG5cblxuLyoqXG4gKiBgaW50bC1tZXNzYWdlZm9ybWF0YCB1c2VzIHNlcGFyYXRlIGtleXMgZm9yIGBkYXRlYCBhbmQgYHRpbWVgLCBidXQgdGhlcmUnc1xuICogb25seSBvbmUgbmF0aXZlIEFQSTogYEludGwuRGF0ZVRpbWVGb3JtYXRgLiBBZGRpdGlvbmFsbHkgeW91IG1pZ2h0IHdhbnQgdG9cbiAqIGluY2x1ZGUgYm90aCBhIHRpbWUgYW5kIGEgZGF0ZSBpbiBhIHZhbHVlLCB0aGVyZWZvcmUgdGhlIHNlcGFyYXRpb24gZG9lc24ndFxuICogc2VlbSBzbyB1c2VmdWwuIFdlIG9mZmVyIGEgc2luZ2xlIGBkYXRlVGltZWAgbmFtZXNwYWNlIGluc3RlYWQsIGJ1dCB3ZSBoYXZlXG4gKiB0byBjb252ZXJ0IHRoZSBmb3JtYXQgYmVmb3JlIGBpbnRsLW1lc3NhZ2Vmb3JtYXRgIGNhbiBiZSB1c2VkLlxuICovXG5mdW5jdGlvbiBjb252ZXJ0Rm9ybWF0c1RvSW50bE1lc3NhZ2VGb3JtYXQoZ2xvYmFsRm9ybWF0cywgaW5saW5lRm9ybWF0cywgdGltZVpvbmUpIHtcbiAgY29uc3QgbWZEYXRlRGVmYXVsdHMgPSBJbnRsTWVzc2FnZUZvcm1hdC5mb3JtYXRzLmRhdGU7XG4gIGNvbnN0IG1mVGltZURlZmF1bHRzID0gSW50bE1lc3NhZ2VGb3JtYXQuZm9ybWF0cy50aW1lO1xuICBjb25zdCBkYXRlVGltZUZvcm1hdHMgPSB7XG4gICAgLi4uZ2xvYmFsRm9ybWF0cz8uZGF0ZVRpbWUsXG4gICAgLi4uaW5saW5lRm9ybWF0cz8uZGF0ZVRpbWVcbiAgfTtcbiAgY29uc3QgYWxsRm9ybWF0cyA9IHtcbiAgICBkYXRlOiB7XG4gICAgICAuLi5tZkRhdGVEZWZhdWx0cyxcbiAgICAgIC4uLmRhdGVUaW1lRm9ybWF0c1xuICAgIH0sXG4gICAgdGltZToge1xuICAgICAgLi4ubWZUaW1lRGVmYXVsdHMsXG4gICAgICAuLi5kYXRlVGltZUZvcm1hdHNcbiAgICB9LFxuICAgIG51bWJlcjoge1xuICAgICAgLi4uZ2xvYmFsRm9ybWF0cz8ubnVtYmVyLFxuICAgICAgLi4uaW5saW5lRm9ybWF0cz8ubnVtYmVyXG4gICAgfVxuICAgIC8vIChsaXN0IGlzIG5vdCBzdXBwb3J0ZWQgaW4gSUNVIG1lc3NhZ2VzKVxuICB9O1xuICBpZiAodGltZVpvbmUpIHtcbiAgICAvLyBUaGUgb25seSB3YXkgdG8gc2V0IGEgdGltZSB6b25lIHdpdGggYGludGwtbWVzc2FnZWZvcm1hdGAgaXMgdG8gbWVyZ2UgaXQgaW50byB0aGUgZm9ybWF0c1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3JtYXRqcy9mb3JtYXRqcy9ibG9iLzgyNTZjNTI3MTUwNWNmMjYwNmU0OGUzYzk3ZWNkZDE2ZWRlNGYxYjUvcGFja2FnZXMvaW50bC9zcmMvbWVzc2FnZS50cyNMMTVcbiAgICBbJ2RhdGUnLCAndGltZSddLmZvckVhY2gocHJvcGVydHkgPT4ge1xuICAgICAgY29uc3QgZm9ybWF0cyA9IGFsbEZvcm1hdHNbcHJvcGVydHldO1xuICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoZm9ybWF0cykpIHtcbiAgICAgICAgZm9ybWF0c1trZXldID0ge1xuICAgICAgICAgIHRpbWVab25lLFxuICAgICAgICAgIC4uLnZhbHVlXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGFsbEZvcm1hdHM7XG59XG5cbi8vIFBsYWNlZCBoZXJlIGZvciBpbXByb3ZlZCB0cmVlIHNoYWtpbmcuIFNvbWVob3cgd2hlbiB0aGlzIGlzIHBsYWNlZCBpblxuLy8gYGZvcm1hdHRlcnMudHN4YCwgdGhlbiBpdCBjYW4ndCBiZSBzaGFrZW4gb2ZmIGZyb20gYG5leHQtaW50bGAuXG5mdW5jdGlvbiBjcmVhdGVNZXNzYWdlRm9ybWF0dGVyKGNhY2hlLCBpbnRsRm9ybWF0dGVycykge1xuICBjb25zdCBnZXRNZXNzYWdlRm9ybWF0ID0gbWVtb0ZuKCguLi5hcmdzKSA9PiBuZXcgSW50bE1lc3NhZ2VGb3JtYXQoYXJnc1swXSwgYXJnc1sxXSwgYXJnc1syXSwge1xuICAgIGZvcm1hdHRlcnM6IGludGxGb3JtYXR0ZXJzLFxuICAgIC4uLmFyZ3NbM11cbiAgfSksIGNhY2hlLm1lc3NhZ2UpO1xuICByZXR1cm4gZ2V0TWVzc2FnZUZvcm1hdDtcbn1cbmZ1bmN0aW9uIGdldFBsYWluTWVzc2FnZShjYW5kaWRhdGUsIHZhbHVlcykge1xuICAvLyBUbyBpbXByb3ZlIHJ1bnRpbWUgcGVyZm9ybWFuY2UsIG9ubHkgY29tcGlsZSBtZXNzYWdlIGlmOlxuICByZXR1cm4gKFxuICAgIC8vIDEuIFZhbHVlcyBhcmUgcHJvdmlkZWRcbiAgICB2YWx1ZXMgfHxcbiAgICAvLyAyLiBUaGVyZSBhcmUgZXNjYXBlZCBicmFjZXMgKGUuZy4gXCIne25hbWUnfVwiKVxuICAgIC8nW3t9XS8udGVzdChjYW5kaWRhdGUpIHx8XG4gICAgLy8gMy4gVGhlcmUgYXJlIG1pc3NpbmcgYXJndW1lbnRzIG9yIHRhZ3MgKGRldi1vbmx5IGVycm9yIGhhbmRsaW5nKVxuICAgIC88fHsvLnRlc3QoY2FuZGlkYXRlKSA/IHVuZGVmaW5lZCAvLyBDb21waWxlXG4gICAgOiBjYW5kaWRhdGUgLy8gRG9uJ3QgY29tcGlsZVxuICApO1xufVxuXG4vKipcbiAqIENvbXBpbGVzIGFuZCBmb3JtYXRzIGFuIElDVSBtZXNzYWdlIGF0IHJ1bnRpbWUgdXNpbmcgaW50bC1tZXNzYWdlZm9ybWF0LlxuICogVGhpcyBpcyB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiB1c2VkIHdoZW4gbWVzc2FnZXMgYXJlIG5vdCBwcmVjb21waWxlZC5cbiAqL1xuZnVuY3Rpb24gZm9ybWF0TWVzc2FnZSgvKiogVGhlIHJhdyBJQ1UgbWVzc2FnZSBzdHJpbmcgKG9yIHByZWNvbXBpbGVkIG1lc3NhZ2UsIHRob3VnaCB0aGlzIGltcGxlbWVudGF0aW9uIGlnbm9yZXMgcHJlY29tcGlsYXRpb24pICovXG4uLi5ba2V5LCBtZXNzYWdlLCB2YWx1ZXMsIG9wdGlvbnNdKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KG1lc3NhZ2UpKSB7XG4gICAgdGhyb3cgbmV3IEludGxFcnJvcihJbnRsRXJyb3JDb2RlLklOVkFMSURfTUVTU0FHRSwgYE1lc3NhZ2UgYXQgXFxgJHtrZXl9XFxgIHJlc29sdmVkIHRvIGFuIGFycmF5LCBidXQgb25seSBzdHJpbmdzIGFyZSBzdXBwb3J0ZWQuIFNlZSBodHRwczovL25leHQtaW50bC5kZXYvZG9jcy91c2FnZS90cmFuc2xhdGlvbnMjYXJyYXlzLW9mLW1lc3NhZ2VzYCApO1xuICB9XG4gIGlmICh0eXBlb2YgbWVzc2FnZSA9PT0gJ29iamVjdCcpIHtcbiAgICB0aHJvdyBuZXcgSW50bEVycm9yKEludGxFcnJvckNvZGUuSU5TVUZGSUNJRU5UX1BBVEgsIGBNZXNzYWdlIGF0IFxcYCR7a2V5fVxcYCByZXNvbHZlZCB0byBcXGAke3R5cGVvZiBtZXNzYWdlfVxcYCwgYnV0IG9ubHkgc3RyaW5ncyBhcmUgc3VwcG9ydGVkLiBVc2UgYSBcXGAuXFxgIHRvIHJldHJpZXZlIG5lc3RlZCBtZXNzYWdlcy4gU2VlIGh0dHBzOi8vbmV4dC1pbnRsLmRldi9kb2NzL3VzYWdlL3RyYW5zbGF0aW9ucyNzdHJ1Y3R1cmluZy1tZXNzYWdlc2AgKTtcbiAgfVxuXG4gIC8vIEhvdCBwYXRoIHRoYXQgYXZvaWRzIGNyZWF0aW5nIGFuIGBJbnRsTWVzc2FnZUZvcm1hdGAgaW5zdGFuY2VcbiAgaWYgKHR5cGVvZiBtZXNzYWdlID09PSAnc3RyaW5nJykge1xuICAgIGNvbnN0IHBsYWluTWVzc2FnZSA9IGdldFBsYWluTWVzc2FnZShtZXNzYWdlLCB2YWx1ZXMpO1xuICAgIGlmIChwbGFpbk1lc3NhZ2UpIHJldHVybiBwbGFpbk1lc3NhZ2U7XG4gIH1cbiAgY29uc3Qge1xuICAgIGNhY2hlLFxuICAgIGZvcm1hdHMsXG4gICAgZm9ybWF0dGVycyxcbiAgICBnbG9iYWxGb3JtYXRzLFxuICAgIGxvY2FsZSxcbiAgICB0aW1lWm9uZVxuICB9ID0gb3B0aW9ucztcblxuICAvLyBMYXp5IGluaXQgdGhlIG1lc3NhZ2UgZm9ybWF0dGVyIGZvciBiZXR0ZXIgdHJlZVxuICAvLyBzaGFraW5nIGluIGNhc2UgbWVzc2FnZSBmb3JtYXR0aW5nIGlzIG5vdCB1c2VkLlxuICBpZiAoIWZvcm1hdHRlcnMuZ2V0TWVzc2FnZUZvcm1hdCkge1xuICAgIGZvcm1hdHRlcnMuZ2V0TWVzc2FnZUZvcm1hdCA9IGNyZWF0ZU1lc3NhZ2VGb3JtYXR0ZXIoY2FjaGUsIGZvcm1hdHRlcnMpO1xuICB9XG4gIGxldCBtZXNzYWdlRm9ybWF0O1xuICB0cnkge1xuICAgIG1lc3NhZ2VGb3JtYXQgPSBmb3JtYXR0ZXJzLmdldE1lc3NhZ2VGb3JtYXQobWVzc2FnZSwgbG9jYWxlLCBjb252ZXJ0Rm9ybWF0c1RvSW50bE1lc3NhZ2VGb3JtYXQoZ2xvYmFsRm9ybWF0cywgZm9ybWF0cywgdGltZVpvbmUpLCB7XG4gICAgICBmb3JtYXR0ZXJzOiB7XG4gICAgICAgIC4uLmZvcm1hdHRlcnMsXG4gICAgICAgIGdldERhdGVUaW1lRm9ybWF0KGxvY2FsZXMsIGRhdGVUaW1lT3B0aW9ucykge1xuICAgICAgICAgIC8vIFdvcmthcm91bmQgZm9yIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3JtYXRqcy9mb3JtYXRqcy9pc3N1ZXMvNDI3OVxuICAgICAgICAgIHJldHVybiBmb3JtYXR0ZXJzLmdldERhdGVUaW1lRm9ybWF0KGxvY2FsZXMsIHtcbiAgICAgICAgICAgIC4uLmRhdGVUaW1lT3B0aW9ucyxcbiAgICAgICAgICAgIHRpbWVab25lOiBkYXRlVGltZU9wdGlvbnM/LnRpbWVab25lID8/IHRpbWVab25lXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICB0aHJvdyBuZXcgSW50bEVycm9yKEludGxFcnJvckNvZGUuSU5WQUxJRF9NRVNTQUdFLCBgJHtlcnJvci5tZXNzYWdlfSAoJHtlcnJvci5vcmlnaW5hbE1lc3NhZ2V9KWAgKTtcbiAgfVxuICBjb25zdCBmb3JtYXR0ZWRNZXNzYWdlID0gbWVzc2FnZUZvcm1hdC5mb3JtYXQoXG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgYGludGwtbWVzc2FnZWZvcm1hdGAgZXhwZWN0cyBhIGRpZmZlcmVudCBmb3JtYXRcbiAgLy8gZm9yIHJpY2ggdGV4dCBlbGVtZW50cyBzaW5jZSBhIHJlY2VudCBtaW5vciB1cGRhdGUuIFRoaXNcbiAgLy8gbmVlZHMgdG8gYmUgZXZhbHVhdGVkIGluIGRldGFpbCwgcG9zc2libHkgYWxzbyBpbiByZWdhcmRcbiAgLy8gdG8gYmUgYWJsZSB0byBmb3JtYXQgdG8gcGFydHMuXG4gIHZhbHVlcyk7XG5cbiAgLy8gTGltaXQgdGhlIGZ1bmN0aW9uIHNpZ25hdHVyZSB0byByZXR1cm4gc3RyaW5ncyBvciBSZWFjdCBlbGVtZW50c1xuICByZXR1cm4gLyojX19QVVJFX18qL2lzVmFsaWRFbGVtZW50KGZvcm1hdHRlZE1lc3NhZ2UpIHx8XG4gIC8vIEFycmF5cyBvZiBSZWFjdCBlbGVtZW50c1xuICBBcnJheS5pc0FycmF5KGZvcm1hdHRlZE1lc3NhZ2UpIHx8IHR5cGVvZiBmb3JtYXR0ZWRNZXNzYWdlID09PSAnc3RyaW5nJyA/IGZvcm1hdHRlZE1lc3NhZ2UgOiBTdHJpbmcoZm9ybWF0dGVkTWVzc2FnZSk7XG59XG5cbi8vIGB0LnJhd2AgaXMgc3VwcG9ydGVkXG5mb3JtYXRNZXNzYWdlLnJhdyA9IHRydWU7XG5cbmV4cG9ydCB7IGZvcm1hdE1lc3NhZ2UgYXMgZGVmYXVsdCB9O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/.pnpm/use-intl@4.9.0_react@19.2.4/node_modules/use-intl/dist/esm/development/format-message/index.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/.pnpm/use-intl@4.9.0_react@19.2.4/node_modules/use-intl/dist/esm/development/formatters-r4aAmsMP.js":
/*!**************************************************************************************************************************!*\
!*** ./node_modules/.pnpm/use-intl@4.9.0_react@19.2.4/node_modules/use-intl/dist/esm/development/formatters-r4aAmsMP.js ***!
\**************************************************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ I: () => (/* binding */ IntlError),\n/* harmony export */ a: () => (/* binding */ IntlErrorCode),\n/* harmony export */ b: () => (/* binding */ createCache),\n/* harmony export */ c: () => (/* binding */ createIntlFormatters),\n/* harmony export */ m: () => (/* binding */ memoFn)\n/* harmony export */ });\n/* harmony import */ var _formatjs_fast_memoize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @formatjs/fast-memoize */ \"(ssr)/./node_modules/.pnpm/@formatjs+fast-memoize@3.1.1/node_modules/@formatjs/fast-memoize/index.js\");\n\n\nclass IntlError extends Error {\n constructor(code, originalMessage) {\n let message = code;\n if (originalMessage) {\n message += ': ' + originalMessage;\n }\n super(message);\n this.code = code;\n if (originalMessage) {\n this.originalMessage = originalMessage;\n }\n }\n}\n\nvar IntlErrorCode = /*#__PURE__*/function (IntlErrorCode) {\n IntlErrorCode[\"MISSING_MESSAGE\"] = \"MISSING_MESSAGE\";\n IntlErrorCode[\"MISSING_FORMAT\"] = \"MISSING_FORMAT\";\n IntlErrorCode[\"ENVIRONMENT_FALLBACK\"] = \"ENVIRONMENT_FALLBACK\";\n IntlErrorCode[\"INSUFFICIENT_PATH\"] = \"INSUFFICIENT_PATH\";\n IntlErrorCode[\"INVALID_MESSAGE\"] = \"INVALID_MESSAGE\";\n IntlErrorCode[\"INVALID_KEY\"] = \"INVALID_KEY\";\n IntlErrorCode[\"FORMATTING_ERROR\"] = \"FORMATTING_ERROR\";\n return IntlErrorCode;\n}(IntlErrorCode || {});\n\nfunction createCache() {\n return {\n dateTime: {},\n number: {},\n message: {},\n relativeTime: {},\n pluralRules: {},\n list: {},\n displayNames: {}\n };\n}\nfunction createMemoCache(store) {\n return {\n create() {\n return {\n get(key) {\n return store[key];\n },\n set(key, value) {\n store[key] = value;\n }\n };\n }\n };\n}\nfunction memoFn(fn, cache) {\n return (0,_formatjs_fast_memoize__WEBPACK_IMPORTED_MODULE_0__.memoize)(fn, {\n cache: createMemoCache(cache),\n strategy: _formatjs_fast_memoize__WEBPACK_IMPORTED_MODULE_0__.strategies.variadic\n });\n}\nfunction memoConstructor(ConstructorFn, cache) {\n return memoFn((...args) => new ConstructorFn(...args), cache);\n}\nfunction createIntlFormatters(cache) {\n const getDateTimeFormat = memoConstructor(Intl.DateTimeFormat, cache.dateTime);\n const getNumberFormat = memoConstructor(Intl.NumberFormat, cache.number);\n const getPluralRules = memoConstructor(Intl.PluralRules, cache.pluralRules);\n const getRelativeTimeFormat = memoConstructor(Intl.RelativeTimeFormat, cache.relativeTime);\n const getListFormat = memoConstructor(Intl.ListFormat, cache.list);\n const getDisplayNames = memoConstructor(Intl.DisplayNames, cache.displayNames);\n return {\n getDateTimeFormat,\n getNumberFormat,\n getPluralRules,\n getRelativeTimeFormat,\n getListFormat,\n getDisplayNames\n };\n}\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvLnBucG0vdXNlLWludGxANC45LjBfcmVhY3RAMTkuMi40L25vZGVfbW9kdWxlcy91c2UtaW50bC9kaXN0L2VzbS9kZXZlbG9wbWVudC9mb3JtYXR0ZXJzLXI0YUFtc01QLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUE2RDs7QUFFN0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxvQkFBb0I7O0FBRXJCO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEIsY0FBYztBQUNkLGVBQWU7QUFDZixvQkFBb0I7QUFDcEIsbUJBQW1CO0FBQ25CLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVMsK0RBQU87QUFDaEI7QUFDQSxjQUFjLDhEQUFVO0FBQ3hCLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUV3RyIsInNvdXJjZXMiOlsiL1VzZXJzL21hcmNtaW50ZWwvUHJvamVjdHMvZS10aWIuY29tL25vZGVfbW9kdWxlcy8ucG5wbS91c2UtaW50bEA0LjkuMF9yZWFjdEAxOS4yLjQvbm9kZV9tb2R1bGVzL3VzZS1pbnRsL2Rpc3QvZXNtL2RldmVsb3BtZW50L2Zvcm1hdHRlcnMtcjRhQW1zTVAuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWVtb2l6ZSwgc3RyYXRlZ2llcyB9IGZyb20gJ0Bmb3JtYXRqcy9mYXN0LW1lbW9pemUnO1xuXG5jbGFzcyBJbnRsRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKGNvZGUsIG9yaWdpbmFsTWVzc2FnZSkge1xuICAgIGxldCBtZXNzYWdlID0gY29kZTtcbiAgICBpZiAob3JpZ2luYWxNZXNzYWdlKSB7XG4gICAgICBtZXNzYWdlICs9ICc6ICcgKyBvcmlnaW5hbE1lc3NhZ2U7XG4gICAgfVxuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMuY29kZSA9IGNvZGU7XG4gICAgaWYgKG9yaWdpbmFsTWVzc2FnZSkge1xuICAgICAgdGhpcy5vcmlnaW5hbE1lc3NhZ2UgPSBvcmlnaW5hbE1lc3NhZ2U7XG4gICAgfVxuICB9XG59XG5cbnZhciBJbnRsRXJyb3JDb2RlID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChJbnRsRXJyb3JDb2RlKSB7XG4gIEludGxFcnJvckNvZGVbXCJNSVNTSU5HX01FU1NBR0VcIl0gPSBcIk1JU1NJTkdfTUVTU0FHRVwiO1xuICBJbnRsRXJyb3JDb2RlW1wiTUlTU0lOR19GT1JNQVRcIl0gPSBcIk1JU1NJTkdfRk9STUFUXCI7XG4gIEludGxFcnJvckNvZGVbXCJFTlZJUk9OTUVOVF9GQUxMQkFDS1wiXSA9IFwiRU5WSVJPTk1FTlRfRkFMTEJBQ0tcIjtcbiAgSW50bEVycm9yQ29kZVtcIklOU1VGRklDSUVOVF9QQVRIXCJdID0gXCJJTlNVRkZJQ0lFTlRfUEFUSFwiO1xuICBJbnRsRXJyb3JDb2RlW1wiSU5WQUxJRF9NRVNTQUdFXCJdID0gXCJJTlZBTElEX01FU1NBR0VcIjtcbiAgSW50bEVycm9yQ29kZVtcIklOVkFMSURfS0VZXCJdID0gXCJJTlZBTElEX0tFWVwiO1xuICBJbnRsRXJyb3JDb2RlW1wiRk9STUFUVElOR19FUlJPUlwiXSA9IFwiRk9STUFUVElOR19FUlJPUlwiO1xuICByZXR1cm4gSW50bEVycm9yQ29kZTtcbn0oSW50bEVycm9yQ29kZSB8fCB7fSk7XG5cbmZ1bmN0aW9uIGNyZWF0ZUNhY2hlKCkge1xuICByZXR1cm4ge1xuICAgIGRhdGVUaW1lOiB7fSxcbiAgICBudW1iZXI6IHt9LFxuICAgIG1lc3NhZ2U6IHt9LFxuICAgIHJlbGF0aXZlVGltZToge30sXG4gICAgcGx1cmFsUnVsZXM6IHt9LFxuICAgIGxpc3Q6IHt9LFxuICAgIGRpc3BsYXlOYW1lczoge31cbiAgfTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZU1lbW9DYWNoZShzdG9yZSkge1xuICByZXR1cm4ge1xuICAgIGNyZWF0ZSgpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGdldChrZXkpIHtcbiAgICAgICAgICByZXR1cm4gc3RvcmVba2V5XTtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0KGtleSwgdmFsdWUpIHtcbiAgICAgICAgICBzdG9yZVtrZXldID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICB9O1xufVxuZnVuY3Rpb24gbWVtb0ZuKGZuLCBjYWNoZSkge1xuICByZXR1cm4gbWVtb2l6ZShmbiwge1xuICAgIGNhY2hlOiBjcmVhdGVNZW1vQ2FjaGUoY2FjaGUpLFxuICAgIHN0cmF0ZWd5OiBzdHJhdGVnaWVzLnZhcmlhZGljXG4gIH0pO1xufVxuZnVuY3Rpb24gbWVtb0NvbnN0cnVjdG9yKENvbnN0cnVjdG9yRm4sIGNhY2hlKSB7XG4gIHJldHVybiBtZW1vRm4oKC4uLmFyZ3MpID0+IG5ldyBDb25zdHJ1Y3RvckZuKC4uLmFyZ3MpLCBjYWNoZSk7XG59XG5mdW5jdGlvbiBjcmVhdGVJbnRsRm9ybWF0dGVycyhjYWNoZSkge1xuICBjb25zdCBnZXREYXRlVGltZUZvcm1hdCA9IG1lbW9Db25zdHJ1Y3RvcihJbnRsLkRhdGVUaW1lRm9ybWF0LCBjYWNoZS5kYXRlVGltZSk7XG4gIGNvbnN0IGdldE51bWJlckZvcm1hdCA9IG1lbW9Db25zdHJ1Y3RvcihJbnRsLk51bWJlckZvcm1hdCwgY2FjaGUubnVtYmVyKTtcbiAgY29uc3QgZ2V0UGx1cmFsUnVsZXMgPSBtZW1vQ29uc3RydWN0b3IoSW50bC5QbHVyYWxSdWxlcywgY2FjaGUucGx1cmFsUnVsZXMpO1xuICBjb25zdCBnZXRSZWxhdGl2ZVRpbWVGb3JtYXQgPSBtZW1vQ29uc3RydWN0b3IoSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQsIGNhY2hlLnJlbGF0aXZlVGltZSk7XG4gIGNvbnN0IGdldExpc3RGb3JtYXQgPSBtZW1vQ29uc3RydWN0b3IoSW50bC5MaXN0Rm9ybWF0LCBjYWNoZS5saXN0KTtcbiAgY29uc3QgZ2V0RGlzcGxheU5hbWVzID0gbWVtb0NvbnN0cnVjdG9yKEludGwuRGlzcGxheU5hbWVzLCBjYWNoZS5kaXNwbGF5TmFtZXMpO1xuICByZXR1cm4ge1xuICAgIGdldERhdGVUaW1lRm9ybWF0LFxuICAgIGdldE51bWJlckZvcm1hdCxcbiAgICBnZXRQbHVyYWxSdWxlcyxcbiAgICBnZXRSZWxhdGl2ZVRpbWVGb3JtYXQsXG4gICAgZ2V0TGlzdEZvcm1hdCxcbiAgICBnZXREaXNwbGF5TmFtZXNcbiAgfTtcbn1cblxuZXhwb3J0IHsgSW50bEVycm9yIGFzIEksIEludGxFcnJvckNvZGUgYXMgYSwgY3JlYXRlQ2FjaGUgYXMgYiwgY3JlYXRlSW50bEZvcm1hdHRlcnMgYXMgYywgbWVtb0ZuIGFzIG0gfTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/.pnpm/use-intl@4.9.0_react@19.2.4/node_modules/use-intl/dist/esm/development/formatters-r4aAmsMP.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/.pnpm/use-intl@4.9.0_react@19.2.4/node_modules/use-intl/dist/esm/development/initializeConfig-B5qJiBCm.js":
/*!********************************************************************************************************************************!*\
!*** ./node_modules/.pnpm/use-intl@4.9.0_react@19.2.4/node_modules/use-intl/dist/esm/development/initializeConfig-B5qJiBCm.js ***!
\********************************************************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ a: () => (/* binding */ createBaseTranslator),\n/* harmony export */ b: () => (/* binding */ defaultOnError),\n/* harmony export */ c: () => (/* binding */ createFormatter),\n/* harmony export */ d: () => (/* binding */ defaultGetMessageFallback),\n/* harmony export */ i: () => (/* binding */ initializeConfig),\n/* harmony export */ r: () => (/* binding */ resolveNamespace)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var use_intl_format_message__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! use-intl/format-message */ \"(ssr)/./node_modules/.pnpm/use-intl@4.9.0_react@19.2.4/node_modules/use-intl/dist/esm/development/format-message/index.js\");\n/* harmony import */ var _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./formatters-r4aAmsMP.js */ \"(ssr)/./node_modules/.pnpm/use-intl@4.9.0_react@19.2.4/node_modules/use-intl/dist/esm/development/formatters-r4aAmsMP.js\");\n\n\n\n\nfunction joinPath(...parts) {\n return parts.filter(Boolean).join('.');\n}\n\n/**\n * Contains defaults that are used for all entry points into the core.\n * See also `InitializedIntlConfiguration`.\n */\n\nfunction defaultGetMessageFallback(props) {\n return joinPath(props.namespace, props.key);\n}\nfunction defaultOnError(error) {\n console.error(error);\n}\n\nfunction prepareTranslationValues(values) {\n // Related to https://github.com/formatjs/formatjs/issues/1467\n const transformedValues = {};\n Object.keys(values).forEach(key => {\n let index = 0;\n const value = values[key];\n let transformed;\n if (typeof value === 'function') {\n transformed = chunks => {\n const result = value(chunks);\n return /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.isValidElement)(result) ? /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.cloneElement)(result, {\n key: key + index++\n }) : result;\n };\n } else {\n transformed = value;\n }\n transformedValues[key] = transformed;\n });\n return transformedValues;\n}\nfunction resolvePath(locale, messages, key, namespace) {\n const fullKey = joinPath(namespace, key);\n if (!messages) {\n throw new Error(`No messages available at \\`${namespace}\\`.` );\n }\n let message = messages;\n key.split('.').forEach(part => {\n const next = message[part];\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (part == null || next == null) {\n throw new Error(`Could not resolve \\`${fullKey}\\` in messages for locale \\`${locale}\\`.` );\n }\n message = next;\n });\n return message;\n}\nfunction getMessagesOrError(locale, messages, namespace) {\n try {\n if (!messages) {\n throw new Error(`No messages were configured.` );\n }\n const retrievedMessages = namespace ? resolvePath(locale, messages, namespace) : messages;\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!retrievedMessages) {\n throw new Error(`No messages for namespace \\`${namespace}\\` found.` );\n }\n return retrievedMessages;\n } catch (error) {\n const intlError = new _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.I(_formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.a.MISSING_MESSAGE, error.message);\n return intlError;\n }\n}\nfunction createBaseTranslator(config) {\n const messagesOrError = getMessagesOrError(config.locale, config.messages, config.namespace);\n return createBaseTranslatorImpl({\n ...config,\n messagesOrError\n });\n}\nfunction createBaseTranslatorImpl({\n cache,\n formats: globalFormats,\n formatters,\n getMessageFallback = defaultGetMessageFallback,\n locale,\n messagesOrError,\n namespace,\n onError,\n timeZone\n}) {\n const hasMessagesError = messagesOrError instanceof _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.I;\n function getFallbackFromErrorAndNotify(key, code, message, fallback) {\n const error = new _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.I(code, message);\n onError(error);\n return fallback ?? getMessageFallback({\n error,\n key,\n namespace\n });\n }\n function translateBaseFn(/** Use a dot to indicate a level of nesting (e.g. `namespace.nestedLabel`). */\n key, /** Key value pairs for values to interpolate into the message. */\n values, /** Provide custom formats for numbers, dates and times. */\n formats, _fallback) {\n const fallback = _fallback;\n let message;\n if (hasMessagesError) {\n if (fallback) {\n message = fallback;\n } else {\n onError(messagesOrError);\n return getMessageFallback({\n error: messagesOrError,\n key,\n namespace\n });\n }\n } else {\n const messages = messagesOrError;\n try {\n message = resolvePath(locale, messages, key, namespace);\n } catch (error) {\n if (fallback) {\n message = fallback;\n } else {\n return getFallbackFromErrorAndNotify(key, _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.a.MISSING_MESSAGE, error.message, fallback);\n }\n }\n }\n try {\n const messagePath = joinPath(namespace, key);\n return (0,use_intl_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(messagePath,\n // @ts-expect-error -- We have additional validation either in `compile-format.tsx` or in case of `format-only.tsx` in the loader\n message, values ? prepareTranslationValues(values) : values, {\n cache,\n formatters,\n globalFormats,\n formats,\n locale,\n timeZone\n });\n } catch (error) {\n let errorCode, errorMessage;\n if (error instanceof _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.I) {\n errorCode = error.code;\n errorMessage = error.originalMessage;\n } else {\n errorCode = _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.a.FORMATTING_ERROR;\n errorMessage = error.message;\n }\n return getFallbackFromErrorAndNotify(key, errorCode, errorMessage, fallback);\n }\n }\n function translateFn(/** Use a dot to indicate a level of nesting (e.g. `namespace.nestedLabel`). */\n key, /** Key value pairs for values to interpolate into the message. */\n values, /** Custom formats for numbers, dates and times. */\n formats, _fallback) {\n const result = translateBaseFn(key, values, formats, _fallback);\n if (typeof result !== 'string') {\n return getFallbackFromErrorAndNotify(key, _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.a.INVALID_MESSAGE, `The message \\`${key}\\` in ${namespace ? `namespace \\`${namespace}\\`` : 'messages'} didn't resolve to a string. If you want to format rich text, use \\`t.rich\\` instead.` );\n }\n return result;\n }\n translateFn.rich = translateBaseFn;\n\n // Augment `translateBaseFn` to return plain strings\n translateFn.markup = (key, values, formats, _fallback) => {\n const result = translateBaseFn(key,\n // @ts-expect-error -- `MarkupTranslationValues` is practically a sub type\n // of `RichTranslationValues` but TypeScript isn't smart enough here.\n values, formats, _fallback);\n if (typeof result !== 'string') {\n const error = new _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.I(_formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.a.FORMATTING_ERROR, \"`t.markup` only accepts functions for formatting that receive and return strings.\\n\\nE.g. t.markup('markup', {b: (chunks) => `${chunks}`})\");\n onError(error);\n return getMessageFallback({\n error,\n key,\n namespace\n });\n }\n return result;\n };\n translateFn.raw = key => {\n {\n if (!use_intl_format_message__WEBPACK_IMPORTED_MODULE_2__[\"default\"].raw) {\n throw new Error('`t.raw` is not supported when messages are precompiled.');\n }\n }\n if (hasMessagesError) {\n onError(messagesOrError);\n return getMessageFallback({\n error: messagesOrError,\n key,\n namespace\n });\n }\n const messages = messagesOrError;\n try {\n return resolvePath(locale, messages, key, namespace);\n } catch (error) {\n return getFallbackFromErrorAndNotify(key, _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.a.MISSING_MESSAGE, error.message);\n }\n };\n translateFn.has = key => {\n if (hasMessagesError) {\n return false;\n }\n try {\n resolvePath(locale, messagesOrError, key, namespace);\n return true;\n } catch {\n return false;\n }\n };\n return translateFn;\n}\n\n/**\n * For the strictly typed messages to work we have to wrap the namespace into\n * a mandatory prefix. See https://stackoverflow.com/a/71529575/343045\n */\nfunction resolveNamespace(namespace, namespacePrefix) {\n return namespace === namespacePrefix ? undefined : namespace.slice((namespacePrefix + '.').length);\n}\n\nconst SECOND = 1;\nconst MINUTE = SECOND * 60;\nconst HOUR = MINUTE * 60;\nconst DAY = HOUR * 24;\nconst WEEK = DAY * 7;\nconst MONTH = DAY * (365 / 12); // Approximation\nconst QUARTER = MONTH * 3;\nconst YEAR = DAY * 365;\nconst UNIT_SECONDS = {\n second: SECOND,\n seconds: SECOND,\n minute: MINUTE,\n minutes: MINUTE,\n hour: HOUR,\n hours: HOUR,\n day: DAY,\n days: DAY,\n week: WEEK,\n weeks: WEEK,\n month: MONTH,\n months: MONTH,\n quarter: QUARTER,\n quarters: QUARTER,\n year: YEAR,\n years: YEAR\n};\nfunction resolveRelativeTimeUnit(seconds) {\n const absValue = Math.abs(seconds);\n if (absValue < MINUTE) {\n return 'second';\n } else if (absValue < HOUR) {\n return 'minute';\n } else if (absValue < DAY) {\n return 'hour';\n } else if (absValue < WEEK) {\n return 'day';\n } else if (absValue < MONTH) {\n return 'week';\n } else if (absValue < YEAR) {\n return 'month';\n }\n return 'year';\n}\nfunction calculateRelativeTimeValue(seconds, unit) {\n // We have to round the resulting values, as `Intl.RelativeTimeFormat`\n // will include fractions like '2.1 hours ago'.\n return Math.round(seconds / UNIT_SECONDS[unit]);\n}\nfunction createFormatter(props) {\n const {\n _cache: cache = (0,_formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.b)(),\n _formatters: formatters = (0,_formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.c)(cache),\n formats,\n locale,\n onError = defaultOnError,\n timeZone: globalTimeZone\n } = props;\n function applyTimeZone(options) {\n if (!options?.timeZone) {\n if (globalTimeZone) {\n options = {\n ...options,\n timeZone: globalTimeZone\n };\n } else {\n onError(new _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.I(_formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.a.ENVIRONMENT_FALLBACK, `The \\`timeZone\\` parameter wasn't provided and there is no global default configured. Consider adding a global default to avoid markup mismatches caused by environment differences. Learn more: https://next-intl.dev/docs/configuration#time-zone` ));\n }\n }\n return options;\n }\n function resolveFormatOrOptions(typeFormats, formatOrOptions, overrides) {\n let options;\n if (typeof formatOrOptions === 'string') {\n const formatName = formatOrOptions;\n options = typeFormats?.[formatName];\n if (!options) {\n const error = new _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.I(_formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.a.MISSING_FORMAT, `Format \\`${formatName}\\` is not available.` );\n onError(error);\n throw error;\n }\n } else {\n options = formatOrOptions;\n }\n if (overrides) {\n options = {\n ...options,\n ...overrides\n };\n }\n return options;\n }\n function getFormattedValue(formatOrOptions, overrides, typeFormats, formatter, getFallback) {\n let options;\n try {\n options = resolveFormatOrOptions(typeFormats, formatOrOptions, overrides);\n } catch {\n return getFallback();\n }\n try {\n return formatter(options);\n } catch (error) {\n onError(new _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.I(_formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.a.FORMATTING_ERROR, error.message));\n return getFallback();\n }\n }\n function dateTime(value, formatOrOptions, overrides) {\n return getFormattedValue(formatOrOptions, overrides, formats?.dateTime, options => {\n options = applyTimeZone(options);\n return formatters.getDateTimeFormat(locale, options).format(value);\n }, () => String(value));\n }\n function dateTimeRange(start, end, formatOrOptions, overrides) {\n return getFormattedValue(formatOrOptions, overrides, formats?.dateTime, options => {\n options = applyTimeZone(options);\n return formatters.getDateTimeFormat(locale, options).formatRange(start, end);\n }, () => [dateTime(start), dateTime(end)].join(' – '));\n }\n function number(value, formatOrOptions, overrides) {\n return getFormattedValue(formatOrOptions, overrides, formats?.number, options => formatters.getNumberFormat(locale, options).format(value), () => String(value));\n }\n function getGlobalNow() {\n // Only read when necessary to avoid triggering a `dynamicIO` error\n // unnecessarily (`now` is only needed for `format.relativeTime`)\n if (props.now) {\n return props.now;\n } else {\n onError(new _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.I(_formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.a.ENVIRONMENT_FALLBACK, `The \\`now\\` parameter wasn't provided to \\`relativeTime\\` and there is no global default configured, therefore the current time will be used as a fallback. See https://next-intl.dev/docs/usage/dates-times#relative-times-usenow` ));\n return new Date();\n }\n }\n function relativeTime(date, nowOrOptions) {\n try {\n let nowDate, unit;\n const opts = {};\n if (nowOrOptions instanceof Date || typeof nowOrOptions === 'number') {\n nowDate = new Date(nowOrOptions);\n } else if (nowOrOptions) {\n if (nowOrOptions.now != null) {\n nowDate = new Date(nowOrOptions.now);\n } else {\n nowDate = getGlobalNow();\n }\n unit = nowOrOptions.unit;\n opts.style = nowOrOptions.style;\n // @ts-expect-error -- Types are slightly outdated\n opts.numberingSystem = nowOrOptions.numberingSystem;\n }\n if (!nowDate) {\n nowDate = getGlobalNow();\n }\n const dateDate = new Date(date);\n const seconds = (dateDate.getTime() - nowDate.getTime()) / 1000;\n if (!unit) {\n unit = resolveRelativeTimeUnit(seconds);\n }\n\n // `numeric: 'auto'` can theoretically produce output like \"yesterday\",\n // but it only works with integers. E.g. -1 day will produce \"yesterday\",\n // but -1.1 days will produce \"-1.1 days\". Rounding before formatting is\n // not desired, as the given dates might cross a threshold were the\n // output isn't correct anymore. Example: 2024-01-08T23:00:00.000Z and\n // 2024-01-08T01:00:00.000Z would produce \"yesterday\", which is not the\n // case. By using `always` we can ensure correct output. The only exception\n // is the formatting of times <1 second as \"now\".\n opts.numeric = unit === 'second' ? 'auto' : 'always';\n const value = calculateRelativeTimeValue(seconds, unit);\n return formatters.getRelativeTimeFormat(locale, opts).format(value, unit);\n } catch (error) {\n onError(new _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.I(_formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.a.FORMATTING_ERROR, error.message));\n return String(date);\n }\n }\n function list(value, formatOrOptions, overrides) {\n const serializedValue = [];\n const richValues = new Map();\n\n // `formatToParts` only accepts strings, therefore we have to temporarily\n // replace React elements with a placeholder ID that can be used to retrieve\n // the original value afterwards.\n let index = 0;\n for (const item of value) {\n let serializedItem;\n if (typeof item === 'object') {\n serializedItem = String(index);\n richValues.set(serializedItem, item);\n } else {\n serializedItem = String(item);\n }\n serializedValue.push(serializedItem);\n index++;\n }\n return getFormattedValue(formatOrOptions, overrides, formats?.list,\n // @ts-expect-error -- `richValues.size` is used to determine the return type, but TypeScript can't infer the meaning of this correctly\n options => {\n const result = formatters.getListFormat(locale, options).formatToParts(serializedValue).map(part => part.type === 'literal' ? part.value : richValues.get(part.value) || part.value);\n if (richValues.size > 0) {\n return result;\n } else {\n return result.join('');\n }\n }, () => String(value));\n }\n return {\n dateTime,\n number,\n relativeTime,\n list,\n dateTimeRange\n };\n}\n\nfunction validateMessagesSegment(messages, invalidKeyLabels, parentPath) {\n Object.entries(messages).forEach(([key, messageOrMessages]) => {\n if (key.includes('.')) {\n let keyLabel = key;\n if (parentPath) keyLabel += ` (at ${parentPath})`;\n invalidKeyLabels.push(keyLabel);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (messageOrMessages != null && typeof messageOrMessages === 'object') {\n validateMessagesSegment(messageOrMessages, invalidKeyLabels, joinPath(parentPath, key));\n }\n });\n}\nfunction validateMessages(messages, onError) {\n const invalidKeyLabels = [];\n validateMessagesSegment(messages, invalidKeyLabels);\n if (invalidKeyLabels.length > 0) {\n onError(new _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.I(_formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_1__.a.INVALID_KEY, `Namespace keys cannot contain the character \".\" as this is used to express nesting. Please remove it or replace it with another character.\n\nInvalid ${invalidKeyLabels.length === 1 ? 'key' : 'keys'}: ${invalidKeyLabels.join(', ')}\n\nIf you're migrating from a flat structure, you can convert your messages as follows:\n\nimport {set} from \"lodash\";\n\nconst input = {\n \"one.one\": \"1.1\",\n \"one.two\": \"1.2\",\n \"two.one.one\": \"2.1.1\"\n};\n\nconst output = Object.entries(input).reduce(\n (acc, [key, value]) => set(acc, key, value),\n {}\n);\n\n// Output:\n//\n// {\n// \"one\": {\n// \"one\": \"1.1\",\n// \"two\": \"1.2\"\n// },\n// \"two\": {\n// \"one\": {\n// \"one\": \"2.1.1\"\n// }\n// }\n// }\n` ));\n }\n}\n\n/**\n * Enhances the incoming props with defaults.\n */\nfunction initializeConfig({\n formats,\n getMessageFallback,\n messages,\n onError,\n ...rest\n}) {\n const finalOnError = onError || defaultOnError;\n const finalGetMessageFallback = getMessageFallback || defaultGetMessageFallback;\n {\n if (messages) {\n validateMessages(messages, finalOnError);\n }\n }\n return {\n ...rest,\n formats: formats || undefined,\n messages: messages || undefined,\n onError: finalOnError,\n getMessageFallback: finalGetMessageFallback\n };\n}\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvLnBucG0vdXNlLWludGxANC45LjBfcmVhY3RAMTkuMi40L25vZGVfbW9kdWxlcy91c2UtaW50bC9kaXN0L2VzbS9kZXZlbG9wbWVudC9pbml0aWFsaXplQ29uZmlnLUI1cUppQkNtLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFxRDtBQUNEO0FBQ3VFOztBQUUzSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLHFEQUFjLHdCQUF3QixtREFBWTtBQUM5RTtBQUNBLFNBQVM7QUFDVDtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtEQUFrRCxVQUFVO0FBQzVEO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSw2Q0FBNkMsUUFBUSw4QkFBOEIsT0FBTztBQUMxRjtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHFEQUFxRCxVQUFVO0FBQy9EO0FBQ0E7QUFDQSxJQUFJO0FBQ0osMEJBQTBCLHNEQUFTLENBQUMsc0RBQWE7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELHNEQUFzRCxzREFBUztBQUMvRDtBQUNBLHNCQUFzQixzREFBUztBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxVQUFVO0FBQ1Ysb0RBQW9ELHNEQUFhO0FBQ2pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLG1FQUFhO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsTUFBTTtBQUNOO0FBQ0EsMkJBQTJCLHNEQUFTO0FBQ3BDO0FBQ0E7QUFDQSxRQUFRO0FBQ1Isb0JBQW9CLHNEQUFhO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnREFBZ0Qsc0RBQWEsbUNBQW1DLElBQUksUUFBUSwyQkFBMkIsVUFBVSxrQkFBa0I7QUFDbks7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0Isc0RBQVMsQ0FBQyxzREFBYSxrSUFBa0kscUJBQXFCLE9BQU8sTUFBTTtBQUNuTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLCtEQUFhO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTixnREFBZ0Qsc0RBQWE7QUFDN0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQztBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSxJQUFJO0FBQ0o7QUFDQSxJQUFJO0FBQ0o7QUFDQSxJQUFJO0FBQ0o7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiwwREFBVztBQUMvQiw4QkFBOEIsMERBQW9CO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSLG9CQUFvQixzREFBUyxDQUFDLHNEQUFhO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLHNEQUFTLENBQUMsc0RBQWEsNkJBQTZCLFdBQVc7QUFDekY7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ04sa0JBQWtCLHNEQUFTLENBQUMsc0RBQWE7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ04sa0JBQWtCLHNEQUFTLENBQUMsc0RBQWE7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ04sa0JBQWtCLHNEQUFTLENBQUMsc0RBQWE7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMENBQTBDLFdBQVc7QUFDckQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLHNEQUFTLENBQUMsc0RBQWE7O0FBRXZDLFVBQVUsK0NBQStDLElBQUk7O0FBRTdEOztBQUVBLFFBQVEsS0FBSzs7QUFFYjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFOEoiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXJjbWludGVsL1Byb2plY3RzL2UtdGliLmNvbS9ub2RlX21vZHVsZXMvLnBucG0vdXNlLWludGxANC45LjBfcmVhY3RAMTkuMi40L25vZGVfbW9kdWxlcy91c2UtaW50bC9kaXN0L2VzbS9kZXZlbG9wbWVudC9pbml0aWFsaXplQ29uZmlnLUI1cUppQkNtLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNsb25lRWxlbWVudCwgaXNWYWxpZEVsZW1lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgZm9ybWF0TWVzc2FnZSBmcm9tICd1c2UtaW50bC9mb3JtYXQtbWVzc2FnZSc7XG5pbXBvcnQgeyBJIGFzIEludGxFcnJvciwgYSBhcyBJbnRsRXJyb3JDb2RlLCBjIGFzIGNyZWF0ZUludGxGb3JtYXR0ZXJzLCBiIGFzIGNyZWF0ZUNhY2hlIH0gZnJvbSAnLi9mb3JtYXR0ZXJzLXI0YUFtc01QLmpzJztcblxuZnVuY3Rpb24gam9pblBhdGgoLi4ucGFydHMpIHtcbiAgcmV0dXJuIHBhcnRzLmZpbHRlcihCb29sZWFuKS5qb2luKCcuJyk7XG59XG5cbi8qKlxuICogQ29udGFpbnMgZGVmYXVsdHMgdGhhdCBhcmUgdXNlZCBmb3IgYWxsIGVudHJ5IHBvaW50cyBpbnRvIHRoZSBjb3JlLlxuICogU2VlIGFsc28gYEluaXRpYWxpemVkSW50bENvbmZpZ3VyYXRpb25gLlxuICovXG5cbmZ1bmN0aW9uIGRlZmF1bHRHZXRNZXNzYWdlRmFsbGJhY2socHJvcHMpIHtcbiAgcmV0dXJuIGpvaW5QYXRoKHByb3BzLm5hbWVzcGFjZSwgcHJvcHMua2V5KTtcbn1cbmZ1bmN0aW9uIGRlZmF1bHRPbkVycm9yKGVycm9yKSB7XG4gIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xufVxuXG5mdW5jdGlvbiBwcmVwYXJlVHJhbnNsYXRpb25WYWx1ZXModmFsdWVzKSB7XG4gIC8vIFJlbGF0ZWQgdG8gaHR0cHM6Ly9naXRodWIuY29tL2Zvcm1hdGpzL2Zvcm1hdGpzL2lzc3Vlcy8xNDY3XG4gIGNvbnN0IHRyYW5zZm9ybWVkVmFsdWVzID0ge307XG4gIE9iamVjdC5rZXlzKHZhbHVlcykuZm9yRWFjaChrZXkgPT4ge1xuICAgIGxldCBpbmRleCA9IDA7XG4gICAgY29uc3QgdmFsdWUgPSB2YWx1ZXNba2V5XTtcbiAgICBsZXQgdHJhbnNmb3JtZWQ7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdHJhbnNmb3JtZWQgPSBjaHVua3MgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSB2YWx1ZShjaHVua3MpO1xuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qL2lzVmFsaWRFbGVtZW50KHJlc3VsdCkgPyAvKiNfX1BVUkVfXyovY2xvbmVFbGVtZW50KHJlc3VsdCwge1xuICAgICAgICAgIGtleToga2V5ICsgaW5kZXgrK1xuICAgICAgICB9KSA6IHJlc3VsdDtcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRyYW5zZm9ybWVkID0gdmFsdWU7XG4gICAgfVxuICAgIHRyYW5zZm9ybWVkVmFsdWVzW2tleV0gPSB0cmFuc2Zvcm1lZDtcbiAgfSk7XG4gIHJldHVybiB0cmFuc2Zvcm1lZFZhbHVlcztcbn1cbmZ1bmN0aW9uIHJlc29sdmVQYXRoKGxvY2FsZSwgbWVzc2FnZXMsIGtleSwgbmFtZXNwYWNlKSB7XG4gIGNvbnN0IGZ1bGxLZXkgPSBqb2luUGF0aChuYW1lc3BhY2UsIGtleSk7XG4gIGlmICghbWVzc2FnZXMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIG1lc3NhZ2VzIGF2YWlsYWJsZSBhdCBcXGAke25hbWVzcGFjZX1cXGAuYCApO1xuICB9XG4gIGxldCBtZXNzYWdlID0gbWVzc2FnZXM7XG4gIGtleS5zcGxpdCgnLicpLmZvckVhY2gocGFydCA9PiB7XG4gICAgY29uc3QgbmV4dCA9IG1lc3NhZ2VbcGFydF07XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LWNvbmRpdGlvblxuICAgIGlmIChwYXJ0ID09IG51bGwgfHwgbmV4dCA9PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCByZXNvbHZlIFxcYCR7ZnVsbEtleX1cXGAgaW4gbWVzc2FnZXMgZm9yIGxvY2FsZSBcXGAke2xvY2FsZX1cXGAuYCApO1xuICAgIH1cbiAgICBtZXNzYWdlID0gbmV4dDtcbiAgfSk7XG4gIHJldHVybiBtZXNzYWdlO1xufVxuZnVuY3Rpb24gZ2V0TWVzc2FnZXNPckVycm9yKGxvY2FsZSwgbWVzc2FnZXMsIG5hbWVzcGFjZSkge1xuICB0cnkge1xuICAgIGlmICghbWVzc2FnZXMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gbWVzc2FnZXMgd2VyZSBjb25maWd1cmVkLmAgKTtcbiAgICB9XG4gICAgY29uc3QgcmV0cmlldmVkTWVzc2FnZXMgPSBuYW1lc3BhY2UgPyByZXNvbHZlUGF0aChsb2NhbGUsIG1lc3NhZ2VzLCBuYW1lc3BhY2UpIDogbWVzc2FnZXM7XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LWNvbmRpdGlvblxuICAgIGlmICghcmV0cmlldmVkTWVzc2FnZXMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gbWVzc2FnZXMgZm9yIG5hbWVzcGFjZSBcXGAke25hbWVzcGFjZX1cXGAgZm91bmQuYCApO1xuICAgIH1cbiAgICByZXR1cm4gcmV0cmlldmVkTWVzc2FnZXM7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc3QgaW50bEVycm9yID0gbmV3IEludGxFcnJvcihJbnRsRXJyb3JDb2RlLk1JU1NJTkdfTUVTU0FHRSwgZXJyb3IubWVzc2FnZSk7XG4gICAgcmV0dXJuIGludGxFcnJvcjtcbiAgfVxufVxuZnVuY3Rpb24gY3JlYXRlQmFzZVRyYW5zbGF0b3IoY29uZmlnKSB7XG4gIGNvbnN0IG1lc3NhZ2VzT3JFcnJvciA9IGdldE1lc3NhZ2VzT3JFcnJvcihjb25maWcubG9jYWxlLCBjb25maWcubWVzc2FnZXMsIGNvbmZpZy5uYW1lc3BhY2UpO1xuICByZXR1cm4gY3JlYXRlQmFzZVRyYW5zbGF0b3JJbXBsKHtcbiAgICAuLi5jb25maWcsXG4gICAgbWVzc2FnZXNPckVycm9yXG4gIH0pO1xufVxuZnVuY3Rpb24gY3JlYXRlQmFzZVRyYW5zbGF0b3JJbXBsKHtcbiAgY2FjaGUsXG4gIGZvcm1hdHM6IGdsb2JhbEZvcm1hdHMsXG4gIGZvcm1hdHRlcnMsXG4gIGdldE1lc3NhZ2VGYWxsYmFjayA9IGRlZmF1bHRHZXRNZXNzYWdlRmFsbGJhY2ssXG4gIGxvY2FsZSxcbiAgbWVzc2FnZXNPckVycm9yLFxuICBuYW1lc3BhY2UsXG4gIG9uRXJyb3IsXG4gIHRpbWVab25lXG59KSB7XG4gIGNvbnN0IGhhc01lc3NhZ2VzRXJyb3IgPSBtZXNzYWdlc09yRXJyb3IgaW5zdGFuY2VvZiBJbnRsRXJyb3I7XG4gIGZ1bmN0aW9uIGdldEZhbGxiYWNrRnJvbUVycm9yQW5kTm90aWZ5KGtleSwgY29kZSwgbWVzc2FnZSwgZmFsbGJhY2spIHtcbiAgICBjb25zdCBlcnJvciA9IG5ldyBJbnRsRXJyb3IoY29kZSwgbWVzc2FnZSk7XG4gICAgb25FcnJvcihlcnJvcik7XG4gICAgcmV0dXJuIGZhbGxiYWNrID8/IGdldE1lc3NhZ2VGYWxsYmFjayh7XG4gICAgICBlcnJvcixcbiAgICAgIGtleSxcbiAgICAgIG5hbWVzcGFjZVxuICAgIH0pO1xuICB9XG4gIGZ1bmN0aW9uIHRyYW5zbGF0ZUJhc2VGbigvKiogVXNlIGEgZG90IHRvIGluZGljYXRlIGEgbGV2ZWwgb2YgbmVzdGluZyAoZS5nLiBgbmFtZXNwYWNlLm5lc3RlZExhYmVsYCkuICovXG4gIGtleSwgLyoqIEtleSB2YWx1ZSBwYWlycyBmb3IgdmFsdWVzIHRvIGludGVycG9sYXRlIGludG8gdGhlIG1lc3NhZ2UuICovXG4gIHZhbHVlcywgLyoqIFByb3ZpZGUgY3VzdG9tIGZvcm1hdHMgZm9yIG51bWJlcnMsIGRhdGVzIGFuZCB0aW1lcy4gKi9cbiAgZm9ybWF0cywgX2ZhbGxiYWNrKSB7XG4gICAgY29uc3QgZmFsbGJhY2sgPSBfZmFsbGJhY2s7XG4gICAgbGV0IG1lc3NhZ2U7XG4gICAgaWYgKGhhc01lc3NhZ2VzRXJyb3IpIHtcbiAgICAgIGlmIChmYWxsYmFjaykge1xuICAgICAgICBtZXNzYWdlID0gZmFsbGJhY2s7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvbkVycm9yKG1lc3NhZ2VzT3JFcnJvcik7XG4gICAgICAgIHJldHVybiBnZXRNZXNzYWdlRmFsbGJhY2soe1xuICAgICAgICAgIGVycm9yOiBtZXNzYWdlc09yRXJyb3IsXG4gICAgICAgICAga2V5LFxuICAgICAgICAgIG5hbWVzcGFjZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbWVzc2FnZXMgPSBtZXNzYWdlc09yRXJyb3I7XG4gICAgICB0cnkge1xuICAgICAgICBtZXNzYWdlID0gcmVzb2x2ZVBhdGgobG9jYWxlLCBtZXNzYWdlcywga2V5LCBuYW1lc3BhY2UpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKGZhbGxiYWNrKSB7XG4gICAgICAgICAgbWVzc2FnZSA9IGZhbGxiYWNrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBnZXRGYWxsYmFja0Zyb21FcnJvckFuZE5vdGlmeShrZXksIEludGxFcnJvckNvZGUuTUlTU0lOR19NRVNTQUdFLCBlcnJvci5tZXNzYWdlLCBmYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2VQYXRoID0gam9pblBhdGgobmFtZXNwYWNlLCBrZXkpO1xuICAgICAgcmV0dXJuIGZvcm1hdE1lc3NhZ2UobWVzc2FnZVBhdGgsXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIC0tIFdlIGhhdmUgYWRkaXRpb25hbCB2YWxpZGF0aW9uIGVpdGhlciBpbiBgY29tcGlsZS1mb3JtYXQudHN4YCBvciBpbiBjYXNlIG9mIGBmb3JtYXQtb25seS50c3hgIGluIHRoZSBsb2FkZXJcbiAgICAgIG1lc3NhZ2UsIHZhbHVlcyA/IHByZXBhcmVUcmFuc2xhdGlvblZhbHVlcyh2YWx1ZXMpIDogdmFsdWVzLCB7XG4gICAgICAgIGNhY2hlLFxuICAgICAgICBmb3JtYXR0ZXJzLFxuICAgICAgICBnbG9iYWxGb3JtYXRzLFxuICAgICAgICBmb3JtYXRzLFxuICAgICAgICBsb2NhbGUsXG4gICAgICAgIHRpbWVab25lXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgbGV0IGVycm9yQ29kZSwgZXJyb3JNZXNzYWdlO1xuICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgSW50bEVycm9yKSB7XG4gICAgICAgIGVycm9yQ29kZSA9IGVycm9yLmNvZGU7XG4gICAgICAgIGVycm9yTWVzc2FnZSA9IGVycm9yLm9yaWdpbmFsTWVzc2FnZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVycm9yQ29kZSA9IEludGxFcnJvckNvZGUuRk9STUFUVElOR19FUlJPUjtcbiAgICAgICAgZXJyb3JNZXNzYWdlID0gZXJyb3IubWVzc2FnZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBnZXRGYWxsYmFja0Zyb21FcnJvckFuZE5vdGlmeShrZXksIGVycm9yQ29kZSwgZXJyb3JNZXNzYWdlLCBmYWxsYmFjayk7XG4gICAgfVxuICB9XG4gIGZ1bmN0aW9uIHRyYW5zbGF0ZUZuKC8qKiBVc2UgYSBkb3QgdG8gaW5kaWNhdGUgYSBsZXZlbCBvZiBuZXN0aW5nIChlLmcuIGBuYW1lc3BhY2UubmVzdGVkTGFiZWxgKS4gKi9cbiAga2V5LCAvKiogS2V5IHZhbHVlIHBhaXJzIGZvciB2YWx1ZXMgdG8gaW50ZXJwb2xhdGUgaW50byB0aGUgbWVzc2FnZS4gKi9cbiAgdmFsdWVzLCAvKiogQ3VzdG9tIGZvcm1hdHMgZm9yIG51bWJlcnMsIGRhdGVzIGFuZCB0aW1lcy4gKi9cbiAgZm9ybWF0cywgX2ZhbGxiYWNrKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gdHJhbnNsYXRlQmFzZUZuKGtleSwgdmFsdWVzLCBmb3JtYXRzLCBfZmFsbGJhY2spO1xuICAgIGlmICh0eXBlb2YgcmVzdWx0ICE9PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIGdldEZhbGxiYWNrRnJvbUVycm9yQW5kTm90aWZ5KGtleSwgSW50bEVycm9yQ29kZS5JTlZBTElEX01FU1NBR0UsIGBUaGUgbWVzc2FnZSBcXGAke2tleX1cXGAgaW4gJHtuYW1lc3BhY2UgPyBgbmFtZXNwYWNlIFxcYCR7bmFtZXNwYWNlfVxcYGAgOiAnbWVzc2FnZXMnfSBkaWRuJ3QgcmVzb2x2ZSB0byBhIHN0cmluZy4gSWYgeW91IHdhbnQgdG8gZm9ybWF0IHJpY2ggdGV4dCwgdXNlIFxcYHQucmljaFxcYCBpbnN0ZWFkLmAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICB0cmFuc2xhdGVGbi5yaWNoID0gdHJhbnNsYXRlQmFzZUZuO1xuXG4gIC8vIEF1Z21lbnQgYHRyYW5zbGF0ZUJhc2VGbmAgdG8gcmV0dXJuIHBsYWluIHN0cmluZ3NcbiAgdHJhbnNsYXRlRm4ubWFya3VwID0gKGtleSwgdmFsdWVzLCBmb3JtYXRzLCBfZmFsbGJhY2spID0+IHtcbiAgICBjb25zdCByZXN1bHQgPSB0cmFuc2xhdGVCYXNlRm4oa2V5LFxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLS0gYE1hcmt1cFRyYW5zbGF0aW9uVmFsdWVzYCBpcyBwcmFjdGljYWxseSBhIHN1YiB0eXBlXG4gICAgLy8gb2YgYFJpY2hUcmFuc2xhdGlvblZhbHVlc2AgYnV0IFR5cGVTY3JpcHQgaXNuJ3Qgc21hcnQgZW5vdWdoIGhlcmUuXG4gICAgdmFsdWVzLCBmb3JtYXRzLCBfZmFsbGJhY2spO1xuICAgIGlmICh0eXBlb2YgcmVzdWx0ICE9PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgZXJyb3IgPSBuZXcgSW50bEVycm9yKEludGxFcnJvckNvZGUuRk9STUFUVElOR19FUlJPUiwgXCJgdC5tYXJrdXBgIG9ubHkgYWNjZXB0cyBmdW5jdGlvbnMgZm9yIGZvcm1hdHRpbmcgdGhhdCByZWNlaXZlIGFuZCByZXR1cm4gc3RyaW5ncy5cXG5cXG5FLmcuIHQubWFya3VwKCdtYXJrdXAnLCB7YjogKGNodW5rcykgPT4gYDxiPiR7Y2h1bmtzfTwvYj5gfSlcIik7XG4gICAgICBvbkVycm9yKGVycm9yKTtcbiAgICAgIHJldHVybiBnZXRNZXNzYWdlRmFsbGJhY2soe1xuICAgICAgICBlcnJvcixcbiAgICAgICAga2V5LFxuICAgICAgICBuYW1lc3BhY2VcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9O1xuICB0cmFuc2xhdGVGbi5yYXcgPSBrZXkgPT4ge1xuICAgIHtcbiAgICAgIGlmICghZm9ybWF0TWVzc2FnZS5yYXcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdgdC5yYXdgIGlzIG5vdCBzdXBwb3J0ZWQgd2hlbiBtZXNzYWdlcyBhcmUgcHJlY29tcGlsZWQuJyk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChoYXNNZXNzYWdlc0Vycm9yKSB7XG4gICAgICBvbkVycm9yKG1lc3NhZ2VzT3JFcnJvcik7XG4gICAgICByZXR1cm4gZ2V0TWVzc2FnZUZhbGxiYWNrKHtcbiAgICAgICAgZXJyb3I6IG1lc3NhZ2VzT3JFcnJvcixcbiAgICAgICAga2V5LFxuICAgICAgICBuYW1lc3BhY2VcbiAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBtZXNzYWdlcyA9IG1lc3NhZ2VzT3JFcnJvcjtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHJlc29sdmVQYXRoKGxvY2FsZSwgbWVzc2FnZXMsIGtleSwgbmFtZXNwYWNlKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmV0dXJuIGdldEZhbGxiYWNrRnJvbUVycm9yQW5kTm90aWZ5KGtleSwgSW50bEVycm9yQ29kZS5NSVNTSU5HX01FU1NBR0UsIGVycm9yLm1lc3NhZ2UpO1xuICAgIH1cbiAgfTtcbiAgdHJhbnNsYXRlRm4uaGFzID0ga2V5ID0+IHtcbiAgICBpZiAoaGFzTWVzc2FnZXNFcnJvcikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgcmVzb2x2ZVBhdGgobG9jYWxlLCBtZXNzYWdlc09yRXJyb3IsIGtleSwgbmFtZXNwYWNlKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIHRyYW5zbGF0ZUZuO1xufVxuXG4vKipcbiAqIEZvciB0aGUgc3RyaWN0bHkgdHlwZWQgbWVzc2FnZXMgdG8gd29yayB3ZSBoYXZlIHRvIHdyYXAgdGhlIG5hbWVzcGFjZSBpbnRvXG4gKiBhIG1hbmRhdG9yeSBwcmVmaXguIFNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNzE1Mjk1NzUvMzQzMDQ1XG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVOYW1lc3BhY2UobmFtZXNwYWNlLCBuYW1lc3BhY2VQcmVmaXgpIHtcbiAgcmV0dXJuIG5hbWVzcGFjZSA9PT0gbmFtZXNwYWNlUHJlZml4ID8gdW5kZWZpbmVkIDogbmFtZXNwYWNlLnNsaWNlKChuYW1lc3BhY2VQcmVmaXggKyAnLicpLmxlbmd0aCk7XG59XG5cbmNvbnN0IFNFQ09ORCA9IDE7XG5jb25zdCBNSU5VVEUgPSBTRUNPTkQgKiA2MDtcbmNvbnN0IEhPVVIgPSBNSU5VVEUgKiA2MDtcbmNvbnN0IERBWSA9IEhPVVIgKiAyNDtcbmNvbnN0IFdFRUsgPSBEQVkgKiA3O1xuY29uc3QgTU9OVEggPSBEQVkgKiAoMzY1IC8gMTIpOyAvLyBBcHByb3hpbWF0aW9uXG5jb25zdCBRVUFSVEVSID0gTU9OVEggKiAzO1xuY29uc3QgWUVBUiA9IERBWSAqIDM2NTtcbmNvbnN0IFVOSVRfU0VDT05EUyA9IHtcbiAgc2Vjb25kOiBTRUNPTkQsXG4gIHNlY29uZHM6IFNFQ09ORCxcbiAgbWludXRlOiBNSU5VVEUsXG4gIG1pbnV0ZXM6IE1JTlVURSxcbiAgaG91cjogSE9VUixcbiAgaG91cnM6IEhPVVIsXG4gIGRheTogREFZLFxuICBkYXlzOiBEQVksXG4gIHdlZWs6IFdFRUssXG4gIHdlZWtzOiBXRUVLLFxuICBtb250aDogTU9OVEgsXG4gIG1vbnRoczogTU9OVEgsXG4gIHF1YXJ0ZXI6IFFVQVJURVIsXG4gIHF1YXJ0ZXJzOiBRVUFSVEVSLFxuICB5ZWFyOiBZRUFSLFxuICB5ZWFyczogWUVBUlxufTtcbmZ1bmN0aW9uIHJlc29sdmVSZWxhdGl2ZVRpbWVVbml0KHNlY29uZHMpIHtcbiAgY29uc3QgYWJzVmFsdWUgPSBNYXRoLmFicyhzZWNvbmRzKTtcbiAgaWYgKGFic1ZhbHVlIDwgTUlOVVRFKSB7XG4gICAgcmV0dXJuICdzZWNvbmQnO1xuICB9IGVsc2UgaWYgKGFic1ZhbHVlIDwgSE9VUikge1xuICAgIHJldHVybiAnbWludXRlJztcbiAgfSBlbHNlIGlmIChhYnNWYWx1ZSA8IERBWSkge1xuICAgIHJldHVybiAnaG91cic7XG4gIH0gZWxzZSBpZiAoYWJzVmFsdWUgPCBXRUVLKSB7XG4gICAgcmV0dXJuICdkYXknO1xuICB9IGVsc2UgaWYgKGFic1ZhbHVlIDwgTU9OVEgpIHtcbiAgICByZXR1cm4gJ3dlZWsnO1xuICB9IGVsc2UgaWYgKGFic1ZhbHVlIDwgWUVBUikge1xuICAgIHJldHVybiAnbW9udGgnO1xuICB9XG4gIHJldHVybiAneWVhcic7XG59XG5mdW5jdGlvbiBjYWxjdWxhdGVSZWxhdGl2ZVRpbWVWYWx1ZShzZWNvbmRzLCB1bml0KSB7XG4gIC8vIFdlIGhhdmUgdG8gcm91bmQgdGhlIHJlc3VsdGluZyB2YWx1ZXMsIGFzIGBJbnRsLlJlbGF0aXZlVGltZUZvcm1hdGBcbiAgLy8gd2lsbCBpbmNsdWRlIGZyYWN0aW9ucyBsaWtlICcyLjEgaG91cnMgYWdvJy5cbiAgcmV0dXJuIE1hdGgucm91bmQoc2Vjb25kcyAvIFVOSVRfU0VDT05EU1t1bml0XSk7XG59XG5mdW5jdGlvbiBjcmVhdGVGb3JtYXR0ZXIocHJvcHMpIHtcbiAgY29uc3Qge1xuICAgIF9jYWNoZTogY2FjaGUgPSBjcmVhdGVDYWNoZSgpLFxuICAgIF9mb3JtYXR0ZXJzOiBmb3JtYXR0ZXJzID0gY3JlYXRlSW50bEZvcm1hdHRlcnMoY2FjaGUpLFxuICAgIGZvcm1hdHMsXG4gICAgbG9jYWxlLFxuICAgIG9uRXJyb3IgPSBkZWZhdWx0T25FcnJvcixcbiAgICB0aW1lWm9uZTogZ2xvYmFsVGltZVpvbmVcbiAgfSA9IHByb3BzO1xuICBmdW5jdGlvbiBhcHBseVRpbWVab25lKG9wdGlvbnMpIHtcbiAgICBpZiAoIW9wdGlvbnM/LnRpbWVab25lKSB7XG4gICAgICBpZiAoZ2xvYmFsVGltZVpvbmUpIHtcbiAgICAgICAgb3B0aW9ucyA9IHtcbiAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAgIHRpbWVab25lOiBnbG9iYWxUaW1lWm9uZVxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb25FcnJvcihuZXcgSW50bEVycm9yKEludGxFcnJvckNvZGUuRU5WSVJPTk1FTlRfRkFMTEJBQ0ssIGBUaGUgXFxgdGltZVpvbmVcXGAgcGFyYW1ldGVyIHdhc24ndCBwcm92aWRlZCBhbmQgdGhlcmUgaXMgbm8gZ2xvYmFsIGRlZmF1bHQgY29uZmlndXJlZC4gQ29uc2lkZXIgYWRkaW5nIGEgZ2xvYmFsIGRlZmF1bHQgdG8gYXZvaWQgbWFya3VwIG1pc21hdGNoZXMgY2F1c2VkIGJ5IGVudmlyb25tZW50IGRpZmZlcmVuY2VzLiBMZWFybiBtb3JlOiBodHRwczovL25leHQtaW50bC5kZXYvZG9jcy9jb25maWd1cmF0aW9uI3RpbWUtem9uZWAgKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG4gIGZ1bmN0aW9uIHJlc29sdmVGb3JtYXRPck9wdGlvbnModHlwZUZvcm1hdHMsIGZvcm1hdE9yT3B0aW9ucywgb3ZlcnJpZGVzKSB7XG4gICAgbGV0IG9wdGlvbnM7XG4gICAgaWYgKHR5cGVvZiBmb3JtYXRPck9wdGlvbnMgPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCBmb3JtYXROYW1lID0gZm9ybWF0T3JPcHRpb25zO1xuICAgICAgb3B0aW9ucyA9IHR5cGVGb3JtYXRzPy5bZm9ybWF0TmFtZV07XG4gICAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgSW50bEVycm9yKEludGxFcnJvckNvZGUuTUlTU0lOR19GT1JNQVQsIGBGb3JtYXQgXFxgJHtmb3JtYXROYW1lfVxcYCBpcyBub3QgYXZhaWxhYmxlLmAgKTtcbiAgICAgICAgb25FcnJvcihlcnJvcik7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBvcHRpb25zID0gZm9ybWF0T3JPcHRpb25zO1xuICAgIH1cbiAgICBpZiAob3ZlcnJpZGVzKSB7XG4gICAgICBvcHRpb25zID0ge1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAuLi5vdmVycmlkZXNcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG4gIGZ1bmN0aW9uIGdldEZvcm1hdHRlZFZhbHVlKGZvcm1hdE9yT3B0aW9ucywgb3ZlcnJpZGVzLCB0eXBlRm9ybWF0cywgZm9ybWF0dGVyLCBnZXRGYWxsYmFjaykge1xuICAgIGxldCBvcHRpb25zO1xuICAgIHRyeSB7XG4gICAgICBvcHRpb25zID0gcmVzb2x2ZUZvcm1hdE9yT3B0aW9ucyh0eXBlRm9ybWF0cywgZm9ybWF0T3JPcHRpb25zLCBvdmVycmlkZXMpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIGdldEZhbGxiYWNrKCk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gZm9ybWF0dGVyKG9wdGlvbnMpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBvbkVycm9yKG5ldyBJbnRsRXJyb3IoSW50bEVycm9yQ29kZS5GT1JNQVRUSU5HX0VSUk9SLCBlcnJvci5tZXNzYWdlKSk7XG4gICAgICByZXR1cm4gZ2V0RmFsbGJhY2soKTtcbiAgICB9XG4gIH1cbiAgZnVuY3Rpb24gZGF0ZVRpbWUodmFsdWUsIGZvcm1hdE9yT3B0aW9ucywgb3ZlcnJpZGVzKSB7XG4gICAgcmV0dXJuIGdldEZvcm1hdHRlZFZhbHVlKGZvcm1hdE9yT3B0aW9ucywgb3ZlcnJpZGVzLCBmb3JtYXRzPy5kYXRlVGltZSwgb3B0aW9ucyA9PiB7XG4gICAgICBvcHRpb25zID0gYXBwbHlUaW1lWm9uZShvcHRpb25zKTtcbiAgICAgIHJldHVybiBmb3JtYXR0ZXJzLmdldERhdGVUaW1lRm9ybWF0KGxvY2FsZSwgb3B0aW9ucykuZm9ybWF0KHZhbHVlKTtcbiAgICB9LCAoKSA9PiBTdHJpbmcodmFsdWUpKTtcbiAgfVxuICBmdW5jdGlvbiBkYXRlVGltZVJhbmdlKHN0YXJ0LCBlbmQsIGZvcm1hdE9yT3B0aW9ucywgb3ZlcnJpZGVzKSB7XG4gICAgcmV0dXJuIGdldEZvcm1hdHRlZFZhbHVlKGZvcm1hdE9yT3B0aW9ucywgb3ZlcnJpZGVzLCBmb3JtYXRzPy5kYXRlVGltZSwgb3B0aW9ucyA9PiB7XG4gICAgICBvcHRpb25zID0gYXBwbHlUaW1lWm9uZShvcHRpb25zKTtcbiAgICAgIHJldHVybiBmb3JtYXR0ZXJzLmdldERhdGVUaW1lRm9ybWF0KGxvY2FsZSwgb3B0aW9ucykuZm9ybWF0UmFuZ2Uoc3RhcnQsIGVuZCk7XG4gICAgfSwgKCkgPT4gW2RhdGVUaW1lKHN0YXJ0KSwgZGF0ZVRpbWUoZW5kKV0uam9pbign4oCJ4oCT4oCJJykpO1xuICB9XG4gIGZ1bmN0aW9uIG51bWJlcih2YWx1ZSwgZm9ybWF0T3JPcHRpb25zLCBvdmVycmlkZXMpIHtcbiAgICByZXR1cm4gZ2V0Rm9ybWF0dGVkVmFsdWUoZm9ybWF0T3JPcHRpb25zLCBvdmVycmlkZXMsIGZvcm1hdHM/Lm51bWJlciwgb3B0aW9ucyA9PiBmb3JtYXR0ZXJzLmdldE51bWJlckZvcm1hdChsb2NhbGUsIG9wdGlvbnMpLmZvcm1hdCh2YWx1ZSksICgpID0+IFN0cmluZyh2YWx1ZSkpO1xuICB9XG4gIGZ1bmN0aW9uIGdldEdsb2JhbE5vdygpIHtcbiAgICAvLyBPbmx5IHJlYWQgd2hlbiBuZWNlc3NhcnkgdG8gYXZvaWQgdHJpZ2dlcmluZyBhIGBkeW5hbWljSU9gIGVycm9yXG4gICAgLy8gdW5uZWNlc3NhcmlseSAoYG5vd2AgaXMgb25seSBuZWVkZWQgZm9yIGBmb3JtYXQucmVsYXRpdmVUaW1lYClcbiAgICBpZiAocHJvcHMubm93KSB7XG4gICAgICByZXR1cm4gcHJvcHMubm93O1xuICAgIH0gZWxzZSB7XG4gICAgICBvbkVycm9yKG5ldyBJbnRsRXJyb3IoSW50bEVycm9yQ29kZS5FTlZJUk9OTUVOVF9GQUxMQkFDSywgYFRoZSBcXGBub3dcXGAgcGFyYW1ldGVyIHdhc24ndCBwcm92aWRlZCB0byBcXGByZWxhdGl2ZVRpbWVcXGAgYW5kIHRoZXJlIGlzIG5vIGdsb2JhbCBkZWZhdWx0IGNvbmZpZ3VyZWQsIHRoZXJlZm9yZSB0aGUgY3VycmVudCB0aW1lIHdpbGwgYmUgdXNlZCBhcyBhIGZhbGxiYWNrLiBTZWUgaHR0cHM6Ly9uZXh0LWludGwuZGV2L2RvY3MvdXNhZ2UvZGF0ZXMtdGltZXMjcmVsYXRpdmUtdGltZXMtdXNlbm93YCApKTtcbiAgICAgIHJldHVybiBuZXcgRGF0ZSgpO1xuICAgIH1cbiAgfVxuICBmdW5jdGlvbiByZWxhdGl2ZVRpbWUoZGF0ZSwgbm93T3JPcHRpb25zKSB7XG4gICAgdHJ5IHtcbiAgICAgIGxldCBub3dEYXRlLCB1bml0O1xuICAgICAgY29uc3Qgb3B0cyA9IHt9O1xuICAgICAgaWYgKG5vd09yT3B0aW9ucyBpbnN0YW5jZW9mIERhdGUgfHwgdHlwZW9mIG5vd09yT3B0aW9ucyA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgbm93RGF0ZSA9IG5ldyBEYXRlKG5vd09yT3B0aW9ucyk7XG4gICAgICB9IGVsc2UgaWYgKG5vd09yT3B0aW9ucykge1xuICAgICAgICBpZiAobm93T3JPcHRpb25zLm5vdyAhPSBudWxsKSB7XG4gICAgICAgICAgbm93RGF0ZSA9IG5ldyBEYXRlKG5vd09yT3B0aW9ucy5ub3cpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5vd0RhdGUgPSBnZXRHbG9iYWxOb3coKTtcbiAgICAgICAgfVxuICAgICAgICB1bml0ID0gbm93T3JPcHRpb25zLnVuaXQ7XG4gICAgICAgIG9wdHMuc3R5bGUgPSBub3dPck9wdGlvbnMuc3R5bGU7XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLS0gVHlwZXMgYXJlIHNsaWdodGx5IG91dGRhdGVkXG4gICAgICAgIG9wdHMubnVtYmVyaW5nU3lzdGVtID0gbm93T3JPcHRpb25zLm51bWJlcmluZ1N5c3RlbTtcbiAgICAgIH1cbiAgICAgIGlmICghbm93RGF0ZSkge1xuICAgICAgICBub3dEYXRlID0gZ2V0R2xvYmFsTm93KCk7XG4gICAgICB9XG4gICAgICBjb25zdCBkYXRlRGF0ZSA9IG5ldyBEYXRlKGRhdGUpO1xuICAgICAgY29uc3Qgc2Vjb25kcyA9IChkYXRlRGF0ZS5nZXRUaW1lKCkgLSBub3dEYXRlLmdldFRpbWUoKSkgLyAxMDAwO1xuICAgICAgaWYgKCF1bml0KSB7XG4gICAgICAgIHVuaXQgPSByZXNvbHZlUmVsYXRpdmVUaW1lVW5pdChzZWNvbmRzKTtcbiAgICAgIH1cblxuICAgICAgLy8gYG51bWVyaWM6ICdhdXRvJ2AgY2FuIHRoZW9yZXRpY2FsbHkgcHJvZHVjZSBvdXRwdXQgbGlrZSBcInllc3RlcmRheVwiLFxuICAgICAgLy8gYnV0IGl0IG9ubHkgd29ya3Mgd2l0aCBpbnRlZ2Vycy4gRS5nLiAtMSBkYXkgd2lsbCBwcm9kdWNlIFwieWVzdGVyZGF5XCIsXG4gICAgICAvLyBidXQgLTEuMSBkYXlzIHdpbGwgcHJvZHVjZSBcIi0xLjEgZGF5c1wiLiBSb3VuZGluZyBiZWZvcmUgZm9ybWF0dGluZyBpc1xuICAgICAgLy8gbm90IGRlc2lyZWQsIGFzIHRoZSBnaXZlbiBkYXRlcyBtaWdodCBjcm9zcyBhIHRocmVzaG9sZCB3ZXJlIHRoZVxuICAgICAgLy8gb3V0cHV0IGlzbid0IGNvcnJlY3QgYW55bW9yZS4gRXhhbXBsZTogMjAyNC0wMS0wOFQyMzowMDowMC4wMDBaIGFuZFxuICAgICAgLy8gMjAyNC0wMS0wOFQwMTowMDowMC4wMDBaIHdvdWxkIHByb2R1Y2UgXCJ5ZXN0ZXJkYXlcIiwgd2hpY2ggaXMgbm90IHRoZVxuICAgICAgLy8gY2FzZS4gQnkgdXNpbmcgYGFsd2F5c2Agd2UgY2FuIGVuc3VyZSBjb3JyZWN0IG91dHB1dC4gVGhlIG9ubHkgZXhjZXB0aW9uXG4gICAgICAvLyBpcyB0aGUgZm9ybWF0dGluZyBvZiB0aW1lcyA8MSBzZWNvbmQgYXMgXCJub3dcIi5cbiAgICAgIG9wdHMubnVtZXJpYyA9IHVuaXQgPT09ICdzZWNvbmQnID8gJ2F1dG8nIDogJ2Fsd2F5cyc7XG4gICAgICBjb25zdCB2YWx1ZSA9IGNhbGN1bGF0ZVJlbGF0aXZlVGltZVZhbHVlKHNlY29uZHMsIHVuaXQpO1xuICAgICAgcmV0dXJuIGZvcm1hdHRlcnMuZ2V0UmVsYXRpdmVUaW1lRm9ybWF0KGxvY2FsZSwgb3B0cykuZm9ybWF0KHZhbHVlLCB1bml0KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgb25FcnJvcihuZXcgSW50bEVycm9yKEludGxFcnJvckNvZGUuRk9STUFUVElOR19FUlJPUiwgZXJyb3IubWVzc2FnZSkpO1xuICAgICAgcmV0dXJuIFN0cmluZyhkYXRlKTtcbiAgICB9XG4gIH1cbiAgZnVuY3Rpb24gbGlzdCh2YWx1ZSwgZm9ybWF0T3JPcHRpb25zLCBvdmVycmlkZXMpIHtcbiAgICBjb25zdCBzZXJpYWxpemVkVmFsdWUgPSBbXTtcbiAgICBjb25zdCByaWNoVmFsdWVzID0gbmV3IE1hcCgpO1xuXG4gICAgLy8gYGZvcm1hdFRvUGFydHNgIG9ubHkgYWNjZXB0cyBzdHJpbmdzLCB0aGVyZWZvcmUgd2UgaGF2ZSB0byB0ZW1wb3JhcmlseVxuICAgIC8vIHJlcGxhY2UgUmVhY3QgZWxlbWVudHMgd2l0aCBhIHBsYWNlaG9sZGVyIElEIHRoYXQgY2FuIGJlIHVzZWQgdG8gcmV0cmlldmVcbiAgICAvLyB0aGUgb3JpZ2luYWwgdmFsdWUgYWZ0ZXJ3YXJkcy5cbiAgICBsZXQgaW5kZXggPSAwO1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiB2YWx1ZSkge1xuICAgICAgbGV0IHNlcmlhbGl6ZWRJdGVtO1xuICAgICAgaWYgKHR5cGVvZiBpdGVtID09PSAnb2JqZWN0Jykge1xuICAgICAgICBzZXJpYWxpemVkSXRlbSA9IFN0cmluZyhpbmRleCk7XG4gICAgICAgIHJpY2hWYWx1ZXMuc2V0KHNlcmlhbGl6ZWRJdGVtLCBpdGVtKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNlcmlhbGl6ZWRJdGVtID0gU3RyaW5nKGl0ZW0pO1xuICAgICAgfVxuICAgICAgc2VyaWFsaXplZFZhbHVlLnB1c2goc2VyaWFsaXplZEl0ZW0pO1xuICAgICAgaW5kZXgrKztcbiAgICB9XG4gICAgcmV0dXJuIGdldEZvcm1hdHRlZFZhbHVlKGZvcm1hdE9yT3B0aW9ucywgb3ZlcnJpZGVzLCBmb3JtYXRzPy5saXN0LFxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLS0gYHJpY2hWYWx1ZXMuc2l6ZWAgaXMgdXNlZCB0byBkZXRlcm1pbmUgdGhlIHJldHVybiB0eXBlLCBidXQgVHlwZVNjcmlwdCBjYW4ndCBpbmZlciB0aGUgbWVhbmluZyBvZiB0aGlzIGNvcnJlY3RseVxuICAgIG9wdGlvbnMgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gZm9ybWF0dGVycy5nZXRMaXN0Rm9ybWF0KGxvY2FsZSwgb3B0aW9ucykuZm9ybWF0VG9QYXJ0cyhzZXJpYWxpemVkVmFsdWUpLm1hcChwYXJ0ID0+IHBhcnQudHlwZSA9PT0gJ2xpdGVyYWwnID8gcGFydC52YWx1ZSA6IHJpY2hWYWx1ZXMuZ2V0KHBhcnQudmFsdWUpIHx8IHBhcnQudmFsdWUpO1xuICAgICAgaWYgKHJpY2hWYWx1ZXMuc2l6ZSA+IDApIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiByZXN1bHQuam9pbignJyk7XG4gICAgICB9XG4gICAgfSwgKCkgPT4gU3RyaW5nKHZhbHVlKSk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBkYXRlVGltZSxcbiAgICBudW1iZXIsXG4gICAgcmVsYXRpdmVUaW1lLFxuICAgIGxpc3QsXG4gICAgZGF0ZVRpbWVSYW5nZVxuICB9O1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZU1lc3NhZ2VzU2VnbWVudChtZXNzYWdlcywgaW52YWxpZEtleUxhYmVscywgcGFyZW50UGF0aCkge1xuICBPYmplY3QuZW50cmllcyhtZXNzYWdlcykuZm9yRWFjaCgoW2tleSwgbWVzc2FnZU9yTWVzc2FnZXNdKSA9PiB7XG4gICAgaWYgKGtleS5pbmNsdWRlcygnLicpKSB7XG4gICAgICBsZXQga2V5TGFiZWwgPSBrZXk7XG4gICAgICBpZiAocGFyZW50UGF0aCkga2V5TGFiZWwgKz0gYCAoYXQgJHtwYXJlbnRQYXRofSlgO1xuICAgICAgaW52YWxpZEtleUxhYmVscy5wdXNoKGtleUxhYmVsKTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LWNvbmRpdGlvblxuICAgIGlmIChtZXNzYWdlT3JNZXNzYWdlcyAhPSBudWxsICYmIHR5cGVvZiBtZXNzYWdlT3JNZXNzYWdlcyA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHZhbGlkYXRlTWVzc2FnZXNTZWdtZW50KG1lc3NhZ2VPck1lc3NhZ2VzLCBpbnZhbGlkS2V5TGFiZWxzLCBqb2luUGF0aChwYXJlbnRQYXRoLCBrZXkpKTtcbiAgICB9XG4gIH0pO1xufVxuZnVuY3Rpb24gdmFsaWRhdGVNZXNzYWdlcyhtZXNzYWdlcywgb25FcnJvcikge1xuICBjb25zdCBpbnZhbGlkS2V5TGFiZWxzID0gW107XG4gIHZhbGlkYXRlTWVzc2FnZXNTZWdtZW50KG1lc3NhZ2VzLCBpbnZhbGlkS2V5TGFiZWxzKTtcbiAgaWYgKGludmFsaWRLZXlMYWJlbHMubGVuZ3RoID4gMCkge1xuICAgIG9uRXJyb3IobmV3IEludGxFcnJvcihJbnRsRXJyb3JDb2RlLklOVkFMSURfS0VZLCBgTmFtZXNwYWNlIGtleXMgY2Fubm90IGNvbnRhaW4gdGhlIGNoYXJhY3RlciBcIi5cIiBhcyB0aGlzIGlzIHVzZWQgdG8gZXhwcmVzcyBuZXN0aW5nLiBQbGVhc2UgcmVtb3ZlIGl0IG9yIHJlcGxhY2UgaXQgd2l0aCBhbm90aGVyIGNoYXJhY3Rlci5cblxuSW52YWxpZCAke2ludmFsaWRLZXlMYWJlbHMubGVuZ3RoID09PSAxID8gJ2tleScgOiAna2V5cyd9OiAke2ludmFsaWRLZXlMYWJlbHMuam9pbignLCAnKX1cblxuSWYgeW91J3JlIG1pZ3JhdGluZyBmcm9tIGEgZmxhdCBzdHJ1Y3R1cmUsIHlvdSBjYW4gY29udmVydCB5b3VyIG1lc3NhZ2VzIGFzIGZvbGxvd3M6XG5cbmltcG9ydCB7c2V0fSBmcm9tIFwibG9kYXNoXCI7XG5cbmNvbnN0IGlucHV0ID0ge1xuICBcIm9uZS5vbmVcIjogXCIxLjFcIixcbiAgXCJvbmUudHdvXCI6IFwiMS4yXCIsXG4gIFwidHdvLm9uZS5vbmVcIjogXCIyLjEuMVwiXG59O1xuXG5jb25zdCBvdXRwdXQgPSBPYmplY3QuZW50cmllcyhpbnB1dCkucmVkdWNlKFxuICAoYWNjLCBba2V5LCB2YWx1ZV0pID0+IHNldChhY2MsIGtleSwgdmFsdWUpLFxuICB7fVxuKTtcblxuLy8gT3V0cHV0OlxuLy9cbi8vIHtcbi8vICAgXCJvbmVcIjoge1xuLy8gICAgIFwib25lXCI6IFwiMS4xXCIsXG4vLyAgICAgXCJ0d29cIjogXCIxLjJcIlxuLy8gICB9LFxuLy8gICBcInR3b1wiOiB7XG4vLyAgICAgXCJvbmVcIjoge1xuLy8gICAgICAgXCJvbmVcIjogXCIyLjEuMVwiXG4vLyAgICAgfVxuLy8gICB9XG4vLyB9XG5gICkpO1xuICB9XG59XG5cbi8qKlxuICogRW5oYW5jZXMgdGhlIGluY29taW5nIHByb3BzIHdpdGggZGVmYXVsdHMuXG4gKi9cbmZ1bmN0aW9uIGluaXRpYWxpemVDb25maWcoe1xuICBmb3JtYXRzLFxuICBnZXRNZXNzYWdlRmFsbGJhY2ssXG4gIG1lc3NhZ2VzLFxuICBvbkVycm9yLFxuICAuLi5yZXN0XG59KSB7XG4gIGNvbnN0IGZpbmFsT25FcnJvciA9IG9uRXJyb3IgfHwgZGVmYXVsdE9uRXJyb3I7XG4gIGNvbnN0IGZpbmFsR2V0TWVzc2FnZUZhbGxiYWNrID0gZ2V0TWVzc2FnZUZhbGxiYWNrIHx8IGRlZmF1bHRHZXRNZXNzYWdlRmFsbGJhY2s7XG4gIHtcbiAgICBpZiAobWVzc2FnZXMpIHtcbiAgICAgIHZhbGlkYXRlTWVzc2FnZXMobWVzc2FnZXMsIGZpbmFsT25FcnJvcik7XG4gICAgfVxuICB9XG4gIHJldHVybiB7XG4gICAgLi4ucmVzdCxcbiAgICBmb3JtYXRzOiBmb3JtYXRzIHx8IHVuZGVmaW5lZCxcbiAgICBtZXNzYWdlczogbWVzc2FnZXMgfHwgdW5kZWZpbmVkLFxuICAgIG9uRXJyb3I6IGZpbmFsT25FcnJvcixcbiAgICBnZXRNZXNzYWdlRmFsbGJhY2s6IGZpbmFsR2V0TWVzc2FnZUZhbGxiYWNrXG4gIH07XG59XG5cbmV4cG9ydCB7IGNyZWF0ZUJhc2VUcmFuc2xhdG9yIGFzIGEsIGRlZmF1bHRPbkVycm9yIGFzIGIsIGNyZWF0ZUZvcm1hdHRlciBhcyBjLCBkZWZhdWx0R2V0TWVzc2FnZUZhbGxiYWNrIGFzIGQsIGluaXRpYWxpemVDb25maWcgYXMgaSwgcmVzb2x2ZU5hbWVzcGFjZSBhcyByIH07XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/.pnpm/use-intl@4.9.0_react@19.2.4/node_modules/use-intl/dist/esm/development/initializeConfig-B5qJiBCm.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/.pnpm/use-intl@4.9.0_react@19.2.4/node_modules/use-intl/dist/esm/development/react.js":
/*!************************************************************************************************************!*\
!*** ./node_modules/.pnpm/use-intl@4.9.0_react@19.2.4/node_modules/use-intl/dist/esm/development/react.js ***!
\************************************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ IntlProvider: () => (/* binding */ IntlProvider),\n/* harmony export */ _useExtracted: () => (/* binding */ useExtracted),\n/* harmony export */ useFormatter: () => (/* binding */ useFormatter),\n/* harmony export */ useLocale: () => (/* binding */ useLocale),\n/* harmony export */ useMessages: () => (/* binding */ useMessages),\n/* harmony export */ useNow: () => (/* binding */ useNow),\n/* harmony export */ useTimeZone: () => (/* binding */ useTimeZone),\n/* harmony export */ useTranslations: () => (/* binding */ useTranslations)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./formatters-r4aAmsMP.js */ \"(ssr)/./node_modules/.pnpm/use-intl@4.9.0_react@19.2.4/node_modules/use-intl/dist/esm/development/formatters-r4aAmsMP.js\");\n/* harmony import */ var _initializeConfig_B5qJiBCm_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./initializeConfig-B5qJiBCm.js */ \"(ssr)/./node_modules/.pnpm/use-intl@4.9.0_react@19.2.4/node_modules/use-intl/dist/esm/development/initializeConfig-B5qJiBCm.js\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\n\n\n\n\n\n\n\nconst IntlContext = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(undefined);\n\nfunction IntlProvider({\n children,\n formats,\n getMessageFallback,\n locale,\n messages,\n now,\n onError,\n timeZone\n}) {\n const prevContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(IntlContext);\n\n // The formatter cache is released when the locale changes. For\n // long-running apps with a persistent `IntlProvider` at the root,\n // this can reduce the memory footprint (e.g. in React Native).\n const cache = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\n return prevContext?.cache || (0,_formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_2__.b)();\n }, [locale, prevContext?.cache]);\n const formatters = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => prevContext?.formatters || (0,_formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_2__.c)(cache), [cache, prevContext?.formatters]);\n\n // Memoizing this value helps to avoid triggering a re-render of all\n // context consumers in case the configuration didn't change. However,\n // if some of the non-primitive values change, a re-render will still\n // be triggered. Note that there's no need to put `memo` on `IntlProvider`\n // itself, because the `children` typically change on every render.\n // There's some burden on the consumer side if it's important to reduce\n // re-renders, put that's how React works.\n // See: https://blog.isquaredsoftware.com/2020/05/blogged-answers-a-mostly-complete-guide-to-react-rendering-behavior/#context-updates-and-render-optimizations\n const value = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => ({\n ...(0,_initializeConfig_B5qJiBCm_js__WEBPACK_IMPORTED_MODULE_3__.i)({\n locale,\n // (required by provider)\n formats: formats === undefined ? prevContext?.formats : formats,\n getMessageFallback: getMessageFallback || prevContext?.getMessageFallback,\n messages: messages === undefined ? prevContext?.messages : messages,\n now: now || prevContext?.now,\n onError: onError || prevContext?.onError,\n timeZone: timeZone || prevContext?.timeZone\n }),\n formatters,\n cache\n }), [cache, formats, formatters, getMessageFallback, locale, messages, now, onError, prevContext, timeZone]);\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(IntlContext.Provider, {\n value: value,\n children: children\n });\n}\n\nfunction useIntlContext() {\n const context = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(IntlContext);\n if (!context) {\n throw new Error('No intl context found. Have you configured the provider? See https://next-intl.dev/docs/usage/configuration#server-client-components' );\n }\n return context;\n}\n\nlet hasWarnedForMissingTimezone = false;\nconst isServer = typeof window === 'undefined';\nfunction useTranslationsImpl(allMessagesPrefixed, namespacePrefixed, namespacePrefix) {\n const {\n cache,\n formats: globalFormats,\n formatters,\n getMessageFallback,\n locale,\n onError,\n timeZone\n } = useIntlContext();\n\n // The `namespacePrefix` is part of the type system.\n // See the comment in the hook invocation.\n const allMessages = allMessagesPrefixed[namespacePrefix];\n const namespace = (0,_initializeConfig_B5qJiBCm_js__WEBPACK_IMPORTED_MODULE_3__.r)(namespacePrefixed, namespacePrefix);\n if (!timeZone && !hasWarnedForMissingTimezone && isServer) {\n // eslint-disable-next-line react-compiler/react-compiler\n hasWarnedForMissingTimezone = true;\n onError(new _formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_2__.I(_formatters_r4aAmsMP_js__WEBPACK_IMPORTED_MODULE_2__.a.ENVIRONMENT_FALLBACK, `There is no \\`timeZone\\` configured, this can lead to markup mismatches caused by environment differences. Consider adding a global default: https://next-intl.dev/docs/configuration#time-zone` ));\n }\n const translate = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => (0,_initializeConfig_B5qJiBCm_js__WEBPACK_IMPORTED_MODULE_3__.a)({\n cache,\n formatters,\n getMessageFallback,\n messages: allMessages,\n namespace,\n onError,\n formats: globalFormats,\n locale,\n timeZone\n }), [cache, formatters, getMessageFallback, allMessages, namespace, onError, globalFormats, locale, timeZone]);\n return translate;\n}\n\n/**\n * Translates messages from the given namespace by using the ICU syntax.\n * See https://formatjs.io/docs/core-concepts/icu-syntax.\n *\n * If no namespace is provided, all available messages are returned.\n * The namespace can also indicate nesting by using a dot\n * (e.g. `namespace.Component`).\n */\nfunction useTranslations(namespace) {\n const context = useIntlContext();\n const messages = context.messages;\n\n // We have to wrap the actual hook so the type inference for the optional\n // namespace works correctly. See https://stackoverflow.com/a/71529575/343045\n // The prefix (\"!\") is arbitrary.\n // @ts-expect-error Use the explicit annotation instead\n return useTranslationsImpl({\n '!': messages\n },\n // @ts-expect-error\n namespace ? `!.${namespace}` : '!', '!');\n}\n\nfunction useLocale() {\n return useIntlContext().locale;\n}\n\nfunction getNow() {\n return new Date();\n}\n\n/**\n * @see https://next-intl.dev/docs/usage/dates-times#relative-times-usenow\n */\nfunction useNow(options) {\n const updateInterval = options?.updateInterval;\n const {\n now: globalNow\n } = useIntlContext();\n const [now, setNow] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(globalNow || getNow());\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n if (!updateInterval) return;\n const intervalId = setInterval(() => {\n setNow(getNow());\n }, updateInterval);\n return () => {\n clearInterval(intervalId);\n };\n }, [globalNow, updateInterval]);\n return updateInterval == null && globalNow ? globalNow : now;\n}\n\nfunction useTimeZone() {\n return useIntlContext().timeZone;\n}\n\nfunction useMessages() {\n const context = useIntlContext();\n if (!context.messages) {\n throw new Error('No messages found. Have you configured them correctly? See https://next-intl.dev/docs/configuration#messages' );\n }\n return context.messages;\n}\n\nfunction useFormatter() {\n const {\n formats,\n formatters,\n locale,\n now: globalNow,\n onError,\n timeZone\n } = useIntlContext();\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => (0,_initializeConfig_B5qJiBCm_js__WEBPACK_IMPORTED_MODULE_3__.c)({\n formats,\n locale,\n now: globalNow,\n onError,\n timeZone,\n _formatters: formatters\n }), [formats, formatters, globalNow, locale, onError, timeZone]);\n}\n\nfunction getArgs(messageOrParams, ...rest) {\n let message, values, formats;\n if (typeof messageOrParams === 'string') {\n message = messageOrParams;\n values = rest[0];\n formats = rest[1];\n } else {\n message = messageOrParams.message;\n values = messageOrParams.values;\n formats = messageOrParams.formats;\n // `description` is is not used at runtime\n }\n // @ts-expect-error -- Secret fallback parameter\n return [undefined,\n // Always use fallback if not compiled\n values, formats, message ];\n}\n\n// Note: This API is usually compiled into `useTranslations`,\n// but there is some fallback handling which allows this hook\n// to still work when not being compiled.\n//\n// This is relevant for:\n// - Isolated environments like tests, Storybook, etc.\n// - Fallbacks in case an extracted message is not yet available\nfunction useExtracted(namespace) {\n const t = useTranslations(namespace);\n function translateFn(...params) {\n // @ts-expect-error -- Passing `undefined` as an ID is secretly allowed here\n return t(...getArgs(...params));\n }\n translateFn.rich = (...params) =>\n // @ts-expect-error -- Passing `undefined` as an ID is secretly allowed here\n t.rich(...getArgs(...params));\n translateFn.markup = (...params) =>\n // @ts-expect-error -- Passing `undefined` as an ID is secretly allowed here\n t.markup(...getArgs(...params));\n translateFn.has = function translateHasFn(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n message) {\n // Not really something better we can do here\n return true;\n };\n return translateFn;\n}\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvLnBucG0vdXNlLWludGxANC45LjBfcmVhY3RAMTkuMi40L25vZGVfbW9kdWxlcy91c2UtaW50bC9kaXN0L2VzbS9kZXZlbG9wbWVudC9yZWFjdC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBZ0Y7QUFDMkM7QUFDb0I7QUFDdkc7Ozs7QUFJeEMsaUNBQWlDLG9EQUFhOztBQUU5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Qsc0JBQXNCLGlEQUFVOztBQUVoQztBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsOENBQU87QUFDdkIsaUNBQWlDLDBEQUFXO0FBQzVDLEdBQUc7QUFDSCxxQkFBcUIsOENBQU8sa0NBQWtDLDBEQUFvQjs7QUFFbEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiw4Q0FBTztBQUN2QixPQUFPLGdFQUFnQjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxHQUFHO0FBQ0gsc0JBQXNCLHNEQUFHO0FBQ3pCO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQSxrQkFBa0IsaURBQVU7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7QUFFSjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsZ0VBQWdCO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixzREFBUyxDQUFDLHNEQUFhO0FBQ3ZDO0FBQ0Esb0JBQW9CLDhDQUFPLE9BQU8sZ0VBQW9CO0FBQ3REO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsbUJBQW1CLFVBQVU7QUFDN0I7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSix3QkFBd0IsK0NBQVE7QUFDaEMsRUFBRSxnREFBUztBQUNYO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSixTQUFTLDhDQUFPLE9BQU8sZ0VBQWU7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRW1JIiwic291cmNlcyI6WyIvVXNlcnMvbWFyY21pbnRlbC9Qcm9qZWN0cy9lLXRpYi5jb20vbm9kZV9tb2R1bGVzLy5wbnBtL3VzZS1pbnRsQDQuOS4wX3JlYWN0QDE5LjIuNC9ub2RlX21vZHVsZXMvdXNlLWludGwvZGlzdC9lc20vZGV2ZWxvcG1lbnQvcmVhY3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCwgdXNlTWVtbywgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGIgYXMgY3JlYXRlQ2FjaGUsIGMgYXMgY3JlYXRlSW50bEZvcm1hdHRlcnMsIEkgYXMgSW50bEVycm9yLCBhIGFzIEludGxFcnJvckNvZGUgfSBmcm9tICcuL2Zvcm1hdHRlcnMtcjRhQW1zTVAuanMnO1xuaW1wb3J0IHsgaSBhcyBpbml0aWFsaXplQ29uZmlnLCByIGFzIHJlc29sdmVOYW1lc3BhY2UsIGEgYXMgY3JlYXRlQmFzZVRyYW5zbGF0b3IsIGMgYXMgY3JlYXRlRm9ybWF0dGVyIH0gZnJvbSAnLi9pbml0aWFsaXplQ29uZmlnLUI1cUppQkNtLmpzJztcbmltcG9ydCB7IGpzeCB9IGZyb20gJ3JlYWN0L2pzeC1ydW50aW1lJztcblxuXG5cbmNvbnN0IEludGxDb250ZXh0ID0gLyojX19QVVJFX18qL2NyZWF0ZUNvbnRleHQodW5kZWZpbmVkKTtcblxuZnVuY3Rpb24gSW50bFByb3ZpZGVyKHtcbiAgY2hpbGRyZW4sXG4gIGZvcm1hdHMsXG4gIGdldE1lc3NhZ2VGYWxsYmFjayxcbiAgbG9jYWxlLFxuICBtZXNzYWdlcyxcbiAgbm93LFxuICBvbkVycm9yLFxuICB0aW1lWm9uZVxufSkge1xuICBjb25zdCBwcmV2Q29udGV4dCA9IHVzZUNvbnRleHQoSW50bENvbnRleHQpO1xuXG4gIC8vIFRoZSBmb3JtYXR0ZXIgY2FjaGUgaXMgcmVsZWFzZWQgd2hlbiB0aGUgbG9jYWxlIGNoYW5nZXMuIEZvclxuICAvLyBsb25nLXJ1bm5pbmcgYXBwcyB3aXRoIGEgcGVyc2lzdGVudCBgSW50bFByb3ZpZGVyYCBhdCB0aGUgcm9vdCxcbiAgLy8gdGhpcyBjYW4gcmVkdWNlIHRoZSBtZW1vcnkgZm9vdHByaW50IChlLmcuIGluIFJlYWN0IE5hdGl2ZSkuXG4gIGNvbnN0IGNhY2hlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIHByZXZDb250ZXh0Py5jYWNoZSB8fCBjcmVhdGVDYWNoZSgpO1xuICB9LCBbbG9jYWxlLCBwcmV2Q29udGV4dD8uY2FjaGVdKTtcbiAgY29uc3QgZm9ybWF0dGVycyA9IHVzZU1lbW8oKCkgPT4gcHJldkNvbnRleHQ/LmZvcm1hdHRlcnMgfHwgY3JlYXRlSW50bEZvcm1hdHRlcnMoY2FjaGUpLCBbY2FjaGUsIHByZXZDb250ZXh0Py5mb3JtYXR0ZXJzXSk7XG5cbiAgLy8gTWVtb2l6aW5nIHRoaXMgdmFsdWUgaGVscHMgdG8gYXZvaWQgdHJpZ2dlcmluZyBhIHJlLXJlbmRlciBvZiBhbGxcbiAgLy8gY29udGV4dCBjb25zdW1lcnMgaW4gY2FzZSB0aGUgY29uZmlndXJhdGlvbiBkaWRuJ3QgY2hhbmdlLiBIb3dldmVyLFxuICAvLyBpZiBzb21lIG9mIHRoZSBub24tcHJpbWl0aXZlIHZhbHVlcyBjaGFuZ2UsIGEgcmUtcmVuZGVyIHdpbGwgc3RpbGxcbiAgLy8gYmUgdHJpZ2dlcmVkLiBOb3RlIHRoYXQgdGhlcmUncyBubyBuZWVkIHRvIHB1dCBgbWVtb2Agb24gYEludGxQcm92aWRlcmBcbiAgLy8gaXRzZWxmLCBiZWNhdXNlIHRoZSBgY2hpbGRyZW5gIHR5cGljYWxseSBjaGFuZ2Ugb24gZXZlcnkgcmVuZGVyLlxuICAvLyBUaGVyZSdzIHNvbWUgYnVyZGVuIG9uIHRoZSBjb25zdW1lciBzaWRlIGlmIGl0J3MgaW1wb3J0YW50IHRvIHJlZHVjZVxuICAvLyByZS1yZW5kZXJzLCBwdXQgdGhhdCdzIGhvdyBSZWFjdCB3b3Jrcy5cbiAgLy8gU2VlOiBodHRwczovL2Jsb2cuaXNxdWFyZWRzb2Z0d2FyZS5jb20vMjAyMC8wNS9ibG9nZ2VkLWFuc3dlcnMtYS1tb3N0bHktY29tcGxldGUtZ3VpZGUtdG8tcmVhY3QtcmVuZGVyaW5nLWJlaGF2aW9yLyNjb250ZXh0LXVwZGF0ZXMtYW5kLXJlbmRlci1vcHRpbWl6YXRpb25zXG4gIGNvbnN0IHZhbHVlID0gdXNlTWVtbygoKSA9PiAoe1xuICAgIC4uLmluaXRpYWxpemVDb25maWcoe1xuICAgICAgbG9jYWxlLFxuICAgICAgLy8gKHJlcXVpcmVkIGJ5IHByb3ZpZGVyKVxuICAgICAgZm9ybWF0czogZm9ybWF0cyA9PT0gdW5kZWZpbmVkID8gcHJldkNvbnRleHQ/LmZvcm1hdHMgOiBmb3JtYXRzLFxuICAgICAgZ2V0TWVzc2FnZUZhbGxiYWNrOiBnZXRNZXNzYWdlRmFsbGJhY2sgfHwgcHJldkNvbnRleHQ/LmdldE1lc3NhZ2VGYWxsYmFjayxcbiAgICAgIG1lc3NhZ2VzOiBtZXNzYWdlcyA9PT0gdW5kZWZpbmVkID8gcHJldkNvbnRleHQ/Lm1lc3NhZ2VzIDogbWVzc2FnZXMsXG4gICAgICBub3c6IG5vdyB8fCBwcmV2Q29udGV4dD8ubm93LFxuICAgICAgb25FcnJvcjogb25FcnJvciB8fCBwcmV2Q29udGV4dD8ub25FcnJvcixcbiAgICAgIHRpbWVab25lOiB0aW1lWm9uZSB8fCBwcmV2Q29udGV4dD8udGltZVpvbmVcbiAgICB9KSxcbiAgICBmb3JtYXR0ZXJzLFxuICAgIGNhY2hlXG4gIH0pLCBbY2FjaGUsIGZvcm1hdHMsIGZvcm1hdHRlcnMsIGdldE1lc3NhZ2VGYWxsYmFjaywgbG9jYWxlLCBtZXNzYWdlcywgbm93LCBvbkVycm9yLCBwcmV2Q29udGV4dCwgdGltZVpvbmVdKTtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9qc3goSW50bENvbnRleHQuUHJvdmlkZXIsIHtcbiAgICB2YWx1ZTogdmFsdWUsXG4gICAgY2hpbGRyZW46IGNoaWxkcmVuXG4gIH0pO1xufVxuXG5mdW5jdGlvbiB1c2VJbnRsQ29udGV4dCgpIHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoSW50bENvbnRleHQpO1xuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIGludGwgY29udGV4dCBmb3VuZC4gSGF2ZSB5b3UgY29uZmlndXJlZCB0aGUgcHJvdmlkZXI/IFNlZSBodHRwczovL25leHQtaW50bC5kZXYvZG9jcy91c2FnZS9jb25maWd1cmF0aW9uI3NlcnZlci1jbGllbnQtY29tcG9uZW50cycgKTtcbiAgfVxuICByZXR1cm4gY29udGV4dDtcbn1cblxubGV0IGhhc1dhcm5lZEZvck1pc3NpbmdUaW1lem9uZSA9IGZhbHNlO1xuY29uc3QgaXNTZXJ2ZXIgPSB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJztcbmZ1bmN0aW9uIHVzZVRyYW5zbGF0aW9uc0ltcGwoYWxsTWVzc2FnZXNQcmVmaXhlZCwgbmFtZXNwYWNlUHJlZml4ZWQsIG5hbWVzcGFjZVByZWZpeCkge1xuICBjb25zdCB7XG4gICAgY2FjaGUsXG4gICAgZm9ybWF0czogZ2xvYmFsRm9ybWF0cyxcbiAgICBmb3JtYXR0ZXJzLFxuICAgIGdldE1lc3NhZ2VGYWxsYmFjayxcbiAgICBsb2NhbGUsXG4gICAgb25FcnJvcixcbiAgICB0aW1lWm9uZVxuICB9ID0gdXNlSW50bENvbnRleHQoKTtcblxuICAvLyBUaGUgYG5hbWVzcGFjZVByZWZpeGAgaXMgcGFydCBvZiB0aGUgdHlwZSBzeXN0ZW0uXG4gIC8vIFNlZSB0aGUgY29tbWVudCBpbiB0aGUgaG9vayBpbnZvY2F0aW9uLlxuICBjb25zdCBhbGxNZXNzYWdlcyA9IGFsbE1lc3NhZ2VzUHJlZml4ZWRbbmFtZXNwYWNlUHJlZml4XTtcbiAgY29uc3QgbmFtZXNwYWNlID0gcmVzb2x2ZU5hbWVzcGFjZShuYW1lc3BhY2VQcmVmaXhlZCwgbmFtZXNwYWNlUHJlZml4KTtcbiAgaWYgKCF0aW1lWm9uZSAmJiAhaGFzV2FybmVkRm9yTWlzc2luZ1RpbWV6b25lICYmIGlzU2VydmVyKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWNvbXBpbGVyL3JlYWN0LWNvbXBpbGVyXG4gICAgaGFzV2FybmVkRm9yTWlzc2luZ1RpbWV6b25lID0gdHJ1ZTtcbiAgICBvbkVycm9yKG5ldyBJbnRsRXJyb3IoSW50bEVycm9yQ29kZS5FTlZJUk9OTUVOVF9GQUxMQkFDSywgYFRoZXJlIGlzIG5vIFxcYHRpbWVab25lXFxgIGNvbmZpZ3VyZWQsIHRoaXMgY2FuIGxlYWQgdG8gbWFya3VwIG1pc21hdGNoZXMgY2F1c2VkIGJ5IGVudmlyb25tZW50IGRpZmZlcmVuY2VzLiBDb25zaWRlciBhZGRpbmcgYSBnbG9iYWwgZGVmYXVsdDogaHR0cHM6Ly9uZXh0LWludGwuZGV2L2RvY3MvY29uZmlndXJhdGlvbiN0aW1lLXpvbmVgICkpO1xuICB9XG4gIGNvbnN0IHRyYW5zbGF0ZSA9IHVzZU1lbW8oKCkgPT4gY3JlYXRlQmFzZVRyYW5zbGF0b3Ioe1xuICAgIGNhY2hlLFxuICAgIGZvcm1hdHRlcnMsXG4gICAgZ2V0TWVzc2FnZUZhbGxiYWNrLFxuICAgIG1lc3NhZ2VzOiBhbGxNZXNzYWdlcyxcbiAgICBuYW1lc3BhY2UsXG4gICAgb25FcnJvcixcbiAgICBmb3JtYXRzOiBnbG9iYWxGb3JtYXRzLFxuICAgIGxvY2FsZSxcbiAgICB0aW1lWm9uZVxuICB9KSwgW2NhY2hlLCBmb3JtYXR0ZXJzLCBnZXRNZXNzYWdlRmFsbGJhY2ssIGFsbE1lc3NhZ2VzLCBuYW1lc3BhY2UsIG9uRXJyb3IsIGdsb2JhbEZvcm1hdHMsIGxvY2FsZSwgdGltZVpvbmVdKTtcbiAgcmV0dXJuIHRyYW5zbGF0ZTtcbn1cblxuLyoqXG4gKiBUcmFuc2xhdGVzIG1lc3NhZ2VzIGZyb20gdGhlIGdpdmVuIG5hbWVzcGFjZSBieSB1c2luZyB0aGUgSUNVIHN5bnRheC5cbiAqIFNlZSBodHRwczovL2Zvcm1hdGpzLmlvL2RvY3MvY29yZS1jb25jZXB0cy9pY3Utc3ludGF4LlxuICpcbiAqIElmIG5vIG5hbWVzcGFjZSBpcyBwcm92aWRlZCwgYWxsIGF2YWlsYWJsZSBtZXNzYWdlcyBhcmUgcmV0dXJuZWQuXG4gKiBUaGUgbmFtZXNwYWNlIGNhbiBhbHNvIGluZGljYXRlIG5lc3RpbmcgYnkgdXNpbmcgYSBkb3RcbiAqIChlLmcuIGBuYW1lc3BhY2UuQ29tcG9uZW50YCkuXG4gKi9cbmZ1bmN0aW9uIHVzZVRyYW5zbGF0aW9ucyhuYW1lc3BhY2UpIHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUludGxDb250ZXh0KCk7XG4gIGNvbnN0IG1lc3NhZ2VzID0gY29udGV4dC5tZXNzYWdlcztcblxuICAvLyBXZSBoYXZlIHRvIHdyYXAgdGhlIGFjdHVhbCBob29rIHNvIHRoZSB0eXBlIGluZmVyZW5jZSBmb3IgdGhlIG9wdGlvbmFsXG4gIC8vIG5hbWVzcGFjZSB3b3JrcyBjb3JyZWN0bHkuIFNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNzE1Mjk1NzUvMzQzMDQ1XG4gIC8vIFRoZSBwcmVmaXggKFwiIVwiKSBpcyBhcmJpdHJhcnkuXG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgVXNlIHRoZSBleHBsaWNpdCBhbm5vdGF0aW9uIGluc3RlYWRcbiAgcmV0dXJuIHVzZVRyYW5zbGF0aW9uc0ltcGwoe1xuICAgICchJzogbWVzc2FnZXNcbiAgfSxcbiAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICBuYW1lc3BhY2UgPyBgIS4ke25hbWVzcGFjZX1gIDogJyEnLCAnIScpO1xufVxuXG5mdW5jdGlvbiB1c2VMb2NhbGUoKSB7XG4gIHJldHVybiB1c2VJbnRsQ29udGV4dCgpLmxvY2FsZTtcbn1cblxuZnVuY3Rpb24gZ2V0Tm93KCkge1xuICByZXR1cm4gbmV3IERhdGUoKTtcbn1cblxuLyoqXG4gKiBAc2VlIGh0dHBzOi8vbmV4dC1pbnRsLmRldi9kb2NzL3VzYWdlL2RhdGVzLXRpbWVzI3JlbGF0aXZlLXRpbWVzLXVzZW5vd1xuICovXG5mdW5jdGlvbiB1c2VOb3cob3B0aW9ucykge1xuICBjb25zdCB1cGRhdGVJbnRlcnZhbCA9IG9wdGlvbnM/LnVwZGF0ZUludGVydmFsO1xuICBjb25zdCB7XG4gICAgbm93OiBnbG9iYWxOb3dcbiAgfSA9IHVzZUludGxDb250ZXh0KCk7XG4gIGNvbnN0IFtub3csIHNldE5vd10gPSB1c2VTdGF0ZShnbG9iYWxOb3cgfHwgZ2V0Tm93KCkpO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghdXBkYXRlSW50ZXJ2YWwpIHJldHVybjtcbiAgICBjb25zdCBpbnRlcnZhbElkID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgc2V0Tm93KGdldE5vdygpKTtcbiAgICB9LCB1cGRhdGVJbnRlcnZhbCk7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxJZCk7XG4gICAgfTtcbiAgfSwgW2dsb2JhbE5vdywgdXBkYXRlSW50ZXJ2YWxdKTtcbiAgcmV0dXJuIHVwZGF0ZUludGVydmFsID09IG51bGwgJiYgZ2xvYmFsTm93ID8gZ2xvYmFsTm93IDogbm93O1xufVxuXG5mdW5jdGlvbiB1c2VUaW1lWm9uZSgpIHtcbiAgcmV0dXJuIHVzZUludGxDb250ZXh0KCkudGltZVpvbmU7XG59XG5cbmZ1bmN0aW9uIHVzZU1lc3NhZ2VzKCkge1xuICBjb25zdCBjb250ZXh0ID0gdXNlSW50bENvbnRleHQoKTtcbiAgaWYgKCFjb250ZXh0Lm1lc3NhZ2VzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdObyBtZXNzYWdlcyBmb3VuZC4gSGF2ZSB5b3UgY29uZmlndXJlZCB0aGVtIGNvcnJlY3RseT8gU2VlIGh0dHBzOi8vbmV4dC1pbnRsLmRldi9kb2NzL2NvbmZpZ3VyYXRpb24jbWVzc2FnZXMnICk7XG4gIH1cbiAgcmV0dXJuIGNvbnRleHQubWVzc2FnZXM7XG59XG5cbmZ1bmN0aW9uIHVzZUZvcm1hdHRlcigpIHtcbiAgY29uc3Qge1xuICAgIGZvcm1hdHMsXG4gICAgZm9ybWF0dGVycyxcbiAgICBsb2NhbGUsXG4gICAgbm93OiBnbG9iYWxOb3csXG4gICAgb25FcnJvcixcbiAgICB0aW1lWm9uZVxuICB9ID0gdXNlSW50bENvbnRleHQoKTtcbiAgcmV0dXJuIHVzZU1lbW8oKCkgPT4gY3JlYXRlRm9ybWF0dGVyKHtcbiAgICBmb3JtYXRzLFxuICAgIGxvY2FsZSxcbiAgICBub3c6IGdsb2JhbE5vdyxcbiAgICBvbkVycm9yLFxuICAgIHRpbWVab25lLFxuICAgIF9mb3JtYXR0ZXJzOiBmb3JtYXR0ZXJzXG4gIH0pLCBbZm9ybWF0cywgZm9ybWF0dGVycywgZ2xvYmFsTm93LCBsb2NhbGUsIG9uRXJyb3IsIHRpbWVab25lXSk7XG59XG5cbmZ1bmN0aW9uIGdldEFyZ3MobWVzc2FnZU9yUGFyYW1zLCAuLi5yZXN0KSB7XG4gIGxldCBtZXNzYWdlLCB2YWx1ZXMsIGZvcm1hdHM7XG4gIGlmICh0eXBlb2YgbWVzc2FnZU9yUGFyYW1zID09PSAnc3RyaW5nJykge1xuICAgIG1lc3NhZ2UgPSBtZXNzYWdlT3JQYXJhbXM7XG4gICAgdmFsdWVzID0gcmVzdFswXTtcbiAgICBmb3JtYXRzID0gcmVzdFsxXTtcbiAgfSBlbHNlIHtcbiAgICBtZXNzYWdlID0gbWVzc2FnZU9yUGFyYW1zLm1lc3NhZ2U7XG4gICAgdmFsdWVzID0gbWVzc2FnZU9yUGFyYW1zLnZhbHVlcztcbiAgICBmb3JtYXRzID0gbWVzc2FnZU9yUGFyYW1zLmZvcm1hdHM7XG4gICAgLy8gYGRlc2NyaXB0aW9uYCBpcyBpcyBub3QgdXNlZCBhdCBydW50aW1lXG4gIH1cbiAgLy8gQHRzLWV4cGVjdC1lcnJvciAtLSBTZWNyZXQgZmFsbGJhY2sgcGFyYW1ldGVyXG4gIHJldHVybiBbdW5kZWZpbmVkLFxuICAvLyBBbHdheXMgdXNlIGZhbGxiYWNrIGlmIG5vdCBjb21waWxlZFxuICB2YWx1ZXMsIGZvcm1hdHMsIG1lc3NhZ2UgXTtcbn1cblxuLy8gTm90ZTogVGhpcyBBUEkgaXMgdXN1YWxseSBjb21waWxlZCBpbnRvIGB1c2VUcmFuc2xhdGlvbnNgLFxuLy8gYnV0IHRoZXJlIGlzIHNvbWUgZmFsbGJhY2sgaGFuZGxpbmcgd2hpY2ggYWxsb3dzIHRoaXMgaG9va1xuLy8gdG8gc3RpbGwgd29yayB3aGVuIG5vdCBiZWluZyBjb21waWxlZC5cbi8vXG4vLyBUaGlzIGlzIHJlbGV2YW50IGZvcjpcbi8vIC0gSXNvbGF0ZWQgZW52aXJvbm1lbnRzIGxpa2UgdGVzdHMsIFN0b3J5Ym9vaywgZXRjLlxuLy8gLSBGYWxsYmFja3MgaW4gY2FzZSBhbiBleHRyYWN0ZWQgbWVzc2FnZSBpcyBub3QgeWV0IGF2YWlsYWJsZVxuZnVuY3Rpb24gdXNlRXh0cmFjdGVkKG5hbWVzcGFjZSkge1xuICBjb25zdCB0ID0gdXNlVHJhbnNsYXRpb25zKG5hbWVzcGFjZSk7XG4gIGZ1bmN0aW9uIHRyYW5zbGF0ZUZuKC4uLnBhcmFtcykge1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLS0gUGFzc2luZyBgdW5kZWZpbmVkYCBhcyBhbiBJRCBpcyBzZWNyZXRseSBhbGxvd2VkIGhlcmVcbiAgICByZXR1cm4gdCguLi5nZXRBcmdzKC4uLnBhcmFtcykpO1xuICB9XG4gIHRyYW5zbGF0ZUZuLnJpY2ggPSAoLi4ucGFyYW1zKSA9PlxuICAvLyBAdHMtZXhwZWN0LWVycm9yIC0tIFBhc3NpbmcgYHVuZGVmaW5lZGAgYXMgYW4gSUQgaXMgc2VjcmV0bHkgYWxsb3dlZCBoZXJlXG4gIHQucmljaCguLi5nZXRBcmdzKC4uLnBhcmFtcykpO1xuICB0cmFuc2xhdGVGbi5tYXJrdXAgPSAoLi4ucGFyYW1zKSA9PlxuICAvLyBAdHMtZXhwZWN0LWVycm9yIC0tIFBhc3NpbmcgYHVuZGVmaW5lZGAgYXMgYW4gSUQgaXMgc2VjcmV0bHkgYWxsb3dlZCBoZXJlXG4gIHQubWFya3VwKC4uLmdldEFyZ3MoLi4ucGFyYW1zKSk7XG4gIHRyYW5zbGF0ZUZuLmhhcyA9IGZ1bmN0aW9uIHRyYW5zbGF0ZUhhc0ZuKFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIG1lc3NhZ2UpIHtcbiAgICAvLyBOb3QgcmVhbGx5IHNvbWV0aGluZyBiZXR0ZXIgd2UgY2FuIGRvIGhlcmVcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfTtcbiAgcmV0dXJuIHRyYW5zbGF0ZUZuO1xufVxuXG5leHBvcnQgeyBJbnRsUHJvdmlkZXIsIHVzZUV4dHJhY3RlZCBhcyBfdXNlRXh0cmFjdGVkLCB1c2VGb3JtYXR0ZXIsIHVzZUxvY2FsZSwgdXNlTWVzc2FnZXMsIHVzZU5vdywgdXNlVGltZVpvbmUsIHVzZVRyYW5zbGF0aW9ucyB9O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/.pnpm/use-intl@4.9.0_react@19.2.4/node_modules/use-intl/dist/esm/development/react.js\n");
/***/ })
};
;