@kando-env/kando-ui 1.2.278-alpha.0 → 1.2.278-alpha.10

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.
Files changed (39) hide show
  1. package/lib/Widgets/Map/Map.js +18 -2
  2. package/lib/Widgets/Map/MapUtils.js +14 -12
  3. package/lib/Widgets/Map/areas/AreaPolygon.js +30 -9
  4. package/lib/Widgets/Map/areas/AreaPolygons.js +9 -3
  5. package/lib/Widgets/Map/areas/AreaUtils.js +23 -46
  6. package/lib/Widgets/Map/points/PointMarker.js +42 -18
  7. package/lib/Widgets/Map/points/PointMarkers.js +1 -11
  8. package/lib/Widgets/Map/points/PointUtils.js +15 -8
  9. package/lib/assets/icons/TrendSvg.js +40 -0
  10. package/lib/assets/icons/index.js +3 -3
  11. package/lib/components/Header/InfoBar/Breadcrumbs/Breadcrumbs.js +2 -1
  12. package/lib/components/Header/InfoBar/InfoBar.js +9 -9
  13. package/lib/hooks/useUserTimeZone.js +6 -2
  14. package/lib/i18n/en.json +1 -0
  15. package/lib/i18n/he.json +14 -0
  16. package/lib/macros/getVersion.js +2 -2
  17. package/lib/pages/DashboardMap/AreaCard.js +44 -7
  18. package/lib/pages/DashboardMap/FactoryCard.js +49 -10
  19. package/lib/pages/DashboardMap/List.js +35 -5
  20. package/lib/pages/DashboardMap/ListContext.js +39 -0
  21. package/lib/pages/DashboardMap/WWTPMap.js +22 -12
  22. package/lib/pages/DashboardMap/Widget.js +43 -38
  23. package/lib/pages/DashboardMap/utils.js +40 -6
  24. package/lib/pages/EventsPage/events/event_info/EventInfo.js +2 -2
  25. package/lib/pages/SamplingsPage/SamplingsPageContainer.js +2 -7
  26. package/lib/pages/WbeDashboard/WbeDashboardPage.js +6 -3
  27. package/lib/pages/WwtpPage/OrganicCard.js +34 -4
  28. package/lib/pages/WwtpPage/TrendChart.js +98 -0
  29. package/lib/pages/WwtpPage/WwtpPage.js +6 -4
  30. package/lib/pages/WwtpPage/WwtpPageContainer.js +2 -2
  31. package/lib/scss/custom.scss +2 -32
  32. package/lib/store/points/models/IPoint.js +1 -1
  33. package/lib/styles/theme/theme.js +95 -5
  34. package/lib/ui-kit/Dashboard/Dashboard.js +2 -3
  35. package/lib/ui-kit/InletsPie/InletsPie.js +5 -3
  36. package/lib/utilities/scoreToData.js +2 -2
  37. package/lib/utilities/urls.js +3 -2
  38. package/package.json +1 -1
  39. package/lib/assets/icons/trend.svg +0 -8
@@ -4,11 +4,11 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.zoomControlForArea = exports.listItemFocusOnClick = exports.getAreaName = exports.genericPolygon = exports.createPolygon = exports.calculatePolygonArea = exports.bindPopupBasedOnZoomLevel = void 0;
7
+ exports.zoomControlForArea = exports.getAreaName = exports.genericPolygon = exports.createPolygon = exports.calculatePolygonArea = exports.bindPopupBasedOnZoomLevel = void 0;
8
8
  var _scoreToData = require("../../../utilities/scoreToData");
9
9
  var _theme = require("../../../styles/theme/theme");
10
10
  var _leaflet = _interopRequireDefault(require("leaflet"));
