@kando-env/kando-ui 1.2.122 → 1.2.123
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/Widgets/Map/Map.js +40 -163
- package/lib/Widgets/Map/MapUtils.js +102 -0
- package/lib/Widgets/Map/areas/AreaPolygon.js +2 -2
- package/lib/Widgets/Map/events/Event.js +69 -0
- package/lib/Widgets/Map/events/EventIndicator.js +21 -46
- package/lib/Widgets/Map/events/EventPath.js +16 -38
- package/lib/Widgets/Map/events/EventUtils.js +245 -0
- package/lib/Widgets/Map/events/NetworkForSpecificEvent.js +3 -117
- package/lib/Widgets/Map/events/PointOfEvent.js +142 -0
- package/lib/Widgets/Map/events/PointsForSpecificEvent.js +66 -0
- package/lib/Widgets/Map/events/Snail.js +60 -0
- package/lib/Widgets/Map/points/PointMarker.js +10 -472
- package/lib/Widgets/Map/points/PointMarkers.js +24 -17
- package/lib/Widgets/Map/points/PointUtils.js +373 -0
- package/lib/components/Header/Toolbar/Toolbar.js +2 -2
- package/lib/macros/getVersion.js +1 -1
- package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainer.js +1 -4
- package/lib/pages/EventsPage/events/events_list/EventsList.js +25 -8
- package/lib/pages/EventsPage/events/events_list/Filter/FilterContainer.js +2 -2
- package/package.json +1 -1
- package/lib/Widgets/Map/events/EventIndicatorHover.js +0 -252
- package/lib/Widgets/Map/events/EventPathHover.js +0 -81
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.PointsForSpecificEvent = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
|
|
12
|
+
var _EventUtils = require("./EventUtils");
|
|
13
|
+
|
|
14
|
+
var _PointOfEvent = require("./PointOfEvent");
|
|
15
|
+
|
|
16
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
17
|
+
|
|
18
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
19
|
+
|
|
20
|
+
var PointsForSpecificEvent = function PointsForSpecificEvent(_ref) {
|
|
21
|
+
var points = _ref.points,
|
|
22
|
+
event = _ref.event,
|
|
23
|
+
edges = _ref.edges,
|
|
24
|
+
map = _ref.map;
|
|
25
|
+
|
|
26
|
+
var findPointsToDraw = function findPointsToDraw() {
|
|
27
|
+
if (event.path.length !== 0) {
|
|
28
|
+
var relevantEdges = [];
|
|
29
|
+
var releventPoints = [];
|
|
30
|
+
(0, _EventUtils.findEdgesFromEventPathToDraw)(relevantEdges, event, edges);
|
|
31
|
+
relevantEdges.forEach(function (edge) {
|
|
32
|
+
var pointToDraw = points.find(function (p) {
|
|
33
|
+
return p.part_of_monitored_path && p.id === edge.source_point_id;
|
|
34
|
+
});
|
|
35
|
+
if (pointToDraw !== undefined) releventPoints.push(pointToDraw);
|
|
36
|
+
});
|
|
37
|
+
var lastPointOfHierarchy = undefined;
|
|
38
|
+
if (relevantEdges.length > 1) lastPointOfHierarchy = points.find(function (p) {
|
|
39
|
+
return p.id === relevantEdges[relevantEdges.length - 1].target_point_id && p.part_of_monitored_path;
|
|
40
|
+
});
|
|
41
|
+
if (lastPointOfHierarchy !== undefined && !releventPoints.includes(lastPointOfHierarchy)) releventPoints.push(lastPointOfHierarchy);
|
|
42
|
+
return releventPoints;
|
|
43
|
+
} else {
|
|
44
|
+
var _releventPoints = [];
|
|
45
|
+
event.observations.forEach(function (obs) {
|
|
46
|
+
var findPoint = points.find(function (p) {
|
|
47
|
+
return p.id === obs.point_id;
|
|
48
|
+
});
|
|
49
|
+
if (findPoint) _releventPoints.push(findPoint);
|
|
50
|
+
});
|
|
51
|
+
return _releventPoints;
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
(0, _react.useEffect)(function () {}, [event.focused, event.hovered]);
|
|
56
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, findPointsToDraw().map(function (point) {
|
|
57
|
+
return /*#__PURE__*/_react.default.createElement(_PointOfEvent.PointOfEvent, {
|
|
58
|
+
map: map,
|
|
59
|
+
point: point,
|
|
60
|
+
event: event
|
|
61
|
+
});
|
|
62
|
+
}));
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
exports.PointsForSpecificEvent = PointsForSpecificEvent;
|
|
66
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9ldmVudHMvUG9pbnRzRm9yU3BlY2lmaWNFdmVudC50c3giXSwibmFtZXMiOlsiUG9pbnRzRm9yU3BlY2lmaWNFdmVudCIsInBvaW50cyIsImV2ZW50IiwiZWRnZXMiLCJtYXAiLCJmaW5kUG9pbnRzVG9EcmF3IiwicGF0aCIsImxlbmd0aCIsInJlbGV2YW50RWRnZXMiLCJyZWxldmVudFBvaW50cyIsImZvckVhY2giLCJlZGdlIiwicG9pbnRUb0RyYXciLCJmaW5kIiwicCIsInBhcnRfb2ZfbW9uaXRvcmVkX3BhdGgiLCJpZCIsInNvdXJjZV9wb2ludF9pZCIsInVuZGVmaW5lZCIsInB1c2giLCJsYXN0UG9pbnRPZkhpZXJhcmNoeSIsInRhcmdldF9wb2ludF9pZCIsImluY2x1ZGVzIiwib2JzZXJ2YXRpb25zIiwib2JzIiwiZmluZFBvaW50IiwicG9pbnRfaWQiLCJmb2N1c2VkIiwiaG92ZXJlZCIsInBvaW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFHQTs7Ozs7O0FBU08sSUFBTUEsc0JBQXdDLEdBQUcsU0FBM0NBLHNCQUEyQyxPQUtsRDtBQUFBLE1BSkpDLE1BSUksUUFKSkEsTUFJSTtBQUFBLE1BSEpDLEtBR0ksUUFISkEsS0FHSTtBQUFBLE1BRkpDLEtBRUksUUFGSkEsS0FFSTtBQUFBLE1BREpDLEdBQ0ksUUFESkEsR0FDSTs7QUFDSixNQUFNQyxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQW1CLEdBQU07QUFDN0IsUUFBSUgsS0FBSyxDQUFDSSxJQUFOLENBQVdDLE1BQVgsS0FBc0IsQ0FBMUIsRUFBNkI7QUFDM0IsVUFBSUMsYUFBc0IsR0FBRyxFQUE3QjtBQUNBLFVBQUlDLGNBQXdCLEdBQUcsRUFBL0I7QUFDQSxvREFBNkJELGFBQTdCLEVBQTRDTixLQUE1QyxFQUFtREMsS0FBbkQ7QUFFQUssTUFBQUEsYUFBYSxDQUFDRSxPQUFkLENBQXNCLFVBQUNDLElBQUQsRUFBaUI7QUFDckMsWUFBSUMsV0FBVyxHQUFHWCxNQUFNLENBQUNZLElBQVAsQ0FDaEIsVUFBQ0MsQ0FBRDtBQUFBLGlCQUNFQSxDQUFDLENBQUNDLHNCQUFGLElBQTRCRCxDQUFDLENBQUNFLEVBQUYsS0FBU0wsSUFBSSxDQUFDTSxlQUQ1QztBQUFBLFNBRGdCLENBQWxCO0FBSUEsWUFBSUwsV0FBVyxLQUFLTSxTQUFwQixFQUErQlQsY0FBYyxDQUFDVSxJQUFmLENBQW9CUCxXQUFwQjtBQUNoQyxPQU5EO0FBUUEsVUFBSVEsb0JBQXdDLEdBQUdGLFNBQS9DO0FBQ0EsVUFBSVYsYUFBYSxDQUFDRCxNQUFkLEdBQXVCLENBQTNCLEVBQ0VhLG9CQUFvQixHQUFHbkIsTUFBTSxDQUFDWSxJQUFQLENBQ3JCLFVBQUNDLENBQUQ7QUFBQSxlQUNFQSxDQUFDLENBQUNFLEVBQUYsS0FBU1IsYUFBYSxDQUFDQSxhQUFhLENBQUNELE1BQWQsR0FBdUIsQ0FBeEIsQ0FBYixDQUF3Q2MsZUFBakQsSUFDQVAsQ0FBQyxDQUFDQyxzQkFGSjtBQUFBLE9BRHFCLENBQXZCO0FBS0YsVUFDRUssb0JBQW9CLEtBQUtGLFNBQXpCLElBQ0EsQ0FBQ1QsY0FBYyxDQUFDYSxRQUFmLENBQXdCRixvQkFBeEIsQ0FGSCxFQUlFWCxjQUFjLENBQUNVLElBQWYsQ0FBb0JDLG9CQUFwQjtBQUVGLGFBQU9YLGNBQVA7QUFDRCxLQTNCRCxNQTJCTztBQUNMLFVBQUlBLGVBQXdCLEdBQUcsRUFBL0I7QUFDQVAsTUFBQUEsS0FBSyxDQUFDcUIsWUFBTixDQUFtQmIsT0FBbkIsQ0FBMkIsVUFBQ2MsR0FBRCxFQUFTO0FBQ2xDLFlBQUlDLFNBQVMsR0FBR3hCLE1BQU0sQ0FBQ1ksSUFBUCxDQUFZLFVBQUNDLENBQUQ7QUFBQSxpQkFBT0EsQ0FBQyxDQUFDRSxFQUFGLEtBQVNRLEdBQUcsQ0FBQ0UsUUFBcEI7QUFBQSxTQUFaLENBQWhCO0FBQ0EsWUFBSUQsU0FBSixFQUFlaEIsZUFBYyxDQUFDVSxJQUFmLENBQW9CTSxTQUFwQjtBQUNoQixPQUhEO0FBS0EsYUFBT2hCLGVBQVA7QUFDRDtBQUNGLEdBckNEOztBQXVDQSx3QkFBVSxZQUFNLENBQUUsQ0FBbEIsRUFBb0IsQ0FBQ1AsS0FBSyxDQUFDeUIsT0FBUCxFQUFnQnpCLEtBQUssQ0FBQzBCLE9BQXRCLENBQXBCO0FBRUEsc0JBQ0UsNERBQ0d2QixnQkFBZ0IsR0FBR0QsR0FBbkIsQ0FBdUIsVUFBQ3lCLEtBQUQ7QUFBQSx3QkFDdEIsNkJBQUMsMEJBQUQ7QUFBYyxNQUFBLEdBQUcsRUFBRXpCLEdBQW5CO0FBQXdCLE1BQUEsS0FBSyxFQUFFeUIsS0FBL0I7QUFBc0MsTUFBQSxLQUFLLEVBQUUzQjtBQUE3QyxNQURzQjtBQUFBLEdBQXZCLENBREgsQ0FERjtBQU9ELENBdERNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IElQb2ludCB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCB7IGZpbmRFZGdlc0Zyb21FdmVudFBhdGhUb0RyYXcgfSBmcm9tICcuL0V2ZW50VXRpbHMnO1xuaW1wb3J0IHsgSUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvZXZlbnRzL21vZGVscy9JRXZlbnQnO1xuaW1wb3J0IHsgSUVkZ2UgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9lZGdlcy9tb2RlbHMvSUVkZ2UnO1xuaW1wb3J0IHsgUG9pbnRPZkV2ZW50IH0gZnJvbSAnLi9Qb2ludE9mRXZlbnQnO1xuXG50eXBlIElQcm9wcyA9IHtcbiAgcG9pbnRzOiBJUG9pbnRbXTtcbiAgZXZlbnQ6IElFdmVudDtcbiAgZWRnZXM6IElFZGdlW107XG4gIG1hcDogYW55O1xufTtcblxuZXhwb3J0IGNvbnN0IFBvaW50c0ZvclNwZWNpZmljRXZlbnQ6IFJlYWN0LkZDPElQcm9wcz4gPSAoe1xuICBwb2ludHMsXG4gIGV2ZW50LFxuICBlZGdlcyxcbiAgbWFwLFxufSkgPT4ge1xuICBjb25zdCBmaW5kUG9pbnRzVG9EcmF3ID0gKCkgPT4ge1xuICAgIGlmIChldmVudC5wYXRoLmxlbmd0aCAhPT0gMCkge1xuICAgICAgbGV0IHJlbGV2YW50RWRnZXM6IElFZGdlW10gPSBbXTtcbiAgICAgIGxldCByZWxldmVudFBvaW50czogSVBvaW50W10gPSBbXTtcbiAgICAgIGZpbmRFZGdlc0Zyb21FdmVudFBhdGhUb0RyYXcocmVsZXZhbnRFZGdlcywgZXZlbnQsIGVkZ2VzKTtcblxuICAgICAgcmVsZXZhbnRFZGdlcy5mb3JFYWNoKChlZGdlOiBJRWRnZSkgPT4ge1xuICAgICAgICBsZXQgcG9pbnRUb0RyYXcgPSBwb2ludHMuZmluZChcbiAgICAgICAgICAocDogSVBvaW50KSA9PlxuICAgICAgICAgICAgcC5wYXJ0X29mX21vbml0b3JlZF9wYXRoICYmIHAuaWQgPT09IGVkZ2Uuc291cmNlX3BvaW50X2lkLFxuICAgICAgICApO1xuICAgICAgICBpZiAocG9pbnRUb0RyYXcgIT09IHVuZGVmaW5lZCkgcmVsZXZlbnRQb2ludHMucHVzaChwb2ludFRvRHJhdyk7XG4gICAgICB9KTtcblxuICAgICAgbGV0IGxhc3RQb2ludE9mSGllcmFyY2h5OiBJUG9pbnQgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgICBpZiAocmVsZXZhbnRFZGdlcy5sZW5ndGggPiAxKVxuICAgICAgICBsYXN0UG9pbnRPZkhpZXJhcmNoeSA9IHBvaW50cy5maW5kKFxuICAgICAgICAgIChwOiBJUG9pbnQpID0+XG4gICAgICAgICAgICBwLmlkID09PSByZWxldmFudEVkZ2VzW3JlbGV2YW50RWRnZXMubGVuZ3RoIC0gMV0udGFyZ2V0X3BvaW50X2lkICYmXG4gICAgICAgICAgICBwLnBhcnRfb2ZfbW9uaXRvcmVkX3BhdGgsXG4gICAgICAgICk7XG4gICAgICBpZiAoXG4gICAgICAgIGxhc3RQb2ludE9mSGllcmFyY2h5ICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgIXJlbGV2ZW50UG9pbnRzLmluY2x1ZGVzKGxhc3RQb2ludE9mSGllcmFyY2h5KVxuICAgICAgKVxuICAgICAgICByZWxldmVudFBvaW50cy5wdXNoKGxhc3RQb2ludE9mSGllcmFyY2h5KTtcblxuICAgICAgcmV0dXJuIHJlbGV2ZW50UG9pbnRzO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgcmVsZXZlbnRQb2ludHM6IElQb2ludFtdID0gW107XG4gICAgICBldmVudC5vYnNlcnZhdGlvbnMuZm9yRWFjaCgob2JzKSA9PiB7XG4gICAgICAgIGxldCBmaW5kUG9pbnQgPSBwb2ludHMuZmluZCgocCkgPT4gcC5pZCA9PT0gb2JzLnBvaW50X2lkKTtcbiAgICAgICAgaWYgKGZpbmRQb2ludCkgcmVsZXZlbnRQb2ludHMucHVzaChmaW5kUG9pbnQpO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiByZWxldmVudFBvaW50cztcbiAgICB9XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHt9LCBbZXZlbnQuZm9jdXNlZCwgZXZlbnQuaG92ZXJlZF0pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHtmaW5kUG9pbnRzVG9EcmF3KCkubWFwKChwb2ludDogSVBvaW50KSA9PiAoXG4gICAgICAgIDxQb2ludE9mRXZlbnQgbWFwPXttYXB9IHBvaW50PXtwb2ludH0gZXZlbnQ9e2V2ZW50fSAvPlxuICAgICAgKSl9XG4gICAgPC8+XG4gICk7XG59O1xuIl19
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.Snail = void 0;
|
|
11
|
+
|
|
12
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
13
|
+
|
|
14
|
+
var _EventPath = _interopRequireDefault(require("./EventPath"));
|
|
15
|
+
|
|
16
|
+
var _EventIndicator = _interopRequireDefault(require("./EventIndicator"));
|
|
17
|
+
|
|
18
|
+
var _leaflet = _interopRequireDefault(require("leaflet"));
|
|
19
|
+
|
|
20
|
+
var _reactRedux = require("react-redux");
|
|
21
|
+
|
|
22
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
23
|
+
|
|
24
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
25
|
+
|
|
26
|
+
// @ts-ignore
|
|
27
|
+
var Snail = function Snail(_ref) {
|
|
28
|
+
var event = _ref.event;
|
|
29
|
+
var state = (0, _reactRedux.useSelector)(function (state) {
|
|
30
|
+
return state;
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
var _useSelector = (0, _reactRedux.useSelector)(function (state) {
|
|
34
|
+
return state;
|
|
35
|
+
}),
|
|
36
|
+
global_data = _useSelector.global_data;
|
|
37
|
+
|
|
38
|
+
var _state$events_data = state.events_data,
|
|
39
|
+
hoveredEventPaths = _state$events_data.hoveredEventPaths,
|
|
40
|
+
focusedEventPaths = _state$events_data.focusedEventPaths;
|
|
41
|
+
var map = global_data.map;
|
|
42
|
+
var memoizedIndicator = (0, _react.useMemo)(function () {
|
|
43
|
+
var paths = focusedEventPaths.length !== 0 ? focusedEventPaths : hoveredEventPaths;
|
|
44
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_EventIndicator.default, {
|
|
45
|
+
map: map,
|
|
46
|
+
paths: paths,
|
|
47
|
+
event: event,
|
|
48
|
+
L: _leaflet.default
|
|
49
|
+
}));
|
|
50
|
+
}, [hoveredEventPaths, focusedEventPaths]);
|
|
51
|
+
(0, _react.useEffect)(function () {}, [event]);
|
|
52
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_EventPath.default, {
|
|
53
|
+
event: event,
|
|
54
|
+
global_data: global_data,
|
|
55
|
+
eventPaths: focusedEventPaths || hoveredEventPaths
|
|
56
|
+
}), memoizedIndicator);
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
exports.Snail = Snail;
|
|
60
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9ldmVudHMvU25haWwudHN4Il0sIm5hbWVzIjpbIlNuYWlsIiwiZXZlbnQiLCJzdGF0ZSIsImdsb2JhbF9kYXRhIiwiZXZlbnRzX2RhdGEiLCJob3ZlcmVkRXZlbnRQYXRocyIsImZvY3VzZWRFdmVudFBhdGhzIiwibWFwIiwibWVtb2l6ZWRJbmRpY2F0b3IiLCJwYXRocyIsImxlbmd0aCIsIkwiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7Ozs7OztBQU5BO0FBYU8sSUFBTUEsS0FBdUIsR0FBRyxTQUExQkEsS0FBMEIsT0FBZTtBQUFBLE1BQVpDLEtBQVksUUFBWkEsS0FBWTtBQUNwRCxNQUFNQyxLQUFLLEdBQUcsNkJBQVksVUFBQ0EsS0FBRDtBQUFBLFdBQXNCQSxLQUF0QjtBQUFBLEdBQVosQ0FBZDs7QUFDQSxxQkFBd0IsNkJBQVksVUFBQ0EsS0FBRDtBQUFBLFdBQXNCQSxLQUF0QjtBQUFBLEdBQVosQ0FBeEI7QUFBQSxNQUFRQyxXQUFSLGdCQUFRQSxXQUFSOztBQUNBLDJCQUFpREQsS0FBSyxDQUFDRSxXQUF2RDtBQUFBLE1BQVFDLGlCQUFSLHNCQUFRQSxpQkFBUjtBQUFBLE1BQTJCQyxpQkFBM0Isc0JBQTJCQSxpQkFBM0I7QUFDQSxNQUFNQyxHQUFHLEdBQUdKLFdBQVcsQ0FBQ0ksR0FBeEI7QUFFQSxNQUFNQyxpQkFBaUIsR0FBRyxvQkFBUSxZQUFNO0FBQ3RDLFFBQUlDLEtBQUssR0FDUEgsaUJBQWlCLENBQUNJLE1BQWxCLEtBQTZCLENBQTdCLEdBQWlDSixpQkFBakMsR0FBcURELGlCQUR2RDtBQUVBLHdCQUNFLHlFQUNFLDZCQUFDLHVCQUFEO0FBQWdCLE1BQUEsR0FBRyxFQUFFRSxHQUFyQjtBQUEwQixNQUFBLEtBQUssRUFBRUUsS0FBakM7QUFBd0MsTUFBQSxLQUFLLEVBQUVSLEtBQS9DO0FBQXNELE1BQUEsQ0FBQyxFQUFFVTtBQUF6RCxNQURGLENBREY7QUFLRCxHQVJ5QixFQVF2QixDQUFDTixpQkFBRCxFQUFvQkMsaUJBQXBCLENBUnVCLENBQTFCO0FBVUEsd0JBQVUsWUFBTSxDQUFFLENBQWxCLEVBQW9CLENBQUNMLEtBQUQsQ0FBcEI7QUFFQSxzQkFDRSx5RUFDRSw2QkFBQyxrQkFBRDtBQUNFLElBQUEsS0FBSyxFQUFFQSxLQURUO0FBRUUsSUFBQSxXQUFXLEVBQUVFLFdBRmY7QUFHRSxJQUFBLFVBQVUsRUFBRUcsaUJBQWlCLElBQUlEO0FBSG5DLElBREYsRUFNR0csaUJBTkgsQ0FERjtBQVVELENBNUJNIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWlnbm9yZVxuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBFdmVudFBhdGggZnJvbSAnLi9FdmVudFBhdGgnO1xuaW1wb3J0IEV2ZW50SW5kaWNhdG9yIGZyb20gJy4vRXZlbnRJbmRpY2F0b3InO1xuaW1wb3J0IEwgZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgeyBJRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9ldmVudHMvbW9kZWxzL0lFdmVudCc7XG5pbXBvcnQgeyB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IElBcHBTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9JQXBwU3RhdGUnO1xuXG50eXBlIElQcm9wcyA9IHtcbiAgZXZlbnQ6IElFdmVudDtcbn07XG5cbmV4cG9ydCBjb25zdCBTbmFpbDogUmVhY3QuRkM8SVByb3BzPiA9ICh7IGV2ZW50IH0pID0+IHtcbiAgY29uc3Qgc3RhdGUgPSB1c2VTZWxlY3Rvcigoc3RhdGU6IElBcHBTdGF0ZSkgPT4gc3RhdGUpO1xuICBjb25zdCB7IGdsb2JhbF9kYXRhIH0gPSB1c2VTZWxlY3Rvcigoc3RhdGU6IElBcHBTdGF0ZSkgPT4gc3RhdGUpO1xuICBjb25zdCB7IGhvdmVyZWRFdmVudFBhdGhzLCBmb2N1c2VkRXZlbnRQYXRocyB9ID0gc3RhdGUuZXZlbnRzX2RhdGE7XG4gIGNvbnN0IG1hcCA9IGdsb2JhbF9kYXRhLm1hcDtcblxuICBjb25zdCBtZW1vaXplZEluZGljYXRvciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGxldCBwYXRocyA9XG4gICAgICBmb2N1c2VkRXZlbnRQYXRocy5sZW5ndGggIT09IDAgPyBmb2N1c2VkRXZlbnRQYXRocyA6IGhvdmVyZWRFdmVudFBhdGhzO1xuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8RXZlbnRJbmRpY2F0b3IgbWFwPXttYXB9IHBhdGhzPXtwYXRoc30gZXZlbnQ9e2V2ZW50fSBMPXtMfSAvPlxuICAgICAgPC8+XG4gICAgKTtcbiAgfSwgW2hvdmVyZWRFdmVudFBhdGhzLCBmb2N1c2VkRXZlbnRQYXRoc10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7fSwgW2V2ZW50XSk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPEV2ZW50UGF0aFxuICAgICAgICBldmVudD17ZXZlbnR9XG4gICAgICAgIGdsb2JhbF9kYXRhPXtnbG9iYWxfZGF0YX1cbiAgICAgICAgZXZlbnRQYXRocz17Zm9jdXNlZEV2ZW50UGF0aHMgfHwgaG92ZXJlZEV2ZW50UGF0aHN9XG4gICAgICAvPlxuICAgICAge21lbW9pemVkSW5kaWNhdG9yfVxuICAgIDwvPlxuICApO1xufTtcbiJdfQ==
|