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
JavaScript
"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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