11
- var _jquery = _interopRequireDefault(require("jquery"));
11
+ var _utils = require("pages/DashboardMap/utils");
12
12
  var getAreaName = function getAreaName(area) {
13
13
  var name = area.area_name || area.name;
14
14
  return name;
@@ -129,51 +129,28 @@ var customAttributesForAreaPolygon = function customAttributesForAreaPolygon(are
129
129
  areaPolygon['area_name'] = area.area_name;
130
130
  areaPolygon['calculated_surface'] = area.calculated_surface;
131
131
  };
132
- var createPolygon = function createPolygon(area, mapZoom, LayerGroup, map) {
133
- var createAsSubArea = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
134
- var popupCreator = arguments.length > 5 ? arguments[5] : undefined;
132
+ var createPolygon = function createPolygon(area, mapZoom, LayerGroup, map, popupCreator, handleClick) {
133
+ var polygon;
135
134
  if (area.shape_data !== null && area.shape_data !== undefined && area.shape_data.length > 0) {
136
- var _area$sub_areas;
137
- var subAreasCreated = _leaflet.default.layerGroup([]);
138
- var _polygon;
139
- if (createAsSubArea || !area.has_parent) {
140
- _polygon = genericPolygon(area, mapZoom);
141
- }
142
- (_area$sub_areas = area.sub_areas) === null || _area$sub_areas === void 0 ? void 0 : _area$sub_areas.forEach(function (subArea) {
143
- createPolygon(subArea, mapZoom, subAreasCreated, map, true, popupCreator);
144
- });
145
- listItemFocusOnClick(_polygon);
146
- if (createAsSubArea || !area.has_parent) {
147
- customAttributesForAreaPolygon(_polygon, area);
148
- !LayerGroup.hasLayer(_polygon) && LayerGroup.addLayer(_polygon).addTo(map);
149
- _polygon.bringToBack();
150
- if (subAreasCreated.getLayers().length > 0) {
151
- subAreasCreated.addTo(map);
152
- _polygon['sub_areas'] = subAreasCreated;
153
- }
154
- zoomControlForArea(_polygon, area, map);
155
- }
156
- if (popupCreator && (area.sub_areas.length !== 0 || area.total_factories > 0)) popupCreator(_polygon, area);
135
+ polygon = genericPolygon(area, mapZoom);
136
+ var onClick = function onClick() {
137
+ polygon.on('click', function () {
138
+ handleClick(polygon.kando_object_id);
139
+ var subject = 'Map View - Area clicked';
140
+ (0, _utils.sendAnalyticsEvent)(subject, 'map', {
141
+ area_id: area.area_id,
142
+ area_name: area.area_name
143
+ });
144
+ });
145
+ };
146
+ onClick();
147
+ customAttributesForAreaPolygon(polygon, area);
148
+ !LayerGroup.hasLayer(polygon) && LayerGroup.addLayer(polygon).addTo(map);
149
+ popupCreator(polygon, area);
150
+ zoomControlForArea(polygon, area, map);
151
+ return polygon;
157
152
  }
153
+ return null;
158
154
  };
159
155
  exports.createPolygon = createPolygon;
160
- var listItemFocusOnClick = function listItemFocusOnClick(polygon) {
161
- polygon.on('click', function (e) {
162
- setTimeout(function () {
163
- var elementExistsInList = document.getElementById(polygon.kando_object_id);
164
- if (!elementExistsInList) return;
165
- (0, _jquery.default)('.activeCard').removeClass('activeCard');
166
- (0, _jquery.default)('.noneActiveCard').removeClass('noneActiveCard');
167
- elementExistsInList.classList.add('activeCard');
168
- var listItemCards = document.querySelectorAll('.listItemCard');
169
- var noneActive = Array.from(listItemCards).filter(function (element) {
170
- return !element.classList.contains('activeCard');
171
- });
172
- noneActive.forEach(function (element) {
173
- element.classList.add('noneActiveCard');
174
- });
175
- }, 150);
176
- });
177
- };
178
- exports.listItemFocusOnClick = listItemFocusOnClick;
179
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc2NvcmVUb0RhdGEiLCJyZXF1aXJlIiwiX3RoZW1lIiwiX2xlYWZsZXQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2pxdWVyeSIsImdldEFyZWFOYW1lIiwiYXJlYSIsIm5hbWUiLCJhcmVhX25hbWUiLCJleHBvcnRzIiwiZ2VuZXJpY1BvbHlnb24iLCJtYXBab29tIiwiYXJlYVBvbHlnb24iLCJsYXRsbmdzIiwic2hhcGVfZGF0YSIsIm1hcCIsImxvY2F0aW9uIiwibGVuZ3RoIiwiY29sb3IiLCJzY29yZVRvQ29sb3IiLCJhcmVhX3Njb3JlIiwidGl0bGUiLCJwb2x5Z29uVGl0bGUiLCJMIiwicG9seWdvbiIsImZpbGxPcGFjaXR5Iiwic2hvd0NvbG9yT25seUluQm9yZGVycyIsIndlaWdodCIsImJpbmRUb29sdGlwIiwiY2xhc3NOYW1lIiwicGVybWFuZW50IiwiZGlyZWN0aW9uIiwiY2FsY3VsYXRlUG9seWdvbkFyZWEiLCJjb29yZGluYXRlcyIsIm51bVBvaW50cyIsImkiLCJ4MSIsInkxIiwieDIiLCJ5MiIsIk1hdGgiLCJhYnMiLCJjb25jYXQiLCJ0aGVtZSIsImNvbG9yU2NoZW1lIiwicHJpbWFyeSIsInBzMSIsImJpbmRUb29sVGlwIiwibGF5ZXIiLCJ1bmJpbmRUb29sdGlwIiwidW5kZWZpbmVkIiwiYmluZFBvcHVwQmFzZWRPblpvb21MZXZlbCIsIkxheWVyR3JvdXAiLCJhcmd1bWVudHMiLCJnZXRMYXllcnMiLCJmb3JFYWNoIiwiZHJpbGxEb3duQmFzZWRPblpvb21MZXZlbCIsInBlcmNlbnRhZ2UiLCJ6b29tUGVyY2VudGFnZVRvRHJpbGxEb3duIiwiaXNQYXJ0aWFsUG9seWdvblZpc2libGUiLCJkcmlsbERvd25Db25kaXRpb24iLCJzdWJfYXJlYXMiLCJfbWFwIiwicG9seWdvbkxheWVyIiwibGF5ZXJHcm91cCIsInNldFN0eWxlIiwic3Ryb2tlIiwib3BhY2l0eSIsImdldFpvb20iLCJzdWJBcmVhIiwiYWRkTGF5ZXIiLCJyZW1vdmVMYXllciIsInJlZHJhdyIsInpvb21Db250cm9sRm9yQXJlYSIsIm9uIiwiZ2V0TWFwQm91bmRzIiwiZ2V0Qm91bmRzIiwicG9seWdvbkJvdW5kcyIsImludGVyc2VjdHMiLCJtYXBCb3VuZHNQb2x5Z29uIiwiZ2V0U291dGhXZXN0IiwiZ2V0Tm9ydGhXZXN0IiwiZ2V0Tm9ydGhFYXN0IiwiZ2V0U291dGhFYXN0IiwibWFwQm91bmRzIiwidG9HZW9KU09OIiwiZ2VvbWV0cnkiLCJhcmVhU3VyZmFjZSIsImN1c3RvbUF0dHJpYnV0ZXNGb3JBcmVhUG9seWdvbiIsImFyZWFfaWQiLCJjYWxjdWxhdGVkX3N1cmZhY2UiLCJjcmVhdGVQb2x5Z29uIiwiY3JlYXRlQXNTdWJBcmVhIiwicG9wdXBDcmVhdG9yIiwiX2FyZWEkc3ViX2FyZWFzIiwic3ViQXJlYXNDcmVhdGVkIiwiaGFzX3BhcmVudCIsImxpc3RJdGVtRm9jdXNPbkNsaWNrIiwiaGFzTGF5ZXIiLCJhZGRUbyIsImJyaW5nVG9CYWNrIiwidG90YWxfZmFjdG9yaWVzIiwiZSIsInNldFRpbWVvdXQiLCJlbGVtZW50RXhpc3RzSW5MaXN0IiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsImthbmRvX29iamVjdF9pZCIsIiQiLCJyZW1vdmVDbGFzcyIsImNsYXNzTGlzdCIsImFkZCIsImxpc3RJdGVtQ2FyZHMiLCJxdWVyeVNlbGVjdG9yQWxsIiwibm9uZUFjdGl2ZSIsIkFycmF5IiwiZnJvbSIsImZpbHRlciIsImVsZW1lbnQiLCJjb250YWlucyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9hcmVhcy9BcmVhVXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2NvcmVUb0NvbG9yIH0gZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzL3Njb3JlVG9EYXRhJztcbmltcG9ydCB7IHRoZW1lIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL3RoZW1lL3RoZW1lJztcbmltcG9ydCB7IFBvbHlnb24gfSBmcm9tICdsZWFmbGV0JztcbmltcG9ydCBMIGZyb20gJ2xlYWZsZXQnO1xuaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcblxuZXhwb3J0IGNvbnN0IGdldEFyZWFOYW1lID0gKGFyZWEpID0+IHtcbiAgbGV0IG5hbWUgPSBhcmVhLmFyZWFfbmFtZSB8fCBhcmVhLm5hbWU7XG5cbiAgcmV0dXJuIG5hbWU7XG59O1xuXG5leHBvcnQgY29uc3QgZ2VuZXJpY1BvbHlnb24gPSAoYXJlYSwgbWFwWm9vbSkgPT4ge1xuICBsZXQgYXJlYVBvbHlnb246IFBvbHlnb247XG4gIGxldCBsYXRsbmdzID0gYXJlYS5zaGFwZV9kYXRhLm1hcCgobG9jYXRpb246IGFueSkgPT4ge1xuICAgIHJldHVybiBbbG9jYXRpb25bJ2xhdCddLCBsb2NhdGlvblsnbG5nJ11dO1xuICB9KTtcblxuICBpZiAobGF0bG5ncy5sZW5ndGggPCAxKSByZXR1cm47XG5cbiAgbGV0IGNvbG9yID0gYXJlYS5jb2xvciA/IGFyZWEuY29sb3IgOiBzY29yZVRvQ29sb3IoYXJlYS5hcmVhX3Njb3JlKTtcblxuICBjb25zdCB0aXRsZSA9IHBvbHlnb25UaXRsZShhcmVhLCBtYXBab29tKTtcblxuICBhcmVhUG9seWdvbiA9IEwucG9seWdvbihsYXRsbmdzLCB7XG4gICAgY29sb3IsXG4gICAgZmlsbE9wYWNpdHk6IGFyZWEuc2hvd0NvbG9yT25seUluQm9yZGVycyA/IDAuMyA6IDAuNCxcbiAgICB3ZWlnaHQ6IGFyZWEuc2hvd0NvbG9yT25seUluQm9yZGVycyA/IDIgOiAwLFxuICB9KS5iaW5kVG9vbHRpcCh0aXRsZSwge1xuICAgIGNsYXNzTmFtZTogJ2FyZWEtdG9vbHRpcCcsXG4gICAgcGVybWFuZW50OiBtYXBab29tID4gMTIsXG4gICAgZGlyZWN0aW9uOiAnY2VudGVyJyxcbiAgfSk7XG5cbiAgcmV0dXJuIGFyZWFQb2x5Z29uO1xufTtcblxuZXhwb3J0IGNvbnN0IGNhbGN1bGF0ZVBvbHlnb25BcmVhID0gKGNvb3JkaW5hdGVzKSA9PiB7XG4gIGxldCBhcmVhID0gMDtcbiAgbGV0IG51bVBvaW50cyA9IGNvb3JkaW5hdGVzLmxlbmd0aDtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IG51bVBvaW50czsgaSsrKSB7XG4gICAgbGV0IHgxID0gY29vcmRpbmF0ZXNbaV1bMF07XG4gICAgbGV0IHkxID0gY29vcmRpbmF0ZXNbaV1bMV07XG4gICAgbGV0IHgyID0gY29vcmRpbmF0ZXNbKGkgKyAxKSAlIG51bVBvaW50c11bMF07XG4gICAgbGV0IHkyID0gY29vcmRpbmF0ZXNbKGkgKyAxKSAlIG51bVBvaW50c11bMV07XG5cbiAgICBhcmVhICs9IHgxICogeTIgLSB4MiAqIHkxO1xuICB9XG5cbiAgcmV0dXJuIE1hdGguYWJzKGFyZWEgLyAyKTtcbn07XG5cbmNvbnN0IHBvbHlnb25UaXRsZSA9IChhcmVhLCBtYXBab29tKSA9PiB7XG4gIHJldHVybiBgPGRpdiBjbGFzcz1cImFyZWEtdG9vbHRpcFwiIHN0eWxlPVwiY29sb3I6JHtcbiAgICB0aGVtZS5jb2xvclNjaGVtZS5wcmltYXJ5LnBzMVxuICB9O2ZvbnQtd2VpZ2h0OjcwMDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtc2l6ZTogJHtcbiAgICBtYXBab29tICogMS41XG4gIH1weDstd2Via2l0LXRleHQtc3Ryb2tlOiAwLjhweCAjZmZmZmZmO1wiPiAke2dldEFyZWFOYW1lKGFyZWEpfSBcbiAgICAgICAgPC9kaXY+YDtcbn07XG5cbmNvbnN0IGJpbmRUb29sVGlwID0gKGxheWVyLCB0aXRsZSwgcGVybWFuZW50LCBtYXBab29tKSA9PiB7XG4gIGxheWVyLnVuYmluZFRvb2x0aXAoKTtcbiAgbGF5ZXIuYmluZFRvb2x0aXAodGl0bGUsIHtcbiAgICBjbGFzc05hbWU6ICdhcmVhLXRvb2x0aXAnLFxuICAgIHBlcm1hbmVudDogcGVybWFuZW50ICE9PSB1bmRlZmluZWQgPyBwZXJtYW5lbnQgOiBtYXBab29tID4gMTEsXG4gICAgZGlyZWN0aW9uOiAnY2VudGVyJyxcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgYmluZFBvcHVwQmFzZWRPblpvb21MZXZlbCA9IChcbiAgTGF5ZXJHcm91cCxcbiAgbWFwWm9vbSxcbiAgYXJlYSxcbiAgcGVybWFuZW50ID0gdW5kZWZpbmVkLFxuKSA9PiB7XG4gIGNvbnN0IHRpdGxlID0gcG9seWdvblRpdGxlKGFyZWEsIG1hcFpvb20pO1xuXG4gIGlmIChMYXllckdyb3VwWydrYW5kb19vYmplY3QnXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgTGF5ZXJHcm91cC5nZXRMYXllcnMoKS5mb3JFYWNoKChsYXllcikgPT4ge1xuICAgICAgYmluZFRvb2xUaXAobGF5ZXIsIHRpdGxlLCBwZXJtYW5lbnQsIG1hcFpvb20pO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGJpbmRUb29sVGlwKExheWVyR3JvdXAsIHRpdGxlLCBwZXJtYW5lbnQsIG1hcFpvb20pO1xuICB9XG59O1xuXG5jb25zdCBkcmlsbERvd25CYXNlZE9uWm9vbUxldmVsID0gKFxuICBhcmVhUG9seWdvbixcbiAgYXJlYSxcbiAgcGVyY2VudGFnZSxcbiAgem9vbVBlcmNlbnRhZ2VUb0RyaWxsRG93bixcbiAgaXNQYXJ0aWFsUG9seWdvblZpc2libGUsXG4gIG1hcCxcbikgPT4ge1xuICBjb25zdCBkcmlsbERvd25Db25kaXRpb24gPSAoKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHBlcmNlbnRhZ2UgPj0gem9vbVBlcmNlbnRhZ2VUb0RyaWxsRG93biAmJlxuICAgICAgaXNQYXJ0aWFsUG9seWdvblZpc2libGUgJiZcbiAgICAgIGFyZWEuc3ViX2FyZWFzLmxlbmd0aCAhPT0gMCAmJlxuICAgICAgYXJlYVBvbHlnb24uX21hcCAhPT0gbnVsbFxuICAgICk7XG4gIH07XG5cbiAgbGV0IHBvbHlnb25MYXllciA9IEwubGF5ZXJHcm91cCgpO1xuICBpZiAoZHJpbGxEb3duQ29uZGl0aW9uKCkpIHtcbiAgICBhcmVhUG9seWdvbi5zZXRTdHlsZSh7XG4gICAgICBzdHJva2U6IHRydWUsXG4gICAgICBjb2xvcjogc2NvcmVUb0NvbG9yKGFyZWEuYXJlYV9zY29yZSksXG4gICAgICB3ZWlnaHQ6IDIsXG4gICAgICBmaWxsT3BhY2l0eTogMC4wLFxuICAgICAgb3BhY2l0eTogMSxcbiAgICB9KTtcbiAgICBiaW5kUG9wdXBCYXNlZE9uWm9vbUxldmVsKFxuICAgICAgYXJlYVBvbHlnb24sXG4gICAgICBhcmVhUG9seWdvbi5fbWFwLmdldFpvb20oKSxcbiAgICAgIGFyZWEsXG4gICAgICBmYWxzZSxcbiAgICApO1xuXG4gICAgaWYgKGFyZWFQb2x5Z29uWydzdWJfYXJlYXMnXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBhcmVhUG9seWdvblsnc3ViX2FyZWFzJ10uZ2V0TGF5ZXJzKCkuZm9yRWFjaCgoc3ViQXJlYSkgPT4ge1xuICAgICAgICBpZiAoc3ViQXJlYS5zdWJfYXJlYXMgJiYgc3ViQXJlYS5zdWJfYXJlYXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgbWFwLmFkZExheWVyKHBvbHlnb25MYXllcik7XG4gICAgICAgICAgYmluZFBvcHVwQmFzZWRPblpvb21MZXZlbChcbiAgICAgICAgICAgIHN1YkFyZWEsXG4gICAgICAgICAgICBzdWJBcmVhLl9tYXAuZ2V0Wm9vbSgpLFxuICAgICAgICAgICAgc3ViQXJlYSxcbiAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgKTtcbiAgICAgICAgICBzdWJBcmVhLnNldFN0eWxlKHsgZmlsbE9wYWNpdHk6IDAuNCB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG1hcC5hZGRMYXllcihhcmVhUG9seWdvbik7XG4gICAgYXJlYVBvbHlnb24uc2V0U3R5bGUoeyBmaWxsT3BhY2l0eTogMC40LCBzdHJva2U6IGZhbHNlIH0pO1xuICAgIGJpbmRQb3B1cEJhc2VkT25ab29tTGV2ZWwoXG4gICAgICBhcmVhUG9seWdvbixcbiAgICAgIGFyZWFQb2x5Z29uLl9tYXAuZ2V0Wm9vbSgpLFxuICAgICAgYXJlYSxcbiAgICAgIHRydWUsXG4gICAgKTtcblxuICAgIGFyZWFQb2x5Z29uWydzdWJfYXJlYXMnXSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBhcmVhUG9seWdvblsnc3ViX2FyZWFzJ10uZ2V0TGF5ZXJzKCkuZm9yRWFjaCgoc3ViQXJlYSkgPT4ge1xuICAgICAgICBwb2x5Z29uTGF5ZXIuYWRkTGF5ZXIoc3ViQXJlYSk7XG4gICAgICAgIG1hcC5yZW1vdmVMYXllcihzdWJBcmVhKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgYXJlYVBvbHlnb24ucmVkcmF3KCk7XG59O1xuXG5leHBvcnQgY29uc3Qgem9vbUNvbnRyb2xGb3JBcmVhID0gKGFyZWFQb2x5Z29uLCBhcmVhLCBtYXApID0+IHtcbiAgbWFwLm9uKCd6b29tZW5kJywgZnVuY3Rpb24gKCkge1xuICAgIGxldCBnZXRNYXBCb3VuZHMgPSBtYXAuZ2V0Qm91bmRzKCk7XG4gICAgbGV0IHBvbHlnb25Cb3VuZHMgPSBhcmVhUG9seWdvbi5nZXRCb3VuZHMoKTtcbiAgICBsZXQgaXNQYXJ0aWFsUG9seWdvblZpc2libGUgPSBnZXRNYXBCb3VuZHMuaW50ZXJzZWN0cyhwb2x5Z29uQm91bmRzKTtcbiAgICBsZXQgbWFwQm91bmRzUG9seWdvbiA9IEwucG9seWdvbihbXG4gICAgICBnZXRNYXBCb3VuZHMuZ2V0U291dGhXZXN0KCksXG4gICAgICBnZXRNYXBCb3VuZHMuZ2V0Tm9ydGhXZXN0KCksXG4gICAgICBnZXRNYXBCb3VuZHMuZ2V0Tm9ydGhFYXN0KCksXG4gICAgICBnZXRNYXBCb3VuZHMuZ2V0U291dGhFYXN0KCksXG4gICAgXSk7XG5cbiAgICBsZXQgbWFwQm91bmRzID0gY2FsY3VsYXRlUG9seWdvbkFyZWEoXG4gICAgICBtYXBCb3VuZHNQb2x5Z29uLnRvR2VvSlNPTigpLmdlb21ldHJ5LmNvb3JkaW5hdGVzWzBdLFxuICAgICk7XG5cbiAgICBsZXQgYXJlYVN1cmZhY2UgPSBhcmVhUG9seWdvblsnY2FsY3VsYXRlZF9zdXJmYWNlJ107XG4gICAgY29uc3Qgem9vbVBlcmNlbnRhZ2VUb0RyaWxsRG93biA9IDE1LjA7XG4gICAgY29uc3QgcGVyY2VudGFnZSA9IChhcmVhU3VyZmFjZSAvIG1hcEJvdW5kcykgKiAxMDA7XG5cbiAgICBkcmlsbERvd25CYXNlZE9uWm9vbUxldmVsKFxuICAgICAgYXJlYVBvbHlnb24sXG4gICAgICBhcmVhLFxuICAgICAgcGVyY2VudGFnZSxcbiAgICAgIHpvb21QZXJjZW50YWdlVG9EcmlsbERvd24sXG4gICAgICBpc1BhcnRpYWxQb2x5Z29uVmlzaWJsZSxcbiAgICAgIG1hcCxcbiAgICApO1xuICB9KTtcbn07XG5cbmNvbnN0IGN1c3RvbUF0dHJpYnV0ZXNGb3JBcmVhUG9seWdvbiA9IChhcmVhUG9seWdvbiwgYXJlYSkgPT4ge1xuICBhcmVhUG9seWdvblsna2FuZG9fb2JqZWN0X2lkJ10gPSBhcmVhLmFyZWFfaWQ7XG4gIGFyZWFQb2x5Z29uWydrYW5kb19vYmplY3QnXSA9ICdBcmVhJztcbiAgYXJlYVBvbHlnb25bJ2FyZWFfbmFtZSddID0gYXJlYS5hcmVhX25hbWU7XG4gIGFyZWFQb2x5Z29uWydjYWxjdWxhdGVkX3N1cmZhY2UnXSA9IGFyZWEuY2FsY3VsYXRlZF9zdXJmYWNlO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVBvbHlnb24gPSAoXG4gIGFyZWEsXG4gIG1hcFpvb20sXG4gIExheWVyR3JvdXAsXG4gIG1hcCxcbiAgY3JlYXRlQXNTdWJBcmVhOiBib29sZWFuID0gZmFsc2UsXG4gIHBvcHVwQ3JlYXRvcj86IChwb2x5Z29uLCBhcmVhKSA9PiB2b2lkLFxuKSA9PiB7XG4gIGlmIChcbiAgICBhcmVhLnNoYXBlX2RhdGEgIT09IG51bGwgJiZcbiAgICBhcmVhLnNoYXBlX2RhdGEgIT09IHVuZGVmaW5lZCAmJlxuICAgIGFyZWEuc2hhcGVfZGF0YS5sZW5ndGggPiAwXG4gICkge1xuICAgIGxldCBzdWJBcmVhc0NyZWF0ZWQgPSBMLmxheWVyR3JvdXAoW10pO1xuICAgIGxldCBwb2x5Z29uOiBQb2x5Z29uO1xuICAgIGlmIChjcmVhdGVBc1N1YkFyZWEgfHwgIWFyZWEuaGFzX3BhcmVudCkge1xuICAgICAgcG9seWdvbiA9IGdlbmVyaWNQb2x5Z29uKGFyZWEsIG1hcFpvb20pO1xuICAgIH1cblxuICAgIGFyZWEuc3ViX2FyZWFzPy5mb3JFYWNoKChzdWJBcmVhKSA9PiB7XG4gICAgICBjcmVhdGVQb2x5Z29uKHN1YkFyZWEsIG1hcFpvb20sIHN1YkFyZWFzQ3JlYXRlZCwgbWFwLCB0cnVlLCBwb3B1cENyZWF0b3IpO1xuICAgIH0pO1xuXG4gICAgbGlzdEl0ZW1Gb2N1c09uQ2xpY2socG9seWdvbik7XG4gICAgaWYgKGNyZWF0ZUFzU3ViQXJlYSB8fCAhYXJlYS5oYXNfcGFyZW50KSB7XG4gICAgICBjdXN0b21BdHRyaWJ1dGVzRm9yQXJlYVBvbHlnb24ocG9seWdvbiwgYXJlYSk7XG4gICAgICAhTGF5ZXJHcm91cC5oYXNMYXllcihwb2x5Z29uKSAmJiBMYXllckdyb3VwLmFkZExheWVyKHBvbHlnb24pLmFkZFRvKG1hcCk7XG4gICAgICBwb2x5Z29uLmJyaW5nVG9CYWNrKCk7XG4gICAgICBpZiAoc3ViQXJlYXNDcmVhdGVkLmdldExheWVycygpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgc3ViQXJlYXNDcmVhdGVkLmFkZFRvKG1hcCk7XG4gICAgICAgIHBvbHlnb25bJ3N1Yl9hcmVhcyddID0gc3ViQXJlYXNDcmVhdGVkO1xuICAgICAgfVxuXG4gICAgICB6b29tQ29udHJvbEZvckFyZWEocG9seWdvbiwgYXJlYSwgbWFwKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBwb3B1cENyZWF0b3IgJiZcbiAgICAgIChhcmVhLnN1Yl9hcmVhcy5sZW5ndGggIT09IDAgfHwgYXJlYS50b3RhbF9mYWN0b3JpZXMgPiAwKVxuICAgIClcbiAgICAgIHBvcHVwQ3JlYXRvcihwb2x5Z29uLCBhcmVhKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGxpc3RJdGVtRm9jdXNPbkNsaWNrID0gKHBvbHlnb24pID0+IHtcbiAgcG9seWdvbi5vbignY2xpY2snLCBmdW5jdGlvbiAoZSkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgbGV0IGVsZW1lbnRFeGlzdHNJbkxpc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcbiAgICAgICAgcG9seWdvbi5rYW5kb19vYmplY3RfaWQsXG4gICAgICApO1xuICAgICAgaWYgKCFlbGVtZW50RXhpc3RzSW5MaXN0KSByZXR1cm47XG5cbiAgICAgICQoJy5hY3RpdmVDYXJkJykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZUNhcmQnKTtcbiAgICAgICQoJy5ub25lQWN0aXZlQ2FyZCcpLnJlbW92ZUNsYXNzKCdub25lQWN0aXZlQ2FyZCcpO1xuICAgICAgZWxlbWVudEV4aXN0c0luTGlzdC5jbGFzc0xpc3QuYWRkKCdhY3RpdmVDYXJkJyk7XG5cbiAgICAgIGNvbnN0IGxpc3RJdGVtQ2FyZHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubGlzdEl0ZW1DYXJkJyk7XG4gICAgICBjb25zdCBub25lQWN0aXZlID0gQXJyYXkuZnJvbShsaXN0SXRlbUNhcmRzKS5maWx0ZXIoXG4gICAgICAgIChlbGVtZW50KSA9PiAhZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ2FjdGl2ZUNhcmQnKSxcbiAgICAgICk7XG4gICAgICBub25lQWN0aXZlLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgICAgZWxlbWVudC5jbGFzc0xpc3QuYWRkKCdub25lQWN0aXZlQ2FyZCcpO1xuICAgICAgfSk7XG4gICAgfSwgMTUwKTtcbiAgfSk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsWUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBRUEsSUFBQUUsUUFBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksT0FBQSxHQUFBRCxzQkFBQSxDQUFBSCxPQUFBO0FBRU8sSUFBTUssV0FBVyxHQUFH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
156
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc2NvcmVUb0RhdGEiLCJyZXF1aXJlIiwiX3RoZW1lIiwiX2xlYWZsZXQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3V0aWxzIiwiZ2V0QXJlYU5hbWUiLCJhcmVhIiwibmFtZSIsImFyZWFfbmFtZSIsImV4cG9ydHMiLCJnZW5lcmljUG9seWdvbiIsIm1hcFpvb20iLCJhcmVhUG9seWdvbiIsImxhdGxuZ3MiLCJzaGFwZV9kYXRhIiwibWFwIiwibG9jYXRpb24iLCJsZW5ndGgiLCJjb2xvciIsInNjb3JlVG9Db2xvciIsImFyZWFfc2NvcmUiLCJ0aXRsZSIsInBvbHlnb25UaXRsZSIsIkwiLCJwb2x5Z29uIiwiZmlsbE9wYWNpdHkiLCJzaG93Q29sb3JPbmx5SW5Cb3JkZXJzIiwid2VpZ2h0IiwiYmluZFRvb2x0aXAiLCJjbGFzc05hbWUiLCJwZXJtYW5lbnQiLCJkaXJlY3Rpb24iLCJjYWxjdWxhdGVQb2x5Z29uQXJlYSIsImNvb3JkaW5hdGVzIiwibnVtUG9pbnRzIiwiaSIsIngxIiwieTEiLCJ4MiIsInkyIiwiTWF0aCIsImFicyIsImNvbmNhdCIsInRoZW1lIiwiY29sb3JTY2hlbWUiLCJwcmltYXJ5IiwicHMxIiwiYmluZFRvb2xUaXAiLCJsYXllciIsInVuYmluZFRvb2x0aXAiLCJ1bmRlZmluZWQiLCJiaW5kUG9wdXBCYXNlZE9uWm9vbUxldmVsIiwiTGF5ZXJHcm91cCIsImFyZ3VtZW50cyIsImdldExheWVycyIsImZvckVhY2giLCJkcmlsbERvd25CYXNlZE9uWm9vbUxldmVsIiwicGVyY2VudGFnZSIsInpvb21QZXJjZW50YWdlVG9EcmlsbERvd24iLCJpc1BhcnRpYWxQb2x5Z29uVmlzaWJsZSIsImRyaWxsRG93bkNvbmRpdGlvbiIsInN1Yl9hcmVhcyIsIl9tYXAiLCJwb2x5Z29uTGF5ZXIiLCJsYXllckdyb3VwIiwic2V0U3R5bGUiLCJzdHJva2UiLCJvcGFjaXR5IiwiZ2V0Wm9vbSIsInN1YkFyZWEiLCJhZGRMYXllciIsInJlbW92ZUxheWVyIiwicmVkcmF3Iiwiem9vbUNvbnRyb2xGb3JBcmVhIiwib24iLCJnZXRNYXBCb3VuZHMiLCJnZXRCb3VuZHMiLCJwb2x5Z29uQm91bmRzIiwiaW50ZXJzZWN0cyIsIm1hcEJvdW5kc1BvbHlnb24iLCJnZXRTb3V0aFdlc3QiLCJnZXROb3J0aFdlc3QiLCJnZXROb3J0aEVhc3QiLCJnZXRTb3V0aEVhc3QiLCJtYXBCb3VuZHMiLCJ0b0dlb0pTT04iLCJnZW9tZXRyeSIsImFyZWFTdXJmYWNlIiwiY3VzdG9tQXR0cmlidXRlc0ZvckFyZWFQb2x5Z29uIiwiYXJlYV9pZCIsImNhbGN1bGF0ZWRfc3VyZmFjZSIsImNyZWF0ZVBvbHlnb24iLCJwb3B1cENyZWF0b3IiLCJoYW5kbGVDbGljayIsIm9uQ2xpY2siLCJrYW5kb19vYmplY3RfaWQiLCJzdWJqZWN0Iiwic2VuZEFuYWx5dGljc0V2ZW50IiwiaGFzTGF5ZXIiLCJhZGRUbyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9hcmVhcy9BcmVhVXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2NvcmVUb0NvbG9yIH0gZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzL3Njb3JlVG9EYXRhJztcbmltcG9ydCB7IHRoZW1lIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL3RoZW1lL3RoZW1lJztcbmltcG9ydCBMLCB7IFBvbHlnb24gfSBmcm9tICdsZWFmbGV0JztcbmltcG9ydCB7IHNlbmRBbmFseXRpY3NFdmVudCB9IGZyb20gJ3NyYy9wYWdlcy9EYXNoYm9hcmRNYXAvdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgZ2V0QXJlYU5hbWUgPSAoYXJlYSkgPT4ge1xuICBsZXQgbmFtZSA9IGFyZWEuYXJlYV9uYW1lIHx8IGFyZWEubmFtZTtcblxuICByZXR1cm4gbmFtZTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZW5lcmljUG9seWdvbiA9IChhcmVhLCBtYXBab29tKSA9PiB7XG4gIGxldCBhcmVhUG9seWdvbjogUG9seWdvbjtcbiAgbGV0IGxhdGxuZ3MgPSBhcmVhLnNoYXBlX2RhdGEubWFwKChsb2NhdGlvbjogYW55KSA9PiB7XG4gICAgcmV0dXJuIFtsb2NhdGlvblsnbGF0J10sIGxvY2F0aW9uWydsbmcnXV07XG4gIH0pO1xuXG4gIGlmIChsYXRsbmdzLmxlbmd0aCA8IDEpIHJldHVybjtcblxuICBsZXQgY29sb3IgPSBhcmVhLmNvbG9yID8gYXJlYS5jb2xvciA6IHNjb3JlVG9Db2xvcihhcmVhLmFyZWFfc2NvcmUpO1xuXG4gIGNvbnN0IHRpdGxlID0gcG9seWdvblRpdGxlKGFyZWEsIG1hcFpvb20pO1xuXG4gIGFyZWFQb2x5Z29uID0gTC5wb2x5Z29uKGxhdGxuZ3MsIHtcbiAgICBjb2xvcixcbiAgICBmaWxsT3BhY2l0eTogYXJlYS5zaG93Q29sb3JPbmx5SW5Cb3JkZXJzID8gMC4zIDogMC40LFxuICAgIHdlaWdodDogYXJlYS5zaG93Q29sb3JPbmx5SW5Cb3JkZXJzID8gMiA6IDAsXG4gIH0pLmJpbmRUb29sdGlwKHRpdGxlLCB7XG4gICAgY2xhc3NOYW1lOiAnYXJlYS10b29sdGlwJyxcbiAgICBwZXJtYW5lbnQ6IG1hcFpvb20gPiAxMixcbiAgICBkaXJlY3Rpb246ICdjZW50ZXInLFxuICB9KTtcblxuICByZXR1cm4gYXJlYVBvbHlnb247XG59O1xuXG5leHBvcnQgY29uc3QgY2FsY3VsYXRlUG9seWdvbkFyZWEgPSAoY29vcmRpbmF0ZXMpID0+IHtcbiAgbGV0IGFyZWEgPSAwO1xuICBsZXQgbnVtUG9pbnRzID0gY29vcmRpbmF0ZXMubGVuZ3RoO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbnVtUG9pbnRzOyBpKyspIHtcbiAgICBsZXQgeDEgPSBjb29yZGluYXRlc1tpXVswXTtcbiAgICBsZXQgeTEgPSBjb29yZGluYXRlc1tpXVsxXTtcbiAgICBsZXQgeDIgPSBjb29yZGluYXRlc1soaSArIDEpICUgbnVtUG9pbnRzXVswXTtcbiAgICBsZXQgeTIgPSBjb29yZGluYXRlc1soaSArIDEpICUgbnVtUG9pbnRzXVsxXTtcblxuICAgIGFyZWEgKz0geDEgKiB5MiAtIHgyICogeTE7XG4gIH1cblxuICByZXR1cm4gTWF0aC5hYnMoYXJlYSAvIDIpO1xufTtcblxuY29uc3QgcG9seWdvblRpdGxlID0gKGFyZWEsIG1hcFpvb20pID0+IHtcbiAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwiYXJlYS10b29sdGlwXCIgc3R5bGU9XCJjb2xvcjoke1xuICAgIHRoZW1lLmNvbG9yU2NoZW1lLnByaW1hcnkucHMxXG4gIH07Zm9udC13ZWlnaHQ6NzAwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Zm9udC1zaXplOiAke1xuICAgIG1hcFpvb20gKiAxLjVcbiAgfXB4Oy13ZWJraXQtdGV4dC1zdHJva2U6IDAuOHB4ICNmZmZmZmY7XCI+ICR7Z2V0QXJlYU5hbWUoYXJlYSl9IFxuICAgICAgICA8L2Rpdj5gO1xufTtcblxuY29uc3QgYmluZFRvb2xUaXAgPSAobGF5ZXIsIHRpdGxlLCBwZXJtYW5lbnQsIG1hcFpvb20pID0+IHtcbiAgbGF5ZXIudW5iaW5kVG9vbHRpcCgpO1xuICBsYXllci5iaW5kVG9vbHRpcCh0aXRsZSwge1xuICAgIGNsYXNzTmFtZTogJ2FyZWEtdG9vbHRpcCcsXG4gICAgcGVybWFuZW50OiBwZXJtYW5lbnQgIT09IHVuZGVmaW5lZCA/IHBlcm1hbmVudCA6IG1hcFpvb20gPiAxMSxcbiAgICBkaXJlY3Rpb246ICdjZW50ZXInLFxuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBiaW5kUG9wdXBCYXNlZE9uWm9vbUxldmVsID0gKFxuICBMYXllckdyb3VwLFxuICBtYXBab29tLFxuICBhcmVhLFxuICBwZXJtYW5lbnQgPSB1bmRlZmluZWQsXG4pID0+IHtcbiAgY29uc3QgdGl0bGUgPSBwb2x5Z29uVGl0bGUoYXJlYSwgbWFwWm9vbSk7XG5cbiAgaWYgKExheWVyR3JvdXBbJ2thbmRvX29iamVjdCddID09PSB1bmRlZmluZWQpIHtcbiAgICBMYXllckdyb3VwLmdldExheWVycygpLmZvckVhY2goKGxheWVyKSA9PiB7XG4gICAgICBiaW5kVG9vbFRpcChsYXllciwgdGl0bGUsIHBlcm1hbmVudCwgbWFwWm9vbSk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgYmluZFRvb2xUaXAoTGF5ZXJHcm91cCwgdGl0bGUsIHBlcm1hbmVudCwgbWFwWm9vbSk7XG4gIH1cbn07XG5cbmNvbnN0IGRyaWxsRG93bkJhc2VkT25ab29tTGV2ZWwgPSAoXG4gIGFyZWFQb2x5Z29uLFxuICBhcmVhLFxuICBwZXJjZW50YWdlLFxuICB6b29tUGVyY2VudGFnZVRvRHJpbGxEb3duLFxuICBpc1BhcnRpYWxQb2x5Z29uVmlzaWJsZSxcbiAgbWFwLFxuKSA9PiB7XG4gIGNvbnN0IGRyaWxsRG93bkNvbmRpdGlvbiA9ICgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgcGVyY2VudGFnZSA+PSB6b29tUGVyY2VudGFnZVRvRHJpbGxEb3duICYmXG4gICAgICBpc1BhcnRpYWxQb2x5Z29uVmlzaWJsZSAmJlxuICAgICAgYXJlYS5zdWJfYXJlYXMubGVuZ3RoICE9PSAwICYmXG4gICAgICBhcmVhUG9seWdvbi5fbWFwICE9PSBudWxsXG4gICAgKTtcbiAgfTtcblxuICBsZXQgcG9seWdvbkxheWVyID0gTC5sYXllckdyb3VwKCk7XG4gIGlmIChkcmlsbERvd25Db25kaXRpb24oKSkge1xuICAgIGFyZWFQb2x5Z29uLnNldFN0eWxlKHtcbiAgICAgIHN0cm9rZTogdHJ1ZSxcbiAgICAgIGNvbG9yOiBzY29yZVRvQ29sb3IoYXJlYS5hcmVhX3Njb3JlKSxcbiAgICAgIHdlaWdodDogMixcbiAgICAgIGZpbGxPcGFjaXR5OiAwLjAsXG4gICAgICBvcGFjaXR5OiAxLFxuICAgIH0pO1xuICAgIGJpbmRQb3B1cEJhc2VkT25ab29tTGV2ZWwoXG4gICAgICBhcmVhUG9seWdvbixcbiAgICAgIGFyZWFQb2x5Z29uLl9tYXAuZ2V0Wm9vbSgpLFxuICAgICAgYXJlYSxcbiAgICAgIGZhbHNlLFxuICAgICk7XG5cbiAgICBpZiAoYXJlYVBvbHlnb25bJ3N1Yl9hcmVhcyddICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGFyZWFQb2x5Z29uWydzdWJfYXJlYXMnXS5nZXRMYXllcnMoKS5mb3JFYWNoKChzdWJBcmVhKSA9PiB7XG4gICAgICAgIGlmIChzdWJBcmVhLnN1Yl9hcmVhcyAmJiBzdWJBcmVhLnN1Yl9hcmVhcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICBtYXAuYWRkTGF5ZXIocG9seWdvbkxheWVyKTtcbiAgICAgICAgICBiaW5kUG9wdXBCYXNlZE9uWm9vbUxldmVsKFxuICAgICAgICAgICAgc3ViQXJlYSxcbiAgICAgICAgICAgIHN1YkFyZWEuX21hcC5nZXRab29tKCksXG4gICAgICAgICAgICBzdWJBcmVhLFxuICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICApO1xuICAgICAgICAgIHN1YkFyZWEuc2V0U3R5bGUoeyBmaWxsT3BhY2l0eTogMC40IH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgbWFwLmFkZExheWVyKGFyZWFQb2x5Z29uKTtcbiAgICBhcmVhUG9seWdvbi5zZXRTdHlsZSh7IGZpbGxPcGFjaXR5OiAwLjQsIHN0cm9rZTogZmFsc2UgfSk7XG4gICAgYmluZFBvcHVwQmFzZWRPblpvb21MZXZlbChcbiAgICAgIGFyZWFQb2x5Z29uLFxuICAgICAgYXJlYVBvbHlnb24uX21hcC5nZXRab29tKCksXG4gICAgICBhcmVhLFxuICAgICAgdHJ1ZSxcbiAgICApO1xuXG4gICAgYXJlYVBvbHlnb25bJ3N1Yl9hcmVhcyddICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIGFyZWFQb2x5Z29uWydzdWJfYXJlYXMnXS5nZXRMYXllcnMoKS5mb3JFYWNoKChzdWJBcmVhKSA9PiB7XG4gICAgICAgIHBvbHlnb25MYXllci5hZGRMYXllcihzdWJBcmVhKTtcbiAgICAgICAgbWFwLnJlbW92ZUxheWVyKHN1YkFyZWEpO1xuICAgICAgfSk7XG4gIH1cblxuICBhcmVhUG9seWdvbi5yZWRyYXcoKTtcbn07XG5cbmV4cG9ydCBjb25zdCB6b29tQ29udHJvbEZvckFyZWEgPSAoYXJlYVBvbHlnb24sIGFyZWEsIG1hcCkgPT4ge1xuICBtYXAub24oJ3pvb21lbmQnLCBmdW5jdGlvbiAoKSB7XG4gICAgbGV0IGdldE1hcEJvdW5kcyA9IG1hcC5nZXRCb3VuZHMoKTtcbiAgICBsZXQgcG9seWdvbkJvdW5kcyA9IGFyZWFQb2x5Z29uLmdldEJvdW5kcygpO1xuICAgIGxldCBpc1BhcnRpYWxQb2x5Z29uVmlzaWJsZSA9IGdldE1hcEJvdW5kcy5pbnRlcnNlY3RzKHBvbHlnb25Cb3VuZHMpO1xuICAgIGxldCBtYXBCb3VuZHNQb2x5Z29uID0gTC5wb2x5Z29uKFtcbiAgICAgIGdldE1hcEJvdW5kcy5nZXRTb3V0aFdlc3QoKSxcbiAgICAgIGdldE1hcEJvdW5kcy5nZXROb3J0aFdlc3QoKSxcbiAgICAgIGdldE1hcEJvdW5kcy5nZXROb3J0aEVhc3QoKSxcbiAgICAgIGdldE1hcEJvdW5kcy5nZXRTb3V0aEVhc3QoKSxcbiAgICBdKTtcblxuICAgIGxldCBtYXBCb3VuZHMgPSBjYWxjdWxhdGVQb2x5Z29uQXJlYShcbiAgICAgIG1hcEJvdW5kc1BvbHlnb24udG9HZW9KU09OKCkuZ2VvbWV0cnkuY29vcmRpbmF0ZXNbMF0sXG4gICAgKTtcblxuICAgIGxldCBhcmVhU3VyZmFjZSA9IGFyZWFQb2x5Z29uWydjYWxjdWxhdGVkX3N1cmZhY2UnXTtcbiAgICBjb25zdCB6b29tUGVyY2VudGFnZVRvRHJpbGxEb3duID0gMTUuMDtcbiAgICBjb25zdCBwZXJjZW50YWdlID0gKGFyZWFTdXJmYWNlIC8gbWFwQm91bmRzKSAqIDEwMDtcblxuICAgIGRyaWxsRG93bkJhc2VkT25ab29tTGV2ZWwoXG4gICAgICBhcmVhUG9seWdvbixcbiAgICAgIGFyZWEsXG4gICAgICBwZXJjZW50YWdlLFxuICAgICAgem9vbVBlcmNlbnRhZ2VUb0RyaWxsRG93bixcbiAgICAgIGlzUGFydGlhbFBvbHlnb25WaXNpYmxlLFxuICAgICAgbWFwLFxuICAgICk7XG4gIH0pO1xufTtcblxuY29uc3QgY3VzdG9tQXR0cmlidXRlc0ZvckFyZWFQb2x5Z29uID0gKGFyZWFQb2x5Z29uLCBhcmVhKSA9PiB7XG4gIGFyZWFQb2x5Z29uWydrYW5kb19vYmplY3RfaWQnXSA9IGFyZWEuYXJlYV9pZDtcbiAgYXJlYVBvbHlnb25bJ2thbmRvX29iamVjdCddID0gJ0FyZWEnO1xuICBhcmVhUG9seWdvblsnYXJlYV9uYW1lJ10gPSBhcmVhLmFyZWFfbmFtZTtcbiAgYXJlYVBvbHlnb25bJ2NhbGN1bGF0ZWRfc3VyZmFjZSddID0gYXJlYS5jYWxjdWxhdGVkX3N1cmZhY2U7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlUG9seWdvbiA9IChcbiAgYXJlYSxcbiAgbWFwWm9vbSxcbiAgTGF5ZXJHcm91cCxcbiAgbWFwLFxuICBwb3B1cENyZWF0b3I/OiAocG9seWdvbiwgYXJlYSkgPT4gdm9pZCxcbiAgaGFuZGxlQ2xpY2s/LFxuKSA9PiB7XG4gIGxldCBwb2x5Z29uOiBQb2x5Z29uO1xuICBpZiAoXG4gICAgYXJlYS5zaGFwZV9kYXRhICE9PSBudWxsICYmXG4gICAgYXJlYS5zaGFwZV9kYXRhICE9PSB1bmRlZmluZWQgJiZcbiAgICBhcmVhLnNoYXBlX2RhdGEubGVuZ3RoID4gMFxuICApIHtcbiAgICBwb2x5Z29uID0gZ2VuZXJpY1BvbHlnb24oYXJlYSwgbWFwWm9vbSk7XG5cbiAgICBjb25zdCBvbkNsaWNrID0gKCkgPT4ge1xuICAgICAgcG9seWdvbi5vbignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgIGhhbmRsZUNsaWNrKHBvbHlnb24ua2FuZG9fb2JqZWN0X2lkKTtcblxuICAgICAgICBjb25zdCBzdWJqZWN0ID0gJ01hcCBWaWV3IC0gQXJlYSBjbGlja2VkJztcbiAgICAgICAgc2VuZEFuYWx5dGljc0V2ZW50KHN1YmplY3QsICdtYXAnLCB7XG4gICAgICAgICAgYXJlYV9pZDogYXJlYS5hcmVhX2lkLFxuICAgICAgICAgIGFyZWFfbmFtZTogYXJlYS5hcmVhX25hbWUsXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgIG9uQ2xpY2soKTtcbiAgICBjdXN0b21BdHRyaWJ1dGVzRm9yQXJlYVBvbHlnb24ocG9seWdvbiwgYXJlYSk7XG4gICAgIUxheWVyR3JvdXAuaGFzTGF5ZXIocG9seWdvbikgJiYgTGF5ZXJHcm91cC5hZGRMYXllcihwb2x5Z29uKS5hZGRUbyhtYXApO1xuICAgIHBvcHVwQ3JlYXRvcihwb2x5Z29uLCBhcmVhKTtcbiAgICB6b29tQ29udHJvbEZvckFyZWEocG9seWdvbiwgYXJlYSwgbWFwKTtcbiAgICByZXR1cm4gcG9seWdvbjtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxZQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxRQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxNQUFBLEdBQUFKLE9BQUE7QUFFTyxJQUFNSyxXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBSUMsSUFBSSxFQUFLO0VBQ25DLElBQUlDLElBQUksR0FBR0QsSUFBSSxDQUFDRSxTQUFTLElBQUlGLElBQUksQ0FBQ0MsSUFBSTtFQUV0QyxPQUFPQSxJQUFJO0FBQ2IsQ0FBQztBQUFDRSxPQUFBLENBQUFKLFdBQUEsR0FBQUEsV0FBQTtBQUVLLElBQU1LLGNBQWMsR0FBRyxTQUFqQkEsY0FBY0EsQ0FBSUosSUFBSSxFQUFFSyxPQUFPLEVBQUs7RUFDL0MsSUFBSUMsV0FBb0I7RUFDeEIsSUFBSUMsT0FBTyxHQUFHUCxJQUFJLENBQUNRLFVBQVUsQ0FBQ0MsR0FBRyxDQUFDLFVBQUNDLFFBQWEsRUFBSztJQUNuRCxPQUFPLENBQUNBLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRUEsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0VBQzNDLENBQUMsQ0FBQztFQUVGLElBQUlILE9BQU8sQ0FBQ0ksTUFBTSxHQUFHLENBQUMsRUFBRTtFQUV4QixJQUFJQyxLQUFLLEdBQUdaLElBQUksQ0FBQ1ksS0FBSyxHQUFHWixJQUFJLENBQUNZLEtBQUssR0FBRyxJQUFBQyx5QkFBWSxFQUFDYixJQUFJLENBQUNjLFVBQVUsQ0FBQztFQUVuRSxJQUFNQyxLQUFLLEdBQUdDLFlBQVksQ0FBQ2hCLElBQUksRUFBRUssT0FBTyxDQUFDO0VBRXpDQyxXQUFXLEdBQUdXLGdCQUFDLENBQUNDLE9BQU8sQ0FBQ1gsT0FBTyxFQUFFO0lBQy9CSyxLQUFLLEVBQUxBLEtBQUs7SUFDTE8sV0FBVyxFQUFFbkIsSUFBSSxDQUFDb0Isc0JBQXNCLEdBQUcsR0FBRyxHQUFHLEdBQUc7SUFDcERDLE1BQU0sRUFBRXJCLElBQUksQ0FBQ29CLHNCQUFzQixHQUFHLENBQUMsR0FBRztFQUM1QyxDQUFDLENBQUMsQ0FBQ0UsV0FBVyxDQUFDUCxLQUFLLEVBQUU7SUFDcEJRLFNBQVMsRUFBRSxjQUFjO0lBQ3pCQyxTQUFTLEVBQUVuQixPQUFPLEdBQUcsRUFBRTtJQUN2Qm9CLFNBQVMsRUFBRTtFQUNiLENBQUMsQ0FBQztFQUVGLE9BQU9uQixXQUFXO0FBQ3BCLENBQUM7QUFBQ0gsT0FBQSxDQUFBQyxjQUFBLEdBQUFBLGNBQUE7QUFFSyxJQUFNc0Isb0JBQW9CLEdBQUcsU0FBdkJBLG9CQUFvQkEsQ0FBSUMsV0FBVyxFQUFLO0VBQ25ELElBQUkzQixJQUFJLEdBQUcsQ0FBQztFQUNaLElBQUk0QixTQUFTLEdBQUdELFdBQVcsQ0FBQ2hCLE1BQU07RUFFbEMsS0FBSyxJQUFJa0IsQ0FBQyxHQUFHLENBQUMsRUFBRUEsQ0FBQyxHQUFHRCxTQUFTLEVBQUVDLENBQUMsRUFBRSxFQUFFO0lBQ2xDLElBQUlDLEVBQUUsR0FBR0gsV0FBVyxDQUFDRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUIsSUFBSUUsRUFBRSxHQUFHSixXQUFXLENBQUNFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxQixJQUFJRyxFQUFFLEdBQUdMLFdBQVcsQ0FBQyxDQUFDRSxDQUFDLEdBQUcsQ0FBQyxJQUFJRCxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUMsSUFBSUssRUFBRSxHQUFHTixXQUFXLENBQUMsQ0FBQ0UsQ0FBQyxHQUFHLENBQUMsSUFBSUQsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTVDNUIsSUFBSSxJQUFJOEIsRUFBRSxHQUFHRyxFQUFFLEdBQUdELEVBQUUsR0FBR0QsRUFBRTtFQUMzQjtFQUVBLE9BQU9HLElBQUksQ0FBQ0MsR0FBRyxDQUFDbkMsSUFBSSxHQUFHLENBQUMsQ0FBQztBQUMzQixDQUFDO0FBQUNHLE9BQUEsQ0FBQXVCLG9CQUFBLEdBQUFBLG9CQUFBO0FBRUYsSUFBTVYsWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUloQixJQUFJLEVBQUVLLE9BQU8sRUFBSztFQUN0QyxvREFBQStCLE1BQUEsQ0FDRUMsWUFBSyxDQUFDQyxXQUFXLENBQUNDLE9BQU8sQ0FBQ0MsR0FBRywrREFBQUosTUFBQSxDQUU3Qi9CLE9BQU8sR0FBRyxHQUFHLGdEQUFBK0IsTUFBQSxDQUM2QnJDLFdBQVcsQ0FBQ0MsSUFBSSxDQUFDO0FBRS9ELENBQUM7QUFFRCxJQUFNeUMsV0FBVyxHQUFHLFNBQWRBLFdBQVdBLENBQUlDLEtBQUssRUFBRTNCLEtBQUssRUFBRVMsU0FBUyxFQUFFbkIsT0FBTyxFQUFLO0VBQ3hEcUMsS0FBSyxDQUFDQyxhQUFhLENBQUMsQ0FBQztFQUNyQkQsS0FBSyxDQUFDcEIsV0FBVyxDQUFDUCxLQUFLLEVBQUU7SUFDdkJRLFNBQVMsRUFBRSxjQUFjO0lBQ3pCQyxTQUFTLEVBQUVBLFNBQVMsS0FBS29CLFNBQVMsR0FBR3BCLFNBQVMsR0FBR25CLE9BQU8sR0FBRyxFQUFFO0lBQzdEb0IsU0FBUyxFQUFFO0VBQ2IsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVNLElBQU1vQix5QkFBeUIsR0FBRyxTQUE1QkEseUJBQXlCQSxDQUNwQ0MsVUFBVSxFQUNWekMsT0FBTyxFQUNQTCxJQUFJLEVBRUQ7RUFBQSxJQURId0IsU0FBUyxHQUFBdUIsU0FBQSxDQUFBcEMsTUFBQSxRQUFBb0MsU0FBQSxRQUFBSCxTQUFBLEdBQUFHLFNBQUEsTUFBR0gsU0FBUztFQUVyQixJQUFNN0IsS0FBSyxHQUFHQyxZQUFZLENBQUNoQixJQUFJLEVBQUVLLE9BQU8sQ0FBQztFQUV6QyxJQUFJeUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxLQUFLRixTQUFTLEVBQUU7SUFDNUNFLFVBQVUsQ0FBQ0UsU0FBUyxDQUFDLENBQUMsQ0FBQ0MsT0FBTyxDQUFDLFVBQUNQLEtBQUssRUFBSztNQUN4Q0QsV0FBVyxDQUFDQyxLQUFLLEVBQUUzQixLQUFLLEVBQUVTLFNBQVMsRUFBRW5CLE9BQU8sQ0FBQztJQUMvQyxDQUFDLENBQUM7RUFDSixDQUFDLE1BQU07SUFDTG9DLFdBQVcsQ0FBQ0ssVUFBVSxFQUFFL0IsS0FBSyxFQUFFUyxTQUFTLEVBQUVuQixPQUFPLENBQUM7RUFDcEQ7QUFDRixDQUFDO0FBQUNGLE9BQUEsQ0FBQTBDLHlCQUFBLEdBQUFBLHlCQUFBO0FBRUYsSUFBTUsseUJBQXlCLEdBQUcsU0FBNUJBLHlCQUF5QkEsQ0FDN0I1QyxXQUFXLEVBQ1hOLElBQUksRUFDSm1ELFVBQVUsRUFDVkMseUJBQXlCLEVBQ3pCQyx1QkFBdUIsRUFDdkI1QyxHQUFHLEVBQ0E7RUFDSCxJQUFNNkMsa0JBQWtCLEdBQUcsU0FBckJBLGtCQUFrQkEsQ0FBQSxFQUFTO0lBQy9CLE9BQ0VILFVBQVUsSUFBSUMseUJBQXlCLElBQ3ZDQyx1QkFBdUIsSUFDdkJyRCxJQUFJLENBQUN1RCxTQUFTLENBQUM1QyxNQUFNLEtBQUssQ0FBQyxJQUMzQkwsV0FBVyxDQUFDa0QsSUFBSSxLQUFLLElBQUk7RUFFN0IsQ0FBQztFQUVELElBQUlDLFlBQVksR0FBR3hDLGdCQUFDLENBQUN5QyxVQUFVLENBQUMsQ0FBQztFQUNqQyxJQUFJSixrQkFBa0IsQ0FBQyxDQUFDLEVBQUU7SUFDeEJoRCxXQUFXLENBQUNxRCxRQUFRLENBQUM7TUFDbkJDLE1BQU0sRUFBRSxJQUFJO01BQ1poRCxLQUFLLEVBQUUsSUFBQUMseUJBQVksRUFBQ2IsSUFBSSxDQUFDYyxVQUFVLENBQUM7TUFDcENPLE1BQU0sRUFBRSxDQUFDO01BQ1RGLFdBQVcsRUFBRSxHQUFHO01BQ2hCMEMsT0FBTyxFQUFFO0lBQ1gsQ0FBQyxDQUFDO0lBQ0ZoQix5QkFBeUIsQ0FDdkJ2QyxXQUFXLEVBQ1hBLFdBQVcsQ0FBQ2tELElBQUksQ0FBQ00sT0FBTyxDQUFDLENBQUMsRUFDMUI5RCxJQUFJLEVBQ0osS0FDRixDQUFDO0lBRUQsSUFBSU0sV0FBVyxDQUFDLFdBQVcsQ0FBQyxLQUFLc0MsU0FBUyxFQUFFO01BQzFDdEMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDMEMsU0FBUyxDQUFDLENBQUMsQ0FBQ0MsT0FBTyxDQUFDLFVBQUNjLE9BQU8sRUFBSztRQUN4RCxJQUFJQSxPQUFPLENBQUNSLFNBQVMsSUFBSVEsT0FBTyxDQUFDUixTQUFTLENBQUM1QyxNQUFNLEtBQUssQ0FBQyxFQUFFO1VBQ3ZERixHQUFHLENBQUN1RCxRQUFRLENBQUNQLFlBQVksQ0FBQztVQUMxQloseUJBQXlCLENBQ3ZCa0IsT0FBTyxFQUNQQSxPQUFPLENBQUNQLElBQUksQ0FBQ00sT0FBTyxDQUFDLENBQUMsRUFDdEJDLE9BQU8sRUFDUCxJQUNGLENBQUM7VUFDREEsT0FBTyxDQUFDSixRQUFRLENBQUM7WUFBRXhDLFdBQVcsRUFBRTtVQUFJLENBQUMsQ0FBQztRQUN4QztNQUNGLENBQUMsQ0FBQztJQUNKO0VBQ0YsQ0FBQyxNQUFNO0lBQ0xWLEdBQUcsQ0FBQ3VELFFBQVEsQ0FBQzFELFdBQVcsQ0FBQztJQUN6QkEsV0FBVyxDQUFDcUQsUUFBUSxDQUFDO01BQUV4QyxXQUFXLEVBQUUsR0FBRztNQUFFeUMsTUFBTSxFQUFFO0lBQU0sQ0FBQyxDQUFDO0lBQ3pEZix5QkFBeUIsQ0FDdkJ2QyxXQUFXLEVBQ1hBLFdBQVcsQ0FBQ2tELElBQUksQ0FBQ00sT0FBTyxDQUFDLENBQUMsRUFDMUI5RCxJQUFJLEVBQ0osSUFDRixDQUFDO0lBRURNLFdBQVcsQ0FBQyxXQUFXLENBQUMsS0FBS3NDLFNBQVMsSUFDcEN0QyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUMwQyxTQUFTLENBQUMsQ0FBQyxDQUFDQyxPQUFPLENBQUMsVUFBQ2MsT0FBTyxFQUFLO01BQ3hETixZQUFZLENBQUNPLFFBQVEsQ0FBQ0QsT0FBTyxDQUFDO01BQzlCdEQsR0FBRyxDQUFDd0QsV0FBVyxDQUFDRixPQUFPLENBQUM7SUFDMUIsQ0FBQyxDQUFDO0VBQ047RUFFQXpELFdBQVcsQ0FBQzRELE1BQU0sQ0FBQyxDQUFDO0FBQ3RCLENBQUM7QUFFTSxJQUFNQyxrQkFBa0IsR0FBRyxTQUFyQkEsa0JBQWtCQSxDQUFJN0QsV0FBVyxFQUFFTixJQUFJLEVBQUVTLEdBQUcsRUFBSztFQUM1REEsR0FBRyxDQUFDMkQsRUFBRSxDQUFDLFNBQVMsRUFBRSxZQUFZO0lBQzVCLElBQUlDLFlBQVksR0FBRzVELEdBQUcsQ0FBQzZELFNBQVMsQ0FBQyxDQUFDO0lBQ2xDLElBQUlDLGFBQWEsR0FBR2pFLFdBQVcsQ0FBQ2dFLFNBQVMsQ0FBQyxDQUFDO0lBQzNDLElBQUlqQix1QkFBdUIsR0FBR2dCLFlBQVksQ0FBQ0csVUFBVSxDQUFDRCxhQUFhLENBQUM7SUFDcEUsSUFBSUUsZ0JBQWdCLEdBQUd4RCxnQkFBQyxDQUFDQyxPQUFPLENBQUMsQ0FDL0JtRCxZQUFZLENBQUNLLFlBQVksQ0FBQyxDQUFDLEVBQzNCTCxZQUFZLENBQUNNLFlBQVksQ0FBQyxDQUFDLEVBQzNCTixZQUFZLENBQUNPLFlBQVksQ0FBQyxDQUFDLEVBQzNCUCxZQUFZLENBQUNRLFlBQVksQ0FBQyxDQUFDLENBQzVCLENBQUM7SUFFRixJQUFJQyxTQUFTLEdBQUdwRCxvQkFBb0IsQ0FDbEMrQyxnQkFBZ0IsQ0FBQ00sU0FBUyxDQUFDLENBQUMsQ0FBQ0MsUUFBUSxDQUFDckQsV0FBVyxDQUFDLENBQUMsQ0FDckQsQ0FBQztJQUVELElBQUlzRCxXQUFXLEdBQUczRSxXQUFXLENBQUMsb0JBQW9CLENBQUM7SUFDbkQsSUFBTThDLHlCQUF5QixHQUFHLElBQUk7SUFDdEMsSUFBTUQsVUFBVSxHQUFJOEIsV0FBVyxHQUFHSCxTQUFTLEdBQUksR0FBRztJQUVsRDVCLHlCQUF5QixDQUN2QjVDLFdBQVcsRUFDWE4sSUFBSSxFQUNKbUQsVUFBVSxFQUNWQyx5QkFBeUIsRUFDekJDLHVCQUF1QixFQUN2QjVDLEdBQ0YsQ0FBQztFQUNILENBQUMsQ0FBQztBQUNKLENBQUM7QUFBQ04sT0FBQSxDQUFBZ0Usa0JBQUEsR0FBQUEsa0JBQUE7QUFFRixJQUFNZSw4QkFBOEIsR0FBRyxTQUFqQ0EsOEJBQThCQSxDQUFJNUUsV0FBVyxFQUFFTixJQUFJLEVBQUs7RUFDNURNLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHTixJQUFJLENBQUNtRixPQUFPO0VBQzdDN0UsV0FBVyxDQUFDLGNBQWMsQ0FBQyxHQUFHLE1BQU07RUFDcENBLFdBQVcsQ0FBQyxXQUFXLENBQUMsR0FBR04sSUFBSSxDQUFDRSxTQUFTO0VBQ3pDSSxXQUFXLENBQUMsb0JBQW9CLENBQUMsR0FBR04sSUFBSSxDQUFDb0Ysa0JBQWtCO0FBQzdELENBQUM7QUFFTSxJQUFNQyxhQUFhLEdBQUcsU0FBaEJBLGFBQWFBLENBQ3hCckYsSUFBSSxFQUNKSyxPQUFPLEVBQ1B5QyxVQUFVLEVBQ1ZyQyxHQUFHLEVBQ0g2RSxZQUFzQyxFQUN0Q0MsV0FBWSxFQUNUO0VBQ0gsSUFBSXJFLE9BQWdCO0VBQ3BCLElBQ0VsQixJQUFJLENBQUNRLFVBQVUsS0FBSyxJQUFJLElBQ3hCUixJQUFJLENBQUNRLFVBQVUsS0FBS29DLFNBQVMsSUFDN0I1QyxJQUFJLENBQUNRLFVBQVUsQ0FBQ0csTUFBTSxHQUFHLENBQUMsRUFDMUI7SUFDQU8sT0FBTyxHQUFHZCxjQUFjLENBQUNKLElBQUksRUFBRUssT0FBTyxDQUFDO0lBRXZDLElBQU1tRixPQUFPLEdBQUcsU0FBVkEsT0FBT0EsQ0FBQSxFQUFTO01BQ3BCdEUsT0FBTyxDQUFDa0QsRUFBRSxDQUFDLE9BQU8sRUFBRSxZQUFNO1FBQ3hCbUIsV0FBVyxDQUFDckUsT0FBTyxDQUFDdUUsZUFBZSxDQUFDO1FBRXBDLElBQU1DLE9BQU8sR0FBRyx5QkFBeUI7UUFDekMsSUFBQUMseUJBQWtCLEVBQUNELE9BQU8sRUFBRSxLQUFLLEVBQUU7VUFDakNQLE9BQU8sRUFBRW5GLElBQUksQ0FBQ21GLE9BQU87VUFDckJqRixTQUFTLEVBQUVGLElBQUksQ0FBQ0U7UUFDbEIsQ0FBQyxDQUFDO01BQ0osQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVEc0YsT0FBTyxDQUFDLENBQUM7SUFDVE4sOEJBQThCLENBQUNoRSxPQUFPLEVBQUVsQixJQUFJLENBQUM7SUFDN0MsQ0FBQzhDLFVBQVUsQ0FBQzhDLFFBQVEsQ0FBQzFFLE9BQU8sQ0FBQyxJQUFJNEIsVUFBVSxDQUFDa0IsUUFBUSxDQUFDOUMsT0FBTyxDQUFDLENBQUMyRSxLQUFLLENBQUNwRixHQUFHLENBQUM7SUFDeEU2RSxZQUFZLENBQUNwRSxPQUFPLEVBQUVsQixJQUFJLENBQUM7SUFDM0JtRSxrQkFBa0IsQ0FBQ2pELE9BQU8sRUFBRWxCLElBQUksRUFBRVMsR0FBRyxDQUFDO0lBQ3RDLE9BQU9TLE9BQU87RUFDaEI7RUFDQSxPQUFPLElBQUk7QUFDYixDQUFDO0FBQUNmLE9BQUEsQ0FBQWtGLGFBQUEsR0FBQUEsYUFBQSJ9
@@ -12,16 +12,21 @@ var _PointUtils = require("./PointUtils");
12
12
  var _Widget = require("pages/DashboardMap/Widget");
13
13
  var _reactDom = _interopRequireDefault(require("react-dom"));
14
14
  var _utils = require("pages/DashboardMap/utils");
15
+ var _ListContext = require("pages/DashboardMap/ListContext");
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); }
16
17
  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; }
