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.7 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("react")); var _styledComponents = _interopRequireDefault(require("styled-components")); var _localization = require("@kepler.gl/localization"); var _utils = require("@kepler.gl/utils"); 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(_localization.FormattedMessage, { id: "mapLayers.".concat((0, _utils.camelize)(slug)) }))) : /*#__PURE__*/_react["default"].createElement(_styledComponents2.CenterFlexbox, null, /*#__PURE__*/_react["default"].createElement(LayerLabel, { style: { marginLeft: '28px' }, $active: true }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, { id: "mapLayers.".concat((0, _utils.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,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfbG9jYWxpemF0aW9uIiwiX3V0aWxzIiwiX21hcExheWVyR3JvdXBDb2xvclBpY2tlciIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJTdHlsZWRMYXllckdyb3VwSXRlbSIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiTGF5ZXJMYWJlbCIsIlBhbmVsTGFiZWxCb2xkIiwicHJvcHMiLCIkYWN0aXZlIiwidGhlbWUiLCJ0ZXh0Q29sb3IiLCJsYWJlbENvbG9yIiwiTGF5ZXJHcm91cEl0ZW1GYWN0b3J5IiwiZGVwcyIsIkxheWVyR3JvdXBDb2xvclBpY2tlckZhY3RvcnkiLCJMYXllckdyb3VwQ29sb3JQaWNrZXIiLCJMYXllckdyb3VwSXRlbSIsIl9yZWYiLCJQYW5lbEhlYWRlckFjdGlvbiIsIm9uQ2hhbmdlIiwic2x1ZyIsImxheWVycyIsInRvcExheWVycyIsImFjdGlvbkljb25zIiwiY29sb3IiLCJvbkNvbG9yQ2hhbmdlIiwiX3JlZiRpc1Zpc2liaWxpdHlUb2dnIiwiaXNWaXNpYmlsaXR5VG9nZ2xlQXZhaWxhYmxlIiwiX3JlZiRpc01vdmVUb1RvcEF2YWlsIiwiaXNNb3ZlVG9Ub3BBdmFpbGFibGUiLCJfcmVmJGlzQ29sb3JQaWNrZXJBdmEiLCJpc0NvbG9yUGlja2VyQXZhaWxhYmxlIiwib25WaXNpYmlsaXR5VG9nZ2xlIiwidXNlQ2FsbGJhY2siLCJ2aXNpYmxlTGF5ZXJHcm91cHMiLCJvbk1vdmVUb1RvcFRvZ2dsZSIsInRvcExheWVyR3JvdXBzIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsIlBhbmVsTGFiZWxXcmFwcGVyIiwiaWQiLCJjb25jYXQiLCJ0b29sdGlwIiwib25DbGljayIsIkljb25Db21wb25lbnQiLCJ2aXNpYmxlIiwiaGlkZGVuIiwiYWN0aXZlIiwiZmx1c2giLCJGb3JtYXR0ZWRNZXNzYWdlIiwiY2FtZWxpemUiLCJDZW50ZXJGbGV4Ym94Iiwic3R5bGUiLCJtYXJnaW5MZWZ0IiwiZXh0cmFNYXJnaW5SaWdodCIsImRpc2FibGVkIiwidG9wIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NpZGUtcGFuZWwvbWFwLXN0eWxlLXBhbmVsL21hcC1sYXllci1ncm91cC1pdGVtLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHt1c2VDYWxsYmFja30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5cbmltcG9ydCB7Rm9ybWF0dGVkTWVzc2FnZX0gZnJvbSAnQGtlcGxlci5nbC9sb2NhbGl6YXRpb24nO1xuaW1wb3J0IHtjYW1lbGl6ZX0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge1JHQkNvbG9yfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7TWFwQ29uZmlnQ2hhbmdlVXBkYXRlckFjdGlvbn0gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcbmltcG9ydCB7TWFwU3R5bGV9IGZyb20gJ0BrZXBsZXIuZ2wvcmVkdWNlcnMnO1xuXG5pbXBvcnQgTGF5ZXJHcm91cENvbG9yUGlja2VyRmFjdG9yeSBmcm9tICcuL21hcC1sYXllci1ncm91cC1jb2xvci1waWNrZXInO1xuaW1wb3J0IHtQYW5lbEhlYWRlckFjdGlvblByb3BzLCBQYW5lbEhlYWRlckFjdGlvbkljb259IGZyb20gJy4uL3BhbmVsLWhlYWRlci1hY3Rpb24nO1xuaW1wb3J0IHtQYW5lbExhYmVsQm9sZCwgQ2VudGVyRmxleGJveCwgUGFuZWxMYWJlbFdyYXBwZXJ9IGZyb20gJy4uLy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5cbmNvbnN0IFN0eWxlZExheWVyR3JvdXBJdGVtID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIC5sYXllci1ncm91cF9fdmlzaWJpbGl0eS10b2dnbGUge1xuICAgIG1hcmdpbi1yaWdodDogMTJweDtcbiAgfVxuYDtcblxuY29uc3QgTGF5ZXJMYWJlbCA9IHN0eWxlZChQYW5lbExhYmVsQm9sZCk8eyRhY3RpdmU6IGJvb2xlYW59PmBcbiAgY29sb3I6ICR7cHJvcHMgPT4gKHByb3BzLiRhY3RpdmUgPyBwcm9wcy50aGVtZS50ZXh0Q29sb3IgOiBwcm9wcy50aGVtZS5sYWJlbENvbG9yKX07XG5gO1xuXG5leHBvcnQgdHlwZSBMYXllckdyb3VwSXRlbUFjdGlvbkljb25zID0ge1xuICB2aXNpYmxlOiBQYW5lbEhlYWRlckFjdGlvbkljb247XG4gIGhpZGRlbjogUGFuZWxIZWFkZXJBY3Rpb25JY29uO1xuICB0b3A6IFBhbmVsSGVhZGVyQWN0aW9uSWNvbjtcbn07XG5cbmV4cG9ydCB0eXBlIExheWVyR3JvdXBJdGVtUHJvcHMgPSB7XG4gIFBhbmVsSGVhZGVyQWN0aW9uOiBSZWFjdC5GQzxQYW5lbEhlYWRlckFjdGlvblByb3BzPjtcbiAgb25DaGFuZ2U6IChwZDogTWFwQ29uZmlnQ2hhbmdlVXBkYXRlckFjdGlvblsncGF5bG9hZCddKSA9PiB2b2lkO1xuICBzbHVnOiBzdHJpbmc7XG4gIGxheWVyczogTWFwU3R5bGVbJ3Zpc2libGVMYXllckdyb3VwcyddO1xuICB0b3BMYXllcnM6IE1hcFN0eWxlWyd0b3BMYXllckdyb3VwcyddO1xuICBhY3Rpb25JY29uczogTGF5ZXJHcm91cEl0ZW1BY3Rpb25JY29ucztcbiAgY29sb3I6IFJHQkNvbG9yIHwgbnVsbDtcbiAgb25Db2xvckNoYW5nZTogKHBkOiBSR0JDb2xvcikgPT4gdm9pZDtcbiAgaXNWaXNpYmlsaXR5VG9nZ2xlQXZhaWxhYmxlPzogYm9vbGVhbjtcbiAgaXNNb3ZlVG9Ub3BBdmFpbGFibGU/OiBib29sZWFuO1xuICBpc0NvbG9yUGlja2VyQXZhaWxhYmxlPzogYm9vbGVhbjtcbn07XG5cbkxheWVyR3JvdXBJdGVtRmFjdG9yeS5kZXBzID0gW0xheWVyR3JvdXBDb2xvclBpY2tlckZhY3RvcnldO1xuXG5mdW5jdGlvbiBMYXllckdyb3VwSXRlbUZhY3RvcnkoTGF5ZXJHcm91cENvbG9yUGlja2VyKSB7XG4gIGNvbnN0IExheWVyR3JvdXBJdGVtOiBSZWFjdC5GQzxMYXllckdyb3VwSXRlbVByb3BzPiA9ICh7XG4gICAgUGFuZWxIZWFkZXJBY3Rpb24sXG4gICAgb25DaGFuZ2UsXG4gICAgc2x1ZyxcbiAgICBsYXllcnMsXG4gICAgdG9wTGF5ZXJzLFxuICAgIGFjdGlvbkljb25zLFxuICAgIGNvbG9yLFxuICAgIG9uQ29sb3JDaGFuZ2UsXG4gICAgaXNWaXNpYmlsaXR5VG9nZ2xlQXZhaWxhYmxlID0gdHJ1ZSxcbiAgICBpc01vdmVUb1RvcEF2YWlsYWJsZSA9IHRydWUsXG4gICAgaXNDb2xvclBpY2tlckF2YWlsYWJsZSA9IGZhbHNlXG4gIH0pID0+IHtcbiAgICBjb25zdCBvblZpc2liaWxpdHlUb2dnbGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBvbkNoYW5nZSh7XG4gICAgICAgIHZpc2libGVMYXllckdyb3Vwczoge1xuICAgICAgICAgIC4uLmxheWVycyxcbiAgICAgICAgICBbc2x1Z106ICFsYXllcnNbc2x1Z11cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSwgW29uQ2hhbmdlLCBsYXllcnMsIHNsdWddKTtcblxuICAgIGNvbnN0IG9uTW92ZVRvVG9wVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25DaGFuZ2Uoe1xuICAgICAgICB0b3BMYXllckdyb3Vwczoge1xuICAgICAgICAgIC4uLnRvcExheWVycyxcbiAgICAgICAgICBbc2x1Z106ICF0b3BMYXllcnNbc2x1Z11cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSwgW29uQ2hhbmdlLCB0b3BMYXllcnMsIHNsdWddKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkTGF5ZXJHcm91cEl0ZW0gY2xhc3NOYW1lPVwibGF5ZXItZ3JvdXBfX3NlbGVjdFwiPlxuICAgICAgICB7aXNWaXNpYmlsaXR5VG9nZ2xlQXZhaWxhYmxlID8gKFxuICAgICAgICAgIDxQYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgICAgICAgIDxQYW5lbEhlYWRlckFjdGlvblxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJsYXllci1ncm91cF9fdmlzaWJpbGl0eS10b2dnbGVcIlxuICAgICAgICAgICAgICBpZD17YCR7c2x1Z30tdG9nZ2xlYH1cbiAgICAgICAgICAgICAgdG9vbHRpcD17bGF5ZXJzW3NsdWddID8gJ3Rvb2x0aXAuaGlkZScgOiAndG9vbHRpcC5zaG93J31cbiAgICAgICAgICAgICAgb25DbGljaz17b25WaXNpYmlsaXR5VG9nZ2xlfVxuICAgICAgICAgICAgICBJY29uQ29tcG9uZW50PXtsYXllcnNbc2x1Z10gPyBhY3Rpb25JY29ucy52aXNpYmxlIDogYWN0aW9uSWNvbnMuaGlkZGVufVxuICAgICAgICAgICAgICBhY3RpdmU9e2xheWVyc1tzbHVnXX1cbiAgICAgICAgICAgICAgZmx1c2hcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8TGF5ZXJMYWJlbCAkYWN0aXZlPXtsYXllcnNbc2x1Z119PlxuICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17YG1hcExheWVycy4ke2NhbWVsaXplKHNsdWcpfWB9IC8+XG4gICAgICAgICAgICA8L0xheWVyTGFiZWw+XG4gICAgICAgICAgPC9QYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8Q2VudGVyRmxleGJveD5cbiAgICAgICAgICAgIDxMYXllckxhYmVsIHN0eWxlPXt7bWFyZ2luTGVmdDogJzI4cHgnfX0gJGFjdGl2ZT17dHJ1ZX0+XG4gICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXtgbWFwTGF5ZXJzLiR7Y2FtZWxpemUoc2x1Zyl9YH0gLz5cbiAgICAgICAgICAgIDwvTGF5ZXJMYWJlbD5cbiAgICAgICAgICA8L0NlbnRlckZsZXhib3g+XG4gICAgICAgICl9XG4gICAgICAgIDxDZW50ZXJGbGV4Ym94IGNsYXNzTmFtZT1cImxheWVyLWdyb3VwX190cmFpbGluZy1hY3Rpb25zXCI+XG4gICAgICAgICAge2lzQ29sb3JQaWNrZXJBdmFpbGFibGUgJiYgY29sb3IgPyAoXG4gICAgICAgICAgICA8TGF5ZXJHcm91cENvbG9yUGlja2VyXG4gICAgICAgICAgICAgIHNsdWc9e3NsdWd9XG4gICAgICAgICAgICAgIGNvbG9yPXtjb2xvcn1cbiAgICAgICAgICAgICAgb25Db2xvckNoYW5nZT17b25Db2xvckNoYW5nZX1cbiAgICAgICAgICAgICAgZXh0cmFNYXJnaW5SaWdodD17aXNNb3ZlVG9Ub3BBdmFpbGFibGV9XG4gICAgICAgICAgICAgIGRpc2FibGVkPXtpc1Zpc2liaWxpdHlUb2dnbGVBdmFpbGFibGUgJiYgIWxheWVyc1tzbHVnXX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAge2lzTW92ZVRvVG9wQXZhaWxhYmxlID8gKFxuICAgICAgICAgICAgPFBhbmVsSGVhZGVyQWN0aW9uXG4gICAgICAgICAgICAgIGlkPXtgJHtzbHVnfS10b3BgfVxuICAgICAgICAgICAgICB0b29sdGlwPVwidG9vbHRpcC5tb3ZlVG9Ub3BcIlxuICAgICAgICAgICAgICBkaXNhYmxlZD17IWxheWVyc1tzbHVnXX1cbiAgICAgICAgICAgICAgSWNvbkNvbXBvbmVudD17YWN0aW9uSWNvbnMudG9wfVxuICAgICAgICAgICAgICBhY3RpdmU9e3RvcExheWVyc1tzbHVnXX1cbiAgICAgICAgICAgICAgb25DbGljaz17b25Nb3ZlVG9Ub3BUb2dnbGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L0NlbnRlckZsZXhib3g+XG4gICAgICA8L1N0eWxlZExheWVyR3JvdXBJdGVtPlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIExheWVyR3JvdXBJdGVtO1xufVxuXG5leHBvcnQgZGVmYXVsdCBMYXllckdyb3VwSXRlbUZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUcsYUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBS0EsSUFBQUsseUJBQUEsR0FBQUgsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFNLGtCQUFBLEdBQUFOLE9BQUE7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