UNPKG

kepler.gl

Version:

kepler.gl is a webgl based application to visualize large scale location data in the browser

95 lines (94 loc) 21.9 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral")); var _react = _interopRequireWildcard(require("/Users/ihordykhta/Desktop/unfolded/kepler.gl/node_modules/react")); var _styledComponents = _interopRequireDefault(require("/Users/ihordykhta/Desktop/unfolded/kepler.gl/node_modules/styled-components")); var _src = require("/Users/ihordykhta/Desktop/unfolded/kepler.gl/src/localization/src"); var _src2 = require("/Users/ihordykhta/Desktop/unfolded/kepler.gl/src/utils/src"); var _mapLayerGroupColorPicker = _interopRequireDefault(require("./map-layer-group-color-picker")); var _styledComponents2 = require("../../common/styled-components"); var _templateObject, _templateObject2; // SPDX-License-Identifier: MIT // Copyright contributors to the kepler.gl project function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(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; } function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var StyledLayerGroupItem = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n margin-bottom: 10px;\n display: flex;\n justify-content: space-between;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n .layer-group__visibility-toggle {\n margin-right: 12px;\n }\n"]))); var LayerLabel = (0, _styledComponents["default"])(_styledComponents2.PanelLabelBold)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n"])), function (props) { return props.$active ? props.theme.textColor : props.theme.labelColor; }); LayerGroupItemFactory.deps = [_mapLayerGroupColorPicker["default"]]; function LayerGroupItemFactory(LayerGroupColorPicker) { var LayerGroupItem = function LayerGroupItem(_ref) { var PanelHeaderAction = _ref.PanelHeaderAction, onChange = _ref.onChange, slug = _ref.slug, layers = _ref.layers, topLayers = _ref.topLayers, actionIcons = _ref.actionIcons, color = _ref.color, onColorChange = _ref.onColorChange, _ref$isVisibilityTogg = _ref.isVisibilityToggleAvailable, isVisibilityToggleAvailable = _ref$isVisibilityTogg === void 0 ? true : _ref$isVisibilityTogg, _ref$isMoveToTopAvail = _ref.isMoveToTopAvailable, isMoveToTopAvailable = _ref$isMoveToTopAvail === void 0 ? true : _ref$isMoveToTopAvail, _ref$isColorPickerAva = _ref.isColorPickerAvailable, isColorPickerAvailable = _ref$isColorPickerAva === void 0 ? false : _ref$isColorPickerAva; var onVisibilityToggle = (0, _react.useCallback)(function () { onChange({ visibleLayerGroups: _objectSpread(_objectSpread({}, layers), {}, (0, _defineProperty2["default"])({}, slug, !layers[slug])) }); }, [onChange, layers, slug]); var onMoveToTopToggle = (0, _react.useCallback)(function () { onChange({ topLayerGroups: _objectSpread(_objectSpread({}, topLayers), {}, (0, _defineProperty2["default"])({}, slug, !topLayers[slug])) }); }, [onChange, topLayers, slug]); return /*#__PURE__*/_react["default"].createElement(StyledLayerGroupItem, { className: "layer-group__select" }, isVisibilityToggleAvailable ? /*#__PURE__*/_react["default"].createElement(_styledComponents2.PanelLabelWrapper, null, /*#__PURE__*/_react["default"].createElement(PanelHeaderAction, { className: "layer-group__visibility-toggle", id: "".concat(slug, "-toggle"), tooltip: layers[slug] ? 'tooltip.hide' : 'tooltip.show', onClick: onVisibilityToggle, IconComponent: layers[slug] ? actionIcons.visible : actionIcons.hidden, active: layers[slug], flush: true }), /*#__PURE__*/_react["default"].createElement(LayerLabel, { $active: layers[slug] }, /*#__PURE__*/_react["default"].createElement(_src.FormattedMessage, { id: "mapLayers.".concat((0, _src2.camelize)(slug)) }))) : /*#__PURE__*/_react["default"].createElement(_styledComponents2.CenterFlexbox, null, /*#__PURE__*/_react["default"].createElement(LayerLabel, { style: { marginLeft: '28px' }, $active: true }, /*#__PURE__*/_react["default"].createElement(_src.FormattedMessage, { id: "mapLayers.".concat((0, _src2.camelize)(slug)) }))), /*#__PURE__*/_react["default"].createElement(_styledComponents2.CenterFlexbox, { className: "layer-group__trailing-actions" }, isColorPickerAvailable && color ? /*#__PURE__*/_react["default"].createElement(LayerGroupColorPicker, { slug: slug, color: color, onColorChange: onColorChange, extraMarginRight: isMoveToTopAvailable, disabled: isVisibilityToggleAvailable && !layers[slug] }) : null, isMoveToTopAvailable ? /*#__PURE__*/_react["default"].createElement(PanelHeaderAction, { id: "".concat(slug, "-top"), tooltip: "tooltip.moveToTop", disabled: !layers[slug], IconComponent: actionIcons.top, active: topLayers[slug], onClick: onMoveToTopToggle }) : null)); }; return LayerGroupItem; } var _default = exports["default"] = LayerGroupItemFactory; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfc3JjIiwiX3NyYzIiLCJfbWFwTGF5ZXJHcm91cENvbG9yUGlja2VyIiwiX3N0eWxlZENvbXBvbmVudHMyIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIlN0eWxlZExheWVyR3JvdXBJdGVtIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJMYXllckxhYmVsIiwiUGFuZWxMYWJlbEJvbGQiLCJwcm9wcyIsIiRhY3RpdmUiLCJ0aGVtZSIsInRleHRDb2xvciIsImxhYmVsQ29sb3IiLCJMYXllckdyb3VwSXRlbUZhY3RvcnkiLCJkZXBzIiwiTGF5ZXJHcm91cENvbG9yUGlja2VyRmFjdG9yeSIsIkxheWVyR3JvdXBDb2xvclBpY2tlciIsIkxheWVyR3JvdXBJdGVtIiwiX3JlZiIsIlBhbmVsSGVhZGVyQWN0aW9uIiwib25DaGFuZ2UiLCJzbHVnIiwibGF5ZXJzIiwidG9wTGF5ZXJzIiwiYWN0aW9uSWNvbnMiLCJjb2xvciIsIm9uQ29sb3JDaGFuZ2UiLCJfcmVmJGlzVmlzaWJpbGl0eVRvZ2ciLCJpc1Zpc2liaWxpdHlUb2dnbGVBdmFpbGFibGUiLCJfcmVmJGlzTW92ZVRvVG9wQXZhaWwiLCJpc01vdmVUb1RvcEF2YWlsYWJsZSIsIl9yZWYkaXNDb2xvclBpY2tlckF2YSIsImlzQ29sb3JQaWNrZXJBdmFpbGFibGUiLCJvblZpc2liaWxpdHlUb2dnbGUiLCJ1c2VDYWxsYmFjayIsInZpc2libGVMYXllckdyb3VwcyIsIm9uTW92ZVRvVG9wVG9nZ2xlIiwidG9wTGF5ZXJHcm91cHMiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwiUGFuZWxMYWJlbFdyYXBwZXIiLCJpZCIsImNvbmNhdCIsInRvb2x0aXAiLCJvbkNsaWNrIiwiSWNvbkNvbXBvbmVudCIsInZpc2libGUiLCJoaWRkZW4iLCJhY3RpdmUiLCJmbHVzaCIsIkZvcm1hdHRlZE1lc3NhZ2UiLCJjYW1lbGl6ZSIsIkNlbnRlckZsZXhib3giLCJzdHlsZSIsIm1hcmdpbkxlZnQiLCJleHRyYU1hcmdpblJpZ2h0IiwiZGlzYWJsZWQiLCJ0b3AiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9zcmMvc2lkZS1wYW5lbC9tYXAtc3R5bGUtcGFuZWwvbWFwLWxheWVyLWdyb3VwLWl0ZW0udHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcblxuaW1wb3J0IHtGb3JtYXR0ZWRNZXNzYWdlfSBmcm9tICdAa2VwbGVyLmdsL2xvY2FsaXphdGlvbic7XG5pbXBvcnQge2NhbWVsaXplfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7UkdCQ29sb3J9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtNYXBDb25maWdDaGFuZ2VVcGRhdGVyQWN0aW9ufSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuaW1wb3J0IHtNYXBTdHlsZX0gZnJvbSAnQGtlcGxlci5nbC9yZWR1Y2Vycyc7XG5cbmltcG9ydCBMYXllckdyb3VwQ29sb3JQaWNrZXJGYWN0b3J5IGZyb20gJy4vbWFwLWxheWVyLWdyb3VwLWNvbG9yLXBpY2tlcic7XG5pbXBvcnQge1BhbmVsSGVhZGVyQWN0aW9uUHJvcHMsIFBhbmVsSGVhZGVyQWN0aW9uSWNvbn0gZnJvbSAnLi4vcGFuZWwtaGVhZGVyLWFjdGlvbic7XG5pbXBvcnQge1BhbmVsTGFiZWxCb2xkLCBDZW50ZXJGbGV4Ym94LCBQYW5lbExhYmVsV3JhcHBlcn0gZnJvbSAnLi4vLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcblxuY29uc3QgU3R5bGVkTGF5ZXJHcm91cEl0ZW0gPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLmxheWVyLWdyb3VwX192aXNpYmlsaXR5LXRvZ2dsZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICB9XG5gO1xuXG5jb25zdCBMYXllckxhYmVsID0gc3R5bGVkKFBhbmVsTGFiZWxCb2xkKTx7JGFjdGl2ZTogYm9vbGVhbn0+YFxuICBjb2xvcjogJHtwcm9wcyA9PiAocHJvcHMuJGFjdGl2ZSA/IHByb3BzLnRoZW1lLnRleHRDb2xvciA6IHByb3BzLnRoZW1lLmxhYmVsQ29sb3IpfTtcbmA7XG5cbmV4cG9ydCB0eXBlIExheWVyR3JvdXBJdGVtQWN0aW9uSWNvbnMgPSB7XG4gIHZpc2libGU6IFBhbmVsSGVhZGVyQWN0aW9uSWNvbjtcbiAgaGlkZGVuOiBQYW5lbEhlYWRlckFjdGlvbkljb247XG4gIHRvcDogUGFuZWxIZWFkZXJBY3Rpb25JY29uO1xufTtcblxuZXhwb3J0IHR5cGUgTGF5ZXJHcm91cEl0ZW1Qcm9wcyA9IHtcbiAgUGFuZWxIZWFkZXJBY3Rpb246IFJlYWN0LkZDPFBhbmVsSGVhZGVyQWN0aW9uUHJvcHM+O1xuICBvbkNoYW5nZTogKHBkOiBNYXBDb25maWdDaGFuZ2VVcGRhdGVyQWN0aW9uWydwYXlsb2FkJ10pID0+IHZvaWQ7XG4gIHNsdWc6IHN0cmluZztcbiAgbGF5ZXJzOiBNYXBTdHlsZVsndmlzaWJsZUxheWVyR3JvdXBzJ107XG4gIHRvcExheWVyczogTWFwU3R5bGVbJ3RvcExheWVyR3JvdXBzJ107XG4gIGFjdGlvbkljb25zOiBMYXllckdyb3VwSXRlbUFjdGlvbkljb25zO1xuICBjb2xvcjogUkdCQ29sb3IgfCBudWxsO1xuICBvbkNvbG9yQ2hhbmdlOiAocGQ6IFJHQkNvbG9yKSA9PiB2b2lkO1xuICBpc1Zpc2liaWxpdHlUb2dnbGVBdmFpbGFibGU/OiBib29sZWFuO1xuICBpc01vdmVUb1RvcEF2YWlsYWJsZT86IGJvb2xlYW47XG4gIGlzQ29sb3JQaWNrZXJBdmFpbGFibGU/OiBib29sZWFuO1xufTtcblxuTGF5ZXJHcm91cEl0ZW1GYWN0b3J5LmRlcHMgPSBbTGF5ZXJHcm91cENvbG9yUGlja2VyRmFjdG9yeV07XG5cbmZ1bmN0aW9uIExheWVyR3JvdXBJdGVtRmFjdG9yeShMYXllckdyb3VwQ29sb3JQaWNrZXIpIHtcbiAgY29uc3QgTGF5ZXJHcm91cEl0ZW06IFJlYWN0LkZDPExheWVyR3JvdXBJdGVtUHJvcHM+ID0gKHtcbiAgICBQYW5lbEhlYWRlckFjdGlvbixcbiAgICBvbkNoYW5nZSxcbiAgICBzbHVnLFxuICAgIGxheWVycyxcbiAgICB0b3BMYXllcnMsXG4gICAgYWN0aW9uSWNvbnMsXG4gICAgY29sb3IsXG4gICAgb25Db2xvckNoYW5nZSxcbiAgICBpc1Zpc2liaWxpdHlUb2dnbGVBdmFpbGFibGUgPSB0cnVlLFxuICAgIGlzTW92ZVRvVG9wQXZhaWxhYmxlID0gdHJ1ZSxcbiAgICBpc0NvbG9yUGlja2VyQXZhaWxhYmxlID0gZmFsc2VcbiAgfSkgPT4ge1xuICAgIGNvbnN0IG9uVmlzaWJpbGl0eVRvZ2dsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIG9uQ2hhbmdlKHtcbiAgICAgICAgdmlzaWJsZUxheWVyR3JvdXBzOiB7XG4gICAgICAgICAgLi4ubGF5ZXJzLFxuICAgICAgICAgIFtzbHVnXTogIWxheWVyc1tzbHVnXVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9LCBbb25DaGFuZ2UsIGxheWVycywgc2x1Z10pO1xuXG4gICAgY29uc3Qgb25Nb3ZlVG9Ub3BUb2dnbGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBvbkNoYW5nZSh7XG4gICAgICAgIHRvcExheWVyR3JvdXBzOiB7XG4gICAgICAgICAgLi4udG9wTGF5ZXJzLFxuICAgICAgICAgIFtzbHVnXTogIXRvcExheWVyc1tzbHVnXVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9LCBbb25DaGFuZ2UsIHRvcExheWVycywgc2x1Z10pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRMYXllckdyb3VwSXRlbSBjbGFzc05hbWU9XCJsYXllci1ncm91cF9fc2VsZWN0XCI+XG4gICAgICAgIHtpc1Zpc2liaWxpdHlUb2dnbGVBdmFpbGFibGUgPyAoXG4gICAgICAgICAgPFBhbmVsTGFiZWxXcmFwcGVyPlxuICAgICAgICAgICAgPFBhbmVsSGVhZGVyQWN0aW9uXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImxheWVyLWdyb3VwX192aXNpYmlsaXR5LXRvZ2dsZVwiXG4gICAgICAgICAgICAgIGlkPXtgJHtzbHVnfS10b2dnbGVgfVxuICAgICAgICAgICAgICB0b29sdGlwPXtsYXllcnNbc2x1Z10gPyAndG9vbHRpcC5oaWRlJyA6ICd0b29sdGlwLnNob3cnfVxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblZpc2liaWxpdHlUb2dnbGV9XG4gICAgICAgICAgICAgIEljb25Db21wb25lbnQ9e2xheWVyc1tzbHVnXSA/IGFjdGlvbkljb25zLnZpc2libGUgOiBhY3Rpb25JY29ucy5oaWRkZW59XG4gICAgICAgICAgICAgIGFjdGl2ZT17bGF5ZXJzW3NsdWddfVxuICAgICAgICAgICAgICBmbHVzaFxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxMYXllckxhYmVsICRhY3RpdmU9e2xheWVyc1tzbHVnXX0+XG4gICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXtgbWFwTGF5ZXJzLiR7Y2FtZWxpemUoc2x1Zyl9YH0gLz5cbiAgICAgICAgICAgIDwvTGF5ZXJMYWJlbD5cbiAgICAgICAgICA8L1BhbmVsTGFiZWxXcmFwcGVyPlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxDZW50ZXJGbGV4Ym94PlxuICAgICAgICAgICAgPExheWVyTGFiZWwgc3R5bGU9e3ttYXJnaW5MZWZ0OiAnMjhweCd9fSAkYWN0aXZlPXt0cnVlfT5cbiAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9e2BtYXBMYXllcnMuJHtjYW1lbGl6ZShzbHVnKX1gfSAvPlxuICAgICAgICAgICAgPC9MYXllckxhYmVsPlxuICAgICAgICAgIDwvQ2VudGVyRmxleGJveD5cbiAgICAgICAgKX1cbiAgICAgICAgPENlbnRlckZsZXhib3ggY2xhc3NOYW1lPVwibGF5ZXItZ3JvdXBfX3RyYWlsaW5nLWFjdGlvbnNcIj5cbiAgICAgICAgICB7aXNDb2xvclBpY2tlckF2YWlsYWJsZSAmJiBjb2xvciA/IChcbiAgICAgICAgICAgIDxMYXllckdyb3VwQ29sb3JQaWNrZXJcbiAgICAgICAgICAgICAgc2x1Zz17c2x1Z31cbiAgICAgICAgICAgICAgY29sb3I9e2NvbG9yfVxuICAgICAgICAgICAgICBvbkNvbG9yQ2hhbmdlPXtvbkNvbG9yQ2hhbmdlfVxuICAgICAgICAgICAgICBleHRyYU1hcmdpblJpZ2h0PXtpc01vdmVUb1RvcEF2YWlsYWJsZX1cbiAgICAgICAgICAgICAgZGlzYWJsZWQ9e2lzVmlzaWJpbGl0eVRvZ2dsZUF2YWlsYWJsZSAmJiAhbGF5ZXJzW3NsdWddfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICB7aXNNb3ZlVG9Ub3BBdmFpbGFibGUgPyAoXG4gICAgICAgICAgICA8UGFuZWxIZWFkZXJBY3Rpb25cbiAgICAgICAgICAgICAgaWQ9e2Ake3NsdWd9LXRvcGB9XG4gICAgICAgICAgICAgIHRvb2x0aXA9XCJ0b29sdGlwLm1vdmVUb1RvcFwiXG4gICAgICAgICAgICAgIGRpc2FibGVkPXshbGF5ZXJzW3NsdWddfVxuICAgICAgICAgICAgICBJY29uQ29tcG9uZW50PXthY3Rpb25JY29ucy50b3B9XG4gICAgICAgICAgICAgIGFjdGl2ZT17dG9wTGF5ZXJzW3NsdWddfVxuICAgICAgICAgICAgICBvbkNsaWNrPXtvbk1vdmVUb1RvcFRvZ2dsZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvQ2VudGVyRmxleGJveD5cbiAgICAgIDwvU3R5bGVkTGF5ZXJHcm91cEl0ZW0+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gTGF5ZXJHcm91cEl0ZW07XG59XG5cbmV4cG9ydCBkZWZhdWx0IExheWVyR3JvdXBJdGVtRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBRyxJQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxLQUFBLEdBQUFKLE9BQUE7QUFLQSxJQUFBSyx5QkFBQSxHQUFBSCxzQkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQU0sa0JBQUEsR0FB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