17
18
  function mapStateToProps(state) {
18
19
  var events_data = state.events_data,
19
20
  areas_data = state.areas_data,
20
- points_data = state.points_data;
21
+ points_data = state.points_data,
22
+ edges_data = state.edges_data,
23
+ global_data = state.global_data;
21
24
  return {
22
25
  events_data: events_data,
23
26
  areas_data: areas_data,
24
- points_data: points_data
27
+ points_data: points_data,
28
+ edges_data: edges_data,
29
+ global_data: global_data
25
30
  };
26
31
  }
27
32
  var PointMarker = function PointMarker(props) {
@@ -31,34 +36,56 @@ var PointMarker = function PointMarker(props) {
31
36
  layerGroup = props.layerGroup,
32
37
  flowRateUnit = props.flowRateUnit,
33
38
  areas_data = props.areas_data,
34
- points_data = props.points_data;
39
+ points_data = props.points_data,
40
+ edges_data = props.edges_data,
41
+ global_data = props.global_data;
35
42
  var dispatch = (0, _reactRedux.useDispatch)();
43
+ var _useSelectedItem = (0, _ListContext.useSelectedItem)(),
44
+ handleSelectItem = _useSelectedItem.handleSelectItem;
45
+ var ReduxState = (0, _reactRedux.useSelector)(function (state) {
46
+ return state;
47
+ });
48
+ var wwtp_dashboard = ReduxState.wwtp_dashboard;
36
49
  var WWTPMapLogic = function WWTPMapLogic(markerLocation) {
37
50
  var args = {
38
51
  markerLocation: markerLocation,
39
52
  point: point
40
53
  };
41
54
  var wwtp = (0, _PointUtils.bubbleForWWTP)(args);
42
- var widgetContainer = document.createElement('div');
55
+ var inlets = (0, _utils.getInlets)(point, edges_data.items, points_data.items);
56
+ var widgetContainer = document.createElement('span');
43
57
  _reactDom.default.render( /*#__PURE__*/_react.default.createElement(_Widget.Widget, {
44
58
  object: point,
45
59
  dispatch: dispatch,
46
60
  areas: areas_data.newAreas,
47
- points: points_data.items
61
+ points: points_data.items,
62
+ inlets: inlets,
63
+ map: map,
64
+ global_data: global_data
48
65
  }), widgetContainer);
49
- (0, _utils.createPopupForObject)({
50
- renderedElement: widgetContainer,
51
- marker: wwtp,
52
- map: map
66
+ wwtp.addTo(map);
67
+ var bindPopup = inlets.length > 0;
68
+ if (bindPopup) {
69
+ (0, _utils.createPopupForObject)({
70
+ renderedElement: widgetContainer,
71
+ marker: wwtp
72
+ });
73
+ }
74
+ wwtp.on('click', function () {
75
+ (0, _utils.sendAnalyticsEvent)('Map View - WWTP clicked', 'map', {
76
+ point_id: point.id,
77
+ point_name: point.name
78
+ });
53
79
  });
54
80
  };
55
81
  var renderLogic = function renderLogic() {
56
82
  var markerLocation = [point['latitude'], point['longitude']];
57
83
  if (markerLocation[0] === null) return;
58
- if (point.forWWTPMap) {
84
+ if (point.group.type === 'Groups::WastewaterTreatmentPlant' && wwtp_dashboard.map !== null) {
85
+ point.forWWTPMap = true;
59
86
  WWTPMapLogic(markerLocation);
60
87
  } else {
61
- (0, _PointUtils.createBubblePoint)(markerLocation, point, map, null, layerGroup, flowRateUnit);
88
+ (0, _PointUtils.createBubblePoint)(markerLocation, point, map, null, layerGroup, flowRateUnit, handleSelectItem);
62
89
  }
63
90
  };
64
91
  (0, _react.useEffect)(function () {
@@ -66,12 +93,9 @@ var PointMarker = function PointMarker(props) {
66
93
  }, [rerender]);
67
94
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
68
95
  };
69
- var connector = (0, _reactRedux.connect)(mapStateToProps);
70
- var _default = connector( /*#__PURE__*/_react.default.memo(PointMarker, function (prevProps, nextProps) {
71
- if (prevProps.events_data.focusedEvent !== nextProps.events_data.focusedEvent) {
72
- return false;
73
- }
74
- return true;
96
+ var connectedMarker = (0, _reactRedux.connect)(mapStateToProps);
97
+ var _default = connectedMarker( /*#__PURE__*/_react.default.memo(PointMarker, function (prevProps, nextProps) {
98
+ return prevProps.events_data.focusedEvent === nextProps.events_data.focusedEvent;
75
99
  }));
76
100
  exports.default = _default;
77
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RSZWR1eCIsIl9Qb2ludFV0aWxzIiwiX1dpZGdldCIsIl9yZWFjdERvbSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXRpbHMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIm1hcFN0YXRlVG9Qcm9wcyIsInN0YXRlIiwiZXZlbnRzX2RhdGEiLCJhcmVhc19kYXRhIiwicG9pbnRzX2RhdGEiLCJQb2ludE1hcmtlciIsInByb3BzIiwibWFwIiwicG9pbnQiLCJyZXJlbmRlciIsImxheWVyR3JvdXAiLCJmbG93UmF0ZVVuaXQiLCJkaXNwYXRjaCIsInVzZURpc3BhdGNoIiwiV1dUUE1hcExvZ2ljIiwibWFya2VyTG9jYXRpb24iLCJhcmdzIiwid3d0cCIsImJ1YmJsZUZvcldXVFAiLCJ3aWRnZXRDb250YWluZXIiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJSZWFjdERPTSIsInJlbmRlciIsIldpZGdldCIsIm9iamVjdCIsImFyZWFzIiwibmV3QXJlYXMiLCJwb2ludHMiLCJpdGVtcyIsImNyZWF0ZVBvcHVwRm9yT2JqZWN0IiwicmVuZGVyZWRFbGVtZW50IiwibWFya2VyIiwicmVuZGVyTG9naWMiLCJmb3JXV1RQTWFwIiwiY3JlYXRlQnViYmxlUG9pbnQiLCJ1c2VFZmZlY3QiLCJGcmFnbWVudCIsImNvbm5lY3RvciIsImNvbm5lY3QiLCJfZGVmYXVsdCIsIlJlYWN0IiwibWVtbyIsInByZXZQcm9wcyIsIm5leHRQcm9wcyIsImZvY3VzZWRFdmVudCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvV2lkZ2V0cy9NYXAvcG9pbnRzL1BvaW50TWFya2VyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY29ubmVjdCwgQ29ubmVjdGVkUHJvcHMsIHVzZURpc3BhdGNoIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgSUFwcFN0YXRlIH0gZnJvbSAnc3JjL21vZGVscy9JQXBwU3RhdGUnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCB7IGJ1YmJsZUZvcldXVFAsIGNyZWF0ZUJ1YmJsZVBvaW50IH0gZnJvbSAnLi9Qb2ludFV0aWxzJztcbmltcG9ydCB7IExhdExuZ1R1cGxlIH0gZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgeyBXaWRnZXQgfSBmcm9tICdzcmMvcGFnZXMvRGFzaGJvYXJkTWFwL1dpZGdldCc7XG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCBMIGZyb20gJ2xlYWZsZXQnO1xuaW1wb3J0IHsgY3JlYXRlUG9wdXBGb3JPYmplY3QgfSBmcm9tICdzcmMvcGFnZXMvRGFzaGJvYXJkTWFwL3V0aWxzJztcblxuZnVuY3Rpb24gbWFwU3RhdGVUb1Byb3BzKHN0YXRlOiBJQXBwU3RhdGUpIHtcbiAgY29uc3QgeyBldmVudHNfZGF0YSwgYXJlYXNfZGF0YSwgcG9pbnRzX2RhdGEgfSA9IHN0YXRlO1xuXG4gIHJldHVybiB7XG4gICAgZXZlbnRzX2RhdGEsXG4gICAgYXJlYXNfZGF0YSxcbiAgICBwb2ludHNfZGF0YSxcbiAgfTtcbn1cblxudHlwZSBQcm9wcyA9IENvbm5lY3RlZFByb3BzPHR5cGVvZiBjb25uZWN0b3I+ICYge1xuICBtYXA6IGFueTtcbiAgcG9pbnQ6IElQb2ludDtcbiAgcmVyZW5kZXI6IHN0cmluZztcbiAgbGF5ZXJHcm91cDogYW55O1xuICBmbG93UmF0ZVVuaXQ6IHN0cmluZztcbn07XG5cbmNvbnN0IFBvaW50TWFya2VyOiBSZWFjdC5GQzxQcm9wcz4gPSAocHJvcHMpID0+IHtcbiAgY29uc3Qge1xuICAgIG1hcCxcbiAgICBwb2ludCxcbiAgICByZXJlbmRlcixcbiAgICBsYXllckdyb3VwLFxuICAgIGZsb3dSYXRlVW5pdCxcbiAgICBhcmVhc19kYXRhLFxuICAgIHBvaW50c19kYXRhLFxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgV1dUUE1hcExvZ2ljID0gKG1hcmtlckxvY2F0aW9uKSA9PiB7XG4gICAgbGV0IGFyZ3MgPSB7IG1hcmtlckxvY2F0aW9uLCBwb2ludCB9O1xuICAgIGxldCB3d3RwOiBMLk1hcmtlciA9IGJ1YmJsZUZvcldXVFAoYXJncyk7XG5cbiAgICBjb25zdCB3aWRnZXRDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBSZWFjdERPTS5yZW5kZXIoXG4gICAgICA8V2lkZ2V0XG4gICAgICAgIG9iamVjdD17cG9pbnR9XG4gICAgICAgIGRpc3BhdGNoPXtkaXNwYXRjaH1cbiAgICAgICAgYXJlYXM9e2FyZWFzX2RhdGEubmV3QXJlYXN9XG4gICAgICAgIHBvaW50cz17cG9pbnRzX2RhdGEuaXRlbXN9XG4gICAgICAvPixcbiAgICAgIHdpZGdldENvbnRhaW5lcixcbiAgICApO1xuICAgIGNyZWF0ZVBvcHVwRm9yT2JqZWN0KHtcbiAgICAgIHJlbmRlcmVkRWxlbWVudDogd2lkZ2V0Q29udGFpbmVyLFxuICAgICAgbWFya2VyOiB3d3RwLFxuICAgICAgbWFwLFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IHJlbmRlckxvZ2ljID0gKCkgPT4ge1xuICAgIGxldCBtYXJrZXJMb2NhdGlvbjogTGF0TG5nVHVwbGUgPSBbcG9pbnRbJ2xhdGl0dWRlJ10sIHBvaW50Wydsb25naXR1ZGUnXV07XG4gICAgaWYgKG1hcmtlckxvY2F0aW9uWzBdID09PSBudWxsKSByZXR1cm47XG4gICAgaWYgKHBvaW50LmZvcldXVFBNYXApIHtcbiAgICAgIFdXVFBNYXBMb2dpYyhtYXJrZXJMb2NhdGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNyZWF0ZUJ1YmJsZVBvaW50KFxuICAgICAgICBtYXJrZXJMb2NhdGlvbixcbiAgICAgICAgcG9pbnQsXG4gICAgICAgIG1hcCxcbiAgICAgICAgbnVsbCxcbiAgICAgICAgbGF5ZXJHcm91cCxcbiAgICAgICAgZmxvd1JhdGVVbml0LFxuICAgICAgKTtcbiAgICB9XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZW5kZXJMb2dpYygpO1xuICB9LCBbcmVyZW5kZXJdKTtcblxuICByZXR1cm4gPD48Lz47XG59O1xuXG5jb25zdCBjb25uZWN0b3IgPSBjb25uZWN0KG1hcFN0YXRlVG9Qcm9wcyk7XG5leHBvcnQgZGVmYXVsdCBjb25uZWN0b3IoXG4gIFJlYWN0Lm1lbW8oUG9pbnRNYXJrZXIsIChwcmV2UHJvcHMsIG5leHRQcm9wcykgPT4ge1xuICAgIGlmIChcbiAgICAgIHByZXZQcm9wcy5ldmVudHNfZGF0YS5mb2N1c2VkRXZlbnQgIT09IG5leHRQcm9wcy5ldmVudHNfZGF0YS5mb2N1c2VkRXZlbnRcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSksXG4pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFdBQUEsR0FBQUQsT0FBQTtBQUdBLElBQUFFLFdBQUEsR0FBQUYsT0FBQTtBQUVBLElBQUFHLE9BQUEsR0FBQUgsT0FB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
101
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RSZWR1eCIsIl9Qb2ludFV0aWxzIiwiX1dpZGdldCIsIl9yZWFjdERvbSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXRpbHMiLCJfTGlzdENvbnRleHQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIm1hcFN0YXRlVG9Qcm9wcyIsInN0YXRlIiwiZXZlbnRzX2RhdGEiLCJhcmVhc19kYXRhIiwicG9pbnRzX2RhdGEiLCJlZGdlc19kYXRhIiwiZ2xvYmFsX2RhdGEiLCJQb2ludE1hcmtlciIsInByb3BzIiwibWFwIiwicG9pbnQiLCJyZXJlbmRlciIsImxheWVyR3JvdXAiLCJmbG93UmF0ZVVuaXQiLCJkaXNwYXRjaCIsInVzZURpc3BhdGNoIiwiX3VzZVNlbGVjdGVkSXRlbSIsInVzZVNlbGVjdGVkSXRlbSIsImhhbmRsZVNlbGVjdEl0ZW0iLCJSZWR1eFN0YXRlIiwidXNlU2VsZWN0b3IiLCJ3d3RwX2Rhc2hib2FyZCIsIldXVFBNYXBMb2dpYyIsIm1hcmtlckxvY2F0aW9uIiwiYXJncyIsInd3dHAiLCJidWJibGVGb3JXV1RQIiwiaW5sZXRzIiwiZ2V0SW5sZXRzIiwiaXRlbXMiLCJ3aWRnZXRDb250YWluZXIiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJSZWFjdERPTSIsInJlbmRlciIsIldpZGdldCIsIm9iamVjdCIsImFyZWFzIiwibmV3QXJlYXMiLCJwb2ludHMiLCJhZGRUbyIsImJpbmRQb3B1cCIsImxlbmd0aCIsImNyZWF0ZVBvcHVwRm9yT2JqZWN0IiwicmVuZGVyZWRFbGVtZW50IiwibWFya2VyIiwib24iLCJzZW5kQW5hbHl0aWNzRXZlbnQiLCJwb2ludF9pZCIsImlkIiwicG9pbnRfbmFtZSIsIm5hbWUiLCJyZW5kZXJMb2dpYyIsImdyb3VwIiwidHlwZSIsImZvcldXVFBNYXAiLCJjcmVhdGVCdWJibGVQb2ludCIsInVzZUVmZmVjdCIsIkZyYWdtZW50IiwiY29ubmVjdGVkTWFya2VyIiwiY29ubmVjdCIsIl9kZWZhdWx0IiwiUmVhY3QiLCJtZW1vIiwicHJldlByb3BzIiwibmV4dFByb3BzIiwiZm9jdXNlZEV2ZW50IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9wb2ludHMvUG9pbnRNYXJrZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjb25uZWN0LCBDb25uZWN0ZWRQcm9wcywgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgSUFwcFN0YXRlIH0gZnJvbSAnc3JjL21vZGVscy9JQXBwU3RhdGUnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCB7IGJ1YmJsZUZvcldXVFAsIGNyZWF0ZUJ1YmJsZVBvaW50IH0gZnJvbSAnLi9Qb2ludFV0aWxzJztcbmltcG9ydCB7IFdpZGdldCB9IGZyb20gJ3NyYy9wYWdlcy9EYXNoYm9hcmRNYXAvV2lkZ2V0JztcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IEwsIHsgTGF0TG5nVHVwbGUgfSBmcm9tICdsZWFmbGV0JztcbmltcG9ydCB7XG4gIGNyZWF0ZVBvcHVwRm9yT2JqZWN0LFxuICBnZXRJbmxldHMsXG4gIHNlbmRBbmFseXRpY3NFdmVudCxcbn0gZnJvbSAnc3JjL3BhZ2VzL0Rhc2hib2FyZE1hcC91dGlscyc7XG5pbXBvcnQgeyB1c2VTZWxlY3RlZEl0ZW0gfSBmcm9tICdzcmMvcGFnZXMvRGFzaGJvYXJkTWFwL0xpc3RDb250ZXh0JztcblxuZnVuY3Rpb24gbWFwU3RhdGVUb1Byb3BzKHN0YXRlOiBJQXBwU3RhdGUpIHtcbiAgY29uc3QgeyBldmVudHNfZGF0YSwgYXJlYXNfZGF0YSwgcG9pbnRzX2RhdGEsIGVkZ2VzX2RhdGEsIGdsb2JhbF9kYXRhIH0gPVxuICAgIHN0YXRlO1xuXG4gIHJldHVybiB7XG4gICAgZXZlbnRzX2RhdGEsXG4gICAgYXJlYXNfZGF0YSxcbiAgICBwb2ludHNfZGF0YSxcbiAgICBlZGdlc19kYXRhLFxuICAgIGdsb2JhbF9kYXRhLFxuICB9O1xufVxuXG50eXBlIFByb3BzID0gQ29ubmVjdGVkUHJvcHM8dHlwZW9mIGNvbm5lY3RlZE1hcmtlcj4gJiB7XG4gIG1hcDogYW55O1xuICBwb2ludDogSVBvaW50O1xuICByZXJlbmRlcjogc3RyaW5nO1xuICBsYXllckdyb3VwOiBhbnk7XG4gIGZsb3dSYXRlVW5pdDogc3RyaW5nO1xufTtcblxuY29uc3QgUG9pbnRNYXJrZXI6IFJlYWN0LkZDPFByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7XG4gICAgbWFwLFxuICAgIHBvaW50LFxuICAgIHJlcmVuZGVyLFxuICAgIGxheWVyR3JvdXAsXG4gICAgZmxvd1JhdGVVbml0LFxuICAgIGFyZWFzX2RhdGEsXG4gICAgcG9pbnRzX2RhdGEsXG4gICAgZWRnZXNfZGF0YSxcbiAgICBnbG9iYWxfZGF0YSxcbiAgfSA9IHByb3BzO1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IHsgaGFuZGxlU2VsZWN0SXRlbSB9ID0gdXNlU2VsZWN0ZWRJdGVtKCk7XG4gIGNvbnN0IFJlZHV4U3RhdGUgPSB1c2VTZWxlY3Rvcigoc3RhdGUpID0+IHN0YXRlKTtcbiAgY29uc3QgeyB3d3RwX2Rhc2hib2FyZCB9ID0gUmVkdXhTdGF0ZTtcblxuICBjb25zdCBXV1RQTWFwTG9naWMgPSAobWFya2VyTG9jYXRpb24pID0+IHtcbiAgICBsZXQgYXJncyA9IHsgbWFya2VyTG9jYXRpb24sIHBvaW50IH07XG4gICAgbGV0IHd3dHA6IEwuTWFya2VyID0gYnViYmxlRm9yV1dUUChhcmdzKTtcblxuICAgIGNvbnN0IGlubGV0cyA9IGdldElubGV0cyhwb2ludCwgZWRnZXNfZGF0YS5pdGVtcywgcG9pbnRzX2RhdGEuaXRlbXMpO1xuICAgIGNvbnN0IHdpZGdldENvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgICBSZWFjdERPTS5yZW5kZXIoXG4gICAgICA8V2lkZ2V0XG4gICAgICAgIG9iamVjdD17cG9pbnR9XG4gICAgICAgIGRpc3BhdGNoPXtkaXNwYXRjaH1cbiAgICAgICAgYXJlYXM9e2FyZWFzX2RhdGEubmV3QXJlYXN9XG4gICAgICAgIHBvaW50cz17cG9pbnRzX2RhdGEuaXRlbXN9XG4gICAgICAgIGlubGV0cz17aW5sZXRzfVxuICAgICAgICBtYXA9e21hcH1cbiAgICAgICAgZ2xvYmFsX2RhdGE9e2dsb2JhbF9kYXRhfVxuICAgICAgLz4sXG4gICAgICB3aWRnZXRDb250YWluZXIsXG4gICAgKTtcbiAgICB3d3RwLmFkZFRvKG1hcCk7XG4gICAgY29uc3QgYmluZFBvcHVwID0gaW5sZXRzLmxlbmd0aCA+IDA7XG4gICAgaWYgKGJpbmRQb3B1cCkge1xuICAgICAgY3JlYXRlUG9wdXBGb3JPYmplY3Qoe1xuICAgICAgICByZW5kZXJlZEVsZW1lbnQ6IHdpZGdldENvbnRhaW5lcixcbiAgICAgICAgbWFya2VyOiB3d3RwLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgd3d0cC5vbignY2xpY2snLCAoKSA9PiB7XG4gICAgICBzZW5kQW5hbHl0aWNzRXZlbnQoJ01hcCBWaWV3IC0gV1dUUCBjbGlja2VkJywgJ21hcCcsIHtcbiAgICAgICAgcG9pbnRfaWQ6IHBvaW50LmlkLFxuICAgICAgICBwb2ludF9uYW1lOiBwb2ludC5uYW1lLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgcmVuZGVyTG9naWMgPSAoKSA9PiB7XG4gICAgbGV0IG1hcmtlckxvY2F0aW9uOiBMYXRMbmdUdXBsZSA9IFtwb2ludFsnbGF0aXR1ZGUnXSwgcG9pbnRbJ2xvbmdpdHVkZSddXTtcbiAgICBpZiAobWFya2VyTG9jYXRpb25bMF0gPT09IG51bGwpIHJldHVybjtcbiAgICBpZiAoXG4gICAgICBwb2ludC5ncm91cC50eXBlID09PSAnR3JvdXBzOjpXYXN0ZXdhdGVyVHJlYXRtZW50UGxhbnQnICYmXG4gICAgICB3d3RwX2Rhc2hib2FyZC5tYXAgIT09IG51bGxcbiAgICApIHtcbiAgICAgIHBvaW50LmZvcldXVFBNYXAgPSB0cnVlO1xuICAgICAgV1dUUE1hcExvZ2ljKG1hcmtlckxvY2F0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY3JlYXRlQnViYmxlUG9pbnQoXG4gICAgICAgIG1hcmtlckxvY2F0aW9uLFxuICAgICAgICBwb2ludCxcbiAgICAgICAgbWFwLFxuICAgICAgICBudWxsLFxuICAgICAgICBsYXllckdyb3VwLFxuICAgICAgICBmbG93UmF0ZVVuaXQsXG4gICAgICAgIGhhbmRsZVNlbGVjdEl0ZW0sXG4gICAgICApO1xuICAgIH1cbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJlbmRlckxvZ2ljKCk7XG4gIH0sIFtyZXJlbmRlcl0pO1xuXG4gIHJldHVybiA8PjwvPjtcbn07XG5cbmNvbnN0IGNvbm5lY3RlZE1hcmtlciA9IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzKTtcbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3RlZE1hcmtlcihcbiAgUmVhY3QubWVtbyhQb2ludE1hcmtlciwgKHByZXZQcm9wcywgbmV4dFByb3BzKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHByZXZQcm9wcy5ldmVudHNfZGF0YS5mb2N1c2VkRXZlbnQgPT09IG5leHRQcm9wcy5ldmVudHNfZGF0YS5mb2N1c2VkRXZlbnRcbiAgICApO1xuICB9KSxcbik7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsV0FBQSxHQUFBRCxPQUFBO0FBR0EsSUFBQUUsV0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsT0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksU0FBQSxHQUFBQyxzQkFBQSxDQUFBTCxPQUFBO0FBRUEsSUFBQU0sTUFBQSxHQUFBTixPQUFBO0FBS0EsSUFBQU8sWUFBQSxHQUFBUCxPQUFBO0FBQXFFLFNBQUFRLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBVix3QkFBQWMsR0FBQSxFQUFBSixXQUFBLFNBQUFBLFdBQUEsSUFBQUksR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsV0FBQUQsR0FBQSxRQUFBQSxHQUFBLGFBQUFFLE9BQUEsQ0FBQUYsR0FBQSx5QkFBQUEsR0FBQSw0QkFBQUcsT0FBQSxFQUFBSCxHQUFBLFVBQUFJLEtBQUEsR0FBQVQsd0JBQUEsQ0FBQUMsV0FBQSxPQUFBUSxLQUFBLElBQUFBLEtBQUEsQ0FBQUMsR0FBQSxDQUFBTCxHQUFBLFlBQUFJLEtBQUEsQ0FBQUUsR0FBQSxDQUFBTixHQUFBLFNBQUFPLE1BQUEsV0FBQUMscUJBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsR0FBQSxJQUFBWixHQUFBLFFBQUFZLEdBQUEsa0JBQUFILE1B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
@@ -23,16 +23,6 @@ var PointMarkers = function PointMarkers(props) {
23
23
  rerender = props.rerender,
24
24
  _props$forEventsView = props.forEventsView,
25
25
  forEventsView = _props$forEventsView === void 0 ? false : _props$forEventsView;
26
-
27
- //Handle the mouse click here one for all instead one by one
28
- // factoriesClusterGroup.on('click', function (a) {
29
- // console.log('currentSrc', a.originalEvent.target.currentSrc);
30
- // console.log('src', a.originalEvent.target.src);
31
- // //a.originalEvent.target.src = '';
32
- // //Change icon here
33
- // });
34
- // console.log('LayerGroups', factoriesClusterGroup);
35
-
36
26
  var isPointBelongToGroupTypes = function isPointBelongToGroupTypes(point) {
37
27
  return point.group.type === 'Groups::WastewaterTreatmentPlant' || point.group.type === 'Groups::Factory' || point.group.type === 'Groups::Collectors' && point.has_device || point.group.type === 'Groups::PumpStation' && point.has_device;
38
28
  };
@@ -151,4 +141,4 @@ var PointMarkers = function PointMarkers(props) {
151
141
  }));
152
142
  };
153
143
  exports.PointMarkers = PointMarkers;
154
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfUG9pbnRNYXJrZXIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1BvaW50VXRpbHMiLCJfcmVhY3RSZWR1eCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiUG9pbnRNYXJrZXJzIiwicHJvcHMiLCJwb2ludHMiLCJtYXAiLCJmYWN0b3JpZXNHcm91cCIsInd3dHBzR3JvdXAiLCJjb2xsZWN0b3JzR3JvdXAiLCJyZXJlbmRlciIsIl9wcm9wcyRmb3JFdmVudHNWaWV3IiwiZm9yRXZlbnRzVmlldyIsImlzUG9pbnRCZWxvbmdUb0dyb3VwVHlwZXMiLCJwb2ludCIsImdyb3VwIiwidHlwZSIsImhhc19kZXZpY2UiLCJmaWx0ZXJTdGF0ZW1lbnQiLCJmaWx0ZXJlZFBvaW50cyIsImZpbHRlciIsImV2ZW50c0RhdGEiLCJ1c2VTZWxlY3RvciIsInN0YXRlIiwiZXZlbnRzX2RhdGEiLCJ1c2VySW5mbyIsInBlcm1pc3Npb25zIiwidXNlcl9pbmZvIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwibGF5ZXJzVG9SZW1vdmUiLCJzZXRMYXllcnNUb1JlbW92ZSIsInJlbW92ZUV2ZW50UG9pbnRzRnJvbUNsdXN0ZXIiLCJ1bmlxZUlkcyIsImxvY2FsTGF5ZXJzVG9SZW1vdmUiLCJyZWZyZXNoQ2x1c3RlcnMiLCJmb3JFYWNoIiwiaWQiLCJwcm9wZXJ0eSIsIl9sYXllcnMiLCJrYW5kb19vYmplY3QiLCJrYW5kb19vYmplY3RfaWQiLCJwdXNoIiwicmVtb3ZlTGF5ZXJzIiwiYWRkRXZlbnRQb2ludHNUb0NsdXN0ZXIiLCJsYXllcnNUb0RyYXciLCJsYXllcnNJZHMiLCJsYXllciIsIl90b0NvbnN1bWFibGVBcnJheTIiLCJTZXQiLCJmaW5kIiwiYmluZFBvcHVwVG9NYXJrZXIiLCJmbG93X3JhdGVfdW5pdCIsImFkZExheWVycyIsIm1ha2VTdXJlVGhlcmVBcmVOb0R1cGxpY2F0ZXMiLCJmb2N1c2VkRXZlbnQiLCJvYnNJZHMiLCJvYnNlcnZhdGlvbnMiLCJvYnMiLCJwb2ludF9pZCIsInVzZUVmZmVjdCIsImFkZExheWVyR3JvdXAiLCJyZW1vdmVMYXllckdyb3VwIiwiaXNGZXRjaGluZyIsImNyZWF0ZUVsZW1lbnQiLCJoYXNMYXllciIsImxlbmd0aCIsImxhdGl0dWRlIiwibG9uZ2l0dWRlIiwibGF5ZXJHcm91cCIsImZsb3dSYXRlVW5pdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvV2lkZ2V0cy9NYXAvcG9pbnRzL1BvaW50TWFya2Vycy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdzcmMvc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnQnO1xuaW1wb3J0IFBvaW50TWFya2VyIGZyb20gJy4vUG9pbnRNYXJrZXInO1xuaW1wb3J0IHtcbiAgYWRkTGF5ZXJHcm91cCxcbiAgYmluZFBvcHVwVG9NYXJrZXIsXG4gIHJlbW92ZUxheWVyR3JvdXAsXG59IGZyb20gJy4vUG9pbnRVdGlscyc7XG5pbXBvcnQgeyB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IGFwcFJlZHVjZXIgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9yb290UmVkdWNlcic7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIG1hcDogYW55O1xuICBwb2ludHM6IGFueTtcbiAgaW5jbHVkZVVubW9uaXRvcmVkUG9pbnRzOiBib29sZWFuO1xuICByZXJlbmRlcjogc3RyaW5nO1xuICBmYWN0b3JpZXNHcm91cDogYW55O1xuICB3d3Rwc0dyb3VwOiBhbnk7XG4gIGNvbGxlY3RvcnNHcm91cDogYW55O1xuICBmb3JFdmVudHNWaWV3OiBib29sZWFuO1xufTtcblxuZXhwb3J0IGNvbnN0IFBvaW50TWFya2VyczogUmVhY3QuRkM8UHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBwb2ludHMsXG4gICAgbWFwLFxuICAgIGZhY3Rvcmllc0dyb3VwLFxuICAgIHd3dHBzR3JvdXAsXG4gICAgY29sbGVjdG9yc0dyb3VwLFxuICAgIHJlcmVuZGVyLFxuICAgIGZvckV2ZW50c1ZpZXcgPSBmYWxzZSxcbiAgfSA9IHByb3BzO1xuXG4gIC8vSGFuZGxlIHRoZSBtb3VzZSBjbGljayBoZXJlIG9uZSBmb3IgYWxsIGluc3RlYWQgb25lIGJ5IG9uZVxuICAvLyBmYWN0b3JpZXNDbHVzdGVyR3JvdXAub24oJ2NsaWNrJywgZnVuY3Rpb24gKGEpIHtcbiAgLy8gICBjb25zb2xlLmxvZygnY3VycmVudFNyYycsIGEub3JpZ2luYWxFdmVudC50YXJnZXQuY3VycmVudFNyYyk7XG4gIC8vICAgY29uc29sZS5sb2coJ3NyYycsIGEub3JpZ2luYWxFdmVudC50YXJnZXQuc3JjKTtcbiAgLy8gICAvL2Eub3JpZ2luYWxFdmVudC50YXJnZXQuc3JjID0gJyc7XG4gIC8vICAgLy9DaGFuZ2UgaWNvbiBoZXJlXG4gIC8vIH0pO1xuICAvLyBjb25zb2xlLmxvZygnTGF5ZXJHcm91cHMnLCBmYWN0b3JpZXNDbHVzdGVyR3JvdXApO1xuXG4gIGNvbnN0IGlzUG9pbnRCZWxvbmdUb0dyb3VwVHlwZXMgPSAocG9pbnQ6IElQb2ludCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICBwb2ludC5ncm91cC50eXBlID09PSAnR3JvdXBzOjpXYXN0ZXdhdGVyVHJlYXRtZW50UGxhbnQnIHx8XG4gICAgICBwb2ludC5ncm91cC50eXBlID09PSAnR3JvdXBzOjpGYWN0b3J5JyB8fFxuICAgICAgKHBvaW50Lmdyb3VwLnR5cGUgPT09ICdHcm91cHM6OkNvbGxlY3RvcnMnICYmIHBvaW50Lmhhc19kZXZpY2UpIHx8XG4gICAgICAocG9pbnQuZ3JvdXAudHlwZSA9PT0gJ0dyb3Vwczo6UHVtcFN0YXRpb24nICYmIHBvaW50Lmhhc19kZXZpY2UpXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBmaWx0ZXJTdGF0ZW1lbnQgPSAocG9pbnQpID0+IHtcbiAgICByZXR1cm4gaXNQb2ludEJlbG9uZ1RvR3JvdXBUeXBlcyhwb2ludCk7XG4gIH07XG5cbiAgY29uc3QgZmlsdGVyZWRQb2ludHMgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHBvaW50cy5maWx0ZXIoKHBvaW50OiBJUG9pbnQpID0+IGZpbHRlclN0YXRlbWVudChwb2ludCkpO1xuICB9O1xuXG4gIGNvbnN0IGV2ZW50c0RhdGEgPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGU6IFJldHVyblR5cGU8dHlwZW9mIGFwcFJlZHVjZXI+KSA9PiBzdGF0ZS5ldmVudHNfZGF0YSxcbiAgKTtcblxuICBjb25zdCB1c2VySW5mbyA9IHVzZVNlbGVjdG9yKChzdGF0ZSkgPT4gc3RhdGUucGVybWlzc2lvbnMudXNlcl9pbmZvKTtcblxuICBjb25zdCBbbGF5ZXJzVG9SZW1vdmUsIHNldExheWVyc1RvUmVtb3ZlXSA9IHVzZVN0YXRlPGFueVtdPihbXSk7XG5cbiAgY29uc3QgcmVtb3ZlRXZlbnRQb2ludHNGcm9tQ2x1c3RlciA9ICh1bmlxZUlkcywgbG9jYWxMYXllcnNUb1JlbW92ZSkgPT4ge1xuICAgIGZhY3Rvcmllc0dyb3VwLnJlZnJlc2hDbHVzdGVycygpO1xuXG4gICAgdW5pcWVJZHMuZm9yRWFjaCgoaWQpID0+IHtcbiAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgaW4gbWFwLl9sYXllcnMpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIG1hcC5fbGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3QgPT09ICdQb2ludCcgJiZcbiAgICAgICAgICBtYXAuX2xheWVyc1twcm9wZXJ0eV0ua2FuZG9fb2JqZWN0X2lkID09PSBpZFxuICAgICAgICApIHtcbiAgICAgICAgICBsb2NhbExheWVyc1RvUmVtb3ZlLnB1c2gobWFwLl9sYXllcnNbcHJvcGVydHldKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgc2V0TGF5ZXJzVG9SZW1vdmUobG9jYWxMYXllcnNUb1JlbW92ZSk7XG4gICAgZmFjdG9yaWVzR3JvdXAucmVtb3ZlTGF5ZXJzKGxvY2FsTGF5ZXJzVG9SZW1vdmUpO1xuICB9O1xuXG4gIGNvbnN0IGFkZEV2ZW50UG9pbnRzVG9DbHVzdGVyID0gKCkgPT4ge1xuICAgIGxldCBsYXllcnNUb0RyYXcgPSBbXTtcbiAgICBsZXQgbGF5ZXJzSWRzID0gbGF5ZXJzVG9SZW1vdmUubWFwKChsYXllcikgPT4gbGF5ZXIua2FuZG9fb2JqZWN0X2lkKTtcbiAgICBsZXQgdW5pcWVJZHMgPSBbLi4ubmV3IFNldChsYXllcnNJZHMpXTtcbiAgICB1bmlxZUlkcy5mb3JFYWNoKChpZCkgPT4ge1xuICAgICAgbGF5ZXJzVG9EcmF3LnB1c2goXG4gICAgICAgIGxheWVyc1RvUmVtb3ZlLmZpbmQoKGxheWVyKSA9PiBsYXllci5rYW5kb19vYmplY3RfaWQgPT09IGlkKSxcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBsYXllcnNUb0RyYXcuZm9yRWFjaCgobGF5ZXIpID0+IHtcbiAgICAgIGxldCBwb2ludCA9IHBvaW50cy5maW5kKChwb2ludCkgPT4gcG9pbnQuaWQgPT09IGxheWVyLmthbmRvX29iamVjdF9pZCk7XG4gICAgICBwb2ludCAmJiBiaW5kUG9wdXBUb01hcmtlcihwb2ludCwgbGF5ZXIsIHVzZXJJbmZvLmZsb3dfcmF0ZV91bml0KTtcbiAgICB9KTtcblxuICAgIGZhY3Rvcmllc0dyb3VwLmFkZExheWVycyhsYXllcnNUb0RyYXcpO1xuICB9O1xuXG4gIGNvbnN0IG1ha2VTdXJlVGhlcmVBcmVOb0R1cGxpY2F0ZXMgPSAoKSA9PiB7XG4gICAgbGV0IGxvY2FsTGF5ZXJzVG9SZW1vdmUgPSBbXTtcblxuICAgIGlmIChldmVudHNEYXRhLmZvY3VzZWRFdmVudCkge1xuICAgICAgbGV0IG9ic0lkcyA9IGV2ZW50c0RhdGEuZm9jdXNlZEV2ZW50Lm9ic2VydmF0aW9ucy5tYXAoXG4gICAgICAgIChvYnMpID0+IG9icy5wb2ludF9pZCxcbiAgICAgICk7XG4gICAgICBsZXQgdW5pcWVJZHMgPSBbLi4ubmV3IFNldChvYnNJZHMpXTtcbiAgICAgIHJlbW92ZUV2ZW50UG9pbnRzRnJvbUNsdXN0ZXIodW5pcWVJZHMsIGxvY2FsTGF5ZXJzVG9SZW1vdmUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhZGRFdmVudFBvaW50c1RvQ2x1c3RlcigpO1xuICAgIH1cbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChtYXApIHtcbiAgICAgIGlmIChmb3JFdmVudHNWaWV3KSB7XG4gICAgICAgIGFkZExheWVyR3JvdXAobWFwLCBmYWN0b3JpZXNHcm91cCk7XG4gICAgICAgIGFkZExheWVyR3JvdXAobWFwLCB3d3Rwc0dyb3VwKTtcbiAgICAgICAgYWRkTGF5ZXJHcm91cChtYXAsIGNvbGxlY3RvcnNHcm91cCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzd2l0Y2ggKHJlcmVuZGVyKSB7XG4gICAgICAgICAgY2FzZSAnWExhcmdlJzpcbiAgICAgICAgICAgIGFkZExheWVyR3JvdXAobWFwLCBmYWN0b3JpZXNHcm91cCk7XG4gICAgICAgICAgICBhZGRMYXllckdyb3VwKG1hcCwgd3d0cHNHcm91cCk7XG4gICAgICAgICAgICByZW1vdmVMYXllckdyb3VwKG1hcCwgY29sbGVjdG9yc0dyb3VwKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ0xhcmdlJzpcbiAgICAgICAgICAgIGFkZExheWVyR3JvdXAobWFwLCBmYWN0b3JpZXNHcm91cCk7XG4gICAgICAgICAgICBhZGRMYXllckdyb3VwKG1hcCwgd3d0cHNHcm91cCk7XG4gICAgICAgICAgICByZW1vdmVMYXllckdyb3VwKG1hcCwgY29sbGVjdG9yc0dyb3VwKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ01MYXJnZSc6XG4gICAgICAgICAgICBhZGRMYXllckdyb3VwKG1hcCwgZmFjdG9yaWVzR3JvdXApO1xuICAgICAgICAgICAgYWRkTGF5ZXJHcm91cChtYXAsIHd3dHBzR3JvdXApO1xuICAgICAgICAgICAgcmVtb3ZlTGF5ZXJHcm91cChtYXAsIGNvbGxlY3RvcnNHcm91cCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdNZWRpdW0nOlxuICAgICAgICAgICAgYWRkTGF5ZXJHcm91cChtYXAsIGZhY3Rvcmllc0dyb3VwKTtcbiAgICAgICAgICAgIGFkZExheWVyR3JvdXAobWFwLCB3d3Rwc0dyb3VwKTtcbiAgICAgICAgICAgIGFkZExheWVyR3JvdXAobWFwLCBjb2xsZWN0b3JzR3JvdXApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnU21hbGwnOlxuICAgICAgICAgICAgYWRkTGF5ZXJHcm91cChtYXAsIGZhY3Rvcmllc0dyb3VwKTtcbiAgICAgICAgICAgIGFkZExheWVyR3JvdXAobWFwLCB3d3Rwc0dyb3VwKTtcbiAgICAgICAgICAgIGFkZExheWVyR3JvdXAobWFwLCBjb2xsZWN0b3JzR3JvdXApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LCBbcmVyZW5kZXJdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIG1ha2VTdXJlVGhlcmVBcmVOb0R1cGxpY2F0ZXMoKTtcbiAgfSwgW2V2ZW50c0RhdGEuZm9jdXNlZEV2ZW50LCBldmVudHNEYXRhLmlzRmV0Y2hpbmcsIHJlcmVuZGVyXSk7XG4gIHJldHVybiAoXG4gICAgPGRpdj5cbiAgICAgIHshbWFwLmhhc0xheWVyKGZhY3Rvcmllc0dyb3VwKSAmJlxuICAgICAgICAhbWFwLmhhc0xheWVyKHd3dHBzR3JvdXApICYmXG4gICAgICAgICFtYXAuaGFzTGF5ZXIoY29sbGVjdG9yc0dyb3VwKSAmJlxuICAgICAgICBwb2ludHMubGVuZ3RoICE9PSAwICYmXG4gICAgICAgIGZpbHRlcmVkUG9pbnRzKCkubWFwKFxuICAgICAgICAgIChwb2ludDogSVBvaW50KSA9PlxuICAgICAgICAgICAgcG9pbnQubGF0aXR1ZGUgJiZcbiAgICAgICAgICAgIHBvaW50LmxvbmdpdHVkZSAmJiAoXG4gICAgICAgICAgICAgIDxQb2ludE1hcmtlclxuICAgICAgICAgICAgICAgIG1hcD17bWFwfVxuICAgICAgICAgICAgICAgIHBvaW50PXtwb2ludH1cbiAgICAgICAgICAgICAgICBrZXk9e3BvaW50LmlkfVxuICAgICAgICAgICAgICAgIHJlcmVuZGVyPXtyZXJlbmRlcn1cbiAgICAgICAgICAgICAgICBsYXllckdyb3VwPXtcbiAgICAgICAgICAgICAgICAgIHBvaW50Lmdyb3VwLnR5cGUgPT09ICdHcm91cHM6OkZhY3RvcnknXG4gICAgICAgICAgICAgICAgICAgID8gZmFjdG9yaWVzR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgOiBwb2ludC5ncm91cC50eXBlID09PSAnR3JvdXBzOjpXYXN0ZXdhdGVyVHJlYXRtZW50UGxhbnQnXG4gICAgICAgICAgICAgICAgICAgID8gd3d0cHNHcm91cFxuICAgICAgICAgICAgICAgICAgICA6IGNvbGxlY3RvcnNHcm91cFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmbG93UmF0ZVVuaXQ9e3VzZXJJbmZvLmZsb3dfcmF0ZV91bml0fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSxcbiAgICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxZQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxXQUFBLEdBQUFILE9BQUE7QUFLQSxJQUFBSSxXQUFBLEdBQUFKLE9BQUE7QUFBMEMsU0FBQUsseUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFBRSxnQkFBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFQLHdCQUFBVyxHQUFBLEVBQUFKLFdBQUEsU0FBQUEsV0FBQSxJQUFBSSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxXQUFBRCxHQUFBLFFBQUFBLEdBQUEsYUFBQUUsT0FBQSxDQUFBRixHQUFBLHlCQUFBQSxHQUFBLDRCQUFBRyxPQUFBLEVBQUFILEdBQUEsVUFBQUksS0FBQSxHQUFBVCx3QkFBQSxDQUFBQyxXQUFBLE9BQUFRLEtBQUEsSUFBQUEsS0FBQSxDQUFBQyxHQUFBLENBQUFMLEdBQUEsWUFBQUksS0FBQSxDQUFBRSxHQUFBLENBQUFOLEdBQUEsU0FBQU8sTUFBQSxXQUFBQyxxQkFBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxHQUFBLElBQUFaLEdBQUEsUUFBQVksR0FBQSxrQkFBQUgsTUFBQSxDQUFBSSxTQUFBLENBQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBZixHQUFBLEVBQUFZLEdBQUEsU0FBQUksSUFBQSxHQUFBUixxQkFBQSxHQUFBQyxNQUFBLENBQUFFLHdCQUFBLENBQUFYLEdBQUEsRUFBQVksR0FB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
144
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfUG9pbnRNYXJrZXIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1BvaW50VXRpbHMiLCJfcmVhY3RSZWR1eCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiUG9pbnRNYXJrZXJzIiwicHJvcHMiLCJwb2ludHMiLCJtYXAiLCJmYWN0b3JpZXNHcm91cCIsInd3dHBzR3JvdXAiLCJjb2xsZWN0b3JzR3JvdXAiLCJyZXJlbmRlciIsIl9wcm9wcyRmb3JFdmVudHNWaWV3IiwiZm9yRXZlbnRzVmlldyIsImlzUG9pbnRCZWxvbmdUb0dyb3VwVHlwZXMiLCJwb2ludCIsImdyb3VwIiwidHlwZSIsImhhc19kZXZpY2UiLCJmaWx0ZXJTdGF0ZW1lbnQiLCJmaWx0ZXJlZFBvaW50cyIsImZpbHRlciIsImV2ZW50c0RhdGEiLCJ1c2VTZWxlY3RvciIsInN0YXRlIiwiZXZlbnRzX2RhdGEiLCJ1c2VySW5mbyIsInBlcm1pc3Npb25zIiwidXNlcl9pbmZvIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwibGF5ZXJzVG9SZW1vdmUiLCJzZXRMYXllcnNUb1JlbW92ZSIsInJlbW92ZUV2ZW50UG9pbnRzRnJvbUNsdXN0ZXIiLCJ1bmlxZUlkcyIsImxvY2FsTGF5ZXJzVG9SZW1vdmUiLCJyZWZyZXNoQ2x1c3RlcnMiLCJmb3JFYWNoIiwiaWQiLCJwcm9wZXJ0eSIsIl9sYXllcnMiLCJrYW5kb19vYmplY3QiLCJrYW5kb19vYmplY3RfaWQiLCJwdXNoIiwicmVtb3ZlTGF5ZXJzIiwiYWRkRXZlbnRQb2ludHNUb0NsdXN0ZXIiLCJsYXllcnNUb0RyYXciLCJsYXllcnNJZHMiLCJsYXllciIsIl90b0NvbnN1bWFibGVBcnJheTIiLCJTZXQiLCJmaW5kIiwiYmluZFBvcHVwVG9NYXJrZXIiLCJmbG93X3JhdGVfdW5pdCIsImFkZExheWVycyIsIm1ha2VTdXJlVGhlcmVBcmVOb0R1cGxpY2F0ZXMiLCJmb2N1c2VkRXZlbnQiLCJvYnNJZHMiLCJvYnNlcnZhdGlvbnMiLCJvYnMiLCJwb2ludF9pZCIsInVzZUVmZmVjdCIsImFkZExheWVyR3JvdXAiLCJyZW1vdmVMYXllckdyb3VwIiwiaXNGZXRjaGluZyIsImNyZWF0ZUVsZW1lbnQiLCJoYXNMYXllciIsImxlbmd0aCIsImxhdGl0dWRlIiwibG9uZ2l0dWRlIiwibGF5ZXJHcm91cCIsImZsb3dSYXRlVW5pdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvV2lkZ2V0cy9NYXAvcG9pbnRzL1BvaW50TWFya2Vycy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdzcmMvc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnQnO1xuaW1wb3J0IFBvaW50TWFya2VyIGZyb20gJy4vUG9pbnRNYXJrZXInO1xuaW1wb3J0IHtcbiAgYWRkTGF5ZXJHcm91cCxcbiAgYmluZFBvcHVwVG9NYXJrZXIsXG4gIHJlbW92ZUxheWVyR3JvdXAsXG59IGZyb20gJy4vUG9pbnRVdGlscyc7XG5pbXBvcnQgeyB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IGFwcFJlZHVjZXIgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9yb290UmVkdWNlcic7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIG1hcDogYW55O1xuICBwb2ludHM6IGFueTtcbiAgaW5jbHVkZVVubW9uaXRvcmVkUG9pbnRzOiBib29sZWFuO1xuICByZXJlbmRlcjogc3RyaW5nO1xuICBmYWN0b3JpZXNHcm91cDogYW55O1xuICB3d3Rwc0dyb3VwOiBhbnk7XG4gIGNvbGxlY3RvcnNHcm91cDogYW55O1xuICBmb3JFdmVudHNWaWV3OiBib29sZWFuO1xufTtcblxuZXhwb3J0IGNvbnN0IFBvaW50TWFya2VyczogUmVhY3QuRkM8UHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBwb2ludHMsXG4gICAgbWFwLFxuICAgIGZhY3Rvcmllc0dyb3VwLFxuICAgIHd3dHBzR3JvdXAsXG4gICAgY29sbGVjdG9yc0dyb3VwLFxuICAgIHJlcmVuZGVyLFxuICAgIGZvckV2ZW50c1ZpZXcgPSBmYWxzZSxcbiAgfSA9IHByb3BzO1xuXG4gIGNvbnN0IGlzUG9pbnRCZWxvbmdUb0dyb3VwVHlwZXMgPSAocG9pbnQ6IElQb2ludCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICBwb2ludC5ncm91cC50eXBlID09PSAnR3JvdXBzOjpXYXN0ZXdhdGVyVHJlYXRtZW50UGxhbnQnIHx8XG4gICAgICBwb2ludC5ncm91cC50eXBlID09PSAnR3JvdXBzOjpGYWN0b3J5JyB8fFxuICAgICAgKHBvaW50Lmdyb3VwLnR5cGUgPT09ICdHcm91cHM6OkNvbGxlY3RvcnMnICYmIHBvaW50Lmhhc19kZXZpY2UpIHx8XG4gICAgICAocG9pbnQuZ3JvdXAudHlwZSA9PT0gJ0dyb3Vwczo6UHVtcFN0YXRpb24nICYmIHBvaW50Lmhhc19kZXZpY2UpXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBmaWx0ZXJTdGF0ZW1lbnQgPSAocG9pbnQpID0+IHtcbiAgICByZXR1cm4gaXNQb2ludEJlbG9uZ1RvR3JvdXBUeXBlcyhwb2ludCk7XG4gIH07XG5cbiAgY29uc3QgZmlsdGVyZWRQb2ludHMgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHBvaW50cy5maWx0ZXIoKHBvaW50OiBJUG9pbnQpID0+IGZpbHRlclN0YXRlbWVudChwb2ludCkpO1xuICB9O1xuXG4gIGNvbnN0IGV2ZW50c0RhdGEgPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGU6IFJldHVyblR5cGU8dHlwZW9mIGFwcFJlZHVjZXI+KSA9PiBzdGF0ZS5ldmVudHNfZGF0YSxcbiAgKTtcblxuICBjb25zdCB1c2VySW5mbyA9IHVzZVNlbGVjdG9yKChzdGF0ZSkgPT4gc3RhdGUucGVybWlzc2lvbnMudXNlcl9pbmZvKTtcblxuICBjb25zdCBbbGF5ZXJzVG9SZW1vdmUsIHNldExheWVyc1RvUmVtb3ZlXSA9IHVzZVN0YXRlPGFueVtdPihbXSk7XG5cbiAgY29uc3QgcmVtb3ZlRXZlbnRQb2ludHNGcm9tQ2x1c3RlciA9ICh1bmlxZUlkcywgbG9jYWxMYXllcnNUb1JlbW92ZSkgPT4ge1xuICAgIGZhY3Rvcmllc0dyb3VwLnJlZnJlc2hDbHVzdGVycygpO1xuXG4gICAgdW5pcWVJZHMuZm9yRWFjaCgoaWQpID0+IHtcbiAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgaW4gbWFwLl9sYXllcnMpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIG1hcC5fbGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3QgPT09ICdQb2ludCcgJiZcbiAgICAgICAgICBtYXAuX2xheWVyc1twcm9wZXJ0eV0ua2FuZG9fb2JqZWN0X2lkID09PSBpZFxuICAgICAgICApIHtcbiAgICAgICAgICBsb2NhbExheWVyc1RvUmVtb3ZlLnB1c2gobWFwLl9sYXllcnNbcHJvcGVydHldKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgc2V0TGF5ZXJzVG9SZW1vdmUobG9jYWxMYXllcnNUb1JlbW92ZSk7XG4gICAgZmFjdG9yaWVzR3JvdXAucmVtb3ZlTGF5ZXJzKGxvY2FsTGF5ZXJzVG9SZW1vdmUpO1xuICB9O1xuXG4gIGNvbnN0IGFkZEV2ZW50UG9pbnRzVG9DbHVzdGVyID0gKCkgPT4ge1xuICAgIGxldCBsYXllcnNUb0RyYXcgPSBbXTtcbiAgICBsZXQgbGF5ZXJzSWRzID0gbGF5ZXJzVG9SZW1vdmUubWFwKChsYXllcikgPT4gbGF5ZXIua2FuZG9fb2JqZWN0X2lkKTtcbiAgICBsZXQgdW5pcWVJZHMgPSBbLi4ubmV3IFNldChsYXllcnNJZHMpXTtcbiAgICB1bmlxZUlkcy5mb3JFYWNoKChpZCkgPT4ge1xuICAgICAgbGF5ZXJzVG9EcmF3LnB1c2goXG4gICAgICAgIGxheWVyc1RvUmVtb3ZlLmZpbmQoKGxheWVyKSA9PiBsYXllci5rYW5kb19vYmplY3RfaWQgPT09IGlkKSxcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBsYXllcnNUb0RyYXcuZm9yRWFjaCgobGF5ZXIpID0+IHtcbiAgICAgIGxldCBwb2ludCA9IHBvaW50cy5maW5kKChwb2ludCkgPT4gcG9pbnQuaWQgPT09IGxheWVyLmthbmRvX29iamVjdF9pZCk7XG4gICAgICBwb2ludCAmJiBiaW5kUG9wdXBUb01hcmtlcihwb2ludCwgbGF5ZXIsIHVzZXJJbmZvLmZsb3dfcmF0ZV91bml0KTtcbiAgICB9KTtcblxuICAgIGZhY3Rvcmllc0dyb3VwLmFkZExheWVycyhsYXllcnNUb0RyYXcpO1xuICB9O1xuXG4gIGNvbnN0IG1ha2VTdXJlVGhlcmVBcmVOb0R1cGxpY2F0ZXMgPSAoKSA9PiB7XG4gICAgbGV0IGxvY2FsTGF5ZXJzVG9SZW1vdmUgPSBbXTtcblxuICAgIGlmIChldmVudHNEYXRhLmZvY3VzZWRFdmVudCkge1xuICAgICAgbGV0IG9ic0lkcyA9IGV2ZW50c0RhdGEuZm9jdXNlZEV2ZW50Lm9ic2VydmF0aW9ucy5tYXAoXG4gICAgICAgIChvYnMpID0+IG9icy5wb2ludF9pZCxcbiAgICAgICk7XG4gICAgICBsZXQgdW5pcWVJZHMgPSBbLi4ubmV3IFNldChvYnNJZHMpXTtcbiAgICAgIHJlbW92ZUV2ZW50UG9pbnRzRnJvbUNsdXN0ZXIodW5pcWVJZHMsIGxvY2FsTGF5ZXJzVG9SZW1vdmUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhZGRFdmVudFBvaW50c1RvQ2x1c3RlcigpO1xuICAgIH1cbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChtYXApIHtcbiAgICAgIGlmIChmb3JFdmVudHNWaWV3KSB7XG4gICAgICAgIGFkZExheWVyR3JvdXAobWFwLCBmYWN0b3JpZXNHcm91cCk7XG4gICAgICAgIGFkZExheWVyR3JvdXAobWFwLCB3d3Rwc0dyb3VwKTtcbiAgICAgICAgYWRkTGF5ZXJHcm91cChtYXAsIGNvbGxlY3RvcnNHcm91cCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzd2l0Y2ggKHJlcmVuZGVyKSB7XG4gICAgICAgICAgY2FzZSAnWExhcmdlJzpcbiAgICAgICAgICAgIGFkZExheWVyR3JvdXAobWFwLCBmYWN0b3JpZXNHcm91cCk7XG4gICAgICAgICAgICBhZGRMYXllckdyb3VwKG1hcCwgd3d0cHNHcm91cCk7XG4gICAgICAgICAgICByZW1vdmVMYXllckdyb3VwKG1hcCwgY29sbGVjdG9yc0dyb3VwKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ0xhcmdlJzpcbiAgICAgICAgICAgIGFkZExheWVyR3JvdXAobWFwLCBmYWN0b3JpZXNHcm91cCk7XG4gICAgICAgICAgICBhZGRMYXllckdyb3VwKG1hcCwgd3d0cHNHcm91cCk7XG4gICAgICAgICAgICByZW1vdmVMYXllckdyb3VwKG1hcCwgY29sbGVjdG9yc0dyb3VwKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ01MYXJnZSc6XG4gICAgICAgICAgICBhZGRMYXllckdyb3VwKG1hcCwgZmFjdG9yaWVzR3JvdXApO1xuICAgICAgICAgICAgYWRkTGF5ZXJHcm91cChtYXAsIHd3dHBzR3JvdXApO1xuICAgICAgICAgICAgcmVtb3ZlTGF5ZXJHcm91cChtYXAsIGNvbGxlY3RvcnNHcm91cCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdNZWRpdW0nOlxuICAgICAgICAgICAgYWRkTGF5ZXJHcm91cChtYXAsIGZhY3Rvcmllc0dyb3VwKTtcbiAgICAgICAgICAgIGFkZExheWVyR3JvdXAobWFwLCB3d3Rwc0dyb3VwKTtcbiAgICAgICAgICAgIGFkZExheWVyR3JvdXAobWFwLCBjb2xsZWN0b3JzR3JvdXApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnU21hbGwnOlxuICAgICAgICAgICAgYWRkTGF5ZXJHcm91cChtYXAsIGZhY3Rvcmllc0dyb3VwKTtcbiAgICAgICAgICAgIGFkZExheWVyR3JvdXAobWFwLCB3d3Rwc0dyb3VwKTtcbiAgICAgICAgICAgIGFkZExheWVyR3JvdXAobWFwLCBjb2xsZWN0b3JzR3JvdXApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LCBbcmVyZW5kZXJdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIG1ha2VTdXJlVGhlcmVBcmVOb0R1cGxpY2F0ZXMoKTtcbiAgfSwgW2V2ZW50c0RhdGEuZm9jdXNlZEV2ZW50LCBldmVudHNEYXRhLmlzRmV0Y2hpbmcsIHJlcmVuZGVyXSk7XG4gIHJldHVybiAoXG4gICAgPGRpdj5cbiAgICAgIHshbWFwLmhhc0xheWVyKGZhY3Rvcmllc0dyb3VwKSAmJlxuICAgICAgICAhbWFwLmhhc0xheWVyKHd3dHBzR3JvdXApICYmXG4gICAgICAgICFtYXAuaGFzTGF5ZXIoY29sbGVjdG9yc0dyb3VwKSAmJlxuICAgICAgICBwb2ludHMubGVuZ3RoICE9PSAwICYmXG4gICAgICAgIGZpbHRlcmVkUG9pbnRzKCkubWFwKFxuICAgICAgICAgIChwb2ludDogSVBvaW50KSA9PlxuICAgICAgICAgICAgcG9pbnQubGF0aXR1ZGUgJiZcbiAgICAgICAgICAgIHBvaW50LmxvbmdpdHVkZSAmJiAoXG4gICAgICAgICAgICAgIDxQb2ludE1hcmtlclxuICAgICAgICAgICAgICAgIG1hcD17bWFwfVxuICAgICAgICAgICAgICAgIHBvaW50PXtwb2ludH1cbiAgICAgICAgICAgICAgICBrZXk9e3BvaW50LmlkfVxuICAgICAgICAgICAgICAgIHJlcmVuZGVyPXtyZXJlbmRlcn1cbiAgICAgICAgICAgICAgICBsYXllckdyb3VwPXtcbiAgICAgICAgICAgICAgICAgIHBvaW50Lmdyb3VwLnR5cGUgPT09ICdHcm91cHM6OkZhY3RvcnknXG4gICAgICAgICAgICAgICAgICAgID8gZmFjdG9yaWVzR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgOiBwb2ludC5ncm91cC50eXBlID09PSAnR3JvdXBzOjpXYXN0ZXdhdGVyVHJlYXRtZW50UGxhbnQnXG4gICAgICAgICAgICAgICAgICAgID8gd3d0cHNHcm91cFxuICAgICAgICAgICAgICAgICAgICA6IGNvbGxlY3RvcnNHcm91cFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmbG93UmF0ZVVuaXQ9e3VzZXJJbmZvLmZsb3dfcmF0ZV91bml0fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSxcbiAgICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxZQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxXQUFBLEdBQUFILE9BQUE7QUFLQSxJQUFBSSxXQUFBLEdBQUFKLE9BQUE7QUFBMEMsU0FBQUsseUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFBRSxnQkFBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJB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