UNPKG

kepler.gl

Version:

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

122 lines (121 loc) 20.6 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() { /** @type {typeof import('./export-image-modal').ExportImageModal} */ 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+IHZvaWQ7XG4gIGludGw6IEludGxTaGFwZTtcbn1cblxuY29uc3QgRXhwb3J0SW1hZ2VNb2RhbEZhY3RvcnkgPSAoKSA9PiB7XG4gIC8qKiBAdHlwZSB7dHlwZW9mIGltcG9ydCgnLi9leHBvcnQtaW1hZ2UtbW9kYWwnKS5FeHBvcnRJbWFnZU1vZGFsfSAqL1xuICBjb25zdCBFeHBvcnRJbWFnZU1vZGFsOiBSZWFjdC5GQzxFeHBvcnRJbWFnZU1vZGFsUHJvcHM+ID0gKHtcbiAgICBtYXBXLFxuICAgIG1hcEgsXG4gICAgZXhwb3J0SW1hZ2UsXG4gICAgb25VcGRhdGVJbWFnZVNldHRpbmcsXG4gICAgY2xlYW51cEV4cG9ydEltYWdlLFxuICAgIGludGxcbiAgfSkgPT4ge1xuICAgIGNvbnN0IHtsZWdlbmQsIHJhdGlvLCByZXNvbHV0aW9ufSA9IGV4cG9ydEltYWdlO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIG9uVXBkYXRlSW1hZ2VTZXR0aW5nKHtcbiAgICAgICAgZXhwb3J0aW5nOiB0cnVlXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBjbGVhbnVwRXhwb3J0SW1hZ2U7XG4gICAgfSwgW29uVXBkYXRlSW1hZ2VTZXR0aW5nLCBjbGVhbnVwRXhwb3J0SW1hZ2VdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAobWFwSCAhPT0gZXhwb3J0SW1hZ2UubWFwSCB8fCBtYXBXICE9PSBleHBvcnRJbWFnZS5tYXBXKSB7XG4gICAgICAgIG9uVXBkYXRlSW1hZ2VTZXR0aW5nKHtcbiAgICAgICAgICBtYXBILFxuICAgICAgICAgIG1hcFdcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSwgW21hcEgsIG1hcFcsIGV4cG9ydEltYWdlLCBvblVwZGF0ZUltYWdlU2V0dGluZ10pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRNb2RhbENvbnRlbnQgY2xhc3NOYW1lPVwiZXhwb3J0LWltYWdlLW1vZGFsXCI+XG4gICAgICAgIDxJbWFnZU9wdGlvbkxpc3Q+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWFnZS1vcHRpb24tc2VjdGlvblwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWFnZS1vcHRpb24tc2VjdGlvbi10aXRsZVwiPlxuICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLmV4cG9ydEltYWdlLnJhdGlvVGl0bGUnfSAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLmV4cG9ydEltYWdlLnJhdGlvRGVzY3JpcHRpb24nfSAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJidXR0b24tbGlzdFwiIGlkPVwiZXhwb3J0LWltYWdlLW1vZGFsX19vcHRpb25fcmF0aW9cIj5cbiAgICAgICAgICAgICAge0VYUE9SVF9JTUdfUkFUSU9fT1BUSU9OUy5maWx0ZXIob3AgPT4gIW9wLmhpZGRlbikubWFwKG9wID0+IChcbiAgICAgICAgICAgICAgICA8U2VsZWN0aW9uQnV0dG9uXG4gICAgICAgICAgICAgICAgICBrZXk9e29wLmlkfVxuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ9e3JhdGlvID09PSBvcC5pZH1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uVXBkYXRlSW1hZ2VTZXR0aW5nKHtyYXRpbzogb3AuaWR9KX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17b3AubGFiZWx9IC8+XG4gICAgICAgICAgICAgICAgICB7cmF0aW8gPT09IG9wLmlkICYmIDxDaGVja01hcmsgLz59XG4gICAgICAgICAgICAgICAgPC9TZWxlY3Rpb25CdXR0b24+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWFnZS1vcHRpb24tc2VjdGlvblwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbWFnZS1vcHRpb24tc2VjdGlvbi10aXRsZVwiPlxuICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLmV4cG9ydEltYWdlLnJlc29sdXRpb25UaXRsZSd9IC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuZXhwb3J0SW1hZ2UucmVzb2x1dGlvbkRlc2NyaXB0aW9uJ30gLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYnV0dG9uLWxpc3RcIiBpZD1cImV4cG9ydC1pbWFnZS1tb2RhbF9fb3B0aW9uX3Jlc29sdXRpb25cIj5cbiAgICAgICAgICAgICAge0VYUE9SVF9JTUdfUkVTT0xVVElPTl9PUFRJT05TLm1hcChvcCA9PiAoXG4gICAgICAgICAgICAgICAgPFNlbGVjdGlvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAga2V5PXtvcC5pZH1cbiAgICAgICAgICAgICAgICAgIHNlbGVjdGVkPXtyZXNvbHV0aW9uID09PSBvcC5pZH1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9wLmF2YWlsYWJsZSAmJiBvblVwZGF0ZUltYWdlU2V0dGluZyh7cmVzb2x1dGlvbjogb3AuaWR9KX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7b3AubGFiZWx9XG4gICAgICAgICAgICAgICAgICB7cmVzb2x1dGlvbiA9PT0gb3AuaWQgJiYgPENoZWNrTWFyayAvPn1cbiAgICAgICAgICAgICAgICA8L1NlbGVjdGlvbkJ1dHRvbj5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltYWdlLW9wdGlvbi1zZWN0aW9uXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImltYWdlLW9wdGlvbi1zZWN0aW9uLXRpdGxlXCI+XG4gICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuZXhwb3J0SW1hZ2UubWFwTGVnZW5kVGl0bGUnfSAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8U3dpdGNoXG4gICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgIGlkPVwiYWRkLW1hcC1sZWdlbmRcIlxuICAgICAgICAgICAgICBjaGVja2VkPXtsZWdlbmR9XG4gICAgICAgICAgICAgIGxhYmVsPXtpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiAnbW9kYWwuZXhwb3J0SW1hZ2UubWFwTGVnZW5kQWRkJ30pfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17KCkgPT4gb25VcGRhdGVJbWFnZVNldHRpbmcoe2xlZ2VuZDogIWxlZ2VuZH0pfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9JbWFnZU9wdGlvbkxpc3Q+XG4gICAgICAgIDxJbWFnZVByZXZpZXcgZXhwb3J0SW1hZ2U9e2V4cG9ydEltYWdlfSAvPlxuICAgICAgPC9TdHlsZWRNb2RhbENvbnRlbnQ+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gaW5qZWN0SW50bChFeHBvcnRJbWFnZU1vZGFsKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEV4cG9ydEltYWdlTW9kYWxGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsYUFBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBR0EsSUFBQUksVUFBQSxHQUFBSixPQUFBO0FBTUEsSUFBQUssa0JBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLE9BQUEsR0FBQUosc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFPLFVBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLGFBQUEsR0FBQVIsT0FBQTtBQUF5RCxJQUFBUyxlQUFBLEVBakJ6RDtBQUNBO0FBQUEsU0FBQUMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFaLHdCQUFBWSxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsZ0JBQUFLLE9BQUEsQ0FBQUwsQ0FBQSwwQkFBQUEsQ0FBQSxzQkFBQUEsQ0FBQSxRQUFBRyxDQUFBLEdBQUFKLHdCQUFB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