UNPKG

kepler.gl

Version:

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

96 lines (95 loc) 17.8 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral")); var _react = _interopRequireDefault(require("react")); var _styledComponents = _interopRequireDefault(require("styled-components")); var _classnames = _interopRequireDefault(require("classnames")); var _localization = require("@kepler.gl/localization"); var _constants = require("@kepler.gl/constants"); var _icons = require("../../common/icons"); var _panelHeaderAction = _interopRequireDefault(require("../panel-header-action")); var _styledComponents2 = require("../../common/styled-components"); var _templateObject; // SPDX-License-Identifier: MIT // Copyright contributors to the kepler.gl project var StyledMapDropdown = (0, _styledComponents["default"])(_styledComponents2.StyledPanelHeader)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n height: 48px;\n margin-bottom: 5px;\n opacity: 1;\n position: relative;\n transition: opacity 0.05s ease-in, height 0.25s ease-out;\n\n &.collapsed {\n height: 0;\n margin-bottom: 0;\n opacity: 0;\n }\n\n &:hover {\n cursor: pointer;\n background-color: ", ";\n }\n\n .map-title-block img {\n margin-right: 12px;\n }\n\n .map-preview {\n border-radius: 3px;\n height: 30px;\n width: 40px;\n }\n\n &.selected {\n outline: 1px solid #caf2f4;\n }\n\n /* show callout dot if props.hasCallout and theme provides calloutDot base styles */\n &:after {\n ", "\n background-color: #00ACF5;\n top: 12px;\n left: 15px;\n display: ", ";\n }\n\n .custom-style-actions {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n"])), function (props) { return props.theme.panelBackgroundHover; }, function (_ref) { var theme = _ref.theme; return theme.calloutDot; }, function (_ref2) { var theme = _ref2.theme, hasCallout = _ref2.hasCallout; return theme.calloutDot && hasCallout ? 'block' : 'none'; }); MapStyleSelectorFactory.deps = [_panelHeaderAction["default"]]; function MapStyleSelectorFactory(PanelHeaderAction) { var defaultActionIcons = { arrowDown: _icons.ArrowDown }; var MapStyleSelector = function MapStyleSelector(_ref3) { var mapStyle = _ref3.mapStyle, onChange = _ref3.onChange, toggleActive = _ref3.toggleActive, isSelecting = _ref3.isSelecting, customMapStylesActions = _ref3.customMapStylesActions, _ref3$actionIcons = _ref3.actionIcons, actionIcons = _ref3$actionIcons === void 0 ? defaultActionIcons : _ref3$actionIcons; var mapStyles = mapStyle.mapStyles, styleType = mapStyle.styleType; return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_styledComponents2.PanelLabel, null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, { id: 'mapManager.mapStyle' })), Object.values(mapStyles).map(function (_ref4) { var id = _ref4.id, custom = _ref4.custom, _ref4$icon = _ref4.icon, icon = _ref4$icon === void 0 ? _constants.NO_BASEMAP_ICON : _ref4$icon, _ref4$label = _ref4.label, label = _ref4$label === void 0 ? 'Untitled' : _ref4$label; return /*#__PURE__*/_react["default"].createElement(StyledMapDropdown, { className: (0, _classnames["default"])('map-dropdown-option', { collapsed: !isSelecting && id !== styleType, selected: isSelecting && id === styleType }), key: id, onClick: isSelecting ? function () { return onChange(id); } : toggleActive, hasCallout: Boolean(custom) }, /*#__PURE__*/_react["default"].createElement(_styledComponents2.PanelHeaderContent, { className: "map-title-block" }, /*#__PURE__*/_react["default"].createElement("img", { className: "map-preview", src: icon }), /*#__PURE__*/_react["default"].createElement(_styledComponents2.PanelHeaderTitle, { className: "map-preview-name" }, label)), !isSelecting ? /*#__PURE__*/_react["default"].createElement(PanelHeaderAction, { className: "map-dropdown-option__enable-config", id: "map-enable-config", IconComponent: actionIcons.arrowDown, tooltip: 'tooltip.selectBaseMapStyle', onClick: toggleActive }) : null, isSelecting && custom ? /*#__PURE__*/_react["default"].createElement("div", { className: "custom-style-actions" }, ((customMapStylesActions === null || customMapStylesActions === void 0 ? void 0 : customMapStylesActions[id]) || []).map(function (action) { return /*#__PURE__*/_react["default"].createElement(PanelHeaderAction, { key: action.id, className: "map-dropdown-option__enable-config", id: action.id, IconComponent: action.IconComponent, tooltip: action.tooltip, onClick: function onClick(e) { e.stopPropagation(); action.onClick(); } }); })) : null); })); }; return MapStyleSelector; } var _default = exports["default"] = MapStyleSelectorFactory; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9zdHlsZWRDb21wb25lbnRzIiwiX2NsYXNzbmFtZXMiLCJfbG9jYWxpemF0aW9uIiwiX2NvbnN0YW50cyIsIl9pY29ucyIsIl9wYW5lbEhlYWRlckFjdGlvbiIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl90ZW1wbGF0ZU9iamVjdCIsIlN0eWxlZE1hcERyb3Bkb3duIiwic3R5bGVkIiwiU3R5bGVkUGFuZWxIZWFkZXIiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwidGhlbWUiLCJwYW5lbEJhY2tncm91bmRIb3ZlciIsIl9yZWYiLCJjYWxsb3V0RG90IiwiX3JlZjIiLCJoYXNDYWxsb3V0IiwiTWFwU3R5bGVTZWxlY3RvckZhY3RvcnkiLCJkZXBzIiwiUGFuZWxIZWFkZXJBY3Rpb25GYWN0b3J5IiwiUGFuZWxIZWFkZXJBY3Rpb24iLCJkZWZhdWx0QWN0aW9uSWNvbnMiLCJhcnJvd0Rvd24iLCJBcnJvd0Rvd24iLCJNYXBTdHlsZVNlbGVjdG9yIiwiX3JlZjMiLCJtYXBTdHlsZSIsIm9uQ2hhbmdlIiwidG9nZ2xlQWN0aXZlIiwiaXNTZWxlY3RpbmciLCJjdXN0b21NYXBTdHlsZXNBY3Rpb25zIiwiX3JlZjMkYWN0aW9uSWNvbnMiLCJhY3Rpb25JY29ucyIsIm1hcFN0eWxlcyIsInN0eWxlVHlwZSIsImNyZWF0ZUVsZW1lbnQiLCJQYW5lbExhYmVsIiwiRm9ybWF0dGVkTWVzc2FnZSIsImlkIiwiT2JqZWN0IiwidmFsdWVzIiwibWFwIiwiX3JlZjQiLCJjdXN0b20iLCJfcmVmNCRpY29uIiwiaWNvbiIsIk5PX0JBU0VNQVBfSUNPTiIsIl9yZWY0JGxhYmVsIiwibGFiZWwiLCJjbGFzc05hbWUiLCJjbGFzc25hbWVzIiwiY29sbGFwc2VkIiwic2VsZWN0ZWQiLCJrZXkiLCJvbkNsaWNrIiwiQm9vbGVhbiIsIlBhbmVsSGVhZGVyQ29udGVudCIsInNyYyIsIlBhbmVsSGVhZGVyVGl0bGUiLCJJY29uQ29tcG9uZW50IiwidG9vbHRpcCIsImFjdGlvbiIsImUiLCJzdG9wUHJvcGFnYXRpb24iLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2lkZS1wYW5lbC9tYXAtc3R5bGUtcGFuZWwvbWFwLXN0eWxlLXNlbGVjdG9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHtDb21wb25lbnRUeXBlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuXG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcbmltcG9ydCB7TWFwU3R5bGV9IGZyb20gJ0BrZXBsZXIuZ2wvcmVkdWNlcnMnO1xuaW1wb3J0IHtOT19CQVNFTUFQX0lDT059IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7TWFwU3R5bGVzfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcblxuaW1wb3J0IHtBcnJvd0Rvd259IGZyb20gJy4uLy4uL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQgUGFuZWxIZWFkZXJBY3Rpb25GYWN0b3J5IGZyb20gJy4uL3BhbmVsLWhlYWRlci1hY3Rpb24nO1xuaW1wb3J0IHtcbiAgUGFuZWxIZWFkZXJDb250ZW50LFxuICBQYW5lbEhlYWRlclRpdGxlLFxuICBQYW5lbExhYmVsLFxuICBTdHlsZWRQYW5lbEhlYWRlcixcbiAgU3R5bGVkUGFuZWxIZWFkZXJQcm9wc1xufSBmcm9tICcuLi8uLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtCYXNlUHJvcHN9IGZyb20gJy4uLy4uL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQge1BhbmVsSGVhZGVyQWN0aW9uSWNvbn0gZnJvbSAnLi4vcGFuZWwtaGVhZGVyLWFjdGlvbic7XG5cbnR5cGUgU3R5bGVkTWFwRHJvcGRvd25Qcm9wcyA9IFN0eWxlZFBhbmVsSGVhZGVyUHJvcHMgJiB7aGFzQ2FsbG91dDogYm9vbGVhbn07XG5cbmNvbnN0IFN0eWxlZE1hcERyb3Bkb3duID0gc3R5bGVkKFN0eWxlZFBhbmVsSGVhZGVyKTxTdHlsZWRNYXBEcm9wZG93blByb3BzPmBcbiAgaGVpZ2h0OiA0OHB4O1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIG9wYWNpdHk6IDE7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjA1cyBlYXNlLWluLCBoZWlnaHQgMC4yNXMgZWFzZS1vdXQ7XG5cbiAgJi5jb2xsYXBzZWQge1xuICAgIGhlaWdodDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5wYW5lbEJhY2tncm91bmRIb3Zlcn07XG4gIH1cblxuICAubWFwLXRpdGxlLWJsb2NrIGltZyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICB9XG5cbiAgLm1hcC1wcmV2aWV3IHtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIHdpZHRoOiA0MHB4O1xuICB9XG5cbiAgJi5zZWxlY3RlZCB7XG4gICAgb3V0bGluZTogMXB4IHNvbGlkICNjYWYyZjQ7XG4gIH1cblxuICAvKiBzaG93IGNhbGxvdXQgZG90IGlmIHByb3BzLmhhc0NhbGxvdXQgYW5kIHRoZW1lIHByb3ZpZGVzIGNhbGxvdXREb3QgYmFzZSBzdHlsZXMgKi9cbiAgJjphZnRlciB7XG4gICAgJHsoe3RoZW1lfSkgPT4gdGhlbWUuY2FsbG91dERvdH1cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBBQ0Y1O1xuICAgIHRvcDogMTJweDtcbiAgICBsZWZ0OiAxNXB4O1xuICAgIGRpc3BsYXk6ICR7KHt0aGVtZSwgaGFzQ2FsbG91dH0pID0+ICh0aGVtZS5jYWxsb3V0RG90ICYmIGhhc0NhbGxvdXQgPyAnYmxvY2snIDogJ25vbmUnKX07XG4gIH1cblxuICAuY3VzdG9tLXN0eWxlLWFjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbmA7XG5cbmV4cG9ydCB0eXBlIE1hcFN0eWxlU2VsZWN0b3JQcm9wcyA9IHtcbiAgbWFwU3R5bGU6IE1hcFN0eWxlO1xuICBvbkNoYW5nZTogKHBheWxvYWQ6IHN0cmluZykgPT4gdm9pZDtcbiAgdG9nZ2xlQWN0aXZlOiAoKSA9PiB2b2lkO1xuICBpc1NlbGVjdGluZzogYm9vbGVhbjtcbiAgY3VzdG9tTWFwU3R5bGVzQWN0aW9ucz86IFJlY29yZDxcbiAgICBzdHJpbmcsXG4gICAge1xuICAgICAgaWQ6IHN0cmluZztcbiAgICAgIEljb25Db21wb25lbnQ6IFBhbmVsSGVhZGVyQWN0aW9uSWNvbjtcbiAgICAgIHRvb2x0aXA6IHN0cmluZztcbiAgICAgIG9uQ2xpY2s6ICgpID0+IHZvaWQ7XG4gICAgfVtdXG4gID47XG4gIGFjdGlvbkljb25zPzogUmVjb3JkPHN0cmluZywgQ29tcG9uZW50VHlwZTxQYXJ0aWFsPEJhc2VQcm9wcz4+Pjtcbn07XG5cbk1hcFN0eWxlU2VsZWN0b3JGYWN0b3J5LmRlcHMgPSBbUGFuZWxIZWFkZXJBY3Rpb25GYWN0b3J5XTtcblxuZnVuY3Rpb24gTWFwU3R5bGVTZWxlY3RvckZhY3RvcnkoUGFuZWxIZWFkZXJBY3Rpb246IFJldHVyblR5cGU8dHlwZW9mIFBhbmVsSGVhZGVyQWN0aW9uRmFjdG9yeT4pIHtcbiAgY29uc3QgZGVmYXVsdEFjdGlvbkljb25zID0ge1xuICAgIGFycm93RG93bjogQXJyb3dEb3duXG4gIH07XG5cbiAgY29uc3QgTWFwU3R5bGVTZWxlY3RvciA9ICh7XG4gICAgbWFwU3R5bGUsXG4gICAgb25DaGFuZ2UsXG4gICAgdG9nZ2xlQWN0aXZlLFxuICAgIGlzU2VsZWN0aW5nLFxuICAgIGN1c3RvbU1hcFN0eWxlc0FjdGlvbnMsXG4gICAgYWN0aW9uSWNvbnMgPSBkZWZhdWx0QWN0aW9uSWNvbnNcbiAgfTogTWFwU3R5bGVTZWxlY3RvclByb3BzKSA9PiB7XG4gICAgY29uc3Qge21hcFN0eWxlcywgc3R5bGVUeXBlfToge21hcFN0eWxlczogTWFwU3R5bGVzOyBzdHlsZVR5cGU6IHN0cmluZ30gPSBtYXBTdHlsZTtcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICA8UGFuZWxMYWJlbD5cbiAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21hcE1hbmFnZXIubWFwU3R5bGUnfSAvPlxuICAgICAgICA8L1BhbmVsTGFiZWw+XG5cbiAgICAgICAge09iamVjdC52YWx1ZXMobWFwU3R5bGVzKS5tYXAoXG4gICAgICAgICAgKHtpZCwgY3VzdG9tLCBpY29uID0gTk9fQkFTRU1BUF9JQ09OLCBsYWJlbCA9ICdVbnRpdGxlZCd9KSA9PiAoXG4gICAgICAgICAgICA8U3R5bGVkTWFwRHJvcGRvd25cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKCdtYXAtZHJvcGRvd24tb3B0aW9uJywge1xuICAgICAgICAgICAgICAgIGNvbGxhcHNlZDogIWlzU2VsZWN0aW5nICYmIGlkICE9PSBzdHlsZVR5cGUsXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IGlzU2VsZWN0aW5nICYmIGlkID09PSBzdHlsZVR5cGVcbiAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgIGtleT17aWR9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2lzU2VsZWN0aW5nID8gKCkgPT4gb25DaGFuZ2UoaWQpIDogdG9nZ2xlQWN0aXZlfVxuICAgICAgICAgICAgICBoYXNDYWxsb3V0PXtCb29sZWFuKGN1c3RvbSl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxQYW5lbEhlYWRlckNvbnRlbnQgY2xhc3NOYW1lPVwibWFwLXRpdGxlLWJsb2NrXCI+XG4gICAgICAgICAgICAgICAgPGltZyBjbGFzc05hbWU9XCJtYXAtcHJldmlld1wiIHNyYz17aWNvbn0gLz5cbiAgICAgICAgICAgICAgICA8UGFuZWxIZWFkZXJUaXRsZSBjbGFzc05hbWU9XCJtYXAtcHJldmlldy1uYW1lXCI+e2xhYmVsfTwvUGFuZWxIZWFkZXJUaXRsZT5cbiAgICAgICAgICAgICAgPC9QYW5lbEhlYWRlckNvbnRlbnQ+XG4gICAgICAgICAgICAgIHshaXNTZWxlY3RpbmcgPyAoXG4gICAgICAgICAgICAgICAgPFBhbmVsSGVhZGVyQWN0aW9uXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJtYXAtZHJvcGRvd24tb3B0aW9uX19lbmFibGUtY29uZmlnXCJcbiAgICAgICAgICAgICAgICAgIGlkPVwibWFwLWVuYWJsZS1jb25maWdcIlxuICAgICAgICAgICAgICAgICAgSWNvbkNvbXBvbmVudD17YWN0aW9uSWNvbnMuYXJyb3dEb3dufVxuICAgICAgICAgICAgICAgICAgdG9vbHRpcD17J3Rvb2x0aXAuc2VsZWN0QmFzZU1hcFN0eWxlJ31cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RvZ2dsZUFjdGl2ZX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAge2lzU2VsZWN0aW5nICYmIGN1c3RvbSA/IChcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImN1c3RvbS1zdHlsZS1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgICB7KGN1c3RvbU1hcFN0eWxlc0FjdGlvbnM/LltpZF0gfHwgW10pLm1hcChhY3Rpb24gPT4gKFxuICAgICAgICAgICAgICAgICAgICA8UGFuZWxIZWFkZXJBY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICBrZXk9e2FjdGlvbi5pZH1cbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJtYXAtZHJvcGRvd24tb3B0aW9uX19lbmFibGUtY29uZmlnXCJcbiAgICAgICAgICAgICAgICAgICAgICBpZD17YWN0aW9uLmlkfVxuICAgICAgICAgICAgICAgICAgICAgIEljb25Db21wb25lbnQ9e2FjdGlvbi5JY29uQ29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXA9e2FjdGlvbi50b29sdGlwfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2UgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbi5vbkNsaWNrKCk7XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvU3R5bGVkTWFwRHJvcGRvd24+XG4gICAgICAgICAgKVxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gTWFwU3R5bGVTZWxlY3Rvcjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgTWFwU3R5bGVTZWxlY3RvckZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLFdBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFHLGFBQUEsR0FBQUgsT0FBQTtBQUVBLElBQUFJLFVBQUEsR0FBQUosT0FB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O1FBQUEsSUFBR1YsWUFBYTtRQUN6RFosVUFBVSxFQUFFdUMsT0FBTyxDQUFDWixNQUFNO01BQUUsZ0JBRTVCaEQsTUFBQSxZQUFBd0MsYUFBQSxDQUFDL0Isa0JBQUEsQ0FBQW9ELGtCQUFrQjtRQUFDUCxTQUFTLEVBQUM7TUFBaUIsZ0JBQzdDdEQsTUFBQSxZQUFBd0MsYUFBQTtRQUFLYyxTQUFTLEVBQUMsYUFBYTtRQUFDUSxHQUFHLEVBQUVaO01BQUssQ0FBRSxDQUFDLGVBQzFDbEQsTUFBQSxZQUFBd0MsYUFBQSxDQUFDL0Isa0JBQUEsQ0FBQXNELGdCQUFnQjtRQUFDVCxTQUFTLEVBQUM7TUFBa0IsR0FBRUQsS0FBd0IsQ0FDdEQsQ0FBQyxFQUNwQixDQUFDbkIsV0FBVyxnQkFDWGxDLE1BQUEsWUFBQXdDLGFBQUEsQ0FBQ2YsaUJBQWlCO1FBQ2hCNkIsU0FBUyxFQUFDLG9DQUFvQztRQUM5Q1gsRUFBRSxFQUFDLG1CQUFtQjtRQUN0QnFCLGFBQWEsRUFBRTNCLFdBQVcsQ0FBQ1YsU0FBVTtRQUNyQ3NDLE9BQU8sRUFBRSw0QkFBNkI7UUFDdENOLE9BQU8sRUFBRTFCO01BQWEsQ0FDdkIsQ0FBQyxHQUNBLElBQUksRUFDUEMsV0FBVyxJQUFJYyxNQUFNLGdCQUNwQmhELE1BQUEsWUFBQXdDLGFBQUE7UUFBS2MsU0FBUyxFQUFDO01BQXNCLEdBQ2xDLENBQUMsQ0FBQW5CLHNCQUFzQixhQUF0QkEsc0JBQXNCLHVCQUF0QkEsc0JBQXNCLENBQUdRLEVBQUUsQ0FBQyxLQUFJLEVBQUUsRUFBRUcsR0FBRyxDQUFDLFVBQUFvQixNQUFNO1FBQUEsb0JBQzlDbEUsTUFBQSxZQUFBd0MsYUFBQSxDQUFDZixpQkFBaUI7VUFDaEJpQyxHQUFHLEVBQUVRLE1BQU0sQ0FBQ3ZCLEVBQUc7VUFDZlcsU0FBUyxFQUFDLG9DQUFvQztVQUM5Q1gsRUFBRSxFQUFFdUIsTUFBTSxDQUFDdkIsRUFBRztVQUNkcUIsYUFBYSxFQUFFRSxNQUFNLENBQUNGLGFBQWM7VUFDcENDLE9BQU8sRUFBRUMsTUFBTSxDQUFDRCxPQUFRO1VBQ3hCTixPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBRVEsQ0FBQyxFQUFJO1lBQ1pBLENBQUMsQ0FBQ0MsZUFBZSxDQUFDLENBQUM7WUFDbkJGLE1BQU0sQ0FBQ1AsT0FBTyxDQUFDLENBQUM7VUFDbEI7UUFBRSxDQUNILENBQUM7TUFBQSxDQUNILENBQ0UsQ0FBQyxHQUNKLElBQ2EsQ0FBQztJQUFBLENBRXhCLENBQ0csQ0FBQztFQUVWLENBQUM7RUFFRCxPQUFPOUIsZ0JBQWdCO0FBQ3pCO0FBQUMsSUFBQXdDLFFBQUEsR0FBQUMsT0FBQSxjQUVjaEQsdUJBQXVCIiwiaWdub3JlTGlzdCI6W119