UNPKG

matrix-react-sdk

Version:
123 lines (120 loc) 22.6 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireWildcard(require("react")); var React = _react; var _AutoHideScrollbar = _interopRequireDefault(require("./AutoHideScrollbar")); var _pages = require("../../utils/pages"); var _languageHandler = require("../../languageHandler"); var _SdkConfig = _interopRequireDefault(require("../../SdkConfig")); var _dispatcher = _interopRequireDefault(require("../../dispatcher/dispatcher")); var _actions = require("../../dispatcher/actions"); var _BaseAvatar = _interopRequireDefault(require("../views/avatars/BaseAvatar")); var _OwnProfileStore = require("../../stores/OwnProfileStore"); var _AccessibleButton = _interopRequireDefault(require("../views/elements/AccessibleButton")); var _AsyncStore = require("../../stores/AsyncStore"); var _useEventEmitter = require("../../hooks/useEventEmitter"); var _MatrixClientContext = _interopRequireWildcard(require("../../contexts/MatrixClientContext")); var _MiniAvatarUploader = _interopRequireWildcard(require("../views/elements/MiniAvatarUploader")); var _PosthogTrackers = _interopRequireDefault(require("../../PosthogTrackers")); var _EmbeddedPage = _interopRequireDefault(require("./EmbeddedPage")); 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 2020 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 onClickSendDm = ev => { _PosthogTrackers.default.trackInteraction("WebHomeCreateChatButton", ev); _dispatcher.default.dispatch({ action: "view_create_chat" }); }; const onClickExplore = ev => { _PosthogTrackers.default.trackInteraction("WebHomeExploreRoomsButton", ev); _dispatcher.default.fire(_actions.Action.ViewRoomDirectory); }; const onClickNewRoom = ev => { _PosthogTrackers.default.trackInteraction("WebHomeCreateRoomButton", ev); _dispatcher.default.dispatch({ action: "view_create_room" }); }; const getOwnProfile = userId => ({ displayName: _OwnProfileStore.OwnProfileStore.instance.displayName || userId, avatarUrl: _OwnProfileStore.OwnProfileStore.instance.getHttpAvatarUrl(parseInt(_MiniAvatarUploader.AVATAR_SIZE, 10)) ?? undefined }); const UserWelcomeTop = () => { const cli = (0, _react.useContext)(_MatrixClientContext.default); const userId = cli.getUserId(); const [ownProfile, setOwnProfile] = (0, _react.useState)(getOwnProfile(userId)); (0, _useEventEmitter.useEventEmitter)(_OwnProfileStore.OwnProfileStore.instance, _AsyncStore.UPDATE_EVENT, () => { setOwnProfile(getOwnProfile(userId)); }); return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(_MiniAvatarUploader.default, { hasAvatar: !!ownProfile.avatarUrl, hasAvatarLabel: (0, _languageHandler._tDom)("onboarding|has_avatar_label"), noAvatarLabel: (0, _languageHandler._tDom)("onboarding|no_avatar_label"), setAvatarUrl: url => cli.setAvatarUrl(url), isUserAvatar: true, onClick: ev => _PosthogTrackers.default.trackInteraction("WebHomeMiniAvatarUploadButton", ev) }, /*#__PURE__*/React.createElement(_BaseAvatar.default, { idName: userId, name: ownProfile.displayName, url: ownProfile.avatarUrl, size: _MiniAvatarUploader.AVATAR_SIZE })), /*#__PURE__*/React.createElement("h1", null, (0, _languageHandler._tDom)("onboarding|welcome_user", { name: ownProfile.displayName })), /*#__PURE__*/React.createElement("h2", null, (0, _languageHandler._tDom)("onboarding|welcome_detail"))); }; const HomePage = ({ justRegistered = false }) => { const cli = (0, _MatrixClientContext.useMatrixClientContext)(); const config = _SdkConfig.default.get(); const pageUrl = (0, _pages.getHomePageUrl)(config, cli); if (pageUrl) { return /*#__PURE__*/React.createElement(_EmbeddedPage.default, { className: "mx_HomePage", url: pageUrl, scrollbar: true }); } let introSection; if (justRegistered || !_OwnProfileStore.OwnProfileStore.instance.getHttpAvatarUrl(parseInt(_MiniAvatarUploader.AVATAR_SIZE, 10))) { introSection = /*#__PURE__*/React.createElement(UserWelcomeTop, null); } else { const brandingConfig = _SdkConfig.default.getObject("branding"); const logoUrl = brandingConfig?.get("auth_header_logo_url") ?? "themes/element/img/logos/element-logo.svg"; introSection = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("img", { src: logoUrl, alt: config.brand }), /*#__PURE__*/React.createElement("h1", null, (0, _languageHandler._tDom)("onboarding|intro_welcome", { appName: config.brand })), /*#__PURE__*/React.createElement("h2", null, (0, _languageHandler._tDom)("onboarding|intro_byline"))); } return /*#__PURE__*/React.createElement(_AutoHideScrollbar.default, { className: "mx_HomePage mx_HomePage_default", element: "main" }, /*#__PURE__*/React.createElement("div", { className: "mx_HomePage_default_wrapper" }, introSection, /*#__PURE__*/React.createElement("div", { className: "mx_HomePage_default_buttons" }, /*#__PURE__*/React.createElement(_AccessibleButton.default, { onClick: onClickSendDm, className: "mx_HomePage_button_sendDm" }, (0, _languageHandler._tDom)("onboarding|send_dm")), /*#__PURE__*/React.createElement(_AccessibleButton.default, { onClick: onClickExplore, className: "mx_HomePage_button_explore" }, (0, _languageHandler._tDom)("onboarding|explore_rooms")), /*#__PURE__*/React.createElement(_AccessibleButton.default, { onClick: onClickNewRoom, className: "mx_HomePage_button_createGroup" }, (0, _languageHandler._tDom)("onboarding|create_room"))))); }; var _default = exports.default = HomePage; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJSZWFjdCIsIl9BdXRvSGlkZVNjcm9sbGJhciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcGFnZXMiLCJfbGFuZ3VhZ2VIYW5kbGVyIiwiX1Nka0NvbmZpZyIsIl9kaXNwYXRjaGVyIiwiX2FjdGlvbnMiLCJfQmFzZUF2YXRhciIsIl9Pd25Qcm9maWxlU3RvcmUiLCJfQWNjZXNzaWJsZUJ1dHRvbiIsIl9Bc3luY1N0b3JlIiwiX3VzZUV2ZW50RW1pdHRlciIsIl9NYXRyaXhDbGllbnRDb250ZXh0IiwiX01pbmlBdmF0YXJVcGxvYWRlciIsIl9Qb3N0aG9nVHJhY2tlcnMiLCJfRW1iZWRkZWRQYWdlIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0Iiwib25DbGlja1NlbmREbSIsImV2IiwiUG9zdGhvZ1RyYWNrZXJzIiwidHJhY2tJbnRlcmFjdGlvbiIsImRpcyIsImRpc3BhdGNoIiwiYWN0aW9uIiwib25DbGlja0V4cGxvcmUiLCJmaXJlIiwiQWN0aW9uIiwiVmlld1Jvb21EaXJlY3RvcnkiLCJvbkNsaWNrTmV3Um9vbSIsImdldE93blByb2ZpbGUiLCJ1c2VySWQiLCJkaXNwbGF5TmFtZSIsIk93blByb2ZpbGVTdG9yZSIsImluc3RhbmNlIiwiYXZhdGFyVXJsIiwiZ2V0SHR0cEF2YXRhclVybCIsInBhcnNlSW50IiwiQVZBVEFSX1NJWkUiLCJ1bmRlZmluZWQiLCJVc2VyV2VsY29tZVRvcCIsImNsaSIsInVzZUNvbnRleHQiLCJNYXRyaXhDbGllbnRDb250ZXh0IiwiZ2V0VXNlcklkIiwib3duUHJvZmlsZSIsInNldE93blByb2ZpbGUiLCJ1c2VTdGF0ZSIsInVzZUV2ZW50RW1pdHRlciIsIlVQREFURV9FVkVOVCIsImNyZWF0ZUVsZW1lbnQiLCJoYXNBdmF0YXIiLCJoYXNBdmF0YXJMYWJlbCIsIl90RG9tIiwibm9BdmF0YXJMYWJlbCIsInNldEF2YXRhclVybCIsInVybCIsImlzVXNlckF2YXRhciIsIm9uQ2xpY2siLCJpZE5hbWUiLCJuYW1lIiwic2l6ZSIsIkhvbWVQYWdlIiwianVzdFJlZ2lzdGVyZWQiLCJ1c2VNYXRyaXhDbGllbnRDb250ZXh0IiwiY29uZmlnIiwiU2RrQ29uZmlnIiwicGFnZVVybCIsImdldEhvbWVQYWdlVXJsIiwiY2xhc3NOYW1lIiwic2Nyb2xsYmFyIiwiaW50cm9TZWN0aW9uIiwiYnJhbmRpbmdDb25maWciLCJnZXRPYmplY3QiLCJsb2dvVXJsIiwiRnJhZ21lbnQiLCJzcmMiLCJhbHQiLCJicmFuZCIsImFwcE5hbWUiLCJlbGVtZW50IiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc3RydWN0dXJlcy9Ib21lUGFnZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5XG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VDb250ZXh0LCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuXG5pbXBvcnQgQXV0b0hpZGVTY3JvbGxiYXIgZnJvbSBcIi4vQXV0b0hpZGVTY3JvbGxiYXJcIjtcbmltcG9ydCB7IGdldEhvbWVQYWdlVXJsIH0gZnJvbSBcIi4uLy4uL3V0aWxzL3BhZ2VzXCI7XG5pbXBvcnQgeyBfdERvbSB9IGZyb20gXCIuLi8uLi9sYW5ndWFnZUhhbmRsZXJcIjtcbmltcG9ydCBTZGtDb25maWcgZnJvbSBcIi4uLy4uL1Nka0NvbmZpZ1wiO1xuaW1wb3J0IGRpcyBmcm9tIFwiLi4vLi4vZGlzcGF0Y2hlci9kaXNwYXRjaGVyXCI7XG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tIFwiLi4vLi4vZGlzcGF0Y2hlci9hY3Rpb25zXCI7XG5pbXBvcnQgQmFzZUF2YXRhciBmcm9tIFwiLi4vdmlld3MvYXZhdGFycy9CYXNlQXZhdGFyXCI7XG5pbXBvcnQgeyBPd25Qcm9maWxlU3RvcmUgfSBmcm9tIFwiLi4vLi4vc3RvcmVzL093blByb2ZpbGVTdG9yZVwiO1xuaW1wb3J0IEFjY2Vzc2libGVCdXR0b24sIHsgQnV0dG9uRXZlbnQgfSBmcm9tIFwiLi4vdmlld3MvZWxlbWVudHMvQWNjZXNzaWJsZUJ1dHRvblwiO1xuaW1wb3J0IHsgVVBEQVRFX0VWRU5UIH0gZnJvbSBcIi4uLy4uL3N0b3Jlcy9Bc3luY1N0b3JlXCI7XG5pbXBvcnQgeyB1c2VFdmVudEVtaXR0ZXIgfSBmcm9tIFwiLi4vLi4vaG9va3MvdXNlRXZlbnRFbWl0dGVyXCI7XG5pbXBvcnQgTWF0cml4Q2xpZW50Q29udGV4dCwgeyB1c2VNYXRyaXhDbGllbnRDb250ZXh0IH0gZnJvbSBcIi4uLy4uL2NvbnRleHRzL01hdHJpeENsaWVudENvbnRleHRcIjtcbmltcG9ydCBNaW5pQXZhdGFyVXBsb2FkZXIsIHsgQVZBVEFSX1NJWkUgfSBmcm9tIFwiLi4vdmlld3MvZWxlbWVudHMvTWluaUF2YXRhclVwbG9hZGVyXCI7XG5pbXBvcnQgUG9zdGhvZ1RyYWNrZXJzIGZyb20gXCIuLi8uLi9Qb3N0aG9nVHJhY2tlcnNcIjtcbmltcG9ydCBFbWJlZGRlZFBhZ2UgZnJvbSBcIi4vRW1iZWRkZWRQYWdlXCI7XG5cbmNvbnN0IG9uQ2xpY2tTZW5kRG0gPSAoZXY6IEJ1dHRvbkV2ZW50KTogdm9pZCA9PiB7XG4gICAgUG9zdGhvZ1RyYWNrZXJzLnRyYWNrSW50ZXJhY3Rpb24oXCJXZWJIb21lQ3JlYXRlQ2hhdEJ1dHRvblwiLCBldik7XG4gICAgZGlzLmRpc3BhdGNoKHsgYWN0aW9uOiBcInZpZXdfY3JlYXRlX2NoYXRcIiB9KTtcbn07XG5cbmNvbnN0IG9uQ2xpY2tFeHBsb3JlID0gKGV2OiBCdXR0b25FdmVudCk6IHZvaWQgPT4ge1xuICAgIFBvc3Rob2dUcmFja2Vycy50cmFja0ludGVyYWN0aW9uKFwiV2ViSG9tZUV4cGxvcmVSb29tc0J1dHRvblwiLCBldik7XG4gICAgZGlzLmZpcmUoQWN0aW9uLlZpZXdSb29tRGlyZWN0b3J5KTtcbn07XG5cbmNvbnN0IG9uQ2xpY2tOZXdSb29tID0gKGV2OiBCdXR0b25FdmVudCk6IHZvaWQgPT4ge1xuICAgIFBvc3Rob2dUcmFja2Vycy50cmFja0ludGVyYWN0aW9uKFwiV2ViSG9tZUNyZWF0ZVJvb21CdXR0b25cIiwgZXYpO1xuICAgIGRpcy5kaXNwYXRjaCh7IGFjdGlvbjogXCJ2aWV3X2NyZWF0ZV9yb29tXCIgfSk7XG59O1xuXG5pbnRlcmZhY2UgSVByb3BzIHtcbiAgICBqdXN0UmVnaXN0ZXJlZD86IGJvb2xlYW47XG59XG5cbmNvbnN0IGdldE93blByb2ZpbGUgPSAoXG4gICAgdXNlcklkOiBzdHJpbmcsXG4pOiB7XG4gICAgZGlzcGxheU5hbWU6IHN0cmluZztcbiAgICBhdmF0YXJVcmw/OiBzdHJpbmc7XG59ID0+ICh7XG4gICAgZGlzcGxheU5hbWU6IE93blByb2ZpbGVTdG9yZS5pbnN0YW5jZS5kaXNwbGF5TmFtZSB8fCB1c2VySWQsXG4gICAgYXZhdGFyVXJsOiBPd25Qcm9maWxlU3RvcmUuaW5zdGFuY2UuZ2V0SHR0cEF2YXRhclVybChwYXJzZUludChBVkFUQVJfU0laRSwgMTApKSA/PyB1bmRlZmluZWQsXG59KTtcblxuY29uc3QgVXNlcldlbGNvbWVUb3A6IFJlYWN0LkZDID0gKCkgPT4ge1xuICAgIGNvbnN0IGNsaSA9IHVzZUNvbnRleHQoTWF0cml4Q2xpZW50Q29udGV4dCk7XG4gICAgY29uc3QgdXNlcklkID0gY2xpLmdldFVzZXJJZCgpITtcbiAgICBjb25zdCBbb3duUHJvZmlsZSwgc2V0T3duUHJvZmlsZV0gPSB1c2VTdGF0ZShnZXRPd25Qcm9maWxlKHVzZXJJZCkpO1xuICAgIHVzZUV2ZW50RW1pdHRlcihPd25Qcm9maWxlU3RvcmUuaW5zdGFuY2UsIFVQREFURV9FVkVOVCwgKCkgPT4ge1xuICAgICAgICBzZXRPd25Qcm9maWxlKGdldE93blByb2ZpbGUodXNlcklkKSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPE1pbmlBdmF0YXJVcGxvYWRlclxuICAgICAgICAgICAgICAgIGhhc0F2YXRhcj17ISFvd25Qcm9maWxlLmF2YXRhclVybH1cbiAgICAgICAgICAgICAgICBoYXNBdmF0YXJMYWJlbD17X3REb20oXCJvbmJvYXJkaW5nfGhhc19hdmF0YXJfbGFiZWxcIil9XG4gICAgICAgICAgICAgICAgbm9BdmF0YXJMYWJlbD17X3REb20oXCJvbmJvYXJkaW5nfG5vX2F2YXRhcl9sYWJlbFwiKX1cbiAgICAgICAgICAgICAgICBzZXRBdmF0YXJVcmw9eyh1cmwpID0+IGNsaS5zZXRBdmF0YXJVcmwodXJsKX1cbiAgICAgICAgICAgICAgICBpc1VzZXJBdmF0YXJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZXYpID0+IFBvc3Rob2dUcmFja2Vycy50cmFja0ludGVyYWN0aW9uKFwiV2ViSG9tZU1pbmlBdmF0YXJVcGxvYWRCdXR0b25cIiwgZXYpfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxCYXNlQXZhdGFyXG4gICAgICAgICAgICAgICAgICAgIGlkTmFtZT17dXNlcklkfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtvd25Qcm9maWxlLmRpc3BsYXlOYW1lfVxuICAgICAgICAgICAgICAgICAgICB1cmw9e293blByb2ZpbGUuYXZhdGFyVXJsfVxuICAgICAgICAgICAgICAgICAgICBzaXplPXtBVkFUQVJfU0laRX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9NaW5pQXZhdGFyVXBsb2FkZXI+XG5cbiAgICAgICAgICAgIDxoMT57X3REb20oXCJvbmJvYXJkaW5nfHdlbGNvbWVfdXNlclwiLCB7IG5hbWU6IG93blByb2ZpbGUuZGlzcGxheU5hbWUgfSl9PC9oMT5cbiAgICAgICAgICAgIDxoMj57X3REb20oXCJvbmJvYXJkaW5nfHdlbGNvbWVfZGV0YWlsXCIpfTwvaDI+XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59O1xuXG5jb25zdCBIb21lUGFnZTogUmVhY3QuRkM8SVByb3BzPiA9ICh7IGp1c3RSZWdpc3RlcmVkID0gZmFsc2UgfSkgPT4ge1xuICAgIGNvbnN0IGNsaSA9IHVzZU1hdHJpeENsaWVudENvbnRleHQoKTtcbiAgICBjb25zdCBjb25maWcgPSBTZGtDb25maWcuZ2V0KCk7XG4gICAgY29uc3QgcGFnZVVybCA9IGdldEhvbWVQYWdlVXJsKGNvbmZpZywgY2xpKTtcblxuICAgIGlmIChwYWdlVXJsKSB7XG4gICAgICAgIHJldHVybiA8RW1iZWRkZWRQYWdlIGNsYXNzTmFtZT1cIm14X0hvbWVQYWdlXCIgdXJsPXtwYWdlVXJsfSBzY3JvbGxiYXI9e3RydWV9IC8+O1xuICAgIH1cblxuICAgIGxldCBpbnRyb1NlY3Rpb246IEpTWC5FbGVtZW50O1xuICAgIGlmIChqdXN0UmVnaXN0ZXJlZCB8fCAhT3duUHJvZmlsZVN0b3JlLmluc3RhbmNlLmdldEh0dHBBdmF0YXJVcmwocGFyc2VJbnQoQVZBVEFSX1NJWkUsIDEwKSkpIHtcbiAgICAgICAgaW50cm9TZWN0aW9uID0gPFVzZXJXZWxjb21lVG9wIC8+O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGJyYW5kaW5nQ29uZmlnID0gU2RrQ29uZmlnLmdldE9iamVjdChcImJyYW5kaW5nXCIpO1xuICAgICAgICBjb25zdCBsb2dvVXJsID0gYnJhbmRpbmdDb25maWc/LmdldChcImF1dGhfaGVhZGVyX2xvZ29fdXJsXCIpID8/IFwidGhlbWVzL2VsZW1lbnQvaW1nL2xvZ29zL2VsZW1lbnQtbG9nby5zdmdcIjtcblxuICAgICAgICBpbnRyb1NlY3Rpb24gPSAoXG4gICAgICAgICAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgICAgICAgICAgPGltZyBzcmM9e2xvZ29Vcmx9IGFsdD17Y29uZmlnLmJyYW5kfSAvPlxuICAgICAgICAgICAgICAgIDxoMT57X3REb20oXCJvbmJvYXJkaW5nfGludHJvX3dlbGNvbWVcIiwgeyBhcHBOYW1lOiBjb25maWcuYnJhbmQgfSl9PC9oMT5cbiAgICAgICAgICAgICAgICA8aDI+e190RG9tKFwib25ib2FyZGluZ3xpbnRyb19ieWxpbmVcIil9PC9oMj5cbiAgICAgICAgICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPEF1dG9IaWRlU2Nyb2xsYmFyIGNsYXNzTmFtZT1cIm14X0hvbWVQYWdlIG14X0hvbWVQYWdlX2RlZmF1bHRcIiBlbGVtZW50PVwibWFpblwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJteF9Ib21lUGFnZV9kZWZhdWx0X3dyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICB7aW50cm9TZWN0aW9ufVxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXhfSG9tZVBhZ2VfZGVmYXVsdF9idXR0b25zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxBY2Nlc3NpYmxlQnV0dG9uIG9uQ2xpY2s9e29uQ2xpY2tTZW5kRG19IGNsYXNzTmFtZT1cIm14X0hvbWVQYWdlX2J1dHRvbl9zZW5kRG1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtfdERvbShcIm9uYm9hcmRpbmd8c2VuZF9kbVwiKX1cbiAgICAgICAgICAgICAgICAgICAgPC9BY2Nlc3NpYmxlQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8QWNjZXNzaWJsZUJ1dHRvbiBvbkNsaWNrPXtvbkNsaWNrRXhwbG9yZX0gY2xhc3NOYW1lPVwibXhfSG9tZVBhZ2VfYnV0dG9uX2V4cGxvcmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtfdERvbShcIm9uYm9hcmRpbmd8ZXhwbG9yZV9yb29tc1wiKX1cbiAgICAgICAgICAgICAgICAgICAgPC9BY2Nlc3NpYmxlQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8QWNjZXNzaWJsZUJ1dHRvbiBvbkNsaWNrPXtvbkNsaWNrTmV3Um9vbX0gY2xhc3NOYW1lPVwibXhfSG9tZVBhZ2VfYnV0dG9uX2NyZWF0ZUdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7X3REb20oXCJvbmJvYXJkaW5nfGNyZWF0ZV9yb29tXCIpfVxuICAgICAgICAgICAgICAgICAgICA8L0FjY2Vzc2libGVCdXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9BdXRvSGlkZVNjcm9sbGJhcj5cbiAgICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgSG9tZVBhZ2U7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFRQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFBK0IsSUFBQUMsS0FBQSxHQUFBSCxNQUFBO0FBRy9CLElBQUFJLGtCQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxNQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxnQkFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sVUFBQSxHQUFBSCxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQU8sV0FBQSxHQUFBSixzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQVEsUUFBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsV0FBQSxHQUFBTixzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQVUsZ0JBQUEs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RixjQUFjLEVBQUVsRSxHQUFHLENBQUMsc0JBQXNCLENBQUMsSUFBSSwyQ0FBMkM7SUFFMUdpRSxZQUFZLGdCQUNSMUYsS0FBQSxDQUFBcUUsYUFBQSxDQUFDckUsS0FBSyxDQUFDOEYsUUFBUSxxQkFDWDlGLEtBQUEsQ0FBQXFFLGFBQUE7TUFBSzBCLEdBQUcsRUFBRUYsT0FBUTtNQUFDRyxHQUFHLEVBQUVaLE1BQU0sQ0FBQ2E7SUFBTSxDQUFFLENBQUMsZUFDeENqRyxLQUFBLENBQUFxRSxhQUFBLGFBQUssSUFBQUcsc0JBQUssRUFBQywwQkFBMEIsRUFBRTtNQUFFMEIsT0FBTyxFQUFFZCxNQUFNLENBQUNhO0lBQU0sQ0FBQyxDQUFNLENBQUMsZUFDdkVqRyxLQUFBLENBQUFxRSxhQUFBLGFBQUssSUFBQUcsc0JBQUssRUFBQyx5QkFBeUIsQ0FBTSxDQUM5QixDQUNuQjtFQUNMO0VBRUEsb0JBQ0l4RSxLQUFBLENBQUFxRSxhQUFBLENBQUNwRSxrQkFBQSxDQUFBc0IsT0FBaUI7SUFBQ2lFLFNBQVMsRUFBQyxpQ0FBaUM7SUFBQ1csT0FBTyxFQUFDO0VBQU0sZ0JBQ3pFbkcsS0FBQSxDQUFBcUUsYUFBQTtJQUFLbUIsU0FBUyxFQUFDO0VBQTZCLEdBQ3ZDRSxZQUFZLGVBQ2IxRixLQUFBLENBQUFxRSxhQUFBO0lBQUttQixTQUFTLEVBQUM7RUFBNkIsZ0JBQ3hDeEYsS0FBQSxDQUFBcUUsYUFBQSxDQUFDM0QsaUJBQUEsQ0FBQWEsT0FBZ0I7SUFBQ3NELE9BQU8sRUFBRXhDLGFBQWM7SUFBQ21ELFNBQVMsRUFBQztFQUEyQixHQUMxRSxJQUFBaEIsc0JBQUssRUFBQyxvQkFBb0IsQ0FDYixDQUFDLGVBQ25CeEUsS0FBQSxDQUFBcUUsYUFBQSxDQUFDM0QsaUJBQUEsQ0FBQWEsT0FBZ0I7SUFBQ3NELE9BQU8sRUFBRWpDLGNBQWU7SUFBQzRDLFNBQVMsRUFBQztFQUE0QixHQUM1RSxJQUFBaEIsc0JBQUssRUFBQywwQkFBMEIsQ0FDbkIsQ0FBQyxlQUNuQnhFLEtBQUEsQ0FBQXFFLGFBQUEsQ0FBQzNELGlCQUFBLENBQUFhLE9BQWdCO0lBQUNzRCxPQUFPLEVBQUU3QixjQUFlO0lBQUN3QyxTQUFTLEVBQUM7RUFBZ0MsR0FDaEYsSUFBQWhCLHNCQUFLLEVBQUMsd0JBQXdCLENBQ2pCLENBQ2pCLENBQ0osQ0FDVSxDQUFDO0FBRTVCLENBQUM7QUFBQyxJQUFBNEIsUUFBQSxHQUFBQyxPQUFBLENBQUE5RSxPQUFBLEdBRWEwRCxRQUFRIiwiaWdub3JlTGlzdCI6W119