@readme/cli 0.0.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +55 -0
- package/bin/readme.js +8 -0
- package/package.json +58 -0
- package/src/bootstrap.js +97 -0
- package/src/cli.js +189 -0
- package/src/commands/dev.js +119 -0
- package/src/commands/eyes.js +37 -0
- package/src/commands/import.js +2565 -0
- package/src/commands/lint.js +70 -0
- package/src/commands/oas-sync.js +364 -0
- package/src/commands/oas-validate.js +208 -0
- package/src/commands/play.js +17 -0
- package/src/commands/pretty.js +133 -0
- package/src/commands/setup.js +256 -0
- package/src/commands/versions.js +81 -0
- package/src/dev/.next/app-build-manifest.json +20 -0
- package/src/dev/.next/build-manifest.json +31 -0
- package/src/dev/.next/cache/.rscinfo +1 -0
- package/src/dev/.next/cache/next-devtools-config.json +1 -0
- package/src/dev/.next/cache/webpack/client-development/0.pack.gz +0 -0
- package/src/dev/.next/cache/webpack/client-development/1.pack.gz +0 -0
- package/src/dev/.next/cache/webpack/client-development/10.pack.gz +0 -0
- package/src/dev/.next/cache/webpack/client-development/11.pack.gz +0 -0
- package/src/dev/.next/cache/webpack/client-development/2.pack.gz +0 -0
- package/src/dev/.next/cache/webpack/client-development/3.pack.gz +0 -0
- package/src/dev/.next/cache/webpack/client-development/3.pack.gz_ +0 -0
- package/src/dev/.next/cache/webpack/client-development/4.pack.gz +0 -0
- package/src/dev/.next/cache/webpack/client-development/5.pack.gz +0 -0
- package/src/dev/.next/cache/webpack/client-development/5.pack.gz_ +0 -0
- package/src/dev/.next/cache/webpack/client-development/6.pack.gz +0 -0
- package/src/dev/.next/cache/webpack/client-development/7.pack.gz +0 -0
- package/src/dev/.next/cache/webpack/client-development/7.pack.gz_ +0 -0
- package/src/dev/.next/cache/webpack/client-development/8.pack.gz +0 -0
- package/src/dev/.next/cache/webpack/client-development/9.pack.gz +0 -0
- package/src/dev/.next/cache/webpack/client-development/index.pack.gz.old +0 -0
- package/src/dev/.next/cache/webpack/client-development-fallback/0.pack.gz +0 -0
- package/src/dev/.next/cache/webpack/client-development-fallback/1.pack.gz +0 -0
- package/src/dev/.next/cache/webpack/client-development-fallback/index.pack.gz +0 -0
- package/src/dev/.next/cache/webpack/client-development-fallback/index.pack.gz.old +0 -0
- package/src/dev/.next/cache/webpack/edge-server-development/0.pack.gz +0 -0
- package/src/dev/.next/cache/webpack/edge-server-development/1.pack.gz +0 -0
- package/src/dev/.next/cache/webpack/edge-server-development/index.pack.gz +0 -0
- package/src/dev/.next/cache/webpack/edge-server-development/index.pack.gz.old +0 -0
- package/src/dev/.next/cache/webpack/server-development/0.pack.gz +0 -0
- package/src/dev/.next/cache/webpack/server-development/1.pack.gz +0 -0
- package/src/dev/.next/cache/webpack/server-development/10.pack.gz +0 -0
- package/src/dev/.next/cache/webpack/server-development/11.pack.gz +0 -0
- package/src/dev/.next/cache/webpack/server-development/12.pack.gz +0 -0
- package/src/dev/.next/cache/webpack/server-development/13.pack.gz +0 -0
- package/src/dev/.next/cache/webpack/server-development/14.pack.gz +0 -0
- package/src/dev/.next/cache/webpack/server-development/15.pack.gz +0 -0
- package/src/dev/.next/cache/webpack/server-development/2.pack.gz +0 -0
- package/src/dev/.next/cache/webpack/server-development/2.pack.gz_ +0 -0
- package/src/dev/.next/cache/webpack/server-development/3.pack.gz +0 -0
- package/src/dev/.next/cache/webpack/server-development/3.pack.gz_ +0 -0
- package/src/dev/.next/cache/webpack/server-development/4.pack.gz +0 -0
- package/src/dev/.next/cache/webpack/server-development/5.pack.gz +0 -0
- package/src/dev/.next/cache/webpack/server-development/6.pack.gz +0 -0
- package/src/dev/.next/cache/webpack/server-development/6.pack.gz_ +0 -0
- package/src/dev/.next/cache/webpack/server-development/7.pack.gz +0 -0
- package/src/dev/.next/cache/webpack/server-development/7.pack.gz_ +0 -0
- package/src/dev/.next/cache/webpack/server-development/8.pack.gz +0 -0
- package/src/dev/.next/cache/webpack/server-development/9.pack.gz +0 -0
- package/src/dev/.next/cache/webpack/server-development/9.pack.gz_ +0 -0
- package/src/dev/.next/cache/webpack/server-development/index.pack.gz +0 -0
- package/src/dev/.next/cache/webpack/server-development/index.pack.gz.old +0 -0
- package/src/dev/.next/package.json +1 -0
- package/src/dev/.next/prerender-manifest.json +11 -0
- package/src/dev/.next/react-loadable-manifest.json +1 -0
- package/src/dev/.next/routes-manifest.json +1 -0
- package/src/dev/.next/server/app/[...slug]/page.js +360 -0
- package/src/dev/.next/server/app/[...slug]/page_client-reference-manifest.js +1 -0
- package/src/dev/.next/server/app/page.js +349 -0
- package/src/dev/.next/server/app/page_client-reference-manifest.js +1 -0
- package/src/dev/.next/server/app-paths-manifest.json +3 -0
- package/src/dev/.next/server/edge-runtime-webpack.js +1151 -0
- package/src/dev/.next/server/interception-route-rewrite-manifest.js +1 -0
- package/src/dev/.next/server/middleware-build-manifest.js +33 -0
- package/src/dev/.next/server/middleware-manifest.json +32 -0
- package/src/dev/.next/server/middleware-react-loadable-manifest.js +1 -0
- package/src/dev/.next/server/middleware.js +1113 -0
- package/src/dev/.next/server/next-font-manifest.js +1 -0
- package/src/dev/.next/server/next-font-manifest.json +1 -0
- package/src/dev/.next/server/pages-manifest.json +5 -0
- package/src/dev/.next/server/server-reference-manifest.js +1 -0
- package/src/dev/.next/server/server-reference-manifest.json +5 -0
- package/src/dev/.next/server/static/webpack/633457081244afec._.hot-update.json +1 -0
- package/src/dev/.next/server/vendor-chunks/@readme.js +25 -0
- package/src/dev/.next/server/vendor-chunks/@swc.js +55 -0
- package/src/dev/.next/server/vendor-chunks/next.js +3659 -0
- package/src/dev/.next/server/webpack-runtime.js +209 -0
- package/src/dev/.next/static/chunks/app/[...slug]/loading.js +28 -0
- package/src/dev/.next/static/chunks/app/[...slug]/page.js +28 -0
- package/src/dev/.next/static/chunks/app/layout.js +171 -0
- package/src/dev/.next/static/chunks/app/page.js +28 -0
- package/src/dev/.next/static/chunks/app-pages-internals.js +182 -0
- package/src/dev/.next/static/chunks/main-app.js +1882 -0
- package/src/dev/.next/static/chunks/polyfills.js +1 -0
- package/src/dev/.next/static/chunks/webpack.js +1393 -0
- package/src/dev/.next/static/css/app/layout.css +559 -0
- package/src/dev/.next/static/development/_buildManifest.js +1 -0
- package/src/dev/.next/static/development/_ssgManifest.js +1 -0
- package/src/dev/.next/static/webpack/633457081244afec._.hot-update.json +1 -0
- package/src/dev/.next/static/webpack/ec52a3fce0f78db0.webpack.hot-update.json +1 -0
- package/src/dev/.next/static/webpack/webpack.ec52a3fce0f78db0.hot-update.js +12 -0
- package/src/dev/.next/trace +21 -0
- package/src/dev/.next/types/app/[...slug]/page.ts +84 -0
- package/src/dev/.next/types/app/layout.ts +84 -0
- package/src/dev/.next/types/app/page.ts +84 -0
- package/src/dev/.next/types/cache-life.d.ts +141 -0
- package/src/dev/.next/types/package.json +1 -0
- package/src/dev/.next/types/routes.d.ts +55 -0
- package/src/dev/app/Sidebar.js +149 -0
- package/src/dev/app/[...slug]/loading.js +16 -0
- package/src/dev/app/[...slug]/page.js +43 -0
- package/src/dev/app/globals.css +167 -0
- package/src/dev/app/layout.js +73 -0
- package/src/dev/app/page.js +19 -0
- package/src/dev/lib/docs.js +337 -0
- package/src/dev/middleware.js +7 -0
- package/src/dev/next.config.mjs +22 -0
- package/src/index.js +12 -0
- package/src/prompts/index.js +352 -0
- package/src/utils/claude.js +15 -0
- package/src/utils/eyes.js +365 -0
- package/src/utils/git.js +143 -0
- package/src/utils/lint.js +99 -0
- package/src/utils/reporter.js +319 -0
- package/src/utils/setup-templates.js +323 -0
- package/src/utils/styles.js +50 -0
- package/src/utils/tamagotchi.js +1139 -0
- package/src/utils/tips.js +90 -0
- package/src/validators/components.js +230 -0
- package/src/validators/content.js +53 -0
- package/src/validators/duplicates.js +45 -0
- package/src/validators/frontmatter.js +247 -0
- package/src/validators/links.js +68 -0
- package/src/validators/nesting.js +50 -0
- package/src/validators/numbering.js +136 -0
- package/src/validators/oas-reference.js +126 -0
- package/src/validators/oas-schema.js +106 -0
- package/src/validators/ordering.js +121 -0
- package/src/validators/recipes.js +143 -0
- package/vendor/TOOLS.md +19 -0
|
@@ -0,0 +1,360 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* ATTENTION: An "eval-source-map" devtool has been used.
|
|
3
|
+
* This devtool is neither made for production nor for readable output files.
|
|
4
|
+
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
|
|
5
|
+
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
|
|
6
|
+
* or disable the default devtool with "devtool: false".
|
|
7
|
+
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
|
|
8
|
+
*/
|
|
9
|
+
(() => {
|
|
10
|
+
var exports = {};
|
|
11
|
+
exports.id = "app/[...slug]/page";
|
|
12
|
+
exports.ids = ["app/[...slug]/page"];
|
|
13
|
+
exports.modules = {
|
|
14
|
+
|
|
15
|
+
/***/ "(rsc)/../../node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2F%5B...slug%5D%2Fpage&page=%2F%5B...slug%5D%2Fpage&appPaths=%2F%5B...slug%5D%2Fpage&pagePath=private-next-app-dir%2F%5B...slug%5D%2Fpage.js&appDir=%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fsrc%2Fdev%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fsrc%2Fdev&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D&isGlobalNotFoundEnabled=!":
|
|
16
|
+
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
17
|
+
!*** ../../node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2F%5B...slug%5D%2Fpage&page=%2F%5B...slug%5D%2Fpage&appPaths=%2F%5B...slug%5D%2Fpage&pagePath=private-next-app-dir%2F%5B...slug%5D%2Fpage.js&appDir=%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fsrc%2Fdev%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fsrc%2Fdev&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D&isGlobalNotFoundEnabled=! ***!
|
|
18
|
+
\**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
19
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
20
|
+
|
|
21
|
+
"use strict";
|
|
22
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ GlobalError: () => (/* reexport default from dynamic */ next_dist_client_components_builtin_global_error_js__WEBPACK_IMPORTED_MODULE_25___default.a),\n/* harmony export */ __next_app__: () => (/* binding */ __next_app__),\n/* harmony export */ handler: () => (/* binding */ handler),\n/* harmony export */ pages: () => (/* binding */ pages),\n/* harmony export */ routeModule: () => (/* binding */ routeModule),\n/* harmony export */ tree: () => (/* binding */ tree)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/route-modules/app-page/module.compiled */ \"(ssr)/../../node_modules/next/dist/server/route-modules/app-page/module.compiled.js?ca56\");\n/* harmony import */ var next_dist_server_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/route-kind */ \"(rsc)/../../node_modules/next/dist/server/route-kind.js\");\n/* harmony import */ var next_dist_server_instrumentation_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/server/instrumentation/utils */ \"(rsc)/../../node_modules/next/dist/server/instrumentation/utils.js\");\n/* harmony import */ var next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/dist/server/lib/trace/tracer */ \"(rsc)/../../node_modules/next/dist/server/lib/trace/tracer.js\");\n/* harmony import */ var next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! next/dist/server/request-meta */ \"(rsc)/../../node_modules/next/dist/server/request-meta.js\");\n/* harmony import */ var next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! next/dist/server/lib/trace/constants */ \"(rsc)/../../node_modules/next/dist/server/lib/trace/constants.js\");\n/* harmony import */ var next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var next_dist_server_app_render_interop_default__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! next/dist/server/app-render/interop-default */ \"(rsc)/../../node_modules/next/dist/server/app-render/interop-default.js\");\n/* harmony import */ var next_dist_server_app_render_strip_flight_headers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! next/dist/server/app-render/strip-flight-headers */ \"(rsc)/../../node_modules/next/dist/server/app-render/strip-flight-headers.js\");\n/* harmony import */ var next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! next/dist/server/base-http/node */ \"(rsc)/../../node_modules/next/dist/server/base-http/node.js\");\n/* harmony import */ var next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var next_dist_server_lib_experimental_ppr__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! next/dist/server/lib/experimental/ppr */ \"(rsc)/../../node_modules/next/dist/server/lib/experimental/ppr.js\");\n/* harmony import */ var next_dist_server_lib_experimental_ppr__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_experimental_ppr__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var next_dist_server_request_fallback_params__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! next/dist/server/request/fallback-params */ \"(rsc)/../../node_modules/next/dist/server/request/fallback-params.js\");\n/* harmony import */ var next_dist_server_app_render_encryption_utils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! next/dist/server/app-render/encryption-utils */ \"(rsc)/../../node_modules/next/dist/server/app-render/encryption-utils.js\");\n/* harmony import */ var next_dist_server_app_render_encryption_utils__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_app_render_encryption_utils__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var next_dist_server_lib_streaming_metadata__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! next/dist/server/lib/streaming-metadata */ \"(rsc)/../../node_modules/next/dist/server/lib/streaming-metadata.js\");\n/* harmony import */ var next_dist_server_lib_streaming_metadata__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_streaming_metadata__WEBPACK_IMPORTED_MODULE_12__);\n/* harmony import */ var next_dist_server_app_render_action_utils__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! next/dist/server/app-render/action-utils */ \"(rsc)/../../node_modules/next/dist/server/app-render/action-utils.js\");\n/* harmony import */ var next_dist_server_app_render_action_utils__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_app_render_action_utils__WEBPACK_IMPORTED_MODULE_13__);\n/* harmony import */ var next_dist_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! next/dist/shared/lib/router/utils/app-paths */ \"next/dist/shared/lib/router/utils/app-paths\");\n/* harmony import */ var next_dist_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_14__);\n/* harmony import */ var next_dist_server_lib_server_action_request_meta__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! next/dist/server/lib/server-action-request-meta */ \"(rsc)/../../node_modules/next/dist/server/lib/server-action-request-meta.js\");\n/* harmony import */ var next_dist_server_lib_server_action_request_meta__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_server_action_request_meta__WEBPACK_IMPORTED_MODULE_15__);\n/* harmony import */ var next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! next/dist/client/components/app-router-headers */ \"(rsc)/../../node_modules/next/dist/client/components/app-router-headers.js\");\n/* harmony import */ var next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_16__);\n/* harmony import */ var next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! next/dist/shared/lib/router/utils/is-bot */ \"next/dist/shared/lib/router/utils/is-bot\");\n/* harmony import */ var next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_17__);\n/* harmony import */ var next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! next/dist/server/response-cache */ \"(rsc)/../../node_modules/next/dist/server/response-cache/index.js\");\n/* harmony import */ var next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_18__);\n/* harmony import */ var next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! next/dist/lib/fallback */ \"(rsc)/../../node_modules/next/dist/lib/fallback.js\");\n/* harmony import */ var next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_19__);\n/* harmony import */ var next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! next/dist/server/render-result */ \"(rsc)/../../node_modules/next/dist/server/render-result.js\");\n/* harmony import */ var next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! next/dist/lib/constants */ \"(rsc)/../../node_modules/next/dist/lib/constants.js\");\n/* harmony import */ var next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_21__);\n/* harmony import */ var next_dist_server_stream_utils_encoded_tags__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! next/dist/server/stream-utils/encoded-tags */ \"(rsc)/../../node_modules/next/dist/server/stream-utils/encoded-tags.js\");\n/* harmony import */ var next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! next/dist/server/send-payload */ \"(rsc)/../../node_modules/next/dist/server/send-payload.js\");\n/* harmony import */ var next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__);\n/* harmony import */ var next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! next/dist/shared/lib/no-fallback-error.external */ \"next/dist/shared/lib/no-fallback-error.external\");\n/* harmony import */ var next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_24___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_24__);\n/* harmony import */ var next_dist_client_components_builtin_global_error_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! next/dist/client/components/builtin/global-error.js */ \"(rsc)/../../node_modules/next/dist/client/components/builtin/global-error.js\");\n/* harmony import */ var next_dist_client_components_builtin_global_error_js__WEBPACK_IMPORTED_MODULE_25___default = /*#__PURE__*/__webpack_require__.n(next_dist_client_components_builtin_global_error_js__WEBPACK_IMPORTED_MODULE_25__);\n/* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! next/dist/server/app-render/entry-base */ \"(rsc)/../../node_modules/next/dist/server/app-render/entry-base.js\");\n/* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_26___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_26__);\n/* harmony import */ var next_dist_client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! next/dist/client/components/redirect-status-code */ \"(rsc)/../../node_modules/next/dist/client/components/redirect-status-code.js\");\n/* harmony import */ var next_dist_client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_27___default = /*#__PURE__*/__webpack_require__.n(next_dist_client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_27__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_26__) if([\"default\",\"tree\",\"pages\",\"GlobalError\",\"__next_app__\",\"routeModule\",\"handler\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_26__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\nconst module0 = () => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/layout.js */ \"(rsc)/./app/layout.js\"));\nconst module1 = () => Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! next/dist/client/components/builtin/global-error.js */ \"(rsc)/../../node_modules/next/dist/client/components/builtin/global-error.js\", 23));\nconst module2 = () => Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! next/dist/client/components/builtin/not-found.js */ \"(rsc)/../../node_modules/next/dist/client/components/builtin/not-found.js\", 23));\nconst module3 = () => Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! next/dist/client/components/builtin/forbidden.js */ \"(rsc)/../../node_modules/next/dist/client/components/builtin/forbidden.js\", 23));\nconst module4 = () => Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! next/dist/client/components/builtin/unauthorized.js */ \"(rsc)/../../node_modules/next/dist/client/components/builtin/unauthorized.js\", 23));\nconst module5 = () => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/[...slug]/loading.js */ \"(rsc)/./app/[...slug]/loading.js\"));\nconst page6 = () => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/[...slug]/page.js */ \"(rsc)/./app/[...slug]/page.js\"));\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// We inject the tree and pages here so that we can use them in the route\n// module.\nconst tree = {\n children: [\n '',\n {\n children: [\n '[...slug]',\n {\n children: ['__PAGE__', {}, {\n page: [page6, \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/[...slug]/page.js\"],\n \n }]\n },\n {\n 'loading': [module5, \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/[...slug]/loading.js\"],\n \n }\n ]\n },\n {\n 'layout': [module0, \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/layout.js\"],\n'global-error': [module1, \"next/dist/client/components/builtin/global-error.js\"],\n'not-found': [module2, \"next/dist/client/components/builtin/not-found.js\"],\n'forbidden': [module3, \"next/dist/client/components/builtin/forbidden.js\"],\n'unauthorized': [module4, \"next/dist/client/components/builtin/unauthorized.js\"],\n \n }\n ]\n }.children;\nconst pages = [\"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/[...slug]/page.js\"];\n\n\n\nconst __next_app_require__ = __webpack_require__\nconst __next_app_load_chunk__ = () => Promise.resolve()\nconst __next_app__ = {\n require: __next_app_require__,\n loadChunk: __next_app_load_chunk__\n};\n\n\n\n// Create and export the route module that will be consumed.\nconst routeModule = new next_dist_server_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__.AppPageRouteModule({\n definition: {\n kind: next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_PAGE,\n page: \"/[...slug]/page\",\n pathname: \"/[...slug]\",\n // The following aren't used in production.\n bundlePath: '',\n filename: '',\n appPaths: []\n },\n userland: {\n loaderTree: tree\n },\n distDir: \".next\" || 0,\n relativeProjectDir: \"../../../Users/gkoberger/Sites/readme/2026-readme-cli/src/dev\" || 0\n});\nasync function handler(req, res, ctx) {\n var _this;\n let srcPage = \"/[...slug]/page\";\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (false) {} else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/';\n }\n const multiZoneDraftMode = false;\n const initialPostponed = (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'postponed');\n // TODO: replace with more specific flags\n const minimalMode = (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'minimalMode');\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode\n });\n if (!prepareResult) {\n res.statusCode = 400;\n res.end('Bad Request');\n ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());\n return null;\n }\n const { buildId, query, params, parsedUrl, pageIsDynamic, buildManifest, nextFontManifest, reactLoadableManifest, serverActionsManifest, clientReferenceManifest, subresourceIntegrityManifest, prerenderManifest, isDraftMode, resolvedPathname, revalidateOnlyGenerated, routerServerContext, nextConfig, interceptionRoutePatterns } = prepareResult;\n const pathname = parsedUrl.pathname || '/';\n const normalizedSrcPage = (0,next_dist_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_14__.normalizeAppPath)(srcPage);\n let { isOnDemandRevalidate } = prepareResult;\n const prerenderInfo = routeModule.match(pathname, prerenderManifest);\n const isPrerendered = !!prerenderManifest.routes[resolvedPathname];\n let isSSG = Boolean(prerenderInfo || isPrerendered || prerenderManifest.routes[normalizedSrcPage]);\n const userAgent = req.headers['user-agent'] || '';\n const botType = (0,next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_17__.getBotType)(userAgent);\n const isHtmlBot = (0,next_dist_server_lib_streaming_metadata__WEBPACK_IMPORTED_MODULE_12__.isHtmlBotRequest)(req);\n /**\n * If true, this indicates that the request being made is for an app\n * prefetch request.\n */ const isPrefetchRSCRequest = (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'isPrefetchRSCRequest') ?? req.headers[next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_16__.NEXT_ROUTER_PREFETCH_HEADER] === '1' // exclude runtime prefetches, which use '2'\n ;\n // NOTE: Don't delete headers[RSC] yet, it still needs to be used in renderToHTML later\n const isRSCRequest = (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'isRSCRequest') ?? Boolean(req.headers[next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_16__.RSC_HEADER]);\n const isPossibleServerAction = (0,next_dist_server_lib_server_action_request_meta__WEBPACK_IMPORTED_MODULE_15__.getIsPossibleServerAction)(req);\n /**\n * If the route being rendered is an app page, and the ppr feature has been\n * enabled, then the given route _could_ support PPR.\n */ const couldSupportPPR = (0,next_dist_server_lib_experimental_ppr__WEBPACK_IMPORTED_MODULE_9__.checkIsAppPPREnabled)(nextConfig.experimental.ppr);\n // When enabled, this will allow the use of the `?__nextppronly` query to\n // enable debugging of the static shell.\n const hasDebugStaticShellQuery = false && 0;\n // When enabled, this will allow the use of the `?__nextppronly` query\n // to enable debugging of the fallback shell.\n const hasDebugFallbackShellQuery = hasDebugStaticShellQuery && query.__nextppronly === 'fallback';\n // This page supports PPR if it is marked as being `PARTIALLY_STATIC` in the\n // prerender manifest and this is an app page.\n const isRoutePPREnabled = couldSupportPPR && (((_this = prerenderManifest.routes[normalizedSrcPage] ?? prerenderManifest.dynamicRoutes[normalizedSrcPage]) == null ? void 0 : _this.renderingMode) === 'PARTIALLY_STATIC' || // Ideally we'd want to check the appConfig to see if this page has PPR\n // enabled or not, but that would require plumbing the appConfig through\n // to the server during development. We assume that the page supports it\n // but only during development.\n hasDebugStaticShellQuery && (routeModule.isDev === true || (routerServerContext == null ? void 0 : routerServerContext.experimentalTestProxy) === true));\n const isDebugStaticShell = hasDebugStaticShellQuery && isRoutePPREnabled;\n // We should enable debugging dynamic accesses when the static shell\n // debugging has been enabled and we're also in development mode.\n const isDebugDynamicAccesses = isDebugStaticShell && routeModule.isDev === true;\n const isDebugFallbackShell = hasDebugFallbackShellQuery && isRoutePPREnabled;\n // If we're in minimal mode, then try to get the postponed information from\n // the request metadata. If available, use it for resuming the postponed\n // render.\n const minimalPostponed = isRoutePPREnabled ? initialPostponed : undefined;\n // If PPR is enabled, and this is a RSC request (but not a prefetch), then\n // we can use this fact to only generate the flight data for the request\n // because we can't cache the HTML (as it's also dynamic).\n const isDynamicRSCRequest = isRoutePPREnabled && isRSCRequest && !isPrefetchRSCRequest;\n // Need to read this before it's stripped by stripFlightHeaders. We don't\n // need to transfer it to the request meta because it's only read\n // within this function; the static segment data should have already been\n // generated, so we will always either return a static response or a 404.\n const segmentPrefetchHeader = (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'segmentPrefetchRSCRequest');\n // TODO: investigate existing bug with shouldServeStreamingMetadata always\n // being true for a revalidate due to modifying the base-server this.renderOpts\n // when fixing this to correct logic it causes hydration issue since we set\n // serveStreamingMetadata to true during export\n let serveStreamingMetadata = !userAgent ? true : (0,next_dist_server_lib_streaming_metadata__WEBPACK_IMPORTED_MODULE_12__.shouldServeStreamingMetadata)(userAgent, nextConfig.htmlLimitedBots);\n if (isHtmlBot && isRoutePPREnabled) {\n isSSG = false;\n serveStreamingMetadata = false;\n }\n // In development, we always want to generate dynamic HTML.\n let supportsDynamicResponse = // If we're in development, we always support dynamic HTML, unless it's\n // a data request, in which case we only produce static HTML.\n routeModule.isDev === true || // If this is not SSG or does not have static paths, then it supports\n // dynamic HTML.\n !isSSG || // If this request has provided postponed data, it supports dynamic\n // HTML.\n typeof initialPostponed === 'string' || // If this is a dynamic RSC request, then this render supports dynamic\n // HTML (it's dynamic).\n isDynamicRSCRequest;\n // When html bots request PPR page, perform the full dynamic rendering.\n const shouldWaitOnAllReady = isHtmlBot && isRoutePPREnabled;\n let ssgCacheKey = null;\n if (!isDraftMode && isSSG && !supportsDynamicResponse && !isPossibleServerAction && !minimalPostponed && !isDynamicRSCRequest) {\n ssgCacheKey = resolvedPathname;\n }\n // the staticPathKey differs from ssgCacheKey since\n // ssgCacheKey is null in dev since we're always in \"dynamic\"\n // mode in dev to bypass the cache, but we still need to honor\n // dynamicParams = false in dev mode\n let staticPathKey = ssgCacheKey;\n if (!staticPathKey && routeModule.isDev) {\n staticPathKey = resolvedPathname;\n }\n // If this is a request for an app path that should be statically generated\n // and we aren't in the edge runtime, strip the flight headers so it will\n // generate the static response.\n if (!routeModule.isDev && !isDraftMode && isSSG && isRSCRequest && !isDynamicRSCRequest) {\n (0,next_dist_server_app_render_strip_flight_headers__WEBPACK_IMPORTED_MODULE_7__.stripFlightHeaders)(req.headers);\n }\n const ComponentMod = {\n ...next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_26__,\n tree,\n pages,\n GlobalError: (next_dist_client_components_builtin_global_error_js__WEBPACK_IMPORTED_MODULE_25___default()),\n handler,\n routeModule,\n __next_app__\n };\n // Before rendering (which initializes component tree modules), we have to\n // set the reference manifests to our global store so Server Action's\n // encryption util can access to them at the top level of the page module.\n if (serverActionsManifest && clientReferenceManifest) {\n (0,next_dist_server_app_render_encryption_utils__WEBPACK_IMPORTED_MODULE_11__.setReferenceManifestsSingleton)({\n page: srcPage,\n clientReferenceManifest,\n serverActionsManifest,\n serverModuleMap: (0,next_dist_server_app_render_action_utils__WEBPACK_IMPORTED_MODULE_13__.createServerModuleMap)({\n serverActionsManifest\n })\n });\n }\n const method = req.method || 'GET';\n const tracer = (0,next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__.getTracer)();\n const activeSpan = tracer.getActiveScopeSpan();\n try {\n const varyHeader = routeModule.getVaryHeader(resolvedPathname, interceptionRoutePatterns);\n res.setHeader('Vary', varyHeader);\n const invokeRouteModule = async (span, context)=>{\n const nextReq = new next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_8__.NodeNextRequest(req);\n const nextRes = new next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_8__.NodeNextResponse(res);\n // TODO: adapt for putting the RDC inside the postponed data\n // If we're in dev, and this isn't a prefetch or a server action,\n // we should seed the resume data cache.\n if (true) {\n if (nextConfig.experimental.cacheComponents && !isPrefetchRSCRequest && !context.renderOpts.isPossibleServerAction) {\n const warmup = await routeModule.warmup(nextReq, nextRes, context);\n // If the warmup is successful, we should use the resume data\n // cache from the warmup.\n if (warmup.metadata.renderResumeDataCache) {\n context.renderOpts.renderResumeDataCache = warmup.metadata.renderResumeDataCache;\n }\n }\n }\n return routeModule.render(nextReq, nextRes, context).finally(()=>{\n if (!span) return;\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false\n });\n const rootSpanAttributes = tracer.getRootSpanAttributes();\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return;\n }\n if (rootSpanAttributes.get('next.span_type') !== next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_5__.BaseServerSpan.handleRequest) {\n console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`);\n return;\n }\n const route = rootSpanAttributes.get('next.route');\n if (route) {\n const name = `${method} ${route}`;\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name\n });\n span.updateName(name);\n } else {\n span.updateName(`${method} ${req.url}`);\n }\n });\n };\n const doRender = async ({ span, postponed, fallbackRouteParams })=>{\n const context = {\n query,\n params,\n page: normalizedSrcPage,\n sharedContext: {\n buildId\n },\n serverComponentsHmrCache: (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'serverComponentsHmrCache'),\n fallbackRouteParams,\n renderOpts: {\n App: ()=>null,\n Document: ()=>null,\n pageConfig: {},\n ComponentMod,\n Component: (0,next_dist_server_app_render_interop_default__WEBPACK_IMPORTED_MODULE_6__.interopDefault)(ComponentMod),\n params,\n routeModule,\n page: srcPage,\n postponed,\n shouldWaitOnAllReady,\n serveStreamingMetadata,\n supportsDynamicResponse: typeof postponed === 'string' || supportsDynamicResponse,\n buildManifest,\n nextFontManifest,\n reactLoadableManifest,\n subresourceIntegrityManifest,\n serverActionsManifest,\n clientReferenceManifest,\n setIsrStatus: routerServerContext == null ? void 0 : routerServerContext.setIsrStatus,\n dir: true ? (__webpack_require__(/*! path */ \"path\").join)(/* turbopackIgnore: true */ process.cwd(), routeModule.relativeProjectDir) : 0,\n isDraftMode,\n isRevalidate: isSSG && !postponed && !isDynamicRSCRequest,\n botType,\n isOnDemandRevalidate,\n isPossibleServerAction,\n assetPrefix: nextConfig.assetPrefix,\n nextConfigOutput: nextConfig.output,\n crossOrigin: nextConfig.crossOrigin,\n trailingSlash: nextConfig.trailingSlash,\n previewProps: prerenderManifest.preview,\n deploymentId: nextConfig.deploymentId,\n enableTainting: nextConfig.experimental.taint,\n htmlLimitedBots: nextConfig.htmlLimitedBots,\n devtoolSegmentExplorer: nextConfig.experimental.devtoolSegmentExplorer,\n reactMaxHeadersLength: nextConfig.reactMaxHeadersLength,\n multiZoneDraftMode,\n incrementalCache: (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'incrementalCache'),\n cacheLifeProfiles: nextConfig.experimental.cacheLife,\n basePath: nextConfig.basePath,\n serverActions: nextConfig.experimental.serverActions,\n ...isDebugStaticShell || isDebugDynamicAccesses ? {\n nextExport: true,\n supportsDynamicResponse: false,\n isStaticGeneration: true,\n isRevalidate: true,\n isDebugDynamicAccesses: isDebugDynamicAccesses\n } : {},\n experimental: {\n isRoutePPREnabled,\n expireTime: nextConfig.expireTime,\n staleTimes: nextConfig.experimental.staleTimes,\n cacheComponents: Boolean(nextConfig.experimental.cacheComponents),\n clientSegmentCache: Boolean(nextConfig.experimental.clientSegmentCache),\n clientParamParsing: Boolean(nextConfig.experimental.clientParamParsing),\n dynamicOnHover: Boolean(nextConfig.experimental.dynamicOnHover),\n inlineCss: Boolean(nextConfig.experimental.inlineCss),\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts),\n clientTraceMetadata: nextConfig.experimental.clientTraceMetadata || []\n },\n waitUntil: ctx.waitUntil,\n onClose: (cb)=>{\n res.on('close', cb);\n },\n onAfterTaskError: ()=>{},\n onInstrumentationRequestError: (error, _request, errorContext)=>routeModule.onRequestError(req, error, errorContext, routerServerContext),\n err: (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'invokeError'),\n dev: routeModule.isDev\n }\n };\n const result = await invokeRouteModule(span, context);\n const { metadata } = result;\n const { cacheControl, headers = {}, // Add any fetch tags that were on the page to the response headers.\n fetchTags: cacheTags } = metadata;\n if (cacheTags) {\n headers[next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_21__.NEXT_CACHE_TAGS_HEADER] = cacheTags;\n }\n // Pull any fetch metrics from the render onto the request.\n ;\n req.fetchMetrics = metadata.fetchMetrics;\n // we don't throw static to dynamic errors in dev as isSSG\n // is a best guess in dev since we don't have the prerender pass\n // to know whether the path is actually static or not\n if (isSSG && (cacheControl == null ? void 0 : cacheControl.revalidate) === 0 && !routeModule.isDev && !isRoutePPREnabled) {\n const staticBailoutInfo = metadata.staticBailoutInfo;\n const err = Object.defineProperty(new Error(`Page changed from static to dynamic at runtime ${resolvedPathname}${(staticBailoutInfo == null ? void 0 : staticBailoutInfo.description) ? `, reason: ${staticBailoutInfo.description}` : ``}` + `\\nsee more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`), \"__NEXT_ERROR_CODE\", {\n value: \"E132\",\n enumerable: false,\n configurable: true\n });\n if (staticBailoutInfo == null ? void 0 : staticBailoutInfo.stack) {\n const stack = staticBailoutInfo.stack;\n err.stack = err.message + stack.substring(stack.indexOf('\\n'));\n }\n throw err;\n }\n return {\n value: {\n kind: next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_18__.CachedRouteKind.APP_PAGE,\n html: result,\n headers,\n rscData: metadata.flightData,\n postponed: metadata.postponed,\n status: metadata.statusCode,\n segmentData: metadata.segmentData\n },\n cacheControl\n };\n };\n const responseGenerator = async ({ hasResolved, previousCacheEntry, isRevalidating, span })=>{\n const isProduction = routeModule.isDev === false;\n const didRespond = hasResolved || res.writableEnded;\n // skip on-demand revalidate if cache is not present and\n // revalidate-if-generated is set\n if (isOnDemandRevalidate && revalidateOnlyGenerated && !previousCacheEntry && !minimalMode) {\n if (routerServerContext == null ? void 0 : routerServerContext.render404) {\n await routerServerContext.render404(req, res);\n } else {\n res.statusCode = 404;\n res.end('This page could not be found');\n }\n return null;\n }\n let fallbackMode;\n if (prerenderInfo) {\n fallbackMode = (0,next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_19__.parseFallbackField)(prerenderInfo.fallback);\n }\n // When serving a HTML bot request, we want to serve a blocking render and\n // not the prerendered page. This ensures that the correct content is served\n // to the bot in the head.\n if (fallbackMode === next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_19__.FallbackMode.PRERENDER && (0,next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_17__.isBot)(userAgent)) {\n if (!isRoutePPREnabled || isHtmlBot) {\n fallbackMode = next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_19__.FallbackMode.BLOCKING_STATIC_RENDER;\n }\n }\n if ((previousCacheEntry == null ? void 0 : previousCacheEntry.isStale) === -1) {\n isOnDemandRevalidate = true;\n }\n // TODO: adapt for PPR\n // only allow on-demand revalidate for fallback: true/blocking\n // or for prerendered fallback: false paths\n if (isOnDemandRevalidate && (fallbackMode !== next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_19__.FallbackMode.NOT_FOUND || previousCacheEntry)) {\n fallbackMode = next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_19__.FallbackMode.BLOCKING_STATIC_RENDER;\n }\n if (!minimalMode && fallbackMode !== next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_19__.FallbackMode.BLOCKING_STATIC_RENDER && staticPathKey && !didRespond && !isDraftMode && pageIsDynamic && (isProduction || !isPrerendered)) {\n // if the page has dynamicParams: false and this pathname wasn't\n // prerendered trigger the no fallback handling\n if (// In development, fall through to render to handle missing\n // getStaticPaths.\n (isProduction || prerenderInfo) && // When fallback isn't present, abort this render so we 404\n fallbackMode === next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_19__.FallbackMode.NOT_FOUND) {\n throw new next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_24__.NoFallbackError();\n }\n let fallbackResponse;\n if (isRoutePPREnabled && !isRSCRequest) {\n const cacheKey = typeof (prerenderInfo == null ? void 0 : prerenderInfo.fallback) === 'string' ? prerenderInfo.fallback : isProduction ? normalizedSrcPage : null;\n // We use the response cache here to handle the revalidation and\n // management of the fallback shell.\n fallbackResponse = await routeModule.handleResponse({\n cacheKey,\n req,\n nextConfig,\n routeKind: next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_PAGE,\n isFallback: true,\n prerenderManifest,\n isRoutePPREnabled,\n responseGenerator: async ()=>doRender({\n span,\n // We pass `undefined` as rendering a fallback isn't resumed\n // here.\n postponed: undefined,\n fallbackRouteParams: // If we're in production or we're debugging the fallback\n // shell then we should postpone when dynamic params are\n // accessed.\n isProduction || isDebugFallbackShell ? (0,next_dist_server_request_fallback_params__WEBPACK_IMPORTED_MODULE_10__.getFallbackRouteParams)(normalizedSrcPage) : null\n }),\n waitUntil: ctx.waitUntil\n });\n // If the fallback response was set to null, then we should return null.\n if (fallbackResponse === null) return null;\n // Otherwise, if we did get a fallback response, we should return it.\n if (fallbackResponse) {\n // Remove the cache control from the response to prevent it from being\n // used in the surrounding cache.\n delete fallbackResponse.cacheControl;\n return fallbackResponse;\n }\n }\n }\n // Only requests that aren't revalidating can be resumed. If we have the\n // minimal postponed data, then we should resume the render with it.\n const postponed = !isOnDemandRevalidate && !isRevalidating && minimalPostponed ? minimalPostponed : undefined;\n // When we're in minimal mode, if we're trying to debug the static shell,\n // we should just return nothing instead of resuming the dynamic render.\n if ((isDebugStaticShell || isDebugDynamicAccesses) && typeof postponed !== 'undefined') {\n return {\n cacheControl: {\n revalidate: 1,\n expire: undefined\n },\n value: {\n kind: next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_18__.CachedRouteKind.PAGES,\n html: next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_20__[\"default\"].EMPTY,\n pageData: {},\n headers: undefined,\n status: undefined\n }\n };\n }\n // If this is a dynamic route with PPR enabled and the default route\n // matches were set, then we should pass the fallback route params to\n // the renderer as this is a fallback revalidation request.\n const fallbackRouteParams = pageIsDynamic && isRoutePPREnabled && ((0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'renderFallbackShell') || isDebugFallbackShell) ? (0,next_dist_server_request_fallback_params__WEBPACK_IMPORTED_MODULE_10__.getFallbackRouteParams)(pathname) : null;\n // Perform the render.\n return doRender({\n span,\n postponed,\n fallbackRouteParams\n });\n };\n const handleResponse = async (span)=>{\n var _cacheEntry_value, _cachedData_headers;\n const cacheEntry = await routeModule.handleResponse({\n cacheKey: ssgCacheKey,\n responseGenerator: (c)=>responseGenerator({\n span,\n ...c\n }),\n routeKind: next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_PAGE,\n isOnDemandRevalidate,\n isRoutePPREnabled,\n req,\n nextConfig,\n prerenderManifest,\n waitUntil: ctx.waitUntil\n });\n if (isDraftMode) {\n res.setHeader('Cache-Control', 'private, no-cache, no-store, max-age=0, must-revalidate');\n }\n // In dev, we should not cache pages for any reason.\n if (routeModule.isDev) {\n res.setHeader('Cache-Control', 'no-store, must-revalidate');\n }\n if (!cacheEntry) {\n if (ssgCacheKey) {\n // A cache entry might not be generated if a response is written\n // in `getInitialProps` or `getServerSideProps`, but those shouldn't\n // have a cache key. If we do have a cache key but we don't end up\n // with a cache entry, then either Next.js or the application has a\n // bug that needs fixing.\n throw Object.defineProperty(new Error('invariant: cache entry required but not generated'), \"__NEXT_ERROR_CODE\", {\n value: \"E62\",\n enumerable: false,\n configurable: true\n });\n }\n return null;\n }\n if (((_cacheEntry_value = cacheEntry.value) == null ? void 0 : _cacheEntry_value.kind) !== next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_18__.CachedRouteKind.APP_PAGE) {\n var _cacheEntry_value1;\n throw Object.defineProperty(new Error(`Invariant app-page handler received invalid cache entry ${(_cacheEntry_value1 = cacheEntry.value) == null ? void 0 : _cacheEntry_value1.kind}`), \"__NEXT_ERROR_CODE\", {\n value: \"E707\",\n enumerable: false,\n configurable: true\n });\n }\n const didPostpone = typeof cacheEntry.value.postponed === 'string';\n if (isSSG && // We don't want to send a cache header for requests that contain dynamic\n // data. If this is a Dynamic RSC request or wasn't a Prefetch RSC\n // request, then we should set the cache header.\n !isDynamicRSCRequest && (!didPostpone || isPrefetchRSCRequest)) {\n if (!minimalMode) {\n // set x-nextjs-cache header to match the header\n // we set for the image-optimizer\n res.setHeader('x-nextjs-cache', isOnDemandRevalidate ? 'REVALIDATED' : cacheEntry.isMiss ? 'MISS' : cacheEntry.isStale ? 'STALE' : 'HIT');\n }\n // Set a header used by the client router to signal the response is static\n // and should respect the `static` cache staleTime value.\n res.setHeader(next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_16__.NEXT_IS_PRERENDER_HEADER, '1');\n }\n const { value: cachedData } = cacheEntry;\n // Coerce the cache control parameter from the render.\n let cacheControl;\n // If this is a resume request in minimal mode it is streamed with dynamic\n // content and should not be cached.\n if (minimalPostponed) {\n cacheControl = {\n revalidate: 0,\n expire: undefined\n };\n } else if (minimalMode && isRSCRequest && !isPrefetchRSCRequest && isRoutePPREnabled) {\n cacheControl = {\n revalidate: 0,\n expire: undefined\n };\n } else if (!routeModule.isDev) {\n // If this is a preview mode request, we shouldn't cache it\n if (isDraftMode) {\n cacheControl = {\n revalidate: 0,\n expire: undefined\n };\n } else if (!isSSG) {\n if (!res.getHeader('Cache-Control')) {\n cacheControl = {\n revalidate: 0,\n expire: undefined\n };\n }\n } else if (cacheEntry.cacheControl) {\n // If the cache entry has a cache control with a revalidate value that's\n // a number, use it.\n if (typeof cacheEntry.cacheControl.revalidate === 'number') {\n var _cacheEntry_cacheControl;\n if (cacheEntry.cacheControl.revalidate < 1) {\n throw Object.defineProperty(new Error(`Invalid revalidate configuration provided: ${cacheEntry.cacheControl.revalidate} < 1`), \"__NEXT_ERROR_CODE\", {\n value: \"E22\",\n enumerable: false,\n configurable: true\n });\n }\n cacheControl = {\n revalidate: cacheEntry.cacheControl.revalidate,\n expire: ((_cacheEntry_cacheControl = cacheEntry.cacheControl) == null ? void 0 : _cacheEntry_cacheControl.expire) ?? nextConfig.expireTime\n };\n } else {\n cacheControl = {\n revalidate: next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_21__.CACHE_ONE_YEAR,\n expire: undefined\n };\n }\n }\n }\n cacheEntry.cacheControl = cacheControl;\n if (typeof segmentPrefetchHeader === 'string' && (cachedData == null ? void 0 : cachedData.kind) === next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_18__.CachedRouteKind.APP_PAGE && cachedData.segmentData) {\n var _cachedData_headers1;\n // This is a prefetch request issued by the client Segment Cache. These\n // should never reach the application layer (lambda). We should either\n // respond from the cache (HIT) or respond with 204 No Content (MISS).\n // Set a header to indicate that PPR is enabled for this route. This\n // lets the client distinguish between a regular cache miss and a cache\n // miss due to PPR being disabled. In other contexts this header is used\n // to indicate that the response contains dynamic data, but here we're\n // only using it to indicate that the feature is enabled — the segment\n // response itself contains whether the data is dynamic.\n res.setHeader(next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_16__.NEXT_DID_POSTPONE_HEADER, '2');\n // Add the cache tags header to the response if it exists and we're in\n // minimal mode while rendering a static page.\n const tags = (_cachedData_headers1 = cachedData.headers) == null ? void 0 : _cachedData_headers1[next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_21__.NEXT_CACHE_TAGS_HEADER];\n if (minimalMode && isSSG && tags && typeof tags === 'string') {\n res.setHeader(next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_21__.NEXT_CACHE_TAGS_HEADER, tags);\n }\n const matchedSegment = cachedData.segmentData.get(segmentPrefetchHeader);\n if (matchedSegment !== undefined) {\n // Cache hit\n return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__.sendRenderResult)({\n req,\n res,\n generateEtags: nextConfig.generateEtags,\n poweredByHeader: nextConfig.poweredByHeader,\n result: next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_20__[\"default\"].fromStatic(matchedSegment, next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_16__.RSC_CONTENT_TYPE_HEADER),\n cacheControl: cacheEntry.cacheControl\n });\n }\n // Cache miss. Either a cache entry for this route has not been generated\n // (which technically should not be possible when PPR is enabled, because\n // at a minimum there should always be a fallback entry) or there's no\n // match for the requested segment. Respond with a 204 No Content. We\n // don't bother to respond with 404, because these requests are only\n // issued as part of a prefetch.\n res.statusCode = 204;\n return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__.sendRenderResult)({\n req,\n res,\n generateEtags: nextConfig.generateEtags,\n poweredByHeader: nextConfig.poweredByHeader,\n result: next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_20__[\"default\"].EMPTY,\n cacheControl: cacheEntry.cacheControl\n });\n }\n // If there's a callback for `onCacheEntry`, call it with the cache entry\n // and the revalidate options.\n const onCacheEntry = (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'onCacheEntry');\n if (onCacheEntry) {\n const finished = await onCacheEntry({\n ...cacheEntry,\n // TODO: remove this when upstream doesn't\n // always expect this value to be \"PAGE\"\n value: {\n ...cacheEntry.value,\n kind: 'PAGE'\n }\n }, {\n url: (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'initURL')\n });\n if (finished) {\n // TODO: maybe we have to end the request?\n return null;\n }\n }\n // If the request has a postponed state and it's a resume request we\n // should error.\n if (didPostpone && minimalPostponed) {\n throw Object.defineProperty(new Error('Invariant: postponed state should not be present on a resume request'), \"__NEXT_ERROR_CODE\", {\n value: \"E396\",\n enumerable: false,\n configurable: true\n });\n }\n if (cachedData.headers) {\n const headers = {\n ...cachedData.headers\n };\n if (!minimalMode || !isSSG) {\n delete headers[next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_21__.NEXT_CACHE_TAGS_HEADER];\n }\n for (let [key, value] of Object.entries(headers)){\n if (typeof value === 'undefined') continue;\n if (Array.isArray(value)) {\n for (const v of value){\n res.appendHeader(key, v);\n }\n } else if (typeof value === 'number') {\n value = value.toString();\n res.appendHeader(key, value);\n } else {\n res.appendHeader(key, value);\n }\n }\n }\n // Add the cache tags header to the response if it exists and we're in\n // minimal mode while rendering a static page.\n const tags = (_cachedData_headers = cachedData.headers) == null ? void 0 : _cachedData_headers[next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_21__.NEXT_CACHE_TAGS_HEADER];\n if (minimalMode && isSSG && tags && typeof tags === 'string') {\n res.setHeader(next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_21__.NEXT_CACHE_TAGS_HEADER, tags);\n }\n // If the request is a data request, then we shouldn't set the status code\n // from the response because it should always be 200. This should be gated\n // behind the experimental PPR flag.\n if (cachedData.status && (!isRSCRequest || !isRoutePPREnabled)) {\n res.statusCode = cachedData.status;\n }\n // Redirect information is encoded in RSC payload, so we don't need to use redirect status codes\n if (!minimalMode && cachedData.status && next_dist_client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_27__.RedirectStatusCode[cachedData.status] && isRSCRequest) {\n res.statusCode = 200;\n }\n // Mark that the request did postpone.\n if (didPostpone) {\n res.setHeader(next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_16__.NEXT_DID_POSTPONE_HEADER, '1');\n }\n // we don't go through this block when preview mode is true\n // as preview mode is a dynamic request (bypasses cache) and doesn't\n // generate both HTML and payloads in the same request so continue to just\n // return the generated payload\n if (isRSCRequest && !isDraftMode) {\n // If this is a dynamic RSC request, then stream the response.\n if (typeof cachedData.rscData === 'undefined') {\n if (cachedData.postponed) {\n throw Object.defineProperty(new Error('Invariant: Expected postponed to be undefined'), \"__NEXT_ERROR_CODE\", {\n value: \"E372\",\n enumerable: false,\n configurable: true\n });\n }\n return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__.sendRenderResult)({\n req,\n res,\n generateEtags: nextConfig.generateEtags,\n poweredByHeader: nextConfig.poweredByHeader,\n result: cachedData.html,\n // Dynamic RSC responses cannot be cached, even if they're\n // configured with `force-static` because we have no way of\n // distinguishing between `force-static` and pages that have no\n // postponed state.\n // TODO: distinguish `force-static` from pages with no postponed state (static)\n cacheControl: isDynamicRSCRequest ? {\n revalidate: 0,\n expire: undefined\n } : cacheEntry.cacheControl\n });\n }\n // As this isn't a prefetch request, we should serve the static flight\n // data.\n return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__.sendRenderResult)({\n req,\n res,\n generateEtags: nextConfig.generateEtags,\n poweredByHeader: nextConfig.poweredByHeader,\n result: next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_20__[\"default\"].fromStatic(cachedData.rscData, next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_16__.RSC_CONTENT_TYPE_HEADER),\n cacheControl: cacheEntry.cacheControl\n });\n }\n // This is a request for HTML data.\n let body = cachedData.html;\n // If there's no postponed state, we should just serve the HTML. This\n // should also be the case for a resume request because it's completed\n // as a server render (rather than a static render).\n if (!didPostpone || minimalMode || isRSCRequest) {\n // If we're in test mode, we should add a sentinel chunk to the response\n // that's between the static and dynamic parts so we can compare the\n // chunks and add assertions.\n if (false) {}\n return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__.sendRenderResult)({\n req,\n res,\n generateEtags: nextConfig.generateEtags,\n poweredByHeader: nextConfig.poweredByHeader,\n result: body,\n cacheControl: cacheEntry.cacheControl\n });\n }\n // If we're debugging the static shell or the dynamic API accesses, we\n // should just serve the HTML without resuming the render. The returned\n // HTML will be the static shell so all the Dynamic API's will be used\n // during static generation.\n if (isDebugStaticShell || isDebugDynamicAccesses) {\n // Since we're not resuming the render, we need to at least add the\n // closing body and html tags to create valid HTML.\n body.push(new ReadableStream({\n start (controller) {\n controller.enqueue(next_dist_server_stream_utils_encoded_tags__WEBPACK_IMPORTED_MODULE_22__.ENCODED_TAGS.CLOSED.BODY_AND_HTML);\n controller.close();\n }\n }));\n return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__.sendRenderResult)({\n req,\n res,\n generateEtags: nextConfig.generateEtags,\n poweredByHeader: nextConfig.poweredByHeader,\n result: body,\n cacheControl: {\n revalidate: 0,\n expire: undefined\n }\n });\n }\n // If we're in test mode, we should add a sentinel chunk to the response\n // that's between the static and dynamic parts so we can compare the\n // chunks and add assertions.\n if (false) {}\n // This request has postponed, so let's create a new transformer that the\n // dynamic data can pipe to that will attach the dynamic data to the end\n // of the response.\n const transformer = new TransformStream();\n body.push(transformer.readable);\n // Perform the render again, but this time, provide the postponed state.\n // We don't await because we want the result to start streaming now, and\n // we've already chained the transformer's readable to the render result.\n doRender({\n span,\n postponed: cachedData.postponed,\n // This is a resume render, not a fallback render, so we don't need to\n // set this.\n fallbackRouteParams: null\n }).then(async (result)=>{\n var _result_value;\n if (!result) {\n throw Object.defineProperty(new Error('Invariant: expected a result to be returned'), \"__NEXT_ERROR_CODE\", {\n value: \"E463\",\n enumerable: false,\n configurable: true\n });\n }\n if (((_result_value = result.value) == null ? void 0 : _result_value.kind) !== next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_18__.CachedRouteKind.APP_PAGE) {\n var _result_value1;\n throw Object.defineProperty(new Error(`Invariant: expected a page response, got ${(_result_value1 = result.value) == null ? void 0 : _result_value1.kind}`), \"__NEXT_ERROR_CODE\", {\n value: \"E305\",\n enumerable: false,\n configurable: true\n });\n }\n // Pipe the resume result to the transformer.\n await result.value.html.pipeTo(transformer.writable);\n }).catch((err)=>{\n // An error occurred during piping or preparing the render, abort\n // the transformers writer so we can terminate the stream.\n transformer.writable.abort(err).catch((e)=>{\n console.error(\"couldn't abort transformer\", e);\n });\n });\n return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_23__.sendRenderResult)({\n req,\n res,\n generateEtags: nextConfig.generateEtags,\n poweredByHeader: nextConfig.poweredByHeader,\n result: body,\n // We don't want to cache the response if it has postponed data because\n // the response being sent to the client it's dynamic parts are streamed\n // to the client on the same request.\n cacheControl: {\n revalidate: 0,\n expire: undefined\n }\n });\n };\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (activeSpan) {\n await handleResponse(activeSpan);\n } else {\n return await tracer.withPropagatedContext(req.headers, ()=>tracer.trace(next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_5__.BaseServerSpan.handleRequest, {\n spanName: `${method} ${req.url}`,\n kind: next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__.SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url\n }\n }, handleResponse));\n }\n } catch (err) {\n if (!(err instanceof next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_24__.NoFallbackError)) {\n await routeModule.onRequestError(req, err, {\n routerKind: 'App Router',\n routePath: srcPage,\n routeType: 'render',\n revalidateReason: (0,next_dist_server_instrumentation_utils__WEBPACK_IMPORTED_MODULE_2__.getRevalidateReason)({\n isRevalidate: isSSG,\n isOnDemandRevalidate\n })\n }, routerServerContext);\n }\n // rethrow so that we can handle serving error page\n throw err;\n }\n}\n// TODO: omit this from production builds, only test builds should include it\n/**\n * Creates a readable stream that emits a PPR boundary sentinel.\n *\n * @returns A readable stream that emits a PPR boundary sentinel.\n */ function createPPRBoundarySentinel() {\n return new ReadableStream({\n start (controller) {\n controller.enqueue(new TextEncoder().encode('<!-- PPR_BOUNDARY_SENTINEL -->'));\n controller.close();\n }\n });\n}\n\n//# sourceMappingURL=app-page.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvbmV4dC1hcHAtbG9hZGVyL2luZGV4LmpzP25hbWU9YXBwJTJGJTVCLi4uc2x1ZyU1RCUyRnBhZ2UmcGFnZT0lMkYlNUIuLi5zbHVnJTVEJTJGcGFnZSZhcHBQYXRocz0lMkYlNUIuLi5zbHVnJTVEJTJGcGFnZSZwYWdlUGF0aD1wcml2YXRlLW5leHQtYXBwLWRpciUyRiU1Qi4uLnNsdWclNUQlMkZwYWdlLmpzJmFwcERpcj0lMkZVc2VycyUyRmdrb2JlcmdlciUyRlNpdGVzJTJGcmVhZG1lJTJGMjAyNi1yZWFkbWUtY2xpJTJGc3JjJTJGZGV2JTJGYXBwJnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMmcm9vdERpcj0lMkZVc2VycyUyRmdrb2JlcmdlciUyRlNpdGVzJTJGcmVhZG1lJTJGMjAyNi1yZWFkbWUtY2xpJTJGc3JjJTJGZGV2JmlzRGV2PXRydWUmdHNjb25maWdQYXRoPXRzY29uZmlnLmpzb24mYmFzZVBhdGg9JmFzc2V0UHJlZml4PSZuZXh0Q29uZmlnT3V0cHV0PSZwcmVmZXJyZWRSZWdpb249Jm1pZGRsZXdhcmVDb25maWc9ZTMwJTNEJmlzR2xvYmFsTm90Rm91bmRFbmFibGVkPSEiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHNCQUFzQiwwSUFBd0c7QUFDOUgsc0JBQXNCLDJPQUF3RjtBQUM5RyxzQkFBc0IscU9BQXFGO0FBQzNHLHNCQUFzQixxT0FBcUY7QUFDM0csc0JBQXNCLDJPQUF3RjtBQUM5RyxzQkFBc0IsZ0tBQW1IO0FBQ3pJLG9CQUFvQiwwSkFBZ0g7QUFHbEk7QUFHQTtBQUMyRTtBQUNMO0FBQ1Q7QUFDTztBQUNPO0FBQ1M7QUFDRjtBQUNQO0FBQ0s7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Q0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVixvRkFBb0YsZ0ZBQWM7QUFDbEcsaUNBQWlDLFFBQVEsRUFBRSxRQUFRO0FBQ25ELDBCQUEwQix1RUFBUTtBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLE1BQU07QUFDTiw2QkFBNkIsNkZBQWU7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0MsMkZBQW1CO0FBQ3JEO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakIsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBIiwic291cmNlcyI6WyIiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgbW9kdWxlMCA9ICgpID0+IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL2drb2Jlcmdlci9TaXRlcy9yZWFkbWUvMjAyNi1yZWFkbWUtY2xpL3NyYy9kZXYvYXBwL2xheW91dC5qc1wiKTtcbmNvbnN0IG1vZHVsZTEgPSAoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIm5leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9idWlsdGluL2dsb2JhbC1lcnJvci5qc1wiKTtcbmNvbnN0IG1vZHVsZTIgPSAoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIm5leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9idWlsdGluL25vdC1mb3VuZC5qc1wiKTtcbmNvbnN0IG1vZHVsZTMgPSAoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIm5leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9idWlsdGluL2ZvcmJpZGRlbi5qc1wiKTtcbmNvbnN0IG1vZHVsZTQgPSAoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIm5leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9idWlsdGluL3VuYXV0aG9yaXplZC5qc1wiKTtcbmNvbnN0IG1vZHVsZTUgPSAoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9na29iZXJnZXIvU2l0ZXMvcmVhZG1lLzIwMjYtcmVhZG1lLWNsaS9zcmMvZGV2L2FwcC9bLi4uc2x1Z10vbG9hZGluZy5qc1wiKTtcbmNvbnN0IHBhZ2U2ID0gKCkgPT4gaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvZ2tvYmVyZ2VyL1NpdGVzL3JlYWRtZS8yMDI2LXJlYWRtZS1jbGkvc3JjL2Rldi9hcHAvWy4uLnNsdWddL3BhZ2UuanNcIik7XG5pbXBvcnQgeyBBcHBQYWdlUm91dGVNb2R1bGUgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL21vZHVsZS5jb21waWxlZFwiIHdpdGgge1xuICAgICd0dXJib3BhY2stdHJhbnNpdGlvbic6ICduZXh0LXNzcidcbn07XG5pbXBvcnQgeyBSb3V0ZUtpbmQgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1raW5kXCIgd2l0aCB7XG4gICAgJ3R1cmJvcGFjay10cmFuc2l0aW9uJzogJ25leHQtc2VydmVyLXV0aWxpdHknXG59O1xuaW1wb3J0IHsgZ2V0UmV2YWxpZGF0ZVJlYXNvbiB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2luc3RydW1lbnRhdGlvbi91dGlsc1wiO1xuaW1wb3J0IHsgZ2V0VHJhY2VyLCBTcGFuS2luZCB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2xpYi90cmFjZS90cmFjZXJcIjtcbmltcG9ydCB7IGdldFJlcXVlc3RNZXRhIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvcmVxdWVzdC1tZXRhXCI7XG5pbXBvcnQgeyBCYXNlU2VydmVyU3BhbiB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2xpYi90cmFjZS9jb25zdGFudHNcIjtcbmltcG9ydCB7IGludGVyb3BEZWZhdWx0IH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvYXBwLXJlbmRlci9pbnRlcm9wLWRlZmF1bHRcIjtcbmltcG9ydCB7IHN0cmlwRmxpZ2h0SGVhZGVycyB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2FwcC1yZW5kZXIvc3RyaXAtZmxpZ2h0LWhlYWRlcnNcIjtcbmltcG9ydCB7IE5vZGVOZXh0UmVxdWVzdCwgTm9kZU5leHRSZXNwb25zZSB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2Jhc2UtaHR0cC9ub2RlXCI7XG5pbXBvcnQgeyBjaGVja0lzQXBwUFBSRW5hYmxlZCB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2xpYi9leHBlcmltZW50YWwvcHByXCI7XG5pbXBvcnQgeyBnZXRGYWxsYmFja1JvdXRlUGFyYW1zIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvcmVxdWVzdC9mYWxsYmFjay1wYXJhbXNcIjtcbmltcG9ydCB7IHNldFJlZmVyZW5jZU1hbmlmZXN0c1NpbmdsZXRvbiB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2FwcC1yZW5kZXIvZW5jcnlwdGlvbi11dGlsc1wiO1xuaW1wb3J0IHsgaXNIdG1sQm90UmVxdWVzdCwgc2hvdWxkU2VydmVTdHJlYW1pbmdNZXRhZGF0YSB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2xpYi9zdHJlYW1pbmctbWV0YWRhdGFcIjtcbmltcG9ydCB7IGNyZWF0ZVNlcnZlck1vZHVsZU1hcCB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2FwcC1yZW5kZXIvYWN0aW9uLXV0aWxzXCI7XG5pbXBvcnQgeyBub3JtYWxpemVBcHBQYXRoIH0gZnJvbSBcIm5leHQvZGlzdC9zaGFyZWQvbGliL3JvdXRlci91dGlscy9hcHAtcGF0aHNcIjtcbmltcG9ydCB7IGdldElzUG9zc2libGVTZXJ2ZXJBY3Rpb24gfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9saWIvc2VydmVyLWFjdGlvbi1yZXF1ZXN0LW1ldGFcIjtcbmltcG9ydCB7IFJTQ19IRUFERVIsIE5FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUiwgTkVYVF9JU19QUkVSRU5ERVJfSEVBREVSLCBORVhUX0RJRF9QT1NUUE9ORV9IRUFERVIsIFJTQ19DT05URU5UX1RZUEVfSEVBREVSIH0gZnJvbSBcIm5leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9hcHAtcm91dGVyLWhlYWRlcnNcIjtcbmltcG9ydCB7IGdldEJvdFR5cGUsIGlzQm90IH0gZnJvbSBcIm5leHQvZGlzdC9zaGFyZWQvbGliL3JvdXRlci91dGlscy9pcy1ib3RcIjtcbmltcG9ydCB7IENhY2hlZFJvdXRlS2luZCB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL3Jlc3BvbnNlLWNhY2hlXCI7XG5pbXBvcnQgeyBGYWxsYmFja01vZGUsIHBhcnNlRmFsbGJhY2tGaWVsZCB9IGZyb20gXCJuZXh0L2Rpc3QvbGliL2ZhbGxiYWNrXCI7XG5pbXBvcnQgUmVuZGVyUmVzdWx0IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL3JlbmRlci1yZXN1bHRcIjtcbmltcG9ydCB7IENBQ0hFX09ORV9ZRUFSLCBIVE1MX0NPTlRFTlRfVFlQRV9IRUFERVIsIE5FWFRfQ0FDSEVfVEFHU19IRUFERVIgfSBmcm9tIFwibmV4dC9kaXN0L2xpYi9jb25zdGFudHNcIjtcbmltcG9ydCB7IEVOQ09ERURfVEFHUyB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL3N0cmVhbS11dGlscy9lbmNvZGVkLXRhZ3NcIjtcbmltcG9ydCB7IHNlbmRSZW5kZXJSZXN1bHQgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9zZW5kLXBheWxvYWRcIjtcbmltcG9ydCB7IE5vRmFsbGJhY2tFcnJvciB9IGZyb20gXCJuZXh0L2Rpc3Qvc2hhcmVkL2xpYi9uby1mYWxsYmFjay1lcnJvci5leHRlcm5hbFwiO1xuLy8gV2UgaW5qZWN0IHRoZSB0cmVlIGFuZCBwYWdlcyBoZXJlIHNvIHRoYXQgd2UgY2FuIHVzZSB0aGVtIGluIHRoZSByb3V0ZVxuLy8gbW9kdWxlLlxuY29uc3QgdHJlZSA9IHtcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgJycsXG4gICAgICAgIHtcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgJ1suLi5zbHVnXScsXG4gICAgICAgIHtcbiAgICAgICAgY2hpbGRyZW46IFsnX19QQUdFX18nLCB7fSwge1xuICAgICAgICAgIHBhZ2U6IFtwYWdlNiwgXCIvVXNlcnMvZ2tvYmVyZ2VyL1NpdGVzL3JlYWRtZS8yMDI2LXJlYWRtZS1jbGkvc3JjL2Rldi9hcHAvWy4uLnNsdWddL3BhZ2UuanNcIl0sXG4gICAgICAgICAgXG4gICAgICAgIH1dXG4gICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICdsb2FkaW5nJzogW21vZHVsZTUsIFwiL1VzZXJzL2drb2Jlcmdlci9TaXRlcy9yZWFkbWUvMjAyNi1yZWFkbWUtY2xpL3NyYy9kZXYvYXBwL1suLi5zbHVnXS9sb2FkaW5nLmpzXCJdLFxuICAgICAgICBcbiAgICAgIH1cbiAgICAgIF1cbiAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgJ2xheW91dCc6IFttb2R1bGUwLCBcIi9Vc2Vycy9na29iZXJnZXIvU2l0ZXMvcmVhZG1lLzIwMjYtcmVhZG1lLWNsaS9zcmMvZGV2L2FwcC9sYXlvdXQuanNcIl0sXG4nZ2xvYmFsLWVycm9yJzogW21vZHVsZTEsIFwibmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2J1aWx0aW4vZ2xvYmFsLWVycm9yLmpzXCJdLFxuJ25vdC1mb3VuZCc6IFttb2R1bGUyLCBcIm5leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9idWlsdGluL25vdC1mb3VuZC5qc1wiXSxcbidmb3JiaWRkZW4nOiBbbW9kdWxlMywgXCJuZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvYnVpbHRpbi9mb3JiaWRkZW4uanNcIl0sXG4ndW5hdXRob3JpemVkJzogW21vZHVsZTQsIFwibmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2J1aWx0aW4vdW5hdXRob3JpemVkLmpzXCJdLFxuICAgICAgICBcbiAgICAgIH1cbiAgICAgIF1cbiAgICAgIH0uY2hpbGRyZW47XG5jb25zdCBwYWdlcyA9IFtcIi9Vc2Vycy9na29iZXJnZXIvU2l0ZXMvcmVhZG1lLzIwMjYtcmVhZG1lLWNsaS9zcmMvZGV2L2FwcC9bLi4uc2x1Z10vcGFnZS5qc1wiXTtcbmV4cG9ydCB7IHRyZWUsIHBhZ2VzIH07XG5pbXBvcnQgR2xvYmFsRXJyb3IgZnJvbSBcIm5leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9idWlsdGluL2dsb2JhbC1lcnJvci5qc1wiIHdpdGgge1xuICAgICd0dXJib3BhY2stdHJhbnNpdGlvbic6ICduZXh0LXNlcnZlci11dGlsaXR5J1xufTtcbmV4cG9ydCB7IEdsb2JhbEVycm9yIH07XG5jb25zdCBfX25leHRfYXBwX3JlcXVpcmVfXyA9IF9fd2VicGFja19yZXF1aXJlX19cbmNvbnN0IF9fbmV4dF9hcHBfbG9hZF9jaHVua19fID0gKCkgPT4gUHJvbWlzZS5yZXNvbHZlKClcbmV4cG9ydCBjb25zdCBfX25leHRfYXBwX18gPSB7XG4gICAgcmVxdWlyZTogX19uZXh0X2FwcF9yZXF1aXJlX18sXG4gICAgbG9hZENodW5rOiBfX25leHRfYXBwX2xvYWRfY2h1bmtfX1xufTtcbmltcG9ydCAqIGFzIGVudHJ5QmFzZSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2VudHJ5LWJhc2VcIiB3aXRoIHtcbiAgICAndHVyYm9wYWNrLXRyYW5zaXRpb24nOiAnbmV4dC1zZXJ2ZXItdXRpbGl0eSdcbn07XG5pbXBvcnQgeyBSZWRpcmVjdFN0YXR1c0NvZGUgfSBmcm9tIFwibmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LXN0YXR1cy1jb2RlXCI7XG5leHBvcnQgKiBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2VudHJ5LWJhc2VcIiB3aXRoIHtcbiAgICAndHVyYm9wYWNrLXRyYW5zaXRpb24nOiAnbmV4dC1zZXJ2ZXItdXRpbGl0eSdcbn07XG4vLyBDcmVhdGUgYW5kIGV4cG9ydCB0aGUgcm91dGUgbW9kdWxlIHRoYXQgd2lsbCBiZSBjb25zdW1lZC5cbmV4cG9ydCBjb25zdCByb3V0ZU1vZHVsZSA9IG5ldyBBcHBQYWdlUm91dGVNb2R1bGUoe1xuICAgIGRlZmluaXRpb246IHtcbiAgICAgICAga2luZDogUm91dGVLaW5kLkFQUF9QQUdFLFxuICAgICAgICBwYWdlOiBcIi9bLi4uc2x1Z10vcGFnZVwiLFxuICAgICAgICBwYXRobmFtZTogXCIvWy4uLnNsdWddXCIsXG4gICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgYXJlbid0IHVzZWQgaW4gcHJvZHVjdGlvbi5cbiAgICAgICAgYnVuZGxlUGF0aDogJycsXG4gICAgICAgIGZpbGVuYW1lOiAnJyxcbiAgICAgICAgYXBwUGF0aHM6IFtdXG4gICAgfSxcbiAgICB1c2VybGFuZDoge1xuICAgICAgICBsb2FkZXJUcmVlOiB0cmVlXG4gICAgfSxcbiAgICBkaXN0RGlyOiBwcm9jZXNzLmVudi5fX05FWFRfUkVMQVRJVkVfRElTVF9ESVIgfHwgJycsXG4gICAgcmVsYXRpdmVQcm9qZWN0RGlyOiBwcm9jZXNzLmVudi5fX05FWFRfUkVMQVRJVkVfUFJPSkVDVF9ESVIgfHwgJydcbn0pO1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGhhbmRsZXIocmVxLCByZXMsIGN0eCkge1xuICAgIHZhciBfdGhpcztcbiAgICBsZXQgc3JjUGFnZSA9IFwiL1suLi5zbHVnXS9wYWdlXCI7XG4gICAgLy8gdHVyYm9wYWNrIGRvZXNuJ3Qgbm9ybWFsaXplIGAvaW5kZXhgIGluIHRoZSBwYWdlIG5hbWVcbiAgICAvLyBzbyB3ZSBuZWVkIHRvIHRvIHByb2Nlc3MgZHluYW1pYyByb3V0ZXMgcHJvcGVybHlcbiAgICAvLyBUT0RPOiBmaXggdHVyYm9wYWNrIHByb3ZpZGluZyBkaWZmZXJpbmcgdmFsdWUgZnJvbSB3ZWJwYWNrXG4gICAgaWYgKHByb2Nlc3MuZW52LlRVUkJPUEFDSykge1xuICAgICAgICBzcmNQYWdlID0gc3JjUGFnZS5yZXBsYWNlKC9cXC9pbmRleCQvLCAnJykgfHwgJy8nO1xuICAgIH0gZWxzZSBpZiAoc3JjUGFnZSA9PT0gJy9pbmRleCcpIHtcbiAgICAgICAgLy8gd2UgYWx3YXlzIG5vcm1hbGl6ZSAvaW5kZXggc3BlY2lmaWNhbGx5XG4gICAgICAgIHNyY1BhZ2UgPSAnLyc7XG4gICAgfVxuICAgIGNvbnN0IG11bHRpWm9uZURyYWZ0TW9kZSA9IHByb2Nlc3MuZW52Ll9fTkVYVF9NVUxUSV9aT05FX0RSQUZUX01PREU7XG4gICAgY29uc3QgaW5pdGlhbFBvc3Rwb25lZCA9IGdldFJlcXVlc3RNZXRhKHJlcSwgJ3Bvc3Rwb25lZCcpO1xuICAgIC8vIFRPRE86IHJlcGxhY2Ugd2l0aCBtb3JlIHNwZWNpZmljIGZsYWdzXG4gICAgY29uc3QgbWluaW1hbE1vZGUgPSBnZXRSZXF1ZXN0TWV0YShyZXEsICdtaW5pbWFsTW9kZScpO1xuICAgIGNvbnN0IHByZXBhcmVSZXN1bHQgPSBhd2FpdCByb3V0ZU1vZHVsZS5wcmVwYXJlKHJlcSwgcmVzLCB7XG4gICAgICAgIHNyY1BhZ2UsXG4gICAgICAgIG11bHRpWm9uZURyYWZ0TW9kZVxuICAgIH0pO1xuICAgIGlmICghcHJlcGFyZVJlc3VsdCkge1xuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwMDtcbiAgICAgICAgcmVzLmVuZCgnQmFkIFJlcXVlc3QnKTtcbiAgICAgICAgY3R4LndhaXRVbnRpbCA9PSBudWxsID8gdm9pZCAwIDogY3R4LndhaXRVbnRpbC5jYWxsKGN0eCwgUHJvbWlzZS5yZXNvbHZlKCkpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgeyBidWlsZElkLCBxdWVyeSwgcGFyYW1zLCBwYXJzZWRVcmwsIHBhZ2VJc0R5bmFtaWMsIGJ1aWxkTWFuaWZlc3QsIG5leHRGb250TWFuaWZlc3QsIHJlYWN0TG9hZGFibGVNYW5pZmVzdCwgc2VydmVyQWN0aW9uc01hbmlmZXN0LCBjbGllbnRSZWZlcmVuY2VNYW5pZmVzdCwgc3VicmVzb3VyY2VJbnRlZ3JpdHlNYW5pZmVzdCwgcHJlcmVuZGVyTWFuaWZlc3QsIGlzRHJhZnRNb2RlLCByZXNvbHZlZFBhdGhuYW1lLCByZXZhbGlkYXRlT25seUdlbmVyYXRlZCwgcm91dGVyU2VydmVyQ29udGV4dCwgbmV4dENvbmZpZywgaW50ZXJjZXB0aW9uUm91dGVQYXR0ZXJucyB9ID0gcHJlcGFyZVJlc3VsdDtcbiAgICBjb25zdCBwYXRobmFtZSA9IHBhcnNlZFVybC5wYXRobmFtZSB8fCAnLyc7XG4gICAgY29uc3Qgbm9ybWFsaXplZFNyY1BhZ2UgPSBub3JtYWxpemVBcHBQYXRoKHNyY1BhZ2UpO1xuICAgIGxldCB7IGlzT25EZW1hbmRSZXZhbGlkYXRlIH0gPSBwcmVwYXJlUmVzdWx0O1xuICAgIGNvbnN0IHByZXJlbmRlckluZm8gPSByb3V0ZU1vZHVsZS5tYXRjaChwYXRobmFtZSwgcHJlcmVuZGVyTWFuaWZlc3QpO1xuICAgIGNvbnN0IGlzUHJlcmVuZGVyZWQgPSAhIXByZXJlbmRlck1hbmlmZXN0LnJvdXRlc1tyZXNvbHZlZFBhdGhuYW1lXTtcbiAgICBsZXQgaXNTU0cgPSBCb29sZWFuKHByZXJlbmRlckluZm8gfHwgaXNQcmVyZW5kZXJlZCB8fCBwcmVyZW5kZXJNYW5pZmVzdC5yb3V0ZXNbbm9ybWFsaXplZFNyY1BhZ2VdKTtcbiAgICBjb25zdCB1c2VyQWdlbnQgPSByZXEuaGVhZGVyc1sndXNlci1hZ2VudCddIHx8ICcnO1xuICAgIGNvbnN0IGJvdFR5cGUgPSBnZXRCb3RUeXBlKHVzZXJBZ2VudCk7XG4gICAgY29uc3QgaXNIdG1sQm90ID0gaXNIdG1sQm90UmVxdWVzdChyZXEpO1xuICAgIC8qKlxuICAgKiBJZiB0cnVlLCB0aGlzIGluZGljYXRlcyB0aGF0IHRoZSByZXF1ZXN0IGJlaW5nIG1hZGUgaXMgZm9yIGFuIGFwcFxuICAgKiBwcmVmZXRjaCByZXF1ZXN0LlxuICAgKi8gY29uc3QgaXNQcmVmZXRjaFJTQ1JlcXVlc3QgPSBnZXRSZXF1ZXN0TWV0YShyZXEsICdpc1ByZWZldGNoUlNDUmVxdWVzdCcpID8/IHJlcS5oZWFkZXJzW05FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUl0gPT09ICcxJyAvLyBleGNsdWRlIHJ1bnRpbWUgcHJlZmV0Y2hlcywgd2hpY2ggdXNlICcyJ1xuICAgIDtcbiAgICAvLyBOT1RFOiBEb24ndCBkZWxldGUgaGVhZGVyc1tSU0NdIHlldCwgaXQgc3RpbGwgbmVlZHMgdG8gYmUgdXNlZCBpbiByZW5kZXJUb0hUTUwgbGF0ZXJcbiAgICBjb25zdCBpc1JTQ1JlcXVlc3QgPSBnZXRSZXF1ZXN0TWV0YShyZXEsICdpc1JTQ1JlcXVlc3QnKSA/PyBCb29sZWFuKHJlcS5oZWFkZXJzW1JTQ19IRUFERVJdKTtcbiAgICBjb25zdCBpc1Bvc3NpYmxlU2VydmVyQWN0aW9uID0gZ2V0SXNQb3NzaWJsZVNlcnZlckFjdGlvbihyZXEpO1xuICAgIC8qKlxuICAgKiBJZiB0aGUgcm91dGUgYmVpbmcgcmVuZGVyZWQgaXMgYW4gYXBwIHBhZ2UsIGFuZCB0aGUgcHByIGZlYXR1cmUgaGFzIGJlZW5cbiAgICogZW5hYmxlZCwgdGhlbiB0aGUgZ2l2ZW4gcm91dGUgX2NvdWxkXyBzdXBwb3J0IFBQUi5cbiAgICovIGNvbnN0IGNvdWxkU3VwcG9ydFBQUiA9IGNoZWNrSXNBcHBQUFJFbmFibGVkKG5leHRDb25maWcuZXhwZXJpbWVudGFsLnBwcik7XG4gICAgLy8gV2hlbiBlbmFibGVkLCB0aGlzIHdpbGwgYWxsb3cgdGhlIHVzZSBvZiB0aGUgYD9fX25leHRwcHJvbmx5YCBxdWVyeSB0b1xuICAgIC8vIGVuYWJsZSBkZWJ1Z2dpbmcgb2YgdGhlIHN0YXRpYyBzaGVsbC5cbiAgICBjb25zdCBoYXNEZWJ1Z1N0YXRpY1NoZWxsUXVlcnkgPSBwcm9jZXNzLmVudi5fX05FWFRfRVhQRVJJTUVOVEFMX1NUQVRJQ19TSEVMTF9ERUJVR0dJTkcgPT09ICcxJyAmJiB0eXBlb2YgcXVlcnkuX19uZXh0cHByb25seSAhPT0gJ3VuZGVmaW5lZCcgJiYgY291bGRTdXBwb3J0UFBSO1xuICAgIC8vIFdoZW4gZW5hYmxlZCwgdGhpcyB3aWxsIGFsbG93IHRoZSB1c2Ugb2YgdGhlIGA/X19uZXh0cHByb25seWAgcXVlcnlcbiAgICAvLyB0byBlbmFibGUgZGVidWdnaW5nIG9mIHRoZSBmYWxsYmFjayBzaGVsbC5cbiAgICBjb25zdCBoYXNEZWJ1Z0ZhbGxiYWNrU2hlbGxRdWVyeSA9IGhhc0RlYnVnU3RhdGljU2hlbGxRdWVyeSAmJiBxdWVyeS5fX25leHRwcHJvbmx5ID09PSAnZmFsbGJhY2snO1xuICAgIC8vIFRoaXMgcGFnZSBzdXBwb3J0cyBQUFIgaWYgaXQgaXMgbWFya2VkIGFzIGJlaW5nIGBQQVJUSUFMTFlfU1RBVElDYCBpbiB0aGVcbiAgICAvLyBwcmVyZW5kZXIgbWFuaWZlc3QgYW5kIHRoaXMgaXMgYW4gYXBwIHBhZ2UuXG4gICAgY29uc3QgaXNSb3V0ZVBQUkVuYWJsZWQgPSBjb3VsZFN1cHBvcnRQUFIgJiYgKCgoX3RoaXMgPSBwcmVyZW5kZXJNYW5pZmVzdC5yb3V0ZXNbbm9ybWFsaXplZFNyY1BhZ2VdID8/IHByZXJlbmRlck1hbmlmZXN0LmR5bmFtaWNSb3V0ZXNbbm9ybWFsaXplZFNyY1BhZ2VdKSA9PSBudWxsID8gdm9pZCAwIDogX3RoaXMucmVuZGVyaW5nTW9kZSkgPT09ICdQQVJUSUFMTFlfU1RBVElDJyB8fCAvLyBJZGVhbGx5IHdlJ2Qgd2FudCB0byBjaGVjayB0aGUgYXBwQ29uZmlnIHRvIHNlZSBpZiB0aGlzIHBhZ2UgaGFzIFBQUlxuICAgIC8vIGVuYWJsZWQgb3Igbm90LCBidXQgdGhhdCB3b3VsZCByZXF1aXJlIHBsdW1iaW5nIHRoZSBhcHBDb25maWcgdGhyb3VnaFxuICAgIC8vIHRvIHRoZSBzZXJ2ZXIgZHVyaW5nIGRldmVsb3BtZW50LiBXZSBhc3N1bWUgdGhhdCB0aGUgcGFnZSBzdXBwb3J0cyBpdFxuICAgIC8vIGJ1dCBvbmx5IGR1cmluZyBkZXZlbG9wbWVudC5cbiAgICBoYXNEZWJ1Z1N0YXRpY1NoZWxsUXVlcnkgJiYgKHJvdXRlTW9kdWxlLmlzRGV2ID09PSB0cnVlIHx8IChyb3V0ZXJTZXJ2ZXJDb250ZXh0ID09IG51bGwgPyB2b2lkIDAgOiByb3V0ZXJTZXJ2ZXJDb250ZXh0LmV4cGVyaW1lbnRhbFRlc3RQcm94eSkgPT09IHRydWUpKTtcbiAgICBjb25zdCBpc0RlYnVnU3RhdGljU2hlbGwgPSBoYXNEZWJ1Z1N0YXRpY1NoZWxsUXVlcnkgJiYgaXNSb3V0ZVBQUkVuYWJsZWQ7XG4gICAgLy8gV2Ugc2hvdWxkIGVuYWJsZSBkZWJ1Z2dpbmcgZHluYW1pYyBhY2Nlc3NlcyB3aGVuIHRoZSBzdGF0aWMgc2hlbGxcbiAgICAvLyBkZWJ1Z2dpbmcgaGFzIGJlZW4gZW5hYmxlZCBhbmQgd2UncmUgYWxzbyBpbiBkZXZlbG9wbWVudCBtb2RlLlxuICAgIGNvbnN0IGlzRGVidWdEeW5hbWljQWNjZXNzZXMgPSBpc0RlYnVnU3RhdGljU2hlbGwgJiYgcm91dGVNb2R1bGUuaXNEZXYgPT09IHRydWU7XG4gICAgY29uc3QgaXNEZWJ1Z0ZhbGxiYWNrU2hlbGwgPSBoYXNEZWJ1Z0ZhbGxiYWNrU2hlbGxRdWVyeSAmJiBpc1JvdXRlUFBSRW5hYmxlZDtcbiAgICAvLyBJZiB3ZSdyZSBpbiBtaW5pbWFsIG1vZGUsIHRoZW4gdHJ5IHRvIGdldCB0aGUgcG9zdHBvbmVkIGluZm9ybWF0aW9uIGZyb21cbiAgICAvLyB0aGUgcmVxdWVzdCBtZXRhZGF0YS4gSWYgYXZhaWxhYmxlLCB1c2UgaXQgZm9yIHJlc3VtaW5nIHRoZSBwb3N0cG9uZWRcbiAgICAvLyByZW5kZXIuXG4gICAgY29uc3QgbWluaW1hbFBvc3Rwb25lZCA9IGlzUm91dGVQUFJFbmFibGVkID8gaW5pdGlhbFBvc3Rwb25lZCA6IHVuZGVmaW5lZDtcbiAgICAvLyBJZiBQUFIgaXMgZW5hYmxlZCwgYW5kIHRoaXMgaXMgYSBSU0MgcmVxdWVzdCAoYnV0IG5vdCBhIHByZWZldGNoKSwgdGhlblxuICAgIC8vIHdlIGNhbiB1c2UgdGhpcyBmYWN0IHRvIG9ubHkgZ2VuZXJhdGUgdGhlIGZsaWdodCBkYXRhIGZvciB0aGUgcmVxdWVzdFxuICAgIC8vIGJlY2F1c2Ugd2UgY2FuJ3QgY2FjaGUgdGhlIEhUTUwgKGFzIGl0J3MgYWxzbyBkeW5hbWljKS5cbiAgICBjb25zdCBpc0R5bmFtaWNSU0NSZXF1ZXN0ID0gaXNSb3V0ZVBQUkVuYWJsZWQgJiYgaXNSU0NSZXF1ZXN0ICYmICFpc1ByZWZldGNoUlNDUmVxdWVzdDtcbiAgICAvLyBOZWVkIHRvIHJlYWQgdGhpcyBiZWZvcmUgaXQncyBzdHJpcHBlZCBieSBzdHJpcEZsaWdodEhlYWRlcnMuIFdlIGRvbid0XG4gICAgLy8gbmVlZCB0byB0cmFuc2ZlciBpdCB0byB0aGUgcmVxdWVzdCBtZXRhIGJlY2F1c2UgaXQncyBvbmx5IHJlYWRcbiAgICAvLyB3aXRoaW4gdGhpcyBmdW5jdGlvbjsgdGhlIHN0YXRpYyBzZWdtZW50IGRhdGEgc2hvdWxkIGhhdmUgYWxyZWFkeSBiZWVuXG4gICAgLy8gZ2VuZXJhdGVkLCBzbyB3ZSB3aWxsIGFsd2F5cyBlaXRoZXIgcmV0dXJuIGEgc3RhdGljIHJlc3BvbnNlIG9yIGEgNDA0LlxuICAgIGNvbnN0IHNlZ21lbnRQcmVmZXRjaEhlYWRlciA9IGdldFJlcXVlc3RNZXRhKHJlcSwgJ3NlZ21lbnRQcmVmZXRjaFJTQ1JlcXVlc3QnKTtcbiAgICAvLyBUT0RPOiBpbnZlc3RpZ2F0ZSBleGlzdGluZyBidWcgd2l0aCBzaG91bGRTZXJ2ZVN0cmVhbWluZ01ldGFkYXRhIGFsd2F5c1xuICAgIC8vIGJlaW5nIHRydWUgZm9yIGEgcmV2YWxpZGF0ZSBkdWUgdG8gbW9kaWZ5aW5nIHRoZSBiYXNlLXNlcnZlciB0aGlzLnJlbmRlck9wdHNcbiAgICAvLyB3aGVuIGZpeGluZyB0aGlzIHRvIGNvcnJlY3QgbG9naWMgaXQgY2F1c2VzIGh5ZHJhdGlvbiBpc3N1ZSBzaW5jZSB3ZSBzZXRcbiAgICAvLyBzZXJ2ZVN0cmVhbWluZ01ldGFkYXRhIHRvIHRydWUgZHVyaW5nIGV4cG9ydFxuICAgIGxldCBzZXJ2ZVN0cmVhbWluZ01ldGFkYXRhID0gIXVzZXJBZ2VudCA/IHRydWUgOiBzaG91bGRTZXJ2ZVN0cmVhbWluZ01ldGFkYXRhKHVzZXJBZ2VudCwgbmV4dENvbmZpZy5odG1sTGltaXRlZEJvdHMpO1xuICAgIGlmIChpc0h0bWxCb3QgJiYgaXNSb3V0ZVBQUkVuYWJsZWQpIHtcbiAgICAgICAgaXNTU0cgPSBmYWxzZTtcbiAgICAgICAgc2VydmVTdHJlYW1pbmdNZXRhZGF0YSA9IGZhbHNlO1xuICAgIH1cbiAgICAvLyBJbiBkZXZlbG9wbWVudCwgd2UgYWx3YXlzIHdhbnQgdG8gZ2VuZXJhdGUgZHluYW1pYyBIVE1MLlxuICAgIGxldCBzdXBwb3J0c0R5bmFtaWNSZXNwb25zZSA9IC8vIElmIHdlJ3JlIGluIGRldmVsb3BtZW50LCB3ZSBhbHdheXMgc3VwcG9ydCBkeW5hbWljIEhUTUwsIHVubGVzcyBpdCdzXG4gICAgLy8gYSBkYXRhIHJlcXVlc3QsIGluIHdoaWNoIGNhc2Ugd2Ugb25seSBwcm9kdWNlIHN0YXRpYyBIVE1MLlxuICAgIHJvdXRlTW9kdWxlLmlzRGV2ID09PSB0cnVlIHx8IC8vIElmIHRoaXMgaXMgbm90IFNTRyBvciBkb2VzIG5vdCBoYXZlIHN0YXRpYyBwYXRocywgdGhlbiBpdCBzdXBwb3J0c1xuICAgIC8vIGR5bmFtaWMgSFRNTC5cbiAgICAhaXNTU0cgfHwgLy8gSWYgdGhpcyByZXF1ZXN0IGhhcyBwcm92aWRlZCBwb3N0cG9uZWQgZGF0YSwgaXQgc3VwcG9ydHMgZHluYW1pY1xuICAgIC8vIEhUTUwuXG4gICAgdHlwZW9mIGluaXRpYWxQb3N0cG9uZWQgPT09ICdzdHJpbmcnIHx8IC8vIElmIHRoaXMgaXMgYSBkeW5hbWljIFJTQyByZXF1ZXN0LCB0aGVuIHRoaXMgcmVuZGVyIHN1cHBvcnRzIGR5bmFtaWNcbiAgICAvLyBIVE1MIChpdCdzIGR5bmFtaWMpLlxuICAgIGlzRHluYW1pY1JTQ1JlcXVlc3Q7XG4gICAgLy8gV2hlbiBodG1sIGJvdHMgcmVxdWVzdCBQUFIgcGFnZSwgcGVyZm9ybSB0aGUgZnVsbCBkeW5hbWljIHJlbmRlcmluZy5cbiAgICBjb25zdCBzaG91bGRXYWl0T25BbGxSZWFkeSA9IGlzSHRtbEJvdCAmJiBpc1JvdXRlUFBSRW5hYmxlZDtcbiAgICBsZXQgc3NnQ2FjaGVLZXkgPSBudWxsO1xuICAgIGlmICghaXNEcmFmdE1vZGUgJiYgaXNTU0cgJiYgIXN1cHBvcnRzRHluYW1pY1Jlc3BvbnNlICYmICFpc1Bvc3NpYmxlU2VydmVyQWN0aW9uICYmICFtaW5pbWFsUG9zdHBvbmVkICYmICFpc0R5bmFtaWNSU0NSZXF1ZXN0KSB7XG4gICAgICAgIHNzZ0NhY2hlS2V5ID0gcmVzb2x2ZWRQYXRobmFtZTtcbiAgICB9XG4gICAgLy8gdGhlIHN0YXRpY1BhdGhLZXkgZGlmZmVycyBmcm9tIHNzZ0NhY2hlS2V5IHNpbmNlXG4gICAgLy8gc3NnQ2FjaGVLZXkgaXMgbnVsbCBpbiBkZXYgc2luY2Ugd2UncmUgYWx3YXlzIGluIFwiZHluYW1pY1wiXG4gICAgLy8gbW9kZSBpbiBkZXYgdG8gYnlwYXNzIHRoZSBjYWNoZSwgYnV0IHdlIHN0aWxsIG5lZWQgdG8gaG9ub3JcbiAgICAvLyBkeW5hbWljUGFyYW1zID0gZmFsc2UgaW4gZGV2IG1vZGVcbiAgICBsZXQgc3RhdGljUGF0aEtleSA9IHNzZ0NhY2hlS2V5O1xuICAgIGlmICghc3RhdGljUGF0aEtleSAmJiByb3V0ZU1vZHVsZS5pc0Rldikge1xuICAgICAgICBzdGF0aWNQYXRoS2V5ID0gcmVzb2x2ZWRQYXRobmFtZTtcbiAgICB9XG4gICAgLy8gSWYgdGhpcyBpcyBhIHJlcXVlc3QgZm9yIGFuIGFwcCBwYXRoIHRoYXQgc2hvdWxkIGJlIHN0YXRpY2FsbHkgZ2VuZXJhdGVkXG4gICAgLy8gYW5kIHdlIGFyZW4ndCBpbiB0aGUgZWRnZSBydW50aW1lLCBzdHJpcCB0aGUgZmxpZ2h0IGhlYWRlcnMgc28gaXQgd2lsbFxuICAgIC8vIGdlbmVyYXRlIHRoZSBzdGF0aWMgcmVzcG9uc2UuXG4gICAgaWYgKCFyb3V0ZU1vZHVsZS5pc0RldiAmJiAhaXNEcmFmdE1vZGUgJiYgaXNTU0cgJiYgaXNSU0NSZXF1ZXN0ICYmICFpc0R5bmFtaWNSU0NSZXF1ZXN0KSB7XG4gICAgICAgIHN0cmlwRmxpZ2h0SGVhZGVycyhyZXEuaGVhZGVycyk7XG4gICAgfVxuICAgIGNvbnN0IENvbXBvbmVudE1vZCA9IHtcbiAgICAgICAgLi4uZW50cnlCYXNlLFxuICAgICAgICB0cmVlLFxuICAgICAgICBwYWdlcyxcbiAgICAgICAgR2xvYmFsRXJyb3IsXG4gICAgICAgIGhhbmRsZXIsXG4gICAgICAgIHJvdXRlTW9kdWxlLFxuICAgICAgICBfX25leHRfYXBwX19cbiAgICB9O1xuICAgIC8vIEJlZm9yZSByZW5kZXJpbmcgKHdoaWNoIGluaXRpYWxpemVzIGNvbXBvbmVudCB0cmVlIG1vZHVsZXMpLCB3ZSBoYXZlIHRvXG4gICAgLy8gc2V0IHRoZSByZWZlcmVuY2UgbWFuaWZlc3RzIHRvIG91ciBnbG9iYWwgc3RvcmUgc28gU2VydmVyIEFjdGlvbidzXG4gICAgLy8gZW5jcnlwdGlvbiB1dGlsIGNhbiBhY2Nlc3MgdG8gdGhlbSBhdCB0aGUgdG9wIGxldmVsIG9mIHRoZSBwYWdlIG1vZHVsZS5cbiAgICBpZiAoc2VydmVyQWN0aW9uc01hbmlmZXN0ICYmIGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0KSB7XG4gICAgICAgIHNldFJlZmVyZW5jZU1hbmlmZXN0c1NpbmdsZXRvbih7XG4gICAgICAgICAgICBwYWdlOiBzcmNQYWdlLFxuICAgICAgICAgICAgY2xpZW50UmVmZXJlbmNlTWFuaWZlc3QsXG4gICAgICAgICAgICBzZXJ2ZXJBY3Rpb25zTWFuaWZlc3QsXG4gICAgICAgICAgICBzZXJ2ZXJNb2R1bGVNYXA6IGNyZWF0ZVNlcnZlck1vZHVsZU1hcCh7XG4gICAgICAgICAgICAgICAgc2VydmVyQWN0aW9uc01hbmlmZXN0XG4gICAgICAgICAgICB9KVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgbWV0aG9kID0gcmVxLm1ldGhvZCB8fCAnR0VUJztcbiAgICBjb25zdCB0cmFjZXIgPSBnZXRUcmFjZXIoKTtcbiAgICBjb25zdCBhY3RpdmVTcGFuID0gdHJhY2VyLmdldEFjdGl2ZVNjb3BlU3BhbigpO1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHZhcnlIZWFkZXIgPSByb3V0ZU1vZHVsZS5nZXRWYXJ5SGVhZGVyKHJlc29sdmVkUGF0aG5hbWUsIGludGVyY2VwdGlvblJvdXRlUGF0dGVybnMpO1xuICAgICAgICByZXMuc2V0SGVhZGVyKCdWYXJ5JywgdmFyeUhlYWRlcik7XG4gICAgICAgIGNvbnN0IGludm9rZVJvdXRlTW9kdWxlID0gYXN5bmMgKHNwYW4sIGNvbnRleHQpPT57XG4gICAgICAgICAgICBjb25zdCBuZXh0UmVxID0gbmV3IE5vZGVOZXh0UmVxdWVzdChyZXEpO1xuICAgICAgICAgICAgY29uc3QgbmV4dFJlcyA9IG5ldyBOb2RlTmV4dFJlc3BvbnNlKHJlcyk7XG4gICAgICAgICAgICAvLyBUT0RPOiBhZGFwdCBmb3IgcHV0dGluZyB0aGUgUkRDIGluc2lkZSB0aGUgcG9zdHBvbmVkIGRhdGFcbiAgICAgICAgICAgIC8vIElmIHdlJ3JlIGluIGRldiwgYW5kIHRoaXMgaXNuJ3QgYSBwcmVmZXRjaCBvciBhIHNlcnZlciBhY3Rpb24sXG4gICAgICAgICAgICAvLyB3ZSBzaG91bGQgc2VlZCB0aGUgcmVzdW1lIGRhdGEgY2FjaGUuXG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgICAgICAgICBpZiAobmV4dENvbmZpZy5leHBlcmltZW50YWwuY2FjaGVDb21wb25lbnRzICYmICFpc1ByZWZldGNoUlNDUmVxdWVzdCAmJiAhY29udGV4dC5yZW5kZXJPcHRzLmlzUG9zc2libGVTZXJ2ZXJBY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2FybXVwID0gYXdhaXQgcm91dGVNb2R1bGUud2FybXVwKG5leHRSZXEsIG5leHRSZXMsIGNvbnRleHQpO1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgd2FybXVwIGlzIHN1Y2Nlc3NmdWwsIHdlIHNob3VsZCB1c2UgdGhlIHJlc3VtZSBkYXRhXG4gICAgICAgICAgICAgICAgICAgIC8vIGNhY2hlIGZyb20gdGhlIHdhcm11cC5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHdhcm11cC5tZXRhZGF0YS5yZW5kZXJSZXN1bWVEYXRhQ2FjaGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQucmVuZGVyT3B0cy5yZW5kZXJSZXN1bWVEYXRhQ2FjaGUgPSB3YXJtdXAubWV0YWRhdGEucmVuZGVyUmVzdW1lRGF0YUNhY2hlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJvdXRlTW9kdWxlLnJlbmRlcihuZXh0UmVxLCBuZXh0UmVzLCBjb250ZXh0KS5maW5hbGx5KCgpPT57XG4gICAgICAgICAgICAgICAgaWYgKCFzcGFuKSByZXR1cm47XG4gICAgICAgICAgICAgICAgc3Bhbi5zZXRBdHRyaWJ1dGVzKHtcbiAgICAgICAgICAgICAgICAgICAgJ2h0dHAuc3RhdHVzX2NvZGUnOiByZXMuc3RhdHVzQ29kZSxcbiAgICAgICAgICAgICAgICAgICAgJ25leHQucnNjJzogZmFsc2VcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjb25zdCByb290U3BhbkF0dHJpYnV0ZXMgPSB0cmFjZXIuZ2V0Um9vdFNwYW5BdHRyaWJ1dGVzKCk7XG4gICAgICAgICAgICAgICAgLy8gV2Ugd2VyZSB1bmFibGUgdG8gZ2V0IGF0dHJpYnV0ZXMsIHByb2JhYmx5IE9URUwgaXMgbm90IGVuYWJsZWRcbiAgICAgICAgICAgICAgICBpZiAoIXJvb3RTcGFuQXR0cmlidXRlcykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChyb290U3BhbkF0dHJpYnV0ZXMuZ2V0KCduZXh0LnNwYW5fdHlwZScpICE9PSBCYXNlU2VydmVyU3Bhbi5oYW5kbGVSZXF1ZXN0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgVW5leHBlY3RlZCByb290IHNwYW4gdHlwZSAnJHtyb290U3BhbkF0dHJpYnV0ZXMuZ2V0KCduZXh0LnNwYW5fdHlwZScpfScuIFBsZWFzZSByZXBvcnQgdGhpcyBOZXh0LmpzIGlzc3VlIGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qc2ApO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRlID0gcm9vdFNwYW5BdHRyaWJ1dGVzLmdldCgnbmV4dC5yb3V0ZScpO1xuICAgICAgICAgICAgICAgIGlmIChyb3V0ZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuYW1lID0gYCR7bWV0aG9kfSAke3JvdXRlfWA7XG4gICAgICAgICAgICAgICAgICAgIHNwYW4uc2V0QXR0cmlidXRlcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAnbmV4dC5yb3V0ZSc6IHJvdXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2h0dHAucm91dGUnOiByb3V0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICduZXh0LnNwYW5fbmFtZSc6IG5hbWVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHNwYW4udXBkYXRlTmFtZShuYW1lKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzcGFuLnVwZGF0ZU5hbWUoYCR7bWV0aG9kfSAke3JlcS51cmx9YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGRvUmVuZGVyID0gYXN5bmMgKHsgc3BhbiwgcG9zdHBvbmVkLCBmYWxsYmFja1JvdXRlUGFyYW1zIH0pPT57XG4gICAgICAgICAgICBjb25zdCBjb250ZXh0ID0ge1xuICAgICAgICAgICAgICAgIHF1ZXJ5LFxuICAgICAgICAgICAgICAgIHBhcmFtcyxcbiAgICAgICAgICAgICAgICBwYWdlOiBub3JtYWxpemVkU3JjUGFnZSxcbiAgICAgICAgICAgICAgICBzaGFyZWRDb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgIGJ1aWxkSWRcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNlcnZlckNvbXBvbmVudHNIbXJDYWNoZTogZ2V0UmVxdWVzdE1ldGEocmVxLCAnc2VydmVyQ29tcG9uZW50c0htckNhY2hlJyksXG4gICAgICAgICAgICAgICAgZmFsbGJhY2tSb3V0ZVBhcmFtcyxcbiAgICAgICAgICAgICAgICByZW5kZXJPcHRzOiB7XG4gICAgICAgICAgICAgICAgICAgIEFwcDogKCk9Pm51bGwsXG4gICAgICAgICAgICAgICAgICAgIERvY3VtZW50OiAoKT0+bnVsbCxcbiAgICAgICAgICAgICAgICAgICAgcGFnZUNvbmZpZzoge30sXG4gICAgICAgICAgICAgICAgICAgIENvbXBvbmVudE1vZCxcbiAgICAgICAgICAgICAgICAgICAgQ29tcG9uZW50OiBpbnRlcm9wRGVmYXVsdChDb21wb25lbnRNb2QpLFxuICAgICAgICAgICAgICAgICAgICBwYXJhbXMsXG4gICAgICAgICAgICAgICAgICAgIHJvdXRlTW9kdWxlLFxuICAgICAgICAgICAgICAgICAgICBwYWdlOiBzcmNQYWdlLFxuICAgICAgICAgICAgICAgICAgICBwb3N0cG9uZWQsXG4gICAgICAgICAgICAgICAgICAgIHNob3VsZFdhaXRPbkFsbFJlYWR5LFxuICAgICAgICAgICAgICAgICAgICBzZXJ2ZVN0cmVhbWluZ01ldGFkYXRhLFxuICAgICAgICAgICAgICAgICAgICBzdXBwb3J0c0R5bmFtaWNSZXNwb25zZTogdHlwZW9mIHBvc3Rwb25lZCA9PT0gJ3N0cmluZycgfHwgc3VwcG9ydHNEeW5hbWljUmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgICAgIGJ1aWxkTWFuaWZlc3QsXG4gICAgICAgICAgICAgICAgICAgIG5leHRGb250TWFuaWZlc3QsXG4gICAgICAgICAgICAgICAgICAgIHJlYWN0TG9hZGFibGVNYW5pZmVzdCxcbiAgICAgICAgICAgICAgICAgICAgc3VicmVzb3VyY2VJbnRlZ3JpdHlNYW5pZmVzdCxcbiAgICAgICAgICAgICAgICAgICAgc2VydmVyQWN0aW9uc01hbmlmZXN0LFxuICAgICAgICAgICAgICAgICAgICBjbGllbnRSZWZlcmVuY2VNYW5pZmVzdCxcbiAgICAgICAgICAgICAgICAgICAgc2V0SXNyU3RhdHVzOiByb3V0ZXJTZXJ2ZXJDb250ZXh0ID09IG51bGwgPyB2b2lkIDAgOiByb3V0ZXJTZXJ2ZXJDb250ZXh0LnNldElzclN0YXR1cyxcbiAgICAgICAgICAgICAgICAgICAgZGlyOiBwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdub2RlanMnID8gcmVxdWlyZSgncGF0aCcpLmpvaW4oLyogdHVyYm9wYWNrSWdub3JlOiB0cnVlICovIHByb2Nlc3MuY3dkKCksIHJvdXRlTW9kdWxlLnJlbGF0aXZlUHJvamVjdERpcikgOiBgJHtwcm9jZXNzLmN3ZCgpfS8ke3JvdXRlTW9kdWxlLnJlbGF0aXZlUHJvamVjdERpcn1gLFxuICAgICAgICAgICAgICAgICAgICBpc0RyYWZ0TW9kZSxcbiAgICAgICAgICAgICAgICAgICAgaXNSZXZhbGlkYXRlOiBpc1NTRyAmJiAhcG9zdHBvbmVkICYmICFpc0R5bmFtaWNSU0NSZXF1ZXN0LFxuICAgICAgICAgICAgICAgICAgICBib3RUeXBlLFxuICAgICAgICAgICAgICAgICAgICBpc09uRGVtYW5kUmV2YWxpZGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgaXNQb3NzaWJsZVNlcnZlckFjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgYXNzZXRQcmVmaXg6IG5leHRDb25maWcuYXNzZXRQcmVmaXgsXG4gICAgICAgICAgICAgICAgICAgIG5leHRDb25maWdPdXRwdXQ6IG5leHRDb25maWcub3V0cHV0LFxuICAgICAgICAgICAgICAgICAgICBjcm9zc09yaWdpbjogbmV4dENvbmZpZy5jcm9zc09yaWdpbixcbiAgICAgICAgICAgICAgICAgICAgdHJhaWxpbmdTbGFzaDogbmV4dENvbmZpZy50cmFpbGluZ1NsYXNoLFxuICAgICAgICAgICAgICAgICAgICBwcmV2aWV3UHJvcHM6IHByZXJlbmRlck1hbmlmZXN0LnByZXZpZXcsXG4gICAgICAgICAgICAgICAgICAgIGRlcGxveW1lbnRJZDogbmV4dENvbmZpZy5kZXBsb3ltZW50SWQsXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZVRhaW50aW5nOiBuZXh0Q29uZmlnLmV4cGVyaW1lbnRhbC50YWludCxcbiAgICAgICAgICAgICAgICAgICAgaHRtbExpbWl0ZWRCb3RzOiBuZXh0Q29uZmlnLmh0bWxMaW1pdGVkQm90cyxcbiAgICAgICAgICAgICAgICAgICAgZGV2dG9vbFNlZ21lbnRFeHBsb3JlcjogbmV4dENvbmZpZy5leHBlcmltZW50YWwuZGV2dG9vbFNlZ21lbnRFeHBsb3JlcixcbiAgICAgICAgICAgICAgICAgICAgcmVhY3RNYXhIZWFkZXJzTGVuZ3RoOiBuZXh0Q29uZmlnLnJlYWN0TWF4SGVhZGVyc0xlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgbXVsdGlab25lRHJhZnRNb2RlLFxuICAgICAgICAgICAgICAgICAgICBpbmNyZW1lbnRhbENhY2hlOiBnZXRSZXF1ZXN0TWV0YShyZXEsICdpbmNyZW1lbnRhbENhY2hlJyksXG4gICAgICAgICAgICAgICAgICAgIGNhY2hlTGlmZVByb2ZpbGVzOiBuZXh0Q29uZmlnLmV4cGVyaW1lbnRhbC5jYWNoZUxpZmUsXG4gICAgICAgICAgICAgICAgICAgIGJhc2VQYXRoOiBuZXh0Q29uZmlnLmJhc2VQYXRoLFxuICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJBY3Rpb25zOiBuZXh0Q29uZmlnLmV4cGVyaW1lbnRhbC5zZXJ2ZXJBY3Rpb25zLFxuICAgICAgICAgICAgICAgICAgICAuLi5pc0RlYnVnU3RhdGljU2hlbGwgfHwgaXNEZWJ1Z0R5bmFtaWNBY2Nlc3NlcyA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5leHRFeHBvcnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0c0R5bmFtaWNSZXNwb25zZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc1N0YXRpY0dlbmVyYXRpb246IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc1JldmFsaWRhdGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0RlYnVnRHluYW1pY0FjY2Vzc2VzOiBpc0RlYnVnRHluYW1pY0FjY2Vzc2VzXG4gICAgICAgICAgICAgICAgICAgIH0gOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgZXhwZXJpbWVudGFsOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpc1JvdXRlUFBSRW5hYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZVRpbWU6IG5leHRDb25maWcuZXhwaXJlVGltZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YWxlVGltZXM6IG5leHRDb25maWcuZXhwZXJpbWVudGFsLnN0YWxlVGltZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWNoZUNvbXBvbmVudHM6IEJvb2xlYW4obmV4dENvbmZpZy5leHBlcmltZW50YWwuY2FjaGVDb21wb25lbnRzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudFNlZ21lbnRDYWNoZTogQm9vbGVhbihuZXh0Q29uZmlnLmV4cGVyaW1lbnRhbC5jbGllbnRTZWdtZW50Q2FjaGUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50UGFyYW1QYXJzaW5nOiBCb29sZWFuKG5leHRDb25maWcuZXhwZXJpbWVudGFsLmNsaWVudFBhcmFtUGFyc2luZyksXG4gICAgICAgICAgICAgICAgICAgICAgICBkeW5hbWljT25Ib3ZlcjogQm9vbGVhbihuZXh0Q29uZmlnLmV4cGVyaW1lbnRhbC5keW5hbWljT25Ib3ZlciksXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmxpbmVDc3M6IEJvb2xlYW4obmV4dENvbmZpZy5leHBlcmltZW50YWwuaW5saW5lQ3NzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhJbnRlcnJ1cHRzOiBCb29sZWFuKG5leHRDb25maWcuZXhwZXJpbWVudGFsLmF1dGhJbnRlcnJ1cHRzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudFRyYWNlTWV0YWRhdGE6IG5leHRDb25maWcuZXhwZXJpbWVudGFsLmNsaWVudFRyYWNlTWV0YWRhdGEgfHwgW11cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgd2FpdFVudGlsOiBjdHgud2FpdFVudGlsLFxuICAgICAgICAgICAgICAgICAgICBvbkNsb3NlOiAoY2IpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICByZXMub24oJ2Nsb3NlJywgY2IpO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBvbkFmdGVyVGFza0Vycm9yOiAoKT0+e30sXG4gICAgICAgICAgICAgICAgICAgIG9uSW5zdHJ1bWVudGF0aW9uUmVxdWVzdEVycm9yOiAoZXJyb3IsIF9yZXF1ZXN0LCBlcnJvckNvbnRleHQpPT5yb3V0ZU1vZHVsZS5vblJlcXVlc3RFcnJvcihyZXEsIGVycm9yLCBlcnJvckNvbnRleHQsIHJvdXRlclNlcnZlckNvbnRleHQpLFxuICAgICAgICAgICAgICAgICAgICBlcnI6IGdldFJlcXVlc3RNZXRhKHJlcSwgJ2ludm9rZUVycm9yJyksXG4gICAgICAgICAgICAgICAgICAgIGRldjogcm91dGVNb2R1bGUuaXNEZXZcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgaW52b2tlUm91dGVNb2R1bGUoc3BhbiwgY29udGV4dCk7XG4gICAgICAgICAgICBjb25zdCB7IG1ldGFkYXRhIH0gPSByZXN1bHQ7XG4gICAgICAgICAgICBjb25zdCB7IGNhY2hlQ29udHJvbCwgaGVhZGVycyA9IHt9LCAvLyBBZGQgYW55IGZldGNoIHRhZ3MgdGhhdCB3ZXJlIG9uIHRoZSBwYWdlIHRvIHRoZSByZXNwb25zZSBoZWFkZXJzLlxuICAgICAgICAgICAgZmV0Y2hUYWdzOiBjYWNoZVRhZ3MgfSA9IG1ldGFkYXRhO1xuICAgICAgICAgICAgaWYgKGNhY2hlVGFncykge1xuICAgICAgICAgICAgICAgIGhlYWRlcnNbTkVYVF9DQUNIRV9UQUdTX0hFQURFUl0gPSBjYWNoZVRhZ3M7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBQdWxsIGFueSBmZXRjaCBtZXRyaWNzIGZyb20gdGhlIHJlbmRlciBvbnRvIHRoZSByZXF1ZXN0LlxuICAgICAgICAgICAgO1xuICAgICAgICAgICAgcmVxLmZldGNoTWV0cmljcyA9IG1ldGFkYXRhLmZldGNoTWV0cmljcztcbiAgICAgICAgICAgIC8vIHdlIGRvbid0IHRocm93IHN0YXRpYyB0byBkeW5hbWljIGVycm9ycyBpbiBkZXYgYXMgaXNTU0dcbiAgICAgICAgICAgIC8vIGlzIGEgYmVzdCBndWVzcyBpbiBkZXYgc2luY2Ugd2UgZG9uJ3QgaGF2ZSB0aGUgcHJlcmVuZGVyIHBhc3NcbiAgICAgICAgICAgIC8vIHRvIGtub3cgd2hldGhlciB0aGUgcGF0aCBpcyBhY3R1YWxseSBzdGF0aWMgb3Igbm90XG4gICAgICAgICAgICBpZiAoaXNTU0cgJiYgKGNhY2hlQ29udHJvbCA9PSBudWxsID8gdm9pZCAwIDogY2FjaGVDb250cm9sLnJldmFsaWRhdGUpID09PSAwICYmICFyb3V0ZU1vZHVsZS5pc0RldiAmJiAhaXNSb3V0ZVBQUkVuYWJsZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdGF0aWNCYWlsb3V0SW5mbyA9IG1ldGFkYXRhLnN0YXRpY0JhaWxvdXRJbmZvO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVyciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoYFBhZ2UgY2hhbmdlZCBmcm9tIHN0YXRpYyB0byBkeW5hbWljIGF0IHJ1bnRpbWUgJHtyZXNvbHZlZFBhdGhuYW1lfSR7KHN0YXRpY0JhaWxvdXRJbmZvID09IG51bGwgPyB2b2lkIDAgOiBzdGF0aWNCYWlsb3V0SW5mby5kZXNjcmlwdGlvbikgPyBgLCByZWFzb246ICR7c3RhdGljQmFpbG91dEluZm8uZGVzY3JpcHRpb259YCA6IGBgfWAgKyBgXFxuc2VlIG1vcmUgaGVyZSBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9hcHAtc3RhdGljLXRvLWR5bmFtaWMtZXJyb3JgKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkUxMzJcIixcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmIChzdGF0aWNCYWlsb3V0SW5mbyA9PSBudWxsID8gdm9pZCAwIDogc3RhdGljQmFpbG91dEluZm8uc3RhY2spIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhY2sgPSBzdGF0aWNCYWlsb3V0SW5mby5zdGFjaztcbiAgICAgICAgICAgICAgICAgICAgZXJyLnN0YWNrID0gZXJyLm1lc3NhZ2UgKyBzdGFjay5zdWJzdHJpbmcoc3RhY2suaW5kZXhPZignXFxuJykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgIGtpbmQ6IENhY2hlZFJvdXRlS2luZC5BUFBfUEFHRSxcbiAgICAgICAgICAgICAgICAgICAgaHRtbDogcmVzdWx0LFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzLFxuICAgICAgICAgICAgICAgICAgICByc2NEYXRhOiBtZXRhZGF0YS5mbGlnaHREYXRhLFxuICAgICAgICAgICAgICAgICAgICBwb3N0cG9uZWQ6IG1ldGFkYXRhLnBvc3Rwb25lZCxcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiBtZXRhZGF0YS5zdGF0dXNDb2RlLFxuICAgICAgICAgICAgICAgICAgICBzZWdtZW50RGF0YTogbWV0YWRhdGEuc2VnbWVudERhdGFcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2VHZW5lcmF0b3IgPSBhc3luYyAoeyBoYXNSZXNvbHZlZCwgcHJldmlvdXNDYWNoZUVudHJ5LCBpc1JldmFsaWRhdGluZywgc3BhbiB9KT0+e1xuICAgICAgICAgICAgY29uc3QgaXNQcm9kdWN0aW9uID0gcm91dGVNb2R1bGUuaXNEZXYgPT09IGZhbHNlO1xuICAgICAgICAgICAgY29uc3QgZGlkUmVzcG9uZCA9IGhhc1Jlc29sdmVkIHx8IHJlcy53cml0YWJsZUVuZGVkO1xuICAgICAgICAgICAgLy8gc2tpcCBvbi1kZW1hbmQgcmV2YWxpZGF0ZSBpZiBjYWNoZSBpcyBub3QgcHJlc2VudCBhbmRcbiAgICAgICAgICAgIC8vIHJldmFsaWRhdGUtaWYtZ2VuZXJhdGVkIGlzIHNldFxuICAgICAgICAgICAgaWYgKGlzT25EZW1hbmRSZXZhbGlkYXRlICYmIHJldmFsaWRhdGVPbmx5R2VuZXJhdGVkICYmICFwcmV2aW91c0NhY2hlRW50cnkgJiYgIW1pbmltYWxNb2RlKSB7XG4gICAgICAgICAgICAgICAgaWYgKHJvdXRlclNlcnZlckNvbnRleHQgPT0gbnVsbCA/IHZvaWQgMCA6IHJvdXRlclNlcnZlckNvbnRleHQucmVuZGVyNDA0KSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHJvdXRlclNlcnZlckNvbnRleHQucmVuZGVyNDA0KHJlcSwgcmVzKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcbiAgICAgICAgICAgICAgICAgICAgcmVzLmVuZCgnVGhpcyBwYWdlIGNvdWxkIG5vdCBiZSBmb3VuZCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBmYWxsYmFja01vZGU7XG4gICAgICAgICAgICBpZiAocHJlcmVuZGVySW5mbykge1xuICAgICAgICAgICAgICAgIGZhbGxiYWNrTW9kZSA9IHBhcnNlRmFsbGJhY2tGaWVsZChwcmVyZW5kZXJJbmZvLmZhbGxiYWNrKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFdoZW4gc2VydmluZyBhIEhUTUwgYm90IHJlcXVlc3QsIHdlIHdhbnQgdG8gc2VydmUgYSBibG9ja2luZyByZW5kZXIgYW5kXG4gICAgICAgICAgICAvLyBub3QgdGhlIHByZXJlbmRlcmVkIHBhZ2UuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBjb3JyZWN0IGNvbnRlbnQgaXMgc2VydmVkXG4gICAgICAgICAgICAvLyB0byB0aGUgYm90IGluIHRoZSBoZWFkLlxuICAgICAgICAgICAgaWYgKGZhbGxiYWNrTW9kZSA9PT0gRmFsbGJhY2tNb2RlLlBSRVJFTkRFUiAmJiBpc0JvdCh1c2VyQWdlbnQpKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFpc1JvdXRlUFBSRW5hYmxlZCB8fCBpc0h0bWxCb3QpIHtcbiAgICAgICAgICAgICAgICAgICAgZmFsbGJhY2tNb2RlID0gRmFsbGJhY2tNb2RlLkJMT0NLSU5HX1NUQVRJQ19SRU5ERVI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKChwcmV2aW91c0NhY2hlRW50cnkgPT0gbnVsbCA/IHZvaWQgMCA6IHByZXZpb3VzQ2FjaGVFbnRyeS5pc1N0YWxlKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBpc09uRGVtYW5kUmV2YWxpZGF0ZSA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBUT0RPOiBhZGFwdCBmb3IgUFBSXG4gICAgICAgICAgICAvLyBvbmx5IGFsbG93IG9uLWRlbWFuZCByZXZhbGlkYXRlIGZvciBmYWxsYmFjazogdHJ1ZS9ibG9ja2luZ1xuICAgICAgICAgICAgLy8gb3IgZm9yIHByZXJlbmRlcmVkIGZhbGxiYWNrOiBmYWxzZSBwYXRoc1xuICAgICAgICAgICAgaWYgKGlzT25EZW1hbmRSZXZhbGlkYXRlICYmIChmYWxsYmFja01vZGUgIT09IEZhbGxiYWNrTW9kZS5OT1RfRk9VTkQgfHwgcHJldmlvdXNDYWNoZUVudHJ5KSkge1xuICAgICAgICAgICAgICAgIGZhbGxiYWNrTW9kZSA9IEZhbGxiYWNrTW9kZS5CTE9DS0lOR19TVEFUSUNfUkVOREVSO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFtaW5pbWFsTW9kZSAmJiBmYWxsYmFja01vZGUgIT09IEZhbGxiYWNrTW9kZS5CTE9DS0lOR19TVEFUSUNfUkVOREVSICYmIHN0YXRpY1BhdGhLZXkgJiYgIWRpZFJlc3BvbmQgJiYgIWlzRHJhZnRNb2RlICYmIHBhZ2VJc0R5bmFtaWMgJiYgKGlzUHJvZHVjdGlvbiB8fCAhaXNQcmVyZW5kZXJlZCkpIHtcbiAgICAgICAgICAgICAgICAvLyBpZiB0aGUgcGFnZSBoYXMgZHluYW1pY1BhcmFtczogZmFsc2UgYW5kIHRoaXMgcGF0aG5hbWUgd2Fzbid0XG4gICAgICAgICAgICAgICAgLy8gcHJlcmVuZGVyZWQgdHJpZ2dlciB0aGUgbm8gZmFsbGJhY2sgaGFuZGxpbmdcbiAgICAgICAgICAgICAgICBpZiAoLy8gSW4gZGV2ZWxvcG1lbnQsIGZhbGwgdGhyb3VnaCB0byByZW5kZXIgdG8gaGFuZGxlIG1pc3NpbmdcbiAgICAgICAgICAgICAgICAvLyBnZXRTdGF0aWNQYXRocy5cbiAgICAgICAgICAgICAgICAoaXNQcm9kdWN0aW9uIHx8IHByZXJlbmRlckluZm8pICYmIC8vIFdoZW4gZmFsbGJhY2sgaXNuJ3QgcHJlc2VudCwgYWJvcnQgdGhpcyByZW5kZXIgc28gd2UgNDA0XG4gICAgICAgICAgICAgICAgZmFsbGJhY2tNb2RlID09PSBGYWxsYmFja01vZGUuTk9UX0ZPVU5EKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBOb0ZhbGxiYWNrRXJyb3IoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGV0IGZhbGxiYWNrUmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgaWYgKGlzUm91dGVQUFJFbmFibGVkICYmICFpc1JTQ1JlcXVlc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2FjaGVLZXkgPSB0eXBlb2YgKHByZXJlbmRlckluZm8gPT0gbnVsbCA/IHZvaWQgMCA6IHByZXJlbmRlckluZm8uZmFsbGJhY2spID09PSAnc3RyaW5nJyA/IHByZXJlbmRlckluZm8uZmFsbGJhY2sgOiBpc1Byb2R1Y3Rpb24gPyBub3JtYWxpemVkU3JjUGFnZSA6IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIC8vIFdlIHVzZSB0aGUgcmVzcG9uc2UgY2FjaGUgaGVyZSB0byBoYW5kbGUgdGhlIHJldmFsaWRhdGlvbiBhbmRcbiAgICAgICAgICAgICAgICAgICAgLy8gbWFuYWdlbWVudCBvZiB0aGUgZmFsbGJhY2sgc2hlbGwuXG4gICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrUmVzcG9uc2UgPSBhd2FpdCByb3V0ZU1vZHVsZS5oYW5kbGVSZXNwb25zZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYWNoZUtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5leHRDb25maWcsXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZUtpbmQ6IFJvdXRlS2luZC5BUFBfUEFHRSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRmFsbGJhY2s6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmVyZW5kZXJNYW5pZmVzdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzUm91dGVQUFJFbmFibGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VHZW5lcmF0b3I6IGFzeW5jICgpPT5kb1JlbmRlcih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIHBhc3MgYHVuZGVmaW5lZGAgYXMgcmVuZGVyaW5nIGEgZmFsbGJhY2sgaXNuJ3QgcmVzdW1lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBoZXJlLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3N0cG9uZWQ6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsbGJhY2tSb3V0ZVBhcmFtczogLy8gSWYgd2UncmUgaW4gcHJvZHVjdGlvbiBvciB3ZSdyZSBkZWJ1Z2dpbmcgdGhlIGZhbGxiYWNrXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNoZWxsIHRoZW4gd2Ugc2hvdWxkIHBvc3Rwb25lIHdoZW4gZHluYW1pYyBwYXJhbXMgYXJlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFjY2Vzc2VkLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1Byb2R1Y3Rpb24gfHwgaXNEZWJ1Z0ZhbGxiYWNrU2hlbGwgPyBnZXRGYWxsYmFja1JvdXRlUGFyYW1zKG5vcm1hbGl6ZWRTcmNQYWdlKSA6IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHdhaXRVbnRpbDogY3R4LndhaXRVbnRpbFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGZhbGxiYWNrIHJlc3BvbnNlIHdhcyBzZXQgdG8gbnVsbCwgdGhlbiB3ZSBzaG91bGQgcmV0dXJuIG51bGwuXG4gICAgICAgICAgICAgICAgICAgIGlmIChmYWxsYmFja1Jlc3BvbnNlID09PSBudWxsKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCBpZiB3ZSBkaWQgZ2V0IGEgZmFsbGJhY2sgcmVzcG9uc2UsIHdlIHNob3VsZCByZXR1cm4gaXQuXG4gICAgICAgICAgICAgICAgICAgIGlmIChmYWxsYmFja1Jlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBSZW1vdmUgdGhlIGNhY2hlIGNvbnRyb2wgZnJvbSB0aGUgcmVzcG9uc2UgdG8gcHJldmVudCBpdCBmcm9tIGJlaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB1c2VkIGluIHRoZSBzdXJyb3VuZGluZyBjYWNoZS5cbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBmYWxsYmFja1Jlc3BvbnNlLmNhY2hlQ29udHJvbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxsYmFja1Jlc3BvbnNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gT25seSByZXF1ZXN0cyB0aGF0IGFyZW4ndCByZXZhbGlkYXRpbmcgY2FuIGJlIHJlc3VtZWQuIElmIHdlIGhhdmUgdGhlXG4gICAgICAgICAgICAvLyBtaW5pbWFsIHBvc3Rwb25lZCBkYXRhLCB0aGVuIHdlIHNob3VsZCByZXN1bWUgdGhlIHJlbmRlciB3aXRoIGl0LlxuICAgICAgICAgICAgY29uc3QgcG9zdHBvbmVkID0gIWlzT25EZW1hbmRSZXZhbGlkYXRlICYmICFpc1JldmFsaWRhdGluZyAmJiBtaW5pbWFsUG9zdHBvbmVkID8gbWluaW1hbFBvc3Rwb25lZCA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIC8vIFdoZW4gd2UncmUgaW4gbWluaW1hbCBtb2RlLCBpZiB3ZSdyZSB0cnlpbmcgdG8gZGVidWcgdGhlIHN0YXRpYyBzaGVsbCxcbiAgICAgICAgICAgIC8vIHdlIHNob3VsZCBqdXN0IHJldHVybiBub3RoaW5nIGluc3RlYWQgb2YgcmVzdW1pbmcgdGhlIGR5bmFtaWMgcmVuZGVyLlxuICAgICAgICAgICAgaWYgKChpc0RlYnVnU3RhdGljU2hlbGwgfHwgaXNEZWJ1Z0R5bmFtaWNBY2Nlc3NlcykgJiYgdHlwZW9mIHBvc3Rwb25lZCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2w6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGU6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBpcmU6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgICAgICAgICAga2luZDogQ2FjaGVkUm91dGVLaW5kLlBBR0VTLFxuICAgICAgICAgICAgICAgICAgICAgICAgaHRtbDogUmVuZGVyUmVzdWx0LkVNUFRZLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFnZURhdGE6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJZiB0aGlzIGlzIGEgZHluYW1pYyByb3V0ZSB3aXRoIFBQUiBlbmFibGVkIGFuZCB0aGUgZGVmYXVsdCByb3V0ZVxuICAgICAgICAgICAgLy8gbWF0Y2hlcyB3ZXJlIHNldCwgdGhlbiB3ZSBzaG91bGQgcGFzcyB0aGUgZmFsbGJhY2sgcm91dGUgcGFyYW1zIHRvXG4gICAgICAgICAgICAvLyB0aGUgcmVuZGVyZXIgYXMgdGhpcyBpcyBhIGZhbGxiYWNrIHJldmFsaWRhdGlvbiByZXF1ZXN0LlxuICAgICAgICAgICAgY29uc3QgZmFsbGJhY2tSb3V0ZVBhcmFtcyA9IHBhZ2VJc0R5bmFtaWMgJiYgaXNSb3V0ZVBQUkVuYWJsZWQgJiYgKGdldFJlcXVlc3RNZXRhKHJlcSwgJ3JlbmRlckZhbGxiYWNrU2hlbGwnKSB8fCBpc0RlYnVnRmFsbGJhY2tTaGVsbCkgPyBnZXRGYWxsYmFja1JvdXRlUGFyYW1zKHBhdGhuYW1lKSA6IG51bGw7XG4gICAgICAgICAgICAvLyBQZXJmb3JtIHRoZSByZW5kZXIuXG4gICAgICAgICAgICByZXR1cm4gZG9SZW5kZXIoe1xuICAgICAgICAgICAgICAgIHNwYW4sXG4gICAgICAgICAgICAgICAgcG9zdHBvbmVkLFxuICAgICAgICAgICAgICAgIGZhbGxiYWNrUm91dGVQYXJhbXNcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBoYW5kbGVSZXNwb25zZSA9IGFzeW5jIChzcGFuKT0+e1xuICAgICAgICAgICAgdmFyIF9jYWNoZUVudHJ5X3ZhbHVlLCBfY2FjaGVkRGF0YV9oZWFkZXJzO1xuICAgICAgICAgICAgY29uc3QgY2FjaGVFbnRyeSA9IGF3YWl0IHJvdXRlTW9kdWxlLmhhbmRsZVJlc3BvbnNlKHtcbiAgICAgICAgICAgICAgICBjYWNoZUtleTogc3NnQ2FjaGVLZXksXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VHZW5lcmF0b3I6IChjKT0+cmVzcG9uc2VHZW5lcmF0b3Ioe1xuICAgICAgICAgICAgICAgICAgICAgICAgc3BhbixcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmNcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgcm91dGVLaW5kOiBSb3V0ZUtpbmQuQVBQX1BBR0UsXG4gICAgICAgICAgICAgICAgaXNPbkRlbWFuZFJldmFsaWRhdGUsXG4gICAgICAgICAgICAgICAgaXNSb3V0ZVBQUkVuYWJsZWQsXG4gICAgICAgICAgICAgICAgcmVxLFxuICAgICAgICAgICAgICAgIG5leHRDb25maWcsXG4gICAgICAgICAgICAgICAgcHJlcmVuZGVyTWFuaWZlc3QsXG4gICAgICAgICAgICAgICAgd2FpdFVudGlsOiBjdHgud2FpdFVudGlsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChpc0RyYWZ0TW9kZSkge1xuICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NhY2hlLUNvbnRyb2wnLCAncHJpdmF0ZSwgbm8tY2FjaGUsIG5vLXN0b3JlLCBtYXgtYWdlPTAsIG11c3QtcmV2YWxpZGF0ZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gSW4gZGV2LCB3ZSBzaG91bGQgbm90IGNhY2hlIHBhZ2VzIGZvciBhbnkgcmVhc29uLlxuICAgICAgICAgICAgaWYgKHJvdXRlTW9kdWxlLmlzRGV2KSB7XG4gICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ2FjaGUtQ29udHJvbCcsICduby1zdG9yZSwgbXVzdC1yZXZhbGlkYXRlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWNhY2hlRW50cnkpIHtcbiAgICAgICAgICAgICAgICBpZiAoc3NnQ2FjaGVLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQSBjYWNoZSBlbnRyeSBtaWdodCBub3QgYmUgZ2VuZXJhdGVkIGlmIGEgcmVzcG9uc2UgaXMgd3JpdHRlblxuICAgICAgICAgICAgICAgICAgICAvLyBpbiBgZ2V0SW5pdGlhbFByb3BzYCBvciBgZ2V0U2VydmVyU2lkZVByb3BzYCwgYnV0IHRob3NlIHNob3VsZG4ndFxuICAgICAgICAgICAgICAgICAgICAvLyBoYXZlIGEgY2FjaGUga2V5LiBJZiB3ZSBkbyBoYXZlIGEgY2FjaGUga2V5IGJ1dCB3ZSBkb24ndCBlbmQgdXBcbiAgICAgICAgICAgICAgICAgICAgLy8gd2l0aCBhIGNhY2hlIGVudHJ5LCB0aGVuIGVpdGhlciBOZXh0LmpzIG9yIHRoZSBhcHBsaWNhdGlvbiBoYXMgYVxuICAgICAgICAgICAgICAgICAgICAvLyBidWcgdGhhdCBuZWVkcyBmaXhpbmcuXG4gICAgICAgICAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoJ2ludmFyaWFudDogY2FjaGUgZW50cnkgcmVxdWlyZWQgYnV0IG5vdCBnZW5lcmF0ZWQnKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNjJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgoKF9jYWNoZUVudHJ5X3ZhbHVlID0gY2FjaGVFbnRyeS52YWx1ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9jYWNoZUVudHJ5X3ZhbHVlLmtpbmQpICE9PSBDYWNoZWRSb3V0ZUtpbmQuQVBQX1BBR0UpIHtcbiAgICAgICAgICAgICAgICB2YXIgX2NhY2hlRW50cnlfdmFsdWUxO1xuICAgICAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoYEludmFyaWFudCBhcHAtcGFnZSBoYW5kbGVyIHJlY2VpdmVkIGludmFsaWQgY2FjaGUgZW50cnkgJHsoX2NhY2hlRW50cnlfdmFsdWUxID0gY2FjaGVFbnRyeS52YWx1ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9jYWNoZUVudHJ5X3ZhbHVlMS5raW5kfWApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTcwN1wiLFxuICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBkaWRQb3N0cG9uZSA9IHR5cGVvZiBjYWNoZUVudHJ5LnZhbHVlLnBvc3Rwb25lZCA9PT0gJ3N0cmluZyc7XG4gICAgICAgICAgICBpZiAoaXNTU0cgJiYgLy8gV2UgZG9uJ3Qgd2FudCB0byBzZW5kIGEgY2FjaGUgaGVhZGVyIGZvciByZXF1ZXN0cyB0aGF0IGNvbnRhaW4gZHluYW1pY1xuICAgICAgICAgICAgLy8gZGF0YS4gSWYgdGhpcyBpcyBhIER5bmFtaWMgUlNDIHJlcXVlc3Qgb3Igd2Fzbid0IGEgUHJlZmV0Y2ggUlNDXG4gICAgICAgICAgICAvLyByZXF1ZXN0LCB0aGVuIHdlIHNob3VsZCBzZXQgdGhlIGNhY2hlIGhlYWRlci5cbiAgICAgICAgICAgICFpc0R5bmFtaWNSU0NSZXF1ZXN0ICYmICghZGlkUG9zdHBvbmUgfHwgaXNQcmVmZXRjaFJTQ1JlcXVlc3QpKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFtaW5pbWFsTW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBzZXQgeC1uZXh0anMtY2FjaGUgaGVhZGVyIHRvIG1hdGNoIHRoZSBoZWFkZXJcbiAgICAgICAgICAgICAgICAgICAgLy8gd2Ugc2V0IGZvciB0aGUgaW1hZ2Utb3B0aW1pemVyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ3gtbmV4dGpzLWNhY2hlJywgaXNPbkRlbWFuZFJldmFsaWRhdGUgPyAnUkVWQUxJREFURUQnIDogY2FjaGVFbnRyeS5pc01pc3MgPyAnTUlTUycgOiBjYWNoZUVudHJ5LmlzU3RhbGUgPyAnU1RBTEUnIDogJ0hJVCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBTZXQgYSBoZWFkZXIgdXNlZCBieSB0aGUgY2xpZW50IHJvdXRlciB0byBzaWduYWwgdGhlIHJlc3BvbnNlIGlzIHN0YXRpY1xuICAgICAgICAgICAgICAgIC8vIGFuZCBzaG91bGQgcmVzcGVjdCB0aGUgYHN0YXRpY2AgY2FjaGUgc3RhbGVUaW1lIHZhbHVlLlxuICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoTkVYVF9JU19QUkVSRU5ERVJfSEVBREVSLCAnMScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgeyB2YWx1ZTogY2FjaGVkRGF0YSB9ID0gY2FjaGVFbnRyeTtcbiAgICAgICAgICAgIC8vIENvZXJjZSB0aGUgY2FjaGUgY29udHJvbCBwYXJhbWV0ZXIgZnJvbSB0aGUgcmVuZGVyLlxuICAgICAgICAgICAgbGV0IGNhY2hlQ29udHJvbDtcbiAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgYSByZXN1bWUgcmVxdWVzdCBpbiBtaW5pbWFsIG1vZGUgaXQgaXMgc3RyZWFtZWQgd2l0aCBkeW5hbWljXG4gICAgICAgICAgICAvLyBjb250ZW50IGFuZCBzaG91bGQgbm90IGJlIGNhY2hlZC5cbiAgICAgICAgICAgIGlmIChtaW5pbWFsUG9zdHBvbmVkKSB7XG4gICAgICAgICAgICAgICAgY2FjaGVDb250cm9sID0ge1xuICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlOiAwLFxuICAgICAgICAgICAgICAgICAgICBleHBpcmU6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1pbmltYWxNb2RlICYmIGlzUlNDUmVxdWVzdCAmJiAhaXNQcmVmZXRjaFJTQ1JlcXVlc3QgJiYgaXNSb3V0ZVBQUkVuYWJsZWQpIHtcbiAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2wgPSB7XG4gICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGU6IDAsXG4gICAgICAgICAgICAgICAgICAgIGV4cGlyZTogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXJvdXRlTW9kdWxlLmlzRGV2KSB7XG4gICAgICAgICAgICAgICAgLy8gSWYgdGhpcyBpcyBhIHByZXZpZXcgbW9kZSByZXF1ZXN0LCB3ZSBzaG91bGRuJ3QgY2FjaGUgaXRcbiAgICAgICAgICAgICAgICBpZiAoaXNEcmFmdE1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FjaGVDb250cm9sID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0ZTogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZTogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICghaXNTU0cpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXMuZ2V0SGVhZGVyKCdDYWNoZS1Db250cm9sJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZTogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjYWNoZUVudHJ5LmNhY2hlQ29udHJvbCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgY2FjaGUgZW50cnkgaGFzIGEgY2FjaGUgY29udHJvbCB3aXRoIGEgcmV2YWxpZGF0ZSB2YWx1ZSB0aGF0J3NcbiAgICAgICAgICAgICAgICAgICAgLy8gYSBudW1iZXIsIHVzZSBpdC5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjYWNoZUVudHJ5LmNhY2hlQ29udHJvbC5yZXZhbGlkYXRlID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9jYWNoZUVudHJ5X2NhY2hlQ29udHJvbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjYWNoZUVudHJ5LmNhY2hlQ29udHJvbC5yZXZhbGlkYXRlIDwgMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoYEludmFsaWQgcmV2YWxpZGF0ZSBjb25maWd1cmF0aW9uIHByb3ZpZGVkOiAke2NhY2hlRW50cnkuY2FjaGVDb250cm9sLnJldmFsaWRhdGV9IDwgMWApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTIyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlOiBjYWNoZUVudHJ5LmNhY2hlQ29udHJvbC5yZXZhbGlkYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZTogKChfY2FjaGVFbnRyeV9jYWNoZUNvbnRyb2wgPSBjYWNoZUVudHJ5LmNhY2hlQ29udHJvbCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9jYWNoZUVudHJ5X2NhY2hlQ29udHJvbC5leHBpcmUpID8/IG5leHRDb25maWcuZXhwaXJlVGltZVxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlOiBDQUNIRV9PTkVfWUVBUixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBpcmU6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhY2hlRW50cnkuY2FjaGVDb250cm9sID0gY2FjaGVDb250cm9sO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBzZWdtZW50UHJlZmV0Y2hIZWFkZXIgPT09ICdzdHJpbmcnICYmIChjYWNoZWREYXRhID09IG51bGwgPyB2b2lkIDAgOiBjYWNoZWREYXRhLmtpbmQpID09PSBDYWNoZWRSb3V0ZUtpbmQuQVBQX1BBR0UgJiYgY2FjaGVkRGF0YS5zZWdtZW50RGF0YSkge1xuICAgICAgICAgICAgICAgIHZhciBfY2FjaGVkRGF0YV9oZWFkZXJzMTtcbiAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGEgcHJlZmV0Y2ggcmVxdWVzdCBpc3N1ZWQgYnkgdGhlIGNsaWVudCBTZWdtZW50IENhY2hlLiBUaGVzZVxuICAgICAgICAgICAgICAgIC8vIHNob3VsZCBuZXZlciByZWFjaCB0aGUgYXBwbGljYXRpb24gbGF5ZXIgKGxhbWJkYSkuIFdlIHNob3VsZCBlaXRoZXJcbiAgICAgICAgICAgICAgICAvLyByZXNwb25kIGZyb20gdGhlIGNhY2hlIChISVQpIG9yIHJlc3BvbmQgd2l0aCAyMDQgTm8gQ29udGVudCAoTUlTUykuXG4gICAgICAgICAgICAgICAgLy8gU2V0IGEgaGVhZGVyIHRvIGluZGljYXRlIHRoYXQgUFBSIGlzIGVuYWJsZWQgZm9yIHRoaXMgcm91dGUuIFRoaXNcbiAgICAgICAgICAgICAgICAvLyBsZXRzIHRoZSBjbGllbnQgZGlzdGluZ3Vpc2ggYmV0d2VlbiBhIHJlZ3VsYXIgY2FjaGUgbWlzcyBhbmQgYSBjYWNoZVxuICAgICAgICAgICAgICAgIC8vIG1pc3MgZHVlIHRvIFBQUiBiZWluZyBkaXNhYmxlZC4gSW4gb3RoZXIgY29udGV4dHMgdGhpcyBoZWFkZXIgaXMgdXNlZFxuICAgICAgICAgICAgICAgIC8vIHRvIGluZGljYXRlIHRoYXQgdGhlIHJlc3BvbnNlIGNvbnRhaW5zIGR5bmFtaWMgZGF0YSwgYnV0IGhlcmUgd2UncmVcbiAgICAgICAgICAgICAgICAvLyBvbmx5IHVzaW5nIGl0IHRvIGluZGljYXRlIHRoYXQgdGhlIGZlYXR1cmUgaXMgZW5hYmxlZCDigJQgdGhlIHNlZ21lbnRcbiAgICAgICAgICAgICAgICAvLyByZXNwb25zZSBpdHNlbGYgY29udGFpbnMgd2hldGhlciB0aGUgZGF0YSBpcyBkeW5hbWljLlxuICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoTkVYVF9ESURfUE9TVFBPTkVfSEVBREVSLCAnMicpO1xuICAgICAgICAgICAgICAgIC8vIEFkZCB0aGUgY2FjaGUgdGFncyBoZWFkZXIgdG8gdGhlIHJlc3BvbnNlIGlmIGl0IGV4aXN0cyBhbmQgd2UncmUgaW5cbiAgICAgICAgICAgICAgICAvLyBtaW5pbWFsIG1vZGUgd2hpbGUgcmVuZGVyaW5nIGEgc3RhdGljIHBhZ2UuXG4gICAgICAgICAgICAgICAgY29uc3QgdGFncyA9IChfY2FjaGVkRGF0YV9oZWFkZXJzMSA9IGNhY2hlZERhdGEuaGVhZGVycykgPT0gbnVsbCA/IHZvaWQgMCA6IF9jYWNoZWREYXRhX2hlYWRlcnMxW05FWFRfQ0FDSEVfVEFHU19IRUFERVJdO1xuICAgICAgICAgICAgICAgIGlmIChtaW5pbWFsTW9kZSAmJiBpc1NTRyAmJiB0YWdzICYmIHR5cGVvZiB0YWdzID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKE5FWFRfQ0FDSEVfVEFHU19IRUFERVIsIHRhZ3MpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBtYXRjaGVkU2VnbWVudCA9IGNhY2hlZERhdGEuc2VnbWVudERhdGEuZ2V0KHNlZ21lbnRQcmVmZXRjaEhlYWRlcik7XG4gICAgICAgICAgICAgICAgaWYgKG1hdGNoZWRTZWdtZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQ2FjaGUgaGl0XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzZW5kUmVuZGVyUmVzdWx0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRlRXRhZ3M6IG5leHRDb25maWcuZ2VuZXJhdGVFdGFncyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvd2VyZWRCeUhlYWRlcjogbmV4dENvbmZpZy5wb3dlcmVkQnlIZWFkZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ6IFJlbmRlclJlc3VsdC5mcm9tU3RhdGljKG1hdGNoZWRTZWdtZW50LCBSU0NfQ09OVEVOVF9UWVBFX0hFQURFUiksXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2w6IGNhY2hlRW50cnkuY2FjaGVDb250cm9sXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBDYWNoZSBtaXNzLiBFaXRoZXIgYSBjYWNoZSBlbnRyeSBmb3IgdGhpcyByb3V0ZSBoYXMgbm90IGJlZW4gZ2VuZXJhdGVkXG4gICAgICAgICAgICAgICAgLy8gKHdoaWNoIHRlY2huaWNhbGx5IHNob3VsZCBub3QgYmUgcG9zc2libGUgd2hlbiBQUFIgaXMgZW5hYmxlZCwgYmVjYXVzZVxuICAgICAgICAgICAgICAgIC8vIGF0IGEgbWluaW11bSB0aGVyZSBzaG91bGQgYWx3YXlzIGJlIGEgZmFsbGJhY2sgZW50cnkpIG9yIHRoZXJlJ3Mgbm9cbiAgICAgICAgICAgICAgICAvLyBtYXRjaCBmb3IgdGhlIHJlcXVlc3RlZCBzZWdtZW50LiBSZXNwb25kIHdpdGggYSAyMDQgTm8gQ29udGVudC4gV2VcbiAgICAgICAgICAgICAgICAvLyBkb24ndCBib3RoZXIgdG8gcmVzcG9uZCB3aXRoIDQwNCwgYmVjYXVzZSB0aGVzZSByZXF1ZXN0cyBhcmUgb25seVxuICAgICAgICAgICAgICAgIC8vIGlzc3VlZCBhcyBwYXJ0IG9mIGEgcHJlZmV0Y2guXG4gICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDQ7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlbmRSZW5kZXJSZXN1bHQoe1xuICAgICAgICAgICAgICAgICAgICByZXEsXG4gICAgICAgICAgICAgICAgICAgIHJlcyxcbiAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVFdGFnczogbmV4dENvbmZpZy5nZW5lcmF0ZUV0YWdzLFxuICAgICAgICAgICAgICAgICAgICBwb3dlcmVkQnlIZWFkZXI6IG5leHRDb25maWcucG93ZXJlZEJ5SGVhZGVyLFxuICAgICAgICAgICAgICAgICAgICByZXN1bHQ6IFJlbmRlclJlc3VsdC5FTVBUWSxcbiAgICAgICAgICAgICAgICAgICAgY2FjaGVDb250cm9sOiBjYWNoZUVudHJ5LmNhY2hlQ29udHJvbFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gSWYgdGhlcmUncyBhIGNhbGxiYWNrIGZvciBgb25DYWNoZUVudHJ5YCwgY2FsbCBpdCB3aXRoIHRoZSBjYWNoZSBlbnRyeVxuICAgICAgICAgICAgLy8gYW5kIHRoZSByZXZhbGlkYXRlIG9wdGlvbnMuXG4gICAgICAgICAgICBjb25zdCBvbkNhY2hlRW50cnkgPSBnZXRSZXF1ZXN0TWV0YShyZXEsICdvbkNhY2hlRW50cnknKTtcbiAgICAgICAgICAgIGlmIChvbkNhY2hlRW50cnkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaW5pc2hlZCA9IGF3YWl0IG9uQ2FjaGVFbnRyeSh7XG4gICAgICAgICAgICAgICAgICAgIC4uLmNhY2hlRW50cnksXG4gICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IHJlbW92ZSB0aGlzIHdoZW4gdXBzdHJlYW0gZG9lc24ndFxuICAgICAgICAgICAgICAgICAgICAvLyBhbHdheXMgZXhwZWN0IHRoaXMgdmFsdWUgdG8gYmUgXCJQQUdFXCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmNhY2hlRW50cnkudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBraW5kOiAnUEFHRSdcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBnZXRSZXF1ZXN0TWV0YShyZXEsICdpbml0VVJMJylcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoZmluaXNoZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogbWF5YmUgd2UgaGF2ZSB0byBlbmQgdGhlIHJlcXVlc3Q/XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIElmIHRoZSByZXF1ZXN0IGhhcyBhIHBvc3Rwb25lZCBzdGF0ZSBhbmQgaXQncyBhIHJlc3VtZSByZXF1ZXN0IHdlXG4gICAgICAgICAgICAvLyBzaG91bGQgZXJyb3IuXG4gICAgICAgICAgICBpZiAoZGlkUG9zdHBvbmUgJiYgbWluaW1hbFBvc3Rwb25lZCkge1xuICAgICAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoJ0ludmFyaWFudDogcG9zdHBvbmVkIHN0YXRlIHNob3VsZCBub3QgYmUgcHJlc2VudCBvbiBhIHJlc3VtZSByZXF1ZXN0JyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJFMzk2XCIsXG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjYWNoZWREYXRhLmhlYWRlcnMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBoZWFkZXJzID0ge1xuICAgICAgICAgICAgICAgICAgICAuLi5jYWNoZWREYXRhLmhlYWRlcnNcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGlmICghbWluaW1hbE1vZGUgfHwgIWlzU1NHKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBoZWFkZXJzW05FWFRfQ0FDSEVfVEFHU19IRUFERVJdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmb3IgKGxldCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoaGVhZGVycykpe1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJykgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCB2IG9mIHZhbHVlKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuYXBwZW5kSGVhZGVyKGtleSwgdik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLmFwcGVuZEhlYWRlcihrZXksIHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5hcHBlbmRIZWFkZXIoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBBZGQgdGhlIGNhY2hlIHRhZ3MgaGVhZGVyIHRvIHRoZSByZXNwb25zZSBpZiBpdCBleGlzdHMgYW5kIHdlJ3JlIGluXG4gICAgICAgICAgICAvLyBtaW5pbWFsIG1vZGUgd2hpbGUgcmVuZGVyaW5nIGEgc3RhdGljIHBhZ2UuXG4gICAgICAgICAgICBjb25zdCB0YWdzID0gKF9jYWNoZWREYXRhX2hlYWRlcnMgPSBjYWNoZWREYXRhLmhlYWRlcnMpID09IG51bGwgPyB2b2lkIDAgOiBfY2FjaGVkRGF0YV9oZWFkZXJzW05FWFRfQ0FDSEVfVEFHU19IRUFERVJdO1xuICAgICAgICAgICAgaWYgKG1pbmltYWxNb2RlICYmIGlzU1NHICYmIHRhZ3MgJiYgdHlwZW9mIHRhZ3MgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcihORVhUX0NBQ0hFX1RBR1NfSEVBREVSLCB0YWdzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIElmIHRoZSByZXF1ZXN0IGlzIGEgZGF0YSByZXF1ZXN0LCB0aGVuIHdlIHNob3VsZG4ndCBzZXQgdGhlIHN0YXR1cyBjb2RlXG4gICAgICAgICAgICAvLyBmcm9tIHRoZSByZXNwb25zZSBiZWNhdXNlIGl0IHNob3VsZCBhbHdheXMgYmUgMjAwLiBUaGlzIHNob3VsZCBiZSBnYXRlZFxuICAgICAgICAgICAgLy8gYmVoaW5kIHRoZSBleHBlcmltZW50YWwgUFBSIGZsYWcuXG4gICAgICAgICAgICBpZiAoY2FjaGVkRGF0YS5zdGF0dXMgJiYgKCFpc1JTQ1JlcXVlc3QgfHwgIWlzUm91dGVQUFJFbmFibGVkKSkge1xuICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gY2FjaGVkRGF0YS5zdGF0dXM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBSZWRpcmVjdCBpbmZvcm1hdGlvbiBpcyBlbmNvZGVkIGluIFJTQyBwYXlsb2FkLCBzbyB3ZSBkb24ndCBuZWVkIHRvIHVzZSByZWRpcmVjdCBzdGF0dXMgY29kZXNcbiAgICAgICAgICAgIGlmICghbWluaW1hbE1vZGUgJiYgY2FjaGVkRGF0YS5zdGF0dXMgJiYgUmVkaXJlY3RTdGF0dXNDb2RlW2NhY2hlZERhdGEuc3RhdHVzXSAmJiBpc1JTQ1JlcXVlc3QpIHtcbiAgICAgICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDIwMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIE1hcmsgdGhhdCB0aGUgcmVxdWVzdCBkaWQgcG9zdHBvbmUuXG4gICAgICAgICAgICBpZiAoZGlkUG9zdHBvbmUpIHtcbiAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKE5FWFRfRElEX1BPU1RQT05FX0hFQURFUiwgJzEnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHdlIGRvbid0IGdvIHRocm91Z2ggdGhpcyBibG9jayB3aGVuIHByZXZpZXcgbW9kZSBpcyB0cnVlXG4gICAgICAgICAgICAvLyBhcyBwcmV2aWV3IG1vZGUgaXMgYSBkeW5hbWljIHJlcXVlc3QgKGJ5cGFzc2VzIGNhY2hlKSBhbmQgZG9lc24ndFxuICAgICAgICAgICAgLy8gZ2VuZXJhdGUgYm90aCBIVE1MIGFuZCBwYXlsb2FkcyBpbiB0aGUgc2FtZSByZXF1ZXN0IHNvIGNvbnRpbnVlIHRvIGp1c3RcbiAgICAgICAgICAgIC8vIHJldHVybiB0aGUgZ2VuZXJhdGVkIHBheWxvYWRcbiAgICAgICAgICAgIGlmIChpc1JTQ1JlcXVlc3QgJiYgIWlzRHJhZnRNb2RlKSB7XG4gICAgICAgICAgICAgICAgLy8gSWYgdGhpcyBpcyBhIGR5bmFtaWMgUlNDIHJlcXVlc3QsIHRoZW4gc3RyZWFtIHRoZSByZXNwb25zZS5cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNhY2hlZERhdGEucnNjRGF0YSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNhY2hlZERhdGEucG9zdHBvbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdJbnZhcmlhbnQ6IEV4cGVjdGVkIHBvc3Rwb25lZCB0byBiZSB1bmRlZmluZWQnKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTM3MlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbmRSZW5kZXJSZXN1bHQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVxLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVFdGFnczogbmV4dENvbmZpZy5nZW5lcmF0ZUV0YWdzLFxuICAgICAgICAgICAgICAgICAgICAgICAgcG93ZXJlZEJ5SGVhZGVyOiBuZXh0Q29uZmlnLnBvd2VyZWRCeUhlYWRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDogY2FjaGVkRGF0YS5odG1sLFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gRHluYW1pYyBSU0MgcmVzcG9uc2VzIGNhbm5vdCBiZSBjYWNoZWQsIGV2ZW4gaWYgdGhleSdyZVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uZmlndXJlZCB3aXRoIGBmb3JjZS1zdGF0aWNgIGJlY2F1c2Ugd2UgaGF2ZSBubyB3YXkgb2ZcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRpc3Rpbmd1aXNoaW5nIGJldHdlZW4gYGZvcmNlLXN0YXRpY2AgYW5kIHBhZ2VzIHRoYXQgaGF2ZSBub1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gcG9zdHBvbmVkIHN0YXRlLlxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogZGlzdGluZ3Vpc2ggYGZvcmNlLXN0YXRpY2AgZnJvbSBwYWdlcyB3aXRoIG5vIHBvc3Rwb25lZCBzdGF0ZSAoc3RhdGljKVxuICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVDb250cm9sOiBpc0R5bmFtaWNSU0NSZXF1ZXN0ID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGU6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwaXJlOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gOiBjYWNoZUVudHJ5LmNhY2hlQ29udHJvbFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gQXMgdGhpcyBpc24ndCBhIHByZWZldGNoIHJlcXVlc3QsIHdlIHNob3VsZCBzZXJ2ZSB0aGUgc3RhdGljIGZsaWdodFxuICAgICAgICAgICAgICAgIC8vIGRhdGEuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlbmRSZW5kZXJSZXN1bHQoe1xuICAgICAgICAgICAgICAgICAgICByZXEsXG4gICAgICAgICAgICAgICAgICAgIHJlcyxcbiAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVFdGFnczogbmV4dENvbmZpZy5nZW5lcmF0ZUV0YWdzLFxuICAgICAgICAgICAgICAgICAgICBwb3dlcmVkQnlIZWFkZXI6IG5leHRDb25maWcucG93ZXJlZEJ5SGVhZGVyLFxuICAgICAgICAgICAgICAgICAgICByZXN1bHQ6IFJlbmRlclJlc3VsdC5mcm9tU3RhdGljKGNhY2hlZERhdGEucnNjRGF0YSwgUlNDX0NPTlRFTlRfVFlQRV9IRUFERVIpLFxuICAgICAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2w6IGNhY2hlRW50cnkuY2FjaGVDb250cm9sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBUaGlzIGlzIGEgcmVxdWVzdCBmb3IgSFRNTCBkYXRhLlxuICAgICAgICAgICAgbGV0IGJvZHkgPSBjYWNoZWREYXRhLmh0bWw7XG4gICAgICAgICAgICAvLyBJZiB0aGVyZSdzIG5vIHBvc3Rwb25lZCBzdGF0ZSwgd2Ugc2hvdWxkIGp1c3Qgc2VydmUgdGhlIEhUTUwuIFRoaXNcbiAgICAgICAgICAgIC8vIHNob3VsZCBhbHNvIGJlIHRoZSBjYXNlIGZvciBhIHJlc3VtZSByZXF1ZXN0IGJlY2F1c2UgaXQncyBjb21wbGV0ZWRcbiAgICAgICAgICAgIC8vIGFzIGEgc2VydmVyIHJlbmRlciAocmF0aGVyIHRoYW4gYSBzdGF0aWMgcmVuZGVyKS5cbiAgICAgICAgICAgIGlmICghZGlkUG9zdHBvbmUgfHwgbWluaW1hbE1vZGUgfHwgaXNSU0NSZXF1ZXN0KSB7XG4gICAgICAgICAgICAgICAgLy8gSWYgd2UncmUgaW4gdGVzdCBtb2RlLCB3ZSBzaG91bGQgYWRkIGEgc2VudGluZWwgY2h1bmsgdG8gdGhlIHJlc3BvbnNlXG4gICAgICAgICAgICAgICAgLy8gdGhhdCdzIGJldHdlZW4gdGhlIHN0YXRpYyBhbmQgZHluYW1pYyBwYXJ0cyBzbyB3ZSBjYW4gY29tcGFyZSB0aGVcbiAgICAgICAgICAgICAgICAvLyBjaHVua3MgYW5kIGFkZCBhc3NlcnRpb25zLlxuICAgICAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfVEVTVF9NT0RFICYmIG1pbmltYWxNb2RlICYmIGlzUm91dGVQUFJFbmFibGVkICYmIGJvZHkuY29udGVudFR5cGUgPT09IEhUTUxfQ09OVEVOVF9UWVBFX0hFQURFUikge1xuICAgICAgICAgICAgICAgICAgICAvLyBBcyB3ZSdyZSBpbiBtaW5pbWFsIG1vZGUsIHRoZSBzdGF0aWMgcGFydCB3b3VsZCBoYXZlIGFscmVhZHkgYmVlblxuICAgICAgICAgICAgICAgICAgICAvLyBzdHJlYW1lZCBmaXJzdC4gVGhlIG9ubHkgcGFydCB0aGF0IHRoaXMgc3RyZWFtcyBpcyB0aGUgZHluYW1pYyBwYXJ0XG4gICAgICAgICAgICAgICAgICAgIC8vIHNvIHdlIHNob3VsZCBGSVJTVCBzdHJlYW0gdGhlIHNlbnRpbmVsIGFuZCBUSEVOIHRoZSBkeW5hbWljIHBhcnQuXG4gICAgICAgICAgICAgICAgICAgIGJvZHkudW5zaGlmdChjcmVhdGVQUFJCb3VuZGFyeVNlbnRpbmVsKCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gc2VuZFJlbmRlclJlc3VsdCh7XG4gICAgICAgICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgICAgICAgcmVzLFxuICAgICAgICAgICAgICAgICAgICBnZW5lcmF0ZUV0YWdzOiBuZXh0Q29uZmlnLmdlbmVyYXRlRXRhZ3MsXG4gICAgICAgICAgICAgICAgICAgIHBvd2VyZWRCeUhlYWRlcjogbmV4dENvbmZpZy5wb3dlcmVkQnlIZWFkZXIsXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdDogYm9keSxcbiAgICAgICAgICAgICAgICAgICAgY2FjaGVDb250cm9sOiBjYWNoZUVudHJ5LmNhY2hlQ29udHJvbFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gSWYgd2UncmUgZGVidWdnaW5nIHRoZSBzdGF0aWMgc2hlbGwgb3IgdGhlIGR5bmFtaWMgQVBJIGFjY2Vzc2VzLCB3ZVxuICAgICAgICAgICAgLy8gc2hvdWxkIGp1c3Qgc2VydmUgdGhlIEhUTUwgd2l0aG91dCByZXN1bWluZyB0aGUgcmVuZGVyLiBUaGUgcmV0dXJuZWRcbiAgICAgICAgICAgIC8vIEhUTUwgd2lsbCBiZSB0aGUgc3RhdGljIHNoZWxsIHNvIGFsbCB0aGUgRHluYW1pYyBBUEkncyB3aWxsIGJlIHVzZWRcbiAgICAgICAgICAgIC8vIGR1cmluZyBzdGF0aWMgZ2VuZXJhdGlvbi5cbiAgICAgICAgICAgIGlmIChpc0RlYnVnU3RhdGljU2hlbGwgfHwgaXNEZWJ1Z0R5bmFtaWNBY2Nlc3Nlcykge1xuICAgICAgICAgICAgICAgIC8vIFNpbmNlIHdlJ3JlIG5vdCByZXN1bWluZyB0aGUgcmVuZGVyLCB3ZSBuZWVkIHRvIGF0IGxlYXN0IGFkZCB0aGVcbiAgICAgICAgICAgICAgICAvLyBjbG9zaW5nIGJvZHkgYW5kIGh0bWwgdGFncyB0byBjcmVhdGUgdmFsaWQgSFRNTC5cbiAgICAgICAgICAgICAgICBib2R5LnB1c2gobmV3IFJlYWRhYmxlU3RyZWFtKHtcbiAgICAgICAgICAgICAgICAgICAgc3RhcnQgKGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShFTkNPREVEX1RBR1MuQ0xPU0VELkJPRFlfQU5EX0hUTUwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5jbG9zZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgIHJldHVybiBzZW5kUmVuZGVyUmVzdWx0KHtcbiAgICAgICAgICAgICAgICAgICAgcmVxLFxuICAgICAgICAgICAgICAgICAgICByZXMsXG4gICAgICAgICAgICAgICAgICAgIGdlbmVyYXRlRXRhZ3M6IG5leHRDb25maWcuZ2VuZXJhdGVFdGFncyxcbiAgICAgICAgICAgICAgICAgICAgcG93ZXJlZEJ5SGVhZGVyOiBuZXh0Q29uZmlnLnBvd2VyZWRCeUhlYWRlcixcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0OiBib2R5LFxuICAgICAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2w6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGU6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBpcmU6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJZiB3ZSdyZSBpbiB0ZXN0IG1vZGUsIHdlIHNob3VsZCBhZGQgYSBzZW50aW5lbCBjaHVuayB0byB0aGUgcmVzcG9uc2VcbiAgICAgICAgICAgIC8vIHRoYXQncyBiZXR3ZWVuIHRoZSBzdGF0aWMgYW5kIGR5bmFtaWMgcGFydHMgc28gd2UgY2FuIGNvbXBhcmUgdGhlXG4gICAgICAgICAgICAvLyBjaHVua3MgYW5kIGFkZCBhc3NlcnRpb25zLlxuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9URVNUX01PREUpIHtcbiAgICAgICAgICAgICAgICBib2R5LnB1c2goY3JlYXRlUFBSQm91bmRhcnlTZW50aW5lbCgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFRoaXMgcmVxdWVzdCBoYXMgcG9zdHBvbmVkLCBzbyBsZXQncyBjcmVhdGUgYSBuZXcgdHJhbnNmb3JtZXIgdGhhdCB0aGVcbiAgICAgICAgICAgIC8vIGR5bmFtaWMgZGF0YSBjYW4gcGlwZSB0byB0aGF0IHdpbGwgYXR0YWNoIHRoZSBkeW5hbWljIGRhdGEgdG8gdGhlIGVuZFxuICAgICAgICAgICAgLy8gb2YgdGhlIHJlc3BvbnNlLlxuICAgICAgICAgICAgY29uc3QgdHJhbnNmb3JtZXIgPSBuZXcgVHJhbnNmb3JtU3RyZWFtKCk7XG4gICAgICAgICAgICBib2R5LnB1c2godHJhbnNmb3JtZXIucmVhZGFibGUpO1xuICAgICAgICAgICAgLy8gUGVyZm9ybSB0aGUgcmVuZGVyIGFnYWluLCBidXQgdGhpcyB0aW1lLCBwcm92aWRlIHRoZSBwb3N0cG9uZWQgc3RhdGUuXG4gICAgICAgICAgICAvLyBXZSBkb24ndCBhd2FpdCBiZWNhdXNlIHdlIHdhbnQgdGhlIHJlc3VsdCB0byBzdGFydCBzdHJlYW1pbmcgbm93LCBhbmRcbiAgICAgICAgICAgIC8vIHdlJ3ZlIGFscmVhZHkgY2hhaW5lZCB0aGUgdHJhbnNmb3JtZXIncyByZWFkYWJsZSB0byB0aGUgcmVuZGVyIHJlc3VsdC5cbiAgICAgICAgICAgIGRvUmVuZGVyKHtcbiAgICAgICAgICAgICAgICBzcGFuLFxuICAgICAgICAgICAgICAgIHBvc3Rwb25lZDogY2FjaGVkRGF0YS5wb3N0cG9uZWQsXG4gICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBhIHJlc3VtZSByZW5kZXIsIG5vdCBhIGZhbGxiYWNrIHJlbmRlciwgc28gd2UgZG9uJ3QgbmVlZCB0b1xuICAgICAgICAgICAgICAgIC8vIHNldCB0aGlzLlxuICAgICAgICAgICAgICAgIGZhbGxiYWNrUm91dGVQYXJhbXM6IG51bGxcbiAgICAgICAgICAgIH0pLnRoZW4oYXN5bmMgKHJlc3VsdCk9PntcbiAgICAgICAgICAgICAgICB2YXIgX3Jlc3VsdF92YWx1ZTtcbiAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdJbnZhcmlhbnQ6IGV4cGVjdGVkIGEgcmVzdWx0IHRvIGJlIHJldHVybmVkJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTQ2M1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICgoKF9yZXN1bHRfdmFsdWUgPSByZXN1bHQudmFsdWUpID09IG51bGwgPyB2b2lkIDAgOiBfcmVzdWx0X3ZhbHVlLmtpbmQpICE9PSBDYWNoZWRSb3V0ZUtpbmQuQVBQX1BBR0UpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9yZXN1bHRfdmFsdWUxO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKGBJbnZhcmlhbnQ6IGV4cGVjdGVkIGEgcGFnZSByZXNwb25zZSwgZ290ICR7KF9yZXN1bHRfdmFsdWUxID0gcmVzdWx0LnZhbHVlKSA9PSBudWxsID8gdm9pZCAwIDogX3Jlc3VsdF92YWx1ZTEua2luZH1gKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJFMzA1XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gUGlwZSB0aGUgcmVzdW1lIHJlc3VsdCB0byB0aGUgdHJhbnNmb3JtZXIuXG4gICAgICAgICAgICAgICAgYXdhaXQgcmVzdWx0LnZhbHVlLmh0bWwucGlwZVRvKHRyYW5zZm9ybWVyLndyaXRhYmxlKTtcbiAgICAgICAgICAgIH0pLmNhdGNoKChlcnIpPT57XG4gICAgICAgICAgICAgICAgLy8gQW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHBpcGluZyBvciBwcmVwYXJpbmcgdGhlIHJlbmRlciwgYWJvcnRcbiAgICAgICAgICAgICAgICAvLyB0aGUgdHJhbnNmb3JtZXJzIHdyaXRlciBzbyB3ZSBjYW4gdGVybWluYXRlIHRoZSBzdHJlYW0uXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtZXIud3JpdGFibGUuYWJvcnQoZXJyKS5jYXRjaCgoZSk9PntcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcImNvdWxkbid0IGFib3J0IHRyYW5zZm9ybWVyXCIsIGUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gc2VuZFJlbmRlclJlc3VsdCh7XG4gICAgICAgICAgICAgICAgcmVxLFxuICAgICAgICAgICAgICAgIHJlcyxcbiAgICAgICAgICAgICAgICBnZW5lcmF0ZUV0YWdzOiBuZXh0Q29uZmlnLmdlbmVyYXRlRXRhZ3MsXG4gICAgICAgICAgICAgICAgcG93ZXJlZEJ5SGVhZGVyOiBuZXh0Q29uZmlnLnBvd2VyZWRCeUhlYWRlcixcbiAgICAgICAgICAgICAgICByZXN1bHQ6IGJvZHksXG4gICAgICAgICAgICAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBjYWNoZSB0aGUgcmVzcG9uc2UgaWYgaXQgaGFzIHBvc3Rwb25lZCBkYXRhIGJlY2F1c2VcbiAgICAgICAgICAgICAgICAvLyB0aGUgcmVzcG9uc2UgYmVpbmcgc2VudCB0byB0aGUgY2xpZW50IGl0J3MgZHluYW1pYyBwYXJ0cyBhcmUgc3RyZWFtZWRcbiAgICAgICAgICAgICAgICAvLyB0byB0aGUgY2xpZW50IG9uIHRoZSBzYW1lIHJlcXVlc3QuXG4gICAgICAgICAgICAgICAgY2FjaGVDb250cm9sOiB7XG4gICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGU6IDAsXG4gICAgICAgICAgICAgICAgICAgIGV4cGlyZTogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIC8vIFRPRE86IGFjdGl2ZVNwYW4gY29kZSBwYXRoIGlzIGZvciB3aGVuIHdyYXBwZWQgYnlcbiAgICAgICAgLy8gbmV4dC1zZXJ2ZXIgY2FuIGJlIHJlbW92ZWQgd2hlbiB0aGlzIGlzIG5vIGxvbmdlciB1c2VkXG4gICAgICAgIGlmIChhY3RpdmVTcGFuKSB7XG4gICAgICAgICAgICBhd2FpdCBoYW5kbGVSZXNwb25zZShhY3RpdmVTcGFuKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0cmFjZXIud2l0aFByb3BhZ2F0ZWRDb250ZXh0KHJlcS5oZWFkZXJzLCAoKT0+dHJhY2VyLnRyYWNlKEJhc2VTZXJ2ZXJTcGFuLmhhbmRsZVJlcXVlc3QsIHtcbiAgICAgICAgICAgICAgICAgICAgc3Bhbk5hbWU6IGAke21ldGhvZH0gJHtyZXEudXJsfWAsXG4gICAgICAgICAgICAgICAgICAgIGtpbmQ6IFNwYW5LaW5kLlNFUlZFUixcbiAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ2h0dHAubWV0aG9kJzogbWV0aG9kLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2h0dHAudGFyZ2V0JzogcmVxLnVybFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwgaGFuZGxlUmVzcG9uc2UpKTtcbiAgICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBpZiAoIShlcnIgaW5zdGFuY2VvZiBOb0ZhbGxiYWNrRXJyb3IpKSB7XG4gICAgICAgICAgICBhd2FpdCByb3V0ZU1vZHVsZS5vblJlcXVlc3RFcnJvcihyZXEsIGVyciwge1xuICAgICAgICAgICAgICAgIHJvdXRlcktpbmQ6ICdBcHAgUm91dGVyJyxcbiAgICAgICAgICAgICAgICByb3V0ZVBhdGg6IHNyY1BhZ2UsXG4gICAgICAgICAgICAgICAgcm91dGVUeXBlOiAncmVuZGVyJyxcbiAgICAgICAgICAgICAgICByZXZhbGlkYXRlUmVhc29uOiBnZXRSZXZhbGlkYXRlUmVhc29uKHtcbiAgICAgICAgICAgICAgICAgICAgaXNSZXZhbGlkYXRlOiBpc1NTRyxcbiAgICAgICAgICAgICAgICAgICAgaXNPbkRlbWFuZFJldmFsaWRhdGVcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSwgcm91dGVyU2VydmVyQ29udGV4dCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gcmV0aHJvdyBzbyB0aGF0IHdlIGNhbiBoYW5kbGUgc2VydmluZyBlcnJvciBwYWdlXG4gICAgICAgIHRocm93IGVycjtcbiAgICB9XG59XG4vLyBUT0RPOiBvbWl0IHRoaXMgZnJvbSBwcm9kdWN0aW9uIGJ1aWxkcywgb25seSB0ZXN0IGJ1aWxkcyBzaG91bGQgaW5jbHVkZSBpdFxuLyoqXG4gKiBDcmVhdGVzIGEgcmVhZGFibGUgc3RyZWFtIHRoYXQgZW1pdHMgYSBQUFIgYm91bmRhcnkgc2VudGluZWwuXG4gKlxuICogQHJldHVybnMgQSByZWFkYWJsZSBzdHJlYW0gdGhhdCBlbWl0cyBhIFBQUiBib3VuZGFyeSBzZW50aW5lbC5cbiAqLyBmdW5jdGlvbiBjcmVhdGVQUFJCb3VuZGFyeVNlbnRpbmVsKCkge1xuICAgIHJldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe1xuICAgICAgICBzdGFydCAoY29udHJvbGxlcikge1xuICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZSgnPCEtLSBQUFJfQk9VTkRBUllfU0VOVElORUwgLS0+JykpO1xuICAgICAgICAgICAgY29udHJvbGxlci5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFwcC1wYWdlLmpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2F%5B...slug%5D%2Fpage&page=%2F%5B...slug%5D%2Fpage&appPaths=%2F%5B...slug%5D%2Fpage&pagePath=private-next-app-dir%2F%5B...slug%5D%2Fpage.js&appDir=%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fsrc%2Fdev%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fsrc%2Fdev&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D&isGlobalNotFoundEnabled=!\n");
|
|
23
|
+
|
|
24
|
+
/***/ }),
|
|
25
|
+
|
|
26
|
+
/***/ "(rsc)/../../node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2F%40readme%2Fmarkdown%2Fdist%2Fmain.css%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fsrc%2Fdev%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fsrc%2Fdev%2Fapp%2FSidebar.js%22%2C%22ids%22%3A%5B%22SidebarNav%22%2C%22SidebarPanel%22%5D%7D&server=true!":
|
|
27
|
+
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
28
|
+
!*** ../../node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2F%40readme%2Fmarkdown%2Fdist%2Fmain.css%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fsrc%2Fdev%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fsrc%2Fdev%2Fapp%2FSidebar.js%22%2C%22ids%22%3A%5B%22SidebarNav%22%2C%22SidebarPanel%22%5D%7D&server=true! ***!
|
|
29
|
+
\*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
30
|
+
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
|
|
31
|
+
|
|
32
|
+
eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/Sidebar.js */ \"(rsc)/./app/Sidebar.js\"));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvbmV4dC1mbGlnaHQtY2xpZW50LWVudHJ5LWxvYWRlci5qcz9tb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZVc2VycyUyRmdrb2JlcmdlciUyRlNpdGVzJTJGcmVhZG1lJTJGMjAyNi1yZWFkbWUtY2xpJTJGbm9kZV9tb2R1bGVzJTJGJTQwcmVhZG1lJTJGbWFya2Rvd24lMkZkaXN0JTJGbWFpbi5jc3MlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGVXNlcnMlMkZna29iZXJnZXIlMkZTaXRlcyUyRnJlYWRtZSUyRjIwMjYtcmVhZG1lLWNsaSUyRnNyYyUyRmRldiUyRmFwcCUyRmdsb2JhbHMuY3NzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGZ2tvYmVyZ2VyJTJGU2l0ZXMlMkZyZWFkbWUlMkYyMDI2LXJlYWRtZS1jbGklMkZzcmMlMkZkZXYlMkZhcHAlMkZTaWRlYmFyLmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTIyU2lkZWJhck5hdiUyMiUyQyUyMlNpZGViYXJQYW5lbCUyMiU1RCU3RCZzZXJ2ZXI9dHJ1ZSEiLCJtYXBwaW5ncyI6IkFBQUEsNElBQXdKIiwic291cmNlcyI6WyIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIsIHdlYnBhY2tFeHBvcnRzOiBbXCJTaWRlYmFyTmF2XCIsXCJTaWRlYmFyUGFuZWxcIl0gKi8gXCIvVXNlcnMvZ2tvYmVyZ2VyL1NpdGVzL3JlYWRtZS8yMDI2LXJlYWRtZS1jbGkvc3JjL2Rldi9hcHAvU2lkZWJhci5qc1wiKTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2F%40readme%2Fmarkdown%2Fdist%2Fmain.css%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fsrc%2Fdev%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fsrc%2Fdev%2Fapp%2FSidebar.js%22%2C%22ids%22%3A%5B%22SidebarNav%22%2C%22SidebarPanel%22%5D%7D&server=true!\n");
|
|
33
|
+
|
|
34
|
+
/***/ }),
|
|
35
|
+
|
|
36
|
+
/***/ "(rsc)/../../node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fbuiltin%2Fglobal-error.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fmetadata%2Fasync-metadata.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fframework%2Fboundary-components.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fgenerate%2Ficon-mark.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fnext-devtools%2Fuserspace%2Fapp%2Fsegment-explorer-node.js%22%2C%22ids%22%3A%5B%5D%7D&server=true!":
|
|
37
|
+
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
38
|
+
!*** ../../node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fbuiltin%2Fglobal-error.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fmetadata%2Fasync-metadata.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fframework%2Fboundary-components.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fgenerate%2Ficon-mark.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fnext-devtools%2Fuserspace%2Fapp%2Fsegment-explorer-node.js%22%2C%22ids%22%3A%5B%5D%7D&server=true! ***!
|
|
39
|
+
\***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
40
|
+
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
|
|
41
|
+
|
|
42
|
+
eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ../../node_modules/next/dist/client/components/builtin/global-error.js */ \"(rsc)/../../node_modules/next/dist/client/components/builtin/global-error.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ../../node_modules/next/dist/client/components/client-page.js */ \"(rsc)/../../node_modules/next/dist/client/components/client-page.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ../../node_modules/next/dist/client/components/client-segment.js */ \"(rsc)/../../node_modules/next/dist/client/components/client-segment.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ../../node_modules/next/dist/client/components/http-access-fallback/error-boundary.js */ \"(rsc)/../../node_modules/next/dist/client/components/http-access-fallback/error-boundary.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ../../node_modules/next/dist/client/components/layout-router.js */ \"(rsc)/../../node_modules/next/dist/client/components/layout-router.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ../../node_modules/next/dist/client/components/metadata/async-metadata.js */ \"(rsc)/../../node_modules/next/dist/client/components/metadata/async-metadata.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ../../node_modules/next/dist/client/components/render-from-template-context.js */ \"(rsc)/../../node_modules/next/dist/client/components/render-from-template-context.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ../../node_modules/next/dist/lib/framework/boundary-components.js */ \"(rsc)/../../node_modules/next/dist/lib/framework/boundary-components.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ../../node_modules/next/dist/lib/metadata/generate/icon-mark.js */ \"(rsc)/../../node_modules/next/dist/lib/metadata/generate/icon-mark.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ../../node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js */ \"(rsc)/../../node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js\", 23));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvbmV4dC1mbGlnaHQtY2xpZW50LWVudHJ5LWxvYWRlci5qcz9tb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZVc2VycyUyRmdrb2JlcmdlciUyRlNpdGVzJTJGcmVhZG1lJTJGMjAyNi1yZWFkbWUtY2xpJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGYnVpbHRpbiUyRmdsb2JhbC1lcnJvci5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZVc2VycyUyRmdrb2JlcmdlciUyRlNpdGVzJTJGcmVhZG1lJTJGMjAyNi1yZWFkbWUtY2xpJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGY2xpZW50LXBhZ2UuanMlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGVXNlcnMlMkZna29iZXJnZXIlMkZTaXRlcyUyRnJlYWRtZSUyRjIwMjYtcmVhZG1lLWNsaSUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRmNsaWVudC1zZWdtZW50LmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGZ2tvYmVyZ2VyJTJGU2l0ZXMlMkZyZWFkbWUlMkYyMDI2LXJlYWRtZS1jbGklMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZodHRwLWFjY2Vzcy1mYWxsYmFjayUyRmVycm9yLWJvdW5kYXJ5LmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGZ2tvYmVyZ2VyJTJGU2l0ZXMlMkZyZWFkbWUlMkYyMDI2LXJlYWRtZS1jbGklMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZsYXlvdXQtcm91dGVyLmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGZ2tvYmVyZ2VyJTJGU2l0ZXMlMkZyZWFkbWUlMkYyMDI2LXJlYWRtZS1jbGklMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZtZXRhZGF0YSUyRmFzeW5jLW1ldGFkYXRhLmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGZ2tvYmVyZ2VyJTJGU2l0ZXMlMkZyZWFkbWUlMkYyMDI2LXJlYWRtZS1jbGklMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZyZW5kZXItZnJvbS10ZW1wbGF0ZS1jb250ZXh0LmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGZ2tvYmVyZ2VyJTJGU2l0ZXMlMkZyZWFkbWUlMkYyMDI2LXJlYWRtZS1jbGklMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmxpYiUyRmZyYW1ld29yayUyRmJvdW5kYXJ5LWNvbXBvbmVudHMuanMlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGVXNlcnMlMkZna29iZXJnZXIlMkZTaXRlcyUyRnJlYWRtZSUyRjIwMjYtcmVhZG1lLWNsaSUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGbGliJTJGbWV0YWRhdGElMkZnZW5lcmF0ZSUyRmljb24tbWFyay5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZVc2VycyUyRmdrb2JlcmdlciUyRlNpdGVzJTJGcmVhZG1lJTJGMjAyNi1yZWFkbWUtY2xpJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZuZXh0LWRldnRvb2xzJTJGdXNlcnNwYWNlJTJGYXBwJTJGc2VnbWVudC1leHBsb3Jlci1ub2RlLmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJnNlcnZlcj10cnVlISIsIm1hcHBpbmdzIjoiQUFBQSw4UEFBbUo7QUFDbko7QUFDQSw0T0FBMEk7QUFDMUk7QUFDQSxrUEFBNkk7QUFDN0k7QUFDQSw0UkFBa0s7QUFDbEs7QUFDQSxnUEFBNEk7QUFDNUk7QUFDQSxvUUFBc0o7QUFDdEo7QUFDQSw4UUFBMko7QUFDM0o7QUFDQSxvUEFBOEk7QUFDOUk7QUFDQSxnUEFBNEk7QUFDNUk7QUFDQSxvUkFBOEoiLCJzb3VyY2VzIjpbIiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9na29iZXJnZXIvU2l0ZXMvcmVhZG1lLzIwMjYtcmVhZG1lLWNsaS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2J1aWx0aW4vZ2xvYmFsLWVycm9yLmpzXCIpO1xuO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvZ2tvYmVyZ2VyL1NpdGVzL3JlYWRtZS8yMDI2LXJlYWRtZS1jbGkvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9jbGllbnQtcGFnZS5qc1wiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL2drb2Jlcmdlci9TaXRlcy9yZWFkbWUvMjAyNi1yZWFkbWUtY2xpL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvY2xpZW50LXNlZ21lbnQuanNcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9na29iZXJnZXIvU2l0ZXMvcmVhZG1lLzIwMjYtcmVhZG1lLWNsaS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2Vycm9yLWJvdW5kYXJ5LmpzXCIpO1xuO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvZ2tvYmVyZ2VyL1NpdGVzL3JlYWRtZS8yMDI2LXJlYWRtZS1jbGkvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9sYXlvdXQtcm91dGVyLmpzXCIpO1xuO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvZ2tvYmVyZ2VyL1NpdGVzL3JlYWRtZS8yMDI2LXJlYWRtZS1jbGkvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9tZXRhZGF0YS9hc3luYy1tZXRhZGF0YS5qc1wiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL2drb2Jlcmdlci9TaXRlcy9yZWFkbWUvMjAyNi1yZWFkbWUtY2xpL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvcmVuZGVyLWZyb20tdGVtcGxhdGUtY29udGV4dC5qc1wiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL2drb2Jlcmdlci9TaXRlcy9yZWFkbWUvMjAyNi1yZWFkbWUtY2xpL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2ZyYW1ld29yay9ib3VuZGFyeS1jb21wb25lbnRzLmpzXCIpO1xuO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvZ2tvYmVyZ2VyL1NpdGVzL3JlYWRtZS8yMDI2LXJlYWRtZS1jbGkvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvbWV0YWRhdGEvZ2VuZXJhdGUvaWNvbi1tYXJrLmpzXCIpO1xuO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvZ2tvYmVyZ2VyL1NpdGVzL3JlYWRtZS8yMDI2LXJlYWRtZS1jbGkvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9uZXh0LWRldnRvb2xzL3VzZXJzcGFjZS9hcHAvc2VnbWVudC1leHBsb3Jlci1ub2RlLmpzXCIpO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/../../node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fbuiltin%2Fglobal-error.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fmetadata%2Fasync-metadata.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fframework%2Fboundary-components.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fgenerate%2Ficon-mark.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fnext-devtools%2Fuserspace%2Fapp%2Fsegment-explorer-node.js%22%2C%22ids%22%3A%5B%5D%7D&server=true!\n");
|
|
43
|
+
|
|
44
|
+
/***/ }),
|
|
45
|
+
|
|
46
|
+
/***/ "(rsc)/../../node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?server=true!":
|
|
47
|
+
/*!**********************************************************************************************************!*\
|
|
48
|
+
!*** ../../node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?server=true! ***!
|
|
49
|
+
\**********************************************************************************************************/
|
|
50
|
+
/***/ (() => {
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
/***/ }),
|
|
55
|
+
|
|
56
|
+
/***/ "(rsc)/./app/Sidebar.js":
|
|
57
|
+
/*!************************!*\
|
|
58
|
+
!*** ./app/Sidebar.js ***!
|
|
59
|
+
\************************/
|
|
60
|
+
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
61
|
+
|
|
62
|
+
"use strict";
|
|
63
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SidebarNav: () => (/* binding */ SidebarNav),\n/* harmony export */ SidebarPanel: () => (/* binding */ SidebarPanel)\n/* harmony export */ });\n/* harmony import */ var react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-server-dom-webpack/server */ \"(rsc)/../../node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server.js\");\n// This file is generated by the Webpack next-flight-loader.\n\nconst SidebarNav = (0,react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__.registerClientReference)(\nfunction() { throw new Error(\"Attempted to call SidebarNav() from the server but SidebarNav is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n\"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/Sidebar.js\",\n\"SidebarNav\",\n);const SidebarPanel = (0,react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__.registerClientReference)(\nfunction() { throw new Error(\"Attempted to call SidebarPanel() from the server but SidebarPanel is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n\"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/Sidebar.js\",\n\"SidebarPanel\",\n);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvU2lkZWJhci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSIsInNvdXJjZXMiOlsiX05fRS8uL2FwcC9TaWRlYmFyLmpzL19fbmV4dGpzLWludGVybmFsLXByb3h5Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGJ5IHRoZSBXZWJwYWNrIG5leHQtZmxpZ2h0LWxvYWRlci5cbmltcG9ydCB7IHJlZ2lzdGVyQ2xpZW50UmVmZXJlbmNlIH0gZnJvbSBcInJlYWN0LXNlcnZlci1kb20td2VicGFjay9zZXJ2ZXJcIjtcbmV4cG9ydCBjb25zdCBTaWRlYmFyTmF2ID0gcmVnaXN0ZXJDbGllbnRSZWZlcmVuY2UoXG5mdW5jdGlvbigpIHsgdGhyb3cgbmV3IEVycm9yKFwiQXR0ZW1wdGVkIHRvIGNhbGwgU2lkZWJhck5hdigpIGZyb20gdGhlIHNlcnZlciBidXQgU2lkZWJhck5hdiBpcyBvbiB0aGUgY2xpZW50LiBJdCdzIG5vdCBwb3NzaWJsZSB0byBpbnZva2UgYSBjbGllbnQgZnVuY3Rpb24gZnJvbSB0aGUgc2VydmVyLCBpdCBjYW4gb25seSBiZSByZW5kZXJlZCBhcyBhIENvbXBvbmVudCBvciBwYXNzZWQgdG8gcHJvcHMgb2YgYSBDbGllbnQgQ29tcG9uZW50LlwiKTsgfSxcblwiL1VzZXJzL2drb2Jlcmdlci9TaXRlcy9yZWFkbWUvMjAyNi1yZWFkbWUtY2xpL3NyYy9kZXYvYXBwL1NpZGViYXIuanNcIixcblwiU2lkZWJhck5hdlwiLFxuKTtleHBvcnQgY29uc3QgU2lkZWJhclBhbmVsID0gcmVnaXN0ZXJDbGllbnRSZWZlcmVuY2UoXG5mdW5jdGlvbigpIHsgdGhyb3cgbmV3IEVycm9yKFwiQXR0ZW1wdGVkIHRvIGNhbGwgU2lkZWJhclBhbmVsKCkgZnJvbSB0aGUgc2VydmVyIGJ1dCBTaWRlYmFyUGFuZWwgaXMgb24gdGhlIGNsaWVudC4gSXQncyBub3QgcG9zc2libGUgdG8gaW52b2tlIGEgY2xpZW50IGZ1bmN0aW9uIGZyb20gdGhlIHNlcnZlciwgaXQgY2FuIG9ubHkgYmUgcmVuZGVyZWQgYXMgYSBDb21wb25lbnQgb3IgcGFzc2VkIHRvIHByb3BzIG9mIGEgQ2xpZW50IENvbXBvbmVudC5cIik7IH0sXG5cIi9Vc2Vycy9na29iZXJnZXIvU2l0ZXMvcmVhZG1lLzIwMjYtcmVhZG1lLWNsaS9zcmMvZGV2L2FwcC9TaWRlYmFyLmpzXCIsXG5cIlNpZGViYXJQYW5lbFwiLFxuKTsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./app/Sidebar.js\n");
|
|
64
|
+
|
|
65
|
+
/***/ }),
|
|
66
|
+
|
|
67
|
+
/***/ "(rsc)/./app/[...slug]/loading.js":
|
|
68
|
+
/*!**********************************!*\
|
|
69
|
+
!*** ./app/[...slug]/loading.js ***!
|
|
70
|
+
\**********************************/
|
|
71
|
+
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
72
|
+
|
|
73
|
+
"use strict";
|
|
74
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Loading)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(rsc)/../../node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-dev-runtime.js\");\n\nfunction Loading() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"content markdown-body animate-pulse\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-8 bg-gray-100 rounded w-2/3 mb-6\"\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/[...slug]/loading.js\",\n lineNumber: 4,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-4 bg-gray-100 rounded w-full\"\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/[...slug]/loading.js\",\n lineNumber: 6,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-4 bg-gray-100 rounded w-5/6\"\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/[...slug]/loading.js\",\n lineNumber: 7,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-4 bg-gray-100 rounded w-4/6\"\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/[...slug]/loading.js\",\n lineNumber: 8,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/[...slug]/loading.js\",\n lineNumber: 5,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-8 space-y-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-4 bg-gray-100 rounded w-full\"\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/[...slug]/loading.js\",\n lineNumber: 11,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-4 bg-gray-100 rounded w-3/4\"\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/[...slug]/loading.js\",\n lineNumber: 12,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/[...slug]/loading.js\",\n lineNumber: 10,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/[...slug]/loading.js\",\n lineNumber: 3,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvWy4uLnNsdWddL2xvYWRpbmcuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQWUsU0FBU0E7SUFDdEIscUJBQ0UsOERBQUNDO1FBQUlDLFdBQVU7OzBCQUNiLDhEQUFDRDtnQkFBSUMsV0FBVTs7Ozs7OzBCQUNmLDhEQUFDRDtnQkFBSUMsV0FBVTs7a0NBQ2IsOERBQUNEO3dCQUFJQyxXQUFVOzs7Ozs7a0NBQ2YsOERBQUNEO3dCQUFJQyxXQUFVOzs7Ozs7a0NBQ2YsOERBQUNEO3dCQUFJQyxXQUFVOzs7Ozs7Ozs7Ozs7MEJBRWpCLDhEQUFDRDtnQkFBSUMsV0FBVTs7a0NBQ2IsOERBQUNEO3dCQUFJQyxXQUFVOzs7Ozs7a0NBQ2YsOERBQUNEO3dCQUFJQyxXQUFVOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJdkIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9na29iZXJnZXIvU2l0ZXMvcmVhZG1lLzIwMjYtcmVhZG1lLWNsaS9zcmMvZGV2L2FwcC9bLi4uc2x1Z10vbG9hZGluZy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBMb2FkaW5nKCkge1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGVudCBtYXJrZG93bi1ib2R5IGFuaW1hdGUtcHVsc2VcIj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaC04IGJnLWdyYXktMTAwIHJvdW5kZWQgdy0yLzMgbWItNlwiIC8+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktM1wiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImgtNCBiZy1ncmF5LTEwMCByb3VuZGVkIHctZnVsbFwiIC8+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaC00IGJnLWdyYXktMTAwIHJvdW5kZWQgdy01LzZcIiAvPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImgtNCBiZy1ncmF5LTEwMCByb3VuZGVkIHctNC82XCIgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC04IHNwYWNlLXktM1wiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImgtNCBiZy1ncmF5LTEwMCByb3VuZGVkIHctZnVsbFwiIC8+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaC00IGJnLWdyYXktMTAwIHJvdW5kZWQgdy0zLzRcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59XG4iXSwibmFtZXMiOlsiTG9hZGluZyIsImRpdiIsImNsYXNzTmFtZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./app/[...slug]/loading.js\n");
|
|
75
|
+
|
|
76
|
+
/***/ }),
|
|
77
|
+
|
|
78
|
+
/***/ "(rsc)/./app/[...slug]/page.js":
|
|
79
|
+
/*!*******************************!*\
|
|
80
|
+
!*** ./app/[...slug]/page.js ***!
|
|
81
|
+
\*******************************/
|
|
82
|
+
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
83
|
+
|
|
84
|
+
"use strict";
|
|
85
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ SlugPage),\n/* harmony export */ dynamic: () => (/* binding */ dynamic),\n/* harmony export */ generateMetadata: () => (/* binding */ generateMetadata)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(rsc)/../../node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-dev-runtime.js\");\n/* harmony import */ var next_navigation__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/navigation */ \"(rsc)/../../node_modules/next/dist/api/navigation.react-server.js\");\n/* harmony import */ var _lib_docs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../lib/docs */ \"(rsc)/./lib/docs.js\");\n\n\n\nconst dynamic = 'force-dynamic';\nasync function generateMetadata({ params }) {\n const { slug } = await params;\n const page = (0,_lib_docs__WEBPACK_IMPORTED_MODULE_2__.getPage)(slug);\n return {\n title: page?.title || 'Page not found'\n };\n}\nasync function SlugPage({ params }) {\n const { slug } = await params;\n // Bare section URLs (e.g. `/reference`, `/docs`) land here with a single-\n // element slug and no specific page. Redirect to that section's first\n // page so the Reference tab etc. always resolve to something real.\n if (slug.length === 1) {\n const sections = (0,_lib_docs__WEBPACK_IMPORTED_MODULE_2__.collectSidebar)();\n const section = sections.find((s)=>s.dir === slug[0]);\n if (section?.firstHref) (0,next_navigation__WEBPACK_IMPORTED_MODULE_1__.redirect)(section.firstHref);\n }\n const page = (0,_lib_docs__WEBPACK_IMPORTED_MODULE_2__.getPage)(slug);\n if (!page) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col items-center justify-center py-24 text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-12 h-12 rounded-xl bg-gray-100 flex items-center justify-center text-2xl mb-4\",\n children: \"?\"\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/[...slug]/page.js\",\n lineNumber: 29,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"text-xl font-semibold text-gray-900 mb-1\",\n children: \"Page not found\"\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/[...slug]/page.js\",\n lineNumber: 30,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-gray-400\",\n children: \"No document found for this path.\"\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/[...slug]/page.js\",\n lineNumber: 31,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/[...slug]/page.js\",\n lineNumber: 28,\n columnNumber: 7\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"content markdown-body\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n children: page.title\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/[...slug]/page.js\",\n lineNumber: 38,\n columnNumber: 7\n }, this),\n page.excerpt && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"excerpt\",\n children: page.excerpt\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/[...slug]/page.js\",\n lineNumber: 39,\n columnNumber: 24\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n dangerouslySetInnerHTML: {\n __html: page.html\n }\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/[...slug]/page.js\",\n lineNumber: 40,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/[...slug]/page.js\",\n lineNumber: 37,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvWy4uLnNsdWddL3BhZ2UuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUEyQztBQUNjO0FBRWxELE1BQU1HLFVBQVUsZ0JBQWdCO0FBRWhDLGVBQWVDLGlCQUFpQixFQUFFQyxNQUFNLEVBQUU7SUFDL0MsTUFBTSxFQUFFQyxJQUFJLEVBQUUsR0FBRyxNQUFNRDtJQUN2QixNQUFNRSxPQUFPTixrREFBT0EsQ0FBQ0s7SUFDckIsT0FBTztRQUFFRSxPQUFPRCxNQUFNQyxTQUFTO0lBQWlCO0FBQ2xEO0FBRWUsZUFBZUMsU0FBUyxFQUFFSixNQUFNLEVBQUU7SUFDL0MsTUFBTSxFQUFFQyxJQUFJLEVBQUUsR0FBRyxNQUFNRDtJQUV2QiwwRUFBMEU7SUFDMUUsc0VBQXNFO0lBQ3RFLG1FQUFtRTtJQUNuRSxJQUFJQyxLQUFLSSxNQUFNLEtBQUssR0FBRztRQUNyQixNQUFNQyxXQUFXVCx5REFBY0E7UUFDL0IsTUFBTVUsVUFBVUQsU0FBU0UsSUFBSSxDQUFDQyxDQUFBQSxJQUFLQSxFQUFFQyxHQUFHLEtBQUtULElBQUksQ0FBQyxFQUFFO1FBQ3BELElBQUlNLFNBQVNJLFdBQVdoQix5REFBUUEsQ0FBQ1ksUUFBUUksU0FBUztJQUNwRDtJQUVBLE1BQU1ULE9BQU9OLGtEQUFPQSxDQUFDSztJQUVyQixJQUFJLENBQUNDLE1BQU07UUFDVCxxQkFDRSw4REFBQ1U7WUFBSUMsV0FBVTs7OEJBQ2IsOERBQUNEO29CQUFJQyxXQUFVOzhCQUFrRjs7Ozs7OzhCQUNqRyw4REFBQ0M7b0JBQUdELFdBQVU7OEJBQTJDOzs7Ozs7OEJBQ3pELDhEQUFDRTtvQkFBRUYsV0FBVTs4QkFBd0I7Ozs7Ozs7Ozs7OztJQUczQztJQUVBLHFCQUNFLDhEQUFDRDtRQUFJQyxXQUFVOzswQkFDYiw4REFBQ0M7MEJBQUlaLEtBQUtDLEtBQUs7Ozs7OztZQUNkRCxLQUFLYyxPQUFPLGtCQUFJLDhEQUFDRDtnQkFBRUYsV0FBVTswQkFBV1gsS0FBS2MsT0FBTzs7Ozs7OzBCQUNyRCw4REFBQ0o7Z0JBQUlLLHlCQUF5QjtvQkFBRUMsUUFBUWhCLEtBQUtpQixJQUFJO2dCQUFDOzs7Ozs7Ozs7Ozs7QUFHeEQiLCJzb3VyY2VzIjpbIi9Vc2Vycy9na29iZXJnZXIvU2l0ZXMvcmVhZG1lLzIwMjYtcmVhZG1lLWNsaS9zcmMvZGV2L2FwcC9bLi4uc2x1Z10vcGFnZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZWRpcmVjdCB9IGZyb20gJ25leHQvbmF2aWdhdGlvbic7XG5pbXBvcnQgeyBnZXRQYWdlLCBjb2xsZWN0U2lkZWJhciB9IGZyb20gJy4uLy4uL2xpYi9kb2NzJztcblxuZXhwb3J0IGNvbnN0IGR5bmFtaWMgPSAnZm9yY2UtZHluYW1pYyc7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZW5lcmF0ZU1ldGFkYXRhKHsgcGFyYW1zIH0pIHtcbiAgY29uc3QgeyBzbHVnIH0gPSBhd2FpdCBwYXJhbXM7XG4gIGNvbnN0IHBhZ2UgPSBnZXRQYWdlKHNsdWcpO1xuICByZXR1cm4geyB0aXRsZTogcGFnZT8udGl0bGUgfHwgJ1BhZ2Ugbm90IGZvdW5kJyB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiBTbHVnUGFnZSh7IHBhcmFtcyB9KSB7XG4gIGNvbnN0IHsgc2x1ZyB9ID0gYXdhaXQgcGFyYW1zO1xuXG4gIC8vIEJhcmUgc2VjdGlvbiBVUkxzIChlLmcuIGAvcmVmZXJlbmNlYCwgYC9kb2NzYCkgbGFuZCBoZXJlIHdpdGggYSBzaW5nbGUtXG4gIC8vIGVsZW1lbnQgc2x1ZyBhbmQgbm8gc3BlY2lmaWMgcGFnZS4gUmVkaXJlY3QgdG8gdGhhdCBzZWN0aW9uJ3MgZmlyc3RcbiAgLy8gcGFnZSBzbyB0aGUgUmVmZXJlbmNlIHRhYiBldGMuIGFsd2F5cyByZXNvbHZlIHRvIHNvbWV0aGluZyByZWFsLlxuICBpZiAoc2x1Zy5sZW5ndGggPT09IDEpIHtcbiAgICBjb25zdCBzZWN0aW9ucyA9IGNvbGxlY3RTaWRlYmFyKCk7XG4gICAgY29uc3Qgc2VjdGlvbiA9IHNlY3Rpb25zLmZpbmQocyA9PiBzLmRpciA9PT0gc2x1Z1swXSk7XG4gICAgaWYgKHNlY3Rpb24/LmZpcnN0SHJlZikgcmVkaXJlY3Qoc2VjdGlvbi5maXJzdEhyZWYpO1xuICB9XG5cbiAgY29uc3QgcGFnZSA9IGdldFBhZ2Uoc2x1Zyk7XG5cbiAgaWYgKCFwYWdlKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcHktMjQgdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3LTEyIGgtMTIgcm91bmRlZC14bCBiZy1ncmF5LTEwMCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB0ZXh0LTJ4bCBtYi00XCI+PzwvZGl2PlxuICAgICAgICA8aDEgY2xhc3NOYW1lPVwidGV4dC14bCBmb250LXNlbWlib2xkIHRleHQtZ3JheS05MDAgbWItMVwiPlBhZ2Ugbm90IGZvdW5kPC9oMT5cbiAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LWdyYXktNDAwXCI+Tm8gZG9jdW1lbnQgZm91bmQgZm9yIHRoaXMgcGF0aC48L3A+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRlbnQgbWFya2Rvd24tYm9keVwiPlxuICAgICAgPGgxPntwYWdlLnRpdGxlfTwvaDE+XG4gICAgICB7cGFnZS5leGNlcnB0ICYmIDxwIGNsYXNzTmFtZT1cImV4Y2VycHRcIj57cGFnZS5leGNlcnB0fTwvcD59XG4gICAgICA8ZGl2IGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7IF9faHRtbDogcGFnZS5odG1sIH19IC8+XG4gICAgPC9kaXY+XG4gICk7XG59XG4iXSwibmFtZXMiOlsicmVkaXJlY3QiLCJnZXRQYWdlIiwiY29sbGVjdFNpZGViYXIiLCJkeW5hbWljIiwiZ2VuZXJhdGVNZXRhZGF0YSIsInBhcmFtcyIsInNsdWciLCJwYWdlIiwidGl0bGUiLCJTbHVnUGFnZSIsImxlbmd0aCIsInNlY3Rpb25zIiwic2VjdGlvbiIsImZpbmQiLCJzIiwiZGlyIiwiZmlyc3RIcmVmIiwiZGl2IiwiY2xhc3NOYW1lIiwiaDEiLCJwIiwiZXhjZXJwdCIsImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiwiX19odG1sIiwiaHRtbCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./app/[...slug]/page.js\n");
|
|
86
|
+
|
|
87
|
+
/***/ }),
|
|
88
|
+
|
|
89
|
+
/***/ "(rsc)/./app/globals.css":
|
|
90
|
+
/*!*************************!*\
|
|
91
|
+
!*** ./app/globals.css ***!
|
|
92
|
+
\*************************/
|
|
93
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
94
|
+
|
|
95
|
+
"use strict";
|
|
96
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (\"c6c4fad8be0f\");\nif (false) {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvZ2xvYmFscy5jc3MiLCJtYXBwaW5ncyI6Ijs7OztBQUFBLGlFQUFlLGNBQWM7QUFDN0IsSUFBSSxLQUFVLEVBQUUsRUFBdUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9na29iZXJnZXIvU2l0ZXMvcmVhZG1lLzIwMjYtcmVhZG1lLWNsaS9zcmMvZGV2L2FwcC9nbG9iYWxzLmNzcyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBcImM2YzRmYWQ4YmUwZlwiXG5pZiAobW9kdWxlLmhvdCkgeyBtb2R1bGUuaG90LmFjY2VwdCgpIH1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./app/globals.css\n");
|
|
97
|
+
|
|
98
|
+
/***/ }),
|
|
99
|
+
|
|
100
|
+
/***/ "(rsc)/./app/layout.js":
|
|
101
|
+
/*!***********************!*\
|
|
102
|
+
!*** ./app/layout.js ***!
|
|
103
|
+
\***********************/
|
|
104
|
+
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
105
|
+
|
|
106
|
+
"use strict";
|
|
107
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ RootLayout),\n/* harmony export */ metadata: () => (/* binding */ metadata)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(rsc)/../../node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-dev-runtime.js\");\n/* harmony import */ var _lib_docs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../lib/docs */ \"(rsc)/./lib/docs.js\");\n/* harmony import */ var _Sidebar__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Sidebar */ \"(rsc)/./app/Sidebar.js\");\n/* harmony import */ var _readme_markdown_dist_main_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @readme/markdown/dist/main.css */ \"(rsc)/../../node_modules/@readme/markdown/dist/main.css\");\n/* harmony import */ var _globals_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./globals.css */ \"(rsc)/./app/globals.css\");\n\n\n\n\n\nconst metadata = {\n title: {\n default: 'Dev Preview',\n template: '%s | Dev Preview'\n }\n};\nasync function RootLayout({ children }) {\n const sidebar = (0,_lib_docs__WEBPACK_IMPORTED_MODULE_1__.collectSidebar)();\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"html\", {\n lang: \"en\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"head\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"script\", {\n src: \"https://cdn.tailwindcss.com\"\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/layout.js\",\n lineNumber: 19,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"link\", {\n rel: \"stylesheet\",\n href: \"https://kit.fontawesome.com/b331e91c9c.css\",\n crossOrigin: \"anonymous\"\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/layout.js\",\n lineNumber: 20,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/layout.js\",\n lineNumber: 18,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"body\", {\n className: \"bg-[#000343] text-gray-900 antialiased\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"header\", {\n className: \"fixed top-0 inset-x-0 h-[48px] bg-[#000343] flex items-center px-5 z-50\",\n style: {\n backgroundImage: `linear-gradient(rgba(255,255,255,0.08) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.08) 1px, transparent 1px)`,\n backgroundSize: '20px 20px'\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-3 mr-8 shrink-0\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"i\", {\n className: \"fa-brands fa-readme text-[#018ef5] text-[18px] relative top-[1px]\"\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/layout.js\",\n lineNumber: 30,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-white/90 font-mono text-[13px] tracking-tight mr-1\",\n children: \"dev server\"\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/layout.js\",\n lineNumber: 31,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/layout.js\",\n lineNumber: 29,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"relative group flex items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-[8px] font-semibold bg-white/20 text-white/50 group-hover:bg-white/30 group-hover:text-white/70 px-1.5 py-[3px] rounded uppercase tracking-wider cursor-default transition-colors duration-150\",\n children: \"beta\"\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/layout.js\",\n lineNumber: 34,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"pointer-events-none absolute left-1/2 -translate-x-1/2 top-full mt-5 z-[100] w-48 rounded-lg bg-gray-900 px-3 py-2 text-[11px] leading-snug text-white/80 opacity-0 group-hover:opacity-100 transition-opacity duration-150 shadow-lg\",\n children: \"This is a local preview — it won't look exactly like your published docs.\"\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/layout.js\",\n lineNumber: 37,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/layout.js\",\n lineNumber: 33,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/layout.js\",\n lineNumber: 28,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_Sidebar__WEBPACK_IMPORTED_MODULE_2__.SidebarNav, {\n sidebar: sidebar\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/layout.js\",\n lineNumber: 42,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/layout.js\",\n lineNumber: 24,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex pt-[48px] min-h-screen\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"aside\", {\n className: \"w-[300px] fixed top-[48px] left-0 bottom-0 bg-white rounded-tl-xl border-r border-gray-200 overflow-y-auto py-4 pl-5\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_Sidebar__WEBPACK_IMPORTED_MODULE_2__.SidebarPanel, {\n sidebar: sidebar\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/layout.js\",\n lineNumber: 48,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/layout.js\",\n lineNumber: 47,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"ml-[300px] flex-1 min-w-0 bg-white rounded-tr-xl\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-[820px] py-10 px-16\",\n children: children\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/layout.js\",\n lineNumber: 53,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/layout.js\",\n lineNumber: 52,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/layout.js\",\n lineNumber: 45,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"style\", {\n dangerouslySetInnerHTML: {\n __html: `\n [data-sidebar-group][data-expanded=\"false\"] .sidebar-children { display: none; }\n [data-sidebar-group][data-expanded=\"true\"] .sidebar-children { display: block; }\n [data-sidebar-group][data-expanded=\"true\"] .sidebar-chevron { transform: rotate(90deg); }\n `\n }\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/layout.js\",\n lineNumber: 59,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"script\", {\n dangerouslySetInnerHTML: {\n __html: `(function(){var es=new EventSource('/__reload');es.onmessage=function(e){if(e.data==='reload')location.reload()};})();\ndocument.addEventListener('click',function(e){var t=e.target.closest('[data-sidebar-toggle]');if(!t)return;var g=t.closest('[data-sidebar-group]');if(!g)return;if(t.getAttribute('href')==='#'){e.preventDefault();}var ex=g.getAttribute('data-expanded')==='true';g.setAttribute('data-expanded',ex?'false':'true');});`\n }\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/layout.js\",\n lineNumber: 64,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/layout.js\",\n lineNumber: 22,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/layout.js\",\n lineNumber: 17,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvbGF5b3V0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQTZDO0FBQ1E7QUFDYjtBQUNqQjtBQUVoQixNQUFNRyxXQUFXO0lBQ3RCQyxPQUFPO1FBQ0xDLFNBQVM7UUFDVEMsVUFBVTtJQUNaO0FBQ0YsRUFBRTtBQUVhLGVBQWVDLFdBQVcsRUFBRUMsUUFBUSxFQUFFO0lBQ25ELE1BQU1DLFVBQVVULHlEQUFjQTtJQUU5QixxQkFDRSw4REFBQ1U7UUFBS0MsTUFBSzs7MEJBQ1QsOERBQUNDOztrQ0FDQyw4REFBQ0M7d0JBQU9DLEtBQUk7Ozs7OztrQ0FDWiw4REFBQ0M7d0JBQUtDLEtBQUk7d0JBQWFDLE1BQUs7d0JBQTZDQyxhQUFZOzs7Ozs7Ozs7Ozs7MEJBRXZGLDhEQUFDQztnQkFBS0MsV0FBVTs7a0NBRWQsOERBQUNDO3dCQUFPRCxXQUFVO3dCQUEwRUUsT0FBTzs0QkFDakdDLGlCQUFpQixDQUFDLGlJQUFpSSxDQUFDOzRCQUNwSkMsZ0JBQWdCO3dCQUNsQjs7MENBQ0UsOERBQUNDO2dDQUFJTCxXQUFVOztrREFDYiw4REFBQ0s7d0NBQUlMLFdBQVU7OzBEQUNiLDhEQUFDTTtnREFBRU4sV0FBVTs7Ozs7OzBEQUNiLDhEQUFDTztnREFBS1AsV0FBVTswREFBMEQ7Ozs7Ozs7Ozs7OztrREFFNUUsOERBQUNPO3dDQUFLUCxXQUFVOzswREFDZCw4REFBQ087Z0RBQUtQLFdBQVU7MERBQXNNOzs7Ozs7MERBR3ROLDhEQUFDTztnREFBS1AsV0FBVTswREFBd087Ozs7Ozs7Ozs7Ozs7Ozs7OzswQ0FLNVAsOERBQUNuQixnREFBVUE7Z0NBQUNRLFNBQVNBOzs7Ozs7Ozs7Ozs7a0NBR3ZCLDhEQUFDZ0I7d0JBQUlMLFdBQVU7OzBDQUViLDhEQUFDUTtnQ0FBTVIsV0FBVTswQ0FDZiw0RUFBQ2xCLGtEQUFZQTtvQ0FBQ08sU0FBU0E7Ozs7Ozs7Ozs7OzBDQUl6Qiw4REFBQ29CO2dDQUFLVCxXQUFVOzBDQUNkLDRFQUFDSztvQ0FBSUwsV0FBVTs4Q0FDWlo7Ozs7Ozs7Ozs7Ozs7Ozs7O2tDQUtQLDhEQUFDYzt3QkFBTVEseUJBQXlCOzRCQUFFQyxRQUFRLENBQUM7Ozs7UUFJM0MsQ0FBQzt3QkFBQTs7Ozs7O2tDQUNELDhEQUFDbEI7d0JBQ0NpQix5QkFBeUI7NEJBQ3ZCQyxRQUFRLENBQUM7MFRBQ3FTLENBQUM7d0JBQ2pUOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFLViIsInNvdXJjZXMiOlsiL1VzZXJzL2drb2Jlcmdlci9TaXRlcy9yZWFkbWUvMjAyNi1yZWFkbWUtY2xpL3NyYy9kZXYvYXBwL2xheW91dC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2xsZWN0U2lkZWJhciB9IGZyb20gJy4uL2xpYi9kb2NzJztcbmltcG9ydCB7IFNpZGViYXJOYXYsIFNpZGViYXJQYW5lbCB9IGZyb20gJy4vU2lkZWJhcic7XG5pbXBvcnQgJ0ByZWFkbWUvbWFya2Rvd24vZGlzdC9tYWluLmNzcyc7XG5pbXBvcnQgJy4vZ2xvYmFscy5jc3MnO1xuXG5leHBvcnQgY29uc3QgbWV0YWRhdGEgPSB7XG4gIHRpdGxlOiB7XG4gICAgZGVmYXVsdDogJ0RldiBQcmV2aWV3JyxcbiAgICB0ZW1wbGF0ZTogJyVzIHwgRGV2IFByZXZpZXcnLFxuICB9LFxufTtcblxuZXhwb3J0IGRlZmF1bHQgYXN5bmMgZnVuY3Rpb24gUm9vdExheW91dCh7IGNoaWxkcmVuIH0pIHtcbiAgY29uc3Qgc2lkZWJhciA9IGNvbGxlY3RTaWRlYmFyKCk7XG5cbiAgcmV0dXJuIChcbiAgICA8aHRtbCBsYW5nPVwiZW5cIj5cbiAgICAgIDxoZWFkPlxuICAgICAgICA8c2NyaXB0IHNyYz1cImh0dHBzOi8vY2RuLnRhaWx3aW5kY3NzLmNvbVwiPjwvc2NyaXB0PlxuICAgICAgICA8bGluayByZWw9XCJzdHlsZXNoZWV0XCIgaHJlZj1cImh0dHBzOi8va2l0LmZvbnRhd2Vzb21lLmNvbS9iMzMxZTkxYzljLmNzc1wiIGNyb3NzT3JpZ2luPVwiYW5vbnltb3VzXCIgLz5cbiAgICAgIDwvaGVhZD5cbiAgICAgIDxib2R5IGNsYXNzTmFtZT1cImJnLVsjMDAwMzQzXSB0ZXh0LWdyYXktOTAwIGFudGlhbGlhc2VkXCI+XG4gICAgICAgIHsvKiBUb3AgTmF2aWdhdGlvbiAqL31cbiAgICAgICAgPGhlYWRlciBjbGFzc05hbWU9XCJmaXhlZCB0b3AtMCBpbnNldC14LTAgaC1bNDhweF0gYmctWyMwMDAzNDNdIGZsZXggaXRlbXMtY2VudGVyIHB4LTUgei01MFwiIHN0eWxlPXt7XG4gICAgICAgICAgYmFja2dyb3VuZEltYWdlOiBgbGluZWFyLWdyYWRpZW50KHJnYmEoMjU1LDI1NSwyNTUsMC4wOCkgMXB4LCB0cmFuc3BhcmVudCAxcHgpLCBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMjU1LDI1NSwyNTUsMC4wOCkgMXB4LCB0cmFuc3BhcmVudCAxcHgpYCxcbiAgICAgICAgICBiYWNrZ3JvdW5kU2l6ZTogJzIwcHggMjBweCcsXG4gICAgICAgIH19PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMgbXItOCBzaHJpbmstMFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJmYS1icmFuZHMgZmEtcmVhZG1lIHRleHQtWyMwMThlZjVdIHRleHQtWzE4cHhdIHJlbGF0aXZlIHRvcC1bMXB4XVwiIC8+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtd2hpdGUvOTAgZm9udC1tb25vIHRleHQtWzEzcHhdIHRyYWNraW5nLXRpZ2h0IG1yLTFcIj5kZXYgc2VydmVyPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJyZWxhdGl2ZSBncm91cCBmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LVs4cHhdIGZvbnQtc2VtaWJvbGQgYmctd2hpdGUvMjAgdGV4dC13aGl0ZS81MCBncm91cC1ob3ZlcjpiZy13aGl0ZS8zMCBncm91cC1ob3Zlcjp0ZXh0LXdoaXRlLzcwIHB4LTEuNSBweS1bM3B4XSByb3VuZGVkIHVwcGVyY2FzZSB0cmFja2luZy13aWRlciBjdXJzb3ItZGVmYXVsdCB0cmFuc2l0aW9uLWNvbG9ycyBkdXJhdGlvbi0xNTBcIj5cbiAgICAgICAgICAgICAgICBiZXRhXG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwicG9pbnRlci1ldmVudHMtbm9uZSBhYnNvbHV0ZSBsZWZ0LTEvMiAtdHJhbnNsYXRlLXgtMS8yIHRvcC1mdWxsIG10LTUgei1bMTAwXSB3LTQ4IHJvdW5kZWQtbGcgYmctZ3JheS05MDAgcHgtMyBweS0yIHRleHQtWzExcHhdIGxlYWRpbmctc251ZyB0ZXh0LXdoaXRlLzgwIG9wYWNpdHktMCBncm91cC1ob3ZlcjpvcGFjaXR5LTEwMCB0cmFuc2l0aW9uLW9wYWNpdHkgZHVyYXRpb24tMTUwIHNoYWRvdy1sZ1wiPlxuICAgICAgICAgICAgICAgIFRoaXMgaXMgYSBsb2NhbCBwcmV2aWV3IOKAlCBpdCB3b24ndCBsb29rIGV4YWN0bHkgbGlrZSB5b3VyIHB1Ymxpc2hlZCBkb2NzLlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPFNpZGViYXJOYXYgc2lkZWJhcj17c2lkZWJhcn0gLz5cbiAgICAgICAgPC9oZWFkZXI+XG5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IHB0LVs0OHB4XSBtaW4taC1zY3JlZW5cIj5cbiAgICAgICAgICB7LyogU2lkZWJhciAqL31cbiAgICAgICAgICA8YXNpZGUgY2xhc3NOYW1lPVwidy1bMzAwcHhdIGZpeGVkIHRvcC1bNDhweF0gbGVmdC0wIGJvdHRvbS0wIGJnLXdoaXRlIHJvdW5kZWQtdGwteGwgYm9yZGVyLXIgYm9yZGVyLWdyYXktMjAwIG92ZXJmbG93LXktYXV0byBweS00IHBsLTVcIj5cbiAgICAgICAgICAgIDxTaWRlYmFyUGFuZWwgc2lkZWJhcj17c2lkZWJhcn0gLz5cbiAgICAgICAgICA8L2FzaWRlPlxuXG4gICAgICAgICAgey8qIENvbnRlbnQgKi99XG4gICAgICAgICAgPG1haW4gY2xhc3NOYW1lPVwibWwtWzMwMHB4XSBmbGV4LTEgbWluLXctMCBiZy13aGl0ZSByb3VuZGVkLXRyLXhsXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1heC13LVs4MjBweF0gcHktMTAgcHgtMTZcIj5cbiAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9tYWluPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8c3R5bGUgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3sgX19odG1sOiBgXG4gICAgICAgICAgW2RhdGEtc2lkZWJhci1ncm91cF1bZGF0YS1leHBhbmRlZD1cImZhbHNlXCJdIC5zaWRlYmFyLWNoaWxkcmVuIHsgZGlzcGxheTogbm9uZTsgfVxuICAgICAgICAgIFtkYXRhLXNpZGViYXItZ3JvdXBdW2RhdGEtZXhwYW5kZWQ9XCJ0cnVlXCJdIC5zaWRlYmFyLWNoaWxkcmVuIHsgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgICAgICBbZGF0YS1zaWRlYmFyLWdyb3VwXVtkYXRhLWV4cGFuZGVkPVwidHJ1ZVwiXSAuc2lkZWJhci1jaGV2cm9uIHsgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOyB9XG4gICAgICAgIGB9fSAvPlxuICAgICAgICA8c2NyaXB0XG4gICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3tcbiAgICAgICAgICAgIF9faHRtbDogYChmdW5jdGlvbigpe3ZhciBlcz1uZXcgRXZlbnRTb3VyY2UoJy9fX3JlbG9hZCcpO2VzLm9ubWVzc2FnZT1mdW5jdGlvbihlKXtpZihlLmRhdGE9PT0ncmVsb2FkJylsb2NhdGlvbi5yZWxvYWQoKX07fSkoKTtcbmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbihlKXt2YXIgdD1lLnRhcmdldC5jbG9zZXN0KCdbZGF0YS1zaWRlYmFyLXRvZ2dsZV0nKTtpZighdClyZXR1cm47dmFyIGc9dC5jbG9zZXN0KCdbZGF0YS1zaWRlYmFyLWdyb3VwXScpO2lmKCFnKXJldHVybjtpZih0LmdldEF0dHJpYnV0ZSgnaHJlZicpPT09JyMnKXtlLnByZXZlbnREZWZhdWx0KCk7fXZhciBleD1nLmdldEF0dHJpYnV0ZSgnZGF0YS1leHBhbmRlZCcpPT09J3RydWUnO2cuc2V0QXR0cmlidXRlKCdkYXRhLWV4cGFuZGVkJyxleD8nZmFsc2UnOid0cnVlJyk7fSk7YCxcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgPC9ib2R5PlxuICAgIDwvaHRtbD5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6WyJjb2xsZWN0U2lkZWJhciIsIlNpZGViYXJOYXYiLCJTaWRlYmFyUGFuZWwiLCJtZXRhZGF0YSIsInRpdGxlIiwiZGVmYXVsdCIsInRlbXBsYXRlIiwiUm9vdExheW91dCIsImNoaWxkcmVuIiwic2lkZWJhciIsImh0bWwiLCJsYW5nIiwiaGVhZCIsInNjcmlwdCIsInNyYyIsImxpbmsiLCJyZWwiLCJocmVmIiwiY3Jvc3NPcmlnaW4iLCJib2R5IiwiY2xhc3NOYW1lIiwiaGVhZGVyIiwic3R5bGUiLCJiYWNrZ3JvdW5kSW1hZ2UiLCJiYWNrZ3JvdW5kU2l6ZSIsImRpdiIsImkiLCJzcGFuIiwiYXNpZGUiLCJtYWluIiwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiLCJfX2h0bWwiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./app/layout.js\n");
|
|
108
|
+
|
|
109
|
+
/***/ }),
|
|
110
|
+
|
|
111
|
+
/***/ "(rsc)/./lib/docs.js":
|
|
112
|
+
/*!*********************!*\
|
|
113
|
+
!*** ./lib/docs.js ***!
|
|
114
|
+
\*********************/
|
|
115
|
+
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
116
|
+
|
|
117
|
+
"use strict";
|
|
118
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ collectSidebar: () => (/* binding */ collectSidebar),\n/* harmony export */ getFirstPageHref: () => (/* binding */ getFirstPageHref),\n/* harmony export */ getPage: () => (/* binding */ getPage)\n/* harmony export */ });\n/* harmony import */ var node_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! node:module */ \"node:module\");\n/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! fs */ \"fs\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! path */ \"path\");\n/* harmony import */ var gray_matter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! gray-matter */ \"gray-matter\");\n/* harmony import */ var _readme_markdown__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @readme/markdown */ \"@readme/markdown\");\n/* harmony import */ var js_yaml__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! js-yaml */ \"js-yaml\");\n\n\n\n\n\n\n// Use createRequire to load react-dom/server at runtime,\n// bypassing Next.js App Router's static import restriction.\nconst _require = (0,node_module__WEBPACK_IMPORTED_MODULE_0__.createRequire)(\"file:///Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/lib/docs.js\");\nconst React = _require('react');\nconst { renderToStaticMarkup } = _require('react-dom/server');\nconst DOCS_ROOT = process.env.DOCS_ROOT;\nconst SECTIONS = [\n {\n dir: 'docs',\n label: 'Docs'\n },\n {\n dir: 'reference',\n label: 'Reference'\n },\n {\n dir: 'custom_pages',\n label: 'Custom Pages'\n },\n {\n dir: 'recipes',\n label: 'Recipes'\n }\n];\n// Max folder nesting per section — anything deeper doesn't render in ReadMe's\n// sidebar, so we mirror the cap here. Keep in sync with src/validators/nesting.js.\nconst MAX_DEPTH = {\n docs: 3,\n reference: 3,\n recipes: 0,\n custom_pages: 0\n};\nfunction walkDir(dirPath, sectionDir, depth = 0) {\n if (!fs__WEBPACK_IMPORTED_MODULE_1__.existsSync(dirPath)) return [];\n // Read _order.yaml for ordering\n let order = [];\n const orderPath = path__WEBPACK_IMPORTED_MODULE_2__.join(dirPath, '_order.yaml');\n if (fs__WEBPACK_IMPORTED_MODULE_1__.existsSync(orderPath)) {\n order = js_yaml__WEBPACK_IMPORTED_MODULE_5__.load(fs__WEBPACK_IMPORTED_MODULE_1__.readFileSync(orderPath, 'utf-8')) || [];\n }\n // Get all items (exclude dotfiles and _-prefixed files)\n const items = fs__WEBPACK_IMPORTED_MODULE_1__.readdirSync(dirPath).filter((f)=>!f.startsWith('.') && !f.startsWith('_'));\n const mdFiles = new Set(items.filter((f)=>f.endsWith('.md') && f !== 'index.md').map((f)=>f.replace(/\\.md$/, '')));\n const dirs = new Set(items.filter((f)=>{\n try {\n return fs__WEBPACK_IMPORTED_MODULE_1__.statSync(path__WEBPACK_IMPORTED_MODULE_2__.join(dirPath, f)).isDirectory();\n } catch {\n return false;\n }\n }));\n // Build ordered list: ordered items first, then any remaining\n const allNames = new Set([\n ...mdFiles,\n ...dirs\n ]);\n const ordered = order.filter((name)=>allNames.has(name));\n const remaining = [\n ...allNames\n ].filter((name)=>!ordered.includes(name));\n const finalOrder = [\n ...ordered,\n ...remaining\n ];\n const entries = [];\n for (const name of finalOrder){\n const isDir = dirs.has(name);\n const isMd = mdFiles.has(name);\n if (isDir) {\n // Skip folders whose contents would exceed ReadMe's sidebar nesting\n // cap — they won't render in production, so don't show them here either.\n const maxDepth = MAX_DEPTH[sectionDir];\n if (maxDepth !== undefined && depth + 1 > maxDepth) continue;\n const children = walkDir(path__WEBPACK_IMPORTED_MODULE_2__.join(dirPath, name), sectionDir, depth + 1);\n // ReadMeConfig pages are internal — show them without a group header\n if (name === 'ReadMeConfig') {\n entries.push(...children);\n continue;\n }\n // A directory can represent either:\n // 1. A pure category (no content of its own) → render as group label\n // 2. A parent page with children → render as a clickable page with\n // a nested list underneath\n //\n // Two file layouts signal #2:\n // a. `<name>/index.md` — the \"index\" convention\n // b. `<parent>/<name>.md` right alongside the `<name>/` folder\n // (sibling convention) — the importer writes parent pages this way\n // If either exists, treat this as a clickable parent page.\n const indexPath = path__WEBPACK_IMPORTED_MODULE_2__.join(dirPath, name, 'index.md');\n const siblingMdPath = path__WEBPACK_IMPORTED_MODULE_2__.join(dirPath, `${name}.md`);\n const parentPagePath = fs__WEBPACK_IMPORTED_MODULE_1__.existsSync(indexPath) ? indexPath : fs__WEBPACK_IMPORTED_MODULE_1__.existsSync(siblingMdPath) ? siblingMdPath : null;\n let title = name;\n let href = null;\n let hidden = false;\n let icon = null;\n if (parentPagePath) {\n const { data } = gray_matter__WEBPACK_IMPORTED_MODULE_3__(fs__WEBPACK_IMPORTED_MODULE_1__.readFileSync(parentPagePath, 'utf-8'));\n title = data.title || name;\n href = `/${sectionDir}/${encodeURIComponent(name)}`;\n hidden = !!data.hidden;\n icon = data.icon || null;\n }\n entries.push({\n title,\n href,\n hidden,\n icon,\n children\n });\n // If a sibling .md is providing the parent content, remove it from\n // mdFiles so we don't also render it as a standalone page below.\n mdFiles.delete(name);\n } else if (isMd) {\n const filePath = path__WEBPACK_IMPORTED_MODULE_2__.join(dirPath, `${name}.md`);\n const { data } = gray_matter__WEBPACK_IMPORTED_MODULE_3__(fs__WEBPACK_IMPORTED_MODULE_1__.readFileSync(filePath, 'utf-8'));\n const linkUrl = data.link?.url;\n entries.push({\n title: data.title || name,\n href: linkUrl || `/${sectionDir}/${encodeURIComponent(name)}`,\n external: !!linkUrl,\n hidden: !!data.hidden,\n icon: data.icon || null,\n children: []\n });\n }\n }\n return entries;\n}\nfunction collectSidebar() {\n const sections = [];\n for (const { dir, label } of SECTIONS){\n const fullPath = path__WEBPACK_IMPORTED_MODULE_2__.join(DOCS_ROOT, dir);\n if (!fs__WEBPACK_IMPORTED_MODULE_1__.existsSync(fullPath)) continue;\n const children = walkDir(fullPath, dir);\n if (children.length > 0) {\n sections.push({\n title: label,\n dir,\n firstHref: findFirstHref(children),\n children\n });\n }\n }\n return sections;\n}\nfunction loadCustomBlocks(docsRoot) {\n const blocksDir = path__WEBPACK_IMPORTED_MODULE_2__.join(docsRoot, 'custom_blocks');\n if (!fs__WEBPACK_IMPORTED_MODULE_1__.existsSync(blocksDir)) return {\n sources: {},\n modules: {}\n };\n const files = fs__WEBPACK_IMPORTED_MODULE_1__.readdirSync(blocksDir).filter((f)=>f.endsWith('.md') || f.endsWith('.mdx'));\n const sources = {};\n const modules = {};\n for (const file of files){\n const raw = fs__WEBPACK_IMPORTED_MODULE_1__.readFileSync(path__WEBPACK_IMPORTED_MODULE_2__.join(blocksDir, file), 'utf-8');\n const { data, content } = gray_matter__WEBPACK_IMPORTED_MODULE_3__(raw);\n const name = data.name || path__WEBPACK_IMPORTED_MODULE_2__.basename(file, path__WEBPACK_IMPORTED_MODULE_2__.extname(file));\n sources[name] = content;\n modules[name] = (0,_readme_markdown__WEBPACK_IMPORTED_MODULE_4__.run)((0,_readme_markdown__WEBPACK_IMPORTED_MODULE_4__.compile)(content));\n }\n return {\n sources,\n modules\n };\n}\n// Recursively find a .md file matching the given slug within a directory\nfunction findFile(dirPath, slug) {\n if (!fs__WEBPACK_IMPORTED_MODULE_1__.existsSync(dirPath)) return null;\n // Check for slug.md directly in this directory\n const direct = path__WEBPACK_IMPORTED_MODULE_2__.join(dirPath, `${slug}.md`);\n if (fs__WEBPACK_IMPORTED_MODULE_1__.existsSync(direct)) return direct;\n // Check for slug/index.md\n const index = path__WEBPACK_IMPORTED_MODULE_2__.join(dirPath, slug, 'index.md');\n if (fs__WEBPACK_IMPORTED_MODULE_1__.existsSync(index)) return index;\n // Search subdirectories\n const entries = fs__WEBPACK_IMPORTED_MODULE_1__.readdirSync(dirPath).filter((f)=>!f.startsWith('.') && !f.startsWith('_'));\n for (const entry of entries){\n const full = path__WEBPACK_IMPORTED_MODULE_2__.join(dirPath, entry);\n try {\n if (fs__WEBPACK_IMPORTED_MODULE_1__.statSync(full).isDirectory()) {\n const found = findFile(full, slug);\n if (found) return found;\n }\n } catch {\n // skip\n }\n }\n return null;\n}\nfunction getPage(slugArray) {\n // slugArray = ['docs', 'getting-started'] or ['reference', 'getPet']\n const [section, ...rest] = slugArray.map((s)=>decodeURIComponent(s));\n const slug = rest.join('/');\n if (!section || !slug) return null;\n const sectionPath = path__WEBPACK_IMPORTED_MODULE_2__.join(DOCS_ROOT, section);\n const filePath = findFile(sectionPath, slug);\n if (!filePath) return null;\n const raw = fs__WEBPACK_IMPORTED_MODULE_1__.readFileSync(filePath, 'utf-8');\n const { data, content } = gray_matter__WEBPACK_IMPORTED_MODULE_3__(raw);\n let html;\n // Reference pages stubbed by the import command (or by oas:sync) have an\n // empty body — the real endpoint UI comes from the OAS spec at render\n // time. The production ReadMe renderer handles this; our local dev server\n // used to show a blank page. If we see `api.file` + `api.operationId`,\n // render a minimal preview from the spec so the page isn't empty.\n if (data.api?.file && data.api?.operationId && !content.trim()) {\n html = renderOasOperationPreview(data.api.file, data.api.operationId);\n } else {\n try {\n const { sources, modules } = loadCustomBlocks(DOCS_ROOT);\n const compiled = (0,_readme_markdown__WEBPACK_IMPORTED_MODULE_4__.compile)(content, {\n components: sources\n });\n const mod = (0,_readme_markdown__WEBPACK_IMPORTED_MODULE_4__.run)(compiled, {\n components: modules\n });\n // Suppress React warnings about class vs className from raw HTML in markdown\n const origError = console.error;\n console.error = (...args)=>{\n if (typeof args[0] === 'string' && args[0].includes('Invalid DOM property')) return;\n origError.apply(console, args);\n };\n html = renderToStaticMarkup(React.createElement(mod.default));\n console.error = origError;\n } catch {\n html = `<p><em>Error rendering MDX. Raw content below:</em></p><pre>${content.replace(/</g, '<')}</pre>`;\n }\n }\n return {\n title: data.title || slug,\n excerpt: data.excerpt || '',\n html\n };\n}\n/**\n * Render a small HTML preview of one OAS operation — method badge, path,\n * description, and parameter list. Not a full interactive API reference\n * (production ReadMe handles that); just enough so dev server pages show\n * something meaningful instead of a blank body.\n */ function renderOasOperationPreview(specFile, operationId) {\n const specPath = path__WEBPACK_IMPORTED_MODULE_2__.join(DOCS_ROOT, 'reference', specFile);\n if (!fs__WEBPACK_IMPORTED_MODULE_1__.existsSync(specPath)) {\n return `<p><em>OAS spec not found: <code>reference/${specFile}</code></em></p>`;\n }\n let spec;\n try {\n const rawSpec = fs__WEBPACK_IMPORTED_MODULE_1__.readFileSync(specPath, 'utf-8');\n spec = specFile.toLowerCase().endsWith('.json') ? JSON.parse(rawSpec) : js_yaml__WEBPACK_IMPORTED_MODULE_5__.load(rawSpec);\n } catch (e) {\n return `<p><em>Couldn't parse <code>reference/${specFile}</code>: ${escapeHtml(e.message)}</em></p>`;\n }\n let found = null;\n for (const [pathKey, pathItem] of Object.entries(spec.paths || {})){\n for (const [method, op] of Object.entries(pathItem || {})){\n if (op && typeof op === 'object' && op.operationId === operationId) {\n found = {\n method: method.toUpperCase(),\n path: pathKey,\n op\n };\n }\n }\n }\n if (!found) {\n return `<p><em>Operation <code>${escapeHtml(operationId)}</code> not found in <code>${escapeHtml(specFile)}</code>.</em></p>`;\n }\n const { method, path: opPath, op } = found;\n const methodColor = {\n GET: '#22c55e',\n POST: '#3b82f6',\n PUT: '#f59e0b',\n PATCH: '#a855f7',\n DELETE: '#ef4444'\n }[method] || '#6b7280';\n const parts = [];\n parts.push(`<div style=\"display: flex; gap: 0.5rem; align-items: center; margin-bottom: 1rem;\">` + `<span style=\"background: ${methodColor}; color: white; padding: 0.15rem 0.5rem; border-radius: 0.25rem; font-family: monospace; font-weight: 600; font-size: 0.85rem;\">${method}</span>` + `<code style=\"font-size: 1rem;\">${escapeHtml(opPath)}</code>` + `</div>`);\n if (op.description) parts.push(`<p>${escapeHtml(op.description)}</p>`);\n if (Array.isArray(op.parameters) && op.parameters.length > 0) {\n parts.push(`<h2>Parameters</h2>`);\n parts.push(`<ul>`);\n for (const p of op.parameters){\n const name = p.name || '(unnamed)';\n const where = p.in ? ` <code style=\"color: #6b7280;\">(${p.in})</code>` : '';\n const required = p.required ? ' <strong>required</strong>' : '';\n const desc = p.description ? ` — ${escapeHtml(p.description)}` : '';\n parts.push(`<li><code>${escapeHtml(name)}</code>${where}${required}${desc}</li>`);\n }\n parts.push(`</ul>`);\n }\n if (op.responses && typeof op.responses === 'object') {\n parts.push(`<h2>Responses</h2>`);\n parts.push(`<ul>`);\n for (const [status, resp] of Object.entries(op.responses)){\n const desc = resp?.description ? ` — ${escapeHtml(resp.description)}` : '';\n parts.push(`<li><code>${escapeHtml(status)}</code>${desc}</li>`);\n }\n parts.push(`</ul>`);\n }\n parts.push(`<hr style=\"margin: 2rem 0; border: 0; border-top: 1px solid #e5e7eb;\">`, `<p style=\"color: #6b7280; font-size: 0.875rem;\"><em>Local preview rendered from the OAS spec. Full interactive API reference (try-it-out, request/response schemas, auth) renders when imported into ReadMe.</em></p>`);\n return parts.join('\\n');\n}\nfunction escapeHtml(s) {\n return String(s).replace(/[&<>\"']/g, (c)=>({\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n })[c]);\n}\nfunction findFirstHref(items) {\n for (const item of items){\n if (item.href) return item.href;\n if (item.children?.length) {\n const found = findFirstHref(item.children);\n if (found) return found;\n }\n }\n return null;\n}\nfunction getFirstPageHref() {\n const sidebar = collectSidebar();\n return findFirstHref(sidebar);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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UUFDakU7UUFDQVQsTUFBTXRGLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNwQjtJQUVBc0YsTUFBTXRGLElBQUksQ0FDUixDQUFDLHNFQUFzRSxDQUFDLEVBQ3hFLENBQUMscU5BQXFOLENBQUM7SUFHek4sT0FBT3NGLE1BQU1uSCxJQUFJLENBQUM7QUFDcEI7QUFFQSxTQUFTbUcsV0FBVzNCLENBQUM7SUFDbkIsT0FBT3dELE9BQU94RCxHQUFHNUQsT0FBTyxDQUFDLFlBQVksQ0FBQ3FILElBQU87WUFBRSxLQUFLO1lBQVMsS0FBSztZQUFRLEtBQUs7WUFBUSxLQUFLO1lBQVUsS0FBSztRQUFRLEVBQUMsQ0FBQ0EsRUFBRTtBQUN6SDtBQUVBLFNBQVNoRixjQUFjOUMsS0FBSztJQUMxQixLQUFLLE1BQU0rSCxRQUFRL0gsTUFBTztRQUN4QixJQUFJK0gsS0FBS2hHLElBQUksRUFBRSxPQUFPZ0csS0FBS2hHLElBQUk7UUFDL0IsSUFBSWdHLEtBQUt0RyxRQUFRLEVBQUVtQixRQUFRO1lBQ3pCLE1BQU1vQixRQUFRbEIsY0FBY2lGLEtBQUt0RyxRQUFRO1lBQ3pDLElBQUl1QyxPQUFPLE9BQU9BO1FBQ3BCO0lBQ0Y7SUFDQSxPQUFPO0FBQ1Q7QUFFTyxTQUFTZ0U7SUFDZCxNQUFNQyxVQUFVeEY7SUFDaEIsT0FBT0ssY0FBY21GO0FBQ3ZCIiwic291cmNlcyI6WyIvVXNlcnMvZ2tvYmVyZ2VyL1NpdGVzL3JlYWRtZS8yMDI2LXJlYWRtZS1jbGkvc3JjL2Rldi9saWIvZG9jcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVSZXF1aXJlIH0gZnJvbSAnbm9kZTptb2R1bGUnO1xuaW1wb3J0IGZzIGZyb20gJ2ZzJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IG1hdHRlciBmcm9tICdncmF5LW1hdHRlcic7XG5pbXBvcnQgeyBjb21waWxlLCBydW4gfSBmcm9tICdAcmVhZG1lL21hcmtkb3duJztcbmltcG9ydCB5YW1sIGZyb20gJ2pzLXlhbWwnO1xuXG4vLyBVc2UgY3JlYXRlUmVxdWlyZSB0byBsb2FkIHJlYWN0LWRvbS9zZXJ2ZXIgYXQgcnVudGltZSxcbi8vIGJ5cGFzc2luZyBOZXh0LmpzIEFwcCBSb3V0ZXIncyBzdGF0aWMgaW1wb3J0IHJlc3RyaWN0aW9uLlxuY29uc3QgX3JlcXVpcmUgPSBjcmVhdGVSZXF1aXJlKGltcG9ydC5tZXRhLnVybCk7XG5jb25zdCBSZWFjdCA9IF9yZXF1aXJlKCdyZWFjdCcpO1xuY29uc3QgeyByZW5kZXJUb1N0YXRpY01hcmt1cCB9ID0gX3JlcXVpcmUoJ3JlYWN0LWRvbS9zZXJ2ZXInKTtcblxuY29uc3QgRE9DU19ST09UID0gcHJvY2Vzcy5lbnYuRE9DU19ST09UO1xuXG5jb25zdCBTRUNUSU9OUyA9IFtcbiAgeyBkaXI6ICdkb2NzJywgbGFiZWw6ICdEb2NzJyB9LFxuICB7IGRpcjogJ3JlZmVyZW5jZScsIGxhYmVsOiAnUmVmZXJlbmNlJyB9LFxuICB7IGRpcjogJ2N1c3RvbV9wYWdlcycsIGxhYmVsOiAnQ3VzdG9tIFBhZ2VzJyB9LFxuICB7IGRpcjogJ3JlY2lwZXMnLCBsYWJlbDogJ1JlY2lwZXMnIH0sXG5dO1xuXG4vLyBNYXggZm9sZGVyIG5lc3RpbmcgcGVyIHNlY3Rpb24g4oCUIGFueXRoaW5nIGRlZXBlciBkb2Vzbid0IHJlbmRlciBpbiBSZWFkTWUnc1xuLy8gc2lkZWJhciwgc28gd2UgbWlycm9yIHRoZSBjYXAgaGVyZS4gS2VlcCBpbiBzeW5jIHdpdGggc3JjL3ZhbGlkYXRvcnMvbmVzdGluZy5qcy5cbmNvbnN0IE1BWF9ERVBUSCA9IHtcbiAgZG9jczogMyxcbiAgcmVmZXJlbmNlOiAzLFxuICByZWNpcGVzOiAwLFxuICBjdXN0b21fcGFnZXM6IDAsXG59O1xuXG5mdW5jdGlvbiB3YWxrRGlyKGRpclBhdGgsIHNlY3Rpb25EaXIsIGRlcHRoID0gMCkge1xuICBpZiAoIWZzLmV4aXN0c1N5bmMoZGlyUGF0aCkpIHJldHVybiBbXTtcblxuICAvLyBSZWFkIF9vcmRlci55YW1sIGZvciBvcmRlcmluZ1xuICBsZXQgb3JkZXIgPSBbXTtcbiAgY29uc3Qgb3JkZXJQYXRoID0gcGF0aC5qb2luKGRpclBhdGgsICdfb3JkZXIueWFtbCcpO1xuICBpZiAoZnMuZXhpc3RzU3luYyhvcmRlclBhdGgpKSB7XG4gICAgb3JkZXIgPSB5YW1sLmxvYWQoZnMucmVhZEZpbGVTeW5jKG9yZGVyUGF0aCwgJ3V0Zi04JykpIHx8IFtdO1xuICB9XG5cbiAgLy8gR2V0IGFsbCBpdGVtcyAoZXhjbHVkZSBkb3RmaWxlcyBhbmQgXy1wcmVmaXhlZCBmaWxlcylcbiAgY29uc3QgaXRlbXMgPSBmcy5yZWFkZGlyU3luYyhkaXJQYXRoKS5maWx0ZXIoZiA9PiAhZi5zdGFydHNXaXRoKCcuJykgJiYgIWYuc3RhcnRzV2l0aCgnXycpKTtcblxuICBjb25zdCBtZEZpbGVzID0gbmV3IFNldChpdGVtcy5maWx0ZXIoZiA9PiBmLmVuZHNXaXRoKCcubWQnKSAmJiBmICE9PSAnaW5kZXgubWQnKS5tYXAoZiA9PiBmLnJlcGxhY2UoL1xcLm1kJC8sICcnKSkpO1xuICBjb25zdCBkaXJzID0gbmV3IFNldChcbiAgICBpdGVtcy5maWx0ZXIoZiA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gZnMuc3RhdFN5bmMocGF0aC5qb2luKGRpclBhdGgsIGYpKS5pc0RpcmVjdG9yeSgpO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9KSxcbiAgKTtcblxuICAvLyBCdWlsZCBvcmRlcmVkIGxpc3Q6IG9yZGVyZWQgaXRlbXMgZmlyc3QsIHRoZW4gYW55IHJlbWFpbmluZ1xuICBjb25zdCBhbGxOYW1lcyA9IG5ldyBTZXQoWy4uLm1kRmlsZXMsIC4uLmRpcnNdKTtcbiAgY29uc3Qgb3JkZXJlZCA9IG9yZGVyLmZpbHRlcihuYW1lID0+IGFsbE5hbWVzLmhhcyhuYW1lKSk7XG4gIGNvbnN0IHJlbWFpbmluZyA9IFsuLi5hbGxOYW1lc10uZmlsdGVyKG5hbWUgPT4gIW9yZGVyZWQuaW5jbHVkZXMobmFtZSkpO1xuICBjb25zdCBmaW5hbE9yZGVyID0gWy4uLm9yZGVyZWQsIC4uLnJlbWFpbmluZ107XG5cbiAgY29uc3QgZW50cmllcyA9IFtdO1xuICBmb3IgKGNvbnN0IG5hbWUgb2YgZmluYWxPcmRlcikge1xuICAgIGNvbnN0IGlzRGlyID0gZGlycy5oYXMobmFtZSk7XG4gICAgY29uc3QgaXNNZCA9IG1kRmlsZXMuaGFzKG5hbWUpO1xuXG4gICAgaWYgKGlzRGlyKSB7XG4gICAgICAvLyBTa2lwIGZvbGRlcnMgd2hvc2UgY29udGVudHMgd291bGQgZXhjZWVkIFJlYWRNZSdzIHNpZGViYXIgbmVzdGluZ1xuICAgICAgLy8gY2FwIOKAlCB0aGV5IHdvbid0IHJlbmRlciBpbiBwcm9kdWN0aW9uLCBzbyBkb24ndCBzaG93IHRoZW0gaGVyZSBlaXRoZXIuXG4gICAgICBjb25zdCBtYXhEZXB0aCA9IE1BWF9ERVBUSFtzZWN0aW9uRGlyXTtcbiAgICAgIGlmIChtYXhEZXB0aCAhPT0gdW5kZWZpbmVkICYmIGRlcHRoICsgMSA+IG1heERlcHRoKSBjb250aW51ZTtcblxuICAgICAgY29uc3QgY2hpbGRyZW4gPSB3YWxrRGlyKHBhdGguam9pbihkaXJQYXRoLCBuYW1lKSwgc2VjdGlvbkRpciwgZGVwdGggKyAxKTtcblxuICAgICAgLy8gUmVhZE1lQ29uZmlnIHBhZ2VzIGFyZSBpbnRlcm5hbCDigJQgc2hvdyB0aGVtIHdpdGhvdXQgYSBncm91cCBoZWFkZXJcbiAgICAgIGlmIChuYW1lID09PSAnUmVhZE1lQ29uZmlnJykge1xuICAgICAgICBlbnRyaWVzLnB1c2goLi4uY2hpbGRyZW4pO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgLy8gQSBkaXJlY3RvcnkgY2FuIHJlcHJlc2VudCBlaXRoZXI6XG4gICAgICAvLyAgIDEuIEEgcHVyZSBjYXRlZ29yeSAobm8gY29udGVudCBvZiBpdHMgb3duKSDihpIgcmVuZGVyIGFzIGdyb3VwIGxhYmVsXG4gICAgICAvLyAgIDIuIEEgcGFyZW50IHBhZ2Ugd2l0aCBjaGlsZHJlbiDihpIgcmVuZGVyIGFzIGEgY2xpY2thYmxlIHBhZ2Ugd2l0aFxuICAgICAgLy8gICAgICBhIG5lc3RlZCBsaXN0IHVuZGVybmVhdGhcbiAgICAgIC8vXG4gICAgICAvLyBUd28gZmlsZSBsYXlvdXRzIHNpZ25hbCAjMjpcbiAgICAgIC8vICAgYS4gYDxuYW1lPi9pbmRleC5tZGAg4oCUIHRoZSBcImluZGV4XCIgY29udmVudGlvblxuICAgICAgLy8gICBiLiBgPHBhcmVudD4vPG5hbWU+Lm1kYCByaWdodCBhbG9uZ3NpZGUgdGhlIGA8bmFtZT4vYCBmb2xkZXJcbiAgICAgIC8vICAgICAgKHNpYmxpbmcgY29udmVudGlvbikg4oCUIHRoZSBpbXBvcnRlciB3cml0ZXMgcGFyZW50IHBhZ2VzIHRoaXMgd2F5XG4gICAgICAvLyBJZiBlaXRoZXIgZXhpc3RzLCB0cmVhdCB0aGlzIGFzIGEgY2xpY2thYmxlIHBhcmVudCBwYWdlLlxuICAgICAgY29uc3QgaW5kZXhQYXRoID0gcGF0aC5qb2luKGRpclBhdGgsIG5hbWUsICdpbmRleC5tZCcpO1xuICAgICAgY29uc3Qgc2libGluZ01kUGF0aCA9IHBhdGguam9pbihkaXJQYXRoLCBgJHtuYW1lfS5tZGApO1xuICAgICAgY29uc3QgcGFyZW50UGFnZVBhdGggPSBmcy5leGlzdHNTeW5jKGluZGV4UGF0aClcbiAgICAgICAgPyBpbmRleFBhdGhcbiAgICAgICAgOiBmcy5leGlzdHNTeW5jKHNpYmxpbmdNZFBhdGgpID8gc2libGluZ01kUGF0aCA6IG51bGw7XG5cbiAgICAgIGxldCB0aXRsZSA9IG5hbWU7XG4gICAgICBsZXQgaHJlZiA9IG51bGw7XG4gICAgICBsZXQgaGlkZGVuID0gZmFsc2U7XG4gICAgICBsZXQgaWNvbiA9IG51bGw7XG4gICAgICBpZiAocGFyZW50UGFnZVBhdGgpIHtcbiAgICAgICAgY29uc3QgeyBkYXRhIH0gPSBtYXR0ZXIoZnMucmVhZEZpbGVTeW5jKHBhcmVudFBhZ2VQYXRoLCAndXRmLTgnKSk7XG4gICAgICAgIHRpdGxlID0gZGF0YS50aXRsZSB8fCBuYW1lO1xuICAgICAgICBocmVmID0gYC8ke3NlY3Rpb25EaXJ9LyR7ZW5jb2RlVVJJQ29tcG9uZW50KG5hbWUpfWA7XG4gICAgICAgIGhpZGRlbiA9ICEhZGF0YS5oaWRkZW47XG4gICAgICAgIGljb24gPSBkYXRhLmljb24gfHwgbnVsbDtcbiAgICAgIH1cblxuICAgICAgZW50cmllcy5wdXNoKHsgdGl0bGUsIGhyZWYsIGhpZGRlbiwgaWNvbiwgY2hpbGRyZW4gfSk7XG4gICAgICAvLyBJZiBhIHNpYmxpbmcgLm1kIGlzIHByb3ZpZGluZyB0aGUgcGFyZW50IGNvbnRlbnQsIHJlbW92ZSBpdCBmcm9tXG4gICAgICAvLyBtZEZpbGVzIHNvIHdlIGRvbid0IGFsc28gcmVuZGVyIGl0IGFzIGEgc3RhbmRhbG9uZSBwYWdlIGJlbG93LlxuICAgICAgbWRGaWxlcy5kZWxldGUobmFtZSk7XG4gICAgfSBlbHNlIGlmIChpc01kKSB7XG4gICAgICBjb25zdCBmaWxlUGF0aCA9IHBhdGguam9pbihkaXJQYXRoLCBgJHtuYW1lfS5tZGApO1xuICAgICAgY29uc3QgeyBkYXRhIH0gPSBtYXR0ZXIoZnMucmVhZEZpbGVTeW5jKGZpbGVQYXRoLCAndXRmLTgnKSk7XG4gICAgICBjb25zdCBsaW5rVXJsID0gZGF0YS5saW5rPy51cmw7XG4gICAgICBlbnRyaWVzLnB1c2goe1xuICAgICAgICB0aXRsZTogZGF0YS50aXRsZSB8fCBuYW1lLFxuICAgICAgICBocmVmOiBsaW5rVXJsIHx8IGAvJHtzZWN0aW9uRGlyfS8ke2VuY29kZVVSSUNvbXBvbmVudChuYW1lKX1gLFxuICAgICAgICBleHRlcm5hbDogISFsaW5rVXJsLFxuICAgICAgICBoaWRkZW46ICEhZGF0YS5oaWRkZW4sXG4gICAgICAgIGljb246IGRhdGEuaWNvbiB8fCBudWxsLFxuICAgICAgICBjaGlsZHJlbjogW10sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZW50cmllcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbGxlY3RTaWRlYmFyKCkge1xuICBjb25zdCBzZWN0aW9ucyA9IFtdO1xuICBmb3IgKGNvbnN0IHsgZGlyLCBsYWJlbCB9IG9mIFNFQ1RJT05TKSB7XG4gICAgY29uc3QgZnVsbFBhdGggPSBwYXRoLmpvaW4oRE9DU19ST09ULCBkaXIpO1xuICAgIGlmICghZnMuZXhpc3RzU3luYyhmdWxsUGF0aCkpIGNvbnRpbnVlO1xuXG4gICAgY29uc3QgY2hpbGRyZW4gPSB3YWxrRGlyKGZ1bGxQYXRoLCBkaXIpO1xuICAgIGlmIChjaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICBzZWN0aW9ucy5wdXNoKHsgdGl0bGU6IGxhYmVsLCBkaXIsIGZpcnN0SHJlZjogZmluZEZpcnN0SHJlZihjaGlsZHJlbiksIGNoaWxkcmVuIH0pO1xuICAgIH1cbiAgfVxuICByZXR1cm4gc2VjdGlvbnM7XG59XG5cbmZ1bmN0aW9uIGxvYWRDdXN0b21CbG9ja3MoZG9jc1Jvb3QpIHtcbiAgY29uc3QgYmxvY2tzRGlyID0gcGF0aC5qb2luKGRvY3NSb290LCAnY3VzdG9tX2Jsb2NrcycpO1xuICBpZiAoIWZzLmV4aXN0c1N5bmMoYmxvY2tzRGlyKSkgcmV0dXJuIHsgc291cmNlczoge30sIG1vZHVsZXM6IHt9IH07XG5cbiAgY29uc3QgZmlsZXMgPSBmcy5yZWFkZGlyU3luYyhibG9ja3NEaXIpLmZpbHRlcihmID0+IGYuZW5kc1dpdGgoJy5tZCcpIHx8IGYuZW5kc1dpdGgoJy5tZHgnKSk7XG4gIGNvbnN0IHNvdXJjZXMgPSB7fTtcbiAgY29uc3QgbW9kdWxlcyA9IHt9O1xuXG4gIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgIGNvbnN0IHJhdyA9IGZzLnJlYWRGaWxlU3luYyhwYXRoLmpvaW4oYmxvY2tzRGlyLCBmaWxlKSwgJ3V0Zi04Jyk7XG4gICAgY29uc3QgeyBkYXRhLCBjb250ZW50IH0gPSBtYXR0ZXIocmF3KTtcbiAgICBjb25zdCBuYW1lID0gZGF0YS5uYW1lIHx8IHBhdGguYmFzZW5hbWUoZmlsZSwgcGF0aC5leHRuYW1lKGZpbGUpKTtcbiAgICBzb3VyY2VzW25hbWVdID0gY29udGVudDtcbiAgICBtb2R1bGVzW25hbWVdID0gcnVuKGNvbXBpbGUoY29udGVudCkpO1xuICB9XG5cbiAgcmV0dXJuIHsgc291cmNlcywgbW9kdWxlcyB9O1xufVxuXG4vLyBSZWN1cnNpdmVseSBmaW5kIGEgLm1kIGZpbGUgbWF0Y2hpbmcgdGhlIGdpdmVuIHNsdWcgd2l0aGluIGEgZGlyZWN0b3J5XG5mdW5jdGlvbiBmaW5kRmlsZShkaXJQYXRoLCBzbHVnKSB7XG4gIGlmICghZnMuZXhpc3RzU3luYyhkaXJQYXRoKSkgcmV0dXJuIG51bGw7XG5cbiAgLy8gQ2hlY2sgZm9yIHNsdWcubWQgZGlyZWN0bHkgaW4gdGhpcyBkaXJlY3RvcnlcbiAgY29uc3QgZGlyZWN0ID0gcGF0aC5qb2luKGRpclBhdGgsIGAke3NsdWd9Lm1kYCk7XG4gIGlmIChmcy5leGlzdHNTeW5jKGRpcmVjdCkpIHJldHVybiBkaXJlY3Q7XG5cbiAgLy8gQ2hlY2sgZm9yIHNsdWcvaW5kZXgubWRcbiAgY29uc3QgaW5kZXggPSBwYXRoLmpvaW4oZGlyUGF0aCwgc2x1ZywgJ2luZGV4Lm1kJyk7XG4gIGlmIChmcy5leGlzdHNTeW5jKGluZGV4KSkgcmV0dXJuIGluZGV4O1xuXG4gIC8vIFNlYXJjaCBzdWJkaXJlY3Rvcmllc1xuICBjb25zdCBlbnRyaWVzID0gZnMucmVhZGRpclN5bmMoZGlyUGF0aCkuZmlsdGVyKGYgPT4gIWYuc3RhcnRzV2l0aCgnLicpICYmICFmLnN0YXJ0c1dpdGgoJ18nKSk7XG4gIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgIGNvbnN0IGZ1bGwgPSBwYXRoLmpvaW4oZGlyUGF0aCwgZW50cnkpO1xuICAgIHRyeSB7XG4gICAgICBpZiAoZnMuc3RhdFN5bmMoZnVsbCkuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgICBjb25zdCBmb3VuZCA9IGZpbmRGaWxlKGZ1bGwsIHNsdWcpO1xuICAgICAgICBpZiAoZm91bmQpIHJldHVybiBmb3VuZDtcbiAgICAgIH1cbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIHNraXBcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFBhZ2Uoc2x1Z0FycmF5KSB7XG4gIC8vIHNsdWdBcnJheSA9IFsnZG9jcycsICdnZXR0aW5nLXN0YXJ0ZWQnXSBvciBbJ3JlZmVyZW5jZScsICdnZXRQZXQnXVxuICBjb25zdCBbc2VjdGlvbiwgLi4ucmVzdF0gPSBzbHVnQXJyYXkubWFwKHMgPT4gZGVjb2RlVVJJQ29tcG9uZW50KHMpKTtcbiAgY29uc3Qgc2x1ZyA9IHJlc3Quam9pbignLycpO1xuICBpZiAoIXNlY3Rpb24gfHwgIXNsdWcpIHJldHVybiBudWxsO1xuXG4gIGNvbnN0IHNlY3Rpb25QYXRoID0gcGF0aC5qb2luKERPQ1NfUk9PVCwgc2VjdGlvbik7XG4gIGNvbnN0IGZpbGVQYXRoID0gZmluZEZpbGUoc2VjdGlvblBhdGgsIHNsdWcpO1xuXG4gIGlmICghZmlsZVBhdGgpIHJldHVybiBudWxsO1xuXG4gIGNvbnN0IHJhdyA9IGZzLnJlYWRGaWxlU3luYyhmaWxlUGF0aCwgJ3V0Zi04Jyk7XG4gIGNvbnN0IHsgZGF0YSwgY29udGVudCB9ID0gbWF0dGVyKHJhdyk7XG5cbiAgbGV0IGh0bWw7XG5cbiAgLy8gUmVmZXJlbmNlIHBhZ2VzIHN0dWJiZWQgYnkgdGhlIGltcG9ydCBjb21tYW5kIChvciBieSBvYXM6c3luYykgaGF2ZSBhblxuICAvLyBlbXB0eSBib2R5IOKAlCB0aGUgcmVhbCBlbmRwb2ludCBVSSBjb21lcyBmcm9tIHRoZSBPQVMgc3BlYyBhdCByZW5kZXJcbiAgLy8gdGltZS4gVGhlIHByb2R1Y3Rpb24gUmVhZE1lIHJlbmRlcmVyIGhhbmRsZXMgdGhpczsgb3VyIGxvY2FsIGRldiBzZXJ2ZXJcbiAgLy8gdXNlZCB0byBzaG93IGEgYmxhbmsgcGFnZS4gSWYgd2Ugc2VlIGBhcGkuZmlsZWAgKyBgYXBpLm9wZXJhdGlvbklkYCxcbiAgLy8gcmVuZGVyIGEgbWluaW1hbCBwcmV2aWV3IGZyb20gdGhlIHNwZWMgc28gdGhlIHBhZ2UgaXNuJ3QgZW1wdHkuXG4gIGlmIChkYXRhLmFwaT8uZmlsZSAmJiBkYXRhLmFwaT8ub3BlcmF0aW9uSWQgJiYgIWNvbnRlbnQudHJpbSgpKSB7XG4gICAgaHRtbCA9IHJlbmRlck9hc09wZXJhdGlvblByZXZpZXcoZGF0YS5hcGkuZmlsZSwgZGF0YS5hcGkub3BlcmF0aW9uSWQpO1xuICB9IGVsc2Uge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IHNvdXJjZXMsIG1vZHVsZXMgfSA9IGxvYWRDdXN0b21CbG9ja3MoRE9DU19ST09UKTtcbiAgICAgIGNvbnN0IGNvbXBpbGVkID0gY29tcGlsZShjb250ZW50LCB7IGNvbXBvbmVudHM6IHNvdXJjZXMgfSk7XG4gICAgICBjb25zdCBtb2QgPSBydW4oY29tcGlsZWQsIHsgY29tcG9uZW50czogbW9kdWxlcyB9KTtcblxuICAgICAgLy8gU3VwcHJlc3MgUmVhY3Qgd2FybmluZ3MgYWJvdXQgY2xhc3MgdnMgY2xhc3NOYW1lIGZyb20gcmF3IEhUTUwgaW4gbWFya2Rvd25cbiAgICAgIGNvbnN0IG9yaWdFcnJvciA9IGNvbnNvbGUuZXJyb3I7XG4gICAgICBjb25zb2xlLmVycm9yID0gKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBhcmdzWzBdID09PSAnc3RyaW5nJyAmJiBhcmdzWzBdLmluY2x1ZGVzKCdJbnZhbGlkIERPTSBwcm9wZXJ0eScpKSByZXR1cm47XG4gICAgICAgIG9yaWdFcnJvci5hcHBseShjb25zb2xlLCBhcmdzKTtcbiAgICAgIH07XG4gICAgICBodG1sID0gcmVuZGVyVG9TdGF0aWNNYXJrdXAoUmVhY3QuY3JlYXRlRWxlbWVudChtb2QuZGVmYXVsdCkpO1xuICAgICAgY29uc29sZS5lcnJvciA9IG9yaWdFcnJvcjtcbiAgICB9IGNhdGNoIHtcbiAgICAgIGh0bWwgPSBgPHA+PGVtPkVycm9yIHJlbmRlcmluZyBNRFguIFJhdyBjb250ZW50IGJlbG93OjwvZW0+PC9wPjxwcmU+JHtjb250ZW50LnJlcGxhY2UoLzwvZywgJyZsdDsnKX08L3ByZT5gO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdGl0bGU6IGRhdGEudGl0bGUgfHwgc2x1ZyxcbiAgICBleGNlcnB0OiBkYXRhLmV4Y2VycHQgfHwgJycsXG4gICAgaHRtbCxcbiAgfTtcbn1cblxuLyoqXG4gKiBSZW5kZXIgYSBzbWFsbCBIVE1MIHByZXZpZXcgb2Ygb25lIE9BUyBvcGVyYXRpb24g4oCUIG1ldGhvZCBiYWRnZSwgcGF0aCxcbiAqIGRlc2NyaXB0aW9uLCBhbmQgcGFyYW1ldGVyIGxpc3QuIE5vdCBhIGZ1bGwgaW50ZXJhY3RpdmUgQVBJIHJlZmVyZW5jZVxuICogKHByb2R1Y3Rpb24gUmVhZE1lIGhhbmRsZXMgdGhhdCk7IGp1c3QgZW5vdWdoIHNvIGRldiBzZXJ2ZXIgcGFnZXMgc2hvd1xuICogc29tZXRoaW5nIG1lYW5pbmdmdWwgaW5zdGVhZCBvZiBhIGJsYW5rIGJvZHkuXG4gKi9cbmZ1bmN0aW9uIHJlbmRlck9hc09wZXJhdGlvblByZXZpZXcoc3BlY0ZpbGUsIG9wZXJhdGlvbklkKSB7XG4gIGNvbnN0IHNwZWNQYXRoID0gcGF0aC5qb2luKERPQ1NfUk9PVCwgJ3JlZmVyZW5jZScsIHNwZWNGaWxlKTtcbiAgaWYgKCFmcy5leGlzdHNTeW5jKHNwZWNQYXRoKSkge1xuICAgIHJldHVybiBgPHA+PGVtPk9BUyBzcGVjIG5vdCBmb3VuZDogPGNvZGU+cmVmZXJlbmNlLyR7c3BlY0ZpbGV9PC9jb2RlPjwvZW0+PC9wPmA7XG4gIH1cblxuICBsZXQgc3BlYztcbiAgdHJ5IHtcbiAgICBjb25zdCByYXdTcGVjID0gZnMucmVhZEZpbGVTeW5jKHNwZWNQYXRoLCAndXRmLTgnKTtcbiAgICBzcGVjID0gc3BlY0ZpbGUudG9Mb3dlckNhc2UoKS5lbmRzV2l0aCgnLmpzb24nKSA/IEpTT04ucGFyc2UocmF3U3BlYykgOiB5YW1sLmxvYWQocmF3U3BlYyk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gYDxwPjxlbT5Db3VsZG4ndCBwYXJzZSA8Y29kZT5yZWZlcmVuY2UvJHtzcGVjRmlsZX08L2NvZGU+OiAke2VzY2FwZUh0bWwoZS5tZXNzYWdlKX08L2VtPjwvcD5gO1xuICB9XG5cbiAgbGV0IGZvdW5kID0gbnVsbDtcbiAgZm9yIChjb25zdCBbcGF0aEtleSwgcGF0aEl0ZW1dIG9mIE9iamVjdC5lbnRyaWVzKHNwZWMucGF0aHMgfHwge30pKSB7XG4gICAgZm9yIChjb25zdCBbbWV0aG9kLCBvcF0gb2YgT2JqZWN0LmVudHJpZXMocGF0aEl0ZW0gfHwge30pKSB7XG4gICAgICBpZiAob3AgJiYgdHlwZW9mIG9wID09PSAnb2JqZWN0JyAmJiBvcC5vcGVyYXRpb25JZCA9PT0gb3BlcmF0aW9uSWQpIHtcbiAgICAgICAgZm91bmQgPSB7IG1ldGhvZDogbWV0aG9kLnRvVXBwZXJDYXNlKCksIHBhdGg6IHBhdGhLZXksIG9wIH07XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmICghZm91bmQpIHtcbiAgICByZXR1cm4gYDxwPjxlbT5PcGVyYXRpb24gPGNvZGU+JHtlc2NhcGVIdG1sKG9wZXJhdGlvbklkKX08L2NvZGU+IG5vdCBmb3VuZCBpbiA8Y29kZT4ke2VzY2FwZUh0bWwoc3BlY0ZpbGUpfTwvY29kZT4uPC9lbT48L3A+YDtcbiAgfVxuXG4gIGNvbnN0IHsgbWV0aG9kLCBwYXRoOiBvcFBhdGgsIG9wIH0gPSBmb3VuZDtcbiAgY29uc3QgbWV0aG9kQ29sb3IgPSB7XG4gICAgR0VUOiAnIzIyYzU1ZScsIFBPU1Q6ICcjM2I4MmY2JywgUFVUOiAnI2Y1OWUwYicsIFBBVENIOiAnI2E4NTVmNycsIERFTEVURTogJyNlZjQ0NDQnLFxuICB9W21ldGhvZF0gfHwgJyM2YjcyODAnO1xuXG4gIGNvbnN0IHBhcnRzID0gW107XG4gIHBhcnRzLnB1c2goXG4gICAgYDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBnYXA6IDAuNXJlbTsgYWxpZ24taXRlbXM6IGNlbnRlcjsgbWFyZ2luLWJvdHRvbTogMXJlbTtcIj5gICtcbiAgICBgPHNwYW4gc3R5bGU9XCJiYWNrZ3JvdW5kOiAke21ldGhvZENvbG9yfTsgY29sb3I6IHdoaXRlOyBwYWRkaW5nOiAwLjE1cmVtIDAuNXJlbTsgYm9yZGVyLXJhZGl1czogMC4yNXJlbTsgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAwLjg1cmVtO1wiPiR7bWV0aG9kfTwvc3Bhbj5gICtcbiAgICBgPGNvZGUgc3R5bGU9XCJmb250LXNpemU6IDFyZW07XCI+JHtlc2NhcGVIdG1sKG9wUGF0aCl9PC9jb2RlPmAgK1xuICAgIGA8L2Rpdj5gLFxuICApO1xuICBpZiAob3AuZGVzY3JpcHRpb24pIHBhcnRzLnB1c2goYDxwPiR7ZXNjYXBlSHRtbChvcC5kZXNjcmlwdGlvbil9PC9wPmApO1xuXG4gIGlmIChBcnJheS5pc0FycmF5KG9wLnBhcmFtZXRlcnMpICYmIG9wLnBhcmFtZXRlcnMubGVuZ3RoID4gMCkge1xuICAgIHBhcnRzLnB1c2goYDxoMj5QYXJhbWV0ZXJzPC9oMj5gKTtcbiAgICBwYXJ0cy5wdXNoKGA8dWw+YCk7XG4gICAgZm9yIChjb25zdCBwIG9mIG9wLnBhcmFtZXRlcnMpIHtcbiAgICAgIGNvbnN0IG5hbWUgPSBwLm5hbWUgfHwgJyh1bm5hbWVkKSc7XG4gICAgICBjb25zdCB3aGVyZSA9IHAuaW4gPyBgIDxjb2RlIHN0eWxlPVwiY29sb3I6ICM2YjcyODA7XCI+KCR7cC5pbn0pPC9jb2RlPmAgOiAnJztcbiAgICAgIGNvbnN0IHJlcXVpcmVkID0gcC5yZXF1aXJlZCA/ICcgPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPicgOiAnJztcbiAgICAgIGNvbnN0IGRlc2MgPSBwLmRlc2NyaXB0aW9uID8gYCDigJQgJHtlc2NhcGVIdG1sKHAuZGVzY3JpcHRpb24pfWAgOiAnJztcbiAgICAgIHBhcnRzLnB1c2goYDxsaT48Y29kZT4ke2VzY2FwZUh0bWwobmFtZSl9PC9jb2RlPiR7d2hlcmV9JHtyZXF1aXJlZH0ke2Rlc2N9PC9saT5gKTtcbiAgICB9XG4gICAgcGFydHMucHVzaChgPC91bD5gKTtcbiAgfVxuXG4gIGlmIChvcC5yZXNwb25zZXMgJiYgdHlwZW9mIG9wLnJlc3BvbnNlcyA9PT0gJ29iamVjdCcpIHtcbiAgICBwYXJ0cy5wdXNoKGA8aDI+UmVzcG9uc2VzPC9oMj5gKTtcbiAgICBwYXJ0cy5wdXNoKGA8dWw+YCk7XG4gICAgZm9yIChjb25zdCBbc3RhdHVzLCByZXNwXSBvZiBPYmplY3QuZW50cmllcyhvcC5yZXNwb25zZXMpKSB7XG4gICAgICBjb25zdCBkZXNjID0gcmVzcD8uZGVzY3JpcHRpb24gPyBgIOKAlCAke2VzY2FwZUh0bWwocmVzcC5kZXNjcmlwdGlvbil9YCA6ICcnO1xuICAgICAgcGFydHMucHVzaChgPGxpPjxjb2RlPiR7ZXNjYXBlSHRtbChzdGF0dXMpfTwvY29kZT4ke2Rlc2N9PC9saT5gKTtcbiAgICB9XG4gICAgcGFydHMucHVzaChgPC91bD5gKTtcbiAgfVxuXG4gIHBhcnRzLnB1c2goXG4gICAgYDxociBzdHlsZT1cIm1hcmdpbjogMnJlbSAwOyBib3JkZXI6IDA7IGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTVlN2ViO1wiPmAsXG4gICAgYDxwIHN0eWxlPVwiY29sb3I6ICM2YjcyODA7IGZvbnQtc2l6ZTogMC44NzVyZW07XCI+PGVtPkxvY2FsIHByZXZpZXcgcmVuZGVyZWQgZnJvbSB0aGUgT0FTIHNwZWMuIEZ1bGwgaW50ZXJhY3RpdmUgQVBJIHJlZmVyZW5jZSAodHJ5LWl0LW91dCwgcmVxdWVzdC9yZXNwb25zZSBzY2hlbWFzLCBhdXRoKSByZW5kZXJzIHdoZW4gaW1wb3J0ZWQgaW50byBSZWFkTWUuPC9lbT48L3A+YCxcbiAgKTtcblxuICByZXR1cm4gcGFydHMuam9pbignXFxuJyk7XG59XG5cbmZ1bmN0aW9uIGVzY2FwZUh0bWwocykge1xuICByZXR1cm4gU3RyaW5nKHMpLnJlcGxhY2UoL1smPD5cIiddL2csIChjKSA9PiAoeyAnJic6ICcmYW1wOycsICc8JzogJyZsdDsnLCAnPic6ICcmZ3Q7JywgJ1wiJzogJyZxdW90OycsIFwiJ1wiOiAnJiMzOTsnIH1bY10pKTtcbn1cblxuZnVuY3Rpb24gZmluZEZpcnN0SHJlZihpdGVtcykge1xuICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcbiAgICBpZiAoaXRlbS5ocmVmKSByZXR1cm4gaXRlbS5ocmVmO1xuICAgIGlmIChpdGVtLmNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGZvdW5kID0gZmluZEZpcnN0SHJlZihpdGVtLmNoaWxkcmVuKTtcbiAgICAgIGlmIChmb3VuZCkgcmV0dXJuIGZvdW5kO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpcnN0UGFnZUhyZWYoKSB7XG4gIGNvbnN0IHNpZGViYXIgPSBjb2xsZWN0U2lkZWJhcigpO1xuICByZXR1cm4gZmluZEZpcnN0SHJlZihzaWRlYmFyKTtcbn1cbiJdLCJuYW1lcyI6WyJjcmVhdGVSZXF1aXJlIiwiZnMiLCJwYXRoIiwibWF0dGVyIiwiY29tcGlsZSIsInJ1biIsInlhbWwiLCJfcmVxdWlyZSIsInVybCIsIlJlYWN0IiwicmVuZGVyVG9TdGF0aWNNYXJrdXAiLCJET0NTX1JPT1QiLCJwcm9jZXNzIiwiZW52IiwiU0VDVElPTlMiLCJkaXIiLCJsYWJlbCIsIk1BWF9ERVBUSCIsImRvY3MiLCJyZWZlcmVuY2UiLCJyZWNpcGVzIiwiY3VzdG9tX3BhZ2VzIiwid2Fsa0RpciIsImRpclBhdGgiLCJzZWN0aW9uRGlyIiwiZGVwdGgiLCJleGlzdHNTeW5jIiwib3JkZXIiLCJvcmRlclBhdGgiLCJqb2luIiwibG9hZCIsInJlYWRGaWxlU3luYyIsIml0ZW1zIiwicmVhZGRpclN5bmMiLCJmaWx0ZXIiLCJmIiwic3RhcnRzV2l0aCIsIm1kRmlsZXMiLCJTZXQiLCJlbmRzV2l0aCIsIm1hcCIsInJlcGxhY2UiLCJkaXJzIiwic3RhdFN5bmMiLCJpc0RpcmVjdG9yeSIsImFsbE5hbWVzIiwib3JkZXJlZCIsIm5hbWUiLCJoYXMiLCJyZW1haW5pbmciLCJpbmNsdWRlcyIsImZpbmFsT3JkZXIiLCJlbnRyaWVzIiwiaXNEaXIiLCJpc01kIiwibWF4RGVwdGgiLCJ1bmRlZmluZWQiLCJjaGlsZHJlbiIsInB1c2giLCJpbmRleFBhdGgiLCJzaWJsaW5nTWRQYXRoIiwicGFyZW50UGFnZVBhdGgiLCJ0aXRsZSIsImhyZWYiLCJoaWRkZW4iLCJpY29uIiwiZGF0YSIsImVuY29kZVVSSUNvbXBvbmVudCIsImRlbGV0ZSIsImZpbGVQYXRoIiwibGlua1VybCIsImxpbmsiLCJleHRlcm5hbCIsImNvbGxlY3RTaWRlYmFyIiwic2VjdGlvbnMiLCJmdWxsUGF0aCIsImxlbmd0aCIsImZpcnN0SHJlZiIsImZpbmRGaXJzdEhyZWYiLCJsb2FkQ3VzdG9tQmxvY2tzIiwiZG9jc1Jvb3QiLCJibG9ja3NEaXIiLCJzb3VyY2VzIiwibW9kdWxlcyIsImZpbGVzIiwiZmlsZSIsInJhdyIsImNvbnRlbnQiLCJiYXNlbmFtZSIsImV4dG5hbWUiLCJmaW5kRmlsZSIsInNsdWciLCJkaXJlY3QiLCJpbmRleCIsImVudHJ5IiwiZnVsbCIsImZvdW5kIiwiZ2V0UGFnZSIsInNsdWdBcnJheSIsInNlY3Rpb24iLCJyZXN0IiwicyIsImRlY29kZVVSSUNvbXBvbmVudCIsInNlY3Rpb25QYXRoIiwiaHRtbCIsImFwaSIsIm9wZXJhdGlvbklkIiwidHJpbSIsInJlbmRlck9hc09wZXJhdGlvblByZXZpZXciLCJjb21waWxlZCIsImNvbXBvbmVudHMiLCJtb2QiLCJvcmlnRXJyb3IiLCJjb25zb2xlIiwiZXJyb3IiLCJhcmdzIiwiYXBwbHkiLCJjcmVhdGVFbGVtZW50IiwiZGVmYXVsdCIsImV4Y2VycHQiLCJzcGVjRmlsZSIsInNwZWNQYXRoIiwic3BlYyIsInJhd1NwZWMiLCJ0b0xvd2VyQ2FzZSIsIkpTT04iLCJwYXJzZSIsImUiLCJlc2NhcGVIdG1sIiwibWVzc2FnZSIsInBhdGhLZXkiLCJwYXRoSXRlbSIsIk9iamVjdCIsInBhdGhzIiwibWV0aG9kIiwib3AiLCJ0b1VwcGVyQ2FzZSIsIm9wUGF0aCIsIm1ldGhvZENvbG9yIiwiR0VUIiwiUE9TVCIsIlBVVCIsIlBBVENIIiwiREVMRVRFIiwicGFydHMiLCJkZXNjcmlwdGlvbiIsIkFycmF5IiwiaXNBcnJheSIsInBhcmFtZXRlcnMiLCJwIiwid2hlcmUiLCJpbiIsInJlcXVpcmVkIiwiZGVzYyIsInJlc3BvbnNlcyIsInN0YXR1cyIsInJlc3AiLCJTdHJpbmciLCJjIiwiaXRlbSIsImdldEZpcnN0UGFnZUhyZWYiLCJzaWRlYmFyIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./lib/docs.js\n");
|
|
119
|
+
|
|
120
|
+
/***/ }),
|
|
121
|
+
|
|
122
|
+
/***/ "(ssr)/../../node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2F%40readme%2Fmarkdown%2Fdist%2Fmain.css%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fsrc%2Fdev%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fsrc%2Fdev%2Fapp%2FSidebar.js%22%2C%22ids%22%3A%5B%22SidebarNav%22%2C%22SidebarPanel%22%5D%7D&server=true!":
|
|
123
|
+
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
124
|
+
!*** ../../node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2F%40readme%2Fmarkdown%2Fdist%2Fmain.css%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fsrc%2Fdev%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fsrc%2Fdev%2Fapp%2FSidebar.js%22%2C%22ids%22%3A%5B%22SidebarNav%22%2C%22SidebarPanel%22%5D%7D&server=true! ***!
|
|
125
|
+
\*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
126
|
+
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
|
|
127
|
+
|
|
128
|
+
eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/Sidebar.js */ \"(ssr)/./app/Sidebar.js\"));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvbmV4dC1mbGlnaHQtY2xpZW50LWVudHJ5LWxvYWRlci5qcz9tb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZVc2VycyUyRmdrb2JlcmdlciUyRlNpdGVzJTJGcmVhZG1lJTJGMjAyNi1yZWFkbWUtY2xpJTJGbm9kZV9tb2R1bGVzJTJGJTQwcmVhZG1lJTJGbWFya2Rvd24lMkZkaXN0JTJGbWFpbi5jc3MlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGVXNlcnMlMkZna29iZXJnZXIlMkZTaXRlcyUyRnJlYWRtZSUyRjIwMjYtcmVhZG1lLWNsaSUyRnNyYyUyRmRldiUyRmFwcCUyRmdsb2JhbHMuY3NzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGZ2tvYmVyZ2VyJTJGU2l0ZXMlMkZyZWFkbWUlMkYyMDI2LXJlYWRtZS1jbGklMkZzcmMlMkZkZXYlMkZhcHAlMkZTaWRlYmFyLmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTIyU2lkZWJhck5hdiUyMiUyQyUyMlNpZGViYXJQYW5lbCUyMiU1RCU3RCZzZXJ2ZXI9dHJ1ZSEiLCJtYXBwaW5ncyI6IkFBQUEsNElBQXdKIiwic291cmNlcyI6WyIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIsIHdlYnBhY2tFeHBvcnRzOiBbXCJTaWRlYmFyTmF2XCIsXCJTaWRlYmFyUGFuZWxcIl0gKi8gXCIvVXNlcnMvZ2tvYmVyZ2VyL1NpdGVzL3JlYWRtZS8yMDI2LXJlYWRtZS1jbGkvc3JjL2Rldi9hcHAvU2lkZWJhci5qc1wiKTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2F%40readme%2Fmarkdown%2Fdist%2Fmain.css%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fsrc%2Fdev%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fsrc%2Fdev%2Fapp%2FSidebar.js%22%2C%22ids%22%3A%5B%22SidebarNav%22%2C%22SidebarPanel%22%5D%7D&server=true!\n");
|
|
129
|
+
|
|
130
|
+
/***/ }),
|
|
131
|
+
|
|
132
|
+
/***/ "(ssr)/../../node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fbuiltin%2Fglobal-error.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fmetadata%2Fasync-metadata.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fframework%2Fboundary-components.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fgenerate%2Ficon-mark.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fnext-devtools%2Fuserspace%2Fapp%2Fsegment-explorer-node.js%22%2C%22ids%22%3A%5B%5D%7D&server=true!":
|
|
133
|
+
/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
134
|
+
!*** ../../node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fbuiltin%2Fglobal-error.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fmetadata%2Fasync-metadata.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fframework%2Fboundary-components.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fgenerate%2Ficon-mark.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fnext-devtools%2Fuserspace%2Fapp%2Fsegment-explorer-node.js%22%2C%22ids%22%3A%5B%5D%7D&server=true! ***!
|
|
135
|
+
\***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
136
|
+
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
|
|
137
|
+
|
|
138
|
+
eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ../../node_modules/next/dist/client/components/builtin/global-error.js */ \"(ssr)/../../node_modules/next/dist/client/components/builtin/global-error.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ../../node_modules/next/dist/client/components/client-page.js */ \"(ssr)/../../node_modules/next/dist/client/components/client-page.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ../../node_modules/next/dist/client/components/client-segment.js */ \"(ssr)/../../node_modules/next/dist/client/components/client-segment.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ../../node_modules/next/dist/client/components/http-access-fallback/error-boundary.js */ \"(ssr)/../../node_modules/next/dist/client/components/http-access-fallback/error-boundary.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ../../node_modules/next/dist/client/components/layout-router.js */ \"(ssr)/../../node_modules/next/dist/client/components/layout-router.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ../../node_modules/next/dist/client/components/metadata/async-metadata.js */ \"(ssr)/../../node_modules/next/dist/client/components/metadata/async-metadata.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ../../node_modules/next/dist/client/components/render-from-template-context.js */ \"(ssr)/../../node_modules/next/dist/client/components/render-from-template-context.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ../../node_modules/next/dist/lib/framework/boundary-components.js */ \"(ssr)/../../node_modules/next/dist/lib/framework/boundary-components.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ../../node_modules/next/dist/lib/metadata/generate/icon-mark.js */ \"(ssr)/../../node_modules/next/dist/lib/metadata/generate/icon-mark.js\"));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ../../node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js */ \"(ssr)/../../node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js\", 23));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi4vLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvbmV4dC1mbGlnaHQtY2xpZW50LWVudHJ5LWxvYWRlci5qcz9tb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZVc2VycyUyRmdrb2JlcmdlciUyRlNpdGVzJTJGcmVhZG1lJTJGMjAyNi1yZWFkbWUtY2xpJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGYnVpbHRpbiUyRmdsb2JhbC1lcnJvci5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZVc2VycyUyRmdrb2JlcmdlciUyRlNpdGVzJTJGcmVhZG1lJTJGMjAyNi1yZWFkbWUtY2xpJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGY2xpZW50LXBhZ2UuanMlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGVXNlcnMlMkZna29iZXJnZXIlMkZTaXRlcyUyRnJlYWRtZSUyRjIwMjYtcmVhZG1lLWNsaSUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRmNsaWVudC1zZWdtZW50LmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGZ2tvYmVyZ2VyJTJGU2l0ZXMlMkZyZWFkbWUlMkYyMDI2LXJlYWRtZS1jbGklMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZodHRwLWFjY2Vzcy1mYWxsYmFjayUyRmVycm9yLWJvdW5kYXJ5LmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGZ2tvYmVyZ2VyJTJGU2l0ZXMlMkZyZWFkbWUlMkYyMDI2LXJlYWRtZS1jbGklMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZsYXlvdXQtcm91dGVyLmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGZ2tvYmVyZ2VyJTJGU2l0ZXMlMkZyZWFkbWUlMkYyMDI2LXJlYWRtZS1jbGklMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZtZXRhZGF0YSUyRmFzeW5jLW1ldGFkYXRhLmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGZ2tvYmVyZ2VyJTJGU2l0ZXMlMkZyZWFkbWUlMkYyMDI2LXJlYWRtZS1jbGklMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZyZW5kZXItZnJvbS10ZW1wbGF0ZS1jb250ZXh0LmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGZ2tvYmVyZ2VyJTJGU2l0ZXMlMkZyZWFkbWUlMkYyMDI2LXJlYWRtZS1jbGklMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmxpYiUyRmZyYW1ld29yayUyRmJvdW5kYXJ5LWNvbXBvbmVudHMuanMlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGVXNlcnMlMkZna29iZXJnZXIlMkZTaXRlcyUyRnJlYWRtZSUyRjIwMjYtcmVhZG1lLWNsaSUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGbGliJTJGbWV0YWRhdGElMkZnZW5lcmF0ZSUyRmljb24tbWFyay5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZVc2VycyUyRmdrb2JlcmdlciUyRlNpdGVzJTJGcmVhZG1lJTJGMjAyNi1yZWFkbWUtY2xpJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZuZXh0LWRldnRvb2xzJTJGdXNlcnNwYWNlJTJGYXBwJTJGc2VnbWVudC1leHBsb3Jlci1ub2RlLmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJnNlcnZlcj10cnVlISIsIm1hcHBpbmdzIjoiQUFBQSw4UEFBbUo7QUFDbko7QUFDQSw0T0FBMEk7QUFDMUk7QUFDQSxrUEFBNkk7QUFDN0k7QUFDQSw0UkFBa0s7QUFDbEs7QUFDQSxnUEFBNEk7QUFDNUk7QUFDQSxvUUFBc0o7QUFDdEo7QUFDQSw4UUFBMko7QUFDM0o7QUFDQSxvUEFBOEk7QUFDOUk7QUFDQSwwT0FBNEk7QUFDNUk7QUFDQSxvUkFBOEoiLCJzb3VyY2VzIjpbIiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9na29iZXJnZXIvU2l0ZXMvcmVhZG1lLzIwMjYtcmVhZG1lLWNsaS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2J1aWx0aW4vZ2xvYmFsLWVycm9yLmpzXCIpO1xuO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvZ2tvYmVyZ2VyL1NpdGVzL3JlYWRtZS8yMDI2LXJlYWRtZS1jbGkvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9jbGllbnQtcGFnZS5qc1wiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL2drb2Jlcmdlci9TaXRlcy9yZWFkbWUvMjAyNi1yZWFkbWUtY2xpL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvY2xpZW50LXNlZ21lbnQuanNcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9na29iZXJnZXIvU2l0ZXMvcmVhZG1lLzIwMjYtcmVhZG1lLWNsaS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2Vycm9yLWJvdW5kYXJ5LmpzXCIpO1xuO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvZ2tvYmVyZ2VyL1NpdGVzL3JlYWRtZS8yMDI2LXJlYWRtZS1jbGkvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9sYXlvdXQtcm91dGVyLmpzXCIpO1xuO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvZ2tvYmVyZ2VyL1NpdGVzL3JlYWRtZS8yMDI2LXJlYWRtZS1jbGkvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9tZXRhZGF0YS9hc3luYy1tZXRhZGF0YS5qc1wiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL2drb2Jlcmdlci9TaXRlcy9yZWFkbWUvMjAyNi1yZWFkbWUtY2xpL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvcmVuZGVyLWZyb20tdGVtcGxhdGUtY29udGV4dC5qc1wiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL2drb2Jlcmdlci9TaXRlcy9yZWFkbWUvMjAyNi1yZWFkbWUtY2xpL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2ZyYW1ld29yay9ib3VuZGFyeS1jb21wb25lbnRzLmpzXCIpO1xuO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvZ2tvYmVyZ2VyL1NpdGVzL3JlYWRtZS8yMDI2LXJlYWRtZS1jbGkvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvbWV0YWRhdGEvZ2VuZXJhdGUvaWNvbi1tYXJrLmpzXCIpO1xuO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvZ2tvYmVyZ2VyL1NpdGVzL3JlYWRtZS8yMDI2LXJlYWRtZS1jbGkvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9uZXh0LWRldnRvb2xzL3VzZXJzcGFjZS9hcHAvc2VnbWVudC1leHBsb3Jlci1ub2RlLmpzXCIpO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/../../node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fbuiltin%2Fglobal-error.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fmetadata%2Fasync-metadata.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fframework%2Fboundary-components.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fgenerate%2Ficon-mark.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fnode_modules%2Fnext%2Fdist%2Fnext-devtools%2Fuserspace%2Fapp%2Fsegment-explorer-node.js%22%2C%22ids%22%3A%5B%5D%7D&server=true!\n");
|
|
139
|
+
|
|
140
|
+
/***/ }),
|
|
141
|
+
|
|
142
|
+
/***/ "(ssr)/../../node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?server=true!":
|
|
143
|
+
/*!**********************************************************************************************************!*\
|
|
144
|
+
!*** ../../node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?server=true! ***!
|
|
145
|
+
\**********************************************************************************************************/
|
|
146
|
+
/***/ (() => {
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
/***/ }),
|
|
151
|
+
|
|
152
|
+
/***/ "(ssr)/./app/Sidebar.js":
|
|
153
|
+
/*!************************!*\
|
|
154
|
+
!*** ./app/Sidebar.js ***!
|
|
155
|
+
\************************/
|
|
156
|
+
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
157
|
+
|
|
158
|
+
"use strict";
|
|
159
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SidebarNav: () => (/* binding */ SidebarNav),\n/* harmony export */ SidebarPanel: () => (/* binding */ SidebarPanel)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/../../node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"(ssr)/../../node_modules/next/dist/client/app-dir/link.js\");\n/* harmony import */ var next_navigation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/navigation */ \"(ssr)/../../node_modules/next/dist/api/navigation.js\");\n/* __next_internal_client_entry_do_not_use__ SidebarNav,SidebarPanel auto */ \n\n\nfunction SidebarIcon({ icon }) {\n if (!icon) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"w-5 shrink-0\"\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/Sidebar.js\",\n lineNumber: 8,\n columnNumber: 12\n }, this);\n }\n const FA_STYLE_MAP = {\n far: 'fa-regular',\n fas: 'fa-solid',\n fab: 'fa-brands',\n fal: 'fa-light',\n fad: 'fa-duotone'\n };\n const parts = icon.split(' ');\n let cls;\n if (FA_STYLE_MAP[parts[0]]) {\n cls = `${FA_STYLE_MAP[parts[0]]} ${parts.slice(1).join(' ')}`;\n } else if (icon.includes('fa-')) {\n cls = icon.includes(' ') ? icon : `fa-solid ${icon}`;\n } else if (/^[a-z][a-z0-9-]*$/.test(icon)) {\n cls = `fa-solid fa-${icon}`;\n }\n if (cls) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"i\", {\n className: `${cls} text-[14px] w-5 text-left shrink-0 opacity-40 mt-[4px]`\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/Sidebar.js\",\n lineNumber: 24,\n columnNumber: 12\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-[14px] w-5 text-center shrink-0 leading-none mt-[4px]\",\n children: icon\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/Sidebar.js\",\n lineNumber: 27,\n columnNumber: 10\n }, this);\n}\nfunction hasActiveChild(items, activePath) {\n for (const item of items){\n if (item.href && activePath === item.href) return true;\n if (item.children?.length && hasActiveChild(item.children, activePath)) return true;\n }\n return false;\n}\nfunction SidebarItems({ items, depth = 0, activePath }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n className: \"list-none m-0 p-0\",\n children: items.map((item, i)=>{\n const isActive = item.href && activePath === item.href;\n const hasChildren = item.children?.length > 0;\n const isExpanded = hasChildren && (isActive || hasActiveChild(item.children, activePath));\n if (!item.href) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"block pl-3 pr-3 pt-9 pb-1 text-[12px] font-bold uppercase tracking-wider text-gray-500 first:pt-3\",\n children: item.title\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/Sidebar.js\",\n lineNumber: 49,\n columnNumber: 15\n }, this),\n hasChildren && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SidebarItems, {\n items: item.children,\n depth: depth,\n activePath: activePath\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/Sidebar.js\",\n lineNumber: 52,\n columnNumber: 31\n }, this)\n ]\n }, i, true, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/Sidebar.js\",\n lineNumber: 48,\n columnNumber: 13\n }, this);\n }\n if (hasChildren) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n \"data-sidebar-group\": true,\n \"data-expanded\": isExpanded ? 'true' : 'false',\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_1__, {\n href: item.href || '#',\n \"data-sidebar-toggle\": true,\n className: [\n 'flex items-start gap-2 py-[5px] pr-3 mr-3 text-[15px] no-underline transition-colors duration-150 rounded-lg',\n depth === 0 ? 'pl-3' : depth === 1 ? 'pl-6' : 'pl-9',\n isActive ? 'text-[#018ef5] bg-[#018ef5]/[0.07] font-medium' : 'text-gray-600 hover:text-gray-900 hover:bg-gray-100/60'\n ].join(' '),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SidebarIcon, {\n icon: item.icon\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/Sidebar.js\",\n lineNumber: 71,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"flex-1\",\n children: item.title\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/Sidebar.js\",\n lineNumber: 72,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"i\", {\n className: \"fa-solid fa-chevron-right text-[9px] text-gray-300 transition-transform duration-200 sidebar-chevron mt-[7px]\"\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/Sidebar.js\",\n lineNumber: 73,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/Sidebar.js\",\n lineNumber: 60,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"sidebar-children overflow-hidden\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SidebarItems, {\n items: item.children,\n depth: depth + 1,\n activePath: activePath\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/Sidebar.js\",\n lineNumber: 76,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/Sidebar.js\",\n lineNumber: 75,\n columnNumber: 15\n }, this)\n ]\n }, i, true, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/Sidebar.js\",\n lineNumber: 59,\n columnNumber: 13\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_1__, {\n href: item.href,\n className: [\n 'flex items-start gap-2 py-[5px] pr-3 mr-3 text-[15px] no-underline transition-colors duration-150 rounded-lg',\n depth === 0 ? 'pl-3' : depth === 1 ? 'pl-6' : 'pl-9',\n item.hidden ? 'opacity-40' : '',\n isActive ? 'text-[#018ef5] bg-[#018ef5]/[0.07] font-medium' : item.hidden ? 'text-gray-400 hover:text-gray-500 hover:bg-gray-100/40' : 'text-gray-600 hover:text-gray-900 hover:bg-gray-100/60'\n ].join(' '),\n ...item.external ? {\n target: '_blank',\n rel: 'noopener noreferrer'\n } : {},\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SidebarIcon, {\n icon: item.icon\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/Sidebar.js\",\n lineNumber: 98,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"flex-1\",\n children: item.title\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/Sidebar.js\",\n lineNumber: 99,\n columnNumber: 15\n }, this),\n item.external && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-gray-300 text-[11px]\",\n children: \"↗\"\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/Sidebar.js\",\n lineNumber: 100,\n columnNumber: 33\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/Sidebar.js\",\n lineNumber: 84,\n columnNumber: 13\n }, this)\n }, i, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/Sidebar.js\",\n lineNumber: 83,\n columnNumber: 11\n }, this);\n })\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/Sidebar.js\",\n lineNumber: 40,\n columnNumber: 5\n }, this);\n}\nfunction SidebarNav({ sidebar }) {\n const pathname = (0,next_navigation__WEBPACK_IMPORTED_MODULE_2__.usePathname)();\n const firstSegment = pathname.split('/').filter(Boolean)[0] || '';\n const activeSectionDir = sidebar.find((s)=>s.dir === firstSegment)?.dir || sidebar[0]?.dir;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"nav\", {\n className: \"flex h-full items-stretch gap-1\",\n children: sidebar.map((section, i)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_1__, {\n href: section.firstHref,\n className: `flex items-center px-3 text-[13px] font-medium no-underline border-b-2 transition-colors duration-150 ${section.dir === activeSectionDir ? 'border-[#018ef5] text-white' : 'border-transparent text-white/40 hover:text-white/70'}`,\n children: section.title\n }, i, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/Sidebar.js\",\n lineNumber: 118,\n columnNumber: 11\n }, this))\n }, void 0, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/Sidebar.js\",\n lineNumber: 116,\n columnNumber: 7\n }, this)\n }, void 0, false);\n}\nfunction SidebarPanel({ sidebar }) {\n const pathname = (0,next_navigation__WEBPACK_IMPORTED_MODULE_2__.usePathname)();\n const firstSegment = pathname.split('/').filter(Boolean)[0] || '';\n const activeSectionDir = sidebar.find((s)=>s.dir === firstSegment)?.dir || sidebar[0]?.dir;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: sidebar.filter((s)=>s.dir === activeSectionDir).map((section, i)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SidebarItems, {\n items: section.children,\n activePath: pathname\n }, i, false, {\n fileName: \"/Users/gkoberger/Sites/readme/2026-readme-cli/src/dev/app/Sidebar.js\",\n lineNumber: 145,\n columnNumber: 11\n }, this))\n }, void 0, false);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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R0FBRyxDQUFDLENBQUN5QixTQUFTcEMsa0JBQ3JCLDhEQUFDbkIsc0NBQUlBO29CQUVId0IsTUFBTStCLFFBQVFDLFNBQVM7b0JBQ3ZCbkQsV0FBVyxDQUFDLHNHQUFzRyxFQUNoSGtELFFBQVFGLEdBQUcsS0FBS0gsbUJBQ1osZ0NBQ0Esd0RBQ0o7OEJBRURLLFFBQVFwQixLQUFLO21CQVJUaEI7Ozs7Ozs7Ozs7O0FBY2pCO0FBRU8sU0FBU3NDLGFBQWEsRUFBRVosT0FBTyxFQUFFO0lBQ3RDLE1BQU1DLFdBQVc3Qyw0REFBV0E7SUFDNUIsTUFBTThDLGVBQWVELFNBQVNqQyxLQUFLLENBQUMsS0FBS21DLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDLEVBQUUsSUFBSTtJQUMvRCxNQUFNQyxtQkFBbUJMLFFBQVFNLElBQUksQ0FBQ0MsQ0FBQUEsSUFBS0EsRUFBRUMsR0FBRyxLQUFLTixlQUFlTSxPQUFPUixPQUFPLENBQUMsRUFBRSxFQUFFUTtJQUV2RixxQkFDRTtrQkFDR1IsUUFDRUcsTUFBTSxDQUFDSSxDQUFBQSxJQUFLQSxFQUFFQyxHQUFHLEtBQUtILGtCQUN0QnBCLEdBQUcsQ0FBQyxDQUFDeUIsU0FBU3BDLGtCQUNiLDhEQUFDUTtnQkFBcUJOLE9BQU9rQyxRQUFROUIsUUFBUTtnQkFBRUgsWUFBWXdCO2VBQXhDM0I7Ozs7OztBQUk3QiIsInNvdXJjZXMiOlsiL1VzZXJzL2drb2Jlcmdlci9TaXRlcy9yZWFkbWUvMjAyNi1yZWFkbWUtY2xpL3NyYy9kZXYvYXBwL1NpZGViYXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnO1xuXG5pbXBvcnQgTGluayBmcm9tICduZXh0L2xpbmsnO1xuaW1wb3J0IHsgdXNlUGF0aG5hbWUgfSBmcm9tICduZXh0L25hdmlnYXRpb24nO1xuXG5mdW5jdGlvbiBTaWRlYmFySWNvbih7IGljb24gfSkge1xuICBpZiAoIWljb24pIHtcbiAgICByZXR1cm4gPHNwYW4gY2xhc3NOYW1lPVwidy01IHNocmluay0wXCIgLz47XG4gIH1cblxuICBjb25zdCBGQV9TVFlMRV9NQVAgPSB7IGZhcjogJ2ZhLXJlZ3VsYXInLCBmYXM6ICdmYS1zb2xpZCcsIGZhYjogJ2ZhLWJyYW5kcycsIGZhbDogJ2ZhLWxpZ2h0JywgZmFkOiAnZmEtZHVvdG9uZScgfTtcblxuICBjb25zdCBwYXJ0cyA9IGljb24uc3BsaXQoJyAnKTtcbiAgbGV0IGNscztcbiAgaWYgKEZBX1NUWUxFX01BUFtwYXJ0c1swXV0pIHtcbiAgICBjbHMgPSBgJHtGQV9TVFlMRV9NQVBbcGFydHNbMF1dfSAke3BhcnRzLnNsaWNlKDEpLmpvaW4oJyAnKX1gO1xuICB9IGVsc2UgaWYgKGljb24uaW5jbHVkZXMoJ2ZhLScpKSB7XG4gICAgY2xzID0gaWNvbi5pbmNsdWRlcygnICcpID8gaWNvbiA6IGBmYS1zb2xpZCAke2ljb259YDtcbiAgfSBlbHNlIGlmICgvXlthLXpdW2EtejAtOS1dKiQvLnRlc3QoaWNvbikpIHtcbiAgICBjbHMgPSBgZmEtc29saWQgZmEtJHtpY29ufWA7XG4gIH1cblxuICBpZiAoY2xzKSB7XG4gICAgcmV0dXJuIDxpIGNsYXNzTmFtZT17YCR7Y2xzfSB0ZXh0LVsxNHB4XSB3LTUgdGV4dC1sZWZ0IHNocmluay0wIG9wYWNpdHktNDAgbXQtWzRweF1gfSAvPjtcbiAgfVxuXG4gIHJldHVybiA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LVsxNHB4XSB3LTUgdGV4dC1jZW50ZXIgc2hyaW5rLTAgbGVhZGluZy1ub25lIG10LVs0cHhdXCI+e2ljb259PC9zcGFuPjtcbn1cblxuZnVuY3Rpb24gaGFzQWN0aXZlQ2hpbGQoaXRlbXMsIGFjdGl2ZVBhdGgpIHtcbiAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgaWYgKGl0ZW0uaHJlZiAmJiBhY3RpdmVQYXRoID09PSBpdGVtLmhyZWYpIHJldHVybiB0cnVlO1xuICAgIGlmIChpdGVtLmNoaWxkcmVuPy5sZW5ndGggJiYgaGFzQWN0aXZlQ2hpbGQoaXRlbS5jaGlsZHJlbiwgYWN0aXZlUGF0aCkpIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gU2lkZWJhckl0ZW1zKHsgaXRlbXMsIGRlcHRoID0gMCwgYWN0aXZlUGF0aCB9KSB7XG4gIHJldHVybiAoXG4gICAgPHVsIGNsYXNzTmFtZT1cImxpc3Qtbm9uZSBtLTAgcC0wXCI+XG4gICAgICB7aXRlbXMubWFwKChpdGVtLCBpKSA9PiB7XG4gICAgICAgIGNvbnN0IGlzQWN0aXZlID0gaXRlbS5ocmVmICYmIGFjdGl2ZVBhdGggPT09IGl0ZW0uaHJlZjtcbiAgICAgICAgY29uc3QgaGFzQ2hpbGRyZW4gPSBpdGVtLmNoaWxkcmVuPy5sZW5ndGggPiAwO1xuICAgICAgICBjb25zdCBpc0V4cGFuZGVkID0gaGFzQ2hpbGRyZW4gJiYgKGlzQWN0aXZlIHx8IGhhc0FjdGl2ZUNoaWxkKGl0ZW0uY2hpbGRyZW4sIGFjdGl2ZVBhdGgpKTtcblxuICAgICAgICBpZiAoIWl0ZW0uaHJlZikge1xuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8bGkga2V5PXtpfT5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYmxvY2sgcGwtMyBwci0zIHB0LTkgcGItMSB0ZXh0LVsxMnB4XSBmb250LWJvbGQgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVyIHRleHQtZ3JheS01MDAgZmlyc3Q6cHQtM1wiPlxuICAgICAgICAgICAgICAgIHtpdGVtLnRpdGxlfVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIHtoYXNDaGlsZHJlbiAmJiA8U2lkZWJhckl0ZW1zIGl0ZW1zPXtpdGVtLmNoaWxkcmVufSBkZXB0aD17ZGVwdGh9IGFjdGl2ZVBhdGg9e2FjdGl2ZVBhdGh9IC8+fVxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhhc0NoaWxkcmVuKSB7XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxsaSBrZXk9e2l9IGRhdGEtc2lkZWJhci1ncm91cCBkYXRhLWV4cGFuZGVkPXtpc0V4cGFuZGVkID8gJ3RydWUnIDogJ2ZhbHNlJ30+XG4gICAgICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICAgICAgaHJlZj17aXRlbS5ocmVmIHx8ICcjJ31cbiAgICAgICAgICAgICAgICBkYXRhLXNpZGViYXItdG9nZ2xlXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtbXG4gICAgICAgICAgICAgICAgICAnZmxleCBpdGVtcy1zdGFydCBnYXAtMiBweS1bNXB4XSBwci0zIG1yLTMgdGV4dC1bMTVweF0gbm8tdW5kZXJsaW5lIHRyYW5zaXRpb24tY29sb3JzIGR1cmF0aW9uLTE1MCByb3VuZGVkLWxnJyxcbiAgICAgICAgICAgICAgICAgIGRlcHRoID09PSAwID8gJ3BsLTMnIDogZGVwdGggPT09IDEgPyAncGwtNicgOiAncGwtOScsXG4gICAgICAgICAgICAgICAgICBpc0FjdGl2ZVxuICAgICAgICAgICAgICAgICAgICA/ICd0ZXh0LVsjMDE4ZWY1XSBiZy1bIzAxOGVmNV0vWzAuMDddIGZvbnQtbWVkaXVtJ1xuICAgICAgICAgICAgICAgICAgICA6ICd0ZXh0LWdyYXktNjAwIGhvdmVyOnRleHQtZ3JheS05MDAgaG92ZXI6YmctZ3JheS0xMDAvNjAnLFxuICAgICAgICAgICAgICAgIF0uam9pbignICcpfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFNpZGViYXJJY29uIGljb249e2l0ZW0uaWNvbn0gLz5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJmbGV4LTFcIj57aXRlbS50aXRsZX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiZmEtc29saWQgZmEtY2hldnJvbi1yaWdodCB0ZXh0LVs5cHhdIHRleHQtZ3JheS0zMDAgdHJhbnNpdGlvbi10cmFuc2Zvcm0gZHVyYXRpb24tMjAwIHNpZGViYXItY2hldnJvbiBtdC1bN3B4XVwiIC8+XG4gICAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzaWRlYmFyLWNoaWxkcmVuIG92ZXJmbG93LWhpZGRlblwiPlxuICAgICAgICAgICAgICAgIDxTaWRlYmFySXRlbXMgaXRlbXM9e2l0ZW0uY2hpbGRyZW59IGRlcHRoPXtkZXB0aCArIDF9IGFjdGl2ZVBhdGg9e2FjdGl2ZVBhdGh9IC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8bGkga2V5PXtpfT5cbiAgICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICAgIGhyZWY9e2l0ZW0uaHJlZn1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtbXG4gICAgICAgICAgICAgICAgJ2ZsZXggaXRlbXMtc3RhcnQgZ2FwLTIgcHktWzVweF0gcHItMyBtci0zIHRleHQtWzE1cHhdIG5vLXVuZGVybGluZSB0cmFuc2l0aW9uLWNvbG9ycyBkdXJhdGlvbi0xNTAgcm91bmRlZC1sZycsXG4gICAgICAgICAgICAgICAgZGVwdGggPT09IDAgPyAncGwtMycgOiBkZXB0aCA9PT0gMSA/ICdwbC02JyA6ICdwbC05JyxcbiAgICAgICAgICAgICAgICBpdGVtLmhpZGRlbiA/ICdvcGFjaXR5LTQwJyA6ICcnLFxuICAgICAgICAgICAgICAgIGlzQWN0aXZlXG4gICAgICAgICAgICAgICAgICA/ICd0ZXh0LVsjMDE4ZWY1XSBiZy1bIzAxOGVmNV0vWzAuMDddIGZvbnQtbWVkaXVtJ1xuICAgICAgICAgICAgICAgICAgOiBpdGVtLmhpZGRlblxuICAgICAgICAgICAgICAgICAgICA/ICd0ZXh0LWdyYXktNDAwIGhvdmVyOnRleHQtZ3JheS01MDAgaG92ZXI6YmctZ3JheS0xMDAvNDAnXG4gICAgICAgICAgICAgICAgICAgIDogJ3RleHQtZ3JheS02MDAgaG92ZXI6dGV4dC1ncmF5LTkwMCBob3ZlcjpiZy1ncmF5LTEwMC82MCcsXG4gICAgICAgICAgICAgIF0uam9pbignICcpfVxuICAgICAgICAgICAgICB7Li4uKGl0ZW0uZXh0ZXJuYWwgPyB7IHRhcmdldDogJ19ibGFuaycsIHJlbDogJ25vb3BlbmVyIG5vcmVmZXJyZXInIH0gOiB7fSl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTaWRlYmFySWNvbiBpY29uPXtpdGVtLmljb259IC8+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZsZXgtMVwiPntpdGVtLnRpdGxlfTwvc3Bhbj5cbiAgICAgICAgICAgICAge2l0ZW0uZXh0ZXJuYWwgJiYgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1ncmF5LTMwMCB0ZXh0LVsxMXB4XVwiPuKGlzwvc3Bhbj59XG4gICAgICAgICAgICA8L0xpbms+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgKTtcbiAgICAgIH0pfVxuICAgIDwvdWw+XG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBTaWRlYmFyTmF2KHsgc2lkZWJhciB9KSB7XG4gIGNvbnN0IHBhdGhuYW1lID0gdXNlUGF0aG5hbWUoKTtcbiAgY29uc3QgZmlyc3RTZWdtZW50ID0gcGF0aG5hbWUuc3BsaXQoJy8nKS5maWx0ZXIoQm9vbGVhbilbMF0gfHwgJyc7XG4gIGNvbnN0IGFjdGl2ZVNlY3Rpb25EaXIgPSBzaWRlYmFyLmZpbmQocyA9PiBzLmRpciA9PT0gZmlyc3RTZWdtZW50KT8uZGlyIHx8IHNpZGViYXJbMF0/LmRpcjtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8bmF2IGNsYXNzTmFtZT1cImZsZXggaC1mdWxsIGl0ZW1zLXN0cmV0Y2ggZ2FwLTFcIj5cbiAgICAgICAge3NpZGViYXIubWFwKChzZWN0aW9uLCBpKSA9PiAoXG4gICAgICAgICAgPExpbmtcbiAgICAgICAgICAgIGtleT17aX1cbiAgICAgICAgICAgIGhyZWY9e3NlY3Rpb24uZmlyc3RIcmVmfVxuICAgICAgICAgICAgY2xhc3NOYW1lPXtgZmxleCBpdGVtcy1jZW50ZXIgcHgtMyB0ZXh0LVsxM3B4XSBmb250LW1lZGl1bSBuby11bmRlcmxpbmUgYm9yZGVyLWItMiB0cmFuc2l0aW9uLWNvbG9ycyBkdXJhdGlvbi0xNTAgJHtcbiAgICAgICAgICAgICAgc2VjdGlvbi5kaXIgPT09IGFjdGl2ZVNlY3Rpb25EaXJcbiAgICAgICAgICAgICAgICA/ICdib3JkZXItWyMwMThlZjVdIHRleHQtd2hpdGUnXG4gICAgICAgICAgICAgICAgOiAnYm9yZGVyLXRyYW5zcGFyZW50IHRleHQtd2hpdGUvNDAgaG92ZXI6dGV4dC13aGl0ZS83MCdcbiAgICAgICAgICAgIH1gfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtzZWN0aW9uLnRpdGxlfVxuICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgKSl9XG4gICAgICA8L25hdj5cbiAgICA8Lz5cbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFNpZGViYXJQYW5lbCh7IHNpZGViYXIgfSkge1xuICBjb25zdCBwYXRobmFtZSA9IHVzZVBhdGhuYW1lKCk7XG4gIGNvbnN0IGZpcnN0U2VnbWVudCA9IHBhdGhuYW1lLnNwbGl0KCcvJykuZmlsdGVyKEJvb2xlYW4pWzBdIHx8ICcnO1xuICBjb25zdCBhY3RpdmVTZWN0aW9uRGlyID0gc2lkZWJhci5maW5kKHMgPT4gcy5kaXIgPT09IGZpcnN0U2VnbWVudCk/LmRpciB8fCBzaWRlYmFyWzBdPy5kaXI7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAge3NpZGViYXJcbiAgICAgICAgLmZpbHRlcihzID0+IHMuZGlyID09PSBhY3RpdmVTZWN0aW9uRGlyKVxuICAgICAgICAubWFwKChzZWN0aW9uLCBpKSA9PiAoXG4gICAgICAgICAgPFNpZGViYXJJdGVtcyBrZXk9e2l9IGl0ZW1zPXtzZWN0aW9uLmNoaWxkcmVufSBhY3RpdmVQYXRoPXtwYXRobmFtZX0gLz5cbiAgICAgICAgKSl9XG4gICAgPC8+XG4gICk7XG59XG4iXSwibmFtZXMiOlsiTGluayIsInVzZVBhdGhuYW1lIiwiU2lkZWJhckljb24iLCJpY29uIiwic3BhbiIsImNsYXNzTmFtZSIsIkZBX1NUWUxFX01BUCIsImZhciIsImZhcyIsImZhYiIsImZhbCIsImZhZCIsInBhcnRzIiwic3BsaXQiLCJjbHMiLCJzbGljZSIsImpvaW4iLCJpbmNsdWRlcyIsInRlc3QiLCJpIiwiaGFzQWN0aXZlQ2hpbGQiLCJpdGVtcyIsImFjdGl2ZVBhdGgiLCJpdGVtIiwiaHJlZiIsImNoaWxkcmVuIiwibGVuZ3RoIiwiU2lkZWJhckl0ZW1zIiwiZGVwdGgiLCJ1bCIsIm1hcCIsImlzQWN0aXZlIiwiaGFzQ2hpbGRyZW4iLCJpc0V4cGFuZGVkIiwibGkiLCJ0aXRsZSIsImRhdGEtc2lkZWJhci1ncm91cCIsImRhdGEtZXhwYW5kZWQiLCJkYXRhLXNpZGViYXItdG9nZ2xlIiwiZGl2IiwiaGlkZGVuIiwiZXh0ZXJuYWwiLCJ0YXJnZXQiLCJyZWwiLCJTaWRlYmFyTmF2Iiwic2lkZWJhciIsInBhdGhuYW1lIiwiZmlyc3RTZWdtZW50IiwiZmlsdGVyIiwiQm9vbGVhbiIsImFjdGl2ZVNlY3Rpb25EaXIiLCJmaW5kIiwicyIsImRpciIsIm5hdiIsInNlY3Rpb24iLCJmaXJzdEhyZWYiLCJTaWRlYmFyUGFuZWwiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./app/Sidebar.js\n");
|
|
160
|
+
|
|
161
|
+
/***/ }),
|
|
162
|
+
|
|
163
|
+
/***/ "../app-render/action-async-storage.external":
|
|
164
|
+
/*!*******************************************************************************!*\
|
|
165
|
+
!*** external "next/dist/server/app-render/action-async-storage.external.js" ***!
|
|
166
|
+
\*******************************************************************************/
|
|
167
|
+
/***/ ((module) => {
|
|
168
|
+
|
|
169
|
+
"use strict";
|
|
170
|
+
module.exports = require("next/dist/server/app-render/action-async-storage.external.js");
|
|
171
|
+
|
|
172
|
+
/***/ }),
|
|
173
|
+
|
|
174
|
+
/***/ "../app-render/after-task-async-storage.external":
|
|
175
|
+
/*!***********************************************************************************!*\
|
|
176
|
+
!*** external "next/dist/server/app-render/after-task-async-storage.external.js" ***!
|
|
177
|
+
\***********************************************************************************/
|
|
178
|
+
/***/ ((module) => {
|
|
179
|
+
|
|
180
|
+
"use strict";
|
|
181
|
+
module.exports = require("next/dist/server/app-render/after-task-async-storage.external.js");
|
|
182
|
+
|
|
183
|
+
/***/ }),
|
|
184
|
+
|
|
185
|
+
/***/ "../app-render/dynamic-access-async-storage.external":
|
|
186
|
+
/*!***************************************************************************************!*\
|
|
187
|
+
!*** external "next/dist/server/app-render/dynamic-access-async-storage.external.js" ***!
|
|
188
|
+
\***************************************************************************************/
|
|
189
|
+
/***/ ((module) => {
|
|
190
|
+
|
|
191
|
+
"use strict";
|
|
192
|
+
module.exports = require("next/dist/server/app-render/dynamic-access-async-storage.external.js");
|
|
193
|
+
|
|
194
|
+
/***/ }),
|
|
195
|
+
|
|
196
|
+
/***/ "./work-async-storage.external":
|
|
197
|
+
/*!*****************************************************************************!*\
|
|
198
|
+
!*** external "next/dist/server/app-render/work-async-storage.external.js" ***!
|
|
199
|
+
\*****************************************************************************/
|
|
200
|
+
/***/ ((module) => {
|
|
201
|
+
|
|
202
|
+
"use strict";
|
|
203
|
+
module.exports = require("next/dist/server/app-render/work-async-storage.external.js");
|
|
204
|
+
|
|
205
|
+
/***/ }),
|
|
206
|
+
|
|
207
|
+
/***/ "./work-unit-async-storage.external":
|
|
208
|
+
/*!**********************************************************************************!*\
|
|
209
|
+
!*** external "next/dist/server/app-render/work-unit-async-storage.external.js" ***!
|
|
210
|
+
\**********************************************************************************/
|
|
211
|
+
/***/ ((module) => {
|
|
212
|
+
|
|
213
|
+
"use strict";
|
|
214
|
+
module.exports = require("next/dist/server/app-render/work-unit-async-storage.external.js");
|
|
215
|
+
|
|
216
|
+
/***/ }),
|
|
217
|
+
|
|
218
|
+
/***/ "@readme/markdown":
|
|
219
|
+
/*!***********************************!*\
|
|
220
|
+
!*** external "@readme/markdown" ***!
|
|
221
|
+
\***********************************/
|
|
222
|
+
/***/ ((module) => {
|
|
223
|
+
|
|
224
|
+
"use strict";
|
|
225
|
+
module.exports = require("@readme/markdown");
|
|
226
|
+
|
|
227
|
+
/***/ }),
|
|
228
|
+
|
|
229
|
+
/***/ "fs":
|
|
230
|
+
/*!*********************!*\
|
|
231
|
+
!*** external "fs" ***!
|
|
232
|
+
\*********************/
|
|
233
|
+
/***/ ((module) => {
|
|
234
|
+
|
|
235
|
+
"use strict";
|
|
236
|
+
module.exports = require("fs");
|
|
237
|
+
|
|
238
|
+
/***/ }),
|
|
239
|
+
|
|
240
|
+
/***/ "gray-matter":
|
|
241
|
+
/*!******************************!*\
|
|
242
|
+
!*** external "gray-matter" ***!
|
|
243
|
+
\******************************/
|
|
244
|
+
/***/ ((module) => {
|
|
245
|
+
|
|
246
|
+
"use strict";
|
|
247
|
+
module.exports = require("gray-matter");
|
|
248
|
+
|
|
249
|
+
/***/ }),
|
|
250
|
+
|
|
251
|
+
/***/ "js-yaml":
|
|
252
|
+
/*!**************************!*\
|
|
253
|
+
!*** external "js-yaml" ***!
|
|
254
|
+
\**************************/
|
|
255
|
+
/***/ ((module) => {
|
|
256
|
+
|
|
257
|
+
"use strict";
|
|
258
|
+
module.exports = require("js-yaml");
|
|
259
|
+
|
|
260
|
+
/***/ }),
|
|
261
|
+
|
|
262
|
+
/***/ "module":
|
|
263
|
+
/*!*************************!*\
|
|
264
|
+
!*** external "module" ***!
|
|
265
|
+
\*************************/
|
|
266
|
+
/***/ ((module) => {
|
|
267
|
+
|
|
268
|
+
"use strict";
|
|
269
|
+
module.exports = require("module");
|
|
270
|
+
|
|
271
|
+
/***/ }),
|
|
272
|
+
|
|
273
|
+
/***/ "next/dist/compiled/next-server/app-page.runtime.dev.js":
|
|
274
|
+
/*!*************************************************************************!*\
|
|
275
|
+
!*** external "next/dist/compiled/next-server/app-page.runtime.dev.js" ***!
|
|
276
|
+
\*************************************************************************/
|
|
277
|
+
/***/ ((module) => {
|
|
278
|
+
|
|
279
|
+
"use strict";
|
|
280
|
+
module.exports = require("next/dist/compiled/next-server/app-page.runtime.dev.js");
|
|
281
|
+
|
|
282
|
+
/***/ }),
|
|
283
|
+
|
|
284
|
+
/***/ "next/dist/shared/lib/no-fallback-error.external":
|
|
285
|
+
/*!******************************************************************!*\
|
|
286
|
+
!*** external "next/dist/shared/lib/no-fallback-error.external" ***!
|
|
287
|
+
\******************************************************************/
|
|
288
|
+
/***/ ((module) => {
|
|
289
|
+
|
|
290
|
+
"use strict";
|
|
291
|
+
module.exports = require("next/dist/shared/lib/no-fallback-error.external");
|
|
292
|
+
|
|
293
|
+
/***/ }),
|
|
294
|
+
|
|
295
|
+
/***/ "next/dist/shared/lib/router/utils/app-paths":
|
|
296
|
+
/*!**************************************************************!*\
|
|
297
|
+
!*** external "next/dist/shared/lib/router/utils/app-paths" ***!
|
|
298
|
+
\**************************************************************/
|
|
299
|
+
/***/ ((module) => {
|
|
300
|
+
|
|
301
|
+
"use strict";
|
|
302
|
+
module.exports = require("next/dist/shared/lib/router/utils/app-paths");
|
|
303
|
+
|
|
304
|
+
/***/ }),
|
|
305
|
+
|
|
306
|
+
/***/ "next/dist/shared/lib/router/utils/is-bot":
|
|
307
|
+
/*!***********************************************************!*\
|
|
308
|
+
!*** external "next/dist/shared/lib/router/utils/is-bot" ***!
|
|
309
|
+
\***********************************************************/
|
|
310
|
+
/***/ ((module) => {
|
|
311
|
+
|
|
312
|
+
"use strict";
|
|
313
|
+
module.exports = require("next/dist/shared/lib/router/utils/is-bot");
|
|
314
|
+
|
|
315
|
+
/***/ }),
|
|
316
|
+
|
|
317
|
+
/***/ "node:module":
|
|
318
|
+
/*!******************************!*\
|
|
319
|
+
!*** external "node:module" ***!
|
|
320
|
+
\******************************/
|
|
321
|
+
/***/ ((module) => {
|
|
322
|
+
|
|
323
|
+
"use strict";
|
|
324
|
+
module.exports = require("node:module");
|
|
325
|
+
|
|
326
|
+
/***/ }),
|
|
327
|
+
|
|
328
|
+
/***/ "path":
|
|
329
|
+
/*!***********************!*\
|
|
330
|
+
!*** external "path" ***!
|
|
331
|
+
\***********************/
|
|
332
|
+
/***/ ((module) => {
|
|
333
|
+
|
|
334
|
+
"use strict";
|
|
335
|
+
module.exports = require("path");
|
|
336
|
+
|
|
337
|
+
/***/ }),
|
|
338
|
+
|
|
339
|
+
/***/ "util":
|
|
340
|
+
/*!***********************!*\
|
|
341
|
+
!*** external "util" ***!
|
|
342
|
+
\***********************/
|
|
343
|
+
/***/ ((module) => {
|
|
344
|
+
|
|
345
|
+
"use strict";
|
|
346
|
+
module.exports = require("util");
|
|
347
|
+
|
|
348
|
+
/***/ })
|
|
349
|
+
|
|
350
|
+
};
|
|
351
|
+
;
|
|
352
|
+
|
|
353
|
+
// load runtime
|
|
354
|
+
var __webpack_require__ = require("../../webpack-runtime.js");
|
|
355
|
+
__webpack_require__.C(exports);
|
|
356
|
+
var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
|
|
357
|
+
var __webpack_exports__ = __webpack_require__.X(0, ["vendor-chunks/next","vendor-chunks/@swc","vendor-chunks/@readme"], () => (__webpack_exec__("(rsc)/../../node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2F%5B...slug%5D%2Fpage&page=%2F%5B...slug%5D%2Fpage&appPaths=%2F%5B...slug%5D%2Fpage&pagePath=private-next-app-dir%2F%5B...slug%5D%2Fpage.js&appDir=%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fsrc%2Fdev%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fgkoberger%2FSites%2Freadme%2F2026-readme-cli%2Fsrc%2Fdev&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D&isGlobalNotFoundEnabled=!")));
|
|
358
|
+
module.exports = __webpack_exports__;
|
|
359
|
+
|
|
360
|
+
})();
|