UNPKG

kepler.gl

Version:

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

121 lines (120 loc) 20.4 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 _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral")); var _react = _interopRequireWildcard(require("react")); var _styledComponents = _interopRequireDefault(require("styled-components")); var _imagePreview = _interopRequireDefault(require("../common/image-preview")); var _constants = require("@kepler.gl/constants"); var _styledComponents2 = require("../common/styled-components"); var _switch = _interopRequireDefault(require("../common/switch")); var _reactIntl = require("react-intl"); var _localization = require("@kepler.gl/localization"); var _templateObject; // 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; } var ImageOptionList = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n justify-content: space-around;\n width: 250px;\n\n .image-option-section {\n .image-option-section-title {\n font-weight: 500;\n font-size: 14px;\n }\n }\n\n .button-list {\n display: flex;\n flex-direction: row;\n padding: 8px 0px;\n }\n\n input {\n margin-right: 8px;\n }\n"]))); var ExportImageModalFactory = function ExportImageModalFactory() { var ExportImageModal = function ExportImageModal(_ref) { var mapW = _ref.mapW, mapH = _ref.mapH, exportImage = _ref.exportImage, onUpdateImageSetting = _ref.onUpdateImageSetting, cleanupExportImage = _ref.cleanupExportImage, intl = _ref.intl; var legend = exportImage.legend, ratio = exportImage.ratio, resolution = exportImage.resolution; (0, _react.useEffect)(function () { onUpdateImageSetting({ exporting: true }); return cleanupExportImage; }, [onUpdateImageSetting, cleanupExportImage]); (0, _react.useEffect)(function () { if (mapH !== exportImage.mapH || mapW !== exportImage.mapW) { onUpdateImageSetting({ mapH: mapH, mapW: mapW }); } }, [mapH, mapW, exportImage, onUpdateImageSetting]); return /*#__PURE__*/_react["default"].createElement(_styledComponents2.StyledModalContent, { className: "export-image-modal" }, /*#__PURE__*/_react["default"].createElement(ImageOptionList, null, /*#__PURE__*/_react["default"].createElement("div", { className: "image-option-section" }, /*#__PURE__*/_react["default"].createElement("div", { className: "image-option-section-title" }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, { id: 'modal.exportImage.ratioTitle' })), /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, { id: 'modal.exportImage.ratioDescription' }), /*#__PURE__*/_react["default"].createElement("div", { className: "button-list", id: "export-image-modal__option_ratio" }, _constants.EXPORT_IMG_RATIO_OPTIONS.filter(function (op) { return !op.hidden; }).map(function (op) { return /*#__PURE__*/_react["default"].createElement(_styledComponents2.SelectionButton, { key: op.id, selected: ratio === op.id, onClick: function onClick() { return onUpdateImageSetting({ ratio: op.id }); } }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, { id: op.label }), ratio === op.id && /*#__PURE__*/_react["default"].createElement(_styledComponents2.CheckMark, null)); }))), /*#__PURE__*/_react["default"].createElement("div", { className: "image-option-section" }, /*#__PURE__*/_react["default"].createElement("div", { className: "image-option-section-title" }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, { id: 'modal.exportImage.resolutionTitle' })), /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, { id: 'modal.exportImage.resolutionDescription' }), /*#__PURE__*/_react["default"].createElement("div", { className: "button-list", id: "export-image-modal__option_resolution" }, _constants.EXPORT_IMG_RESOLUTION_OPTIONS.map(function (op) { return /*#__PURE__*/_react["default"].createElement(_styledComponents2.SelectionButton, { key: op.id, selected: resolution === op.id, onClick: function onClick() { return op.available && onUpdateImageSetting({ resolution: op.id }); } }, op.label, resolution === op.id && /*#__PURE__*/_react["default"].createElement(_styledComponents2.CheckMark, null)); }))), /*#__PURE__*/_react["default"].createElement("div", { className: "image-option-section" }, /*#__PURE__*/_react["default"].createElement("div", { className: "image-option-section-title" }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, { id: 'modal.exportImage.mapLegendTitle' })), /*#__PURE__*/_react["default"].createElement(_switch["default"], { type: "checkbox", id: "add-map-legend", checked: legend, label: intl.formatMessage({ id: 'modal.exportImage.mapLegendAdd' }), onChange: function onChange() { return onUpdateImageSetting({ legend: !legend }); } }))), /*#__PURE__*/_react["default"].createElement(_imagePreview["default"], { exportImage: exportImage })); }; return (0, _reactIntl.injectIntl)(ExportImageModal); }; var _default = exports["default"] = ExportImageModalFactory; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfaW1hZ2VQcmV2aWV3IiwiX2NvbnN0YW50cyIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl9zd2l0Y2giLCJfcmVhY3RJbnRsIiwiX2xvY2FsaXphdGlvbiIsIl90ZW1wbGF0ZU9iamVjdCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIkltYWdlT3B0aW9uTGlzdCIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiRXhwb3J0SW1hZ2VNb2RhbEZhY3RvcnkiLCJFeHBvcnRJbWFnZU1vZGFsIiwiX3JlZiIsIm1hcFciLCJtYXBIIiwiZXhwb3J0SW1hZ2UiLCJvblVwZGF0ZUltYWdlU2V0dGluZyIsImNsZWFudXBFeHBvcnRJbWFnZSIsImludGwiLCJsZWdlbmQiLCJyYXRpbyIsInJlc29sdXRpb24iLCJ1c2VFZmZlY3QiLCJleHBvcnRpbmciLCJjcmVhdGVFbGVtZW50IiwiU3R5bGVkTW9kYWxDb250ZW50IiwiY2xhc3NOYW1lIiwiRm9ybWF0dGVkTWVzc2FnZSIsImlkIiwiRVhQT1JUX0lNR19SQVRJT19PUFRJT05TIiwiZmlsdGVyIiwib3AiLCJoaWRkZW4iLCJtYXAiLCJTZWxlY3Rpb25CdXR0b24iLCJrZXkiLCJzZWxlY3RlZCIsIm9uQ2xpY2siLCJsYWJlbCIsIkNoZWNrTWFyayIsIkVYUE9SVF9JTUdfUkVTT0xVVElPTl9PUFRJT05TIiwiYXZhaWxhYmxlIiwidHlwZSIsImNoZWNrZWQiLCJmb3JtYXRNZXNzYWdlIiwib25DaGFuZ2UiLCJpbmplY3RJbnRsIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vZGFscy9leHBvcnQtaW1hZ2UtbW9kYWwudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUVmZmVjdH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgSW1hZ2VQcmV2aWV3IGZyb20gJy4uL2NvbW1vbi9pbWFnZS1wcmV2aWV3JztcbmltcG9ydCB7U2V0RXhwb3J0SW1hZ2VTZXR0aW5nVXBkYXRlckFjdGlvbn0gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcblxuaW1wb3J0IHtFWFBPUlRfSU1HX1JBVElPX09QVElPTlMsIEVYUE9SVF9JTUdfUkVTT0xVVElPTl9PUFRJT05TfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0V4cG9ydEltYWdlfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7U3R5bGVkTW9kYWxDb250ZW50LCBTZWxlY3Rpb25CdXR0b24sIENoZWNrTWFya30gZnJvbSAnLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBTd2l0Y2ggZnJvbSAnLi4vY29tbW9uL3N3aXRjaCc7XG5pbXBvcnQge2luamVjdEludGwsIEludGxTaGFwZX0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcblxuY29uc3QgSW1hZ2VPcHRpb25MaXN0ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gIHdpZHRoOiAyNTBweDtcblxuICAuaW1hZ2Utb3B0aW9uLXNlY3Rpb24ge1xuICAgIC5pbWFnZS1vcHRpb24tc2VjdGlvbi10aXRsZSB7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgIH1cbiAgfVxuXG4gIC5idXR0b24tbGlzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIHBhZGRpbmc6IDhweCAwcHg7XG4gIH1cblxuICBpbnB1dCB7XG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gIH1cbmA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXhwb3J0SW1hZ2VNb2RhbFByb3BzIHtcbiAgZXhwb3J0SW1hZ2U6IEV4cG9ydEltYWdlO1xuICBtYXBXOiBudW1iZXI7XG4gIG1hcEg6IG51bWJlcjtcbiAgb25VcGRhdGVJbWFnZVNldHRpbmc6IChwYXlsb2FkOiBTZXRFeHBvcnRJbWFnZVNldHRpbmdVcGRhdGVyQWN0aW9uWydwYXlsb2FkJ10pID0+IHZvaWQ7XG4gIGNsZWFudXBFeHBvcnRJbWFnZTogKCkgPT4gdm9pZDtcbiAgaW50bDogSW50bFNoYXBlO1xufVxuXG5jb25zdCBFeHBvcnRJbWFnZU1vZGFsRmFjdG9yeSA9ICgpID0+IHtcbiAgY29uc3QgRXhwb3J0SW1hZ2VNb2RhbDogUmVhY3QuRkM8RXhwb3J0SW1hZ2VNb2RhbFByb3BzPiA9ICh7XG4gICAgbWFwVyxcbiAgICBtYXBILFxuICAgIGV4cG9ydEltYWdlLFxuICAgIG9uVXBkYXRlSW1hZ2VTZXR0aW5nLFxuICAgIGNsZWFudXBFeHBvcnRJbWFnZSxcbiAgICBpbnRsXG4gIH0pID0+IHtcbiAgICBjb25zdCB7bGVnZW5kLCByYXRpbywgcmVzb2x1dGlvbn0gPSBleHBvcnRJbWFnZTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBvblVwZGF0ZUltYWdlU2V0dGluZyh7XG4gICAgICAgIGV4cG9ydGluZzogdHJ1ZVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gY2xlYW51cEV4cG9ydEltYWdlO1xuICAgIH0sIFtvblVwZGF0ZUltYWdlU2V0dGluZywgY2xlYW51cEV4cG9ydEltYWdlXSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKG1hcEggIT09IGV4cG9ydEltYWdlLm1hcEggfHwgbWFwVyAhPT0gZXhwb3J0SW1hZ2UubWFwVykge1xuICAgICAgICBvblVwZGF0ZUltYWdlU2V0dGluZyh7XG4gICAgICAgICAgbWFwSCxcbiAgICAgICAgICBtYXBXXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0sIFttYXBILCBtYXBXLCBleHBvcnRJbWFnZSwgb25VcGRhdGVJbWFnZVNldHRpbmddKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkTW9kYWxDb250ZW50IGNsYXNzTmFtZT1cImV4cG9ydC1pbWFnZS1tb2RhbFwiPlxuICAgICAgICA8SW1hZ2VPcHRpb25MaXN0PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1hZ2Utb3B0aW9uLXNlY3Rpb25cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1hZ2Utb3B0aW9uLXNlY3Rpb24tdGl0bGVcIj5cbiAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnRJbWFnZS5yYXRpb1RpdGxlJ30gLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnRJbWFnZS5yYXRpb0Rlc2NyaXB0aW9uJ30gLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYnV0dG9uLWxpc3RcIiBpZD1cImV4cG9ydC1pbWFnZS1tb2RhbF9fb3B0aW9uX3JhdGlvXCI+XG4gICAgICAgICAgICAgIHtFWFBPUlRfSU1HX1JBVElPX09QVElPTlMuZmlsdGVyKG9wID0+ICFvcC5oaWRkZW4pLm1hcChvcCA9PiAoXG4gICAgICAgICAgICAgICAgPFNlbGVjdGlvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAga2V5PXtvcC5pZH1cbiAgICAgICAgICAgICAgICAgIHNlbGVjdGVkPXtyYXRpbyA9PT0gb3AuaWR9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvblVwZGF0ZUltYWdlU2V0dGluZyh7cmF0aW86IG9wLmlkfSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9e29wLmxhYmVsfSAvPlxuICAgICAgICAgICAgICAgICAge3JhdGlvID09PSBvcC5pZCAmJiA8Q2hlY2tNYXJrIC8+fVxuICAgICAgICAgICAgICAgIDwvU2VsZWN0aW9uQnV0dG9uPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1hZ2Utb3B0aW9uLXNlY3Rpb25cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1hZ2Utb3B0aW9uLXNlY3Rpb24tdGl0bGVcIj5cbiAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnRJbWFnZS5yZXNvbHV0aW9uVGl0bGUnfSAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLmV4cG9ydEltYWdlLnJlc29sdXRpb25EZXNjcmlwdGlvbid9IC8+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJ1dHRvbi1saXN0XCIgaWQ9XCJleHBvcnQtaW1hZ2UtbW9kYWxfX29wdGlvbl9yZXNvbHV0aW9uXCI+XG4gICAgICAgICAgICAgIHtFWFBPUlRfSU1HX1JFU09MVVRJT05fT1BUSU9OUy5tYXAob3AgPT4gKFxuICAgICAgICAgICAgICAgIDxTZWxlY3Rpb25CdXR0b25cbiAgICAgICAgICAgICAgICAgIGtleT17b3AuaWR9XG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZD17cmVzb2x1dGlvbiA9PT0gb3AuaWR9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvcC5hdmFpbGFibGUgJiYgb25VcGRhdGVJbWFnZVNldHRpbmcoe3Jlc29sdXRpb246IG9wLmlkfSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge29wLmxhYmVsfVxuICAgICAgICAgICAgICAgICAge3Jlc29sdXRpb24gPT09IG9wLmlkICYmIDxDaGVja01hcmsgLz59XG4gICAgICAgICAgICAgICAgPC9TZWxlY3Rpb25CdXR0b24+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWFnZS1vcHRpb24tc2VjdGlvblwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWFnZS1vcHRpb24tc2VjdGlvbi10aXRsZVwiPlxuICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLmV4cG9ydEltYWdlLm1hcExlZ2VuZFRpdGxlJ30gLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPFN3aXRjaFxuICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICBpZD1cImFkZC1tYXAtbGVnZW5kXCJcbiAgICAgICAgICAgICAgY2hlY2tlZD17bGVnZW5kfVxuICAgICAgICAgICAgICBsYWJlbD17aW50bC5mb3JtYXRNZXNzYWdlKHtpZDogJ21vZGFsLmV4cG9ydEltYWdlLm1hcExlZ2VuZEFkZCd9KX1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9eygpID0+IG9uVXBkYXRlSW1hZ2VTZXR0aW5nKHtsZWdlbmQ6ICFsZWdlbmR9KX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvSW1hZ2VPcHRpb25MaXN0PlxuICAgICAgICA8SW1hZ2VQcmV2aWV3IGV4cG9ydEltYWdlPXtleHBvcnRJbWFnZX0gLz5cbiAgICAgIDwvU3R5bGVkTW9kYWxDb250ZW50PlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIGluamVjdEludGwoRXhwb3J0SW1hZ2VNb2RhbCk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBFeHBvcnRJbWFnZU1vZGFsRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLGFBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUdBLElBQUFJLFVBQUEsR0FBQUosT0FBQTtBQUVBLElBQUFLLGtCQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxPQUFBLEdBQUFKLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTyxVQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxhQUFBLEdBQUFSLE9BQUE7QUFBeUQsSUFBQVMsZUFBQSxFQWJ6RDtBQUNBO0FBQUEsU0FBQUMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFaLHdCQUFBWSxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsZ0JBQUFLLE9BQUEsQ0FBQUwsQ0FBQSwwQkFBQUEsQ0FBQSxzQkFBQUEsQ0FBQSxRQUFBRyxDQUFBLEdBQUFKLHdCQUFBLENBQUFHLENBQUEsT0FBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFHLEdBQUEsQ0FBQU4sQ0FB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