@kando-env/kando-ui 1.2.249 → 1.2.251-alpha.0

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 (87) hide show
  1. package/lib/Router.js +5 -1
  2. package/lib/Widgets/Map/Map.js +100 -23
  3. package/lib/Widgets/Map/Map.scss +67 -0
  4. package/lib/Widgets/Map/MapUtils.js +27 -12
  5. package/lib/Widgets/Map/areas/AreaPolygons.js +3 -3
  6. package/lib/Widgets/Map/edges/Edge.js +2 -2
  7. package/lib/Widgets/Map/edges/Edge.scss +7 -2
  8. package/lib/Widgets/Map/edges/Edges.js +14 -2
  9. package/lib/Widgets/Map/events/EventIndicator.js +2 -2
  10. package/lib/Widgets/Map/events/EventPath.js +1 -1
  11. package/lib/Widgets/Map/events/EventUtils.js +23 -17
  12. package/lib/Widgets/Map/events/NetworkForSpecificEvent.js +6 -2
  13. package/lib/Widgets/Map/events/PointOfEvent.js +10 -7
  14. package/lib/Widgets/Map/points/PointIcon.js +44 -0
  15. package/lib/Widgets/Map/points/PointIcon.scss +230 -0
  16. package/lib/Widgets/Map/points/PointMarker.js +22 -19
  17. package/lib/Widgets/Map/points/PointMarkers.js +62 -13
  18. package/lib/Widgets/Map/points/PointUtils.js +83 -33
  19. package/lib/Widgets/MostPolluting/Areas/AreaBox/AreaBox.js +5 -5
  20. package/lib/Widgets/MostPolluting/Areas/areasResponse.interface.js +1 -1
  21. package/lib/Widgets/MostPolluting/MostPolluting.js +17 -8
  22. package/lib/Widgets/UtilityInformation/UtilityInformation.js +9 -15
  23. package/lib/assets/icons/pin/pin-matash-white.svg +8 -42
  24. package/lib/assets/icons/plus_v.svg +13 -0
  25. package/lib/assets/icons/water_reuse.svg +27 -0
  26. package/lib/assets/map/pin-matash-clicked.svg +12 -0
  27. package/lib/assets/map/pin-matash-white.svg +8 -28
  28. package/lib/assets/map/pin-plant-clicked.svg +10 -0
  29. package/lib/assets/map/pin-plant-white.svg +6 -28
  30. package/lib/assets/map/pin-suction-clicked.svg +10 -0
  31. package/lib/assets/map/pin-suction.svg +6 -23
  32. package/lib/assets/map/pin-water-clicked.svg +11 -0
  33. package/lib/assets/map/pin-water.svg +7 -17
  34. package/lib/assets/point_icons/WWTP-icon.svg +8 -21
  35. package/lib/assets/point_icons/factory-icon.svg +6 -21
  36. package/lib/assets/point_icons/pump-station-icon.svg +6 -16
  37. package/lib/components/CustomInputs/Select/Select.js +22 -4
  38. package/lib/components/Header/InfoBar/Breadcrumbs/Breadcrumbs.js +8 -2
  39. package/lib/components/Header/InfoBar/InfoBar.js +7 -1
  40. package/lib/components/Header/Slideshow/Slideshow.js +5 -5
  41. package/lib/hooks/useInitializeHeaders.js +2 -3
  42. package/lib/hooks/useMap.js +4 -14
  43. package/lib/i18n/en.json +38 -2
  44. package/lib/i18n/en_uk.json +23 -0
  45. package/lib/i18n/fr.json +23 -0
  46. package/lib/i18n/he.json +33 -0
  47. package/lib/i18n/it.json +23 -0
  48. package/lib/index.js +9 -1
  49. package/lib/macros/getVersion.js +2 -2
  50. package/lib/pages/AreaPage/AreaPage.js +9 -5
  51. package/lib/pages/CovidPage/components/TrendPopupContent/TrendPopupContent.js +4 -2
  52. package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainer.js +20 -4
  53. package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainerHelpers.js +4 -4
  54. package/lib/pages/EventsPage/events/EventsStyle.scss +1 -0
  55. package/lib/pages/EventsPage/events/event_info/EventInfo.js +3 -2
  56. package/lib/pages/EventsPage/events/events_list/EventsList.js +18 -32
  57. package/lib/pages/EventsPage/events/events_list/Filter/FilterContainer.js +5 -1
  58. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationsFormContent.js +11 -7
  59. package/lib/pages/OldSitePage/IDashboardData.js +1 -1
  60. package/lib/pages/ProfilePage/Container.js +2 -2
  61. package/lib/pages/ProfilePage/ProfilePage.js +154 -48
  62. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionContainer.js +3 -1
  63. package/lib/pages/SamplingsPage/SamplingProperties/ImagePreviewModal.js +2 -2
  64. package/lib/pages/SamplingsPage/SamplingProperties/SamplingProperties.js +4 -4
  65. package/lib/pages/SitePage/SiteInformation/SiteInformation.js +6 -6
  66. package/lib/pages/SitePage/SitePage.js +4 -6
  67. package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.js +11 -23
  68. package/lib/pages/UtilityDashboardPage/TopBar/TopBar.js +23 -6
  69. package/lib/pages/UtilityDashboardPage/TopBar/constants.js +17 -0
  70. package/lib/pages/UtilityDashboardPage/UtilityDashboard.js +15 -6
  71. package/lib/pages/UtilityDashboardPage/UtilityDashboardMapContainer/UtilityDashboardMapContainer.js +4 -2
  72. package/lib/pages/UtilityDashboardPage/VirtualAreaDashboardPage.js +67 -0
  73. package/lib/pages/WbeDashboard/WbeDashboardPage.js +15 -10
  74. package/lib/store/WBE/models/IWBE.js +1 -1
  75. package/lib/store/events/models/IEvent.js +1 -1
  76. package/lib/store/global/actions.js +5 -3
  77. package/lib/store/global/models/IGlobalState.js +1 -1
  78. package/lib/store/permissions/permissionsSlice.js +1 -3
  79. package/lib/store/points/models/IGroup.js +1 -1
  80. package/lib/store/points/models/IPoint.js +1 -1
  81. package/lib/ui-kit/KandoTable/KandoTable.js +4 -4
  82. package/lib/utilities/Analytics.js +2 -1
  83. package/lib/utilities/edgesMath.js +5 -3
  84. package/lib/utilities/map/icons.js +19 -7
  85. package/lib/utilities/polylinedecorator.js +383 -0
  86. package/lib/utilities/urls.js +27 -1
  87. package/package.json +9 -4
