UNPKG

matrix-react-sdk

Version:
179 lines (177 loc) 20.8 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.pillRoomNotifPos = exports.pillRoomNotifLen = exports.PillType = exports.Pill = void 0; var _react = _interopRequireDefault(require("react")); var _classnames = _interopRequireDefault(require("classnames")); var _compoundWeb = require("@vector-im/compound-web"); var _link = _interopRequireDefault(require("@vector-im/compound-design-tokens/assets/web/icons/link")); var _MatrixClientPeg = require("../../../MatrixClientPeg"); var _MatrixClientContext = _interopRequireDefault(require("../../../contexts/MatrixClientContext")); var _usePermalink = require("../../../hooks/usePermalink"); var _RoomAvatar = _interopRequireDefault(require("../avatars/RoomAvatar")); var _MemberAvatar = _interopRequireDefault(require("../avatars/MemberAvatar")); var _languageHandler = require("../../../languageHandler"); var _user = require("../../../../res/img/compound/user.svg"); /* Copyright 2024 New Vector Ltd. Copyright 2017-2019 , 2021 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. */ let PillType = exports.PillType = /*#__PURE__*/function (PillType) { PillType["UserMention"] = "TYPE_USER_MENTION"; PillType["RoomMention"] = "TYPE_ROOM_MENTION"; PillType["AtRoomMention"] = "TYPE_AT_ROOM_MENTION"; PillType["EventInSameRoom"] = "TYPE_EVENT_IN_SAME_ROOM"; PillType["EventInOtherRoom"] = "TYPE_EVENT_IN_OTHER_ROOM"; return PillType; }({}); const pillRoomNotifPos = text => { return text?.indexOf("@room") ?? -1; }; exports.pillRoomNotifPos = pillRoomNotifPos; const pillRoomNotifLen = () => { return "@room".length; }; exports.pillRoomNotifLen = pillRoomNotifLen; const linkIcon = /*#__PURE__*/_react.default.createElement(_link.default, { className: "mx_Pill_LinkIcon mx_BaseAvatar" }); const PillRoomAvatar = ({ shouldShowPillAvatar, room }) => { if (!shouldShowPillAvatar) { return null; } if (room) { return /*#__PURE__*/_react.default.createElement(_RoomAvatar.default, { room: room, size: "16px", "aria-hidden": "true" }); } return linkIcon; }; const PillMemberAvatar = ({ shouldShowPillAvatar, member }) => { if (!shouldShowPillAvatar) { return null; } if (member) { return /*#__PURE__*/_react.default.createElement(_MemberAvatar.default, { member: member, size: "16px", "aria-hidden": "true", hideTitle: true }); } return /*#__PURE__*/_react.default.createElement(_user.Icon, { className: "mx_Pill_UserIcon mx_BaseAvatar" }); }; const Pill = ({ type: propType, url, inMessage, room, shouldShowPillAvatar = true }) => { const { event, member, onClick, resourceId, targetRoom, text, type } = (0, _usePermalink.usePermalink)({ room, type: propType, url }); if (!type || !text) { return null; } const classes = (0, _classnames.default)("mx_Pill", { mx_AtRoomPill: type === PillType.AtRoomMention, mx_RoomPill: type === PillType.RoomMention, mx_SpacePill: type === "space" || targetRoom?.isSpaceRoom(), mx_UserPill: type === PillType.UserMention, mx_UserPill_me: resourceId === _MatrixClientPeg.MatrixClientPeg.safeGet().getUserId(), mx_EventPill: type === PillType.EventInOtherRoom || type === PillType.EventInSameRoom }); let avatar = null; let pillText = text; switch (type) { case PillType.EventInOtherRoom: { avatar = /*#__PURE__*/_react.default.createElement(PillRoomAvatar, { shouldShowPillAvatar: shouldShowPillAvatar, room: targetRoom }); pillText = (0, _languageHandler._t)("pill|permalink_other_room", { room: text }); } break; case PillType.EventInSameRoom: { if (event) { avatar = /*#__PURE__*/_react.default.createElement(PillMemberAvatar, { shouldShowPillAvatar: shouldShowPillAvatar, member: member }); pillText = (0, _languageHandler._t)("pill|permalink_this_room", { user: text }); } else { avatar = linkIcon; pillText = (0, _languageHandler._t)("common|message"); } } break; case PillType.AtRoomMention: case PillType.RoomMention: case "space": avatar = /*#__PURE__*/_react.default.createElement(PillRoomAvatar, { shouldShowPillAvatar: shouldShowPillAvatar, room: targetRoom }); break; case PillType.UserMention: avatar = /*#__PURE__*/_react.default.createElement(PillMemberAvatar, { shouldShowPillAvatar: shouldShowPillAvatar, member: member }); break; default: return null; } const isAnchor = !!inMessage && !!url; return /*#__PURE__*/_react.default.createElement("bdi", null, /*#__PURE__*/_react.default.createElement(_MatrixClientContext.default.Provider, { value: _MatrixClientPeg.MatrixClientPeg.safeGet() }, /*#__PURE__*/_react.default.createElement(_compoundWeb.Tooltip, { description: resourceId ?? "", open: resourceId ? undefined : false, placement: "right", isTriggerInteractive: isAnchor }, isAnchor ? /*#__PURE__*/_react.default.createElement("a", { className: classes, href: url, onClick: onClick }, avatar, /*#__PURE__*/_react.default.createElement("span", { className: "mx_Pill_text" }, pillText)) : /*#__PURE__*/_react.default.createElement("span", { className: classes }, avatar, /*#__PURE__*/_react.default.createElement("span", { className: "mx_Pill_text" }, pillText))))); }; exports.Pill = Pill; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9jbGFzc25hbWVzIiwiX2NvbXBvdW5kV2ViIiwiX2xpbmsiLCJfTWF0cml4Q2xpZW50UGVnIiwiX01hdHJpeENsaWVudENvbnRleHQiLCJfdXNlUGVybWFsaW5rIiwiX1Jvb21BdmF0YXIiLCJfTWVtYmVyQXZhdGFyIiwiX2xhbmd1YWdlSGFuZGxlciIsIl91c2VyIiwiUGlsbFR5cGUiLCJleHBvcnRzIiwicGlsbFJvb21Ob3RpZlBvcyIsInRleHQiLCJpbmRleE9mIiwicGlsbFJvb21Ob3RpZkxlbiIsImxlbmd0aCIsImxpbmtJY29uIiwiZGVmYXVsdCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJQaWxsUm9vbUF2YXRhciIsInNob3VsZFNob3dQaWxsQXZhdGFyIiwicm9vbSIsInNpemUiLCJQaWxsTWVtYmVyQXZhdGFyIiwibWVtYmVyIiwiaGlkZVRpdGxlIiwiSWNvbiIsIlBpbGwiLCJ0eXBlIiwicHJvcFR5cGUiLCJ1cmwiLCJpbk1lc3NhZ2UiLCJldmVudCIsIm9uQ2xpY2siLCJyZXNvdXJjZUlkIiwidGFyZ2V0Um9vbSIsInVzZVBlcm1hbGluayIsImNsYXNzZXMiLCJjbGFzc05hbWVzIiwibXhfQXRSb29tUGlsbCIsIkF0Um9vbU1lbnRpb24iLCJteF9Sb29tUGlsbCIsIlJvb21NZW50aW9uIiwibXhfU3BhY2VQaWxsIiwiaXNTcGFjZVJvb20iLCJteF9Vc2VyUGlsbCIsIlVzZXJNZW50aW9uIiwibXhfVXNlclBpbGxfbWUiLCJNYXRyaXhDbGllbnRQZWciLCJzYWZlR2V0IiwiZ2V0VXNlcklkIiwibXhfRXZlbnRQaWxsIiwiRXZlbnRJbk90aGVyUm9vbSIsIkV2ZW50SW5TYW1lUm9vbSIsImF2YXRhciIsInBpbGxUZXh0IiwiX3QiLCJ1c2VyIiwiaXNBbmNob3IiLCJQcm92aWRlciIsInZhbHVlIiwiVG9vbHRpcCIsImRlc2NyaXB0aW9uIiwib3BlbiIsInVuZGVmaW5lZCIsInBsYWNlbWVudCIsImlzVHJpZ2dlckludGVyYWN0aXZlIiwiaHJlZiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3ZpZXdzL2VsZW1lbnRzL1BpbGwudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE3LTIwMTkgLCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbmltcG9ydCBSZWFjdCwgeyBSZWFjdEVsZW1lbnQgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gXCJjbGFzc25hbWVzXCI7XG5pbXBvcnQgeyBSb29tLCBSb29tTWVtYmVyIH0gZnJvbSBcIm1hdHJpeC1qcy1zZGsvc3JjL21hdHJpeFwiO1xuaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gXCJAdmVjdG9yLWltL2NvbXBvdW5kLXdlYlwiO1xuaW1wb3J0IExpbmtJY29uIGZyb20gXCJAdmVjdG9yLWltL2NvbXBvdW5kLWRlc2lnbi10b2tlbnMvYXNzZXRzL3dlYi9pY29ucy9saW5rXCI7XG5cbmltcG9ydCB7IE1hdHJpeENsaWVudFBlZyB9IGZyb20gXCIuLi8uLi8uLi9NYXRyaXhDbGllbnRQZWdcIjtcbmltcG9ydCBNYXRyaXhDbGllbnRDb250ZXh0IGZyb20gXCIuLi8uLi8uLi9jb250ZXh0cy9NYXRyaXhDbGllbnRDb250ZXh0XCI7XG5pbXBvcnQgeyB1c2VQZXJtYWxpbmsgfSBmcm9tIFwiLi4vLi4vLi4vaG9va3MvdXNlUGVybWFsaW5rXCI7XG5pbXBvcnQgUm9vbUF2YXRhciBmcm9tIFwiLi4vYXZhdGFycy9Sb29tQXZhdGFyXCI7XG5pbXBvcnQgTWVtYmVyQXZhdGFyIGZyb20gXCIuLi9hdmF0YXJzL01lbWJlckF2YXRhclwiO1xuaW1wb3J0IHsgX3QgfSBmcm9tIFwiLi4vLi4vLi4vbGFuZ3VhZ2VIYW5kbGVyXCI7XG5pbXBvcnQgeyBJY29uIGFzIFVzZXJJY29uIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3Jlcy9pbWcvY29tcG91bmQvdXNlci5zdmdcIjtcblxuZXhwb3J0IGVudW0gUGlsbFR5cGUge1xuICAgIFVzZXJNZW50aW9uID0gXCJUWVBFX1VTRVJfTUVOVElPTlwiLFxuICAgIFJvb21NZW50aW9uID0gXCJUWVBFX1JPT01fTUVOVElPTlwiLFxuICAgIEF0Um9vbU1lbnRpb24gPSBcIlRZUEVfQVRfUk9PTV9NRU5USU9OXCIsIC8vICdAcm9vbScgbWVudGlvblxuICAgIEV2ZW50SW5TYW1lUm9vbSA9IFwiVFlQRV9FVkVOVF9JTl9TQU1FX1JPT01cIixcbiAgICBFdmVudEluT3RoZXJSb29tID0gXCJUWVBFX0VWRU5UX0lOX09USEVSX1JPT01cIixcbn1cblxuZXhwb3J0IGNvbnN0IHBpbGxSb29tTm90aWZQb3MgPSAodGV4dDogc3RyaW5nIHwgbnVsbCk6IG51bWJlciA9PiB7XG4gICAgcmV0dXJuIHRleHQ/LmluZGV4T2YoXCJAcm9vbVwiKSA/PyAtMTtcbn07XG5cbmV4cG9ydCBjb25zdCBwaWxsUm9vbU5vdGlmTGVuID0gKCk6IG51bWJlciA9PiB7XG4gICAgcmV0dXJuIFwiQHJvb21cIi5sZW5ndGg7XG59O1xuXG5jb25zdCBsaW5rSWNvbiA9IDxMaW5rSWNvbiBjbGFzc05hbWU9XCJteF9QaWxsX0xpbmtJY29uIG14X0Jhc2VBdmF0YXJcIiAvPjtcblxuY29uc3QgUGlsbFJvb21BdmF0YXI6IFJlYWN0LkZDPHtcbiAgICBzaG91bGRTaG93UGlsbEF2YXRhcjogYm9vbGVhbjtcbiAgICByb29tOiBSb29tIHwgbnVsbDtcbn0+ID0gKHsgc2hvdWxkU2hvd1BpbGxBdmF0YXIsIHJvb20gfSkgPT4ge1xuICAgIGlmICghc2hvdWxkU2hvd1BpbGxBdmF0YXIpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHJvb20pIHtcbiAgICAgICAgcmV0dXJuIDxSb29tQXZhdGFyIHJvb209e3Jvb219IHNpemU9XCIxNnB4XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgLz47XG4gICAgfVxuICAgIHJldHVybiBsaW5rSWNvbjtcbn07XG5cbmNvbnN0IFBpbGxNZW1iZXJBdmF0YXI6IFJlYWN0LkZDPHtcbiAgICBzaG91bGRTaG93UGlsbEF2YXRhcjogYm9vbGVhbjtcbiAgICBtZW1iZXI6IFJvb21NZW1iZXIgfCBudWxsO1xufT4gPSAoeyBzaG91bGRTaG93UGlsbEF2YXRhciwgbWVtYmVyIH0pID0+IHtcbiAgICBpZiAoIXNob3VsZFNob3dQaWxsQXZhdGFyKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmIChtZW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIDxNZW1iZXJBdmF0YXIgbWVtYmVyPXttZW1iZXJ9IHNpemU9XCIxNnB4XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgaGlkZVRpdGxlIC8+O1xuICAgIH1cbiAgICByZXR1cm4gPFVzZXJJY29uIGNsYXNzTmFtZT1cIm14X1BpbGxfVXNlckljb24gbXhfQmFzZUF2YXRhclwiIC8+O1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBQaWxsUHJvcHMge1xuICAgIC8vIFRoZSBUeXBlIG9mIHRoaXMgUGlsbC4gSWYgdXJsIGlzIGdpdmVuLCB0aGlzIGlzIGF1dG8tZGV0ZWN0ZWQuXG4gICAgdHlwZT86IFBpbGxUeXBlO1xuICAgIC8vIFRoZSBVUkwgdG8gcGlsbGlmeSAobm8gdmFsaWRhdGlvbiBpcyBkb25lKVxuICAgIHVybD86IHN0cmluZztcbiAgICAvKiogV2hldGhlciB0aGUgcGlsbCBpcyBpbiBhIG1lc3NhZ2UuIEl0IHdpbGwgYWN0IGFzIGEgbGluayB0aGVuLiAqL1xuICAgIGluTWVzc2FnZT86IGJvb2xlYW47XG4gICAgLy8gVGhlIHJvb20gaW4gd2hpY2ggdGhpcyBwaWxsIGlzIGJlaW5nIHJlbmRlcmVkXG4gICAgcm9vbT86IFJvb207XG4gICAgLy8gV2hldGhlciB0byBpbmNsdWRlIGFuIGF2YXRhciBpbiB0aGUgcGlsbFxuICAgIHNob3VsZFNob3dQaWxsQXZhdGFyPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IFBpbGw6IFJlYWN0LkZDPFBpbGxQcm9wcz4gPSAoeyB0eXBlOiBwcm9wVHlwZSwgdXJsLCBpbk1lc3NhZ2UsIHJvb20sIHNob3VsZFNob3dQaWxsQXZhdGFyID0gdHJ1ZSB9KSA9PiB7XG4gICAgY29uc3QgeyBldmVudCwgbWVtYmVyLCBvbkNsaWNrLCByZXNvdXJjZUlkLCB0YXJnZXRSb29tLCB0ZXh0LCB0eXBlIH0gPSB1c2VQZXJtYWxpbmsoe1xuICAgICAgICByb29tLFxuICAgICAgICB0eXBlOiBwcm9wVHlwZSxcbiAgICAgICAgdXJsLFxuICAgIH0pO1xuXG4gICAgaWYgKCF0eXBlIHx8ICF0ZXh0KSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc05hbWVzKFwibXhfUGlsbFwiLCB7XG4gICAgICAgIG14X0F0Um9vbVBpbGw6IHR5cGUgPT09IFBpbGxUeXBlLkF0Um9vbU1lbnRpb24sXG4gICAgICAgIG14X1Jvb21QaWxsOiB0eXBlID09PSBQaWxsVHlwZS5Sb29tTWVudGlvbixcbiAgICAgICAgbXhfU3BhY2VQaWxsOiB0eXBlID09PSBcInNwYWNlXCIgfHwgdGFyZ2V0Um9vbT8uaXNTcGFjZVJvb20oKSxcbiAgICAgICAgbXhfVXNlclBpbGw6IHR5cGUgPT09IFBpbGxUeXBlLlVzZXJNZW50aW9uLFxuICAgICAgICBteF9Vc2VyUGlsbF9tZTogcmVzb3VyY2VJZCA9PT0gTWF0cml4Q2xpZW50UGVnLnNhZmVHZXQoKS5nZXRVc2VySWQoKSxcbiAgICAgICAgbXhfRXZlbnRQaWxsOiB0eXBlID09PSBQaWxsVHlwZS5FdmVudEluT3RoZXJSb29tIHx8IHR5cGUgPT09IFBpbGxUeXBlLkV2ZW50SW5TYW1lUm9vbSxcbiAgICB9KTtcblxuICAgIGxldCBhdmF0YXI6IFJlYWN0RWxlbWVudCB8IG51bGwgPSBudWxsO1xuICAgIGxldCBwaWxsVGV4dDogc3RyaW5nIHwgbnVsbCA9IHRleHQ7XG5cbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSBQaWxsVHlwZS5FdmVudEluT3RoZXJSb29tOlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGF2YXRhciA9IDxQaWxsUm9vbUF2YXRhciBzaG91bGRTaG93UGlsbEF2YXRhcj17c2hvdWxkU2hvd1BpbGxBdmF0YXJ9IHJvb209e3RhcmdldFJvb219IC8+O1xuICAgICAgICAgICAgICAgIHBpbGxUZXh0ID0gX3QoXCJwaWxsfHBlcm1hbGlua19vdGhlcl9yb29tXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgcm9vbTogdGV4dCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFBpbGxUeXBlLkV2ZW50SW5TYW1lUm9vbTpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgYXZhdGFyID0gPFBpbGxNZW1iZXJBdmF0YXIgc2hvdWxkU2hvd1BpbGxBdmF0YXI9e3Nob3VsZFNob3dQaWxsQXZhdGFyfSBtZW1iZXI9e21lbWJlcn0gLz47XG4gICAgICAgICAgICAgICAgICAgIHBpbGxUZXh0ID0gX3QoXCJwaWxsfHBlcm1hbGlua190aGlzX3Jvb21cIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdXNlcjogdGV4dCxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgYXZhdGFyID0gbGlua0ljb247XG4gICAgICAgICAgICAgICAgICAgIHBpbGxUZXh0ID0gX3QoXCJjb21tb258bWVzc2FnZVwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBQaWxsVHlwZS5BdFJvb21NZW50aW9uOlxuICAgICAgICBjYXNlIFBpbGxUeXBlLlJvb21NZW50aW9uOlxuICAgICAgICBjYXNlIFwic3BhY2VcIjpcbiAgICAgICAgICAgIGF2YXRhciA9IDxQaWxsUm9vbUF2YXRhciBzaG91bGRTaG93UGlsbEF2YXRhcj17c2hvdWxkU2hvd1BpbGxBdmF0YXJ9IHJvb209e3RhcmdldFJvb219IC8+O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgUGlsbFR5cGUuVXNlck1lbnRpb246XG4gICAgICAgICAgICBhdmF0YXIgPSA8UGlsbE1lbWJlckF2YXRhciBzaG91bGRTaG93UGlsbEF2YXRhcj17c2hvdWxkU2hvd1BpbGxBdmF0YXJ9IG1lbWJlcj17bWVtYmVyfSAvPjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgaXNBbmNob3IgPSAhIWluTWVzc2FnZSAmJiAhIXVybDtcbiAgICByZXR1cm4gKFxuICAgICAgICA8YmRpPlxuICAgICAgICAgICAgPE1hdHJpeENsaWVudENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e01hdHJpeENsaWVudFBlZy5zYWZlR2V0KCl9PlxuICAgICAgICAgICAgICAgIDxUb29sdGlwXG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPXtyZXNvdXJjZUlkID8/IFwiXCJ9XG4gICAgICAgICAgICAgICAgICAgIG9wZW49e3Jlc291cmNlSWQgPyB1bmRlZmluZWQgOiBmYWxzZX1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgICBpc1RyaWdnZXJJbnRlcmFjdGl2ZT17aXNBbmNob3J9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7aXNBbmNob3IgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzc05hbWU9e2NsYXNzZXN9IGhyZWY9e3VybH0gb25DbGljaz17b25DbGlja30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2F2YXRhcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJteF9QaWxsX3RleHRcIj57cGlsbFRleHR9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtjbGFzc2VzfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7YXZhdGFyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm14X1BpbGxfdGV4dFwiPntwaWxsVGV4dH08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgPC9NYXRyaXhDbGllbnRDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgICA8L2JkaT5cbiAgICApO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQVFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFdBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFFLFlBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLEtBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFJLGdCQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxvQkFBQSxHQUFBTixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU0sYUFBQSxHQUFB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