UNPKG

matrix-react-sdk

Version:
107 lines (104 loc) 21.3 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.showLabsFlags = exports.default = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireDefault(require("react")); var _lodash = require("lodash"); var _languageHandler = require("../../../../../languageHandler"); var _SettingsStore = _interopRequireDefault(require("../../../../../settings/SettingsStore")); var _SettingLevel = require("../../../../../settings/SettingLevel"); var _SdkConfig = _interopRequireDefault(require("../../../../../SdkConfig")); var _BetaCard = _interopRequireDefault(require("../../../beta/BetaCard")); var _SettingsFlag = _interopRequireDefault(require("../../../elements/SettingsFlag")); var _Settings = require("../../../../../settings/Settings"); var _maps = require("../../../../../utils/maps"); var _SettingsSection = require("../../shared/SettingsSection"); var _SettingsSubsection = _interopRequireWildcard(require("../../shared/SettingsSubsection")); var _SettingsTab = _interopRequireDefault(require("../SettingsTab")); 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 2019-2024 New Vector Ltd. SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ const showLabsFlags = () => { return _SdkConfig.default.get("show_labs_settings") || _SettingsStore.default.getValue("developerMode"); }; exports.showLabsFlags = showLabsFlags; class LabsUserSettingsTab extends _react.default.Component { constructor(props) { super(props); (0, _defineProperty2.default)(this, "labs", void 0); (0, _defineProperty2.default)(this, "betas", void 0); const features = _SettingsStore.default.getFeatureSettingNames(); const [labs, betas] = features.reduce((arr, f) => { arr[_SettingsStore.default.getBetaInfo(f) ? 1 : 0].push(f); return arr; }, [[], []]); this.labs = labs; this.betas = betas; if (!showLabsFlags()) { this.labs = []; } } render() { let betaSection; if (this.betas.length) { betaSection = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, this.betas.map(f => /*#__PURE__*/_react.default.createElement(_BetaCard.default, { key: f, featureId: f }))); } let labsSections; if (this.labs.length) { const groups = new _maps.EnhancedMap(); this.labs.forEach(f => { groups.getOrCreate(_SettingsStore.default.getLabGroup(f), []).push( /*#__PURE__*/_react.default.createElement(_SettingsFlag.default, { level: _SettingLevel.SettingLevel.DEVICE, name: f, key: f })); }); groups.getOrCreate(_Settings.LabGroup.Experimental, []).push( /*#__PURE__*/_react.default.createElement(_SettingsFlag.default, { key: "lowBandwidth", name: "lowBandwidth", level: _SettingLevel.SettingLevel.DEVICE })); groups.getOrCreate(_Settings.LabGroup.Analytics, []).push( /*#__PURE__*/_react.default.createElement(_SettingsFlag.default, { key: "automaticErrorReporting", name: "automaticErrorReporting", level: _SettingLevel.SettingLevel.DEVICE }), /*#__PURE__*/_react.default.createElement(_SettingsFlag.default, { key: "automaticDecryptionErrorReporting", name: "automaticDecryptionErrorReporting", level: _SettingLevel.SettingLevel.DEVICE })); labsSections = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, (0, _lodash.sortBy)(Array.from(groups.entries()), "0").map(([group, flags]) => /*#__PURE__*/_react.default.createElement(_SettingsSubsection.default, { key: group, "data-testid": `labs-group-${group}`, heading: (0, _languageHandler._t)(_Settings.labGroupNames[group]) }, flags))); } return /*#__PURE__*/_react.default.createElement(_SettingsTab.default, null, /*#__PURE__*/_react.default.createElement(_SettingsSection.SettingsSection, { heading: (0, _languageHandler._t)("labs|beta_section") }, /*#__PURE__*/_react.default.createElement(_SettingsSubsection.SettingsSubsectionText, null, (0, _languageHandler._t)("labs|beta_description", { brand: _SdkConfig.default.get("brand") })), betaSection), labsSections && /*#__PURE__*/_react.default.createElement(_SettingsSection.SettingsSection, { heading: (0, _languageHandler._t)("labs|experimental_section") }, /*#__PURE__*/_react.default.createElement(_SettingsSubsection.SettingsSubsectionText, null, (0, _languageHandler._t)("labs|experimental_description", {}, { a: sub => { return /*#__PURE__*/_react.default.createElement("a", { href: "https://github.com/vector-im/element-web/blob/develop/docs/labs.md", rel: "noreferrer noopener", target: "_blank" }, sub); } })), labsSections)); } } exports.default = LabsUserSettingsTab; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9sb2Rhc2giLCJfbGFuZ3VhZ2VIYW5kbGVyIiwiX1NldHRpbmdzU3RvcmUiLCJfU2V0dGluZ0xldmVsIiwiX1Nka0NvbmZpZyIsIl9CZXRhQ2FyZCIsIl9TZXR0aW5nc0ZsYWciLCJfU2V0dGluZ3MiLCJfbWFwcyIsIl9TZXR0aW5nc1NlY3Rpb24iLCJfU2V0dGluZ3NTdWJzZWN0aW9uIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfU2V0dGluZ3NUYWIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJzaG93TGFic0ZsYWdzIiwiU2RrQ29uZmlnIiwiU2V0dGluZ3NTdG9yZSIsImdldFZhbHVlIiwiZXhwb3J0cyIsIkxhYnNVc2VyU2V0dGluZ3NUYWIiLCJSZWFjdCIsIkNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJfZGVmaW5lUHJvcGVydHkyIiwiZmVhdHVyZXMiLCJnZXRGZWF0dXJlU2V0dGluZ05hbWVzIiwibGFicyIsImJldGFzIiwicmVkdWNlIiwiYXJyIiwiZiIsImdldEJldGFJbmZvIiwicHVzaCIsInJlbmRlciIsImJldGFTZWN0aW9uIiwibGVuZ3RoIiwiY3JlYXRlRWxlbWVudCIsIkZyYWdtZW50IiwibWFwIiwia2V5IiwiZmVhdHVyZUlkIiwibGFic1NlY3Rpb25zIiwiZ3JvdXBzIiwiRW5oYW5jZWRNYXAiLCJmb3JFYWNoIiwiZ2V0T3JDcmVhdGUiLCJnZXRMYWJHcm91cCIsImxldmVsIiwiU2V0dGluZ0xldmVsIiwiREVWSUNFIiwibmFtZSIsIkxhYkdyb3VwIiwiRXhwZXJpbWVudGFsIiwiQW5hbHl0aWNzIiwic29ydEJ5IiwiQXJyYXkiLCJmcm9tIiwiZW50cmllcyIsImdyb3VwIiwiZmxhZ3MiLCJoZWFkaW5nIiwiX3QiLCJsYWJHcm91cE5hbWVzIiwiU2V0dGluZ3NTZWN0aW9uIiwiU2V0dGluZ3NTdWJzZWN0aW9uVGV4dCIsImJyYW5kIiwic3ViIiwiaHJlZiIsInJlbCIsInRhcmdldCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL3RhYnMvdXNlci9MYWJzVXNlclNldHRpbmdzVGFiLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5XG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgc29ydEJ5IH0gZnJvbSBcImxvZGFzaFwiO1xuXG5pbXBvcnQgeyBfdCB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9sYW5ndWFnZUhhbmRsZXJcIjtcbmltcG9ydCBTZXR0aW5nc1N0b3JlIGZyb20gXCIuLi8uLi8uLi8uLi8uLi9zZXR0aW5ncy9TZXR0aW5nc1N0b3JlXCI7XG5pbXBvcnQgeyBTZXR0aW5nTGV2ZWwgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vc2V0dGluZ3MvU2V0dGluZ0xldmVsXCI7XG5pbXBvcnQgU2RrQ29uZmlnIGZyb20gXCIuLi8uLi8uLi8uLi8uLi9TZGtDb25maWdcIjtcbmltcG9ydCBCZXRhQ2FyZCBmcm9tIFwiLi4vLi4vLi4vYmV0YS9CZXRhQ2FyZFwiO1xuaW1wb3J0IFNldHRpbmdzRmxhZyBmcm9tIFwiLi4vLi4vLi4vZWxlbWVudHMvU2V0dGluZ3NGbGFnXCI7XG5pbXBvcnQgeyBMYWJHcm91cCwgbGFiR3JvdXBOYW1lcyB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9zZXR0aW5ncy9TZXR0aW5nc1wiO1xuaW1wb3J0IHsgRW5oYW5jZWRNYXAgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vdXRpbHMvbWFwc1wiO1xuaW1wb3J0IHsgU2V0dGluZ3NTZWN0aW9uIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9TZXR0aW5nc1NlY3Rpb25cIjtcbmltcG9ydCBTZXR0aW5nc1N1YnNlY3Rpb24sIHsgU2V0dGluZ3NTdWJzZWN0aW9uVGV4dCB9IGZyb20gXCIuLi8uLi9zaGFyZWQvU2V0dGluZ3NTdWJzZWN0aW9uXCI7XG5pbXBvcnQgU2V0dGluZ3NUYWIgZnJvbSBcIi4uL1NldHRpbmdzVGFiXCI7XG5cbmV4cG9ydCBjb25zdCBzaG93TGFic0ZsYWdzID0gKCk6IGJvb2xlYW4gPT4ge1xuICAgIHJldHVybiBTZGtDb25maWcuZ2V0KFwic2hvd19sYWJzX3NldHRpbmdzXCIpIHx8IFNldHRpbmdzU3RvcmUuZ2V0VmFsdWUoXCJkZXZlbG9wZXJNb2RlXCIpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTGFic1VzZXJTZXR0aW5nc1RhYiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDx7fT4ge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbGFiczogc3RyaW5nW107XG4gICAgcHJpdmF0ZSByZWFkb25seSBiZXRhczogc3RyaW5nW107XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHJvcHM6IHt9KSB7XG4gICAgICAgIHN1cGVyKHByb3BzKTtcblxuICAgICAgICBjb25zdCBmZWF0dXJlcyA9IFNldHRpbmdzU3RvcmUuZ2V0RmVhdHVyZVNldHRpbmdOYW1lcygpO1xuICAgICAgICBjb25zdCBbbGFicywgYmV0YXNdID0gZmVhdHVyZXMucmVkdWNlKFxuICAgICAgICAgICAgKGFyciwgZikgPT4ge1xuICAgICAgICAgICAgICAgIGFycltTZXR0aW5nc1N0b3JlLmdldEJldGFJbmZvKGYpID8gMSA6IDBdLnB1c2goZik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFycjtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBbW10sIFtdXSBhcyBbc3RyaW5nW10sIHN0cmluZ1tdXSxcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmxhYnMgPSBsYWJzO1xuICAgICAgICB0aGlzLmJldGFzID0gYmV0YXM7XG5cbiAgICAgICAgaWYgKCFzaG93TGFic0ZsYWdzKCkpIHtcbiAgICAgICAgICAgIHRoaXMubGFicyA9IFtdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHJlbmRlcigpOiBSZWFjdC5SZWFjdE5vZGUge1xuICAgICAgICBsZXQgYmV0YVNlY3Rpb246IEpTWC5FbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgICAgICBpZiAodGhpcy5iZXRhcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGJldGFTZWN0aW9uID0gKFxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgIHt0aGlzLmJldGFzLm1hcCgoZikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPEJldGFDYXJkIGtleT17Zn0gZmVhdHVyZUlkPXtmfSAvPlxuICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbGFic1NlY3Rpb25zOiBKU1guRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHRoaXMubGFicy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwcyA9IG5ldyBFbmhhbmNlZE1hcDxMYWJHcm91cCwgSlNYLkVsZW1lbnRbXT4oKTtcbiAgICAgICAgICAgIHRoaXMubGFicy5mb3JFYWNoKChmKSA9PiB7XG4gICAgICAgICAgICAgICAgZ3JvdXBzXG4gICAgICAgICAgICAgICAgICAgIC5nZXRPckNyZWF0ZShTZXR0aW5nc1N0b3JlLmdldExhYkdyb3VwKGYpISwgW10pXG4gICAgICAgICAgICAgICAgICAgIC5wdXNoKDxTZXR0aW5nc0ZsYWcgbGV2ZWw9e1NldHRpbmdMZXZlbC5ERVZJQ0V9IG5hbWU9e2Z9IGtleT17Zn0gLz4pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGdyb3Vwc1xuICAgICAgICAgICAgICAgIC5nZXRPckNyZWF0ZShMYWJHcm91cC5FeHBlcmltZW50YWwsIFtdKVxuICAgICAgICAgICAgICAgIC5wdXNoKDxTZXR0aW5nc0ZsYWcga2V5PVwibG93QmFuZHdpZHRoXCIgbmFtZT1cImxvd0JhbmR3aWR0aFwiIGxldmVsPXtTZXR0aW5nTGV2ZWwuREVWSUNFfSAvPik7XG5cbiAgICAgICAgICAgIGdyb3Vwc1xuICAgICAgICAgICAgICAgIC5nZXRPckNyZWF0ZShMYWJHcm91cC5BbmFseXRpY3MsIFtdKVxuICAgICAgICAgICAgICAgIC5wdXNoKFxuICAgICAgICAgICAgICAgICAgICA8U2V0dGluZ3NGbGFnXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9XCJhdXRvbWF0aWNFcnJvclJlcG9ydGluZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiYXV0b21hdGljRXJyb3JSZXBvcnRpbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbGV2ZWw9e1NldHRpbmdMZXZlbC5ERVZJQ0V9XG4gICAgICAgICAgICAgICAgICAgIC8+LFxuICAgICAgICAgICAgICAgICAgICA8U2V0dGluZ3NGbGFnXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9XCJhdXRvbWF0aWNEZWNyeXB0aW9uRXJyb3JSZXBvcnRpbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImF1dG9tYXRpY0RlY3J5cHRpb25FcnJvclJlcG9ydGluZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXZlbD17U2V0dGluZ0xldmVsLkRFVklDRX1cbiAgICAgICAgICAgICAgICAgICAgLz4sXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgbGFic1NlY3Rpb25zID0gKFxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgIHtzb3J0QnkoQXJyYXkuZnJvbShncm91cHMuZW50cmllcygpKSwgXCIwXCIpLm1hcCgoW2dyb3VwLCBmbGFnc10pID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxTZXR0aW5nc1N1YnNlY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2dyb3VwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtgbGFicy1ncm91cC0ke2dyb3VwfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGluZz17X3QobGFiR3JvdXBOYW1lc1tncm91cF0pfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmbGFnc31cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvU2V0dGluZ3NTdWJzZWN0aW9uPlxuICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPFNldHRpbmdzVGFiPlxuICAgICAgICAgICAgICAgIDxTZXR0aW5nc1NlY3Rpb24gaGVhZGluZz17X3QoXCJsYWJzfGJldGFfc2VjdGlvblwiKX0+XG4gICAgICAgICAgICAgICAgICAgIDxTZXR0aW5nc1N1YnNlY3Rpb25UZXh0PlxuICAgICAgICAgICAgICAgICAgICAgICAge190KFwibGFic3xiZXRhX2Rlc2NyaXB0aW9uXCIsIHsgYnJhbmQ6IFNka0NvbmZpZy5nZXQoXCJicmFuZFwiKSB9KX1cbiAgICAgICAgICAgICAgICAgICAgPC9TZXR0aW5nc1N1YnNlY3Rpb25UZXh0PlxuICAgICAgICAgICAgICAgICAgICB7YmV0YVNlY3Rpb259XG4gICAgICAgICAgICAgICAgPC9TZXR0aW5nc1NlY3Rpb24+XG5cbiAgICAgICAgICAgICAgICB7bGFic1NlY3Rpb25zICYmIChcbiAgICAgICAgICAgICAgICAgICAgPFNldHRpbmdzU2VjdGlvbiBoZWFkaW5nPXtfdChcImxhYnN8ZXhwZXJpbWVudGFsX3NlY3Rpb25cIil9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPFNldHRpbmdzU3Vic2VjdGlvblRleHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge190KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImxhYnN8ZXhwZXJpbWVudGFsX2Rlc2NyaXB0aW9uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhOiAoc3ViKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL2dpdGh1Yi5jb20vdmVjdG9yLWltL2VsZW1lbnQtd2ViL2Jsb2IvZGV2ZWxvcC9kb2NzL2xhYnMubWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsPVwibm9yZWZlcnJlciBub29wZW5lclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c3VifVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvU2V0dGluZ3NTdWJzZWN0aW9uVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtsYWJzU2VjdGlvbnN9XG4gICAgICAgICAgICAgICAgICAgIDwvU2V0dGluZ3NTZWN0aW9uPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1NldHRpbmdzVGFiPlxuICAgICAgICApO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFPQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFFQSxJQUFBRSxnQkFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsY0FBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksYUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssVUFBQSxHQUFBTixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU0sU0FBQSxHQUFBUCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU8sYUFBQSxHQUFBUixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVEsU0FBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsS0FBQSxHQUFBVCxPQUFBO0FBQ0EsSUFBQVUsZ0JBQUEsR0FBQVYsT0FBQTtBQUNBLElBQUFXLG1CQUFBLEdBQUFDLHVCQUFBLENBQUFaLE9BQUE7QUFDQSxJQUFBYSxZQUFBLEdBQUFkLHNCQUFBLENBQUFDLE9BQUE7QUFBeUMsU0FBQWMseUJBQUFDLENBQUEs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