UNPKG

matrix-react-sdk

Version:
115 lines (112 loc) 24.1 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _react = _interopRequireDefault(require("react")); var _classnames = _interopRequireDefault(require("classnames")); var _overflowHorizontal = _interopRequireDefault(require("@vector-im/compound-design-tokens/assets/web/icons/overflow-horizontal")); var _languageHandler = require("../../../languageHandler"); var _ContextMenu = _interopRequireWildcard(require("../../structures/ContextMenu")); var _AccessibleButton = _interopRequireDefault(require("../elements/AccessibleButton")); var _StyledCheckbox = _interopRequireDefault(require("../elements/StyledCheckbox")); var _spaces = require("../../../stores/spaces"); var _useSettings = require("../../../hooks/useSettings"); var _SidebarUserSettingsTab = require("../settings/tabs/user/SidebarUserSettingsTab"); var _dispatcher = _interopRequireDefault(require("../../../dispatcher/dispatcher")); var _actions = require("../../../dispatcher/actions"); var _UserTab = require("../dialogs/UserTab"); var _QuickThemeSwitcher = _interopRequireDefault(require("./QuickThemeSwitcher")); var _pinUpright = require("../../../../res/img/element-icons/room/pin-upright.svg"); var _members = require("../../../../res/img/element-icons/room/members.svg"); var _favorite = require("../../../../res/img/element-icons/roomlist/favorite.svg"); var _Modal = _interopRequireDefault(require("../../../Modal")); var _DevtoolsDialog = _interopRequireDefault(require("../dialogs/DevtoolsDialog")); var _SDKContext = require("../../../contexts/SDKContext"); function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } /* Copyright 2024 New Vector Ltd. Copyright 2021-2023 The Matrix.org Foundation C.I.C. SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ const QuickSettingsButton = ({ isPanelCollapsed = false }) => { const [menuDisplayed, handle, openMenu, closeMenu] = (0, _ContextMenu.useContextMenu)(); const { [_spaces.MetaSpace.Favourites]: favouritesEnabled, [_spaces.MetaSpace.People]: peopleEnabled } = (0, _useSettings.useSettingValue)("Spaces.enabledMetaSpaces"); const currentRoomId = _SDKContext.SdkContextClass.instance.roomViewStore.getRoomId(); const developerModeEnabled = (0, _useSettings.useSettingValue)("developerMode"); let contextMenu; if (menuDisplayed && handle.current) { contextMenu = /*#__PURE__*/_react.default.createElement(_ContextMenu.default, (0, _extends2.default)({}, (0, _ContextMenu.alwaysAboveRightOf)(handle.current.getBoundingClientRect(), _ContextMenu.ChevronFace.None, 16), { wrapperClassName: "mx_QuickSettingsButton_ContextMenuWrapper", onFinished: closeMenu, managed: false, focusLock: true }), /*#__PURE__*/_react.default.createElement("h2", null, (0, _languageHandler._t)("quick_settings|title")), /*#__PURE__*/_react.default.createElement(_AccessibleButton.default, { onClick: () => { closeMenu(); _dispatcher.default.dispatch({ action: _actions.Action.ViewUserSettings }); }, kind: "primary_outline" }, (0, _languageHandler._t)("quick_settings|all_settings")), currentRoomId && developerModeEnabled && /*#__PURE__*/_react.default.createElement(_AccessibleButton.default, { onClick: () => { closeMenu(); _Modal.default.createDialog(_DevtoolsDialog.default, { roomId: currentRoomId }, "mx_DevtoolsDialog_wrapper"); }, kind: "danger_outline" }, (0, _languageHandler._t)("devtools|title")), /*#__PURE__*/_react.default.createElement("h4", { className: "mx_QuickSettingsButton_pinToSidebarHeading" }, /*#__PURE__*/_react.default.createElement(_pinUpright.Icon, { className: "mx_QuickSettingsButton_icon" }), (0, _languageHandler._t)("quick_settings|metaspace_section")), /*#__PURE__*/_react.default.createElement(_StyledCheckbox.default, { className: "mx_QuickSettingsButton_favouritesCheckbox", checked: !!favouritesEnabled, onChange: (0, _SidebarUserSettingsTab.onMetaSpaceChangeFactory)(_spaces.MetaSpace.Favourites, "WebQuickSettingsPinToSidebarCheckbox") }, /*#__PURE__*/_react.default.createElement(_favorite.Icon, { className: "mx_QuickSettingsButton_icon" }), (0, _languageHandler._t)("common|favourites")), /*#__PURE__*/_react.default.createElement(_StyledCheckbox.default, { className: "mx_QuickSettingsButton_peopleCheckbox", checked: !!peopleEnabled, onChange: (0, _SidebarUserSettingsTab.onMetaSpaceChangeFactory)(_spaces.MetaSpace.People, "WebQuickSettingsPinToSidebarCheckbox") }, /*#__PURE__*/_react.default.createElement(_members.Icon, { className: "mx_QuickSettingsButton_icon" }), (0, _languageHandler._t)("common|people")), /*#__PURE__*/_react.default.createElement(_AccessibleButton.default, { className: "mx_QuickSettingsButton_moreOptionsButton", onClick: () => { closeMenu(); _dispatcher.default.dispatch({ action: _actions.Action.ViewUserSettings, initialTabId: _UserTab.UserTab.Sidebar }); } }, /*#__PURE__*/_react.default.createElement(_overflowHorizontal.default, { className: "mx_QuickSettingsButton_icon" }), (0, _languageHandler._t)("quick_settings|sidebar_settings")), /*#__PURE__*/_react.default.createElement(_QuickThemeSwitcher.default, { requestClose: closeMenu })); } return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_AccessibleButton.default, { className: (0, _classnames.default)("mx_QuickSettingsButton", { expanded: !isPanelCollapsed }), onClick: openMenu, "aria-label": (0, _languageHandler._t)("quick_settings|title"), title: isPanelCollapsed ? (0, _languageHandler._t)("quick_settings|title") : undefined, ref: handle, "aria-expanded": !isPanelCollapsed }, !isPanelCollapsed ? (0, _languageHandler._t)("common|settings") : null), contextMenu); }; var _default = exports.default = QuickSettingsButton; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9jbGFzc25hbWVzIiwiX292ZXJmbG93SG9yaXpvbnRhbCIsIl9sYW5ndWFnZUhhbmRsZXIiLCJfQ29udGV4dE1lbnUiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9BY2Nlc3NpYmxlQnV0dG9uIiwiX1N0eWxlZENoZWNrYm94IiwiX3NwYWNlcyIsIl91c2VTZXR0aW5ncyIsIl9TaWRlYmFyVXNlclNldHRpbmdzVGFiIiwiX2Rpc3BhdGNoZXIiLCJfYWN0aW9ucyIsIl9Vc2VyVGFiIiwiX1F1aWNrVGhlbWVTd2l0Y2hlciIsIl9waW5VcHJpZ2h0IiwiX21lbWJlcnMiLCJfZmF2b3JpdGUiLCJfTW9kYWwiLCJfRGV2dG9vbHNEaWFsb2ciLCJfU0RLQ29udGV4dCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIlF1aWNrU2V0dGluZ3NCdXR0b24iLCJpc1BhbmVsQ29sbGFwc2VkIiwibWVudURpc3BsYXllZCIsImhhbmRsZSIsIm9wZW5NZW51IiwiY2xvc2VNZW51IiwidXNlQ29udGV4dE1lbnUiLCJNZXRhU3BhY2UiLCJGYXZvdXJpdGVzIiwiZmF2b3VyaXRlc0VuYWJsZWQiLCJQZW9wbGUiLCJwZW9wbGVFbmFibGVkIiwidXNlU2V0dGluZ1ZhbHVlIiwiY3VycmVudFJvb21JZCIsIlNka0NvbnRleHRDbGFzcyIsImluc3RhbmNlIiwicm9vbVZpZXdTdG9yZSIsImdldFJvb21JZCIsImRldmVsb3Blck1vZGVFbmFibGVkIiwiY29udGV4dE1lbnUiLCJjdXJyZW50IiwiY3JlYXRlRWxlbWVudCIsIl9leHRlbmRzMiIsImFsd2F5c0Fib3ZlUmlnaHRPZiIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsIkNoZXZyb25GYWNlIiwiTm9uZSIsIndyYXBwZXJDbGFzc05hbWUiLCJvbkZpbmlzaGVkIiwibWFuYWdlZCIsImZvY3VzTG9jayIsIl90Iiwib25DbGljayIsImRlZmF1bHREaXNwYXRjaGVyIiwiZGlzcGF0Y2giLCJhY3Rpb24iLCJBY3Rpb24iLCJWaWV3VXNlclNldHRpbmdzIiwia2luZCIsIk1vZGFsIiwiY3JlYXRlRGlhbG9nIiwiRGV2dG9vbHNEaWFsb2ciLCJyb29tSWQiLCJjbGFzc05hbWUiLCJJY29uIiwiY2hlY2tlZCIsIm9uQ2hhbmdlIiwib25NZXRhU3BhY2VDaGFuZ2VGYWN0b3J5IiwiaW5pdGlhbFRhYklkIiwiVXNlclRhYiIsIlNpZGViYXIiLCJyZXF1ZXN0Q2xvc2UiLCJGcmFnbWVudCIsImNsYXNzTmFtZXMiLCJleHBhbmRlZCIsInRpdGxlIiwidW5kZWZpbmVkIiwicmVmIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdmlld3Mvc3BhY2VzL1F1aWNrU2V0dGluZ3NCdXR0b24udHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxLTIwMjMgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5XG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIjtcbmltcG9ydCBFbGxpcHNpc0ljb24gZnJvbSBcIkB2ZWN0b3ItaW0vY29tcG91bmQtZGVzaWduLXRva2Vucy9hc3NldHMvd2ViL2ljb25zL292ZXJmbG93LWhvcml6b250YWxcIjtcblxuaW1wb3J0IHsgX3QgfSBmcm9tIFwiLi4vLi4vLi4vbGFuZ3VhZ2VIYW5kbGVyXCI7XG5pbXBvcnQgQ29udGV4dE1lbnUsIHsgYWx3YXlzQWJvdmVSaWdodE9mLCBDaGV2cm9uRmFjZSwgdXNlQ29udGV4dE1lbnUgfSBmcm9tIFwiLi4vLi4vc3RydWN0dXJlcy9Db250ZXh0TWVudVwiO1xuaW1wb3J0IEFjY2Vzc2libGVCdXR0b24gZnJvbSBcIi4uL2VsZW1lbnRzL0FjY2Vzc2libGVCdXR0b25cIjtcbmltcG9ydCBTdHlsZWRDaGVja2JveCBmcm9tIFwiLi4vZWxlbWVudHMvU3R5bGVkQ2hlY2tib3hcIjtcbmltcG9ydCB7IE1ldGFTcGFjZSB9IGZyb20gXCIuLi8uLi8uLi9zdG9yZXMvc3BhY2VzXCI7XG5pbXBvcnQgeyB1c2VTZXR0aW5nVmFsdWUgfSBmcm9tIFwiLi4vLi4vLi4vaG9va3MvdXNlU2V0dGluZ3NcIjtcbmltcG9ydCB7IG9uTWV0YVNwYWNlQ2hhbmdlRmFjdG9yeSB9IGZyb20gXCIuLi9zZXR0aW5ncy90YWJzL3VzZXIvU2lkZWJhclVzZXJTZXR0aW5nc1RhYlwiO1xuaW1wb3J0IGRlZmF1bHREaXNwYXRjaGVyIGZyb20gXCIuLi8uLi8uLi9kaXNwYXRjaGVyL2Rpc3BhdGNoZXJcIjtcbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gXCIuLi8uLi8uLi9kaXNwYXRjaGVyL2FjdGlvbnNcIjtcbmltcG9ydCB7IFVzZXJUYWIgfSBmcm9tIFwiLi4vZGlhbG9ncy9Vc2VyVGFiXCI7XG5pbXBvcnQgUXVpY2tUaGVtZVN3aXRjaGVyIGZyb20gXCIuL1F1aWNrVGhlbWVTd2l0Y2hlclwiO1xuaW1wb3J0IHsgSWNvbiBhcyBQaW5VcHJpZ2h0SWNvbiB9IGZyb20gXCIuLi8uLi8uLi8uLi9yZXMvaW1nL2VsZW1lbnQtaWNvbnMvcm9vbS9waW4tdXByaWdodC5zdmdcIjtcbmltcG9ydCB7IEljb24gYXMgTWVtYmVyc0ljb24gfSBmcm9tIFwiLi4vLi4vLi4vLi4vcmVzL2ltZy9lbGVtZW50LWljb25zL3Jvb20vbWVtYmVycy5zdmdcIjtcbmltcG9ydCB7IEljb24gYXMgRmF2b3JpdGVJY29uIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3Jlcy9pbWcvZWxlbWVudC1pY29ucy9yb29tbGlzdC9mYXZvcml0ZS5zdmdcIjtcbmltcG9ydCBNb2RhbCBmcm9tIFwiLi4vLi4vLi4vTW9kYWxcIjtcbmltcG9ydCBEZXZ0b29sc0RpYWxvZyBmcm9tIFwiLi4vZGlhbG9ncy9EZXZ0b29sc0RpYWxvZ1wiO1xuaW1wb3J0IHsgU2RrQ29udGV4dENsYXNzIH0gZnJvbSBcIi4uLy4uLy4uL2NvbnRleHRzL1NES0NvbnRleHRcIjtcblxuY29uc3QgUXVpY2tTZXR0aW5nc0J1dHRvbjogUmVhY3QuRkM8e1xuICAgIGlzUGFuZWxDb2xsYXBzZWQ6IGJvb2xlYW47XG59PiA9ICh7IGlzUGFuZWxDb2xsYXBzZWQgPSBmYWxzZSB9KSA9PiB7XG4gICAgY29uc3QgW21lbnVEaXNwbGF5ZWQsIGhhbmRsZSwgb3Blbk1lbnUsIGNsb3NlTWVudV0gPSB1c2VDb250ZXh0TWVudTxIVE1MRGl2RWxlbWVudD4oKTtcblxuICAgIGNvbnN0IHsgW01ldGFTcGFjZS5GYXZvdXJpdGVzXTogZmF2b3VyaXRlc0VuYWJsZWQsIFtNZXRhU3BhY2UuUGVvcGxlXTogcGVvcGxlRW5hYmxlZCB9ID1cbiAgICAgICAgdXNlU2V0dGluZ1ZhbHVlPFJlY29yZDxNZXRhU3BhY2UsIGJvb2xlYW4+PihcIlNwYWNlcy5lbmFibGVkTWV0YVNwYWNlc1wiKTtcblxuICAgIGNvbnN0IGN1cnJlbnRSb29tSWQgPSBTZGtDb250ZXh0Q2xhc3MuaW5zdGFuY2Uucm9vbVZpZXdTdG9yZS5nZXRSb29tSWQoKTtcbiAgICBjb25zdCBkZXZlbG9wZXJNb2RlRW5hYmxlZCA9IHVzZVNldHRpbmdWYWx1ZTxib29sZWFuPihcImRldmVsb3Blck1vZGVcIik7XG5cbiAgICBsZXQgY29udGV4dE1lbnU6IEpTWC5FbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgIGlmIChtZW51RGlzcGxheWVkICYmIGhhbmRsZS5jdXJyZW50KSB7XG4gICAgICAgIGNvbnRleHRNZW51ID0gKFxuICAgICAgICAgICAgPENvbnRleHRNZW51XG4gICAgICAgICAgICAgICAgey4uLmFsd2F5c0Fib3ZlUmlnaHRPZihoYW5kbGUuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSwgQ2hldnJvbkZhY2UuTm9uZSwgMTYpfVxuICAgICAgICAgICAgICAgIHdyYXBwZXJDbGFzc05hbWU9XCJteF9RdWlja1NldHRpbmdzQnV0dG9uX0NvbnRleHRNZW51V3JhcHBlclwiXG4gICAgICAgICAgICAgICAgb25GaW5pc2hlZD17Y2xvc2VNZW51fVxuICAgICAgICAgICAgICAgIG1hbmFnZWQ9e2ZhbHNlfVxuICAgICAgICAgICAgICAgIGZvY3VzTG9jaz17dHJ1ZX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aDI+e190KFwicXVpY2tfc2V0dGluZ3N8dGl0bGVcIil9PC9oMj5cblxuICAgICAgICAgICAgICAgIDxBY2Nlc3NpYmxlQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlTWVudSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdERpc3BhdGNoZXIuZGlzcGF0Y2goeyBhY3Rpb246IEFjdGlvbi5WaWV3VXNlclNldHRpbmdzIH0pO1xuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICBraW5kPVwicHJpbWFyeV9vdXRsaW5lXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtfdChcInF1aWNrX3NldHRpbmdzfGFsbF9zZXR0aW5nc1wiKX1cbiAgICAgICAgICAgICAgICA8L0FjY2Vzc2libGVCdXR0b24+XG5cbiAgICAgICAgICAgICAgICB7Y3VycmVudFJvb21JZCAmJiBkZXZlbG9wZXJNb2RlRW5hYmxlZCAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxBY2Nlc3NpYmxlQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VNZW51KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgTW9kYWwuY3JlYXRlRGlhbG9nKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXZ0b29sc0RpYWxvZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9vbUlkOiBjdXJyZW50Um9vbUlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm14X0RldnRvb2xzRGlhbG9nX3dyYXBwZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ9XCJkYW5nZXJfb3V0bGluZVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtfdChcImRldnRvb2xzfHRpdGxlXCIpfVxuICAgICAgICAgICAgICAgICAgICA8L0FjY2Vzc2libGVCdXR0b24+XG4gICAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJteF9RdWlja1NldHRpbmdzQnV0dG9uX3BpblRvU2lkZWJhckhlYWRpbmdcIj5cbiAgICAgICAgICAgICAgICAgICAgPFBpblVwcmlnaHRJY29uIGNsYXNzTmFtZT1cIm14X1F1aWNrU2V0dGluZ3NCdXR0b25faWNvblwiIC8+XG4gICAgICAgICAgICAgICAgICAgIHtfdChcInF1aWNrX3NldHRpbmdzfG1ldGFzcGFjZV9zZWN0aW9uXCIpfVxuICAgICAgICAgICAgICAgIDwvaDQ+XG5cbiAgICAgICAgICAgICAgICA8U3R5bGVkQ2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXhfUXVpY2tTZXR0aW5nc0J1dHRvbl9mYXZvdXJpdGVzQ2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICBjaGVja2VkPXshIWZhdm91cml0ZXNFbmFibGVkfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17b25NZXRhU3BhY2VDaGFuZ2VGYWN0b3J5KE1ldGFTcGFjZS5GYXZvdXJpdGVzLCBcIldlYlF1aWNrU2V0dGluZ3NQaW5Ub1NpZGViYXJDaGVja2JveFwiKX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxGYXZvcml0ZUljb24gY2xhc3NOYW1lPVwibXhfUXVpY2tTZXR0aW5nc0J1dHRvbl9pY29uXCIgLz5cbiAgICAgICAgICAgICAgICAgICAge190KFwiY29tbW9ufGZhdm91cml0ZXNcIil9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRDaGVja2JveD5cbiAgICAgICAgICAgICAgICA8U3R5bGVkQ2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXhfUXVpY2tTZXR0aW5nc0J1dHRvbl9wZW9wbGVDaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9eyEhcGVvcGxlRW5hYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e29uTWV0YVNwYWNlQ2hhbmdlRmFjdG9yeShNZXRhU3BhY2UuUGVvcGxlLCBcIldlYlF1aWNrU2V0dGluZ3NQaW5Ub1NpZGViYXJDaGVja2JveFwiKX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxNZW1iZXJzSWNvbiBjbGFzc05hbWU9XCJteF9RdWlja1NldHRpbmdzQnV0dG9uX2ljb25cIiAvPlxuICAgICAgICAgICAgICAgICAgICB7X3QoXCJjb21tb258cGVvcGxlXCIpfVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkQ2hlY2tib3g+XG4gICAgICAgICAgICAgICAgPEFjY2Vzc2libGVCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXhfUXVpY2tTZXR0aW5nc0J1dHRvbl9tb3JlT3B0aW9uc0J1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlTWVudSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdERpc3BhdGNoZXIuZGlzcGF0Y2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbjogQWN0aW9uLlZpZXdVc2VyU2V0dGluZ3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbFRhYklkOiBVc2VyVGFiLlNpZGViYXIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxFbGxpcHNpc0ljb24gY2xhc3NOYW1lPVwibXhfUXVpY2tTZXR0aW5nc0J1dHRvbl9pY29uXCIgLz5cbiAgICAgICAgICAgICAgICAgICAge190KFwicXVpY2tfc2V0dGluZ3N8c2lkZWJhcl9zZXR0aW5nc1wiKX1cbiAgICAgICAgICAgICAgICA8L0FjY2Vzc2libGVCdXR0b24+XG5cbiAgICAgICAgICAgICAgICA8UXVpY2tUaGVtZVN3aXRjaGVyIHJlcXVlc3RDbG9zZT17Y2xvc2VNZW51fSAvPlxuICAgICAgICAgICAgPC9Db250ZXh0TWVudT5cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgICAgPEFjY2Vzc2libGVCdXR0b25cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXCJteF9RdWlja1NldHRpbmdzQnV0dG9uXCIsIHsgZXhwYW5kZWQ6ICFpc1BhbmVsQ29sbGFwc2VkIH0pfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e29wZW5NZW51fVxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e190KFwicXVpY2tfc2V0dGluZ3N8dGl0bGVcIil9XG4gICAgICAgICAgICAgICAgdGl0bGU9e2lzUGFuZWxDb2xsYXBzZWQgPyBfdChcInF1aWNrX3NldHRpbmdzfHRpdGxlXCIpIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgIHJlZj17aGFuZGxlfVxuICAgICAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9eyFpc1BhbmVsQ29sbGFwc2VkfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHshaXNQYW5lbENvbGxhcHNlZCA/IF90KFwiY29tbW9ufHNldHRpbmdzXCIpIDogbnVsbH1cbiAgICAgICAgICAgIDwvQWNjZXNzaWJsZUJ1dHRvbj5cblxuICAgICAgICAgICAge2NvbnRleHRNZW51fVxuICAgICAgICA8Lz5cbiAgICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgUXVpY2tTZXR0aW5nc0J1dHRvbjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFRQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxXQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxtQkFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUcsZ0JBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFlBQUEsR0FBQUMsdUJBQUEsQ0FBQUwsT0FBQTtBQUNBLElBQUFNLGlCQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxlQUFBLEdBQUFSLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUSxPQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxZQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFB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