UNPKG

kepler.gl

Version:

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

102 lines (100 loc) 18.5 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 _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _react = _interopRequireWildcard(require("react")); var _styledComponents = require("../common/styled-components"); var _mapStyleSelector = _interopRequireDefault(require("./map-style-panel/map-style-selector")); var _mapLayerSelector = _interopRequireDefault(require("./map-style-panel/map-layer-selector")); var _panelTitle = _interopRequireDefault(require("../side-panel/panel-title")); var _icons = require("../common/icons"); var _reactIntl = require("react-intl"); var _localization = require("@kepler.gl/localization"); 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; } // SPDX-License-Identifier: MIT // Copyright contributors to the kepler.gl project MapManagerFactory.deps = [_mapStyleSelector["default"], _mapLayerSelector["default"], _panelTitle["default"]]; function MapManagerFactory(MapStyleSelector, LayerGroupSelector, PanelTitle) { var MapManager = function MapManager(_ref) { var mapStyle = _ref.mapStyle, intl = _ref.intl, mapStyleActions = _ref.mapStyleActions, showAddMapStyleModal = _ref.showAddMapStyleModal, panelMetadata = _ref.panelMetadata; var _useState = (0, _react.useState)(false), _useState2 = (0, _slicedToArray2["default"])(_useState, 2), isSelecting = _useState2[0], setIsSelecting = _useState2[1]; var mapStyleChange = mapStyleActions.mapStyleChange, removeCustomMapStyle = mapStyleActions.removeCustomMapStyle; var currentStyle = mapStyle.mapStyles[mapStyle.styleType] || {}; var editableLayers = currentStyle.layerGroups || []; var toggleSelecting = (0, _react.useCallback)(function () { setIsSelecting(function (prev) { return !prev; }); }, [setIsSelecting]); var mapStyles = mapStyle.mapStyles; var selectStyle = (0, _react.useCallback)(function (val) { mapStyleChange(val); setIsSelecting(false); }, [mapStyleChange, setIsSelecting]); var customMapStylesActions = (0, _react.useMemo)(function () { var actionsPerCustomStyle = {}; Object.values(mapStyles).filter(function (mapStyle) { return Boolean(mapStyle.custom); }).forEach(function (_ref2) { var id = _ref2.id; actionsPerCustomStyle[id] = [{ id: "remove-map-style-".concat(id), IconComponent: _icons.Trash, tooltip: 'tooltip.removeBaseMapStyle', onClick: function onClick() { return removeCustomMapStyle({ id: id }); } }]; }); return actionsPerCustomStyle; }, [mapStyles, removeCustomMapStyle]); return /*#__PURE__*/_react["default"].createElement("div", { className: "map-style-panel" }, /*#__PURE__*/_react["default"].createElement(PanelTitle, { className: "map-manager-title", title: intl.formatMessage({ id: panelMetadata.label }) }, /*#__PURE__*/_react["default"].createElement(_styledComponents.Button, { className: "add-map-style-button", onClick: showAddMapStyleModal }, /*#__PURE__*/_react["default"].createElement(_icons.Add, { height: "12px" }), /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, { id: 'mapManager.addMapStyle' }))), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(MapStyleSelector, { mapStyle: mapStyle, isSelecting: isSelecting, onChange: selectStyle, toggleActive: toggleSelecting, customMapStylesActions: customMapStylesActions }), editableLayers.length ? /*#__PURE__*/_react["default"].createElement(LayerGroupSelector, { layers: mapStyle.visibleLayerGroups, editableLayers: editableLayers, topLayers: mapStyle.topLayerGroups, onChange: mapStyleActions.mapConfigChange, threeDBuildingColor: mapStyle.threeDBuildingColor, on3dBuildingColorChange: mapStyleActions.set3dBuildingColor, backgroundColor: mapStyle.backgroundColor, onBackgroundColorChange: mapStyleActions.setBackgroundColor }) : null)); }; return (0, _reactIntl.injectIntl)(MapManager); } var _default = exports["default"] = MapManagerFactory; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9tYXBTdHlsZVNlbGVjdG9yIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9tYXBMYXllclNlbGVjdG9yIiwiX3BhbmVsVGl0bGUiLCJfaWNvbnMiLCJfcmVhY3RJbnRsIiwiX2xvY2FsaXphdGlvbiIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIk1hcE1hbmFnZXJGYWN0b3J5IiwiZGVwcyIsIk1hcFN0eWxlU2VsZWN0b3JGYWN0b3J5IiwiTGF5ZXJHcm91cFNlbGVjdG9yRmFjdG9yeSIsIlBhbmVsVGl0bGVGYWN0b3J5IiwiTWFwU3R5bGVTZWxlY3RvciIsIkxheWVyR3JvdXBTZWxlY3RvciIsIlBhbmVsVGl0bGUiLCJNYXBNYW5hZ2VyIiwiX3JlZiIsIm1hcFN0eWxlIiwiaW50bCIsIm1hcFN0eWxlQWN0aW9ucyIsInNob3dBZGRNYXBTdHlsZU1vZGFsIiwicGFuZWxNZXRhZGF0YSIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImlzU2VsZWN0aW5nIiwic2V0SXNTZWxlY3RpbmciLCJtYXBTdHlsZUNoYW5nZSIsInJlbW92ZUN1c3RvbU1hcFN0eWxlIiwiY3VycmVudFN0eWxlIiwibWFwU3R5bGVzIiwic3R5bGVUeXBlIiwiZWRpdGFibGVMYXllcnMiLCJsYXllckdyb3VwcyIsInRvZ2dsZVNlbGVjdGluZyIsInVzZUNhbGxiYWNrIiwicHJldiIsInNlbGVjdFN0eWxlIiwidmFsIiwiY3VzdG9tTWFwU3R5bGVzQWN0aW9ucyIsInVzZU1lbW8iLCJhY3Rpb25zUGVyQ3VzdG9tU3R5bGUiLCJ2YWx1ZXMiLCJmaWx0ZXIiLCJCb29sZWFuIiwiY3VzdG9tIiwiZm9yRWFjaCIsIl9yZWYyIiwiaWQiLCJjb25jYXQiLCJJY29uQ29tcG9uZW50IiwiVHJhc2giLCJ0b29sdGlwIiwib25DbGljayIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJ0aXRsZSIsImZvcm1hdE1lc3NhZ2UiLCJsYWJlbCIsIkJ1dHRvbiIsIkFkZCIsImhlaWdodCIsIkZvcm1hdHRlZE1lc3NhZ2UiLCJvbkNoYW5nZSIsInRvZ2dsZUFjdGl2ZSIsImxlbmd0aCIsImxheWVycyIsInZpc2libGVMYXllckdyb3VwcyIsInRvcExheWVycyIsInRvcExheWVyR3JvdXBzIiwibWFwQ29uZmlnQ2hhbmdlIiwidGhyZWVEQnVpbGRpbmdDb2xvciIsIm9uM2RCdWlsZGluZ0NvbG9yQ2hhbmdlIiwic2V0M2RCdWlsZGluZ0NvbG9yIiwiYmFja2dyb3VuZENvbG9yIiwib25CYWNrZ3JvdW5kQ29sb3JDaGFuZ2UiLCJzZXRCYWNrZ3JvdW5kQ29sb3IiLCJpbmplY3RJbnRsIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NpZGUtcGFuZWwvbWFwLW1hbmFnZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZVN0YXRlLCB1c2VNZW1vLCB1c2VDYWxsYmFja30gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQge0J1dHRvbn0gZnJvbSAnLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBNYXBTdHlsZVNlbGVjdG9yRmFjdG9yeSBmcm9tICcuL21hcC1zdHlsZS1wYW5lbC9tYXAtc3R5bGUtc2VsZWN0b3InO1xuaW1wb3J0IExheWVyR3JvdXBTZWxlY3RvckZhY3RvcnkgZnJvbSAnLi9tYXAtc3R5bGUtcGFuZWwvbWFwLWxheWVyLXNlbGVjdG9yJztcbmltcG9ydCBQYW5lbFRpdGxlRmFjdG9yeSBmcm9tICcuLi9zaWRlLXBhbmVsL3BhbmVsLXRpdGxlJztcblxuaW1wb3J0IHtBZGQsIFRyYXNofSBmcm9tICcuLi9jb21tb24vaWNvbnMnO1xuaW1wb3J0IHtQYW5lbE1ldGF9IGZyb20gJy4vY29tbW9uL3R5cGVzJztcbmltcG9ydCB7aW5qZWN0SW50bCwgV3JhcHBlZENvbXBvbmVudFByb3BzfSBmcm9tICdyZWFjdC1pbnRsJztcbmltcG9ydCB7Rm9ybWF0dGVkTWVzc2FnZX0gZnJvbSAnQGtlcGxlci5nbC9sb2NhbGl6YXRpb24nO1xuaW1wb3J0IHtNYXBTdHlsZX0gZnJvbSAnQGtlcGxlci5nbC9yZWR1Y2Vycyc7XG5pbXBvcnQge01hcFN0eWxlQWN0aW9uc30gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcblxuZXhwb3J0IHR5cGUgTWFwTWFuYWdlclByb3BzID0ge1xuICBtYXBTdHlsZTogTWFwU3R5bGU7XG4gIG1hcFN0eWxlQWN0aW9uczoge1xuICAgIG1hcFN0eWxlQ2hhbmdlOiB0eXBlb2YgTWFwU3R5bGVBY3Rpb25zLm1hcFN0eWxlQ2hhbmdlO1xuICAgIG1hcENvbmZpZ0NoYW5nZTogdHlwZW9mIE1hcFN0eWxlQWN0aW9ucy5tYXBDb25maWdDaGFuZ2U7XG4gICAgc2V0M2RCdWlsZGluZ0NvbG9yOiB0eXBlb2YgTWFwU3R5bGVBY3Rpb25zLnNldDNkQnVpbGRpbmdDb2xvcjtcbiAgICBzZXRCYWNrZ3JvdW5kQ29sb3I6IHR5cGVvZiBNYXBTdHlsZUFjdGlvbnMuc2V0QmFja2dyb3VuZENvbG9yO1xuICAgIHJlbW92ZUN1c3RvbU1hcFN0eWxlOiB0eXBlb2YgTWFwU3R5bGVBY3Rpb25zLnJlbW92ZUN1c3RvbU1hcFN0eWxlO1xuICB9O1xuICBzaG93QWRkTWFwU3R5bGVNb2RhbDogKCkgPT4gdm9pZDtcbiAgcGFuZWxNZXRhZGF0YTogUGFuZWxNZXRhO1xufSAmIFdyYXBwZWRDb21wb25lbnRQcm9wcztcblxuTWFwTWFuYWdlckZhY3RvcnkuZGVwcyA9IFtNYXBTdHlsZVNlbGVjdG9yRmFjdG9yeSwgTGF5ZXJHcm91cFNlbGVjdG9yRmFjdG9yeSwgUGFuZWxUaXRsZUZhY3RvcnldO1xuXG5mdW5jdGlvbiBNYXBNYW5hZ2VyRmFjdG9yeShcbiAgTWFwU3R5bGVTZWxlY3RvcjogUmV0dXJuVHlwZTx0eXBlb2YgTWFwU3R5bGVTZWxlY3RvckZhY3Rvcnk+LFxuICBMYXllckdyb3VwU2VsZWN0b3I6IFJldHVyblR5cGU8dHlwZW9mIExheWVyR3JvdXBTZWxlY3RvckZhY3Rvcnk+LFxuICBQYW5lbFRpdGxlOiBSZXR1cm5UeXBlPHR5cGVvZiBQYW5lbFRpdGxlRmFjdG9yeT5cbikge1xuICBjb25zdCBNYXBNYW5hZ2VyOiBSZWFjdC5GQzxNYXBNYW5hZ2VyUHJvcHM+ID0gKHtcbiAgICBtYXBTdHlsZSxcbiAgICBpbnRsLFxuICAgIG1hcFN0eWxlQWN0aW9ucyxcbiAgICBzaG93QWRkTWFwU3R5bGVNb2RhbCxcbiAgICBwYW5lbE1ldGFkYXRhXG4gIH0pID0+IHtcbiAgICBjb25zdCBbaXNTZWxlY3RpbmcsIHNldElzU2VsZWN0aW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCB7bWFwU3R5bGVDaGFuZ2UsIHJlbW92ZUN1c3RvbU1hcFN0eWxlfSA9IG1hcFN0eWxlQWN0aW9ucztcbiAgICBjb25zdCBjdXJyZW50U3R5bGUgPSBtYXBTdHlsZS5tYXBTdHlsZXNbbWFwU3R5bGUuc3R5bGVUeXBlXSB8fCB7fTtcbiAgICBjb25zdCBlZGl0YWJsZUxheWVycyA9IGN1cnJlbnRTdHlsZS5sYXllckdyb3VwcyB8fCBbXTtcblxuICAgIGNvbnN0IHRvZ2dsZVNlbGVjdGluZyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHNldElzU2VsZWN0aW5nKHByZXYgPT4gIXByZXYpO1xuICAgIH0sIFtzZXRJc1NlbGVjdGluZ10pO1xuXG4gICAgY29uc3QgbWFwU3R5bGVzID0gbWFwU3R5bGUubWFwU3R5bGVzO1xuICAgIGNvbnN0IHNlbGVjdFN0eWxlID0gdXNlQ2FsbGJhY2soXG4gICAgICAodmFsOiBzdHJpbmcpID0+IHtcbiAgICAgICAgbWFwU3R5bGVDaGFuZ2UodmFsKTtcbiAgICAgICAgc2V0SXNTZWxlY3RpbmcoZmFsc2UpO1xuICAgICAgfSxcbiAgICAgIFttYXBTdHlsZUNoYW5nZSwgc2V0SXNTZWxlY3RpbmddXG4gICAgKTtcblxuICAgIGNvbnN0IGN1c3RvbU1hcFN0eWxlc0FjdGlvbnMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGNvbnN0IGFjdGlvbnNQZXJDdXN0b21TdHlsZSA9IHt9O1xuICAgICAgT2JqZWN0LnZhbHVlcyhtYXBTdHlsZXMpXG4gICAgICAgIC5maWx0ZXIobWFwU3R5bGUgPT4ge1xuICAgICAgICAgIHJldHVybiBCb29sZWFuKG1hcFN0eWxlLmN1c3RvbSk7XG4gICAgICAgIH0pXG4gICAgICAgIC5mb3JFYWNoKCh7aWR9KSA9PiB7XG4gICAgICAgICAgYWN0aW9uc1BlckN1c3RvbVN0eWxlW2lkXSA9IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWQ6IGByZW1vdmUtbWFwLXN0eWxlLSR7aWR9YCxcbiAgICAgICAgICAgICAgSWNvbkNvbXBvbmVudDogVHJhc2gsXG4gICAgICAgICAgICAgIHRvb2x0aXA6ICd0b29sdGlwLnJlbW92ZUJhc2VNYXBTdHlsZScsXG4gICAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IHJlbW92ZUN1c3RvbU1hcFN0eWxlKHtpZH0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXTtcbiAgICAgICAgfSk7XG4gICAgICByZXR1cm4gYWN0aW9uc1BlckN1c3RvbVN0eWxlO1xuICAgIH0sIFttYXBTdHlsZXMsIHJlbW92ZUN1c3RvbU1hcFN0eWxlXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYXAtc3R5bGUtcGFuZWxcIj5cbiAgICAgICAgPFBhbmVsVGl0bGVcbiAgICAgICAgICBjbGFzc05hbWU9XCJtYXAtbWFuYWdlci10aXRsZVwiXG4gICAgICAgICAgdGl0bGU9e2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6IHBhbmVsTWV0YWRhdGEubGFiZWx9KX1cbiAgICAgICAgPlxuICAgICAgICAgIDxCdXR0b24gY2xhc3NOYW1lPVwiYWRkLW1hcC1zdHlsZS1idXR0b25cIiBvbkNsaWNrPXtzaG93QWRkTWFwU3R5bGVNb2RhbH0+XG4gICAgICAgICAgICA8QWRkIGhlaWdodD1cIjEycHhcIiAvPlxuICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtYXBNYW5hZ2VyLmFkZE1hcFN0eWxlJ30gLz5cbiAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgPC9QYW5lbFRpdGxlPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxNYXBTdHlsZVNlbGVjdG9yXG4gICAgICAgICAgICBtYXBTdHlsZT17bWFwU3R5bGV9XG4gICAgICAgICAgICBpc1NlbGVjdGluZz17aXNTZWxlY3Rpbmd9XG4gICAgICAgICAgICBvbkNoYW5nZT17c2VsZWN0U3R5bGV9XG4gICAgICAgICAgICB0b2dnbGVBY3RpdmU9e3RvZ2dsZVNlbGVjdGluZ31cbiAgICAgICAgICAgIGN1c3RvbU1hcFN0eWxlc0FjdGlvbnM9e2N1c3RvbU1hcFN0eWxlc0FjdGlvbnN9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7ZWRpdGFibGVMYXllcnMubGVuZ3RoID8gKFxuICAgICAgICAgICAgPExheWVyR3JvdXBTZWxlY3RvclxuICAgICAgICAgICAgICBsYXllcnM9e21hcFN0eWxlLnZpc2libGVMYXllckdyb3Vwc31cbiAgICAgICAgICAgICAgZWRpdGFibGVMYXllcnM9e2VkaXRhYmxlTGF5ZXJzfVxuICAgICAgICAgICAgICB0b3BMYXllcnM9e21hcFN0eWxlLnRvcExheWVyR3JvdXBzfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17bWFwU3R5bGVBY3Rpb25zLm1hcENvbmZpZ0NoYW5nZX1cbiAgICAgICAgICAgICAgdGhyZWVEQnVpbGRpbmdDb2xvcj17bWFwU3R5bGUudGhyZWVEQnVpbGRpbmdDb2xvcn1cbiAgICAgICAgICAgICAgb24zZEJ1aWxkaW5nQ29sb3JDaGFuZ2U9e21hcFN0eWxlQWN0aW9ucy5zZXQzZEJ1aWxkaW5nQ29sb3J9XG4gICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcj17bWFwU3R5bGUuYmFja2dyb3VuZENvbG9yfVxuICAgICAgICAgICAgICBvbkJhY2tncm91bmRDb2xvckNoYW5nZT17bWFwU3R5bGVBY3Rpb25zLnNldEJhY2tncm91bmRDb2xvcn1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gaW5qZWN0SW50bChNYXBNYW5hZ2VyKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgTWFwTWFuYWdlckZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLGlCQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksaUJBQUEsR0FBQUQsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFLLFdBQUEsR0FBQUYsc0JBQUEsQ0FBQUgsT0FBQTtBQUVBLElBQUFNLE1BQUEsR0FBQU4sT0FBQTtBQUVBLElBQUFPLFVBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLGFBQUEsR0FBQVIsT0FBQTtBQUF5RCxTQUFBUyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQVgsd0JBQUFXLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSxnQkFBQUssT0FBQSxDQUFBTCxDQUFBLDBCQUFBQSxDQUFBLHNCQUFBQSxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQUcsR0FBQSxDQUFBTixDQUFBLFVBQUFHLENBQUEsQ0FBQUksR0FBQSxDQUFBUCxDQUFBLE9BQUFRLENBQUEsS0FBQUMsU0FBQSxVQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLENBQUEsSUFBQWQsQ0FBQSxvQkFBQWMsQ0FBQSxPQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWhCLENBQUEsRUFBQWMsQ0FBQSxTQUFBRyxDQUFBLEdBQUFQLENBQUEsR0FBQUMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBYixDQUFBLEVBQUFjLENBQUEsVUFBQUcsQ0FBQSxLQUFBQSxDQUFBLENBQUFWLEdBQUEsSUFBQVUsQ0FBQSxDQUFBQyxHQUFBLElBQUFQLE1BQUEsQ0FBQUMsY0FBQSxDQUFBSixDQUFBLEVBQUFNLENBQUEsRUFBQUcsQ0FBQSxJQUFBVCxDQUFBLENBQUFNLENBQUEsSUFBQWQsQ0FBQSxDQUFBYyxDQUFBLFlBQUFOLENBQUEsY0FBQVIsQ0FBQSxFQUFBRyxDQUFBLElBQUFBLENBQUEsQ0FBQWUsR0FBQSxDQUFBbEIsQ0FBQSxFQUFBUSxDQUFBLEdBQUFBLENBQUE7QUFiekQ7QUFDQTs7QUE2QkFXLGlCQUFpQixDQUFDQyxJQUFJLEdBQUcsQ0FBQ0MsNEJBQXVCLEVBQUVDLDRCQUF5QixFQUFFQyxzQkFBaUIsQ0FBQztBQUVoRyxTQUFTSixpQkFBaUJBLENBQ3hCSyxnQkFBNEQsRUFDNURDLGtCQUFnRSxFQUNoRUMsVUFBZ0QsRUFDaEQ7RUFDQSxJQUFNQyxVQUFxQyxHQUFHLFNBQXhDQSxVQUFxQ0EsQ0FBQUMsSUFBQSxFQU1yQztJQUFBLElBTEpDLFFBQVEsR0FBQUQsSUFBQSxDQUFSQyxRQUFRO01BQ1JDLElBQUksR0FBQUYsSUFBQSxDQUFKRSxJQUFJO01BQ0pDLGVBQWUsR0FBQUgsSUFBQSxDQUFmRyxlQUFlO01BQ2ZDLG9CQUFvQixHQUFBSixJQUFBLENBQXBCSSxvQkFBb0I7TUFDcEJDLGFBQWEsR0FBQUwsSUFBQSxDQUFiSyxhQUFhO0lBRWIsSUFBQUMsU0FBQSxHQUFzQyxJQUFBQyxlQUFRLEVBQUMsS0FBSyxDQUFDO01BQUFDLFVBQUEsT0FBQUMsZUFBQSxhQUFBSCxTQUFBO01BQTlDSSxXQUFXLEdBQUFGLFVBQUE7TUFBRUcsY0FBYyxHQUFBSCxVQUFBO0lBQ2xDLElBQU9JLGNBQWMsR0FBMEJULGVBQWUsQ0FBdkRTLGNBQWM7TUFBRUMsb0JBQW9CLEdBQUlWLGVBQWUsQ0FBdkNVLG9CQUFvQjtJQUMzQyxJQUFNQyxZQUFZLEdBQUdiLFFBQVEsQ0FBQ2MsU0FBUyxDQUFDZCxRQUFRLENBQUNlLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqRSxJQUFNQyxjQUFjLEdBQUdILFlBQVksQ0FBQ0ksV0FBVyxJQUFJLEVBQUU7SUFFckQsSUFBTUMsZUFBZSxHQUFHLElBQUFDLGtCQUFXLEVBQUMsWUFBTTtNQUN4Q1QsY0FBYyxDQUFDLFVBQUFVLElBQUk7UUFBQSxPQUFJLENBQUNBLElBQUk7TUFBQSxFQUFDO0lBQy9CLENBQUMsRUFBRSxDQUFDVixjQUFjLENBQUMsQ0FBQztJQUVwQixJQUFNSSxTQUFTLEdBQUdkLFFBQVEsQ0FBQ2MsU0FBUztJQUNwQyxJQUFNTyxXQUFXLEdBQUcsSUFBQUYsa0JBQVcsRUFDN0IsVUFBQ0csR0FBVyxFQUFLO01BQ2ZYLGNBQWMsQ0FBQ1csR0FBRyxDQUFDO01BQ25CWixjQUFjLENBQUMsS0FBSyxDQUFDO0lBQ3ZCLENBQUMsRUFDRCxDQUFDQyxjQUFjLEVBQUVELGNBQWMsQ0FDakMsQ0FBQztJQUVELElBQU1hLHNCQUFzQixHQUFHLElBQUFDLGNBQU8sRUFBQyxZQUFNO01BQzNDLElBQU1DLHFCQUFxQixHQUFHLENBQUMsQ0FBQztNQUNoQzNDLE1BQU0sQ0FBQzRDLE1BQU0sQ0FBQ1osU0FBUyxDQUFDLENBQ3JCYSxNQUFNLENBQUMsVUFBQTNCLFFBQVEsRUFBSTtRQUNsQixPQUFPNEIsT0FBTyxDQUFDNUIsUUFBUSxDQUFDNkIsTUFBTSxDQUFDO01BQ2pDLENBQUMsQ0FBQyxDQUNEQyxPQUFPLENBQUMsVUFBQUMsS0FBQSxFQUFVO1FBQUEsSUFBUkMsRUFBRSxHQUFBRCxLQUFBLENBQUZDLEVBQUU7UUFDWFAscUJBQXFCLENBQUNPLEVBQUUsQ0FBQyxHQUFHLENBQzFCO1VBQ0VBLEVBQUUsc0JBQUFDLE1BQUEsQ0FBc0JELEVBQUUsQ0FBRTtVQUM1QkUsYUFBYSxFQUFFQyxZQUFLO1VBQ3BCQyxPQUFPLEVBQUUsNEJBQTRCO1VBQ3JDQyxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtZQUFBLE9BQVF6QixvQkFBb0IsQ0FBQztjQUFDb0IsRUFBRSxFQUFGQTtZQUFFLENBQUMsQ0FBQztVQUFBO1FBQzNDLENBQUMsQ0FDRjtNQUNILENBQUMsQ0FBQztNQUNKLE9BQU9QLHFCQUFxQjtJQUM5QixDQUFDLEVBQUUsQ0FBQ1gsU0FBUyxFQUFFRixvQkFBb0IsQ0FBQyxDQUFDO0lBRXJDLG9CQUNFckQsTUFBQSxZQUFBK0UsYUFBQTtNQUFLQyxTQUFTLEVBQUM7SUFBaUIsZ0JBQzlCaEYsTUFBQSxZQUFBK0UsYUFBQSxDQUFDekMsVUFBVTtNQUNUMEMsU0FBUyxFQUFDLG1CQUFtQjtNQUM3QkMsS0FBSyxFQUFFdkMsSUFBSSxDQUFDd0MsYUFBYSxDQUFDO1FBQUNULEVBQUUsRUFBRTVCLGFBQWEsQ0FBQ3NDO01BQUssQ0FBQztJQUFFLGdCQUVyRG5GLE1BQUEsWUFBQStFLGFBQUEsQ0FBQzVFLGlCQUFBLENBQUFpRixNQUFNO01BQUNKLFNBQVMsRUFBQyxzQkFBc0I7TUFBQ0YsT0FBTyxFQUFFbEM7SUFBcUIsZ0JBQ3JFNUMsTUFBQSxZQUFBK0UsYUFBQSxDQUFDdkUsTUFBQSxDQUFBNkUsR0FBRztNQUFDQyxNQUFNLEVBQUM7SUFBTSxDQUFFLENBQUMsZUFDckJ0RixNQUFBLFlBQUErRSxhQUFBLENBQUNyRSxhQUFBLENBQUE2RSxnQkFBZ0I7TUFBQ2QsRUFBRSxFQUFFO0lBQXlCLENBQUUsQ0FDM0MsQ0FDRSxDQUFDLGVBQ2J6RSxNQUFBLFlBQUErRSxhQUFBLDJCQUNFL0UsTUFBQSxZQUFBK0UsYUFBQSxDQUFDM0MsZ0JBQWdCO01BQ2ZLLFFBQVEsRUFBRUEsUUFBUztNQUNuQlMsV0FBVyxFQUFFQSxXQUFZO01BQ3pCc0MsUUFBUSxFQUFFMUIsV0FBWTtNQUN0QjJCLFlBQVksRUFBRTlCLGVBQWdCO01BQzlCSyxzQkFBc0IsRUFBRUE7SUFBdUIsQ0FDaEQsQ0FBQyxFQUNEUCxjQUFjLENBQUNpQyxNQUFNLGdCQUNwQjFGLE1BQUEsWUFBQStFLGFBQUEsQ0FBQzFDLGtCQUFrQjtNQUNqQnNELE1BQU0sRUFBRWxELFFBQVEsQ0FBQ21ELGtCQUFtQjtNQUNwQ25DLGNBQWMsRUFBRUEsY0FBZTtNQUMvQm9DLFNBQVMsRUFBRXBELFFBQVEsQ0FBQ3FELGNBQWU7TUFDbkNOLFFBQVEsRUFBRTdDLGVBQWUsQ0FBQ29ELGVBQWdCO01BQzFDQyxtQkFBbUIsRUFBRXZELFFBQVEsQ0FBQ3VELG1CQUFvQjtNQUNsREMsdUJBQXVCLEVBQUV0RCxlQUFlLENBQUN1RCxrQkFBbUI7TUFDNURDLGVBQWUsRUFBRTFELFFBQVEsQ0FBQzBELGVBQWdCO01BQzFDQyx1QkFBdUIsRUFBRXpELGVBQWUsQ0FBQzBEO0lBQW1CLENBQzdELENBQUMsR0FDQSxJQUNELENBQ0YsQ0FBQztFQUVWLENBQUM7RUFFRCxPQUFPLElBQUFDLHFCQUFVLEVBQUMvRCxVQUFVLENBQUM7QUFDL0I7QUFBQyxJQUFBZ0UsUUFBQSxHQUFBQyxPQUFBLGNBRWN6RSxpQkFBaUIiLCJpZ25vcmVMaXN0IjpbXX0=