@@ -0,0 +1,230 @@
1
+ $factory: rgba(192, 68, 9, 1);
2
+ $wastewatertreatmentplant: rgba(103, 42, 193, 1);
3
+ $pumpstation: rgba(1, 129, 3, 1);
4
+ $collectors: rgba(23, 76, 155, 1);
5
+
6
+ .leaflet-div-icon {
7
+ //position: absolute;
8
+ background-color: transparent;
9
+ //border-radius: 50%;
10
+ border: none;
11
+ //width: 0 !important;
12
+ //height: 0 !important;
13
+ //bottom: 40px;
14
+ }
15
+
16
+ .icon-holder {
17
+ position: relative;
18
+ width: fit-content;
19
+ text-align: center; //moved the icon to the middle so needs to be fixed
20
+ transform: translate(-12px, -12px);
21
+ transition: 0.1s ease-in-out;
22
+
23
+ .icon-text {
24
+ position: absolute;
25
+ top: 50%;
26
+ left: 50%;
27
+ transform: translate(-50%, 12px);
28
+ width: max-content;
29
+ }
30
+
31
+ .centered-svg {
32
+ width: 23px !important;
33
+ transition: 0.07s ease-in-out;
34
+ }
35
+ }
36
+
37
+ .centered-svg {
38
+ transition: transform 0.2s;
39
+ }
40
+
41
+ .centered-svg:hover {
42
+ transform: scale(1.3);
43
+ }
44
+
45
+ .leaflet-marker-icon {
46
+ margin: 0 !important;
47
+ .rtl & {
48
+ right: 0 !important;
49
+
50
+ .icon-holder {
51
+ transform: translate(10px, -8px);
52
+ }
53
+ }
54
+ }
55
+
56
+ .increased.icon-holder {
57
+ .centered-svg {
58
+ width: 30px !important;
59
+ transition: 0.1s ease-in-out;
60
+ }
61
+ }
62
+
63
+ .clicked.increased.icon-holder {
64
+ .centered-svg {
65
+ width: 35px !important;
66
+ }
67
+ }
68
+
69
+ .clicked.icon-holder {
70
+ .rtl & {
71
+ transform: translate(14px, -28px) !important;
72
+ }
73
+
74
+ .ltr & {
75
+ transform: translate(-15px, -31.9px) !important;
76
+ }
77
+ transition: 0.1s ease-in-out;
78
+
79
+ .icon-text {
80
+ transform: translate(-50.5%, 22.5px);
81
+ }
82
+
83
+ .centered-svg {
84
+ width: 30px !important;
85
+ top: -7px;
86
+
87
+ &:hover {
88
+ transform: none;
89
+ }
90
+ }
91
+ }
92
+
93
+ .centered-svg-clicked {
94
+ transform: scale(3);
95
+ }
96
+
97
+ .hidden-text {
98
+ visibility: hidden;
99
+ }
100
+
101
+ .icon-title {
102
+ text-align: center;
103
+ text-shadow: 1px 1px 0 #fff, -1px -1px 0 #fff, 1px -1px 0 #fff,
104
+ -1px 1px 0 #fff;
105
+ font-weight: 600;
106
+ }
107
+
108
+ .icon-subtitle {
109
+ text-align: center;
110
+ text-shadow: 1px 1px 0 #fff, -1px -1px 0 #fff, 1px -1px 0 #fff,
111
+ -1px 1px 0 #fff;
112
+ font-weight: 400;
113
+ }
114
+
115
+ .color-text-factory {
116
+ color: $factory;
117
+ }
118
+ .color-text-wastewatertreatmentplant {
119
+ color: $wastewatertreatmentplant;
120
+ }
121
+ .color-text-pumpstation {
122
+ color: $pumpstation;
123
+ }
124
+ .color-text-collectors {
125
+ color: $collectors;
126
+ }
127
+
128
+ .icon-popup {
129
+ width: 200px;
130
+ height: 150px;
131
+ background-color: lightcoral;
132
+ top: calc(-240%);
133
+ position: absolute;
134
+ }
135
+
136
+ .icon-popup-show {
137
+ visibility: visible;
138
+ }
139
+
140
+ .icon-popup-hide {
141
+ visibility: hidden;
142
+ }
143
+
144
+ .point-marker-popup {
145
+ bottom: 30px !important;
146
+
147
+ .leaflet-popup-content {
148
+ margin: 16px;
149
+ }
150
+
151
+ .leaflet-popup-content-wrapper {
152
+ background: #f8f8fa !important;
153
+ }
154
+
155
+ .main-content {
156
+ font-family: Gilroy;
157
+ display: flex;
158
+ flex-direction: column;
159
+ padding: 6px;
160
+
161
+ &__header {
162
+ display: flex;
163
+ justify-content: space-between;
164
+ align-items: center;
165
+
166
+ &__titles {
167
+ &__title {
168
+ font-size: 16px;
169
+ line-height: 24px;
170
+ font-weight: 600;
171
+ text-align: start;
172
+ }
173
+
174
+ &__subtitle {
175
+ font-size: 14px;
176
+ font-weight: 400;
177
+ letter-spacing: 0px;
178
+ text-align: start;
179
+ }
180
+ }
181
+
182
+ &__score {
183
+ background: #ffeed7;
184
+ color: #c95e29;
185
+ border: 1px solid #f27133;
186
+ padding: 5px 10px;
187
+ border-radius: 4px;
188
+ font-size: 14px;
189
+ }
190
+ }
191
+ &__body {
192
+ display: flex;
193
+ justify-content: space-between;
194
+ padding-top: 16px;
195
+
196
+ &__item {
197
+ display: flex;
198
+ flex-direction: row;
199
+ justify-content: space-evenly;
200
+ align-items: center;
201
+ width: 180px;
202
+ background: white;
203
+ text-align: center;
204
+ padding: 15px 16px;
205
+ border-radius: 16px;
206
+
207
+ &__icon {
208
+ }
209
+
210
+ &__titles {
211
+ text-align: start;
212
+
213
+ &__title {
214
+ font-size: 16px;
215
+ font-weight: 600;
216
+ line-height: 24px;
217
+ letter-spacing: 0px;
218
+ }
219
+
220
+ &__subtitle {
221
+ font-size: 14px;
222
+ font-weight: 400;
223
+ line-height: 24px;
224
+ letter-spacing: 0px;
225
+ }
226
+ }
227
+ }
228
+ }
229
+ }
230
+ }
@@ -7,11 +7,13 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = void 0;
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
  var _reactRedux = require("react-redux");
10
- var _useRemoveExistingLayers = _interopRequireWildcard(require("hooks/useRemoveExistingLayers"));
11
10
  var _PointUtils = require("./PointUtils");
12
- var _MapUtils = require("../MapUtils");
13
11
  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); }
14
12
  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; }
