"use strict"; /* * ATTENTION: An "eval-source-map" devtool has been used. * This devtool is neither made for production nor for readable output files. * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) * or disable the default devtool with "devtool: false". * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). */ exports.id = "vendor-chunks/@radix-ui"; exports.ids = ["vendor-chunks/@radix-ui"]; exports.modules = { /***/ "(ssr)/./node_modules/@radix-ui/number/dist/index.mjs": /*!******************************************************!*\ !*** ./node_modules/@radix-ui/number/dist/index.mjs ***! \******************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ clamp: () => (/* binding */ clamp)\n/* harmony export */ });\n// packages/core/number/src/number.ts\nfunction clamp(value, [min, max]) {\n return Math.min(max, Math.max(min, value));\n}\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL251bWJlci9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFHRTtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbWFtYWQtYXBwLy4vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9udW1iZXIvZGlzdC9pbmRleC5tanM/YWQ3ZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBwYWNrYWdlcy9jb3JlL251bWJlci9zcmMvbnVtYmVyLnRzXG5mdW5jdGlvbiBjbGFtcCh2YWx1ZSwgW21pbiwgbWF4XSkge1xuICByZXR1cm4gTWF0aC5taW4obWF4LCBNYXRoLm1heChtaW4sIHZhbHVlKSk7XG59XG5leHBvcnQge1xuICBjbGFtcFxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/number/dist/index.mjs\n"); /***/ }), /***/ "(ssr)/./node_modules/@radix-ui/primitive/dist/index.mjs": /*!*********************************************************!*\ !*** ./node_modules/@radix-ui/primitive/dist/index.mjs ***! \*********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ composeEventHandlers: () => (/* binding */ composeEventHandlers)\n/* harmony export */ });\n// packages/core/primitive/src/primitive.tsx\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3ByaW1pdGl2ZS9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQSx1RUFBdUUsa0NBQWtDLElBQUk7QUFDN0c7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHRTtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbWFtYWQtYXBwLy4vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9wcmltaXRpdmUvZGlzdC9pbmRleC5tanM/OTEyYSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBwYWNrYWdlcy9jb3JlL3ByaW1pdGl2ZS9zcmMvcHJpbWl0aXZlLnRzeFxuZnVuY3Rpb24gY29tcG9zZUV2ZW50SGFuZGxlcnMob3JpZ2luYWxFdmVudEhhbmRsZXIsIG91ckV2ZW50SGFuZGxlciwgeyBjaGVja0ZvckRlZmF1bHRQcmV2ZW50ZWQgPSB0cnVlIH0gPSB7fSkge1xuICByZXR1cm4gZnVuY3Rpb24gaGFuZGxlRXZlbnQoZXZlbnQpIHtcbiAgICBvcmlnaW5hbEV2ZW50SGFuZGxlcj8uKGV2ZW50KTtcbiAgICBpZiAoY2hlY2tGb3JEZWZhdWx0UHJldmVudGVkID09PSBmYWxzZSB8fCAhZXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgcmV0dXJuIG91ckV2ZW50SGFuZGxlcj8uKGV2ZW50KTtcbiAgICB9XG4gIH07XG59XG5leHBvcnQge1xuICBjb21wb3NlRXZlbnRIYW5kbGVyc1xufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/primitive/dist/index.mjs\n"); /***/ }), /***/ "(ssr)/./node_modules/@radix-ui/react-alert-dialog/dist/index.mjs": /*!******************************************************************!*\ !*** ./node_modules/@radix-ui/react-alert-dialog/dist/index.mjs ***! \******************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Action: () => (/* binding */ Action),\n/* harmony export */ AlertDialog: () => (/* binding */ AlertDialog),\n/* harmony export */ AlertDialogAction: () => (/* binding */ AlertDialogAction),\n/* harmony export */ AlertDialogCancel: () => (/* binding */ AlertDialogCancel),\n/* harmony export */ AlertDialogContent: () => (/* binding */ AlertDialogContent),\n/* harmony export */ AlertDialogDescription: () => (/* binding */ AlertDialogDescription),\n/* harmony export */ AlertDialogOverlay: () => (/* binding */ AlertDialogOverlay),\n/* harmony export */ AlertDialogPortal: () => (/* binding */ AlertDialogPortal),\n/* harmony export */ AlertDialogTitle: () => (/* binding */ AlertDialogTitle),\n/* harmony export */ AlertDialogTrigger: () => (/* binding */ AlertDialogTrigger),\n/* harmony export */ Cancel: () => (/* binding */ Cancel),\n/* harmony export */ Content: () => (/* binding */ Content2),\n/* harmony export */ Description: () => (/* binding */ Description2),\n/* harmony export */ Overlay: () => (/* binding */ Overlay2),\n/* harmony export */ Portal: () => (/* binding */ Portal2),\n/* harmony export */ Root: () => (/* binding */ Root2),\n/* harmony export */ Title: () => (/* binding */ Title2),\n/* harmony export */ Trigger: () => (/* binding */ Trigger2),\n/* harmony export */ createAlertDialogScope: () => (/* binding */ createAlertDialogScope)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-context */ \"(ssr)/./node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(ssr)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-dialog */ \"(ssr)/./node_modules/@radix-ui/react-dialog/dist/index.mjs\");\n/* harmony import */ var _radix_ui_primitive__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/primitive */ \"(ssr)/./node_modules/@radix-ui/primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(ssr)/./node_modules/@radix-ui/react-slot/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Action,AlertDialog,AlertDialogAction,AlertDialogCancel,AlertDialogContent,AlertDialogDescription,AlertDialogOverlay,AlertDialogPortal,AlertDialogTitle,AlertDialogTrigger,Cancel,Content,Description,Overlay,Portal,Root,Title,Trigger,createAlertDialogScope auto */ // packages/react/alert-dialog/src/AlertDialog.tsx\n\n\n\n\n\n\n\n\nvar ROOT_NAME = \"AlertDialog\";\nvar [createAlertDialogContext, createAlertDialogScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__.createContextScope)(ROOT_NAME, [\n _radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.createDialogScope\n]);\nvar useDialogScope = (0,_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.createDialogScope)();\nvar AlertDialog = (props)=>{\n const { __scopeAlertDialog, ...alertDialogProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Root, {\n ...dialogScope,\n ...alertDialogProps,\n modal: true\n });\n};\nAlertDialog.displayName = ROOT_NAME;\nvar TRIGGER_NAME = \"AlertDialogTrigger\";\nvar AlertDialogTrigger = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { __scopeAlertDialog, ...triggerProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Trigger, {\n ...dialogScope,\n ...triggerProps,\n ref: forwardedRef\n });\n});\nAlertDialogTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"AlertDialogPortal\";\nvar AlertDialogPortal = (props)=>{\n const { __scopeAlertDialog, ...portalProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Portal, {\n ...dialogScope,\n ...portalProps\n });\n};\nAlertDialogPortal.displayName = PORTAL_NAME;\nvar OVERLAY_NAME = \"AlertDialogOverlay\";\nvar AlertDialogOverlay = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { __scopeAlertDialog, ...overlayProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Overlay, {\n ...dialogScope,\n ...overlayProps,\n ref: forwardedRef\n });\n});\nAlertDialogOverlay.displayName = OVERLAY_NAME;\nvar CONTENT_NAME = \"AlertDialogContent\";\nvar [AlertDialogContentProvider, useAlertDialogContentContext] = createAlertDialogContext(CONTENT_NAME);\nvar AlertDialogContent = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { __scopeAlertDialog, children, ...contentProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const contentRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_4__.useComposedRefs)(forwardedRef, contentRef);\n const cancelRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.WarningProvider, {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: \"alert-dialog\",\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(AlertDialogContentProvider, {\n scope: __scopeAlertDialog,\n cancelRef,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Content, {\n role: \"alertdialog\",\n ...dialogScope,\n ...contentProps,\n ref: composedRefs,\n onOpenAutoFocus: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_5__.composeEventHandlers)(contentProps.onOpenAutoFocus, (event)=>{\n event.preventDefault();\n cancelRef.current?.focus({\n preventScroll: true\n });\n }),\n onPointerDownOutside: (event)=>event.preventDefault(),\n onInteractOutside: (event)=>event.preventDefault(),\n children: [\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_6__.Slottable, {\n children\n }),\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(DescriptionWarning, {\n contentRef\n })\n ]\n })\n })\n });\n});\nAlertDialogContent.displayName = CONTENT_NAME;\nvar TITLE_NAME = \"AlertDialogTitle\";\nvar AlertDialogTitle = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { __scopeAlertDialog, ...titleProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Title, {\n ...dialogScope,\n ...titleProps,\n ref: forwardedRef\n });\n});\nAlertDialogTitle.displayName = TITLE_NAME;\nvar DESCRIPTION_NAME = \"AlertDialogDescription\";\nvar AlertDialogDescription = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { __scopeAlertDialog, ...descriptionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Description, {\n ...dialogScope,\n ...descriptionProps,\n ref: forwardedRef\n });\n});\nAlertDialogDescription.displayName = DESCRIPTION_NAME;\nvar ACTION_NAME = \"AlertDialogAction\";\nvar AlertDialogAction = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { __scopeAlertDialog, ...actionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Close, {\n ...dialogScope,\n ...actionProps,\n ref: forwardedRef\n });\n});\nAlertDialogAction.displayName = ACTION_NAME;\nvar CANCEL_NAME = \"AlertDialogCancel\";\nvar AlertDialogCancel = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { __scopeAlertDialog, ...cancelProps } = props;\n const { cancelRef } = useAlertDialogContentContext(CANCEL_NAME, __scopeAlertDialog);\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const ref = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_4__.useComposedRefs)(forwardedRef, cancelRef);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_dialog__WEBPACK_IMPORTED_MODULE_3__.Close, {\n ...dialogScope,\n ...cancelProps,\n ref\n });\n});\nAlertDialogCancel.displayName = CANCEL_NAME;\nvar DescriptionWarning = ({ contentRef })=>{\n const MESSAGE = `\\`${CONTENT_NAME}\\` requires a description for the component to be accessible for screen reader users.\n\nYou can add a description to the \\`${CONTENT_NAME}\\` by passing a \\`${DESCRIPTION_NAME}\\` component as a child, which also benefits sighted users by adding visible context to the dialog.\n\nAlternatively, you can use your own component as a description by assigning it an \\`id\\` and passing the same value to the \\`aria-describedby\\` prop in \\`${CONTENT_NAME}\\`. If the description is confusing or duplicative for sighted users, you can use the \\`@radix-ui/react-visually-hidden\\` primitive as a wrapper around your description component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(()=>{\n const hasDescription = document.getElementById(contentRef.current?.getAttribute(\"aria-describedby\"));\n if (!hasDescription) console.warn(MESSAGE);\n }, [\n MESSAGE,\n contentRef\n ]);\n return null;\n};\nvar Root2 = AlertDialog;\nvar Trigger2 = AlertDialogTrigger;\nvar Portal2 = AlertDialogPortal;\nvar Overlay2 = AlertDialogOverlay;\nvar Content2 = AlertDialogContent;\nvar Action = AlertDialogAction;\nvar Cancel = AlertDialogCancel;\nvar Title2 = AlertDialogTitle;\nvar Description2 = AlertDialogDescription;\n //# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWFsZXJ0LWRpYWxvZy9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBdUI7QUFDWTtBQUNIO0FBQ0M7QUFDQztBQUNHO0FBQ1g7QUFzQmpCO0FBZFQsSUFBTVMsWUFBWTtBQUdsQixJQUFNLENBQUNDLDBCQUEwQkMsdUJBQXNCLEdBQUlWLDJFQUFrQkEsQ0FBQ1EsV0FBVztJQUN2RkwscUVBQWlCQTtDQUNsQjtBQUNELElBQU1RLGlCQUFpQlIseUVBQWlCQTtBQUt4QyxJQUFNUyxjQUEwQyxDQUFDQztJQUMvQyxNQUFNLEVBQUVDLGtCQUFBLEVBQW9CLEdBQUdDLGtCQUFpQixHQUFJRjtJQUNwRCxNQUFNRyxjQUFjTCxlQUFlRztJQUNuQyxPQUFPLGdCQUFBUixzREFBQUEsQ0FBaUJKLHdEQUFBLEVBQWhCO1FBQXNCLEdBQUdjLFdBQUE7UUFBYyxHQUFHRCxnQkFBQTtRQUFrQkcsT0FBTztJQUFBO0FBQzdFO0FBRUFOLFlBQVlPLFdBQUEsR0FBY1g7QUFLMUIsSUFBTVksZUFBZTtBQU1yQixJQUFNQyxtQ0FBMkJ0Qiw2Q0FBQSxDQUMvQixDQUFDYyxPQUE2Q1U7SUFDNUMsTUFBTSxFQUFFVCxrQkFBQSxFQUFvQixHQUFHVSxjQUFhLEdBQUlYO0lBQ2hELE1BQU1HLGNBQWNMLGVBQWVHO0lBQ25DLE9BQU8sZ0JBQUFSLHNEQUFBQSxDQUFpQkosMkRBQUEsRUFBaEI7UUFBeUIsR0FBR2MsV0FBQTtRQUFjLEdBQUdRLFlBQUE7UUFBY0UsS0FBS0g7SUFBQTtBQUMxRTtBQUdGRixtQkFBbUJGLFdBQUEsR0FBY0M7QUFNakMsSUFBTU8sY0FBYztBQUtwQixJQUFNQyxvQkFBc0QsQ0FDMURmO0lBRUEsTUFBTSxFQUFFQyxrQkFBQSxFQUFvQixHQUFHZSxhQUFZLEdBQUloQjtJQUMvQyxNQUFNRyxjQUFjTCxlQUFlRztJQUNuQyxPQUFPLGdCQUFB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UUFBQ0E7UUFBU25DO0tBQVc7SUFFeEIsT0FBTztBQUNUO0FBRUEsSUFBTXhCLFFBQU9MO0FBQ2IsSUFBTWEsV0FBVUo7QUFDaEIsSUFBTVMsVUFBU0Y7QUFDZixJQUFNTSxXQUFVRjtBQUNoQixJQUFNbUIsV0FBVWI7QUFDaEIsSUFBTThDLFNBQVNkO0FBQ2YsSUFBTWUsU0FBU1g7QUFDZixJQUFNVixTQUFRRjtBQUNkLElBQU1NLGVBQWNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbWFtYWQtYXBwLy4uL3NyYy9BbGVydERpYWxvZy50c3g/M2ZlNiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0U2NvcGUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29udGV4dCc7XG5pbXBvcnQgeyB1c2VDb21wb3NlZFJlZnMgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzJztcbmltcG9ydCAqIGFzIERpYWxvZ1ByaW1pdGl2ZSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtZGlhbG9nJztcbmltcG9ydCB7IGNyZWF0ZURpYWxvZ1Njb3BlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWRpYWxvZyc7XG5pbXBvcnQgeyBjb21wb3NlRXZlbnRIYW5kbGVycyB9IGZyb20gJ0ByYWRpeC11aS9wcmltaXRpdmUnO1xuaW1wb3J0IHsgU2xvdHRhYmxlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXNsb3QnO1xuXG5pbXBvcnQgdHlwZSB7IFNjb3BlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbnRleHQnO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBBbGVydERpYWxvZ1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBST09UX05BTUUgPSAnQWxlcnREaWFsb2cnO1xuXG50eXBlIFNjb3BlZFByb3BzPFA+ID0gUCAmIHsgX19zY29wZUFsZXJ0RGlhbG9nPzogU2NvcGUgfTtcbmNvbnN0IFtjcmVhdGVBbGVydERpYWxvZ0NvbnRleHQsIGNyZWF0ZUFsZXJ0RGlhbG9nU2NvcGVdID0gY3JlYXRlQ29udGV4dFNjb3BlKFJPT1RfTkFNRSwgW1xuICBjcmVhdGVEaWFsb2dTY29wZSxcbl0pO1xuY29uc3QgdXNlRGlhbG9nU2NvcGUgPSBjcmVhdGVEaWFsb2dTY29wZSgpO1xuXG50eXBlIERpYWxvZ1Byb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBEaWFsb2dQcmltaXRpdmUuUm9vdD47XG5pbnRlcmZhY2UgQWxlcnREaWFsb2dQcm9wcyBleHRlbmRzIE9taXQ8RGlhbG9nUHJvcHMsICdtb2RhbCc+IHt9XG5cbmNvbnN0IEFsZXJ0RGlhbG9nOiBSZWFjdC5GQzxBbGVydERpYWxvZ1Byb3BzPiA9IChwcm9wczogU2NvcGVkUHJvcHM8QWxlcnREaWFsb2dQcm9wcz4pID0+IHtcbiAgY29uc3QgeyBfX3Njb3BlQWxlcnREaWFsb2csIC4uLmFsZXJ0RGlhbG9nUHJvcHMgfSA9IHByb3BzO1xuICBjb25zdCBkaWFsb2dTY29wZSA9IHVzZURpYWxvZ1Njb3BlKF9fc2NvcGVBbGVydERpYWxvZyk7XG4gIHJldHVybiA8RGlhbG9nUHJpbWl0aXZlLlJvb3Qgey4uLmRpYWxvZ1Njb3BlfSB7Li4uYWxlcnREaWFsb2dQcm9wc30gbW9kYWw9e3RydWV9IC8+O1xufTtcblxuQWxlcnREaWFsb2cuZGlzcGxheU5hbWUgPSBST09UX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEFsZXJ0RGlhbG9nVHJpZ2dlclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuY29uc3QgVFJJR0dFUl9OQU1FID0gJ0FsZXJ0RGlhbG9nVHJpZ2dlcic7XG5cbnR5cGUgQWxlcnREaWFsb2dUcmlnZ2VyRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIERpYWxvZ1ByaW1pdGl2ZS5UcmlnZ2VyPjtcbnR5cGUgRGlhbG9nVHJpZ2dlclByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBEaWFsb2dQcmltaXRpdmUuVHJpZ2dlcj47XG5pbnRlcmZhY2UgQWxlcnREaWFsb2dUcmlnZ2VyUHJvcHMgZXh0ZW5kcyBEaWFsb2dUcmlnZ2VyUHJvcHMge31cblxuY29uc3QgQWxlcnREaWFsb2dUcmlnZ2VyID0gUmVhY3QuZm9yd2FyZFJlZjxBbGVydERpYWxvZ1RyaWdnZXJFbGVtZW50LCBBbGVydERpYWxvZ1RyaWdnZXJQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8QWxlcnREaWFsb2dUcmlnZ2VyUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVBbGVydERpYWxvZywgLi4udHJpZ2dlclByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBkaWFsb2dTY29wZSA9IHVzZURpYWxvZ1Njb3BlKF9fc2NvcGVBbGVydERpYWxvZyk7XG4gICAgcmV0dXJuIDxEaWFsb2dQcmltaXRpdmUuVHJpZ2dlciB7Li4uZGlhbG9nU2NvcGV9IHsuLi50cmlnZ2VyUHJvcHN9IHJlZj17Zm9yd2FyZGVkUmVmfSAvPjtcbiAgfVxuKTtcblxuQWxlcnREaWFsb2dUcmlnZ2VyLmRpc3BsYXlOYW1lID0gVFJJR0dFUl9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBBbGVydERpYWxvZ1BvcnRhbFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBQT1JUQUxfTkFNRSA9ICdBbGVydERpYWxvZ1BvcnRhbCc7XG5cbnR5cGUgRGlhbG9nUG9ydGFsUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIERpYWxvZ1ByaW1pdGl2ZS5Qb3J0YWw+O1xuaW50ZXJmYWNlIEFsZXJ0RGlhbG9nUG9ydGFsUHJvcHMgZXh0ZW5kcyBEaWFsb2dQb3J0YWxQcm9wcyB7fVxuXG5jb25zdCBBbGVydERpYWxvZ1BvcnRhbDogUmVhY3QuRkM8QWxlcnREaWFsb2dQb3J0YWxQcm9wcz4gPSAoXG4gIHByb3BzOiBTY29wZWRQcm9wczxBbGVydERpYWxvZ1BvcnRhbFByb3BzPlxuKSA9PiB7XG4gIGNvbnN0IHsgX19zY29wZUFsZXJ0RGlhbG9nLCAuLi5wb3J0YWxQcm9wcyB9ID0gcHJvcHM7XG4gIGNvbnN0IGRpYWxvZ1Njb3BlID0gdXNlRGlhbG9nU2NvcGUoX19zY29wZUFsZXJ0RGlhbG9nKTtcbiAgcmV0dXJuIDxEaWFsb2dQcmltaXRpdmUuUG9ydGFsIHsuLi5kaWFsb2dTY29wZX0gey4uLnBvcnRhbFByb3BzfSAvPjtcbn07XG5cbkFsZXJ0RGlhbG9nUG9ydGFsLmRpc3BsYXlOYW1lID0gUE9SVEFMX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEFsZXJ0RGlhbG9nT3ZlcmxheVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBPVkVSTEFZX05BTUUgPSAnQWxlcnREaWFsb2dPdmVybGF5JztcblxudHlwZSBBbGVydERpYWxvZ092ZXJsYXlFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgRGlhbG9nUHJpbWl0aXZlLk92ZXJsYXk+O1xudHlwZSBEaWFsb2dPdmVybGF5UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIERpYWxvZ1ByaW1pdGl2ZS5PdmVybGF5PjtcbmludGVyZmFjZSBBbGVydERpYWxvZ092ZXJsYXlQcm9wcyBleHRlbmRzIERpYWxvZ092ZXJsYXlQcm9wcyB7fVxuXG5jb25zdCBBbGVydERpYWxvZ092ZXJsYXkgPSBSZWFjdC5mb3J3YXJkUmVmPEFsZXJ0RGlhbG9nT3ZlcmxheUVsZW1lbnQsIEFsZXJ0RGlhbG9nT3ZlcmxheVByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxBbGVydERpYWxvZ092ZXJsYXlQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZUFsZXJ0RGlhbG9nLCAuLi5vdmVybGF5UHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGRpYWxvZ1Njb3BlID0gdXNlRGlhbG9nU2NvcGUoX19zY29wZUFsZXJ0RGlhbG9nKTtcbiAgICByZXR1cm4gPERpYWxvZ1ByaW1pdGl2ZS5PdmVybGF5IHsuLi5kaWFsb2dTY29wZX0gey4uLm92ZXJsYXlQcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+O1xuICB9XG4pO1xuXG5BbGVydERpYWxvZ092ZXJsYXkuZGlzcGxheU5hbWUgPSBPVkVSTEFZX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEFsZXJ0RGlhbG9nQ29udGVudFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBDT05URU5UX05BTUUgPSAnQWxlcnREaWFsb2dDb250ZW50JztcblxudHlwZSBBbGVydERpYWxvZ0NvbnRlbnRDb250ZXh0VmFsdWUgPSB7XG4gIGNhbmNlbFJlZjogUmVhY3QuTXV0YWJsZVJlZk9iamVjdDxBbGVydERpYWxvZ0NhbmNlbEVsZW1lbnQgfCBudWxsPjtcbn07XG5cbmNvbnN0IFtBbGVydERpYWxvZ0NvbnRlbnRQcm92aWRlciwgdXNlQWxlcnREaWFsb2dDb250ZW50Q29udGV4dF0gPVxuICBjcmVhdGVBbGVydERpYWxvZ0NvbnRleHQ8QWxlcnREaWFsb2dDb250ZW50Q29udGV4dFZhbHVlPihDT05URU5UX05BTUUpO1xuXG50eXBlIEFsZXJ0RGlhbG9nQ29udGVudEVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBEaWFsb2dQcmltaXRpdmUuQ29udGVudD47XG50eXBlIERpYWxvZ0NvbnRlbnRQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgRGlhbG9nUHJpbWl0aXZlLkNvbnRlbnQ+O1xuaW50ZXJmYWNlIEFsZXJ0RGlhbG9nQ29udGVudFByb3BzXG4gIGV4dGVuZHMgT21pdDxEaWFsb2dDb250ZW50UHJvcHMsICdvblBvaW50ZXJEb3duT3V0c2lkZScgfCAnb25JbnRlcmFjdE91dHNpZGUnPiB7fVxuXG5jb25zdCBBbGVydERpYWxvZ0NvbnRlbnQgPSBSZWFjdC5mb3J3YXJkUmVmPEFsZXJ0RGlhbG9nQ29udGVudEVsZW1lbnQsIEFsZXJ0RGlhbG9nQ29udGVudFByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxBbGVydERpYWxvZ0NvbnRlbnRQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZUFsZXJ0RGlhbG9nLCBjaGlsZHJlbiwgLi4uY29udGVudFByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBkaWFsb2dTY29wZSA9IHVzZURpYWxvZ1Njb3BlKF9fc2NvcGVBbGVydERpYWxvZyk7XG4gICAgY29uc3QgY29udGVudFJlZiA9IFJlYWN0LnVzZVJlZjxBbGVydERpYWxvZ0NvbnRlbnRFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCBjb250ZW50UmVmKTtcbiAgICBjb25zdCBjYW5jZWxSZWYgPSBSZWFjdC51c2VSZWY8QWxlcnREaWFsb2dDYW5jZWxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPERpYWxvZ1ByaW1pdGl2ZS5XYXJuaW5nUHJvdmlkZXJcbiAgICAgICAgY29udGVudE5hbWU9e0NPTlRFTlRfTkFNRX1cbiAgICAgICAgdGl0bGVOYW1lPXtUSVRMRV9OQU1FfVxuICAgICAgICBkb2NzU2x1Zz1cImFsZXJ0LWRpYWxvZ1wiXG4gICAgICA+XG4gICAgICAgIDxBbGVydERpYWxvZ0NvbnRlbnRQcm92aWRlciBzY29wZT17X19zY29wZUFsZXJ0RGlhbG9nfSBjYW5jZWxSZWY9e2NhbmNlbFJlZn0+XG4gICAgICAgICAgPERpYWxvZ1ByaW1pdGl2ZS5Db250ZW50XG4gICAgICAgICAgICByb2xlPVwiYWxlcnRkaWFsb2dcIlxuICAgICAgICAgICAgey4uLmRpYWxvZ1Njb3BlfVxuICAgICAgICAgICAgey4uLmNvbnRlbnRQcm9wc31cbiAgICAgICAgICAgIHJlZj17Y29tcG9zZWRSZWZzfVxuICAgICAgICAgICAgb25PcGVuQXV0b0ZvY3VzPXtjb21wb3NlRXZlbnRIYW5kbGVycyhjb250ZW50UHJvcHMub25PcGVuQXV0b0ZvY3VzLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgY2FuY2VsUmVmLmN1cnJlbnQ/LmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgb25Qb2ludGVyRG93bk91dHNpZGU9eyhldmVudCkgPT4gZXZlbnQucHJldmVudERlZmF1bHQoKX1cbiAgICAgICAgICAgIG9uSW50ZXJhY3RPdXRzaWRlPXsoZXZlbnQpID0+IGV2ZW50LnByZXZlbnREZWZhdWx0KCl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgey8qKlxuICAgICAgICAgICAgICogV2UgaGF2ZSB0byB1c2UgYFNsb3R0YWJsZWAgaGVyZSBhcyB3ZSBjYW5ub3Qgd3JhcCB0aGUgYEFsZXJ0RGlhbG9nQ29udGVudFByb3ZpZGVyYFxuICAgICAgICAgICAgICogYXJvdW5kIGV2ZXJ5dGhpbmcsIG90aGVyd2lzZSB0aGUgYERlc2NyaXB0aW9uV2FybmluZ2Agd291bGQgYmUgcmVuZGVyZWQgc3RyYWlnaHQgYXdheS5cbiAgICAgICAgICAgICAqIFRoaXMgaXMgYmVjYXVzZSB3ZSB3YW50IHRoZSBhY2Nlc3NpYmlsaXR5IGNoZWNrcyB0byBydW4gb25seSBvbmNlIHRoZSBjb250ZW50IGlzIGFjdHVhbGx5XG4gICAgICAgICAgICAgKiBvcGVuIGFuZCB0aGF0IGJlaGF2aW91ciBpcyBhbHJlYWR5IGVuY2Fwc3VsYXRlZCBpbiBgRGlhbG9nQ29udGVudGAuXG4gICAgICAgICAgICAgKi99XG4gICAgICAgICAgICA8U2xvdHRhYmxlPntjaGlsZHJlbn08L1Nsb3R0YWJsZT5cbiAgICAgICAgICAgIHtwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50JyAmJiAoXG4gICAgICAgICAgICAgIDxEZXNjcmlwdGlvbldhcm5pbmcgY29udGVudFJlZj17Y29udGVudFJlZn0gLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9EaWFsb2dQcmltaXRpdmUuQ29udGVudD5cbiAgICAgICAgPC9BbGVydERpYWxvZ0NvbnRlbnRQcm92aWRlcj5cbiAgICAgIDwvRGlhbG9nUHJpbWl0aXZlLldhcm5pbmdQcm92aWRlcj5cbiAgICApO1xuICB9XG4pO1xuXG5BbGVydERpYWxvZ0NvbnRlbnQuZGlzcGxheU5hbWUgPSBDT05URU5UX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEFsZXJ0RGlhbG9nVGl0bGVcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgVElUTEVfTkFNRSA9ICdBbGVydERpYWxvZ1RpdGxlJztcblxudHlwZSBBbGVydERpYWxvZ1RpdGxlRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIERpYWxvZ1ByaW1pdGl2ZS5UaXRsZT47XG50eXBlIERpYWxvZ1RpdGxlUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIERpYWxvZ1ByaW1pdGl2ZS5UaXRsZT47XG5pbnRlcmZhY2UgQWxlcnREaWFsb2dUaXRsZVByb3BzIGV4dGVuZHMgRGlhbG9nVGl0bGVQcm9wcyB7fVxuXG5jb25zdCBBbGVydERpYWxvZ1RpdGxlID0gUmVhY3QuZm9yd2FyZFJlZjxBbGVydERpYWxvZ1RpdGxlRWxlbWVudCwgQWxlcnREaWFsb2dUaXRsZVByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxBbGVydERpYWxvZ1RpdGxlUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVBbGVydERpYWxvZywgLi4udGl0bGVQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgZGlhbG9nU2NvcGUgPSB1c2VEaWFsb2dTY29wZShfX3Njb3BlQWxlcnREaWFsb2cpO1xuICAgIHJldHVybiA8RGlhbG9nUHJpbWl0aXZlLlRpdGxlIHsuLi5kaWFsb2dTY29wZX0gey4uLnRpdGxlUHJvcHN9IHJlZj17Zm9yd2FyZGVkUmVmfSAvPjtcbiAgfVxuKTtcblxuQWxlcnREaWFsb2dUaXRsZS5kaXNwbGF5TmFtZSA9IFRJVExFX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEFsZXJ0RGlhbG9nRGVzY3JpcHRpb25cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgREVTQ1JJUFRJT05fTkFNRSA9ICdBbGVydERpYWxvZ0Rlc2NyaXB0aW9uJztcblxudHlwZSBBbGVydERpYWxvZ0Rlc2NyaXB0aW9uRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIERpYWxvZ1ByaW1pdGl2ZS5EZXNjcmlwdGlvbj47XG50eXBlIERpYWxvZ0Rlc2NyaXB0aW9uUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIERpYWxvZ1ByaW1pdGl2ZS5EZXNjcmlwdGlvbj47XG5pbnRlcmZhY2UgQWxlcnREaWFsb2dEZXNjcmlwdGlvblByb3BzIGV4dGVuZHMgRGlhbG9nRGVzY3JpcHRpb25Qcm9wcyB7fVxuXG5jb25zdCBBbGVydERpYWxvZ0Rlc2NyaXB0aW9uID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgQWxlcnREaWFsb2dEZXNjcmlwdGlvbkVsZW1lbnQsXG4gIEFsZXJ0RGlhbG9nRGVzY3JpcHRpb25Qcm9wc1xuPigocHJvcHM6IFNjb3BlZFByb3BzPEFsZXJ0RGlhbG9nRGVzY3JpcHRpb25Qcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICBjb25zdCB7IF9fc2NvcGVBbGVydERpYWxvZywgLi4uZGVzY3JpcHRpb25Qcm9wcyB9ID0gcHJvcHM7XG4gIGNvbnN0IGRpYWxvZ1Njb3BlID0gdXNlRGlhbG9nU2NvcGUoX19zY29wZUFsZXJ0RGlhbG9nKTtcbiAgcmV0dXJuIDxEaWFsb2dQcmltaXRpdmUuRGVzY3JpcHRpb24gey4uLmRpYWxvZ1Njb3BlfSB7Li4uZGVzY3JpcHRpb25Qcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+O1xufSk7XG5cbkFsZXJ0RGlhbG9nRGVzY3JpcHRpb24uZGlzcGxheU5hbWUgPSBERVNDUklQVElPTl9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBBbGVydERpYWxvZ0FjdGlvblxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBBQ1RJT05fTkFNRSA9ICdBbGVydERpYWxvZ0FjdGlvbic7XG5cbnR5cGUgQWxlcnREaWFsb2dBY3Rpb25FbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgRGlhbG9nUHJpbWl0aXZlLkNsb3NlPjtcbnR5cGUgRGlhbG9nQ2xvc2VQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgRGlhbG9nUHJpbWl0aXZlLkNsb3NlPjtcbmludGVyZmFjZSBBbGVydERpYWxvZ0FjdGlvblByb3BzIGV4dGVuZHMgRGlhbG9nQ2xvc2VQcm9wcyB7fVxuXG5jb25zdCBBbGVydERpYWxvZ0FjdGlvbiA9IFJlYWN0LmZvcndhcmRSZWY8QWxlcnREaWFsb2dBY3Rpb25FbGVtZW50LCBBbGVydERpYWxvZ0FjdGlvblByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxBbGVydERpYWxvZ0FjdGlvblByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlQWxlcnREaWFsb2csIC4uLmFjdGlvblByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBkaWFsb2dTY29wZSA9IHVzZURpYWxvZ1Njb3BlKF9fc2NvcGVBbGVydERpYWxvZyk7XG4gICAgcmV0dXJuIDxEaWFsb2dQcmltaXRpdmUuQ2xvc2Ugey4uLmRpYWxvZ1Njb3BlfSB7Li4uYWN0aW9uUHJvcHN9IHJlZj17Zm9yd2FyZGVkUmVmfSAvPjtcbiAgfVxuKTtcblxuQWxlcnREaWFsb2dBY3Rpb24uZGlzcGxheU5hbWUgPSBBQ1RJT05fTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogQWxlcnREaWFsb2dDYW5jZWxcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgQ0FOQ0VMX05BTUUgPSAnQWxlcnREaWFsb2dDYW5jZWwnO1xuXG50eXBlIEFsZXJ0RGlhbG9nQ2FuY2VsRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIERpYWxvZ1ByaW1pdGl2ZS5DbG9zZT47XG5pbnRlcmZhY2UgQWxlcnREaWFsb2dDYW5jZWxQcm9wcyBleHRlbmRzIERpYWxvZ0Nsb3NlUHJvcHMge31cblxuY29uc3QgQWxlcnREaWFsb2dDYW5jZWwgPSBSZWFjdC5mb3J3YXJkUmVmPEFsZXJ0RGlhbG9nQ2FuY2VsRWxlbWVudCwgQWxlcnREaWFsb2dDYW5jZWxQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8QWxlcnREaWFsb2dDYW5jZWxQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZUFsZXJ0RGlhbG9nLCAuLi5jYW5jZWxQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgeyBjYW5jZWxSZWYgfSA9IHVzZUFsZXJ0RGlhbG9nQ29udGVudENvbnRleHQoQ0FOQ0VMX05BTUUsIF9fc2NvcGVBbGVydERpYWxvZyk7XG4gICAgY29uc3QgZGlhbG9nU2NvcGUgPSB1c2VEaWFsb2dTY29wZShfX3Njb3BlQWxlcnREaWFsb2cpO1xuICAgIGNvbnN0IHJlZiA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIGNhbmNlbFJlZik7XG4gICAgcmV0dXJuIDxEaWFsb2dQcmltaXRpdmUuQ2xvc2Ugey4uLmRpYWxvZ1Njb3BlfSB7Li4uY2FuY2VsUHJvcHN9IHJlZj17cmVmfSAvPjtcbiAgfVxuKTtcblxuQWxlcnREaWFsb2dDYW5jZWwuZGlzcGxheU5hbWUgPSBDQU5DRUxfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG50eXBlIERlc2NyaXB0aW9uV2FybmluZ1Byb3BzID0ge1xuICBjb250ZW50UmVmOiBSZWFjdC5SZWZPYmplY3Q8QWxlcnREaWFsb2dDb250ZW50RWxlbWVudCB8IG51bGw+O1xufTtcblxuY29uc3QgRGVzY3JpcHRpb25XYXJuaW5nOiBSZWFjdC5GQzxEZXNjcmlwdGlvbldhcm5pbmdQcm9wcz4gPSAoeyBjb250ZW50UmVmIH0pID0+IHtcbiAgY29uc3QgTUVTU0FHRSA9IGBcXGAke0NPTlRFTlRfTkFNRX1cXGAgcmVxdWlyZXMgYSBkZXNjcmlwdGlvbiBmb3IgdGhlIGNvbXBvbmVudCB0byBiZSBhY2Nlc3NpYmxlIGZvciBzY3JlZW4gcmVhZGVyIHVzZXJzLlxuXG5Zb3UgY2FuIGFkZCBhIGRlc2NyaXB0aW9uIHRvIHRoZSBcXGAke0NPTlRFTlRfTkFNRX1cXGAgYnkgcGFzc2luZyBhIFxcYCR7REVTQ1JJUFRJT05fTkFNRX1cXGAgY29tcG9uZW50IGFzIGEgY2hpbGQsIHdoaWNoIGFsc28gYmVuZWZpdHMgc2lnaHRlZCB1c2VycyBieSBhZGRpbmcgdmlzaWJsZSBjb250ZXh0IHRvIHRoZSBkaWFsb2cuXG5cbkFsdGVybmF0aXZlbHksIHlvdSBjYW4gdXNlIHlvdXIgb3duIGNvbXBvbmVudCBhcyBhIGRlc2NyaXB0aW9uIGJ5IGFzc2lnbmluZyBpdCBhbiBcXGBpZFxcYCBhbmQgcGFzc2luZyB0aGUgc2FtZSB2YWx1ZSB0byB0aGUgXFxgYXJpYS1kZXNjcmliZWRieVxcYCBwcm9wIGluIFxcYCR7Q09OVEVOVF9OQU1FfVxcYC4gSWYgdGhlIGRlc2NyaXB0aW9uIGlzIGNvbmZ1c2luZyBvciBkdXBsaWNhdGl2ZSBmb3Igc2lnaHRlZCB1c2VycywgeW91IGNhbiB1c2UgdGhlIFxcYEByYWRpeC11aS9yZWFjdC12aXN1YWxseS1oaWRkZW5cXGAgcHJpbWl0aXZlIGFzIGEgd3JhcHBlciBhcm91bmQgeW91ciBkZXNjcmlwdGlvbiBjb21wb25lbnQuXG5cbkZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cHM6Ly9yYWRpeC11aS5jb20vcHJpbWl0aXZlcy9kb2NzL2NvbXBvbmVudHMvYWxlcnQtZGlhbG9nYDtcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhc0Rlc2NyaXB0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXG4gICAgICBjb250ZW50UmVmLmN1cnJlbnQ/LmdldEF0dHJpYnV0ZSgnYXJpYS1kZXNjcmliZWRieScpIVxuICAgICk7XG4gICAgaWYgKCFoYXNEZXNjcmlwdGlvbikgY29uc29sZS53YXJuKE1FU1NBR0UpO1xuICB9LCBbTUVTU0FHRSwgY29udGVudFJlZl0pO1xuXG4gIHJldHVybiBudWxsO1xufTtcblxuY29uc3QgUm9vdCA9IEFsZXJ0RGlhbG9nO1xuY29uc3QgVHJpZ2dlciA9IEFsZXJ0RGlhbG9nVHJpZ2dlcjtcbmNvbnN0IFBvcnRhbCA9IEFsZXJ0RGlhbG9nUG9ydGFsO1xuY29uc3QgT3ZlcmxheSA9IEFsZXJ0RGlhbG9nT3ZlcmxheTtcbmNvbnN0IENvbnRlbnQgPSBBbGVydERpYWxvZ0NvbnRlbnQ7XG5jb25zdCBBY3Rpb24gPSBBbGVydERpYWxvZ0FjdGlvbjtcbmNvbnN0IENhbmNlbCA9IEFsZXJ0RGlhbG9nQ2FuY2VsO1xuY29uc3QgVGl0bGUgPSBBbGVydERpYWxvZ1RpdGxlO1xuY29uc3QgRGVzY3JpcHRpb24gPSBBbGVydERpYWxvZ0Rlc2NyaXB0aW9uO1xuXG5leHBvcnQge1xuICBjcmVhdGVBbGVydERpYWxvZ1Njb3BlLFxuICAvL1xuICBBbGVydERpYWxvZyxcbiAgQWxlcnREaWFsb2dUcmlnZ2VyLFxuICBBbGVydERpYWxvZ1BvcnRhbCxcbiAgQWxlcnREaWFsb2dPdmVybGF5LFxuICBBbGVydERpYWxvZ0NvbnRlbnQsXG4gIEFsZXJ0RGlhbG9nQWN0aW9uLFxuICBBbGVydERpYWxvZ0NhbmNlbCxcbiAgQWxlcnREaWFsb2dUaXRsZSxcbiAgQWxlcnREaWFsb2dEZXNjcmlwdGlvbixcbiAgLy9cbiAgUm9vdCxcbiAgVHJpZ2dlcixcbiAgUG9ydGFsLFxuICBPdmVybGF5LFxuICBDb250ZW50LFxuICBBY3Rpb24sXG4gIENhbmNlbCxcbiAgVGl0bGUsXG4gIERlc2NyaXB0aW9uLFxufTtcbmV4cG9ydCB0eXBlIHtcbiAgQWxlcnREaWFsb2dQcm9wcyxcbiAgQWxlcnREaWFsb2dUcmlnZ2VyUHJvcHMsXG4gIEFsZXJ0RGlhbG9nUG9ydGFsUHJvcHMsXG4gIEFsZXJ0RGlhbG9nT3ZlcmxheVByb3BzLFxuICBBbGVydERpYWxvZ0NvbnRlbnRQcm9wcyxcbiAgQWxlcnREaWFsb2dBY3Rpb25Qcm9wcyxcbiAgQWxlcnREaWFsb2dDYW5jZWxQcm9wcyxcbiAgQWxlcnREaWFsb2dUaXRsZVByb3BzLFxuICBBbGVydERpYWxvZ0Rlc2NyaXB0aW9uUHJvcHMsXG59O1xuIl0sIm5hbWVzIjpbIlJlYWN0IiwiY3JlYXRlQ29udGV4dFNjb3BlIiwidXNlQ29tcG9zZWRSZWZzIiwiRGlhbG9nUHJpbWl0aXZlIiwiY3JlYXRlRGlhbG9nU2NvcGUiLCJjb21wb3NlRXZlbnRIYW5kbGVycyIsIlNsb3R0YWJsZSIsImpzeCIsImpzeHMiLCJST09UX05BTUUiLCJjcmVhdGVBbGVydERpYWxvZ0NvbnRleHQiLCJjcmVhdGVBbGVydERpYWxvZ1Njb3BlIiwidXNlRGlhbG9nU2NvcGUiLCJBbGVydERpYWxvZyIsInByb3BzIiwiX19zY29wZUFsZXJ0RGlhbG9nIiwiYWxlcnREaWFsb2dQcm9wcyIsImRpYWxvZ1Njb3BlIiwiUm9vdCIsIm1vZGFsIiwiZGlzcGxheU5hbWUiLCJUUklHR0VSX05BTUUiLCJBbGVydERpYWxvZ1RyaWdnZXIiLCJmb3J3YXJkUmVmIiwiZm9yd2FyZGVkUmVmIiwidHJpZ2dlclByb3BzIiwiVHJpZ2dlciIsInJlZiIsIlBPUlRBTF9OQU1FIiwiQWxlcnREaWFsb2dQb3J0YWwiLCJwb3J0YWxQcm9wcyIsIlBvcnRhbCIsIk9WRVJMQVlfTkFNRSIsIkFsZXJ0RGlhbG9nT3ZlcmxheSIsIm92ZXJsYXlQcm9wcyIsIk92ZXJsYXkiLCJDT05URU5UX05BTUUiLCJBbGVydERpYWxvZ0NvbnRlbnRQcm92aWRlciIsInVzZUFsZXJ0RGlhbG9nQ29udGVudENvbnRleHQiLCJBbGVydERpYWxvZ0NvbnRlbnQiLCJjaGlsZHJlbiIsImNvbnRlbnRQcm9wcyIsImNvbnRlbnRSZWYiLCJ1c2VSZWYiLCJjb21wb3NlZFJlZnMiLCJjYW5jZWxSZWYiLCJXYXJuaW5nUHJvdmlkZXIiLCJjb250ZW50TmFtZSIsInRpdGxlTmFtZSIsIlRJVExFX05BTUUiLCJkb2NzU2x1ZyIsInNjb3BlIiwiQ29udGVudCIsInJvbGUiLCJvbk9wZW5BdXRvRm9jdXMiLCJldmVudCIsInByZXZlbnREZWZhdWx0IiwiY3VycmVudCIsImZvY3VzIiwicHJldmVudFNjcm9sbCIsIm9uUG9pbnRlckRvd25PdXRzaWRlIiwib25JbnRlcmFjdE91dHNpZGUiLCJEZXNjcmlwdGlvbldhcm5pbmciLCJBbGVydERpYWxvZ1RpdGxlIiwidGl0bGVQcm9wcyIsIlRpdGxlIiwiREVTQ1JJUFRJT05fTkFNRSIsIkFsZXJ0RGlhbG9nRGVzY3JpcHRpb24iLCJkZXNjcmlwdGlvblByb3BzIiwiRGVzY3JpcHRpb24iLCJBQ1RJT05fTkFNRSIsIkFsZXJ0RGlhbG9nQWN0aW9uIiwiYWN0aW9uUHJvcHMiLCJDbG9zZSIsIkNBTkNFTF9OQU1FIiwiQWxlcnREaWFsb2dDYW5jZWwiLCJjYW5jZWxQcm9wcyIsIk1FU1NBR0UiLCJ1c2VFZmZlY3QiLCJoYXNEZXNjcmlwdGlvbiIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJnZXRBdHRyaWJ1dGUiLCJjb25zb2xlIiwid2FybiIsIkFjdGlvbiIsIkNhbmNlbCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/react-alert-dialog/dist/index.mjs\n"); /***/ }), /***/ "(ssr)/./node_modules/@radix-ui/react-arrow/dist/index.mjs": /*!***********************************************************!*\ !*** ./node_modules/@radix-ui/react-arrow/dist/index.mjs ***! \***********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Arrow: () => (/* binding */ Arrow),\n/* harmony export */ Root: () => (/* binding */ Root)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(ssr)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\n// packages/react/arrow/src/Arrow.tsx\n\n\n\nvar NAME = \"Arrow\";\nvar Arrow = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\n const { children, width = 10, height = 5, ...arrowProps } = props;\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\n _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_2__.Primitive.svg,\n {\n ...arrowProps,\n ref: forwardedRef,\n width,\n height,\n viewBox: \"0 0 30 10\",\n preserveAspectRatio: \"none\",\n children: props.asChild ? children : /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"polygon\", { points: \"0,0 30,0 15,10\" })\n }\n );\n});\nArrow.displayName = NAME;\nvar Root = Arrow;\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWFycm93L2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7QUFDK0I7QUFDdUI7QUFDZDtBQUN4QztBQUNBLFlBQVksNkNBQWdCO0FBQzVCLFVBQVUsa0RBQWtEO0FBQzVELHlCQUF5QixzREFBRztBQUM1QixJQUFJLGdFQUFTO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyREFBMkQsc0RBQUcsY0FBYywwQkFBMEI7QUFDdEc7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBSUU7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL21hbWFkLWFwcC8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtYXJyb3cvZGlzdC9pbmRleC5tanM/YzBhMiJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBwYWNrYWdlcy9yZWFjdC9hcnJvdy9zcmMvQXJyb3cudHN4XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IFByaW1pdGl2ZSB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlXCI7XG5pbXBvcnQgeyBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbnZhciBOQU1FID0gXCJBcnJvd1wiO1xudmFyIEFycm93ID0gUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCB3aWR0aCA9IDEwLCBoZWlnaHQgPSA1LCAuLi5hcnJvd1Byb3BzIH0gPSBwcm9wcztcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goXG4gICAgUHJpbWl0aXZlLnN2ZyxcbiAgICB7XG4gICAgICAuLi5hcnJvd1Byb3BzLFxuICAgICAgcmVmOiBmb3J3YXJkZWRSZWYsXG4gICAgICB3aWR0aCxcbiAgICAgIGhlaWdodCxcbiAgICAgIHZpZXdCb3g6IFwiMCAwIDMwIDEwXCIsXG4gICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvOiBcIm5vbmVcIixcbiAgICAgIGNoaWxkcmVuOiBwcm9wcy5hc0NoaWxkID8gY2hpbGRyZW4gOiAvKiBAX19QVVJFX18gKi8ganN4KFwicG9seWdvblwiLCB7IHBvaW50czogXCIwLDAgMzAsMCAxNSwxMFwiIH0pXG4gICAgfVxuICApO1xufSk7XG5BcnJvdy5kaXNwbGF5TmFtZSA9IE5BTUU7XG52YXIgUm9vdCA9IEFycm93O1xuZXhwb3J0IHtcbiAgQXJyb3csXG4gIFJvb3Rcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/react-arrow/dist/index.mjs\n"); /***/ }), /***/ "(ssr)/./node_modules/@radix-ui/react-collection/dist/index.mjs": /*!****************************************************************!*\ !*** ./node_modules/@radix-ui/react-collection/dist/index.mjs ***! \****************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createCollection: () => (/* binding */ createCollection)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-context */ \"(ssr)/./node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(ssr)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(ssr)/./node_modules/@radix-ui/react-slot/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ createCollection auto */ // packages/react/collection/src/Collection.tsx\n\n\n\n\n\nfunction createCollection(name) {\n const PROVIDER_NAME = name + \"CollectionProvider\";\n const [createCollectionContext, createCollectionScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__.createContextScope)(PROVIDER_NAME);\n const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(PROVIDER_NAME, {\n collectionRef: {\n current: null\n },\n itemMap: /* @__PURE__ */ new Map()\n });\n const CollectionProvider = (props)=>{\n const { scope, children } = props;\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const itemMap = react__WEBPACK_IMPORTED_MODULE_0__.useRef(/* @__PURE__ */ new Map()).current;\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(CollectionProviderImpl, {\n scope,\n itemMap,\n collectionRef: ref,\n children\n });\n };\n CollectionProvider.displayName = PROVIDER_NAME;\n const COLLECTION_SLOT_NAME = name + \"CollectionSlot\";\n const CollectionSlot = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, context.collectionRef);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_4__.Slot, {\n ref: composedRefs,\n children\n });\n });\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n const ITEM_SLOT_NAME = name + \"CollectionItemSlot\";\n const ITEM_DATA_ATTR = \"data-radix-collection-item\";\n const CollectionItemSlot = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { scope, children, ...itemData } = props;\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, ref);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(()=>{\n context.itemMap.set(ref, {\n ref,\n ...itemData\n });\n return ()=>void context.itemMap.delete(ref);\n });\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_4__.Slot, {\n ...{\n [ITEM_DATA_ATTR]: \"\"\n },\n ref: composedRefs,\n children\n });\n });\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n function useCollection(scope) {\n const context = useCollectionContext(name + \"CollectionConsumer\", scope);\n const getItems = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(()=>{\n const collectionNode = context.collectionRef.current;\n if (!collectionNode) return [];\n const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));\n const items = Array.from(context.itemMap.values());\n const orderedItems = items.sort((a, b)=>orderedNodes.indexOf(a.ref.current) - orderedNodes.indexOf(b.ref.current));\n return orderedItems;\n }, [\n context.collectionRef,\n context.itemMap\n ]);\n return getItems;\n }\n return [\n {\n Provider: CollectionProvider,\n Slot: CollectionSlot,\n ItemSlot: CollectionItemSlot\n },\n useCollection,\n createCollectionScope\n ];\n}\n //# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWNvbGxlY3Rpb24vZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFrQjtBQUNpQjtBQUNIO0FBQ1g7QUF1Q2Y7QUExQk4sU0FBU0ssaUJBQWlFQyxJQUFBO0lBS3hFLE1BQU1DLGdCQUFnQkQsT0FBTztJQUM3QixNQUFNLENBQUNFLHlCQUF5QkMsc0JBQXFCLEdBQUlSLDJFQUFrQkEsQ0FBQ007SUFVNUUsTUFBTSxDQUFDRyx3QkFBd0JDLHFCQUFvQixHQUFJSCx3QkFDckRELGVBQ0E7UUFBRUssZUFBZTtZQUFFQyxTQUFTO1FBQUs7UUFBR0MsU0FBUyxvQkFBSUM7SUFBTTtJQUd6RCxNQUFNQyxxQkFBMkUsQ0FBQ0M7UUFDaEYsTUFBTSxFQUFFQyxLQUFBLEVBQU9DLFFBQUEsRUFBUyxHQUFJRjtRQUM1QixNQUFNRyxNQUFNcEIseUNBQU0sQ0FBMEI7UUFDNUMsTUFBTWMsVUFBVWQseUNBQU0sQ0FBZ0Msb0JBQUllLE9BQU9GLE9BQUE7UUFDakUsT0FDRSxnQkFBQVQsc0RBQUFBLENBQUNNLHdCQUFBO1lBQXVCUTtZQUFjSjtZQUFrQkYsZUFBZVE7WUFDcEVEO1FBQUE7SUFHUDtJQUVBSCxtQkFBbUJNLFdBQUEsR0FBY2Y7SUFNakMsTUFBTWdCLHVCQUF1QmpCLE9BQU87SUFFcEMsTUFBTWtCLCtCQUFpQnhCLDZDQUFNLENBQzNCLENBQUNpQixPQUFPUztRQUNOLE1BQU0sRUFBRVIsS0FBQSxFQUFPQyxRQUFBLEVBQVMsR0FBSUY7UUFDNUIsTUFBTVUsVUFBVWhCLHFCQUFxQlksc0JBQXNCTDtRQUMzRCxNQUFNVSxlQUFlMUIsNkVBQWVBLENBQUN3QixjQUFjQyxRQUFRZixhQUFhO1FBQ3hFLE9BQU8sZ0JBQUFSLHNEQUFBQSxDQUFDRCxzREFBSUEsRUFBSjtZQUFLaUIsS0FBS1E7WUFBZVQ7UUFBQTtJQUNuQztJQUdGSyxlQUFlRixXQUFBLEdBQWNDO0lBTTdCLE1BQU1NLGlCQUFpQnZCLE9BQU87SUFDOUIsTUFBTXdCLGlCQUFpQjtJQU92QixNQUFNQyxtQ0FBcUIvQiw2Q0FBTSxDQUMvQixDQUFDaUIsT0FBT1M7UUFDTixNQUFNLEVBQUVSLEtBQUEsRUFBT0MsUUFBQSxFQUFVLEdBQUdhLFVBQVMsR0FBSWY7UUFDekMsTUFBTUcsTUFBTXBCLHlDQUFNLENBQW9CO1FBQ3RDLE1BQU00QixlQUFlMUIsNkVBQWVBLENBQUN3QixjQUFjTjtRQUNuRCxNQUFNTyxVQUFVaEIscUJBQXFCa0IsZ0JBQWdCWDtRQUVyRGxCLDRDQUFNLENBQVU7WUFDZDJCLFFBQVFiLE9BQUEsQ0FBUW9CLEdBQUEsQ0FBSWQsS0FBSztnQkFBRUE7Z0JBQUssR0FBSVksUUFBQTtZQUFpQztZQUNyRSxPQUFPLElBQU0sS0FBS0wsUUFBUWIsT0FBQSxDQUFRcUIsTUFBQSxDQUFPZjtRQUMzQztRQUVBLE9BQ0UsZ0JBQUFoQixzREFBQUEsQ0FBQ0Qsc0RBQUlBLEVBQUo7WUFBTSxHQUFHO2dCQUFFLENBQUMyQixlQUFjLEVBQUc7WUFBRztZQUFHVixLQUFLUTtZQUN0Q1Q7UUFBQTtJQUdQO0lBR0ZZLG1CQUFtQlQsV0FBQSxHQUFjTztJQU1qQyxTQUFTTyxjQUFjbEIsS0FBQTtRQUNyQixNQUFNUyxVQUFVaEIscUJBQXFCTCxPQUFPLHNCQUFzQlk7UUFFbEUsTUFBTW1CLFdBQVdyQyw4Q0FBTSxDQUFZO1lBQ2pDLE1BQU11QyxpQkFBaUJaLFFBQVFmLGFBQUEsQ0FBY0MsT0FBQTtZQUM3QyxJQUFJLENBQUMwQixnQkFBZ0IsT0FBTyxFQUFDO1lBQzdCLE1BQU1DLGVBQWVDLE1BQU1DLElBQUEsQ0FBS0gsZUFBZUksZ0JBQUEsQ0FBaUIsSUFBSWIsZUFBYyxFQUFHO1lBQ3JGLE1BQU1jLFFBQVFILE1BQU1DLElBQUEsQ0FBS2YsUUFBUWIsT0FBQSxDQUFRK0IsTUFBQTtZQUN6QyxNQUFNQyxlQUFlRixNQUFNRyxJQUFBLENBQ3pCLENBQUNDLEdBQUdDLElBQU1ULGFBQWFVLE9BQUEsQ0FBUUYsRUFBRTVCLEdBQUEsQ0FBSVAsT0FBUSxJQUFJMkIsYUFBYVUsT0FBQSxDQUFRRCxFQUFFN0IsR0FBQSxDQUFJUCxPQUFRO1lBRXRGLE9BQU9pQztRQUNULEdBQUc7WUFBQ25CLFFBQVFmLGFBQUE7WUFBZWUsUUFBUWIsT0FBTztTQUFDO1FBRTNDLE9BQU91QjtJQUNUO0lBRUEsT0FBTztRQUNMO1lBQUVjLFVBQVVuQztZQUFvQmIsTUFBTXFCO1lBQWdCNEIsVUFBVXJCO1FBQW1CO1FBQ25GSztRQUNBM0I7S0FDRjtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbWFtYWQtYXBwLy4uL3NyYy9Db2xsZWN0aW9uLnRzeD83OWQ2Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0U2NvcGUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29udGV4dCc7XG5pbXBvcnQgeyB1c2VDb21wb3NlZFJlZnMgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzJztcbmltcG9ydCB7IFNsb3QgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3Qtc2xvdCc7XG5cbnR5cGUgU2xvdFByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBTbG90PjtcbnR5cGUgQ29sbGVjdGlvbkVsZW1lbnQgPSBIVE1MRWxlbWVudDtcbmludGVyZmFjZSBDb2xsZWN0aW9uUHJvcHMgZXh0ZW5kcyBTbG90UHJvcHMge1xuICBzY29wZTogYW55O1xufVxuXG4vLyBXZSBoYXZlIHJlc29ydGVkIHRvIHJldHVybmluZyBzbG90cyBkaXJlY3RseSByYXRoZXIgdGhhbiBleHBvc2luZyBwcmltaXRpdmVzIHRoYXQgY2FuIHRoZW5cbi8vIGJlIHNsb3R0ZWQgbGlrZSBgPENvbGxlY3Rpb25JdGVtIGFzPXtTbG90fT7igKY8L0NvbGxlY3Rpb25JdGVtPmAuXG4vLyBUaGlzIGlzIGJlY2F1c2Ugd2UgZW5jb3VudGVyZWQgaXNzdWVzIHdpdGggZ2VuZXJpYyB0eXBlcyB0aGF0IGNhbm5vdCBiZSBzdGF0aWNhbGx5IGFuYWx5c2VkXG4vLyBkdWUgdG8gY3JlYXRpbmcgdGhlbSBkeW5hbWljYWxseSB2aWEgY3JlYXRlQ29sbGVjdGlvbi5cblxuZnVuY3Rpb24gY3JlYXRlQ29sbGVjdGlvbjxJdGVtRWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50LCBJdGVtRGF0YSA9IHt9PihuYW1lOiBzdHJpbmcpIHtcbiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQ29sbGVjdGlvblByb3ZpZGVyXG4gICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgY29uc3QgUFJPVklERVJfTkFNRSA9IG5hbWUgKyAnQ29sbGVjdGlvblByb3ZpZGVyJztcbiAgY29uc3QgW2NyZWF0ZUNvbGxlY3Rpb25Db250ZXh0LCBjcmVhdGVDb2xsZWN0aW9uU2NvcGVdID0gY3JlYXRlQ29udGV4dFNjb3BlKFBST1ZJREVSX05BTUUpO1xuXG4gIHR5cGUgQ29udGV4dFZhbHVlID0ge1xuICAgIGNvbGxlY3Rpb25SZWY6IFJlYWN0LlJlZk9iamVjdDxDb2xsZWN0aW9uRWxlbWVudCB8IG51bGw+O1xuICAgIGl0ZW1NYXA6IE1hcDxcbiAgICAgIFJlYWN0LlJlZk9iamVjdDxJdGVtRWxlbWVudCB8IG51bGw+LFxuICAgICAgeyByZWY6IFJlYWN0LlJlZk9iamVjdDxJdGVtRWxlbWVudCB8IG51bGw+IH0gJiBJdGVtRGF0YVxuICAgID47XG4gIH07XG5cbiAgY29uc3QgW0NvbGxlY3Rpb25Qcm92aWRlckltcGwsIHVzZUNvbGxlY3Rpb25Db250ZXh0XSA9IGNyZWF0ZUNvbGxlY3Rpb25Db250ZXh0PENvbnRleHRWYWx1ZT4oXG4gICAgUFJPVklERVJfTkFNRSxcbiAgICB7IGNvbGxlY3Rpb25SZWY6IHsgY3VycmVudDogbnVsbCB9LCBpdGVtTWFwOiBuZXcgTWFwKCkgfVxuICApO1xuXG4gIGNvbnN0IENvbGxlY3Rpb25Qcm92aWRlcjogUmVhY3QuRkM8eyBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTsgc2NvcGU6IGFueSB9PiA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgc2NvcGUsIGNoaWxkcmVuIH0gPSBwcm9wcztcbiAgICBjb25zdCByZWYgPSBSZWFjdC51c2VSZWY8Q29sbGVjdGlvbkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGl0ZW1NYXAgPSBSZWFjdC51c2VSZWY8Q29udGV4dFZhbHVlWydpdGVtTWFwJ10+KG5ldyBNYXAoKSkuY3VycmVudDtcbiAgICByZXR1cm4gKFxuICAgICAgPENvbGxlY3Rpb25Qcm92aWRlckltcGwgc2NvcGU9e3Njb3BlfSBpdGVtTWFwPXtpdGVtTWFwfSBjb2xsZWN0aW9uUmVmPXtyZWZ9PlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L0NvbGxlY3Rpb25Qcm92aWRlckltcGw+XG4gICAgKTtcbiAgfTtcblxuICBDb2xsZWN0aW9uUHJvdmlkZXIuZGlzcGxheU5hbWUgPSBQUk9WSURFUl9OQU1FO1xuXG4gIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIENvbGxlY3Rpb25TbG90XG4gICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgY29uc3QgQ09MTEVDVElPTl9TTE9UX05BTUUgPSBuYW1lICsgJ0NvbGxlY3Rpb25TbG90JztcblxuICBjb25zdCBDb2xsZWN0aW9uU2xvdCA9IFJlYWN0LmZvcndhcmRSZWY8Q29sbGVjdGlvbkVsZW1lbnQsIENvbGxlY3Rpb25Qcm9wcz4oXG4gICAgKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICAgIGNvbnN0IHsgc2NvcGUsIGNoaWxkcmVuIH0gPSBwcm9wcztcbiAgICAgIGNvbnN0IGNvbnRleHQgPSB1c2VDb2xsZWN0aW9uQ29udGV4dChDT0xMRUNUSU9OX1NMT1RfTkFNRSwgc2NvcGUpO1xuICAgICAgY29uc3QgY29tcG9zZWRSZWZzID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgY29udGV4dC5jb2xsZWN0aW9uUmVmKTtcbiAgICAgIHJldHVybiA8U2xvdCByZWY9e2NvbXBvc2VkUmVmc30+e2NoaWxkcmVufTwvU2xvdD47XG4gICAgfVxuICApO1xuXG4gIENvbGxlY3Rpb25TbG90LmRpc3BsYXlOYW1lID0gQ09MTEVDVElPTl9TTE9UX05BTUU7XG5cbiAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQ29sbGVjdGlvbkl0ZW1cbiAgICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuICBjb25zdCBJVEVNX1NMT1RfTkFNRSA9IG5hbWUgKyAnQ29sbGVjdGlvbkl0ZW1TbG90JztcbiAgY29uc3QgSVRFTV9EQVRBX0FUVFIgPSAnZGF0YS1yYWRpeC1jb2xsZWN0aW9uLWl0ZW0nO1xuXG4gIHR5cGUgQ29sbGVjdGlvbkl0ZW1TbG90UHJvcHMgPSBJdGVtRGF0YSAmIHtcbiAgICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xuICAgIHNjb3BlOiBhbnk7XG4gIH07XG5cbiAgY29uc3QgQ29sbGVjdGlvbkl0ZW1TbG90ID0gUmVhY3QuZm9yd2FyZFJlZjxJdGVtRWxlbWVudCwgQ29sbGVjdGlvbkl0ZW1TbG90UHJvcHM+KFxuICAgIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgICBjb25zdCB7IHNjb3BlLCBjaGlsZHJlbiwgLi4uaXRlbURhdGEgfSA9IHByb3BzO1xuICAgICAgY29uc3QgcmVmID0gUmVhY3QudXNlUmVmPEl0ZW1FbGVtZW50PihudWxsKTtcbiAgICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIHJlZik7XG4gICAgICBjb25zdCBjb250ZXh0ID0gdXNlQ29sbGVjdGlvbkNvbnRleHQoSVRFTV9TTE9UX05BTUUsIHNjb3BlKTtcblxuICAgICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgY29udGV4dC5pdGVtTWFwLnNldChyZWYsIHsgcmVmLCAuLi4oaXRlbURhdGEgYXMgdW5rbm93biBhcyBJdGVtRGF0YSkgfSk7XG4gICAgICAgIHJldHVybiAoKSA9PiB2b2lkIGNvbnRleHQuaXRlbU1hcC5kZWxldGUocmVmKTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U2xvdCB7Li4ueyBbSVRFTV9EQVRBX0FUVFJdOiAnJyB9fSByZWY9e2NvbXBvc2VkUmVmc30+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L1Nsb3Q+XG4gICAgICApO1xuICAgIH1cbiAgKTtcblxuICBDb2xsZWN0aW9uSXRlbVNsb3QuZGlzcGxheU5hbWUgPSBJVEVNX1NMT1RfTkFNRTtcblxuICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiB1c2VDb2xsZWN0aW9uXG4gICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiAgZnVuY3Rpb24gdXNlQ29sbGVjdGlvbihzY29wZTogYW55KSB7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZUNvbGxlY3Rpb25Db250ZXh0KG5hbWUgKyAnQ29sbGVjdGlvbkNvbnN1bWVyJywgc2NvcGUpO1xuXG4gICAgY29uc3QgZ2V0SXRlbXMgPSBSZWFjdC51c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBjb25zdCBjb2xsZWN0aW9uTm9kZSA9IGNvbnRleHQuY29sbGVjdGlvblJlZi5jdXJyZW50O1xuICAgICAgaWYgKCFjb2xsZWN0aW9uTm9kZSkgcmV0dXJuIFtdO1xuICAgICAgY29uc3Qgb3JkZXJlZE5vZGVzID0gQXJyYXkuZnJvbShjb2xsZWN0aW9uTm9kZS5xdWVyeVNlbGVjdG9yQWxsKGBbJHtJVEVNX0RBVEFfQVRUUn1dYCkpO1xuICAgICAgY29uc3QgaXRlbXMgPSBBcnJheS5mcm9tKGNvbnRleHQuaXRlbU1hcC52YWx1ZXMoKSk7XG4gICAgICBjb25zdCBvcmRlcmVkSXRlbXMgPSBpdGVtcy5zb3J0KFxuICAgICAgICAoYSwgYikgPT4gb3JkZXJlZE5vZGVzLmluZGV4T2YoYS5yZWYuY3VycmVudCEpIC0gb3JkZXJlZE5vZGVzLmluZGV4T2YoYi5yZWYuY3VycmVudCEpXG4gICAgICApO1xuICAgICAgcmV0dXJuIG9yZGVyZWRJdGVtcztcbiAgICB9LCBbY29udGV4dC5jb2xsZWN0aW9uUmVmLCBjb250ZXh0Lml0ZW1NYXBdKTtcblxuICAgIHJldHVybiBnZXRJdGVtcztcbiAgfVxuXG4gIHJldHVybiBbXG4gICAgeyBQcm92aWRlcjogQ29sbGVjdGlvblByb3ZpZGVyLCBTbG90OiBDb2xsZWN0aW9uU2xvdCwgSXRlbVNsb3Q6IENvbGxlY3Rpb25JdGVtU2xvdCB9LFxuICAgIHVzZUNvbGxlY3Rpb24sXG4gICAgY3JlYXRlQ29sbGVjdGlvblNjb3BlLFxuICBdIGFzIGNvbnN0O1xufVxuXG5leHBvcnQgeyBjcmVhdGVDb2xsZWN0aW9uIH07XG5leHBvcnQgdHlwZSB7IENvbGxlY3Rpb25Qcm9wcyB9O1xuIl0sIm5hbWVzIjpbIlJlYWN0IiwiY3JlYXRlQ29udGV4dFNjb3BlIiwidXNlQ29tcG9zZWRSZWZzIiwiU2xvdCIsImpzeCIsImNyZWF0ZUNvbGxlY3Rpb24iLCJuYW1lIiwiUFJPVklERVJfTkFNRSIsImNyZWF0ZUNvbGxlY3Rpb25Db250ZXh0IiwiY3JlYXRlQ29sbGVjdGlvblNjb3BlIiwiQ29sbGVjdGlvblByb3ZpZGVySW1wbCIsInVzZUNvbGxlY3Rpb25Db250ZXh0IiwiY29sbGVjdGlvblJlZiIsImN1cnJlbnQiLCJpdGVtTWFwIiwiTWFwIiwiQ29sbGVjdGlvblByb3ZpZGVyIiwicHJvcHMiLCJzY29wZSIsImNoaWxkcmVuIiwicmVmIiwidXNlUmVmIiwiZGlzcGxheU5hbWUiLCJDT0xMRUNUSU9OX1NMT1RfTkFNRSIsIkNvbGxlY3Rpb25TbG90IiwiZm9yd2FyZFJlZiIsImZvcndhcmRlZFJlZiIsImNvbnRleHQiLCJjb21wb3NlZFJlZnMiLCJJVEVNX1NMT1RfTkFNRSIsIklURU1fREFUQV9BVFRSIiwiQ29sbGVjdGlvbkl0ZW1TbG90IiwiaXRlbURhdGEiLCJ1c2VFZmZlY3QiLCJzZXQiLCJkZWxldGUiLCJ1c2VDb2xsZWN0aW9uIiwiZ2V0SXRlbXMiLCJ1c2VDYWxsYmFjayIsImNvbGxlY3Rpb25Ob2RlIiwib3JkZXJlZE5vZGVzIiwiQXJyYXkiLCJmcm9tIiwicXVlcnlTZWxlY3RvckFsbCIsIml0ZW1zIiwidmFsdWVzIiwib3JkZXJlZEl0ZW1zIiwic29ydCIsImEiLCJiIiwiaW5kZXhPZiIsIlByb3ZpZGVyIiwiSXRlbVNsb3QiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/react-collection/dist/index.mjs\n"); /***/ }), /***/ "(ssr)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs": /*!******************************************************************!*\ !*** ./node_modules/@radix-ui/react-compose-refs/dist/index.mjs ***! \******************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ composeRefs: () => (/* binding */ composeRefs),\n/* harmony export */ useComposedRefs: () => (/* binding */ useComposedRefs)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n// packages/react/compose-refs/src/composeRefs.tsx\n\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == \"function\") {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\nfunction useComposedRefs(...refs) {\n return react__WEBPACK_IMPORTED_MODULE_0__.useCallback(composeRefs(...refs), refs);\n}\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWNvbXBvc2UtcmVmcy9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUMrQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSx3QkFBd0IscUJBQXFCO0FBQzdDO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUyw4Q0FBaUI7QUFDMUI7QUFJRTtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbWFtYWQtYXBwLy4vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC1jb21wb3NlLXJlZnMvZGlzdC9pbmRleC5tanM/ZWRhNSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBwYWNrYWdlcy9yZWFjdC9jb21wb3NlLXJlZnMvc3JjL2NvbXBvc2VSZWZzLnRzeFxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5mdW5jdGlvbiBzZXRSZWYocmVmLCB2YWx1ZSkge1xuICBpZiAodHlwZW9mIHJlZiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgcmV0dXJuIHJlZih2YWx1ZSk7XG4gIH0gZWxzZSBpZiAocmVmICE9PSBudWxsICYmIHJlZiAhPT0gdm9pZCAwKSB7XG4gICAgcmVmLmN1cnJlbnQgPSB2YWx1ZTtcbiAgfVxufVxuZnVuY3Rpb24gY29tcG9zZVJlZnMoLi4ucmVmcykge1xuICByZXR1cm4gKG5vZGUpID0+IHtcbiAgICBsZXQgaGFzQ2xlYW51cCA9IGZhbHNlO1xuICAgIGNvbnN0IGNsZWFudXBzID0gcmVmcy5tYXAoKHJlZikgPT4ge1xuICAgICAgY29uc3QgY2xlYW51cCA9IHNldFJlZihyZWYsIG5vZGUpO1xuICAgICAgaWYgKCFoYXNDbGVhbnVwICYmIHR5cGVvZiBjbGVhbnVwID09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBoYXNDbGVhbnVwID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjbGVhbnVwO1xuICAgIH0pO1xuICAgIGlmIChoYXNDbGVhbnVwKSB7XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNsZWFudXBzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgY29uc3QgY2xlYW51cCA9IGNsZWFudXBzW2ldO1xuICAgICAgICAgIGlmICh0eXBlb2YgY2xlYW51cCA9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIGNsZWFudXAoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2V0UmVmKHJlZnNbaV0sIG51bGwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG4gIH07XG59XG5mdW5jdGlvbiB1c2VDb21wb3NlZFJlZnMoLi4ucmVmcykge1xuICByZXR1cm4gUmVhY3QudXNlQ2FsbGJhY2soY29tcG9zZVJlZnMoLi4ucmVmcyksIHJlZnMpO1xufVxuZXhwb3J0IHtcbiAgY29tcG9zZVJlZnMsXG4gIHVzZUNvbXBvc2VkUmVmc1xufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\n"); /***/ }), /***/ "(ssr)/./node_modules/@radix-ui/react-context/dist/index.mjs": /*!*************************************************************!*\ !*** ./node_modules/@radix-ui/react-context/dist/index.mjs ***! \*************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createContext: () => (/* binding */ createContext2),\n/* harmony export */ createContextScope: () => (/* binding */ createContextScope)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\n// packages/react/context/src/createContext.tsx\n\n\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = react__WEBPACK_IMPORTED_MODULE_0__.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = react__WEBPACK_IMPORTED_MODULE_0__.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return react__WEBPACK_IMPORTED_MODULE_0__.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWNvbnRleHQvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBO0FBQytCO0FBQ1M7QUFDeEM7QUFDQSxrQkFBa0IsZ0RBQW1CO0FBQ3JDO0FBQ0EsWUFBWSx1QkFBdUI7QUFDbkMsa0JBQWtCLDBDQUFhO0FBQy9CLDJCQUEyQixzREFBRyxxQkFBcUIsaUJBQWlCO0FBQ3BFO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiw2Q0FBZ0I7QUFDcEM7QUFDQTtBQUNBLHlCQUF5QixhQUFhLDJCQUEyQixrQkFBa0I7QUFDbkY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGdEQUFtQjtBQUMzQztBQUNBO0FBQ0E7QUFDQSxjQUFjLDhCQUE4QjtBQUM1QztBQUNBLG9CQUFvQiwwQ0FBYTtBQUNqQyw2QkFBNkIsc0RBQUcscUJBQXFCLGlCQUFpQjtBQUN0RTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQiw2Q0FBZ0I7QUFDdEM7QUFDQTtBQUNBLDJCQUEyQixhQUFhLDJCQUEyQixrQkFBa0I7QUFDckY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsZ0RBQW1CO0FBQ2hDLEtBQUs7QUFDTDtBQUNBO0FBQ0EsYUFBYSwwQ0FBYTtBQUMxQixpQkFBaUIsV0FBVyxVQUFVLE1BQU0sbUNBQW1DO0FBQy9FO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSwyREFBMkQscUJBQXFCO0FBQ2hGO0FBQ0Esa0RBQWtELFVBQVU7QUFDNUQsaUJBQWlCO0FBQ2pCLE9BQU8sSUFBSTtBQUNYLGFBQWEsMENBQWEsVUFBVSxXQUFXLG9CQUFvQixnQkFBZ0I7QUFDbkY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlFO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9tYW1hZC1hcHAvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWNvbnRleHQvZGlzdC9pbmRleC5tanM/ZTZkNiJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBwYWNrYWdlcy9yZWFjdC9jb250ZXh0L3NyYy9jcmVhdGVDb250ZXh0LnRzeFxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmZ1bmN0aW9uIGNyZWF0ZUNvbnRleHQyKHJvb3RDb21wb25lbnROYW1lLCBkZWZhdWx0Q29udGV4dCkge1xuICBjb25zdCBDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dChkZWZhdWx0Q29udGV4dCk7XG4gIGNvbnN0IFByb3ZpZGVyID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyBjaGlsZHJlbiwgLi4uY29udGV4dCB9ID0gcHJvcHM7XG4gICAgY29uc3QgdmFsdWUgPSBSZWFjdC51c2VNZW1vKCgpID0+IGNvbnRleHQsIE9iamVjdC52YWx1ZXMoY29udGV4dCkpO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KENvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWUsIGNoaWxkcmVuIH0pO1xuICB9O1xuICBQcm92aWRlci5kaXNwbGF5TmFtZSA9IHJvb3RDb21wb25lbnROYW1lICsgXCJQcm92aWRlclwiO1xuICBmdW5jdGlvbiB1c2VDb250ZXh0Mihjb25zdW1lck5hbWUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gUmVhY3QudXNlQ29udGV4dChDb250ZXh0KTtcbiAgICBpZiAoY29udGV4dCkgcmV0dXJuIGNvbnRleHQ7XG4gICAgaWYgKGRlZmF1bHRDb250ZXh0ICE9PSB2b2lkIDApIHJldHVybiBkZWZhdWx0Q29udGV4dDtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFxcYCR7Y29uc3VtZXJOYW1lfVxcYCBtdXN0IGJlIHVzZWQgd2l0aGluIFxcYCR7cm9vdENvbXBvbmVudE5hbWV9XFxgYCk7XG4gIH1cbiAgcmV0dXJuIFtQcm92aWRlciwgdXNlQ29udGV4dDJdO1xufVxuZnVuY3Rpb24gY3JlYXRlQ29udGV4dFNjb3BlKHNjb3BlTmFtZSwgY3JlYXRlQ29udGV4dFNjb3BlRGVwcyA9IFtdKSB7XG4gIGxldCBkZWZhdWx0Q29udGV4dHMgPSBbXTtcbiAgZnVuY3Rpb24gY3JlYXRlQ29udGV4dDMocm9vdENvbXBvbmVudE5hbWUsIGRlZmF1bHRDb250ZXh0KSB7XG4gICAgY29uc3QgQmFzZUNvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0KGRlZmF1bHRDb250ZXh0KTtcbiAgICBjb25zdCBpbmRleCA9IGRlZmF1bHRDb250ZXh0cy5sZW5ndGg7XG4gICAgZGVmYXVsdENvbnRleHRzID0gWy4uLmRlZmF1bHRDb250ZXh0cywgZGVmYXVsdENvbnRleHRdO1xuICAgIGNvbnN0IFByb3ZpZGVyID0gKHByb3BzKSA9PiB7XG4gICAgICBjb25zdCB7IHNjb3BlLCBjaGlsZHJlbiwgLi4uY29udGV4dCB9ID0gcHJvcHM7XG4gICAgICBjb25zdCBDb250ZXh0ID0gc2NvcGU/LltzY29wZU5hbWVdPy5baW5kZXhdIHx8IEJhc2VDb250ZXh0O1xuICAgICAgY29uc3QgdmFsdWUgPSBSZWFjdC51c2VNZW1vKCgpID0+IGNvbnRleHQsIE9iamVjdC52YWx1ZXMoY29udGV4dCkpO1xuICAgICAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBqc3goQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZSwgY2hpbGRyZW4gfSk7XG4gICAgfTtcbiAgICBQcm92aWRlci5kaXNwbGF5TmFtZSA9IHJvb3RDb21wb25lbnROYW1lICsgXCJQcm92aWRlclwiO1xuICAgIGZ1bmN0aW9uIHVzZUNvbnRleHQyKGNvbnN1bWVyTmFtZSwgc2NvcGUpIHtcbiAgICAgIGNvbnN0IENvbnRleHQgPSBzY29wZT8uW3Njb3BlTmFtZV0/LltpbmRleF0gfHwgQmFzZUNvbnRleHQ7XG4gICAgICBjb25zdCBjb250ZXh0ID0gUmVhY3QudXNlQ29udGV4dChDb250ZXh0KTtcbiAgICAgIGlmIChjb250ZXh0KSByZXR1cm4gY29udGV4dDtcbiAgICAgIGlmIChkZWZhdWx0Q29udGV4dCAhPT0gdm9pZCAwKSByZXR1cm4gZGVmYXVsdENvbnRleHQ7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFxcYCR7Y29uc3VtZXJOYW1lfVxcYCBtdXN0IGJlIHVzZWQgd2l0aGluIFxcYCR7cm9vdENvbXBvbmVudE5hbWV9XFxgYCk7XG4gICAgfVxuICAgIHJldHVybiBbUHJvdmlkZXIsIHVzZUNvbnRleHQyXTtcbiAgfVxuICBjb25zdCBjcmVhdGVTY29wZSA9ICgpID0+IHtcbiAgICBjb25zdCBzY29wZUNvbnRleHRzID0gZGVmYXVsdENvbnRleHRzLm1hcCgoZGVmYXVsdENvbnRleHQpID0+IHtcbiAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVDb250ZXh0KGRlZmF1bHRDb250ZXh0KTtcbiAgICB9KTtcbiAgICByZXR1cm4gZnVuY3Rpb24gdXNlU2NvcGUoc2NvcGUpIHtcbiAgICAgIGNvbnN0IGNvbnRleHRzID0gc2NvcGU/LltzY29wZU5hbWVdIHx8IHNjb3BlQ29udGV4dHM7XG4gICAgICByZXR1cm4gUmVhY3QudXNlTWVtbyhcbiAgICAgICAgKCkgPT4gKHsgW2BfX3Njb3BlJHtzY29wZU5hbWV9YF06IHsgLi4uc2NvcGUsIFtzY29wZU5hbWVdOiBjb250ZXh0cyB9IH0pLFxuICAgICAgICBbc2NvcGUsIGNvbnRleHRzXVxuICAgICAgKTtcbiAgICB9O1xuICB9O1xuICBjcmVhdGVTY29wZS5zY29wZU5hbWUgPSBzY29wZU5hbWU7XG4gIHJldHVybiBbY3JlYXRlQ29udGV4dDMsIGNvbXBvc2VDb250ZXh0U2NvcGVzKGNyZWF0ZVNjb3BlLCAuLi5jcmVhdGVDb250ZXh0U2NvcGVEZXBzKV07XG59XG5mdW5jdGlvbiBjb21wb3NlQ29udGV4dFNjb3BlcyguLi5zY29wZXMpIHtcbiAgY29uc3QgYmFzZVNjb3BlID0gc2NvcGVzWzBdO1xuICBpZiAoc2NvcGVzLmxlbmd0aCA9PT0gMSkgcmV0dXJuIGJhc2VTY29wZTtcbiAgY29uc3QgY3JlYXRlU2NvcGUgPSAoKSA9PiB7XG4gICAgY29uc3Qgc2NvcGVIb29rcyA9IHNjb3Blcy5tYXAoKGNyZWF0ZVNjb3BlMikgPT4gKHtcbiAgICAgIHVzZVNjb3BlOiBjcmVhdGVTY29wZTIoKSxcbiAgICAgIHNjb3BlTmFtZTogY3JlYXRlU2NvcGUyLnNjb3BlTmFtZVxuICAgIH0pKTtcbiAgICByZXR1cm4gZnVuY3Rpb24gdXNlQ29tcG9zZWRTY29wZXMob3ZlcnJpZGVTY29wZXMpIHtcbiAgICAgIGNvbnN0IG5leHRTY29wZXMgPSBzY29wZUhvb2tzLnJlZHVjZSgobmV4dFNjb3BlczIsIHsgdXNlU2NvcGUsIHNjb3BlTmFtZSB9KSA9PiB7XG4gICAgICAgIGNvbnN0IHNjb3BlUHJvcHMgPSB1c2VTY29wZShvdmVycmlkZVNjb3Blcyk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRTY29wZSA9IHNjb3BlUHJvcHNbYF9fc2NvcGUke3Njb3BlTmFtZX1gXTtcbiAgICAgICAgcmV0dXJuIHsgLi4ubmV4dFNjb3BlczIsIC4uLmN1cnJlbnRTY29wZSB9O1xuICAgICAgfSwge30pO1xuICAgICAgcmV0dXJuIFJlYWN0LnVzZU1lbW8oKCkgPT4gKHsgW2BfX3Njb3BlJHtiYXNlU2NvcGUuc2NvcGVOYW1lfWBdOiBuZXh0U2NvcGVzIH0pLCBbbmV4dFNjb3Blc10pO1xuICAgIH07XG4gIH07XG4gIGNyZWF0ZVNjb3BlLnNjb3BlTmFtZSA9IGJhc2VTY29wZS5zY29wZU5hbWU7XG4gIHJldHVybiBjcmVhdGVTY29wZTtcbn1cbmV4cG9ydCB7XG4gIGNyZWF0ZUNvbnRleHQyIGFzIGNyZWF0ZUNvbnRleHQsXG4gIGNyZWF0ZUNvbnRleHRTY29wZVxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/react-context/dist/index.mjs\n"); /***/ }), /***/ "(ssr)/./node_modules/@radix-ui/react-dialog/dist/index.mjs": /*!************************************************************!*\ !*** ./node_modules/@radix-ui/react-dialog/dist/index.mjs ***! \************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Close: () => (/* binding */ Close),\n/* harmony export */ Content: () => (/* binding */ Content),\n/* harmony export */ Description: () => (/* binding */ Description),\n/* harmony export */ Dialog: () => (/* binding */ Dialog),\n/* harmony export */ DialogClose: () => (/* binding */ DialogClose),\n/* harmony export */ DialogContent: () => (/* binding */ DialogContent),\n/* harmony export */ DialogDescription: () => (/* binding */ DialogDescription),\n/* harmony export */ DialogOverlay: () => (/* binding */ DialogOverlay),\n/* harmony export */ DialogPortal: () => (/* binding */ DialogPortal),\n/* harmony export */ DialogTitle: () => (/* binding */ DialogTitle),\n/* harmony export */ DialogTrigger: () => (/* binding */ DialogTrigger),\n/* harmony export */ Overlay: () => (/* binding */ Overlay),\n/* harmony export */ Portal: () => (/* binding */ Portal),\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ Title: () => (/* binding */ Title),\n/* harmony export */ Trigger: () => (/* binding */ Trigger),\n/* harmony export */ WarningProvider: () => (/* binding */ WarningProvider),\n/* harmony export */ createDialogScope: () => (/* binding */ createDialogScope)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var _radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @radix-ui/primitive */ \"(ssr)/./node_modules/@radix-ui/primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(ssr)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-context */ \"(ssr)/./node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-id */ \"(ssr)/./node_modules/@radix-ui/react-id/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-use-controllable-state */ \"(ssr)/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_dismissable_layer__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @radix-ui/react-dismissable-layer */ \"(ssr)/./node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_focus_scope__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @radix-ui/react-focus-scope */ \"(ssr)/./node_modules/@radix-ui/react-focus-scope/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_portal__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @radix-ui/react-portal */ \"(ssr)/./node_modules/@radix-ui/react-portal/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @radix-ui/react-presence */ \"(ssr)/./node_modules/@radix-ui/react-presence/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(ssr)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_focus_guards__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @radix-ui/react-focus-guards */ \"(ssr)/./node_modules/@radix-ui/react-focus-guards/dist/index.mjs\");\n/* harmony import */ var react_remove_scroll__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react-remove-scroll */ \"(ssr)/./node_modules/react-remove-scroll/dist/es2015/Combination.js\");\n/* harmony import */ var aria_hidden__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! aria-hidden */ \"(ssr)/./node_modules/aria-hidden/dist/es2015/index.js\");\n/* harmony import */ var _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(ssr)/./node_modules/@radix-ui/react-slot/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Close,Content,Description,Dialog,DialogClose,DialogContent,DialogDescription,DialogOverlay,DialogPortal,DialogTitle,DialogTrigger,Overlay,Portal,Root,Title,Trigger,WarningProvider,createDialogScope auto */ // packages/react/dialog/src/Dialog.tsx\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar DIALOG_NAME = \"Dialog\";\nvar [createDialogContext, createDialogScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__.createContextScope)(DIALOG_NAME);\nvar [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);\nvar Dialog = (props)=>{\n const { __scopeDialog, children, open: openProp, defaultOpen, onOpenChange, modal = true } = props;\n const triggerRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const contentRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const [open = false, setOpen] = (0,_radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_3__.useControllableState)({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(DialogProvider, {\n scope: __scopeDialog,\n triggerRef,\n contentRef,\n contentId: (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_4__.useId)(),\n titleId: (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_4__.useId)(),\n descriptionId: (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_4__.useId)(),\n open,\n onOpenChange: setOpen,\n onOpenToggle: react__WEBPACK_IMPORTED_MODULE_0__.useCallback(()=>setOpen((prevOpen)=>!prevOpen), [\n setOpen\n ]),\n modal,\n children\n });\n};\nDialog.displayName = DIALOG_NAME;\nvar TRIGGER_NAME = \"DialogTrigger\";\nvar DialogTrigger = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { __scopeDialog, ...triggerProps } = props;\n const context = useDialogContext(TRIGGER_NAME, __scopeDialog);\n const composedTriggerRef = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_5__.useComposedRefs)(forwardedRef, context.triggerRef);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_6__.Primitive.button, {\n type: \"button\",\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.contentId,\n \"data-state\": getState(context.open),\n ...triggerProps,\n ref: composedTriggerRef,\n onClick: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onClick, context.onOpenToggle)\n });\n});\nDialogTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"DialogPortal\";\nvar [PortalProvider, usePortalContext] = createDialogContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar DialogPortal = (props)=>{\n const { __scopeDialog, forceMount, children, container } = props;\n const context = useDialogContext(PORTAL_NAME, __scopeDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(PortalProvider, {\n scope: __scopeDialog,\n forceMount,\n children: react__WEBPACK_IMPORTED_MODULE_0__.Children.map(children, (child)=>/* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_8__.Presence, {\n present: forceMount || context.open,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_portal__WEBPACK_IMPORTED_MODULE_9__.Portal, {\n asChild: true,\n container,\n children: child\n })\n }))\n });\n};\nDialogPortal.displayName = PORTAL_NAME;\nvar OVERLAY_NAME = \"DialogOverlay\";\nvar DialogOverlay = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);\n return context.modal ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_8__.Presence, {\n present: forceMount || context.open,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(DialogOverlayImpl, {\n ...overlayProps,\n ref: forwardedRef\n })\n }) : null;\n});\nDialogOverlay.displayName = OVERLAY_NAME;\nvar DialogOverlayImpl = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { __scopeDialog, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, __scopeDialog);\n return(// Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`\n // ie. when `Overlay` and `Content` are siblings\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(react_remove_scroll__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n as: _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_11__.Slot,\n allowPinchZoom: true,\n shards: [\n context.contentRef\n ],\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_6__.Primitive.div, {\n \"data-state\": getState(context.open),\n ...overlayProps,\n ref: forwardedRef,\n style: {\n pointerEvents: \"auto\",\n ...overlayProps.style\n }\n })\n }));\n});\nvar CONTENT_NAME = \"DialogContent\";\nvar DialogContent = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_8__.Presence, {\n present: forceMount || context.open,\n children: context.modal ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(DialogContentModal, {\n ...contentProps,\n ref: forwardedRef\n }) : /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(DialogContentNonModal, {\n ...contentProps,\n ref: forwardedRef\n })\n });\n});\nDialogContent.displayName = CONTENT_NAME;\nvar DialogContentModal = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const contentRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_5__.useComposedRefs)(forwardedRef, context.contentRef, contentRef);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(()=>{\n const content = contentRef.current;\n if (content) return (0,aria_hidden__WEBPACK_IMPORTED_MODULE_12__.hideOthers)(content);\n }, []);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(DialogContentImpl, {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: true,\n onCloseAutoFocus: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onCloseAutoFocus, (event)=>{\n event.preventDefault();\n context.triggerRef.current?.focus();\n }),\n onPointerDownOutside: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onPointerDownOutside, (event)=>{\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n if (isRightClick) event.preventDefault();\n }),\n onFocusOutside: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onFocusOutside, (event)=>event.preventDefault())\n });\n});\nvar DialogContentNonModal = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const hasInteractedOutsideRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n const hasPointerDownOutsideRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(DialogContentImpl, {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n onCloseAutoFocus: (event)=>{\n props.onCloseAutoFocus?.(event);\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n event.preventDefault();\n }\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n },\n onInteractOutside: (event)=>{\n props.onInteractOutside?.(event);\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === \"pointerdown\") {\n hasPointerDownOutsideRef.current = true;\n }\n }\n const target = event.target;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n if (event.detail.originalEvent.type === \"focusin\" && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }\n });\n});\nvar DialogContentImpl = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, __scopeDialog);\n const contentRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_5__.useComposedRefs)(forwardedRef, contentRef);\n (0,_radix_ui_react_focus_guards__WEBPACK_IMPORTED_MODULE_13__.useFocusGuards)();\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.Fragment, {\n children: [\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_focus_scope__WEBPACK_IMPORTED_MODULE_14__.FocusScope, {\n asChild: true,\n loop: true,\n trapped: trapFocus,\n onMountAutoFocus: onOpenAutoFocus,\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_dismissable_layer__WEBPACK_IMPORTED_MODULE_15__.DismissableLayer, {\n role: \"dialog\",\n id: context.contentId,\n \"aria-describedby\": context.descriptionId,\n \"aria-labelledby\": context.titleId,\n \"data-state\": getState(context.open),\n ...contentProps,\n ref: composedRefs,\n onDismiss: ()=>context.onOpenChange(false)\n })\n }),\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.Fragment, {\n children: [\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(TitleWarning, {\n titleId: context.titleId\n }),\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(DescriptionWarning, {\n contentRef,\n descriptionId: context.descriptionId\n })\n ]\n })\n ]\n });\n});\nvar TITLE_NAME = \"DialogTitle\";\nvar DialogTitle = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { __scopeDialog, ...titleProps } = props;\n const context = useDialogContext(TITLE_NAME, __scopeDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_6__.Primitive.h2, {\n id: context.titleId,\n ...titleProps,\n ref: forwardedRef\n });\n});\nDialogTitle.displayName = TITLE_NAME;\nvar DESCRIPTION_NAME = \"DialogDescription\";\nvar DialogDescription = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { __scopeDialog, ...descriptionProps } = props;\n const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_6__.Primitive.p, {\n id: context.descriptionId,\n ...descriptionProps,\n ref: forwardedRef\n });\n});\nDialogDescription.displayName = DESCRIPTION_NAME;\nvar CLOSE_NAME = \"DialogClose\";\nvar DialogClose = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { __scopeDialog, ...closeProps } = props;\n const context = useDialogContext(CLOSE_NAME, __scopeDialog);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_6__.Primitive.button, {\n type: \"button\",\n ...closeProps,\n ref: forwardedRef,\n onClick: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_7__.composeEventHandlers)(props.onClick, ()=>context.onOpenChange(false))\n });\n});\nDialogClose.displayName = CLOSE_NAME;\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar TITLE_WARNING_NAME = \"DialogTitleWarning\";\nvar [WarningProvider, useWarningContext] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__.createContext)(TITLE_WARNING_NAME, {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: \"dialog\"\n});\nvar TitleWarning = ({ titleId })=>{\n const titleWarningContext = useWarningContext(TITLE_WARNING_NAME);\n const MESSAGE = `\\`${titleWarningContext.contentName}\\` requires a \\`${titleWarningContext.titleName}\\` for the component to be accessible for screen reader users.\n\nIf you want to hide the \\`${titleWarningContext.titleName}\\`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/${titleWarningContext.docsSlug}`;\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(()=>{\n if (titleId) {\n const hasTitle = document.getElementById(titleId);\n if (!hasTitle) console.error(MESSAGE);\n }\n }, [\n MESSAGE,\n titleId\n ]);\n return null;\n};\nvar DESCRIPTION_WARNING_NAME = \"DialogDescriptionWarning\";\nvar DescriptionWarning = ({ contentRef, descriptionId })=>{\n const descriptionWarningContext = useWarningContext(DESCRIPTION_WARNING_NAME);\n const MESSAGE = `Warning: Missing \\`Description\\` or \\`aria-describedby={undefined}\\` for {${descriptionWarningContext.contentName}}.`;\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(()=>{\n const describedById = contentRef.current?.getAttribute(\"aria-describedby\");\n if (descriptionId && describedById) {\n const hasDescription = document.getElementById(descriptionId);\n if (!hasDescription) console.warn(MESSAGE);\n }\n }, [\n MESSAGE,\n contentRef,\n descriptionId\n ]);\n return null;\n};\nvar Root = Dialog;\nvar Trigger = DialogTrigger;\nvar Portal = DialogPortal;\nvar Overlay = DialogOverlay;\nvar Content = DialogContent;\nvar Title = DialogTitle;\nvar Description = DialogDescription;\nvar Close = DialogClose;\n //# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWRpYWxvZy9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUF1QjtBQUNjO0FBQ0w7QUFDa0I7QUFDNUI7QUFDZTtBQUNKO0FBQ047QUFDZTtBQUNqQjtBQUNDO0FBQ0s7QUFDRjtBQUNGO0FBQ047QUFxRGpCO0FBN0NKLElBQU1vQixjQUFjO0FBR3BCLElBQU0sQ0FBQ0MscUJBQXFCQyxrQkFBaUIsR0FBSWxCLDJFQUFrQkEsQ0FBQ2dCO0FBY3BFLElBQU0sQ0FBQ0csZ0JBQWdCQyxpQkFBZ0IsR0FBSUgsb0JBQXdDRDtBQVVuRixJQUFNSyxTQUFnQyxDQUFDQztJQUNyQyxNQUFNLEVBQ0pDLGFBQUEsRUFDQUMsUUFBQSxFQUNBQyxNQUFNQyxRQUFBLEVBQ05DLFdBQUEsRUFDQUMsWUFBQSxFQUNBQyxRQUFRLE1BQ1YsR0FBSVA7SUFDSixNQUFNUSxhQUFtQmxDLHlDQUFBLENBQTBCO0lBQ25ELE1BQU1vQyxhQUFtQnBDLHlDQUFBLENBQTZCO0lBQ3RELE1BQU0sQ0FBQzZCLE9BQU8sT0FBT1EsUUFBTyxHQUFJL0IsNEZBQW9CQSxDQUFDO1FBQ25EZ0MsTUFBTVI7UUFDTlMsYUFBYVI7UUFDYlMsVUFBVVI7SUFDWjtJQUVBLE9BQ0UsZ0JBQUFkLHNEQUFBQSxDQUFDSyxnQkFBQTtRQUNDa0IsT0FBT2Q7UUFDUE87UUFDQUU7UUFDQU0sV0FBV3JDLHlEQUFLQTtRQUNoQnNDLFNBQVN0Qyx5REFBS0E7UUFDZHVDLGVBQWV2Qyx5REFBS0E7UUFDcEJ3QjtRQUNBRyxjQUFjSztRQUNkUSxjQUFvQjdDLDhDQUFBLENBQVksSUFBTXFDLFFBQVEsQ0FBQ1UsV0FBYSxDQUFDQSxXQUFXO1lBQUNWO1NBQVE7UUFDakZKO1FBRUNMO0lBQUE7QUFHUDtBQUVBSCxPQUFPdUIsV0FBQSxHQUFjNUI7QUFNckIsSUFBTTZCLGVBQWU7QUFNckIs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ZCxJQUFJMkMsU0FBUztZQUNYLE1BQU1tRyxXQUFXQyxTQUFTQyxjQUFBLENBQWVyRztZQUN6QyxJQUFJLENBQUNtRyxVQUFVRyxRQUFRQyxLQUFBLENBQU1MO1FBQy9CO0lBQ0YsR0FBRztRQUFDQTtRQUFTbEc7S0FBUTtJQUVyQixPQUFPO0FBQ1Q7QUFFQSxJQUFNd0csMkJBQTJCO0FBT2pDLElBQU16QixxQkFBd0QsQ0FBQyxFQUFFdEYsVUFBQSxFQUFZUSxhQUFBLEVBQWM7SUFDekYsTUFBTXdHLDRCQUE0Qlosa0JBQWtCVztJQUNwRCxNQUFNTixVQUFVLDZFQUE2RU8sMEJBQTBCWCxXQUFXO0lBRTVIekksNENBQUEsQ0FBVTtRQUNkLE1BQU1xSixnQkFBZ0JqSCxXQUFXdUQsT0FBQSxFQUFTMkQsYUFBYTtRQUV2RCxJQUFJMUcsaUJBQWlCeUcsZUFBZTtZQUNsQyxNQUFNRSxpQkFBaUJSLFNBQVNDLGNBQUEsQ0FBZXBHO1lBQy9DLElBQUksQ0FBQzJHLGdCQUFnQk4sUUFBUU8sSUFBQSxDQUFLWDtRQUNwQztJQUNGLEdBQUc7UUFBQ0E7UUFBU3pHO1FBQVlRO0tBQWM7SUFFdkMsT0FBTztBQUNUO0FBRUEsSUFBTTZHLE9BQU9oSTtBQUNiLElBQU1pSSxVQUFVeEc7QUFDaEIsSUFBTXpDLFNBQVN3RDtBQUNmLElBQU0wRixVQUFVbEY7QUFDaEIsSUFBTW1GLFVBQVV4RTtBQUNoQixJQUFNeUUsUUFBUWpDO0FBQ2QsSUFBTWtDLGNBQWM5QjtBQUNwQixJQUFNK0IsUUFBUTNCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbWFtYWQtYXBwLy4uL3NyYy9EaWFsb2cudHN4PzI5NTgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY29tcG9zZUV2ZW50SGFuZGxlcnMgfSBmcm9tICdAcmFkaXgtdWkvcHJpbWl0aXZlJztcbmltcG9ydCB7IHVzZUNvbXBvc2VkUmVmcyB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1jb21wb3NlLXJlZnMnO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgY3JlYXRlQ29udGV4dFNjb3BlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbnRleHQnO1xuaW1wb3J0IHsgdXNlSWQgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtaWQnO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxhYmxlU3RhdGUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtdXNlLWNvbnRyb2xsYWJsZS1zdGF0ZSc7XG5pbXBvcnQgeyBEaXNtaXNzYWJsZUxheWVyIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWRpc21pc3NhYmxlLWxheWVyJztcbmltcG9ydCB7IEZvY3VzU2NvcGUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtZm9jdXMtc2NvcGUnO1xuaW1wb3J0IHsgUG9ydGFsIGFzIFBvcnRhbFByaW1pdGl2ZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1wb3J0YWwnO1xuaW1wb3J0IHsgUHJlc2VuY2UgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtcHJlc2VuY2UnO1xuaW1wb3J0IHsgUHJpbWl0aXZlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXByaW1pdGl2ZSc7XG5pbXBvcnQgeyB1c2VGb2N1c0d1YXJkcyB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1mb2N1cy1ndWFyZHMnO1xuaW1wb3J0IHsgUmVtb3ZlU2Nyb2xsIH0gZnJvbSAncmVhY3QtcmVtb3ZlLXNjcm9sbCc7XG5pbXBvcnQgeyBoaWRlT3RoZXJzIH0gZnJvbSAnYXJpYS1oaWRkZW4nO1xuaW1wb3J0IHsgU2xvdCB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1zbG90JztcblxuaW1wb3J0IHR5cGUgeyBTY29wZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1jb250ZXh0JztcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRGlhbG9nXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IERJQUxPR19OQU1FID0gJ0RpYWxvZyc7XG5cbnR5cGUgU2NvcGVkUHJvcHM8UD4gPSBQICYgeyBfX3Njb3BlRGlhbG9nPzogU2NvcGUgfTtcbmNvbnN0IFtjcmVhdGVEaWFsb2dDb250ZXh0LCBjcmVhdGVEaWFsb2dTY29wZV0gPSBjcmVhdGVDb250ZXh0U2NvcGUoRElBTE9HX05BTUUpO1xuXG50eXBlIERpYWxvZ0NvbnRleHRWYWx1ZSA9IHtcbiAgdHJpZ2dlclJlZjogUmVhY3QuUmVmT2JqZWN0PEhUTUxCdXR0b25FbGVtZW50IHwgbnVsbD47XG4gIGNvbnRlbnRSZWY6IFJlYWN0LlJlZk9iamVjdDxEaWFsb2dDb250ZW50RWxlbWVudCB8IG51bGw+O1xuICBjb250ZW50SWQ6IHN0cmluZztcbiAgdGl0bGVJZDogc3RyaW5nO1xuICBkZXNjcmlwdGlvbklkOiBzdHJpbmc7XG4gIG9wZW46IGJvb2xlYW47XG4gIG9uT3BlbkNoYW5nZShvcGVuOiBib29sZWFuKTogdm9pZDtcbiAgb25PcGVuVG9nZ2xlKCk6IHZvaWQ7XG4gIG1vZGFsOiBib29sZWFuO1xufTtcblxuY29uc3QgW0RpYWxvZ1Byb3ZpZGVyLCB1c2VEaWFsb2dDb250ZXh0XSA9IGNyZWF0ZURpYWxvZ0NvbnRleHQ8RGlhbG9nQ29udGV4dFZhbHVlPihESUFMT0dfTkFNRSk7XG5cbmludGVyZmFjZSBEaWFsb2dQcm9wcyB7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICBvcGVuPzogYm9vbGVhbjtcbiAgZGVmYXVsdE9wZW4/OiBib29sZWFuO1xuICBvbk9wZW5DaGFuZ2U/KG9wZW46IGJvb2xlYW4pOiB2b2lkO1xuICBtb2RhbD86IGJvb2xlYW47XG59XG5cbmNvbnN0IERpYWxvZzogUmVhY3QuRkM8RGlhbG9nUHJvcHM+ID0gKHByb3BzOiBTY29wZWRQcm9wczxEaWFsb2dQcm9wcz4pID0+IHtcbiAgY29uc3Qge1xuICAgIF9fc2NvcGVEaWFsb2csXG4gICAgY2hpbGRyZW4sXG4gICAgb3Blbjogb3BlblByb3AsXG4gICAgZGVmYXVsdE9wZW4sXG4gICAgb25PcGVuQ2hhbmdlLFxuICAgIG1vZGFsID0gdHJ1ZSxcbiAgfSA9IHByb3BzO1xuICBjb25zdCB0cmlnZ2VyUmVmID0gUmVhY3QudXNlUmVmPEhUTUxCdXR0b25FbGVtZW50PihudWxsKTtcbiAgY29uc3QgY29udGVudFJlZiA9IFJlYWN0LnVzZVJlZjxEaWFsb2dDb250ZW50RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFtvcGVuID0gZmFsc2UsIHNldE9wZW5dID0gdXNlQ29udHJvbGxhYmxlU3RhdGUoe1xuICAgIHByb3A6IG9wZW5Qcm9wLFxuICAgIGRlZmF1bHRQcm9wOiBkZWZhdWx0T3BlbixcbiAgICBvbkNoYW5nZTogb25PcGVuQ2hhbmdlLFxuICB9KTtcblxuICByZXR1cm4gKFxuICAgIDxEaWFsb2dQcm92aWRlclxuICAgICAgc2NvcGU9e19fc2NvcGVEaWFsb2d9XG4gICAgICB0cmlnZ2VyUmVmPXt0cmlnZ2VyUmVmfVxuICAgICAgY29udGVudFJlZj17Y29udGVudFJlZn1cbiAgICAgIGNvbnRlbnRJZD17dXNlSWQoKX1cbiAgICAgIHRpdGxlSWQ9e3VzZUlkKCl9XG4gICAgICBkZXNjcmlwdGlvbklkPXt1c2VJZCgpfVxuICAgICAgb3Blbj17b3Blbn1cbiAgICAgIG9uT3BlbkNoYW5nZT17c2V0T3Blbn1cbiAgICAgIG9uT3BlblRvZ2dsZT17UmVhY3QudXNlQ2FsbGJhY2soKCkgPT4gc2V0T3BlbigocHJldk9wZW4pID0+ICFwcmV2T3BlbiksIFtzZXRPcGVuXSl9XG4gICAgICBtb2RhbD17bW9kYWx9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvRGlhbG9nUHJvdmlkZXI+XG4gICk7XG59O1xuXG5EaWFsb2cuZGlzcGxheU5hbWUgPSBESUFMT0dfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRGlhbG9nVHJpZ2dlclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBUUklHR0VSX05BTUUgPSAnRGlhbG9nVHJpZ2dlcic7XG5cbnR5cGUgRGlhbG9nVHJpZ2dlckVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuYnV0dG9uPjtcbnR5cGUgUHJpbWl0aXZlQnV0dG9uUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFByaW1pdGl2ZS5idXR0b24+O1xuaW50ZXJmYWNlIERpYWxvZ1RyaWdnZXJQcm9wcyBleHRlbmRzIFByaW1pdGl2ZUJ1dHRvblByb3BzIHt9XG5cbmNvbnN0IERpYWxvZ1RyaWdnZXIgPSBSZWFjdC5mb3J3YXJkUmVmPERpYWxvZ1RyaWdnZXJFbGVtZW50LCBEaWFsb2dUcmlnZ2VyUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPERpYWxvZ1RyaWdnZXJQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZURpYWxvZywgLi4udHJpZ2dlclByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlRGlhbG9nQ29udGV4dChUUklHR0VSX05BTUUsIF9fc2NvcGVEaWFsb2cpO1xuICAgIGNvbnN0IGNvbXBvc2VkVHJpZ2dlclJlZiA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIGNvbnRleHQudHJpZ2dlclJlZik7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmltaXRpdmUuYnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBhcmlhLWhhc3BvcHVwPVwiZGlhbG9nXCJcbiAgICAgICAgYXJpYS1leHBhbmRlZD17Y29udGV4dC5vcGVufVxuICAgICAgICBhcmlhLWNvbnRyb2xzPXtjb250ZXh0LmNvbnRlbnRJZH1cbiAgICAgICAgZGF0YS1zdGF0ZT17Z2V0U3RhdGUoY29udGV4dC5vcGVuKX1cbiAgICAgICAgey4uLnRyaWdnZXJQcm9wc31cbiAgICAgICAgcmVmPXtjb21wb3NlZFRyaWdnZXJSZWZ9XG4gICAgICAgIG9uQ2xpY2s9e2NvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uQ2xpY2ssIGNvbnRleHQub25PcGVuVG9nZ2xlKX1cbiAgICAgIC8+XG4gICAgKTtcbiAgfVxuKTtcblxuRGlhbG9nVHJpZ2dlci5kaXNwbGF5TmFtZSA9IFRSSUdHRVJfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRGlhbG9nUG9ydGFsXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFBPUlRBTF9OQU1FID0gJ0RpYWxvZ1BvcnRhbCc7XG5cbnR5cGUgUG9ydGFsQ29udGV4dFZhbHVlID0geyBmb3JjZU1vdW50PzogdHJ1ZSB9O1xuY29uc3QgW1BvcnRhbFByb3ZpZGVyLCB1c2VQb3J0YWxDb250ZXh0XSA9IGNyZWF0ZURpYWxvZ0NvbnRleHQ8UG9ydGFsQ29udGV4dFZhbHVlPihQT1JUQUxfTkFNRSwge1xuICBmb3JjZU1vdW50OiB1bmRlZmluZWQsXG59KTtcblxudHlwZSBQb3J0YWxQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgUG9ydGFsUHJpbWl0aXZlPjtcbmludGVyZmFjZSBEaWFsb2dQb3J0YWxQcm9wcyB7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICAvKipcbiAgICogU3BlY2lmeSBhIGNvbnRhaW5lciBlbGVtZW50IHRvIHBvcnRhbCB0aGUgY29udGVudCBpbnRvLlxuICAgKi9cbiAgY29udGFpbmVyPzogUG9ydGFsUHJvcHNbJ2NvbnRhaW5lciddO1xuICAvKipcbiAgICogVXNlZCB0byBmb3JjZSBtb3VudGluZyB3aGVuIG1vcmUgY29udHJvbCBpcyBuZWVkZWQuIFVzZWZ1bCB3aGVuXG4gICAqIGNvbnRyb2xsaW5nIGFuaW1hdGlvbiB3aXRoIFJlYWN0IGFuaW1hdGlvbiBsaWJyYXJpZXMuXG4gICAqL1xuICBmb3JjZU1vdW50PzogdHJ1ZTtcbn1cblxuY29uc3QgRGlhbG9nUG9ydGFsOiBSZWFjdC5GQzxEaWFsb2dQb3J0YWxQcm9wcz4gPSAocHJvcHM6IFNjb3BlZFByb3BzPERpYWxvZ1BvcnRhbFByb3BzPikgPT4ge1xuICBjb25zdCB7IF9fc2NvcGVEaWFsb2csIGZvcmNlTW91bnQsIGNoaWxkcmVuLCBjb250YWluZXIgfSA9IHByb3BzO1xuICBjb25zdCBjb250ZXh0ID0gdXNlRGlhbG9nQ29udGV4dChQT1JUQUxfTkFNRSwgX19zY29wZURpYWxvZyk7XG4gIHJldHVybiAoXG4gICAgPFBvcnRhbFByb3ZpZGVyIHNjb3BlPXtfX3Njb3BlRGlhbG9nfSBmb3JjZU1vdW50PXtmb3JjZU1vdW50fT5cbiAgICAgIHtSZWFjdC5DaGlsZHJlbi5tYXAoY2hpbGRyZW4sIChjaGlsZCkgPT4gKFxuICAgICAgICA8UHJlc2VuY2UgcHJlc2VudD17Zm9yY2VNb3VudCB8fCBjb250ZXh0Lm9wZW59PlxuICAgICAgICAgIDxQb3J0YWxQcmltaXRpdmUgYXNDaGlsZCBjb250YWluZXI9e2NvbnRhaW5lcn0+XG4gICAgICAgICAgICB7Y2hpbGR9XG4gICAgICAgICAgPC9Qb3J0YWxQcmltaXRpdmU+XG4gICAgICAgIDwvUHJlc2VuY2U+XG4gICAgICApKX1cbiAgICA8L1BvcnRhbFByb3ZpZGVyPlxuICApO1xufTtcblxuRGlhbG9nUG9ydGFsLmRpc3BsYXlOYW1lID0gUE9SVEFMX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIERpYWxvZ092ZXJsYXlcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgT1ZFUkxBWV9OQU1FID0gJ0RpYWxvZ092ZXJsYXknO1xuXG50eXBlIERpYWxvZ092ZXJsYXlFbGVtZW50ID0gRGlhbG9nT3ZlcmxheUltcGxFbGVtZW50O1xuaW50ZXJmYWNlIERpYWxvZ092ZXJsYXlQcm9wcyBleHRlbmRzIERpYWxvZ092ZXJsYXlJbXBsUHJvcHMge1xuICAvKipcbiAgICogVXNlZCB0byBmb3JjZSBtb3VudGluZyB3aGVuIG1vcmUgY29udHJvbCBpcyBuZWVkZWQuIFVzZWZ1bCB3aGVuXG4gICAqIGNvbnRyb2xsaW5nIGFuaW1hdGlvbiB3aXRoIFJlYWN0IGFuaW1hdGlvbiBsaWJyYXJpZXMuXG4gICAqL1xuICBmb3JjZU1vdW50PzogdHJ1ZTtcbn1cblxuY29uc3QgRGlhbG9nT3ZlcmxheSA9IFJlYWN0LmZvcndhcmRSZWY8RGlhbG9nT3ZlcmxheUVsZW1lbnQsIERpYWxvZ092ZXJsYXlQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8RGlhbG9nT3ZlcmxheVByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgcG9ydGFsQ29udGV4dCA9IHVzZVBvcnRhbENvbnRleHQoT1ZFUkxBWV9OQU1FLCBwcm9wcy5fX3Njb3BlRGlhbG9nKTtcbiAgICBjb25zdCB7IGZvcmNlTW91bnQgPSBwb3J0YWxDb250ZXh0LmZvcmNlTW91bnQsIC4uLm92ZXJsYXlQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZURpYWxvZ0NvbnRleHQoT1ZFUkxBWV9OQU1FLCBwcm9wcy5fX3Njb3BlRGlhbG9nKTtcbiAgICByZXR1cm4gY29udGV4dC5tb2RhbCA/IChcbiAgICAgIDxQcmVzZW5jZSBwcmVzZW50PXtmb3JjZU1vdW50IHx8IGNvbnRleHQub3Blbn0+XG4gICAgICAgIDxEaWFsb2dPdmVybGF5SW1wbCB7Li4ub3ZlcmxheVByb3BzfSByZWY9e2ZvcndhcmRlZFJlZn0gLz5cbiAgICAgIDwvUHJlc2VuY2U+XG4gICAgKSA6IG51bGw7XG4gIH1cbik7XG5cbkRpYWxvZ092ZXJsYXkuZGlzcGxheU5hbWUgPSBPVkVSTEFZX05BTUU7XG5cbnR5cGUgRGlhbG9nT3ZlcmxheUltcGxFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLmRpdj47XG50eXBlIFByaW1pdGl2ZURpdlByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBQcmltaXRpdmUuZGl2PjtcbmludGVyZmFjZSBEaWFsb2dPdmVybGF5SW1wbFByb3BzIGV4dGVuZHMgUHJpbWl0aXZlRGl2UHJvcHMge31cblxuY29uc3QgRGlhbG9nT3ZlcmxheUltcGwgPSBSZWFjdC5mb3J3YXJkUmVmPERpYWxvZ092ZXJsYXlJbXBsRWxlbWVudCwgRGlhbG9nT3ZlcmxheUltcGxQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8RGlhbG9nT3ZlcmxheUltcGxQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZURpYWxvZywgLi4ub3ZlcmxheVByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlRGlhbG9nQ29udGV4dChPVkVSTEFZX05BTUUsIF9fc2NvcGVEaWFsb2cpO1xuICAgIHJldHVybiAoXG4gICAgICAvLyBNYWtlIHN1cmUgYENvbnRlbnRgIGlzIHNjcm9sbGFibGUgZXZlbiB3aGVuIGl0IGRvZXNuJ3QgbGl2ZSBpbnNpZGUgYFJlbW92ZVNjcm9sbGBcbiAgICAgIC8vIGllLiB3aGVuIGBPdmVybGF5YCBhbmQgYENvbnRlbnRgIGFyZSBzaWJsaW5nc1xuICAgICAgPFJlbW92ZVNjcm9sbCBhcz17U2xvdH0gYWxsb3dQaW5jaFpvb20gc2hhcmRzPXtbY29udGV4dC5jb250ZW50UmVmXX0+XG4gICAgICAgIDxQcmltaXRpdmUuZGl2XG4gICAgICAgICAgZGF0YS1zdGF0ZT17Z2V0U3RhdGUoY29udGV4dC5vcGVuKX1cbiAgICAgICAgICB7Li4ub3ZlcmxheVByb3BzfVxuICAgICAgICAgIHJlZj17Zm9yd2FyZGVkUmVmfVxuICAgICAgICAgIC8vIFdlIHJlLWVuYWJsZSBwb2ludGVyLWV2ZW50cyBwcmV2ZW50ZWQgYnkgYERpYWxvZy5Db250ZW50YCB0byBhbGxvdyBzY3JvbGxpbmcgdGhlIG92ZXJsYXkuXG4gICAgICAgICAgc3R5bGU9e3sgcG9pbnRlckV2ZW50czogJ2F1dG8nLCAuLi5vdmVybGF5UHJvcHMuc3R5bGUgfX1cbiAgICAgICAgLz5cbiAgICAgIDwvUmVtb3ZlU2Nyb2xsPlxuICAgICk7XG4gIH1cbik7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIERpYWxvZ0NvbnRlbnRcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgQ09OVEVOVF9OQU1FID0gJ0RpYWxvZ0NvbnRlbnQnO1xuXG50eXBlIERpYWxvZ0NvbnRlbnRFbGVtZW50ID0gRGlhbG9nQ29udGVudFR5cGVFbGVtZW50O1xuaW50ZXJmYWNlIERpYWxvZ0NvbnRlbnRQcm9wcyBleHRlbmRzIERpYWxvZ0NvbnRlbnRUeXBlUHJvcHMge1xuICAvKipcbiAgICogVXNlZCB0byBmb3JjZSBtb3VudGluZyB3aGVuIG1vcmUgY29udHJvbCBpcyBuZWVkZWQuIFVzZWZ1bCB3aGVuXG4gICAqIGNvbnRyb2xsaW5nIGFuaW1hdGlvbiB3aXRoIFJlYWN0IGFuaW1hdGlvbiBsaWJyYXJpZXMuXG4gICAqL1xuICBmb3JjZU1vdW50PzogdHJ1ZTtcbn1cblxuY29uc3QgRGlhbG9nQ29udGVudCA9IFJlYWN0LmZvcndhcmRSZWY8RGlhbG9nQ29udGVudEVsZW1lbnQsIERpYWxvZ0NvbnRlbnRQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8RGlhbG9nQ29udGVudFByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgcG9ydGFsQ29udGV4dCA9IHVzZVBvcnRhbENvbnRleHQoQ09OVEVOVF9OQU1FLCBwcm9wcy5fX3Njb3BlRGlhbG9nKTtcbiAgICBjb25zdCB7IGZvcmNlTW91bnQgPSBwb3J0YWxDb250ZXh0LmZvcmNlTW91bnQsIC4uLmNvbnRlbnRQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZURpYWxvZ0NvbnRleHQoQ09OVEVOVF9OQU1FLCBwcm9wcy5fX3Njb3BlRGlhbG9nKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXNlbmNlIHByZXNlbnQ9e2ZvcmNlTW91bnQgfHwgY29udGV4dC5vcGVufT5cbiAgICAgICAge2NvbnRleHQubW9kYWwgPyAoXG4gICAgICAgICAgPERpYWxvZ0NvbnRlbnRNb2RhbCB7Li4uY29udGVudFByb3BzfSByZWY9e2ZvcndhcmRlZFJlZn0gLz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8RGlhbG9nQ29udGVudE5vbk1vZGFsIHsuLi5jb250ZW50UHJvcHN9IHJlZj17Zm9yd2FyZGVkUmVmfSAvPlxuICAgICAgICApfVxuICAgICAgPC9QcmVzZW5jZT5cbiAgICApO1xuICB9XG4pO1xuXG5EaWFsb2dDb250ZW50LmRpc3BsYXlOYW1lID0gQ09OVEVOVF9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbnR5cGUgRGlhbG9nQ29udGVudFR5cGVFbGVtZW50ID0gRGlhbG9nQ29udGVudEltcGxFbGVtZW50O1xuaW50ZXJmYWNlIERpYWxvZ0NvbnRlbnRUeXBlUHJvcHNcbiAgZXh0ZW5kcyBPbWl0PERpYWxvZ0NvbnRlbnRJbXBsUHJvcHMsICd0cmFwRm9jdXMnIHwgJ2Rpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50cyc+IHt9XG5cbmNvbnN0IERpYWxvZ0NvbnRlbnRNb2RhbCA9IFJlYWN0LmZvcndhcmRSZWY8RGlhbG9nQ29udGVudFR5cGVFbGVtZW50LCBEaWFsb2dDb250ZW50VHlwZVByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxEaWFsb2dDb250ZW50VHlwZVByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZURpYWxvZ0NvbnRleHQoQ09OVEVOVF9OQU1FLCBwcm9wcy5fX3Njb3BlRGlhbG9nKTtcbiAgICBjb25zdCBjb250ZW50UmVmID0gUmVhY3QudXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCBjb250ZXh0LmNvbnRlbnRSZWYsIGNvbnRlbnRSZWYpO1xuXG4gICAgLy8gYXJpYS1oaWRlIGV2ZXJ5dGhpbmcgZXhjZXB0IHRoZSBjb250ZW50IChiZXR0ZXIgc3VwcG9ydGVkIGVxdWl2YWxlbnQgdG8gc2V0dGluZyBhcmlhLW1vZGFsKVxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBjb250ZW50ID0gY29udGVudFJlZi5jdXJyZW50O1xuICAgICAgaWYgKGNvbnRlbnQpIHJldHVybiBoaWRlT3RoZXJzKGNvbnRlbnQpO1xuICAgIH0sIFtdKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8RGlhbG9nQ29udGVudEltcGxcbiAgICAgICAgey4uLnByb3BzfVxuICAgICAgICByZWY9e2NvbXBvc2VkUmVmc31cbiAgICAgICAgLy8gd2UgbWFrZSBzdXJlIGZvY3VzIGlzbid0IHRyYXBwZWQgb25jZSBgRGlhbG9nQ29udGVudGAgaGFzIGJlZW4gY2xvc2VkXG4gICAgICAgIC8vIChjbG9zZWQgIT09IHVubW91bnRlZCB3aGVuIGFuaW1hdGluZyBvdXQpXG4gICAgICAgIHRyYXBGb2N1cz17Y29udGV4dC5vcGVufVxuICAgICAgICBkaXNhYmxlT3V0c2lkZVBvaW50ZXJFdmVudHNcbiAgICAgICAgb25DbG9zZUF1dG9Gb2N1cz17Y29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25DbG9zZUF1dG9Gb2N1cywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBjb250ZXh0LnRyaWdnZXJSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgICAgfSl9XG4gICAgICAgIG9uUG9pbnRlckRvd25PdXRzaWRlPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vblBvaW50ZXJEb3duT3V0c2lkZSwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3Qgb3JpZ2luYWxFdmVudCA9IGV2ZW50LmRldGFpbC5vcmlnaW5hbEV2ZW50O1xuICAgICAgICAgIGNvbnN0IGN0cmxMZWZ0Q2xpY2sgPSBvcmlnaW5hbEV2ZW50LmJ1dHRvbiA9PT0gMCAmJiBvcmlnaW5hbEV2ZW50LmN0cmxLZXkgPT09IHRydWU7XG4gICAgICAgICAgY29uc3QgaXNSaWdodENsaWNrID0gb3JpZ2luYWxFdmVudC5idXR0b24gPT09IDIgfHwgY3RybExlZnRDbGljaztcblxuICAgICAgICAgIC8vIElmIHRoZSBldmVudCBpcyBhIHJpZ2h0LWNsaWNrLCB3ZSBzaG91bGRuJ3QgY2xvc2UgYmVjYXVzZVxuICAgICAgICAgIC8vIGl0IGlzIGVmZmVjdGl2ZWx5IGFzIGlmIHdlIHJpZ2h0LWNsaWNrZWQgdGhlIGBPdmVybGF5YC5cbiAgICAgICAgICBpZiAoaXNSaWdodENsaWNrKSBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9KX1cbiAgICAgICAgLy8gV2hlbiBmb2N1cyBpcyB0cmFwcGVkLCBhIGBmb2N1c291dGAgZXZlbnQgbWF5IHN0aWxsIGhhcHBlbi5cbiAgICAgICAgLy8gV2UgbWFrZSBzdXJlIHdlIGRvbid0IHRyaWdnZXIgb3VyIGBvbkRpc21pc3NgIGluIHN1Y2ggY2FzZS5cbiAgICAgICAgb25Gb2N1c091dHNpZGU9e2NvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uRm9jdXNPdXRzaWRlLCAoZXZlbnQpID0+XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICApfVxuICAgICAgLz5cbiAgICApO1xuICB9XG4pO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IERpYWxvZ0NvbnRlbnROb25Nb2RhbCA9IFJlYWN0LmZvcndhcmRSZWY8RGlhbG9nQ29udGVudFR5cGVFbGVtZW50LCBEaWFsb2dDb250ZW50VHlwZVByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxEaWFsb2dDb250ZW50VHlwZVByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZURpYWxvZ0NvbnRleHQoQ09OVEVOVF9OQU1FLCBwcm9wcy5fX3Njb3BlRGlhbG9nKTtcbiAgICBjb25zdCBoYXNJbnRlcmFjdGVkT3V0c2lkZVJlZiA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gICAgY29uc3QgaGFzUG9pbnRlckRvd25PdXRzaWRlUmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8RGlhbG9nQ29udGVudEltcGxcbiAgICAgICAgey4uLnByb3BzfVxuICAgICAgICByZWY9e2ZvcndhcmRlZFJlZn1cbiAgICAgICAgdHJhcEZvY3VzPXtmYWxzZX1cbiAgICAgICAgZGlzYWJsZU91dHNpZGVQb2ludGVyRXZlbnRzPXtmYWxzZX1cbiAgICAgICAgb25DbG9zZUF1dG9Gb2N1cz17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgcHJvcHMub25DbG9zZUF1dG9Gb2N1cz8uKGV2ZW50KTtcblxuICAgICAgICAgIGlmICghZXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAgICAgaWYgKCFoYXNJbnRlcmFjdGVkT3V0c2lkZVJlZi5jdXJyZW50KSBjb250ZXh0LnRyaWdnZXJSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgICAgICAgIC8vIEFsd2F5cyBwcmV2ZW50IGF1dG8gZm9jdXMgYmVjYXVzZSB3ZSBlaXRoZXIgZm9jdXMgbWFudWFsbHkgb3Igd2FudCB1c2VyIGFnZW50IGZvY3VzXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGhhc0ludGVyYWN0ZWRPdXRzaWRlUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgICBoYXNQb2ludGVyRG93bk91dHNpZGVSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICB9fVxuICAgICAgICBvbkludGVyYWN0T3V0c2lkZT17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgcHJvcHMub25JbnRlcmFjdE91dHNpZGU/LihldmVudCk7XG5cbiAgICAgICAgICBpZiAoIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICAgIGhhc0ludGVyYWN0ZWRPdXRzaWRlUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICAgICAgaWYgKGV2ZW50LmRldGFpbC5vcmlnaW5hbEV2ZW50LnR5cGUgPT09ICdwb2ludGVyZG93bicpIHtcbiAgICAgICAgICAgICAgaGFzUG9pbnRlckRvd25PdXRzaWRlUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIFByZXZlbnQgZGlzbWlzc2luZyB3aGVuIGNsaWNraW5nIHRoZSB0cmlnZ2VyLlxuICAgICAgICAgIC8vIEFzIHRoZSB0cmlnZ2VyIGlzIGFscmVhZHkgc2V0dXAgdG8gY2xvc2UsIHdpdGhvdXQgZG9pbmcgc28gd291bGRcbiAgICAgICAgICAvLyBjYXVzZSBpdCB0byBjbG9zZSBhbmQgaW1tZWRpYXRlbHkgb3Blbi5cbiAgICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgY29uc3QgdGFyZ2V0SXNUcmlnZ2VyID0gY29udGV4dC50cmlnZ2VyUmVmLmN1cnJlbnQ/LmNvbnRhaW5zKHRhcmdldCk7XG4gICAgICAgICAgaWYgKHRhcmdldElzVHJpZ2dlcikgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgIC8vIE9uIFNhZmFyaSBpZiB0aGUgdHJpZ2dlciBpcyBpbnNpZGUgYSBjb250YWluZXIgd2l0aCB0YWJJbmRleD17MH0sIHdoZW4gY2xpY2tlZFxuICAgICAgICAgIC8vIHdlIHdpbGwgZ2V0IHRoZSBwb2ludGVyIGRvd24gb3V0c2lkZSBldmVudCBvbiB0aGUgdHJpZ2dlciwgYnV0IHRoZW4gYSBzdWJzZXF1ZW50XG4gICAgICAgICAgLy8gZm9jdXMgb3V0c2lkZSBldmVudCBvbiB0aGUgY29udGFpbmVyLCB3ZSBpZ25vcmUgYW55IGZvY3VzIG91dHNpZGUgZXZlbnQgd2hlbiB3ZSd2ZVxuICAgICAgICAgIC8vIGFscmVhZHkgaGFkIGEgcG9pbnRlciBkb3duIG91dHNpZGUgZXZlbnQuXG4gICAgICAgICAgaWYgKGV2ZW50LmRldGFpbC5vcmlnaW5hbEV2ZW50LnR5cGUgPT09ICdmb2N1c2luJyAmJiBoYXNQb2ludGVyRG93bk91dHNpZGVSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH19XG4gICAgICAvPlxuICAgICk7XG4gIH1cbik7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxudHlwZSBEaWFsb2dDb250ZW50SW1wbEVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBEaXNtaXNzYWJsZUxheWVyPjtcbnR5cGUgRGlzbWlzc2FibGVMYXllclByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBEaXNtaXNzYWJsZUxheWVyPjtcbnR5cGUgRm9jdXNTY29wZVByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBGb2N1c1Njb3BlPjtcbmludGVyZmFjZSBEaWFsb2dDb250ZW50SW1wbFByb3BzIGV4dGVuZHMgT21pdDxEaXNtaXNzYWJsZUxheWVyUHJvcHMsICdvbkRpc21pc3MnPiB7XG4gIC8qKlxuICAgKiBXaGVuIGB0cnVlYCwgZm9jdXMgY2Fubm90IGVzY2FwZSB0aGUgYENvbnRlbnRgIHZpYSBrZXlib2FyZCxcbiAgICogcG9pbnRlciwgb3IgYSBwcm9ncmFtbWF0aWMgZm9jdXMuXG4gICAqIEBkZWZhdWx0VmFsdWUgZmFsc2VcbiAgICovXG4gIHRyYXBGb2N1cz86IEZvY3VzU2NvcGVQcm9wc1sndHJhcHBlZCddO1xuXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGNhbGxlZCB3aGVuIGF1dG8tZm9jdXNpbmcgb24gb3Blbi5cbiAgICogQ2FuIGJlIHByZXZlbnRlZC5cbiAgICovXG4gIG9uT3BlbkF1dG9Gb2N1cz86IEZvY3VzU2NvcGVQcm9wc1snb25Nb3VudEF1dG9Gb2N1cyddO1xuXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGNhbGxlZCB3aGVuIGF1dG8tZm9jdXNpbmcgb24gY2xvc2UuXG4gICAqIENhbiBiZSBwcmV2ZW50ZWQuXG4gICAqL1xuICBvbkNsb3NlQXV0b0ZvY3VzPzogRm9jdXNTY29wZVByb3BzWydvblVubW91bnRBdXRvRm9jdXMnXTtcbn1cblxuY29uc3QgRGlhbG9nQ29udGVudEltcGwgPSBSZWFjdC5mb3J3YXJkUmVmPERpYWxvZ0NvbnRlbnRJbXBsRWxlbWVudCwgRGlhbG9nQ29udGVudEltcGxQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8RGlhbG9nQ29udGVudEltcGxQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZURpYWxvZywgdHJhcEZvY3VzLCBvbk9wZW5BdXRvRm9jdXMsIG9uQ2xvc2VBdXRvRm9jdXMsIC4uLmNvbnRlbnRQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZURpYWxvZ0NvbnRleHQoQ09OVEVOVF9OQU1FLCBfX3Njb3BlRGlhbG9nKTtcbiAgICBjb25zdCBjb250ZW50UmVmID0gUmVhY3QudXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCBjb250ZW50UmVmKTtcblxuICAgIC8vIE1ha2Ugc3VyZSB0aGUgd2hvbGUgdHJlZSBoYXMgZm9jdXMgZ3VhcmRzIGFzIG91ciBgRGlhbG9nYCB3aWxsIGJlXG4gICAgLy8gdGhlIGxhc3QgZWxlbWVudCBpbiB0aGUgRE9NIChiZWNhdXNlIG9mIHRoZSBgUG9ydGFsYClcbiAgICB1c2VGb2N1c0d1YXJkcygpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxGb2N1c1Njb3BlXG4gICAgICAgICAgYXNDaGlsZFxuICAgICAgICAgIGxvb3BcbiAgICAgICAgICB0cmFwcGVkPXt0cmFwRm9jdXN9XG4gICAgICAgICAgb25Nb3VudEF1dG9Gb2N1cz17b25PcGVuQXV0b0ZvY3VzfVxuICAgICAgICAgIG9uVW5tb3VudEF1dG9Gb2N1cz17b25DbG9zZUF1dG9Gb2N1c31cbiAgICAgICAgPlxuICAgICAgICAgIDxEaXNtaXNzYWJsZUxheWVyXG4gICAgICAgICAgICByb2xlPVwiZGlhbG9nXCJcbiAgICAgICAgICAgIGlkPXtjb250ZXh0LmNvbnRlbnRJZH1cbiAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9e2NvbnRleHQuZGVzY3JpcHRpb25JZH1cbiAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT17Y29udGV4dC50aXRsZUlkfVxuICAgICAgICAgICAgZGF0YS1zdGF0ZT17Z2V0U3RhdGUoY29udGV4dC5vcGVuKX1cbiAgICAgICAgICAgIHsuLi5jb250ZW50UHJvcHN9XG4gICAgICAgICAgICByZWY9e2NvbXBvc2VkUmVmc31cbiAgICAgICAgICAgIG9uRGlzbWlzcz17KCkgPT4gY29udGV4dC5vbk9wZW5DaGFuZ2UoZmFsc2UpfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvRm9jdXNTY29wZT5cbiAgICAgICAge3Byb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8VGl0bGVXYXJuaW5nIHRpdGxlSWQ9e2NvbnRleHQudGl0bGVJZH0gLz5cbiAgICAgICAgICAgIDxEZXNjcmlwdGlvbldhcm5pbmcgY29udGVudFJlZj17Y29udGVudFJlZn0gZGVzY3JpcHRpb25JZD17Y29udGV4dC5kZXNjcmlwdGlvbklkfSAvPlxuICAgICAgICAgIDwvPlxuICAgICAgICApfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfVxuKTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogRGlhbG9nVGl0bGVcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgVElUTEVfTkFNRSA9ICdEaWFsb2dUaXRsZSc7XG5cbnR5cGUgRGlhbG9nVGl0bGVFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLmgyPjtcbnR5cGUgUHJpbWl0aXZlSGVhZGluZzJQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgUHJpbWl0aXZlLmgyPjtcbmludGVyZmFjZSBEaWFsb2dUaXRsZVByb3BzIGV4dGVuZHMgUHJpbWl0aXZlSGVhZGluZzJQcm9wcyB7fVxuXG5jb25zdCBEaWFsb2dUaXRsZSA9IFJlYWN0LmZvcndhcmRSZWY8RGlhbG9nVGl0bGVFbGVtZW50LCBEaWFsb2dUaXRsZVByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxEaWFsb2dUaXRsZVByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlRGlhbG9nLCAuLi50aXRsZVByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlRGlhbG9nQ29udGV4dChUSVRMRV9OQU1FLCBfX3Njb3BlRGlhbG9nKTtcbiAgICByZXR1cm4gPFByaW1pdGl2ZS5oMiBpZD17Y29udGV4dC50aXRsZUlkfSB7Li4udGl0bGVQcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+O1xuICB9XG4pO1xuXG5EaWFsb2dUaXRsZS5kaXNwbGF5TmFtZSA9IFRJVExFX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIERpYWxvZ0Rlc2NyaXB0aW9uXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IERFU0NSSVBUSU9OX05BTUUgPSAnRGlhbG9nRGVzY3JpcHRpb24nO1xuXG50eXBlIERpYWxvZ0Rlc2NyaXB0aW9uRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5wPjtcbnR5cGUgUHJpbWl0aXZlUGFyYWdyYXBoUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFByaW1pdGl2ZS5wPjtcbmludGVyZmFjZSBEaWFsb2dEZXNjcmlwdGlvblByb3BzIGV4dGVuZHMgUHJpbWl0aXZlUGFyYWdyYXBoUHJvcHMge31cblxuY29uc3QgRGlhbG9nRGVzY3JpcHRpb24gPSBSZWFjdC5mb3J3YXJkUmVmPERpYWxvZ0Rlc2NyaXB0aW9uRWxlbWVudCwgRGlhbG9nRGVzY3JpcHRpb25Qcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8RGlhbG9nRGVzY3JpcHRpb25Qcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZURpYWxvZywgLi4uZGVzY3JpcHRpb25Qcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZURpYWxvZ0NvbnRleHQoREVTQ1JJUFRJT05fTkFNRSwgX19zY29wZURpYWxvZyk7XG4gICAgcmV0dXJuIDxQcmltaXRpdmUucCBpZD17Y29udGV4dC5kZXNjcmlwdGlvbklkfSB7Li4uZGVzY3JpcHRpb25Qcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+O1xuICB9XG4pO1xuXG5EaWFsb2dEZXNjcmlwdGlvbi5kaXNwbGF5TmFtZSA9IERFU0NSSVBUSU9OX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIERpYWxvZ0Nsb3NlXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IENMT1NFX05BTUUgPSAnRGlhbG9nQ2xvc2UnO1xuXG50eXBlIERpYWxvZ0Nsb3NlRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5idXR0b24+O1xuaW50ZXJmYWNlIERpYWxvZ0Nsb3NlUHJvcHMgZXh0ZW5kcyBQcmltaXRpdmVCdXR0b25Qcm9wcyB7fVxuXG5jb25zdCBEaWFsb2dDbG9zZSA9IFJlYWN0LmZvcndhcmRSZWY8RGlhbG9nQ2xvc2VFbGVtZW50LCBEaWFsb2dDbG9zZVByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxEaWFsb2dDbG9zZVByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlRGlhbG9nLCAuLi5jbG9zZVByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlRGlhbG9nQ29udGV4dChDTE9TRV9OQU1FLCBfX3Njb3BlRGlhbG9nKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFByaW1pdGl2ZS5idXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIHsuLi5jbG9zZVByb3BzfVxuICAgICAgICByZWY9e2ZvcndhcmRlZFJlZn1cbiAgICAgICAgb25DbGljaz17Y29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25DbGljaywgKCkgPT4gY29udGV4dC5vbk9wZW5DaGFuZ2UoZmFsc2UpKX1cbiAgICAgIC8+XG4gICAgKTtcbiAgfVxuKTtcblxuRGlhbG9nQ2xvc2UuZGlzcGxheU5hbWUgPSBDTE9TRV9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmZ1bmN0aW9uIGdldFN0YXRlKG9wZW46IGJvb2xlYW4pIHtcbiAgcmV0dXJuIG9wZW4gPyAnb3BlbicgOiAnY2xvc2VkJztcbn1cblxuY29uc3QgVElUTEVfV0FSTklOR19OQU1FID0gJ0RpYWxvZ1RpdGxlV2FybmluZyc7XG5cbmNvbnN0IFtXYXJuaW5nUHJvdmlkZXIsIHVzZVdhcm5pbmdDb250ZXh0XSA9IGNyZWF0ZUNvbnRleHQoVElUTEVfV0FSTklOR19OQU1FLCB7XG4gIGNvbnRlbnROYW1lOiBDT05URU5UX05BTUUsXG4gIHRpdGxlTmFtZTogVElUTEVfTkFNRSxcbiAgZG9jc1NsdWc6ICdkaWFsb2cnLFxufSk7XG5cbnR5cGUgVGl0bGVXYXJuaW5nUHJvcHMgPSB7IHRpdGxlSWQ/OiBzdHJpbmcgfTtcblxuY29uc3QgVGl0bGVXYXJuaW5nOiBSZWFjdC5GQzxUaXRsZVdhcm5pbmdQcm9wcz4gPSAoeyB0aXRsZUlkIH0pID0+IHtcbiAgY29uc3QgdGl0bGVXYXJuaW5nQ29udGV4dCA9IHVzZVdhcm5pbmdDb250ZXh0KFRJVExFX1dBUk5JTkdfTkFNRSk7XG5cbiAgY29uc3QgTUVTU0FHRSA9IGBcXGAke3RpdGxlV2FybmluZ0NvbnRleHQuY29udGVudE5hbWV9XFxgIHJlcXVpcmVzIGEgXFxgJHt0aXRsZVdhcm5pbmdDb250ZXh0LnRpdGxlTmFtZX1cXGAgZm9yIHRoZSBjb21wb25lbnQgdG8gYmUgYWNjZXNzaWJsZSBmb3Igc2NyZWVuIHJlYWRlciB1c2Vycy5cblxuSWYgeW91IHdhbnQgdG8gaGlkZSB0aGUgXFxgJHt0aXRsZVdhcm5pbmdDb250ZXh0LnRpdGxlTmFtZX1cXGAsIHlvdSBjYW4gd3JhcCBpdCB3aXRoIG91ciBWaXN1YWxseUhpZGRlbiBjb21wb25lbnQuXG5cbkZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cHM6Ly9yYWRpeC11aS5jb20vcHJpbWl0aXZlcy9kb2NzL2NvbXBvbmVudHMvJHt0aXRsZVdhcm5pbmdDb250ZXh0LmRvY3NTbHVnfWA7XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodGl0bGVJZCkge1xuICAgICAgY29uc3QgaGFzVGl0bGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aXRsZUlkKTtcbiAgICAgIGlmICghaGFzVGl0bGUpIGNvbnNvbGUuZXJyb3IoTUVTU0FHRSk7XG4gICAgfVxuICB9LCBbTUVTU0FHRSwgdGl0bGVJZF0pO1xuXG4gIHJldHVybiBudWxsO1xufTtcblxuY29uc3QgREVTQ1JJUFRJT05fV0FSTklOR19OQU1FID0gJ0RpYWxvZ0Rlc2NyaXB0aW9uV2FybmluZyc7XG5cbnR5cGUgRGVzY3JpcHRpb25XYXJuaW5nUHJvcHMgPSB7XG4gIGNvbnRlbnRSZWY6IFJlYWN0LlJlZk9iamVjdDxEaWFsb2dDb250ZW50RWxlbWVudCB8IG51bGw+O1xuICBkZXNjcmlwdGlvbklkPzogc3RyaW5nO1xufTtcblxuY29uc3QgRGVzY3JpcHRpb25XYXJuaW5nOiBSZWFjdC5GQzxEZXNjcmlwdGlvbldhcm5pbmdQcm9wcz4gPSAoeyBjb250ZW50UmVmLCBkZXNjcmlwdGlvbklkIH0pID0+IHtcbiAgY29uc3QgZGVzY3JpcHRpb25XYXJuaW5nQ29udGV4dCA9IHVzZVdhcm5pbmdDb250ZXh0KERFU0NSSVBUSU9OX1dBUk5JTkdfTkFNRSk7XG4gIGNvbnN0IE1FU1NBR0UgPSBgV2FybmluZzogTWlzc2luZyBcXGBEZXNjcmlwdGlvblxcYCBvciBcXGBhcmlhLWRlc2NyaWJlZGJ5PXt1bmRlZmluZWR9XFxgIGZvciB7JHtkZXNjcmlwdGlvbldhcm5pbmdDb250ZXh0LmNvbnRlbnROYW1lfX0uYDtcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGRlc2NyaWJlZEJ5SWQgPSBjb250ZW50UmVmLmN1cnJlbnQ/LmdldEF0dHJpYnV0ZSgnYXJpYS1kZXNjcmliZWRieScpO1xuICAgIC8vIGlmIHdlIGhhdmUgYW4gaWQgYW5kIHRoZSB1c2VyIGhhc24ndCBzZXQgYXJpYS1kZXNjcmliZWRieT17dW5kZWZpbmVkfVxuICAgIGlmIChkZXNjcmlwdGlvbklkICYmIGRlc2NyaWJlZEJ5SWQpIHtcbiAgICAgIGNvbnN0IGhhc0Rlc2NyaXB0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZGVzY3JpcHRpb25JZCk7XG4gICAgICBpZiAoIWhhc0Rlc2NyaXB0aW9uKSBjb25zb2xlLndhcm4oTUVTU0FHRSk7XG4gICAgfVxuICB9LCBbTUVTU0FHRSwgY29udGVudFJlZiwgZGVzY3JpcHRpb25JZF0pO1xuXG4gIHJldHVybiBudWxsO1xufTtcblxuY29uc3QgUm9vdCA9IERpYWxvZztcbmNvbnN0IFRyaWdnZXIgPSBEaWFsb2dUcmlnZ2VyO1xuY29uc3QgUG9ydGFsID0gRGlhbG9nUG9ydGFsO1xuY29uc3QgT3ZlcmxheSA9IERpYWxvZ092ZXJsYXk7XG5jb25zdCBDb250ZW50ID0gRGlhbG9nQ29udGVudDtcbmNvbnN0IFRpdGxlID0gRGlhbG9nVGl0bGU7XG5jb25zdCBEZXNjcmlwdGlvbiA9IERpYWxvZ0Rlc2NyaXB0aW9uO1xuY29uc3QgQ2xvc2UgPSBEaWFsb2dDbG9zZTtcblxuZXhwb3J0IHtcbiAgY3JlYXRlRGlhbG9nU2NvcGUsXG4gIC8vXG4gIERpYWxvZyxcbiAgRGlhbG9nVHJpZ2dlcixcbiAgRGlhbG9nUG9ydGFsLFxuICBEaWFsb2dPdmVybGF5LFxuICBEaWFsb2dDb250ZW50LFxuICBEaWFsb2dUaXRsZSxcbiAgRGlhbG9nRGVzY3JpcHRpb24sXG4gIERpYWxvZ0Nsb3NlLFxuICAvL1xuICBSb290LFxuICBUcmlnZ2VyLFxuICBQb3J0YWwsXG4gIE92ZXJsYXksXG4gIENvbnRlbnQsXG4gIFRpdGxlLFxuICBEZXNjcmlwdGlvbixcbiAgQ2xvc2UsXG4gIC8vXG4gIFdhcm5pbmdQcm92aWRlcixcbn07XG5leHBvcnQgdHlwZSB7XG4gIERpYWxvZ1Byb3BzLFxuICBEaWFsb2dUcmlnZ2VyUHJvcHMsXG4gIERpYWxvZ1BvcnRhbFByb3BzLFxuICBEaWFsb2dPdmVybGF5UHJvcHMsXG4gIERpYWxvZ0NvbnRlbnRQcm9wcyxcbiAgRGlhbG9nVGl0bGVQcm9wcyxcbiAgRGlhbG9nRGVzY3JpcHRpb25Qcm9wcyxcbiAgRGlhbG9nQ2xvc2VQcm9wcyxcbn07XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJjb21wb3NlRXZlbnRIYW5kbGVycyIsInVzZUNvbXBvc2VkUmVmcyIsImNyZWF0ZUNvbnRleHQiLCJjcmVhdGVDb250ZXh0U2NvcGUiLCJ1c2VJZCIsInVzZUNvbnRyb2xsYWJsZVN0YXRlIiwiRGlzbWlzc2FibGVMYXllciIsIkZvY3VzU2NvcGUiLCJQb3J0YWwiLCJQb3J0YWxQcmltaXRpdmUiLCJQcmVzZW5jZSIsIlByaW1pdGl2ZSIsInVzZUZvY3VzR3VhcmRzIiwiUmVtb3ZlU2Nyb2xsIiwiaGlkZU90aGVycyIsIlNsb3QiLCJGcmFnbWVudCIsImpzeCIsImpzeHMiLCJESUFMT0dfTkFNRSIsImNyZWF0ZURpYWxvZ0NvbnRleHQiLCJjcmVhdGVEaWFsb2dTY29wZSIsIkRpYWxvZ1Byb3ZpZGVyIiwidXNlRGlhbG9nQ29udGV4dCIsIkRpYWxvZyIsInByb3BzIiwiX19zY29wZURpYWxvZyIsImNoaWxkcmVuIiwib3BlbiIsIm9wZW5Qcm9wIiwiZGVmYXVsdE9wZW4iLCJvbk9wZW5DaGFuZ2UiLCJtb2RhbCIsInRyaWdnZXJSZWYiLCJ1c2VSZWYiLCJjb250ZW50UmVmIiwic2V0T3BlbiIsInByb3AiLCJkZWZhdWx0UHJvcCIsIm9uQ2hhbmdlIiwic2NvcGUiLCJjb250ZW50SWQiLCJ0aXRsZUlkIiwiZGVzY3JpcHRpb25JZCIsIm9uT3BlblRvZ2dsZSIsInVzZUNhbGxiYWNrIiwicHJldk9wZW4iLCJkaXNwbGF5TmFtZSIsIlRSSUdHRVJfTkFNRSIsIkRpYWxvZ1RyaWdnZXIiLCJmb3J3YXJkUmVmIiwiZm9yd2FyZGVkUmVmIiwidHJpZ2dlclByb3BzIiwiY29udGV4dCIsImNvbXBvc2VkVHJpZ2dlclJlZiIsImJ1dHRvbiIsInR5cGUiLCJnZXRTdGF0ZSIsInJlZiIsIm9uQ2xpY2siLCJQT1JUQUxfTkFNRSIsIlBvcnRhbFByb3ZpZGVyIiwidXNlUG9ydGFsQ29udGV4dCIsImZvcmNlTW91bnQiLCJEaWFsb2dQb3J0YWwiLCJjb250YWluZXIiLCJDaGlsZHJlbiIsIm1hcCIsImNoaWxkIiwicHJlc2VudCIsImFzQ2hpbGQiLCJPVkVSTEFZX05BTUUiLCJEaWFsb2dPdmVybGF5IiwicG9ydGFsQ29udGV4dCIsIm92ZXJsYXlQcm9wcyIsIkRpYWxvZ092ZXJsYXlJbXBsIiwiYXMiLCJhbGxvd1BpbmNoWm9vbSIsInNoYXJkcyIsImRpdiIsInN0eWxlIiwicG9pbnRlckV2ZW50cyIsIkNPTlRFTlRfTkFNRSIsIkRpYWxvZ0NvbnRlbnQiLCJjb250ZW50UHJvcHMiLCJEaWFsb2dDb250ZW50TW9kYWwiLCJEaWFsb2dDb250ZW50Tm9uTW9kYWwiLCJjb21wb3NlZFJlZnMiLCJ1c2VFZmZlY3QiLCJjb250ZW50IiwiY3VycmVudCIsIkRpYWxvZ0NvbnRlbnRJbXBsIiwidHJhcEZvY3VzIiwiZGlzYWJsZU91dHNpZGVQb2ludGVyRXZlbnRzIiwib25DbG9zZUF1dG9Gb2N1cyIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJmb2N1cyIsIm9uUG9pbnRlckRvd25PdXRzaWRlIiwib3JpZ2luYWxFdmVudCIsImRldGFpbCIsImN0cmxMZWZ0Q2xpY2siLCJjdHJsS2V5IiwiaXNSaWdodENsaWNrIiwib25Gb2N1c091dHNpZGUiLCJoYXNJbnRlcmFjdGVkT3V0c2lkZVJlZiIsImhhc1BvaW50ZXJEb3duT3V0c2lkZVJlZiIsImRlZmF1bHRQcmV2ZW50ZWQiLCJvbkludGVyYWN0T3V0c2lkZSIsInRhcmdldCIsInRhcmdldElzVHJpZ2dlciIsImNvbnRhaW5zIiwib25PcGVuQXV0b0ZvY3VzIiwibG9vcCIsInRyYXBwZWQiLCJvbk1vdW50QXV0b0ZvY3VzIiwib25Vbm1vdW50QXV0b0ZvY3VzIiwicm9sZSIsImlkIiwib25EaXNtaXNzIiwiVGl0bGVXYXJuaW5nIiwiRGVzY3JpcHRpb25XYXJuaW5nIiwiVElUTEVfTkFNRSIsIkRpYWxvZ1RpdGxlIiwidGl0bGVQcm9wcyIsImgyIiwiREVTQ1JJUFRJT05fTkFNRSIsIkRpYWxvZ0Rlc2NyaXB0aW9uIiwiZGVzY3JpcHRpb25Qcm9wcyIsInAiLCJDTE9TRV9OQU1FIiwiRGlhbG9nQ2xvc2UiLCJjbG9zZVByb3BzIiwiVElUTEVfV0FSTklOR19OQU1FIiwiV2FybmluZ1Byb3ZpZGVyIiwidXNlV2FybmluZ0NvbnRleHQiLCJjb250ZW50TmFtZSIsInRpdGxlTmFtZSIsImRvY3NTbHVnIiwidGl0bGVXYXJuaW5nQ29udGV4dCIsIk1FU1NBR0UiLCJoYXNUaXRsZSIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJjb25zb2xlIiwiZXJyb3IiLCJERVNDUklQVElPTl9XQVJOSU5HX05BTUUiLCJkZXNjcmlwdGlvbldhcm5pbmdDb250ZXh0IiwiZGVzY3JpYmVkQnlJZCIsImdldEF0dHJpYnV0ZSIsImhhc0Rlc2NyaXB0aW9uIiwid2FybiIsIlJvb3QiLCJUcmlnZ2VyIiwiT3ZlcmxheSIsIkNvbnRlbnQiLCJUaXRsZSIsIkRlc2NyaXB0aW9uIiwiQ2xvc2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/react-dialog/dist/index.mjs\n"); /***/ }), /***/ "(ssr)/./node_modules/@radix-ui/react-direction/dist/index.mjs": /*!***************************************************************!*\ !*** ./node_modules/@radix-ui/react-direction/dist/index.mjs ***! \***************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DirectionProvider: () => (/* binding */ DirectionProvider),\n/* harmony export */ Provider: () => (/* binding */ Provider),\n/* harmony export */ useDirection: () => (/* binding */ useDirection)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\n// packages/react/direction/src/Direction.tsx\n\n\nvar DirectionContext = react__WEBPACK_IMPORTED_MODULE_0__.createContext(void 0);\nvar DirectionProvider = (props) => {\n const { dir, children } = props;\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(DirectionContext.Provider, { value: dir, children });\n};\nfunction useDirection(localDir) {\n const globalDir = react__WEBPACK_IMPORTED_MODULE_0__.useContext(DirectionContext);\n return localDir || globalDir || \"ltr\";\n}\nvar Provider = DirectionProvider;\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWRpcmVjdGlvbi9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBO0FBQytCO0FBQ1M7QUFDeEMsdUJBQXVCLGdEQUFtQjtBQUMxQztBQUNBLFVBQVUsZ0JBQWdCO0FBQzFCLHlCQUF5QixzREFBRyw4QkFBOEIsc0JBQXNCO0FBQ2hGO0FBQ0E7QUFDQSxvQkFBb0IsNkNBQWdCO0FBQ3BDO0FBQ0E7QUFDQTtBQUtFO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9tYW1hZC1hcHAvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWRpcmVjdGlvbi9kaXN0L2luZGV4Lm1qcz8xMDdkIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHBhY2thZ2VzL3JlYWN0L2RpcmVjdGlvbi9zcmMvRGlyZWN0aW9uLnRzeFxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBqc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbnZhciBEaXJlY3Rpb25Db250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh2b2lkIDApO1xudmFyIERpcmVjdGlvblByb3ZpZGVyID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgZGlyLCBjaGlsZHJlbiB9ID0gcHJvcHM7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KERpcmVjdGlvbkNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IGRpciwgY2hpbGRyZW4gfSk7XG59O1xuZnVuY3Rpb24gdXNlRGlyZWN0aW9uKGxvY2FsRGlyKSB7XG4gIGNvbnN0IGdsb2JhbERpciA9IFJlYWN0LnVzZUNvbnRleHQoRGlyZWN0aW9uQ29udGV4dCk7XG4gIHJldHVybiBsb2NhbERpciB8fCBnbG9iYWxEaXIgfHwgXCJsdHJcIjtcbn1cbnZhciBQcm92aWRlciA9IERpcmVjdGlvblByb3ZpZGVyO1xuZXhwb3J0IHtcbiAgRGlyZWN0aW9uUHJvdmlkZXIsXG4gIFByb3ZpZGVyLFxuICB1c2VEaXJlY3Rpb25cbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/react-direction/dist/index.mjs\n"); /***/ }), /***/ "(ssr)/./node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs": /*!***********************************************************************!*\ !*** ./node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs ***! \***********************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Branch: () => (/* binding */ Branch),\n/* harmony export */ DismissableLayer: () => (/* binding */ DismissableLayer),\n/* harmony export */ DismissableLayerBranch: () => (/* binding */ DismissableLayerBranch),\n/* harmony export */ Root: () => (/* binding */ Root)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var _radix_ui_primitive__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/primitive */ \"(ssr)/./node_modules/@radix-ui/primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(ssr)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(ssr)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(ssr)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_escape_keydown__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-use-escape-keydown */ \"(ssr)/./node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Branch,DismissableLayer,DismissableLayerBranch,Root auto */ // packages/react/dismissable-layer/src/DismissableLayer.tsx\n\n\n\n\n\n\n\nvar DISMISSABLE_LAYER_NAME = \"DismissableLayer\";\nvar CONTEXT_UPDATE = \"dismissableLayer.update\";\nvar POINTER_DOWN_OUTSIDE = \"dismissableLayer.pointerDownOutside\";\nvar FOCUS_OUTSIDE = \"dismissableLayer.focusOutside\";\nvar originalBodyPointerEvents;\nvar DismissableLayerContext = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.createContext({\n layers: /* @__PURE__ */ new Set(),\n layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),\n branches: /* @__PURE__ */ new Set()\n});\nvar DismissableLayer = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { disableOutsidePointerEvents = false, onEscapeKeyDown, onPointerDownOutside, onFocusOutside, onInteractOutside, onDismiss, ...layerProps } = props;\n const context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(DismissableLayerContext);\n const [node, setNode] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const ownerDocument = node?.ownerDocument ?? globalThis?.document;\n const [, force] = react__WEBPACK_IMPORTED_MODULE_0__.useState({});\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.useComposedRefs)(forwardedRef, (node2)=>setNode(node2));\n const layers = Array.from(context.layers);\n const [highestLayerWithOutsidePointerEventsDisabled] = [\n ...context.layersWithOutsidePointerEventsDisabled\n ].slice(-1);\n const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled);\n const index = node ? layers.indexOf(node) : -1;\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;\n const pointerDownOutside = usePointerDownOutside((event)=>{\n const target = event.target;\n const isPointerDownOnBranch = [\n ...context.branches\n ].some((branch)=>branch.contains(target));\n if (!isPointerEventsEnabled || isPointerDownOnBranch) return;\n onPointerDownOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n const focusOutside = useFocusOutside((event)=>{\n const target = event.target;\n const isFocusInBranch = [\n ...context.branches\n ].some((branch)=>branch.contains(target));\n if (isFocusInBranch) return;\n onFocusOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n (0,_radix_ui_react_use_escape_keydown__WEBPACK_IMPORTED_MODULE_3__.useEscapeKeydown)((event)=>{\n const isHighestLayer = index === context.layers.size - 1;\n if (!isHighestLayer) return;\n onEscapeKeyDown?.(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n }, ownerDocument);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(()=>{\n if (!node) return;\n if (disableOutsidePointerEvents) {\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;\n ownerDocument.body.style.pointerEvents = \"none\";\n }\n context.layersWithOutsidePointerEventsDisabled.add(node);\n }\n context.layers.add(node);\n dispatchUpdate();\n return ()=>{\n if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) {\n ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;\n }\n };\n }, [\n node,\n ownerDocument,\n disableOutsidePointerEvents,\n context\n ]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(()=>{\n return ()=>{\n if (!node) return;\n context.layers.delete(node);\n context.layersWithOutsidePointerEventsDisabled.delete(node);\n dispatchUpdate();\n };\n }, [\n node,\n context\n ]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(()=>{\n const handleUpdate = ()=>force({});\n document.addEventListener(CONTEXT_UPDATE, handleUpdate);\n return ()=>document.removeEventListener(CONTEXT_UPDATE, handleUpdate);\n }, []);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.Primitive.div, {\n ...layerProps,\n ref: composedRefs,\n style: {\n pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? \"auto\" : \"none\" : void 0,\n ...props.style\n },\n onFocusCapture: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_5__.composeEventHandlers)(props.onFocusCapture, focusOutside.onFocusCapture),\n onBlurCapture: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_5__.composeEventHandlers)(props.onBlurCapture, focusOutside.onBlurCapture),\n onPointerDownCapture: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_5__.composeEventHandlers)(props.onPointerDownCapture, pointerDownOutside.onPointerDownCapture)\n });\n});\nDismissableLayer.displayName = DISMISSABLE_LAYER_NAME;\nvar BRANCH_NAME = \"DismissableLayerBranch\";\nvar DismissableLayerBranch = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(DismissableLayerContext);\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.useComposedRefs)(forwardedRef, ref);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(()=>{\n const node = ref.current;\n if (node) {\n context.branches.add(node);\n return ()=>{\n context.branches.delete(node);\n };\n }\n }, [\n context.branches\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.Primitive.div, {\n ...props,\n ref: composedRefs\n });\n});\nDismissableLayerBranch.displayName = BRANCH_NAME;\nfunction usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) {\n const handlePointerDownOutside = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__.useCallbackRef)(onPointerDownOutside);\n const isPointerInsideReactTreeRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n const handleClickRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(()=>{});\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(()=>{\n const handlePointerDown = (event)=>{\n if (event.target && !isPointerInsideReactTreeRef.current) {\n let handleAndDispatchPointerDownOutsideEvent2 = function() {\n handleAndDispatchCustomEvent(POINTER_DOWN_OUTSIDE, handlePointerDownOutside, eventDetail, {\n discrete: true\n });\n };\n var handleAndDispatchPointerDownOutsideEvent = handleAndDispatchPointerDownOutsideEvent2;\n const eventDetail = {\n originalEvent: event\n };\n if (event.pointerType === \"touch\") {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2;\n ownerDocument.addEventListener(\"click\", handleClickRef.current, {\n once: true\n });\n } else {\n handleAndDispatchPointerDownOutsideEvent2();\n }\n } else {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n }\n isPointerInsideReactTreeRef.current = false;\n };\n const timerId = window.setTimeout(()=>{\n ownerDocument.addEventListener(\"pointerdown\", handlePointerDown);\n }, 0);\n return ()=>{\n window.clearTimeout(timerId);\n ownerDocument.removeEventListener(\"pointerdown\", handlePointerDown);\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n };\n }, [\n ownerDocument,\n handlePointerDownOutside\n ]);\n return {\n // ensures we check React component tree (not just DOM tree)\n onPointerDownCapture: ()=>isPointerInsideReactTreeRef.current = true\n };\n}\nfunction useFocusOutside(onFocusOutside, ownerDocument = globalThis?.document) {\n const handleFocusOutside = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_6__.useCallbackRef)(onFocusOutside);\n const isFocusInsideReactTreeRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(()=>{\n const handleFocus = (event)=>{\n if (event.target && !isFocusInsideReactTreeRef.current) {\n const eventDetail = {\n originalEvent: event\n };\n handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {\n discrete: false\n });\n }\n };\n ownerDocument.addEventListener(\"focusin\", handleFocus);\n return ()=>ownerDocument.removeEventListener(\"focusin\", handleFocus);\n }, [\n ownerDocument,\n handleFocusOutside\n ]);\n return {\n onFocusCapture: ()=>isFocusInsideReactTreeRef.current = true,\n onBlurCapture: ()=>isFocusInsideReactTreeRef.current = false\n };\n}\nfunction dispatchUpdate() {\n const event = new CustomEvent(CONTEXT_UPDATE);\n document.dispatchEvent(event);\n}\nfunction handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {\n const target = detail.originalEvent.target;\n const event = new CustomEvent(name, {\n bubbles: false,\n cancelable: true,\n detail\n });\n if (handler) target.addEventListener(name, handler, {\n once: true\n });\n if (discrete) {\n (0,_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.dispatchDiscreteCustomEvent)(target, event);\n } else {\n target.dispatchEvent(event);\n }\n}\nvar Root = DismissableLayer;\nvar Branch = DismissableLayerBranch;\n //# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWRpc21pc3NhYmxlLWxheWVyL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUF1QjtBQUNjO0FBQ2tCO0FBQ3ZCO0FBQ0Q7QUFDRTtBQXFKM0I7QUEvSU4sSUFBTVEseUJBQXlCO0FBQy9CLElBQU1DLGlCQUFpQjtBQUN2QixJQUFNQyx1QkFBdUI7QUFDN0IsSUFBTUMsZ0JBQWdCO0FBRXRCLElBQUlDO0FBRUosSUFBTUMsd0NBQWdDYixnREFBQSxDQUFjO0lBQ2xEZSxRQUFRLG9CQUFJQztJQUNaQyx3Q0FBd0Msb0JBQUlEO0lBQzVDRSxVQUFVLG9CQUFJRjtBQUNoQjtBQXNDQSxJQUFNRyxpQ0FBeUJuQiw2Q0FBQSxDQUM3QixDQUFDcUIsT0FBT0M7SUFDTixNQUFNLEVBQ0pDLDhCQUE4QixPQUM5QkMsZUFBQSxFQUNBQyxvQkFBQSxFQUNBQyxjQUFBLEVBQ0FDLGlCQUFBLEVBQ0FDLFNBQUEsRUFDQSxHQUFHQyxZQUNMLEdBQUlSO0lBQ0osTUFBTVMsVUFBZ0I5Qiw2Q0FBQSxDQUFXYTtJQUNqQyxNQUFNLENBQUNtQixNQUFNQyxRQUFPLEdBQVVqQywyQ0FBQSxDQUF5QztJQUN2RSxNQUFNbUMsZ0JBQWdCSCxNQUFNRyxpQkFBaUJDLFlBQVlDO0lBQ3pELE1BQU0sR0FBR0MsTUFBSyxHQUFVdEMsMkNBQUEsQ0FBUyxDQUFDO0lBQ2xDLE1BQU11QyxlQUFlbkMsNkVBQWVBLENBQUNrQixjQUFjLENBQUNVLFFBQVNDLFFBQVFEO0lBQ3JFLE1BQU1qQixTQUFTeUIsTUFBTUMsSUFBQSxDQUFLWCxRQUFRZixNQUFNO0lBQ3hDLE1BQU0sQ0FBQzJCLDZDQUE0QyxHQUFJO1dBQUlaLFFBQVFiLHNDQUFzQztLQUFBLENBQUUwQixLQUFBLENBQU07SUFDakgsTUFBTUMsb0RBQW9EN0IsT0FBTzhCLE9BQUEsQ0FBUUg7SUFDekUsTUFBTUksUUFBUWQsT0FBT2pCLE9BQU84QixPQUFBLENBQVFiLFFBQVE7SUFDNUMsTUFBTWUsOEJBQThCakIsUUFBUWIsc0NBQUEsQ0FBdUMrQixJQUFBLEdBQU87SUFDMUYsTUFBTUMseUJBQXlCSCxTQUFTRjtJQUV4QyxNQUFNTSxxQkFBcUJDLHNCQUFzQixDQUFDQztRQUNoRCxNQUFNQyxTQUFTRCxNQUFNQyxNQUFBO1FBQ3JCLE1BQU1DLHdCQUF3QjtlQUFJeEIsUUFBUVosUUFBUTtTQUFBLENBQUVxQyxJQUFBLENBQUssQ0FBQ0MsU0FBV0EsT0FBT0MsUUFBQSxDQUFTSjtRQUNyRixJQUFJLENBQUNKLDBCQUEwQkssdUJBQXVCO1FBQ3REN0IsdUJBQXVCMkI7UUFDdkJ6QixvQkFBb0J5QjtRQUNwQixJQUFJLENBQUNBLE1BQU1NLGdCQUFBLEVBQWtCOUI7SUFDL0IsR0FBR087SUFFSCxNQUFNd0IsZUFBZUMsZ0JBQWdCLENBQUNSO1FBQ3BDLE1BQU1DLFNBQVNELE1BQU1DLE1BQUE7UUFDckIsTUFBTVEsa0JBQWtCO2VBQUkvQixRQUFRWixRQUFRO1NBQUEsQ0FBRXFDLElBQUEsQ0FBSyxDQUFDQyxTQUFXQSxPQUFPQyxRQUFBLENBQVNKO1FBQy9FLElBQUlRLGlCQUFpQjtRQUNyQm5DLGlCQUFpQjBCO1FBQ2pCekIsb0JBQW9CeUI7UUFDcEIsSUFBSSxDQUFDQSxNQUFNTSxnQkFBQSxFQUFrQjlCO0lBQy9CLEdBQUdPO0lBRUg3QixvRkFBZ0JBLENBQUMsQ0FBQzhDO1FBQ2hCLE1BQU1VLGlCQUFpQmhCLFVBQVVoQixRQUFRZixNQUFBLENBQU9pQyxJQUFBLEdBQU87UUFDdkQsSUFBSSxDQUFDYyxnQkFBZ0I7UUFDckJ0QyxrQkFBa0I0QjtRQUNsQixJQUFJLENBQUNBLE1BQU1NLGdCQUFBLElBQW9COUIsV0FBVztZQUN4Q3dCLE1BQU1XLGNBQUE7WUFDTm5DO1FBQ0Y7SUFDRixHQUFHTztJQUVHbkMsNENBQUEsQ0FBVTtRQUNkLElBQUksQ0FBQ2dDLE1BQU07UUFDWCxJQUFJVCw2QkFBNkI7WUFDL0IsSUFBSU8sUUFBUWIsc0NBQUEsQ0FBdUMrQixJQUFBLEtBQVMsR0FBRztnQkFDN0RwQyw0QkFBNEJ1QixjQUFjOEIsSUFBQSxDQUFLQyxLQUFBLENBQU1DLGFBQUE7Z0JBQ3JEaEMsY0FBYzhCLElBQUEsQ0FBS0MsS0FBQSxDQUFNQyxhQUFBLEdBQWdCO1lBQzNDO1lBQ0FyQyxRQUFRYixzQ0FBQSxDQUF1Q21ELEdBQUEsQ0FBSXBDO1FBQ3JEO1FBQ0FGLFFBQVFmLE1BQUEsQ0FBT3FELEdBQUEsQ0FBSXBDO1FBQ25CcUM7UUFDQSxPQUFPO1lBQ0wsSUFDRTlDLCtCQUNBTyxRQUFRYixzQ0FBQSxDQUF1QytCLElBQUEsS0FBUyxHQUN4RDtnQkFDQWIsY0FBYzhCLElBQUEsQ0FBS0MsS0FBQSxDQUFNQyxhQUFBLEdBQWdCdkQ7WUFDM0M7UUFDRjtJQUNGLEdBQUc7UUFBQ29CO1FBQU1HO1FBQWVaO1FBQTZCTztLQUFRO0lBUXhEOUIsNENBQUEsQ0FBVTtRQUNkLE9BQU87WUFDTCxJQUFJLENBQUNnQyxNQUFNO1lBQ1hGLFFBQVFmLE1BQUEsQ0FBT3VELE1BQUEsQ0FBT3RDO1lBQ3RCRixRQUFRYixzQ0FBQSxDQUF1Q3FELE1BQUEsQ0FBT3RDO1lBQ3REcUM7UUFDRjtJQUNGLEdBQUc7UUFBQ3JDO1FBQU1GO0tBQVE7SUFFWjlCLDRDQUFBLENBQVU7UUFDZCxNQUFNdUUsZUFBZSxJQUFNakMsTUFBTSxDQUFDO1FBQ2xDRCxTQUFTbUMsZ0JBQUEsQ0FBaUIvRCxnQkFBZ0I4RDtRQUMxQyxPQUFPLElBQU1sQyxTQUFTb0MsbUJBQUEsQ0FBb0JoRSxnQkFBZ0I4RDtJQUM1RCxHQUFHLEVBQUU7SUFFTCxPQUNFLGdCQUFBaEUsc0RBQUFBLENBQUNMLGdFQUFTQSxDQUFDd0UsR0FBQSxFQUFWO1FBQ0UsR0FBRzdDLFVBQUE7UUFDSjhDLEtBQUtwQztRQUNMMkIsT0FBTztZQUNMQyxlQUFlcEIsOEJBQ1hFLHlCQUNFLFNBQ0EsU0FDRjtZQUNKLEdBQUc1QixNQUFNNkMsS0FBQTtRQUNYO1FBQ0FVLGdCQUFnQjNFLHlFQUFvQkEsQ0FBQ29CLE1BQU11RCxjQUFBLEVBQWdCakIsYUFBYWlCLGNBQWM7UUFDdEZDLGVBQWU1RSx5RUFBb0JBLENBQUNvQixNQUFNd0QsYUFBQSxFQUFlbEIsYUFBYWtCLGFBQWE7UUFDbkZDLHNCQUFzQjdFLHlFQUFvQkEsQ0FDeENvQixNQUFNeUQsb0JBQUEsRUFDTjVCLG1CQUFtQjRCLG9CQUFBO0lBQ3JCO0FBR047QUFHRjNELGlCQUFpQjRELFdBQUEsR0FBY3ZFO0FBTS9CLElBQU13RSxjQUFjO0FBS3BCLElBQU1DLHVDQUErQmpGLDZDQUFBLENBR25DLENBQUNxQixPQUFPQztJQUNSLE1BQU1RLFVBQWdCOUIsNkNBQUEsQ0FBV2E7SUFDakMsTUFBTThELE1BQVkzRSx5Q0FBQSxDQUFzQztJQUN4RCxNQUFNdUMsZUFBZW5DLDZFQUFlQSxDQUFDa0IsY0FBY3FEO0lBRTdDM0UsNENBQUEsQ0FBVTtRQUNkLE1BQU1nQyxPQUFPMkMsSUFBSVEsT0FBQTtRQUNqQixJQUFJbkQsTUFBTTtZQUNSRixRQUFRWixRQUFBLENBQVNrRCxHQUFBLENBQUlwQztZQUNyQixPQUFPO2dCQUNMRixRQUFRWixRQUFBLENBQVNvRCxNQUFBLENBQU90QztZQUMxQjtRQUNGO0lBQ0YsR0FBRztRQUFDRixRQUFRWixRQUFRO0tBQUM7SUFFckIsT0FBTyxnQkFBQVgsc0RBQUFBLENBQUNMLGdFQUFTQSxDQUFDd0UsR0FBQSxFQUFWO1FBQWUsR0FBR3JELEtBQUE7UUFBT3NELEtBQUtwQztJQUFBO0FBQ3hDO0FBRUEwQyx1QkFBdUJGLFdBQUEsR0FBY0M7QUFZckMsU0FBUzdCLHNCQUNQMUIsb0JBQUEsRUFDQVUsZ0JBQTBCQyxZQUFZQyxRQUFBO0lBRXRDLE1BQU0rQywyQkFBMkIvRSxnRkFBY0EsQ0FBQ29CO0lBQ2hELE1BQU00RCw4QkFBb0NyRix5Q0FBQSxDQUFPO0lBQ2pELE1BQU1zRixpQkFBdUJ0Rix5Q0FBQSxDQUFPLEtBQU87SUFFckNBLDRDQUFBLENBQVU7UUFDZCxNQUFNdUYsb0JBQW9CLENBQUNuQztZQUN6QixJQUFJQSxNQUFNQyxNQUFBLElBQVUsQ0FBQ2dDLDRCQUE0QkYsT0FBQSxFQUFTO2dCQUd4RCxJQUFTSyw0Q0FBVDtvQkFDRUMsNkJBQ0UvRSxzQkFDQTBFLDBCQUNBTSxhQUNBO3dCQUFFQyxVQUFVO29CQUFLO2dCQUVyQjtnQkFQUyxJQUFBSCwyQ0FBQUE7Z0JBRlQsTUFBTUUsY0FBYztvQkFBRUUsZUFBZXhDO2dCQUFNO2dCQXVCM0MsSUFBSUEsTUFBTXlDLFdBQUEsS0FBZ0IsU0FBUztvQkFDakMxRCxjQUFjc0MsbUJBQUEsQ0FBb0IsU0FBU2EsZUFBZUgsT0FBTztvQkFDakVHLGVBQWVILE9BQUEsR0FBVUs7b0JBQ3pCckQsY0FBY3FDLGdCQUFBLENBQWlCLFNBQVNjLGVBQWVILE9BQUEsRUFBUzt3QkFBRVcsTUFBTTtvQkFBSztnQkFDL0UsT0FBTztvQkFDTE47Z0JBQ0Y7WUFDRixPQUFPO2dCQUdMckQsY0FBY3NDLG1CQUFBLENBQW9CLFNBQVNhLGVBQWVILE9BQU87WUFDbkU7WUFDQUUsNEJBQTRCRixPQUFBLEdBQVU7UUFDeEM7UUFjQSxNQUFNWSxVQUFVQyxPQUFPQyxVQUFBLENBQVc7WUFDaEM5RCxjQUFjcUMsZ0JBQUEsQ0FBaUIsZUFBZWU7UUFDaEQsR0FBRztRQUNILE9BQU87WUFDTFMsT0FBT0UsWUFBQSxDQUFhSDtZQUNwQjVELGNBQWNzQyxtQkFBQSxDQUFvQixlQUFlYztZQUNqRHBELGNBQWNzQyxtQkFBQSxDQUFvQixTQUFTYSxlQUFlSCxPQUFPO1FBQ25FO0lBQ0YsR0FBRztRQUFDaEQ7UUFBZWlEO0tBQXlCO0lBRTVDLE9BQU87UUFBQTtRQUVMTixzQkFBc0IsSUFBT08sNEJBQTRCRixPQUFBLEdBQVU7SUFDckU7QUFDRjtBQU1BLFNBQVN2QixnQkFDUGxDLGNBQUEsRUFDQVMsZ0JBQTBCQyxZQUFZQyxRQUFBO0lBRXRDLE1BQU04RCxxQkFBcUI5RixnRkFBY0EsQ0FBQ3FCO0lBQzFDLE1BQU0wRSw0QkFBa0NwRyx5Q0FBQSxDQUFPO0lBRXpDQSw0Q0FBQSxDQUFVO1FBQ2QsTUFBTXFHLGNBQWMsQ0FBQ2pEO1lBQ25CLElBQUlBLE1BQU1DLE1BQUEsSUFBVSxDQUFDK0MsMEJBQTBCakIsT0FBQSxFQUFTO2dCQUN0RCxNQUFNTyxjQUFjO29CQUFFRSxlQUFleEM7Z0JBQU07Z0JBQzNDcUMsNkJBQTZCOUUsZUFBZXdGLG9CQUFvQlQsYUFBYTtvQkFDM0VDLFVBQVU7Z0JBQ1o7WUFDRjtRQUNGO1FBQ0F4RCxjQUFjcUMsZ0JBQUEsQ0FBaUIsV0FBVzZCO1FBQzFDLE9BQU8sSUFBTWxFLGNBQWNzQyxtQkFBQSxDQUFvQixXQUFXNEI7SUFDNUQsR0FBRztRQUFDbEU7UUFBZWdFO0tBQW1CO0lBRXRDLE9BQU87UUFDTHZCLGdCQUFnQixJQUFPd0IsMEJBQTBCakIsT0FBQSxHQUFVO1FBQzNETixlQUFlLElBQU91QiwwQkFBMEJqQixPQUFBLEdBQVU7SUFDNUQ7QUFDRjtBQUVBLFNBQVNkO0lBQ1AsTUFBTWpCLFFBQVEsSUFBSWtELFlBQVk3RjtJQUM5QjRCLFNBQVNrRSxhQUFBLENBQWNuRDtBQUN6QjtBQUVBLFNBQVNxQyw2QkFDUGUsSUFBQSxFQUNBQyxPQUFBLEVBQ0FDLE1BQUEsRUFDQSxFQUFFZixRQUFBLEVBQVM7SUFFWCxNQUFNdEMsU0FBU3FELE9BQU9kLGFBQUEsQ0FBY3ZDLE1BQUE7SUFDcEMsTUFBTUQsUUFBUSxJQUFJa0QsWUFBWUUsTUFBTTtRQUFFRyxTQUFTO1FBQU9DLFlBQVk7UUFBTUY7SUFBTztJQUMvRSxJQUFJRCxTQUFTcEQsT0FBT21CLGdCQUFBLENBQWlCZ0MsTUFBTUMsU0FBMEI7UUFBRVgsTUFBTTtJQUFLO0lBRWxGLElBQUlILFVBQVU7UUFDWnhGLHNGQUEyQkEsQ0FBQ2tELFFBQVFEO0lBQ3RDLE9BQU87UUFDTEMsT0FBT2tELGFBQUEsQ0FBY25EO0lBQ3ZCO0FBQ0Y7QUFFQSxJQUFNeUQsT0FBTzFGO0FBQ2IsSUFBTTJGLFNBQVM3QiIsInNvdXJjZXMiOlsid2VicGFjazovL21hbWFkLWFwcC8uLi9zcmMvRGlzbWlzc2FibGVMYXllci50c3g/NWJlNyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjb21wb3NlRXZlbnRIYW5kbGVycyB9IGZyb20gJ0ByYWRpeC11aS9wcmltaXRpdmUnO1xuaW1wb3J0IHsgUHJpbWl0aXZlLCBkaXNwYXRjaERpc2NyZXRlQ3VzdG9tRXZlbnQgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlJztcbmltcG9ydCB7IHVzZUNvbXBvc2VkUmVmcyB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1jb21wb3NlLXJlZnMnO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2tSZWYgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtdXNlLWNhbGxiYWNrLXJlZic7XG5pbXBvcnQgeyB1c2VFc2NhcGVLZXlkb3duIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXVzZS1lc2NhcGUta2V5ZG93bic7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIERpc21pc3NhYmxlTGF5ZXJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgRElTTUlTU0FCTEVfTEFZRVJfTkFNRSA9ICdEaXNtaXNzYWJsZUxheWVyJztcbmNvbnN0IENPTlRFWFRfVVBEQVRFID0gJ2Rpc21pc3NhYmxlTGF5ZXIudXBkYXRlJztcbmNvbnN0IFBPSU5URVJfRE9XTl9PVVRTSURFID0gJ2Rpc21pc3NhYmxlTGF5ZXIucG9pbnRlckRvd25PdXRzaWRlJztcbmNvbnN0IEZPQ1VTX09VVFNJREUgPSAnZGlzbWlzc2FibGVMYXllci5mb2N1c091dHNpZGUnO1xuXG5sZXQgb3JpZ2luYWxCb2R5UG9pbnRlckV2ZW50czogc3RyaW5nO1xuXG5jb25zdCBEaXNtaXNzYWJsZUxheWVyQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQoe1xuICBsYXllcnM6IG5ldyBTZXQ8RGlzbWlzc2FibGVMYXllckVsZW1lbnQ+KCksXG4gIGxheWVyc1dpdGhPdXRzaWRlUG9pbnRlckV2ZW50c0Rpc2FibGVkOiBuZXcgU2V0PERpc21pc3NhYmxlTGF5ZXJFbGVtZW50PigpLFxuICBicmFuY2hlczogbmV3IFNldDxEaXNtaXNzYWJsZUxheWVyQnJhbmNoRWxlbWVudD4oKSxcbn0pO1xuXG50eXBlIERpc21pc3NhYmxlTGF5ZXJFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLmRpdj47XG50eXBlIFByaW1pdGl2ZURpdlByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBQcmltaXRpdmUuZGl2PjtcbmludGVyZmFjZSBEaXNtaXNzYWJsZUxheWVyUHJvcHMgZXh0ZW5kcyBQcmltaXRpdmVEaXZQcm9wcyB7XG4gIC8qKlxuICAgKiBXaGVuIGB0cnVlYCwgaG92ZXIvZm9jdXMvY2xpY2sgaW50ZXJhY3Rpb25zIHdpbGwgYmUgZGlzYWJsZWQgb24gZWxlbWVudHMgb3V0c2lkZVxuICAgKiB0aGUgYERpc21pc3NhYmxlTGF5ZXJgLiBVc2VycyB3aWxsIG5lZWQgdG8gY2xpY2sgdHdpY2Ugb24gb3V0c2lkZSBlbGVtZW50cyB0b1xuICAgKiBpbnRlcmFjdCB3aXRoIHRoZW06IG9uY2UgdG8gY2xvc2UgdGhlIGBEaXNtaXNzYWJsZUxheWVyYCwgYW5kIGFnYWluIHRvIHRyaWdnZXIgdGhlIGVsZW1lbnQuXG4gICAqL1xuICBkaXNhYmxlT3V0c2lkZVBvaW50ZXJFdmVudHM/OiBib29sZWFuO1xuICAvKipcbiAgICogRXZlbnQgaGFuZGxlciBjYWxsZWQgd2hlbiB0aGUgZXNjYXBlIGtleSBpcyBkb3duLlxuICAgKiBDYW4gYmUgcHJldmVudGVkLlxuICAgKi9cbiAgb25Fc2NhcGVLZXlEb3duPzogKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB2b2lkO1xuICAvKipcbiAgICogRXZlbnQgaGFuZGxlciBjYWxsZWQgd2hlbiB0aGUgYSBgcG9pbnRlcmRvd25gIGV2ZW50IGhhcHBlbnMgb3V0c2lkZSBvZiB0aGUgYERpc21pc3NhYmxlTGF5ZXJgLlxuICAgKiBDYW4gYmUgcHJldmVudGVkLlxuICAgKi9cbiAgb25Qb2ludGVyRG93bk91dHNpZGU/OiAoZXZlbnQ6IFBvaW50ZXJEb3duT3V0c2lkZUV2ZW50KSA9PiB2b2lkO1xuICAvKipcbiAgICogRXZlbnQgaGFuZGxlciBjYWxsZWQgd2hlbiB0aGUgZm9jdXMgbW92ZXMgb3V0c2lkZSBvZiB0aGUgYERpc21pc3NhYmxlTGF5ZXJgLlxuICAgKiBDYW4gYmUgcHJldmVudGVkLlxuICAgKi9cbiAgb25Gb2N1c091dHNpZGU/OiAoZXZlbnQ6IEZvY3VzT3V0c2lkZUV2ZW50KSA9PiB2b2lkO1xuICAvKipcbiAgICogRXZlbnQgaGFuZGxlciBjYWxsZWQgd2hlbiBhbiBpbnRlcmFjdGlvbiBoYXBwZW5zIG91dHNpZGUgdGhlIGBEaXNtaXNzYWJsZUxheWVyYC5cbiAgICogU3BlY2lmaWNhbGx5LCB3aGVuIGEgYHBvaW50ZXJkb3duYCBldmVudCBoYXBwZW5zIG91dHNpZGUgb3IgZm9jdXMgbW92ZXMgb3V0c2lkZSBvZiBpdC5cbiAgICogQ2FuIGJlIHByZXZlbnRlZC5cbiAgICovXG4gIG9uSW50ZXJhY3RPdXRzaWRlPzogKGV2ZW50OiBQb2ludGVyRG93bk91dHNpZGVFdmVudCB8IEZvY3VzT3V0c2lkZUV2ZW50KSA9PiB2b2lkO1xuICAvKipcbiAgICogSGFuZGxlciBjYWxsZWQgd2hlbiB0aGUgYERpc21pc3NhYmxlTGF5ZXJgIHNob3VsZCBiZSBkaXNtaXNzZWRcbiAgICovXG4gIG9uRGlzbWlzcz86ICgpID0+IHZvaWQ7XG59XG5cbmNvbnN0IERpc21pc3NhYmxlTGF5ZXIgPSBSZWFjdC5mb3J3YXJkUmVmPERpc21pc3NhYmxlTGF5ZXJFbGVtZW50LCBEaXNtaXNzYWJsZUxheWVyUHJvcHM+KFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIGRpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50cyA9IGZhbHNlLFxuICAgICAgb25Fc2NhcGVLZXlEb3duLFxuICAgICAgb25Qb2ludGVyRG93bk91dHNpZGUsXG4gICAgICBvbkZvY3VzT3V0c2lkZSxcbiAgICAgIG9uSW50ZXJhY3RPdXRzaWRlLFxuICAgICAgb25EaXNtaXNzLFxuICAgICAgLi4ubGF5ZXJQcm9wc1xuICAgIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gUmVhY3QudXNlQ29udGV4dChEaXNtaXNzYWJsZUxheWVyQ29udGV4dCk7XG4gICAgY29uc3QgW25vZGUsIHNldE5vZGVdID0gUmVhY3QudXNlU3RhdGU8RGlzbWlzc2FibGVMYXllckVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgICBjb25zdCBvd25lckRvY3VtZW50ID0gbm9kZT8ub3duZXJEb2N1bWVudCA/PyBnbG9iYWxUaGlzPy5kb2N1bWVudDtcbiAgICBjb25zdCBbLCBmb3JjZV0gPSBSZWFjdC51c2VTdGF0ZSh7fSk7XG4gICAgY29uc3QgY29tcG9zZWRSZWZzID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgKG5vZGUpID0+IHNldE5vZGUobm9kZSkpO1xuICAgIGNvbnN0IGxheWVycyA9IEFycmF5LmZyb20oY29udGV4dC5sYXllcnMpO1xuICAgIGNvbnN0IFtoaWdoZXN0TGF5ZXJXaXRoT3V0c2lkZVBvaW50ZXJFdmVudHNEaXNhYmxlZF0gPSBbLi4uY29udGV4dC5sYXllcnNXaXRoT3V0c2lkZVBvaW50ZXJFdmVudHNEaXNhYmxlZF0uc2xpY2UoLTEpOyAvLyBwcmV0dGllci1pZ25vcmVcbiAgICBjb25zdCBoaWdoZXN0TGF5ZXJXaXRoT3V0c2lkZVBvaW50ZXJFdmVudHNEaXNhYmxlZEluZGV4ID0gbGF5ZXJzLmluZGV4T2YoaGlnaGVzdExheWVyV2l0aE91dHNpZGVQb2ludGVyRXZlbnRzRGlzYWJsZWQpOyAvLyBwcmV0dGllci1pZ25vcmVcbiAgICBjb25zdCBpbmRleCA9IG5vZGUgPyBsYXllcnMuaW5kZXhPZihub2RlKSA6IC0xO1xuICAgIGNvbnN0IGlzQm9keVBvaW50ZXJFdmVudHNEaXNhYmxlZCA9IGNvbnRleHQubGF5ZXJzV2l0aE91dHNpZGVQb2ludGVyRXZlbnRzRGlzYWJsZWQuc2l6ZSA+IDA7XG4gICAgY29uc3QgaXNQb2ludGVyRXZlbnRzRW5hYmxlZCA9IGluZGV4ID49IGhpZ2hlc3RMYXllcldpdGhPdXRzaWRlUG9pbnRlckV2ZW50c0Rpc2FibGVkSW5kZXg7XG5cbiAgICBjb25zdCBwb2ludGVyRG93bk91dHNpZGUgPSB1c2VQb2ludGVyRG93bk91dHNpZGUoKGV2ZW50KSA9PiB7XG4gICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBjb25zdCBpc1BvaW50ZXJEb3duT25CcmFuY2ggPSBbLi4uY29udGV4dC5icmFuY2hlc10uc29tZSgoYnJhbmNoKSA9PiBicmFuY2guY29udGFpbnModGFyZ2V0KSk7XG4gICAgICBpZiAoIWlzUG9pbnRlckV2ZW50c0VuYWJsZWQgfHwgaXNQb2ludGVyRG93bk9uQnJhbmNoKSByZXR1cm47XG4gICAgICBvblBvaW50ZXJEb3duT3V0c2lkZT8uKGV2ZW50KTtcbiAgICAgIG9uSW50ZXJhY3RPdXRzaWRlPy4oZXZlbnQpO1xuICAgICAgaWYgKCFldmVudC5kZWZhdWx0UHJldmVudGVkKSBvbkRpc21pc3M/LigpO1xuICAgIH0sIG93bmVyRG9jdW1lbnQpO1xuXG4gICAgY29uc3QgZm9jdXNPdXRzaWRlID0gdXNlRm9jdXNPdXRzaWRlKChldmVudCkgPT4ge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgY29uc3QgaXNGb2N1c0luQnJhbmNoID0gWy4uLmNvbnRleHQuYnJhbmNoZXNdLnNvbWUoKGJyYW5jaCkgPT4gYnJhbmNoLmNvbnRhaW5zKHRhcmdldCkpO1xuICAgICAgaWYgKGlzRm9jdXNJbkJyYW5jaCkgcmV0dXJuO1xuICAgICAgb25Gb2N1c091dHNpZGU/LihldmVudCk7XG4gICAgICBvbkludGVyYWN0T3V0c2lkZT8uKGV2ZW50KTtcbiAgICAgIGlmICghZXZlbnQuZGVmYXVsdFByZXZlbnRlZCkgb25EaXNtaXNzPy4oKTtcbiAgICB9LCBvd25lckRvY3VtZW50KTtcblxuICAgIHVzZUVzY2FwZUtleWRvd24oKGV2ZW50KSA9PiB7XG4gICAgICBjb25zdCBpc0hpZ2hlc3RMYXllciA9IGluZGV4ID09PSBjb250ZXh0LmxheWVycy5zaXplIC0gMTtcbiAgICAgIGlmICghaXNIaWdoZXN0TGF5ZXIpIHJldHVybjtcbiAgICAgIG9uRXNjYXBlS2V5RG93bj8uKGV2ZW50KTtcbiAgICAgIGlmICghZXZlbnQuZGVmYXVsdFByZXZlbnRlZCAmJiBvbkRpc21pc3MpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgb25EaXNtaXNzKCk7XG4gICAgICB9XG4gICAgfSwgb3duZXJEb2N1bWVudCk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKCFub2RlKSByZXR1cm47XG4gICAgICBpZiAoZGlzYWJsZU91dHNpZGVQb2ludGVyRXZlbnRzKSB7XG4gICAgICAgIGlmIChjb250ZXh0LmxheWVyc1dpdGhPdXRzaWRlUG9pbnRlckV2ZW50c0Rpc2FibGVkLnNpemUgPT09IDApIHtcbiAgICAgICAgICBvcmlnaW5hbEJvZHlQb2ludGVyRXZlbnRzID0gb3duZXJEb2N1bWVudC5ib2R5LnN0eWxlLnBvaW50ZXJFdmVudHM7XG4gICAgICAgICAgb3duZXJEb2N1bWVudC5ib2R5LnN0eWxlLnBvaW50ZXJFdmVudHMgPSAnbm9uZSc7XG4gICAgICAgIH1cbiAgICAgICAgY29udGV4dC5sYXllcnNXaXRoT3V0c2lkZVBvaW50ZXJFdmVudHNEaXNhYmxlZC5hZGQobm9kZSk7XG4gICAgICB9XG4gICAgICBjb250ZXh0LmxheWVycy5hZGQobm9kZSk7XG4gICAgICBkaXNwYXRjaFVwZGF0ZSgpO1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGRpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50cyAmJlxuICAgICAgICAgIGNvbnRleHQubGF5ZXJzV2l0aE91dHNpZGVQb2ludGVyRXZlbnRzRGlzYWJsZWQuc2l6ZSA9PT0gMVxuICAgICAgICApIHtcbiAgICAgICAgICBvd25lckRvY3VtZW50LmJvZHkuc3R5bGUucG9pbnRlckV2ZW50cyA9IG9yaWdpbmFsQm9keVBvaW50ZXJFdmVudHM7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSwgW25vZGUsIG93bmVyRG9jdW1lbnQsIGRpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50cywgY29udGV4dF0pO1xuXG4gICAgLyoqXG4gICAgICogV2UgcHVycG9zZWZ1bGx5IHByZXZlbnQgY29tYmluaW5nIHRoaXMgZWZmZWN0IHdpdGggdGhlIGBkaXNhYmxlT3V0c2lkZVBvaW50ZXJFdmVudHNgIGVmZmVjdFxuICAgICAqIGJlY2F1c2UgYSBjaGFuZ2UgdG8gYGRpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50c2Agd291bGQgcmVtb3ZlIHRoaXMgbGF5ZXIgZnJvbSB0aGUgc3RhY2tcbiAgICAgKiBhbmQgYWRkIGl0IHRvIHRoZSBlbmQgYWdhaW4gc28gdGhlIGxheWVyaW5nIG9yZGVyIHdvdWxkbid0IGJlIF9jcmVhdGlvbiBvcmRlcl8uXG4gICAgICogV2Ugb25seSB3YW50IHRoZW0gdG8gYmUgcmVtb3ZlZCBmcm9tIGNvbnRleHQgc3RhY2tzIHdoZW4gdW5tb3VudGVkLlxuICAgICAqL1xuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBpZiAoIW5vZGUpIHJldHVybjtcbiAgICAgICAgY29udGV4dC5sYXllcnMuZGVsZXRlKG5vZGUpO1xuICAgICAgICBjb250ZXh0LmxheWVyc1dpdGhPdXRzaWRlUG9pbnRlckV2ZW50c0Rpc2FibGVkLmRlbGV0ZShub2RlKTtcbiAgICAgICAgZGlzcGF0Y2hVcGRhdGUoKTtcbiAgICAgIH07XG4gICAgfSwgW25vZGUsIGNvbnRleHRdKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBoYW5kbGVVcGRhdGUgPSAoKSA9PiBmb3JjZSh7fSk7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKENPTlRFWFRfVVBEQVRFLCBoYW5kbGVVcGRhdGUpO1xuICAgICAgcmV0dXJuICgpID0+IGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoQ09OVEVYVF9VUERBVEUsIGhhbmRsZVVwZGF0ZSk7XG4gICAgfSwgW10pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxQcmltaXRpdmUuZGl2XG4gICAgICAgIHsuLi5sYXllclByb3BzfVxuICAgICAgICByZWY9e2NvbXBvc2VkUmVmc31cbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBwb2ludGVyRXZlbnRzOiBpc0JvZHlQb2ludGVyRXZlbnRzRGlzYWJsZWRcbiAgICAgICAgICAgID8gaXNQb2ludGVyRXZlbnRzRW5hYmxlZFxuICAgICAgICAgICAgICA/ICdhdXRvJ1xuICAgICAgICAgICAgICA6ICdub25lJ1xuICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgLi4ucHJvcHMuc3R5bGUsXG4gICAgICAgIH19XG4gICAgICAgIG9uRm9jdXNDYXB0dXJlPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkZvY3VzQ2FwdHVyZSwgZm9jdXNPdXRzaWRlLm9uRm9jdXNDYXB0dXJlKX1cbiAgICAgICAgb25CbHVyQ2FwdHVyZT17Y29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25CbHVyQ2FwdHVyZSwgZm9jdXNPdXRzaWRlLm9uQmx1ckNhcHR1cmUpfVxuICAgICAgICBvblBvaW50ZXJEb3duQ2FwdHVyZT17Y29tcG9zZUV2ZW50SGFuZGxlcnMoXG4gICAgICAgICAgcHJvcHMub25Qb2ludGVyRG93bkNhcHR1cmUsXG4gICAgICAgICAgcG9pbnRlckRvd25PdXRzaWRlLm9uUG9pbnRlckRvd25DYXB0dXJlXG4gICAgICAgICl9XG4gICAgICAvPlxuICAgICk7XG4gIH1cbik7XG5cbkRpc21pc3NhYmxlTGF5ZXIuZGlzcGxheU5hbWUgPSBESVNNSVNTQUJMRV9MQVlFUl9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBEaXNtaXNzYWJsZUxheWVyQnJhbmNoXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IEJSQU5DSF9OQU1FID0gJ0Rpc21pc3NhYmxlTGF5ZXJCcmFuY2gnO1xuXG50eXBlIERpc21pc3NhYmxlTGF5ZXJCcmFuY2hFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLmRpdj47XG5pbnRlcmZhY2UgRGlzbWlzc2FibGVMYXllckJyYW5jaFByb3BzIGV4dGVuZHMgUHJpbWl0aXZlRGl2UHJvcHMge31cblxuY29uc3QgRGlzbWlzc2FibGVMYXllckJyYW5jaCA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIERpc21pc3NhYmxlTGF5ZXJCcmFuY2hFbGVtZW50LFxuICBEaXNtaXNzYWJsZUxheWVyQnJhbmNoUHJvcHNcbj4oKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoRGlzbWlzc2FibGVMYXllckNvbnRleHQpO1xuICBjb25zdCByZWYgPSBSZWFjdC51c2VSZWY8RGlzbWlzc2FibGVMYXllckJyYW5jaEVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCByZWYpO1xuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgbm9kZSA9IHJlZi5jdXJyZW50O1xuICAgIGlmIChub2RlKSB7XG4gICAgICBjb250ZXh0LmJyYW5jaGVzLmFkZChub2RlKTtcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGNvbnRleHQuYnJhbmNoZXMuZGVsZXRlKG5vZGUpO1xuICAgICAgfTtcbiAgICB9XG4gIH0sIFtjb250ZXh0LmJyYW5jaGVzXSk7XG5cbiAgcmV0dXJuIDxQcmltaXRpdmUuZGl2IHsuLi5wcm9wc30gcmVmPXtjb21wb3NlZFJlZnN9IC8+O1xufSk7XG5cbkRpc21pc3NhYmxlTGF5ZXJCcmFuY2guZGlzcGxheU5hbWUgPSBCUkFOQ0hfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG50eXBlIFBvaW50ZXJEb3duT3V0c2lkZUV2ZW50ID0gQ3VzdG9tRXZlbnQ8eyBvcmlnaW5hbEV2ZW50OiBQb2ludGVyRXZlbnQgfT47XG50eXBlIEZvY3VzT3V0c2lkZUV2ZW50ID0gQ3VzdG9tRXZlbnQ8eyBvcmlnaW5hbEV2ZW50OiBGb2N1c0V2ZW50IH0+O1xuXG4vKipcbiAqIExpc3RlbnMgZm9yIGBwb2ludGVyZG93bmAgb3V0c2lkZSBhIHJlYWN0IHN1YnRyZWUuIFdlIHVzZSBgcG9pbnRlcmRvd25gIHJhdGhlciB0aGFuIGBwb2ludGVydXBgXG4gKiB0byBtaW1pYyBsYXllciBkaXNtaXNzaW5nIGJlaGF2aW91ciBwcmVzZW50IGluIE9TLlxuICogUmV0dXJucyBwcm9wcyB0byBwYXNzIHRvIHRoZSBub2RlIHdlIHdhbnQgdG8gY2hlY2sgZm9yIG91dHNpZGUgZXZlbnRzLlxuICovXG5mdW5jdGlvbiB1c2VQb2ludGVyRG93bk91dHNpZGUoXG4gIG9uUG9pbnRlckRvd25PdXRzaWRlPzogKGV2ZW50OiBQb2ludGVyRG93bk91dHNpZGVFdmVudCkgPT4gdm9pZCxcbiAgb3duZXJEb2N1bWVudDogRG9jdW1lbnQgPSBnbG9iYWxUaGlzPy5kb2N1bWVudFxuKSB7XG4gIGNvbnN0IGhhbmRsZVBvaW50ZXJEb3duT3V0c2lkZSA9IHVzZUNhbGxiYWNrUmVmKG9uUG9pbnRlckRvd25PdXRzaWRlKSBhcyBFdmVudExpc3RlbmVyO1xuICBjb25zdCBpc1BvaW50ZXJJbnNpZGVSZWFjdFRyZWVSZWYgPSBSZWFjdC51c2VSZWYoZmFsc2UpO1xuICBjb25zdCBoYW5kbGVDbGlja1JlZiA9IFJlYWN0LnVzZVJlZigoKSA9PiB7fSk7XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVQb2ludGVyRG93biA9IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICBpZiAoZXZlbnQudGFyZ2V0ICYmICFpc1BvaW50ZXJJbnNpZGVSZWFjdFRyZWVSZWYuY3VycmVudCkge1xuICAgICAgICBjb25zdCBldmVudERldGFpbCA9IHsgb3JpZ2luYWxFdmVudDogZXZlbnQgfTtcblxuICAgICAgICBmdW5jdGlvbiBoYW5kbGVBbmREaXNwYXRjaFBvaW50ZXJEb3duT3V0c2lkZUV2ZW50KCkge1xuICAgICAgICAgIGhhbmRsZUFuZERpc3BhdGNoQ3VzdG9tRXZlbnQoXG4gICAgICAgICAgICBQT0lOVEVSX0RPV05fT1VUU0lERSxcbiAgICAgICAgICAgIGhhbmRsZVBvaW50ZXJEb3duT3V0c2lkZSxcbiAgICAgICAgICAgIGV2ZW50RGV0YWlsLFxuICAgICAgICAgICAgeyBkaXNjcmV0ZTogdHJ1ZSB9XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBPbiB0b3VjaCBkZXZpY2VzLCB3ZSBuZWVkIHRvIHdhaXQgZm9yIGEgY2xpY2sgZXZlbnQgYmVjYXVzZSBicm93c2VycyBpbXBsZW1lbnRcbiAgICAgICAgICogYSB+MzUwbXMgZGVsYXkgYmV0d2VlbiB0aGUgdGltZSB0aGUgdXNlciBzdG9wcyB0b3VjaGluZyB0aGUgZGlzcGxheSBhbmQgd2hlbiB0aGVcbiAgICAgICAgICogYnJvd3NlciBleGVjdXRyZXMgZXZlbnRzLiBXZSBuZWVkIHRvIGVuc3VyZSB3ZSBkb24ndCByZWFjdGl2YXRlIHBvaW50ZXItZXZlbnRzIHdpdGhpblxuICAgICAgICAgKiB0aGlzIHRpbWVmcmFtZSBvdGhlcndpc2UgdGhlIGJyb3dzZXIgbWF5IGV4ZWN1dGUgZXZlbnRzIHRoYXQgc2hvdWxkIGhhdmUgYmVlbiBwcmV2ZW50ZWQuXG4gICAgICAgICAqXG4gICAgICAgICAqIEFkZGl0aW9uYWxseSwgdGhpcyBhbHNvIGxldHMgdXMgZGVhbCBhdXRvbWF0aWNhbGx5IHdpdGggY2FuY2VsbGF0aW9ucyB3aGVuIGEgY2xpY2sgZXZlbnRcbiAgICAgICAgICogaXNuJ3QgcmFpc2VkIGJlY2F1c2UgdGhlIHBhZ2Ugd2FzIGNvbnNpZGVyZWQgc2Nyb2xsZWQvZHJhZy1zY3JvbGxlZCwgbG9uZy1wcmVzc2VkLCBldGMuXG4gICAgICAgICAqXG4gICAgICAgICAqIFRoaXMgaXMgd2h5IHdlIGFsc28gY29udGludW91c2x5IHJlbW92ZSB0aGUgcHJldmlvdXMgbGlzdGVuZXIsIGJlY2F1c2Ugd2UgY2Fubm90IGJlXG4gICAgICAgICAqIGNlcnRhaW4gdGhhdCBpdCB3YXMgcmFpc2VkLCBhbmQgdGhlcmVmb3JlIGNsZWFuZWQtdXAuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoZXZlbnQucG9pbnRlclR5cGUgPT09ICd0b3VjaCcpIHtcbiAgICAgICAgICBvd25lckRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlQ2xpY2tSZWYuY3VycmVudCk7XG4gICAgICAgICAgaGFuZGxlQ2xpY2tSZWYuY3VycmVudCA9IGhhbmRsZUFuZERpc3BhdGNoUG9pbnRlckRvd25PdXRzaWRlRXZlbnQ7XG4gICAgICAgICAgb3duZXJEb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRsZUNsaWNrUmVmLmN1cnJlbnQsIHsgb25jZTogdHJ1ZSB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBoYW5kbGVBbmREaXNwYXRjaFBvaW50ZXJEb3duT3V0c2lkZUV2ZW50KCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFdlIG5lZWQgdG8gcmVtb3ZlIHRoZSBldmVudCBsaXN0ZW5lciBpbiBjYXNlIHRoZSBvdXRzaWRlIGNsaWNrIGhhcyBiZWVuIGNhbmNlbGVkLlxuICAgICAgICAvLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yYWRpeC11aS9wcmltaXRpdmVzL2lzc3Vlcy8yMTcxXG4gICAgICAgIG93bmVyRG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVDbGlja1JlZi5jdXJyZW50KTtcbiAgICAgIH1cbiAgICAgIGlzUG9pbnRlckluc2lkZVJlYWN0VHJlZVJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBpZiB0aGlzIGhvb2sgZXhlY3V0ZXMgaW4gYSBjb21wb25lbnQgdGhhdCBtb3VudHMgdmlhIGEgYHBvaW50ZXJkb3duYCBldmVudCwgdGhlIGV2ZW50XG4gICAgICogd291bGQgYnViYmxlIHVwIHRvIHRoZSBkb2N1bWVudCBhbmQgdHJpZ2dlciBhIGBwb2ludGVyRG93bk91dHNpZGVgIGV2ZW50LiBXZSBhdm9pZFxuICAgICAqIHRoaXMgYnkgZGVsYXlpbmcgdGhlIGV2ZW50IGxpc3RlbmVyIHJlZ2lzdHJhdGlvbiBvbiB0aGUgZG9jdW1lbnQuXG4gICAgICogVGhpcyBpcyBub3QgUmVhY3Qgc3BlY2lmaWMsIGJ1dCByYXRoZXIgaG93IHRoZSBET00gd29ya3MsIGllOlxuICAgICAqIGBgYFxuICAgICAqIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsICgpID0+IHtcbiAgICAgKiAgIGNvbnNvbGUubG9nKCdJIHdpbGwgbG9nJyk7XG4gICAgICogICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsICgpID0+IHtcbiAgICAgKiAgICAgY29uc29sZS5sb2coJ0kgd2lsbCBhbHNvIGxvZycpO1xuICAgICAqICAgfSlcbiAgICAgKiB9KTtcbiAgICAgKi9cbiAgICBjb25zdCB0aW1lcklkID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgb3duZXJEb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIGhhbmRsZVBvaW50ZXJEb3duKTtcbiAgICB9LCAwKTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aW1lcklkKTtcbiAgICAgIG93bmVyRG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9pbnRlcmRvd24nLCBoYW5kbGVQb2ludGVyRG93bik7XG4gICAgICBvd25lckRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlQ2xpY2tSZWYuY3VycmVudCk7XG4gICAgfTtcbiAgfSwgW293bmVyRG9jdW1lbnQsIGhhbmRsZVBvaW50ZXJEb3duT3V0c2lkZV0pO1xuXG4gIHJldHVybiB7XG4gICAgLy8gZW5zdXJlcyB3ZSBjaGVjayBSZWFjdCBjb21wb25lbnQgdHJlZSAobm90IGp1c3QgRE9NIHRyZWUpXG4gICAgb25Qb2ludGVyRG93bkNhcHR1cmU6ICgpID0+IChpc1BvaW50ZXJJbnNpZGVSZWFjdFRyZWVSZWYuY3VycmVudCA9IHRydWUpLFxuICB9O1xufVxuXG4vKipcbiAqIExpc3RlbnMgZm9yIHdoZW4gZm9jdXMgaGFwcGVucyBvdXRzaWRlIGEgcmVhY3Qgc3VidHJlZS5cbiAqIFJldHVybnMgcHJvcHMgdG8gcGFzcyB0byB0aGUgcm9vdCAobm9kZSkgb2YgdGhlIHN1YnRyZWUgd2Ugd2FudCB0byBjaGVjay5cbiAqL1xuZnVuY3Rpb24gdXNlRm9jdXNPdXRzaWRlKFxuICBvbkZvY3VzT3V0c2lkZT86IChldmVudDogRm9jdXNPdXRzaWRlRXZlbnQpID0+IHZvaWQsXG4gIG93bmVyRG9jdW1lbnQ6IERvY3VtZW50ID0gZ2xvYmFsVGhpcz8uZG9jdW1lbnRcbikge1xuICBjb25zdCBoYW5kbGVGb2N1c091dHNpZGUgPSB1c2VDYWxsYmFja1JlZihvbkZvY3VzT3V0c2lkZSkgYXMgRXZlbnRMaXN0ZW5lcjtcbiAgY29uc3QgaXNGb2N1c0luc2lkZVJlYWN0VHJlZVJlZiA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVGb2N1cyA9IChldmVudDogRm9jdXNFdmVudCkgPT4ge1xuICAgICAgaWYgKGV2ZW50LnRhcmdldCAmJiAhaXNGb2N1c0luc2lkZVJlYWN0VHJlZVJlZi5jdXJyZW50KSB7XG4gICAgICAgIGNvbnN0IGV2ZW50RGV0YWlsID0geyBvcmlnaW5hbEV2ZW50OiBldmVudCB9O1xuICAgICAgICBoYW5kbGVBbmREaXNwYXRjaEN1c3RvbUV2ZW50KEZPQ1VTX09VVFNJREUsIGhhbmRsZUZvY3VzT3V0c2lkZSwgZXZlbnREZXRhaWwsIHtcbiAgICAgICAgICBkaXNjcmV0ZTogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH07XG4gICAgb3duZXJEb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdmb2N1c2luJywgaGFuZGxlRm9jdXMpO1xuICAgIHJldHVybiAoKSA9PiBvd25lckRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCBoYW5kbGVGb2N1cyk7XG4gIH0sIFtvd25lckRvY3VtZW50LCBoYW5kbGVGb2N1c091dHNpZGVdKTtcblxuICByZXR1cm4ge1xuICAgIG9uRm9jdXNDYXB0dXJlOiAoKSA9PiAoaXNGb2N1c0luc2lkZVJlYWN0VHJlZVJlZi5jdXJyZW50ID0gdHJ1ZSksXG4gICAgb25CbHVyQ2FwdHVyZTogKCkgPT4gKGlzRm9jdXNJbnNpZGVSZWFjdFRyZWVSZWYuY3VycmVudCA9IGZhbHNlKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZGlzcGF0Y2hVcGRhdGUoKSB7XG4gIGNvbnN0IGV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KENPTlRFWFRfVVBEQVRFKTtcbiAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7XG59XG5cbmZ1bmN0aW9uIGhhbmRsZUFuZERpc3BhdGNoQ3VzdG9tRXZlbnQ8RSBleHRlbmRzIEN1c3RvbUV2ZW50LCBPcmlnaW5hbEV2ZW50IGV4dGVuZHMgRXZlbnQ+KFxuICBuYW1lOiBzdHJpbmcsXG4gIGhhbmRsZXI6ICgoZXZlbnQ6IEUpID0+IHZvaWQpIHwgdW5kZWZpbmVkLFxuICBkZXRhaWw6IHsgb3JpZ2luYWxFdmVudDogT3JpZ2luYWxFdmVudCB9ICYgKEUgZXh0ZW5kcyBDdXN0b21FdmVudDxpbmZlciBEPiA/IEQgOiBuZXZlciksXG4gIHsgZGlzY3JldGUgfTogeyBkaXNjcmV0ZTogYm9vbGVhbiB9XG4pIHtcbiAgY29uc3QgdGFyZ2V0ID0gZGV0YWlsLm9yaWdpbmFsRXZlbnQudGFyZ2V0O1xuICBjb25zdCBldmVudCA9IG5ldyBDdXN0b21FdmVudChuYW1lLCB7IGJ1YmJsZXM6IGZhbHNlLCBjYW5jZWxhYmxlOiB0cnVlLCBkZXRhaWwgfSk7XG4gIGlmIChoYW5kbGVyKSB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihuYW1lLCBoYW5kbGVyIGFzIEV2ZW50TGlzdGVuZXIsIHsgb25jZTogdHJ1ZSB9KTtcblxuICBpZiAoZGlzY3JldGUpIHtcbiAgICBkaXNwYXRjaERpc2NyZXRlQ3VzdG9tRXZlbnQodGFyZ2V0LCBldmVudCk7XG4gIH0gZWxzZSB7XG4gICAgdGFyZ2V0LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICB9XG59XG5cbmNvbnN0IFJvb3QgPSBEaXNtaXNzYWJsZUxheWVyO1xuY29uc3QgQnJhbmNoID0gRGlzbWlzc2FibGVMYXllckJyYW5jaDtcblxuZXhwb3J0IHtcbiAgRGlzbWlzc2FibGVMYXllcixcbiAgRGlzbWlzc2FibGVMYXllckJyYW5jaCxcbiAgLy9cbiAgUm9vdCxcbiAgQnJhbmNoLFxufTtcbmV4cG9ydCB0eXBlIHsgRGlzbWlzc2FibGVMYXllclByb3BzIH07XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJjb21wb3NlRXZlbnRIYW5kbGVycyIsIlByaW1pdGl2ZSIsImRpc3BhdGNoRGlzY3JldGVDdXN0b21FdmVudCIsInVzZUNvbXBvc2VkUmVmcyIsInVzZUNhbGxiYWNrUmVmIiwidXNlRXNjYXBlS2V5ZG93biIsImpzeCIsIkRJU01JU1NBQkxFX0xBWUVSX05BTUUiLCJDT05URVhUX1VQREFURSIsIlBPSU5URVJfRE9XTl9PVVRTSURFIiwiRk9DVVNfT1VUU0lERSIsIm9yaWdpbmFsQm9keVBvaW50ZXJFdmVudHMiLCJEaXNtaXNzYWJsZUxheWVyQ29udGV4dCIsImNyZWF0ZUNvbnRleHQiLCJsYXllcnMiLCJTZXQiLCJsYXllcnNXaXRoT3V0c2lkZVBvaW50ZXJFdmVudHNEaXNhYmxlZCIsImJyYW5jaGVzIiwiRGlzbWlzc2FibGVMYXllciIsImZvcndhcmRSZWYiLCJwcm9wcyIsImZvcndhcmRlZFJlZiIsImRpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50cyIsIm9uRXNjYXBlS2V5RG93biIsIm9uUG9pbnRlckRvd25PdXRzaWRlIiwib25Gb2N1c091dHNpZGUiLCJvbkludGVyYWN0T3V0c2lkZSIsIm9uRGlzbWlzcyIsImxheWVyUHJvcHMiLCJjb250ZXh0IiwidXNlQ29udGV4dCIsIm5vZGUiLCJzZXROb2RlIiwidXNlU3RhdGUiLCJvd25lckRvY3VtZW50IiwiZ2xvYmFsVGhpcyIsImRvY3VtZW50IiwiZm9yY2UiLCJjb21wb3NlZFJlZnMiLCJBcnJheSIsImZyb20iLCJoaWdoZXN0TGF5ZXJXaXRoT3V0c2lkZVBvaW50ZXJFdmVudHNEaXNhYmxlZCIsInNsaWNlIiwiaGlnaGVzdExheWVyV2l0aE91dHNpZGVQb2ludGVyRXZlbnRzRGlzYWJsZWRJbmRleCIsImluZGV4T2YiLCJpbmRleCIsImlzQm9keVBvaW50ZXJFdmVudHNEaXNhYmxlZCIsInNpemUiLCJpc1BvaW50ZXJFdmVudHNFbmFibGVkIiwicG9pbnRlckRvd25PdXRzaWRlIiwidXNlUG9pbnRlckRvd25PdXRzaWRlIiwiZXZlbnQiLCJ0YXJnZXQiLCJpc1BvaW50ZXJEb3duT25CcmFuY2giLCJzb21lIiwiYnJhbmNoIiwiY29udGFpbnMiLCJkZWZhdWx0UHJldmVudGVkIiwiZm9jdXNPdXRzaWRlIiwidXNlRm9jdXNPdXRzaWRlIiwiaXNGb2N1c0luQnJhbmNoIiwiaXNIaWdoZXN0TGF5ZXIiLCJwcmV2ZW50RGVmYXVsdCIsInVzZUVmZmVjdCIsImJvZHkiLCJzdHlsZSIsInBvaW50ZXJFdmVudHMiLCJhZGQiLCJkaXNwYXRjaFVwZGF0ZSIsImRlbGV0ZSIsImhhbmRsZVVwZGF0ZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiZGl2IiwicmVmIiwib25Gb2N1c0NhcHR1cmUiLCJvbkJsdXJDYXB0dXJlIiwib25Qb2ludGVyRG93bkNhcHR1cmUiLCJkaXNwbGF5TmFtZSIsIkJSQU5DSF9OQU1FIiwiRGlzbWlzc2FibGVMYXllckJyYW5jaCIsInVzZVJlZiIsImN1cnJlbnQiLCJoYW5kbGVQb2ludGVyRG93bk91dHNpZGUiLCJpc1BvaW50ZXJJbnNpZGVSZWFjdFRyZWVSZWYiLCJoYW5kbGVDbGlja1JlZiIsImhhbmRsZVBvaW50ZXJEb3duIiwiaGFuZGxlQW5kRGlzcGF0Y2hQb2ludGVyRG93bk91dHNpZGVFdmVudCIsImhhbmRsZUFuZERpc3BhdGNoQ3VzdG9tRXZlbnQiLCJldmVudERldGFpbCIsImRpc2NyZXRlIiwib3JpZ2luYWxFdmVudCIsInBvaW50ZXJUeXBlIiwib25jZSIsInRpbWVySWQiLCJ3aW5kb3ciLCJzZXRUaW1lb3V0IiwiY2xlYXJUaW1lb3V0IiwiaGFuZGxlRm9jdXNPdXRzaWRlIiwiaXNGb2N1c0luc2lkZVJlYWN0VHJlZVJlZiIsImhhbmRsZUZvY3VzIiwiQ3VzdG9tRXZlbnQiLCJkaXNwYXRjaEV2ZW50IiwibmFtZSIsImhhbmRsZXIiLCJkZXRhaWwiLCJidWJibGVzIiwiY2FuY2VsYWJsZSIsIlJvb3QiLCJCcmFuY2giXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs\n"); /***/ }), /***/ "(ssr)/./node_modules/@radix-ui/react-focus-guards/dist/index.mjs": /*!******************************************************************!*\ !*** ./node_modules/@radix-ui/react-focus-guards/dist/index.mjs ***! \******************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FocusGuards: () => (/* binding */ FocusGuards),\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ useFocusGuards: () => (/* binding */ useFocusGuards)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* __next_internal_client_entry_do_not_use__ FocusGuards,Root,useFocusGuards auto */ // packages/react/focus-guards/src/FocusGuards.tsx\n\nvar count = 0;\nfunction FocusGuards(props) {\n useFocusGuards();\n return props.children;\n}\nfunction useFocusGuards() {\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(()=>{\n const edgeGuards = document.querySelectorAll(\"[data-radix-focus-guard]\");\n document.body.insertAdjacentElement(\"afterbegin\", edgeGuards[0] ?? createFocusGuard());\n document.body.insertAdjacentElement(\"beforeend\", edgeGuards[1] ?? createFocusGuard());\n count++;\n return ()=>{\n if (count === 1) {\n document.querySelectorAll(\"[data-radix-focus-guard]\").forEach((node)=>node.remove());\n }\n count--;\n };\n }, []);\n}\nfunction createFocusGuard() {\n const element = document.createElement(\"span\");\n element.setAttribute(\"data-radix-focus-guard\", \"\");\n element.tabIndex = 0;\n element.style.outline = \"none\";\n element.style.opacity = \"0\";\n element.style.position = \"fixed\";\n element.style.pointerEvents = \"none\";\n return element;\n}\nvar Root = FocusGuards;\n //# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWZvY3VzLWd1YXJkcy9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUF1QjtBQUd2QixJQUFJQyxRQUFRO0FBRVosU0FBU0MsWUFBWUMsS0FBQTtJQUNuQkM7SUFDQSxPQUFPRCxNQUFNRSxRQUFBO0FBQ2Y7QUFNQSxTQUFTRDtJQUNESiw0Q0FBQSxDQUFVO1FBQ2QsTUFBTU8sYUFBYUMsU0FBU0MsZ0JBQUEsQ0FBaUI7UUFDN0NELFNBQVNFLElBQUEsQ0FBS0MscUJBQUEsQ0FBc0IsY0FBY0osVUFBQSxDQUFXLEVBQUMsSUFBS0s7UUFDbkVKLFNBQVNFLElBQUEsQ0FBS0MscUJBQUEsQ0FBc0IsYUFBYUosVUFBQSxDQUFXLEVBQUMsSUFBS0s7UUFDbEVYO1FBRUEsT0FBTztZQUNMLElBQUlBLFVBQVUsR0FBRztnQkFDZk8sU0FBU0MsZ0JBQUEsQ0FBaUIsNEJBQTRCSSxPQUFBLENBQVEsQ0FBQ0MsT0FBU0EsS0FBS0MsTUFBQTtZQUMvRTtZQUNBZDtRQUNGO0lBQ0YsR0FBRyxFQUFFO0FBQ1A7QUFFQSxTQUFTVztJQUNQLE1BQU1JLFVBQVVSLFNBQVNTLGFBQUEsQ0FBYztJQUN2Q0QsUUFBUUUsWUFBQSxDQUFhLDBCQUEwQjtJQUMvQ0YsUUFBUUcsUUFBQSxHQUFXO0lBQ25CSCxRQUFRSSxLQUFBLENBQU1DLE9BQUEsR0FBVTtJQUN4QkwsUUFBUUksS0FBQSxDQUFNRSxPQUFBLEdBQVU7SUFDeEJOLFFBQVFJLEtBQUEsQ0FBTUcsUUFBQSxHQUFXO0lBQ3pCUCxRQUFRSSxLQUFBLENBQU1JLGFBQUEsR0FBZ0I7SUFDOUIsT0FBT1I7QUFDVDtBQUVBLElBQU1TLE9BQU92QiIsInNvdXJjZXMiOlsid2VicGFjazovL21hbWFkLWFwcC8uLi9zcmMvRm9jdXNHdWFyZHMudHN4P2Q1OGEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG4vKiogTnVtYmVyIG9mIGNvbXBvbmVudHMgd2hpY2ggaGF2ZSByZXF1ZXN0ZWQgaW50ZXJlc3QgdG8gaGF2ZSBmb2N1cyBndWFyZHMgKi9cbmxldCBjb3VudCA9IDA7XG5cbmZ1bmN0aW9uIEZvY3VzR3VhcmRzKHByb3BzOiBhbnkpIHtcbiAgdXNlRm9jdXNHdWFyZHMoKTtcbiAgcmV0dXJuIHByb3BzLmNoaWxkcmVuO1xufVxuXG4vKipcbiAqIEluamVjdHMgYSBwYWlyIG9mIGZvY3VzIGd1YXJkcyBhdCB0aGUgZWRnZXMgb2YgdGhlIHdob2xlIERPTSB0cmVlXG4gKiB0byBlbnN1cmUgYGZvY3VzaW5gICYgYGZvY3Vzb3V0YCBldmVudHMgY2FuIGJlIGNhdWdodCBjb25zaXN0ZW50bHkuXG4gKi9cbmZ1bmN0aW9uIHVzZUZvY3VzR3VhcmRzKCkge1xuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGVkZ2VHdWFyZHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1yYWRpeC1mb2N1cy1ndWFyZF0nKTtcbiAgICBkb2N1bWVudC5ib2R5Lmluc2VydEFkamFjZW50RWxlbWVudCgnYWZ0ZXJiZWdpbicsIGVkZ2VHdWFyZHNbMF0gPz8gY3JlYXRlRm9jdXNHdWFyZCgpKTtcbiAgICBkb2N1bWVudC5ib2R5Lmluc2VydEFkamFjZW50RWxlbWVudCgnYmVmb3JlZW5kJywgZWRnZUd1YXJkc1sxXSA/PyBjcmVhdGVGb2N1c0d1YXJkKCkpO1xuICAgIGNvdW50Kys7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKGNvdW50ID09PSAxKSB7XG4gICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLXJhZGl4LWZvY3VzLWd1YXJkXScpLmZvckVhY2goKG5vZGUpID0+IG5vZGUucmVtb3ZlKCkpO1xuICAgICAgfVxuICAgICAgY291bnQtLTtcbiAgICB9O1xuICB9LCBbXSk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUZvY3VzR3VhcmQoKSB7XG4gIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdkYXRhLXJhZGl4LWZvY3VzLWd1YXJkJywgJycpO1xuICBlbGVtZW50LnRhYkluZGV4ID0gMDtcbiAgZWxlbWVudC5zdHlsZS5vdXRsaW5lID0gJ25vbmUnO1xuICBlbGVtZW50LnN0eWxlLm9wYWNpdHkgPSAnMCc7XG4gIGVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnO1xuICBlbGVtZW50LnN0eWxlLnBvaW50ZXJFdmVudHMgPSAnbm9uZSc7XG4gIHJldHVybiBlbGVtZW50O1xufVxuXG5jb25zdCBSb290ID0gRm9jdXNHdWFyZHM7XG5cbmV4cG9ydCB7XG4gIEZvY3VzR3VhcmRzLFxuICAvL1xuICBSb290LFxuICAvL1xuICB1c2VGb2N1c0d1YXJkcyxcbn07XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJjb3VudCIsIkZvY3VzR3VhcmRzIiwicHJvcHMiLCJ1c2VGb2N1c0d1YXJkcyIsImNoaWxkcmVuIiwidXNlRWZmZWN0IiwiZWRnZUd1YXJkcyIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvckFsbCIsImJvZHkiLCJpbnNlcnRBZGphY2VudEVsZW1lbnQiLCJjcmVhdGVGb2N1c0d1YXJkIiwiZm9yRWFjaCIsIm5vZGUiLCJyZW1vdmUiLCJlbGVtZW50IiwiY3JlYXRlRWxlbWVudCIsInNldEF0dHJpYnV0ZSIsInRhYkluZGV4Iiwic3R5bGUiLCJvdXRsaW5lIiwib3BhY2l0eSIsInBvc2l0aW9uIiwicG9pbnRlckV2ZW50cyIsIlJvb3QiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/react-focus-guards/dist/index.mjs\n"); /***/ }), /***/ "(ssr)/./node_modules/@radix-ui/react-focus-scope/dist/index.mjs": /*!*****************************************************************!*\ !*** ./node_modules/@radix-ui/react-focus-scope/dist/index.mjs ***! \*****************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FocusScope: () => (/* binding */ FocusScope),\n/* harmony export */ Root: () => (/* binding */ Root)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(ssr)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(ssr)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(ssr)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ FocusScope,Root auto */ // packages/react/focus-scope/src/FocusScope.tsx\n\n\n\n\n\nvar AUTOFOCUS_ON_MOUNT = \"focusScope.autoFocusOnMount\";\nvar AUTOFOCUS_ON_UNMOUNT = \"focusScope.autoFocusOnUnmount\";\nvar EVENT_OPTIONS = {\n bubbles: false,\n cancelable: true\n};\nvar FOCUS_SCOPE_NAME = \"FocusScope\";\nvar FocusScope = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { loop = false, trapped = false, onMountAutoFocus: onMountAutoFocusProp, onUnmountAutoFocus: onUnmountAutoFocusProp, ...scopeProps } = props;\n const [container, setContainer] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const onMountAutoFocus = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_2__.useCallbackRef)(onMountAutoFocusProp);\n const onUnmountAutoFocus = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_2__.useCallbackRef)(onUnmountAutoFocusProp);\n const lastFocusedElementRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, (node)=>setContainer(node));\n const focusScope = react__WEBPACK_IMPORTED_MODULE_0__.useRef({\n paused: false,\n pause () {\n this.paused = true;\n },\n resume () {\n this.paused = false;\n }\n }).current;\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(()=>{\n if (trapped) {\n let handleFocusIn2 = function(event) {\n if (focusScope.paused || !container) return;\n const target = event.target;\n if (container.contains(target)) {\n lastFocusedElementRef.current = target;\n } else {\n focus(lastFocusedElementRef.current, {\n select: true\n });\n }\n }, handleFocusOut2 = function(event) {\n if (focusScope.paused || !container) return;\n const relatedTarget = event.relatedTarget;\n if (relatedTarget === null) return;\n if (!container.contains(relatedTarget)) {\n focus(lastFocusedElementRef.current, {\n select: true\n });\n }\n }, handleMutations2 = function(mutations) {\n const focusedElement = document.activeElement;\n if (focusedElement !== document.body) return;\n for (const mutation of mutations){\n if (mutation.removedNodes.length > 0) focus(container);\n }\n };\n var handleFocusIn = handleFocusIn2, handleFocusOut = handleFocusOut2, handleMutations = handleMutations2;\n document.addEventListener(\"focusin\", handleFocusIn2);\n document.addEventListener(\"focusout\", handleFocusOut2);\n const mutationObserver = new MutationObserver(handleMutations2);\n if (container) mutationObserver.observe(container, {\n childList: true,\n subtree: true\n });\n return ()=>{\n document.removeEventListener(\"focusin\", handleFocusIn2);\n document.removeEventListener(\"focusout\", handleFocusOut2);\n mutationObserver.disconnect();\n };\n }\n }, [\n trapped,\n container,\n focusScope.paused\n ]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(()=>{\n if (container) {\n focusScopesStack.add(focusScope);\n const previouslyFocusedElement = document.activeElement;\n const hasFocusedCandidate = container.contains(previouslyFocusedElement);\n if (!hasFocusedCandidate) {\n const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n container.dispatchEvent(mountEvent);\n if (!mountEvent.defaultPrevented) {\n focusFirst(removeLinks(getTabbableCandidates(container)), {\n select: true\n });\n if (document.activeElement === previouslyFocusedElement) {\n focus(container);\n }\n }\n }\n return ()=>{\n container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n setTimeout(()=>{\n const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n container.dispatchEvent(unmountEvent);\n if (!unmountEvent.defaultPrevented) {\n focus(previouslyFocusedElement ?? document.body, {\n select: true\n });\n }\n container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n focusScopesStack.remove(focusScope);\n }, 0);\n };\n }\n }, [\n container,\n onMountAutoFocus,\n onUnmountAutoFocus,\n focusScope\n ]);\n const handleKeyDown = react__WEBPACK_IMPORTED_MODULE_0__.useCallback((event)=>{\n if (!loop && !trapped) return;\n if (focusScope.paused) return;\n const isTabKey = event.key === \"Tab\" && !event.altKey && !event.ctrlKey && !event.metaKey;\n const focusedElement = document.activeElement;\n if (isTabKey && focusedElement) {\n const container2 = event.currentTarget;\n const [first, last] = getTabbableEdges(container2);\n const hasTabbableElementsInside = first && last;\n if (!hasTabbableElementsInside) {\n if (focusedElement === container2) event.preventDefault();\n } else {\n if (!event.shiftKey && focusedElement === last) {\n event.preventDefault();\n if (loop) focus(first, {\n select: true\n });\n } else if (event.shiftKey && focusedElement === first) {\n event.preventDefault();\n if (loop) focus(last, {\n select: true\n });\n }\n }\n }\n }, [\n loop,\n trapped,\n focusScope.paused\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.Primitive.div, {\n tabIndex: -1,\n ...scopeProps,\n ref: composedRefs,\n onKeyDown: handleKeyDown\n });\n});\nFocusScope.displayName = FOCUS_SCOPE_NAME;\nfunction focusFirst(candidates, { select = false } = {}) {\n const previouslyFocusedElement = document.activeElement;\n for (const candidate of candidates){\n focus(candidate, {\n select\n });\n if (document.activeElement !== previouslyFocusedElement) return;\n }\n}\nfunction getTabbableEdges(container) {\n const candidates = getTabbableCandidates(container);\n const first = findVisible(candidates, container);\n const last = findVisible(candidates.reverse(), container);\n return [\n first,\n last\n ];\n}\nfunction getTabbableCandidates(container) {\n const nodes = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node)=>{\n const isHiddenInput = node.tagName === \"INPUT\" && node.type === \"hidden\";\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n while(walker.nextNode())nodes.push(walker.currentNode);\n return nodes;\n}\nfunction findVisible(elements, container) {\n for (const element of elements){\n if (!isHidden(element, {\n upTo: container\n })) return element;\n }\n}\nfunction isHidden(node, { upTo }) {\n if (getComputedStyle(node).visibility === \"hidden\") return true;\n while(node){\n if (upTo !== void 0 && node === upTo) return false;\n if (getComputedStyle(node).display === \"none\") return true;\n node = node.parentElement;\n }\n return false;\n}\nfunction isSelectableInput(element) {\n return element instanceof HTMLInputElement && \"select\" in element;\n}\nfunction focus(element, { select = false } = {}) {\n if (element && element.focus) {\n const previouslyFocusedElement = document.activeElement;\n element.focus({\n preventScroll: true\n });\n if (element !== previouslyFocusedElement && isSelectableInput(element) && select) element.select();\n }\n}\nvar focusScopesStack = createFocusScopesStack();\nfunction createFocusScopesStack() {\n let stack = [];\n return {\n add (focusScope) {\n const activeFocusScope = stack[0];\n if (focusScope !== activeFocusScope) {\n activeFocusScope?.pause();\n }\n stack = arrayRemove(stack, focusScope);\n stack.unshift(focusScope);\n },\n remove (focusScope) {\n stack = arrayRemove(stack, focusScope);\n stack[0]?.resume();\n }\n };\n}\nfunction arrayRemove(array, item) {\n const updatedArray = [\n ...array\n ];\n const index = updatedArray.indexOf(item);\n if (index !== -1) {\n updatedArray.splice(index, 1);\n }\n return updatedArray;\n}\nfunction removeLinks(items) {\n return items.filter((item)=>item.tagName !== \"A\");\n}\nvar Root = FocusScope;\n //# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWZvY3VzLXNjb3BlL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQXVCO0FBQ1M7QUFDTjtBQUNLO0FBd00zQjtBQXRNSixJQUFNSyxxQkFBcUI7QUFDM0IsSUFBTUMsdUJBQXVCO0FBQzdCLElBQU1DLGdCQUFnQjtJQUFFQyxTQUFTO0lBQU9DLFlBQVk7QUFBSztBQVF6RCxJQUFNQyxtQkFBbUI7QUFnQ3pCLElBQU1DLDJCQUFtQlgsNkNBQUEsQ0FBK0MsQ0FBQ2EsT0FBT0M7SUFDOUUsTUFBTSxFQUNKQyxPQUFPLE9BQ1BDLFVBQVUsT0FDVkMsa0JBQWtCQyxvQkFBQSxFQUNsQkMsb0JBQW9CQyxzQkFBQSxFQUNwQixHQUFHQyxZQUNMLEdBQUlSO0lBQ0osTUFBTSxDQUFDUyxXQUFXQyxhQUFZLEdBQVV2QiwyQ0FBQSxDQUE2QjtJQUNyRSxNQUFNaUIsbUJBQW1CZCxnRkFBY0EsQ0FBQ2U7SUFDeEMsTUFBTUMscUJBQXFCaEIsZ0ZBQWNBLENBQUNpQjtJQUMxQyxNQUFNSyx3QkFBOEJ6Qix5Q0FBQSxDQUEyQjtJQUMvRCxNQUFNMkIsZUFBZTFCLDZFQUFlQSxDQUFDYSxjQUFjLENBQUNjLE9BQVNMLGFBQWFLO0lBRTFFLE1BQU1DLGFBQW1CN0IseUNBQUEsQ0FBTztRQUM5QjhCLFFBQVE7UUFDUkM7WUFDRSxLQUFLRCxNQUFBLEdBQVM7UUFDaEI7UUFDQUU7WUFDRSxLQUFLRixNQUFBLEdBQVM7UUFDaEI7SUFDRixHQUFHRyxPQUFBO0lBR0dqQyw0Q0FBQSxDQUFVO1FBQ2QsSUFBSWdCLFNBQVM7WUFDWCxJQUFTbUIsaUJBQVQsU0FBdUJDLEtBQUE7Z0JBQ3JCLElBQUlQLFdBQVdDLE1BQUEsSUFBVSxDQUFDUixXQUFXO2dCQUNyQyxNQUFNZSxTQUFTRCxNQUFNQyxNQUFBO2dCQUNyQixJQUFJZixVQUFVZ0IsUUFBQSxDQUFTRCxTQUFTO29CQUM5Qlosc0JBQXNCUSxP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QUM3QjtJQUNBLE9BQU9EO0FBQ1Q7QUFFQSxTQUFTOUQsWUFBWWtFLEtBQUE7SUFDbkIsT0FBT0EsTUFBTUMsTUFBQSxDQUFPLENBQUNOLE9BQVNBLEtBQUsxQixPQUFBLEtBQVk7QUFDakQ7QUFFQSxJQUFNaUMsT0FBTzlIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbWFtYWQtYXBwLy4uL3NyYy9Gb2N1c1Njb3BlLnRzeD9iMzA1Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUNvbXBvc2VkUmVmcyB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1jb21wb3NlLXJlZnMnO1xuaW1wb3J0IHsgUHJpbWl0aXZlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXByaW1pdGl2ZSc7XG5pbXBvcnQgeyB1c2VDYWxsYmFja1JlZiB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC11c2UtY2FsbGJhY2stcmVmJztcblxuY29uc3QgQVVUT0ZPQ1VTX09OX01PVU5UID0gJ2ZvY3VzU2NvcGUuYXV0b0ZvY3VzT25Nb3VudCc7XG5jb25zdCBBVVRPRk9DVVNfT05fVU5NT1VOVCA9ICdmb2N1c1Njb3BlLmF1dG9Gb2N1c09uVW5tb3VudCc7XG5jb25zdCBFVkVOVF9PUFRJT05TID0geyBidWJibGVzOiBmYWxzZSwgY2FuY2VsYWJsZTogdHJ1ZSB9O1xuXG50eXBlIEZvY3VzYWJsZVRhcmdldCA9IEhUTUxFbGVtZW50IHwgeyBmb2N1cygpOiB2b2lkIH07XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEZvY3VzU2NvcGVcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgRk9DVVNfU0NPUEVfTkFNRSA9ICdGb2N1c1Njb3BlJztcblxudHlwZSBGb2N1c1Njb3BlRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5kaXY+O1xudHlwZSBQcmltaXRpdmVEaXZQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgUHJpbWl0aXZlLmRpdj47XG5pbnRlcmZhY2UgRm9jdXNTY29wZVByb3BzIGV4dGVuZHMgUHJpbWl0aXZlRGl2UHJvcHMge1xuICAvKipcbiAgICogV2hlbiBgdHJ1ZWAsIHRhYmJpbmcgZnJvbSBsYXN0IGl0ZW0gd2lsbCBmb2N1cyBmaXJzdCB0YWJiYWJsZVxuICAgKiBhbmQgc2hpZnQrdGFiIGZyb20gZmlyc3QgaXRlbSB3aWxsIGZvY3VzIGxhc3QgdGFiYWJibGUuXG4gICAqIEBkZWZhdWx0VmFsdWUgZmFsc2VcbiAgICovXG4gIGxvb3A/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGVuIGB0cnVlYCwgZm9jdXMgY2Fubm90IGVzY2FwZSB0aGUgZm9jdXMgc2NvcGUgdmlhIGtleWJvYXJkLFxuICAgKiBwb2ludGVyLCBvciBhIHByb2dyYW1tYXRpYyBmb2N1cy5cbiAgICogQGRlZmF1bHRWYWx1ZSBmYWxzZVxuICAgKi9cbiAgdHJhcHBlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXIgY2FsbGVkIHdoZW4gYXV0by1mb2N1c2luZyBvbiBtb3VudC5cbiAgICogQ2FuIGJlIHByZXZlbnRlZC5cbiAgICovXG4gIG9uTW91bnRBdXRvRm9jdXM/OiAoZXZlbnQ6IEV2ZW50KSA9PiB2b2lkO1xuXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGNhbGxlZCB3aGVuIGF1dG8tZm9jdXNpbmcgb24gdW5tb3VudC5cbiAgICogQ2FuIGJlIHByZXZlbnRlZC5cbiAgICovXG4gIG9uVW5tb3VudEF1dG9Gb2N1cz86IChldmVudDogRXZlbnQpID0+IHZvaWQ7XG59XG5cbmNvbnN0IEZvY3VzU2NvcGUgPSBSZWFjdC5mb3J3YXJkUmVmPEZvY3VzU2NvcGVFbGVtZW50LCBGb2N1c1Njb3BlUHJvcHM+KChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBsb29wID0gZmFsc2UsXG4gICAgdHJhcHBlZCA9IGZhbHNlLFxuICAgIG9uTW91bnRBdXRvRm9jdXM6IG9uTW91bnRBdXRvRm9jdXNQcm9wLFxuICAgIG9uVW5tb3VudEF1dG9Gb2N1czogb25Vbm1vdW50QXV0b0ZvY3VzUHJvcCxcbiAgICAuLi5zY29wZVByb3BzXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgW2NvbnRhaW5lciwgc2V0Q29udGFpbmVyXSA9IFJlYWN0LnVzZVN0YXRlPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IG9uTW91bnRBdXRvRm9jdXMgPSB1c2VDYWxsYmFja1JlZihvbk1vdW50QXV0b0ZvY3VzUHJvcCk7XG4gIGNvbnN0IG9uVW5tb3VudEF1dG9Gb2N1cyA9IHVzZUNhbGxiYWNrUmVmKG9uVW5tb3VudEF1dG9Gb2N1c1Byb3ApO1xuICBjb25zdCBsYXN0Rm9jdXNlZEVsZW1lbnRSZWYgPSBSZWFjdC51c2VSZWY8SFRNTEVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgY29tcG9zZWRSZWZzID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgKG5vZGUpID0+IHNldENvbnRhaW5lcihub2RlKSk7XG5cbiAgY29uc3QgZm9jdXNTY29wZSA9IFJlYWN0LnVzZVJlZih7XG4gICAgcGF1c2VkOiBmYWxzZSxcbiAgICBwYXVzZSgpIHtcbiAgICAgIHRoaXMucGF1c2VkID0gdHJ1ZTtcbiAgICB9LFxuICAgIHJlc3VtZSgpIHtcbiAgICAgIHRoaXMucGF1c2VkID0gZmFsc2U7XG4gICAgfSxcbiAgfSkuY3VycmVudDtcblxuICAvLyBUYWtlcyBjYXJlIG9mIHRyYXBwaW5nIGZvY3VzIGlmIGZvY3VzIGlzIG1vdmVkIG91dHNpZGUgcHJvZ3JhbW1hdGljYWxseSBmb3IgZXhhbXBsZVxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh0cmFwcGVkKSB7XG4gICAgICBmdW5jdGlvbiBoYW5kbGVGb2N1c0luKGV2ZW50OiBGb2N1c0V2ZW50KSB7XG4gICAgICAgIGlmIChmb2N1c1Njb3BlLnBhdXNlZCB8fCAhY29udGFpbmVyKSByZXR1cm47XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG4gICAgICAgIGlmIChjb250YWluZXIuY29udGFpbnModGFyZ2V0KSkge1xuICAgICAgICAgIGxhc3RGb2N1c2VkRWxlbWVudFJlZi5jdXJyZW50ID0gdGFyZ2V0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZvY3VzKGxhc3RGb2N1c2VkRWxlbWVudFJlZi5jdXJyZW50LCB7IHNlbGVjdDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBoYW5kbGVGb2N1c091dChldmVudDogRm9jdXNFdmVudCkge1xuICAgICAgICBpZiAoZm9jdXNTY29wZS5wYXVzZWQgfHwgIWNvbnRhaW5lcikgcmV0dXJuO1xuICAgICAgICBjb25zdCByZWxhdGVkVGFyZ2V0ID0gZXZlbnQucmVsYXRlZFRhcmdldCBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG5cbiAgICAgICAgLy8gQSBgZm9jdXNvdXRgIGV2ZW50IHdpdGggYSBgbnVsbGAgYHJlbGF0ZWRUYXJnZXRgIHdpbGwgaGFwcGVuIGluIGF0IGxlYXN0IHR3byBjYXNlczpcbiAgICAgICAgLy9cbiAgICAgICAgLy8gMS4gV2hlbiB0aGUgdXNlciBzd2l0Y2hlcyBhcHAvdGFicy93aW5kb3dzL3RoZSBicm93c2VyIGl0c2VsZiBsb3NlcyBmb2N1cy5cbiAgICAgICAgLy8gMi4gSW4gR29vZ2xlIENocm9tZSwgd2hlbiB0aGUgZm9jdXNlZCBlbGVtZW50IGlzIHJlbW92ZWQgZnJvbSB0aGUgRE9NLlxuICAgICAgICAvL1xuICAgICAgICAvLyBXZSBsZXQgdGhlIGJyb3dzZXIgZG8gaXRzIHRoaW5nIGhlcmUgYmVjYXVzZTpcbiAgICAgICAgLy9cbiAgICAgICAgLy8gMS4gVGhlIGJyb3dzZXIgYWxyZWFkeSBrZWVwcyBhIG1lbW9yeSBvZiB3aGF0J3MgZm9jdXNlZCBmb3Igd2hlbiB0aGUgcGFnZSBnZXRzIHJlZm9jdXNlZC5cbiAgICAgICAgLy8gMi4gSW4gR29vZ2xlIENocm9tZSwgaWYgd2UgdHJ5IHRvIGZvY3VzIHRoZSBkZWxldGVkIGZvY3VzZWQgZWxlbWVudCAoYXMgcGVyIGJlbG93KSwgaXRcbiAgICAgICAgLy8gICAgdGhyb3dzIHRoZSBDUFUgdG8gMTAwJSwgc28gd2UgYXZvaWQgZG9pbmcgYW55dGhpbmcgZm9yIHRoaXMgcmVhc29uIGhlcmUgdG9vLlxuICAgICAgICBpZiAocmVsYXRlZFRhcmdldCA9PT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgICAgIC8vIElmIHRoZSBmb2N1cyBoYXMgbW92ZWQgdG8gYW4gYWN0dWFsIGxlZ2l0aW1hdGUgZWxlbWVudCAoYHJlbGF0ZWRUYXJnZXQgIT09IG51bGxgKVxuICAgICAgICAvLyB0aGF0IGlzIG91dHNpZGUgdGhlIGNvbnRhaW5lciwgd2UgbW92ZSBmb2N1cyB0byB0aGUgbGFzdCB2YWxpZCBmb2N1c2VkIGVsZW1lbnQgaW5zaWRlLlxuICAgICAgICBpZiAoIWNvbnRhaW5lci5jb250YWlucyhyZWxhdGVkVGFyZ2V0KSkge1xuICAgICAgICAgIGZvY3VzKGxhc3RGb2N1c2VkRWxlbWVudFJlZi5jdXJyZW50LCB7IHNlbGVjdDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBXaGVuIHRoZSBmb2N1c2VkIGVsZW1lbnQgZ2V0cyByZW1vdmVkIGZyb20gdGhlIERPTSwgYnJvd3NlcnMgbW92ZSBmb2N1c1xuICAgICAgLy8gYmFjayB0byB0aGUgZG9jdW1lbnQuYm9keS4gSW4gdGhpcyBjYXNlLCB3ZSBtb3ZlIGZvY3VzIHRvIHRoZSBjb250YWluZXJcbiAgICAgIC8vIHRvIGtlZXAgZm9jdXMgdHJhcHBlZCBjb3JyZWN0bHkuXG4gICAgICBmdW5jdGlvbiBoYW5kbGVNdXRhdGlvbnMobXV0YXRpb25zOiBNdXRhdGlvblJlY29yZFtdKSB7XG4gICAgICAgIGNvbnN0IGZvY3VzZWRFbGVtZW50ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG4gICAgICAgIGlmIChmb2N1c2VkRWxlbWVudCAhPT0gZG9jdW1lbnQuYm9keSkgcmV0dXJuO1xuICAgICAgICBmb3IgKGNvbnN0IG11dGF0aW9uIG9mIG11dGF0aW9ucykge1xuICAgICAgICAgIGlmIChtdXRhdGlvbi5yZW1vdmVkTm9kZXMubGVuZ3RoID4gMCkgZm9jdXMoY29udGFpbmVyKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdmb2N1c2luJywgaGFuZGxlRm9jdXNJbik7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdmb2N1c291dCcsIGhhbmRsZUZvY3VzT3V0KTtcbiAgICAgIGNvbnN0IG11dGF0aW9uT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihoYW5kbGVNdXRhdGlvbnMpO1xuICAgICAgaWYgKGNvbnRhaW5lcikgbXV0YXRpb25PYnNlcnZlci5vYnNlcnZlKGNvbnRhaW5lciwgeyBjaGlsZExpc3Q6IHRydWUsIHN1YnRyZWU6IHRydWUgfSk7XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCBoYW5kbGVGb2N1c0luKTtcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignZm9jdXNvdXQnLCBoYW5kbGVGb2N1c091dCk7XG4gICAgICAgIG11dGF0aW9uT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgfTtcbiAgICB9XG4gIH0sIFt0cmFwcGVkLCBjb250YWluZXIsIGZvY3VzU2NvcGUucGF1c2VkXSk7XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoY29udGFpbmVyKSB7XG4gICAgICBmb2N1c1Njb3Blc1N0YWNrLmFkZChmb2N1c1Njb3BlKTtcbiAgICAgIGNvbnN0IHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgICAgY29uc3QgaGFzRm9jdXNlZENhbmRpZGF0ZSA9IGNvbnRhaW5lci5jb250YWlucyhwcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQpO1xuXG4gICAgICBpZiAoIWhhc0ZvY3VzZWRDYW5kaWRhdGUpIHtcbiAgICAgICAgY29uc3QgbW91bnRFdmVudCA9IG5ldyBDdXN0b21FdmVudChBVVRPRk9DVVNfT05fTU9VTlQsIEVWRU5UX09QVElPTlMpO1xuICAgICAgICBjb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcihBVVRPRk9DVVNfT05fTU9VTlQsIG9uTW91bnRBdXRvRm9jdXMpO1xuICAgICAgICBjb250YWluZXIuZGlzcGF0Y2hFdmVudChtb3VudEV2ZW50KTtcbiAgICAgICAgaWYgKCFtb3VudEV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICBmb2N1c0ZpcnN0KHJlbW92ZUxpbmtzKGdldFRhYmJhYmxlQ2FuZGlkYXRlcyhjb250YWluZXIpKSwgeyBzZWxlY3Q6IHRydWUgfSk7XG4gICAgICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCkge1xuICAgICAgICAgICAgZm9jdXMoY29udGFpbmVyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgY29udGFpbmVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoQVVUT0ZPQ1VTX09OX01PVU5ULCBvbk1vdW50QXV0b0ZvY3VzKTtcblxuICAgICAgICAvLyBXZSBoaXQgYSByZWFjdCBidWcgKGZpeGVkIGluIHYxNykgd2l0aCBmb2N1c2luZyBpbiB1bm1vdW50LlxuICAgICAgICAvLyBXZSBuZWVkIHRvIGRlbGF5IHRoZSBmb2N1cyBhIGxpdHRsZSB0byBnZXQgYXJvdW5kIGl0IGZvciBub3cuXG4gICAgICAgIC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xNzg5NFxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBjb25zdCB1bm1vdW50RXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoQVVUT0ZPQ1VTX09OX1VOTU9VTlQsIEVWRU5UX09QVElPTlMpO1xuICAgICAgICAgIGNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKEFVVE9GT0NVU19PTl9VTk1PVU5ULCBvblVubW91bnRBdXRvRm9jdXMpO1xuICAgICAgICAgIGNvbnRhaW5lci5kaXNwYXRjaEV2ZW50KHVubW91bnRFdmVudCk7XG4gICAgICAgICAgaWYgKCF1bm1vdW50RXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAgICAgZm9jdXMocHJldmlvdXNseUZvY3VzZWRFbGVtZW50ID8/IGRvY3VtZW50LmJvZHksIHsgc2VsZWN0OiB0cnVlIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyB3ZSBuZWVkIHRvIHJlbW92ZSB0aGUgbGlzdGVuZXIgYWZ0ZXIgd2UgYGRpc3BhdGNoRXZlbnRgXG4gICAgICAgICAgY29udGFpbmVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoQVVUT0ZPQ1VTX09OX1VOTU9VTlQsIG9uVW5tb3VudEF1dG9Gb2N1cyk7XG5cbiAgICAgICAgICBmb2N1c1Njb3Blc1N0YWNrLnJlbW92ZShmb2N1c1Njb3BlKTtcbiAgICAgICAgfSwgMCk7XG4gICAgICB9O1xuICAgIH1cbiAgfSwgW2NvbnRhaW5lciwgb25Nb3VudEF1dG9Gb2N1cywgb25Vbm1vdW50QXV0b0ZvY3VzLCBmb2N1c1Njb3BlXSk7XG5cbiAgLy8gVGFrZXMgY2FyZSBvZiBsb29waW5nIGZvY3VzICh3aGVuIHRhYmJpbmcgd2hpbHN0IGF0IHRoZSBlZGdlcylcbiAgY29uc3QgaGFuZGxlS2V5RG93biA9IFJlYWN0LnVzZUNhbGxiYWNrKFxuICAgIChldmVudDogUmVhY3QuS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgaWYgKCFsb29wICYmICF0cmFwcGVkKSByZXR1cm47XG4gICAgICBpZiAoZm9jdXNTY29wZS5wYXVzZWQpIHJldHVybjtcblxuICAgICAgY29uc3QgaXNUYWJLZXkgPSBldmVudC5rZXkgPT09ICdUYWInICYmICFldmVudC5hbHRLZXkgJiYgIWV2ZW50LmN0cmxLZXkgJiYgIWV2ZW50Lm1ldGFLZXk7XG4gICAgICBjb25zdCBmb2N1c2VkRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuXG4gICAgICBpZiAoaXNUYWJLZXkgJiYgZm9jdXNlZEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gZXZlbnQuY3VycmVudFRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgY29uc3QgW2ZpcnN0LCBsYXN0XSA9IGdldFRhYmJhYmxlRWRnZXMoY29udGFpbmVyKTtcbiAgICAgICAgY29uc3QgaGFzVGFiYmFibGVFbGVtZW50c0luc2lkZSA9IGZpcnN0ICYmIGxhc3Q7XG5cbiAgICAgICAgLy8gd2UgY2FuIG9ubHkgd3JhcCBmb2N1cyBpZiB3ZSBoYXZlIHRhYmJhYmxlIGVkZ2VzXG4gICAgICAgIGlmICghaGFzVGFiYmFibGVFbGVtZW50c0luc2lkZSkge1xuICAgICAgICAgIGlmIChmb2N1c2VkRWxlbWVudCA9PT0gY29udGFpbmVyKSBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICghZXZlbnQuc2hpZnRLZXkgJiYgZm9jdXNlZEVsZW1lbnQgPT09IGxhc3QpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAobG9vcCkgZm9jdXMoZmlyc3QsIHsgc2VsZWN0OiB0cnVlIH0pO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQuc2hpZnRLZXkgJiYgZm9jdXNlZEVsZW1lbnQgPT09IGZpcnN0KSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKGxvb3ApIGZvY3VzKGxhc3QsIHsgc2VsZWN0OiB0cnVlIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgW2xvb3AsIHRyYXBwZWQsIGZvY3VzU2NvcGUucGF1c2VkXVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPFByaW1pdGl2ZS5kaXYgdGFiSW5kZXg9ey0xfSB7Li4uc2NvcGVQcm9wc30gcmVmPXtjb21wb3NlZFJlZnN9IG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn0gLz5cbiAgKTtcbn0pO1xuXG5Gb2N1c1Njb3BlLmRpc3BsYXlOYW1lID0gRk9DVVNfU0NPUEVfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVXRpbHNcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyoqXG4gKiBBdHRlbXB0cyBmb2N1c2luZyB0aGUgZmlyc3QgZWxlbWVudCBpbiBhIGxpc3Qgb2YgY2FuZGlkYXRlcy5cbiAqIFN0b3BzIHdoZW4gZm9jdXMgaGFzIGFjdHVhbGx5IG1vdmVkLlxuICovXG5mdW5jdGlvbiBmb2N1c0ZpcnN0KGNhbmRpZGF0ZXM6IEhUTUxFbGVtZW50W10sIHsgc2VsZWN0ID0gZmFsc2UgfSA9IHt9KSB7XG4gIGNvbnN0IHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gIGZvciAoY29uc3QgY2FuZGlkYXRlIG9mIGNhbmRpZGF0ZXMpIHtcbiAgICBmb2N1cyhjYW5kaWRhdGUsIHsgc2VsZWN0IH0pO1xuICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ICE9PSBwcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQpIHJldHVybjtcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGZpcnN0IGFuZCBsYXN0IHRhYmJhYmxlIGVsZW1lbnRzIGluc2lkZSBhIGNvbnRhaW5lci5cbiAqL1xuZnVuY3Rpb24gZ2V0VGFiYmFibGVFZGdlcyhjb250YWluZXI6IEhUTUxFbGVtZW50KSB7XG4gIGNvbnN0IGNhbmRpZGF0ZXMgPSBnZXRUYWJiYWJsZUNhbmRpZGF0ZXMoY29udGFpbmVyKTtcbiAgY29uc3QgZmlyc3QgPSBmaW5kVmlzaWJsZShjYW5kaWRhdGVzLCBjb250YWluZXIpO1xuICBjb25zdCBsYXN0ID0gZmluZFZpc2libGUoY2FuZGlkYXRlcy5yZXZlcnNlKCksIGNvbnRhaW5lcik7XG4gIHJldHVybiBbZmlyc3QsIGxhc3RdIGFzIGNvbnN0O1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBsaXN0IG9mIHBvdGVudGlhbCB0YWJiYWJsZSBjYW5kaWRhdGVzLlxuICpcbiAqIE5PVEU6IFRoaXMgaXMgb25seSBhIGNsb3NlIGFwcHJveGltYXRpb24uIEZvciBleGFtcGxlIGl0IGRvZXNuJ3QgdGFrZSBpbnRvIGFjY291bnQgY2FzZXMgbGlrZSB3aGVuXG4gKiBlbGVtZW50cyBhcmUgbm90IHZpc2libGUuIFRoaXMgY2Fubm90IGJlIHdvcmtlZCBvdXQgZWFzaWx5IGJ5IGp1c3QgcmVhZGluZyBhIHByb3BlcnR5LCBidXQgcmF0aGVyXG4gKiBuZWNlc3NpdGF0ZSBydW50aW1lIGtub3dsZWRnZSAoY29tcHV0ZWQgc3R5bGVzLCBldGMpLiBXZSBkZWFsIHdpdGggdGhlc2UgY2FzZXMgc2VwYXJhdGVseS5cbiAqXG4gKiBTZWU6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9UcmVlV2Fsa2VyXG4gKiBDcmVkaXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9kaXNjb3JkL2ZvY3VzLWxheWVycy9ibG9iL21hc3Rlci9zcmMvdXRpbC93cmFwRm9jdXMudHN4I0wxXG4gKi9cbmZ1bmN0aW9uIGdldFRhYmJhYmxlQ2FuZGlkYXRlcyhjb250YWluZXI6IEhUTUxFbGVtZW50KSB7XG4gIGNvbnN0IG5vZGVzOiBIVE1MRWxlbWVudFtdID0gW107XG4gIGNvbnN0IHdhbGtlciA9IGRvY3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoY29udGFpbmVyLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCwge1xuICAgIGFjY2VwdE5vZGU6IChub2RlOiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IGlzSGlkZGVuSW5wdXQgPSBub2RlLnRhZ05hbWUgPT09ICdJTlBVVCcgJiYgbm9kZS50eXBlID09PSAnaGlkZGVuJztcbiAgICAgIGlmIChub2RlLmRpc2FibGVkIHx8IG5vZGUuaGlkZGVuIHx8IGlzSGlkZGVuSW5wdXQpIHJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9TS0lQO1xuICAgICAgLy8gYC50YWJJbmRleGAgaXMgbm90IHRoZSBzYW1lIGFzIHRoZSBgdGFiaW5kZXhgIGF0dHJpYnV0ZS4gSXQgd29ya3Mgb24gdGhlXG4gICAgICAvLyBydW50aW1lJ3MgdW5kZXJzdGFuZGluZyBvZiB0YWJiYWJpbGl0eSwgc28gdGhpcyBhdXRvbWF0aWNhbGx5IGFjY291bnRzXG4gICAgICAvLyBmb3IgYW55IGtpbmQgb2YgZWxlbWVudCB0aGF0IGNvdWxkIGJlIHRhYmJlZCB0by5cbiAgICAgIHJldHVybiBub2RlLnRhYkluZGV4ID49IDAgPyBOb2RlRmlsdGVyLkZJTFRFUl9BQ0NFUFQgOiBOb2RlRmlsdGVyLkZJTFRFUl9TS0lQO1xuICAgIH0sXG4gIH0pO1xuICB3aGlsZSAod2Fsa2VyLm5leHROb2RlKCkpIG5vZGVzLnB1c2god2Fsa2VyLmN1cnJlbnROb2RlIGFzIEhUTUxFbGVtZW50KTtcbiAgLy8gd2UgZG8gbm90IHRha2UgaW50byBhY2NvdW50IHRoZSBvcmRlciBvZiBub2RlcyB3aXRoIHBvc2l0aXZlIGB0YWJJbmRleGAgYXMgaXRcbiAgLy8gaGluZGVycyBhY2Nlc3NpYmlsaXR5IHRvIGhhdmUgdGFiIG9yZGVyIGRpZmZlcmVudCBmcm9tIHZpc3VhbCBvcmRlci5cbiAgcmV0dXJuIG5vZGVzO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGZpcnN0IHZpc2libGUgZWxlbWVudCBpbiBhIGxpc3QuXG4gKiBOT1RFOiBPbmx5IGNoZWNrcyB2aXNpYmlsaXR5IHVwIHRvIHRoZSBgY29udGFpbmVyYC5cbiAqL1xuZnVuY3Rpb24gZmluZFZpc2libGUoZWxlbWVudHM6IEhUTUxFbGVtZW50W10sIGNvbnRhaW5lcjogSFRNTEVsZW1lbnQpIHtcbiAgZm9yIChjb25zdCBlbGVtZW50IG9mIGVsZW1lbnRzKSB7XG4gICAgLy8gd2Ugc3RvcCBjaGVja2luZyBpZiBpdCdzIGhpZGRlbiBhdCB0aGUgYGNvbnRhaW5lcmAgbGV2ZWwgKGV4Y2x1ZGluZylcbiAgICBpZiAoIWlzSGlkZGVuKGVsZW1lbnQsIHsgdXBUbzogY29udGFpbmVyIH0pKSByZXR1cm4gZWxlbWVudDtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc0hpZGRlbihub2RlOiBIVE1MRWxlbWVudCwgeyB1cFRvIH06IHsgdXBUbz86IEhUTUxFbGVtZW50IH0pIHtcbiAgaWYgKGdldENvbXB1dGVkU3R5bGUobm9kZSkudmlzaWJpbGl0eSA9PT0gJ2hpZGRlbicpIHJldHVybiB0cnVlO1xuICB3aGlsZSAobm9kZSkge1xuICAgIC8vIHdlIHN0b3AgYXQgYHVwVG9gIChleGNsdWRpbmcgaXQpXG4gICAgaWYgKHVwVG8gIT09IHVuZGVmaW5lZCAmJiBub2RlID09PSB1cFRvKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKGdldENvbXB1dGVkU3R5bGUobm9kZSkuZGlzcGxheSA9PT0gJ25vbmUnKSByZXR1cm4gdHJ1ZTtcbiAgICBub2RlID0gbm9kZS5wYXJlbnRFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gaXNTZWxlY3RhYmxlSW5wdXQoZWxlbWVudDogYW55KTogZWxlbWVudCBpcyBGb2N1c2FibGVUYXJnZXQgJiB7IHNlbGVjdDogKCkgPT4gdm9pZCB9IHtcbiAgcmV0dXJuIGVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50ICYmICdzZWxlY3QnIGluIGVsZW1lbnQ7XG59XG5cbmZ1bmN0aW9uIGZvY3VzKGVsZW1lbnQ/OiBGb2N1c2FibGVUYXJnZXQgfCBudWxsLCB7IHNlbGVjdCA9IGZhbHNlIH0gPSB7fSkge1xuICAvLyBvbmx5IGZvY3VzIGlmIHRoYXQgZWxlbWVudCBpcyBmb2N1c2FibGVcbiAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC5mb2N1cykge1xuICAgIGNvbnN0IHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgLy8gTk9URTogd2UgcHJldmVudCBzY3JvbGxpbmcgb24gZm9jdXMsIHRvIG1pbmltaXplIGphcnJpbmcgdHJhbnNpdGlvbnMgZm9yIHVzZXJzXG4gICAgZWxlbWVudC5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgLy8gb25seSBzZWxlY3QgaWYgaXRzIG5vdCB0aGUgc2FtZSBlbGVtZW50LCBpdCBzdXBwb3J0cyBzZWxlY3Rpb24gYW5kIHdlIG5lZWQgdG8gc2VsZWN0XG4gICAgaWYgKGVsZW1lbnQgIT09IHByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCAmJiBpc1NlbGVjdGFibGVJbnB1dChlbGVtZW50KSAmJiBzZWxlY3QpXG4gICAgICBlbGVtZW50LnNlbGVjdCgpO1xuICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEZvY3VzU2NvcGUgc3RhY2tcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxudHlwZSBGb2N1c1Njb3BlQVBJID0geyBwYXVzZWQ6IGJvb2xlYW47IHBhdXNlKCk6IHZvaWQ7IHJlc3VtZSgpOiB2b2lkIH07XG5jb25zdCBmb2N1c1Njb3Blc1N0YWNrID0gY3JlYXRlRm9jdXNTY29wZXNTdGFjaygpO1xuXG5mdW5jdGlvbiBjcmVhdGVGb2N1c1Njb3Blc1N0YWNrKCkge1xuICAvKiogQSBzdGFjayBvZiBmb2N1cyBzY29wZXMsIHdpdGggdGhlIGFjdGl2ZSBvbmUgYXQgdGhlIHRvcCAqL1xuICBsZXQgc3RhY2s6IEZvY3VzU2NvcGVBUElbXSA9IFtdO1xuXG4gIHJldHVybiB7XG4gICAgYWRkKGZvY3VzU2NvcGU6IEZvY3VzU2NvcGVBUEkpIHtcbiAgICAgIC8vIHBhdXNlIHRoZSBjdXJyZW50bHkgYWN0aXZlIGZvY3VzIHNjb3BlIChhdCB0aGUgdG9wIG9mIHRoZSBzdGFjaylcbiAgICAgIGNvbnN0IGFjdGl2ZUZvY3VzU2NvcGUgPSBzdGFja1swXTtcbiAgICAgIGlmIChmb2N1c1Njb3BlICE9PSBhY3RpdmVGb2N1c1Njb3BlKSB7XG4gICAgICAgIGFjdGl2ZUZvY3VzU2NvcGU/LnBhdXNlKCk7XG4gICAgICB9XG4gICAgICAvLyByZW1vdmUgaW4gY2FzZSBpdCBhbHJlYWR5IGV4aXN0cyAoYmVjYXVzZSB3ZSdsbCByZS1hZGQgaXQgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2spXG4gICAgICBzdGFjayA9IGFycmF5UmVtb3ZlKHN0YWNrLCBmb2N1c1Njb3BlKTtcbiAgICAgIHN0YWNrLnVuc2hpZnQoZm9jdXNTY29wZSk7XG4gICAgfSxcblxuICAgIHJlbW92ZShmb2N1c1Njb3BlOiBGb2N1c1Njb3BlQVBJKSB7XG4gICAgICBzdGFjayA9IGFycmF5UmVtb3ZlKHN0YWNrLCBmb2N1c1Njb3BlKTtcbiAgICAgIHN0YWNrWzBdPy5yZXN1bWUoKTtcbiAgICB9LFxuICB9O1xufVxuXG5mdW5jdGlvbiBhcnJheVJlbW92ZTxUPihhcnJheTogVFtdLCBpdGVtOiBUKSB7XG4gIGNvbnN0IHVwZGF0ZWRBcnJheSA9IFsuLi5hcnJheV07XG4gIGNvbnN0IGluZGV4ID0gdXBkYXRlZEFycmF5LmluZGV4T2YoaXRlbSk7XG4gIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICB1cGRhdGVkQXJyYXkuc3BsaWNlKGluZGV4LCAxKTtcbiAgfVxuICByZXR1cm4gdXBkYXRlZEFycmF5O1xufVxuXG5mdW5jdGlvbiByZW1vdmVMaW5rcyhpdGVtczogSFRNTEVsZW1lbnRbXSkge1xuICByZXR1cm4gaXRlbXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLnRhZ05hbWUgIT09ICdBJyk7XG59XG5cbmNvbnN0IFJvb3QgPSBGb2N1c1Njb3BlO1xuXG5leHBvcnQge1xuICBGb2N1c1Njb3BlLFxuICAvL1xuICBSb290LFxufTtcbmV4cG9ydCB0eXBlIHsgRm9jdXNTY29wZVByb3BzIH07XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VDb21wb3NlZFJlZnMiLCJQcmltaXRpdmUiLCJ1c2VDYWxsYmFja1JlZiIsImpzeCIsIkFVVE9GT0NVU19PTl9NT1VOVCIsIkFVVE9GT0NVU19PTl9VTk1PVU5UIiwiRVZFTlRfT1BUSU9OUyIsImJ1YmJsZXMiLCJjYW5jZWxhYmxlIiwiRk9DVVNfU0NPUEVfTkFNRSIsIkZvY3VzU2NvcGUiLCJmb3J3YXJkUmVmIiwicHJvcHMiLCJmb3J3YXJkZWRSZWYiLCJsb29wIiwidHJhcHBlZCIsIm9uTW91bnRBdXRvRm9jdXMiLCJvbk1vdW50QXV0b0ZvY3VzUHJvcCIsIm9uVW5tb3VudEF1dG9Gb2N1cyIsIm9uVW5tb3VudEF1dG9Gb2N1c1Byb3AiLCJzY29wZVByb3BzIiwiY29udGFpbmVyIiwic2V0Q29udGFpbmVyIiwidXNlU3RhdGUiLCJsYXN0Rm9jdXNlZEVsZW1lbnRSZWYiLCJ1c2VSZWYiLCJjb21wb3NlZFJlZnMiLCJub2RlIiwiZm9jdXNTY29wZSIsInBhdXNlZCIsInBhdXNlIiwicmVzdW1lIiwiY3VycmVudCIsInVzZUVmZmVjdCIsImhhbmRsZUZvY3VzSW4iLCJldmVudCIsInRhcmdldCIsImNvbnRhaW5zIiwiZm9jdXMiLCJzZWxlY3QiLCJoYW5kbGVGb2N1c091dCIsInJlbGF0ZWRUYXJnZXQiLCJoYW5kbGVNdXRhdGlvbnMiLCJtdXRhdGlvbnMiLCJmb2N1c2VkRWxlbWVudCIsImRvY3VtZW50IiwiYWN0aXZlRWxlbWVudCIsImJvZHkiLCJtdXRhdGlvbiIsInJlbW92ZWROb2RlcyIsImxlbmd0aCIsImFkZEV2ZW50TGlzdGVuZXIiLCJtdXRhdGlvbk9ic2VydmVyIiwiTXV0YXRpb25PYnNlcnZlciIsIm9ic2VydmUiLCJjaGlsZExpc3QiLCJzdWJ0cmVlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImRpc2Nvbm5lY3QiLCJmb2N1c1Njb3Blc1N0YWNrIiwiYWRkIiwicHJldmlvdXNseUZvY3VzZWRFbGVtZW50IiwiaGFzRm9jdXNlZENhbmRpZGF0ZSIsIm1vdW50RXZlbnQiLCJDdXN0b21FdmVudCIsImRpc3BhdGNoRXZlbnQiLCJkZWZhdWx0UHJldmVudGVkIiwiZm9jdXNGaXJzdCIsInJlbW92ZUxpbmtzIiwiZ2V0VGFiYmFibGVDYW5kaWRhdGVzIiwic2V0VGltZW91dCIsInVubW91bnRFdmVudCIsInJlbW92ZSIsImhhbmRsZUtleURvd24iLCJ1c2VDYWxsYmFjayIsImlzVGFiS2V5Iiwia2V5IiwiYWx0S2V5IiwiY3RybEtleSIsIm1ldGFLZXkiLCJjdXJyZW50VGFyZ2V0IiwiZmlyc3QiLCJsYXN0IiwiZ2V0VGFiYmFibGVFZGdlcyIsImhhc1RhYmJhYmxlRWxlbWVudHNJbnNpZGUiLCJwcmV2ZW50RGVmYXVsdCIsInNoaWZ0S2V5IiwiZGl2IiwidGFiSW5kZXgiLCJyZWYiLCJvbktleURvd24iLCJkaXNwbGF5TmFtZSIsImNhbmRpZGF0ZXMiLCJjYW5kaWRhdGUiLCJmaW5kVmlzaWJsZSIsInJldmVyc2UiLCJub2RlcyIsIndhbGtlciIsImNyZWF0ZVRyZWVXYWxrZXIiLCJOb2RlRmlsdGVyIiwiU0hPV19FTEVNRU5UIiwiYWNjZXB0Tm9kZSIsImlzSGlkZGVuSW5wdXQiLCJ0YWdOYW1lIiwidHlwZSIsImRpc2FibGVkIiwiaGlkZGVuIiwiRklMVEVSX1NLSVAiLCJGSUxURVJfQUNDRVBUIiwibmV4dE5vZGUiLCJwdXNoIiwiY3VycmVudE5vZGUiLCJlbGVtZW50cyIsImVsZW1lbnQiLCJpc0hpZGRlbiIsInVwVG8iLCJnZXRDb21wdXRlZFN0eWxlIiwidmlzaWJpbGl0eSIsImRpc3BsYXkiLCJwYXJlbnRFbGVtZW50IiwiaXNTZWxlY3RhYmxlSW5wdXQiLCJIVE1MSW5wdXRFbGVtZW50IiwicHJldmVudFNjcm9sbCIsImNyZWF0ZUZvY3VzU2NvcGVzU3RhY2siLCJzdGFjayIsImFjdGl2ZUZvY3VzU2NvcGUiLCJhcnJheVJlbW92ZSIsInVuc2hpZnQiLCJhcnJheSIsIml0ZW0iLCJ1cGRhdGVkQXJyYXkiLCJpbmRleCIsImluZGV4T2YiLCJzcGxpY2UiLCJpdGVtcyIsImZpbHRlciIsIlJvb3QiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/react-focus-scope/dist/index.mjs\n"); /***/ }), /***/ "(ssr)/./node_modules/@radix-ui/react-id/dist/index.mjs": /*!********************************************************!*\ !*** ./node_modules/@radix-ui/react-id/dist/index.mjs ***! \********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("var react__WEBPACK_IMPORTED_MODULE_0___namespace_cache;\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useId: () => (/* binding */ useId)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var _radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @radix-ui/react-use-layout-effect */ \"(ssr)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\");\n// packages/react/id/src/id.tsx\n\n\nvar useReactId = /*#__PURE__*/ (react__WEBPACK_IMPORTED_MODULE_0___namespace_cache || (react__WEBPACK_IMPORTED_MODULE_0___namespace_cache = __webpack_require__.t(react__WEBPACK_IMPORTED_MODULE_0__, 2)))[\"useId\".toString()] || (() => void 0);\nvar count = 0;\nfunction useId(deterministicId) {\n const [id, setId] = react__WEBPACK_IMPORTED_MODULE_0__.useState(useReactId());\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect)(() => {\n if (!deterministicId) setId((reactId) => reactId ?? String(count++));\n }, [deterministicId]);\n return deterministicId || (id ? `radix-${id}` : \"\");\n}\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWlkL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTtBQUMrQjtBQUNxQztBQUNwRSxpQkFBaUIseUxBQUs7QUFDdEI7QUFDQTtBQUNBLHNCQUFzQiwyQ0FBYztBQUNwQyxFQUFFLGtGQUFlO0FBQ2pCO0FBQ0EsR0FBRztBQUNILDJDQUEyQyxHQUFHO0FBQzlDO0FBR0U7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL21hbWFkLWFwcC8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtaWQvZGlzdC9pbmRleC5tanM/ZjVjZCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBwYWNrYWdlcy9yZWFjdC9pZC9zcmMvaWQudHN4XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZUxheW91dEVmZmVjdCB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtdXNlLWxheW91dC1lZmZlY3RcIjtcbnZhciB1c2VSZWFjdElkID0gUmVhY3RbXCJ1c2VJZFwiLnRvU3RyaW5nKCldIHx8ICgoKSA9PiB2b2lkIDApO1xudmFyIGNvdW50ID0gMDtcbmZ1bmN0aW9uIHVzZUlkKGRldGVybWluaXN0aWNJZCkge1xuICBjb25zdCBbaWQsIHNldElkXSA9IFJlYWN0LnVzZVN0YXRlKHVzZVJlYWN0SWQoKSk7XG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFkZXRlcm1pbmlzdGljSWQpIHNldElkKChyZWFjdElkKSA9PiByZWFjdElkID8/IFN0cmluZyhjb3VudCsrKSk7XG4gIH0sIFtkZXRlcm1pbmlzdGljSWRdKTtcbiAgcmV0dXJuIGRldGVybWluaXN0aWNJZCB8fCAoaWQgPyBgcmFkaXgtJHtpZH1gIDogXCJcIik7XG59XG5leHBvcnQge1xuICB1c2VJZFxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/react-id/dist/index.mjs\n"); /***/ }), /***/ "(ssr)/./node_modules/@radix-ui/react-label/dist/index.mjs": /*!***********************************************************!*\ !*** ./node_modules/@radix-ui/react-label/dist/index.mjs ***! \***********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Label: () => (/* binding */ Label),\n/* harmony export */ Root: () => (/* binding */ Root)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(ssr)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Label,Root auto */ // packages/react/label/src/Label.tsx\n\n\n\nvar NAME = \"Label\";\nvar Label = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_2__.Primitive.label, {\n ...props,\n ref: forwardedRef,\n onMouseDown: (event)=>{\n const target = event.target;\n if (target.closest(\"button, input, select, textarea\")) return;\n props.onMouseDown?.(event);\n if (!event.defaultPrevented && event.detail > 1) event.preventDefault();\n }\n });\n});\nLabel.displayName = NAME;\nvar Root = Label;\n //# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LWxhYmVsL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUF1QjtBQUNHO0FBY3RCO0FBUkosSUFBTUcsT0FBTztBQU1iLElBQU1DLHNCQUFjSiw2Q0FBQSxDQUFxQyxDQUFDTSxPQUFPQztJQUMvRCxPQUNFLGdCQUFBTCxzREFBQUEsQ0FBQ0QsZ0VBQVNBLENBQUNPLEtBQUEsRUFBVjtRQUNFLEdBQUdGLEtBQUE7UUFDSkcsS0FBS0Y7UUFDTEcsYUFBYSxDQUFDQztZQUVaLE1BQU1DLFNBQVNELE1BQU1DLE1BQUE7WUFDckIsSUFBSUEsT0FBT0MsT0FBQSxDQUFRLG9DQUFvQztZQUV2RFAsTUFBTUksV0FBQSxHQUFjQztZQUVwQixJQUFJLENBQUNBLE1BQU1HLGdCQUFBLElBQW9CSCxNQUFNSSxNQUFBLEdBQVMsR0FBR0osTUFBTUssY0FBQTtRQUN6RDtJQUFBO0FBR047QUFFQVosTUFBTWEsV0FBQSxHQUFjZDtBQUlwQixJQUFNZSxPQUFPZCIsInNvdXJjZXMiOlsid2VicGFjazovL21hbWFkLWFwcC8uLi9zcmMvTGFiZWwudHN4PzhiYWEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgUHJpbWl0aXZlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXByaW1pdGl2ZSc7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIExhYmVsXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IE5BTUUgPSAnTGFiZWwnO1xuXG50eXBlIExhYmVsRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5sYWJlbD47XG50eXBlIFByaW1pdGl2ZUxhYmVsUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFByaW1pdGl2ZS5sYWJlbD47XG5pbnRlcmZhY2UgTGFiZWxQcm9wcyBleHRlbmRzIFByaW1pdGl2ZUxhYmVsUHJvcHMge31cblxuY29uc3QgTGFiZWwgPSBSZWFjdC5mb3J3YXJkUmVmPExhYmVsRWxlbWVudCwgTGFiZWxQcm9wcz4oKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgcmV0dXJuIChcbiAgICA8UHJpbWl0aXZlLmxhYmVsXG4gICAgICB7Li4ucHJvcHN9XG4gICAgICByZWY9e2ZvcndhcmRlZFJlZn1cbiAgICAgIG9uTW91c2VEb3duPXsoZXZlbnQpID0+IHtcbiAgICAgICAgLy8gb25seSBwcmV2ZW50IHRleHQgc2VsZWN0aW9uIGlmIGNsaWNraW5nIGluc2lkZSB0aGUgbGFiZWwgaXRzZWxmXG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgaWYgKHRhcmdldC5jbG9zZXN0KCdidXR0b24sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhJykpIHJldHVybjtcblxuICAgICAgICBwcm9wcy5vbk1vdXNlRG93bj8uKGV2ZW50KTtcbiAgICAgICAgLy8gcHJldmVudCB0ZXh0IHNlbGVjdGlvbiB3aGVuIGRvdWJsZSBjbGlja2luZyBsYWJlbFxuICAgICAgICBpZiAoIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQgJiYgZXZlbnQuZGV0YWlsID4gMSkgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH19XG4gICAgLz5cbiAgKTtcbn0pO1xuXG5MYWJlbC5kaXNwbGF5TmFtZSA9IE5BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgUm9vdCA9IExhYmVsO1xuXG5leHBvcnQge1xuICBMYWJlbCxcbiAgLy9cbiAgUm9vdCxcbn07XG5leHBvcnQgdHlwZSB7IExhYmVsUHJvcHMgfTtcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIlByaW1pdGl2ZSIsImpzeCIsIk5BTUUiLCJMYWJlbCIsImZvcndhcmRSZWYiLCJwcm9wcyIsImZvcndhcmRlZFJlZiIsImxhYmVsIiwicmVmIiwib25Nb3VzZURvd24iLCJldmVudCIsInRhcmdldCIsImNsb3Nlc3QiLCJkZWZhdWx0UHJldmVudGVkIiwiZGV0YWlsIiwicHJldmVudERlZmF1bHQiLCJkaXNwbGF5TmFtZSIsIlJvb3QiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/react-label/dist/index.mjs\n"); /***/ }), /***/ "(ssr)/./node_modules/@radix-ui/react-popper/dist/index.mjs": /*!************************************************************!*\ !*** ./node_modules/@radix-ui/react-popper/dist/index.mjs ***! \************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ALIGN_OPTIONS: () => (/* binding */ ALIGN_OPTIONS),\n/* harmony export */ Anchor: () => (/* binding */ Anchor),\n/* harmony export */ Arrow: () => (/* binding */ Arrow),\n/* harmony export */ Content: () => (/* binding */ Content),\n/* harmony export */ Popper: () => (/* binding */ Popper),\n/* harmony export */ PopperAnchor: () => (/* binding */ PopperAnchor),\n/* harmony export */ PopperArrow: () => (/* binding */ PopperArrow),\n/* harmony export */ PopperContent: () => (/* binding */ PopperContent),\n/* harmony export */ Root: () => (/* binding */ Root2),\n/* harmony export */ SIDE_OPTIONS: () => (/* binding */ SIDE_OPTIONS),\n/* harmony export */ createPopperScope: () => (/* binding */ createPopperScope)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var _floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @floating-ui/react-dom */ \"(ssr)/./node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs\");\n/* harmony import */ var _floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @floating-ui/react-dom */ \"(ssr)/./node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs\");\n/* harmony import */ var _radix_ui_react_arrow__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @radix-ui/react-arrow */ \"(ssr)/./node_modules/@radix-ui/react-arrow/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(ssr)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-context */ \"(ssr)/./node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(ssr)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(ssr)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @radix-ui/react-use-layout-effect */ \"(ssr)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_size__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-use-size */ \"(ssr)/./node_modules/@radix-ui/react-use-size/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ ALIGN_OPTIONS,Anchor,Arrow,Content,Popper,PopperAnchor,PopperArrow,PopperContent,Root,SIDE_OPTIONS,createPopperScope auto */ // packages/react/popper/src/Popper.tsx\n\n\n\n\n\n\n\n\n\n\nvar SIDE_OPTIONS = [\n \"top\",\n \"right\",\n \"bottom\",\n \"left\"\n];\nvar ALIGN_OPTIONS = [\n \"start\",\n \"center\",\n \"end\"\n];\nvar POPPER_NAME = \"Popper\";\nvar [createPopperContext, createPopperScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__.createContextScope)(POPPER_NAME);\nvar [PopperProvider, usePopperContext] = createPopperContext(POPPER_NAME);\nvar Popper = (props)=>{\n const { __scopePopper, children } = props;\n const [anchor, setAnchor] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(PopperProvider, {\n scope: __scopePopper,\n anchor,\n onAnchorChange: setAnchor,\n children\n });\n};\nPopper.displayName = POPPER_NAME;\nvar ANCHOR_NAME = \"PopperAnchor\";\nvar PopperAnchor = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { __scopePopper, virtualRef, ...anchorProps } = props;\n const context = usePopperContext(ANCHOR_NAME, __scopePopper);\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, ref);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(()=>{\n context.onAnchorChange(virtualRef?.current || ref.current);\n });\n return virtualRef ? null : /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.Primitive.div, {\n ...anchorProps,\n ref: composedRefs\n });\n});\nPopperAnchor.displayName = ANCHOR_NAME;\nvar CONTENT_NAME = \"PopperContent\";\nvar [PopperContentProvider, useContentContext] = createPopperContext(CONTENT_NAME);\nvar PopperContent = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { __scopePopper, side = \"bottom\", sideOffset = 0, align = \"center\", alignOffset = 0, arrowPadding = 0, avoidCollisions = true, collisionBoundary = [], collisionPadding: collisionPaddingProp = 0, sticky = \"partial\", hideWhenDetached = false, updatePositionStrategy = \"optimized\", onPlaced, ...contentProps } = props;\n const context = usePopperContext(CONTENT_NAME, __scopePopper);\n const [content, setContent] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_3__.useComposedRefs)(forwardedRef, (node)=>setContent(node));\n const [arrow, setArrow] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const arrowSize = (0,_radix_ui_react_use_size__WEBPACK_IMPORTED_MODULE_5__.useSize)(arrow);\n const arrowWidth = arrowSize?.width ?? 0;\n const arrowHeight = arrowSize?.height ?? 0;\n const desiredPlacement = side + (align !== \"center\" ? \"-\" + align : \"\");\n const collisionPadding = typeof collisionPaddingProp === \"number\" ? collisionPaddingProp : {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...collisionPaddingProp\n };\n const boundary = Array.isArray(collisionBoundary) ? collisionBoundary : [\n collisionBoundary\n ];\n const hasExplicitBoundaries = boundary.length > 0;\n const detectOverflowOptions = {\n padding: collisionPadding,\n boundary: boundary.filter(isNotNull),\n // with `strategy: 'fixed'`, this is the only way to get it to respect boundaries\n altBoundary: hasExplicitBoundaries\n };\n const { refs, floatingStyles, placement, isPositioned, middlewareData } = (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.useFloating)({\n // default to `fixed` strategy so users don't have to pick and we also avoid focus scroll issues\n strategy: \"fixed\",\n placement: desiredPlacement,\n whileElementsMounted: (...args)=>{\n const cleanup = (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_7__.autoUpdate)(...args, {\n animationFrame: updatePositionStrategy === \"always\"\n });\n return cleanup;\n },\n elements: {\n reference: context.anchor\n },\n middleware: [\n (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.offset)({\n mainAxis: sideOffset + arrowHeight,\n alignmentAxis: alignOffset\n }),\n avoidCollisions && (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.shift)({\n mainAxis: true,\n crossAxis: false,\n limiter: sticky === \"partial\" ? (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.limitShift)() : void 0,\n ...detectOverflowOptions\n }),\n avoidCollisions && (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.flip)({\n ...detectOverflowOptions\n }),\n (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.size)({\n ...detectOverflowOptions,\n apply: ({ elements, rects, availableWidth, availableHeight })=>{\n const { width: anchorWidth, height: anchorHeight } = rects.reference;\n const contentStyle = elements.floating.style;\n contentStyle.setProperty(\"--radix-popper-available-width\", `${availableWidth}px`);\n contentStyle.setProperty(\"--radix-popper-available-height\", `${availableHeight}px`);\n contentStyle.setProperty(\"--radix-popper-anchor-width\", `${anchorWidth}px`);\n contentStyle.setProperty(\"--radix-popper-anchor-height\", `${anchorHeight}px`);\n }\n }),\n arrow && (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.arrow)({\n element: arrow,\n padding: arrowPadding\n }),\n transformOrigin({\n arrowWidth,\n arrowHeight\n }),\n hideWhenDetached && (0,_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_6__.hide)({\n strategy: \"referenceHidden\",\n ...detectOverflowOptions\n })\n ]\n });\n const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);\n const handlePlaced = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_8__.useCallbackRef)(onPlaced);\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_9__.useLayoutEffect)(()=>{\n if (isPositioned) {\n handlePlaced?.();\n }\n }, [\n isPositioned,\n handlePlaced\n ]);\n const arrowX = middlewareData.arrow?.x;\n const arrowY = middlewareData.arrow?.y;\n const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;\n const [contentZIndex, setContentZIndex] = react__WEBPACK_IMPORTED_MODULE_0__.useState();\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_9__.useLayoutEffect)(()=>{\n if (content) setContentZIndex(window.getComputedStyle(content).zIndex);\n }, [\n content\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"div\", {\n ref: refs.setFloating,\n \"data-radix-popper-content-wrapper\": \"\",\n style: {\n ...floatingStyles,\n transform: isPositioned ? floatingStyles.transform : \"translate(0, -200%)\",\n // keep off the page when measuring\n minWidth: \"max-content\",\n zIndex: contentZIndex,\n [\"--radix-popper-transform-origin\"]: [\n middlewareData.transformOrigin?.x,\n middlewareData.transformOrigin?.y\n ].join(\" \"),\n // hide the content if using the hide middleware and should be hidden\n // set visibility to hidden and disable pointer events so the UI behaves\n // as if the PopperContent isn't there at all\n ...middlewareData.hide?.referenceHidden && {\n visibility: \"hidden\",\n pointerEvents: \"none\"\n }\n },\n dir: props.dir,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(PopperContentProvider, {\n scope: __scopePopper,\n placedSide,\n onArrowChange: setArrow,\n arrowX,\n arrowY,\n shouldHideArrow: cannotCenterArrow,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.Primitive.div, {\n \"data-side\": placedSide,\n \"data-align\": placedAlign,\n ...contentProps,\n ref: composedRefs,\n style: {\n ...contentProps.style,\n // if the PopperContent hasn't been placed yet (not all measurements done)\n // we prevent animations so that users's animation don't kick in too early referring wrong sides\n animation: !isPositioned ? \"none\" : void 0\n }\n })\n })\n });\n});\nPopperContent.displayName = CONTENT_NAME;\nvar ARROW_NAME = \"PopperArrow\";\nvar OPPOSITE_SIDE = {\n top: \"bottom\",\n right: \"left\",\n bottom: \"top\",\n left: \"right\"\n};\nvar PopperArrow = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function PopperArrow2(props, forwardedRef) {\n const { __scopePopper, ...arrowProps } = props;\n const contentContext = useContentContext(ARROW_NAME, __scopePopper);\n const baseSide = OPPOSITE_SIDE[contentContext.placedSide];\n return(// we have to use an extra wrapper because `ResizeObserver` (used by `useSize`)\n // doesn't report size as we'd expect on SVG elements.\n // it reports their bounding box which is effectively the largest path inside the SVG.\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\"span\", {\n ref: contentContext.onArrowChange,\n style: {\n position: \"absolute\",\n left: contentContext.arrowX,\n top: contentContext.arrowY,\n [baseSide]: 0,\n transformOrigin: {\n top: \"\",\n right: \"0 0\",\n bottom: \"center 0\",\n left: \"100% 0\"\n }[contentContext.placedSide],\n transform: {\n top: \"translateY(100%)\",\n right: \"translateY(50%) rotate(90deg) translateX(-50%)\",\n bottom: `rotate(180deg)`,\n left: \"translateY(50%) rotate(-90deg) translateX(50%)\"\n }[contentContext.placedSide],\n visibility: contentContext.shouldHideArrow ? \"hidden\" : void 0\n },\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_arrow__WEBPACK_IMPORTED_MODULE_10__.Root, {\n ...arrowProps,\n ref: forwardedRef,\n style: {\n ...arrowProps.style,\n // ensures the element can be measured correctly (mostly for if SVG)\n display: \"block\"\n }\n })\n }));\n});\nPopperArrow.displayName = ARROW_NAME;\nfunction isNotNull(value) {\n return value !== null;\n}\nvar transformOrigin = (options)=>({\n name: \"transformOrigin\",\n options,\n fn (data) {\n const { placement, rects, middlewareData } = data;\n const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;\n const isArrowHidden = cannotCenterArrow;\n const arrowWidth = isArrowHidden ? 0 : options.arrowWidth;\n const arrowHeight = isArrowHidden ? 0 : options.arrowHeight;\n const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);\n const noArrowAlign = {\n start: \"0%\",\n center: \"50%\",\n end: \"100%\"\n }[placedAlign];\n const arrowXCenter = (middlewareData.arrow?.x ?? 0) + arrowWidth / 2;\n const arrowYCenter = (middlewareData.arrow?.y ?? 0) + arrowHeight / 2;\n let x = \"\";\n let y = \"\";\n if (placedSide === \"bottom\") {\n x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n y = `${-arrowHeight}px`;\n } else if (placedSide === \"top\") {\n x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n y = `${rects.floating.height + arrowHeight}px`;\n } else if (placedSide === \"right\") {\n x = `${-arrowHeight}px`;\n y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n } else if (placedSide === \"left\") {\n x = `${rects.floating.width + arrowHeight}px`;\n y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n }\n return {\n data: {\n x,\n y\n }\n };\n }\n });\nfunction getSideAndAlignFromPlacement(placement) {\n const [side, align = \"center\"] = placement.split(\"-\");\n return [\n side,\n align\n ];\n}\nvar Root2 = Popper;\nvar Anchor = PopperAnchor;\nvar Content = PopperContent;\nvar Arrow = PopperArrow;\n //# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXBvcHBlci9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUF1QjtBQVdoQjtBQUN5QjtBQUNBO0FBQ0c7QUFDVDtBQUNLO0FBQ0M7QUFDUjtBQWtDcEI7QUE1QkosSUFBTW1CLGVBQWU7SUFBQztJQUFPO0lBQVM7SUFBVTtDQUFNO0FBQ3RELElBQU1DLGdCQUFnQjtJQUFDO0lBQVM7SUFBVTtDQUFLO0FBUy9DLElBQU1DLGNBQWM7QUFHcEIsSUFBTSxDQUFDQyxxQkFBcUJDLGtCQUFpQixHQUFJViwyRUFBa0JBLENBQUNRO0FBTXBFLElBQU0sQ0FBQ0csZ0JBQWdCQyxpQkFBZ0IsR0FBSUgsb0JBQXdDRDtBQUtuRixJQUFNSyxTQUFnQyxDQUFDQztJQUNyQyxNQUFNLEVBQUVDLGFBQUEsRUFBZUMsUUFBQSxFQUFTLEdBQUlGO0lBQ3BDLE1BQU0sQ0FBQ0csUUFBUUMsVUFBUyxHQUFVL0IsMkNBQUEsQ0FBNEI7SUFDOUQsT0FDRSxnQkFBQWtCLHNEQUFBQSxDQUFDTSxnQkFBQTtRQUFlUyxPQUFPTDtRQUFlRTtRQUFnQkksZ0JBQWdCSDtRQUNuRUY7SUFBQTtBQUdQO0FBRUFILE9BQU9TLFdBQUEsR0FBY2Q7QUFNckIsSUFBTWUsY0FBYztBQVFwQixJQUFNQyw2QkFBcUJyQyw2Q0FBQSxDQUN6QixDQUFDMkIsT0FBdUNZO0lBQ3RDLE1BQU0sRUFBRVgsYUFBQSxFQUFlWSxVQUFBLEVBQVksR0FBR0MsYUFBWSxHQUFJZDtJQUN0RCxNQUFNZSxVQUFVakIsaUJBQWlCVyxhQUFhUjtJQUM5QyxNQUFNZSxNQUFZM0MseUNBQUEsQ0FBNEI7SUFDOUMsTUFBTTZDLGVBQWVqQyw2RUFBZUEsQ0FBQzJCLGNBQWNJO0lBRTdDM0MsNENBQUEsQ0FBVTtRQUlkMEMsUUFBUVIsY0FBQSxDQUFlTSxZQUFZTyxXQUFXSixJQUFJSSxPQUFPO0lBQzNEO0lBRUEsT0FB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QVNuSTtBQUNmLElBQU1vSSxVQUFVckg7QUFDaEIsSUFBTXNILFFBQVF0QiIsInNvdXJjZXMiOlsid2VicGFjazovL21hbWFkLWFwcC8uLi9zcmMvUG9wcGVyLnRzeD8yZmZjIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7XG4gIHVzZUZsb2F0aW5nLFxuICBhdXRvVXBkYXRlLFxuICBvZmZzZXQsXG4gIHNoaWZ0LFxuICBsaW1pdFNoaWZ0LFxuICBoaWRlLFxuICBhcnJvdyBhcyBmbG9hdGluZ1VJYXJyb3csXG4gIGZsaXAsXG4gIHNpemUsXG59IGZyb20gJ0BmbG9hdGluZy11aS9yZWFjdC1kb20nO1xuaW1wb3J0ICogYXMgQXJyb3dQcmltaXRpdmUgZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWFycm93JztcbmltcG9ydCB7IHVzZUNvbXBvc2VkUmVmcyB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1jb21wb3NlLXJlZnMnO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dFNjb3BlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbnRleHQnO1xuaW1wb3J0IHsgUHJpbWl0aXZlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXByaW1pdGl2ZSc7XG5pbXBvcnQgeyB1c2VDYWxsYmFja1JlZiB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC11c2UtY2FsbGJhY2stcmVmJztcbmltcG9ydCB7IHVzZUxheW91dEVmZmVjdCB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC11c2UtbGF5b3V0LWVmZmVjdCc7XG5pbXBvcnQgeyB1c2VTaXplIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXVzZS1zaXplJztcblxuaW1wb3J0IHR5cGUgeyBQbGFjZW1lbnQsIE1pZGRsZXdhcmUgfSBmcm9tICdAZmxvYXRpbmctdWkvcmVhY3QtZG9tJztcbmltcG9ydCB0eXBlIHsgU2NvcGUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29udGV4dCc7XG5pbXBvcnQgdHlwZSB7IE1lYXN1cmFibGUgfSBmcm9tICdAcmFkaXgtdWkvcmVjdCc7XG5cbmNvbnN0IFNJREVfT1BUSU9OUyA9IFsndG9wJywgJ3JpZ2h0JywgJ2JvdHRvbScsICdsZWZ0J10gYXMgY29uc3Q7XG5jb25zdCBBTElHTl9PUFRJT05TID0gWydzdGFydCcsICdjZW50ZXInLCAnZW5kJ10gYXMgY29uc3Q7XG5cbnR5cGUgU2lkZSA9ICh0eXBlb2YgU0lERV9PUFRJT05TKVtudW1iZXJdO1xudHlwZSBBbGlnbiA9ICh0eXBlb2YgQUxJR05fT1BUSU9OUylbbnVtYmVyXTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogUG9wcGVyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFBPUFBFUl9OQU1FID0gJ1BvcHBlcic7XG5cbnR5cGUgU2NvcGVkUHJvcHM8UD4gPSBQICYgeyBfX3Njb3BlUG9wcGVyPzogU2NvcGUgfTtcbmNvbnN0IFtjcmVhdGVQb3BwZXJDb250ZXh0LCBjcmVhdGVQb3BwZXJTY29wZV0gPSBjcmVhdGVDb250ZXh0U2NvcGUoUE9QUEVSX05BTUUpO1xuXG50eXBlIFBvcHBlckNvbnRleHRWYWx1ZSA9IHtcbiAgYW5jaG9yOiBNZWFzdXJhYmxlIHwgbnVsbDtcbiAgb25BbmNob3JDaGFuZ2UoYW5jaG9yOiBNZWFzdXJhYmxlIHwgbnVsbCk6IHZvaWQ7XG59O1xuY29uc3QgW1BvcHBlclByb3ZpZGVyLCB1c2VQb3BwZXJDb250ZXh0XSA9IGNyZWF0ZVBvcHBlckNvbnRleHQ8UG9wcGVyQ29udGV4dFZhbHVlPihQT1BQRVJfTkFNRSk7XG5cbmludGVyZmFjZSBQb3BwZXJQcm9wcyB7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xufVxuY29uc3QgUG9wcGVyOiBSZWFjdC5GQzxQb3BwZXJQcm9wcz4gPSAocHJvcHM6IFNjb3BlZFByb3BzPFBvcHBlclByb3BzPikgPT4ge1xuICBjb25zdCB7IF9fc2NvcGVQb3BwZXIsIGNoaWxkcmVuIH0gPSBwcm9wcztcbiAgY29uc3QgW2FuY2hvciwgc2V0QW5jaG9yXSA9IFJlYWN0LnVzZVN0YXRlPE1lYXN1cmFibGUgfCBudWxsPihudWxsKTtcbiAgcmV0dXJuIChcbiAgICA8UG9wcGVyUHJvdmlkZXIgc2NvcGU9e19fc2NvcGVQb3BwZXJ9IGFuY2hvcj17YW5jaG9yfSBvbkFuY2hvckNoYW5nZT17c2V0QW5jaG9yfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L1BvcHBlclByb3ZpZGVyPlxuICApO1xufTtcblxuUG9wcGVyLmRpc3BsYXlOYW1lID0gUE9QUEVSX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFBvcHBlckFuY2hvclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBBTkNIT1JfTkFNRSA9ICdQb3BwZXJBbmNob3InO1xuXG50eXBlIFBvcHBlckFuY2hvckVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuZGl2PjtcbnR5cGUgUHJpbWl0aXZlRGl2UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFByaW1pdGl2ZS5kaXY+O1xuaW50ZXJmYWNlIFBvcHBlckFuY2hvclByb3BzIGV4dGVuZHMgUHJpbWl0aXZlRGl2UHJvcHMge1xuICB2aXJ0dWFsUmVmPzogUmVhY3QuUmVmT2JqZWN0PE1lYXN1cmFibGU+O1xufVxuXG5jb25zdCBQb3BwZXJBbmNob3IgPSBSZWFjdC5mb3J3YXJkUmVmPFBvcHBlckFuY2hvckVsZW1lbnQsIFBvcHBlckFuY2hvclByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxQb3BwZXJBbmNob3JQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZVBvcHBlciwgdmlydHVhbFJlZiwgLi4uYW5jaG9yUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VQb3BwZXJDb250ZXh0KEFOQ0hPUl9OQU1FLCBfX3Njb3BlUG9wcGVyKTtcbiAgICBjb25zdCByZWYgPSBSZWFjdC51c2VSZWY8UG9wcGVyQW5jaG9yRWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgY29tcG9zZWRSZWZzID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgcmVmKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAvLyBDb25zdW1lciBjYW4gYW5jaG9yIHRoZSBwb3BwZXIgdG8gc29tZXRoaW5nIHRoYXQgaXNuJ3RcbiAgICAgIC8vIGEgRE9NIG5vZGUgZS5nLiBwb2ludGVyIHBvc2l0aW9uLCBzbyB3ZSBvdmVycmlkZSB0aGVcbiAgICAgIC8vIGBhbmNob3JSZWZgIHdpdGggdGhlaXIgdmlydHVhbCByZWYgaW4gdGhpcyBjYXNlLlxuICAgICAgY29udGV4dC5vbkFuY2hvckNoYW5nZSh2aXJ0dWFsUmVmPy5jdXJyZW50IHx8IHJlZi5jdXJyZW50KTtcbiAgICB9KTtcblxuICAgIHJldHVybiB2aXJ0dWFsUmVmID8gbnVsbCA6IDxQcmltaXRpdmUuZGl2IHsuLi5hbmNob3JQcm9wc30gcmVmPXtjb21wb3NlZFJlZnN9IC8+O1xuICB9XG4pO1xuXG5Qb3BwZXJBbmNob3IuZGlzcGxheU5hbWUgPSBBTkNIT1JfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogUG9wcGVyQ29udGVudFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBDT05URU5UX05BTUUgPSAnUG9wcGVyQ29udGVudCc7XG5cbnR5cGUgUG9wcGVyQ29udGVudENvbnRleHRWYWx1ZSA9IHtcbiAgcGxhY2VkU2lkZTogU2lkZTtcbiAgb25BcnJvd0NoYW5nZShhcnJvdzogSFRNTFNwYW5FbGVtZW50IHwgbnVsbCk6IHZvaWQ7XG4gIGFycm93WD86IG51bWJlcjtcbiAgYXJyb3dZPzogbnVtYmVyO1xuICBzaG91bGRIaWRlQXJyb3c6IGJvb2xlYW47XG59O1xuXG5jb25zdCBbUG9wcGVyQ29udGVudFByb3ZpZGVyLCB1c2VDb250ZW50Q29udGV4dF0gPVxuICBjcmVhdGVQb3BwZXJDb250ZXh0PFBvcHBlckNvbnRlbnRDb250ZXh0VmFsdWU+KENPTlRFTlRfTkFNRSk7XG5cbnR5cGUgQm91bmRhcnkgPSBFbGVtZW50IHwgbnVsbDtcblxudHlwZSBQb3BwZXJDb250ZW50RWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5kaXY+O1xuaW50ZXJmYWNlIFBvcHBlckNvbnRlbnRQcm9wcyBleHRlbmRzIFByaW1pdGl2ZURpdlByb3BzIHtcbiAgc2lkZT86IFNpZGU7XG4gIHNpZGVPZmZzZXQ/OiBudW1iZXI7XG4gIGFsaWduPzogQWxpZ247XG4gIGFsaWduT2Zmc2V0PzogbnVtYmVyO1xuICBhcnJvd1BhZGRpbmc/OiBudW1iZXI7XG4gIGF2b2lkQ29sbGlzaW9ucz86IGJvb2xlYW47XG4gIGNvbGxpc2lvbkJvdW5kYXJ5PzogQm91bmRhcnkgfCBCb3VuZGFyeVtdO1xuICBjb2xsaXNpb25QYWRkaW5nPzogbnVtYmVyIHwgUGFydGlhbDxSZWNvcmQ8U2lkZSwgbnVtYmVyPj47XG4gIHN0aWNreT86ICdwYXJ0aWFsJyB8ICdhbHdheXMnO1xuICBoaWRlV2hlbkRldGFjaGVkPzogYm9vbGVhbjtcbiAgdXBkYXRlUG9zaXRpb25TdHJhdGVneT86ICdvcHRpbWl6ZWQnIHwgJ2Fsd2F5cyc7XG4gIG9uUGxhY2VkPzogKCkgPT4gdm9pZDtcbn1cblxuY29uc3QgUG9wcGVyQ29udGVudCA9IFJlYWN0LmZvcndhcmRSZWY8UG9wcGVyQ29udGVudEVsZW1lbnQsIFBvcHBlckNvbnRlbnRQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8UG9wcGVyQ29udGVudFByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgX19zY29wZVBvcHBlcixcbiAgICAgIHNpZGUgPSAnYm90dG9tJyxcbiAgICAgIHNpZGVPZmZzZXQgPSAwLFxuICAgICAgYWxpZ24gPSAnY2VudGVyJyxcbiAgICAgIGFsaWduT2Zmc2V0ID0gMCxcbiAgICAgIGFycm93UGFkZGluZyA9IDAsXG4gICAgICBhdm9pZENvbGxpc2lvbnMgPSB0cnVlLFxuICAgICAgY29sbGlzaW9uQm91bmRhcnkgPSBbXSxcbiAgICAgIGNvbGxpc2lvblBhZGRpbmc6IGNvbGxpc2lvblBhZGRpbmdQcm9wID0gMCxcbiAgICAgIHN0aWNreSA9ICdwYXJ0aWFsJyxcbiAgICAgIGhpZGVXaGVuRGV0YWNoZWQgPSBmYWxzZSxcbiAgICAgIHVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3kgPSAnb3B0aW1pemVkJyxcbiAgICAgIG9uUGxhY2VkLFxuICAgICAgLi4uY29udGVudFByb3BzXG4gICAgfSA9IHByb3BzO1xuXG4gICAgY29uc3QgY29udGV4dCA9IHVzZVBvcHBlckNvbnRleHQoQ09OVEVOVF9OQU1FLCBfX3Njb3BlUG9wcGVyKTtcblxuICAgIGNvbnN0IFtjb250ZW50LCBzZXRDb250ZW50XSA9IFJlYWN0LnVzZVN0YXRlPEhUTUxEaXZFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gICAgY29uc3QgY29tcG9zZWRSZWZzID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgKG5vZGUpID0+IHNldENvbnRlbnQobm9kZSkpO1xuXG4gICAgY29uc3QgW2Fycm93LCBzZXRBcnJvd10gPSBSZWFjdC51c2VTdGF0ZTxIVE1MU3BhbkVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgICBjb25zdCBhcnJvd1NpemUgPSB1c2VTaXplKGFycm93KTtcbiAgICBjb25zdCBhcnJvd1dpZHRoID0gYXJyb3dTaXplPy53aWR0aCA/PyAwO1xuICAgIGNvbnN0IGFycm93SGVpZ2h0ID0gYXJyb3dTaXplPy5oZWlnaHQgPz8gMDtcblxuICAgIGNvbnN0IGRlc2lyZWRQbGFjZW1lbnQgPSAoc2lkZSArIChhbGlnbiAhPT0gJ2NlbnRlcicgPyAnLScgKyBhbGlnbiA6ICcnKSkgYXMgUGxhY2VtZW50O1xuXG4gICAgY29uc3QgY29sbGlzaW9uUGFkZGluZyA9XG4gICAgICB0eXBlb2YgY29sbGlzaW9uUGFkZGluZ1Byb3AgPT09ICdudW1iZXInXG4gICAgICAgID8gY29sbGlzaW9uUGFkZGluZ1Byb3BcbiAgICAgICAgOiB7IHRvcDogMCwgcmlnaHQ6IDAsIGJvdHRvbTogMCwgbGVmdDogMCwgLi4uY29sbGlzaW9uUGFkZGluZ1Byb3AgfTtcblxuICAgIGNvbnN0IGJvdW5kYXJ5ID0gQXJyYXkuaXNBcnJheShjb2xsaXNpb25Cb3VuZGFyeSkgPyBjb2xsaXNpb25Cb3VuZGFyeSA6IFtjb2xsaXNpb25Cb3VuZGFyeV07XG4gICAgY29uc3QgaGFzRXhwbGljaXRCb3VuZGFyaWVzID0gYm91bmRhcnkubGVuZ3RoID4gMDtcblxuICAgIGNvbnN0IGRldGVjdE92ZXJmbG93T3B0aW9ucyA9IHtcbiAgICAgIHBhZGRpbmc6IGNvbGxpc2lvblBhZGRpbmcsXG4gICAgICBib3VuZGFyeTogYm91bmRhcnkuZmlsdGVyKGlzTm90TnVsbCksXG4gICAgICAvLyB3aXRoIGBzdHJhdGVneTogJ2ZpeGVkJ2AsIHRoaXMgaXMgdGhlIG9ubHkgd2F5IHRvIGdldCBpdCB0byByZXNwZWN0IGJvdW5kYXJpZXNcbiAgICAgIGFsdEJvdW5kYXJ5OiBoYXNFeHBsaWNpdEJvdW5kYXJpZXMsXG4gICAgfTtcblxuICAgIGNvbnN0IHsgcmVmcywgZmxvYXRpbmdTdHlsZXMsIHBsYWNlbWVudCwgaXNQb3NpdGlvbmVkLCBtaWRkbGV3YXJlRGF0YSB9ID0gdXNlRmxvYXRpbmcoe1xuICAgICAgLy8gZGVmYXVsdCB0byBgZml4ZWRgIHN0cmF0ZWd5IHNvIHVzZXJzIGRvbid0IGhhdmUgdG8gcGljayBhbmQgd2UgYWxzbyBhdm9pZCBmb2N1cyBzY3JvbGwgaXNzdWVzXG4gICAgICBzdHJhdGVneTogJ2ZpeGVkJyxcbiAgICAgIHBsYWNlbWVudDogZGVzaXJlZFBsYWNlbWVudCxcbiAgICAgIHdoaWxlRWxlbWVudHNNb3VudGVkOiAoLi4uYXJncykgPT4ge1xuICAgICAgICBjb25zdCBjbGVhbnVwID0gYXV0b1VwZGF0ZSguLi5hcmdzLCB7XG4gICAgICAgICAgYW5pbWF0aW9uRnJhbWU6IHVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3kgPT09ICdhbHdheXMnLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGNsZWFudXA7XG4gICAgICB9LFxuICAgICAgZWxlbWVudHM6IHtcbiAgICAgICAgcmVmZXJlbmNlOiBjb250ZXh0LmFuY2hvcixcbiAgICAgIH0sXG4gICAgICBtaWRkbGV3YXJlOiBbXG4gICAgICAgIG9mZnNldCh7IG1haW5BeGlzOiBzaWRlT2Zmc2V0ICsgYXJyb3dIZWlnaHQsIGFsaWdubWVudEF4aXM6IGFsaWduT2Zmc2V0IH0pLFxuICAgICAgICBhdm9pZENvbGxpc2lvbnMgJiZcbiAgICAgICAgICBzaGlmdCh7XG4gICAgICAgICAgICBtYWluQXhpczogdHJ1ZSxcbiAgICAgICAgICAgIGNyb3NzQXhpczogZmFsc2UsXG4gICAgICAgICAgICBsaW1pdGVyOiBzdGlja3kgPT09ICdwYXJ0aWFsJyA/IGxpbWl0U2hpZnQoKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9ucyxcbiAgICAgICAgICB9KSxcbiAgICAgICAgYXZvaWRDb2xsaXNpb25zICYmIGZsaXAoeyAuLi5kZXRlY3RPdmVyZmxvd09wdGlvbnMgfSksXG4gICAgICAgIHNpemUoe1xuICAgICAgICAgIC4uLmRldGVjdE92ZXJmbG93T3B0aW9ucyxcbiAgICAgICAgICBhcHBseTogKHsgZWxlbWVudHMsIHJlY3RzLCBhdmFpbGFibGVXaWR0aCwgYXZhaWxhYmxlSGVpZ2h0IH0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgd2lkdGg6IGFuY2hvcldpZHRoLCBoZWlnaHQ6IGFuY2hvckhlaWdodCB9ID0gcmVjdHMucmVmZXJlbmNlO1xuICAgICAgICAgICAgY29uc3QgY29udGVudFN0eWxlID0gZWxlbWVudHMuZmxvYXRpbmcuc3R5bGU7XG4gICAgICAgICAgICBjb250ZW50U3R5bGUuc2V0UHJvcGVydHkoJy0tcmFkaXgtcG9wcGVyLWF2YWlsYWJsZS13aWR0aCcsIGAke2F2YWlsYWJsZVdpZHRofXB4YCk7XG4gICAgICAgICAgICBjb250ZW50U3R5bGUuc2V0UHJvcGVydHkoJy0tcmFkaXgtcG9wcGVyLWF2YWlsYWJsZS1oZWlnaHQnLCBgJHthdmFpbGFibGVIZWlnaHR9cHhgKTtcbiAgICAgICAgICAgIGNvbnRlbnRTdHlsZS5zZXRQcm9wZXJ0eSgnLS1yYWRpeC1wb3BwZXItYW5jaG9yLXdpZHRoJywgYCR7YW5jaG9yV2lkdGh9cHhgKTtcbiAgICAgICAgICAgIGNvbnRlbnRTdHlsZS5zZXRQcm9wZXJ0eSgnLS1yYWRpeC1wb3BwZXItYW5jaG9yLWhlaWdodCcsIGAke2FuY2hvckhlaWdodH1weGApO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgICBhcnJvdyAmJiBmbG9hdGluZ1VJYXJyb3coeyBlbGVtZW50OiBhcnJvdywgcGFkZGluZzogYXJyb3dQYWRkaW5nIH0pLFxuICAgICAgICB0cmFuc2Zvcm1PcmlnaW4oeyBhcnJvd1dpZHRoLCBhcnJvd0hlaWdodCB9KSxcbiAgICAgICAgaGlkZVdoZW5EZXRhY2hlZCAmJiBoaWRlKHsgc3RyYXRlZ3k6ICdyZWZlcmVuY2VIaWRkZW4nLCAuLi5kZXRlY3RPdmVyZmxvd09wdGlvbnMgfSksXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgY29uc3QgW3BsYWNlZFNpZGUsIHBsYWNlZEFsaWduXSA9IGdldFNpZGVBbmRBbGlnbkZyb21QbGFjZW1lbnQocGxhY2VtZW50KTtcblxuICAgIGNvbnN0IGhhbmRsZVBsYWNlZCA9IHVzZUNhbGxiYWNrUmVmKG9uUGxhY2VkKTtcbiAgICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGlzUG9zaXRpb25lZCkge1xuICAgICAgICBoYW5kbGVQbGFjZWQ/LigpO1xuICAgICAgfVxuICAgIH0sIFtpc1Bvc2l0aW9uZWQsIGhhbmRsZVBsYWNlZF0pO1xuXG4gICAgY29uc3QgYXJyb3dYID0gbWlkZGxld2FyZURhdGEuYXJyb3c/Lng7XG4gICAgY29uc3QgYXJyb3dZID0gbWlkZGxld2FyZURhdGEuYXJyb3c/Lnk7XG4gICAgY29uc3QgY2Fubm90Q2VudGVyQXJyb3cgPSBtaWRkbGV3YXJlRGF0YS5hcnJvdz8uY2VudGVyT2Zmc2V0ICE9PSAwO1xuXG4gICAgY29uc3QgW2NvbnRlbnRaSW5kZXgsIHNldENvbnRlbnRaSW5kZXhdID0gUmVhY3QudXNlU3RhdGU8c3RyaW5nPigpO1xuICAgIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoY29udGVudCkgc2V0Q29udGVudFpJbmRleCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjb250ZW50KS56SW5kZXgpO1xuICAgIH0sIFtjb250ZW50XSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdlxuICAgICAgICByZWY9e3JlZnMuc2V0RmxvYXRpbmd9XG4gICAgICAgIGRhdGEtcmFkaXgtcG9wcGVyLWNvbnRlbnQtd3JhcHBlcj1cIlwiXG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgLi4uZmxvYXRpbmdTdHlsZXMsXG4gICAgICAgICAgdHJhbnNmb3JtOiBpc1Bvc2l0aW9uZWQgPyBmbG9hdGluZ1N0eWxlcy50cmFuc2Zvcm0gOiAndHJhbnNsYXRlKDAsIC0yMDAlKScsIC8vIGtlZXAgb2ZmIHRoZSBwYWdlIHdoZW4gbWVhc3VyaW5nXG4gICAgICAgICAgbWluV2lkdGg6ICdtYXgtY29udGVudCcsXG4gICAgICAgICAgekluZGV4OiBjb250ZW50WkluZGV4LFxuICAgICAgICAgIFsnLS1yYWRpeC1wb3BwZXItdHJhbnNmb3JtLW9yaWdpbicgYXMgYW55XTogW1xuICAgICAgICAgICAgbWlkZGxld2FyZURhdGEudHJhbnNmb3JtT3JpZ2luPy54LFxuICAgICAgICAgICAgbWlkZGxld2FyZURhdGEudHJhbnNmb3JtT3JpZ2luPy55LFxuICAgICAgICAgIF0uam9pbignICcpLFxuXG4gICAgICAgICAgLy8gaGlkZSB0aGUgY29udGVudCBpZiB1c2luZyB0aGUgaGlkZSBtaWRkbGV3YXJlIGFuZCBzaG91bGQgYmUgaGlkZGVuXG4gICAgICAgICAgLy8gc2V0IHZpc2liaWxpdHkgdG8gaGlkZGVuIGFuZCBkaXNhYmxlIHBvaW50ZXIgZXZlbnRzIHNvIHRoZSBVSSBiZWhhdmVzXG4gICAgICAgICAgLy8gYXMgaWYgdGhlIFBvcHBlckNvbnRlbnQgaXNuJ3QgdGhlcmUgYXQgYWxsXG4gICAgICAgICAgLi4uKG1pZGRsZXdhcmVEYXRhLmhpZGU/LnJlZmVyZW5jZUhpZGRlbiAmJiB7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiAnaGlkZGVuJyxcbiAgICAgICAgICAgIHBvaW50ZXJFdmVudHM6ICdub25lJyxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfX1cbiAgICAgICAgLy8gRmxvYXRpbmcgVUkgaW50ZXJhbGx5IGNhbGN1bGF0ZXMgbG9naWNhbCBhbGlnbm1lbnQgYmFzZWQgdGhlIGBkaXJgIGF0dHJpYnV0ZSBvblxuICAgICAgICAvLyB0aGUgcmVmZXJlbmNlL2Zsb2F0aW5nIG5vZGUsIHdlIG11c3QgYWRkIHRoaXMgYXR0cmlidXRlIGhlcmUgdG8gZW5zdXJlXG4gICAgICAgIC8vIHRoaXMgaXMgY2FsY3VsYXRlZCB3aGVuIHBvcnRhbGxlZCBhcyB3ZWxsIGFzIGlubGluZS5cbiAgICAgICAgZGlyPXtwcm9wcy5kaXJ9XG4gICAgICA+XG4gICAgICAgIDxQb3BwZXJDb250ZW50UHJvdmlkZXJcbiAgICAgICAgICBzY29wZT17X19zY29wZVBvcHBlcn1cbiAgICAgICAgICBwbGFjZWRTaWRlPXtwbGFjZWRTaWRlfVxuICAgICAgICAgIG9uQXJyb3dDaGFuZ2U9e3NldEFycm93fVxuICAgICAgICAgIGFycm93WD17YXJyb3dYfVxuICAgICAgICAgIGFycm93WT17YXJyb3dZfVxuICAgICAgICAgIHNob3VsZEhpZGVBcnJvdz17Y2Fubm90Q2VudGVyQXJyb3d9XG4gICAgICAgID5cbiAgICAgICAgICA8UHJpbWl0aXZlLmRpdlxuICAgICAgICAgICAgZGF0YS1zaWRlPXtwbGFjZWRTaWRlfVxuICAgICAgICAgICAgZGF0YS1hbGlnbj17cGxhY2VkQWxpZ259XG4gICAgICAgICAgICB7Li4uY29udGVudFByb3BzfVxuICAgICAgICAgICAgcmVmPXtjb21wb3NlZFJlZnN9XG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAuLi5jb250ZW50UHJvcHMuc3R5bGUsXG4gICAgICAgICAgICAgIC8vIGlmIHRoZSBQb3BwZXJDb250ZW50IGhhc24ndCBiZWVuIHBsYWNlZCB5ZXQgKG5vdCBhbGwgbWVhc3VyZW1lbnRzIGRvbmUpXG4gICAgICAgICAgICAgIC8vIHdlIHByZXZlbnQgYW5pbWF0aW9ucyBzbyB0aGF0IHVzZXJzJ3MgYW5pbWF0aW9uIGRvbid0IGtpY2sgaW4gdG9vIGVhcmx5IHJlZmVycmluZyB3cm9uZyBzaWRlc1xuICAgICAgICAgICAgICBhbmltYXRpb246ICFpc1Bvc2l0aW9uZWQgPyAnbm9uZScgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvUG9wcGVyQ29udGVudFByb3ZpZGVyPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuKTtcblxuUG9wcGVyQ29udGVudC5kaXNwbGF5TmFtZSA9IENPTlRFTlRfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogUG9wcGVyQXJyb3dcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgQVJST1dfTkFNRSA9ICdQb3BwZXJBcnJvdyc7XG5cbmNvbnN0IE9QUE9TSVRFX1NJREU6IFJlY29yZDxTaWRlLCBTaWRlPiA9IHtcbiAgdG9wOiAnYm90dG9tJyxcbiAgcmlnaHQ6ICdsZWZ0JyxcbiAgYm90dG9tOiAndG9wJyxcbiAgbGVmdDogJ3JpZ2h0Jyxcbn07XG5cbnR5cGUgUG9wcGVyQXJyb3dFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgQXJyb3dQcmltaXRpdmUuUm9vdD47XG50eXBlIEFycm93UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIEFycm93UHJpbWl0aXZlLlJvb3Q+O1xuaW50ZXJmYWNlIFBvcHBlckFycm93UHJvcHMgZXh0ZW5kcyBBcnJvd1Byb3BzIHt9XG5cbmNvbnN0IFBvcHBlckFycm93ID0gUmVhY3QuZm9yd2FyZFJlZjxQb3BwZXJBcnJvd0VsZW1lbnQsIFBvcHBlckFycm93UHJvcHM+KGZ1bmN0aW9uIFBvcHBlckFycm93KFxuICBwcm9wczogU2NvcGVkUHJvcHM8UG9wcGVyQXJyb3dQcm9wcz4sXG4gIGZvcndhcmRlZFJlZlxuKSB7XG4gIGNvbnN0IHsgX19zY29wZVBvcHBlciwgLi4uYXJyb3dQcm9wcyB9ID0gcHJvcHM7XG4gIGNvbnN0IGNvbnRlbnRDb250ZXh0ID0gdXNlQ29udGVudENvbnRleHQoQVJST1dfTkFNRSwgX19zY29wZVBvcHBlcik7XG4gIGNvbnN0IGJhc2VTaWRlID0gT1BQT1NJVEVfU0lERVtjb250ZW50Q29udGV4dC5wbGFjZWRTaWRlXTtcblxuICByZXR1cm4gKFxuICAgIC8vIHdlIGhhdmUgdG8gdXNlIGFuIGV4dHJhIHdyYXBwZXIgYmVjYXVzZSBgUmVzaXplT2JzZXJ2ZXJgICh1c2VkIGJ5IGB1c2VTaXplYClcbiAgICAvLyBkb2Vzbid0IHJlcG9ydCBzaXplIGFzIHdlJ2QgZXhwZWN0IG9uIFNWRyBlbGVtZW50cy5cbiAgICAvLyBpdCByZXBvcnRzIHRoZWlyIGJvdW5kaW5nIGJveCB3aGljaCBpcyBlZmZlY3RpdmVseSB0aGUgbGFyZ2VzdCBwYXRoIGluc2lkZSB0aGUgU1ZHLlxuICAgIDxzcGFuXG4gICAgICByZWY9e2NvbnRlbnRDb250ZXh0Lm9uQXJyb3dDaGFuZ2V9XG4gICAgICBzdHlsZT17e1xuICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgbGVmdDogY29udGVudENvbnRleHQuYXJyb3dYLFxuICAgICAgICB0b3A6IGNvbnRlbnRDb250ZXh0LmFycm93WSxcbiAgICAgICAgW2Jhc2VTaWRlXTogMCxcbiAgICAgICAgdHJhbnNmb3JtT3JpZ2luOiB7XG4gICAgICAgICAgdG9wOiAnJyxcbiAgICAgICAgICByaWdodDogJzAgMCcsXG4gICAgICAgICAgYm90dG9tOiAnY2VudGVyIDAnLFxuICAgICAgICAgIGxlZnQ6ICcxMDAlIDAnLFxuICAgICAgICB9W2NvbnRlbnRDb250ZXh0LnBsYWNlZFNpZGVdLFxuICAgICAgICB0cmFuc2Zvcm06IHtcbiAgICAgICAgICB0b3A6ICd0cmFuc2xhdGVZKDEwMCUpJyxcbiAgICAgICAgICByaWdodDogJ3RyYW5zbGF0ZVkoNTAlKSByb3RhdGUoOTBkZWcpIHRyYW5zbGF0ZVgoLTUwJSknLFxuICAgICAgICAgIGJvdHRvbTogYHJvdGF0ZSgxODBkZWcpYCxcbiAgICAgICAgICBsZWZ0OiAndHJhbnNsYXRlWSg1MCUpIHJvdGF0ZSgtOTBkZWcpIHRyYW5zbGF0ZVgoNTAlKScsXG4gICAgICAgIH1bY29udGVudENvbnRleHQucGxhY2VkU2lkZV0sXG4gICAgICAgIHZpc2liaWxpdHk6IGNvbnRlbnRDb250ZXh0LnNob3VsZEhpZGVBcnJvdyA/ICdoaWRkZW4nIDogdW5kZWZpbmVkLFxuICAgICAgfX1cbiAgICA+XG4gICAgICA8QXJyb3dQcmltaXRpdmUuUm9vdFxuICAgICAgICB7Li4uYXJyb3dQcm9wc31cbiAgICAgICAgcmVmPXtmb3J3YXJkZWRSZWZ9XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgLi4uYXJyb3dQcm9wcy5zdHlsZSxcbiAgICAgICAgICAvLyBlbnN1cmVzIHRoZSBlbGVtZW50IGNhbiBiZSBtZWFzdXJlZCBjb3JyZWN0bHkgKG1vc3RseSBmb3IgaWYgU1ZHKVxuICAgICAgICAgIGRpc3BsYXk6ICdibG9jaycsXG4gICAgICAgIH19XG4gICAgICAvPlxuICAgIDwvc3Bhbj5cbiAgKTtcbn0pO1xuXG5Qb3BwZXJBcnJvdy5kaXNwbGF5TmFtZSA9IEFSUk9XX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuZnVuY3Rpb24gaXNOb3ROdWxsPFQ+KHZhbHVlOiBUIHwgbnVsbCk6IHZhbHVlIGlzIFQge1xuICByZXR1cm4gdmFsdWUgIT09IG51bGw7XG59XG5cbmNvbnN0IHRyYW5zZm9ybU9yaWdpbiA9IChvcHRpb25zOiB7IGFycm93V2lkdGg6IG51bWJlcjsgYXJyb3dIZWlnaHQ6IG51bWJlciB9KTogTWlkZGxld2FyZSA9PiAoe1xuICBuYW1lOiAndHJhbnNmb3JtT3JpZ2luJyxcbiAgb3B0aW9ucyxcbiAgZm4oZGF0YSkge1xuICAgIGNvbnN0IHsgcGxhY2VtZW50LCByZWN0cywgbWlkZGxld2FyZURhdGEgfSA9IGRhdGE7XG5cbiAgICBjb25zdCBjYW5ub3RDZW50ZXJBcnJvdyA9IG1pZGRsZXdhcmVEYXRhLmFycm93Py5jZW50ZXJPZmZzZXQgIT09IDA7XG4gICAgY29uc3QgaXNBcnJvd0hpZGRlbiA9IGNhbm5vdENlbnRlckFycm93O1xuICAgIGNvbnN0IGFycm93V2lkdGggPSBpc0Fycm93SGlkZGVuID8gMCA6IG9wdGlvbnMuYXJyb3dXaWR0aDtcbiAgICBjb25zdCBhcnJvd0hlaWdodCA9IGlzQXJyb3dIaWRkZW4gPyAwIDogb3B0aW9ucy5hcnJvd0hlaWdodDtcblxuICAgIGNvbnN0IFtwbGFjZWRTaWRlLCBwbGFjZWRBbGlnbl0gPSBnZXRTaWRlQW5kQWxpZ25Gcm9tUGxhY2VtZW50KHBsYWNlbWVudCk7XG4gICAgY29uc3Qgbm9BcnJvd0FsaWduID0geyBzdGFydDogJzAlJywgY2VudGVyOiAnNTAlJywgZW5kOiAnMTAwJScgfVtwbGFjZWRBbGlnbl07XG5cbiAgICBjb25zdCBhcnJvd1hDZW50ZXIgPSAobWlkZGxld2FyZURhdGEuYXJyb3c/LnggPz8gMCkgKyBhcnJvd1dpZHRoIC8gMjtcbiAgICBjb25zdCBhcnJvd1lDZW50ZXIgPSAobWlkZGxld2FyZURhdGEuYXJyb3c/LnkgPz8gMCkgKyBhcnJvd0hlaWdodCAvIDI7XG5cbiAgICBsZXQgeCA9ICcnO1xuICAgIGxldCB5ID0gJyc7XG5cbiAgICBpZiAocGxhY2VkU2lkZSA9PT0gJ2JvdHRvbScpIHtcbiAgICAgIHggPSBpc0Fycm93SGlkZGVuID8gbm9BcnJvd0FsaWduIDogYCR7YXJyb3dYQ2VudGVyfXB4YDtcbiAgICAgIHkgPSBgJHstYXJyb3dIZWlnaHR9cHhgO1xuICAgIH0gZWxzZSBpZiAocGxhY2VkU2lkZSA9PT0gJ3RvcCcpIHtcbiAgICAgIHggPSBpc0Fycm93SGlkZGVuID8gbm9BcnJvd0FsaWduIDogYCR7YXJyb3dYQ2VudGVyfXB4YDtcbiAgICAgIHkgPSBgJHtyZWN0cy5mbG9hdGluZy5oZWlnaHQgKyBhcnJvd0hlaWdodH1weGA7XG4gICAgfSBlbHNlIGlmIChwbGFjZWRTaWRlID09PSAncmlnaHQnKSB7XG4gICAgICB4ID0gYCR7LWFycm93SGVpZ2h0fXB4YDtcbiAgICAgIHkgPSBpc0Fycm93SGlkZGVuID8gbm9BcnJvd0FsaWduIDogYCR7YXJyb3dZQ2VudGVyfXB4YDtcbiAgICB9IGVsc2UgaWYgKHBsYWNlZFNpZGUgPT09ICdsZWZ0Jykge1xuICAgICAgeCA9IGAke3JlY3RzLmZsb2F0aW5nLndpZHRoICsgYXJyb3dIZWlnaHR9cHhgO1xuICAgICAgeSA9IGlzQXJyb3dIaWRkZW4gPyBub0Fycm93QWxpZ24gOiBgJHthcnJvd1lDZW50ZXJ9cHhgO1xuICAgIH1cbiAgICByZXR1cm4geyBkYXRhOiB7IHgsIHkgfSB9O1xuICB9LFxufSk7XG5cbmZ1bmN0aW9uIGdldFNpZGVBbmRBbGlnbkZyb21QbGFjZW1lbnQocGxhY2VtZW50OiBQbGFjZW1lbnQpIHtcbiAgY29uc3QgW3NpZGUsIGFsaWduID0gJ2NlbnRlciddID0gcGxhY2VtZW50LnNwbGl0KCctJyk7XG4gIHJldHVybiBbc2lkZSBhcyBTaWRlLCBhbGlnbiBhcyBBbGlnbl0gYXMgY29uc3Q7XG59XG5cbmNvbnN0IFJvb3QgPSBQb3BwZXI7XG5jb25zdCBBbmNob3IgPSBQb3BwZXJBbmNob3I7XG5jb25zdCBDb250ZW50ID0gUG9wcGVyQ29udGVudDtcbmNvbnN0IEFycm93ID0gUG9wcGVyQXJyb3c7XG5cbmV4cG9ydCB7XG4gIGNyZWF0ZVBvcHBlclNjb3BlLFxuICAvL1xuICBQb3BwZXIsXG4gIFBvcHBlckFuY2hvcixcbiAgUG9wcGVyQ29udGVudCxcbiAgUG9wcGVyQXJyb3csXG4gIC8vXG4gIFJvb3QsXG4gIEFuY2hvcixcbiAgQ29udGVudCxcbiAgQXJyb3csXG4gIC8vXG4gIFNJREVfT1BUSU9OUyxcbiAgQUxJR05fT1BUSU9OUyxcbn07XG5leHBvcnQgdHlwZSB7IFBvcHBlclByb3BzLCBQb3BwZXJBbmNob3JQcm9wcywgUG9wcGVyQ29udGVudFByb3BzLCBQb3BwZXJBcnJvd1Byb3BzIH07XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VGbG9hdGluZyIsImF1dG9VcGRhdGUiLCJvZmZzZXQiLCJzaGlmdCIsImxpbWl0U2hpZnQiLCJoaWRlIiwiYXJyb3ciLCJmbG9hdGluZ1VJYXJyb3ciLCJmbGlwIiwic2l6ZSIsIkFycm93UHJpbWl0aXZlIiwidXNlQ29tcG9zZWRSZWZzIiwiY3JlYXRlQ29udGV4dFNjb3BlIiwiUHJpbWl0aXZlIiwidXNlQ2FsbGJhY2tSZWYiLCJ1c2VMYXlvdXRFZmZlY3QiLCJ1c2VTaXplIiwianN4IiwiU0lERV9PUFRJT05TIiwiQUxJR05fT1BUSU9OUyIsIlBPUFBFUl9OQU1FIiwiY3JlYXRlUG9wcGVyQ29udGV4dCIsImNyZWF0ZVBvcHBlclNjb3BlIiwiUG9wcGVyUHJvdmlkZXIiLCJ1c2VQb3BwZXJDb250ZXh0IiwiUG9wcGVyIiwicHJvcHMiLCJfX3Njb3BlUG9wcGVyIiwiY2hpbGRyZW4iLCJhbmNob3IiLCJzZXRBbmNob3IiLCJ1c2VTdGF0ZSIsInNjb3BlIiwib25BbmNob3JDaGFuZ2UiLCJkaXNwbGF5TmFtZSIsIkFOQ0hPUl9OQU1FIiwiUG9wcGVyQW5jaG9yIiwiZm9yd2FyZFJlZiIsImZvcndhcmRlZFJlZiIsInZpcnR1YWxSZWYiLCJhbmNob3JQcm9wcyIsImNvbnRleHQiLCJyZWYiLCJ1c2VSZWYiLCJjb21wb3NlZFJlZnMiLCJ1c2VFZmZlY3QiLCJjdXJyZW50IiwiZGl2IiwiQ09OVEVOVF9OQU1FIiwiUG9wcGVyQ29udGVudFByb3ZpZGVyIiwidXNlQ29udGVudENvbnRleHQiLCJQb3BwZXJDb250ZW50Iiwic2lkZSIsInNpZGVPZmZzZXQiLCJhbGlnbiIsImFsaWduT2Zmc2V0IiwiYXJyb3dQYWRkaW5nIiwiYXZvaWRDb2xsaXNpb25zIiwiY29sbGlzaW9uQm91bmRhcnkiLCJjb2xsaXNpb25QYWRkaW5nIiwiY29sbGlzaW9uUGFkZGluZ1Byb3AiLCJzdGlja3kiLCJoaWRlV2hlbkRldGFjaGVkIiwidXBkYXRlUG9zaXRpb25TdHJhdGVneSIsIm9uUGxhY2VkIiwiY29udGVudFByb3BzIiwiY29udGVudCIsInNldENvbnRlbnQiLCJub2RlIiwic2V0QXJyb3ciLCJhcnJvd1NpemUiLCJhcnJvd1dpZHRoIiwid2lkdGgiLCJhcnJvd0hlaWdodCIsImhlaWdodCIsImRlc2lyZWRQbGFjZW1lbnQiLCJ0b3AiLCJyaWdodCIsImJvdHRvbSIsImxlZnQiLCJib3VuZGFyeSIsIkFycmF5IiwiaXNBcnJheSIsImhhc0V4cGxpY2l0Qm91bmRhcmllcyIsImxlbmd0aCIsImRldGVjdE92ZXJmbG93T3B0aW9ucyIsInBhZGRpbmciLCJmaWx0ZXIiLCJpc05vdE51bGwiLCJhbHRCb3VuZGFyeSIsInJlZnMiLCJmbG9hdGluZ1N0eWxlcyIsInBsYWNlbWVudCIsImlzUG9zaXRpb25lZCIsIm1pZGRsZXdhcmVEYXRhIiwic3RyYXRlZ3kiLCJ3aGlsZUVsZW1lbnRzTW91bnRlZCIsImFyZ3MiLCJjbGVhbnVwIiwiYW5pbWF0aW9uRnJhbWUiLCJlbGVtZW50cyIsInJlZmVyZW5jZSIsIm1pZGRsZXdhcmUiLCJtYWluQXhpcyIsImFsaWdubWVudEF4aXMiLCJjcm9zc0F4aXMiLCJsaW1pdGVyIiwiYXBwbHkiLCJyZWN0cyIsImF2YWlsYWJsZVdpZHRoIiwiYXZhaWxhYmxlSGVpZ2h0IiwiYW5jaG9yV2lkdGgiLCJhbmNob3JIZWlnaHQiLCJjb250ZW50U3R5bGUiLCJmbG9hdGluZyIsInN0eWxlIiwic2V0UHJvcGVydHkiLCJlbGVtZW50IiwidHJhbnNmb3JtT3JpZ2luIiwicGxhY2VkU2lkZSIsInBsYWNlZEFsaWduIiwiZ2V0U2lkZUFuZEFsaWduRnJvbVBsYWNlbWVudCIsImhhbmRsZVBsYWNlZCIsImFycm93WCIsIngiLCJhcnJvd1kiLCJ5IiwiY2Fubm90Q2VudGVyQXJyb3ciLCJjZW50ZXJPZmZzZXQiLCJjb250ZW50WkluZGV4Iiwic2V0Q29udGVudFpJbmRleCIsIndpbmRvdyIsImdldENvbXB1dGVkU3R5bGUiLCJ6SW5kZXgiLCJzZXRGbG9hdGluZyIsInRyYW5zZm9ybSIsIm1pbldpZHRoIiwiam9pbiIsInJlZmVyZW5jZUhpZGRlbiIsInZpc2liaWxpdHkiLCJwb2ludGVyRXZlbnRzIiwiZGlyIiwib25BcnJvd0NoYW5nZSIsInNob3VsZEhpZGVBcnJvdyIsImFuaW1hdGlvbiIsIkFSUk9XX05BTUUiLCJPUFBPU0lURV9TSURFIiwiUG9wcGVyQXJyb3ciLCJhcnJvd1Byb3BzIiwiY29udGVudENvbnRleHQiLCJiYXNlU2lkZSIsInBvc2l0aW9uIiwiUm9vdCIsImRpc3BsYXkiLCJ2YWx1ZSIsIm9wdGlvbnMiLCJuYW1lIiwiZm4iLCJkYXRhIiwiaXNBcnJvd0hpZGRlbiIsIm5vQXJyb3dBbGlnbiIsInN0YXJ0IiwiY2VudGVyIiwiZW5kIiwiYXJyb3dYQ2VudGVyIiwiYXJyb3dZQ2VudGVyIiwic3BsaXQiLCJBbmNob3IiLCJDb250ZW50IiwiQXJyb3ciXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/react-popper/dist/index.mjs\n"); /***/ }), /***/ "(ssr)/./node_modules/@radix-ui/react-portal/dist/index.mjs": /*!************************************************************!*\ !*** ./node_modules/@radix-ui/react-portal/dist/index.mjs ***! \************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Portal: () => (/* binding */ Portal),\n/* harmony export */ Root: () => (/* binding */ Root)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-dom.js\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(ssr)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-use-layout-effect */ \"(ssr)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Portal,Root auto */ // packages/react/portal/src/Portal.tsx\n\n\n\n\n\nvar PORTAL_NAME = \"Portal\";\nvar Portal = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { container: containerProp, ...portalProps } = props;\n const [mounted, setMounted] = react__WEBPACK_IMPORTED_MODULE_0__.useState(false);\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_3__.useLayoutEffect)(()=>setMounted(true), []);\n const container = containerProp || mounted && globalThis?.document?.body;\n return container ? /*#__PURE__*/ react_dom__WEBPACK_IMPORTED_MODULE_1__.createPortal(/* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_4__.Primitive.div, {\n ...portalProps,\n ref: forwardedRef\n }), container) : null;\n});\nPortal.displayName = PORTAL_NAME;\nvar Root = Portal;\n //# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXBvcnRhbC9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUF1QjtBQUNGO0FBQ0s7QUFDTTtBQXVCSjtBQWpCNUIsSUFBTUssY0FBYztBQVdwQixJQUFNQyx1QkFBZU4sNkNBQUEsQ0FBdUMsQ0FBQ1EsT0FBT0M7SUFDbEUsTUFBTSxFQUFFQyxXQUFXQyxhQUFBLEVBQWUsR0FBR0MsYUFBWSxHQUFJSjtJQUNyRCxNQUFNLENBQUNLLFNBQVNDLFdBQVUsR0FBVWQsMkNBQUEsQ0FBUztJQUM3Q0csa0ZBQWVBLENBQUMsSUFBTVcsV0FBVyxPQUFPLEVBQUU7SUFDMUMsTUFBTUosWUFBWUMsaUJBQWtCRSxXQUFXRyxZQUFZQyxVQUFVQztJQUNyRSxPQUFPUiwwQkFDSFQsbURBQVMsQ0FBYSxnQkFBQUcsc0RBQUFBLENBQUNGLGdFQUFTQSxDQUFDa0IsR0FBQSxFQUFWO1FBQWUsR0FBR1IsV0FBQTtRQUFhUyxLQUFLWjtJQUFBLElBQWtCQyxhQUM3RTtBQUNOO0FBRUFKLE9BQU9nQixXQUFBLEdBQWNqQjtBQUlyQixJQUFNa0IsT0FBT2pCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbWFtYWQtYXBwLy4uL3NyYy9Qb3J0YWwudHN4P2I2NzYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgeyBQcmltaXRpdmUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlJztcbmltcG9ydCB7IHVzZUxheW91dEVmZmVjdCB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC11c2UtbGF5b3V0LWVmZmVjdCc7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFBvcnRhbFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBQT1JUQUxfTkFNRSA9ICdQb3J0YWwnO1xuXG50eXBlIFBvcnRhbEVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuZGl2PjtcbnR5cGUgUHJpbWl0aXZlRGl2UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFByaW1pdGl2ZS5kaXY+O1xuaW50ZXJmYWNlIFBvcnRhbFByb3BzIGV4dGVuZHMgUHJpbWl0aXZlRGl2UHJvcHMge1xuICAvKipcbiAgICogQW4gb3B0aW9uYWwgY29udGFpbmVyIHdoZXJlIHRoZSBwb3J0YWxlZCBjb250ZW50IHNob3VsZCBiZSBhcHBlbmRlZC5cbiAgICovXG4gIGNvbnRhaW5lcj86IEVsZW1lbnQgfCBEb2N1bWVudEZyYWdtZW50IHwgbnVsbDtcbn1cblxuY29uc3QgUG9ydGFsID0gUmVhY3QuZm9yd2FyZFJlZjxQb3J0YWxFbGVtZW50LCBQb3J0YWxQcm9wcz4oKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgY29uc3QgeyBjb250YWluZXI6IGNvbnRhaW5lclByb3AsIC4uLnBvcnRhbFByb3BzIH0gPSBwcm9wcztcbiAgY29uc3QgW21vdW50ZWQsIHNldE1vdW50ZWRdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4gc2V0TW91bnRlZCh0cnVlKSwgW10pO1xuICBjb25zdCBjb250YWluZXIgPSBjb250YWluZXJQcm9wIHx8IChtb3VudGVkICYmIGdsb2JhbFRoaXM/LmRvY3VtZW50Py5ib2R5KTtcbiAgcmV0dXJuIGNvbnRhaW5lclxuICAgID8gUmVhY3RET00uY3JlYXRlUG9ydGFsKDxQcmltaXRpdmUuZGl2IHsuLi5wb3J0YWxQcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+LCBjb250YWluZXIpXG4gICAgOiBudWxsO1xufSk7XG5cblBvcnRhbC5kaXNwbGF5TmFtZSA9IFBPUlRBTF9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFJvb3QgPSBQb3J0YWw7XG5cbmV4cG9ydCB7XG4gIFBvcnRhbCxcbiAgLy9cbiAgUm9vdCxcbn07XG5leHBvcnQgdHlwZSB7IFBvcnRhbFByb3BzIH07XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJSZWFjdERPTSIsIlByaW1pdGl2ZSIsInVzZUxheW91dEVmZmVjdCIsImpzeCIsIlBPUlRBTF9OQU1FIiwiUG9ydGFsIiwiZm9yd2FyZFJlZiIsInByb3BzIiwiZm9yd2FyZGVkUmVmIiwiY29udGFpbmVyIiwiY29udGFpbmVyUHJvcCIsInBvcnRhbFByb3BzIiwibW91bnRlZCIsInNldE1vdW50ZWQiLCJ1c2VTdGF0ZSIsImdsb2JhbFRoaXMiLCJkb2N1bWVudCIsImJvZHkiLCJjcmVhdGVQb3J0YWwiLCJkaXYiLCJyZWYiLCJkaXNwbGF5TmFtZSIsIlJvb3QiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/react-portal/dist/index.mjs\n"); /***/ }), /***/ "(ssr)/./node_modules/@radix-ui/react-presence/dist/index.mjs": /*!**************************************************************!*\ !*** ./node_modules/@radix-ui/react-presence/dist/index.mjs ***! \**************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Presence: () => (/* binding */ Presence)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(ssr)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-use-layout-effect */ \"(ssr)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\");\n/* __next_internal_client_entry_do_not_use__ Presence auto */ // packages/react/presence/src/Presence.tsx\n\n\n\n// packages/react/presence/src/useStateMachine.tsx\n\nfunction useStateMachine(initialState, machine) {\n return react__WEBPACK_IMPORTED_MODULE_0__.useReducer((state, event)=>{\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n// packages/react/presence/src/Presence.tsx\nvar Presence = (props)=>{\n const { present, children } = props;\n const presence = usePresence(present);\n const child = typeof children === \"function\" ? children({\n present: presence.isPresent\n }) : react__WEBPACK_IMPORTED_MODULE_0__.Children.only(children);\n const ref = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_1__.useComposedRefs)(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(child, {\n ref\n }) : null;\n};\nPresence.displayName = \"Presence\";\nfunction usePresence(present) {\n const [node, setNode] = react__WEBPACK_IMPORTED_MODULE_0__.useState();\n const stylesRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef({});\n const prevPresentRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(present);\n const prevAnimationNameRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(\"none\");\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(()=>{\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n }, [\n state\n ]);\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_2__.useLayoutEffect)(()=>{\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n if (present) {\n send(\"MOUNT\");\n } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\n send(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) {\n send(\"ANIMATION_OUT\");\n } else {\n send(\"UNMOUNT\");\n }\n }\n prevPresentRef.current = present;\n }\n }, [\n present,\n send\n ]);\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_2__.useLayoutEffect)(()=>{\n if (node) {\n let timeoutId;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n const handleAnimationEnd = (event)=>{\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node && isCurrentAnimation) {\n send(\"ANIMATION_END\");\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = \"forwards\";\n timeoutId = ownerWindow.setTimeout(()=>{\n if (node.style.animationFillMode === \"forwards\") {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n };\n const handleAnimationStart = (event)=>{\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener(\"animationstart\", handleAnimationStart);\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\n node.addEventListener(\"animationend\", handleAnimationEnd);\n return ()=>{\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener(\"animationstart\", handleAnimationStart);\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n } else {\n send(\"ANIMATION_END\");\n }\n }, [\n node,\n send\n ]);\n return {\n isPresent: [\n \"mounted\",\n \"unmountSuspended\"\n ].includes(state),\n ref: react__WEBPACK_IMPORTED_MODULE_0__.useCallback((node2)=>{\n if (node2) stylesRef.current = getComputedStyle(node2);\n setNode(node2);\n }, [])\n };\n}\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\n //# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXByZXNlbmNlL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQXVCO0FBQ1M7QUFDQTs7QUNGVDtBQVdoQixTQUFTRyxnQkFDZEMsWUFBQSxFQUNBQyxPQUFBO0lBRUEsT0FBYUwsNkNBQUEsQ0FBVyxDQUFDTyxPQUF3QkM7UUFDL0MsTUFBTUMsWUFBYUosT0FBQSxDQUFRRSxNQUFLLENBQVVDLE1BQUs7UUFDL0MsT0FBT0MsYUFBYUY7SUFDdEIsR0FBR0g7QUFDTDs7QURUQSxJQUFNTSxXQUFvQyxDQUFDQztJQUN6QyxNQUFNLEVBQUVDLE9BQUEsRUFBU0MsUUFBQSxFQUFTLEdBQUlGO0lBQzlCLE1BQU1HLFdBQVdDLFlBQVlIO0lBRTdCLE1BQU1JLFFBQ0osT0FBT0gsYUFBYSxhQUNoQkEsU0FBUztRQUFFRCxTQUFTRSxTQUFTRyxTQUFBO0lBQVUsS0FDakNDLDJDQUFBLENBQVNFLElBQUEsQ0FBS1A7SUFHMUIsTUFBTVEsTUFBTXBCLDZFQUFlQSxDQUFDYSxTQUFTTyxHQUFBLEVBQUtDLGNBQWNOO0lBQ3hELE1BQU1PLGFBQWEsT0FBT1YsYUFBYTtJQUN2QyxPQUFPVSxjQUFjVCxTQUFTRyxTQUFBLGlCQUFrQkMsK0NBQUEsQ0FBYUYsT0FBTztRQUFFSztJQUFJLEtBQUs7QUFDakY7QUFFQVgsU0FBU2UsV0FBQSxHQUFjO0FBTXZCLFNBQVNWLFlBQVlILE9BQUE7SUFDbkIsTUFBTSxDQUFDYyxNQUFNQyxRQUFPLEdBQVVULDJDQUFBO0lBQzlCLE1BQU1XLFlBQWtCWCx5Q0FBQSxDQUE0QixDQUFDO0lBQ3JELE1BQU1hLGlCQUF1QmIseUNBQUEsQ0FBT047SUFDcEMsTUFBTW9CLHVCQUE2QmQseUNBQUEsQ0FBZTtJQUNsRCxNQUFNZCxlQUFlUSxVQUFVLFlBQVk7SUFDM0MsTUFBTSxDQUFDTCxPQUFPMEIsS0FBSSxHQUFJOUIsZ0JBQWdCQyxjQUFjO1FBQ2xEOEIsU0FBUztZ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QUNQO0FBQ0Y7QUFJQSxTQUFTaUIsaUJBQWlCRSxNQUFBO0lBQ3hCLE9BQU9BLFFBQVFjLGlCQUFpQjtBQUNsQztBQU9BLFNBQVNyQyxjQUFjaUQsT0FBQTtJQUVyQixJQUFJQyxTQUFTQyxPQUFPQyx3QkFBQSxDQUF5QkgsUUFBUTVELEtBQUEsRUFBTyxRQUFRZ0U7SUFDcEUsSUFBSUMsVUFBVUosVUFBVSxvQkFBb0JBLFVBQVVBLE9BQU9LLGNBQUE7SUFDN0QsSUFBSUQsU0FBUztRQUNYLE9BQVFMLFFBQWdCbEQsR0FBQTtJQUMxQjtJQUdBbUQsU0FBU0MsT0FBT0Msd0JBQUEsQ0FBeUJILFNBQVMsUUFBUUk7SUFDMURDLFVBQVVKLFVBQVUsb0JBQW9CQSxVQUFVQSxPQUFPSyxjQUFBO0lBQ3pELElBQUlELFNBQVM7UUFDWCxPQUFPTCxRQUFRNUQsS0FBQSxDQUFNVSxHQUFBO0lBQ3ZCO0lBR0EsT0FBT2tELFFBQVE1RCxLQUFBLENBQU1VLEdBQUEsSUFBUWtELFFBQWdCbEQsR0FBQTtBQUMvQyIsInNvdXJjZXMiOlsid2VicGFjazovL21hbWFkLWFwcC8uLi9zcmMvUHJlc2VuY2UudHN4PzhiMzkiLCJ3ZWJwYWNrOi8vbWFtYWQtYXBwLy4uL3NyYy91c2VTdGF0ZU1hY2hpbmUudHN4P2EzMjAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ29tcG9zZWRSZWZzIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbXBvc2UtcmVmcyc7XG5pbXBvcnQgeyB1c2VMYXlvdXRFZmZlY3QgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtdXNlLWxheW91dC1lZmZlY3QnO1xuaW1wb3J0IHsgdXNlU3RhdGVNYWNoaW5lIH0gZnJvbSAnLi91c2VTdGF0ZU1hY2hpbmUnO1xuXG5pbnRlcmZhY2UgUHJlc2VuY2VQcm9wcyB7XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdEVsZW1lbnQgfCAoKHByb3BzOiB7IHByZXNlbnQ6IGJvb2xlYW4gfSkgPT4gUmVhY3QuUmVhY3RFbGVtZW50KTtcbiAgcHJlc2VudDogYm9vbGVhbjtcbn1cblxuY29uc3QgUHJlc2VuY2U6IFJlYWN0LkZDPFByZXNlbmNlUHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgcHJlc2VudCwgY2hpbGRyZW4gfSA9IHByb3BzO1xuICBjb25zdCBwcmVzZW5jZSA9IHVzZVByZXNlbmNlKHByZXNlbnQpO1xuXG4gIGNvbnN0IGNoaWxkID0gKFxuICAgIHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgPyBjaGlsZHJlbih7IHByZXNlbnQ6IHByZXNlbmNlLmlzUHJlc2VudCB9KVxuICAgICAgOiBSZWFjdC5DaGlsZHJlbi5vbmx5KGNoaWxkcmVuKVxuICApIGFzIFJlYWN0LlJlYWN0RWxlbWVudDx7IHJlZj86IFJlYWN0LlJlZjxIVE1MRWxlbWVudD4gfT47XG5cbiAgY29uc3QgcmVmID0gdXNlQ29tcG9zZWRSZWZzKHByZXNlbmNlLnJlZiwgZ2V0RWxlbWVudFJlZihjaGlsZCkpO1xuICBjb25zdCBmb3JjZU1vdW50ID0gdHlwZW9mIGNoaWxkcmVuID09PSAnZnVuY3Rpb24nO1xuICByZXR1cm4gZm9yY2VNb3VudCB8fCBwcmVzZW5jZS5pc1ByZXNlbnQgPyBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGQsIHsgcmVmIH0pIDogbnVsbDtcbn07XG5cblByZXNlbmNlLmRpc3BsYXlOYW1lID0gJ1ByZXNlbmNlJztcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogdXNlUHJlc2VuY2VcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuZnVuY3Rpb24gdXNlUHJlc2VuY2UocHJlc2VudDogYm9vbGVhbikge1xuICBjb25zdCBbbm9kZSwgc2V0Tm9kZV0gPSBSZWFjdC51c2VTdGF0ZTxIVE1MRWxlbWVudD4oKTtcbiAgY29uc3Qgc3R5bGVzUmVmID0gUmVhY3QudXNlUmVmPENTU1N0eWxlRGVjbGFyYXRpb24+KHt9IGFzIGFueSk7XG4gIGNvbnN0IHByZXZQcmVzZW50UmVmID0gUmVhY3QudXNlUmVmKHByZXNlbnQpO1xuICBjb25zdCBwcmV2QW5pbWF0aW9uTmFtZVJlZiA9IFJlYWN0LnVzZVJlZjxzdHJpbmc+KCdub25lJyk7XG4gIGNvbnN0IGluaXRpYWxTdGF0ZSA9IHByZXNlbnQgPyAnbW91bnRlZCcgOiAndW5tb3VudGVkJztcbiAgY29uc3QgW3N0YXRlLCBzZW5kXSA9IHVzZVN0YXRlTWFjaGluZShpbml0aWFsU3RhdGUsIHtcbiAgICBtb3VudGVkOiB7XG4gICAgICBVTk1PVU5UOiAndW5tb3VudGVkJyxcbiAgICAgIEFOSU1BVElPTl9PVVQ6ICd1bm1vdW50U3VzcGVuZGVkJyxcbiAgICB9LFxuICAgIHVubW91bnRTdXNwZW5kZWQ6IHtcbiAgICAgIE1PVU5UOiAnbW91bnRlZCcsXG4gICAgICBBTklNQVRJT05fRU5EOiAndW5tb3VudGVkJyxcbiAgICB9LFxuICAgIHVubW91bnRlZDoge1xuICAgICAgTU9VTlQ6ICdtb3VudGVkJyxcbiAgICB9LFxuICB9KTtcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGN1cnJlbnRBbmltYXRpb25OYW1lID0gZ2V0QW5pbWF0aW9uTmFtZShzdHlsZXNSZWYuY3VycmVudCk7XG4gICAgcHJldkFuaW1hdGlvbk5hbWVSZWYuY3VycmVudCA9IHN0YXRlID09PSAnbW91bnRlZCcgPyBjdXJyZW50QW5pbWF0aW9uTmFtZSA6ICdub25lJztcbiAgfSwgW3N0YXRlXSk7XG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBzdHlsZXMgPSBzdHlsZXNSZWYuY3VycmVudDtcbiAgICBjb25zdCB3YXNQcmVzZW50ID0gcHJldlByZXNlbnRSZWYuY3VycmVudDtcbiAgICBjb25zdCBoYXNQcmVzZW50Q2hhbmdlZCA9IHdhc1ByZXNlbnQgIT09IHByZXNlbnQ7XG5cbiAgICBpZiAoaGFzUHJlc2VudENoYW5nZWQpIHtcbiAgICAgIGNvbnN0IHByZXZBbmltYXRpb25OYW1lID0gcHJldkFuaW1hdGlvbk5hbWVSZWYuY3VycmVudDtcbiAgICAgIGNvbnN0IGN1cnJlbnRBbmltYXRpb25OYW1lID0gZ2V0QW5pbWF0aW9uTmFtZShzdHlsZXMpO1xuXG4gICAgICBpZiAocHJlc2VudCkge1xuICAgICAgICBzZW5kKCdNT1VOVCcpO1xuICAgICAgfSBlbHNlIGlmIChjdXJyZW50QW5pbWF0aW9uTmFtZSA9PT0gJ25vbmUnIHx8IHN0eWxlcz8uZGlzcGxheSA9PT0gJ25vbmUnKSB7XG4gICAgICAgIC8vIElmIHRoZXJlIGlzIG5vIGV4aXQgYW5pbWF0aW9uIG9yIHRoZSBlbGVtZW50IGlzIGhpZGRlbiwgYW5pbWF0aW9ucyB3b24ndCBydW5cbiAgICAgICAgLy8gc28gd2UgdW5tb3VudCBpbnN0YW50bHlcbiAgICAgICAgc2VuZCgnVU5NT1VOVCcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFdoZW4gYHByZXNlbnRgIGNoYW5nZXMgdG8gYGZhbHNlYCwgd2UgY2hlY2sgY2hhbmdlcyB0byBhbmltYXRpb24tbmFtZSB0b1xuICAgICAgICAgKiBkZXRlcm1pbmUgd2hldGhlciBhbiBhbmltYXRpb24gaGFzIHN0YXJ0ZWQuIFdlIGNob3NlIHRoaXMgYXBwcm9hY2ggKHJlYWRpbmdcbiAgICAgICAgICogY29tcHV0ZWQgc3R5bGVzKSBiZWNhdXNlIHRoZXJlIGlzIG5vIGBhbmltYXRpb25ydW5gIGV2ZW50IGFuZCBgYW5pbWF0aW9uc3RhcnRgXG4gICAgICAgICAqIGZpcmVzIGFmdGVyIGBhbmltYXRpb24tZGVsYXlgIGhhcyBleHBpcmVkIHdoaWNoIHdvdWxkIGJlIHRvbyBsYXRlLlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgaXNBbmltYXRpbmcgPSBwcmV2QW5pbWF0aW9uTmFtZSAhPT0gY3VycmVudEFuaW1hdGlvbk5hbWU7XG5cbiAgICAgICAgaWYgKHdhc1ByZXNlbnQgJiYgaXNBbmltYXRpbmcpIHtcbiAgICAgICAgICBzZW5kKCdBTklNQVRJT05fT1VUJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2VuZCgnVU5NT1VOVCcpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHByZXZQcmVzZW50UmVmLmN1cnJlbnQgPSBwcmVzZW50O1xuICAgIH1cbiAgfSwgW3ByZXNlbnQsIHNlbmRdKTtcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChub2RlKSB7XG4gICAgICBsZXQgdGltZW91dElkOiBudW1iZXI7XG4gICAgICBjb25zdCBvd25lcldpbmRvdyA9IG5vZGUub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldyA/PyB3aW5kb3c7XG4gICAgICAvKipcbiAgICAgICAqIFRyaWdnZXJpbmcgYW4gQU5JTUFUSU9OX09VVCBkdXJpbmcgYW4gQU5JTUFUSU9OX0lOIHdpbGwgZmlyZSBhbiBgYW5pbWF0aW9uY2FuY2VsYFxuICAgICAgICogZXZlbnQgZm9yIEFOSU1BVElPTl9JTiBhZnRlciB3ZSBoYXZlIGVudGVyZWQgYHVubW91bnRTdXNwZW5kZWRgIHN0YXRlLiBTbywgd2VcbiAgICAgICAqIG1ha2Ugc3VyZSB3ZSBvbmx5IHRyaWdnZXIgQU5JTUFUSU9OX0VORCBmb3IgdGhlIGN1cnJlbnRseSBhY3RpdmUgYW5pbWF0aW9uLlxuICAgICAgICovXG4gICAgICBjb25zdCBoYW5kbGVBbmltYXRpb25FbmQgPSAoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRBbmltYXRpb25OYW1lID0gZ2V0QW5pbWF0aW9uTmFtZShzdHlsZXNSZWYuY3VycmVudCk7XG4gICAgICAgIGNvbnN0IGlzQ3VycmVudEFuaW1hdGlvbiA9IGN1cnJlbnRBbmltYXRpb25OYW1lLmluY2x1ZGVzKGV2ZW50LmFuaW1hdGlvbk5hbWUpO1xuICAgICAgICBpZiAoZXZlbnQudGFyZ2V0ID09PSBub2RlICYmIGlzQ3VycmVudEFuaW1hdGlvbikge1xuICAgICAgICAgIC8vIFdpdGggUmVhY3QgMTggY29uY3VycmVuY3kgdGhpcyB1cGRhdGUgaXMgYXBwbGllZCBhIGZyYW1lIGFmdGVyIHRoZVxuICAgICAgICAgIC8vIGFuaW1hdGlvbiBlbmRzLCBjcmVhdGluZyBhIGZsYXNoIG9mIHZpc2libGUgY29udGVudC4gQnkgc2V0dGluZyB0aGVcbiAgICAgICAgICAvLyBhbmltYXRpb24gZmlsbCBtb2RlIHRvIFwiZm9yd2FyZHNcIiwgd2UgZm9yY2UgdGhlIG5vZGUgdG8ga2VlcCB0aGVcbiAgICAgICAgICAvLyBzdHlsZXMgb2YgdGhlIGxhc3Qga2V5ZnJhbWUsIHJlbW92aW5nIHRoZSBmbGFzaC5cbiAgICAgICAgICAvL1xuICAgICAgICAgIC8vIFByZXZpb3VzbHkgd2UgZmx1c2hlZCB0aGUgdXBkYXRlIHZpYSBSZWFjdERvbS5mbHVzaFN5bmMsIGJ1dCB3aXRoXG4gICAgICAgICAgLy8gZXhpdCBhbmltYXRpb25zIHRoaXMgcmVzdWx0ZWQgaW4gdGhlIG5vZGUgYmVpbmcgcmVtb3ZlZCBmcm9tIHRoZVxuICAgICAgICAgIC8vIERPTSBiZWZvcmUgdGhlIHN5bnRoZXRpYyBhbmltYXRpb25FbmQgZXZlbnQgd2FzIGRpc3BhdGNoZWQsIG1lYW5pbmdcbiAgICAgICAgICAvLyB1c2VyLXByb3ZpZGVkIGV2ZW50IGhhbmRsZXJzIHdvdWxkIG5vdCBiZSBjYWxsZWQuXG4gICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3JhZGl4LXVpL3ByaW1pdGl2ZXMvcHVsbC8xODQ5XG4gICAgICAgICAgc2VuZCgnQU5JTUFUSU9OX0VORCcpO1xuICAgICAgICAgIGlmICghcHJldlByZXNlbnRSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudEZpbGxNb2RlID0gbm9kZS5zdHlsZS5hbmltYXRpb25GaWxsTW9kZTtcbiAgICAgICAgICAgIG5vZGUuc3R5bGUuYW5pbWF0aW9uRmlsbE1vZGUgPSAnZm9yd2FyZHMnO1xuICAgICAgICAgICAgLy8gUmVzZXQgdGhlIHN0eWxlIGFmdGVyIHRoZSBub2RlIGhhZCB0aW1lIHRvIHVubW91bnQgKGZvciBjYXNlc1xuICAgICAgICAgICAgLy8gd2hlcmUgdGhlIGNvbXBvbmVudCBjaG9vc2VzIG5vdCB0byB1bm1vdW50KS4gRG9pbmcgdGhpcyBhbnlcbiAgICAgICAgICAgIC8vIHNvb25lciB0aGFuIGBzZXRUaW1lb3V0YCAoZS5nLiB3aXRoIGByZXF1ZXN0QW5pbWF0aW9uRnJhbWVgKVxuICAgICAgICAgICAgLy8gc3RpbGwgY2F1c2VzIGEgZmxhc2guXG4gICAgICAgICAgICB0aW1lb3V0SWQgPSBvd25lcldpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgaWYgKG5vZGUuc3R5bGUuYW5pbWF0aW9uRmlsbE1vZGUgPT09ICdmb3J3YXJkcycpIHtcbiAgICAgICAgICAgICAgICBub2RlLnN0eWxlLmFuaW1hdGlvbkZpbGxNb2RlID0gY3VycmVudEZpbGxNb2RlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBjb25zdCBoYW5kbGVBbmltYXRpb25TdGFydCA9IChldmVudDogQW5pbWF0aW9uRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LnRhcmdldCA9PT0gbm9kZSkge1xuICAgICAgICAgIC8vIGlmIGFuaW1hdGlvbiBvY2N1cnJlZCwgc3RvcmUgaXRzIG5hbWUgYXMgdGhlIHByZXZpb3VzIGFuaW1hdGlvbi5cbiAgICAgICAgICBwcmV2QW5pbWF0aW9uTmFtZVJlZi5jdXJyZW50ID0gZ2V0QW5pbWF0aW9uTmFtZShzdHlsZXNSZWYuY3VycmVudCk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoJ2FuaW1hdGlvbnN0YXJ0JywgaGFuZGxlQW5pbWF0aW9uU3RhcnQpO1xuICAgICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKCdhbmltYXRpb25jYW5jZWwnLCBoYW5kbGVBbmltYXRpb25FbmQpO1xuICAgICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKCdhbmltYXRpb25lbmQnLCBoYW5kbGVBbmltYXRpb25FbmQpO1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgb3duZXJXaW5kb3cuY2xlYXJUaW1lb3V0KHRpbWVvdXRJZCk7XG4gICAgICAgIG5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcignYW5pbWF0aW9uc3RhcnQnLCBoYW5kbGVBbmltYXRpb25TdGFydCk7XG4gICAgICAgIG5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcignYW5pbWF0aW9uY2FuY2VsJywgaGFuZGxlQW5pbWF0aW9uRW5kKTtcbiAgICAgICAgbm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKCdhbmltYXRpb25lbmQnLCBoYW5kbGVBbmltYXRpb25FbmQpO1xuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVHJhbnNpdGlvbiB0byB0aGUgdW5tb3VudGVkIHN0YXRlIGlmIHRoZSBub2RlIGlzIHJlbW92ZWQgcHJlbWF0dXJlbHkuXG4gICAgICAvLyBXZSBhdm9pZCBkb2luZyBzbyBkdXJpbmcgY2xlYW51cCBhcyB0aGUgbm9kZSBtYXkgY2hhbmdlIGJ1dCBzdGlsbCBleGlzdC5cbiAgICAgIHNlbmQoJ0FOSU1BVElPTl9FTkQnKTtcbiAgICB9XG4gIH0sIFtub2RlLCBzZW5kXSk7XG5cbiAgcmV0dXJuIHtcbiAgICBpc1ByZXNlbnQ6IFsnbW91bnRlZCcsICd1bm1vdW50U3VzcGVuZGVkJ10uaW5jbHVkZXMoc3RhdGUpLFxuICAgIHJlZjogUmVhY3QudXNlQ2FsbGJhY2soKG5vZGU6IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgICBpZiAobm9kZSkgc3R5bGVzUmVmLmN1cnJlbnQgPSBnZXRDb21wdXRlZFN0eWxlKG5vZGUpO1xuICAgICAgc2V0Tm9kZShub2RlKTtcbiAgICB9LCBbXSksXG4gIH07XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuZnVuY3Rpb24gZ2V0QW5pbWF0aW9uTmFtZShzdHlsZXM/OiBDU1NTdHlsZURlY2xhcmF0aW9uKSB7XG4gIHJldHVybiBzdHlsZXM/LmFuaW1hdGlvbk5hbWUgfHwgJ25vbmUnO1xufVxuXG4vLyBCZWZvcmUgUmVhY3QgMTkgYWNjZXNzaW5nIGBlbGVtZW50LnByb3BzLnJlZmAgd2lsbCB0aHJvdyBhIHdhcm5pbmcgYW5kIHN1Z2dlc3QgdXNpbmcgYGVsZW1lbnQucmVmYFxuLy8gQWZ0ZXIgUmVhY3QgMTkgYWNjZXNzaW5nIGBlbGVtZW50LnJlZmAgZG9lcyB0aGUgb3Bwb3NpdGUuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvcHVsbC8yODM0OFxuLy9cbi8vIEFjY2VzcyB0aGUgcmVmIHVzaW5nIHRoZSBtZXRob2QgdGhhdCBkb2Vzbid0IHlpZWxkIGEgd2FybmluZy5cbmZ1bmN0aW9uIGdldEVsZW1lbnRSZWYoZWxlbWVudDogUmVhY3QuUmVhY3RFbGVtZW50PHsgcmVmPzogUmVhY3QuUmVmPHVua25vd24+IH0+KSB7XG4gIC8vIFJlYWN0IDw9MTggaW4gREVWXG4gIGxldCBnZXR0ZXIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVsZW1lbnQucHJvcHMsICdyZWYnKT8uZ2V0O1xuICBsZXQgbWF5V2FybiA9IGdldHRlciAmJiAnaXNSZWFjdFdhcm5pbmcnIGluIGdldHRlciAmJiBnZXR0ZXIuaXNSZWFjdFdhcm5pbmc7XG4gIGlmIChtYXlXYXJuKSB7XG4gICAgcmV0dXJuIChlbGVtZW50IGFzIGFueSkucmVmO1xuICB9XG5cbiAgLy8gUmVhY3QgMTkgaW4gREVWXG4gIGdldHRlciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZWxlbWVudCwgJ3JlZicpPy5nZXQ7XG4gIG1heVdhcm4gPSBnZXR0ZXIgJiYgJ2lzUmVhY3RXYXJuaW5nJyBpbiBnZXR0ZXIgJiYgZ2V0dGVyLmlzUmVhY3RXYXJuaW5nO1xuICBpZiAobWF5V2Fybikge1xuICAgIHJldHVybiBlbGVtZW50LnByb3BzLnJlZjtcbiAgfVxuXG4gIC8vIE5vdCBERVZcbiAgcmV0dXJuIGVsZW1lbnQucHJvcHMucmVmIHx8IChlbGVtZW50IGFzIGFueSkucmVmO1xufVxuXG5leHBvcnQgeyBQcmVzZW5jZSB9O1xuZXhwb3J0IHR5cGUgeyBQcmVzZW5jZVByb3BzIH07XG4iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbnR5cGUgTWFjaGluZTxTPiA9IHsgW2s6IHN0cmluZ106IHsgW2s6IHN0cmluZ106IFMgfSB9O1xudHlwZSBNYWNoaW5lU3RhdGU8VD4gPSBrZXlvZiBUO1xudHlwZSBNYWNoaW5lRXZlbnQ8VD4gPSBrZXlvZiBVbmlvblRvSW50ZXJzZWN0aW9uPFRba2V5b2YgVF0+O1xuXG4vLyDwn6SvIGh0dHBzOi8vZmV0dGJsb2cuZXUvdHlwZXNjcmlwdC11bmlvbi10by1pbnRlcnNlY3Rpb24vXG50eXBlIFVuaW9uVG9JbnRlcnNlY3Rpb248VD4gPSAoVCBleHRlbmRzIGFueSA/ICh4OiBUKSA9PiBhbnkgOiBuZXZlcikgZXh0ZW5kcyAoeDogaW5mZXIgUikgPT4gYW55XG4gID8gUlxuICA6IG5ldmVyO1xuXG5leHBvcnQgZnVuY3Rpb24gdXNlU3RhdGVNYWNoaW5lPE0+KFxuICBpbml0aWFsU3RhdGU6IE1hY2hpbmVTdGF0ZTxNPixcbiAgbWFjaGluZTogTSAmIE1hY2hpbmU8TWFjaGluZVN0YXRlPE0+PlxuKSB7XG4gIHJldHVybiBSZWFjdC51c2VSZWR1Y2VyKChzdGF0ZTogTWFjaGluZVN0YXRlPE0+LCBldmVudDogTWFjaGluZUV2ZW50PE0+KTogTWFjaGluZVN0YXRlPE0+ID0+IHtcbiAgICBjb25zdCBuZXh0U3RhdGUgPSAobWFjaGluZVtzdGF0ZV0gYXMgYW55KVtldmVudF07XG4gICAgcmV0dXJuIG5leHRTdGF0ZSA/PyBzdGF0ZTtcbiAgfSwgaW5pdGlhbFN0YXRlKTtcbn1cbiJdLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNvbXBvc2VkUmVmcyIsInVzZUxheW91dEVmZmVjdCIsInVzZVN0YXRlTWFjaGluZSIsImluaXRpYWxTdGF0ZSIsIm1hY2hpbmUiLCJ1c2VSZWR1Y2VyIiwic3RhdGUiLCJldmVudCIsIm5leHRTdGF0ZSIsIlByZXNlbmNlIiwicHJvcHMiLCJwcmVzZW50IiwiY2hpbGRyZW4iLCJwcmVzZW5jZSIsInVzZVByZXNlbmNlIiwiY2hpbGQiLCJpc1ByZXNlbnQiLCJSZWFjdDIiLCJDaGlsZHJlbiIsIm9ubHkiLCJyZWYiLCJnZXRFbGVtZW50UmVmIiwiZm9yY2VNb3VudCIsImNsb25lRWxlbWVudCIsImRpc3BsYXlOYW1lIiwibm9kZSIsInNldE5vZGUiLCJ1c2VTdGF0ZSIsInN0eWxlc1JlZiIsInVzZVJlZiIsInByZXZQcmVzZW50UmVmIiwicHJldkFuaW1hdGlvbk5hbWVSZWYiLCJzZW5kIiwibW91bnRlZCIsIlVOTU9VTlQiLCJBTklNQVRJT05fT1VUIiwidW5tb3VudFN1c3BlbmRlZCIsIk1PVU5UIiwiQU5JTUFUSU9OX0VORCIsInVubW91bnRlZCIsInVzZUVmZmVjdCIsImN1cnJlbnRBbmltYXRpb25OYW1lIiwiZ2V0QW5pbWF0aW9uTmFtZSIsImN1cnJlbnQiLCJzdHlsZXMiLCJ3YXNQcmVzZW50IiwiaGFzUHJlc2VudENoYW5nZWQiLCJwcmV2QW5pbWF0aW9uTmFtZSIsImRpc3BsYXkiLCJpc0FuaW1hdGluZyIsInRpbWVvdXRJZCIsIm93bmVyV2luZG93Iiwib3duZXJEb2N1bWVudCIsImRlZmF1bHRWaWV3Iiwid2luZG93IiwiaGFuZGxlQW5pbWF0aW9uRW5kIiwiaXNDdXJyZW50QW5pbWF0aW9uIiwiaW5jbHVkZXMiLCJhbmltYXRpb25OYW1lIiwidGFyZ2V0IiwiY3VycmVudEZpbGxNb2RlIiwic3R5bGUiLCJhbmltYXRpb25GaWxsTW9kZSIsInNldFRpbWVvdXQiLCJoYW5kbGVBbmltYXRpb25TdGFydCIsImFkZEV2ZW50TGlzdGVuZXIiLCJjbGVhclRpbWVvdXQiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwidXNlQ2FsbGJhY2siLCJnZXRDb21wdXRlZFN0eWxlIiwiZWxlbWVudCIsImdldHRlciIsIk9iamVjdCIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImdldCIsIm1heVdhcm4iLCJpc1JlYWN0V2FybmluZyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/react-presence/dist/index.mjs\n"); /***/ }), /***/ "(ssr)/./node_modules/@radix-ui/react-primitive/dist/index.mjs": /*!***************************************************************!*\ !*** ./node_modules/@radix-ui/react-primitive/dist/index.mjs ***! \***************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Primitive: () => (/* binding */ Primitive),\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ dispatchDiscreteCustomEvent: () => (/* binding */ dispatchDiscreteCustomEvent)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-dom.js\");\n/* harmony import */ var _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(ssr)/./node_modules/@radix-ui/react-slot/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\n// packages/react/primitive/src/Primitive.tsx\n\n\n\n\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_3__.Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) react_dom__WEBPACK_IMPORTED_MODULE_1__.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXByaW1pdGl2ZS9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7QUFDK0I7QUFDTztBQUNNO0FBQ0o7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLDZDQUFnQjtBQUMvQixZQUFZLDZCQUE2QjtBQUN6QywyQkFBMkIsc0RBQUk7QUFDL0I7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCLHNEQUFHLFNBQVMsc0NBQXNDO0FBQzdFLEdBQUc7QUFDSCxrQ0FBa0MsS0FBSztBQUN2QyxXQUFXO0FBQ1gsQ0FBQyxJQUFJO0FBQ0w7QUFDQSxjQUFjLGdEQUFrQjtBQUNoQztBQUNBO0FBS0U7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL21hbWFkLWFwcC8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlL2Rpc3QvaW5kZXgubWpzPzc5NGUiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFja2FnZXMvcmVhY3QvcHJpbWl0aXZlL3NyYy9QcmltaXRpdmUudHN4XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCAqIGFzIFJlYWN0RE9NIGZyb20gXCJyZWFjdC1kb21cIjtcbmltcG9ydCB7IFNsb3QgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXNsb3RcIjtcbmltcG9ydCB7IGpzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xudmFyIE5PREVTID0gW1xuICBcImFcIixcbiAgXCJidXR0b25cIixcbiAgXCJkaXZcIixcbiAgXCJmb3JtXCIsXG4gIFwiaDJcIixcbiAgXCJoM1wiLFxuICBcImltZ1wiLFxuICBcImlucHV0XCIsXG4gIFwibGFiZWxcIixcbiAgXCJsaVwiLFxuICBcIm5hdlwiLFxuICBcIm9sXCIsXG4gIFwicFwiLFxuICBcInNwYW5cIixcbiAgXCJzdmdcIixcbiAgXCJ1bFwiXG5dO1xudmFyIFByaW1pdGl2ZSA9IE5PREVTLnJlZHVjZSgocHJpbWl0aXZlLCBub2RlKSA9PiB7XG4gIGNvbnN0IE5vZGUgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBhc0NoaWxkLCAuLi5wcmltaXRpdmVQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgQ29tcCA9IGFzQ2hpbGQgPyBTbG90IDogbm9kZTtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgd2luZG93W1N5bWJvbC5mb3IoXCJyYWRpeC11aVwiKV0gPSB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChDb21wLCB7IC4uLnByaW1pdGl2ZVByb3BzLCByZWY6IGZvcndhcmRlZFJlZiB9KTtcbiAgfSk7XG4gIE5vZGUuZGlzcGxheU5hbWUgPSBgUHJpbWl0aXZlLiR7bm9kZX1gO1xuICByZXR1cm4geyAuLi5wcmltaXRpdmUsIFtub2RlXTogTm9kZSB9O1xufSwge30pO1xuZnVuY3Rpb24gZGlzcGF0Y2hEaXNjcmV0ZUN1c3RvbUV2ZW50KHRhcmdldCwgZXZlbnQpIHtcbiAgaWYgKHRhcmdldCkgUmVhY3RET00uZmx1c2hTeW5jKCgpID0+IHRhcmdldC5kaXNwYXRjaEV2ZW50KGV2ZW50KSk7XG59XG52YXIgUm9vdCA9IFByaW1pdGl2ZTtcbmV4cG9ydCB7XG4gIFByaW1pdGl2ZSxcbiAgUm9vdCxcbiAgZGlzcGF0Y2hEaXNjcmV0ZUN1c3RvbUV2ZW50XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\n"); /***/ }), /***/ "(ssr)/./node_modules/@radix-ui/react-roving-focus/dist/index.mjs": /*!******************************************************************!*\ !*** ./node_modules/@radix-ui/react-roving-focus/dist/index.mjs ***! \******************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Item: () => (/* binding */ Item),\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ RovingFocusGroup: () => (/* binding */ RovingFocusGroup),\n/* harmony export */ RovingFocusGroupItem: () => (/* binding */ RovingFocusGroupItem),\n/* harmony export */ createRovingFocusGroupScope: () => (/* binding */ createRovingFocusGroupScope)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var _radix_ui_primitive__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @radix-ui/primitive */ \"(ssr)/./node_modules/@radix-ui/primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_collection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-collection */ \"(ssr)/./node_modules/@radix-ui/react-collection/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(ssr)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-context */ \"(ssr)/./node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @radix-ui/react-id */ \"(ssr)/./node_modules/@radix-ui/react-id/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(ssr)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(ssr)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @radix-ui/react-use-controllable-state */ \"(ssr)/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_direction__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-direction */ \"(ssr)/./node_modules/@radix-ui/react-direction/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Item,Root,RovingFocusGroup,RovingFocusGroupItem,createRovingFocusGroupScope auto */ // packages/react/roving-focus/src/RovingFocusGroup.tsx\n\n\n\n\n\n\n\n\n\n\n\nvar ENTRY_FOCUS = \"rovingFocusGroup.onEntryFocus\";\nvar EVENT_OPTIONS = {\n bubbles: false,\n cancelable: true\n};\nvar GROUP_NAME = \"RovingFocusGroup\";\nvar [Collection, useCollection, createCollectionScope] = (0,_radix_ui_react_collection__WEBPACK_IMPORTED_MODULE_2__.createCollection)(GROUP_NAME);\nvar [createRovingFocusGroupContext, createRovingFocusGroupScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_3__.createContextScope)(GROUP_NAME, [\n createCollectionScope\n]);\nvar [RovingFocusProvider, useRovingFocusContext] = createRovingFocusGroupContext(GROUP_NAME);\nvar RovingFocusGroup = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Collection.Provider, {\n scope: props.__scopeRovingFocusGroup,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Collection.Slot, {\n scope: props.__scopeRovingFocusGroup,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(RovingFocusGroupImpl, {\n ...props,\n ref: forwardedRef\n })\n })\n });\n});\nRovingFocusGroup.displayName = GROUP_NAME;\nvar RovingFocusGroupImpl = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { __scopeRovingFocusGroup, orientation, loop = false, dir, currentTabStopId: currentTabStopIdProp, defaultCurrentTabStopId, onCurrentTabStopIdChange, onEntryFocus, preventScrollOnEntryFocus = false, ...groupProps } = props;\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_4__.useComposedRefs)(forwardedRef, ref);\n const direction = (0,_radix_ui_react_direction__WEBPACK_IMPORTED_MODULE_5__.useDirection)(dir);\n const [currentTabStopId = null, setCurrentTabStopId] = (0,_radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_6__.useControllableState)({\n prop: currentTabStopIdProp,\n defaultProp: defaultCurrentTabStopId,\n onChange: onCurrentTabStopIdChange\n });\n const [isTabbingBackOut, setIsTabbingBackOut] = react__WEBPACK_IMPORTED_MODULE_0__.useState(false);\n const handleEntryFocus = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_7__.useCallbackRef)(onEntryFocus);\n const getItems = useCollection(__scopeRovingFocusGroup);\n const isClickFocusRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n const [focusableItemsCount, setFocusableItemsCount] = react__WEBPACK_IMPORTED_MODULE_0__.useState(0);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(()=>{\n const node = ref.current;\n if (node) {\n node.addEventListener(ENTRY_FOCUS, handleEntryFocus);\n return ()=>node.removeEventListener(ENTRY_FOCUS, handleEntryFocus);\n }\n }, [\n handleEntryFocus\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(RovingFocusProvider, {\n scope: __scopeRovingFocusGroup,\n orientation,\n dir: direction,\n loop,\n currentTabStopId,\n onItemFocus: react__WEBPACK_IMPORTED_MODULE_0__.useCallback((tabStopId)=>setCurrentTabStopId(tabStopId), [\n setCurrentTabStopId\n ]),\n onItemShiftTab: react__WEBPACK_IMPORTED_MODULE_0__.useCallback(()=>setIsTabbingBackOut(true), []),\n onFocusableItemAdd: react__WEBPACK_IMPORTED_MODULE_0__.useCallback(()=>setFocusableItemsCount((prevCount)=>prevCount + 1), []),\n onFocusableItemRemove: react__WEBPACK_IMPORTED_MODULE_0__.useCallback(()=>setFocusableItemsCount((prevCount)=>prevCount - 1), []),\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_8__.Primitive.div, {\n tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0,\n \"data-orientation\": orientation,\n ...groupProps,\n ref: composedRefs,\n style: {\n outline: \"none\",\n ...props.style\n },\n onMouseDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_9__.composeEventHandlers)(props.onMouseDown, ()=>{\n isClickFocusRef.current = true;\n }),\n onFocus: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_9__.composeEventHandlers)(props.onFocus, (event)=>{\n const isKeyboardFocus = !isClickFocusRef.current;\n if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {\n const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);\n event.currentTarget.dispatchEvent(entryFocusEvent);\n if (!entryFocusEvent.defaultPrevented) {\n const items = getItems().filter((item)=>item.focusable);\n const activeItem = items.find((item)=>item.active);\n const currentItem = items.find((item)=>item.id === currentTabStopId);\n const candidateItems = [\n activeItem,\n currentItem,\n ...items\n ].filter(Boolean);\n const candidateNodes = candidateItems.map((item)=>item.ref.current);\n focusFirst(candidateNodes, preventScrollOnEntryFocus);\n }\n }\n isClickFocusRef.current = false;\n }),\n onBlur: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_9__.composeEventHandlers)(props.onBlur, ()=>setIsTabbingBackOut(false))\n })\n });\n});\nvar ITEM_NAME = \"RovingFocusGroupItem\";\nvar RovingFocusGroupItem = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { __scopeRovingFocusGroup, focusable = true, active = false, tabStopId, ...itemProps } = props;\n const autoId = (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_10__.useId)();\n const id = tabStopId || autoId;\n const context = useRovingFocusContext(ITEM_NAME, __scopeRovingFocusGroup);\n const isCurrentTabStop = context.currentTabStopId === id;\n const getItems = useCollection(__scopeRovingFocusGroup);\n const { onFocusableItemAdd, onFocusableItemRemove } = context;\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(()=>{\n if (focusable) {\n onFocusableItemAdd();\n return ()=>onFocusableItemRemove();\n }\n }, [\n focusable,\n onFocusableItemAdd,\n onFocusableItemRemove\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Collection.ItemSlot, {\n scope: __scopeRovingFocusGroup,\n id,\n focusable,\n active,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_8__.Primitive.span, {\n tabIndex: isCurrentTabStop ? 0 : -1,\n \"data-orientation\": context.orientation,\n ...itemProps,\n ref: forwardedRef,\n onMouseDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_9__.composeEventHandlers)(props.onMouseDown, (event)=>{\n if (!focusable) event.preventDefault();\n else context.onItemFocus(id);\n }),\n onFocus: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_9__.composeEventHandlers)(props.onFocus, ()=>context.onItemFocus(id)),\n onKeyDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_9__.composeEventHandlers)(props.onKeyDown, (event)=>{\n if (event.key === \"Tab\" && event.shiftKey) {\n context.onItemShiftTab();\n return;\n }\n if (event.target !== event.currentTarget) return;\n const focusIntent = getFocusIntent(event, context.orientation, context.dir);\n if (focusIntent !== void 0) {\n if (event.metaKey || event.ctrlKey || event.altKey || event.shiftKey) return;\n event.preventDefault();\n const items = getItems().filter((item)=>item.focusable);\n let candidateNodes = items.map((item)=>item.ref.current);\n if (focusIntent === \"last\") candidateNodes.reverse();\n else if (focusIntent === \"prev\" || focusIntent === \"next\") {\n if (focusIntent === \"prev\") candidateNodes.reverse();\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = context.loop ? wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(()=>focusFirst(candidateNodes));\n }\n })\n })\n });\n});\nRovingFocusGroupItem.displayName = ITEM_NAME;\nvar MAP_KEY_TO_FOCUS_INTENT = {\n ArrowLeft: \"prev\",\n ArrowUp: \"prev\",\n ArrowRight: \"next\",\n ArrowDown: \"next\",\n PageUp: \"first\",\n Home: \"first\",\n PageDown: \"last\",\n End: \"last\"\n};\nfunction getDirectionAwareKey(key, dir) {\n if (dir !== \"rtl\") return key;\n return key === \"ArrowLeft\" ? \"ArrowRight\" : key === \"ArrowRight\" ? \"ArrowLeft\" : key;\n}\nfunction getFocusIntent(event, orientation, dir) {\n const key = getDirectionAwareKey(event.key, dir);\n if (orientation === \"vertical\" && [\n \"ArrowLeft\",\n \"ArrowRight\"\n ].includes(key)) return void 0;\n if (orientation === \"horizontal\" && [\n \"ArrowUp\",\n \"ArrowDown\"\n ].includes(key)) return void 0;\n return MAP_KEY_TO_FOCUS_INTENT[key];\n}\nfunction focusFirst(candidates, preventScroll = false) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates){\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus({\n preventScroll\n });\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index)=>array[(startIndex + index) % array.length]);\n}\nvar Root = RovingFocusGroup;\nvar Item = RovingFocusGroupItem;\n //# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXJvdmluZy1mb2N1cy9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUF1QjtBQUNjO0FBQ0o7QUFDRDtBQUNHO0FBQ2I7QUFDSTtBQUNLO0FBQ007QUFDUjtBQWdFbkI7QUE1RFYsSUFBTVcsY0FBYztBQUNwQixJQUFNQyxnQkFBZ0I7SUFBRUMsU0FBUztJQUFPQyxZQUFZO0FBQUs7QUFNekQsSUFBTUMsYUFBYTtBQUduQixJQUFNLENBQUNDLFlBQVlDLGVBQWVDLHNCQUFxQixHQUFJaEIsNEVBQWdCQSxDQUd6RWE7QUFHRixJQUFNLENBQUNJLCtCQUErQkMsNEJBQTJCLEdBQUloQiwyRUFBa0JBLENBQ3JGVyxZQUNBO0lBQUNHO0NBQXFCO0FBK0J4QixJQUFNLENBQUNHLHFCQUFxQkMsc0JBQXFCLEdBQy9DSCw4QkFBa0RKO0FBS3BELElBQU1RLGlDQUF5QnZCLDZDQUFBLENBQzdCLENBQUN5QixPQUEyQ0M7SUFDMUMsT0FDRSxnQkFBQWhCLHNEQUFBQSxDQUFDTSxXQUFXVyxRQUFBLEVBQVg7UUFBb0JDLE9BQU9ILE1BQU1JLHVCQUFBO1FBQ2hDQyxVQUFBLGdCQUFBcEIsc0RBQUFBLENBQUNNLFdBQVdlLElBQUEsRUFBWDtZQUFnQkgsT0FBT0gsTUFBTUksdUJBQUE7WUFDNUJDLFVBQUEsZ0JBQUFwQixzREFBQUEsQ0FBQ3NCLHNCQUFBO2dCQUFzQixHQUFHUCxLQUFBO2dCQUFPUSxLQUFLUDtZQUFBO1FBQWM7SUFDdEQ7QUFHTjtBQUdGSCxpQkFBaUJXLFdBQUEsR0FBY25CO0FBZ0IvQixJQUFNaUIscUNBQTZCaEMsNkNBQUEsQ0FHakMsQ0FBQ3lCLE9BQStDQztJQUNoRCxNQUFNLEVBQ0pHLHVCQUFBLEVBQ0FNLFdBQUEsRUFDQUMsT0FBTyxPQUNQQyxHQUFBLEVBQ0FDLGtCQUFrQkMsb0JBQUEsRUFDbEJDLHVCQUFBLEVBQ0FDLHdCQUFBLEVBQ0FD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LElBQVNILE1BQU1JLE1BQU0sQ0FBQztBQUMzRTtBQUVBLElBQU1DLE9BQU81SDtBQUNiLElBQU02SCxPQUFPOUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9tYW1hZC1hcHAvLi4vc3JjL1JvdmluZ0ZvY3VzR3JvdXAudHN4PzdjODEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY29tcG9zZUV2ZW50SGFuZGxlcnMgfSBmcm9tICdAcmFkaXgtdWkvcHJpbWl0aXZlJztcbmltcG9ydCB7IGNyZWF0ZUNvbGxlY3Rpb24gfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29sbGVjdGlvbic7XG5pbXBvcnQgeyB1c2VDb21wb3NlZFJlZnMgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzJztcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHRTY29wZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1jb250ZXh0JztcbmltcG9ydCB7IHVzZUlkIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWlkJztcbmltcG9ydCB7IFByaW1pdGl2ZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1wcmltaXRpdmUnO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2tSZWYgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtdXNlLWNhbGxiYWNrLXJlZic7XG5pbXBvcnQgeyB1c2VDb250cm9sbGFibGVTdGF0ZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC11c2UtY29udHJvbGxhYmxlLXN0YXRlJztcbmltcG9ydCB7IHVzZURpcmVjdGlvbiB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1kaXJlY3Rpb24nO1xuXG5pbXBvcnQgdHlwZSB7IFNjb3BlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbnRleHQnO1xuXG5jb25zdCBFTlRSWV9GT0NVUyA9ICdyb3ZpbmdGb2N1c0dyb3VwLm9uRW50cnlGb2N1cyc7XG5jb25zdCBFVkVOVF9PUFRJT05TID0geyBidWJibGVzOiBmYWxzZSwgY2FuY2VsYWJsZTogdHJ1ZSB9O1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBSb3ZpbmdGb2N1c0dyb3VwXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IEdST1VQX05BTUUgPSAnUm92aW5nRm9jdXNHcm91cCc7XG5cbnR5cGUgSXRlbURhdGEgPSB7IGlkOiBzdHJpbmc7IGZvY3VzYWJsZTogYm9vbGVhbjsgYWN0aXZlOiBib29sZWFuIH07XG5jb25zdCBbQ29sbGVjdGlvbiwgdXNlQ29sbGVjdGlvbiwgY3JlYXRlQ29sbGVjdGlvblNjb3BlXSA9IGNyZWF0ZUNvbGxlY3Rpb248XG4gIEhUTUxTcGFuRWxlbWVudCxcbiAgSXRlbURhdGFcbj4oR1JPVVBfTkFNRSk7XG5cbnR5cGUgU2NvcGVkUHJvcHM8UD4gPSBQICYgeyBfX3Njb3BlUm92aW5nRm9jdXNHcm91cD86IFNjb3BlIH07XG5jb25zdCBbY3JlYXRlUm92aW5nRm9jdXNHcm91cENvbnRleHQsIGNyZWF0ZVJvdmluZ0ZvY3VzR3JvdXBTY29wZV0gPSBjcmVhdGVDb250ZXh0U2NvcGUoXG4gIEdST1VQX05BTUUsXG4gIFtjcmVhdGVDb2xsZWN0aW9uU2NvcGVdXG4pO1xuXG50eXBlIE9yaWVudGF0aW9uID0gUmVhY3QuQXJpYUF0dHJpYnV0ZXNbJ2FyaWEtb3JpZW50YXRpb24nXTtcbnR5cGUgRGlyZWN0aW9uID0gJ2x0cicgfCAncnRsJztcblxuaW50ZXJmYWNlIFJvdmluZ0ZvY3VzR3JvdXBPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBvcmllbnRhdGlvbiBvZiB0aGUgZ3JvdXAuXG4gICAqIE1haW5seSBzbyBhcnJvdyBuYXZpZ2F0aW9uIGlzIGRvbmUgYWNjb3JkaW5nbHkgKGxlZnQgJiByaWdodCB2cy4gdXAgJiBkb3duKVxuICAgKi9cbiAgb3JpZW50YXRpb24/OiBPcmllbnRhdGlvbjtcbiAgLyoqXG4gICAqIFRoZSBkaXJlY3Rpb24gb2YgbmF2aWdhdGlvbiBiZXR3ZWVuIGl0ZW1zLlxuICAgKi9cbiAgZGlyPzogRGlyZWN0aW9uO1xuICAvKipcbiAgICogV2hldGhlciBrZXlib2FyZCBuYXZpZ2F0aW9uIHNob3VsZCBsb29wIGFyb3VuZFxuICAgKiBAZGVmYXVsdFZhbHVlIGZhbHNlXG4gICAqL1xuICBsb29wPzogYm9vbGVhbjtcbn1cblxudHlwZSBSb3ZpbmdDb250ZXh0VmFsdWUgPSBSb3ZpbmdGb2N1c0dyb3VwT3B0aW9ucyAmIHtcbiAgY3VycmVudFRhYlN0b3BJZDogc3RyaW5nIHwgbnVsbDtcbiAgb25JdGVtRm9jdXModGFiU3RvcElkOiBzdHJpbmcpOiB2b2lkO1xuICBvbkl0ZW1TaGlmdFRhYigpOiB2b2lkO1xuICBvbkZvY3VzYWJsZUl0ZW1BZGQoKTogdm9pZDtcbiAgb25Gb2N1c2FibGVJdGVtUmVtb3ZlKCk6IHZvaWQ7XG59O1xuXG5jb25zdCBbUm92aW5nRm9jdXNQcm92aWRlciwgdXNlUm92aW5nRm9jdXNDb250ZXh0XSA9XG4gIGNyZWF0ZVJvdmluZ0ZvY3VzR3JvdXBDb250ZXh0PFJvdmluZ0NvbnRleHRWYWx1ZT4oR1JPVVBfTkFNRSk7XG5cbnR5cGUgUm92aW5nRm9jdXNHcm91cEVsZW1lbnQgPSBSb3ZpbmdGb2N1c0dyb3VwSW1wbEVsZW1lbnQ7XG5pbnRlcmZhY2UgUm92aW5nRm9jdXNHcm91cFByb3BzIGV4dGVuZHMgUm92aW5nRm9jdXNHcm91cEltcGxQcm9wcyB7fVxuXG5jb25zdCBSb3ZpbmdGb2N1c0dyb3VwID0gUmVhY3QuZm9yd2FyZFJlZjxSb3ZpbmdGb2N1c0dyb3VwRWxlbWVudCwgUm92aW5nRm9jdXNHcm91cFByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxSb3ZpbmdGb2N1c0dyb3VwUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgPENvbGxlY3Rpb24uUHJvdmlkZXIgc2NvcGU9e3Byb3BzLl9fc2NvcGVSb3ZpbmdGb2N1c0dyb3VwfT5cbiAgICAgICAgPENvbGxlY3Rpb24uU2xvdCBzY29wZT17cHJvcHMuX19zY29wZVJvdmluZ0ZvY3VzR3JvdXB9PlxuICAgICAgICAgIDxSb3ZpbmdGb2N1c0dyb3VwSW1wbCB7Li4ucHJvcHN9IHJlZj17Zm9yd2FyZGVkUmVmfSAvPlxuICAgICAgICA8L0NvbGxlY3Rpb24uU2xvdD5cbiAgICAgIDwvQ29sbGVjdGlvbi5Qcm92aWRlcj5cbiAgICApO1xuICB9XG4pO1xuXG5Sb3ZpbmdGb2N1c0dyb3VwLmRpc3BsYXlOYW1lID0gR1JPVVBfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG50eXBlIFJvdmluZ0ZvY3VzR3JvdXBJbXBsRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5kaXY+O1xudHlwZSBQcmltaXRpdmVEaXZQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgUHJpbWl0aXZlLmRpdj47XG5pbnRlcmZhY2UgUm92aW5nRm9jdXNHcm91cEltcGxQcm9wc1xuICBleHRlbmRzIE9taXQ8UHJpbWl0aXZlRGl2UHJvcHMsICdkaXInPixcbiAgICBSb3ZpbmdGb2N1c0dyb3VwT3B0aW9ucyB7XG4gIGN1cnJlbnRUYWJTdG9wSWQ/OiBzdHJpbmcgfCBudWxsO1xuICBkZWZhdWx0Q3VycmVudFRhYlN0b3BJZD86IHN0cmluZztcbiAgb25DdXJyZW50VGFiU3RvcElkQ2hhbmdlPzogKHRhYlN0b3BJZDogc3RyaW5nIHwgbnVsbCkgPT4gdm9pZDtcbiAgb25FbnRyeUZvY3VzPzogKGV2ZW50OiBFdmVudCkgPT4gdm9pZDtcbiAgcHJldmVudFNjcm9sbE9uRW50cnlGb2N1cz86IGJvb2xlYW47XG59XG5cbmNvbnN0IFJvdmluZ0ZvY3VzR3JvdXBJbXBsID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgUm92aW5nRm9jdXNHcm91cEltcGxFbGVtZW50LFxuICBSb3ZpbmdGb2N1c0dyb3VwSW1wbFByb3BzXG4+KChwcm9wczogU2NvcGVkUHJvcHM8Um92aW5nRm9jdXNHcm91cEltcGxQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICBjb25zdCB7XG4gICAgX19zY29wZVJvdmluZ0ZvY3VzR3JvdXAsXG4gICAgb3JpZW50YXRpb24sXG4gICAgbG9vcCA9IGZhbHNlLFxuICAgIGRpcixcbiAgICBjdXJyZW50VGFiU3RvcElkOiBjdXJyZW50VGFiU3RvcElkUHJvcCxcbiAgICBkZWZhdWx0Q3VycmVudFRhYlN0b3BJZCxcbiAgICBvbkN1cnJlbnRUYWJTdG9wSWRDaGFuZ2UsXG4gICAgb25FbnRyeUZvY3VzLFxuICAgIHByZXZlbnRTY3JvbGxPbkVudHJ5Rm9jdXMgPSBmYWxzZSxcbiAgICAuLi5ncm91cFByb3BzXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgcmVmID0gUmVhY3QudXNlUmVmPFJvdmluZ0ZvY3VzR3JvdXBJbXBsRWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIHJlZik7XG4gIGNvbnN0IGRpcmVjdGlvbiA9IHVzZURpcmVjdGlvbihkaXIpO1xuICBjb25zdCBbY3VycmVudFRhYlN0b3BJZCA9IG51bGwsIHNldEN1cnJlbnRUYWJTdG9wSWRdID0gdXNlQ29udHJvbGxhYmxlU3RhdGUoe1xuICAgIHByb3A6IGN1cnJlbnRUYWJTdG9wSWRQcm9wLFxuICAgIGRlZmF1bHRQcm9wOiBkZWZhdWx0Q3VycmVudFRhYlN0b3BJZCxcbiAgICBvbkNoYW5nZTogb25DdXJyZW50VGFiU3RvcElkQ2hhbmdlLFxuICB9KTtcbiAgY29uc3QgW2lzVGFiYmluZ0JhY2tPdXQsIHNldElzVGFiYmluZ0JhY2tPdXRdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBoYW5kbGVFbnRyeUZvY3VzID0gdXNlQ2FsbGJhY2tSZWYob25FbnRyeUZvY3VzKTtcbiAgY29uc3QgZ2V0SXRlbXMgPSB1c2VDb2xsZWN0aW9uKF9fc2NvcGVSb3ZpbmdGb2N1c0dyb3VwKTtcbiAgY29uc3QgaXNDbGlja0ZvY3VzUmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgY29uc3QgW2ZvY3VzYWJsZUl0ZW1zQ291bnQsIHNldEZvY3VzYWJsZUl0ZW1zQ291bnRdID0gUmVhY3QudXNlU3RhdGUoMCk7XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBub2RlID0gcmVmLmN1cnJlbnQ7XG4gICAgaWYgKG5vZGUpIHtcbiAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcihFTlRSWV9GT0NVUywgaGFuZGxlRW50cnlGb2N1cyk7XG4gICAgICByZXR1cm4gKCkgPT4gbm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKEVOVFJZX0ZPQ1VTLCBoYW5kbGVFbnRyeUZvY3VzKTtcbiAgICB9XG4gIH0sIFtoYW5kbGVFbnRyeUZvY3VzXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8Um92aW5nRm9jdXNQcm92aWRlclxuICAgICAgc2NvcGU9e19fc2NvcGVSb3ZpbmdGb2N1c0dyb3VwfVxuICAgICAgb3JpZW50YXRpb249e29yaWVudGF0aW9ufVxuICAgICAgZGlyPXtkaXJlY3Rpb259XG4gICAgICBsb29wPXtsb29wfVxuICAgICAgY3VycmVudFRhYlN0b3BJZD17Y3VycmVudFRhYlN0b3BJZH1cbiAgICAgIG9uSXRlbUZvY3VzPXtSZWFjdC51c2VDYWxsYmFjayhcbiAgICAgICAgKHRhYlN0b3BJZCkgPT4gc2V0Q3VycmVudFRhYlN0b3BJZCh0YWJTdG9wSWQpLFxuICAgICAgICBbc2V0Q3VycmVudFRhYlN0b3BJZF1cbiAgICAgICl9XG4gICAgICBvbkl0ZW1TaGlmdFRhYj17UmVhY3QudXNlQ2FsbGJhY2soKCkgPT4gc2V0SXNUYWJiaW5nQmFja091dCh0cnVlKSwgW10pfVxuICAgICAgb25Gb2N1c2FibGVJdGVtQWRkPXtSZWFjdC51c2VDYWxsYmFjayhcbiAgICAgICAgKCkgPT4gc2V0Rm9jdXNhYmxlSXRlbXNDb3VudCgocHJldkNvdW50KSA9PiBwcmV2Q291bnQgKyAxKSxcbiAgICAgICAgW11cbiAgICAgICl9XG4gICAgICBvbkZvY3VzYWJsZUl0ZW1SZW1vdmU9e1JlYWN0LnVzZUNhbGxiYWNrKFxuICAgICAgICAoKSA9PiBzZXRGb2N1c2FibGVJdGVtc0NvdW50KChwcmV2Q291bnQpID0+IHByZXZDb3VudCAtIDEpLFxuICAgICAgICBbXVxuICAgICAgKX1cbiAgICA+XG4gICAgICA8UHJpbWl0aXZlLmRpdlxuICAgICAgICB0YWJJbmRleD17aXNUYWJiaW5nQmFja091dCB8fCBmb2N1c2FibGVJdGVtc0NvdW50ID09PSAwID8gLTEgOiAwfVxuICAgICAgICBkYXRhLW9yaWVudGF0aW9uPXtvcmllbnRhdGlvbn1cbiAgICAgICAgey4uLmdyb3VwUHJvcHN9XG4gICAgICAgIHJlZj17Y29tcG9zZWRSZWZzfVxuICAgICAgICBzdHlsZT17eyBvdXRsaW5lOiAnbm9uZScsIC4uLnByb3BzLnN0eWxlIH19XG4gICAgICAgIG9uTW91c2VEb3duPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbk1vdXNlRG93biwgKCkgPT4ge1xuICAgICAgICAgIGlzQ2xpY2tGb2N1c1JlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgfSl9XG4gICAgICAgIG9uRm9jdXM9e2NvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uRm9jdXMsIChldmVudCkgPT4ge1xuICAgICAgICAgIC8vIFdlIG5vcm1hbGx5IHdvdWxkbid0IG5lZWQgdGhpcyBjaGVjaywgYmVjYXVzZSB3ZSBhbHJlYWR5IGNoZWNrXG4gICAgICAgICAgLy8gdGhhdCB0aGUgZm9jdXMgaXMgb24gdGhlIGN1cnJlbnQgdGFyZ2V0IGFuZCBub3QgYnViYmxpbmcgdG8gaXQuXG4gICAgICAgICAgLy8gV2UgZG8gdGhpcyBiZWNhdXNlIFNhZmFyaSBkb2Vzbid0IGZvY3VzIGJ1dHRvbnMgd2hlbiBjbGlja2VkLCBhbmRcbiAgICAgICAgICAvLyBpbnN0ZWFkLCB0aGUgd3JhcHBlciB3aWxsIGdldCBmb2N1c2VkIGFuZCBub3QgdGhyb3VnaCBhIGJ1YmJsaW5nIGV2ZW50LlxuICAgICAgICAgIGNvbnN0IGlzS2V5Ym9hcmRGb2N1cyA9ICFpc0NsaWNrRm9jdXNSZWYuY3VycmVudDtcblxuICAgICAgICAgIGlmIChldmVudC50YXJnZXQgPT09IGV2ZW50LmN1cnJlbnRUYXJnZXQgJiYgaXNLZXlib2FyZEZvY3VzICYmICFpc1RhYmJpbmdCYWNrT3V0KSB7XG4gICAgICAgICAgICBjb25zdCBlbnRyeUZvY3VzRXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoRU5UUllfRk9DVVMsIEVWRU5UX09QVElPTlMpO1xuICAgICAgICAgICAgZXZlbnQuY3VycmVudFRhcmdldC5kaXNwYXRjaEV2ZW50KGVudHJ5Rm9jdXNFdmVudCk7XG5cbiAgICAgICAgICAgIGlmICghZW50cnlGb2N1c0V2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICAgICAgY29uc3QgaXRlbXMgPSBnZXRJdGVtcygpLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5mb2N1c2FibGUpO1xuICAgICAgICAgICAgICBjb25zdCBhY3RpdmVJdGVtID0gaXRlbXMuZmluZCgoaXRlbSkgPT4gaXRlbS5hY3RpdmUpO1xuICAgICAgICAgICAgICBjb25zdCBjdXJyZW50SXRlbSA9IGl0ZW1zLmZpbmQoKGl0ZW0pID0+IGl0ZW0uaWQgPT09IGN1cnJlbnRUYWJTdG9wSWQpO1xuICAgICAgICAgICAgICBjb25zdCBjYW5kaWRhdGVJdGVtcyA9IFthY3RpdmVJdGVtLCBjdXJyZW50SXRlbSwgLi4uaXRlbXNdLmZpbHRlcihcbiAgICAgICAgICAgICAgICBCb29sZWFuXG4gICAgICAgICAgICAgICkgYXMgdHlwZW9mIGl0ZW1zO1xuICAgICAgICAgICAgICBjb25zdCBjYW5kaWRhdGVOb2RlcyA9IGNhbmRpZGF0ZUl0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS5yZWYuY3VycmVudCEpO1xuICAgICAgICAgICAgICBmb2N1c0ZpcnN0KGNhbmRpZGF0ZU5vZGVzLCBwcmV2ZW50U2Nyb2xsT25FbnRyeUZvY3VzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpc0NsaWNrRm9jdXNSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICB9KX1cbiAgICAgICAgb25CbHVyPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkJsdXIsICgpID0+IHNldElzVGFiYmluZ0JhY2tPdXQoZmFsc2UpKX1cbiAgICAgIC8+XG4gICAgPC9Sb3ZpbmdGb2N1c1Byb3ZpZGVyPlxuICApO1xufSk7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFJvdmluZ0ZvY3VzR3JvdXBJdGVtXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IElURU1fTkFNRSA9ICdSb3ZpbmdGb2N1c0dyb3VwSXRlbSc7XG5cbnR5cGUgUm92aW5nRm9jdXNJdGVtRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5zcGFuPjtcbnR5cGUgUHJpbWl0aXZlU3BhblByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBQcmltaXRpdmUuc3Bhbj47XG5pbnRlcmZhY2UgUm92aW5nRm9jdXNJdGVtUHJvcHMgZXh0ZW5kcyBQcmltaXRpdmVTcGFuUHJvcHMge1xuICB0YWJTdG9wSWQ/OiBzdHJpbmc7XG4gIGZvY3VzYWJsZT86IGJvb2xlYW47XG4gIGFjdGl2ZT86IGJvb2xlYW47XG59XG5cbmNvbnN0IFJvdmluZ0ZvY3VzR3JvdXBJdGVtID0gUmVhY3QuZm9yd2FyZFJlZjxSb3ZpbmdGb2N1c0l0ZW1FbGVtZW50LCBSb3ZpbmdGb2N1c0l0ZW1Qcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8Um92aW5nRm9jdXNJdGVtUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBfX3Njb3BlUm92aW5nRm9jdXNHcm91cCxcbiAgICAgIGZvY3VzYWJsZSA9IHRydWUsXG4gICAgICBhY3RpdmUgPSBmYWxzZSxcbiAgICAgIHRhYlN0b3BJZCxcbiAgICAgIC4uLml0ZW1Qcm9wc1xuICAgIH0gPSBwcm9wcztcbiAgICBjb25zdCBhdXRvSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IGlkID0gdGFiU3RvcElkIHx8IGF1dG9JZDtcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlUm92aW5nRm9jdXNDb250ZXh0KElURU1fTkFNRSwgX19zY29wZVJvdmluZ0ZvY3VzR3JvdXApO1xuICAgIGNvbnN0IGlzQ3VycmVudFRhYlN0b3AgPSBjb250ZXh0LmN1cnJlbnRUYWJTdG9wSWQgPT09IGlkO1xuICAgIGNvbnN0IGdldEl0ZW1zID0gdXNlQ29sbGVjdGlvbihfX3Njb3BlUm92aW5nRm9jdXNHcm91cCk7XG5cbiAgICBjb25zdCB7IG9uRm9jdXNhYmxlSXRlbUFkZCwgb25Gb2N1c2FibGVJdGVtUmVtb3ZlIH0gPSBjb250ZXh0O1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChmb2N1c2FibGUpIHtcbiAgICAgICAgb25Gb2N1c2FibGVJdGVtQWRkKCk7XG4gICAgICAgIHJldHVybiAoKSA9PiBvbkZvY3VzYWJsZUl0ZW1SZW1vdmUoKTtcbiAgICAgIH1cbiAgICB9LCBbZm9jdXNhYmxlLCBvbkZvY3VzYWJsZUl0ZW1BZGQsIG9uRm9jdXNhYmxlSXRlbVJlbW92ZV0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxDb2xsZWN0aW9uLkl0ZW1TbG90XG4gICAgICAgIHNjb3BlPXtfX3Njb3BlUm92aW5nRm9jdXNHcm91cH1cbiAgICAgICAgaWQ9e2lkfVxuICAgICAgICBmb2N1c2FibGU9e2ZvY3VzYWJsZX1cbiAgICAgICAgYWN0aXZlPXthY3RpdmV9XG4gICAgICA+XG4gICAgICAgIDxQcmltaXRpdmUuc3BhblxuICAgICAgICAgIHRhYkluZGV4PXtpc0N1cnJlbnRUYWJTdG9wID8gMCA6IC0xfVxuICAgICAgICAgIGRhdGEtb3JpZW50YXRpb249e2NvbnRleHQub3JpZW50YXRpb259XG4gICAgICAgICAgey4uLml0ZW1Qcm9wc31cbiAgICAgICAgICByZWY9e2ZvcndhcmRlZFJlZn1cbiAgICAgICAgICBvbk1vdXNlRG93bj17Y29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25Nb3VzZURvd24sIChldmVudCkgPT4ge1xuICAgICAgICAgICAgLy8gV2UgcHJldmVudCBmb2N1c2luZyBub24tZm9jdXNhYmxlIGl0ZW1zIG9uIGBtb3VzZWRvd25gLlxuICAgICAgICAgICAgLy8gRXZlbiB0aG91Z2ggdGhlIGl0ZW0gaGFzIHRhYkluZGV4PXstMX0sIHRoYXQgb25seSBtZWFucyB0YWtlIGl0IG91dCBvZiB0aGUgdGFiIG9yZGVyLlxuICAgICAgICAgICAgaWYgKCFmb2N1c2FibGUpIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAvLyBTYWZhcmkgZG9lc24ndCBmb2N1cyBhIGJ1dHRvbiB3aGVuIGNsaWNrZWQgc28gd2UgcnVuIG91ciBsb2dpYyBvbiBtb3VzZWRvd24gYWxzb1xuICAgICAgICAgICAgZWxzZSBjb250ZXh0Lm9uSXRlbUZvY3VzKGlkKTtcbiAgICAgICAgICB9KX1cbiAgICAgICAgICBvbkZvY3VzPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbkZvY3VzLCAoKSA9PiBjb250ZXh0Lm9uSXRlbUZvY3VzKGlkKSl9XG4gICAgICAgICAgb25LZXlEb3duPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbktleURvd24sIChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ1RhYicgJiYgZXZlbnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgICAgY29udGV4dC5vbkl0ZW1TaGlmdFRhYigpO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChldmVudC50YXJnZXQgIT09IGV2ZW50LmN1cnJlbnRUYXJnZXQpIHJldHVybjtcblxuICAgICAgICAgICAgY29uc3QgZm9jdXNJbnRlbnQgPSBnZXRGb2N1c0ludGVudChldmVudCwgY29udGV4dC5vcmllbnRhdGlvbiwgY29udGV4dC5kaXIpO1xuXG4gICAgICAgICAgICBpZiAoZm9jdXNJbnRlbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBpZiAoZXZlbnQubWV0YUtleSB8fCBldmVudC5jdHJsS2V5IHx8IGV2ZW50LmFsdEtleSB8fCBldmVudC5zaGlmdEtleSkgcmV0dXJuO1xuICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBjb25zdCBpdGVtcyA9IGdldEl0ZW1zKCkuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmZvY3VzYWJsZSk7XG4gICAgICAgICAgICAgIGxldCBjYW5kaWRhdGVOb2RlcyA9IGl0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS5yZWYuY3VycmVudCEpO1xuXG4gICAgICAgICAgICAgIGlmIChmb2N1c0ludGVudCA9PT0gJ2xhc3QnKSBjYW5kaWRhdGVOb2Rlcy5yZXZlcnNlKCk7XG4gICAgICAgICAgICAgIGVsc2UgaWYgKGZvY3VzSW50ZW50ID09PSAncHJldicgfHwgZm9jdXNJbnRlbnQgPT09ICduZXh0Jykge1xuICAgICAgICAgICAgICAgIGlmIChmb2N1c0ludGVudCA9PT0gJ3ByZXYnKSBjYW5kaWRhdGVOb2Rlcy5yZXZlcnNlKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gY2FuZGlkYXRlTm9kZXMuaW5kZXhPZihldmVudC5jdXJyZW50VGFyZ2V0KTtcbiAgICAgICAgICAgICAgICBjYW5kaWRhdGVOb2RlcyA9IGNvbnRleHQubG9vcFxuICAgICAgICAgICAgICAgICAgPyB3cmFwQXJyYXkoY2FuZGlkYXRlTm9kZXMsIGN1cnJlbnRJbmRleCArIDEpXG4gICAgICAgICAgICAgICAgICA6IGNhbmRpZGF0ZU5vZGVzLnNsaWNlKGN1cnJlbnRJbmRleCArIDEpO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAqIEltcGVyYXRpdmUgZm9jdXMgZHVyaW5nIGtleWRvd24gaXMgcmlza3kgc28gd2UgcHJldmVudCBSZWFjdCdzIGJhdGNoaW5nIHVwZGF0ZXNcbiAgICAgICAgICAgICAgICogdG8gYXZvaWQgcG90ZW50aWFsIGJ1Z3MuIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8yMDMzMlxuICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBmb2N1c0ZpcnN0KGNhbmRpZGF0ZU5vZGVzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSl9XG4gICAgICAgIC8+XG4gICAgICA8L0NvbGxlY3Rpb24uSXRlbVNsb3Q+XG4gICAgKTtcbiAgfVxuKTtcblxuUm92aW5nRm9jdXNHcm91cEl0ZW0uZGlzcGxheU5hbWUgPSBJVEVNX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLy8gcHJldHRpZXItaWdub3JlXG5jb25zdCBNQVBfS0VZX1RPX0ZPQ1VTX0lOVEVOVDogUmVjb3JkPHN0cmluZywgRm9jdXNJbnRlbnQ+ID0ge1xuICBBcnJvd0xlZnQ6ICdwcmV2JywgQXJyb3dVcDogJ3ByZXYnLFxuICBBcnJvd1JpZ2h0OiAnbmV4dCcsIEFycm93RG93bjogJ25leHQnLFxuICBQYWdlVXA6ICdmaXJzdCcsIEhvbWU6ICdmaXJzdCcsXG4gIFBhZ2VEb3duOiAnbGFzdCcsIEVuZDogJ2xhc3QnLFxufTtcblxuZnVuY3Rpb24gZ2V0RGlyZWN0aW9uQXdhcmVLZXkoa2V5OiBzdHJpbmcsIGRpcj86IERpcmVjdGlvbikge1xuICBpZiAoZGlyICE9PSAncnRsJykgcmV0dXJuIGtleTtcbiAgcmV0dXJuIGtleSA9PT0gJ0Fycm93TGVmdCcgPyAnQXJyb3dSaWdodCcgOiBrZXkgPT09ICdBcnJvd1JpZ2h0JyA/ICdBcnJvd0xlZnQnIDoga2V5O1xufVxuXG50eXBlIEZvY3VzSW50ZW50ID0gJ2ZpcnN0JyB8ICdsYXN0JyB8ICdwcmV2JyB8ICduZXh0JztcblxuZnVuY3Rpb24gZ2V0Rm9jdXNJbnRlbnQoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQsIG9yaWVudGF0aW9uPzogT3JpZW50YXRpb24sIGRpcj86IERpcmVjdGlvbikge1xuICBjb25zdCBrZXkgPSBnZXREaXJlY3Rpb25Bd2FyZUtleShldmVudC5rZXksIGRpcik7XG4gIGlmIChvcmllbnRhdGlvbiA9PT0gJ3ZlcnRpY2FsJyAmJiBbJ0Fycm93TGVmdCcsICdBcnJvd1JpZ2h0J10uaW5jbHVkZXMoa2V5KSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgaWYgKG9yaWVudGF0aW9uID09PSAnaG9yaXpvbnRhbCcgJiYgWydBcnJvd1VwJywgJ0Fycm93RG93biddLmluY2x1ZGVzKGtleSkpIHJldHVybiB1bmRlZmluZWQ7XG4gIHJldHVybiBNQVBfS0VZX1RPX0ZPQ1VTX0lOVEVOVFtrZXldO1xufVxuXG5mdW5jdGlvbiBmb2N1c0ZpcnN0KGNhbmRpZGF0ZXM6IEhUTUxFbGVtZW50W10sIHByZXZlbnRTY3JvbGwgPSBmYWxzZSkge1xuICBjb25zdCBQUkVWSU9VU0xZX0ZPQ1VTRURfRUxFTUVOVCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gIGZvciAoY29uc3QgY2FuZGlkYXRlIG9mIGNhbmRpZGF0ZXMpIHtcbiAgICAvLyBpZiBmb2N1cyBpcyBhbHJlYWR5IHdoZXJlIHdlIHdhbnQgdG8gZ28sIHdlIGRvbid0IHdhbnQgdG8ga2VlcCBnb2luZyB0aHJvdWdoIHRoZSBjYW5kaWRhdGVzXG4gICAgaWYgKGNhbmRpZGF0ZSA9PT0gUFJFVklPVVNMWV9GT0NVU0VEX0VMRU1FTlQpIHJldHVybjtcbiAgICBjYW5kaWRhdGUuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsIH0pO1xuICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ICE9PSBQUkVWSU9VU0xZX0ZPQ1VTRURfRUxFTUVOVCkgcmV0dXJuO1xuICB9XG59XG5cbi8qKlxuICogV3JhcHMgYW4gYXJyYXkgYXJvdW5kIGl0c2VsZiBhdCBhIGdpdmVuIHN0YXJ0IGluZGV4XG4gKiBFeGFtcGxlOiBgd3JhcEFycmF5KFsnYScsICdiJywgJ2MnLCAnZCddLCAyKSA9PT0gWydjJywgJ2QnLCAnYScsICdiJ11gXG4gKi9cbmZ1bmN0aW9uIHdyYXBBcnJheTxUPihhcnJheTogVFtdLCBzdGFydEluZGV4OiBudW1iZXIpIHtcbiAgcmV0dXJuIGFycmF5Lm1hcCgoXywgaW5kZXgpID0+IGFycmF5WyhzdGFydEluZGV4ICsgaW5kZXgpICUgYXJyYXkubGVuZ3RoXSk7XG59XG5cbmNvbnN0IFJvb3QgPSBSb3ZpbmdGb2N1c0dyb3VwO1xuY29uc3QgSXRlbSA9IFJvdmluZ0ZvY3VzR3JvdXBJdGVtO1xuXG5leHBvcnQge1xuICBjcmVhdGVSb3ZpbmdGb2N1c0dyb3VwU2NvcGUsXG4gIC8vXG4gIFJvdmluZ0ZvY3VzR3JvdXAsXG4gIFJvdmluZ0ZvY3VzR3JvdXBJdGVtLFxuICAvL1xuICBSb290LFxuICBJdGVtLFxufTtcbmV4cG9ydCB0eXBlIHsgUm92aW5nRm9jdXNHcm91cFByb3BzLCBSb3ZpbmdGb2N1c0l0ZW1Qcm9wcyB9O1xuIl0sIm5hbWVzIjpbIlJlYWN0IiwiY29tcG9zZUV2ZW50SGFuZGxlcnMiLCJjcmVhdGVDb2xsZWN0aW9uIiwidXNlQ29tcG9zZWRSZWZzIiwiY3JlYXRlQ29udGV4dFNjb3BlIiwidXNlSWQiLCJQcmltaXRpdmUiLCJ1c2VDYWxsYmFja1JlZiIsInVzZUNvbnRyb2xsYWJsZVN0YXRlIiwidXNlRGlyZWN0aW9uIiwianN4IiwiRU5UUllfRk9DVVMiLCJFVkVOVF9PUFRJT05TIiwiYnViYmxlcyIsImNhbmNlbGFibGUiLCJHUk9VUF9OQU1FIiwiQ29sbGVjdGlvbiIsInVzZUNvbGxlY3Rpb24iLCJjcmVhdGVDb2xsZWN0aW9uU2NvcGUiLCJjcmVhdGVSb3ZpbmdGb2N1c0dyb3VwQ29udGV4dCIsImNyZWF0ZVJvdmluZ0ZvY3VzR3JvdXBTY29wZSIsIlJvdmluZ0ZvY3VzUHJvdmlkZXIiLCJ1c2VSb3ZpbmdGb2N1c0NvbnRleHQiLCJSb3ZpbmdGb2N1c0dyb3VwIiwiZm9yd2FyZFJlZiIsInByb3BzIiwiZm9yd2FyZGVkUmVmIiwiUHJvdmlkZXIiLCJzY29wZSIsIl9fc2NvcGVSb3ZpbmdGb2N1c0dyb3VwIiwiY2hpbGRyZW4iLCJTbG90IiwiUm92aW5nRm9jdXNHcm91cEltcGwiLCJyZWYiLCJkaXNwbGF5TmFtZSIsIm9yaWVudGF0aW9uIiwibG9vcCIsImRpciIsImN1cnJlbnRUYWJTdG9wSWQiLCJjdXJyZW50VGFiU3RvcElkUHJvcCIsImRlZmF1bHRDdXJyZW50VGFiU3RvcElkIiwib25DdXJyZW50VGFiU3RvcElkQ2hhbmdlIiwib25FbnRyeUZvY3VzIiwicHJldmVudFNjcm9sbE9uRW50cnlGb2N1cyIsImdyb3VwUHJvcHMiLCJ1c2VSZWYiLCJjb21wb3NlZFJlZnMiLCJkaXJlY3Rpb24iLCJzZXRDdXJyZW50VGFiU3RvcElkIiwicHJvcCIsImRlZmF1bHRQcm9wIiwib25DaGFuZ2UiLCJpc1RhYmJpbmdCYWNrT3V0Iiwic2V0SXNUYWJiaW5nQmFja091dCIsInVzZVN0YXRlIiwiaGFuZGxlRW50cnlGb2N1cyIsImdldEl0ZW1zIiwiaXNDbGlja0ZvY3VzUmVmIiwiZm9jdXNhYmxlSXRlbXNDb3VudCIsInNldEZvY3VzYWJsZUl0ZW1zQ291bnQiLCJ1c2VFZmZlY3QiLCJub2RlIiwiY3VycmVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwib25JdGVtRm9jdXMiLCJ1c2VDYWxsYmFjayIsInRhYlN0b3BJZCIsIm9uSXRlbVNoaWZ0VGFiIiwib25Gb2N1c2FibGVJdGVtQWRkIiwicHJldkNvdW50Iiwib25Gb2N1c2FibGVJdGVtUmVtb3ZlIiwiZGl2IiwidGFiSW5kZXgiLCJzdHlsZSIsIm91dGxpbmUiLCJvbk1vdXNlRG93biIsIm9uRm9jdXMiLCJldmVudCIsImlzS2V5Ym9hcmRGb2N1cyIsInRhcmdldCIsImN1cnJlbnRUYXJnZXQiLCJlbnRyeUZvY3VzRXZlbnQiLCJDdXN0b21FdmVudCIsImRpc3BhdGNoRXZlbnQiLCJkZWZhdWx0UHJldmVudGVkIiwiaXRlbXMiLCJmaWx0ZXIiLCJpdGVtIiwiZm9jdXNhYmxlIiwiYWN0aXZlSXRlbSIsImZpbmQiLCJhY3RpdmUiLCJjdXJyZW50SXRlbSIsImlkIiwiY2FuZGlkYXRlSXRlbXMiLCJCb29sZWFuIiwiY2FuZGlkYXRlTm9kZXMiLCJtYXAiLCJmb2N1c0ZpcnN0Iiwib25CbHVyIiwiSVRFTV9OQU1FIiwiUm92aW5nRm9jdXNHcm91cEl0ZW0iLCJpdGVtUHJvcHMiLCJhdXRvSWQiLCJjb250ZXh0IiwiaXNDdXJyZW50VGFiU3RvcCIsIkl0ZW1TbG90Iiwic3BhbiIsInByZXZlbnREZWZhdWx0Iiwib25LZXlEb3duIiwia2V5Iiwic2hpZnRLZXkiLCJmb2N1c0ludGVudCIsImdldEZvY3VzSW50ZW50IiwibWV0YUtleSIsImN0cmxLZXkiLCJhbHRLZXkiLCJyZXZlcnNlIiwiY3VycmVudEluZGV4IiwiaW5kZXhPZiIsIndyYXBBcnJheSIsInNsaWNlIiwic2V0VGltZW91dCIsIk1BUF9LRVlfVE9fRk9DVVNfSU5URU5UIiwiQXJyb3dMZWZ0IiwiQXJyb3dVcCIsIkFycm93UmlnaHQiLCJBcnJvd0Rvd24iLCJQYWdlVXAiLCJIb21lIiwiUGFnZURvd24iLCJFbmQiLCJnZXREaXJlY3Rpb25Bd2FyZUtleSIsImluY2x1ZGVzIiwiY2FuZGlkYXRlcyIsInByZXZlbnRTY3JvbGwiLCJQUkVWSU9VU0xZX0ZPQ1VTRURfRUxFTUVOVCIsImRvY3VtZW50IiwiYWN0aXZlRWxlbWVudCIsImNhbmRpZGF0ZSIsImZvY3VzIiwiYXJyYXkiLCJzdGFydEluZGV4IiwiXyIsImluZGV4IiwibGVuZ3RoIiwiUm9vdCIsIkl0ZW0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/react-roving-focus/dist/index.mjs\n"); /***/ }), /***/ "(ssr)/./node_modules/@radix-ui/react-select/dist/index.mjs": /*!************************************************************!*\ !*** ./node_modules/@radix-ui/react-select/dist/index.mjs ***! \************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Arrow: () => (/* binding */ Arrow2),\n/* harmony export */ Content: () => (/* binding */ Content2),\n/* harmony export */ Group: () => (/* binding */ Group),\n/* harmony export */ Icon: () => (/* binding */ Icon),\n/* harmony export */ Item: () => (/* binding */ Item),\n/* harmony export */ ItemIndicator: () => (/* binding */ ItemIndicator),\n/* harmony export */ ItemText: () => (/* binding */ ItemText),\n/* harmony export */ Label: () => (/* binding */ Label),\n/* harmony export */ Portal: () => (/* binding */ Portal),\n/* harmony export */ Root: () => (/* binding */ Root2),\n/* harmony export */ ScrollDownButton: () => (/* binding */ ScrollDownButton),\n/* harmony export */ ScrollUpButton: () => (/* binding */ ScrollUpButton),\n/* harmony export */ Select: () => (/* binding */ Select),\n/* harmony export */ SelectArrow: () => (/* binding */ SelectArrow),\n/* harmony export */ SelectContent: () => (/* binding */ SelectContent),\n/* harmony export */ SelectGroup: () => (/* binding */ SelectGroup),\n/* harmony export */ SelectIcon: () => (/* binding */ SelectIcon),\n/* harmony export */ SelectItem: () => (/* binding */ SelectItem),\n/* harmony export */ SelectItemIndicator: () => (/* binding */ SelectItemIndicator),\n/* harmony export */ SelectItemText: () => (/* binding */ SelectItemText),\n/* harmony export */ SelectLabel: () => (/* binding */ SelectLabel),\n/* harmony export */ SelectPortal: () => (/* binding */ SelectPortal),\n/* harmony export */ SelectScrollDownButton: () => (/* binding */ SelectScrollDownButton),\n/* harmony export */ SelectScrollUpButton: () => (/* binding */ SelectScrollUpButton),\n/* harmony export */ SelectSeparator: () => (/* binding */ SelectSeparator),\n/* harmony export */ SelectTrigger: () => (/* binding */ SelectTrigger),\n/* harmony export */ SelectValue: () => (/* binding */ SelectValue),\n/* harmony export */ SelectViewport: () => (/* binding */ SelectViewport),\n/* harmony export */ Separator: () => (/* binding */ Separator),\n/* harmony export */ Trigger: () => (/* binding */ Trigger),\n/* harmony export */ Value: () => (/* binding */ Value),\n/* harmony export */ Viewport: () => (/* binding */ Viewport),\n/* harmony export */ createSelectScope: () => (/* binding */ createSelectScope)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-dom.js\");\n/* harmony import */ var _radix_ui_number__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! @radix-ui/number */ \"(ssr)/./node_modules/@radix-ui/number/dist/index.mjs\");\n/* harmony import */ var _radix_ui_primitive__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @radix-ui/primitive */ \"(ssr)/./node_modules/@radix-ui/primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_collection__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-collection */ \"(ssr)/./node_modules/@radix-ui/react-collection/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(ssr)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-context */ \"(ssr)/./node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_direction__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @radix-ui/react-direction */ \"(ssr)/./node_modules/@radix-ui/react-direction/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_dismissable_layer__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! @radix-ui/react-dismissable-layer */ \"(ssr)/./node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_focus_guards__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @radix-ui/react-focus-guards */ \"(ssr)/./node_modules/@radix-ui/react-focus-guards/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_focus_scope__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @radix-ui/react-focus-scope */ \"(ssr)/./node_modules/@radix-ui/react-focus-scope/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @radix-ui/react-id */ \"(ssr)/./node_modules/@radix-ui/react-id/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-popper */ \"(ssr)/./node_modules/@radix-ui/react-popper/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_portal__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @radix-ui/react-portal */ \"(ssr)/./node_modules/@radix-ui/react-portal/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(ssr)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @radix-ui/react-slot */ \"(ssr)/./node_modules/@radix-ui/react-slot/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(ssr)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @radix-ui/react-use-controllable-state */ \"(ssr)/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @radix-ui/react-use-layout-effect */ \"(ssr)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_previous__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! @radix-ui/react-use-previous */ \"(ssr)/./node_modules/@radix-ui/react-use-previous/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_visually_hidden__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! @radix-ui/react-visually-hidden */ \"(ssr)/./node_modules/@radix-ui/react-visually-hidden/dist/index.mjs\");\n/* harmony import */ var aria_hidden__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! aria-hidden */ \"(ssr)/./node_modules/aria-hidden/dist/es2015/index.js\");\n/* harmony import */ var react_remove_scroll__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! react-remove-scroll */ \"(ssr)/./node_modules/react-remove-scroll/dist/es2015/Combination.js\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Arrow,Content,Group,Icon,Item,ItemIndicator,ItemText,Label,Portal,Root,ScrollDownButton,ScrollUpButton,Select,SelectArrow,SelectContent,SelectGroup,SelectIcon,SelectItem,SelectItemIndicator,SelectItemText,SelectLabel,SelectPortal,SelectScrollDownButton,SelectScrollUpButton,SelectSeparator,SelectTrigger,SelectValue,SelectViewport,Separator,Trigger,Value,Viewport,createSelectScope auto */ // packages/react/select/src/Select.tsx\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\nvar OPEN_KEYS = [\n \" \",\n \"Enter\",\n \"ArrowUp\",\n \"ArrowDown\"\n];\nvar SELECTION_KEYS = [\n \" \",\n \"Enter\"\n];\nvar SELECT_NAME = \"Select\";\nvar [Collection, useCollection, createCollectionScope] = (0,_radix_ui_react_collection__WEBPACK_IMPORTED_MODULE_3__.createCollection)(SELECT_NAME);\nvar [createSelectContext, createSelectScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_4__.createContextScope)(SELECT_NAME, [\n createCollectionScope,\n _radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_5__.createPopperScope\n]);\nvar usePopperScope = (0,_radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_5__.createPopperScope)();\nvar [SelectProvider, useSelectContext] = createSelectContext(SELECT_NAME);\nvar [SelectNativeOptionsProvider, useSelectNativeOptionsContext] = createSelectContext(SELECT_NAME);\nvar Select = (props)=>{\n const { __scopeSelect, children, open: openProp, defaultOpen, onOpenChange, value: valueProp, defaultValue, onValueChange, dir, name, autoComplete, disabled, required, form } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const [trigger, setTrigger] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const [valueNode, setValueNode] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const [valueNodeHasChildren, setValueNodeHasChildren] = react__WEBPACK_IMPORTED_MODULE_0__.useState(false);\n const direction = (0,_radix_ui_react_direction__WEBPACK_IMPORTED_MODULE_6__.useDirection)(dir);\n const [open = false, setOpen] = (0,_radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_7__.useControllableState)({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n const [value, setValue] = (0,_radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_7__.useControllableState)({\n prop: valueProp,\n defaultProp: defaultValue,\n onChange: onValueChange\n });\n const triggerPointerDownPosRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const isFormControl = trigger ? form || !!trigger.closest(\"form\") : true;\n const [nativeOptionsSet, setNativeOptionsSet] = react__WEBPACK_IMPORTED_MODULE_0__.useState(/* @__PURE__ */ new Set());\n const nativeSelectKey = Array.from(nativeOptionsSet).map((option)=>option.props.value).join(\";\");\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_5__.Root, {\n ...popperScope,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(SelectProvider, {\n required,\n scope: __scopeSelect,\n trigger,\n onTriggerChange: setTrigger,\n valueNode,\n onValueNodeChange: setValueNode,\n valueNodeHasChildren,\n onValueNodeHasChildrenChange: setValueNodeHasChildren,\n contentId: (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_8__.useId)(),\n value,\n onValueChange: setValue,\n open,\n onOpenChange: setOpen,\n dir: direction,\n triggerPointerDownPosRef,\n disabled,\n children: [\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Collection.Provider, {\n scope: __scopeSelect,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(SelectNativeOptionsProvider, {\n scope: props.__scopeSelect,\n onNativeOptionAdd: react__WEBPACK_IMPORTED_MODULE_0__.useCallback((option)=>{\n setNativeOptionsSet((prev)=>new Set(prev).add(option));\n }, []),\n onNativeOptionRemove: react__WEBPACK_IMPORTED_MODULE_0__.useCallback((option)=>{\n setNativeOptionsSet((prev)=>{\n const optionsSet = new Set(prev);\n optionsSet.delete(option);\n return optionsSet;\n });\n }, []),\n children\n })\n }),\n isFormControl ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(BubbleSelect, {\n \"aria-hidden\": true,\n required,\n tabIndex: -1,\n name,\n autoComplete,\n value,\n onChange: (event)=>setValue(event.target.value),\n disabled,\n form,\n children: [\n value === void 0 ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"option\", {\n value: \"\"\n }) : null,\n Array.from(nativeOptionsSet)\n ]\n }, nativeSelectKey) : null\n ]\n })\n });\n};\nSelect.displayName = SELECT_NAME;\nvar TRIGGER_NAME = \"SelectTrigger\";\nvar SelectTrigger = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { __scopeSelect, disabled = false, ...triggerProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const context = useSelectContext(TRIGGER_NAME, __scopeSelect);\n const isDisabled = context.disabled || disabled;\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__.useComposedRefs)(forwardedRef, context.onTriggerChange);\n const getItems = useCollection(__scopeSelect);\n const pointerTypeRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(\"touch\");\n const [searchRef, handleTypeaheadSearch, resetTypeahead] = useTypeaheadSearch((search)=>{\n const enabledItems = getItems().filter((item)=>!item.disabled);\n const currentItem = enabledItems.find((item)=>item.value === context.value);\n const nextItem = findNextItem(enabledItems, search, currentItem);\n if (nextItem !== void 0) {\n context.onValueChange(nextItem.value);\n }\n });\n const handleOpen = (pointerEvent)=>{\n if (!isDisabled) {\n context.onOpenChange(true);\n resetTypeahead();\n }\n if (pointerEvent) {\n context.triggerPointerDownPosRef.current = {\n x: Math.round(pointerEvent.pageX),\n y: Math.round(pointerEvent.pageY)\n };\n }\n };\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_5__.Anchor, {\n asChild: true,\n ...popperScope,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_10__.Primitive.button, {\n type: \"button\",\n role: \"combobox\",\n \"aria-controls\": context.contentId,\n \"aria-expanded\": context.open,\n \"aria-required\": context.required,\n \"aria-autocomplete\": \"none\",\n dir: context.dir,\n \"data-state\": context.open ? \"open\" : \"closed\",\n disabled: isDisabled,\n \"data-disabled\": isDisabled ? \"\" : void 0,\n \"data-placeholder\": shouldShowPlaceholder(context.value) ? \"\" : void 0,\n ...triggerProps,\n ref: composedRefs,\n onClick: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_11__.composeEventHandlers)(triggerProps.onClick, (event)=>{\n event.currentTarget.focus();\n if (pointerTypeRef.current !== \"mouse\") {\n handleOpen(event);\n }\n }),\n onPointerDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_11__.composeEventHandlers)(triggerProps.onPointerDown, (event)=>{\n pointerTypeRef.current = event.pointerType;\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n }\n if (event.button === 0 && event.ctrlKey === false && event.pointerType === \"mouse\") {\n handleOpen(event);\n event.preventDefault();\n }\n }),\n onKeyDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_11__.composeEventHandlers)(triggerProps.onKeyDown, (event)=>{\n const isTypingAhead = searchRef.current !== \"\";\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);\n if (isTypingAhead && event.key === \" \") return;\n if (OPEN_KEYS.includes(event.key)) {\n handleOpen();\n event.preventDefault();\n }\n })\n })\n });\n});\nSelectTrigger.displayName = TRIGGER_NAME;\nvar VALUE_NAME = \"SelectValue\";\nvar SelectValue = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { __scopeSelect, className, style, children, placeholder = \"\", ...valueProps } = props;\n const context = useSelectContext(VALUE_NAME, __scopeSelect);\n const { onValueNodeHasChildrenChange } = context;\n const hasChildren = children !== void 0;\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__.useComposedRefs)(forwardedRef, context.onValueNodeChange);\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_12__.useLayoutEffect)(()=>{\n onValueNodeHasChildrenChange(hasChildren);\n }, [\n onValueNodeHasChildrenChange,\n hasChildren\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_10__.Primitive.span, {\n ...valueProps,\n ref: composedRefs,\n style: {\n pointerEvents: \"none\"\n },\n children: shouldShowPlaceholder(context.value) ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n children: placeholder\n }) : children\n });\n});\nSelectValue.displayName = VALUE_NAME;\nvar ICON_NAME = \"SelectIcon\";\nvar SelectIcon = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { __scopeSelect, children, ...iconProps } = props;\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_10__.Primitive.span, {\n \"aria-hidden\": true,\n ...iconProps,\n ref: forwardedRef,\n children: children || \"â–¼\"\n });\n});\nSelectIcon.displayName = ICON_NAME;\nvar PORTAL_NAME = \"SelectPortal\";\nvar SelectPortal = (props)=>{\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_portal__WEBPACK_IMPORTED_MODULE_13__.Portal, {\n asChild: true,\n ...props\n });\n};\nSelectPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"SelectContent\";\nvar SelectContent = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const context = useSelectContext(CONTENT_NAME, props.__scopeSelect);\n const [fragment, setFragment] = react__WEBPACK_IMPORTED_MODULE_0__.useState();\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_12__.useLayoutEffect)(()=>{\n setFragment(new DocumentFragment());\n }, []);\n if (!context.open) {\n const frag = fragment;\n return frag ? /*#__PURE__*/ react_dom__WEBPACK_IMPORTED_MODULE_1__.createPortal(/* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(SelectContentProvider, {\n scope: props.__scopeSelect,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Collection.Slot, {\n scope: props.__scopeSelect,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n children: props.children\n })\n })\n }), frag) : null;\n }\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(SelectContentImpl, {\n ...props,\n ref: forwardedRef\n });\n});\nSelectContent.displayName = CONTENT_NAME;\nvar CONTENT_MARGIN = 10;\nvar [SelectContentProvider, useSelectContentContext] = createSelectContext(CONTENT_NAME);\nvar CONTENT_IMPL_NAME = \"SelectContentImpl\";\nvar SelectContentImpl = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { __scopeSelect, position = \"item-aligned\", onCloseAutoFocus, onEscapeKeyDown, onPointerDownOutside, //\n // PopperContent props\n side, sideOffset, align, alignOffset, arrowPadding, collisionBoundary, collisionPadding, sticky, hideWhenDetached, avoidCollisions, //\n ...contentProps } = props;\n const context = useSelectContext(CONTENT_NAME, __scopeSelect);\n const [content, setContent] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const [viewport, setViewport] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__.useComposedRefs)(forwardedRef, (node)=>setContent(node));\n const [selectedItem, setSelectedItem] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const [selectedItemText, setSelectedItemText] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const getItems = useCollection(__scopeSelect);\n const [isPositioned, setIsPositioned] = react__WEBPACK_IMPORTED_MODULE_0__.useState(false);\n const firstValidItemFoundRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(()=>{\n if (content) return (0,aria_hidden__WEBPACK_IMPORTED_MODULE_14__.hideOthers)(content);\n }, [\n content\n ]);\n (0,_radix_ui_react_focus_guards__WEBPACK_IMPORTED_MODULE_15__.useFocusGuards)();\n const focusFirst = react__WEBPACK_IMPORTED_MODULE_0__.useCallback((candidates)=>{\n const [firstItem, ...restItems] = getItems().map((item)=>item.ref.current);\n const [lastItem] = restItems.slice(-1);\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates){\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate?.scrollIntoView({\n block: \"nearest\"\n });\n if (candidate === firstItem && viewport) viewport.scrollTop = 0;\n if (candidate === lastItem && viewport) viewport.scrollTop = viewport.scrollHeight;\n candidate?.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n }, [\n getItems,\n viewport\n ]);\n const focusSelectedItem = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(()=>focusFirst([\n selectedItem,\n content\n ]), [\n focusFirst,\n selectedItem,\n content\n ]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(()=>{\n if (isPositioned) {\n focusSelectedItem();\n }\n }, [\n isPositioned,\n focusSelectedItem\n ]);\n const { onOpenChange, triggerPointerDownPosRef } = context;\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(()=>{\n if (content) {\n let pointerMoveDelta = {\n x: 0,\n y: 0\n };\n const handlePointerMove = (event)=>{\n pointerMoveDelta = {\n x: Math.abs(Math.round(event.pageX) - (triggerPointerDownPosRef.current?.x ?? 0)),\n y: Math.abs(Math.round(event.pageY) - (triggerPointerDownPosRef.current?.y ?? 0))\n };\n };\n const handlePointerUp = (event)=>{\n if (pointerMoveDelta.x <= 10 && pointerMoveDelta.y <= 10) {\n event.preventDefault();\n } else {\n if (!content.contains(event.target)) {\n onOpenChange(false);\n }\n }\n document.removeEventListener(\"pointermove\", handlePointerMove);\n triggerPointerDownPosRef.current = null;\n };\n if (triggerPointerDownPosRef.current !== null) {\n document.addEventListener(\"pointermove\", handlePointerMove);\n document.addEventListener(\"pointerup\", handlePointerUp, {\n capture: true,\n once: true\n });\n }\n return ()=>{\n document.removeEventListener(\"pointermove\", handlePointerMove);\n document.removeEventListener(\"pointerup\", handlePointerUp, {\n capture: true\n });\n };\n }\n }, [\n content,\n onOpenChange,\n triggerPointerDownPosRef\n ]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(()=>{\n const close = ()=>onOpenChange(false);\n window.addEventListener(\"blur\", close);\n window.addEventListener(\"resize\", close);\n return ()=>{\n window.removeEventListener(\"blur\", close);\n window.removeEventListener(\"resize\", close);\n };\n }, [\n onOpenChange\n ]);\n const [searchRef, handleTypeaheadSearch] = useTypeaheadSearch((search)=>{\n const enabledItems = getItems().filter((item)=>!item.disabled);\n const currentItem = enabledItems.find((item)=>item.ref.current === document.activeElement);\n const nextItem = findNextItem(enabledItems, search, currentItem);\n if (nextItem) {\n setTimeout(()=>nextItem.ref.current.focus());\n }\n });\n const itemRefCallback = react__WEBPACK_IMPORTED_MODULE_0__.useCallback((node, value, disabled)=>{\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== void 0 && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItem(node);\n if (isFirstValidItem) firstValidItemFoundRef.current = true;\n }\n }, [\n context.value\n ]);\n const handleItemLeave = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(()=>content?.focus(), [\n content\n ]);\n const itemTextRefCallback = react__WEBPACK_IMPORTED_MODULE_0__.useCallback((node, value, disabled)=>{\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== void 0 && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItemText(node);\n }\n }, [\n context.value\n ]);\n const SelectPosition = position === \"popper\" ? SelectPopperPosition : SelectItemAlignedPosition;\n const popperContentProps = SelectPosition === SelectPopperPosition ? {\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n hideWhenDetached,\n avoidCollisions\n } : {};\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(SelectContentProvider, {\n scope: __scopeSelect,\n content,\n viewport,\n onViewportChange: setViewport,\n itemRefCallback,\n selectedItem,\n onItemLeave: handleItemLeave,\n itemTextRefCallback,\n focusSelectedItem,\n selectedItemText,\n position,\n isPositioned,\n searchRef,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(react_remove_scroll__WEBPACK_IMPORTED_MODULE_16__[\"default\"], {\n as: _radix_ui_react_slot__WEBPACK_IMPORTED_MODULE_17__.Slot,\n allowPinchZoom: true,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_focus_scope__WEBPACK_IMPORTED_MODULE_18__.FocusScope, {\n asChild: true,\n trapped: context.open,\n onMountAutoFocus: (event)=>{\n event.preventDefault();\n },\n onUnmountAutoFocus: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_11__.composeEventHandlers)(onCloseAutoFocus, (event)=>{\n context.trigger?.focus({\n preventScroll: true\n });\n event.preventDefault();\n }),\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_dismissable_layer__WEBPACK_IMPORTED_MODULE_19__.DismissableLayer, {\n asChild: true,\n disableOutsidePointerEvents: true,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside: (event)=>event.preventDefault(),\n onDismiss: ()=>context.onOpenChange(false),\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(SelectPosition, {\n role: \"listbox\",\n id: context.contentId,\n \"data-state\": context.open ? \"open\" : \"closed\",\n dir: context.dir,\n onContextMenu: (event)=>event.preventDefault(),\n ...contentProps,\n ...popperContentProps,\n onPlaced: ()=>setIsPositioned(true),\n ref: composedRefs,\n style: {\n // flex layout so we can place the scroll buttons properly\n display: \"flex\",\n flexDirection: \"column\",\n // reset the outline by default as the content MAY get focused\n outline: \"none\",\n ...contentProps.style\n },\n onKeyDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_11__.composeEventHandlers)(contentProps.onKeyDown, (event)=>{\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (event.key === \"Tab\") event.preventDefault();\n if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);\n if ([\n \"ArrowUp\",\n \"ArrowDown\",\n \"Home\",\n \"End\"\n ].includes(event.key)) {\n const items = getItems().filter((item)=>!item.disabled);\n let candidateNodes = items.map((item)=>item.ref.current);\n if ([\n \"ArrowUp\",\n \"End\"\n ].includes(event.key)) {\n candidateNodes = candidateNodes.slice().reverse();\n }\n if ([\n \"ArrowUp\",\n \"ArrowDown\"\n ].includes(event.key)) {\n const currentElement = event.target;\n const currentIndex = candidateNodes.indexOf(currentElement);\n candidateNodes = candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(()=>focusFirst(candidateNodes));\n event.preventDefault();\n }\n })\n })\n })\n })\n })\n });\n});\nSelectContentImpl.displayName = CONTENT_IMPL_NAME;\nvar ITEM_ALIGNED_POSITION_NAME = \"SelectItemAlignedPosition\";\nvar SelectItemAlignedPosition = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { __scopeSelect, onPlaced, ...popperProps } = props;\n const context = useSelectContext(CONTENT_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(CONTENT_NAME, __scopeSelect);\n const [contentWrapper, setContentWrapper] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const [content, setContent] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__.useComposedRefs)(forwardedRef, (node)=>setContent(node));\n const getItems = useCollection(__scopeSelect);\n const shouldExpandOnScrollRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n const shouldRepositionRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(true);\n const { viewport, selectedItem, selectedItemText, focusSelectedItem } = contentContext;\n const position = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(()=>{\n if (context.trigger && context.valueNode && contentWrapper && content && viewport && selectedItem && selectedItemText) {\n const triggerRect = context.trigger.getBoundingClientRect();\n const contentRect = content.getBoundingClientRect();\n const valueNodeRect = context.valueNode.getBoundingClientRect();\n const itemTextRect = selectedItemText.getBoundingClientRect();\n if (context.dir !== \"rtl\") {\n const itemTextOffset = itemTextRect.left - contentRect.left;\n const left = valueNodeRect.left - itemTextOffset;\n const leftDelta = triggerRect.left - left;\n const minContentWidth = triggerRect.width + leftDelta;\n const contentWidth = Math.max(minContentWidth, contentRect.width);\n const rightEdge = window.innerWidth - CONTENT_MARGIN;\n const clampedLeft = (0,_radix_ui_number__WEBPACK_IMPORTED_MODULE_20__.clamp)(left, [\n CONTENT_MARGIN,\n // Prevents the content from going off the starting edge of the\n // viewport. It may still go off the ending edge, but this can be\n // controlled by the user since they may want to manage overflow in a\n // specific way.\n // https://github.com/radix-ui/primitives/issues/2049\n Math.max(CONTENT_MARGIN, rightEdge - contentWidth)\n ]);\n contentWrapper.style.minWidth = minContentWidth + \"px\";\n contentWrapper.style.left = clampedLeft + \"px\";\n } else {\n const itemTextOffset = contentRect.right - itemTextRect.right;\n const right = window.innerWidth - valueNodeRect.right - itemTextOffset;\n const rightDelta = window.innerWidth - triggerRect.right - right;\n const minContentWidth = triggerRect.width + rightDelta;\n const contentWidth = Math.max(minContentWidth, contentRect.width);\n const leftEdge = window.innerWidth - CONTENT_MARGIN;\n const clampedRight = (0,_radix_ui_number__WEBPACK_IMPORTED_MODULE_20__.clamp)(right, [\n CONTENT_MARGIN,\n Math.max(CONTENT_MARGIN, leftEdge - contentWidth)\n ]);\n contentWrapper.style.minWidth = minContentWidth + \"px\";\n contentWrapper.style.right = clampedRight + \"px\";\n }\n const items = getItems();\n const availableHeight = window.innerHeight - CONTENT_MARGIN * 2;\n const itemsHeight = viewport.scrollHeight;\n const contentStyles = window.getComputedStyle(content);\n const contentBorderTopWidth = parseInt(contentStyles.borderTopWidth, 10);\n const contentPaddingTop = parseInt(contentStyles.paddingTop, 10);\n const contentBorderBottomWidth = parseInt(contentStyles.borderBottomWidth, 10);\n const contentPaddingBottom = parseInt(contentStyles.paddingBottom, 10);\n const fullContentHeight = contentBorderTopWidth + contentPaddingTop + itemsHeight + contentPaddingBottom + contentBorderBottomWidth;\n const minContentHeight = Math.min(selectedItem.offsetHeight * 5, fullContentHeight);\n const viewportStyles = window.getComputedStyle(viewport);\n const viewportPaddingTop = parseInt(viewportStyles.paddingTop, 10);\n const viewportPaddingBottom = parseInt(viewportStyles.paddingBottom, 10);\n const topEdgeToTriggerMiddle = triggerRect.top + triggerRect.height / 2 - CONTENT_MARGIN;\n const triggerMiddleToBottomEdge = availableHeight - topEdgeToTriggerMiddle;\n const selectedItemHalfHeight = selectedItem.offsetHeight / 2;\n const itemOffsetMiddle = selectedItem.offsetTop + selectedItemHalfHeight;\n const contentTopToItemMiddle = contentBorderTopWidth + contentPaddingTop + itemOffsetMiddle;\n const itemMiddleToContentBottom = fullContentHeight - contentTopToItemMiddle;\n const willAlignWithoutTopOverflow = contentTopToItemMiddle <= topEdgeToTriggerMiddle;\n if (willAlignWithoutTopOverflow) {\n const isLastItem = items.length > 0 && selectedItem === items[items.length - 1].ref.current;\n contentWrapper.style.bottom = \"0px\";\n const viewportOffsetBottom = content.clientHeight - viewport.offsetTop - viewport.offsetHeight;\n const clampedTriggerMiddleToBottomEdge = Math.max(triggerMiddleToBottomEdge, selectedItemHalfHeight + // viewport might have padding bottom, include it to avoid a scrollable viewport\n (isLastItem ? viewportPaddingBottom : 0) + viewportOffsetBottom + contentBorderBottomWidth);\n const height = contentTopToItemMiddle + clampedTriggerMiddleToBottomEdge;\n contentWrapper.style.height = height + \"px\";\n } else {\n const isFirstItem = items.length > 0 && selectedItem === items[0].ref.current;\n contentWrapper.style.top = \"0px\";\n const clampedTopEdgeToTriggerMiddle = Math.max(topEdgeToTriggerMiddle, contentBorderTopWidth + viewport.offsetTop + // viewport might have padding top, include it to avoid a scrollable viewport\n (isFirstItem ? viewportPaddingTop : 0) + selectedItemHalfHeight);\n const height = clampedTopEdgeToTriggerMiddle + itemMiddleToContentBottom;\n contentWrapper.style.height = height + \"px\";\n viewport.scrollTop = contentTopToItemMiddle - topEdgeToTriggerMiddle + viewport.offsetTop;\n }\n contentWrapper.style.margin = `${CONTENT_MARGIN}px 0`;\n contentWrapper.style.minHeight = minContentHeight + \"px\";\n contentWrapper.style.maxHeight = availableHeight + \"px\";\n onPlaced?.();\n requestAnimationFrame(()=>shouldExpandOnScrollRef.current = true);\n }\n }, [\n getItems,\n context.trigger,\n context.valueNode,\n contentWrapper,\n content,\n viewport,\n selectedItem,\n selectedItemText,\n context.dir,\n onPlaced\n ]);\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_12__.useLayoutEffect)(()=>position(), [\n position\n ]);\n const [contentZIndex, setContentZIndex] = react__WEBPACK_IMPORTED_MODULE_0__.useState();\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_12__.useLayoutEffect)(()=>{\n if (content) setContentZIndex(window.getComputedStyle(content).zIndex);\n }, [\n content\n ]);\n const handleScrollButtonChange = react__WEBPACK_IMPORTED_MODULE_0__.useCallback((node)=>{\n if (node && shouldRepositionRef.current === true) {\n position();\n focusSelectedItem?.();\n shouldRepositionRef.current = false;\n }\n }, [\n position,\n focusSelectedItem\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(SelectViewportProvider, {\n scope: __scopeSelect,\n contentWrapper,\n shouldExpandOnScrollRef,\n onScrollButtonChange: handleScrollButtonChange,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", {\n ref: setContentWrapper,\n style: {\n display: \"flex\",\n flexDirection: \"column\",\n position: \"fixed\",\n zIndex: contentZIndex\n },\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_10__.Primitive.div, {\n ...popperProps,\n ref: composedRefs,\n style: {\n // When we get the height of the content, it includes borders. If we were to set\n // the height without having `boxSizing: 'border-box'` it would be too big.\n boxSizing: \"border-box\",\n // We need to ensure the content doesn't get taller than the wrapper\n maxHeight: \"100%\",\n ...popperProps.style\n }\n })\n })\n });\n});\nSelectItemAlignedPosition.displayName = ITEM_ALIGNED_POSITION_NAME;\nvar POPPER_POSITION_NAME = \"SelectPopperPosition\";\nvar SelectPopperPosition = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { __scopeSelect, align = \"start\", collisionPadding = CONTENT_MARGIN, ...popperProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_5__.Content, {\n ...popperScope,\n ...popperProps,\n ref: forwardedRef,\n align,\n collisionPadding,\n style: {\n // Ensure border-box for floating-ui calculations\n boxSizing: \"border-box\",\n ...popperProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-select-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-select-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-select-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-select-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-select-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n });\n});\nSelectPopperPosition.displayName = POPPER_POSITION_NAME;\nvar [SelectViewportProvider, useSelectViewportContext] = createSelectContext(CONTENT_NAME, {});\nvar VIEWPORT_NAME = \"SelectViewport\";\nvar SelectViewport = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { __scopeSelect, nonce, ...viewportProps } = props;\n const contentContext = useSelectContentContext(VIEWPORT_NAME, __scopeSelect);\n const viewportContext = useSelectViewportContext(VIEWPORT_NAME, __scopeSelect);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__.useComposedRefs)(forwardedRef, contentContext.onViewportChange);\n const prevScrollTopRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(0);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n children: [\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"style\", {\n dangerouslySetInnerHTML: {\n __html: `[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`\n },\n nonce\n }),\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Collection.Slot, {\n scope: __scopeSelect,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_10__.Primitive.div, {\n \"data-radix-select-viewport\": \"\",\n role: \"presentation\",\n ...viewportProps,\n ref: composedRefs,\n style: {\n // we use position: 'relative' here on the `viewport` so that when we call\n // `selectedItem.offsetTop` in calculations, the offset is relative to the viewport\n // (independent of the scrollUpButton).\n position: \"relative\",\n flex: 1,\n // Viewport should only be scrollable in the vertical direction.\n // This won't work in vertical writing modes, so we'll need to\n // revisit this if/when that is supported\n // https://developer.chrome.com/blog/vertical-form-controls\n overflow: \"hidden auto\",\n ...viewportProps.style\n },\n onScroll: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_11__.composeEventHandlers)(viewportProps.onScroll, (event)=>{\n const viewport = event.currentTarget;\n const { contentWrapper, shouldExpandOnScrollRef } = viewportContext;\n if (shouldExpandOnScrollRef?.current && contentWrapper) {\n const scrolledBy = Math.abs(prevScrollTopRef.current - viewport.scrollTop);\n if (scrolledBy > 0) {\n const availableHeight = window.innerHeight - CONTENT_MARGIN * 2;\n const cssMinHeight = parseFloat(contentWrapper.style.minHeight);\n const cssHeight = parseFloat(contentWrapper.style.height);\n const prevHeight = Math.max(cssMinHeight, cssHeight);\n if (prevHeight < availableHeight) {\n const nextHeight = prevHeight + scrolledBy;\n const clampedNextHeight = Math.min(availableHeight, nextHeight);\n const heightDiff = nextHeight - clampedNextHeight;\n contentWrapper.style.height = clampedNextHeight + \"px\";\n if (contentWrapper.style.bottom === \"0px\") {\n viewport.scrollTop = heightDiff > 0 ? heightDiff : 0;\n contentWrapper.style.justifyContent = \"flex-end\";\n }\n }\n }\n }\n prevScrollTopRef.current = viewport.scrollTop;\n })\n })\n })\n ]\n });\n});\nSelectViewport.displayName = VIEWPORT_NAME;\nvar GROUP_NAME = \"SelectGroup\";\nvar [SelectGroupContextProvider, useSelectGroupContext] = createSelectContext(GROUP_NAME);\nvar SelectGroup = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { __scopeSelect, ...groupProps } = props;\n const groupId = (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_8__.useId)();\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(SelectGroupContextProvider, {\n scope: __scopeSelect,\n id: groupId,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_10__.Primitive.div, {\n role: \"group\",\n \"aria-labelledby\": groupId,\n ...groupProps,\n ref: forwardedRef\n })\n });\n});\nSelectGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"SelectLabel\";\nvar SelectLabel = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { __scopeSelect, ...labelProps } = props;\n const groupContext = useSelectGroupContext(LABEL_NAME, __scopeSelect);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_10__.Primitive.div, {\n id: groupContext.id,\n ...labelProps,\n ref: forwardedRef\n });\n});\nSelectLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"SelectItem\";\nvar [SelectItemContextProvider, useSelectItemContext] = createSelectContext(ITEM_NAME);\nvar SelectItem = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { __scopeSelect, value, disabled = false, textValue: textValueProp, ...itemProps } = props;\n const context = useSelectContext(ITEM_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ITEM_NAME, __scopeSelect);\n const isSelected = context.value === value;\n const [textValue, setTextValue] = react__WEBPACK_IMPORTED_MODULE_0__.useState(textValueProp ?? \"\");\n const [isFocused, setIsFocused] = react__WEBPACK_IMPORTED_MODULE_0__.useState(false);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__.useComposedRefs)(forwardedRef, (node)=>contentContext.itemRefCallback?.(node, value, disabled));\n const textId = (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_8__.useId)();\n const pointerTypeRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(\"touch\");\n const handleSelect = ()=>{\n if (!disabled) {\n context.onValueChange(value);\n context.onOpenChange(false);\n }\n };\n if (value === \"\") {\n throw new Error(\"A must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.\");\n }\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(SelectItemContextProvider, {\n scope: __scopeSelect,\n value,\n disabled,\n textId,\n isSelected,\n onItemTextChange: react__WEBPACK_IMPORTED_MODULE_0__.useCallback((node)=>{\n setTextValue((prevTextValue)=>prevTextValue || (node?.textContent ?? \"\").trim());\n }, []),\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Collection.ItemSlot, {\n scope: __scopeSelect,\n value,\n disabled,\n textValue,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_10__.Primitive.div, {\n role: \"option\",\n \"aria-labelledby\": textId,\n \"data-highlighted\": isFocused ? \"\" : void 0,\n \"aria-selected\": isSelected && isFocused,\n \"data-state\": isSelected ? \"checked\" : \"unchecked\",\n \"aria-disabled\": disabled || void 0,\n \"data-disabled\": disabled ? \"\" : void 0,\n tabIndex: disabled ? void 0 : -1,\n ...itemProps,\n ref: composedRefs,\n onFocus: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_11__.composeEventHandlers)(itemProps.onFocus, ()=>setIsFocused(true)),\n onBlur: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_11__.composeEventHandlers)(itemProps.onBlur, ()=>setIsFocused(false)),\n onClick: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_11__.composeEventHandlers)(itemProps.onClick, ()=>{\n if (pointerTypeRef.current !== \"mouse\") handleSelect();\n }),\n onPointerUp: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_11__.composeEventHandlers)(itemProps.onPointerUp, ()=>{\n if (pointerTypeRef.current === \"mouse\") handleSelect();\n }),\n onPointerDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_11__.composeEventHandlers)(itemProps.onPointerDown, (event)=>{\n pointerTypeRef.current = event.pointerType;\n }),\n onPointerMove: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_11__.composeEventHandlers)(itemProps.onPointerMove, (event)=>{\n pointerTypeRef.current = event.pointerType;\n if (disabled) {\n contentContext.onItemLeave?.();\n } else if (pointerTypeRef.current === \"mouse\") {\n event.currentTarget.focus({\n preventScroll: true\n });\n }\n }),\n onPointerLeave: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_11__.composeEventHandlers)(itemProps.onPointerLeave, (event)=>{\n if (event.currentTarget === document.activeElement) {\n contentContext.onItemLeave?.();\n }\n }),\n onKeyDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_11__.composeEventHandlers)(itemProps.onKeyDown, (event)=>{\n const isTypingAhead = contentContext.searchRef?.current !== \"\";\n if (isTypingAhead && event.key === \" \") return;\n if (SELECTION_KEYS.includes(event.key)) handleSelect();\n if (event.key === \" \") event.preventDefault();\n })\n })\n })\n });\n});\nSelectItem.displayName = ITEM_NAME;\nvar ITEM_TEXT_NAME = \"SelectItemText\";\nvar SelectItemText = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { __scopeSelect, className, style, ...itemTextProps } = props;\n const context = useSelectContext(ITEM_TEXT_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ITEM_TEXT_NAME, __scopeSelect);\n const itemContext = useSelectItemContext(ITEM_TEXT_NAME, __scopeSelect);\n const nativeOptionsContext = useSelectNativeOptionsContext(ITEM_TEXT_NAME, __scopeSelect);\n const [itemTextNode, setItemTextNode] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__.useComposedRefs)(forwardedRef, (node)=>setItemTextNode(node), itemContext.onItemTextChange, (node)=>contentContext.itemTextRefCallback?.(node, itemContext.value, itemContext.disabled));\n const textContent = itemTextNode?.textContent;\n const nativeOption = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(()=>/* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"option\", {\n value: itemContext.value,\n disabled: itemContext.disabled,\n children: textContent\n }, itemContext.value), [\n itemContext.disabled,\n itemContext.value,\n textContent\n ]);\n const { onNativeOptionAdd, onNativeOptionRemove } = nativeOptionsContext;\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_12__.useLayoutEffect)(()=>{\n onNativeOptionAdd(nativeOption);\n return ()=>onNativeOptionRemove(nativeOption);\n }, [\n onNativeOptionAdd,\n onNativeOptionRemove,\n nativeOption\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n children: [\n /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_10__.Primitive.span, {\n id: itemContext.textId,\n ...itemTextProps,\n ref: composedRefs\n }),\n itemContext.isSelected && context.valueNode && !context.valueNodeHasChildren ? /*#__PURE__*/ react_dom__WEBPACK_IMPORTED_MODULE_1__.createPortal(itemTextProps.children, context.valueNode) : null\n ]\n });\n});\nSelectItemText.displayName = ITEM_TEXT_NAME;\nvar ITEM_INDICATOR_NAME = \"SelectItemIndicator\";\nvar SelectItemIndicator = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { __scopeSelect, ...itemIndicatorProps } = props;\n const itemContext = useSelectItemContext(ITEM_INDICATOR_NAME, __scopeSelect);\n return itemContext.isSelected ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_10__.Primitive.span, {\n \"aria-hidden\": true,\n ...itemIndicatorProps,\n ref: forwardedRef\n }) : null;\n});\nSelectItemIndicator.displayName = ITEM_INDICATOR_NAME;\nvar SCROLL_UP_BUTTON_NAME = \"SelectScrollUpButton\";\nvar SelectScrollUpButton = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const contentContext = useSelectContentContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = useSelectViewportContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const [canScrollUp, setCanScrollUp] = react__WEBPACK_IMPORTED_MODULE_0__.useState(false);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__.useComposedRefs)(forwardedRef, viewportContext.onScrollButtonChange);\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_12__.useLayoutEffect)(()=>{\n if (contentContext.viewport && contentContext.isPositioned) {\n let handleScroll2 = function() {\n const canScrollUp2 = viewport.scrollTop > 0;\n setCanScrollUp(canScrollUp2);\n };\n var handleScroll = handleScroll2;\n const viewport = contentContext.viewport;\n handleScroll2();\n viewport.addEventListener(\"scroll\", handleScroll2);\n return ()=>viewport.removeEventListener(\"scroll\", handleScroll2);\n }\n }, [\n contentContext.viewport,\n contentContext.isPositioned\n ]);\n return canScrollUp ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(SelectScrollButtonImpl, {\n ...props,\n ref: composedRefs,\n onAutoScroll: ()=>{\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem) {\n viewport.scrollTop = viewport.scrollTop - selectedItem.offsetHeight;\n }\n }\n }) : null;\n});\nSelectScrollUpButton.displayName = SCROLL_UP_BUTTON_NAME;\nvar SCROLL_DOWN_BUTTON_NAME = \"SelectScrollDownButton\";\nvar SelectScrollDownButton = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const contentContext = useSelectContentContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = useSelectViewportContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const [canScrollDown, setCanScrollDown] = react__WEBPACK_IMPORTED_MODULE_0__.useState(false);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__.useComposedRefs)(forwardedRef, viewportContext.onScrollButtonChange);\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_12__.useLayoutEffect)(()=>{\n if (contentContext.viewport && contentContext.isPositioned) {\n let handleScroll2 = function() {\n const maxScroll = viewport.scrollHeight - viewport.clientHeight;\n const canScrollDown2 = Math.ceil(viewport.scrollTop) < maxScroll;\n setCanScrollDown(canScrollDown2);\n };\n var handleScroll = handleScroll2;\n const viewport = contentContext.viewport;\n handleScroll2();\n viewport.addEventListener(\"scroll\", handleScroll2);\n return ()=>viewport.removeEventListener(\"scroll\", handleScroll2);\n }\n }, [\n contentContext.viewport,\n contentContext.isPositioned\n ]);\n return canScrollDown ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(SelectScrollButtonImpl, {\n ...props,\n ref: composedRefs,\n onAutoScroll: ()=>{\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem) {\n viewport.scrollTop = viewport.scrollTop + selectedItem.offsetHeight;\n }\n }\n }) : null;\n});\nSelectScrollDownButton.displayName = SCROLL_DOWN_BUTTON_NAME;\nvar SelectScrollButtonImpl = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { __scopeSelect, onAutoScroll, ...scrollIndicatorProps } = props;\n const contentContext = useSelectContentContext(\"SelectScrollButton\", __scopeSelect);\n const autoScrollTimerRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const getItems = useCollection(__scopeSelect);\n const clearAutoScrollTimer = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(()=>{\n if (autoScrollTimerRef.current !== null) {\n window.clearInterval(autoScrollTimerRef.current);\n autoScrollTimerRef.current = null;\n }\n }, []);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(()=>{\n return ()=>clearAutoScrollTimer();\n }, [\n clearAutoScrollTimer\n ]);\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_12__.useLayoutEffect)(()=>{\n const activeItem = getItems().find((item)=>item.ref.current === document.activeElement);\n activeItem?.ref.current?.scrollIntoView({\n block: \"nearest\"\n });\n }, [\n getItems\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_10__.Primitive.div, {\n \"aria-hidden\": true,\n ...scrollIndicatorProps,\n ref: forwardedRef,\n style: {\n flexShrink: 0,\n ...scrollIndicatorProps.style\n },\n onPointerDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_11__.composeEventHandlers)(scrollIndicatorProps.onPointerDown, ()=>{\n if (autoScrollTimerRef.current === null) {\n autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }\n }),\n onPointerMove: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_11__.composeEventHandlers)(scrollIndicatorProps.onPointerMove, ()=>{\n contentContext.onItemLeave?.();\n if (autoScrollTimerRef.current === null) {\n autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }\n }),\n onPointerLeave: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_11__.composeEventHandlers)(scrollIndicatorProps.onPointerLeave, ()=>{\n clearAutoScrollTimer();\n })\n });\n});\nvar SEPARATOR_NAME = \"SelectSeparator\";\nvar SelectSeparator = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { __scopeSelect, ...separatorProps } = props;\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_10__.Primitive.div, {\n \"aria-hidden\": true,\n ...separatorProps,\n ref: forwardedRef\n });\n});\nSelectSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"SelectArrow\";\nvar SelectArrow = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { __scopeSelect, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const context = useSelectContext(ARROW_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ARROW_NAME, __scopeSelect);\n return context.open && contentContext.position === \"popper\" ? /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_popper__WEBPACK_IMPORTED_MODULE_5__.Arrow, {\n ...popperScope,\n ...arrowProps,\n ref: forwardedRef\n }) : null;\n});\nSelectArrow.displayName = ARROW_NAME;\nfunction shouldShowPlaceholder(value) {\n return value === \"\" || value === void 0;\n}\nvar BubbleSelect = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { value, ...selectProps } = props;\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const composedRefs = (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_9__.useComposedRefs)(forwardedRef, ref);\n const prevValue = (0,_radix_ui_react_use_previous__WEBPACK_IMPORTED_MODULE_21__.usePrevious)(value);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(()=>{\n const select = ref.current;\n const selectProto = window.HTMLSelectElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(selectProto, \"value\");\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event(\"change\", {\n bubbles: true\n });\n setValue.call(select, value);\n select.dispatchEvent(event);\n }\n }, [\n prevValue,\n value\n ]);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_radix_ui_react_visually_hidden__WEBPACK_IMPORTED_MODULE_22__.VisuallyHidden, {\n asChild: true,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"select\", {\n ...selectProps,\n ref: composedRefs,\n defaultValue: value\n })\n });\n});\nBubbleSelect.displayName = \"BubbleSelect\";\nfunction useTypeaheadSearch(onSearchChange) {\n const handleSearchChange = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_23__.useCallbackRef)(onSearchChange);\n const searchRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(\"\");\n const timerRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(0);\n const handleTypeaheadSearch = react__WEBPACK_IMPORTED_MODULE_0__.useCallback((key)=>{\n const search = searchRef.current + key;\n handleSearchChange(search);\n (function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== \"\") timerRef.current = window.setTimeout(()=>updateSearch(\"\"), 1e3);\n })(search);\n }, [\n handleSearchChange\n ]);\n const resetTypeahead = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(()=>{\n searchRef.current = \"\";\n window.clearTimeout(timerRef.current);\n }, []);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(()=>{\n return ()=>window.clearTimeout(timerRef.current);\n }, []);\n return [\n searchRef,\n handleTypeaheadSearch,\n resetTypeahead\n ];\n}\nfunction findNextItem(items, search, currentItem) {\n const isRepeated = search.length > 1 && Array.from(search).every((char)=>char === search[0]);\n const normalizedSearch = isRepeated ? search[0] : search;\n const currentItemIndex = currentItem ? items.indexOf(currentItem) : -1;\n let wrappedItems = wrapArray(items, Math.max(currentItemIndex, 0));\n const excludeCurrentItem = normalizedSearch.length === 1;\n if (excludeCurrentItem) wrappedItems = wrappedItems.filter((v)=>v !== currentItem);\n const nextItem = wrappedItems.find((item)=>item.textValue.toLowerCase().startsWith(normalizedSearch.toLowerCase()));\n return nextItem !== currentItem ? nextItem : void 0;\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index)=>array[(startIndex + index) % array.length]);\n}\nvar Root2 = Select;\nvar Trigger = SelectTrigger;\nvar Value = SelectValue;\nvar Icon = SelectIcon;\nvar Portal = SelectPortal;\nvar Content2 = SelectContent;\nvar Viewport = SelectViewport;\nvar Group = SelectGroup;\nvar Label = SelectLabel;\nvar Item = SelectItem;\nvar ItemText = SelectItemText;\nvar ItemIndicator = SelectItemIndicator;\nvar ScrollUpButton = SelectScrollUpButton;\nvar ScrollDownButton = SelectScrollDownButton;\nvar Separator = SelectSeparator;\nvar Arrow2 = SelectArrow;\n //# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXNlbGVjdC9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQXVCO0FBQ0c7QUFDSjtBQUNlO0FBQ0o7QUFDRDtBQUNHO0FBQ047QUFDSTtBQUNGO0FBQ0o7QUFDTDtBQUNXO0FBQ0M7QUFDUTtBQUNoQjtBQUNMO0FBQ1U7QUFDTTtBQUNMO0FBQ0o7QUFDRztBQUNKO0FBQ0U7QUE2SW5CO0FBdklWLElBQU00QixZQUFZO0lBQUM7SUFBSztJQUFTO0lBQVc7Q0FBVztBQUN2RCxJQUFNQyxpQkFBaUI7SUFBQztJQUFLO0NBQU87QUFNcEMsSUFBTUMsY0FBYztBQUdwQixJQUFNLENBQUNDLFlBQVlDLGVBQWVDLHNCQUFxQixHQUFJN0IsNEVBQWdCQSxDQUd6RTBCO0FBR0YsSUFBTSxDQUFDSSxxQkFBcUJDLGtCQUFpQixHQUFJN0IsMkVBQWtCQSxDQUFDd0IsYUFBYTtJQUMvRUc7SUFDQXBCLHFFQUFpQkE7Q0FDbEI7QUFDRCxJQUFNdUIsaUJBQWlCdkIseUVBQWlCQTtBQW9CeEMsSUFBTSxDQUFDd0IsZ0JBQWdCQyxpQkFBZ0IsR0FBSUosb0JBQXdDSjtBQVFuRixJQUFNLENBQUNTLDZCQUE2QkMsOEJBQTZCLEdBQy9ETixvQkFBcURKO0FBa0J2RCxJQUFNVyxTQUFnQyxDQUFDQztJQUNyQyxNQUFNLEVBQ0pDLGFBQUEsRUFDQUMsUUFBQSxFQUNBQyxNQUFNQyxRQUFBLEVBQ05DLFdBQUEsRUFDQUMsWUFBQSxFQUNBQyxPQUFPQyxTQUFBLEVBQ1BDLFlBQUEsRUFDQUMsYUFBQSxFQUNBQyxHQUFBLEVBQ0FDLElBQUEsRUFDQUMsWUFBQSxFQUNBQyxRQUFBLEVBQ0FDLFFBQUEsRUFDQUMsSUFBQSxFQUNGLEdBQUloQjtJQUNKLE1BQU1pQixjQUFjdkIsZUFBZU87SUFDbkMsTUFBTSxDQUFD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V0FBQSxHQUFjQyxVQUFBLENBQVdQLGlCQUFpQk0sV0FBQTtJQUUzRCxPQUFPOVYsYUFBYUYsY0FBY0UsV0FBVztBQUMvQztBQU1BLFNBQVMyVixVQUFhSyxLQUFBLEVBQVlDLFVBQUE7SUFDaEMsT0FBT0QsTUFBTTFZLEdBQUEsQ0FBSSxDQUFDNFksR0FBR0MsUUFBVUgsS0FBQSxFQUFPQyxhQUFhRSxLQUFBLElBQVNILE1BQU05VCxNQUFNLENBQUM7QUFDM0U7QUFFQSxJQUFNekUsUUFBTzdDO0FBQ2IsSUFBTXdiLFVBQVV2WDtBQUNoQixJQUFNd1gsUUFBUWhVO0FBQ2QsSUFBTWlVLE9BQU94VDtBQUNiLElBQU03SixTQUFTZ0s7QUFDZixJQUFNa0wsV0FBVWhMO0FBQ2hCLElBQU1vVCxXQUFXakk7QUFDakIsSUFBTWtJLFFBQVE1RztBQUNkLElBQU02RyxRQUFRekc7QUFDZCxJQUFNMEcsT0FBT3BHO0FBQ2IsSUFBTXFHLFdBQVcvRTtBQUNqQixJQUFNZ0YsZ0JBQWdCdkU7QUFDdEIsSUFBTXdFLGlCQUFpQnJFO0FBQ3ZCLElBQU1zRSxtQkFBbUIvRDtBQUN6QixJQUFNZ0UsWUFBWW5EO0FBQ2xCLElBQU1LLFNBQVFGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbWFtYWQtYXBwLy4uL3NyYy9TZWxlY3QudHN4PzZjZWMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0ICogYXMgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCB7IGNsYW1wIH0gZnJvbSAnQHJhZGl4LXVpL251bWJlcic7XG5pbXBvcnQgeyBjb21wb3NlRXZlbnRIYW5kbGVycyB9IGZyb20gJ0ByYWRpeC11aS9wcmltaXRpdmUnO1xuaW1wb3J0IHsgY3JlYXRlQ29sbGVjdGlvbiB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1jb2xsZWN0aW9uJztcbmltcG9ydCB7IHVzZUNvbXBvc2VkUmVmcyB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1jb21wb3NlLXJlZnMnO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dFNjb3BlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbnRleHQnO1xuaW1wb3J0IHsgdXNlRGlyZWN0aW9uIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWRpcmVjdGlvbic7XG5pbXBvcnQgeyBEaXNtaXNzYWJsZUxheWVyIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWRpc21pc3NhYmxlLWxheWVyJztcbmltcG9ydCB7IHVzZUZvY3VzR3VhcmRzIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWZvY3VzLWd1YXJkcyc7XG5pbXBvcnQgeyBGb2N1c1Njb3BlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWZvY3VzLXNjb3BlJztcbmltcG9ydCB7IHVzZUlkIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWlkJztcbmltcG9ydCAqIGFzIFBvcHBlclByaW1pdGl2ZSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtcG9wcGVyJztcbmltcG9ydCB7IGNyZWF0ZVBvcHBlclNjb3BlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXBvcHBlcic7XG5pbXBvcnQgeyBQb3J0YWwgYXMgUG9ydGFsUHJpbWl0aXZlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXBvcnRhbCc7XG5pbXBvcnQgeyBQcmltaXRpdmUgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtcHJpbWl0aXZlJztcbmltcG9ydCB7IFNsb3QgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3Qtc2xvdCc7XG5pbXBvcnQgeyB1c2VDYWxsYmFja1JlZiB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC11c2UtY2FsbGJhY2stcmVmJztcbmltcG9ydCB7IHVzZUNvbnRyb2xsYWJsZVN0YXRlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXVzZS1jb250cm9sbGFibGUtc3RhdGUnO1xuaW1wb3J0IHsgdXNlTGF5b3V0RWZmZWN0IH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXVzZS1sYXlvdXQtZWZmZWN0JztcbmltcG9ydCB7IHVzZVByZXZpb3VzIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXVzZS1wcmV2aW91cyc7XG5pbXBvcnQgeyBWaXN1YWxseUhpZGRlbiB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC12aXN1YWxseS1oaWRkZW4nO1xuaW1wb3J0IHsgaGlkZU90aGVycyB9IGZyb20gJ2FyaWEtaGlkZGVuJztcbmltcG9ydCB7IFJlbW92ZVNjcm9sbCB9IGZyb20gJ3JlYWN0LXJlbW92ZS1zY3JvbGwnO1xuXG5pbXBvcnQgdHlwZSB7IFNjb3BlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWNvbnRleHQnO1xuXG50eXBlIERpcmVjdGlvbiA9ICdsdHInIHwgJ3J0bCc7XG5cbmNvbnN0IE9QRU5fS0VZUyA9IFsnICcsICdFbnRlcicsICdBcnJvd1VwJywgJ0Fycm93RG93biddO1xuY29uc3QgU0VMRUNUSU9OX0tFWVMgPSBbJyAnLCAnRW50ZXInXTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogU2VsZWN0XG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFNFTEVDVF9OQU1FID0gJ1NlbGVjdCc7XG5cbnR5cGUgSXRlbURhdGEgPSB7IHZhbHVlOiBzdHJpbmc7IGRpc2FibGVkOiBib29sZWFuOyB0ZXh0VmFsdWU6IHN0cmluZyB9O1xuY29uc3QgW0NvbGxlY3Rpb24sIHVzZUNvbGxlY3Rpb24sIGNyZWF0ZUNvbGxlY3Rpb25TY29wZV0gPSBjcmVhdGVDb2xsZWN0aW9uPFxuICBTZWxlY3RJdGVtRWxlbWVudCxcbiAgSXRlbURhdGFcbj4oU0VMRUNUX05BTUUpO1xuXG50eXBlIFNjb3BlZFByb3BzPFA+ID0gUCAmIHsgX19zY29wZVNlbGVjdD86IFNjb3BlIH07XG5jb25zdCBbY3JlYXRlU2VsZWN0Q29udGV4dCwgY3JlYXRlU2VsZWN0U2NvcGVdID0gY3JlYXRlQ29udGV4dFNjb3BlKFNFTEVDVF9OQU1FLCBbXG4gIGNyZWF0ZUNvbGxlY3Rpb25TY29wZSxcbiAgY3JlYXRlUG9wcGVyU2NvcGUsXG5dKTtcbmNvbnN0IHVzZVBvcHBlclNjb3BlID0gY3JlYXRlUG9wcGVyU2NvcGUoKTtcblxudHlwZSBTZWxlY3RDb250ZXh0VmFsdWUgPSB7XG4gIHRyaWdnZXI6IFNlbGVjdFRyaWdnZXJFbGVtZW50IHwgbnVsbDtcbiAgb25UcmlnZ2VyQ2hhbmdlKG5vZGU6IFNlbGVjdFRyaWdnZXJFbGVtZW50IHwgbnVsbCk6IHZvaWQ7XG4gIHZhbHVlTm9kZTogU2VsZWN0VmFsdWVFbGVtZW50IHwgbnVsbDtcbiAgb25WYWx1ZU5vZGVDaGFuZ2Uobm9kZTogU2VsZWN0VmFsdWVFbGVtZW50KTogdm9pZDtcbiAgdmFsdWVOb2RlSGFzQ2hpbGRyZW46IGJvb2xlYW47XG4gIG9uVmFsdWVOb2RlSGFzQ2hpbGRyZW5DaGFuZ2UoaGFzQ2hpbGRyZW46IGJvb2xlYW4pOiB2b2lkO1xuICBjb250ZW50SWQ6IHN0cmluZztcbiAgdmFsdWU/OiBzdHJpbmc7XG4gIG9uVmFsdWVDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQ7XG4gIG9wZW46IGJvb2xlYW47XG4gIHJlcXVpcmVkPzogYm9vbGVhbjtcbiAgb25PcGVuQ2hhbmdlKG9wZW46IGJvb2xlYW4pOiB2b2lkO1xuICBkaXI6IFNlbGVjdFByb3BzWydkaXInXTtcbiAgdHJpZ2dlclBvaW50ZXJEb3duUG9zUmVmOiBSZWFjdC5NdXRhYmxlUmVmT2JqZWN0PHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSB8IG51bGw+O1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG59O1xuXG5jb25zdCBbU2VsZWN0UHJvdmlkZXIsIHVzZVNlbGVjdENvbnRleHRdID0gY3JlYXRlU2VsZWN0Q29udGV4dDxTZWxlY3RDb250ZXh0VmFsdWU+KFNFTEVDVF9OQU1FKTtcblxudHlwZSBOYXRpdmVPcHRpb24gPSBSZWFjdC5SZWFjdEVsZW1lbnQ8UmVhY3QuQ29tcG9uZW50UHJvcHM8J29wdGlvbic+PjtcblxudHlwZSBTZWxlY3ROYXRpdmVPcHRpb25zQ29udGV4dFZhbHVlID0ge1xuICBvbk5hdGl2ZU9wdGlvbkFkZChvcHRpb246IE5hdGl2ZU9wdGlvbik6IHZvaWQ7XG4gIG9uTmF0aXZlT3B0aW9uUmVtb3ZlKG9wdGlvbjogTmF0aXZlT3B0aW9uKTogdm9pZDtcbn07XG5jb25zdCBbU2VsZWN0TmF0aXZlT3B0aW9uc1Byb3ZpZGVyLCB1c2VTZWxlY3ROYXRpdmVPcHRpb25zQ29udGV4dF0gPVxuICBjcmVhdGVTZWxlY3RDb250ZXh0PFNlbGVjdE5hdGl2ZU9wdGlvbnNDb250ZXh0VmFsdWU+KFNFTEVDVF9OQU1FKTtcblxuaW50ZXJmYWNlIFNlbGVjdFByb3BzIHtcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIHZhbHVlPzogc3RyaW5nO1xuICBkZWZhdWx0VmFsdWU/OiBzdHJpbmc7XG4gIG9uVmFsdWVDaGFuZ2U/KHZhbHVlOiBzdHJpbmcpOiB2b2lkO1xuICBvcGVuPzogYm9vbGVhbjtcbiAgZGVmYXVsdE9wZW4/OiBib29sZWFuO1xuICBvbk9wZW5DaGFuZ2U/KG9wZW46IGJvb2xlYW4pOiB2b2lkO1xuICBkaXI/OiBEaXJlY3Rpb247XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGF1dG9Db21wbGV0ZT86IHN0cmluZztcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICByZXF1aXJlZD86IGJvb2xlYW47XG4gIGZvcm0/OiBzdHJpbmc7XG59XG5cbmNvbnN0IFNlbGVjdDogUmVhY3QuRkM8U2VsZWN0UHJvcHM+ID0gKHByb3BzOiBTY29wZWRQcm9wczxTZWxlY3RQcm9wcz4pID0+IHtcbiAgY29uc3Qge1xuICAgIF9fc2NvcGVTZWxlY3QsXG4gICAgY2hpbGRyZW4sXG4gICAgb3Blbjogb3BlblByb3AsXG4gICAgZGVmYXVsdE9wZW4sXG4gICAgb25PcGVuQ2hhbmdlLFxuICAgIHZhbHVlOiB2YWx1ZVByb3AsXG4gICAgZGVmYXVsdFZhbHVlLFxuICAgIG9uVmFsdWVDaGFuZ2UsXG4gICAgZGlyLFxuICAgIG5hbWUsXG4gICAgYXV0b0NvbXBsZXRlLFxuICAgIGRpc2FibGVkLFxuICAgIHJlcXVpcmVkLFxuICAgIGZvcm0sXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgcG9wcGVyU2NvcGUgPSB1c2VQb3BwZXJTY29wZShfX3Njb3BlU2VsZWN0KTtcbiAgY29uc3QgW3RyaWdnZXIsIHNldFRyaWdnZXJdID0gUmVhY3QudXNlU3RhdGU8U2VsZWN0VHJpZ2dlckVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgW3ZhbHVlTm9kZSwgc2V0VmFsdWVOb2RlXSA9IFJlYWN0LnVzZVN0YXRlPFNlbGVjdFZhbHVlRWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBbdmFsdWVOb2RlSGFzQ2hpbGRyZW4sIHNldFZhbHVlTm9kZUhhc0NoaWxkcmVuXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgZGlyZWN0aW9uID0gdXNlRGlyZWN0aW9uKGRpcik7XG4gIGNvbnN0IFtvcGVuID0gZmFsc2UsIHNldE9wZW5dID0gdXNlQ29udHJvbGxhYmxlU3RhdGUoe1xuICAgIHByb3A6IG9wZW5Qcm9wLFxuICAgIGRlZmF1bHRQcm9wOiBkZWZhdWx0T3BlbixcbiAgICBvbkNoYW5nZTogb25PcGVuQ2hhbmdlLFxuICB9KTtcbiAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSB1c2VDb250cm9sbGFibGVTdGF0ZSh7XG4gICAgcHJvcDogdmFsdWVQcm9wLFxuICAgIGRlZmF1bHRQcm9wOiBkZWZhdWx0VmFsdWUsXG4gICAgb25DaGFuZ2U6IG9uVmFsdWVDaGFuZ2UsXG4gIH0pO1xuICBjb25zdCB0cmlnZ2VyUG9pbnRlckRvd25Qb3NSZWYgPSBSZWFjdC51c2VSZWY8eyB4OiBudW1iZXI7IHk6IG51bWJlciB9IHwgbnVsbD4obnVsbCk7XG5cbiAgLy8gV2Ugc2V0IHRoaXMgdG8gdHJ1ZSBieSBkZWZhdWx0IHNvIHRoYXQgZXZlbnRzIGJ1YmJsZSB0byBmb3JtcyB3aXRob3V0IEpTIChTU1IpXG4gIGNvbnN0IGlzRm9ybUNvbnRyb2wgPSB0cmlnZ2VyID8gZm9ybSB8fCAhIXRyaWdnZXIuY2xvc2VzdCgnZm9ybScpIDogdHJ1ZTtcbiAgY29uc3QgW25hdGl2ZU9wdGlvbnNTZXQsIHNldE5hdGl2ZU9wdGlvbnNTZXRdID0gUmVhY3QudXNlU3RhdGUobmV3IFNldDxOYXRpdmVPcHRpb24+KCkpO1xuXG4gIC8vIFRoZSBuYXRpdmUgYHNlbGVjdGAgb25seSBhc3NvY2lhdGVzIHRoZSBjb3JyZWN0IGRlZmF1bHQgdmFsdWUgaWYgdGhlIGNvcnJlc3BvbmRpbmdcbiAgLy8gYG9wdGlvbmAgaXMgcmVuZGVyZWQgYXMgYSBjaGlsZCAqKmF0IHRoZSBzYW1lIHRpbWUqKiBhcyBpdHNlbGYuXG4gIC8vIEJlY2F1c2UgaXQgbWlnaHQgdGFrZSBhIGZldyByZW5kZXJzIGZvciBvdXIgaXRlbXMgdG8gZ2F0aGVyIHRoZSBpbmZvcm1hdGlvbiB0byBidWlsZFxuICAvLyB0aGUgbmF0aXZlIGBvcHRpb25gKHMpLCB3ZSBnZW5lcmF0ZSBhIGtleSBvbiB0aGUgYHNlbGVjdGAgdG8gbWFrZSBzdXJlIFJlYWN0IHJlLWJ1aWxkcyBpdFxuICAvLyBlYWNoIHRpbWUgdGhlIG9wdGlvbnMgY2hhbmdlLlxuICBjb25zdCBuYXRpdmVTZWxlY3RLZXkgPSBBcnJheS5mcm9tKG5hdGl2ZU9wdGlvbnNTZXQpXG4gICAgLm1hcCgob3B0aW9uKSA9PiBvcHRpb24ucHJvcHMudmFsdWUpXG4gICAgLmpvaW4oJzsnKTtcblxuICByZXR1cm4gKFxuICAgIDxQb3BwZXJQcmltaXRpdmUuUm9vdCB7Li4ucG9wcGVyU2NvcGV9PlxuICAgICAgPFNlbGVjdFByb3ZpZGVyXG4gICAgICAgIHJlcXVpcmVkPXtyZXF1aXJlZH1cbiAgICAgICAgc2NvcGU9e19fc2NvcGVTZWxlY3R9XG4gICAgICAgIHRyaWdnZXI9e3RyaWdnZXJ9XG4gICAgICAgIG9uVHJpZ2dlckNoYW5nZT17c2V0VHJpZ2dlcn1cbiAgICAgICAgdmFsdWVOb2RlPXt2YWx1ZU5vZGV9XG4gICAgICAgIG9uVmFsdWVOb2RlQ2hhbmdlPXtzZXRWYWx1ZU5vZGV9XG4gICAgICAgIHZhbHVlTm9kZUhhc0NoaWxkcmVuPXt2YWx1ZU5vZGVIYXNDaGlsZHJlbn1cbiAgICAgICAgb25WYWx1ZU5vZGVIYXNDaGlsZHJlbkNoYW5nZT17c2V0VmFsdWVOb2RlSGFzQ2hpbGRyZW59XG4gICAgICAgIGNvbnRlbnRJZD17dXNlSWQoKX1cbiAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICBvblZhbHVlQ2hhbmdlPXtzZXRWYWx1ZX1cbiAgICAgICAgb3Blbj17b3Blbn1cbiAgICAgICAgb25PcGVuQ2hhbmdlPXtzZXRPcGVufVxuICAgICAgICBkaXI9e2RpcmVjdGlvbn1cbiAgICAgICAgdHJpZ2dlclBvaW50ZXJEb3duUG9zUmVmPXt0cmlnZ2VyUG9pbnRlckRvd25Qb3NSZWZ9XG4gICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgID5cbiAgICAgICAgPENvbGxlY3Rpb24uUHJvdmlkZXIgc2NvcGU9e19fc2NvcGVTZWxlY3R9PlxuICAgICAgICAgIDxTZWxlY3ROYXRpdmVPcHRpb25zUHJvdmlkZXJcbiAgICAgICAgICAgIHNjb3BlPXtwcm9wcy5fX3Njb3BlU2VsZWN0fVxuICAgICAgICAgICAgb25OYXRpdmVPcHRpb25BZGQ9e1JlYWN0LnVzZUNhbGxiYWNrKChvcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgc2V0TmF0aXZlT3B0aW9uc1NldCgocHJldikgPT4gbmV3IFNldChwcmV2KS5hZGQob3B0aW9uKSk7XG4gICAgICAgICAgICB9LCBbXSl9XG4gICAgICAgICAgICBvbk5hdGl2ZU9wdGlvblJlbW92ZT17UmVhY3QudXNlQ2FsbGJhY2soKG9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICBzZXROYXRpdmVPcHRpb25zU2V0KChwcmV2KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uc1NldCA9IG5ldyBTZXQocHJldik7XG4gICAgICAgICAgICAgICAgb3B0aW9uc1NldC5kZWxldGUob3B0aW9uKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uc1NldDtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LCBbXSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgIDwvU2VsZWN0TmF0aXZlT3B0aW9uc1Byb3ZpZGVyPlxuICAgICAgICA8L0NvbGxlY3Rpb24uUHJvdmlkZXI+XG5cbiAgICAgICAge2lzRm9ybUNvbnRyb2wgPyAoXG4gICAgICAgICAgPEJ1YmJsZVNlbGVjdFxuICAgICAgICAgICAga2V5PXtuYXRpdmVTZWxlY3RLZXl9XG4gICAgICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICAgICAgcmVxdWlyZWQ9e3JlcXVpcmVkfVxuICAgICAgICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICAgIGF1dG9Db21wbGV0ZT17YXV0b0NvbXBsZXRlfVxuICAgICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgICAgLy8gZW5hYmxlIGZvcm0gYXV0b2ZpbGxcbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoZXZlbnQpID0+IHNldFZhbHVlKGV2ZW50LnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICBmb3JtPXtmb3JtfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt2YWx1ZSA9PT0gdW5kZWZpbmVkID8gPG9wdGlvbiB2YWx1ZT1cIlwiIC8+IDogbnVsbH1cbiAgICAgICAgICAgIHtBcnJheS5mcm9tKG5hdGl2ZU9wdGlvbnNTZXQpfVxuICAgICAgICAgIDwvQnViYmxlU2VsZWN0PlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvU2VsZWN0UHJvdmlkZXI+XG4gICAgPC9Qb3BwZXJQcmltaXRpdmUuUm9vdD5cbiAgKTtcbn07XG5cblNlbGVjdC5kaXNwbGF5TmFtZSA9IFNFTEVDVF9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBTZWxlY3RUcmlnZ2VyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFRSSUdHRVJfTkFNRSA9ICdTZWxlY3RUcmlnZ2VyJztcblxudHlwZSBTZWxlY3RUcmlnZ2VyRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5idXR0b24+O1xudHlwZSBQcmltaXRpdmVCdXR0b25Qcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgUHJpbWl0aXZlLmJ1dHRvbj47XG5pbnRlcmZhY2UgU2VsZWN0VHJpZ2dlclByb3BzIGV4dGVuZHMgUHJpbWl0aXZlQnV0dG9uUHJvcHMge31cblxuY29uc3QgU2VsZWN0VHJpZ2dlciA9IFJlYWN0LmZvcndhcmRSZWY8U2VsZWN0VHJpZ2dlckVsZW1lbnQsIFNlbGVjdFRyaWdnZXJQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8U2VsZWN0VHJpZ2dlclByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlU2VsZWN0LCBkaXNhYmxlZCA9IGZhbHNlLCAuLi50cmlnZ2VyUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IHBvcHBlclNjb3BlID0gdXNlUG9wcGVyU2NvcGUoX19zY29wZVNlbGVjdCk7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZVNlbGVjdENvbnRleHQoVFJJR0dFUl9OQU1FLCBfX3Njb3BlU2VsZWN0KTtcbiAgICBjb25zdCBpc0Rpc2FibGVkID0gY29udGV4dC5kaXNhYmxlZCB8fCBkaXNhYmxlZDtcbiAgICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCBjb250ZXh0Lm9uVHJpZ2dlckNoYW5nZSk7XG4gICAgY29uc3QgZ2V0SXRlbXMgPSB1c2VDb2xsZWN0aW9uKF9fc2NvcGVTZWxlY3QpO1xuICAgIGNvbnN0IHBvaW50ZXJUeXBlUmVmID0gUmVhY3QudXNlUmVmPFJlYWN0LlBvaW50ZXJFdmVudFsncG9pbnRlclR5cGUnXT4oJ3RvdWNoJyk7XG5cbiAgICBjb25zdCBbc2VhcmNoUmVmLCBoYW5kbGVUeXBlYWhlYWRTZWFyY2gsIHJlc2V0VHlwZWFoZWFkXSA9IHVzZVR5cGVhaGVhZFNlYXJjaCgoc2VhcmNoKSA9PiB7XG4gICAgICBjb25zdCBlbmFibGVkSXRlbXMgPSBnZXRJdGVtcygpLmZpbHRlcigoaXRlbSkgPT4gIWl0ZW0uZGlzYWJsZWQpO1xuICAgICAgY29uc3QgY3VycmVudEl0ZW0gPSBlbmFibGVkSXRlbXMuZmluZCgoaXRlbSkgPT4gaXRlbS52YWx1ZSA9PT0gY29udGV4dC52YWx1ZSk7XG4gICAgICBjb25zdCBuZXh0SXRlbSA9IGZpbmROZXh0SXRlbShlbmFibGVkSXRlbXMsIHNlYXJjaCwgY3VycmVudEl0ZW0pO1xuICAgICAgaWYgKG5leHRJdGVtICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29udGV4dC5vblZhbHVlQ2hhbmdlKG5leHRJdGVtLnZhbHVlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IGhhbmRsZU9wZW4gPSAocG9pbnRlckV2ZW50PzogUmVhY3QuTW91c2VFdmVudCB8IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgaWYgKCFpc0Rpc2FibGVkKSB7XG4gICAgICAgIGNvbnRleHQub25PcGVuQ2hhbmdlKHRydWUpO1xuICAgICAgICAvLyByZXNldCB0eXBlYWhlYWQgd2hlbiB3ZSBvcGVuXG4gICAgICAgIHJlc2V0VHlwZWFoZWFkKCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChwb2ludGVyRXZlbnQpIHtcbiAgICAgICAgY29udGV4dC50cmlnZ2VyUG9pbnRlckRvd25Qb3NSZWYuY3VycmVudCA9IHtcbiAgICAgICAgICB4OiBNYXRoLnJvdW5kKHBvaW50ZXJFdmVudC5wYWdlWCksXG4gICAgICAgICAgeTogTWF0aC5yb3VuZChwb2ludGVyRXZlbnQucGFnZVkpLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH07XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFBvcHBlclByaW1pdGl2ZS5BbmNob3IgYXNDaGlsZCB7Li4ucG9wcGVyU2NvcGV9PlxuICAgICAgICA8UHJpbWl0aXZlLmJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIHJvbGU9XCJjb21ib2JveFwiXG4gICAgICAgICAgYXJpYS1jb250cm9scz17Y29udGV4dC5jb250ZW50SWR9XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17Y29udGV4dC5vcGVufVxuICAgICAgICAgIGFyaWEtcmVxdWlyZWQ9e2NvbnRleHQucmVxdWlyZWR9XG4gICAgICAgICAgYXJpYS1hdXRvY29tcGxldGU9XCJub25lXCJcbiAgICAgICAgICBkaXI9e2NvbnRleHQuZGlyfVxuICAgICAgICAgIGRhdGEtc3RhdGU9e2NvbnRleHQub3BlbiA/ICdvcGVuJyA6ICdjbG9zZWQnfVxuICAgICAgICAgIGRpc2FibGVkPXtpc0Rpc2FibGVkfVxuICAgICAgICAgIGRhdGEtZGlzYWJsZWQ9e2lzRGlzYWJsZWQgPyAnJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICBkYXRhLXBsYWNlaG9sZGVyPXtzaG91bGRTaG93UGxhY2Vob2xkZXIoY29udGV4dC52YWx1ZSkgPyAnJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICB7Li4udHJpZ2dlclByb3BzfVxuICAgICAgICAgIHJlZj17Y29tcG9zZWRSZWZzfVxuICAgICAgICAgIC8vIEVuYWJsZSBjb21wYXRpYmlsaXR5IHdpdGggbmF0aXZlIGxhYmVsIG9yIGN1c3RvbSBgTGFiZWxgIFwiY2xpY2tcIiBmb3IgU2FmYXJpOlxuICAgICAgICAgIG9uQ2xpY2s9e2NvbXBvc2VFdmVudEhhbmRsZXJzKHRyaWdnZXJQcm9wcy5vbkNsaWNrLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIC8vIFdoaWxzdCBicm93c2VycyBnZW5lcmFsbHkgaGF2ZSBubyBpc3N1ZSBmb2N1c2luZyB0aGUgdHJpZ2dlciB3aGVuIGNsaWNraW5nXG4gICAgICAgICAgICAvLyBvbiBhIGxhYmVsLCBTYWZhcmkgc2VlbXMgdG8gc3RydWdnbGUgd2l0aCB0aGUgZmFjdCB0aGF0IHRoZXJlJ3Mgbm8gYG9uQ2xpY2tgLlxuICAgICAgICAgICAgLy8gV2UgZm9yY2UgYGZvY3VzYCBpbiB0aGlzIGNhc2UuIE5vdGU6IHRoaXMgZG9lc24ndCBjcmVhdGUgYW55IG90aGVyIHNpZGUtZWZmZWN0XG4gICAgICAgICAgICAvLyBiZWNhdXNlIHdlIGFyZSBwcmV2ZW50aW5nIGRlZmF1bHQgaW4gYG9uUG9pbnRlckRvd25gIHNvIGVmZmVjdGl2ZWx5XG4gICAgICAgICAgICAvLyB0aGlzIG9ubHkgcnVucyBmb3IgYSBsYWJlbCBcImNsaWNrXCJcbiAgICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuZm9jdXMoKTtcblxuICAgICAgICAgICAgLy8gT3BlbiBvbiBjbGljayB3aGVuIHVzaW5nIGEgdG91Y2ggb3IgcGVuIGRldmljZVxuICAgICAgICAgICAgaWYgKHBvaW50ZXJUeXBlUmVmLmN1cnJlbnQgIT09ICdtb3VzZScpIHtcbiAgICAgICAgICAgICAgaGFuZGxlT3BlbihldmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSl9XG4gICAgICAgICAgb25Qb2ludGVyRG93bj17Y29tcG9zZUV2ZW50SGFuZGxlcnModHJpZ2dlclByb3BzLm9uUG9pbnRlckRvd24sIChldmVudCkgPT4ge1xuICAgICAgICAgICAgcG9pbnRlclR5cGVSZWYuY3VycmVudCA9IGV2ZW50LnBvaW50ZXJUeXBlO1xuXG4gICAgICAgICAgICAvLyBwcmV2ZW50IGltcGxpY2l0IHBvaW50ZXIgY2FwdHVyZVxuICAgICAgICAgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3BvaW50ZXJldmVudHMzLyNpbXBsaWNpdC1wb2ludGVyLWNhcHR1cmVcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICAgIGlmICh0YXJnZXQuaGFzUG9pbnRlckNhcHR1cmUoZXZlbnQucG9pbnRlcklkKSkge1xuICAgICAgICAgICAgICB0YXJnZXQucmVsZWFzZVBvaW50ZXJDYXB0dXJlKGV2ZW50LnBvaW50ZXJJZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIG9ubHkgY2FsbCBoYW5kbGVyIGlmIGl0J3MgdGhlIGxlZnQgYnV0dG9uIChtb3VzZWRvd24gZ2V0cyB0cmlnZ2VyZWQgYnkgYWxsIG1vdXNlIGJ1dHRvbnMpXG4gICAgICAgICAgICAvLyBidXQgbm90IHdoZW4gdGhlIGNvbnRyb2wga2V5IGlzIHByZXNzZWQgKGF2b2lkaW5nIE1hY09TIHJpZ2h0IGNsaWNrKTsgYWxzbyBub3QgZm9yIHRvdWNoXG4gICAgICAgICAgICAvLyBkZXZpY2VzIGJlY2F1c2UgdGhhdCB3b3VsZCBvcGVuIHRoZSBtZW51IG9uIHNjcm9sbC4gKHBlbiBkZXZpY2VzIGJlaGF2ZSBhcyB0b3VjaCBvbiBpT1MpLlxuICAgICAgICAgICAgaWYgKGV2ZW50LmJ1dHRvbiA9PT0gMCAmJiBldmVudC5jdHJsS2V5ID09PSBmYWxzZSAmJiBldmVudC5wb2ludGVyVHlwZSA9PT0gJ21vdXNlJykge1xuICAgICAgICAgICAgICBoYW5kbGVPcGVuKGV2ZW50KTtcbiAgICAgICAgICAgICAgLy8gcHJldmVudCB0cmlnZ2VyIGZyb20gc3RlYWxpbmcgZm9jdXMgZnJvbSB0aGUgYWN0aXZlIGl0ZW0gYWZ0ZXIgb3BlbmluZy5cbiAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KX1cbiAgICAgICAgICBvbktleURvd249e2NvbXBvc2VFdmVudEhhbmRsZXJzKHRyaWdnZXJQcm9wcy5vbktleURvd24sIChldmVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNUeXBpbmdBaGVhZCA9IHNlYXJjaFJlZi5jdXJyZW50ICE9PSAnJztcbiAgICAgICAgICAgIGNvbnN0IGlzTW9kaWZpZXJLZXkgPSBldmVudC5jdHJsS2V5IHx8IGV2ZW50LmFsdEtleSB8fCBldmVudC5tZXRhS2V5O1xuICAgICAgICAgICAgaWYgKCFpc01vZGlmaWVyS2V5ICYmIGV2ZW50LmtleS5sZW5ndGggPT09IDEpIGhhbmRsZVR5cGVhaGVhZFNlYXJjaChldmVudC5rZXkpO1xuICAgICAgICAgICAgaWYgKGlzVHlwaW5nQWhlYWQgJiYgZXZlbnQua2V5ID09PSAnICcpIHJldHVybjtcbiAgICAgICAgICAgIGlmIChPUEVOX0tFWVMuaW5jbHVkZXMoZXZlbnQua2V5KSkge1xuICAgICAgICAgICAgICBoYW5kbGVPcGVuKCk7XG4gICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSl9XG4gICAgICAgIC8+XG4gICAgICA8L1BvcHBlclByaW1pdGl2ZS5BbmNob3I+XG4gICAgKTtcbiAgfVxuKTtcblxuU2VsZWN0VHJpZ2dlci5kaXNwbGF5TmFtZSA9IFRSSUdHRVJfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogU2VsZWN0VmFsdWVcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgVkFMVUVfTkFNRSA9ICdTZWxlY3RWYWx1ZSc7XG5cbnR5cGUgU2VsZWN0VmFsdWVFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLnNwYW4+O1xudHlwZSBQcmltaXRpdmVTcGFuUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFByaW1pdGl2ZS5zcGFuPjtcbmludGVyZmFjZSBTZWxlY3RWYWx1ZVByb3BzIGV4dGVuZHMgT21pdDxQcmltaXRpdmVTcGFuUHJvcHMsICdwbGFjZWhvbGRlcic+IHtcbiAgcGxhY2Vob2xkZXI/OiBSZWFjdC5SZWFjdE5vZGU7XG59XG5cbmNvbnN0IFNlbGVjdFZhbHVlID0gUmVhY3QuZm9yd2FyZFJlZjxTZWxlY3RWYWx1ZUVsZW1lbnQsIFNlbGVjdFZhbHVlUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPFNlbGVjdFZhbHVlUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICAvLyBXZSBpZ25vcmUgYGNsYXNzTmFtZWAgYW5kIGBzdHlsZWAgYXMgdGhpcyBwYXJ0IHNob3VsZG4ndCBiZSBzdHlsZWQuXG4gICAgY29uc3QgeyBfX3Njb3BlU2VsZWN0LCBjbGFzc05hbWUsIHN0eWxlLCBjaGlsZHJlbiwgcGxhY2Vob2xkZXIgPSAnJywgLi4udmFsdWVQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZVNlbGVjdENvbnRleHQoVkFMVUVfTkFNRSwgX19zY29wZVNlbGVjdCk7XG4gICAgY29uc3QgeyBvblZhbHVlTm9kZUhhc0NoaWxkcmVuQ2hhbmdlIH0gPSBjb250ZXh0O1xuICAgIGNvbnN0IGhhc0NoaWxkcmVuID0gY2hpbGRyZW4gIT09IHVuZGVmaW5lZDtcbiAgICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCBjb250ZXh0Lm9uVmFsdWVOb2RlQ2hhbmdlKTtcblxuICAgIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgICBvblZhbHVlTm9kZUhhc0NoaWxkcmVuQ2hhbmdlKGhhc0NoaWxkcmVuKTtcbiAgICB9LCBbb25WYWx1ZU5vZGVIYXNDaGlsZHJlbkNoYW5nZSwgaGFzQ2hpbGRyZW5dKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8UHJpbWl0aXZlLnNwYW5cbiAgICAgICAgey4uLnZhbHVlUHJvcHN9XG4gICAgICAgIHJlZj17Y29tcG9zZWRSZWZzfVxuICAgICAgICAvLyB3ZSBkb24ndCB3YW50IGV2ZW50cyBmcm9tIHRoZSBwb3J0YWxsZWQgYFNlbGVjdFZhbHVlYCBjaGlsZHJlbiB0byBidWJibGVcbiAgICAgICAgLy8gdGhyb3VnaCB0aGUgaXRlbSB0aGV5IGNhbWUgZnJvbVxuICAgICAgICBzdHlsZT17eyBwb2ludGVyRXZlbnRzOiAnbm9uZScgfX1cbiAgICAgID5cbiAgICAgICAge3Nob3VsZFNob3dQbGFjZWhvbGRlcihjb250ZXh0LnZhbHVlKSA/IDw+e3BsYWNlaG9sZGVyfTwvPiA6IGNoaWxkcmVufVxuICAgICAgPC9QcmltaXRpdmUuc3Bhbj5cbiAgICApO1xuICB9XG4pO1xuXG5TZWxlY3RWYWx1ZS5kaXNwbGF5TmFtZSA9IFZBTFVFX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFNlbGVjdEljb25cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgSUNPTl9OQU1FID0gJ1NlbGVjdEljb24nO1xuXG50eXBlIFNlbGVjdEljb25FbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLnNwYW4+O1xuaW50ZXJmYWNlIFNlbGVjdEljb25Qcm9wcyBleHRlbmRzIFByaW1pdGl2ZVNwYW5Qcm9wcyB7fVxuXG5jb25zdCBTZWxlY3RJY29uID0gUmVhY3QuZm9yd2FyZFJlZjxTZWxlY3RJY29uRWxlbWVudCwgU2VsZWN0SWNvblByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxTZWxlY3RJY29uUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVTZWxlY3QsIGNoaWxkcmVuLCAuLi5pY29uUHJvcHMgfSA9IHByb3BzO1xuICAgIHJldHVybiAoXG4gICAgICA8UHJpbWl0aXZlLnNwYW4gYXJpYS1oaWRkZW4gey4uLmljb25Qcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9PlxuICAgICAgICB7Y2hpbGRyZW4gfHwgJ+KWvCd9XG4gICAgICA8L1ByaW1pdGl2ZS5zcGFuPlxuICAgICk7XG4gIH1cbik7XG5cblNlbGVjdEljb24uZGlzcGxheU5hbWUgPSBJQ09OX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFNlbGVjdFBvcnRhbFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBQT1JUQUxfTkFNRSA9ICdTZWxlY3RQb3J0YWwnO1xuXG50eXBlIFBvcnRhbFByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBQb3J0YWxQcmltaXRpdmU+O1xuaW50ZXJmYWNlIFNlbGVjdFBvcnRhbFByb3BzIHtcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIC8qKlxuICAgKiBTcGVjaWZ5IGEgY29udGFpbmVyIGVsZW1lbnQgdG8gcG9ydGFsIHRoZSBjb250ZW50IGludG8uXG4gICAqL1xuICBjb250YWluZXI/OiBQb3J0YWxQcm9wc1snY29udGFpbmVyJ107XG59XG5cbmNvbnN0IFNlbGVjdFBvcnRhbDogUmVhY3QuRkM8U2VsZWN0UG9ydGFsUHJvcHM+ID0gKHByb3BzOiBTY29wZWRQcm9wczxTZWxlY3RQb3J0YWxQcm9wcz4pID0+IHtcbiAgcmV0dXJuIDxQb3J0YWxQcmltaXRpdmUgYXNDaGlsZCB7Li4ucHJvcHN9IC8+O1xufTtcblxuU2VsZWN0UG9ydGFsLmRpc3BsYXlOYW1lID0gUE9SVEFMX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFNlbGVjdENvbnRlbnRcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgQ09OVEVOVF9OQU1FID0gJ1NlbGVjdENvbnRlbnQnO1xuXG50eXBlIFNlbGVjdENvbnRlbnRFbGVtZW50ID0gU2VsZWN0Q29udGVudEltcGxFbGVtZW50O1xuaW50ZXJmYWNlIFNlbGVjdENvbnRlbnRQcm9wcyBleHRlbmRzIFNlbGVjdENvbnRlbnRJbXBsUHJvcHMge31cblxuY29uc3QgU2VsZWN0Q29udGVudCA9IFJlYWN0LmZvcndhcmRSZWY8U2VsZWN0Q29udGVudEVsZW1lbnQsIFNlbGVjdENvbnRlbnRQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8U2VsZWN0Q29udGVudFByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZVNlbGVjdENvbnRleHQoQ09OVEVOVF9OQU1FLCBwcm9wcy5fX3Njb3BlU2VsZWN0KTtcbiAgICBjb25zdCBbZnJhZ21lbnQsIHNldEZyYWdtZW50XSA9IFJlYWN0LnVzZVN0YXRlPERvY3VtZW50RnJhZ21lbnQ+KCk7XG5cbiAgICAvLyBzZXR0aW5nIHRoZSBmcmFnbWVudCBpbiBgdXNlTGF5b3V0RWZmZWN0YCBhcyBgRG9jdW1lbnRGcmFnbWVudGAgZG9lc24ndCBleGlzdCBvbiB0aGUgc2VydmVyXG4gICAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICAgIHNldEZyYWdtZW50KG5ldyBEb2N1bWVudEZyYWdtZW50KCkpO1xuICAgIH0sIFtdKTtcblxuICAgIGlmICghY29udGV4dC5vcGVuKSB7XG4gICAgICBjb25zdCBmcmFnID0gZnJhZ21lbnQgYXMgRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybiBmcmFnXG4gICAgICAgID8gUmVhY3RET00uY3JlYXRlUG9ydGFsKFxuICAgICAgICAgICAgPFNlbGVjdENvbnRlbnRQcm92aWRlciBzY29wZT17cHJvcHMuX19zY29wZVNlbGVjdH0+XG4gICAgICAgICAgICAgIDxDb2xsZWN0aW9uLlNsb3Qgc2NvcGU9e3Byb3BzLl9fc2NvcGVTZWxlY3R9PlxuICAgICAgICAgICAgICAgIDxkaXY+e3Byb3BzLmNoaWxkcmVufTwvZGl2PlxuICAgICAgICAgICAgICA8L0NvbGxlY3Rpb24uU2xvdD5cbiAgICAgICAgICAgIDwvU2VsZWN0Q29udGVudFByb3ZpZGVyPixcbiAgICAgICAgICAgIGZyYWdcbiAgICAgICAgICApXG4gICAgICAgIDogbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gPFNlbGVjdENvbnRlbnRJbXBsIHsuLi5wcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+O1xuICB9XG4pO1xuXG5TZWxlY3RDb250ZW50LmRpc3BsYXlOYW1lID0gQ09OVEVOVF9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBTZWxlY3RDb250ZW50SW1wbFxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBDT05URU5UX01BUkdJTiA9IDEwO1xuXG50eXBlIFNlbGVjdENvbnRlbnRDb250ZXh0VmFsdWUgPSB7XG4gIGNvbnRlbnQ/OiBTZWxlY3RDb250ZW50RWxlbWVudCB8IG51bGw7XG4gIHZpZXdwb3J0PzogU2VsZWN0Vmlld3BvcnRFbGVtZW50IHwgbnVsbDtcbiAgb25WaWV3cG9ydENoYW5nZT86IChub2RlOiBTZWxlY3RWaWV3cG9ydEVsZW1lbnQgfCBudWxsKSA9PiB2b2lkO1xuICBpdGVtUmVmQ2FsbGJhY2s/OiAobm9kZTogU2VsZWN0SXRlbUVsZW1lbnQgfCBudWxsLCB2YWx1ZTogc3RyaW5nLCBkaXNhYmxlZDogYm9vbGVhbikgPT4gdm9pZDtcbiAgc2VsZWN0ZWRJdGVtPzogU2VsZWN0SXRlbUVsZW1lbnQgfCBudWxsO1xuICBvbkl0ZW1MZWF2ZT86ICgpID0+IHZvaWQ7XG4gIGl0ZW1UZXh0UmVmQ2FsbGJhY2s/OiAoXG4gICAgbm9kZTogU2VsZWN0SXRlbVRleHRFbGVtZW50IHwgbnVsbCxcbiAgICB2YWx1ZTogc3RyaW5nLFxuICAgIGRpc2FibGVkOiBib29sZWFuXG4gICkgPT4gdm9pZDtcbiAgZm9jdXNTZWxlY3RlZEl0ZW0/OiAoKSA9PiB2b2lkO1xuICBzZWxlY3RlZEl0ZW1UZXh0PzogU2VsZWN0SXRlbVRleHRFbGVtZW50IHwgbnVsbDtcbiAgcG9zaXRpb24/OiBTZWxlY3RDb250ZW50UHJvcHNbJ3Bvc2l0aW9uJ107XG4gIGlzUG9zaXRpb25lZD86IGJvb2xlYW47XG4gIHNlYXJjaFJlZj86IFJlYWN0LlJlZk9iamVjdDxzdHJpbmc+O1xufTtcblxuY29uc3QgW1NlbGVjdENvbnRlbnRQcm92aWRlciwgdXNlU2VsZWN0Q29udGVudENvbnRleHRdID1cbiAgY3JlYXRlU2VsZWN0Q29udGV4dDxTZWxlY3RDb250ZW50Q29udGV4dFZhbHVlPihDT05URU5UX05BTUUpO1xuXG5jb25zdCBDT05URU5UX0lNUExfTkFNRSA9ICdTZWxlY3RDb250ZW50SW1wbCc7XG5cbnR5cGUgU2VsZWN0Q29udGVudEltcGxFbGVtZW50ID0gU2VsZWN0UG9wcGVyUG9zaXRpb25FbGVtZW50IHwgU2VsZWN0SXRlbUFsaWduZWRQb3NpdGlvbkVsZW1lbnQ7XG50eXBlIERpc21pc3NhYmxlTGF5ZXJQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgRGlzbWlzc2FibGVMYXllcj47XG50eXBlIEZvY3VzU2NvcGVQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgRm9jdXNTY29wZT47XG5cbnR5cGUgU2VsZWN0UG9wcGVyUHJpdmF0ZVByb3BzID0geyBvblBsYWNlZD86IFBvcHBlckNvbnRlbnRQcm9wc1snb25QbGFjZWQnXSB9O1xuXG5pbnRlcmZhY2UgU2VsZWN0Q29udGVudEltcGxQcm9wc1xuICBleHRlbmRzIE9taXQ8U2VsZWN0UG9wcGVyUG9zaXRpb25Qcm9wcywga2V5b2YgU2VsZWN0UG9wcGVyUHJpdmF0ZVByb3BzPixcbiAgICBPbWl0PFNlbGVjdEl0ZW1BbGlnbmVkUG9zaXRpb25Qcm9wcywga2V5b2YgU2VsZWN0UG9wcGVyUHJpdmF0ZVByb3BzPiB7XG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGNhbGxlZCB3aGVuIGF1dG8tZm9jdXNpbmcgb24gY2xvc2UuXG4gICAqIENhbiBiZSBwcmV2ZW50ZWQuXG4gICAqL1xuICBvbkNsb3NlQXV0b0ZvY3VzPzogRm9jdXNTY29wZVByb3BzWydvblVubW91bnRBdXRvRm9jdXMnXTtcbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXIgY2FsbGVkIHdoZW4gdGhlIGVzY2FwZSBrZXkgaXMgZG93bi5cbiAgICogQ2FuIGJlIHByZXZlbnRlZC5cbiAgICovXG4gIG9uRXNjYXBlS2V5RG93bj86IERpc21pc3NhYmxlTGF5ZXJQcm9wc1snb25Fc2NhcGVLZXlEb3duJ107XG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGNhbGxlZCB3aGVuIHRoZSBhIGBwb2ludGVyZG93bmAgZXZlbnQgaGFwcGVucyBvdXRzaWRlIG9mIHRoZSBgRGlzbWlzc2FibGVMYXllcmAuXG4gICAqIENhbiBiZSBwcmV2ZW50ZWQuXG4gICAqL1xuICBvblBvaW50ZXJEb3duT3V0c2lkZT86IERpc21pc3NhYmxlTGF5ZXJQcm9wc1snb25Qb2ludGVyRG93bk91dHNpZGUnXTtcblxuICBwb3NpdGlvbj86ICdpdGVtLWFsaWduZWQnIHwgJ3BvcHBlcic7XG59XG5cbmNvbnN0IFNlbGVjdENvbnRlbnRJbXBsID0gUmVhY3QuZm9yd2FyZFJlZjxTZWxlY3RDb250ZW50SW1wbEVsZW1lbnQsIFNlbGVjdENvbnRlbnRJbXBsUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPFNlbGVjdENvbnRlbnRJbXBsUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBfX3Njb3BlU2VsZWN0LFxuICAgICAgcG9zaXRpb24gPSAnaXRlbS1hbGlnbmVkJyxcbiAgICAgIG9uQ2xvc2VBdXRvRm9jdXMsXG4gICAgICBvbkVzY2FwZUtleURvd24sXG4gICAgICBvblBvaW50ZXJEb3duT3V0c2lkZSxcbiAgICAgIC8vXG4gICAgICAvLyBQb3BwZXJDb250ZW50IHByb3BzXG4gICAgICBzaWRlLFxuICAgICAgc2lkZU9mZnNldCxcbiAgICAgIGFsaWduLFxuICAgICAgYWxpZ25PZmZzZXQsXG4gICAgICBhcnJvd1BhZGRpbmcsXG4gICAgICBjb2xsaXNpb25Cb3VuZGFyeSxcbiAgICAgIGNvbGxpc2lvblBhZGRpbmcsXG4gICAgICBzdGlja3ksXG4gICAgICBoaWRlV2hlbkRldGFjaGVkLFxuICAgICAgYXZvaWRDb2xsaXNpb25zLFxuICAgICAgLy9cbiAgICAgIC4uLmNvbnRlbnRQcm9wc1xuICAgIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlU2VsZWN0Q29udGV4dChDT05URU5UX05BTUUsIF9fc2NvcGVTZWxlY3QpO1xuICAgIGNvbnN0IFtjb250ZW50LCBzZXRDb250ZW50XSA9IFJlYWN0LnVzZVN0YXRlPFNlbGVjdENvbnRlbnRJbXBsRWxlbWVudCB8IG51bGw+KG51bGwpO1xuICAgIGNvbnN0IFt2aWV3cG9ydCwgc2V0Vmlld3BvcnRdID0gUmVhY3QudXNlU3RhdGU8U2VsZWN0Vmlld3BvcnRFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gICAgY29uc3QgY29tcG9zZWRSZWZzID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgKG5vZGUpID0+IHNldENvbnRlbnQobm9kZSkpO1xuICAgIGNvbnN0IFtzZWxlY3RlZEl0ZW0sIHNldFNlbGVjdGVkSXRlbV0gPSBSZWFjdC51c2VTdGF0ZTxTZWxlY3RJdGVtRWxlbWVudCB8IG51bGw+KG51bGwpO1xuICAgIGNvbnN0IFtzZWxlY3RlZEl0ZW1UZXh0LCBzZXRTZWxlY3RlZEl0ZW1UZXh0XSA9IFJlYWN0LnVzZVN0YXRlPFNlbGVjdEl0ZW1UZXh0RWxlbWVudCB8IG51bGw+KFxuICAgICAgbnVsbFxuICAgICk7XG4gICAgY29uc3QgZ2V0SXRlbXMgPSB1c2VDb2xsZWN0aW9uKF9fc2NvcGVTZWxlY3QpO1xuICAgIGNvbnN0IFtpc1Bvc2l0aW9uZWQsIHNldElzUG9zaXRpb25lZF0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgZmlyc3RWYWxpZEl0ZW1Gb3VuZFJlZiA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG5cbiAgICAvLyBhcmlhLWhpZGUgZXZlcnl0aGluZyBleGNlcHQgdGhlIGNvbnRlbnQgKGJldHRlciBzdXBwb3J0ZWQgZXF1aXZhbGVudCB0byBzZXR0aW5nIGFyaWEtbW9kYWwpXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChjb250ZW50KSByZXR1cm4gaGlkZU90aGVycyhjb250ZW50KTtcbiAgICB9LCBbY29udGVudF0pO1xuXG4gICAgLy8gTWFrZSBzdXJlIHRoZSB3aG9sZSB0cmVlIGhhcyBmb2N1cyBndWFyZHMgYXMgb3VyIGBTZWxlY3RgIG1heSBiZVxuICAgIC8vIHRoZSBsYXN0IGVsZW1lbnQgaW4gdGhlIERPTSAoYmVjYXVzZSBvZiB0aGUgYFBvcnRhbGApXG4gICAgdXNlRm9jdXNHdWFyZHMoKTtcblxuICAgIGNvbnN0IGZvY3VzRmlyc3QgPSBSZWFjdC51c2VDYWxsYmFjayhcbiAgICAgIChjYW5kaWRhdGVzOiBBcnJheTxIVE1MRWxlbWVudCB8IG51bGw+KSA9PiB7XG4gICAgICAgIGNvbnN0IFtmaXJzdEl0ZW0sIC4uLnJlc3RJdGVtc10gPSBnZXRJdGVtcygpLm1hcCgoaXRlbSkgPT4gaXRlbS5yZWYuY3VycmVudCk7XG4gICAgICAgIGNvbnN0IFtsYXN0SXRlbV0gPSByZXN0SXRlbXMuc2xpY2UoLTEpO1xuXG4gICAgICAgIGNvbnN0IFBSRVZJT1VTTFlfRk9DVVNFRF9FTEVNRU5UID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcbiAgICAgICAgZm9yIChjb25zdCBjYW5kaWRhdGUgb2YgY2FuZGlkYXRlcykge1xuICAgICAgICAgIC8vIGlmIGZvY3VzIGlzIGFscmVhZHkgd2hlcmUgd2Ugd2FudCB0byBnbywgd2UgZG9uJ3Qgd2FudCB0byBrZWVwIGdvaW5nIHRocm91Z2ggdGhlIGNhbmRpZGF0ZXNcbiAgICAgICAgICBpZiAoY2FuZGlkYXRlID09PSBQUkVWSU9VU0xZX0ZPQ1VTRURfRUxFTUVOVCkgcmV0dXJuO1xuICAgICAgICAgIGNhbmRpZGF0ZT8uc2Nyb2xsSW50b1ZpZXcoeyBibG9jazogJ25lYXJlc3QnIH0pO1xuICAgICAgICAgIC8vIHZpZXdwb3J0IG1pZ2h0IGhhdmUgcGFkZGluZyBzbyBzY3JvbGwgdG8gaXRzIGVkZ2VzIHdoZW4gZm9jdXNpbmcgZmlyc3QvbGFzdCBpdGVtcy5cbiAgICAgICAgICBpZiAoY2FuZGlkYXRlID09PSBmaXJzdEl0ZW0gJiYgdmlld3BvcnQpIHZpZXdwb3J0LnNjcm9sbFRvcCA9IDA7XG4gICAgICAgICAgaWYgKGNhbmRpZGF0ZSA9PT0gbGFzdEl0ZW0gJiYgdmlld3BvcnQpIHZpZXdwb3J0LnNjcm9sbFRvcCA9IHZpZXdwb3J0LnNjcm9sbEhlaWdodDtcbiAgICAgICAgICBjYW5kaWRhdGU/LmZvY3VzKCk7XG4gICAgICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgIT09IFBSRVZJT1VTTFlfRk9DVVNFRF9FTEVNRU5UKSByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBbZ2V0SXRlbXMsIHZpZXdwb3J0XVxuICAgICk7XG5cbiAgICBjb25zdCBmb2N1c1NlbGVjdGVkSXRlbSA9IFJlYWN0LnVzZUNhbGxiYWNrKFxuICAgICAgKCkgPT4gZm9jdXNGaXJzdChbc2VsZWN0ZWRJdGVtLCBjb250ZW50XSksXG4gICAgICBbZm9jdXNGaXJzdCwgc2VsZWN0ZWRJdGVtLCBjb250ZW50XVxuICAgICk7XG5cbiAgICAvLyBTaW5jZSB0aGlzIGlzIG5vdCBkZXBlbmRlbnQgb24gbGF5b3V0LCB3ZSB3YW50IHRvIGVuc3VyZSB0aGlzIHJ1bnMgYXQgdGhlIHNhbWUgdGltZSBhc1xuICAgIC8vIG90aGVyIGVmZmVjdHMgYWNyb3NzIGNvbXBvbmVudHMuIEhlbmNlIHdoeSB3ZSBkb24ndCBjYWxsIGBmb2N1c1NlbGVjdGVkSXRlbWAgaW5zaWRlIGBwb3NpdGlvbmAuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChpc1Bvc2l0aW9uZWQpIHtcbiAgICAgICAgZm9jdXNTZWxlY3RlZEl0ZW0oKTtcbiAgICAgIH1cbiAgICB9LCBbaXNQb3NpdGlvbmVkLCBmb2N1c1NlbGVjdGVkSXRlbV0pO1xuXG4gICAgLy8gcHJldmVudCBzZWxlY3RpbmcgaXRlbXMgb24gYHBvaW50ZXJ1cGAgaW4gc29tZSBjYXNlcyBhZnRlciBvcGVuaW5nIGZyb20gYHBvaW50ZXJkb3duYFxuICAgIC8vIGFuZCBjbG9zZSBvbiBgcG9pbnRlcnVwYCBvdXRzaWRlLlxuICAgIGNvbnN0IHsgb25PcGVuQ2hhbmdlLCB0cmlnZ2VyUG9pbnRlckRvd25Qb3NSZWYgfSA9IGNvbnRleHQ7XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChjb250ZW50KSB7XG4gICAgICAgIGxldCBwb2ludGVyTW92ZURlbHRhID0geyB4OiAwLCB5OiAwIH07XG5cbiAgICAgICAgY29uc3QgaGFuZGxlUG9pbnRlck1vdmUgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgICAgIHBvaW50ZXJNb3ZlRGVsdGEgPSB7XG4gICAgICAgICAgICB4OiBNYXRoLmFicyhNYXRoLnJvdW5kKGV2ZW50LnBhZ2VYKSAtICh0cmlnZ2VyUG9pbnRlckRvd25Qb3NSZWYuY3VycmVudD8ueCA/PyAwKSksXG4gICAgICAgICAgICB5OiBNYXRoLmFicyhNYXRoLnJvdW5kKGV2ZW50LnBhZ2VZKSAtICh0cmlnZ2VyUG9pbnRlckRvd25Qb3NSZWYuY3VycmVudD8ueSA/PyAwKSksXG4gICAgICAgICAgfTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgaGFuZGxlUG9pbnRlclVwID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHtcbiAgICAgICAgICAvLyBJZiB0aGUgcG9pbnRlciBoYXNuJ3QgbW92ZWQgYnkgYSBjZXJ0YWluIHRocmVzaG9sZCB0aGVuIHdlIHByZXZlbnQgc2VsZWN0aW5nIGl0ZW0gb24gYHBvaW50ZXJ1cGAuXG4gICAgICAgICAgaWYgKHBvaW50ZXJNb3ZlRGVsdGEueCA8PSAxMCAmJiBwb2ludGVyTW92ZURlbHRhLnkgPD0gMTApIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIG90aGVyd2lzZSwgaWYgdGhlIGV2ZW50IHdhcyBvdXRzaWRlIHRoZSBjb250ZW50LCBjbG9zZS5cbiAgICAgICAgICAgIGlmICghY29udGVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgIG9uT3BlbkNoYW5nZShmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJtb3ZlJywgaGFuZGxlUG9pbnRlck1vdmUpO1xuICAgICAgICAgIHRyaWdnZXJQb2ludGVyRG93blBvc1JlZi5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAodHJpZ2dlclBvaW50ZXJEb3duUG9zUmVmLmN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVybW92ZScsIGhhbmRsZVBvaW50ZXJNb3ZlKTtcbiAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVydXAnLCBoYW5kbGVQb2ludGVyVXAsIHsgY2FwdHVyZTogdHJ1ZSwgb25jZTogdHJ1ZSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9pbnRlcm1vdmUnLCBoYW5kbGVQb2ludGVyTW92ZSk7XG4gICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9pbnRlcnVwJywgaGFuZGxlUG9pbnRlclVwLCB7IGNhcHR1cmU6IHRydWUgfSk7XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSwgW2NvbnRlbnQsIG9uT3BlbkNoYW5nZSwgdHJpZ2dlclBvaW50ZXJEb3duUG9zUmVmXSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgY2xvc2UgPSAoKSA9PiBvbk9wZW5DaGFuZ2UoZmFsc2UpO1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCBjbG9zZSk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgY2xvc2UpO1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2JsdXInLCBjbG9zZSk7XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCBjbG9zZSk7XG4gICAgICB9O1xuICAgIH0sIFtvbk9wZW5DaGFuZ2VdKTtcblxuICAgIGNvbnN0IFtzZWFyY2hSZWYsIGhhbmRsZVR5cGVhaGVhZFNlYXJjaF0gPSB1c2VUeXBlYWhlYWRTZWFyY2goKHNlYXJjaCkgPT4ge1xuICAgICAgY29uc3QgZW5hYmxlZEl0ZW1zID0gZ2V0SXRlbXMoKS5maWx0ZXIoKGl0ZW0pID0+ICFpdGVtLmRpc2FibGVkKTtcbiAgICAgIGNvbnN0IGN1cnJlbnRJdGVtID0gZW5hYmxlZEl0ZW1zLmZpbmQoKGl0ZW0pID0+IGl0ZW0ucmVmLmN1cnJlbnQgPT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpO1xuICAgICAgY29uc3QgbmV4dEl0ZW0gPSBmaW5kTmV4dEl0ZW0oZW5hYmxlZEl0ZW1zLCBzZWFyY2gsIGN1cnJlbnRJdGVtKTtcbiAgICAgIGlmIChuZXh0SXRlbSkge1xuICAgICAgICAvKipcbiAgICAgICAgICogSW1wZXJhdGl2ZSBmb2N1cyBkdXJpbmcga2V5ZG93biBpcyByaXNreSBzbyB3ZSBwcmV2ZW50IFJlYWN0J3MgYmF0Y2hpbmcgdXBkYXRlc1xuICAgICAgICAgKiB0byBhdm9pZCBwb3RlbnRpYWwgYnVncy4gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzIwMzMyXG4gICAgICAgICAqL1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IChuZXh0SXRlbS5yZWYuY3VycmVudCBhcyBIVE1MRWxlbWVudCkuZm9jdXMoKSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBpdGVtUmVmQ2FsbGJhY2sgPSBSZWFjdC51c2VDYWxsYmFjayhcbiAgICAgIChub2RlOiBTZWxlY3RJdGVtRWxlbWVudCB8IG51bGwsIHZhbHVlOiBzdHJpbmcsIGRpc2FibGVkOiBib29sZWFuKSA9PiB7XG4gICAgICAgIGNvbnN0IGlzRmlyc3RWYWxpZEl0ZW0gPSAhZmlyc3RWYWxpZEl0ZW1Gb3VuZFJlZi5jdXJyZW50ICYmICFkaXNhYmxlZDtcbiAgICAgICAgY29uc3QgaXNTZWxlY3RlZEl0ZW0gPSBjb250ZXh0LnZhbHVlICE9PSB1bmRlZmluZWQgJiYgY29udGV4dC52YWx1ZSA9PT0gdmFsdWU7XG4gICAgICAgIGlmIChpc1NlbGVjdGVkSXRlbSB8fCBpc0ZpcnN0VmFsaWRJdGVtKSB7XG4gICAgICAgICAgc2V0U2VsZWN0ZWRJdGVtKG5vZGUpO1xuICAgICAgICAgIGlmIChpc0ZpcnN0VmFsaWRJdGVtKSBmaXJzdFZhbGlkSXRlbUZvdW5kUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgW2NvbnRleHQudmFsdWVdXG4gICAgKTtcbiAgICBjb25zdCBoYW5kbGVJdGVtTGVhdmUgPSBSZWFjdC51c2VDYWxsYmFjaygoKSA9PiBjb250ZW50Py5mb2N1cygpLCBbY29udGVudF0pO1xuICAgIGNvbnN0IGl0ZW1UZXh0UmVmQ2FsbGJhY2sgPSBSZWFjdC51c2VDYWxsYmFjayhcbiAgICAgIChub2RlOiBTZWxlY3RJdGVtVGV4dEVsZW1lbnQgfCBudWxsLCB2YWx1ZTogc3RyaW5nLCBkaXNhYmxlZDogYm9vbGVhbikgPT4ge1xuICAgICAgICBjb25zdCBpc0ZpcnN0VmFsaWRJdGVtID0gIWZpcnN0VmFsaWRJdGVtRm91bmRSZWYuY3VycmVudCAmJiAhZGlzYWJsZWQ7XG4gICAgICAgIGNvbnN0IGlzU2VsZWN0ZWRJdGVtID0gY29udGV4dC52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIGNvbnRleHQudmFsdWUgPT09IHZhbHVlO1xuICAgICAgICBpZiAoaXNTZWxlY3RlZEl0ZW0gfHwgaXNGaXJzdFZhbGlkSXRlbSkge1xuICAgICAgICAgIHNldFNlbGVjdGVkSXRlbVRleHQobm9kZSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBbY29udGV4dC52YWx1ZV1cbiAgICApO1xuXG4gICAgY29uc3QgU2VsZWN0UG9zaXRpb24gPSBwb3NpdGlvbiA9PT0gJ3BvcHBlcicgPyBTZWxlY3RQb3BwZXJQb3NpdGlvbiA6IFNlbGVjdEl0ZW1BbGlnbmVkUG9zaXRpb247XG5cbiAgICAvLyBTaWxlbnRseSBpZ25vcmUgcHJvcHMgdGhhdCBhcmUgbm90IHN1cHBvcnRlZCBieSBgU2VsZWN0SXRlbUFsaWduZWRQb3NpdGlvbmBcbiAgICBjb25zdCBwb3BwZXJDb250ZW50UHJvcHMgPVxuICAgICAgU2VsZWN0UG9zaXRpb24gPT09IFNlbGVjdFBvcHBlclBvc2l0aW9uXG4gICAgICAgID8ge1xuICAgICAgICAgICAgc2lkZSxcbiAgICAgICAgICAgIHNpZGVPZmZzZXQsXG4gICAgICAgICAgICBhbGlnbixcbiAgICAgICAgICAgIGFsaWduT2Zmc2V0LFxuICAgICAgICAgICAgYXJyb3dQYWRkaW5nLFxuICAgICAgICAgICAgY29sbGlzaW9uQm91bmRhcnksXG4gICAgICAgICAgICBjb2xsaXNpb25QYWRkaW5nLFxuICAgICAgICAgICAgc3RpY2t5LFxuICAgICAgICAgICAgaGlkZVdoZW5EZXRhY2hlZCxcbiAgICAgICAgICAgIGF2b2lkQ29sbGlzaW9ucyxcbiAgICAgICAgICB9XG4gICAgICAgIDoge307XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFNlbGVjdENvbnRlbnRQcm92aWRlclxuICAgICAgICBzY29wZT17X19zY29wZVNlbGVjdH1cbiAgICAgICAgY29udGVudD17Y29udGVudH1cbiAgICAgICAgdmlld3BvcnQ9e3ZpZXdwb3J0fVxuICAgICAgICBvblZpZXdwb3J0Q2hhbmdlPXtzZXRWaWV3cG9ydH1cbiAgICAgICAgaXRlbVJlZkNhbGxiYWNrPXtpdGVtUmVmQ2FsbGJhY2t9XG4gICAgICAgIHNlbGVjdGVkSXRlbT17c2VsZWN0ZWRJdGVtfVxuICAgICAgICBvbkl0ZW1MZWF2ZT17aGFuZGxlSXRlbUxlYXZlfVxuICAgICAgICBpdGVtVGV4dFJlZkNhbGxiYWNrPXtpdGVtVGV4dFJlZkNhbGxiYWNrfVxuICAgICAgICBmb2N1c1NlbGVjdGVkSXRlbT17Zm9jdXNTZWxlY3RlZEl0ZW19XG4gICAgICAgIHNlbGVjdGVkSXRlbVRleHQ9e3NlbGVjdGVkSXRlbVRleHR9XG4gICAgICAgIHBvc2l0aW9uPXtwb3NpdGlvbn1cbiAgICAgICAgaXNQb3NpdGlvbmVkPXtpc1Bvc2l0aW9uZWR9XG4gICAgICAgIHNlYXJjaFJlZj17c2VhcmNoUmVmfVxuICAgICAgPlxuICAgICAgICA8UmVtb3ZlU2Nyb2xsIGFzPXtTbG90fSBhbGxvd1BpbmNoWm9vbT5cbiAgICAgICAgICA8Rm9jdXNTY29wZVxuICAgICAgICAgICAgYXNDaGlsZFxuICAgICAgICAgICAgLy8gd2UgbWFrZSBzdXJlIHdlJ3JlIG5vdCB0cmFwcGluZyBvbmNlIGl0J3MgYmVlbiBjbG9zZWRcbiAgICAgICAgICAgIC8vIChjbG9zZWQgIT09IHVubW91bnRlZCB3aGVuIGFuaW1hdGluZyBvdXQpXG4gICAgICAgICAgICB0cmFwcGVkPXtjb250ZXh0Lm9wZW59XG4gICAgICAgICAgICBvbk1vdW50QXV0b0ZvY3VzPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgLy8gd2UgcHJldmVudCBvcGVuIGF1dG9mb2N1cyBiZWNhdXNlIHdlIG1hbnVhbGx5IGZvY3VzIHRoZSBzZWxlY3RlZCBpdGVtXG4gICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgb25Vbm1vdW50QXV0b0ZvY3VzPXtjb21wb3NlRXZlbnRIYW5kbGVycyhvbkNsb3NlQXV0b0ZvY3VzLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgY29udGV4dC50cmlnZ2VyPy5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8RGlzbWlzc2FibGVMYXllclxuICAgICAgICAgICAgICBhc0NoaWxkXG4gICAgICAgICAgICAgIGRpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50c1xuICAgICAgICAgICAgICBvbkVzY2FwZUtleURvd249e29uRXNjYXBlS2V5RG93bn1cbiAgICAgICAgICAgICAgb25Qb2ludGVyRG93bk91dHNpZGU9e29uUG9pbnRlckRvd25PdXRzaWRlfVxuICAgICAgICAgICAgICAvLyBXaGVuIGZvY3VzIGlzIHRyYXBwZWQsIGEgZm9jdXNvdXQgZXZlbnQgbWF5IHN0aWxsIGhhcHBlbi5cbiAgICAgICAgICAgICAgLy8gV2UgbWFrZSBzdXJlIHdlIGRvbid0IHRyaWdnZXIgb3VyIGBvbkRpc21pc3NgIGluIHN1Y2ggY2FzZS5cbiAgICAgICAgICAgICAgb25Gb2N1c091dHNpZGU9eyhldmVudCkgPT4gZXZlbnQucHJldmVudERlZmF1bHQoKX1cbiAgICAgICAgICAgICAgb25EaXNtaXNzPXsoKSA9PiBjb250ZXh0Lm9uT3BlbkNoYW5nZShmYWxzZSl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTZWxlY3RQb3NpdGlvblxuICAgICAgICAgICAgICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICAgICAgICAgICAgICBpZD17Y29udGV4dC5jb250ZW50SWR9XG4gICAgICAgICAgICAgICAgZGF0YS1zdGF0ZT17Y29udGV4dC5vcGVuID8gJ29wZW4nIDogJ2Nsb3NlZCd9XG4gICAgICAgICAgICAgICAgZGlyPXtjb250ZXh0LmRpcn1cbiAgICAgICAgICAgICAgICBvbkNvbnRleHRNZW51PXsoZXZlbnQpID0+IGV2ZW50LnByZXZlbnREZWZhdWx0KCl9XG4gICAgICAgICAgICAgICAgey4uLmNvbnRlbnRQcm9wc31cbiAgICAgICAgICAgICAgICB7Li4ucG9wcGVyQ29udGVudFByb3BzfVxuICAgICAgICAgICAgICAgIG9uUGxhY2VkPXsoKSA9PiBzZXRJc1Bvc2l0aW9uZWQodHJ1ZSl9XG4gICAgICAgICAgICAgICAgcmVmPXtjb21wb3NlZFJlZnN9XG4gICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgIC8vIGZsZXggbGF5b3V0IHNvIHdlIGNhbiBwbGFjZSB0aGUgc2Nyb2xsIGJ1dHRvbnMgcHJvcGVybHlcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgICAgICAgICAgICAgICAgLy8gcmVzZXQgdGhlIG91dGxpbmUgYnkgZGVmYXVsdCBhcyB0aGUgY29udGVudCBNQVkgZ2V0IGZvY3VzZWRcbiAgICAgICAgICAgICAgICAgIG91dGxpbmU6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgIC4uLmNvbnRlbnRQcm9wcy5zdHlsZSxcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIG9uS2V5RG93bj17Y29tcG9zZUV2ZW50SGFuZGxlcnMoY29udGVudFByb3BzLm9uS2V5RG93biwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBpc01vZGlmaWVyS2V5ID0gZXZlbnQuY3RybEtleSB8fCBldmVudC5hbHRLZXkgfHwgZXZlbnQubWV0YUtleTtcblxuICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0IHNob3VsZCBub3QgYmUgbmF2aWdhdGVkIHVzaW5nIHRhYiBrZXkgc28gd2UgcHJldmVudCBpdFxuICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ1RhYicpIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgICAgICAgICAgIGlmICghaXNNb2RpZmllcktleSAmJiBldmVudC5rZXkubGVuZ3RoID09PSAxKSBoYW5kbGVUeXBlYWhlYWRTZWFyY2goZXZlbnQua2V5KTtcblxuICAgICAgICAgICAgICAgICAgaWYgKFsnQXJyb3dVcCcsICdBcnJvd0Rvd24nLCAnSG9tZScsICdFbmQnXS5pbmNsdWRlcyhldmVudC5rZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1zID0gZ2V0SXRlbXMoKS5maWx0ZXIoKGl0ZW0pID0+ICFpdGVtLmRpc2FibGVkKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNhbmRpZGF0ZU5vZGVzID0gaXRlbXMubWFwKChpdGVtKSA9PiBpdGVtLnJlZi5jdXJyZW50ISk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKFsnQXJyb3dVcCcsICdFbmQnXS5pbmNsdWRlcyhldmVudC5rZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgY2FuZGlkYXRlTm9kZXMgPSBjYW5kaWRhdGVOb2Rlcy5zbGljZSgpLnJldmVyc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoWydBcnJvd1VwJywgJ0Fycm93RG93biddLmluY2x1ZGVzKGV2ZW50LmtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50RWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBTZWxlY3RJdGVtRWxlbWVudDtcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSBjYW5kaWRhdGVOb2Rlcy5pbmRleE9mKGN1cnJlbnRFbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICBjYW5kaWRhdGVOb2RlcyA9IGNhbmRpZGF0ZU5vZGVzLnNsaWNlKGN1cnJlbnRJbmRleCArIDEpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIEltcGVyYXRpdmUgZm9jdXMgZHVyaW5nIGtleWRvd24gaXMgcmlza3kgc28gd2UgcHJldmVudCBSZWFjdCdzIGJhdGNoaW5nIHVwZGF0ZXNcbiAgICAgICAgICAgICAgICAgICAgICogdG8gYXZvaWQgcG90ZW50aWFsIGJ1Z3MuIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8yMDMzMlxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBmb2N1c0ZpcnN0KGNhbmRpZGF0ZU5vZGVzKSk7XG5cbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvRGlzbWlzc2FibGVMYXllcj5cbiAgICAgICAgICA8L0ZvY3VzU2NvcGU+XG4gICAgICAgIDwvUmVtb3ZlU2Nyb2xsPlxuICAgICAgPC9TZWxlY3RDb250ZW50UHJvdmlkZXI+XG4gICAgKTtcbiAgfVxuKTtcblxuU2VsZWN0Q29udGVudEltcGwuZGlzcGxheU5hbWUgPSBDT05URU5UX0lNUExfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogU2VsZWN0SXRlbUFsaWduZWRQb3NpdGlvblxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBJVEVNX0FMSUdORURfUE9TSVRJT05fTkFNRSA9ICdTZWxlY3RJdGVtQWxpZ25lZFBvc2l0aW9uJztcblxudHlwZSBTZWxlY3RJdGVtQWxpZ25lZFBvc2l0aW9uRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5kaXY+O1xuaW50ZXJmYWNlIFNlbGVjdEl0ZW1BbGlnbmVkUG9zaXRpb25Qcm9wcyBleHRlbmRzIFByaW1pdGl2ZURpdlByb3BzLCBTZWxlY3RQb3BwZXJQcml2YXRlUHJvcHMge31cblxuY29uc3QgU2VsZWN0SXRlbUFsaWduZWRQb3NpdGlvbiA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFNlbGVjdEl0ZW1BbGlnbmVkUG9zaXRpb25FbGVtZW50LFxuICBTZWxlY3RJdGVtQWxpZ25lZFBvc2l0aW9uUHJvcHNcbj4oKHByb3BzOiBTY29wZWRQcm9wczxTZWxlY3RJdGVtQWxpZ25lZFBvc2l0aW9uUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgY29uc3QgeyBfX3Njb3BlU2VsZWN0LCBvblBsYWNlZCwgLi4ucG9wcGVyUHJvcHMgfSA9IHByb3BzO1xuICBjb25zdCBjb250ZXh0ID0gdXNlU2VsZWN0Q29udGV4dChDT05URU5UX05BTUUsIF9fc2NvcGVTZWxlY3QpO1xuICBjb25zdCBjb250ZW50Q29udGV4dCA9IHVzZVNlbGVjdENvbnRlbnRDb250ZXh0KENPTlRFTlRfTkFNRSwgX19zY29wZVNlbGVjdCk7XG4gIGNvbnN0IFtjb250ZW50V3JhcHBlciwgc2V0Q29udGVudFdyYXBwZXJdID0gUmVhY3QudXNlU3RhdGU8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgW2NvbnRlbnQsIHNldENvbnRlbnRdID0gUmVhY3QudXNlU3RhdGU8U2VsZWN0SXRlbUFsaWduZWRQb3NpdGlvbkVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgY29tcG9zZWRSZWZzID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgKG5vZGUpID0+IHNldENvbnRlbnQobm9kZSkpO1xuICBjb25zdCBnZXRJdGVtcyA9IHVzZUNvbGxlY3Rpb24oX19zY29wZVNlbGVjdCk7XG4gIGNvbnN0IHNob3VsZEV4cGFuZE9uU2Nyb2xsUmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgY29uc3Qgc2hvdWxkUmVwb3NpdGlvblJlZiA9IFJlYWN0LnVzZVJlZih0cnVlKTtcblxuICBjb25zdCB7IHZpZXdwb3J0LCBzZWxlY3RlZEl0ZW0sIHNlbGVjdGVkSXRlbVRleHQsIGZvY3VzU2VsZWN0ZWRJdGVtIH0gPSBjb250ZW50Q29udGV4dDtcbiAgY29uc3QgcG9zaXRpb24gPSBSZWFjdC51c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKFxuICAgICAgY29udGV4dC50cmlnZ2VyICYmXG4gICAgICBjb250ZXh0LnZhbHVlTm9kZSAmJlxuICAgICAgY29udGVudFdyYXBwZXIgJiZcbiAgICAgIGNvbnRlbnQgJiZcbiAgICAgIHZpZXdwb3J0ICYmXG4gICAgICBzZWxlY3RlZEl0ZW0gJiZcbiAgICAgIHNlbGVjdGVkSXRlbVRleHRcbiAgICApIHtcbiAgICAgIGNvbnN0IHRyaWdnZXJSZWN0ID0gY29udGV4dC50cmlnZ2VyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgLy8gIEhvcml6b250YWwgcG9zaXRpb25pbmdcbiAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBjb25zdCBjb250ZW50UmVjdCA9IGNvbnRlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCB2YWx1ZU5vZGVSZWN0ID0gY29udGV4dC52YWx1ZU5vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCBpdGVtVGV4dFJlY3QgPSBzZWxlY3RlZEl0ZW1UZXh0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICBpZiAoY29udGV4dC5kaXIgIT09ICdydGwnKSB7XG4gICAgICAgIGNvbnN0IGl0ZW1UZXh0T2Zmc2V0ID0gaXRlbVRleHRSZWN0LmxlZnQgLSBjb250ZW50UmVjdC5sZWZ0O1xuICAgICAgICBjb25zdCBsZWZ0ID0gdmFsdWVOb2RlUmVjdC5sZWZ0IC0gaXRlbVRleHRPZmZzZXQ7XG4gICAgICAgIGNvbnN0IGxlZnREZWx0YSA9IHRyaWdnZXJSZWN0LmxlZnQgLSBsZWZ0O1xuICAgICAgICBjb25zdCBtaW5Db250ZW50V2lkdGggPSB0cmlnZ2VyUmVjdC53aWR0aCArIGxlZnREZWx0YTtcbiAgICAgICAgY29uc3QgY29udGVudFdpZHRoID0gTWF0aC5tYXgobWluQ29udGVudFdpZHRoLCBjb250ZW50UmVjdC53aWR0aCk7XG4gICAgICAgIGNvbnN0IHJpZ2h0RWRnZSA9IHdpbmRvdy5pbm5lcldpZHRoIC0gQ09OVEVOVF9NQVJHSU47XG4gICAgICAgIGNvbnN0IGNsYW1wZWRMZWZ0ID0gY2xhbXAobGVmdCwgW1xuICAgICAgICAgIENPTlRFTlRfTUFSR0lOLFxuICAgICAgICAgIC8vIFByZXZlbnRzIHRoZSBjb250ZW50IGZyb20gZ29pbmcgb2ZmIHRoZSBzdGFydGluZyBlZGdlIG9mIHRoZVxuICAgICAgICAgIC8vIHZpZXdwb3J0LiBJdCBtYXkgc3RpbGwgZ28gb2ZmIHRoZSBlbmRpbmcgZWRnZSwgYnV0IHRoaXMgY2FuIGJlXG4gICAgICAgICAgLy8gY29udHJvbGxlZCBieSB0aGUgdXNlciBzaW5jZSB0aGV5IG1heSB3YW50IHRvIG1hbmFnZSBvdmVyZmxvdyBpbiBhXG4gICAgICAgICAgLy8gc3BlY2lmaWMgd2F5LlxuICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9yYWRpeC11aS9wcmltaXRpdmVzL2lzc3Vlcy8yMDQ5XG4gICAgICAgICAgTWF0aC5tYXgoQ09OVEVOVF9NQVJHSU4sIHJpZ2h0RWRnZSAtIGNvbnRlbnRXaWR0aCksXG4gICAgICAgIF0pO1xuXG4gICAgICAgIGNvbnRlbnRXcmFwcGVyLnN0eWxlLm1pbldpZHRoID0gbWluQ29udGVudFdpZHRoICsgJ3B4JztcbiAgICAgICAgY29udGVudFdyYXBwZXIuc3R5bGUubGVmdCA9IGNsYW1wZWRMZWZ0ICsgJ3B4JztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGl0ZW1UZXh0T2Zmc2V0ID0gY29udGVudFJlY3QucmlnaHQgLSBpdGVtVGV4dFJlY3QucmlnaHQ7XG4gICAgICAgIGNvbnN0IHJpZ2h0ID0gd2luZG93LmlubmVyV2lkdGggLSB2YWx1ZU5vZGVSZWN0LnJpZ2h0IC0gaXRlbVRleHRPZmZzZXQ7XG4gICAgICAgIGNvbnN0IHJpZ2h0RGVsdGEgPSB3aW5kb3cuaW5uZXJXaWR0aCAtIHRyaWdnZXJSZWN0LnJpZ2h0IC0gcmlnaHQ7XG4gICAgICAgIGNvbnN0IG1pbkNvbnRlbnRXaWR0aCA9IHRyaWdnZXJSZWN0LndpZHRoICsgcmlnaHREZWx0YTtcbiAgICAgICAgY29uc3QgY29udGVudFdpZHRoID0gTWF0aC5tYXgobWluQ29udGVudFdpZHRoLCBjb250ZW50UmVjdC53aWR0aCk7XG4gICAgICAgIGNvbnN0IGxlZnRFZGdlID0gd2luZG93LmlubmVyV2lkdGggLSBDT05URU5UX01BUkdJTjtcbiAgICAgICAgY29uc3QgY2xhbXBlZFJpZ2h0ID0gY2xhbXAocmlnaHQsIFtcbiAgICAgICAgICBDT05URU5UX01BUkdJTixcbiAgICAgICAgICBNYXRoLm1heChDT05URU5UX01BUkdJTiwgbGVmdEVkZ2UgLSBjb250ZW50V2lkdGgpLFxuICAgICAgICBdKTtcblxuICAgICAgICBjb250ZW50V3JhcHBlci5zdHlsZS5taW5XaWR0aCA9IG1pbkNvbnRlbnRXaWR0aCArICdweCc7XG4gICAgICAgIGNvbnRlbnRXcmFwcGVyLnN0eWxlLnJpZ2h0ID0gY2xhbXBlZFJpZ2h0ICsgJ3B4JztcbiAgICAgIH1cblxuICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIC8vIFZlcnRpY2FsIHBvc2l0aW9uaW5nXG4gICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgY29uc3QgaXRlbXMgPSBnZXRJdGVtcygpO1xuICAgICAgY29uc3QgYXZhaWxhYmxlSGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IC0gQ09OVEVOVF9NQVJHSU4gKiAyO1xuICAgICAgY29uc3QgaXRlbXNIZWlnaHQgPSB2aWV3cG9ydC5zY3JvbGxIZWlnaHQ7XG5cbiAgICAgIGNvbnN0IGNvbnRlbnRTdHlsZXMgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjb250ZW50KTtcbiAgICAgIGNvbnN0IGNvbnRlbnRCb3JkZXJUb3BXaWR0aCA9IHBhcnNlSW50KGNvbnRlbnRTdHlsZXMuYm9yZGVyVG9wV2lkdGgsIDEwKTtcbiAgICAgIGNvbnN0IGNvbnRlbnRQYWRkaW5nVG9wID0gcGFyc2VJbnQoY29udGVudFN0eWxlcy5wYWRkaW5nVG9wLCAxMCk7XG4gICAgICBjb25zdCBjb250ZW50Qm9yZGVyQm90dG9tV2lkdGggPSBwYXJzZUludChjb250ZW50U3R5bGVzLmJvcmRlckJvdHRvbVdpZHRoLCAxMCk7XG4gICAgICBjb25zdCBjb250ZW50UGFkZGluZ0JvdHRvbSA9IHBhcnNlSW50KGNvbnRlbnRTdHlsZXMucGFkZGluZ0JvdHRvbSwgMTApO1xuICAgICAgY29uc3QgZnVsbENvbnRlbnRIZWlnaHQgPSBjb250ZW50Qm9yZGVyVG9wV2lkdGggKyBjb250ZW50UGFkZGluZ1RvcCArIGl0ZW1zSGVpZ2h0ICsgY29udGVudFBhZGRpbmdCb3R0b20gKyBjb250ZW50Qm9yZGVyQm90dG9tV2lkdGg7IC8vIHByZXR0aWVyLWlnbm9yZVxuICAgICAgY29uc3QgbWluQ29udGVudEhlaWdodCA9IE1hdGgubWluKHNlbGVjdGVkSXRlbS5vZmZzZXRIZWlnaHQgKiA1LCBmdWxsQ29udGVudEhlaWdodCk7XG5cbiAgICAgIGNvbnN0IHZpZXdwb3J0U3R5bGVzID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodmlld3BvcnQpO1xuICAgICAgY29uc3Qgdmlld3BvcnRQYWRkaW5nVG9wID0gcGFyc2VJbnQodmlld3BvcnRTdHlsZXMucGFkZGluZ1RvcCwgMTApO1xuICAgICAgY29uc3Qgdmlld3BvcnRQYWRkaW5nQm90dG9tID0gcGFyc2VJbnQodmlld3BvcnRTdHlsZXMucGFkZGluZ0JvdHRvbSwgMTApO1xuXG4gICAgICBjb25zdCB0b3BFZGdlVG9UcmlnZ2VyTWlkZGxlID0gdHJpZ2dlclJlY3QudG9wICsgdHJpZ2dlclJlY3QuaGVpZ2h0IC8gMiAtIENPTlRFTlRfTUFSR0lOO1xuICAgICAgY29uc3QgdHJpZ2dlck1pZGRsZVRvQm90dG9tRWRnZSA9IGF2YWlsYWJsZUhlaWdodCAtIHRvcEVkZ2VUb1RyaWdnZXJNaWRkbGU7XG5cbiAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbUhhbGZIZWlnaHQgPSBzZWxlY3RlZEl0ZW0ub2Zmc2V0SGVpZ2h0IC8gMjtcbiAgICAgIGNvbnN0IGl0ZW1PZmZzZXRNaWRkbGUgPSBzZWxlY3RlZEl0ZW0ub2Zmc2V0VG9wICsgc2VsZWN0ZWRJdGVtSGFsZkhlaWdodDtcbiAgICAgIGNvbnN0IGNvbnRlbnRUb3BUb0l0ZW1NaWRkbGUgPSBjb250ZW50Qm9yZGVyVG9wV2lkdGggKyBjb250ZW50UGFkZGluZ1RvcCArIGl0ZW1PZmZzZXRNaWRkbGU7XG4gICAgICBjb25zdCBpdGVtTWlkZGxlVG9Db250ZW50Qm90dG9tID0gZnVsbENvbnRlbnRIZWlnaHQgLSBjb250ZW50VG9wVG9JdGVtTWlkZGxlO1xuXG4gICAgICBjb25zdCB3aWxsQWxpZ25XaXRob3V0VG9wT3ZlcmZsb3cgPSBjb250ZW50VG9wVG9JdGVtTWlkZGxlIDw9IHRvcEVkZ2VUb1RyaWdnZXJNaWRkbGU7XG5cbiAgICAgIGlmICh3aWxsQWxpZ25XaXRob3V0VG9wT3ZlcmZsb3cpIHtcbiAgICAgICAgY29uc3QgaXNMYXN0SXRlbSA9IGl0ZW1zLmxlbmd0aCA+IDAgJiYgc2VsZWN0ZWRJdGVtID09PSBpdGVtc1tpdGVtcy5sZW5ndGggLSAxXS5yZWYuY3VycmVudDtcbiAgICAgICAgY29udGVudFdyYXBwZXIuc3R5bGUuYm90dG9tID0gMCArICdweCc7XG4gICAgICAgIGNvbnN0IHZpZXdwb3J0T2Zmc2V0Qm90dG9tID1cbiAgICAgICAgICBjb250ZW50LmNsaWVudEhlaWdodCAtIHZpZXdwb3J0Lm9mZnNldFRvcCAtIHZpZXdwb3J0Lm9mZnNldEhlaWdodDtcbiAgICAgICAgY29uc3QgY2xhbXBlZFRyaWdnZXJNaWRkbGVUb0JvdHRvbUVkZ2UgPSBNYXRoLm1heChcbiAgICAgICAgICB0cmlnZ2VyTWlkZGxlVG9Cb3R0b21FZGdlLFxuICAgICAgICAgIHNlbGVjdGVkSXRlbUhhbGZIZWlnaHQgK1xuICAgICAgICAgICAgLy8gdmlld3BvcnQgbWlnaHQgaGF2ZSBwYWRkaW5nIGJvdHRvbSwgaW5jbHVkZSBpdCB0byBhdm9pZCBhIHNjcm9sbGFibGUgdmlld3BvcnRcbiAgICAgICAgICAgIChpc0xhc3RJdGVtID8gdmlld3BvcnRQYWRkaW5nQm90dG9tIDogMCkgK1xuICAgICAgICAgICAgdmlld3BvcnRPZmZzZXRCb3R0b20gK1xuICAgICAgICAgICAgY29udGVudEJvcmRlckJvdHRvbVdpZHRoXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGhlaWdodCA9IGNvbnRlbnRUb3BUb0l0ZW1NaWRkbGUgKyBjbGFtcGVkVHJpZ2dlck1pZGRsZVRvQm90dG9tRWRnZTtcbiAgICAgICAgY29udGVudFdyYXBwZXIuc3R5bGUuaGVpZ2h0ID0gaGVpZ2h0ICsgJ3B4JztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGlzRmlyc3RJdGVtID0gaXRlbXMubGVuZ3RoID4gMCAmJiBzZWxlY3RlZEl0ZW0gPT09IGl0ZW1zWzBdLnJlZi5jdXJyZW50O1xuICAgICAgICBjb250ZW50V3JhcHBlci5zdHlsZS50b3AgPSAwICsgJ3B4JztcbiAgICAgICAgY29uc3QgY2xhbXBlZFRvcEVkZ2VUb1RyaWdnZXJNaWRkbGUgPSBNYXRoLm1heChcbiAgICAgICAgICB0b3BFZGdlVG9UcmlnZ2VyTWlkZGxlLFxuICAgICAgICAgIGNvbnRlbnRCb3JkZXJUb3BXaWR0aCArXG4gICAgICAgICAgICB2aWV3cG9ydC5vZmZzZXRUb3AgK1xuICAgICAgICAgICAgLy8gdmlld3BvcnQgbWlnaHQgaGF2ZSBwYWRkaW5nIHRvcCwgaW5jbHVkZSBpdCB0byBhdm9pZCBhIHNjcm9sbGFibGUgdmlld3BvcnRcbiAgICAgICAgICAgIChpc0ZpcnN0SXRlbSA/IHZpZXdwb3J0UGFkZGluZ1RvcCA6IDApICtcbiAgICAgICAgICAgIHNlbGVjdGVkSXRlbUhhbGZIZWlnaHRcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgaGVpZ2h0ID0gY2xhbXBlZFRvcEVkZ2VUb1RyaWdnZXJNaWRkbGUgKyBpdGVtTWlkZGxlVG9Db250ZW50Qm90dG9tO1xuICAgICAgICBjb250ZW50V3JhcHBlci5zdHlsZS5oZWlnaHQgPSBoZWlnaHQgKyAncHgnO1xuICAgICAgICB2aWV3cG9ydC5zY3JvbGxUb3AgPSBjb250ZW50VG9wVG9JdGVtTWlkZGxlIC0gdG9wRWRnZVRvVHJpZ2dlck1pZGRsZSArIHZpZXdwb3J0Lm9mZnNldFRvcDtcbiAgICAgIH1cblxuICAgICAgY29udGVudFdyYXBwZXIuc3R5bGUubWFyZ2luID0gYCR7Q09OVEVOVF9NQVJHSU59cHggMGA7XG4gICAgICBjb250ZW50V3JhcHBlci5zdHlsZS5taW5IZWlnaHQgPSBtaW5Db250ZW50SGVpZ2h0ICsgJ3B4JztcbiAgICAgIGNvbnRlbnRXcmFwcGVyLnN0eWxlLm1heEhlaWdodCA9IGF2YWlsYWJsZUhlaWdodCArICdweCc7XG4gICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgICBvblBsYWNlZD8uKCk7XG5cbiAgICAgIC8vIHdlIGRvbid0IHdhbnQgdGhlIGluaXRpYWwgc2Nyb2xsIHBvc2l0aW9uIGFkanVzdG1lbnQgdG8gdHJpZ2dlciBcImV4cGFuZCBvbiBzY3JvbGxcIlxuICAgICAgLy8gc28gd2UgZXhwbGljaXRseSB0dXJuIGl0IG9uIG9ubHkgYWZ0ZXIgdGhleSd2ZSByZWdpc3RlcmVkLlxuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IChzaG91bGRFeHBhbmRPblNjcm9sbFJlZi5jdXJyZW50ID0gdHJ1ZSkpO1xuICAgIH1cbiAgfSwgW1xuICAgIGdldEl0ZW1zLFxuICAgIGNvbnRleHQudHJpZ2dlcixcbiAgICBjb250ZXh0LnZhbHVlTm9kZSxcbiAgICBjb250ZW50V3JhcHBlcixcbiAgICBjb250ZW50LFxuICAgIHZpZXdwb3J0LFxuICAgIHNlbGVjdGVkSXRlbSxcbiAgICBzZWxlY3RlZEl0ZW1UZXh0LFxuICAgIGNvbnRleHQuZGlyLFxuICAgIG9uUGxhY2VkLFxuICBdKTtcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4gcG9zaXRpb24oKSwgW3Bvc2l0aW9uXSk7XG5cbiAgLy8gY29weSB6LWluZGV4IGZyb20gY29udGVudCB0byB3cmFwcGVyXG4gIGNvbnN0IFtjb250ZW50WkluZGV4LCBzZXRDb250ZW50WkluZGV4XSA9IFJlYWN0LnVzZVN0YXRlPHN0cmluZz4oKTtcbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoY29udGVudCkgc2V0Q29udGVudFpJbmRleCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShjb250ZW50KS56SW5kZXgpO1xuICB9LCBbY29udGVudF0pO1xuXG4gIC8vIFdoZW4gdGhlIHZpZXdwb3J0IGJlY29tZXMgc2Nyb2xsYWJsZSBhdCB0aGUgdG9wLCB0aGUgc2Nyb2xsIHVwIGJ1dHRvbiB3aWxsIG1vdW50LlxuICAvLyBCZWNhdXNlIGl0IGlzIHBhcnQgb2YgdGhlIG5vcm1hbCBmbG93LCBpdCB3aWxsIHB1c2ggZG93biB0aGUgdmlld3BvcnQsIHRodXMgdGhyb3dpbmcgb3VyXG4gIC8vIHRyaWdnZXIgPT4gc2VsZWN0ZWRJdGVtIGFsaWdubWVudCBvZmYgYnkgdGhlIGFtb3VudCB0aGUgdmlld3BvcnQgd2FzIHB1c2hlZCBkb3duLlxuICAvLyBXZSB3YWl0IGZvciB0aGlzIHRvIGhhcHBlbiBhbmQgdGhlbiByZS1ydW4gdGhlIHBvc2l0aW5pbmcgbG9naWMgb25lIG1vcmUgdGltZSB0byBhY2NvdW50IGZvciBpdC5cbiAgY29uc3QgaGFuZGxlU2Nyb2xsQnV0dG9uQ2hhbmdlID0gUmVhY3QudXNlQ2FsbGJhY2soXG4gICAgKG5vZGU6IFNlbGVjdFNjcm9sbEJ1dHRvbkltcGxFbGVtZW50IHwgbnVsbCkgPT4ge1xuICAgICAgaWYgKG5vZGUgJiYgc2hvdWxkUmVwb3NpdGlvblJlZi5jdXJyZW50ID09PSB0cnVlKSB7XG4gICAgICAgIHBvc2l0aW9uKCk7XG4gICAgICAgIGZvY3VzU2VsZWN0ZWRJdGVtPy4oKTtcbiAgICAgICAgc2hvdWxkUmVwb3NpdGlvblJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSxcbiAgICBbcG9zaXRpb24sIGZvY3VzU2VsZWN0ZWRJdGVtXVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPFNlbGVjdFZpZXdwb3J0UHJvdmlkZXJcbiAgICAgIHNjb3BlPXtfX3Njb3BlU2VsZWN0fVxuICAgICAgY29udGVudFdyYXBwZXI9e2NvbnRlbnRXcmFwcGVyfVxuICAgICAgc2hvdWxkRXhwYW5kT25TY3JvbGxSZWY9e3Nob3VsZEV4cGFuZE9uU2Nyb2xsUmVmfVxuICAgICAgb25TY3JvbGxCdXR0b25DaGFuZ2U9e2hhbmRsZVNjcm9sbEJ1dHRvbkNoYW5nZX1cbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIHJlZj17c2V0Q29udGVudFdyYXBwZXJ9XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgICAgICAgIHBvc2l0aW9uOiAnZml4ZWQnLFxuICAgICAgICAgIHpJbmRleDogY29udGVudFpJbmRleCxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFByaW1pdGl2ZS5kaXZcbiAgICAgICAgICB7Li4ucG9wcGVyUHJvcHN9XG4gICAgICAgICAgcmVmPXtjb21wb3NlZFJlZnN9XG4gICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgIC8vIFdoZW4gd2UgZ2V0IHRoZSBoZWlnaHQgb2YgdGhlIGNvbnRlbnQsIGl0IGluY2x1ZGVzIGJvcmRlcnMuIElmIHdlIHdlcmUgdG8gc2V0XG4gICAgICAgICAgICAvLyB0aGUgaGVpZ2h0IHdpdGhvdXQgaGF2aW5nIGBib3hTaXppbmc6ICdib3JkZXItYm94J2AgaXQgd291bGQgYmUgdG9vIGJpZy5cbiAgICAgICAgICAgIGJveFNpemluZzogJ2JvcmRlci1ib3gnLFxuICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBlbnN1cmUgdGhlIGNvbnRlbnQgZG9lc24ndCBnZXQgdGFsbGVyIHRoYW4gdGhlIHdyYXBwZXJcbiAgICAgICAgICAgIG1heEhlaWdodDogJzEwMCUnLFxuICAgICAgICAgICAgLi4ucG9wcGVyUHJvcHMuc3R5bGUsXG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvU2VsZWN0Vmlld3BvcnRQcm92aWRlcj5cbiAgKTtcbn0pO1xuXG5TZWxlY3RJdGVtQWxpZ25lZFBvc2l0aW9uLmRpc3BsYXlOYW1lID0gSVRFTV9BTElHTkVEX1BPU0lUSU9OX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFNlbGVjdFBvcHBlclBvc2l0aW9uXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFBPUFBFUl9QT1NJVElPTl9OQU1FID0gJ1NlbGVjdFBvcHBlclBvc2l0aW9uJztcblxudHlwZSBTZWxlY3RQb3BwZXJQb3NpdGlvbkVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQb3BwZXJQcmltaXRpdmUuQ29udGVudD47XG50eXBlIFBvcHBlckNvbnRlbnRQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgUG9wcGVyUHJpbWl0aXZlLkNvbnRlbnQ+O1xuaW50ZXJmYWNlIFNlbGVjdFBvcHBlclBvc2l0aW9uUHJvcHMgZXh0ZW5kcyBQb3BwZXJDb250ZW50UHJvcHMsIFNlbGVjdFBvcHBlclByaXZhdGVQcm9wcyB7fVxuXG5jb25zdCBTZWxlY3RQb3BwZXJQb3NpdGlvbiA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFNlbGVjdFBvcHBlclBvc2l0aW9uRWxlbWVudCxcbiAgU2VsZWN0UG9wcGVyUG9zaXRpb25Qcm9wc1xuPigocHJvcHM6IFNjb3BlZFByb3BzPFNlbGVjdFBvcHBlclBvc2l0aW9uUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgY29uc3Qge1xuICAgIF9fc2NvcGVTZWxlY3QsXG4gICAgYWxpZ24gPSAnc3RhcnQnLFxuICAgIGNvbGxpc2lvblBhZGRpbmcgPSBDT05URU5UX01BUkdJTixcbiAgICAuLi5wb3BwZXJQcm9wc1xuICB9ID0gcHJvcHM7XG4gIGNvbnN0IHBvcHBlclNjb3BlID0gdXNlUG9wcGVyU2NvcGUoX19zY29wZVNlbGVjdCk7XG5cbiAgcmV0dXJuIChcbiAgICA8UG9wcGVyUHJpbWl0aXZlLkNvbnRlbnRcbiAgICAgIHsuLi5wb3BwZXJTY29wZX1cbiAgICAgIHsuLi5wb3BwZXJQcm9wc31cbiAgICAgIHJlZj17Zm9yd2FyZGVkUmVmfVxuICAgICAgYWxpZ249e2FsaWdufVxuICAgICAgY29sbGlzaW9uUGFkZGluZz17Y29sbGlzaW9uUGFkZGluZ31cbiAgICAgIHN0eWxlPXt7XG4gICAgICAgIC8vIEVuc3VyZSBib3JkZXItYm94IGZvciBmbG9hdGluZy11aSBjYWxjdWxhdGlvbnNcbiAgICAgICAgYm94U2l6aW5nOiAnYm9yZGVyLWJveCcsXG4gICAgICAgIC4uLnBvcHBlclByb3BzLnN0eWxlLFxuICAgICAgICAvLyByZS1uYW1lc3BhY2UgZXhwb3NlZCBjb250ZW50IGN1c3RvbSBwcm9wZXJ0aWVzXG4gICAgICAgIC4uLntcbiAgICAgICAgICAnLS1yYWRpeC1zZWxlY3QtY29udGVudC10cmFuc2Zvcm0tb3JpZ2luJzogJ3ZhcigtLXJhZGl4LXBvcHBlci10cmFuc2Zvcm0tb3JpZ2luKScsXG4gICAgICAgICAgJy0tcmFkaXgtc2VsZWN0LWNvbnRlbnQtYXZhaWxhYmxlLXdpZHRoJzogJ3ZhcigtLXJhZGl4LXBvcHBlci1hdmFpbGFibGUtd2lkdGgpJyxcbiAgICAgICAgICAnLS1yYWRpeC1zZWxlY3QtY29udGVudC1hdmFpbGFibGUtaGVpZ2h0JzogJ3ZhcigtLXJhZGl4LXBvcHBlci1hdmFpbGFibGUtaGVpZ2h0KScsXG4gICAgICAgICAgJy0tcmFkaXgtc2VsZWN0LXRyaWdnZXItd2lkdGgnOiAndmFyKC0tcmFkaXgtcG9wcGVyLWFuY2hvci13aWR0aCknLFxuICAgICAgICAgICctLXJhZGl4LXNlbGVjdC10cmlnZ2VyLWhlaWdodCc6ICd2YXIoLS1yYWRpeC1wb3BwZXItYW5jaG9yLWhlaWdodCknLFxuICAgICAgICB9LFxuICAgICAgfX1cbiAgICAvPlxuICApO1xufSk7XG5cblNlbGVjdFBvcHBlclBvc2l0aW9uLmRpc3BsYXlOYW1lID0gUE9QUEVSX1BPU0lUSU9OX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFNlbGVjdFZpZXdwb3J0XG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbnR5cGUgU2VsZWN0Vmlld3BvcnRDb250ZXh0VmFsdWUgPSB7XG4gIGNvbnRlbnRXcmFwcGVyPzogSFRNTERpdkVsZW1lbnQgfCBudWxsO1xuICBzaG91bGRFeHBhbmRPblNjcm9sbFJlZj86IFJlYWN0LlJlZk9iamVjdDxib29sZWFuPjtcbiAgb25TY3JvbGxCdXR0b25DaGFuZ2U/OiAobm9kZTogU2VsZWN0U2Nyb2xsQnV0dG9uSW1wbEVsZW1lbnQgfCBudWxsKSA9PiB2b2lkO1xufTtcblxuY29uc3QgW1NlbGVjdFZpZXdwb3J0UHJvdmlkZXIsIHVzZVNlbGVjdFZpZXdwb3J0Q29udGV4dF0gPVxuICBjcmVhdGVTZWxlY3RDb250ZXh0PFNlbGVjdFZpZXdwb3J0Q29udGV4dFZhbHVlPihDT05URU5UX05BTUUsIHt9KTtcblxuY29uc3QgVklFV1BPUlRfTkFNRSA9ICdTZWxlY3RWaWV3cG9ydCc7XG5cbnR5cGUgU2VsZWN0Vmlld3BvcnRFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLmRpdj47XG50eXBlIFByaW1pdGl2ZURpdlByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBQcmltaXRpdmUuZGl2PjtcbmludGVyZmFjZSBTZWxlY3RWaWV3cG9ydFByb3BzIGV4dGVuZHMgUHJpbWl0aXZlRGl2UHJvcHMge1xuICBub25jZT86IHN0cmluZztcbn1cblxuY29uc3QgU2VsZWN0Vmlld3BvcnQgPSBSZWFjdC5mb3J3YXJkUmVmPFNlbGVjdFZpZXdwb3J0RWxlbWVudCwgU2VsZWN0Vmlld3BvcnRQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8U2VsZWN0Vmlld3BvcnRQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZVNlbGVjdCwgbm9uY2UsIC4uLnZpZXdwb3J0UHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRlbnRDb250ZXh0ID0gdXNlU2VsZWN0Q29udGVudENvbnRleHQoVklFV1BPUlRfTkFNRSwgX19zY29wZVNlbGVjdCk7XG4gICAgY29uc3Qgdmlld3BvcnRDb250ZXh0ID0gdXNlU2VsZWN0Vmlld3BvcnRDb250ZXh0KFZJRVdQT1JUX05BTUUsIF9fc2NvcGVTZWxlY3QpO1xuICAgIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIGNvbnRlbnRDb250ZXh0Lm9uVmlld3BvcnRDaGFuZ2UpO1xuICAgIGNvbnN0IHByZXZTY3JvbGxUb3BSZWYgPSBSZWFjdC51c2VSZWYoMCk7XG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIHsvKiBIaWRlIHNjcm9sbGJhcnMgY3Jvc3MtYnJvd3NlciBhbmQgZW5hYmxlIG1vbWVudHVtIHNjcm9sbCBmb3IgdG91Y2ggZGV2aWNlcyAqL31cbiAgICAgICAgPHN0eWxlXG4gICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3tcbiAgICAgICAgICAgIF9faHRtbDogYFtkYXRhLXJhZGl4LXNlbGVjdC12aWV3cG9ydF17c2Nyb2xsYmFyLXdpZHRoOm5vbmU7LW1zLW92ZXJmbG93LXN0eWxlOm5vbmU7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7fVtkYXRhLXJhZGl4LXNlbGVjdC12aWV3cG9ydF06Oi13ZWJraXQtc2Nyb2xsYmFye2Rpc3BsYXk6bm9uZX1gLFxuICAgICAgICAgIH19XG4gICAgICAgICAgbm9uY2U9e25vbmNlfVxuICAgICAgICAvPlxuICAgICAgICA8Q29sbGVjdGlvbi5TbG90IHNjb3BlPXtfX3Njb3BlU2VsZWN0fT5cbiAgICAgICAgICA8UHJpbWl0aXZlLmRpdlxuICAgICAgICAgICAgZGF0YS1yYWRpeC1zZWxlY3Qtdmlld3BvcnQ9XCJcIlxuICAgICAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgICAgICAgICB7Li4udmlld3BvcnRQcm9wc31cbiAgICAgICAgICAgIHJlZj17Y29tcG9zZWRSZWZzfVxuICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgLy8gd2UgdXNlIHBvc2l0aW9uOiAncmVsYXRpdmUnIGhlcmUgb24gdGhlIGB2aWV3cG9ydGAgc28gdGhhdCB3aGVuIHdlIGNhbGxcbiAgICAgICAgICAgICAgLy8gYHNlbGVjdGVkSXRlbS5vZmZzZXRUb3BgIGluIGNhbGN1bGF0aW9ucywgdGhlIG9mZnNldCBpcyByZWxhdGl2ZSB0byB0aGUgdmlld3BvcnRcbiAgICAgICAgICAgICAgLy8gKGluZGVwZW5kZW50IG9mIHRoZSBzY3JvbGxVcEJ1dHRvbikuXG4gICAgICAgICAgICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgICAgICAgICAgICBmbGV4OiAxLFxuICAgICAgICAgICAgICAvLyBWaWV3cG9ydCBzaG91bGQgb25seSBiZSBzY3JvbGxhYmxlIGluIHRoZSB2ZXJ0aWNhbCBkaXJlY3Rpb24uXG4gICAgICAgICAgICAgIC8vIFRoaXMgd29uJ3Qgd29yayBpbiB2ZXJ0aWNhbCB3cml0aW5nIG1vZGVzLCBzbyB3ZSdsbCBuZWVkIHRvXG4gICAgICAgICAgICAgIC8vIHJldmlzaXQgdGhpcyBpZi93aGVuIHRoYXQgaXMgc3VwcG9ydGVkXG4gICAgICAgICAgICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmNocm9tZS5jb20vYmxvZy92ZXJ0aWNhbC1mb3JtLWNvbnRyb2xzXG4gICAgICAgICAgICAgIG92ZXJmbG93OiAnaGlkZGVuIGF1dG8nLFxuICAgICAgICAgICAgICAuLi52aWV3cG9ydFByb3BzLnN0eWxlLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIG9uU2Nyb2xsPXtjb21wb3NlRXZlbnRIYW5kbGVycyh2aWV3cG9ydFByb3BzLm9uU2Nyb2xsLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgY29uc3Qgdmlld3BvcnQgPSBldmVudC5jdXJyZW50VGFyZ2V0O1xuICAgICAgICAgICAgICBjb25zdCB7IGNvbnRlbnRXcmFwcGVyLCBzaG91bGRFeHBhbmRPblNjcm9sbFJlZiB9ID0gdmlld3BvcnRDb250ZXh0O1xuICAgICAgICAgICAgICBpZiAoc2hvdWxkRXhwYW5kT25TY3JvbGxSZWY/LmN1cnJlbnQgJiYgY29udGVudFdyYXBwZXIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzY3JvbGxlZEJ5ID0gTWF0aC5hYnMocHJldlNjcm9sbFRvcFJlZi5jdXJyZW50IC0gdmlld3BvcnQuc2Nyb2xsVG9wKTtcbiAgICAgICAgICAgICAgICBpZiAoc2Nyb2xsZWRCeSA+IDApIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGF2YWlsYWJsZUhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIENPTlRFTlRfTUFSR0lOICogMjtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGNzc01pbkhlaWdodCA9IHBhcnNlRmxvYXQoY29udGVudFdyYXBwZXIuc3R5bGUubWluSGVpZ2h0KTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGNzc0hlaWdodCA9IHBhcnNlRmxvYXQoY29udGVudFdyYXBwZXIuc3R5bGUuaGVpZ2h0KTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZIZWlnaHQgPSBNYXRoLm1heChjc3NNaW5IZWlnaHQsIGNzc0hlaWdodCk7XG5cbiAgICAgICAgICAgICAgICAgIGlmIChwcmV2SGVpZ2h0IDwgYXZhaWxhYmxlSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5leHRIZWlnaHQgPSBwcmV2SGVpZ2h0ICsgc2Nyb2xsZWRCeTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2xhbXBlZE5leHRIZWlnaHQgPSBNYXRoLm1pbihhdmFpbGFibGVIZWlnaHQsIG5leHRIZWlnaHQpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBoZWlnaHREaWZmID0gbmV4dEhlaWdodCAtIGNsYW1wZWROZXh0SGVpZ2h0O1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnRXcmFwcGVyLnN0eWxlLmhlaWdodCA9IGNsYW1wZWROZXh0SGVpZ2h0ICsgJ3B4JztcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRlbnRXcmFwcGVyLnN0eWxlLmJvdHRvbSA9PT0gJzBweCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICB2aWV3cG9ydC5zY3JvbGxUb3AgPSBoZWlnaHREaWZmID4gMCA/IGhlaWdodERpZmYgOiAwO1xuICAgICAgICAgICAgICAgICAgICAgIC8vIGVuc3VyZSB0aGUgY29udGVudCBzdGF5cyBwaW5uZWQgdG8gdGhlIGJvdHRvbVxuICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRXcmFwcGVyLnN0eWxlLmp1c3RpZnlDb250ZW50ID0gJ2ZsZXgtZW5kJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBwcmV2U2Nyb2xsVG9wUmVmLmN1cnJlbnQgPSB2aWV3cG9ydC5zY3JvbGxUb3A7XG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L0NvbGxlY3Rpb24uU2xvdD5cbiAgICAgIDwvPlxuICAgICk7XG4gIH1cbik7XG5cblNlbGVjdFZpZXdwb3J0LmRpc3BsYXlOYW1lID0gVklFV1BPUlRfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogU2VsZWN0R3JvdXBcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgR1JPVVBfTkFNRSA9ICdTZWxlY3RHcm91cCc7XG5cbnR5cGUgU2VsZWN0R3JvdXBDb250ZXh0VmFsdWUgPSB7IGlkOiBzdHJpbmcgfTtcblxuY29uc3QgW1NlbGVjdEdyb3VwQ29udGV4dFByb3ZpZGVyLCB1c2VTZWxlY3RHcm91cENvbnRleHRdID1cbiAgY3JlYXRlU2VsZWN0Q29udGV4dDxTZWxlY3RHcm91cENvbnRleHRWYWx1ZT4oR1JPVVBfTkFNRSk7XG5cbnR5cGUgU2VsZWN0R3JvdXBFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLmRpdj47XG5pbnRlcmZhY2UgU2VsZWN0R3JvdXBQcm9wcyBleHRlbmRzIFByaW1pdGl2ZURpdlByb3BzIHt9XG5cbmNvbnN0IFNlbGVjdEdyb3VwID0gUmVhY3QuZm9yd2FyZFJlZjxTZWxlY3RHcm91cEVsZW1lbnQsIFNlbGVjdEdyb3VwUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPFNlbGVjdEdyb3VwUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVTZWxlY3QsIC4uLmdyb3VwUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGdyb3VwSWQgPSB1c2VJZCgpO1xuICAgIHJldHVybiAoXG4gICAgICA8U2VsZWN0R3JvdXBDb250ZXh0UHJvdmlkZXIgc2NvcGU9e19fc2NvcGVTZWxlY3R9IGlkPXtncm91cElkfT5cbiAgICAgICAgPFByaW1pdGl2ZS5kaXYgcm9sZT1cImdyb3VwXCIgYXJpYS1sYWJlbGxlZGJ5PXtncm91cElkfSB7Li4uZ3JvdXBQcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+XG4gICAgICA8L1NlbGVjdEdyb3VwQ29udGV4dFByb3ZpZGVyPlxuICAgICk7XG4gIH1cbik7XG5cblNlbGVjdEdyb3VwLmRpc3BsYXlOYW1lID0gR1JPVVBfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogU2VsZWN0TGFiZWxcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgTEFCRUxfTkFNRSA9ICdTZWxlY3RMYWJlbCc7XG5cbnR5cGUgU2VsZWN0TGFiZWxFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLmRpdj47XG5pbnRlcmZhY2UgU2VsZWN0TGFiZWxQcm9wcyBleHRlbmRzIFByaW1pdGl2ZURpdlByb3BzIHt9XG5cbmNvbnN0IFNlbGVjdExhYmVsID0gUmVhY3QuZm9yd2FyZFJlZjxTZWxlY3RMYWJlbEVsZW1lbnQsIFNlbGVjdExhYmVsUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPFNlbGVjdExhYmVsUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVTZWxlY3QsIC4uLmxhYmVsUHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGdyb3VwQ29udGV4dCA9IHVzZVNlbGVjdEdyb3VwQ29udGV4dChMQUJFTF9OQU1FLCBfX3Njb3BlU2VsZWN0KTtcbiAgICByZXR1cm4gPFByaW1pdGl2ZS5kaXYgaWQ9e2dyb3VwQ29udGV4dC5pZH0gey4uLmxhYmVsUHJvcHN9IHJlZj17Zm9yd2FyZGVkUmVmfSAvPjtcbiAgfVxuKTtcblxuU2VsZWN0TGFiZWwuZGlzcGxheU5hbWUgPSBMQUJFTF9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBTZWxlY3RJdGVtXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IElURU1fTkFNRSA9ICdTZWxlY3RJdGVtJztcblxudHlwZSBTZWxlY3RJdGVtQ29udGV4dFZhbHVlID0ge1xuICB2YWx1ZTogc3RyaW5nO1xuICBkaXNhYmxlZDogYm9vbGVhbjtcbiAgdGV4dElkOiBzdHJpbmc7XG4gIGlzU2VsZWN0ZWQ6IGJvb2xlYW47XG4gIG9uSXRlbVRleHRDaGFuZ2Uobm9kZTogU2VsZWN0SXRlbVRleHRFbGVtZW50IHwgbnVsbCk6IHZvaWQ7XG59O1xuXG5jb25zdCBbU2VsZWN0SXRlbUNvbnRleHRQcm92aWRlciwgdXNlU2VsZWN0SXRlbUNvbnRleHRdID1cbiAgY3JlYXRlU2VsZWN0Q29udGV4dDxTZWxlY3RJdGVtQ29udGV4dFZhbHVlPihJVEVNX05BTUUpO1xuXG50eXBlIFNlbGVjdEl0ZW1FbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLmRpdj47XG5pbnRlcmZhY2UgU2VsZWN0SXRlbVByb3BzIGV4dGVuZHMgUHJpbWl0aXZlRGl2UHJvcHMge1xuICB2YWx1ZTogc3RyaW5nO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIHRleHRWYWx1ZT86IHN0cmluZztcbn1cblxuY29uc3QgU2VsZWN0SXRlbSA9IFJlYWN0LmZvcndhcmRSZWY8U2VsZWN0SXRlbUVsZW1lbnQsIFNlbGVjdEl0ZW1Qcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8U2VsZWN0SXRlbVByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgX19zY29wZVNlbGVjdCxcbiAgICAgIHZhbHVlLFxuICAgICAgZGlzYWJsZWQgPSBmYWxzZSxcbiAgICAgIHRleHRWYWx1ZTogdGV4dFZhbHVlUHJvcCxcbiAgICAgIC4uLml0ZW1Qcm9wc1xuICAgIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlU2VsZWN0Q29udGV4dChJVEVNX05BTUUsIF9fc2NvcGVTZWxlY3QpO1xuICAgIGNvbnN0IGNvbnRlbnRDb250ZXh0ID0gdXNlU2VsZWN0Q29udGVudENvbnRleHQoSVRFTV9OQU1FLCBfX3Njb3BlU2VsZWN0KTtcbiAgICBjb25zdCBpc1NlbGVjdGVkID0gY29udGV4dC52YWx1ZSA9PT0gdmFsdWU7XG4gICAgY29uc3QgW3RleHRWYWx1ZSwgc2V0VGV4dFZhbHVlXSA9IFJlYWN0LnVzZVN0YXRlKHRleHRWYWx1ZVByb3AgPz8gJycpO1xuICAgIGNvbnN0IFtpc0ZvY3VzZWQsIHNldElzRm9jdXNlZF0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgY29tcG9zZWRSZWZzID0gdXNlQ29tcG9zZWRSZWZzKGZvcndhcmRlZFJlZiwgKG5vZGUpID0+XG4gICAgICBjb250ZW50Q29udGV4dC5pdGVtUmVmQ2FsbGJhY2s/Lihub2RlLCB2YWx1ZSwgZGlzYWJsZWQpXG4gICAgKTtcbiAgICBjb25zdCB0ZXh0SWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IHBvaW50ZXJUeXBlUmVmID0gUmVhY3QudXNlUmVmPFJlYWN0LlBvaW50ZXJFdmVudFsncG9pbnRlclR5cGUnXT4oJ3RvdWNoJyk7XG5cbiAgICBjb25zdCBoYW5kbGVTZWxlY3QgPSAoKSA9PiB7XG4gICAgICBpZiAoIWRpc2FibGVkKSB7XG4gICAgICAgIGNvbnRleHQub25WYWx1ZUNoYW5nZSh2YWx1ZSk7XG4gICAgICAgIGNvbnRleHQub25PcGVuQ2hhbmdlKGZhbHNlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgaWYgKHZhbHVlID09PSAnJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQSA8U2VsZWN0Lkl0ZW0gLz4gbXVzdCBoYXZlIGEgdmFsdWUgcHJvcCB0aGF0IGlzIG5vdCBhbiBlbXB0eSBzdHJpbmcuIFRoaXMgaXMgYmVjYXVzZSB0aGUgU2VsZWN0IHZhbHVlIGNhbiBiZSBzZXQgdG8gYW4gZW1wdHkgc3RyaW5nIHRvIGNsZWFyIHRoZSBzZWxlY3Rpb24gYW5kIHNob3cgdGhlIHBsYWNlaG9sZGVyLidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTZWxlY3RJdGVtQ29udGV4dFByb3ZpZGVyXG4gICAgICAgIHNjb3BlPXtfX3Njb3BlU2VsZWN0fVxuICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgdGV4dElkPXt0ZXh0SWR9XG4gICAgICAgIGlzU2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICAgIG9uSXRlbVRleHRDaGFuZ2U9e1JlYWN0LnVzZUNhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgICAgc2V0VGV4dFZhbHVlKChwcmV2VGV4dFZhbHVlKSA9PiBwcmV2VGV4dFZhbHVlIHx8IChub2RlPy50ZXh0Q29udGVudCA/PyAnJykudHJpbSgpKTtcbiAgICAgICAgfSwgW10pfVxuICAgICAgPlxuICAgICAgICA8Q29sbGVjdGlvbi5JdGVtU2xvdFxuICAgICAgICAgIHNjb3BlPXtfX3Njb3BlU2VsZWN0fVxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgdGV4dFZhbHVlPXt0ZXh0VmFsdWV9XG4gICAgICAgID5cbiAgICAgICAgICA8UHJpbWl0aXZlLmRpdlxuICAgICAgICAgICAgcm9sZT1cIm9wdGlvblwiXG4gICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9e3RleHRJZH1cbiAgICAgICAgICAgIGRhdGEtaGlnaGxpZ2h0ZWQ9e2lzRm9jdXNlZCA/ICcnIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgLy8gYGlzRm9jdXNlZGAgY2F2ZWF0IGZpeGVzIHN0dXR0ZXJpbmcgaW4gVm9pY2VPdmVyXG4gICAgICAgICAgICBhcmlhLXNlbGVjdGVkPXtpc1NlbGVjdGVkICYmIGlzRm9jdXNlZH1cbiAgICAgICAgICAgIGRhdGEtc3RhdGU9e2lzU2VsZWN0ZWQgPyAnY2hlY2tlZCcgOiAndW5jaGVja2VkJ31cbiAgICAgICAgICAgIGFyaWEtZGlzYWJsZWQ9e2Rpc2FibGVkIHx8IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGRhdGEtZGlzYWJsZWQ9e2Rpc2FibGVkID8gJycgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICB0YWJJbmRleD17ZGlzYWJsZWQgPyB1bmRlZmluZWQgOiAtMX1cbiAgICAgICAgICAgIHsuLi5pdGVtUHJvcHN9XG4gICAgICAgICAgICByZWY9e2NvbXBvc2VkUmVmc31cbiAgICAgICAgICAgIG9uRm9jdXM9e2NvbXBvc2VFdmVudEhhbmRsZXJzKGl0ZW1Qcm9wcy5vbkZvY3VzLCAoKSA9PiBzZXRJc0ZvY3VzZWQodHJ1ZSkpfVxuICAgICAgICAgICAgb25CbHVyPXtjb21wb3NlRXZlbnRIYW5kbGVycyhpdGVtUHJvcHMub25CbHVyLCAoKSA9PiBzZXRJc0ZvY3VzZWQoZmFsc2UpKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9e2NvbXBvc2VFdmVudEhhbmRsZXJzKGl0ZW1Qcm9wcy5vbkNsaWNrLCAoKSA9PiB7XG4gICAgICAgICAgICAgIC8vIE9wZW4gb24gY2xpY2sgd2hlbiB1c2luZyBhIHRvdWNoIG9yIHBlbiBkZXZpY2VcbiAgICAgICAgICAgICAgaWYgKHBvaW50ZXJUeXBlUmVmLmN1cnJlbnQgIT09ICdtb3VzZScpIGhhbmRsZVNlbGVjdCgpO1xuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICBvblBvaW50ZXJVcD17Y29tcG9zZUV2ZW50SGFuZGxlcnMoaXRlbVByb3BzLm9uUG9pbnRlclVwLCAoKSA9PiB7XG4gICAgICAgICAgICAgIC8vIFVzaW5nIGEgbW91c2UgeW91IHNob3VsZCBiZSBhYmxlIHRvIGRvIHBvaW50ZXIgZG93biwgbW92ZSB0aHJvdWdoXG4gICAgICAgICAgICAgIC8vIHRoZSBsaXN0LCBhbmQgcmVsZWFzZSB0aGUgcG9pbnRlciBvdmVyIHRoZSBpdGVtIHRvIHNlbGVjdCBpdC5cbiAgICAgICAgICAgICAgaWYgKHBvaW50ZXJUeXBlUmVmLmN1cnJlbnQgPT09ICdtb3VzZScpIGhhbmRsZVNlbGVjdCgpO1xuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICBvblBvaW50ZXJEb3duPXtjb21wb3NlRXZlbnRIYW5kbGVycyhpdGVtUHJvcHMub25Qb2ludGVyRG93biwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIHBvaW50ZXJUeXBlUmVmLmN1cnJlbnQgPSBldmVudC5wb2ludGVyVHlwZTtcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgb25Qb2ludGVyTW92ZT17Y29tcG9zZUV2ZW50SGFuZGxlcnMoaXRlbVByb3BzLm9uUG9pbnRlck1vdmUsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAvLyBSZW1lbWJlciBwb2ludGVyIHR5cGUgd2hlbiBzbGlkaW5nIG92ZXIgdG8gdGhpcyBpdGVtIGZyb20gYW5vdGhlciBvbmVcbiAgICAgICAgICAgICAgcG9pbnRlclR5cGVSZWYuY3VycmVudCA9IGV2ZW50LnBvaW50ZXJUeXBlO1xuICAgICAgICAgICAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICBjb250ZW50Q29udGV4dC5vbkl0ZW1MZWF2ZT8uKCk7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAocG9pbnRlclR5cGVSZWYuY3VycmVudCA9PT0gJ21vdXNlJykge1xuICAgICAgICAgICAgICAgIC8vIGV2ZW4gdGhvdWdoIHNhZmFyaSBkb2Vzbid0IHN1cHBvcnQgdGhpcyBvcHRpb24sIGl0J3MgYWNjZXB0YWJsZVxuICAgICAgICAgICAgICAgIC8vIGFzIGl0IG9ubHkgbWVhbnMgaXQgbWlnaHQgc2Nyb2xsIGEgZmV3IHBpeGVscyB3aGVuIHVzaW5nIHRoZSBwb2ludGVyLlxuICAgICAgICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIG9uUG9pbnRlckxlYXZlPXtjb21wb3NlRXZlbnRIYW5kbGVycyhpdGVtUHJvcHMub25Qb2ludGVyTGVhdmUsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoZXZlbnQuY3VycmVudFRhcmdldCA9PT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIGNvbnRlbnRDb250ZXh0Lm9uSXRlbUxlYXZlPy4oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICBvbktleURvd249e2NvbXBvc2VFdmVudEhhbmRsZXJzKGl0ZW1Qcm9wcy5vbktleURvd24sIChldmVudCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBpc1R5cGluZ0FoZWFkID0gY29udGVudENvbnRleHQuc2VhcmNoUmVmPy5jdXJyZW50ICE9PSAnJztcbiAgICAgICAgICAgICAgaWYgKGlzVHlwaW5nQWhlYWQgJiYgZXZlbnQua2V5ID09PSAnICcpIHJldHVybjtcbiAgICAgICAgICAgICAgaWYgKFNFTEVDVElPTl9LRVlTLmluY2x1ZGVzKGV2ZW50LmtleSkpIGhhbmRsZVNlbGVjdCgpO1xuICAgICAgICAgICAgICAvLyBwcmV2ZW50IHBhZ2Ugc2Nyb2xsIGlmIHVzaW5nIHRoZSBzcGFjZSBrZXkgdG8gc2VsZWN0IGFuIGl0ZW1cbiAgICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJyAnKSBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9Db2xsZWN0aW9uLkl0ZW1TbG90PlxuICAgICAgPC9TZWxlY3RJdGVtQ29udGV4dFByb3ZpZGVyPlxuICAgICk7XG4gIH1cbik7XG5cblNlbGVjdEl0ZW0uZGlzcGxheU5hbWUgPSBJVEVNX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFNlbGVjdEl0ZW1UZXh0XG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IElURU1fVEVYVF9OQU1FID0gJ1NlbGVjdEl0ZW1UZXh0JztcblxudHlwZSBTZWxlY3RJdGVtVGV4dEVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuc3Bhbj47XG5pbnRlcmZhY2UgU2VsZWN0SXRlbVRleHRQcm9wcyBleHRlbmRzIFByaW1pdGl2ZVNwYW5Qcm9wcyB7fVxuXG5jb25zdCBTZWxlY3RJdGVtVGV4dCA9IFJlYWN0LmZvcndhcmRSZWY8U2VsZWN0SXRlbVRleHRFbGVtZW50LCBTZWxlY3RJdGVtVGV4dFByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxTZWxlY3RJdGVtVGV4dFByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgLy8gV2UgaWdub3JlIGBjbGFzc05hbWVgIGFuZCBgc3R5bGVgIGFzIHRoaXMgcGFydCBzaG91bGRuJ3QgYmUgc3R5bGVkLlxuICAgIGNvbnN0IHsgX19zY29wZVNlbGVjdCwgY2xhc3NOYW1lLCBzdHlsZSwgLi4uaXRlbVRleHRQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZVNlbGVjdENvbnRleHQoSVRFTV9URVhUX05BTUUsIF9fc2NvcGVTZWxlY3QpO1xuICAgIGNvbnN0IGNvbnRlbnRDb250ZXh0ID0gdXNlU2VsZWN0Q29udGVudENvbnRleHQoSVRFTV9URVhUX05BTUUsIF9fc2NvcGVTZWxlY3QpO1xuICAgIGNvbnN0IGl0ZW1Db250ZXh0ID0gdXNlU2VsZWN0SXRlbUNvbnRleHQoSVRFTV9URVhUX05BTUUsIF9fc2NvcGVTZWxlY3QpO1xuICAgIGNvbnN0IG5hdGl2ZU9wdGlvbnNDb250ZXh0ID0gdXNlU2VsZWN0TmF0aXZlT3B0aW9uc0NvbnRleHQoSVRFTV9URVhUX05BTUUsIF9fc2NvcGVTZWxlY3QpO1xuICAgIGNvbnN0IFtpdGVtVGV4dE5vZGUsIHNldEl0ZW1UZXh0Tm9kZV0gPSBSZWFjdC51c2VTdGF0ZTxTZWxlY3RJdGVtVGV4dEVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoXG4gICAgICBmb3J3YXJkZWRSZWYsXG4gICAgICAobm9kZSkgPT4gc2V0SXRlbVRleHROb2RlKG5vZGUpLFxuICAgICAgaXRlbUNvbnRleHQub25JdGVtVGV4dENoYW5nZSxcbiAgICAgIChub2RlKSA9PiBjb250ZW50Q29udGV4dC5pdGVtVGV4dFJlZkNhbGxiYWNrPy4obm9kZSwgaXRlbUNvbnRleHQudmFsdWUsIGl0ZW1Db250ZXh0LmRpc2FibGVkKVxuICAgICk7XG5cbiAgICBjb25zdCB0ZXh0Q29udGVudCA9IGl0ZW1UZXh0Tm9kZT8udGV4dENvbnRlbnQ7XG4gICAgY29uc3QgbmF0aXZlT3B0aW9uID0gUmVhY3QudXNlTWVtbyhcbiAgICAgICgpID0+IChcbiAgICAgICAgPG9wdGlvbiBrZXk9e2l0ZW1Db250ZXh0LnZhbHVlfSB2YWx1ZT17aXRlbUNvbnRleHQudmFsdWV9IGRpc2FibGVkPXtpdGVtQ29udGV4dC5kaXNhYmxlZH0+XG4gICAgICAgICAge3RleHRDb250ZW50fVxuICAgICAgICA8L29wdGlvbj5cbiAgICAgICksXG4gICAgICBbaXRlbUNvbnRleHQuZGlzYWJsZWQsIGl0ZW1Db250ZXh0LnZhbHVlLCB0ZXh0Q29udGVudF1cbiAgICApO1xuXG4gICAgY29uc3QgeyBvbk5hdGl2ZU9wdGlvbkFkZCwgb25OYXRpdmVPcHRpb25SZW1vdmUgfSA9IG5hdGl2ZU9wdGlvbnNDb250ZXh0O1xuICAgIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgICBvbk5hdGl2ZU9wdGlvbkFkZChuYXRpdmVPcHRpb24pO1xuICAgICAgcmV0dXJuICgpID0+IG9uTmF0aXZlT3B0aW9uUmVtb3ZlKG5hdGl2ZU9wdGlvbik7XG4gICAgfSwgW29uTmF0aXZlT3B0aW9uQWRkLCBvbk5hdGl2ZU9wdGlvblJlbW92ZSwgbmF0aXZlT3B0aW9uXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPFByaW1pdGl2ZS5zcGFuIGlkPXtpdGVtQ29udGV4dC50ZXh0SWR9IHsuLi5pdGVtVGV4dFByb3BzfSByZWY9e2NvbXBvc2VkUmVmc30gLz5cblxuICAgICAgICB7LyogUG9ydGFsIHRoZSBzZWxlY3QgaXRlbSB0ZXh0IGludG8gdGhlIHRyaWdnZXIgdmFsdWUgbm9kZSAqL31cbiAgICAgICAge2l0ZW1Db250ZXh0LmlzU2VsZWN0ZWQgJiYgY29udGV4dC52YWx1ZU5vZGUgJiYgIWNvbnRleHQudmFsdWVOb2RlSGFzQ2hpbGRyZW5cbiAgICAgICAgICA/IFJlYWN0RE9NLmNyZWF0ZVBvcnRhbChpdGVtVGV4dFByb3BzLmNoaWxkcmVuLCBjb250ZXh0LnZhbHVlTm9kZSlcbiAgICAgICAgICA6IG51bGx9XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG4pO1xuXG5TZWxlY3RJdGVtVGV4dC5kaXNwbGF5TmFtZSA9IElURU1fVEVYVF9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBTZWxlY3RJdGVtSW5kaWNhdG9yXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IElURU1fSU5ESUNBVE9SX05BTUUgPSAnU2VsZWN0SXRlbUluZGljYXRvcic7XG5cbnR5cGUgU2VsZWN0SXRlbUluZGljYXRvckVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuc3Bhbj47XG5pbnRlcmZhY2UgU2VsZWN0SXRlbUluZGljYXRvclByb3BzIGV4dGVuZHMgUHJpbWl0aXZlU3BhblByb3BzIHt9XG5cbmNvbnN0IFNlbGVjdEl0ZW1JbmRpY2F0b3IgPSBSZWFjdC5mb3J3YXJkUmVmPFNlbGVjdEl0ZW1JbmRpY2F0b3JFbGVtZW50LCBTZWxlY3RJdGVtSW5kaWNhdG9yUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPFNlbGVjdEl0ZW1JbmRpY2F0b3JQcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIGNvbnN0IHsgX19zY29wZVNlbGVjdCwgLi4uaXRlbUluZGljYXRvclByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBpdGVtQ29udGV4dCA9IHVzZVNlbGVjdEl0ZW1Db250ZXh0KElURU1fSU5ESUNBVE9SX05BTUUsIF9fc2NvcGVTZWxlY3QpO1xuICAgIHJldHVybiBpdGVtQ29udGV4dC5pc1NlbGVjdGVkID8gKFxuICAgICAgPFByaW1pdGl2ZS5zcGFuIGFyaWEtaGlkZGVuIHsuLi5pdGVtSW5kaWNhdG9yUHJvcHN9IHJlZj17Zm9yd2FyZGVkUmVmfSAvPlxuICAgICkgOiBudWxsO1xuICB9XG4pO1xuXG5TZWxlY3RJdGVtSW5kaWNhdG9yLmRpc3BsYXlOYW1lID0gSVRFTV9JTkRJQ0FUT1JfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogU2VsZWN0U2Nyb2xsVXBCdXR0b25cbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgU0NST0xMX1VQX0JVVFRPTl9OQU1FID0gJ1NlbGVjdFNjcm9sbFVwQnV0dG9uJztcblxudHlwZSBTZWxlY3RTY3JvbGxVcEJ1dHRvbkVsZW1lbnQgPSBTZWxlY3RTY3JvbGxCdXR0b25JbXBsRWxlbWVudDtcbmludGVyZmFjZSBTZWxlY3RTY3JvbGxVcEJ1dHRvblByb3BzIGV4dGVuZHMgT21pdDxTZWxlY3RTY3JvbGxCdXR0b25JbXBsUHJvcHMsICdvbkF1dG9TY3JvbGwnPiB7fVxuXG5jb25zdCBTZWxlY3RTY3JvbGxVcEJ1dHRvbiA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFNlbGVjdFNjcm9sbFVwQnV0dG9uRWxlbWVudCxcbiAgU2VsZWN0U2Nyb2xsVXBCdXR0b25Qcm9wc1xuPigocHJvcHM6IFNjb3BlZFByb3BzPFNlbGVjdFNjcm9sbFVwQnV0dG9uUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgY29uc3QgY29udGVudENvbnRleHQgPSB1c2VTZWxlY3RDb250ZW50Q29udGV4dChTQ1JPTExfVVBfQlVUVE9OX05BTUUsIHByb3BzLl9fc2NvcGVTZWxlY3QpO1xuICBjb25zdCB2aWV3cG9ydENvbnRleHQgPSB1c2VTZWxlY3RWaWV3cG9ydENvbnRleHQoU0NST0xMX1VQX0JVVFRPTl9OQU1FLCBwcm9wcy5fX3Njb3BlU2VsZWN0KTtcbiAgY29uc3QgW2NhblNjcm9sbFVwLCBzZXRDYW5TY3JvbGxVcF0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IGNvbXBvc2VkUmVmcyA9IHVzZUNvbXBvc2VkUmVmcyhmb3J3YXJkZWRSZWYsIHZpZXdwb3J0Q29udGV4dC5vblNjcm9sbEJ1dHRvbkNoYW5nZSk7XG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoY29udGVudENvbnRleHQudmlld3BvcnQgJiYgY29udGVudENvbnRleHQuaXNQb3NpdGlvbmVkKSB7XG4gICAgICBjb25zdCB2aWV3cG9ydCA9IGNvbnRlbnRDb250ZXh0LnZpZXdwb3J0O1xuICAgICAgZnVuY3Rpb24gaGFuZGxlU2Nyb2xsKCkge1xuICAgICAgICBjb25zdCBjYW5TY3JvbGxVcCA9IHZpZXdwb3J0LnNjcm9sbFRvcCA+IDA7XG4gICAgICAgIHNldENhblNjcm9sbFVwKGNhblNjcm9sbFVwKTtcbiAgICAgIH1cbiAgICAgIGhhbmRsZVNjcm9sbCgpO1xuICAgICAgdmlld3BvcnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKTtcbiAgICAgIHJldHVybiAoKSA9PiB2aWV3cG9ydC5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBoYW5kbGVTY3JvbGwpO1xuICAgIH1cbiAgfSwgW2NvbnRlbnRDb250ZXh0LnZpZXdwb3J0LCBjb250ZW50Q29udGV4dC5pc1Bvc2l0aW9uZWRdKTtcblxuICByZXR1cm4gY2FuU2Nyb2xsVXAgPyAoXG4gICAgPFNlbGVjdFNjcm9sbEJ1dHRvbkltcGxcbiAgICAgIHsuLi5wcm9wc31cbiAgICAgIHJlZj17Y29tcG9zZWRSZWZzfVxuICAgICAgb25BdXRvU2Nyb2xsPXsoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgdmlld3BvcnQsIHNlbGVjdGVkSXRlbSB9ID0gY29udGVudENvbnRleHQ7XG4gICAgICAgIGlmICh2aWV3cG9ydCAmJiBzZWxlY3RlZEl0ZW0pIHtcbiAgICAgICAgICB2aWV3cG9ydC5zY3JvbGxUb3AgPSB2aWV3cG9ydC5zY3JvbGxUb3AgLSBzZWxlY3RlZEl0ZW0ub2Zmc2V0SGVpZ2h0O1xuICAgICAgICB9XG4gICAgICB9fVxuICAgIC8+XG4gICkgOiBudWxsO1xufSk7XG5cblNlbGVjdFNjcm9sbFVwQnV0dG9uLmRpc3BsYXlOYW1lID0gU0NST0xMX1VQX0JVVFRPTl9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBTZWxlY3RTY3JvbGxEb3duQnV0dG9uXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFNDUk9MTF9ET1dOX0JVVFRPTl9OQU1FID0gJ1NlbGVjdFNjcm9sbERvd25CdXR0b24nO1xuXG50eXBlIFNlbGVjdFNjcm9sbERvd25CdXR0b25FbGVtZW50ID0gU2VsZWN0U2Nyb2xsQnV0dG9uSW1wbEVsZW1lbnQ7XG5pbnRlcmZhY2UgU2VsZWN0U2Nyb2xsRG93bkJ1dHRvblByb3BzIGV4dGVuZHMgT21pdDxTZWxlY3RTY3JvbGxCdXR0b25JbXBsUHJvcHMsICdvbkF1dG9TY3JvbGwnPiB7fVxuXG5jb25zdCBTZWxlY3RTY3JvbGxEb3duQnV0dG9uID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgU2VsZWN0U2Nyb2xsRG93bkJ1dHRvbkVsZW1lbnQsXG4gIFNlbGVjdFNjcm9sbERvd25CdXR0b25Qcm9wc1xuPigocHJvcHM6IFNjb3BlZFByb3BzPFNlbGVjdFNjcm9sbERvd25CdXR0b25Qcm9wcz4sIGZvcndhcmRlZFJlZikgPT4ge1xuICBjb25zdCBjb250ZW50Q29udGV4dCA9IHVzZVNlbGVjdENvbnRlbnRDb250ZXh0KFNDUk9MTF9ET1dOX0JVVFRPTl9OQU1FLCBwcm9wcy5fX3Njb3BlU2VsZWN0KTtcbiAgY29uc3Qgdmlld3BvcnRDb250ZXh0ID0gdXNlU2VsZWN0Vmlld3BvcnRDb250ZXh0KFNDUk9MTF9ET1dOX0JVVFRPTl9OQU1FLCBwcm9wcy5fX3Njb3BlU2VsZWN0KTtcbiAgY29uc3QgW2NhblNjcm9sbERvd24sIHNldENhblNjcm9sbERvd25dID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCB2aWV3cG9ydENvbnRleHQub25TY3JvbGxCdXR0b25DaGFuZ2UpO1xuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGNvbnRlbnRDb250ZXh0LnZpZXdwb3J0ICYmIGNvbnRlbnRDb250ZXh0LmlzUG9zaXRpb25lZCkge1xuICAgICAgY29uc3Qgdmlld3BvcnQgPSBjb250ZW50Q29udGV4dC52aWV3cG9ydDtcbiAgICAgIGZ1bmN0aW9uIGhhbmRsZVNjcm9sbCgpIHtcbiAgICAgICAgY29uc3QgbWF4U2Nyb2xsID0gdmlld3BvcnQuc2Nyb2xsSGVpZ2h0IC0gdmlld3BvcnQuY2xpZW50SGVpZ2h0O1xuICAgICAgICAvLyB3ZSB1c2UgTWF0aC5jZWlsIGhlcmUgYmVjYXVzZSBpZiB0aGUgVUkgaXMgem9vbWVkLWluXG4gICAgICAgIC8vIGBzY3JvbGxUb3BgIGlzIG5vdCBhbHdheXMgcmVwb3J0ZWQgYXMgYW4gaW50ZWdlclxuICAgICAgICBjb25zdCBjYW5TY3JvbGxEb3duID0gTWF0aC5jZWlsKHZpZXdwb3J0LnNjcm9sbFRvcCkgPCBtYXhTY3JvbGw7XG4gICAgICAgIHNldENhblNjcm9sbERvd24oY2FuU2Nyb2xsRG93bik7XG4gICAgICB9XG4gICAgICBoYW5kbGVTY3JvbGwoKTtcbiAgICAgIHZpZXdwb3J0LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGhhbmRsZVNjcm9sbCk7XG4gICAgICByZXR1cm4gKCkgPT4gdmlld3BvcnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKTtcbiAgICB9XG4gIH0sIFtjb250ZW50Q29udGV4dC52aWV3cG9ydCwgY29udGVudENvbnRleHQuaXNQb3NpdGlvbmVkXSk7XG5cbiAgcmV0dXJuIGNhblNjcm9sbERvd24gPyAoXG4gICAgPFNlbGVjdFNjcm9sbEJ1dHRvbkltcGxcbiAgICAgIHsuLi5wcm9wc31cbiAgICAgIHJlZj17Y29tcG9zZWRSZWZzfVxuICAgICAgb25BdXRvU2Nyb2xsPXsoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgdmlld3BvcnQsIHNlbGVjdGVkSXRlbSB9ID0gY29udGVudENvbnRleHQ7XG4gICAgICAgIGlmICh2aWV3cG9ydCAmJiBzZWxlY3RlZEl0ZW0pIHtcbiAgICAgICAgICB2aWV3cG9ydC5zY3JvbGxUb3AgPSB2aWV3cG9ydC5zY3JvbGxUb3AgKyBzZWxlY3RlZEl0ZW0ub2Zmc2V0SGVpZ2h0O1xuICAgICAgICB9XG4gICAgICB9fVxuICAgIC8+XG4gICkgOiBudWxsO1xufSk7XG5cblNlbGVjdFNjcm9sbERvd25CdXR0b24uZGlzcGxheU5hbWUgPSBTQ1JPTExfRE9XTl9CVVRUT05fTkFNRTtcblxudHlwZSBTZWxlY3RTY3JvbGxCdXR0b25JbXBsRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5kaXY+O1xuaW50ZXJmYWNlIFNlbGVjdFNjcm9sbEJ1dHRvbkltcGxQcm9wcyBleHRlbmRzIFByaW1pdGl2ZURpdlByb3BzIHtcbiAgb25BdXRvU2Nyb2xsKCk6IHZvaWQ7XG59XG5cbmNvbnN0IFNlbGVjdFNjcm9sbEJ1dHRvbkltcGwgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBTZWxlY3RTY3JvbGxCdXR0b25JbXBsRWxlbWVudCxcbiAgU2VsZWN0U2Nyb2xsQnV0dG9uSW1wbFByb3BzXG4+KChwcm9wczogU2NvcGVkUHJvcHM8U2VsZWN0U2Nyb2xsQnV0dG9uSW1wbFByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gIGNvbnN0IHsgX19zY29wZVNlbGVjdCwgb25BdXRvU2Nyb2xsLCAuLi5zY3JvbGxJbmRpY2F0b3JQcm9wcyB9ID0gcHJvcHM7XG4gIGNvbnN0IGNvbnRlbnRDb250ZXh0ID0gdXNlU2VsZWN0Q29udGVudENvbnRleHQoJ1NlbGVjdFNjcm9sbEJ1dHRvbicsIF9fc2NvcGVTZWxlY3QpO1xuICBjb25zdCBhdXRvU2Nyb2xsVGltZXJSZWYgPSBSZWFjdC51c2VSZWY8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGdldEl0ZW1zID0gdXNlQ29sbGVjdGlvbihfX3Njb3BlU2VsZWN0KTtcblxuICBjb25zdCBjbGVhckF1dG9TY3JvbGxUaW1lciA9IFJlYWN0LnVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoYXV0b1Njcm9sbFRpbWVyUmVmLmN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgIHdpbmRvdy5jbGVhckludGVydmFsKGF1dG9TY3JvbGxUaW1lclJlZi5jdXJyZW50KTtcbiAgICAgIGF1dG9TY3JvbGxUaW1lclJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICB9XG4gIH0sIFtdKTtcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiAoKSA9PiBjbGVhckF1dG9TY3JvbGxUaW1lcigpO1xuICB9LCBbY2xlYXJBdXRvU2Nyb2xsVGltZXJdKTtcblxuICAvLyBXaGVuIHRoZSB2aWV3cG9ydCBiZWNvbWVzIHNjcm9sbGFibGUgb24gZWl0aGVyIHNpZGUsIHRoZSByZWxldmFudCBzY3JvbGwgYnV0dG9uIHdpbGwgbW91bnQuXG4gIC8vIEJlY2F1c2UgaXQgaXMgcGFydCBvZiB0aGUgbm9ybWFsIGZsb3csIGl0IHdpbGwgcHVzaCBkb3duICh0b3AgYnV0dG9uKSBvciBzaHJpbmsgKGJvdHRvbSBidXR0b24pXG4gIC8vIHRoZSB2aWV3cG9ydCwgcG90ZW50aWFsbHkgY2F1c2luZyB0aGUgYWN0aXZlIGl0ZW0gdG8gbm93IGJlIHBhcnRpYWxseSBvdXQgb2Ygdmlldy5cbiAgLy8gV2UgcmUtcnVuIHRoZSBgc2Nyb2xsSW50b1ZpZXdgIGxvZ2ljIHRvIG1ha2Ugc3VyZSBpdCBzdGF5cyB3aXRoaW4gdGhlIHZpZXdwb3J0LlxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGFjdGl2ZUl0ZW0gPSBnZXRJdGVtcygpLmZpbmQoKGl0ZW0pID0+IGl0ZW0ucmVmLmN1cnJlbnQgPT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpO1xuICAgIGFjdGl2ZUl0ZW0/LnJlZi5jdXJyZW50Py5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnbmVhcmVzdCcgfSk7XG4gIH0sIFtnZXRJdGVtc10pO1xuXG4gIHJldHVybiAoXG4gICAgPFByaW1pdGl2ZS5kaXZcbiAgICAgIGFyaWEtaGlkZGVuXG4gICAgICB7Li4uc2Nyb2xsSW5kaWNhdG9yUHJvcHN9XG4gICAgICByZWY9e2ZvcndhcmRlZFJlZn1cbiAgICAgIHN0eWxlPXt7IGZsZXhTaHJpbms6IDAsIC4uLnNjcm9sbEluZGljYXRvclByb3BzLnN0eWxlIH19XG4gICAgICBvblBvaW50ZXJEb3duPXtjb21wb3NlRXZlbnRIYW5kbGVycyhzY3JvbGxJbmRpY2F0b3JQcm9wcy5vblBvaW50ZXJEb3duLCAoKSA9PiB7XG4gICAgICAgIGlmIChhdXRvU2Nyb2xsVGltZXJSZWYuY3VycmVudCA9PT0gbnVsbCkge1xuICAgICAgICAgIGF1dG9TY3JvbGxUaW1lclJlZi5jdXJyZW50ID0gd2luZG93LnNldEludGVydmFsKG9uQXV0b1Njcm9sbCwgNTApO1xuICAgICAgICB9XG4gICAgICB9KX1cbiAgICAgIG9uUG9pbnRlck1vdmU9e2NvbXBvc2VFdmVudEhhbmRsZXJzKHNjcm9sbEluZGljYXRvclByb3BzLm9uUG9pbnRlck1vdmUsICgpID0+IHtcbiAgICAgICAgY29udGVudENvbnRleHQub25JdGVtTGVhdmU/LigpO1xuICAgICAgICBpZiAoYXV0b1Njcm9sbFRpbWVyUmVmLmN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAgICAgICBhdXRvU2Nyb2xsVGltZXJSZWYuY3VycmVudCA9IHdpbmRvdy5zZXRJbnRlcnZhbChvbkF1dG9TY3JvbGwsIDUwKTtcbiAgICAgICAgfVxuICAgICAgfSl9XG4gICAgICBvblBvaW50ZXJMZWF2ZT17Y29tcG9zZUV2ZW50SGFuZGxlcnMoc2Nyb2xsSW5kaWNhdG9yUHJvcHMub25Qb2ludGVyTGVhdmUsICgpID0+IHtcbiAgICAgICAgY2xlYXJBdXRvU2Nyb2xsVGltZXIoKTtcbiAgICAgIH0pfVxuICAgIC8+XG4gICk7XG59KTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogU2VsZWN0U2VwYXJhdG9yXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmNvbnN0IFNFUEFSQVRPUl9OQU1FID0gJ1NlbGVjdFNlcGFyYXRvcic7XG5cbnR5cGUgU2VsZWN0U2VwYXJhdG9yRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5kaXY+O1xuaW50ZXJmYWNlIFNlbGVjdFNlcGFyYXRvclByb3BzIGV4dGVuZHMgUHJpbWl0aXZlRGl2UHJvcHMge31cblxuY29uc3QgU2VsZWN0U2VwYXJhdG9yID0gUmVhY3QuZm9yd2FyZFJlZjxTZWxlY3RTZXBhcmF0b3JFbGVtZW50LCBTZWxlY3RTZXBhcmF0b3JQcm9wcz4oXG4gIChwcm9wczogU2NvcGVkUHJvcHM8U2VsZWN0U2VwYXJhdG9yUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVTZWxlY3QsIC4uLnNlcGFyYXRvclByb3BzIH0gPSBwcm9wcztcbiAgICByZXR1cm4gPFByaW1pdGl2ZS5kaXYgYXJpYS1oaWRkZW4gey4uLnNlcGFyYXRvclByb3BzfSByZWY9e2ZvcndhcmRlZFJlZn0gLz47XG4gIH1cbik7XG5cblNlbGVjdFNlcGFyYXRvci5kaXNwbGF5TmFtZSA9IFNFUEFSQVRPUl9OQU1FO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBTZWxlY3RBcnJvd1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBBUlJPV19OQU1FID0gJ1NlbGVjdEFycm93JztcblxudHlwZSBTZWxlY3RBcnJvd0VsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQb3BwZXJQcmltaXRpdmUuQXJyb3c+O1xudHlwZSBQb3BwZXJBcnJvd1Byb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBQb3BwZXJQcmltaXRpdmUuQXJyb3c+O1xuaW50ZXJmYWNlIFNlbGVjdEFycm93UHJvcHMgZXh0ZW5kcyBQb3BwZXJBcnJvd1Byb3BzIHt9XG5cbmNvbnN0IFNlbGVjdEFycm93ID0gUmVhY3QuZm9yd2FyZFJlZjxTZWxlY3RBcnJvd0VsZW1lbnQsIFNlbGVjdEFycm93UHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPFNlbGVjdEFycm93UHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVTZWxlY3QsIC4uLmFycm93UHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IHBvcHBlclNjb3BlID0gdXNlUG9wcGVyU2NvcGUoX19zY29wZVNlbGVjdCk7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZVNlbGVjdENvbnRleHQoQVJST1dfTkFNRSwgX19zY29wZVNlbGVjdCk7XG4gICAgY29uc3QgY29udGVudENvbnRleHQgPSB1c2VTZWxlY3RDb250ZW50Q29udGV4dChBUlJPV19OQU1FLCBfX3Njb3BlU2VsZWN0KTtcbiAgICByZXR1cm4gY29udGV4dC5vcGVuICYmIGNvbnRlbnRDb250ZXh0LnBvc2l0aW9uID09PSAncG9wcGVyJyA/IChcbiAgICAgIDxQb3BwZXJQcmltaXRpdmUuQXJyb3cgey4uLnBvcHBlclNjb3BlfSB7Li4uYXJyb3dQcm9wc30gcmVmPXtmb3J3YXJkZWRSZWZ9IC8+XG4gICAgKSA6IG51bGw7XG4gIH1cbik7XG5cblNlbGVjdEFycm93LmRpc3BsYXlOYW1lID0gQVJST1dfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5mdW5jdGlvbiBzaG91bGRTaG93UGxhY2Vob2xkZXIodmFsdWU/OiBzdHJpbmcpIHtcbiAgcmV0dXJuIHZhbHVlID09PSAnJyB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkO1xufVxuXG5jb25zdCBCdWJibGVTZWxlY3QgPSBSZWFjdC5mb3J3YXJkUmVmPEhUTUxTZWxlY3RFbGVtZW50LCBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8J3NlbGVjdCc+PihcbiAgKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IHZhbHVlLCAuLi5zZWxlY3RQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgcmVmID0gUmVhY3QudXNlUmVmPEhUTUxTZWxlY3RFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBjb21wb3NlZFJlZnMgPSB1c2VDb21wb3NlZFJlZnMoZm9yd2FyZGVkUmVmLCByZWYpO1xuICAgIGNvbnN0IHByZXZWYWx1ZSA9IHVzZVByZXZpb3VzKHZhbHVlKTtcblxuICAgIC8vIEJ1YmJsZSB2YWx1ZSBjaGFuZ2UgdG8gcGFyZW50cyAoZS5nIGZvcm0gY2hhbmdlIGV2ZW50KVxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBzZWxlY3QgPSByZWYuY3VycmVudCE7XG4gICAgICBjb25zdCBzZWxlY3RQcm90byA9IHdpbmRvdy5IVE1MU2VsZWN0RWxlbWVudC5wcm90b3R5cGU7XG4gICAgICBjb25zdCBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihcbiAgICAgICAgc2VsZWN0UHJvdG8sXG4gICAgICAgICd2YWx1ZSdcbiAgICAgICkgYXMgUHJvcGVydHlEZXNjcmlwdG9yO1xuICAgICAgY29uc3Qgc2V0VmFsdWUgPSBkZXNjcmlwdG9yLnNldDtcbiAgICAgIGlmIChwcmV2VmFsdWUgIT09IHZhbHVlICYmIHNldFZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGV2ZW50ID0gbmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSk7XG4gICAgICAgIHNldFZhbHVlLmNhbGwoc2VsZWN0LCB2YWx1ZSk7XG4gICAgICAgIHNlbGVjdC5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgICAgIH1cbiAgICB9LCBbcHJldlZhbHVlLCB2YWx1ZV0pO1xuXG4gICAgLyoqXG4gICAgICogV2UgcHVycG9zZWZ1bGx5IHVzZSBhIGBzZWxlY3RgIGhlcmUgdG8gc3VwcG9ydCBmb3JtIGF1dG9maWxsIGFzIG11Y2hcbiAgICAgKiBhcyBwb3NzaWJsZS5cbiAgICAgKlxuICAgICAqIFdlIHB1cnBvc2VmdWxseSBkbyBub3QgYWRkIHRoZSBgdmFsdWVgIGF0dHJpYnV0ZSBoZXJlIHRvIGFsbG93IHRoZSB2YWx1ZVxuICAgICAqIHRvIGJlIHNldCBwcm9ncmFtbWF0aWNhbGx5IGFuZCBidWJibGUgdG8gYW55IHBhcmVudCBmb3JtIGBvbkNoYW5nZWAgZXZlbnQuXG4gICAgICogQWRkaW5nIHRoZSBgdmFsdWVgIHdpbGwgY2F1c2UgUmVhY3QgdG8gY29uc2lkZXIgdGhlIHByb2dyYW1tYXRpY1xuICAgICAqIGRpc3BhdGNoIGEgZHVwbGljYXRlIGFuZCBpdCB3aWxsIGdldCBzd2FsbG93ZWQuXG4gICAgICpcbiAgICAgKiBXZSB1c2UgYFZpc3VhbGx5SGlkZGVuYCByYXRoZXIgdGhhbiBgZGlzcGxheTogXCJub25lXCJgIGJlY2F1c2UgU2FmYXJpIGF1dG9maWxsXG4gICAgICogd29uJ3Qgd29yayBvdGhlcndpc2UuXG4gICAgICovXG4gICAgcmV0dXJuIChcbiAgICAgIDxWaXN1YWxseUhpZGRlbiBhc0NoaWxkPlxuICAgICAgICA8c2VsZWN0IHsuLi5zZWxlY3RQcm9wc30gcmVmPXtjb21wb3NlZFJlZnN9IGRlZmF1bHRWYWx1ZT17dmFsdWV9IC8+XG4gICAgICA8L1Zpc3VhbGx5SGlkZGVuPlxuICAgICk7XG4gIH1cbik7XG5cbkJ1YmJsZVNlbGVjdC5kaXNwbGF5TmFtZSA9ICdCdWJibGVTZWxlY3QnO1xuXG5mdW5jdGlvbiB1c2VUeXBlYWhlYWRTZWFyY2gob25TZWFyY2hDaGFuZ2U6IChzZWFyY2g6IHN0cmluZykgPT4gdm9pZCkge1xuICBjb25zdCBoYW5kbGVTZWFyY2hDaGFuZ2UgPSB1c2VDYWxsYmFja1JlZihvblNlYXJjaENoYW5nZSk7XG4gIGNvbnN0IHNlYXJjaFJlZiA9IFJlYWN0LnVzZVJlZignJyk7XG4gIGNvbnN0IHRpbWVyUmVmID0gUmVhY3QudXNlUmVmKDApO1xuXG4gIGNvbnN0IGhhbmRsZVR5cGVhaGVhZFNlYXJjaCA9IFJlYWN0LnVzZUNhbGxiYWNrKFxuICAgIChrZXk6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3Qgc2VhcmNoID0gc2VhcmNoUmVmLmN1cnJlbnQgKyBrZXk7XG4gICAgICBoYW5kbGVTZWFyY2hDaGFuZ2Uoc2VhcmNoKTtcblxuICAgICAgKGZ1bmN0aW9uIHVwZGF0ZVNlYXJjaCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHNlYXJjaFJlZi5jdXJyZW50ID0gdmFsdWU7XG4gICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGltZXJSZWYuY3VycmVudCk7XG4gICAgICAgIC8vIFJlc2V0IGBzZWFyY2hSZWZgIDEgc2Vjb25kIGFmdGVyIGl0IHdhcyBsYXN0IHVwZGF0ZWRcbiAgICAgICAgaWYgKHZhbHVlICE9PSAnJykgdGltZXJSZWYuY3VycmVudCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHVwZGF0ZVNlYXJjaCgnJyksIDEwMDApO1xuICAgICAgfSkoc2VhcmNoKTtcbiAgICB9LFxuICAgIFtoYW5kbGVTZWFyY2hDaGFuZ2VdXG4gICk7XG5cbiAgY29uc3QgcmVzZXRUeXBlYWhlYWQgPSBSZWFjdC51c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2VhcmNoUmVmLmN1cnJlbnQgPSAnJztcbiAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRpbWVyUmVmLmN1cnJlbnQpO1xuICB9LCBbXSk7XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gKCkgPT4gd2luZG93LmNsZWFyVGltZW91dCh0aW1lclJlZi5jdXJyZW50KTtcbiAgfSwgW10pO1xuXG4gIHJldHVybiBbc2VhcmNoUmVmLCBoYW5kbGVUeXBlYWhlYWRTZWFyY2gsIHJlc2V0VHlwZWFoZWFkXSBhcyBjb25zdDtcbn1cblxuLyoqXG4gKiBUaGlzIGlzIHRoZSBcIm1lYXRcIiBvZiB0aGUgdHlwZWFoZWFkIG1hdGNoaW5nIGxvZ2ljLiBJdCB0YWtlcyBpbiBhIGxpc3Qgb2YgaXRlbXMsXG4gKiB0aGUgc2VhcmNoIGFuZCB0aGUgY3VycmVudCBpdGVtLCBhbmQgcmV0dXJucyB0aGUgbmV4dCBpdGVtIChvciBgdW5kZWZpbmVkYCkuXG4gKlxuICogV2Ugbm9ybWFsaXplIHRoZSBzZWFyY2ggYmVjYXVzZSBpZiBhIHVzZXIgaGFzIHJlcGVhdGVkbHkgcHJlc3NlZCBhIGNoYXJhY3RlcixcbiAqIHdlIHdhbnQgdGhlIGV4YWN0IHNhbWUgYmVoYXZpb3IgYXMgaWYgd2Ugb25seSBoYWQgdGhhdCBvbmUgY2hhcmFjdGVyXG4gKiAoaWUuIGN5Y2xlIHRocm91Z2ggaXRlbXMgc3RhcnRpbmcgd2l0aCB0aGF0IGNoYXJhY3RlcilcbiAqXG4gKiBXZSBhbHNvIHJlb3JkZXIgdGhlIGl0ZW1zIGJ5IHdyYXBwaW5nIHRoZSBhcnJheSBhcm91bmQgdGhlIGN1cnJlbnQgaXRlbS5cbiAqIFRoaXMgaXMgc28gd2UgYWx3YXlzIGxvb2sgZm9yd2FyZCBmcm9tIHRoZSBjdXJyZW50IGl0ZW0sIGFuZCBwaWNraW5nIHRoZSBmaXJzdFxuICogaXRlbSB3aWxsIGFsd2F5cyBiZSB0aGUgY29ycmVjdCBvbmUuXG4gKlxuICogRmluYWxseSwgaWYgdGhlIG5vcm1hbGl6ZWQgc2VhcmNoIGlzIGV4YWN0bHkgb25lIGNoYXJhY3Rlciwgd2UgZXhjbHVkZSB0aGVcbiAqIGN1cnJlbnQgaXRlbSBmcm9tIHRoZSB2YWx1ZXMgYmVjYXVzZSBvdGhlcndpc2UgaXQgd291bGQgYmUgdGhlIGZpcnN0IHRvIG1hdGNoIGFsd2F5c1xuICogYW5kIGZvY3VzIHdvdWxkIG5ldmVyIG1vdmUuIFRoaXMgaXMgYXMgb3Bwb3NlZCB0byB0aGUgcmVndWxhciBjYXNlLCB3aGVyZSB3ZVxuICogZG9uJ3Qgd2FudCBmb2N1cyB0byBtb3ZlIGlmIHRoZSBjdXJyZW50IGl0ZW0gc3RpbGwgbWF0Y2hlcy5cbiAqL1xuZnVuY3Rpb24gZmluZE5leHRJdGVtPFQgZXh0ZW5kcyB7IHRleHRWYWx1ZTogc3RyaW5nIH0+KFxuICBpdGVtczogVFtdLFxuICBzZWFyY2g6IHN0cmluZyxcbiAgY3VycmVudEl0ZW0/OiBUXG4pIHtcbiAgY29uc3QgaXNSZXBlYXRlZCA9IHNlYXJjaC5sZW5ndGggPiAxICYmIEFycmF5LmZyb20oc2VhcmNoKS5ldmVyeSgoY2hhcikgPT4gY2hhciA9PT0gc2VhcmNoWzBdKTtcbiAgY29uc3Qgbm9ybWFsaXplZFNlYXJjaCA9IGlzUmVwZWF0ZWQgPyBzZWFyY2hbMF0gOiBzZWFyY2g7XG4gIGNvbnN0IGN1cnJlbnRJdGVtSW5kZXggPSBjdXJyZW50SXRlbSA/IGl0ZW1zLmluZGV4T2YoY3VycmVudEl0ZW0pIDogLTE7XG4gIGxldCB3cmFwcGVkSXRlbXMgPSB3cmFwQXJyYXkoaXRlbXMsIE1hdGgubWF4KGN1cnJlbnRJdGVtSW5kZXgsIDApKTtcbiAgY29uc3QgZXhjbHVkZUN1cnJlbnRJdGVtID0gbm9ybWFsaXplZFNlYXJjaC5sZW5ndGggPT09IDE7XG4gIGlmIChleGNsdWRlQ3VycmVudEl0ZW0pIHdyYXBwZWRJdGVtcyA9IHdyYXBwZWRJdGVtcy5maWx0ZXIoKHYpID0+IHYgIT09IGN1cnJlbnRJdGVtKTtcbiAgY29uc3QgbmV4dEl0ZW0gPSB3cmFwcGVkSXRlbXMuZmluZCgoaXRlbSkgPT5cbiAgICBpdGVtLnRleHRWYWx1ZS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgobm9ybWFsaXplZFNlYXJjaC50b0xvd2VyQ2FzZSgpKVxuICApO1xuICByZXR1cm4gbmV4dEl0ZW0gIT09IGN1cnJlbnRJdGVtID8gbmV4dEl0ZW0gOiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogV3JhcHMgYW4gYXJyYXkgYXJvdW5kIGl0c2VsZiBhdCBhIGdpdmVuIHN0YXJ0IGluZGV4XG4gKiBFeGFtcGxlOiBgd3JhcEFycmF5KFsnYScsICdiJywgJ2MnLCAnZCddLCAyKSA9PT0gWydjJywgJ2QnLCAnYScsICdiJ11gXG4gKi9cbmZ1bmN0aW9uIHdyYXBBcnJheTxUPihhcnJheTogVFtdLCBzdGFydEluZGV4OiBudW1iZXIpIHtcbiAgcmV0dXJuIGFycmF5Lm1hcCgoXywgaW5kZXgpID0+IGFycmF5WyhzdGFydEluZGV4ICsgaW5kZXgpICUgYXJyYXkubGVuZ3RoXSk7XG59XG5cbmNvbnN0IFJvb3QgPSBTZWxlY3Q7XG5jb25zdCBUcmlnZ2VyID0gU2VsZWN0VHJpZ2dlcjtcbmNvbnN0IFZhbHVlID0gU2VsZWN0VmFsdWU7XG5jb25zdCBJY29uID0gU2VsZWN0SWNvbjtcbmNvbnN0IFBvcnRhbCA9IFNlbGVjdFBvcnRhbDtcbmNvbnN0IENvbnRlbnQgPSBTZWxlY3RDb250ZW50O1xuY29uc3QgVmlld3BvcnQgPSBTZWxlY3RWaWV3cG9ydDtcbmNvbnN0IEdyb3VwID0gU2VsZWN0R3JvdXA7XG5jb25zdCBMYWJlbCA9IFNlbGVjdExhYmVsO1xuY29uc3QgSXRlbSA9IFNlbGVjdEl0ZW07XG5jb25zdCBJdGVtVGV4dCA9IFNlbGVjdEl0ZW1UZXh0O1xuY29uc3QgSXRlbUluZGljYXRvciA9IFNlbGVjdEl0ZW1JbmRpY2F0b3I7XG5jb25zdCBTY3JvbGxVcEJ1dHRvbiA9IFNlbGVjdFNjcm9sbFVwQnV0dG9uO1xuY29uc3QgU2Nyb2xsRG93bkJ1dHRvbiA9IFNlbGVjdFNjcm9sbERvd25CdXR0b247XG5jb25zdCBTZXBhcmF0b3IgPSBTZWxlY3RTZXBhcmF0b3I7XG5jb25zdCBBcnJvdyA9IFNlbGVjdEFycm93O1xuXG5leHBvcnQge1xuICBjcmVhdGVTZWxlY3RTY29wZSxcbiAgLy9cbiAgU2VsZWN0LFxuICBTZWxlY3RUcmlnZ2VyLFxuICBTZWxlY3RWYWx1ZSxcbiAgU2VsZWN0SWNvbixcbiAgU2VsZWN0UG9ydGFsLFxuICBTZWxlY3RDb250ZW50LFxuICBTZWxlY3RWaWV3cG9ydCxcbiAgU2VsZWN0R3JvdXAsXG4gIFNlbGVjdExhYmVsLFxuICBTZWxlY3RJdGVtLFxuICBTZWxlY3RJdGVtVGV4dCxcbiAgU2VsZWN0SXRlbUluZGljYXRvcixcbiAgU2VsZWN0U2Nyb2xsVXBCdXR0b24sXG4gIFNlbGVjdFNjcm9sbERvd25CdXR0b24sXG4gIFNlbGVjdFNlcGFyYXRvcixcbiAgU2VsZWN0QXJyb3csXG4gIC8vXG4gIFJvb3QsXG4gIFRyaWdnZXIsXG4gIFZhbHVlLFxuICBJY29uLFxuICBQb3J0YWwsXG4gIENvbnRlbnQsXG4gIFZpZXdwb3J0LFxuICBHcm91cCxcbiAgTGFiZWwsXG4gIEl0ZW0sXG4gIEl0ZW1UZXh0LFxuICBJdGVtSW5kaWNhdG9yLFxuICBTY3JvbGxVcEJ1dHRvbixcbiAgU2Nyb2xsRG93bkJ1dHRvbixcbiAgU2VwYXJhdG9yLFxuICBBcnJvdyxcbn07XG5leHBvcnQgdHlwZSB7XG4gIFNlbGVjdFByb3BzLFxuICBTZWxlY3RUcmlnZ2VyUHJvcHMsXG4gIFNlbGVjdFZhbHVlUHJvcHMsXG4gIFNlbGVjdEljb25Qcm9wcyxcbiAgU2VsZWN0UG9ydGFsUHJvcHMsXG4gIFNlbGVjdENvbnRlbnRQcm9wcyxcbiAgU2VsZWN0Vmlld3BvcnRQcm9wcyxcbiAgU2VsZWN0R3JvdXBQcm9wcyxcbiAgU2VsZWN0TGFiZWxQcm9wcyxcbiAgU2VsZWN0SXRlbVByb3BzLFxuICBTZWxlY3RJdGVtVGV4dFByb3BzLFxuICBTZWxlY3RJdGVtSW5kaWNhdG9yUHJvcHMsXG4gIFNlbGVjdFNjcm9sbFVwQnV0dG9uUHJvcHMsXG4gIFNlbGVjdFNjcm9sbERvd25CdXR0b25Qcm9wcyxcbiAgU2VsZWN0U2VwYXJhdG9yUHJvcHMsXG4gIFNlbGVjdEFycm93UHJvcHMsXG59O1xuIl0sIm5hbWVzIjpbIlJlYWN0IiwiUmVhY3RET00iLCJjbGFtcCIsImNvbXBvc2VFdmVudEhhbmRsZXJzIiwiY3JlYXRlQ29sbGVjdGlvbiIsInVzZUNvbXBvc2VkUmVmcyIsImNyZWF0ZUNvbnRleHRTY29wZSIsInVzZURpcmVjdGlvbiIsIkRpc21pc3NhYmxlTGF5ZXIiLCJ1c2VGb2N1c0d1YXJkcyIsIkZvY3VzU2NvcGUiLCJ1c2VJZCIsIlBvcHBlclByaW1pdGl2ZSIsImNyZWF0ZVBvcHBlclNjb3BlIiwiUG9ydGFsIiwiUG9ydGFsUHJpbWl0aXZlIiwiUHJpbWl0aXZlIiwiU2xvdCIsInVzZUNhbGxiYWNrUmVmIiwidXNlQ29udHJvbGxhYmxlU3RhdGUiLCJ1c2VMYXlvdXRFZmZlY3QiLCJ1c2VQcmV2aW91cyIsIlZpc3VhbGx5SGlkZGVuIiwiaGlkZU90aGVycyIsIlJlbW92ZVNjcm9sbCIsIkZyYWdtZW50IiwianN4IiwianN4cyIsIk9QRU5fS0VZUyIsIlNFTEVDVElPTl9LRVlTIiwiU0VMRUNUX05BTUUiLCJDb2xsZWN0aW9uIiwidXNlQ29sbGVjdGlvbiIsImNyZWF0ZUNvbGxlY3Rpb25TY29wZSIsImNyZWF0ZVNlbGVjdENvbnRleHQiLCJjcmVhdGVTZWxlY3RTY29wZSIsInVzZVBvcHBlclNjb3BlIiwiU2VsZWN0UHJvdmlkZXIiLCJ1c2VTZWxlY3RDb250ZXh0IiwiU2VsZWN0TmF0aXZlT3B0aW9uc1Byb3ZpZGVyIiwidXNlU2VsZWN0TmF0aXZlT3B0aW9uc0NvbnRleHQiLCJTZWxlY3QiLCJwcm9wcyIsIl9fc2NvcGVTZWxlY3QiLCJjaGlsZHJlbiIsIm9wZW4iLCJvcGVuUHJvcCIsImRlZmF1bHRPcGVuIiwib25PcGVuQ2hhbmdlIiwidmFsdWUiLCJ2YWx1ZVByb3AiLCJkZWZhdWx0VmFsdWUiLCJvblZhbHVlQ2hhbmdlIiwiZGlyIiwibmFtZSIsImF1dG9Db21wbGV0ZSIsImRpc2FibGVkIiwicmVxdWlyZWQiLCJmb3JtIiwicG9wcGVyU2NvcGUiLCJ0cmlnZ2VyIiwic2V0VHJpZ2dlciIsInVzZVN0YXRlIiwidmFsdWVOb2RlIiwic2V0VmFsdWVOb2RlIiwidmFsdWVOb2RlSGFzQ2hpbGRyZW4iLCJzZXRWYWx1ZU5vZGVIYXNDaGlsZHJlbiIsImRpcmVjdGlvbiIsInNldE9wZW4iLCJwcm9wIiwiZGVmYXVsdFByb3AiLCJvbkNoYW5nZSIsInNldFZhbHVlIiwidHJpZ2dlclBvaW50ZXJEb3duUG9zUmVmIiwidXNlUmVmIiwiaXNGb3JtQ29udHJvbCIsImNsb3Nlc3QiLCJuYXRpdmVPcHRpb25zU2V0Iiwic2V0TmF0aXZlT3B0aW9uc1NldCIsIlNldCIsIm5hdGl2ZVNlbGVjdEtleSIsIkFycmF5IiwiZnJvbSIsIm1hcCIsIm9wdGlvbiIsImpvaW4iLCJSb290Iiwic2NvcGUiLCJvblRyaWdnZXJDaGFuZ2UiLCJvblZhbHVlTm9kZUNoYW5nZSIsIm9uVmFsdWVOb2RlSGFzQ2hpbGRyZW5DaGFuZ2UiLCJjb250ZW50SWQiLCJQcm92aWRlciIsIm9uTmF0aXZlT3B0aW9uQWRkIiwidXNlQ2FsbGJhY2siLCJwcmV2IiwiYWRkIiwib25OYXRpdmVPcHRpb25SZW1vdmUiLCJvcHRpb25zU2V0IiwiZGVsZXRlIiwiQnViYmxlU2VsZWN0IiwidGFiSW5kZXgiLCJldmVudCIsInRhcmdldCIsImRpc3BsYXlOYW1lIiwiVFJJR0dFUl9OQU1FIiwiU2VsZWN0VHJpZ2dlciIsImZvcndhcmRSZWYiLCJmb3J3YXJkZWRSZWYiLCJ0cmlnZ2VyUHJvcHMiLCJjb250ZXh0IiwiaXNEaXNhYmxlZCIsImNvbXBvc2VkUmVmcyIsImdldEl0ZW1zIiwicG9pbnRlclR5cGVSZWYiLCJzZWFyY2hSZWYiLCJoYW5kbGVUeXBlYWhlYWRTZWFyY2giLCJyZXNldFR5cGVhaGVhZCIsInVzZVR5cGVhaGVhZFNlYXJjaCIsInNlYXJjaCIsImVuYWJsZWRJdGVtcyIsImZpbHRlciIsIml0ZW0iLCJjdXJyZW50SXRlbSIsImZpbmQiLCJuZXh0SXRlbSIsImZpbmROZXh0SXRlbSIsImhhbmRsZU9wZW4iLCJwb2ludGVyRXZlbnQiLCJjdXJyZW50IiwieCIsIk1hdGgiLCJyb3VuZCIsInBhZ2VYIiwieSIsInBhZ2VZIiwiQW5jaG9yIiwiYXNDaGlsZCIsImJ1dHRvbiIsInR5cGUiLCJyb2xlIiwic2hvdWxkU2hvd1BsYWNlaG9sZGVyIiwicmVmIiwib25DbGljayIsImN1cnJlbnRUYXJnZXQiLCJmb2N1cyIsIm9uUG9pbnRlckRvd24iLCJwb2ludGVyVHlwZSIsImhhc1BvaW50ZXJDYXB0dXJlIiwicG9pbnRlcklkIiwicmVsZWFzZVBvaW50ZXJDYXB0dXJlIiwiY3RybEtleSIsInByZXZlbnREZWZhdWx0Iiwib25LZXlEb3duIiwiaXNUeXBpbmdBaGVhZCIsImlzTW9kaWZpZXJLZXkiLCJhbHRLZXkiLCJtZXRhS2V5Iiwia2V5IiwibGVuZ3RoIiwiaW5jbHVkZXMiLCJWQUxVRV9OQU1FIiwiU2VsZWN0VmFsdWUiLCJjbGFzc05hbWUiLCJzdHlsZSIsInBsYWNlaG9sZGVyIiwidmFsdWVQcm9wcyIsImhhc0NoaWxkcmVuIiwic3BhbiIsInBvaW50ZXJFdmVudHMiLCJJQ09OX05BTUUiLCJTZWxlY3RJY29uIiwiaWNvblByb3BzIiwiUE9SVEFMX05BTUUiLCJTZWxlY3RQb3J0YWwiLCJDT05URU5UX05BTUUiLCJTZWxlY3RDb250ZW50IiwiZnJhZ21lbnQiLCJzZXRGcmFnbWVudCIsIkRvY3VtZW50RnJhZ21lbnQiLCJmcmFnIiwiY3JlYXRlUG9ydGFsIiwiU2VsZWN0Q29udGVudFByb3ZpZGVyIiwiU2VsZWN0Q29udGVudEltcGwiLCJDT05URU5UX01BUkdJTiIsInVzZVNlbGVjdENvbnRlbnRDb250ZXh0IiwiQ09OVEVOVF9JTVBMX05BTUUiLCJwb3NpdGlvbiIsIm9uQ2xvc2VBdXRvRm9jdXMiLCJvbkVzY2FwZUtleURvd24iLCJvblBvaW50ZXJEb3duT3V0c2lkZSIsInNpZGUiLCJzaWRlT2Zmc2V0IiwiYWxpZ24iLCJhbGlnbk9mZnNldCIsImFycm93UGFkZGluZyIsImNvbGxpc2lvbkJvdW5kYXJ5IiwiY29sbGlzaW9uUGFkZGluZyIsInN0aWNreSIsImhpZGVXaGVuRGV0YWNoZWQiLCJhdm9pZENvbGxpc2lvbnMiLCJjb250ZW50UHJvcHMiLCJjb250ZW50Iiwic2V0Q29udGVudCIsInZpZXdwb3J0Iiwic2V0Vmlld3BvcnQiLCJub2RlIiwic2VsZWN0ZWRJdGVtIiwic2V0U2VsZWN0ZWRJdGVtIiwic2VsZWN0ZWRJdGVtVGV4dCIsInNldFNlbGVjdGVkSXRlbVRleHQiLCJpc1Bvc2l0aW9uZWQiLCJzZXRJc1Bvc2l0aW9uZWQiLCJmaXJzdFZhbGlkSXRlbUZvdW5kUmVmIiwidXNlRWZmZWN0IiwiZm9jdXNGaXJzdCIsImNhbmRpZGF0ZXMiLCJmaXJzdEl0ZW0iLCJyZXN0SXRlbXMiLCJsYXN0SXRlbSIsInNsaWNlIiwiUFJFVklPVVNMWV9GT0NVU0VEX0VMRU1FTlQiLCJkb2N1bWVudCIsImFjdGl2ZUVsZW1lbnQiLCJjYW5kaWRhdGUiLCJzY3JvbGxJbnRvVmlldyIsImJsb2NrIiwic2Nyb2xsVG9wIiwic2Nyb2xsSGVpZ2h0IiwiZm9jdXNTZWxlY3RlZEl0ZW0iLCJwb2ludGVyTW92ZURlbHRhIiwiaGFuZGxlUG9pbnRlck1vdmUiLCJhYnMiLCJoYW5kbGVQb2ludGVyVXAiLCJjb250YWlucyIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJhZGRFdmVudExpc3RlbmVyIiwiY2FwdHVyZSIsIm9uY2UiLCJjbG9zZSIsIndpbmRvdyIsInNldFRpbWVvdXQiLCJpdGVtUmVmQ2FsbGJhY2siLCJpc0ZpcnN0VmFsaWRJdGVtIiwiaXNTZWxlY3RlZEl0ZW0iLCJoYW5kbGVJdGVtTGVhdmUiLCJpdGVtVGV4dFJlZkNhbGxiYWNrIiwiU2VsZWN0UG9zaXRpb24iLCJTZWxlY3RQb3BwZXJQb3NpdGlvbiIsIlNlbGVjdEl0ZW1BbGlnbmVkUG9zaXRpb24iLCJwb3BwZXJDb250ZW50UHJvcHMiLCJvblZpZXdwb3J0Q2hhbmdlIiwib25JdGVtTGVhdmUiLCJhcyIsImFsbG93UGluY2hab29tIiwidHJhcHBlZCIsIm9uTW91bnRBdXRvRm9jdXMiLCJvblVubW91bnRBdXRvRm9jdXMiLCJwcmV2ZW50U2Nyb2xsIiwiZGlzYWJsZU91dHNpZGVQb2ludGVyRXZlbnRzIiwib25Gb2N1c091dHNpZGUiLCJvbkRpc21pc3MiLCJpZCIsIm9uQ29udGV4dE1lbnUiLCJvblBsYWNlZCIsImRpc3BsYXkiLCJmbGV4RGlyZWN0aW9uIiwib3V0bGluZSIsIml0ZW1zIiwiY2FuZGlkYXRlTm9kZXMiLCJyZXZlcnNlIiwiY3VycmVudEVsZW1lbnQiLCJjdXJyZW50SW5kZXgiLCJpbmRleE9mIiwiSVRFTV9BTElHTkVEX1BPU0lUSU9OX05BTUUiLCJwb3BwZXJQcm9wcyIsImNvbnRlbnRDb250ZXh0IiwiY29udGVudFdyYXBwZXIiLCJzZXRDb250ZW50V3JhcHBlciIsInNob3VsZEV4cGFuZE9uU2Nyb2xsUmVmIiwic2hvdWxkUmVwb3NpdGlvblJlZiIsInRyaWdnZXJSZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwiY29udGVudFJlY3QiLCJ2YWx1ZU5vZGVSZWN0IiwiaXRlbVRleHRSZWN0IiwiaXRlbVRleHRPZmZzZXQiLCJsZWZ0IiwibGVmdERlbHRhIiwibWluQ29udGVudFdpZHRoIiwid2lkdGgiLCJjb250ZW50V2lkdGgiLCJtYXgiLCJyaWdodEVkZ2UiLCJpbm5lcldpZHRoIiwiY2xhbXBlZExlZnQiLCJtaW5XaWR0aCIsInJpZ2h0IiwicmlnaHREZWx0YSIsImxlZnRFZGdlIiwiY2xhbXBlZFJpZ2h0IiwiYXZhaWxhYmxlSGVpZ2h0IiwiaW5uZXJIZWlnaHQiLCJpdGVtc0hlaWdodCIsImNvbnRlbnRTdHlsZXMiLCJnZXRDb21wdXRlZFN0eWxlIiwiY29udGVudEJvcmRlclRvcFdpZHRoIiwicGFyc2VJbnQiLCJib3JkZXJUb3BXaWR0aCIsImNvbnRlbnRQYWRkaW5nVG9wIiwicGFkZGluZ1RvcCIsImNvbnRlbnRCb3JkZXJCb3R0b21XaWR0aCIsImJvcmRlckJvdHRvbVdpZHRoIiwiY29udGVudFBhZGRpbmdCb3R0b20iLCJwYWRkaW5nQm90dG9tIiwiZnVsbENvbnRlbnRIZWlnaHQiLCJtaW5Db250ZW50SGVpZ2h0IiwibWluIiwib2Zmc2V0SGVpZ2h0Iiwidmlld3BvcnRTdHlsZXMiLCJ2aWV3cG9ydFBhZGRpbmdUb3AiLCJ2aWV3cG9ydFBhZGRpbmdCb3R0b20iLCJ0b3BFZGdlVG9UcmlnZ2VyTWlkZGxlIiwidG9wIiwiaGVpZ2h0IiwidHJpZ2dlck1pZGRsZVRvQm90dG9tRWRnZSIsInNlbGVjdGVkSXRlbUhhbGZIZWlnaHQiLCJpdGVtT2Zmc2V0TWlkZGxlIiwib2Zmc2V0VG9wIiwiY29udGVudFRvcFRvSXRlbU1pZGRsZSIsIml0ZW1NaWRkbGVUb0NvbnRlbnRCb3R0b20iLCJ3aWxsQWxpZ25XaXRob3V0VG9wT3ZlcmZsb3ciLCJpc0xhc3RJdGVtIiwiYm90dG9tIiwidmlld3BvcnRPZmZzZXRCb3R0b20iLCJjbGllbnRIZWlnaHQiLCJjbGFtcGVkVHJpZ2dlck1pZGRsZVRvQm90dG9tRWRnZSIsImlzRmlyc3RJdGVtIiwiY2xhbXBlZFRvcEVkZ2VUb1RyaWdnZXJNaWRkbGUiLCJtYXJnaW4iLCJtaW5IZWlnaHQiLCJtYXhIZWlnaHQiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJjb250ZW50WkluZGV4Iiwic2V0Q29udGVudFpJbmRleCIsInpJbmRleCIsImhhbmRsZVNjcm9sbEJ1dHRvbkNoYW5nZSIsIlNlbGVjdFZpZXdwb3J0UHJvdmlkZXIiLCJvblNjcm9sbEJ1dHRvbkNoYW5nZSIsImRpdiIsImJveFNpemluZyIsIlBPUFBFUl9QT1NJVElPTl9OQU1FIiwiQ29udGVudCIsInVzZVNlbGVjdFZpZXdwb3J0Q29udGV4dCIsIlZJRVdQT1JUX05BTUUiLCJTZWxlY3RWaWV3cG9ydCIsIm5vbmNlIiwidmlld3BvcnRQcm9wcyIsInZpZXdwb3J0Q29udGV4dCIsInByZXZTY3JvbGxUb3BSZWYiLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsIl9faHRtbCIsImZsZXgiLCJvdmVyZmxvdyIsIm9uU2Nyb2xsIiwic2Nyb2xsZWRCeSIsImNzc01pbkhlaWdodCIsInBhcnNlRmxvYXQiLCJjc3NIZWlnaHQiLCJwcmV2SGVpZ2h0IiwibmV4dEhlaWdodCIsImNsYW1wZWROZXh0SGVpZ2h0IiwiaGVpZ2h0RGlmZiIsImp1c3RpZnlDb250ZW50IiwiR1JPVVBfTkFNRSIsIlNlbGVjdEdyb3VwQ29udGV4dFByb3ZpZGVyIiwidXNlU2VsZWN0R3JvdXBDb250ZXh0IiwiU2VsZWN0R3JvdXAiLCJncm91cFByb3BzIiwiZ3JvdXBJZCIsIkxBQkVMX05BTUUiLCJTZWxlY3RMYWJlbCIsImxhYmVsUHJvcHMiLCJncm91cENvbnRleHQiLCJJVEVNX05BTUUiLCJTZWxlY3RJdGVtQ29udGV4dFByb3ZpZGVyIiwidXNlU2VsZWN0SXRlbUNvbnRleHQiLCJTZWxlY3RJdGVtIiwidGV4dFZhbHVlIiwidGV4dFZhbHVlUHJvcCIsIml0ZW1Qcm9wcyIsImlzU2VsZWN0ZWQiLCJzZXRUZXh0VmFsdWUiLCJpc0ZvY3VzZWQiLCJzZXRJc0ZvY3VzZWQiLCJ0ZXh0SWQiLCJoYW5kbGVTZWxlY3QiLCJFcnJvciIsIm9uSXRlbVRleHRDaGFuZ2UiLCJwcmV2VGV4dFZhbHVlIiwidGV4dENvbnRlbnQiLCJ0cmltIiwiSXRlbVNsb3QiLCJvbkZvY3VzIiwib25CbHVyIiwib25Qb2ludGVyVXAiLCJvblBvaW50ZXJNb3ZlIiwib25Qb2ludGVyTGVhdmUiLCJJVEVNX1RFWFRfTkFNRSIsIlNlbGVjdEl0ZW1UZXh0IiwiaXRlbVRleHRQcm9wcyIsIml0ZW1Db250ZXh0IiwibmF0aXZlT3B0aW9uc0NvbnRleHQiLCJpdGVtVGV4dE5vZGUiLCJzZXRJdGVtVGV4dE5vZGUiLCJuYXRpdmVPcHRpb24iLCJ1c2VNZW1vIiwiSVRFTV9JTkRJQ0FUT1JfTkFNRSIsIlNlbGVjdEl0ZW1JbmRpY2F0b3IiLCJpdGVtSW5kaWNhdG9yUHJvcHMiLCJTQ1JPTExfVVBfQlVUVE9OX05BTUUiLCJTZWxlY3RTY3JvbGxVcEJ1dHRvbiIsImNhblNjcm9sbFVwIiwic2V0Q2FuU2Nyb2xsVXAiLCJoYW5kbGVTY3JvbGwiLCJTZWxlY3RTY3JvbGxCdXR0b25JbXBsIiwib25BdXRvU2Nyb2xsIiwiU0NST0xMX0RPV05fQlVUVE9OX05BTUUiLCJTZWxlY3RTY3JvbGxEb3duQnV0dG9uIiwiY2FuU2Nyb2xsRG93biIsInNldENhblNjcm9sbERvd24iLCJtYXhTY3JvbGwiLCJjZWlsIiwic2Nyb2xsSW5kaWNhdG9yUHJvcHMiLCJhdXRvU2Nyb2xsVGltZXJSZWYiLCJjbGVhckF1dG9TY3JvbGxUaW1lciIsImNsZWFySW50ZXJ2YWwiLCJhY3RpdmVJdGVtIiwiZmxleFNocmluayIsInNldEludGVydmFsIiwiU0VQQVJBVE9SX05BTUUiLCJTZWxlY3RTZXBhcmF0b3IiLCJzZXBhcmF0b3JQcm9wcyIsIkFSUk9XX05BTUUiLCJTZWxlY3RBcnJvdyIsImFycm93UHJvcHMiLCJBcnJvdyIsInNlbGVjdFByb3BzIiwicHJldlZhbHVlIiwic2VsZWN0Iiwic2VsZWN0UHJvdG8iLCJIVE1MU2VsZWN0RWxlbWVudCIsInByb3RvdHlwZSIsImRlc2NyaXB0b3IiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJzZXQiLCJFdmVudCIsImJ1YmJsZXMiLCJjYWxsIiwiZGlzcGF0Y2hFdmVudCIsIm9uU2VhcmNoQ2hhbmdlIiwiaGFuZGxlU2VhcmNoQ2hhbmdlIiwidGltZXJSZWYiLCJ1cGRhdGVTZWFyY2giLCJjbGVhclRpbWVvdXQiLCJpc1JlcGVhdGVkIiwiZXZlcnkiLCJjaGFyIiwibm9ybWFsaXplZFNlYXJjaCIsImN1cnJlbnRJdGVtSW5kZXgiLCJ3cmFwcGVkSXRlbXMiLCJ3cmFwQXJyYXkiLCJleGNsdWRlQ3VycmVudEl0ZW0iLCJ2IiwidG9Mb3dlckNhc2UiLCJzdGFydHNXaXRoIiwiYXJyYXkiLCJzdGFydEluZGV4IiwiXyIsImluZGV4IiwiVHJpZ2dlciIsIlZhbHVlIiwiSWNvbiIsIlZpZXdwb3J0IiwiR3JvdXAiLCJMYWJlbCIsIkl0ZW0iLCJJdGVtVGV4dCIsIkl0ZW1JbmRpY2F0b3IiLCJTY3JvbGxVcEJ1dHRvbiIsIlNjcm9sbERvd25CdXR0b24iLCJTZXBhcmF0b3IiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/react-select/dist/index.mjs\n"); /***/ }), /***/ "(ssr)/./node_modules/@radix-ui/react-slot/dist/index.mjs": /*!**********************************************************!*\ !*** ./node_modules/@radix-ui/react-slot/dist/index.mjs ***! \**********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ Slot: () => (/* binding */ Slot),\n/* harmony export */ Slottable: () => (/* binding */ Slottable)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var _radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-compose-refs */ \"(ssr)/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\n// packages/react/slot/src/Slot.tsx\n\n\n\nvar Slot = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = react__WEBPACK_IMPORTED_MODULE_0__.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (react__WEBPACK_IMPORTED_MODULE_0__.Children.count(newElement) > 1) return react__WEBPACK_IMPORTED_MODULE_0__.Children.only(null);\n return react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(newElement) ? react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n return react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(children, {\n ...mergeProps(slotProps, children.props),\n // @ts-ignore\n ref: forwardedRef ? (0,_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__.composeRefs)(forwardedRef, childrenRef) : childrenRef\n });\n }\n return react__WEBPACK_IMPORTED_MODULE_0__.Children.count(children) > 1 ? react__WEBPACK_IMPORTED_MODULE_0__.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.Fragment, { children });\n};\nfunction isSlottable(child) {\n return react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Slot;\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXNsb3QvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7QUFDK0I7QUFDNEI7QUFDVDtBQUNsRCxXQUFXLDZDQUFnQjtBQUMzQixVQUFVLHlCQUF5QjtBQUNuQyx3QkFBd0IsMkNBQWM7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksMkNBQWMsK0JBQStCLDJDQUFjO0FBQ3ZFLGVBQWUsaURBQW9CO0FBQ25DLFFBQVE7QUFDUjtBQUNBO0FBQ0EsS0FBSztBQUNMLDJCQUEyQixzREFBRyxjQUFjLDJDQUEyQyxpREFBb0IsZUFBZSwrQ0FBa0IsMENBQTBDO0FBQ3RMO0FBQ0EseUJBQXlCLHNEQUFHLGNBQWMsMkNBQTJDO0FBQ3JGLENBQUM7QUFDRDtBQUNBLGdCQUFnQiw2Q0FBZ0I7QUFDaEMsVUFBVSx5QkFBeUI7QUFDbkMsTUFBTSxpREFBb0I7QUFDMUI7QUFDQSxXQUFXLCtDQUFrQjtBQUM3QjtBQUNBO0FBQ0EsMEJBQTBCLHlFQUFXO0FBQ3JDLEtBQUs7QUFDTDtBQUNBLFNBQVMsMkNBQWMsdUJBQXVCLDJDQUFjO0FBQzVELENBQUM7QUFDRDtBQUNBLG1CQUFtQixVQUFVO0FBQzdCLHlCQUF5QixzREFBRyxDQUFDLHVEQUFRLElBQUksVUFBVTtBQUNuRDtBQUNBO0FBQ0EsU0FBUyxpREFBb0I7QUFDN0I7QUFDQTtBQUNBLDBCQUEwQjtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsTUFBTTtBQUNOLGtDQUFrQztBQUNsQyxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUtFO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9tYW1hZC1hcHAvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXNsb3QvZGlzdC9pbmRleC5tanM/MzMwOCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBwYWNrYWdlcy9yZWFjdC9zbG90L3NyYy9TbG90LnRzeFxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBjb21wb3NlUmVmcyB9IGZyb20gXCJAcmFkaXgtdWkvcmVhY3QtY29tcG9zZS1yZWZzXCI7XG5pbXBvcnQgeyBGcmFnbWVudCwganN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG52YXIgU2xvdCA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgY29uc3QgeyBjaGlsZHJlbiwgLi4uc2xvdFByb3BzIH0gPSBwcm9wcztcbiAgY29uc3QgY2hpbGRyZW5BcnJheSA9IFJlYWN0LkNoaWxkcmVuLnRvQXJyYXkoY2hpbGRyZW4pO1xuICBjb25zdCBzbG90dGFibGUgPSBjaGlsZHJlbkFycmF5LmZpbmQoaXNTbG90dGFibGUpO1xuICBpZiAoc2xvdHRhYmxlKSB7XG4gICAgY29uc3QgbmV3RWxlbWVudCA9IHNsb3R0YWJsZS5wcm9wcy5jaGlsZHJlbjtcbiAgICBjb25zdCBuZXdDaGlsZHJlbiA9IGNoaWxkcmVuQXJyYXkubWFwKChjaGlsZCkgPT4ge1xuICAgICAgaWYgKGNoaWxkID09PSBzbG90dGFibGUpIHtcbiAgICAgICAgaWYgKFJlYWN0LkNoaWxkcmVuLmNvdW50KG5ld0VsZW1lbnQpID4gMSkgcmV0dXJuIFJlYWN0LkNoaWxkcmVuLm9ubHkobnVsbCk7XG4gICAgICAgIHJldHVybiBSZWFjdC5pc1ZhbGlkRWxlbWVudChuZXdFbGVtZW50KSA/IG5ld0VsZW1lbnQucHJvcHMuY2hpbGRyZW4gOiBudWxsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGNoaWxkO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFNsb3RDbG9uZSwgeyAuLi5zbG90UHJvcHMsIHJlZjogZm9yd2FyZGVkUmVmLCBjaGlsZHJlbjogUmVhY3QuaXNWYWxpZEVsZW1lbnQobmV3RWxlbWVudCkgPyBSZWFjdC5jbG9uZUVsZW1lbnQobmV3RWxlbWVudCwgdm9pZCAwLCBuZXdDaGlsZHJlbikgOiBudWxsIH0pO1xuICB9XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFNsb3RDbG9uZSwgeyAuLi5zbG90UHJvcHMsIHJlZjogZm9yd2FyZGVkUmVmLCBjaGlsZHJlbiB9KTtcbn0pO1xuU2xvdC5kaXNwbGF5TmFtZSA9IFwiU2xvdFwiO1xudmFyIFNsb3RDbG9uZSA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgY29uc3QgeyBjaGlsZHJlbiwgLi4uc2xvdFByb3BzIH0gPSBwcm9wcztcbiAgaWYgKFJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkcmVuKSkge1xuICAgIGNvbnN0IGNoaWxkcmVuUmVmID0gZ2V0RWxlbWVudFJlZihjaGlsZHJlbik7XG4gICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChjaGlsZHJlbiwge1xuICAgICAgLi4ubWVyZ2VQcm9wcyhzbG90UHJvcHMsIGNoaWxkcmVuLnByb3BzKSxcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHJlZjogZm9yd2FyZGVkUmVmID8gY29tcG9zZVJlZnMoZm9yd2FyZGVkUmVmLCBjaGlsZHJlblJlZikgOiBjaGlsZHJlblJlZlxuICAgIH0pO1xuICB9XG4gIHJldHVybiBSZWFjdC5DaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAxID8gUmVhY3QuQ2hpbGRyZW4ub25seShudWxsKSA6IG51bGw7XG59KTtcblNsb3RDbG9uZS5kaXNwbGF5TmFtZSA9IFwiU2xvdENsb25lXCI7XG52YXIgU2xvdHRhYmxlID0gKHsgY2hpbGRyZW4gfSkgPT4ge1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIGpzeChGcmFnbWVudCwgeyBjaGlsZHJlbiB9KTtcbn07XG5mdW5jdGlvbiBpc1Nsb3R0YWJsZShjaGlsZCkge1xuICByZXR1cm4gUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGQpICYmIGNoaWxkLnR5cGUgPT09IFNsb3R0YWJsZTtcbn1cbmZ1bmN0aW9uIG1lcmdlUHJvcHMoc2xvdFByb3BzLCBjaGlsZFByb3BzKSB7XG4gIGNvbnN0IG92ZXJyaWRlUHJvcHMgPSB7IC4uLmNoaWxkUHJvcHMgfTtcbiAgZm9yIChjb25zdCBwcm9wTmFtZSBpbiBjaGlsZFByb3BzKSB7XG4gICAgY29uc3Qgc2xvdFByb3BWYWx1ZSA9IHNsb3RQcm9wc1twcm9wTmFtZV07XG4gICAgY29uc3QgY2hpbGRQcm9wVmFsdWUgPSBjaGlsZFByb3BzW3Byb3BOYW1lXTtcbiAgICBjb25zdCBpc0hhbmRsZXIgPSAvXm9uW0EtWl0vLnRlc3QocHJvcE5hbWUpO1xuICAgIGlmIChpc0hhbmRsZXIpIHtcbiAgICAgIGlmIChzbG90UHJvcFZhbHVlICYmIGNoaWxkUHJvcFZhbHVlKSB7XG4gICAgICAgIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0gKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICBjaGlsZFByb3BWYWx1ZSguLi5hcmdzKTtcbiAgICAgICAgICBzbG90UHJvcFZhbHVlKC4uLmFyZ3MpO1xuICAgICAgICB9O1xuICAgICAgfSBlbHNlIGlmIChzbG90UHJvcFZhbHVlKSB7XG4gICAgICAgIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0gc2xvdFByb3BWYWx1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHByb3BOYW1lID09PSBcInN0eWxlXCIpIHtcbiAgICAgIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0geyAuLi5zbG90UHJvcFZhbHVlLCAuLi5jaGlsZFByb3BWYWx1ZSB9O1xuICAgIH0gZWxzZSBpZiAocHJvcE5hbWUgPT09IFwiY2xhc3NOYW1lXCIpIHtcbiAgICAgIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0gW3Nsb3RQcm9wVmFsdWUsIGNoaWxkUHJvcFZhbHVlXS5maWx0ZXIoQm9vbGVhbikuam9pbihcIiBcIik7XG4gICAgfVxuICB9XG4gIHJldHVybiB7IC4uLnNsb3RQcm9wcywgLi4ub3ZlcnJpZGVQcm9wcyB9O1xufVxuZnVuY3Rpb24gZ2V0RWxlbWVudFJlZihlbGVtZW50KSB7XG4gIGxldCBnZXR0ZXIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVsZW1lbnQucHJvcHMsIFwicmVmXCIpPy5nZXQ7XG4gIGxldCBtYXlXYXJuID0gZ2V0dGVyICYmIFwiaXNSZWFjdFdhcm5pbmdcIiBpbiBnZXR0ZXIgJiYgZ2V0dGVyLmlzUmVhY3RXYXJuaW5nO1xuICBpZiAobWF5V2Fybikge1xuICAgIHJldHVybiBlbGVtZW50LnJlZjtcbiAgfVxuICBnZXR0ZXIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVsZW1lbnQsIFwicmVmXCIpPy5nZXQ7XG4gIG1heVdhcm4gPSBnZXR0ZXIgJiYgXCJpc1JlYWN0V2FybmluZ1wiIGluIGdldHRlciAmJiBnZXR0ZXIuaXNSZWFjdFdhcm5pbmc7XG4gIGlmIChtYXlXYXJuKSB7XG4gICAgcmV0dXJuIGVsZW1lbnQucHJvcHMucmVmO1xuICB9XG4gIHJldHVybiBlbGVtZW50LnByb3BzLnJlZiB8fCBlbGVtZW50LnJlZjtcbn1cbnZhciBSb290ID0gU2xvdDtcbmV4cG9ydCB7XG4gIFJvb3QsXG4gIFNsb3QsXG4gIFNsb3R0YWJsZVxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/react-slot/dist/index.mjs\n"); /***/ }), /***/ "(ssr)/./node_modules/@radix-ui/react-tabs/dist/index.mjs": /*!**********************************************************!*\ !*** ./node_modules/@radix-ui/react-tabs/dist/index.mjs ***! \**********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Content: () => (/* binding */ Content),\n/* harmony export */ List: () => (/* binding */ List),\n/* harmony export */ Root: () => (/* binding */ Root2),\n/* harmony export */ Tabs: () => (/* binding */ Tabs),\n/* harmony export */ TabsContent: () => (/* binding */ TabsContent),\n/* harmony export */ TabsList: () => (/* binding */ TabsList),\n/* harmony export */ TabsTrigger: () => (/* binding */ TabsTrigger),\n/* harmony export */ Trigger: () => (/* binding */ Trigger),\n/* harmony export */ createTabsScope: () => (/* binding */ createTabsScope)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var _radix_ui_primitive__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @radix-ui/primitive */ \"(ssr)/./node_modules/@radix-ui/primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-context */ \"(ssr)/./node_modules/@radix-ui/react-context/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_roving_focus__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @radix-ui/react-roving-focus */ \"(ssr)/./node_modules/@radix-ui/react-roving-focus/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @radix-ui/react-presence */ \"(ssr)/./node_modules/@radix-ui/react-presence/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(ssr)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_direction__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-direction */ \"(ssr)/./node_modules/@radix-ui/react-direction/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @radix-ui/react-use-controllable-state */ \"(ssr)/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs\");\n/* harmony import */ var _radix_ui_react_id__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @radix-ui/react-id */ \"(ssr)/./node_modules/@radix-ui/react-id/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ Content,List,Root,Tabs,TabsContent,TabsList,TabsTrigger,Trigger,createTabsScope auto */ // packages/react/tabs/src/Tabs.tsx\n\n\n\n\n\n\n\n\n\n\n\nvar TABS_NAME = \"Tabs\";\nvar [createTabsContext, createTabsScope] = (0,_radix_ui_react_context__WEBPACK_IMPORTED_MODULE_2__.createContextScope)(TABS_NAME, [\n _radix_ui_react_roving_focus__WEBPACK_IMPORTED_MODULE_3__.createRovingFocusGroupScope\n]);\nvar useRovingFocusGroupScope = (0,_radix_ui_react_roving_focus__WEBPACK_IMPORTED_MODULE_3__.createRovingFocusGroupScope)();\nvar [TabsProvider, useTabsContext] = createTabsContext(TABS_NAME);\nvar Tabs = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { __scopeTabs, value: valueProp, onValueChange, defaultValue, orientation = \"horizontal\", dir, activationMode = \"automatic\", ...tabsProps } = props;\n const direction = (0,_radix_ui_react_direction__WEBPACK_IMPORTED_MODULE_4__.useDirection)(dir);\n const [value, setValue] = (0,_radix_ui_react_use_controllable_state__WEBPACK_IMPORTED_MODULE_5__.useControllableState)({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue\n });\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(TabsProvider, {\n scope: __scopeTabs,\n baseId: (0,_radix_ui_react_id__WEBPACK_IMPORTED_MODULE_6__.useId)(),\n value,\n onValueChange: setValue,\n orientation,\n dir: direction,\n activationMode,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_7__.Primitive.div, {\n dir: direction,\n \"data-orientation\": orientation,\n ...tabsProps,\n ref: forwardedRef\n })\n });\n});\nTabs.displayName = TABS_NAME;\nvar TAB_LIST_NAME = \"TabsList\";\nvar TabsList = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { __scopeTabs, loop = true, ...listProps } = props;\n const context = useTabsContext(TAB_LIST_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_roving_focus__WEBPACK_IMPORTED_MODULE_3__.Root, {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation: context.orientation,\n dir: context.dir,\n loop,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_7__.Primitive.div, {\n role: \"tablist\",\n \"aria-orientation\": context.orientation,\n ...listProps,\n ref: forwardedRef\n })\n });\n});\nTabsList.displayName = TAB_LIST_NAME;\nvar TRIGGER_NAME = \"TabsTrigger\";\nvar TabsTrigger = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { __scopeTabs, value, disabled = false, ...triggerProps } = props;\n const context = useTabsContext(TRIGGER_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_roving_focus__WEBPACK_IMPORTED_MODULE_3__.Item, {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !disabled,\n active: isSelected,\n children: /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_7__.Primitive.button, {\n type: \"button\",\n role: \"tab\",\n \"aria-selected\": isSelected,\n \"aria-controls\": contentId,\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n id: triggerId,\n ...triggerProps,\n ref: forwardedRef,\n onMouseDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_8__.composeEventHandlers)(props.onMouseDown, (event)=>{\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onValueChange(value);\n } else {\n event.preventDefault();\n }\n }),\n onKeyDown: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_8__.composeEventHandlers)(props.onKeyDown, (event)=>{\n if ([\n \" \",\n \"Enter\"\n ].includes(event.key)) context.onValueChange(value);\n }),\n onFocus: (0,_radix_ui_primitive__WEBPACK_IMPORTED_MODULE_8__.composeEventHandlers)(props.onFocus, ()=>{\n const isAutomaticActivation = context.activationMode !== \"manual\";\n if (!isSelected && !disabled && isAutomaticActivation) {\n context.onValueChange(value);\n }\n })\n })\n });\n});\nTabsTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"TabsContent\";\nvar TabsContent = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, forwardedRef)=>{\n const { __scopeTabs, value, forceMount, children, ...contentProps } = props;\n const context = useTabsContext(CONTENT_NAME, __scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n const isMountAnimationPreventedRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(isSelected);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(()=>{\n const rAF = requestAnimationFrame(()=>isMountAnimationPreventedRef.current = false);\n return ()=>cancelAnimationFrame(rAF);\n }, []);\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_presence__WEBPACK_IMPORTED_MODULE_9__.Presence, {\n present: forceMount || isSelected,\n children: ({ present })=>/* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_7__.Primitive.div, {\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-orientation\": context.orientation,\n role: \"tabpanel\",\n \"aria-labelledby\": triggerId,\n hidden: !present,\n id: contentId,\n tabIndex: 0,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...props.style,\n animationDuration: isMountAnimationPreventedRef.current ? \"0s\" : void 0\n },\n children: present && children\n })\n });\n});\nTabsContent.displayName = CONTENT_NAME;\nfunction makeTriggerId(baseId, value) {\n return `${baseId}-trigger-${value}`;\n}\nfunction makeContentId(baseId, value) {\n return `${baseId}-content-${value}`;\n}\nvar Root2 = Tabs;\nvar List = TabsList;\nvar Trigger = TabsTrigger;\nvar Content = TabsContent;\n //# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXRhYnMvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBdUI7QUFDYztBQUNGO0FBQ1M7QUFDbkI7QUFDQztBQUNRO0FBQ0w7QUFDUTtBQUNmO0FBbUZkO0FBM0VSLElBQU1XLFlBQVk7QUFHbEIsSUFBTSxDQUFDQyxtQkFBbUJDLGdCQUFlLEdBQUlYLDJFQUFrQkEsQ0FBQ1MsV0FBVztJQUN6RVIscUZBQTJCQTtDQUM1QjtBQUNELElBQU1XLDJCQUEyQlgseUZBQTJCQTtBQVc1RCxJQUFNLENBQUNZLGNBQWNDLGVBQWMsR0FBSUosa0JBQW9DRDtBQTZCM0UsSUFBTU0scUJBQWFqQiw2Q0FBQSxDQUNqQixDQUFDbUIsT0FBK0JDO0lBQzlCLE1BQU0sRUFDSkMsV0FBQSxFQUNBQyxPQUFPQyxTQUFBLEVBQ1BDLGFBQUEsRUFDQUMsWUFBQSxFQUNBQyxjQUFjLGNBQ2RDLEdBQUEsRUFDQUMsaUJBQWlCLGFBQ2pCLEdBQUdDLFdBQ0wsR0FBSVY7SUFDSixNQUFNVyxZQUFZdkIsdUVBQVlBLENBQUNvQjtJQUMvQixNQUFNLENBQUNMLE9BQU9TLFNBQVEsR0FBSXZCLDRGQUFvQkEsQ0FBQztRQUM3Q3dCLE1BQU1UO1FBQ05VLFVBQVVUO1FBQ1ZVLGFBQWFUO0lBQ2Y7SUFFQSxPQUNFLGdCQUFBZixzREFBQUEsQ0FBQ0ssY0FBQTtRQUNDb0IsT0FBT2Q7UUFDUGUsUUFBUTNCLHlEQUFLQTtRQUNiYTtRQUNBRSxlQUFlTztRQUNmTDtRQUNBQyxLQUFLRztRQUNMRjtRQUVBUyxVQUFBLGdCQUFBM0Isc0RBQUFBLENBQUNMLGdFQUFTQSxDQUFDaUMsR0FBQSxFQUFWO1lBQ0NYLEtBQUtHO1lBQ0wsb0JBQWtCSjtZQUNqQixHQUFHRyxTQUFBO1lBQ0pVLEtBQUtuQjtRQUFBO0lBQ1A7QUFHTjtBQUdGSCxLQUFLdUIsV0FBQSxHQUFjN0I7QUFNbkIsSUFBTThCLGdC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QUFPaEQ7QUFDYixJQUFNaUQsVUFBVXhDO0FBQ2hCLElBQU15QyxVQUFVakIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9tYW1hZC1hcHAvLi4vc3JjL1RhYnMudHN4PzUzYzAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY29tcG9zZUV2ZW50SGFuZGxlcnMgfSBmcm9tICdAcmFkaXgtdWkvcHJpbWl0aXZlJztcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHRTY29wZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1jb250ZXh0JztcbmltcG9ydCB7IGNyZWF0ZVJvdmluZ0ZvY3VzR3JvdXBTY29wZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1yb3ZpbmctZm9jdXMnO1xuaW1wb3J0IHsgUHJlc2VuY2UgfSBmcm9tICdAcmFkaXgtdWkvcmVhY3QtcHJlc2VuY2UnO1xuaW1wb3J0IHsgUHJpbWl0aXZlIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LXByaW1pdGl2ZSc7XG5pbXBvcnQgKiBhcyBSb3ZpbmdGb2N1c0dyb3VwIGZyb20gJ0ByYWRpeC11aS9yZWFjdC1yb3ZpbmctZm9jdXMnO1xuaW1wb3J0IHsgdXNlRGlyZWN0aW9uIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWRpcmVjdGlvbic7XG5pbXBvcnQgeyB1c2VDb250cm9sbGFibGVTdGF0ZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC11c2UtY29udHJvbGxhYmxlLXN0YXRlJztcbmltcG9ydCB7IHVzZUlkIH0gZnJvbSAnQHJhZGl4LXVpL3JlYWN0LWlkJztcblxuaW1wb3J0IHR5cGUgeyBTY29wZSB9IGZyb20gJ0ByYWRpeC11aS9yZWFjdC1jb250ZXh0JztcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVGFic1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5jb25zdCBUQUJTX05BTUUgPSAnVGFicyc7XG5cbnR5cGUgU2NvcGVkUHJvcHM8UD4gPSBQICYgeyBfX3Njb3BlVGFicz86IFNjb3BlIH07XG5jb25zdCBbY3JlYXRlVGFic0NvbnRleHQsIGNyZWF0ZVRhYnNTY29wZV0gPSBjcmVhdGVDb250ZXh0U2NvcGUoVEFCU19OQU1FLCBbXG4gIGNyZWF0ZVJvdmluZ0ZvY3VzR3JvdXBTY29wZSxcbl0pO1xuY29uc3QgdXNlUm92aW5nRm9jdXNHcm91cFNjb3BlID0gY3JlYXRlUm92aW5nRm9jdXNHcm91cFNjb3BlKCk7XG5cbnR5cGUgVGFic0NvbnRleHRWYWx1ZSA9IHtcbiAgYmFzZUlkOiBzdHJpbmc7XG4gIHZhbHVlPzogc3RyaW5nO1xuICBvblZhbHVlQ2hhbmdlOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZDtcbiAgb3JpZW50YXRpb24/OiBUYWJzUHJvcHNbJ29yaWVudGF0aW9uJ107XG4gIGRpcj86IFRhYnNQcm9wc1snZGlyJ107XG4gIGFjdGl2YXRpb25Nb2RlPzogVGFic1Byb3BzWydhY3RpdmF0aW9uTW9kZSddO1xufTtcblxuY29uc3QgW1RhYnNQcm92aWRlciwgdXNlVGFic0NvbnRleHRdID0gY3JlYXRlVGFic0NvbnRleHQ8VGFic0NvbnRleHRWYWx1ZT4oVEFCU19OQU1FKTtcblxudHlwZSBUYWJzRWxlbWVudCA9IFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFByaW1pdGl2ZS5kaXY+O1xudHlwZSBSb3ZpbmdGb2N1c0dyb3VwUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFJvdmluZ0ZvY3VzR3JvdXAuUm9vdD47XG50eXBlIFByaW1pdGl2ZURpdlByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBQcmltaXRpdmUuZGl2PjtcbmludGVyZmFjZSBUYWJzUHJvcHMgZXh0ZW5kcyBQcmltaXRpdmVEaXZQcm9wcyB7XG4gIC8qKiBUaGUgdmFsdWUgZm9yIHRoZSBzZWxlY3RlZCB0YWIsIGlmIGNvbnRyb2xsZWQgKi9cbiAgdmFsdWU/OiBzdHJpbmc7XG4gIC8qKiBUaGUgdmFsdWUgb2YgdGhlIHRhYiB0byBzZWxlY3QgYnkgZGVmYXVsdCwgaWYgdW5jb250cm9sbGVkICovXG4gIGRlZmF1bHRWYWx1ZT86IHN0cmluZztcbiAgLyoqIEEgZnVuY3Rpb24gY2FsbGVkIHdoZW4gYSBuZXcgdGFiIGlzIHNlbGVjdGVkICovXG4gIG9uVmFsdWVDaGFuZ2U/OiAodmFsdWU6IHN0cmluZykgPT4gdm9pZDtcbiAgLyoqXG4gICAqIFRoZSBvcmllbnRhdGlvbiB0aGUgdGFicyBhcmUgbGF5ZWQgb3V0LlxuICAgKiBNYWlubHkgc28gYXJyb3cgbmF2aWdhdGlvbiBpcyBkb25lIGFjY29yZGluZ2x5IChsZWZ0ICYgcmlnaHQgdnMuIHVwICYgZG93bilcbiAgICogQGRlZmF1bHRWYWx1ZSBob3Jpem9udGFsXG4gICAqL1xuICBvcmllbnRhdGlvbj86IFJvdmluZ0ZvY3VzR3JvdXBQcm9wc1snb3JpZW50YXRpb24nXTtcbiAgLyoqXG4gICAqIFRoZSBkaXJlY3Rpb24gb2YgbmF2aWdhdGlvbiBiZXR3ZWVuIHRvb2xiYXIgaXRlbXMuXG4gICAqL1xuICBkaXI/OiBSb3ZpbmdGb2N1c0dyb3VwUHJvcHNbJ2RpciddO1xuICAvKipcbiAgICogV2hldGhlciBhIHRhYiBpcyBhY3RpdmF0ZWQgYXV0b21hdGljYWxseSBvciBtYW51YWxseS5cbiAgICogQGRlZmF1bHRWYWx1ZSBhdXRvbWF0aWNcbiAgICogKi9cbiAgYWN0aXZhdGlvbk1vZGU/OiAnYXV0b21hdGljJyB8ICdtYW51YWwnO1xufVxuXG5jb25zdCBUYWJzID0gUmVhY3QuZm9yd2FyZFJlZjxUYWJzRWxlbWVudCwgVGFic1Byb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxUYWJzUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBfX3Njb3BlVGFicyxcbiAgICAgIHZhbHVlOiB2YWx1ZVByb3AsXG4gICAgICBvblZhbHVlQ2hhbmdlLFxuICAgICAgZGVmYXVsdFZhbHVlLFxuICAgICAgb3JpZW50YXRpb24gPSAnaG9yaXpvbnRhbCcsXG4gICAgICBkaXIsXG4gICAgICBhY3RpdmF0aW9uTW9kZSA9ICdhdXRvbWF0aWMnLFxuICAgICAgLi4udGFic1Byb3BzXG4gICAgfSA9IHByb3BzO1xuICAgIGNvbnN0IGRpcmVjdGlvbiA9IHVzZURpcmVjdGlvbihkaXIpO1xuICAgIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlQ29udHJvbGxhYmxlU3RhdGUoe1xuICAgICAgcHJvcDogdmFsdWVQcm9wLFxuICAgICAgb25DaGFuZ2U6IG9uVmFsdWVDaGFuZ2UsXG4gICAgICBkZWZhdWx0UHJvcDogZGVmYXVsdFZhbHVlLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUYWJzUHJvdmlkZXJcbiAgICAgICAgc2NvcGU9e19fc2NvcGVUYWJzfVxuICAgICAgICBiYXNlSWQ9e3VzZUlkKCl9XG4gICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgb25WYWx1ZUNoYW5nZT17c2V0VmFsdWV9XG4gICAgICAgIG9yaWVudGF0aW9uPXtvcmllbnRhdGlvbn1cbiAgICAgICAgZGlyPXtkaXJlY3Rpb259XG4gICAgICAgIGFjdGl2YXRpb25Nb2RlPXthY3RpdmF0aW9uTW9kZX1cbiAgICAgID5cbiAgICAgICAgPFByaW1pdGl2ZS5kaXZcbiAgICAgICAgICBkaXI9e2RpcmVjdGlvbn1cbiAgICAgICAgICBkYXRhLW9yaWVudGF0aW9uPXtvcmllbnRhdGlvbn1cbiAgICAgICAgICB7Li4udGFic1Byb3BzfVxuICAgICAgICAgIHJlZj17Zm9yd2FyZGVkUmVmfVxuICAgICAgICAvPlxuICAgICAgPC9UYWJzUHJvdmlkZXI+XG4gICAgKTtcbiAgfVxuKTtcblxuVGFicy5kaXNwbGF5TmFtZSA9IFRBQlNfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVGFic0xpc3RcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgVEFCX0xJU1RfTkFNRSA9ICdUYWJzTGlzdCc7XG5cbnR5cGUgVGFic0xpc3RFbGVtZW50ID0gUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgUHJpbWl0aXZlLmRpdj47XG5pbnRlcmZhY2UgVGFic0xpc3RQcm9wcyBleHRlbmRzIFByaW1pdGl2ZURpdlByb3BzIHtcbiAgbG9vcD86IFJvdmluZ0ZvY3VzR3JvdXBQcm9wc1snbG9vcCddO1xufVxuXG5jb25zdCBUYWJzTGlzdCA9IFJlYWN0LmZvcndhcmRSZWY8VGFic0xpc3RFbGVtZW50LCBUYWJzTGlzdFByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxUYWJzTGlzdFByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlVGFicywgbG9vcCA9IHRydWUsIC4uLmxpc3RQcm9wcyB9ID0gcHJvcHM7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZVRhYnNDb250ZXh0KFRBQl9MSVNUX05BTUUsIF9fc2NvcGVUYWJzKTtcbiAgICBjb25zdCByb3ZpbmdGb2N1c0dyb3VwU2NvcGUgPSB1c2VSb3ZpbmdGb2N1c0dyb3VwU2NvcGUoX19zY29wZVRhYnMpO1xuICAgIHJldHVybiAoXG4gICAgICA8Um92aW5nRm9jdXNHcm91cC5Sb290XG4gICAgICAgIGFzQ2hpbGRcbiAgICAgICAgey4uLnJvdmluZ0ZvY3VzR3JvdXBTY29wZX1cbiAgICAgICAgb3JpZW50YXRpb249e2NvbnRleHQub3JpZW50YXRpb259XG4gICAgICAgIGRpcj17Y29udGV4dC5kaXJ9XG4gICAgICAgIGxvb3A9e2xvb3B9XG4gICAgICA+XG4gICAgICAgIDxQcmltaXRpdmUuZGl2XG4gICAgICAgICAgcm9sZT1cInRhYmxpc3RcIlxuICAgICAgICAgIGFyaWEtb3JpZW50YXRpb249e2NvbnRleHQub3JpZW50YXRpb259XG4gICAgICAgICAgey4uLmxpc3RQcm9wc31cbiAgICAgICAgICByZWY9e2ZvcndhcmRlZFJlZn1cbiAgICAgICAgLz5cbiAgICAgIDwvUm92aW5nRm9jdXNHcm91cC5Sb290PlxuICAgICk7XG4gIH1cbik7XG5cblRhYnNMaXN0LmRpc3BsYXlOYW1lID0gVEFCX0xJU1RfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVGFic1RyaWdnZXJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgVFJJR0dFUl9OQU1FID0gJ1RhYnNUcmlnZ2VyJztcblxudHlwZSBUYWJzVHJpZ2dlckVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuYnV0dG9uPjtcbnR5cGUgUHJpbWl0aXZlQnV0dG9uUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFByaW1pdGl2ZS5idXR0b24+O1xuaW50ZXJmYWNlIFRhYnNUcmlnZ2VyUHJvcHMgZXh0ZW5kcyBQcmltaXRpdmVCdXR0b25Qcm9wcyB7XG4gIHZhbHVlOiBzdHJpbmc7XG59XG5cbmNvbnN0IFRhYnNUcmlnZ2VyID0gUmVhY3QuZm9yd2FyZFJlZjxUYWJzVHJpZ2dlckVsZW1lbnQsIFRhYnNUcmlnZ2VyUHJvcHM+KFxuICAocHJvcHM6IFNjb3BlZFByb3BzPFRhYnNUcmlnZ2VyUHJvcHM+LCBmb3J3YXJkZWRSZWYpID0+IHtcbiAgICBjb25zdCB7IF9fc2NvcGVUYWJzLCB2YWx1ZSwgZGlzYWJsZWQgPSBmYWxzZSwgLi4udHJpZ2dlclByb3BzIH0gPSBwcm9wcztcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlVGFic0NvbnRleHQoVFJJR0dFUl9OQU1FLCBfX3Njb3BlVGFicyk7XG4gICAgY29uc3Qgcm92aW5nRm9jdXNHcm91cFNjb3BlID0gdXNlUm92aW5nRm9jdXNHcm91cFNjb3BlKF9fc2NvcGVUYWJzKTtcbiAgICBjb25zdCB0cmlnZ2VySWQgPSBtYWtlVHJpZ2dlcklkKGNvbnRleHQuYmFzZUlkLCB2YWx1ZSk7XG4gICAgY29uc3QgY29udGVudElkID0gbWFrZUNvbnRlbnRJZChjb250ZXh0LmJhc2VJZCwgdmFsdWUpO1xuICAgIGNvbnN0IGlzU2VsZWN0ZWQgPSB2YWx1ZSA9PT0gY29udGV4dC52YWx1ZTtcbiAgICByZXR1cm4gKFxuICAgICAgPFJvdmluZ0ZvY3VzR3JvdXAuSXRlbVxuICAgICAgICBhc0NoaWxkXG4gICAgICAgIHsuLi5yb3ZpbmdGb2N1c0dyb3VwU2NvcGV9XG4gICAgICAgIGZvY3VzYWJsZT17IWRpc2FibGVkfVxuICAgICAgICBhY3RpdmU9e2lzU2VsZWN0ZWR9XG4gICAgICA+XG4gICAgICAgIDxQcmltaXRpdmUuYnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgcm9sZT1cInRhYlwiXG4gICAgICAgICAgYXJpYS1zZWxlY3RlZD17aXNTZWxlY3RlZH1cbiAgICAgICAgICBhcmlhLWNvbnRyb2xzPXtjb250ZW50SWR9XG4gICAgICAgICAgZGF0YS1zdGF0ZT17aXNTZWxlY3RlZCA/ICdhY3RpdmUnIDogJ2luYWN0aXZlJ31cbiAgICAgICAgICBkYXRhLWRpc2FibGVkPXtkaXNhYmxlZCA/ICcnIDogdW5kZWZpbmVkfVxuICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICBpZD17dHJpZ2dlcklkfVxuICAgICAgICAgIHsuLi50cmlnZ2VyUHJvcHN9XG4gICAgICAgICAgcmVmPXtmb3J3YXJkZWRSZWZ9XG4gICAgICAgICAgb25Nb3VzZURvd249e2NvbXBvc2VFdmVudEhhbmRsZXJzKHByb3BzLm9uTW91c2VEb3duLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIC8vIG9ubHkgY2FsbCBoYW5kbGVyIGlmIGl0J3MgdGhlIGxlZnQgYnV0dG9uIChtb3VzZWRvd24gZ2V0cyB0cmlnZ2VyZWQgYnkgYWxsIG1vdXNlIGJ1dHRvbnMpXG4gICAgICAgICAgICAvLyBidXQgbm90IHdoZW4gdGhlIGNvbnRyb2wga2V5IGlzIHByZXNzZWQgKGF2b2lkaW5nIE1hY09TIHJpZ2h0IGNsaWNrKVxuICAgICAgICAgICAgaWYgKCFkaXNhYmxlZCAmJiBldmVudC5idXR0b24gPT09IDAgJiYgZXZlbnQuY3RybEtleSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgY29udGV4dC5vblZhbHVlQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIHByZXZlbnQgZm9jdXMgdG8gYXZvaWQgYWNjaWRlbnRhbCBhY3RpdmF0aW9uXG4gICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSl9XG4gICAgICAgICAgb25LZXlEb3duPXtjb21wb3NlRXZlbnRIYW5kbGVycyhwcm9wcy5vbktleURvd24sIChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKFsnICcsICdFbnRlciddLmluY2x1ZGVzKGV2ZW50LmtleSkpIGNvbnRleHQub25WYWx1ZUNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgfSl9XG4gICAgICAgICAgb25Gb2N1cz17Y29tcG9zZUV2ZW50SGFuZGxlcnMocHJvcHMub25Gb2N1cywgKCkgPT4ge1xuICAgICAgICAgICAgLy8gaGFuZGxlIFwiYXV0b21hdGljXCIgYWN0aXZhdGlvbiBpZiBuZWNlc3NhcnlcbiAgICAgICAgICAgIC8vIGllLiBhY3RpdmF0ZSB0YWIgZm9sbG93aW5nIGZvY3VzXG4gICAgICAgICAgICBjb25zdCBpc0F1dG9tYXRpY0FjdGl2YXRpb24gPSBjb250ZXh0LmFjdGl2YXRpb25Nb2RlICE9PSAnbWFudWFsJztcbiAgICAgICAgICAgIGlmICghaXNTZWxlY3RlZCAmJiAhZGlzYWJsZWQgJiYgaXNBdXRvbWF0aWNBY3RpdmF0aW9uKSB7XG4gICAgICAgICAgICAgIGNvbnRleHQub25WYWx1ZUNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSl9XG4gICAgICAgIC8+XG4gICAgICA8L1JvdmluZ0ZvY3VzR3JvdXAuSXRlbT5cbiAgICApO1xuICB9XG4pO1xuXG5UYWJzVHJpZ2dlci5kaXNwbGF5TmFtZSA9IFRSSUdHRVJfTkFNRTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogVGFic0NvbnRlbnRcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuY29uc3QgQ09OVEVOVF9OQU1FID0gJ1RhYnNDb250ZW50JztcblxudHlwZSBUYWJzQ29udGVudEVsZW1lbnQgPSBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBQcmltaXRpdmUuZGl2PjtcbmludGVyZmFjZSBUYWJzQ29udGVudFByb3BzIGV4dGVuZHMgUHJpbWl0aXZlRGl2UHJvcHMge1xuICB2YWx1ZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBVc2VkIHRvIGZvcmNlIG1vdW50aW5nIHdoZW4gbW9yZSBjb250cm9sIGlzIG5lZWRlZC4gVXNlZnVsIHdoZW5cbiAgICogY29udHJvbGxpbmcgYW5pbWF0aW9uIHdpdGggUmVhY3QgYW5pbWF0aW9uIGxpYnJhcmllcy5cbiAgICovXG4gIGZvcmNlTW91bnQ/OiB0cnVlO1xufVxuXG5jb25zdCBUYWJzQ29udGVudCA9IFJlYWN0LmZvcndhcmRSZWY8VGFic0NvbnRlbnRFbGVtZW50LCBUYWJzQ29udGVudFByb3BzPihcbiAgKHByb3BzOiBTY29wZWRQcm9wczxUYWJzQ29udGVudFByb3BzPiwgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgeyBfX3Njb3BlVGFicywgdmFsdWUsIGZvcmNlTW91bnQsIGNoaWxkcmVuLCAuLi5jb250ZW50UHJvcHMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNvbnRleHQgPSB1c2VUYWJzQ29udGV4dChDT05URU5UX05BTUUsIF9fc2NvcGVUYWJzKTtcbiAgICBjb25zdCB0cmlnZ2VySWQgPSBtYWtlVHJpZ2dlcklkKGNvbnRleHQuYmFzZUlkLCB2YWx1ZSk7XG4gICAgY29uc3QgY29udGVudElkID0gbWFrZUNvbnRlbnRJZChjb250ZXh0LmJhc2VJZCwgdmFsdWUpO1xuICAgIGNvbnN0IGlzU2VsZWN0ZWQgPSB2YWx1ZSA9PT0gY29udGV4dC52YWx1ZTtcbiAgICBjb25zdCBpc01vdW50QW5pbWF0aW9uUHJldmVudGVkUmVmID0gUmVhY3QudXNlUmVmKGlzU2VsZWN0ZWQpO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IHJBRiA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiAoaXNNb3VudEFuaW1hdGlvblByZXZlbnRlZFJlZi5jdXJyZW50ID0gZmFsc2UpKTtcbiAgICAgIHJldHVybiAoKSA9PiBjYW5jZWxBbmltYXRpb25GcmFtZShyQUYpO1xuICAgIH0sIFtdKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8UHJlc2VuY2UgcHJlc2VudD17Zm9yY2VNb3VudCB8fCBpc1NlbGVjdGVkfT5cbiAgICAgICAgeyh7IHByZXNlbnQgfSkgPT4gKFxuICAgICAgICAgIDxQcmltaXRpdmUuZGl2XG4gICAgICAgICAgICBkYXRhLXN0YXRlPXtpc1NlbGVjdGVkID8gJ2FjdGl2ZScgOiAnaW5hY3RpdmUnfVxuICAgICAgICAgICAgZGF0YS1vcmllbnRhdGlvbj17Y29udGV4dC5vcmllbnRhdGlvbn1cbiAgICAgICAgICAgIHJvbGU9XCJ0YWJwYW5lbFwiXG4gICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9e3RyaWdnZXJJZH1cbiAgICAgICAgICAgIGhpZGRlbj17IXByZXNlbnR9XG4gICAgICAgICAgICBpZD17Y29udGVudElkfVxuICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICB7Li4uY29udGVudFByb3BzfVxuICAgICAgICAgICAgcmVmPXtmb3J3YXJkZWRSZWZ9XG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAuLi5wcm9wcy5zdHlsZSxcbiAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb246IGlzTW91bnRBbmltYXRpb25QcmV2ZW50ZWRSZWYuY3VycmVudCA/ICcwcycgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtwcmVzZW50ICYmIGNoaWxkcmVufVxuICAgICAgICAgIDwvUHJpbWl0aXZlLmRpdj5cbiAgICAgICAgKX1cbiAgICAgIDwvUHJlc2VuY2U+XG4gICAgKTtcbiAgfVxuKTtcblxuVGFic0NvbnRlbnQuZGlzcGxheU5hbWUgPSBDT05URU5UX05BTUU7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuZnVuY3Rpb24gbWFrZVRyaWdnZXJJZChiYXNlSWQ6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xuICByZXR1cm4gYCR7YmFzZUlkfS10cmlnZ2VyLSR7dmFsdWV9YDtcbn1cblxuZnVuY3Rpb24gbWFrZUNvbnRlbnRJZChiYXNlSWQ6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xuICByZXR1cm4gYCR7YmFzZUlkfS1jb250ZW50LSR7dmFsdWV9YDtcbn1cblxuY29uc3QgUm9vdCA9IFRhYnM7XG5jb25zdCBMaXN0ID0gVGFic0xpc3Q7XG5jb25zdCBUcmlnZ2VyID0gVGFic1RyaWdnZXI7XG5jb25zdCBDb250ZW50ID0gVGFic0NvbnRlbnQ7XG5cbmV4cG9ydCB7XG4gIGNyZWF0ZVRhYnNTY29wZSxcbiAgLy9cbiAgVGFicyxcbiAgVGFic0xpc3QsXG4gIFRhYnNUcmlnZ2VyLFxuICBUYWJzQ29udGVudCxcbiAgLy9cbiAgUm9vdCxcbiAgTGlzdCxcbiAgVHJpZ2dlcixcbiAgQ29udGVudCxcbn07XG5leHBvcnQgdHlwZSB7IFRhYnNQcm9wcywgVGFic0xpc3RQcm9wcywgVGFic1RyaWdnZXJQcm9wcywgVGFic0NvbnRlbnRQcm9wcyB9O1xuIl0sIm5hbWVzIjpbIlJlYWN0IiwiY29tcG9zZUV2ZW50SGFuZGxlcnMiLCJjcmVhdGVDb250ZXh0U2NvcGUiLCJjcmVhdGVSb3ZpbmdGb2N1c0dyb3VwU2NvcGUiLCJQcmVzZW5jZSIsIlByaW1pdGl2ZSIsIlJvdmluZ0ZvY3VzR3JvdXAiLCJ1c2VEaXJlY3Rpb24iLCJ1c2VDb250cm9sbGFibGVTdGF0ZSIsInVzZUlkIiwianN4IiwiVEFCU19OQU1FIiwiY3JlYXRlVGFic0NvbnRleHQiLCJjcmVhdGVUYWJzU2NvcGUiLCJ1c2VSb3ZpbmdGb2N1c0dyb3VwU2NvcGUiLCJUYWJzUHJvdmlkZXIiLCJ1c2VUYWJzQ29udGV4dCIsIlRhYnMiLCJmb3J3YXJkUmVmIiwicHJvcHMiLCJmb3J3YXJkZWRSZWYiLCJfX3Njb3BlVGFicyIsInZhbHVlIiwidmFsdWVQcm9wIiwib25WYWx1ZUNoYW5nZSIsImRlZmF1bHRWYWx1ZSIsIm9yaWVudGF0aW9uIiwiZGlyIiwiYWN0aXZhdGlvbk1vZGUiLCJ0YWJzUHJvcHMiLCJkaXJlY3Rpb24iLCJzZXRWYWx1ZSIsInByb3AiLCJvbkNoYW5nZSIsImRlZmF1bHRQcm9wIiwic2NvcGUiLCJiYXNlSWQiLCJjaGlsZHJlbiIsImRpdiIsInJlZiIsImRpc3BsYXlOYW1lIiwiVEFCX0xJU1RfTkFNRSIsIlRhYnNMaXN0IiwibG9vcCIsImxpc3RQcm9wcyIsImNvbnRleHQiLCJyb3ZpbmdGb2N1c0dyb3VwU2NvcGUiLCJSb290IiwiYXNDaGlsZCIsInJvbGUiLCJUUklHR0VSX05BTUUiLCJUYWJzVHJpZ2dlciIsImRpc2FibGVkIiwidHJpZ2dlclByb3BzIiwidHJpZ2dlcklkIiwibWFrZVRyaWdnZXJJZCIsImNvbnRlbnRJZCIsIm1ha2VDb250ZW50SWQiLCJpc1NlbGVjdGVkIiwiSXRlbSIsImZvY3VzYWJsZSIsImFjdGl2ZSIsImJ1dHRvbiIsInR5cGUiLCJpZCIsIm9uTW91c2VEb3duIiwiZXZlbnQiLCJjdHJsS2V5IiwicHJldmVudERlZmF1bHQiLCJvbktleURvd24iLCJpbmNsdWRlcyIsImtleSIsIm9uRm9jdXMiLCJpc0F1dG9tYXRpY0FjdGl2YXRpb24iLCJDT05URU5UX05BTUUiLCJUYWJzQ29udGVudCIsImZvcmNlTW91bnQiLCJjb250ZW50UHJvcHMiLCJpc01vdW50QW5pbWF0aW9uUHJldmVudGVkUmVmIiwidXNlUmVmIiwidXNlRWZmZWN0IiwickFGIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiY3VycmVudCIsImNhbmNlbEFuaW1hdGlvbkZyYW1lIiwicHJlc2VudCIsImhpZGRlbiIsInRhYkluZGV4Iiwic3R5bGUiLCJhbmltYXRpb25EdXJhdGlvbiIsIkxpc3QiLCJUcmlnZ2VyIiwiQ29udGVudCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/react-tabs/dist/index.mjs\n"); /***/ }), /***/ "(ssr)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs": /*!**********************************************************************!*\ !*** ./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs ***! \**********************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useCallbackRef: () => (/* binding */ useCallbackRef)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n// packages/react/use-callback-ref/src/useCallbackRef.tsx\n\nfunction useCallbackRef(callback) {\n const callbackRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(callback);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\n callbackRef.current = callback;\n });\n return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXVzZS1jYWxsYmFjay1yZWYvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUMrQjtBQUMvQjtBQUNBLHNCQUFzQix5Q0FBWTtBQUNsQyxFQUFFLDRDQUFlO0FBQ2pCO0FBQ0EsR0FBRztBQUNILFNBQVMsMENBQWE7QUFDdEI7QUFHRTtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbWFtYWQtYXBwLy4vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC11c2UtY2FsbGJhY2stcmVmL2Rpc3QvaW5kZXgubWpzPzQ5MzYiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFja2FnZXMvcmVhY3QvdXNlLWNhbGxiYWNrLXJlZi9zcmMvdXNlQ2FsbGJhY2tSZWYudHN4XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmZ1bmN0aW9uIHVzZUNhbGxiYWNrUmVmKGNhbGxiYWNrKSB7XG4gIGNvbnN0IGNhbGxiYWNrUmVmID0gUmVhY3QudXNlUmVmKGNhbGxiYWNrKTtcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBjYWxsYmFja1JlZi5jdXJyZW50ID0gY2FsbGJhY2s7XG4gIH0pO1xuICByZXR1cm4gUmVhY3QudXNlTWVtbygoKSA9PiAoLi4uYXJncykgPT4gY2FsbGJhY2tSZWYuY3VycmVudD8uKC4uLmFyZ3MpLCBbXSk7XG59XG5leHBvcnQge1xuICB1c2VDYWxsYmFja1JlZlxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\n"); /***/ }), /***/ "(ssr)/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs": /*!****************************************************************************!*\ !*** ./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs ***! \****************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useControllableState: () => (/* binding */ useControllableState)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(ssr)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n// packages/react/use-controllable-state/src/useControllableState.tsx\n\n\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n }\n}) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_1__.useCallbackRef)(onChange);\n const setValue = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue;\n const value2 = typeof nextValue === \"function\" ? setter(prop) : nextValue;\n if (value2 !== prop) handleChange(value2);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const uncontrolledState = react__WEBPACK_IMPORTED_MODULE_0__.useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(value);\n const handleChange = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_1__.useCallbackRef)(onChange);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n return uncontrolledState;\n}\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXVzZS1jb250cm9sbGFibGUtc3RhdGUvZGlzdC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDK0I7QUFDbUM7QUFDbEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCx5RUFBeUUsdUJBQXVCO0FBQ2hHO0FBQ0E7QUFDQSx1QkFBdUIsZ0ZBQWM7QUFDckMsbUJBQW1CLDhDQUFpQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsNEJBQTRCLDJDQUFjO0FBQzFDO0FBQ0EsdUJBQXVCLHlDQUFZO0FBQ25DLHVCQUF1QixnRkFBYztBQUNyQyxFQUFFLDRDQUFlO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFHRTtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbWFtYWQtYXBwLy4vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC11c2UtY29udHJvbGxhYmxlLXN0YXRlL2Rpc3QvaW5kZXgubWpzPzdhNGUiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFja2FnZXMvcmVhY3QvdXNlLWNvbnRyb2xsYWJsZS1zdGF0ZS9zcmMvdXNlQ29udHJvbGxhYmxlU3RhdGUudHN4XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZUNhbGxiYWNrUmVmIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC11c2UtY2FsbGJhY2stcmVmXCI7XG5mdW5jdGlvbiB1c2VDb250cm9sbGFibGVTdGF0ZSh7XG4gIHByb3AsXG4gIGRlZmF1bHRQcm9wLFxuICBvbkNoYW5nZSA9ICgpID0+IHtcbiAgfVxufSkge1xuICBjb25zdCBbdW5jb250cm9sbGVkUHJvcCwgc2V0VW5jb250cm9sbGVkUHJvcF0gPSB1c2VVbmNvbnRyb2xsZWRTdGF0ZSh7IGRlZmF1bHRQcm9wLCBvbkNoYW5nZSB9KTtcbiAgY29uc3QgaXNDb250cm9sbGVkID0gcHJvcCAhPT0gdm9pZCAwO1xuICBjb25zdCB2YWx1ZSA9IGlzQ29udHJvbGxlZCA/IHByb3AgOiB1bmNvbnRyb2xsZWRQcm9wO1xuICBjb25zdCBoYW5kbGVDaGFuZ2UgPSB1c2VDYWxsYmFja1JlZihvbkNoYW5nZSk7XG4gIGNvbnN0IHNldFZhbHVlID0gUmVhY3QudXNlQ2FsbGJhY2soXG4gICAgKG5leHRWYWx1ZSkgPT4ge1xuICAgICAgaWYgKGlzQ29udHJvbGxlZCkge1xuICAgICAgICBjb25zdCBzZXR0ZXIgPSBuZXh0VmFsdWU7XG4gICAgICAgIGNvbnN0IHZhbHVlMiA9IHR5cGVvZiBuZXh0VmFsdWUgPT09IFwiZnVuY3Rpb25cIiA/IHNldHRlcihwcm9wKSA6IG5leHRWYWx1ZTtcbiAgICAgICAgaWYgKHZhbHVlMiAhPT0gcHJvcCkgaGFuZGxlQ2hhbmdlKHZhbHVlMik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRVbmNvbnRyb2xsZWRQcm9wKG5leHRWYWx1ZSk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbaXNDb250cm9sbGVkLCBwcm9wLCBzZXRVbmNvbnRyb2xsZWRQcm9wLCBoYW5kbGVDaGFuZ2VdXG4gICk7XG4gIHJldHVybiBbdmFsdWUsIHNldFZhbHVlXTtcbn1cbmZ1bmN0aW9uIHVzZVVuY29udHJvbGxlZFN0YXRlKHtcbiAgZGVmYXVsdFByb3AsXG4gIG9uQ2hhbmdlXG59KSB7XG4gIGNvbnN0IHVuY29udHJvbGxlZFN0YXRlID0gUmVhY3QudXNlU3RhdGUoZGVmYXVsdFByb3ApO1xuICBjb25zdCBbdmFsdWVdID0gdW5jb250cm9sbGVkU3RhdGU7XG4gIGNvbnN0IHByZXZWYWx1ZVJlZiA9IFJlYWN0LnVzZVJlZih2YWx1ZSk7XG4gIGNvbnN0IGhhbmRsZUNoYW5nZSA9IHVzZUNhbGxiYWNrUmVmKG9uQ2hhbmdlKTtcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocHJldlZhbHVlUmVmLmN1cnJlbnQgIT09IHZhbHVlKSB7XG4gICAgICBoYW5kbGVDaGFuZ2UodmFsdWUpO1xuICAgICAgcHJldlZhbHVlUmVmLmN1cnJlbnQgPSB2YWx1ZTtcbiAgICB9XG4gIH0sIFt2YWx1ZSwgcHJldlZhbHVlUmVmLCBoYW5kbGVDaGFuZ2VdKTtcbiAgcmV0dXJuIHVuY29udHJvbGxlZFN0YXRlO1xufVxuZXhwb3J0IHtcbiAgdXNlQ29udHJvbGxhYmxlU3RhdGVcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs\n"); /***/ }), /***/ "(ssr)/./node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs": /*!************************************************************************!*\ !*** ./node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs ***! \************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useEscapeKeydown: () => (/* binding */ useEscapeKeydown)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var _radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @radix-ui/react-use-callback-ref */ \"(ssr)/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs\");\n// packages/react/use-escape-keydown/src/useEscapeKeydown.tsx\n\n\nfunction useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis?.document) {\n const onEscapeKeyDown = (0,_radix_ui_react_use_callback_ref__WEBPACK_IMPORTED_MODULE_1__.useCallbackRef)(onEscapeKeyDownProp);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\n const handleKeyDown = (event) => {\n if (event.key === \"Escape\") {\n onEscapeKeyDown(event);\n }\n };\n ownerDocument.addEventListener(\"keydown\", handleKeyDown, { capture: true });\n return () => ownerDocument.removeEventListener(\"keydown\", handleKeyDown, { capture: true });\n }, [onEscapeKeyDown, ownerDocument]);\n}\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXVzZS1lc2NhcGUta2V5ZG93bi9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUMrQjtBQUNtQztBQUNsRTtBQUNBLDBCQUEwQixnRkFBYztBQUN4QyxFQUFFLDRDQUFlO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrREFBK0QsZUFBZTtBQUM5RSwrRUFBK0UsZUFBZTtBQUM5RixHQUFHO0FBQ0g7QUFHRTtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbWFtYWQtYXBwLy4vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC11c2UtZXNjYXBlLWtleWRvd24vZGlzdC9pbmRleC5tanM/NzQ0NiJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBwYWNrYWdlcy9yZWFjdC91c2UtZXNjYXBlLWtleWRvd24vc3JjL3VzZUVzY2FwZUtleWRvd24udHN4XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZUNhbGxiYWNrUmVmIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC11c2UtY2FsbGJhY2stcmVmXCI7XG5mdW5jdGlvbiB1c2VFc2NhcGVLZXlkb3duKG9uRXNjYXBlS2V5RG93blByb3AsIG93bmVyRG9jdW1lbnQgPSBnbG9iYWxUaGlzPy5kb2N1bWVudCkge1xuICBjb25zdCBvbkVzY2FwZUtleURvd24gPSB1c2VDYWxsYmFja1JlZihvbkVzY2FwZUtleURvd25Qcm9wKTtcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVLZXlEb3duID0gKGV2ZW50KSA9PiB7XG4gICAgICBpZiAoZXZlbnQua2V5ID09PSBcIkVzY2FwZVwiKSB7XG4gICAgICAgIG9uRXNjYXBlS2V5RG93bihldmVudCk7XG4gICAgICB9XG4gICAgfTtcbiAgICBvd25lckRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIGhhbmRsZUtleURvd24sIHsgY2FwdHVyZTogdHJ1ZSB9KTtcbiAgICByZXR1cm4gKCkgPT4gb3duZXJEb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCBoYW5kbGVLZXlEb3duLCB7IGNhcHR1cmU6IHRydWUgfSk7XG4gIH0sIFtvbkVzY2FwZUtleURvd24sIG93bmVyRG9jdW1lbnRdKTtcbn1cbmV4cG9ydCB7XG4gIHVzZUVzY2FwZUtleWRvd25cbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs\n"); /***/ }), /***/ "(ssr)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs": /*!***********************************************************************!*\ !*** ./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs ***! \***********************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useLayoutEffect: () => (/* binding */ useLayoutEffect2)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n// packages/react/use-layout-effect/src/useLayoutEffect.tsx\n\nvar useLayoutEffect2 = Boolean(globalThis?.document) ? react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect : () => {\n};\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXVzZS1sYXlvdXQtZWZmZWN0L2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDK0I7QUFDL0IsdURBQXVELGtEQUFxQjtBQUM1RTtBQUdFO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9tYW1hZC1hcHAvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXVzZS1sYXlvdXQtZWZmZWN0L2Rpc3QvaW5kZXgubWpzPzUzY2QiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFja2FnZXMvcmVhY3QvdXNlLWxheW91dC1lZmZlY3Qvc3JjL3VzZUxheW91dEVmZmVjdC50c3hcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xudmFyIHVzZUxheW91dEVmZmVjdDIgPSBCb29sZWFuKGdsb2JhbFRoaXM/LmRvY3VtZW50KSA/IFJlYWN0LnVzZUxheW91dEVmZmVjdCA6ICgpID0+IHtcbn07XG5leHBvcnQge1xuICB1c2VMYXlvdXRFZmZlY3QyIGFzIHVzZUxheW91dEVmZmVjdFxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\n"); /***/ }), /***/ "(ssr)/./node_modules/@radix-ui/react-use-previous/dist/index.mjs": /*!******************************************************************!*\ !*** ./node_modules/@radix-ui/react-use-previous/dist/index.mjs ***! \******************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ usePrevious: () => (/* binding */ usePrevious)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n// packages/react/use-previous/src/usePrevious.tsx\n\nfunction usePrevious(value) {\n const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef({ value, previous: value });\n return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXVzZS1wcmV2aW91cy9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQytCO0FBQy9CO0FBQ0EsY0FBYyx5Q0FBWSxHQUFHLHdCQUF3QjtBQUNyRCxTQUFTLDBDQUFhO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFHRTtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbWFtYWQtYXBwLy4vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC11c2UtcHJldmlvdXMvZGlzdC9pbmRleC5tanM/ZmQ3NyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBwYWNrYWdlcy9yZWFjdC91c2UtcHJldmlvdXMvc3JjL3VzZVByZXZpb3VzLnRzeFxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5mdW5jdGlvbiB1c2VQcmV2aW91cyh2YWx1ZSkge1xuICBjb25zdCByZWYgPSBSZWFjdC51c2VSZWYoeyB2YWx1ZSwgcHJldmlvdXM6IHZhbHVlIH0pO1xuICByZXR1cm4gUmVhY3QudXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKHJlZi5jdXJyZW50LnZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgcmVmLmN1cnJlbnQucHJldmlvdXMgPSByZWYuY3VycmVudC52YWx1ZTtcbiAgICAgIHJlZi5jdXJyZW50LnZhbHVlID0gdmFsdWU7XG4gICAgfVxuICAgIHJldHVybiByZWYuY3VycmVudC5wcmV2aW91cztcbiAgfSwgW3ZhbHVlXSk7XG59XG5leHBvcnQge1xuICB1c2VQcmV2aW91c1xufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/react-use-previous/dist/index.mjs\n"); /***/ }), /***/ "(ssr)/./node_modules/@radix-ui/react-use-size/dist/index.mjs": /*!**************************************************************!*\ !*** ./node_modules/@radix-ui/react-use-size/dist/index.mjs ***! \**************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useSize: () => (/* binding */ useSize)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var _radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @radix-ui/react-use-layout-effect */ \"(ssr)/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs\");\n// packages/react/use-size/src/useSize.tsx\n\n\nfunction useSize(element) {\n const [size, setSize] = react__WEBPACK_IMPORTED_MODULE_0__.useState(void 0);\n (0,_radix_ui_react_use_layout_effect__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect)(() => {\n if (element) {\n setSize({ width: element.offsetWidth, height: element.offsetHeight });\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries)) {\n return;\n }\n if (!entries.length) {\n return;\n }\n const entry = entries[0];\n let width;\n let height;\n if (\"borderBoxSize\" in entry) {\n const borderSizeEntry = entry[\"borderBoxSize\"];\n const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n width = borderSize[\"inlineSize\"];\n height = borderSize[\"blockSize\"];\n } else {\n width = element.offsetWidth;\n height = element.offsetHeight;\n }\n setSize({ width, height });\n });\n resizeObserver.observe(element, { box: \"border-box\" });\n return () => resizeObserver.unobserve(element);\n } else {\n setSize(void 0);\n }\n }, [element]);\n return size;\n}\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXVzZS1zaXplL2Rpc3QvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQytCO0FBQ3FDO0FBQ3BFO0FBQ0EsMEJBQTBCLDJDQUFjO0FBQ3hDLEVBQUUsa0ZBQWU7QUFDakI7QUFDQSxnQkFBZ0IsMERBQTBEO0FBQzFFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsZUFBZTtBQUNqQyxPQUFPO0FBQ1Asd0NBQXdDLG1CQUFtQjtBQUMzRDtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFHRTtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbWFtYWQtYXBwLy4vbm9kZV9tb2R1bGVzL0ByYWRpeC11aS9yZWFjdC11c2Utc2l6ZS9kaXN0L2luZGV4Lm1qcz82NGZkIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHBhY2thZ2VzL3JlYWN0L3VzZS1zaXplL3NyYy91c2VTaXplLnRzeFxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VMYXlvdXRFZmZlY3QgfSBmcm9tIFwiQHJhZGl4LXVpL3JlYWN0LXVzZS1sYXlvdXQtZWZmZWN0XCI7XG5mdW5jdGlvbiB1c2VTaXplKGVsZW1lbnQpIHtcbiAgY29uc3QgW3NpemUsIHNldFNpemVdID0gUmVhY3QudXNlU3RhdGUodm9pZCAwKTtcbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZWxlbWVudCkge1xuICAgICAgc2V0U2l6ZSh7IHdpZHRoOiBlbGVtZW50Lm9mZnNldFdpZHRoLCBoZWlnaHQ6IGVsZW1lbnQub2Zmc2V0SGVpZ2h0IH0pO1xuICAgICAgY29uc3QgcmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKGVudHJpZXMpID0+IHtcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGVudHJpZXMpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghZW50cmllcy5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZW50cnkgPSBlbnRyaWVzWzBdO1xuICAgICAgICBsZXQgd2lkdGg7XG4gICAgICAgIGxldCBoZWlnaHQ7XG4gICAgICAgIGlmIChcImJvcmRlckJveFNpemVcIiBpbiBlbnRyeSkge1xuICAgICAgICAgIGNvbnN0IGJvcmRlclNpemVFbnRyeSA9IGVudHJ5W1wiYm9yZGVyQm94U2l6ZVwiXTtcbiAgICAgICAgICBjb25zdCBib3JkZXJTaXplID0gQXJyYXkuaXNBcnJheShib3JkZXJTaXplRW50cnkpID8gYm9yZGVyU2l6ZUVudHJ5WzBdIDogYm9yZGVyU2l6ZUVudHJ5O1xuICAgICAgICAgIHdpZHRoID0gYm9yZGVyU2l6ZVtcImlubGluZVNpemVcIl07XG4gICAgICAgICAgaGVpZ2h0ID0gYm9yZGVyU2l6ZVtcImJsb2NrU2l6ZVwiXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB3aWR0aCA9IGVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICAgICAgaGVpZ2h0ID0gZWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgc2V0U2l6ZSh7IHdpZHRoLCBoZWlnaHQgfSk7XG4gICAgICB9KTtcbiAgICAgIHJlc2l6ZU9ic2VydmVyLm9ic2VydmUoZWxlbWVudCwgeyBib3g6IFwiYm9yZGVyLWJveFwiIH0pO1xuICAgICAgcmV0dXJuICgpID0+IHJlc2l6ZU9ic2VydmVyLnVub2JzZXJ2ZShlbGVtZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0U2l6ZSh2b2lkIDApO1xuICAgIH1cbiAgfSwgW2VsZW1lbnRdKTtcbiAgcmV0dXJuIHNpemU7XG59XG5leHBvcnQge1xuICB1c2VTaXplXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/react-use-size/dist/index.mjs\n"); /***/ }), /***/ "(ssr)/./node_modules/@radix-ui/react-visually-hidden/dist/index.mjs": /*!*********************************************************************!*\ !*** ./node_modules/@radix-ui/react-visually-hidden/dist/index.mjs ***! \*********************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Root: () => (/* binding */ Root),\n/* harmony export */ VisuallyHidden: () => (/* binding */ VisuallyHidden)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @radix-ui/react-primitive */ \"(ssr)/./node_modules/@radix-ui/react-primitive/dist/index.mjs\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\n// packages/react/visually-hidden/src/VisuallyHidden.tsx\n\n\n\nvar NAME = \"VisuallyHidden\";\nvar VisuallyHidden = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(\n (props, forwardedRef) => {\n return /* @__PURE__ */ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(\n _radix_ui_react_primitive__WEBPACK_IMPORTED_MODULE_2__.Primitive.span,\n {\n ...props,\n ref: forwardedRef,\n style: {\n // See: https://github.com/twbs/bootstrap/blob/main/scss/mixins/_visually-hidden.scss\n position: \"absolute\",\n border: 0,\n width: 1,\n height: 1,\n padding: 0,\n margin: -1,\n overflow: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n whiteSpace: \"nowrap\",\n wordWrap: \"normal\",\n ...props.style\n }\n }\n );\n }\n);\nVisuallyHidden.displayName = NAME;\nvar Root = VisuallyHidden;\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvQHJhZGl4LXVpL3JlYWN0LXZpc3VhbGx5LWhpZGRlbi9kaXN0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBO0FBQytCO0FBQ3VCO0FBQ2Q7QUFDeEM7QUFDQSxxQkFBcUIsNkNBQWdCO0FBQ3JDO0FBQ0EsMkJBQTJCLHNEQUFHO0FBQzlCLE1BQU0sZ0VBQVM7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUU7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL21hbWFkLWFwcC8uL25vZGVfbW9kdWxlcy9AcmFkaXgtdWkvcmVhY3QtdmlzdWFsbHktaGlkZGVuL2Rpc3QvaW5kZXgubWpzPzg5N2MiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFja2FnZXMvcmVhY3QvdmlzdWFsbHktaGlkZGVuL3NyYy9WaXN1YWxseUhpZGRlbi50c3hcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgUHJpbWl0aXZlIH0gZnJvbSBcIkByYWRpeC11aS9yZWFjdC1wcmltaXRpdmVcIjtcbmltcG9ydCB7IGpzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xudmFyIE5BTUUgPSBcIlZpc3VhbGx5SGlkZGVuXCI7XG52YXIgVmlzdWFsbHlIaWRkZW4gPSBSZWFjdC5mb3J3YXJkUmVmKFxuICAocHJvcHMsIGZvcndhcmRlZFJlZikgPT4ge1xuICAgIHJldHVybiAvKiBAX19QVVJFX18gKi8ganN4KFxuICAgICAgUHJpbWl0aXZlLnNwYW4sXG4gICAgICB7XG4gICAgICAgIC4uLnByb3BzLFxuICAgICAgICByZWY6IGZvcndhcmRlZFJlZixcbiAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAvLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21haW4vc2Nzcy9taXhpbnMvX3Zpc3VhbGx5LWhpZGRlbi5zY3NzXG4gICAgICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgICAgICBib3JkZXI6IDAsXG4gICAgICAgICAgd2lkdGg6IDEsXG4gICAgICAgICAgaGVpZ2h0OiAxLFxuICAgICAgICAgIHBhZGRpbmc6IDAsXG4gICAgICAgICAgbWFyZ2luOiAtMSxcbiAgICAgICAgICBvdmVyZmxvdzogXCJoaWRkZW5cIixcbiAgICAgICAgICBjbGlwOiBcInJlY3QoMCwgMCwgMCwgMClcIixcbiAgICAgICAgICB3aGl0ZVNwYWNlOiBcIm5vd3JhcFwiLFxuICAgICAgICAgIHdvcmRXcmFwOiBcIm5vcm1hbFwiLFxuICAgICAgICAgIC4uLnByb3BzLnN0eWxlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApO1xuICB9XG4pO1xuVmlzdWFsbHlIaWRkZW4uZGlzcGxheU5hbWUgPSBOQU1FO1xudmFyIFJvb3QgPSBWaXN1YWxseUhpZGRlbjtcbmV4cG9ydCB7XG4gIFJvb3QsXG4gIFZpc3VhbGx5SGlkZGVuXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/@radix-ui/react-visually-hidden/dist/index.mjs\n"); /***/ }) }; ;