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,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfaW1hZ2VQcmV2aWV3IiwiX2NvbnN0YW50cyIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl9zd2l0Y2giLCJfcmVhY3RJbnRsIiwiX2xvY2FsaXphdGlvbiIsIl90ZW1wbGF0ZU9iamVjdCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIkltYWdlT3B0aW9uTGlzdCIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiRXhwb3J0SW1hZ2VNb2RhbEZhY3RvcnkiLCJFeHBvcnRJbWFnZU1vZGFsIiwiX3JlZiIsIm1hcFciLCJtYXBIIiwiZXhwb3J0SW1hZ2UiLCJvblVwZGF0ZUltYWdlU2V0dGluZyIsImNsZWFudXBFeHBvcnRJbWFnZSIsImludGwiLCJsZWdlbmQiLCJyYXRpbyIsInJlc29sdXRpb24iLCJ1c2VFZmZlY3QiLCJleHBvcnRpbmciLCJjcmVhdGVFbGVtZW50IiwiU3R5bGVkTW9kYWxDb250ZW50IiwiY2xhc3NOYW1lIiwiRm9ybWF0dGVkTWVzc2FnZSIsImlkIiwiRVhQT1JUX0lNR19SQVRJT19PUFRJT05TIiwiZmlsdGVyIiwib3AiLCJoaWRkZW4iLCJtYXAiLCJTZWxlY3Rpb25CdXR0b24iLCJrZXkiLCJzZWxlY3RlZCIsIm9uQ2xpY2siLCJsYWJlbCIsIkNoZWNrTWFyayIsIkVYUE9SVF9JTUdfUkVTT0xVVElPTl9PUFRJT05TIiwiYXZhaWxhYmxlIiwidHlwZSIsImNoZWNrZWQiLCJmb3JtYXRNZXNzYWdlIiwib25DaGFuZ2UiLCJpbmplY3RJbnRsIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vZGFscy9leHBvcnQtaW1hZ2UtbW9kYWwudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUVmZmVjdH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgSW1hZ2VQcmV2aWV3IGZyb20gJy4uL2NvbW1vbi9pbWFnZS1wcmV2aWV3JztcbmltcG9ydCB7U2V0RXhwb3J0SW1hZ2VTZXR0aW5nVXBkYXRlckFjdGlvbn0gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcblxuaW1wb3J0IHtcbiAgRVhQT1JUX0lNR19SQVRJT19PUFRJT05TLFxuICBFWFBPUlRfSU1HX1JFU09MVVRJT05fT1BUSU9OUyxcbiAgRXhwb3J0SW1hZ2Vcbn0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuXG5pbXBvcnQge1N0eWxlZE1vZGFsQ29udGVudCwgU2VsZWN0aW9uQnV0dG9uLCBDaGVja01hcmt9IGZyb20gJy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgU3dpdGNoIGZyb20gJy4uL2NvbW1vbi9zd2l0Y2gnO1xuaW1wb3J0IHtpbmplY3RJbnRsLCBJbnRsU2hhcGV9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IHtGb3JtYXR0ZWRNZXNzYWdlfSBmcm9tICdAa2VwbGVyLmdsL2xvY2FsaXphdGlvbic7XG5cbmNvbnN0IEltYWdlT3B0aW9uTGlzdCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICB3aWR0aDogMjUwcHg7XG5cbiAgLmltYWdlLW9wdGlvbi1zZWN0aW9uIHtcbiAgICAuaW1hZ2Utb3B0aW9uLXNlY3Rpb24tdGl0bGUge1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB9XG4gIH1cblxuICAuYnV0dG9uLWxpc3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBwYWRkaW5nOiA4cHggMHB4O1xuICB9XG5cbiAgaW5wdXQge1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICB9XG5gO1xuXG5leHBvcnQgaW50ZXJmYWNlIEV4cG9ydEltYWdlTW9kYWxQcm9wcyB7XG4gIGV4cG9ydEltYWdlOiBFeHBvcnRJbWFnZTtcbiAgbWFwVzogbnVtYmVyO1xuICBtYXBIOiBudW1iZXI7XG4gIG9uVXBkYXRlSW1hZ2VTZXR0aW5nOiAocGF5bG9hZDogU2V0RXhwb3J0SW1hZ2VTZXR0aW5nVXBkYXRlckFjdGlvblsncGF5bG9hZCddKSA9PiB2b2lkO1xuICBjbGVhbnVwRXhwb3J0SW1hZ2U6ICgpID0+IHZvaWQ7XG4gIGludGw6IEludGxTaGFwZTtcbn1cblxuY29uc3QgRXhwb3J0SW1hZ2VNb2RhbEZhY3RvcnkgPSAoKSA9PiB7XG4gIGNvbnN0IEV4cG9ydEltYWdlTW9kYWw6IFJlYWN0LkZDPEV4cG9ydEltYWdlTW9kYWxQcm9wcz4gPSAoe1xuICAgIG1hcFcsXG4gICAgbWFwSCxcbiAgICBleHBvcnRJbWFnZSxcbiAgICBvblVwZGF0ZUltYWdlU2V0dGluZyxcbiAgICBjbGVhbnVwRXhwb3J0SW1hZ2UsXG4gICAgaW50bFxuICB9KSA9PiB7XG4gICAgY29uc3Qge2xlZ2VuZCwgcmF0aW8sIHJlc29sdXRpb259ID0gZXhwb3J0SW1hZ2U7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgb25VcGRhdGVJbWFnZVNldHRpbmcoe1xuICAgICAgICBleHBvcnRpbmc6IHRydWVcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGNsZWFudXBFeHBvcnRJbWFnZTtcbiAgICB9LCBbb25VcGRhdGVJbWFnZVNldHRpbmcsIGNsZWFudXBFeHBvcnRJbWFnZV0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChtYXBIICE9PSBleHBvcnRJbWFnZS5tYXBIIHx8IG1hcFcgIT09IGV4cG9ydEltYWdlLm1hcFcpIHtcbiAgICAgICAgb25VcGRhdGVJbWFnZVNldHRpbmcoe1xuICAgICAgICAgIG1hcEgsXG4gICAgICAgICAgbWFwV1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9LCBbbWFwSCwgbWFwVywgZXhwb3J0SW1hZ2UsIG9uVXBkYXRlSW1hZ2VTZXR0aW5nXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZE1vZGFsQ29udGVudCBjbGFzc05hbWU9XCJleHBvcnQtaW1hZ2UtbW9kYWxcIj5cbiAgICAgICAgPEltYWdlT3B0aW9uTGlzdD5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltYWdlLW9wdGlvbi1zZWN0aW9uXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltYWdlLW9wdGlvbi1zZWN0aW9uLXRpdGxlXCI+XG4gICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuZXhwb3J0SW1hZ2UucmF0aW9UaXRsZSd9IC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuZXhwb3J0SW1hZ2UucmF0aW9EZXNjcmlwdGlvbid9IC8+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJ1dHRvbi1saXN0XCIgaWQ9XCJleHBvcnQtaW1hZ2UtbW9kYWxfX29wdGlvbl9yYXRpb1wiPlxuICAgICAgICAgICAgICB7RVhQT1JUX0lNR19SQVRJT19PUFRJT05TLmZpbHRlcihvcCA9PiAhb3AuaGlkZGVuKS5tYXAob3AgPT4gKFxuICAgICAgICAgICAgICAgIDxTZWxlY3Rpb25CdXR0b25cbiAgICAgICAgICAgICAgICAgIGtleT17b3AuaWR9XG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZD17cmF0aW8gPT09IG9wLmlkfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25VcGRhdGVJbWFnZVNldHRpbmcoe3JhdGlvOiBvcC5pZH0pfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXtvcC5sYWJlbH0gLz5cbiAgICAgICAgICAgICAgICAgIHtyYXRpbyA9PT0gb3AuaWQgJiYgPENoZWNrTWFyayAvPn1cbiAgICAgICAgICAgICAgICA8L1NlbGVjdGlvbkJ1dHRvbj5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltYWdlLW9wdGlvbi1zZWN0aW9uXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltYWdlLW9wdGlvbi1zZWN0aW9uLXRpdGxlXCI+XG4gICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuZXhwb3J0SW1hZ2UucmVzb2x1dGlvblRpdGxlJ30gLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnRJbWFnZS5yZXNvbHV0aW9uRGVzY3JpcHRpb24nfSAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJidXR0b24tbGlzdFwiIGlkPVwiZXhwb3J0LWltYWdlLW1vZGFsX19vcHRpb25fcmVzb2x1dGlvblwiPlxuICAgICAgICAgICAgICB7RVhQT1JUX0lNR19SRVNPTFVUSU9OX09QVElPTlMubWFwKG9wID0+IChcbiAgICAgICAgICAgICAgICA8U2VsZWN0aW9uQnV0dG9uXG4gICAgICAgICAgICAgICAgICBrZXk9e29wLmlkfVxuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ9e3Jlc29sdXRpb24gPT09IG9wLmlkfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb3AuYXZhaWxhYmxlICYmIG9uVXBkYXRlSW1hZ2VTZXR0aW5nKHtyZXNvbHV0aW9uOiBvcC5pZH0pfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtvcC5sYWJlbH1cbiAgICAgICAgICAgICAgICAgIHtyZXNvbHV0aW9uID09PSBvcC5pZCAmJiA8Q2hlY2tNYXJrIC8+fVxuICAgICAgICAgICAgICAgIDwvU2VsZWN0aW9uQnV0dG9uPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1hZ2Utb3B0aW9uLXNlY3Rpb25cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW1hZ2Utb3B0aW9uLXNlY3Rpb24tdGl0bGVcIj5cbiAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnRJbWFnZS5tYXBMZWdlbmRUaXRsZSd9IC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxTd2l0Y2hcbiAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgaWQ9XCJhZGQtbWFwLWxlZ2VuZFwiXG4gICAgICAgICAgICAgIGNoZWNrZWQ9e2xlZ2VuZH1cbiAgICAgICAgICAgICAgbGFiZWw9e2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6ICdtb2RhbC5leHBvcnRJbWFnZS5tYXBMZWdlbmRBZGQnfSl9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXsoKSA9PiBvblVwZGF0ZUltYWdlU2V0dGluZyh7bGVnZW5kOiAhbGVnZW5kfSl9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L0ltYWdlT3B0aW9uTGlzdD5cbiAgICAgICAgPEltYWdlUHJldmlldyBleHBvcnRJbWFnZT17ZXhwb3J0SW1hZ2V9IC8+XG4gICAgICA8L1N0eWxlZE1vZGFsQ29udGVudD5cbiAgICApO1xuICB9O1xuXG4gIHJldHVybiBpbmplY3RJbnRsKEV4cG9ydEltYWdlTW9kYWwpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgRXhwb3J0SW1hZ2VNb2RhbEZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxhQUFBLEdBQUFELHNCQUFBLENBQUFGLE9BQUE7QUFHQSxJQUFBSSxVQUFBLEdBQUFKLE9BQUE7QUFNQSxJQUFBSyxrQkFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sT0FBQSxHQUFBSixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQU8sVUFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsYUFBQSxHQUFBUixPQUFBO0FBQXlELElBQUFTLGVBQUEsRUFqQnpEO0FBQ0E7QUFBQSxTQUFBQyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQVosd0JBQUFZLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSxnQkFBQUssT0FBQSxDQUFBTCxDQUFBLDBCQUFBQSxDQUFBLHNCQUFBQSxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQUcsR0FBQSxDQUFBTixDQUFBLFVBQUFHLENBQUEsQ0FBQUks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