13
+ // import useRemoveExistingLayers, {
14
+ // removeFromMap,
15
+ // } from 'src/hooks/useRemoveExistingLayers';
16
+ //import 'leaflet.featuregroup.subgroup';
15
17
  function mapStateToProps(state) {
16
18
  var events_data = state.events_data;
17
19
  return {
@@ -21,29 +23,30 @@ function mapStateToProps(state) {
21
23
  var PointMarker = function PointMarker(props) {
22
24
  var map = props.map,
23
25
  point = props.point,
24
- rerender = props.rerender;
25
- (0, _useRemoveExistingLayers.default)(map, point, 'Point');
26
- (0, _useRemoveExistingLayers.default)(map, point, 'Observation');
27
- (0, _useRemoveExistingLayers.default)(map, point, 'Sampling');
28
- (0, _useRemoveExistingLayers.default)(map, point, 'IconNumber');
26
+ rerender = props.rerender,
27
+ layerGroup = props.layerGroup;
28
+
29
+ // useRemoveExistingLayers(map, point, 'Point');
30
+ // useRemoveExistingLayers(map, point, 'Observation');
31
+ // useRemoveExistingLayers(map, point, 'Sampling');
32
+ // useRemoveExistingLayers(map, point, 'IconNumber');
33
+
29
34
  var renderLogic = function renderLogic() {
30
35
  var markerLocation = [point['latitude'], point['longitude']];
31
36
  if (markerLocation[0] === null) return;
32
- (0, _PointUtils.createManholePoint)(markerLocation, point, map);
33
- (0, _PointUtils.createBubblePoint)(markerLocation, point, map);
37
+ (0, _PointUtils.createBubblePoint)(markerLocation, point, map, null, layerGroup);
34
38
  };
35
39
  (0, _react.useEffect)(function () {
36
40
  renderLogic();
37
- (0, _MapUtils.iconZoomControl)(map);
38
- return function cleanup() {
39
- // UNBIND POPUP
40
- (0, _useRemoveExistingLayers.removeFromMap)(map, point, 'Observation');
41
- (0, _useRemoveExistingLayers.removeFromMap)(map, point, 'Point');
42
- (0, _useRemoveExistingLayers.removeFromMap)(map, point, 'Sampling');
43
- (0, _useRemoveExistingLayers.removeFromMap)(map, point, 'IconNumber');
44
- };
41
+ // return function cleanup() {
42
+ // // UNBIND POPUP
43
+ // removeFromMap(map, point, 'Observation');
44
+ // removeFromMap(map, point, 'Point');
45
+ // removeFromMap(map, point, 'Sampling');
46
+ // removeFromMap(map, point, 'IconNumber');
47
+ // };
45
48
  }, [rerender]);
46
- return /*#__PURE__*/_react.default.createElement("div", null);
49
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
47
50
  };
48
51
  var connector = (0, _reactRedux.connect)(mapStateToProps);
49
52
  var _default = connector( /*#__PURE__*/_react.default.memo(PointMarker, function (prevProps, nextProps) {
@@ -53,4 +56,4 @@ var _default = connector( /*#__PURE__*/_react.default.memo(PointMarker, function
53
56
  return true;
54
57
  }));
55
58
  exports.default = _default;
56
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RSZWR1eCIsIl91c2VSZW1vdmVFeGlzdGluZ0xheWVycyIsIl9Qb2ludFV0aWxzIiwiX01hcFV0aWxzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJtYXBTdGF0ZVRvUHJvcHMiLCJzdGF0ZSIsImV2ZW50c19kYXRhIiwiUG9pbnRNYXJrZXIiLCJwcm9wcyIsIm1hcCIsInBvaW50IiwicmVyZW5kZXIiLCJ1c2VSZW1vdmVFeGlzdGluZ0xheWVycyIsInJlbmRlckxvZ2ljIiwibWFya2VyTG9jYXRpb24iLCJjcmVhdGVNYW5ob2xlUG9pbnQiLCJjcmVhdGVCdWJibGVQb2ludCIsInVzZUVmZmVjdCIsImljb25ab29tQ29udHJvbCIsImNsZWFudXAiLCJyZW1vdmVGcm9tTWFwIiwiY3JlYXRlRWxlbWVudCIsImNvbm5lY3RvciIsImNvbm5lY3QiLCJfZGVmYXVsdCIsIlJlYWN0IiwibWVtbyIsInByZXZQcm9wcyIsIm5leHRQcm9wcyIsImZvY3VzZWRFdmVudCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvV2lkZ2V0cy9NYXAvcG9pbnRzL1BvaW50TWFya2VyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY29ubmVjdCwgQ29ubmVjdGVkUHJvcHMgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgdXNlUmVtb3ZlRXhpc3RpbmdMYXllcnMsIHtcbiAgcmVtb3ZlRnJvbU1hcCxcbn0gZnJvbSAnc3JjL2hvb2tzL3VzZVJlbW92ZUV4aXN0aW5nTGF5ZXJzJztcbmltcG9ydCB7IElBcHBTdGF0ZSB9IGZyb20gJ3NyYy9tb2RlbHMvSUFwcFN0YXRlJztcbmltcG9ydCB7IElQb2ludCB9IGZyb20gJ3NyYy9zdG9yZS9wb2ludHMvbW9kZWxzL0lQb2ludCc7XG5pbXBvcnQgeyBjcmVhdGVCdWJibGVQb2ludCwgY3JlYXRlTWFuaG9sZVBvaW50IH0gZnJvbSAnLi9Qb2ludFV0aWxzJztcbmltcG9ydCB7IExhdExuZ1R1cGxlIH0gZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgeyBpY29uWm9vbUNvbnRyb2wgfSBmcm9tICcuLi9NYXBVdGlscyc7XG5cbmZ1bmN0aW9uIG1hcFN0YXRlVG9Qcm9wcyhzdGF0ZTogSUFwcFN0YXRlKSB7XG4gIGNvbnN0IHsgZXZlbnRzX2RhdGEgfSA9IHN0YXRlO1xuXG4gIHJldHVybiB7XG4gICAgZXZlbnRzX2RhdGEsXG4gIH07XG59XG5cbnR5cGUgUHJvcHMgPSBDb25uZWN0ZWRQcm9wczx0eXBlb2YgY29ubmVjdG9yPiAmIHtcbiAgbWFwOiBhbnk7XG4gIHBvaW50OiBJUG9pbnQ7XG4gIHJlcmVuZGVyOiBib29sZWFuO1xufTtcblxuY29uc3QgUG9pbnRNYXJrZXI6IFJlYWN0LkZDPFByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IG1hcCwgcG9pbnQsIHJlcmVuZGVyIH0gPSBwcm9wcztcblxuICB1c2VSZW1vdmVFeGlzdGluZ0xheWVycyhtYXAsIHBvaW50LCAnUG9pbnQnKTtcbiAgdXNlUmVtb3ZlRXhpc3RpbmdMYXllcnMobWFwLCBwb2ludCwgJ09ic2VydmF0aW9uJyk7XG4gIHVzZVJlbW92ZUV4aXN0aW5nTGF5ZXJzKG1hcCwgcG9pbnQsICdTYW1wbGluZycpO1xuICB1c2VSZW1vdmVFeGlzdGluZ0xheWVycyhtYXAsIHBvaW50LCAnSWNvbk51bWJlcicpO1xuXG4gIGNvbnN0IHJlbmRlckxvZ2ljID0gKCkgPT4ge1xuICAgIGxldCBtYXJrZXJMb2NhdGlvbjogTGF0TG5nVHVwbGUgPSBbcG9pbnRbJ2xhdGl0dWRlJ10sIHBvaW50Wydsb25naXR1ZGUnXV07XG4gICAgaWYgKG1hcmtlckxvY2F0aW9uWzBdID09PSBudWxsKSByZXR1cm47XG5cbiAgICBjcmVhdGVNYW5ob2xlUG9pbnQobWFya2VyTG9jYXRpb24sIHBvaW50LCBtYXApO1xuICAgIGNyZWF0ZUJ1YmJsZVBvaW50KG1hcmtlckxvY2F0aW9uLCBwb2ludCwgbWFwKTtcbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJlbmRlckxvZ2ljKCk7XG4gICAgaWNvblpvb21Db250cm9sKG1hcCk7XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gY2xlYW51cCgpIHtcbiAgICAgIC8vIFVOQklORCBQT1BVUFxuICAgICAgcmVtb3ZlRnJvbU1hcChtYXAsIHBvaW50LCAnT2JzZXJ2YXRpb24nKTtcbiAgICAgIHJlbW92ZUZyb21NYXAobWFwLCBwb2ludCwgJ1BvaW50Jyk7XG4gICAgICByZW1vdmVGcm9tTWFwKG1hcCwgcG9pbnQsICdTYW1wbGluZycpO1xuICAgICAgcmVtb3ZlRnJvbU1hcChtYXAsIHBvaW50LCAnSWNvbk51bWJlcicpO1xuICAgIH07XG4gIH0sIFtyZXJlbmRlcl0pO1xuXG4gIHJldHVybiA8ZGl2PjwvZGl2Pjtcbn07XG5cbmNvbnN0IGNvbm5lY3RvciA9IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzKTtcbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3RvcihcbiAgUmVhY3QubWVtbyhQb2ludE1hcmtlciwgKHByZXZQcm9wcywgbmV4dFByb3BzKSA9PiB7XG4gICAgaWYgKFxuICAgICAgcHJldlByb3BzLmV2ZW50c19kYXRhLmZvY3VzZWRFdmVudCAhPT0gbmV4dFByb3BzLmV2ZW50c19kYXRhLmZvY3VzZWRFdmVudFxuICAgICkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9KSxcbik7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxXQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSx3QkFBQSxHQUFBSCx1QkFBQSxDQUFBQyxPQUFBO0FBS0EsSUFBQUcsV0FBQSxHQUFBSCxPQUFBO0FBRUEsSUFBQUksU0FBQSxHQUFBSixPQUFBO0FBQThDLFNBQUFLLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBUCx3QkFBQVcsR0FBQSxFQUFBSixXQUFBLFNBQUFBLFdBQUEsSUFBQUksR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsV0FBQUQsR0FBQSxRQUFBQSxHQUFBLGFBQUFFLE9BQUEsQ0FBQUYsR0FBQSx5QkFBQUEsR0FBQSw0QkFBQUcsT0FBQSxFQUFBSCxHQUFBLFVBQUFJLEtBQUEsR0FBQVQsd0JBQUEsQ0FBQUMsV0FBQSxPQUFBUSxLQUFBLElBQUFBLEtBQUEsQ0FBQUMsR0FBQSxDQUFBTCxHQUFBLFlBQUFJLEtBQUEsQ0FBQUUsR0FBQSxDQUFBTixHQUFBLFNBQUFPLE1BQUEsV0FBQUMscUJBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsR0FBQSxJQUFBWixHQUFBLFFBQUFZLEdBQUEsa0JBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWYsR0FBQSxFQUFBWSxHQUFBLFNBQUFJLElBQUEsR0FBQVIscUJBQUEsR0FB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
59
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RSZWR1eCIsIl9Qb2ludFV0aWxzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJtYXBTdGF0ZVRvUHJvcHMiLCJzdGF0ZSIsImV2ZW50c19kYXRhIiwiUG9pbnRNYXJrZXIiLCJwcm9wcyIsIm1hcCIsInBvaW50IiwicmVyZW5kZXIiLCJsYXllckdyb3VwIiwicmVuZGVyTG9naWMiLCJtYXJrZXJMb2NhdGlvbiIsImNyZWF0ZUJ1YmJsZVBvaW50IiwidXNlRWZmZWN0IiwiY3JlYXRlRWxlbWVudCIsIkZyYWdtZW50IiwiY29ubmVjdG9yIiwiY29ubmVjdCIsIl9kZWZhdWx0IiwiUmVhY3QiLCJtZW1vIiwicHJldlByb3BzIiwibmV4dFByb3BzIiwiZm9jdXNlZEV2ZW50IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9wb2ludHMvUG9pbnRNYXJrZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjb25uZWN0LCBDb25uZWN0ZWRQcm9wcyB9IGZyb20gJ3JlYWN0LXJlZHV4Jztcbi8vIGltcG9ydCB1c2VSZW1vdmVFeGlzdGluZ0xheWVycywge1xuLy8gICByZW1vdmVGcm9tTWFwLFxuLy8gfSBmcm9tICdzcmMvaG9va3MvdXNlUmVtb3ZlRXhpc3RpbmdMYXllcnMnO1xuaW1wb3J0IHsgSUFwcFN0YXRlIH0gZnJvbSAnc3JjL21vZGVscy9JQXBwU3RhdGUnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCB7IGNyZWF0ZUJ1YmJsZVBvaW50IH0gZnJvbSAnLi9Qb2ludFV0aWxzJztcbmltcG9ydCB7IExhdExuZ1R1cGxlIH0gZnJvbSAnbGVhZmxldCc7XG4vL2ltcG9ydCAnbGVhZmxldC5mZWF0dXJlZ3JvdXAuc3ViZ3JvdXAnO1xuXG5mdW5jdGlvbiBtYXBTdGF0ZVRvUHJvcHMoc3RhdGU6IElBcHBTdGF0ZSkge1xuICBjb25zdCB7IGV2ZW50c19kYXRhIH0gPSBzdGF0ZTtcblxuICByZXR1cm4ge1xuICAgIGV2ZW50c19kYXRhLFxuICB9O1xufVxuXG50eXBlIFByb3BzID0gQ29ubmVjdGVkUHJvcHM8dHlwZW9mIGNvbm5lY3Rvcj4gJiB7XG4gIG1hcDogYW55O1xuICBwb2ludDogSVBvaW50O1xuICByZXJlbmRlcjogc3RyaW5nO1xuICBsYXllckdyb3VwOiBhbnk7XG59O1xuXG5jb25zdCBQb2ludE1hcmtlcjogUmVhY3QuRkM8UHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgbWFwLCBwb2ludCwgcmVyZW5kZXIsIGxheWVyR3JvdXAgfSA9IHByb3BzO1xuXG4gIC8vIHVzZVJlbW92ZUV4aXN0aW5nTGF5ZXJzKG1hcCwgcG9pbnQsICdQb2ludCcpO1xuICAvLyB1c2VSZW1vdmVFeGlzdGluZ0xheWVycyhtYXAsIHBvaW50LCAnT2JzZXJ2YXRpb24nKTtcbiAgLy8gdXNlUmVtb3ZlRXhpc3RpbmdMYXllcnMobWFwLCBwb2ludCwgJ1NhbXBsaW5nJyk7XG4gIC8vIHVzZVJlbW92ZUV4aXN0aW5nTGF5ZXJzKG1hcCwgcG9pbnQsICdJY29uTnVtYmVyJyk7XG5cbiAgY29uc3QgcmVuZGVyTG9naWMgPSAoKSA9PiB7XG4gICAgbGV0IG1hcmtlckxvY2F0aW9uOiBMYXRMbmdUdXBsZSA9IFtwb2ludFsnbGF0aXR1ZGUnXSwgcG9pbnRbJ2xvbmdpdHVkZSddXTtcbiAgICBpZiAobWFya2VyTG9jYXRpb25bMF0gPT09IG51bGwpIHJldHVybjtcbiAgICBjcmVhdGVCdWJibGVQb2ludChtYXJrZXJMb2NhdGlvbiwgcG9pbnQsIG1hcCwgbnVsbCwgbGF5ZXJHcm91cCk7XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZW5kZXJMb2dpYygpO1xuICAgIC8vIHJldHVybiBmdW5jdGlvbiBjbGVhbnVwKCkge1xuICAgIC8vICAgLy8gVU5CSU5EIFBPUFVQXG4gICAgLy8gICByZW1vdmVGcm9tTWFwKG1hcCwgcG9pbnQsICdPYnNlcnZhdGlvbicpO1xuICAgIC8vICAgcmVtb3ZlRnJvbU1hcChtYXAsIHBvaW50LCAnUG9pbnQnKTtcbiAgICAvLyAgIHJlbW92ZUZyb21NYXAobWFwLCBwb2ludCwgJ1NhbXBsaW5nJyk7XG4gICAgLy8gICByZW1vdmVGcm9tTWFwKG1hcCwgcG9pbnQsICdJY29uTnVtYmVyJyk7XG4gICAgLy8gfTtcbiAgfSwgW3JlcmVuZGVyXSk7XG5cbiAgcmV0dXJuIDw+PC8+O1xufTtcblxuY29uc3QgY29ubmVjdG9yID0gY29ubmVjdChtYXBTdGF0ZVRvUHJvcHMpO1xuZXhwb3J0IGRlZmF1bHQgY29ubmVjdG9yKFxuICBSZWFjdC5tZW1vKFBvaW50TWFya2VyLCAocHJldlByb3BzLCBuZXh0UHJvcHMpID0+IHtcbiAgICBpZiAoXG4gICAgICBwcmV2UHJvcHMuZXZlbnRzX2RhdGEuZm9jdXNlZEV2ZW50ICE9PSBuZXh0UHJvcHMuZXZlbnRzX2RhdGEuZm9jdXNlZEV2ZW50XG4gICAgKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH0pLFxuKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFB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
@@ -8,38 +8,87 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.PointMarkers = void 0;
9
9
  var _react = _interopRequireWildcard(require("react"));
10
10
  var _PointMarker = _interopRequireDefault(require("./PointMarker"));
11
+ var _PointUtils = require("./PointUtils");
11
12
  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); }
12
13
  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; }
13
14
  var PointMarkers = function PointMarkers(props) {
14
15
  var points = props.points,
15
16
  map = props.map,
16
- _props$includeUnmonit = props.includeUnmonitoredPoints,
17
- includeUnmonitoredPoints = _props$includeUnmonit === void 0 ? false : _props$includeUnmonit,
18
- _props$rerender = props.rerender,
19
- rerender = _props$rerender === void 0 ? false : _props$rerender;
17
+ factoriesGroup = props.factoriesGroup,
18
+ wwtpsGroup = props.wwtpsGroup,
19
+ collectorsGroup = props.collectorsGroup,
20
+ rerender = props.rerender,
21
+ _props$forEventsView = props.forEventsView,
22
+ forEventsView = _props$forEventsView === void 0 ? false : _props$forEventsView;
23
+
24
+ //Handle the mouse click here one for all instead one by one
25
+ // factoriesClusterGroup.on('click', function (a) {
26
+ // console.log('currentSrc', a.originalEvent.target.currentSrc);
27
+ // console.log('src', a.originalEvent.target.src);
28
+ // //a.originalEvent.target.src = '';
29
+ // //Change icon here
30
+ // });
31
+ // console.log('LayerGroups', factoriesClusterGroup);
32
+
20
33
  var isPointBelongToGroupTypes = function isPointBelongToGroupTypes(point) {
21
- return point.group.type === 'Groups::WastewaterTreatmentPlant' || point.group.type === 'Groups::Factory' && point.has_device || point.group.type === 'Groups::Collectors' && point.has_device || point.group.type === 'Groups::PumpStation' && point.has_device;
22
- };
23
- var includeUnmonitoredPointsLogic = function includeUnmonitoredPointsLogic(point) {
24
- return includeUnmonitoredPoints ? point.part_of_monitored_path : false;
34
+ 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;
25
35
  };
26
36
  var filterStatement = function filterStatement(point) {
27
- return includeUnmonitoredPointsLogic(point) || isPointBelongToGroupTypes(point) || point.group.type === 'Groups::WastewaterTreatmentPlant';
37
+ return isPointBelongToGroupTypes(point);
28
38
  };
29
39
  var filteredPoints = function filteredPoints() {
30
40
  return points.filter(function (point) {
31
41
  return filterStatement(point);
32
42
  });
33
43
  };
34
- (0, _react.useEffect)(function () {}, [rerender]);
35
- return /*#__PURE__*/_react.default.createElement("div", null, points.length !== 0 && filteredPoints().map(function (point) {
44
+ (0, _react.useEffect)(function () {
45
+ if (map) {
46
+ if (forEventsView) {
47
+ (0, _PointUtils.addLayerGroup)(map, factoriesGroup);
48
+ (0, _PointUtils.addLayerGroup)(map, wwtpsGroup);
49
+ (0, _PointUtils.addLayerGroup)(map, collectorsGroup);
50
+ } else {
51
+ switch (rerender) {
52
+ case 'XLarge':
53
+ (0, _PointUtils.addLayerGroup)(map, factoriesGroup);
54
+ (0, _PointUtils.addLayerGroup)(map, wwtpsGroup);
55
+ (0, _PointUtils.removeLayerGroup)(map, collectorsGroup);
56
+ break;
57
+ case 'Large':
58
+ (0, _PointUtils.addLayerGroup)(map, factoriesGroup);
59
+ (0, _PointUtils.addLayerGroup)(map, wwtpsGroup);
60
+ (0, _PointUtils.removeLayerGroup)(map, collectorsGroup);
61
+ break;
62
+ case 'MLarge':
63
+ (0, _PointUtils.addLayerGroup)(map, factoriesGroup);
64
+ (0, _PointUtils.addLayerGroup)(map, wwtpsGroup);
65
+ (0, _PointUtils.removeLayerGroup)(map, collectorsGroup);
66
+ break;
67
+ case 'Medium':
68
+ (0, _PointUtils.addLayerGroup)(map, factoriesGroup);
69
+ (0, _PointUtils.addLayerGroup)(map, wwtpsGroup);
70
+ (0, _PointUtils.addLayerGroup)(map, collectorsGroup);
71
+ break;
72
+ case 'Small':
73
+ (0, _PointUtils.addLayerGroup)(map, factoriesGroup);
74
+ (0, _PointUtils.addLayerGroup)(map, wwtpsGroup);
75
+ (0, _PointUtils.addLayerGroup)(map, collectorsGroup);
76
+ break;
77
+ default:
78
+ break;
79
+ }
80
+ }
81
+ }
82
+ }, [rerender]);
83
+ return /*#__PURE__*/_react.default.createElement("div", null, !map.hasLayer(factoriesGroup) && !map.hasLayer(wwtpsGroup) && !map.hasLayer(collectorsGroup) && points.length !== 0 && filteredPoints().map(function (point) {
36
84
  return point.latitude && point.longitude && /*#__PURE__*/_react.default.createElement(_PointMarker.default, {
37
85
  map: map,
38
86
  point: point,
39
87
  key: point.id,
40
- rerender: rerender
88
+ rerender: rerender,
89
+ layerGroup: point.group.type === 'Groups::Factory' ? factoriesGroup : point.group.type === 'Groups::WastewaterTreatmentPlant' ? wwtpsGroup : collectorsGroup
41
90
  });
42
91
  }));
43
92
  };
44
93
  exports.PointMarkers = PointMarkers;
45
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfUG9pbnRNYXJrZXIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJQb2ludE1hcmtlcnMiLCJwcm9wcyIsInBvaW50cyIsIm1hcCIsIl9wcm9wcyRpbmNsdWRlVW5tb25pdCIsImluY2x1ZGVVbm1vbml0b3JlZFBvaW50cyIsIl9wcm9wcyRyZXJlbmRlciIsInJlcmVuZGVyIiwiaXNQb2ludEJlbG9uZ1RvR3JvdXBUeXBlcyIsInBvaW50IiwiZ3JvdXAiLCJ0eXBlIiwiaGFzX2RldmljZSIsImluY2x1ZGVVbm1vbml0b3JlZFBvaW50c0xvZ2ljIiwicGFydF9vZl9tb25pdG9yZWRfcGF0aCIsImZpbHRlclN0YXRlbWVudCIsImZpbHRlcmVkUG9pbnRzIiwiZmlsdGVyIiwidXNlRWZmZWN0IiwiY3JlYXRlRWxlbWVudCIsImxlbmd0aCIsImxhdGl0dWRlIiwibG9uZ2l0dWRlIiwiaWQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL1dpZGdldHMvTWFwL3BvaW50cy9Qb2ludE1hcmtlcnMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdzcmMvc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnQnO1xuaW1wb3J0IFBvaW50TWFya2VyIGZyb20gJy4vUG9pbnRNYXJrZXInO1xuXG50eXBlIFByb3BzID0ge1xuICBtYXA6IGFueTtcbiAgcG9pbnRzOiBhbnk7XG4gIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50czogYm9vbGVhbjtcbiAgcmVyZW5kZXI6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgY29uc3QgUG9pbnRNYXJrZXJzOiBSZWFjdC5GQzxQcm9wcz4gPSAocHJvcHMpID0+IHtcbiAgY29uc3Qge1xuICAgIHBvaW50cyxcbiAgICBtYXAsXG4gICAgaW5jbHVkZVVubW9uaXRvcmVkUG9pbnRzID0gZmFsc2UsXG4gICAgcmVyZW5kZXIgPSBmYWxzZSxcbiAgfSA9IHByb3BzO1xuXG4gIGNvbnN0IGlzUG9pbnRCZWxvbmdUb0dyb3VwVHlwZXMgPSAocG9pbnQ6IElQb2ludCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICBwb2ludC5ncm91cC50eXBlID09PSAnR3JvdXBzOjpXYXN0ZXdhdGVyVHJlYXRtZW50UGxhbnQnIHx8XG4gICAgICAocG9pbnQuZ3JvdXAudHlwZSA9PT0gJ0dyb3Vwczo6RmFjdG9yeScgJiYgcG9pbnQuaGFzX2RldmljZSkgfHxcbiAgICAgIChwb2ludC5ncm91cC50eXBlID09PSAnR3JvdXBzOjpDb2xsZWN0b3JzJyAmJiBwb2ludC5oYXNfZGV2aWNlKSB8fFxuICAgICAgKHBvaW50Lmdyb3VwLnR5cGUgPT09ICdHcm91cHM6OlB1bXBTdGF0aW9uJyAmJiBwb2ludC5oYXNfZGV2aWNlKVxuICAgICk7XG4gIH07XG5cbiAgY29uc3QgaW5jbHVkZVVubW9uaXRvcmVkUG9pbnRzTG9naWMgPSAocG9pbnQ6IElQb2ludCkgPT4ge1xuICAgIHJldHVybiBpbmNsdWRlVW5tb25pdG9yZWRQb2ludHMgPyBwb2ludC5wYXJ0X29mX21vbml0b3JlZF9wYXRoIDogZmFsc2U7XG4gIH07XG5cbiAgY29uc3QgZmlsdGVyU3RhdGVtZW50ID0gKHBvaW50KSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50c0xvZ2ljKHBvaW50KSB8fFxuICAgICAgaXNQb2ludEJlbG9uZ1RvR3JvdXBUeXBlcyhwb2ludCkgfHxcbiAgICAgIHBvaW50Lmdyb3VwLnR5cGUgPT09ICdHcm91cHM6Oldhc3Rld2F0ZXJUcmVhdG1lbnRQbGFudCdcbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IGZpbHRlcmVkUG9pbnRzID0gKCkgPT4ge1xuICAgIHJldHVybiBwb2ludHMuZmlsdGVyKChwb2ludDogSVBvaW50KSA9PiBmaWx0ZXJTdGF0ZW1lbnQocG9pbnQpKTtcbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge30sIFtyZXJlbmRlcl0pO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdj5cbiAgICAgIHtwb2ludHMubGVuZ3RoICE9PSAwICYmXG4gICAgICAgIGZpbHRlcmVkUG9pbnRzKCkubWFwKFxuICAgICAgICAgIChwb2ludDogSVBvaW50KSA9PlxuICAgICAgICAgICAgcG9pbnQubGF0aXR1ZGUgJiZcbiAgICAgICAgICAgIHBvaW50LmxvbmdpdHVkZSAmJiAoXG4gICAgICAgICAgICAgIDxQb2ludE1hcmtlclxuICAgICAgICAgICAgICAgIG1hcD17bWFwfVxuICAgICAgICAgICAgICAgIHBvaW50PXtwb2ludH1cbiAgICAgICAgICAgICAgICBrZXk9e3BvaW50LmlkfVxuICAgICAgICAgICAgICAgIHJlcmVuZGVyPXtyZXJlbmRlcn1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICksXG4gICAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLFlBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUF3QyxTQUFBRyx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtD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
94
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfUG9pbnRNYXJrZXIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1BvaW50VXRpbHMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIlBvaW50TWFya2VycyIsInByb3BzIiwicG9pbnRzIiwibWFwIiwiZmFjdG9yaWVzR3JvdXAiLCJ3d3Rwc0dyb3VwIiwiY29sbGVjdG9yc0dyb3VwIiwicmVyZW5kZXIiLCJfcHJvcHMkZm9yRXZlbnRzVmlldyIsImZvckV2ZW50c1ZpZXciLCJpc1BvaW50QmVsb25nVG9Hcm91cFR5cGVzIiwicG9pbnQiLCJncm91cCIsInR5cGUiLCJoYXNfZGV2aWNlIiwiZmlsdGVyU3RhdGVtZW50IiwiZmlsdGVyZWRQb2ludHMiLCJmaWx0ZXIiLCJ1c2VFZmZlY3QiLCJhZGRMYXllckdyb3VwIiwicmVtb3ZlTGF5ZXJHcm91cCIsImNyZWF0ZUVsZW1lbnQiLCJoYXNMYXllciIsImxlbmd0aCIsImxhdGl0dWRlIiwibG9uZ2l0dWRlIiwiaWQiLCJsYXllckdyb3VwIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9wb2ludHMvUG9pbnRNYXJrZXJzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCBQb2ludE1hcmtlciBmcm9tICcuL1BvaW50TWFya2VyJztcbmltcG9ydCB7IGFkZExheWVyR3JvdXAsIHJlbW92ZUxheWVyR3JvdXAgfSBmcm9tICcuL1BvaW50VXRpbHMnO1xuXG50eXBlIFByb3BzID0ge1xuICBtYXA6IGFueTtcbiAgcG9pbnRzOiBhbnk7XG4gIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50czogYm9vbGVhbjtcbiAgcmVyZW5kZXI6IHN0cmluZztcbiAgZmFjdG9yaWVzR3JvdXA6IGFueTtcbiAgd3d0cHNHcm91cDogYW55O1xuICBjb2xsZWN0b3JzR3JvdXA6IGFueTtcbiAgZm9yRXZlbnRzVmlldzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBjb25zdCBQb2ludE1hcmtlcnM6IFJlYWN0LkZDPFByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7XG4gICAgcG9pbnRzLFxuICAgIG1hcCxcbiAgICBmYWN0b3JpZXNHcm91cCxcbiAgICB3d3Rwc0dyb3VwLFxuICAgIGNvbGxlY3RvcnNHcm91cCxcbiAgICByZXJlbmRlcixcbiAgICBmb3JFdmVudHNWaWV3ID0gZmFsc2UsXG4gIH0gPSBwcm9wcztcblxuICAvL0hhbmRsZSB0aGUgbW91c2UgY2xpY2sgaGVyZSBvbmUgZm9yIGFsbCBpbnN0ZWFkIG9uZSBieSBvbmVcbiAgLy8gZmFjdG9yaWVzQ2x1c3Rlckdyb3VwLm9uKCdjbGljaycsIGZ1bmN0aW9uIChhKSB7XG4gIC8vICAgY29uc29sZS5sb2coJ2N1cnJlbnRTcmMnLCBhLm9yaWdpbmFsRXZlbnQudGFyZ2V0LmN1cnJlbnRTcmMpO1xuICAvLyAgIGNvbnNvbGUubG9nKCdzcmMnLCBhLm9yaWdpbmFsRXZlbnQudGFyZ2V0LnNyYyk7XG4gIC8vICAgLy9hLm9yaWdpbmFsRXZlbnQudGFyZ2V0LnNyYyA9ICcnO1xuICAvLyAgIC8vQ2hhbmdlIGljb24gaGVyZVxuICAvLyB9KTtcbiAgLy8gY29uc29sZS5sb2coJ0xheWVyR3JvdXBzJywgZmFjdG9yaWVzQ2x1c3Rlckdyb3VwKTtcblxuICBjb25zdCBpc1BvaW50QmVsb25nVG9Hcm91cFR5cGVzID0gKHBvaW50OiBJUG9pbnQpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgcG9pbnQuZ3JvdXAudHlwZSA9PT0gJ0dyb3Vwczo6V2FzdGV3YXRlclRyZWF0bWVudFBsYW50JyB8fFxuICAgICAgcG9pbnQuZ3JvdXAudHlwZSA9PT0gJ0dyb3Vwczo6RmFjdG9yeScgfHxcbiAgICAgIChwb2ludC5ncm91cC50eXBlID09PSAnR3JvdXBzOjpDb2xsZWN0b3JzJyAmJiBwb2ludC5oYXNfZGV2aWNlKSB8fFxuICAgICAgKHBvaW50Lmdyb3VwLnR5cGUgPT09ICdHcm91cHM6OlB1bXBTdGF0aW9uJyAmJiBwb2ludC5oYXNfZGV2aWNlKVxuICAgICk7XG4gIH07XG5cbiAgY29uc3QgZmlsdGVyU3RhdGVtZW50ID0gKHBvaW50KSA9PiB7XG4gICAgcmV0dXJuIGlzUG9pbnRCZWxvbmdUb0dyb3VwVHlwZXMocG9pbnQpO1xuICB9O1xuXG4gIGNvbnN0IGZpbHRlcmVkUG9pbnRzID0gKCkgPT4ge1xuICAgIHJldHVybiBwb2ludHMuZmlsdGVyKChwb2ludDogSVBvaW50KSA9PiBmaWx0ZXJTdGF0ZW1lbnQocG9pbnQpKTtcbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChtYXApIHtcbiAgICAgIGlmIChmb3JFdmVudHNWaWV3KSB7XG4gICAgICAgIGFkZExheWVyR3JvdXAobWFwLCBmYWN0b3JpZXNHcm91cCk7XG4gICAgICAgIGFkZExheWVyR3JvdXAobWFwLCB3d3Rwc0dyb3VwKTtcbiAgICAgICAgYWRkTGF5ZXJHcm91cChtYXAsIGNvbGxlY3RvcnNHcm91cCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzd2l0Y2ggKHJlcmVuZGVyKSB7XG4gICAgICAgICAgY2FzZSAnWExhcmdlJzpcbiAgICAgICAgICAgIGFkZExheWVyR3JvdXAobWFwLCBmYWN0b3JpZXNHcm91cCk7XG4gICAgICAgICAgICBhZGRMYXllckdyb3VwKG1hcCwgd3d0cHNHcm91cCk7XG4gICAgICAgICAgICByZW1vdmVMYXllckdyb3VwKG1hcCwgY29sbGVjdG9yc0dyb3VwKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ0xhcmdlJzpcbiAgICAgICAgICAgIGFkZExheWVyR3JvdXAobWFwLCBmYWN0b3JpZXNHcm91cCk7XG4gICAgICAgICAgICBhZGRMYXllckdyb3VwKG1hcCwgd3d0cHNHcm91cCk7XG4gICAgICAgICAgICByZW1vdmVMYXllckdyb3VwKG1hcCwgY29sbGVjdG9yc0dyb3VwKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ01MYXJnZSc6XG4gICAgICAgICAgICBhZGRMYXllckdyb3VwKG1hcCwgZmFjdG9yaWVzR3JvdXApO1xuICAgICAgICAgICAgYWRkTGF5ZXJHcm91cChtYXAsIHd3dHBzR3JvdXApO1xuICAgICAgICAgICAgcmVtb3ZlTGF5ZXJHcm91cChtYXAsIGNvbGxlY3RvcnNHcm91cCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdNZWRpdW0nOlxuICAgICAgICAgICAgYWRkTGF5ZXJHcm91cChtYXAsIGZhY3Rvcmllc0dyb3VwKTtcbiAgICAgICAgICAgIGFkZExheWVyR3JvdXAobWFwLCB3d3Rwc0dyb3VwKTtcbiAgICAgICAgICAgIGFkZExheWVyR3JvdXAobWFwLCBjb2xsZWN0b3JzR3JvdXApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnU21hbGwnOlxuICAgICAgICAgICAgYWRkTGF5ZXJHcm91cChtYXAsIGZhY3Rvcmllc0dyb3VwKTtcbiAgICAgICAgICAgIGFkZExheWVyR3JvdXAobWFwLCB3d3Rwc0dyb3VwKTtcbiAgICAgICAgICAgIGFkZExheWVyR3JvdXAobWFwLCBjb2xsZWN0b3JzR3JvdXApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LCBbcmVyZW5kZXJdKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXY+XG4gICAgICB7IW1hcC5oYXNMYXllcihmYWN0b3JpZXNHcm91cCkgJiZcbiAgICAgICAgIW1hcC5oYXNMYXllcih3d3Rwc0dyb3VwKSAmJlxuICAgICAgICAhbWFwLmhhc0xheWVyKGNvbGxlY3RvcnNHcm91cCkgJiZcbiAgICAgICAgcG9pbnRzLmxlbmd0aCAhPT0gMCAmJlxuICAgICAgICBmaWx0ZXJlZFBvaW50cygpLm1hcChcbiAgICAgICAgICAocG9pbnQ6IElQb2ludCkgPT5cbiAgICAgICAgICAgIHBvaW50LmxhdGl0dWRlICYmXG4gICAgICAgICAgICBwb2ludC5sb25naXR1ZGUgJiYgKFxuICAgICAgICAgICAgICA8UG9pbnRNYXJrZXJcbiAgICAgICAgICAgICAgICBtYXA9e21hcH1cbiAgICAgICAgICAgICAgICBwb2ludD17cG9pbnR9XG4gICAgICAgICAgICAgICAga2V5PXtwb2ludC5pZH1cbiAgICAgICAgICAgICAgICByZXJlbmRlcj17cmVyZW5kZXJ9XG4gICAgICAgICAgICAgICAgbGF5ZXJHcm91cD17XG4gICAgICAgICAgICAgICAgICBwb2ludC5ncm91cC50eXBlID09PSAnR3JvdXBzOjpGYWN0b3J5J1xuICAgICAgICAgICAgICAgICAgICA/IGZhY3Rvcmllc0dyb3VwXG4gICAgICAgICAgICAgICAgICAgIDogcG9pbnQuZ3JvdXAudHlwZSA9PT0gJ0dyb3Vwczo6V2FzdGV3YXRlclRyZWF0bWVudFBsYW50J1xuICAgICAgICAgICAgICAgICAgICA/IHd3dHBzR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgOiBjb2xsZWN0b3JzR3JvdXBcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApLFxuICAgICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxZQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxXQUFBLEdBQUFILE9BQUE7QUFBK0QsU0FBQUkseUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFBRSxnQkFBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFOLHdCQUFBVSxHQUFBLEVBQUFKLFdBQUEsU0FBQUEsV0FBQSxJQUFBSSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxXQUFBRCxHQUFBLFFBQUFBLEdBQUEsYUFBQUUsT0FBQSxDQUFBRixHQUFBLHlCQUFBQSxHQUFBLDRCQUFBRyxPQUFBLEVBQUFILEdBQUEsVUFBQUksS0FBQSxHQUFBVCx3QkFBQSxDQUFBQyxXQUFBLE9BQUFRLEtBQUEsSUFBQUEsS0FBQSxDQUFBQyxHQUFBLENBQUFMLEdBQUEsWUFBQUksS0FBQSxDQUFBRSxHQUFBLENBQUFOLEdBQUEsU0FBQU8sTUFBQSxXQUFBQyxxQkFBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxHQUFBLElBQUFaLEdBQUEsUUFBQVksR0FBQSxrQkFBQUgsTUFBQSxDQUFBSSxTQUFBLENBQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBZixHQUFBLEVBQUFZLEdBQUEsU0FBQUksSUFBQSxHQUFBUixxQkFBQSxHQUFBQyxNQUFBLENBQUFFLHdCQUFBLENBQUFYLEdBQUEsRUFBQVksR0FBQSxjQUFBSSxJQUFBLEtBQUFBLElBQUEsQ0FBQVYsR0FBQSxJQUFBVSxJQUFBLENBQUFDLEdBQUEsS0FBQVIsTUFBQSxDQUFBQyxjQUFBLENBQUFILE1BQUEsRUFBQUssR0FBQSxFQUFBSSxJQUFBLFlBQUFULE1BQUEsQ0FBQUssR0FBQSxJQUFBWixHQUFBLENBQUFZLEdBQUEsU0FBQUwsTUFBQSxDQUFBSixPQUFBLEdBQUFILEdBQUEsTUFBQUksS0FBQSxJQUFBQSxLQUFBLENBQUFhLEdBQUEsQ0FBQWpCLEdBQUEsRUFBQU8sTUFBQSxZQUFBQSxNQUFBO0FBYXhELElBQU1XLFlBQTZCLEdBQUcsU0FBaENBLFlBQTZCQSxDQUFJQyxLQUFLLEVBQUs7RUFDdEQsSUFDRUMsTUFBTSxHQU9KRCxLQUFLLENBUFBDLE1BQU07SUFDTkMsR0FBRyxHQU1ERixLQUFLLENBTlBFLEdBQUc7SUFDSEMsY0FBYyxHQUtaSCxLQUFLLENBTFBHLGNBQWM7SUFDZEMsVUFBVSxHQUlSSixLQUFLLENBSlBJLFVBQVU7SUFDVkMsZUFBZSxHQUdiTCxLQUFLLENBSFBLLGVBQWU7SUFDZkMsUUFBUSxHQUVOTixLQUFLLENBRlBNLFFBQVE7SUFBQUMsb0JBQUEsR0FFTlAsS0FBSyxDQURQUSxhQUFhO0lBQWJBLGFBQWEsR0FBQUQsb0JBQUEsY0FBRyxLQUFLLEdBQUFBLG9CQUFBOztFQUd2QjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztFQUVBLElBQU1FLHlCQUF5QixHQUFHLFNBQTVCQSx5QkFBeUJBLENBQUlDLEtBQWEsRUFBSztJQUNuRCxPQUNFQSxLQUFLLENBQUNDLEtBQUssQ0FBQ0MsSUFBSSxLQUFLLGtDQUFrQyxJQUN2REYsS0FBSyxDQUFDQyxLQUFLLENBQUNDLElBQUksS0FBSyxpQkFBaUIsSUFDckNGLEtBQUssQ0FBQ0MsS0FBSyxDQUFDQyxJQUFJLEtBQUssb0JBQW9CLElBQUlGLEtBQUssQ0FBQ0csVUFBVyxJQUM5REgsS0FBSyxDQUFDQyxLQUFLLENBQUNDLElBQUksS0FBSyxxQkFBcUIsSUFBSUYsS0FBSyxDQUFDRyxVQUFXO0VBRXBFLENBQUM7RUFFRCxJQUFNQyxlQUFlLEdBQUcsU0FBbEJBLGVBQWVBLENBQUlKLEtBQUssRUFBSztJQUNqQyxPQUFPRCx5QkFBeUIsQ0FBQ0MsS0FBSyxDQUFDO0VBQ3pDLENBQUM7RUFFRCxJQUFNSyxjQUFjLEdBQUcsU0FBakJBLGNBQWNBLENBQUEsRUFBUztJQUMzQixPQUFPZCxNQUFNLENBQUNlLE1BQU0sQ0FBQyxVQUFDTixLQUFhO01BQUEsT0FBS0ksZUFBZSxDQUFDSixLQUFLLENBQUM7SUFBQSxFQUFDO0VBQ2pFLENBQUM7RUFFRCxJQUFBTyxnQkFBUyxFQUFDLFlBQU07SUFDZCxJQUFJZixHQUFHLEVBQUU7TUFDUCxJQUFJTSxhQUFhLEVBQUU7UUFDakIsSUFBQVUseUJBQWEsRUFBQ2hCLEdBQUcsRUFBRUMsY0FBYyxDQUFDO1FBQ2xDLElBQUFlLHlCQUFhLEVBQUNoQixHQUFHLEVBQUVFLFVBQVUsQ0FBQztRQUM5QixJQUFBYyx5QkFBYSxFQUFDaEIsR0FBRyxFQUFFRyxlQUFlLENBQUM7TUFDckMsQ0FBQyxNQUFNO1FBQ0wsUUFBUUMsUUFBUTtVQUNkLEtBQUssUUFBUTtZQUNYLElBQUFZLHlCQUFhLEVBQUNoQixHQUFHLEVBQUVDLGNBQWMsQ0FBQztZQUNsQyxJQUFBZSx5QkFBYSxFQUFDaEIsR0FBRyxFQUFFRSxVQUFVLENBQUM7WUFDOUIsSUFBQWUsNEJBQWdCLEVBQUNqQixHQUFHLEVBQUVHLGVBQWUsQ0FBQztZQUN0QztVQUNGLEtBQUssT0FBTztZQUNWLElBQUFhLHlCQUFhLEVBQUNoQixHQUFHLEVBQUVDLGNBQWMsQ0FBQztZQUNsQyxJQUFBZSx5QkFBYSxFQUFDaEIsR0FBRyxFQUFFRSxVQUFVLENBQUM7WUFDOUIsSUFBQWUsNEJBQWdCLEVBQUNqQixHQUFHLEVBQUVHLGVBQWUsQ0FBQztZQUN0QztVQUNGLEtBQUssUUFBUTtZQUNYLElBQUFhLHlCQUFhLEVBQUNoQixHQUFHLEVBQUVDLGNBQWMsQ0FBQztZQUNsQyxJQUFBZSx5QkFBYSxFQUFDaEIsR0FBRyxFQUFFRSxVQUFVLENBQUM7WUFDOUIsSUFBQWUsNEJBQWdCLEVBQUNqQixHQUFHLEVBQUVHLGVBQWUsQ0FBQztZQUN0QztVQUNGLEtBQUssUUFBUTtZQUNYLElBQUFhLHlCQUFhLEVBQUNoQixHQUFHLEVBQUVDLGNBQWMsQ0FBQztZQUNsQyxJQUFBZSx5QkFBYSxFQUFDaEIsR0FBRyxFQUFFRSxVQUFVLENBQUM7WUFDOUIsSUFBQWMseUJBQWEsRUFBQ2hCLEdBQUcsRUFBRUcsZUFBZSxDQUFDO1lBQ25DO1VBQ0YsS0FBSyxPQUFPO1lBQ1YsSUFBQWEseUJBQWEsRUFBQ2hCLEdBQUcsRUFBRUMsY0FBYyxDQUFDO1lBQ2xDLElBQUFlLHlCQUFhLEVBQUNoQixHQUFHLEVBQUVFLFVBQVUsQ0FBQztZQUM5QixJQUFBYyx5QkFBYSxFQUFDaEIsR0FBRyxFQUFFRyxlQUFlLENBQUM7WUFDbkM7VUFDRjtZQUNFO1FBQ0o7TUFDRjtJQUNGO0VBQ0YsQ0FBQyxFQUFFLENBQUNDLFFBQVEsQ0FBQyxDQUFDO0VBRWQsb0JBQ0VwQyxNQUFBLENBQUFjLE9BQUEsQ0FBQW9DLGFBQUEsY0FDRyxDQUFDbEIsR0FBRyxDQUFDbUIsUUFBUSxDQUFDbEIsY0FBYyxDQUFDLElBQzVCLENBQUNELEdBQUcsQ0FBQ21CLFFBQVEsQ0FBQ2pCLFVBQVUsQ0FBQyxJQUN6QixDQUFDRixHQUFHLENBQUNtQixRQUFRLENBQUNoQixlQUFlLENBQUMsSUFDOUJKLE1BQU0sQ0FBQ3FCLE1BQU0sS0FBSyxDQUFDLElBQ25CUCxjQUFjLENBQUMsQ0FBQyxDQUFDYixHQUFHLENBQ2xCLFVBQUNRLEtBQWE7SUFBQSxPQUNaQSxLQUFLLENBQUNhLFFBQVEsSUFDZGIsS0FBSyxDQUFDYyxTQUFTLGlCQUNidEQsTUFBQSxDQUFBYyxPQUFBLENBQUFvQyxhQUFBLENBQUMvQyxZQUFBLENBQUFXLE9BQVc7TUFDVmtCLEdBQUcsRUFBRUEsR0FBSTtNQUNUUSxLQUFLLEVBQUVBLEtBQU07TUFDYmpCLEdBQUcsRUFBRWlCLEtBQUssQ0FBQ2UsRUFBRztNQUNkbkIsUUFBUSxFQUFFQSxRQUFTO01BQ25Cb0IsVUFBVSxFQUNSaEIsS0FBSyxDQUFDQyxLQUFLLENBQUNDLElBQUksS0FBSyxpQkFBaUIsR0FDbENULGNBQWMsR0FDZE8sS0FBSyxDQUFDQyxLQUFLLENBQUNDLElBQUksS0FBSyxrQ0FBa0MsR0FDdkRSLFVBQVUsR0FDVkM7SUFDTCxDQUNGLENBQ0Y7RUFBQSxDQUNMLENBQ0MsQ0FBQztBQUVWLENBQUM7QUFBQ3NCLE9BQUEsQ0FBQTVCLFlBQUEsR0FBQUEsWUFBQSJ9