@kando-env/kando-ui 1.2.458-alpha.2 → 1.2.458-alpha.21

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 (35) hide show
  1. package/lib/Widgets/MostPolluting/Factories/FactoryBox/CardLayout.js +21 -6
  2. package/lib/Widgets/MostPolluting/Factories/factoriesResponse.interface.js +1 -1
  3. package/lib/Widgets/MostPolluting/components/PotentialImpact.test.js +2 -1
  4. package/lib/Widgets/PotentialImpactSummary/Icon.js +2 -1
  5. package/lib/components/DamageType/DamageType.js +3 -3
  6. package/lib/components/Header/InfoBar/InfoBar.js +3 -3
  7. package/lib/components/Header/InfoBar/Search/SearchContainer.js +4 -3
  8. package/lib/components/TrendGraphNVL/TrendGraphNVL.js +2 -1
  9. package/lib/i18n/en.json +10 -3
  10. package/lib/i18n/fr.json +2 -1
  11. package/lib/i18n/it.json +2 -1
  12. package/lib/macros/getVersion.js +2 -2
  13. package/lib/pages/CovidPage/components/TrendGraphNVL/TrendGraphNVL.js +2 -1
  14. package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainerHelpers.js +2 -1
  15. package/lib/pages/EventsPage/events/events_list/Filter/Filter.js +14 -3
  16. package/lib/pages/EventsPage/events/events_list/Filter/FilterContainer.js +24 -7
  17. package/lib/pages/EventsPage/events/events_list/Filter/FilterItem.js +4 -1
  18. package/lib/pages/EventsPage/events/events_list/Filter/FilterStyle.scss +27 -0
  19. package/lib/pages/EventsPage/events/events_list/Filter/OptionsDropDown.js +15 -3
  20. package/lib/pages/EventsPage/events/events_list/Filter/SingleSelect.js +76 -0
  21. package/lib/store/filters/IFilterItem.js +1 -1
  22. package/lib/ui-kit/Dashboard/Dashboard.js +2 -2
  23. package/lib/ui-kit/HierarchyGraph/AutoFitTree.js +21 -15
  24. package/lib/ui-kit/HierarchyGraph/HierarchyGraph.js +132 -21
  25. package/lib/ui-kit/HierarchyGraph/MicroStackedBar.js +18 -8
  26. package/lib/ui-kit/HierarchyGraph/NodeLayout.js +18 -33
  27. package/lib/ui-kit/HierarchyGraph/PollutionContributorNode.js +48 -0
  28. package/lib/ui-kit/HierarchyGraph/ScoreNode.js +35 -0
  29. package/lib/ui-kit/HierarchyGraph/style.scss +67 -31
  30. package/lib/ui-kit/HierarchyGraph/utils.js +16 -1
  31. package/lib/utilities/Enum.js +4 -4
  32. package/lib/utilities/urls.js +6 -1
  33. package/package.json +1 -1
  34. package/lib/ui-kit/HierarchyGraph/MicroStackedBarNode.js +0 -67
  35. package/lib/ui-kit/HierarchyGraph/PieNode.js +0 -26
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.default = void 0;
9
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator"));
9
11
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
10
12
  var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/createForOfIteratorHelper"));
11
13
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
@@ -27,22 +29,39 @@ var HierarchyGraph = function HierarchyGraph() {
27
29
  var ReduxState = (0, _reactRedux.useSelector)(function (state) {
28
30
  return state;
29
31
  });
30
- var _useState = (0, _react.useState)(null),
32
+ var _useState = (0, _react.useState)(0),
31
33
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
32
- selectedPoint = _useState2[0],
33
- setSelectedPoint = _useState2[1];
34
- var _useState3 = (0, _react.useState)(false),
34
+ treeKey = _useState2[0],
35
+ setTreeKey = _useState2[1];
36
+ var _useState3 = (0, _react.useState)(null),
35
37
  _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
36
- showRightPanel = _useState4[0],
37
- setShowRightPanel = _useState4[1];
38
- var _useState5 = (0, _react.useState)({}),
38
+ selectedPoint = _useState4[0],
39
+ setSelectedPoint = _useState4[1];
40
+ var _useState5 = (0, _react.useState)(false),
39
41
  _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
40
- filterOptions = _useState6[0],
41
- setFilterOptions = _useState6[1];
42
+ showRightPanel = _useState6[0],
43
+ setShowRightPanel = _useState6[1];
44
+ var _useState7 = (0, _react.useState)({}),
45
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
46
+ filterOptions = _useState8[0],
47
+ setFilterOptions = _useState8[1];
48
+ var _useState9 = (0, _react.useState)(null),
49
+ _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
50
+ filterParameterIds = _useState10[0],
51
+ setFilterParameterIds = _useState10[1];
52
+ var _useState11 = (0, _react.useState)({
53
+ shouldFetch: false,
54
+ siteIds: []
55
+ }),
56
+ _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
57
+ exceededSiteIds = _useState12[0],
58
+ setExceededSiteIds = _useState12[1];
42
59
  var isHierarchyTab = searchQuery.get('view') === 'hierarchy';
43
60
  var points_data = ReduxState.points_data,
44
61
  edges_data = ReduxState.edges_data,
45
- waterAuthorityName = ReduxState.global_data.waterAuthorityName;
62
+ _ReduxState$global_da = ReduxState.global_data,
63
+ waterAuthorityName = _ReduxState$global_da.waterAuthorityName,
64
+ waterAuthorityId = _ReduxState$global_da.waterAuthorityId;
46
65
  var onNodeClick = function onNodeClick(nodeData) {
47
66
  setSelectedPoint(points_data.items.find(function (p) {
48
67
  return p.id === nodeData.attributes.point_id;
@@ -77,8 +96,17 @@ var HierarchyGraph = function HierarchyGraph() {
77
96
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
78
97
  var _step$value = _step.value,
79
98
  site_id = _step$value.site_id,
80
- pollution = _step$value.pollution;
81
- if (pollution === null || pollution === void 0 ? void 0 : pollution.type_distribution) m.set(site_id, pollution.type_distribution);
99
+ pollution = _step$value.pollution,
100
+ sector_name = _step$value.sector_name,
101
+ sector_id = _step$value.sector_id,
102
+ contributor_percents = _step$value.contributor_percents;
103
+ var extraData = {
104
+ sector_name: sector_name,
105
+ contributor_percents: contributor_percents,
106
+ sector_id: sector_id
107
+ };
108
+ if (pollution === null || pollution === void 0 ? void 0 : pollution.type_distribution) extraData['pollution'] = pollution.type_distribution;
109
+ m.set(site_id, extraData);
82
110
  }
83
111
  } catch (err) {
84
112
  _iterator.e(err);
@@ -99,9 +127,7 @@ var HierarchyGraph = function HierarchyGraph() {
99
127
  var numId = Number(id);
100
128
  var pollution = pollutionBySiteId.get(numId);
101
129
  // shallow clone each point; add pollution if exists
102
- copy[numId] = pollution ? (0, _objectSpread2.default)((0, _objectSpread2.default)({}, base[numId]), {}, {
103
- pollution: pollution
104
- }) : (0, _objectSpread2.default)({}, base[numId]);
130
+ copy[numId] = pollution ? (0, _objectSpread2.default)((0, _objectSpread2.default)({}, base[numId]), pollution) : (0, _objectSpread2.default)({}, base[numId]);
105
131
  }
106
132
  return copy;
107
133
  }, [points_data.items, pollutionBySiteId]);
@@ -149,18 +175,102 @@ var HierarchyGraph = function HierarchyGraph() {
149
175
  selectedFilters[item.type] = item.selected_options;
150
176
  });
151
177
  setFilterOptions(selectedFilters);
178
+ var samplingParameters = appliedFilter.filter_items.find(function (item) {
179
+ return item.type === 'SamplingParameterFilterItem';
180
+ });
181
+ if (samplingParameters) {
182
+ setExceededSiteIds({
183
+ shouldFetch: true,
184
+ siteIds: []
185
+ });
186
+ setFilterParameterIds(samplingParameters.selected_options);
187
+ } else {
188
+ setFilterParameterIds(null);
189
+ setExceededSiteIds({
190
+ shouldFetch: false,
191
+ siteIds: []
192
+ });
193
+ }
152
194
  // You can update state or make API calls based on the applied filter
153
195
  };
154
196
 
197
+ (0, _react.useEffect)(function () {
198
+ if ((filterParameterIds === null || filterParameterIds === void 0 ? void 0 : filterParameterIds.length) === 0) {
199
+ setExceededSiteIds({
200
+ shouldFetch: false,
201
+ siteIds: []
202
+ });
203
+ return;
204
+ }
205
+ if (!exceededSiteIds.shouldFetch) {
206
+ return;
207
+ }
208
+ var fetchExceededSites = /*#__PURE__*/function () {
209
+ var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
210
+ var response, _yield$response$json, data, siteIds;
211
+ return _regenerator.default.wrap(function _callee$(_context) {
212
+ while (1) {
213
+ switch (_context.prev = _context.next) {
214
+ case 0:
215
+ _context.prev = 0;
216
+ _context.next = 3;
217
+ return fetch((0, _urls.urls)({
218
+ parameterIds: filterParameterIds,
219
+ waterAuthorityId: waterAuthorityId
220
+ }).hierarchy.exceedanceByParameter.url);
221
+ case 3:
222
+ response = _context.sent;
223
+ _context.next = 6;
224
+ return response.json();
225
+ case 6:
226
+ _yield$response$json = _context.sent;
227
+ data = _yield$response$json.data;
228
+ siteIds = data.site_ids || [];
229
+ setExceededSiteIds({
230
+ shouldFetch: false,
231
+ siteIds: siteIds
232
+ });
233
+ _context.next = 15;
234
+ break;
235
+ case 12:
236
+ _context.prev = 12;
237
+ _context.t0 = _context["catch"](0);
238
+ console.error('Error fetching exceeded sites:', _context.t0);
239
+ case 15:
240
+ case "end":
241
+ return _context.stop();
242
+ }
243
+ }
244
+ }, _callee, null, [[0, 12]]);
245
+ }));
246
+ return function fetchExceededSites() {
247
+ return _ref.apply(this, arguments);
248
+ };
249
+ }();
250
+ fetchExceededSites();
251
+ }, [filterParameterIds, exceededSiteIds]);
252
+ var resetFilter = function resetFilter(defaultFilter) {
253
+ setFilterParameterIds(null);
254
+ setExceededSiteIds([]);
255
+ updateFilter(defaultFilter);
256
+ setTreeKey(treeKey + 1);
257
+ };
155
258
  if (!isHierarchyTab) {
156
259
  return null;
157
260
  }
158
- return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_FilterContainer.default, {
261
+ return /*#__PURE__*/_react.default.createElement("div", {
262
+ className: 'hierarchy-graph-page'
263
+ }, !points_data.isFetching && treeKey > -1 && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_FilterContainer.default, {
159
264
  filterPopupOpen: true,
160
265
  fetchType: 'HierarchyFilter',
161
266
  applyLogic: updateFilter,
162
- custom_points: filterPoints
163
- }), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Container, {
267
+ custom_points: filterPoints,
268
+ resetFilter: resetFilter
269
+ }), filterParameterIds && /*#__PURE__*/_react.default.createElement("div", {
270
+ style: {
271
+ marginInlineStart: 20
272
+ }
273
+ }, "".concat(exceededSiteIds.siteIds.length, " sites with exceeding results"))), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Container, {
164
274
  fluid: true,
165
275
  className: "p-0",
166
276
  style: {
@@ -173,11 +283,12 @@ var HierarchyGraph = function HierarchyGraph() {
173
283
  style: {
174
284
  height: '85vh'
175
285
  }
176
- }, edges_data.isFetching || points_data.isFetching || !treeData || isLoadingSites ? /*#__PURE__*/_react.default.createElement(_Loader.Loader, null) : /*#__PURE__*/_react.default.createElement(_AutoFitTree.default, {
177
- treeKey: 0,
286
+ }, edges_data.isFetching || points_data.isFetching || !filterOptions || !treeData || isLoadingSites ? /*#__PURE__*/_react.default.createElement(_Loader.Loader, null) : /*#__PURE__*/_react.default.createElement(_AutoFitTree.default, {
287
+ treeKey: treeKey,
178
288
  initialDepth: 12,
179
289
  data: treeData,
180
290
  selectedFilters: filterOptions,
291
+ exceededSiteIds: exceededSiteIds.siteIds,
181
292
  onNodeClick: onNodeClick
182
293
  }), /*#__PURE__*/_react.default.createElement(_RightPanel.default, {
183
294
  className: "right-panel ".concat(showRightPanel ? 'open' : ''),
@@ -190,4 +301,4 @@ var HierarchyGraph = function HierarchyGraph() {
190
301
  };
191
302
  var _default = HierarchyGraph;
192
303
  exports.default = _default;
193
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfdXNlUXVlcnlVUkwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3V0aWxzIiwiX3JlYWN0UmVkdXgiLCJfQXV0b0ZpdFRyZWUiLCJfcmVhY3RCb290c3RyYXAiLCJfTG9hZGVyIiwiX1JpZ2h0UGFuZWwiLCJfdXJscyIsIl91c2VBcGlXaXRoRGFzaGJvYXJkUXVlcnkiLCJfRmlsdGVyQ29udGFpbmVyIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJIaWVyYXJjaHlHcmFwaCIsInNlYXJjaFF1ZXJ5IiwidXNlUXVlcnlVUkwiLCJSZWR1eFN0YXRlIiwidXNlU2VsZWN0b3IiLCJzdGF0ZSIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInNlbGVjdGVkUG9pbnQiLCJzZXRTZWxlY3RlZFBvaW50IiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJzaG93UmlnaHRQYW5lbCIsInNldFNob3dSaWdodFBhbmVsIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJmaWx0ZXJPcHRpb25zIiwic2V0RmlsdGVyT3B0aW9ucyIsImlzSGllcmFyY2h5VGFiIiwicG9pbnRzX2RhdGEiLCJlZGdlc19kYXRhIiwid2F0ZXJBdXRob3JpdHlOYW1lIiwiZ2xvYmFsX2RhdGEiLCJvbk5vZGVDbGljayIsIm5vZGVEYXRhIiwiaXRlbXMiLCJmaW5kIiwicCIsImlkIiwiYXR0cmlidXRlcyIsInBvaW50X2lkIiwiZmFjdG9yaWVzRW5kUG9pbnQiLCJ1c2VNZW1vIiwidXJscyIsImRhc2hib2FyZCIsIlV0aWxpdHkiLCJmYWN0b3JpZXMiLCJwYXJhbXNBbGwiLCJ0eXBlIiwiX3VzZUFwaVdpdGhEYXNoYm9hcmRRIiwidXNlQXBpV2l0aERhc2hib2FyZFF1ZXJ5IiwiX3VzZUFwaVdpdGhEYXNoYm9hcmRRMiIsInJlc3BvbnNlU2l0ZXMiLCJpc0xvYWRpbmdTaXRlcyIsImVycm9yU2l0ZXMiLCJwb2xsdXRpb25CeVNpdGVJZCIsIm0iLCJNYXAiLCJkYXRhIiwiX2l0ZXJhdG9yIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIyIiwiX3N0ZXAiLCJzIiwibiIsImRvbmUiLCJfc3RlcCR2YWx1ZSIsInZhbHVlIiwic2l0ZV9pZCIsInBvbGx1dGlvbiIsInR5cGVfZGlzdHJpYnV0aW9uIiwiZXJyIiwiZSIsImYiLCJkZWNvcmF0ZWRQb2ludHNCeUlkIiwiYmFzZSIsIm1hcEJ5SWQiLCJjb3B5IiwiX2kiLCJfT2JqZWN0JGtleXMiLCJrZXlzIiwibGVuZ3RoIiwibnVtSWQiLCJOdW1iZXIiLCJfb2JqZWN0U3ByZWFkMiIsImVkZ2VzV2l0aERldmljZSIsInBvaW50c1dpdGhEZXZpY2UiLCJmaWx0ZXIiLCJoYXNfZGV2aWNlIiwiZWRnZSIsInNvdXJjZV9wb2ludF9pZCIsImRlc2NlbmRhbnRzX2hhc19kZXZpY2UiLCJmaWx0ZXJQb2ludHMiLCJwb2ludHNPcHRpb24iLCJwb2ludExpc3QiLCJmb3JFYWNoIiwic291cmNlUG9pbnQiLCJ0YXJnZXRQb2ludCIsInRhcmdldF9wb2ludF9pZCIsIm5hbWUiLCJncm91cCIsInZhbHVlcyIsInRyZWVEYXRhIiwiYnVpbGRUcmVlIiwidXBkYXRlRmlsdGVyIiwiYXBwbGllZEZpbHRlciIsInNlbGVjdGVkRmlsdGVycyIsImZpbHRlcl9pdGVtcyIsIml0ZW0iLCJzZWxlY3RlZF9vcHRpb25zIiwiY3JlYXRlRWxlbWVudCIsImZpbHRlclBvcHVwT3BlbiIsImZldGNoVHlwZSIsImFwcGx5TG9naWMiLCJjdXN0b21fcG9pbnRzIiwiQ29udGFpbmVyIiwiZmx1aWQiLCJjbGFzc05hbWUiLCJzdHlsZSIsIm92ZXJmbG93IiwiUm93Iiwic20iLCJDb2wiLCJoZWlnaHQiLCJpc0ZldGNoaW5nIiwiTG9hZGVyIiwidHJlZUtleSIsImluaXRpYWxEZXB0aCIsImNvbmNhdCIsInBvaW50Iiwib25DbG9zZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91aS1raXQvSGllcmFyY2h5R3JhcGgvSGllcmFyY2h5R3JhcGgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgdXNlUXVlcnlVUkwgZnJvbSAnLi4vLi4vaG9va3MvdXNlUXVlcnlVUkwnO1xuaW1wb3J0IHsgYnVpbGRUcmVlLCBtYXBCeUlkIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IEF1dG9GaXRUcmVlIGZyb20gJy4vQXV0b0ZpdFRyZWUnO1xuaW1wb3J0IHsgQ29udGFpbmVyLCBSb3csIENvbCB9IGZyb20gJ3JlYWN0LWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBMb2FkZXIgfSBmcm9tICcuLi8uLi9wYWdlcy9EYXNoYm9hcmRNYXAvTG9hZGVyJztcbmltcG9ydCBSaWdodFBhbmVsIGZyb20gJy4uLy4uL3BhZ2VzL09wZXJhdGlvbnNQYWdlL1JpZ2h0UGFuZWwnO1xuaW1wb3J0IHsgdXJscyB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy91cmxzJztcbmltcG9ydCB7IHVzZUFwaVdpdGhEYXNoYm9hcmRRdWVyeSB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZUFwaVdpdGhEYXNoYm9hcmRRdWVyeSc7XG5pbXBvcnQgeyBGYWN0b3JpZXNSZXNwb25zZSB9IGZyb20gJy4uLy4uL1dpZGdldHMvTW9zdFBvbGx1dGluZy9GYWN0b3JpZXMvZmFjdG9yaWVzUmVzcG9uc2UuaW50ZXJmYWNlJztcbmltcG9ydCBGaWx0ZXJDb250YWluZXIgZnJvbSAnLi4vLi4vcGFnZXMvRXZlbnRzUGFnZS9ldmVudHMvZXZlbnRzX2xpc3QvRmlsdGVyL0ZpbHRlckNvbnRhaW5lcic7XG5cbmNvbnN0IEhpZXJhcmNoeUdyYXBoID0gKCkgPT4ge1xuICBjb25zdCBzZWFyY2hRdWVyeSA9IHVzZVF1ZXJ5VVJMKCk7XG4gIGNvbnN0IFJlZHV4U3RhdGUgPSB1c2VTZWxlY3Rvcigoc3RhdGUpID0+IHN0YXRlKTtcbiAgY29uc3QgW3NlbGVjdGVkUG9pbnQsIHNldFNlbGVjdGVkUG9pbnRdID0gdXNlU3RhdGUobnVsbCk7XG4gIGNvbnN0IFtzaG93UmlnaHRQYW5lbCwgc2V0U2hvd1JpZ2h0UGFuZWxdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbZmlsdGVyT3B0aW9ucywgc2V0RmlsdGVyT3B0aW9uc10gPSB1c2VTdGF0ZSh7fSk7XG4gIGNvbnN0IGlzSGllcmFyY2h5VGFiID0gc2VhcmNoUXVlcnkuZ2V0KCd2aWV3JykgPT09ICdoaWVyYXJjaHknO1xuICBjb25zdCB7XG4gICAgcG9pbnRzX2RhdGEsXG4gICAgZWRnZXNfZGF0YSxcbiAgICBnbG9iYWxfZGF0YTogeyB3YXRlckF1dGhvcml0eU5hbWUgfSxcbiAgfSA9IFJlZHV4U3RhdGU7XG5cbiAgY29uc3Qgb25Ob2RlQ2xpY2sgPSAobm9kZURhdGEpID0+IHtcbiAgICBzZXRTZWxlY3RlZFBvaW50KFxuICAgICAgcG9pbnRzX2RhdGEuaXRlbXMuZmluZCgocCkgPT4gcC5pZCA9PT0gbm9kZURhdGEuYXR0cmlidXRlcy5wb2ludF9pZCksXG4gICAgKTtcbiAgICBzZXRTaG93UmlnaHRQYW5lbCghc2hvd1JpZ2h0UGFuZWwpO1xuICB9O1xuXG4gIC8vIHN0YWJsZSBlbmRwb2ludHMvcGFyYW1zIOKchVxuICBjb25zdCBmYWN0b3JpZXNFbmRQb2ludCA9IHVzZU1lbW8oXG4gICAgKCkgPT4gdXJscygpLmRhc2hib2FyZC5VdGlsaXR5LmZhY3RvcmllcyxcbiAgICBbXSxcbiAgKTtcblxuICBjb25zdCBwYXJhbXNBbGwgPSB1c2VNZW1vKCgpID0+ICh7IHR5cGU6ICdBbGwnIH0pLCBbXSk7XG5cbiAgLy8gZmV0Y2hlc1xuICBjb25zdCBbcmVzcG9uc2VTaXRlcywgaXNMb2FkaW5nU2l0ZXMsIGVycm9yU2l0ZXNdID1cbiAgICB1c2VBcGlXaXRoRGFzaGJvYXJkUXVlcnk8RmFjdG9yaWVzUmVzcG9uc2U+KGZhY3Rvcmllc0VuZFBvaW50LCBwYXJhbXNBbGwpO1xuXG4gIC8vIDEpIEJ1aWxkIGEgcG9sbHV0aW9uIG1hcCBmcm9tIGJvdGggcmVzcG9uc2VzIChubyBzdGF0ZTsgcHVyZSBtZW1vKVxuICBjb25zdCBwb2xsdXRpb25CeVNpdGVJZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IG0gPSBuZXcgTWFwPG51bWJlciwgYW55PigpO1xuICAgIGlmIChyZXNwb25zZVNpdGVzPy5kYXRhKSB7XG4gICAgICBmb3IgKGNvbnN0IHsgc2l0ZV9pZCwgcG9sbHV0aW9uIH0gb2YgcmVzcG9uc2VTaXRlcy5kYXRhKSB7XG4gICAgICAgIGlmIChwb2xsdXRpb24/LnR5cGVfZGlzdHJpYnV0aW9uKVxuICAgICAgICAgIG0uc2V0KHNpdGVfaWQsIHBvbGx1dGlvbi50eXBlX2Rpc3RyaWJ1dGlvbik7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBtO1xuICB9LCBbcmVzcG9uc2VTaXRlcz8uZGF0YV0pO1xuXG4gIC8vIDIpIENyZWF0ZSBhIFNBRkUgY29weSBvZiBwb2ludF9tYXBfZGF0YSB3aXRoIHBvbGx1dGlvbiBtZXJnZWQgaW4gKG5vIG11dGF0aW9ucylcbiAgY29uc3QgZGVjb3JhdGVkUG9pbnRzQnlJZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIC8vIG1hcEJ5SWQocG9pbnRzX2RhdGEuaXRlbXMpIHJldHVybnMgYSBwbGFpbiBvYmplY3Qga2V5ZWQgYnkgaWQ7IGNsb25lIGl0XG4gICAgY29uc3QgYmFzZSA9IG1hcEJ5SWQocG9pbnRzX2RhdGEuaXRlbXMpO1xuICAgIGNvbnN0IGNvcHk6IFJlY29yZDxudW1iZXIsIGFueT4gPSB7fTtcbiAgICBmb3IgKGNvbnN0IGlkIG9mIE9iamVjdC5rZXlzKGJhc2UpKSB7XG4gICAgICBjb25zdCBudW1JZCA9IE51bWJlcihpZCk7XG4gICAgICBjb25zdCBwb2xsdXRpb24gPSBwb2xsdXRpb25CeVNpdGVJZC5nZXQobnVtSWQpO1xuICAgICAgLy8gc2hhbGxvdyBjbG9uZSBlYWNoIHBvaW50OyBhZGQgcG9sbHV0aW9uIGlmIGV4aXN0c1xuICAgICAgY29weVtudW1JZF0gPSBwb2xsdXRpb25cbiAgICAgICAgPyB7IC4uLmJhc2VbbnVtSWRdLCBwb2xsdXRpb24gfVxuICAgICAgICA6IHsgLi4uYmFzZVtudW1JZF0gfTtcbiAgICB9XG4gICAgcmV0dXJuIGNvcHk7XG4gIH0sIFtwb2ludHNfZGF0YS5pdGVtcywgcG9sbHV0aW9uQnlTaXRlSWRdKTtcblxuICAvLyAzKSBDb21wdXRlIGVkZ2VzV2l0aERldmljZSBzYWZlbHkvbWVtb2l6ZWQgKG5vIGV4dHJhIHJlbmRlcnMpXG4gIGNvbnN0IGVkZ2VzV2l0aERldmljZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHBvaW50c1dpdGhEZXZpY2UgPSBtYXBCeUlkKFxuICAgICAgcG9pbnRzX2RhdGEuaXRlbXMuZmlsdGVyKChwKSA9PiBwLmhhc19kZXZpY2UpLFxuICAgICk7XG4gICAgcmV0dXJuIGVkZ2VzX2RhdGEuaXRlbXMuZmlsdGVyKFxuICAgICAgKGVkZ2UpID0+XG4gICAgICAgIHBvaW50c1dpdGhEZXZpY2VbZWRnZS5zb3VyY2VfcG9pbnRfaWRdIHx8IGVkZ2UuZGVzY2VuZGFudHNfaGFzX2RldmljZSxcbiAgICApO1xuICB9LCBbcG9pbnRzX2RhdGEuaXRlbXMsIGVkZ2VzX2RhdGEuaXRlbXNdKTtcblxuICBjb25zdCBmaWx0ZXJQb2ludHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBwb2ludHNPcHRpb24gPSB7fTtcbiAgICBjb25zdCBwb2ludExpc3QgPSBwb2ludHNfZGF0YS5pdGVtcztcbiAgICBlZGdlc1dpdGhEZXZpY2UuZm9yRWFjaCgoZWRnZSkgPT4ge1xuICAgICAgY29uc3Qgc291cmNlUG9pbnQgPSBwb2ludExpc3QuZmluZCgocCkgPT4gcC5pZCA9PT0gZWRnZS5zb3VyY2VfcG9pbnRfaWQpO1xuICAgICAgY29uc3QgdGFyZ2V0UG9pbnQgPSBwb2ludExpc3QuZmluZCgocCkgPT4gcC5pZCA9PT0gZWRnZS50YXJnZXRfcG9pbnRfaWQpO1xuICAgICAgaWYgKHNvdXJjZVBvaW50KVxuICAgICAgICBwb2ludHNPcHRpb25bc291cmNlUG9pbnQuaWRdID0ge1xuICAgICAgICAgIGlkOiBzb3VyY2VQb2ludC5pZCxcbiAgICAgICAgICBuYW1lOiBzb3VyY2VQb2ludC5ncm91cC5uYW1lLFxuICAgICAgICB9O1xuICAgICAgaWYgKHRhcmdldFBvaW50KVxuICAgICAgICBwb2ludHNPcHRpb25bdGFyZ2V0UG9pbnQuaWRdID0ge1xuICAgICAgICAgIGlkOiB0YXJnZXRQb2ludC5pZCxcbiAgICAgICAgICBuYW1lOiB0YXJnZXRQb2ludC5ncm91cC5uYW1lLFxuICAgICAgICB9O1xuICAgIH0pO1xuICAgIHJldHVybiBPYmplY3QudmFsdWVzKHBvaW50c09wdGlvbik7XG4gIH0sIFtwb2ludHNfZGF0YS5pdGVtcywgZWRnZXNXaXRoRGV2aWNlXSk7XG5cbiAgLy8gNCkgQnVpbGQgdGhlIHRyZWUgT05MWSB3aGVuIGRhdGEgaXMgcmVhZHk7IGtlZXAgcmVmZXJlbnRpYWwgc3RhYmlsaXR5XG4gIGNvbnN0IHRyZWVEYXRhID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGlzTG9hZGluZ1NpdGVzIHx8IGVycm9yU2l0ZXMpIHJldHVybiBudWxsO1xuXG4gICAgcmV0dXJuIGJ1aWxkVHJlZShlZGdlc1dpdGhEZXZpY2UsIGRlY29yYXRlZFBvaW50c0J5SWQsIHdhdGVyQXV0aG9yaXR5TmFtZSk7XG4gIH0sIFtcbiAgICBlZGdlc1dpdGhEZXZpY2UsXG4gICAgZGVjb3JhdGVkUG9pbnRzQnlJZCxcbiAgICB3YXRlckF1dGhvcml0eU5hbWUsXG4gICAgaXNMb2FkaW5nU2l0ZXMsXG4gICAgZXJyb3JTaXRlcyxcbiAgXSk7XG5cbiAgY29uc3QgdXBkYXRlRmlsdGVyID0gKGFwcGxpZWRGaWx0ZXIpID0+IHtcbiAgICAvLyBQcm9jZXNzIHRoZSBhcHBsaWVkIGZpbHRlciBhcyBuZWVkZWRcbiAgICBjb25zdCBzZWxlY3RlZEZpbHRlcnMgPSB7fTtcblxuICAgIGFwcGxpZWRGaWx0ZXIuZmlsdGVyX2l0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIHNlbGVjdGVkRmlsdGVyc1tpdGVtLnR5cGVdID0gaXRlbS5zZWxlY3RlZF9vcHRpb25zO1xuICAgIH0pO1xuICAgIHNldEZpbHRlck9wdGlvbnMoc2VsZWN0ZWRGaWx0ZXJzKTtcbiAgICAvLyBZb3UgY2FuIHVwZGF0ZSBzdGF0ZSBvciBtYWtlIEFQSSBjYWxscyBiYXNlZCBvbiB0aGUgYXBwbGllZCBmaWx0ZXJcbiAgfTtcblxuICBpZiAoIWlzSGllcmFyY2h5VGFiKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxkaXY+XG4gICAgICA8RmlsdGVyQ29udGFpbmVyXG4gICAgICAgIGZpbHRlclBvcHVwT3Blbj17dHJ1ZX1cbiAgICAgICAgZmV0Y2hUeXBlPXsnSGllcmFyY2h5RmlsdGVyJ31cbiAgICAgICAgYXBwbHlMb2dpYz17dXBkYXRlRmlsdGVyfVxuICAgICAgICBjdXN0b21fcG9pbnRzPXtmaWx0ZXJQb2ludHN9XG4gICAgICAvPlxuXG4gICAgICA8Q29udGFpbmVyIGZsdWlkIGNsYXNzTmFtZT1cInAtMFwiIHN0eWxlPXt7IG92ZXJmbG93OiAnaGlkZGVuJyB9fT5cbiAgICAgICAgPFJvdyBjbGFzc05hbWU9XCJtYXAtY29sdW1uXCIgc209ezEyfT5cbiAgICAgICAgICA8Q29sIHN0eWxlPXt7IGhlaWdodDogJzg1dmgnIH19PlxuICAgICAgICAgICAge2VkZ2VzX2RhdGEuaXNGZXRjaGluZyB8fFxuICAgICAgICAgICAgcG9pbnRzX2RhdGEuaXNGZXRjaGluZyB8fFxuICAgICAgICAgICAgIXRyZWVEYXRhIHx8XG4gICAgICAgICAgICBpc0xvYWRpbmdTaXRlcyA/IChcbiAgICAgICAgICAgICAgPExvYWRlciAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPEF1dG9GaXRUcmVlXG4gICAgICAgICAgICAgICAgdHJlZUtleT17MH1cbiAgICAgICAgICAgICAgICBpbml0aWFsRGVwdGg9ezEyfVxuICAgICAgICAgICAgICAgIGRhdGE9e3RyZWVEYXRhfVxuICAgICAgICAgICAgICAgIHNlbGVjdGVkRmlsdGVycz17ZmlsdGVyT3B0aW9uc31cbiAgICAgICAgICAgICAgICBvbk5vZGVDbGljaz17b25Ob2RlQ2xpY2t9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPFJpZ2h0UGFuZWxcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgcmlnaHQtcGFuZWwgJHtzaG93UmlnaHRQYW5lbCA/ICdvcGVuJyA6ICcnfWB9XG4gICAgICAgICAgICAgIHBvaW50PXtzZWxlY3RlZFBvaW50fVxuICAgICAgICAgICAgICBvbkNsb3NlPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRQb2ludChudWxsKTtcbiAgICAgICAgICAgICAgICBzZXRTaG93UmlnaHRQYW5lbChmYWxzZSk7XG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cbiAgICAgIDwvQ29udGFpbmVyPlxu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
304
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfdXNlUXVlcnlVUkwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3V0aWxzIiwiX3JlYWN0UmVkdXgiLCJfQXV0b0ZpdFRyZWUiLCJfcmVhY3RCb290c3RyYXAiLCJfTG9hZGVyIiwiX1JpZ2h0UGFuZWwiLCJfdXJscyIsIl91c2VBcGlXaXRoRGFzaGJvYXJkUXVlcnkiLCJfRmlsdGVyQ29udGFpbmVyIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJIaWVyYXJjaHlHcmFwaCIsInNlYXJjaFF1ZXJ5IiwidXNlUXVlcnlVUkwiLCJSZWR1eFN0YXRlIiwidXNlU2VsZWN0b3IiLCJzdGF0ZSIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInRyZWVLZXkiLCJzZXRUcmVlS2V5IiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJzZWxlY3RlZFBvaW50Iiwic2V0U2VsZWN0ZWRQb2ludCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2Iiwic2hvd1JpZ2h0UGFuZWwiLCJzZXRTaG93UmlnaHRQYW5lbCIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiZmlsdGVyT3B0aW9ucyIsInNldEZpbHRlck9wdGlvbnMiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMTAiLCJmaWx0ZXJQYXJhbWV0ZXJJZHMiLCJzZXRGaWx0ZXJQYXJhbWV0ZXJJZHMiLCJfdXNlU3RhdGUxMSIsInNob3VsZEZldGNoIiwic2l0ZUlkcyIsIl91c2VTdGF0ZTEyIiwiZXhjZWVkZWRTaXRlSWRzIiwic2V0RXhjZWVkZWRTaXRlSWRzIiwiaXNIaWVyYXJjaHlUYWIiLCJwb2ludHNfZGF0YSIsImVkZ2VzX2RhdGEiLCJfUmVkdXhTdGF0ZSRnbG9iYWxfZGEiLCJnbG9iYWxfZGF0YSIsIndhdGVyQXV0aG9yaXR5TmFtZSIsIndhdGVyQXV0aG9yaXR5SWQiLCJvbk5vZGVDbGljayIsIm5vZGVEYXRhIiwiaXRlbXMiLCJmaW5kIiwicCIsImlkIiwiYXR0cmlidXRlcyIsInBvaW50X2lkIiwiZmFjdG9yaWVzRW5kUG9pbnQiLCJ1c2VNZW1vIiwidXJscyIsImRhc2hib2FyZCIsIlV0aWxpdHkiLCJmYWN0b3JpZXMiLCJwYXJhbXNBbGwiLCJ0eXBlIiwiX3VzZUFwaVdpdGhEYXNoYm9hcmRRIiwidXNlQXBpV2l0aERhc2hib2FyZFF1ZXJ5IiwiX3VzZUFwaVdpdGhEYXNoYm9hcmRRMiIsInJlc3BvbnNlU2l0ZXMiLCJpc0xvYWRpbmdTaXRlcyIsImVycm9yU2l0ZXMiLCJwb2xsdXRpb25CeVNpdGVJZCIsIm0iLCJNYXAiLCJkYXRhIiwiX2l0ZXJhdG9yIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIyIiwiX3N0ZXAiLCJzIiwibiIsImRvbmUiLCJfc3RlcCR2YWx1ZSIsInZhbHVlIiwic2l0ZV9pZCIsInBvbGx1dGlvbiIsInNlY3Rvcl9uYW1lIiwic2VjdG9yX2lkIiwiY29udHJpYnV0b3JfcGVyY2VudHMiLCJleHRyYURhdGEiLCJ0eXBlX2Rpc3RyaWJ1dGlvbiIsImVyciIsImUiLCJmIiwiZGVjb3JhdGVkUG9pbnRzQnlJZCIsImJhc2UiLCJtYXBCeUlkIiwiY29weSIsIl9pIiwiX09iamVjdCRrZXlzIiwia2V5cyIsImxlbmd0aCIsIm51bUlkIiwiTnVtYmVyIiwiX29iamVjdFNwcmVhZDIiLCJlZGdlc1dpdGhEZXZpY2UiLCJwb2ludHNXaXRoRGV2aWNlIiwiZmlsdGVyIiwiaGFzX2RldmljZSIsImVkZ2UiLCJzb3VyY2VfcG9pbnRfaWQiLCJkZXNjZW5kYW50c19oYXNfZGV2aWNlIiwiZmlsdGVyUG9pbnRzIiwicG9pbnRzT3B0aW9uIiwicG9pbnRMaXN0IiwiZm9yRWFjaCIsInNvdXJjZVBvaW50IiwidGFyZ2V0UG9pbnQiLCJ0YXJnZXRfcG9pbnRfaWQiLCJuYW1lIiwiZ3JvdXAiLCJ2YWx1ZXMiLCJ0cmVlRGF0YSIsImJ1aWxkVHJlZSIsInVwZGF0ZUZpbHRlciIsImFwcGxpZWRGaWx0ZXIiLCJzZWxlY3RlZEZpbHRlcnMiLCJmaWx0ZXJfaXRlbXMiLCJpdGVtIiwic2VsZWN0ZWRfb3B0aW9ucyIsInNhbXBsaW5nUGFyYW1ldGVycyIsInVzZUVmZmVjdCIsImZldGNoRXhjZWVkZWRTaXRlcyIsIl9yZWYiLCJfYXN5bmNUb0dlbmVyYXRvcjIiLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiX2NhbGxlZSIsInJlc3BvbnNlIiwiX3lpZWxkJHJlc3BvbnNlJGpzb24iLCJ3cmFwIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwiZmV0Y2giLCJwYXJhbWV0ZXJJZHMiLCJoaWVyYXJjaHkiLCJleGNlZWRhbmNlQnlQYXJhbWV0ZXIiLCJ1cmwiLCJzZW50IiwianNvbiIsInNpdGVfaWRzIiwidDAiLCJjb25zb2xlIiwiZXJyb3IiLCJzdG9wIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJyZXNldEZpbHRlciIsImRlZmF1bHRGaWx0ZXIiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwiaXNGZXRjaGluZyIsIkZyYWdtZW50IiwiZmlsdGVyUG9wdXBPcGVuIiwiZmV0Y2hUeXBlIiwiYXBwbHlMb2dpYyIsImN1c3RvbV9wb2ludHMiLCJzdHlsZSIsIm1hcmdpbklubGluZVN0YXJ0IiwiY29uY2F0IiwiQ29udGFpbmVyIiwiZmx1aWQiLCJvdmVyZmxvdyIsIlJvdyIsInNtIiwiQ29sIiwiaGVpZ2h0IiwiTG9hZGVyIiwiaW5pdGlhbERlcHRoIiwicG9pbnQiLCJvbkNsb3NlIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3VpLWtpdC9IaWVyYXJjaHlHcmFwaC9IaWVyYXJjaHlHcmFwaC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB1c2VRdWVyeVVSTCBmcm9tICcuLi8uLi9ob29rcy91c2VRdWVyeVVSTCc7XG5pbXBvcnQgeyBidWlsZFRyZWUsIG1hcEJ5SWQgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBBdXRvRml0VHJlZSBmcm9tICcuL0F1dG9GaXRUcmVlJztcbmltcG9ydCB7IENvbnRhaW5lciwgUm93LCBDb2wgfSBmcm9tICdyZWFjdC1ib290c3RyYXAnO1xuaW1wb3J0IHsgTG9hZGVyIH0gZnJvbSAnLi4vLi4vcGFnZXMvRGFzaGJvYXJkTWFwL0xvYWRlcic7XG5pbXBvcnQgUmlnaHRQYW5lbCBmcm9tICcuLi8uLi9wYWdlcy9PcGVyYXRpb25zUGFnZS9SaWdodFBhbmVsJztcbmltcG9ydCB7IHVybHMgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvdXJscyc7XG5pbXBvcnQgeyB1c2VBcGlXaXRoRGFzaGJvYXJkUXVlcnkgfSBmcm9tICcuLi8uLi9ob29rcy91c2VBcGlXaXRoRGFzaGJvYXJkUXVlcnknO1xuaW1wb3J0IHsgRmFjdG9yaWVzUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9XaWRnZXRzL01vc3RQb2xsdXRpbmcvRmFjdG9yaWVzL2ZhY3Rvcmllc1Jlc3BvbnNlLmludGVyZmFjZSc7XG5pbXBvcnQgRmlsdGVyQ29udGFpbmVyIGZyb20gJy4uLy4uL3BhZ2VzL0V2ZW50c1BhZ2UvZXZlbnRzL2V2ZW50c19saXN0L0ZpbHRlci9GaWx0ZXJDb250YWluZXInO1xuXG5jb25zdCBIaWVyYXJjaHlHcmFwaCA9ICgpID0+IHtcbiAgY29uc3Qgc2VhcmNoUXVlcnkgPSB1c2VRdWVyeVVSTCgpO1xuICBjb25zdCBSZWR1eFN0YXRlID0gdXNlU2VsZWN0b3IoKHN0YXRlKSA9PiBzdGF0ZSk7XG4gIGNvbnN0IFt0cmVlS2V5LCBzZXRUcmVlS2V5XSA9IHVzZVN0YXRlKDApO1xuICBjb25zdCBbc2VsZWN0ZWRQb2ludCwgc2V0U2VsZWN0ZWRQb2ludF0gPSB1c2VTdGF0ZShudWxsKTtcbiAgY29uc3QgW3Nob3dSaWdodFBhbmVsLCBzZXRTaG93UmlnaHRQYW5lbF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtmaWx0ZXJPcHRpb25zLCBzZXRGaWx0ZXJPcHRpb25zXSA9IHVzZVN0YXRlKHt9KTtcbiAgY29uc3QgW2ZpbHRlclBhcmFtZXRlcklkcywgc2V0RmlsdGVyUGFyYW1ldGVySWRzXSA9IHVzZVN0YXRlKG51bGwpO1xuICBjb25zdCBbZXhjZWVkZWRTaXRlSWRzLCBzZXRFeGNlZWRlZFNpdGVJZHNdID0gdXNlU3RhdGUoe1xuICAgIHNob3VsZEZldGNoOiBmYWxzZSxcbiAgICBzaXRlSWRzOiBbXSxcbiAgfSk7XG4gIGNvbnN0IGlzSGllcmFyY2h5VGFiID0gc2VhcmNoUXVlcnkuZ2V0KCd2aWV3JykgPT09ICdoaWVyYXJjaHknO1xuICBjb25zdCB7XG4gICAgcG9pbnRzX2RhdGEsXG4gICAgZWRnZXNfZGF0YSxcbiAgICBnbG9iYWxfZGF0YTogeyB3YXRlckF1dGhvcml0eU5hbWUsIHdhdGVyQXV0aG9yaXR5SWQgfSxcbiAgfSA9IFJlZHV4U3RhdGU7XG5cbiAgY29uc3Qgb25Ob2RlQ2xpY2sgPSAobm9kZURhdGEpID0+IHtcbiAgICBzZXRTZWxlY3RlZFBvaW50KFxuICAgICAgcG9pbnRzX2RhdGEuaXRlbXMuZmluZCgocCkgPT4gcC5pZCA9PT0gbm9kZURhdGEuYXR0cmlidXRlcy5wb2ludF9pZCksXG4gICAgKTtcbiAgICBzZXRTaG93UmlnaHRQYW5lbCghc2hvd1JpZ2h0UGFuZWwpO1xuICB9O1xuXG4gIC8vIHN0YWJsZSBlbmRwb2ludHMvcGFyYW1zIOKchVxuICBjb25zdCBmYWN0b3JpZXNFbmRQb2ludCA9IHVzZU1lbW8oXG4gICAgKCkgPT4gdXJscygpLmRhc2hib2FyZC5VdGlsaXR5LmZhY3RvcmllcyxcbiAgICBbXSxcbiAgKTtcblxuICBjb25zdCBwYXJhbXNBbGwgPSB1c2VNZW1vKCgpID0+ICh7IHR5cGU6ICdBbGwnIH0pLCBbXSk7XG5cbiAgLy8gZmV0Y2hlc1xuICBjb25zdCBbcmVzcG9uc2VTaXRlcywgaXNMb2FkaW5nU2l0ZXMsIGVycm9yU2l0ZXNdID1cbiAgICB1c2VBcGlXaXRoRGFzaGJvYXJkUXVlcnk8RmFjdG9yaWVzUmVzcG9uc2U+KGZhY3Rvcmllc0VuZFBvaW50LCBwYXJhbXNBbGwpO1xuXG4gIC8vIDEpIEJ1aWxkIGEgcG9sbHV0aW9uIG1hcCBmcm9tIGJvdGggcmVzcG9uc2VzIChubyBzdGF0ZTsgcHVyZSBtZW1vKVxuICBjb25zdCBwb2xsdXRpb25CeVNpdGVJZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IG0gPSBuZXcgTWFwPG51bWJlciwgYW55PigpO1xuICAgIGlmIChyZXNwb25zZVNpdGVzPy5kYXRhKSB7XG4gICAgICBmb3IgKGNvbnN0IHtcbiAgICAgICAgc2l0ZV9pZCxcbiAgICAgICAgcG9sbHV0aW9uLFxuICAgICAgICBzZWN0b3JfbmFtZSxcbiAgICAgICAgc2VjdG9yX2lkLFxuICAgICAgICBjb250cmlidXRvcl9wZXJjZW50cyxcbiAgICAgIH0gb2YgcmVzcG9uc2VTaXRlcy5kYXRhKSB7XG4gICAgICAgIGNvbnN0IGV4dHJhRGF0YSA9IHsgc2VjdG9yX25hbWUsIGNvbnRyaWJ1dG9yX3BlcmNlbnRzLCBzZWN0b3JfaWQgfTtcbiAgICAgICAgaWYgKHBvbGx1dGlvbj8udHlwZV9kaXN0cmlidXRpb24pXG4gICAgICAgICAgZXh0cmFEYXRhWydwb2xsdXRpb24nXSA9IHBvbGx1dGlvbi50eXBlX2Rpc3RyaWJ1dGlvbjtcbiAgICAgICAgbS5zZXQoc2l0ZV9pZCwgZXh0cmFEYXRhKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG07XG4gIH0sIFtyZXNwb25zZVNpdGVzPy5kYXRhXSk7XG5cbiAgLy8gMikgQ3JlYXRlIGEgU0FGRSBjb3B5IG9mIHBvaW50X21hcF9kYXRhIHdpdGggcG9sbHV0aW9uIG1lcmdlZCBpbiAobm8gbXV0YXRpb25zKVxuICBjb25zdCBkZWNvcmF0ZWRQb2ludHNCeUlkID0gdXNlTWVtbygoKSA9PiB7XG4gICAgLy8gbWFwQnlJZChwb2ludHNfZGF0YS5pdGVtcykgcmV0dXJucyBhIHBsYWluIG9iamVjdCBrZXllZCBieSBpZDsgY2xvbmUgaXRcbiAgICBjb25zdCBiYXNlID0gbWFwQnlJZChwb2ludHNfZGF0YS5pdGVtcyk7XG4gICAgY29uc3QgY29weTogUmVjb3JkPG51bWJlciwgYW55PiA9IHt9O1xuICAgIGZvciAoY29uc3QgaWQgb2YgT2JqZWN0LmtleXMoYmFzZSkpIHtcbiAgICAgIGNvbnN0IG51bUlkID0gTnVtYmVyKGlkKTtcbiAgICAgIGNvbnN0IHBvbGx1dGlvbiA9IHBvbGx1dGlvbkJ5U2l0ZUlkLmdldChudW1JZCk7XG4gICAgICAvLyBzaGFsbG93IGNsb25lIGVhY2ggcG9pbnQ7IGFkZCBwb2xsdXRpb24gaWYgZXhpc3RzXG4gICAgICBjb3B5W251bUlkXSA9IHBvbGx1dGlvblxuICAgICAgICA/IHsgLi4uYmFzZVtudW1JZF0sIC4uLnBvbGx1dGlvbiB9XG4gICAgICAgIDogeyAuLi5iYXNlW251bUlkXSB9O1xuICAgIH1cbiAgICByZXR1cm4gY29weTtcbiAgfSwgW3BvaW50c19kYXRhLml0ZW1zLCBwb2xsdXRpb25CeVNpdGVJZF0pO1xuXG4gIC8vIDMpIENvbXB1dGUgZWRnZXNXaXRoRGV2aWNlIHNhZmVseS9tZW1vaXplZCAobm8gZXh0cmEgcmVuZGVycylcbiAgY29uc3QgZWRnZXNXaXRoRGV2aWNlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgcG9pbnRzV2l0aERldmljZSA9IG1hcEJ5SWQoXG4gICAgICBwb2ludHNfZGF0YS5pdGVtcy5maWx0ZXIoKHApID0+IHAuaGFzX2RldmljZSksXG4gICAgKTtcbiAgICByZXR1cm4gZWRnZXNfZGF0YS5pdGVtcy5maWx0ZXIoXG4gICAgICAoZWRnZSkgPT5cbiAgICAgICAgcG9pbnRzV2l0aERldmljZVtlZGdlLnNvdXJjZV9wb2ludF9pZF0gfHwgZWRnZS5kZXNjZW5kYW50c19oYXNfZGV2aWNlLFxuICAgICk7XG4gIH0sIFtwb2ludHNfZGF0YS5pdGVtcywgZWRnZXNfZGF0YS5pdGVtc10pO1xuXG4gIGNvbnN0IGZpbHRlclBvaW50cyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHBvaW50c09wdGlvbiA9IHt9O1xuICAgIGNvbnN0IHBvaW50TGlzdCA9IHBvaW50c19kYXRhLml0ZW1zO1xuICAgIGVkZ2VzV2l0aERldmljZS5mb3JFYWNoKChlZGdlKSA9PiB7XG4gICAgICBjb25zdCBzb3VyY2VQb2ludCA9IHBvaW50TGlzdC5maW5kKChwKSA9PiBwLmlkID09PSBlZGdlLnNvdXJjZV9wb2ludF9pZCk7XG4gICAgICBjb25zdCB0YXJnZXRQb2ludCA9IHBvaW50TGlzdC5maW5kKChwKSA9PiBwLmlkID09PSBlZGdlLnRhcmdldF9wb2ludF9pZCk7XG4gICAgICBpZiAoc291cmNlUG9pbnQpXG4gICAgICAgIHBvaW50c09wdGlvbltzb3VyY2VQb2ludC5pZF0gPSB7XG4gICAgICAgICAgaWQ6IHNvdXJjZVBvaW50LmlkLFxuICAgICAgICAgIG5hbWU6IHNvdXJjZVBvaW50Lmdyb3VwLm5hbWUsXG4gICAgICAgIH07XG4gICAgICBpZiAodGFyZ2V0UG9pbnQpXG4gICAgICAgIHBvaW50c09wdGlvblt0YXJnZXRQb2ludC5pZF0gPSB7XG4gICAgICAgICAgaWQ6IHRhcmdldFBvaW50LmlkLFxuICAgICAgICAgIG5hbWU6IHRhcmdldFBvaW50Lmdyb3VwLm5hbWUsXG4gICAgICAgIH07XG4gICAgfSk7XG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXMocG9pbnRzT3B0aW9uKTtcbiAgfSwgW3BvaW50c19kYXRhLml0ZW1zLCBlZGdlc1dpdGhEZXZpY2VdKTtcblxuICAvLyA0KSBCdWlsZCB0aGUgdHJlZSBPTkxZIHdoZW4gZGF0YSBpcyByZWFkeTsga2VlcCByZWZlcmVudGlhbCBzdGFiaWxpdHlcbiAgY29uc3QgdHJlZURhdGEgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNMb2FkaW5nU2l0ZXMgfHwgZXJyb3JTaXRlcykgcmV0dXJuIG51bGw7XG5cbiAgICByZXR1cm4gYnVpbGRUcmVlKGVkZ2VzV2l0aERldmljZSwgZGVjb3JhdGVkUG9pbnRzQnlJZCwgd2F0ZXJBdXRob3JpdHlOYW1lKTtcbiAgfSwgW1xuICAgIGVkZ2VzV2l0aERldmljZSxcbiAgICBkZWNvcmF0ZWRQb2ludHNCeUlkLFxuICAgIHdhdGVyQXV0aG9yaXR5TmFtZSxcbiAgICBpc0xvYWRpbmdTaXRlcyxcbiAgICBlcnJvclNpdGVzLFxuICBdKTtcblxuICBjb25zdCB1cGRhdGVGaWx0ZXIgPSAoYXBwbGllZEZpbHRlcikgPT4ge1xuICAgIC8vIFByb2Nlc3MgdGhlIGFwcGxpZWQgZmlsdGVyIGFzIG5lZWRlZFxuICAgIGNvbnN0IHNlbGVjdGVkRmlsdGVycyA9IHt9O1xuXG4gICAgYXBwbGllZEZpbHRlci5maWx0ZXJfaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgc2VsZWN0ZWRGaWx0ZXJzW2l0ZW0udHlwZV0gPSBpdGVtLnNlbGVjdGVkX29wdGlvbnM7XG4gICAgfSk7XG4gICAgc2V0RmlsdGVyT3B0aW9ucyhzZWxlY3RlZEZpbHRlcnMpO1xuICAgIGNvbnN0IHNhbXBsaW5nUGFyYW1ldGVycyA9IGFwcGxpZWRGaWx0ZXIuZmlsdGVyX2l0ZW1zLmZpbmQoXG4gICAgICAoaXRlbSkgPT4gaXRlbS50eXBlID09PSAnU2FtcGxpbmdQYXJhbWV0ZXJGaWx0ZXJJdGVtJyxcbiAgICApO1xuICAgIGlmIChzYW1wbGluZ1BhcmFtZXRlcnMpIHtcbiAgICAgIHNldEV4Y2VlZGVkU2l0ZUlkcyh7IHNob3VsZEZldGNoOiB0cnVlLCBzaXRlSWRzOiBbXSB9KTtcbiAgICAgIHNldEZpbHRlclBhcmFtZXRlcklkcyhzYW1wbGluZ1BhcmFtZXRlcnMuc2VsZWN0ZWRfb3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldEZpbHRlclBhcmFtZXRlcklkcyhudWxsKTtcbiAgICAgIHNldEV4Y2VlZGVkU2l0ZUlkcyh7IHNob3VsZEZldGNoOiBmYWxzZSwgc2l0ZUlkczogW10gfSk7XG4gICAgfVxuICAgIC8vIFlvdSBjYW4gdXBkYXRlIHN0YXRlIG9yIG1ha2UgQVBJIGNhbGxzIGJhc2VkIG9uIHRoZSBhcHBsaWVkIGZpbHRlclxuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGZpbHRlclBhcmFtZXRlcklkcz8ubGVuZ3RoID09PSAwKSB7XG4gICAgICBzZXRFeGNlZWRlZFNpdGVJZHMoeyBzaG91bGRGZXRjaDogZmFsc2UsIHNpdGVJZHM6IFtdIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIWV4Y2VlZGVkU2l0ZUlkcy5zaG91bGRGZXRjaCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBmZXRjaEV4Y2VlZGVkU2l0ZXMgPSBhc3luYyAoKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKFxuICAgICAgICAgIHVybHMoeyBwYXJhbWV0ZXJJZHM6IGZpbHRlclBhcmFtZXRlcklkcywgd2F0ZXJBdXRob3JpdHlJZCB9KS5oaWVyYXJjaHlcbiAgICAgICAgICAgIC5leGNlZWRhbmNlQnlQYXJhbWV0ZXIudXJsLFxuICAgICAgICApO1xuICAgICAgICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICAgICAgY29uc3Qgc2l0ZUlkcyA9IGRhdGEuc2l0ZV9pZHMgfHwgW107XG4gICAgICAgIHNldEV4Y2VlZGVkU2l0ZUlkcyh7IHNob3VsZEZldGNoOiBmYWxzZSwgc2l0ZUlkcyB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIGV4Y2VlZGVkIHNpdGVzOicsIGVycm9yKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgZmV0Y2hFeGNlZWRlZFNpdGVzKCk7XG4gIH0sIFtmaWx0ZXJQYXJhbWV0ZXJJZHMsIGV4Y2VlZGVkU2l0ZUlkc10pO1xuXG4gIGNvbnN0IHJlc2V0RmlsdGVyID0gKGRlZmF1bHRGaWx0ZXIpID0+IHtcbiAgICBzZXRGaWx0ZXJQYXJhbWV0ZXJJZHMobnVsbCk7XG4gICAgc2V0RXhjZWVkZWRTaXRlSWRzKFtdKTtcbiAgICB1cGRhdGVGaWx0ZXIoZGVmYXVsdEZpbHRlcik7XG4gICAgc2V0VHJlZUtleSh0cmVlS2V5ICsgMSk7XG4gIH07XG5cbiAgaWYgKCFpc0hpZXJhcmNoeVRhYikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17J2hpZXJhcmNoeS1ncmFwaC1wYWdlJ30+XG4gICAgICB7IXBvaW50c19kYXRhLmlzRmV0Y2hpbmcgJiYgdHJlZUtleSA+IC0xICYmIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8RmlsdGVyQ29udGFpbmVyXG4gICAgICAgICAgICBmaWx0ZXJQb3B1cE9wZW49e3RydWV9XG4gICAgICAgICAgICBmZXRjaFR5cGU9eydIaWVyYXJjaHlGaWx0ZXInfVxuICAgICAgICAgICAgYXBwbHlMb2dpYz17dXBkYXRlRmlsdGVyfVxuICAgICAgICAgICAgY3VzdG9tX3BvaW50cz17ZmlsdGVyUG9pbnRzfVxuICAgICAgICAgICAgcmVzZXRGaWx0ZXI9e3Jlc2V0RmlsdGVyfVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2ZpbHRlclBhcmFtZXRlcklkcyAmJiAoXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIHN0eWxlPXt7IG1hcmdpbklubGluZVN0YXJ0OiAyMCB9fVxuICAgICAgICAgICAgPntgJHtleGNlZWRlZFNpdGVJZHMuc2l0ZUlkcy5sZW5ndGh9IHNpdGVzIHdpdGggZXhjZWVkaW5nIHJlc3VsdHNgfTwvZGl2PlxuICAgICAgICAgICl9XG4gICAgICAgIDwvPlxuICAgICAgKX1cblxuICAgICAgPENvbnRhaW5lciBmbHVpZCBjbGFzc05hbWU9XCJwLTBcIiBzdHlsZT17eyBvdmVyZmxvdzogJ2hpZGRlbicgfX0+XG4gICAgICAgIDxSb3cgY2xhc3NOYW1lPVwibWFwLWNvbHVtblwiIHNtPXsxMn0+XG4gICAgICAgICAgPENvbCBzdHlsZT17eyBoZWlnaHQ6ICc4NXZoJyB9fT5cbiAgICAgICAgICAgIHtlZGdlc19kYXRhLmlzRmV0Y2hpbmcgfHxcbiAgICAgICAgICAgIHBvaW50c19kYXRhLmlzRmV0Y2hpbmcgfHxcbiAgICAgICAgICAgICFmaWx0ZXJPcHRpb25zIHx8XG4gICAgICAgICAgICAhdHJlZURhdGEgfHxcbiAgICAgICAgICAgIGlzTG9hZGluZ1NpdGVzID8gKFxuICAgICAgICAgICAgICA8TG9hZGVyIC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QXV0b0ZpdFRyZWVcbiAgICAgICAgICAgICAgICB0cmVlS2V5PXt0cmVlS2V5fVxuICAgICAgICAgICAgICAgIGluaXRpYWxEZXB0aD17MTJ9XG4gICAgICAgICAgICAgICAgZGF0YT17dHJlZURhdGF9XG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRGaWx0ZXJzPXtmaWx0ZXJPcHRpb25zfVxuICAgICAgICAgICAgICAgIGV4Y2VlZGVkU2l0ZUlkcz17ZXhjZWVkZWRTaXRlSWRzLnNpdGVJZHN9XG4gICAgICAgICAgICAgICAgb25Ob2RlQ2xpY2s9e29uTm9kZUNsaWNrfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxSaWdodFBhbmVsXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17YHJpZ2h0LXBhbmVsICR7c2hvd1JpZ2h0UGFuZWwgPyAnb3BlbicgOiAnJ31gfVxuICAgICAgICAgICAgICBwb2ludD17c2VsZWN0ZWRQb2ludH1cbiAgICAgICAgICAgICAgb25DbG9zZT17KCkgPT4ge1xuICAgICAgICAgICAgICAgIHNldFNlbGVjdGVkUG9pbnQobnVsbCk7XG4gICAgICAgICAgICAgICAgc2V0U2hvd1JpZ2h0UGFuZWwoZmFsc2UpO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgPC9Sb3c+XG4gICAgICA8L0NvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5leHBvcnQgZGVmYXVsdCBIaWVyYXJjaHlHcmFwaDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLFlBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLE1BQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFdBQUEsR0FBQUosT0FBQTtBQUVBLElBQUFLLFlBQUEsR0FBQUgsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFNLGVBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLE9BQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLFdBQUEsR0FBQU4sc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFTLEtBQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLHlCQUFBLEdBQUFWLE9BQUE7QUFFQSxJQUFBVyxnQkFBQSxHQUFBVCxzQkFBQSxDQUFBRixPQUFBO0FBQStGLFNBQUFZLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsV0FB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
@@ -16,9 +16,7 @@ var MicroStackedBar = function MicroStackedBar(_ref) {
16
16
  height = _ref$height === void 0 ? 8 : _ref$height,
17
17
  _ref$radius = _ref.radius,
18
18
  radius = _ref$radius === void 0 ? 4 : _ref$radius;
19
- var total = segments.reduce(function (s, x) {
20
- return s + x.value;
21
- }, 0) || 1;
19
+ var total = 100;
22
20
  var x = 0;
23
21
  return /*#__PURE__*/_react.default.createElement("svg", {
24
22
  width: width,
@@ -39,14 +37,26 @@ var MicroStackedBar = function MicroStackedBar(_ref) {
39
37
  clipPath: "url(#r)"
40
38
  }, segments.map(function (s, i) {
41
39
  var w = s.value / total * width;
42
- var rect = /*#__PURE__*/_react.default.createElement("rect", {
43
- key: i,
44
- x: x,
40
+ var segmentX = x;
41
+ var textX = segmentX + w / 2;
42
+ var rect = /*#__PURE__*/_react.default.createElement("g", {
43
+ key: i
44
+ }, /*#__PURE__*/_react.default.createElement("rect", {
45
+ x: segmentX,
45
46
  y: 0,
46
47
  width: w,
47
48
  height: height,
48
49
  fill: s.color
49
- });
50
+ }), /*#__PURE__*/_react.default.createElement("text", {
51
+ x: Math.max(textX, 25),
52
+ y: height / 1.8,
53
+ textAnchor: "middle",
54
+ dominantBaseline: "middle",
55
+ fill: "#fff",
56
+ stroke: 'grey',
57
+ strokeWidth: 0.8,
58
+ fontSize: 'x-large'
59
+ }, s.value, "%"));
50
60
  x += w;
51
61
  return rect;
52
62
  })), /*#__PURE__*/_react.default.createElement("rect", {
@@ -62,4 +72,4 @@ var MicroStackedBar = function MicroStackedBar(_ref) {
62
72
  };
63
73
  var _default = MicroStackedBar;
64
74
  exports.default = _default;
65
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIk1pY3JvU3RhY2tlZEJhciIsIl9yZWYiLCJzZWdtZW50cyIsIl9yZWYkd2lkdGgiLCJ3aWR0aCIsIl9yZWYkaGVpZ2h0IiwiaGVpZ2h0IiwiX3JlZiRyYWRpdXMiLCJyYWRpdXMiLCJ0b3RhbCIsInJlZHVjZSIsInMiLCJ4IiwidmFsdWUiLCJkZWZhdWx0IiwiY3JlYXRlRWxlbWVudCIsInN0eWxlIiwiZGlzcGxheSIsImlkIiwieSIsInJ4IiwicnkiLCJjbGlwUGF0aCIsIm1hcCIsImkiLCJ3IiwicmVjdCIsImtleSIsImZpbGwiLCJjb2xvciIsInN0cm9rZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91aS1raXQvSGllcmFyY2h5R3JhcGgvTWljcm9TdGFja2VkQmFyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG4vLyBNaWNyb1N0YWNrZWRCYXIudHN4XG50eXBlIFNlZyA9IHsgdmFsdWU6IG51bWJlcjsgY29sb3I6IHN0cmluZzsgdGl0bGU/OiBzdHJpbmcgfTsgLy8gdmFsdWUgY2FuIGJlIDAuLjEgb3IgMC4uMTAwXG5jb25zdCBNaWNyb1N0YWNrZWRCYXIgPSAoe1xuICBzZWdtZW50cyxcbiAgd2lkdGggPSA4MCxcbiAgaGVpZ2h0ID0gOCxcbiAgcmFkaXVzID0gNCxcbn06IHtcbiAgc2VnbWVudHM6IFNlZ1tdO1xuICB3aWR0aD86IG51bWJlcjtcbiAgaGVpZ2h0PzogbnVtYmVyO1xuICByYWRpdXM/OiBudW1iZXI7XG59KSA9PiB7XG4gIGNvbnN0IHRvdGFsID0gc2VnbWVudHMucmVkdWNlKChzLCB4KSA9PiBzICsgeC52YWx1ZSwgMCkgfHwgMTtcbiAgbGV0IHggPSAwO1xuICByZXR1cm4gKFxuICAgIDxzdmcgd2lkdGg9e3dpZHRofSBoZWlnaHQ9e2hlaWdodH0gc3R5bGU9e3sgZGlzcGxheTogJ2Jsb2NrJyB9fT5cbiAgICAgIDxkZWZzPlxuICAgICAgICA8Y2xpcFBhdGggaWQ9XCJyXCI+XG4gICAgICAgICAgPHJlY3RcbiAgICAgICAgICAgIHg9XCIwXCJcbiAgICAgICAgICAgIHk9XCIwXCJcbiAgICAgICAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgICAgICAgIGhlaWdodD17aGVpZ2h0fVxuICAgICAgICAgICAgcng9e3JhZGl1c31cbiAgICAgICAgICAgIHJ5PXtyYWRpdXN9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9jbGlwUGF0aD5cbiAgICAgIDwvZGVmcz5cbiAgICAgIDxnIGNsaXBQYXRoPVwidXJsKCNyKVwiPlxuICAgICAgICB7c2VnbWVudHMubWFwKChzLCBpKSA9PiB7XG4gICAgICAgICAgY29uc3QgdyA9IChzLnZhbHVlIC8gdG90YWwpICogd2lkdGg7XG4gICAgICAgICAgY29uc3QgcmVjdCA9IChcbiAgICAgICAgICAgIDxyZWN0XG4gICAgICAgICAgICAgIGtleT17aX1cbiAgICAgICAgICAgICAgeD17eH1cbiAgICAgICAgICAgICAgeT17MH1cbiAgICAgICAgICAgICAgd2lkdGg9e3d9XG4gICAgICAgICAgICAgIGhlaWdodD17aGVpZ2h0fVxuICAgICAgICAgICAgICBmaWxsPXtzLmNvbG9yfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApO1xuICAgICAgICAgIHggKz0gdztcbiAgICAgICAgICByZXR1cm4gcmVjdDtcbiAgICAgICAgfSl9XG4gICAgICA8L2c+XG4gICAgICA8cmVjdFxuICAgICAgICB4PVwiMFwiXG4gICAgICAgIHk9XCIwXCJcbiAgICAgICAgd2lkdGg9e3dpZHRofVxuICAgICAgICBoZWlnaHQ9e2hlaWdodH1cbiAgICAgICAgcng9e3JhZGl1c31cbiAgICAgICAgcnk9e3JhZGl1c31cbiAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICBzdHJva2U9XCIjQkRCREJEXCJcbiAgICAgIC8+XG4gICAgPC9zdmc+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
75
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIk1pY3JvU3RhY2tlZEJhciIsIl9yZWYiLCJzZWdtZW50cyIsIl9yZWYkd2lkdGgiLCJ3aWR0aCIsIl9yZWYkaGVpZ2h0IiwiaGVpZ2h0IiwiX3JlZiRyYWRpdXMiLCJyYWRpdXMiLCJ0b3RhbCIsIngiLCJkZWZhdWx0IiwiY3JlYXRlRWxlbWVudCIsInN0eWxlIiwiZGlzcGxheSIsImlkIiwieSIsInJ4IiwicnkiLCJjbGlwUGF0aCIsIm1hcCIsInMiLCJpIiwidyIsInZhbHVlIiwic2VnbWVudFgiLCJ0ZXh0WCIsInJlY3QiLCJrZXkiLCJmaWxsIiwiY29sb3IiLCJNYXRoIiwibWF4IiwidGV4dEFuY2hvciIsImRvbWluYW50QmFzZWxpbmUiLCJzdHJva2UiLCJzdHJva2VXaWR0aCIsImZvbnRTaXplIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3VpLWtpdC9IaWVyYXJjaHlHcmFwaC9NaWNyb1N0YWNrZWRCYXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbi8vIE1pY3JvU3RhY2tlZEJhci50c3hcbnR5cGUgU2VnID0geyB2YWx1ZTogbnVtYmVyOyBjb2xvcjogc3RyaW5nOyB0aXRsZT86IHN0cmluZyB9OyAvLyB2YWx1ZSBjYW4gYmUgMC4uMSBvciAwLi4xMDBcbmNvbnN0IE1pY3JvU3RhY2tlZEJhciA9ICh7XG4gIHNlZ21lbnRzLFxuICB3aWR0aCA9IDgwLFxuICBoZWlnaHQgPSA4LFxuICByYWRpdXMgPSA0LFxufToge1xuICBzZWdtZW50czogU2VnW107XG4gIHdpZHRoPzogbnVtYmVyO1xuICBoZWlnaHQ/OiBudW1iZXI7XG4gIHJhZGl1cz86IG51bWJlcjtcbn0pID0+IHtcbiAgY29uc3QgdG90YWwgPSAxMDA7XG4gIGxldCB4ID0gMDtcbiAgcmV0dXJuIChcbiAgICA8c3ZnIHdpZHRoPXt3aWR0aH0gaGVpZ2h0PXtoZWlnaHR9IHN0eWxlPXt7IGRpc3BsYXk6ICdibG9jaycgfX0+XG4gICAgICA8ZGVmcz5cbiAgICAgICAgPGNsaXBQYXRoIGlkPVwiclwiPlxuICAgICAgICAgIDxyZWN0XG4gICAgICAgICAgICB4PVwiMFwiXG4gICAgICAgICAgICB5PVwiMFwiXG4gICAgICAgICAgICB3aWR0aD17d2lkdGh9XG4gICAgICAgICAgICBoZWlnaHQ9e2hlaWdodH1cbiAgICAgICAgICAgIHJ4PXtyYWRpdXN9XG4gICAgICAgICAgICByeT17cmFkaXVzfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvY2xpcFBhdGg+XG4gICAgICA8L2RlZnM+XG4gICAgICA8ZyBjbGlwUGF0aD1cInVybCgjcilcIj5cbiAgICAgICAge3NlZ21lbnRzLm1hcCgocywgaSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHcgPSAocy52YWx1ZSAvIHRvdGFsKSAqIHdpZHRoO1xuICAgICAgICAgIGNvbnN0IHNlZ21lbnRYID0geDtcbiAgICAgICAgICBjb25zdCB0ZXh0WCA9IHNlZ21lbnRYICsgdyAvIDI7XG4gICAgICAgICAgY29uc3QgcmVjdCA9IChcbiAgICAgICAgICAgIDxnIGtleT17aX0+XG4gICAgICAgICAgICAgIDxyZWN0XG4gICAgICAgICAgICAgICAgeD17c2VnbWVudFh9XG4gICAgICAgICAgICAgICAgeT17MH1cbiAgICAgICAgICAgICAgICB3aWR0aD17d31cbiAgICAgICAgICAgICAgICBoZWlnaHQ9e2hlaWdodH1cbiAgICAgICAgICAgICAgICBmaWxsPXtzLmNvbG9yfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8dGV4dFxuICAgICAgICAgICAgICAgIHg9e01hdGgubWF4KHRleHRYLCAyNSl9XG4gICAgICAgICAgICAgICAgeT17aGVpZ2h0IC8gMS44fVxuICAgICAgICAgICAgICAgIHRleHRBbmNob3I9XCJtaWRkbGVcIlxuICAgICAgICAgICAgICAgIGRvbWluYW50QmFzZWxpbmU9XCJtaWRkbGVcIlxuICAgICAgICAgICAgICAgIGZpbGw9XCIjZmZmXCJcbiAgICAgICAgICAgICAgICBzdHJva2U9eydncmV5J31cbiAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17MC44fVxuICAgICAgICAgICAgICAgIGZvbnRTaXplPXsneC1sYXJnZSd9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7cy52YWx1ZX0lXG4gICAgICAgICAgICAgIDwvdGV4dD5cbiAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICApO1xuICAgICAgICAgIHggKz0gdztcbiAgICAgICAgICByZXR1cm4gcmVjdDtcbiAgICAgICAgfSl9XG4gICAgICA8L2c+XG4gICAgICA8cmVjdFxuICAgICAgICB4PVwiMFwiXG4gICAgICAgIHk9XCIwXCJcbiAgICAgICAgd2lkdGg9e3dpZHRofVxuICAgICAgICBoZWlnaHQ9e2hlaWdodH1cbiAgICAgICAgcng9e3JhZGl1c31cbiAgICAgICAgcnk9e3JhZGl1c31cbiAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICBzdHJva2U9XCIjQkRCREJEXCJcbiAgICAgIC8+XG4gICAgPC9zdmc+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBNaWNyb1N0YWNrZWRCYXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQTtBQUM2RDtBQUM3RCxJQUFNQyxlQUFlLEdBQUcsU0FBbEJBLGVBQWVBLENBQUFDLElBQUEsRUFVZjtFQUFBLElBVEpDLFFBQVEsR0FBQUQsSUFBQSxDQUFSQyxRQUFRO0lBQUFDLFVBQUEsR0FBQUYsSUFBQSxDQUNSRyxLQUFLO0lBQUxBLEtBQUssR0FBQUQsVUFBQSxjQUFHLEVBQUUsR0FBQUEsVUFBQTtJQUFBRSxXQUFBLEdBQUFKLElBQUEsQ0FDVkssTUFBTTtJQUFOQSxNQUFNLEdBQUFELFdBQUEsY0FBRyxDQUFDLEdBQUFBLFdBQUE7SUFB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
@@ -17,40 +17,38 @@ var _reactBootstrap = require("react-bootstrap");
17
17
  var _theme = require("../../styles/theme/theme");
18
18
  var _icons = require("utilities/map/icons");
19
19
  require("./style.scss");
20
- var _PollutionScorePercent = require("../../Widgets/MostPolluting/components/PollutionScorePercent");
21
- var _scoreToData = require("../../utilities/scoreToData");
22
- var _SeverityBadge = require("../../pages/DashboardMap/SeverityBadge");
23
20
  var NodeLayout = function NodeLayout(_ref) {
24
- var _nodeDatum$attributes, _nodeDatum$attributes2, _nodeDatum$attributes3, _nodeDatum$attributes4, _nodeDatum$name, _nodeDatum$name$toLow, _nodeDatum$attributes5, _nodeDatum$attributes6, _nodeDatum$attributes7, _nodeDatum$attributes8, _nodeDatum$attributes9, _nodeDatum$attributes10;
21
+ var _nodeDatum$attributes, _nodeDatum$attributes2, _nodeDatum$attributes3, _nodeDatum$attributes4, _nodeDatum$attributes5;
25
22
  var nodeDatum = _ref.nodeDatum,
26
23
  toggleNode = _ref.toggleNode,
27
24
  searchTerm = _ref.searchTerm,
28
25
  showSamplers = _ref.showSamplers,
26
+ _ref$isHighlight = _ref.isHighlight,
27
+ isHighlight = _ref$isHighlight === void 0 ? false : _ref$isHighlight,
28
+ _ref$isExceeded = _ref.isExceeded,
29
+ isExceeded = _ref$isExceeded === void 0 ? false : _ref$isExceeded,
29
30
  children = _ref.children,
30
31
  contentStyle = _ref.contentStyle;
31
32
  var factoryType = ((_nodeDatum$attributes = nodeDatum.attributes) === null || _nodeDatum$attributes === void 0 ? void 0 : _nodeDatum$attributes.type) || '';
32
33
  var isLeafNode = !nodeDatum.children || nodeDatum.children.length === 0;
33
34
  var isMonitored = (_nodeDatum$attributes2 = nodeDatum.attributes) === null || _nodeDatum$attributes2 === void 0 ? void 0 : _nodeDatum$attributes2.monitored;
34
- var score = (_nodeDatum$attributes3 = (_nodeDatum$attributes4 = nodeDatum.attributes) === null || _nodeDatum$attributes4 === void 0 ? void 0 : _nodeDatum$attributes4.score) !== null && _nodeDatum$attributes3 !== void 0 ? _nodeDatum$attributes3 : -1;
35
- var borderColor = _theme.theme.natural.n30;
36
- var isHighlighted = !!searchTerm && (((_nodeDatum$name = nodeDatum.name) === null || _nodeDatum$name === void 0 ? void 0 : (_nodeDatum$name$toLow = _nodeDatum$name.toLowerCase()) === null || _nodeDatum$name$toLow === void 0 ? void 0 : _nodeDatum$name$toLow.includes(searchTerm.toLowerCase())) || (nodeDatum === null || nodeDatum === void 0 ? void 0 : (_nodeDatum$attributes5 = nodeDatum.attributes) === null || _nodeDatum$attributes5 === void 0 ? void 0 : (_nodeDatum$attributes6 = _nodeDatum$attributes5.area_name) === null || _nodeDatum$attributes6 === void 0 ? void 0 : (_nodeDatum$attributes7 = _nodeDatum$attributes6.toLowerCase()) === null || _nodeDatum$attributes7 === void 0 ? void 0 : _nodeDatum$attributes7.includes(searchTerm.toLowerCase())));
37
- // const isFocused = siteID === nodeDatum.attributes?.point_id?.toString();
38
-
35
+ var borderColor = _theme.theme.natural.n60;
39
36
  var cardStyle = {
40
37
  borderRadius: '4px',
41
- borderColor: isHighlighted ? _theme.theme.brand.surface.muted : borderColor,
38
+ borderColor: isExceeded ? _theme.theme.colorScheme.data.R100 : isHighlight ? _theme.theme.brand.surface.muted : borderColor,
42
39
  borderStyle: isMonitored ? 'solid' : 'dashed',
43
40
  borderWidth: '3px',
41
+ color: isHighlight || isExceeded ? 'white' : _theme.theme.natural.text.default,
44
42
  backgroundColor: '#FFFFFF',
45
43
  stroke: 'none',
46
44
  height: '170px'
47
45
  };
48
- var title = factoryType === 'area' ? ((_nodeDatum$attributes8 = nodeDatum.attributes) === null || _nodeDatum$attributes8 === void 0 ? void 0 : _nodeDatum$attributes8.area_name) || nodeDatum.name : nodeDatum.name;
46
+ var title = factoryType === 'area' ? ((_nodeDatum$attributes3 = nodeDatum.attributes) === null || _nodeDatum$attributes3 === void 0 ? void 0 : _nodeDatum$attributes3.area_name) || nodeDatum.name : nodeDatum.name;
49
47
  // const onShowDetails = (event) => {
50
48
  // event.stopPropagation();
51
49
  // onNodeClick(nodeDatum);
52
50
  // };
53
- var isShowSampler = showSamplers && ((_nodeDatum$attributes9 = nodeDatum.attributes) === null || _nodeDatum$attributes9 === void 0 ? void 0 : _nodeDatum$attributes9.has_sampler);
51
+ var isShowSampler = showSamplers && ((_nodeDatum$attributes4 = nodeDatum.attributes) === null || _nodeDatum$attributes4 === void 0 ? void 0 : _nodeDatum$attributes4.has_sampler);
54
52
  if (!nodeDatum.name) {
55
53
  return null;
56
54
  }
@@ -58,15 +56,16 @@ var NodeLayout = function NodeLayout(_ref) {
58
56
  onClick: toggleNode,
59
57
  style: {
60
58
  cursor: 'pointer'
61
- }
59
+ },
60
+ className: isExceeded ? 'exceeded' : isHighlight ? 'highlight' : ''
62
61
  }, /*#__PURE__*/_react.default.createElement("foreignObject", {
63
62
  x: "-100",
64
63
  y: "-137",
65
64
  width: "200",
66
65
  height: "250"
67
- }, ((_nodeDatum$attributes10 = nodeDatum.attributes) === null || _nodeDatum$attributes10 === void 0 ? void 0 : _nodeDatum$attributes10.point_id) && /*#__PURE__*/_react.default.createElement(_utils.ActionsContainer, null, /*#__PURE__*/_react.default.createElement(_StyledLink.StyledLink, {
66
+ }, ((_nodeDatum$attributes5 = nodeDatum.attributes) === null || _nodeDatum$attributes5 === void 0 ? void 0 : _nodeDatum$attributes5.point_id) && /*#__PURE__*/_react.default.createElement(_utils.ActionsContainer, null, /*#__PURE__*/_react.default.createElement(_StyledLink.StyledLink, {
68
67
  style: {
69
- stroke: _theme.theme.brand.surface.default,
68
+ stroke: _theme.theme.brand.surface.muted,
70
69
  strokeWidth: 1,
71
70
  background: 'white',
72
71
  marginInlineStart: 64
@@ -109,29 +108,15 @@ var NodeLayout = function NodeLayout(_ref) {
109
108
  style: cardStyle,
110
109
  headerRight: /*#__PURE__*/_react.default.createElement(_NodeIcon.default, {
111
110
  type: factoryType
112
- })
111
+ }),
112
+ linkedHeaderUrl: nodeDatum.attributes ? "/dashboard_v2/site/".concat(nodeDatum.attributes.point_id) : ''
113
113
  }, /*#__PURE__*/_react.default.createElement("div", {
114
114
  className: 'node-content',
115
115
  style: contentStyle
116
- }, nodeDatum.attributes && isMonitored &&
117
- /*#__PURE__*/
118
- // <SeverityBadge
119
- // className={'score'}
120
- // props={{ score, has_device: isMonitored }}
121
- // /> &&
122
- _react.default.createElement(_PollutionScorePercent.Wrapper, {
123
- scoreColor: (0, _scoreToData.scoreToColor)(score),
124
- up: true
125
- }, /*#__PURE__*/_react.default.createElement(_SeverityBadge.SeverityBadge, {
126
- props: {
127
- score: score,
128
- has_device: isMonitored
129
- },
130
- className: 'score'
131
- }))))), isLeafNode && /*#__PURE__*/_react.default.createElement(_LeafSign.default, {
116
+ }, nodeDatum.attributes && isMonitored && children))), isLeafNode && /*#__PURE__*/_react.default.createElement(_LeafSign.default, {
132
117
  color: borderColor
133
118
  }));
134
119
  };
135
120
  var _default = NodeLayout;
136
121
  exports.default = _default;
137
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9DYXJkTGF5b3V0IiwiX05vZGVJY29uIiwiX1RvcE5hdmJhciIsIl9TdHlsZWRMaW5rIiwiX3V0aWxzIiwiX0xlYWZTaWduIiwiX3JlYWN0STE4bmV4dCIsIl9yZWFjdEJvb3RzdHJhcCIsIl90aGVtZSIsIl9pY29ucyIsIl9Qb2xsdXRpb25TY29yZVBlcmNlbnQiLCJfc2NvcmVUb0RhdGEiLCJfU2V2ZXJpdHlCYWRnZSIsIk5vZGVMYXlvdXQiLCJfcmVmIiwiX25vZGVEYXR1bSRhdHRyaWJ1dGVzIiwiX25vZGVEYXR1bSRhdHRyaWJ1dGVzMiIsIl9ub2RlRGF0dW0kYXR0cmlidXRlczMiLCJfbm9kZURhdHVtJGF0dHJpYnV0ZXM0IiwiX25vZGVEYXR1bSRuYW1lIiwiX25vZGVEYXR1bSRuYW1lJHRvTG93IiwiX25vZGVEYXR1bSRhdHRyaWJ1dGVzNSIsIl9ub2RlRGF0dW0kYXR0cmlidXRlczYiLCJfbm9kZURhdHVtJGF0dHJpYnV0ZXM3IiwiX25vZGVEYXR1bSRhdHRyaWJ1dGVzOCIsIl9ub2RlRGF0dW0kYXR0cmlidXRlczkiLCJfbm9kZURhdHVtJGF0dHJpYnV0ZXMxMCIsIm5vZGVEYXR1bSIsInRvZ2dsZU5vZGUiLCJzZWFyY2hUZXJtIiwic2hvd1NhbXBsZXJzIiwiY2hpbGRyZW4iLCJjb250ZW50U3R5bGUiLCJmYWN0b3J5VHlwZSIsImF0dHJpYnV0ZXMiLCJ0eXBlIiwiaXNMZWFmTm9kZSIsImxlbmd0aCIsImlzTW9uaXRvcmVkIiwibW9uaXRvcmVkIiwic2NvcmUiLCJib3JkZXJDb2xvciIsInRoZW1lIiwibmF0dXJhbCIsIm4zMCIsImlzSGlnaGxpZ2h0ZWQiLCJuYW1lIiwidG9Mb3dlckNhc2UiLCJpbmNsdWRlcyIsImFyZWFfbmFtZSIsImNhcmRTdHlsZSIsImJvcmRlclJhZGl1cyIsImJyYW5kIiwic3VyZmFjZSIsIm11dGVkIiwiYm9yZGVyU3R5bGUiLCJib3JkZXJXaWR0aCIsImJhY2tncm91bmRDb2xvciIsInN0cm9rZSIsImhlaWdodCIsInRpdGxlIiwiaXNTaG93U2FtcGxlciIsImhhc19zYW1wbGVyIiwiZGVmYXVsdCIsImNyZWF0ZUVsZW1lbnQiLCJvbkNsaWNrIiwic3R5bGUiLCJjdXJzb3IiLCJ4IiwieSIsIndpZHRoIiwicG9pbnRfaWQiLCJBY3Rpb25zQ29udGFpbmVyIiwiU3R5bGVkTGluayIsInN0cm9rZVdpZHRoIiwiYmFja2dyb3VuZCIsIm1hcmdpbklubGluZVN0YXJ0IiwidGFyZ2V0IiwidXBkYXRlUGFyYW1zIiwidmlldyIsInRvIiwiY29uY2F0IiwiZSIsInN0b3BQcm9wYWdhdGlvbiIsIk92ZXJsYXlUcmlnZ2VyIiwib3ZlcmxheSIsIlRvb2x0aXAiLCJpZCIsInBsYWNlbWVudCIsIlRyYW5zIiwiaTE4bktleSIsIk1hcFN2ZyIsImNsYXNzTmFtZSIsInNyYyIsInNhbXBsZXJJY29uIiwiYWx0IiwiaGVhZGVyUmlnaHQiLCJXcmFwcGVyIiwic2NvcmVDb2xvciIsInNjb3JlVG9Db2xvciIsInVwIiwiU2V2ZXJpdHlCYWRnZSIsInByb3BzIiwiaGFzX2RldmljZSIsImNvbG9yIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3VpLWtpdC9IaWVyYXJjaHlHcmFwaC9Ob2RlTGF5b3V0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IENhcmRMYXlvdXQgZnJvbSAnLi4vLi4vV2lkZ2V0cy9Nb3N0UG9sbHV0aW5nL0ZhY3Rvcmllcy9GYWN0b3J5Qm94L0NhcmRMYXlvdXQnO1xuaW1wb3J0IE5vZGVJY29uIGZyb20gJy4vTm9kZUljb24nO1xuaW1wb3J0IHsgTWFwU3ZnIH0gZnJvbSAnLi4vLi4vYXNzZXRzL2ljb25zL1RvcE5hdmJhcic7XG5pbXBvcnQgeyBTdHlsZWRMaW5rIH0gZnJvbSAnc3JjL2NvbXBvbmVudHMvTGlua3MvU3R5bGVkTGluay9TdHlsZWRMaW5rJztcbmltcG9ydCB7IEFjdGlvbnNDb250YWluZXIsIE5vZGVQcm9wcyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IExlYWZTaWduIGZyb20gJy4vTGVhZlNpZ24nO1xuaW1wb3J0IHsgVHJhbnMgfSBmcm9tICdyZWFjdC1pMThuZXh0JztcbmltcG9ydCB7IE92ZXJsYXlUcmlnZ2VyLCBUb29sdGlwIH0gZnJvbSAncmVhY3QtYm9vdHN0cmFwJztcbmltcG9ydCB7IHRoZW1lIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3RoZW1lL3RoZW1lJztcbmltcG9ydCB7IHNhbXBsZXJJY29uIH0gZnJvbSAnc3JjL3V0aWxpdGllcy9tYXAvaWNvbnMnO1xuaW1wb3J0ICcuL3N0eWxlLnNjc3MnO1xuaW1wb3J0IHsgV3JhcHBlciB9IGZyb20gJy4uLy4uL1dpZGdldHMvTW9zdFBvbGx1dGluZy9jb21wb25lbnRzL1BvbGx1dGlvblNjb3JlUGVyY2VudCc7XG5pbXBvcnQgeyBzY29yZVRvQ29sb3IgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvc2NvcmVUb0RhdGEnO1xuaW1wb3J0IHsgU2V2ZXJpdHlCYWRnZSB9IGZyb20gJy4uLy4uL3BhZ2VzL0Rhc2hib2FyZE1hcC9TZXZlcml0eUJhZGdlJztcblxuY29uc3QgTm9kZUxheW91dCA9ICh7XG4gIG5vZGVEYXR1bSxcbiAgdG9nZ2xlTm9kZSxcbiAgc2VhcmNoVGVybSxcbiAgc2hvd1NhbXBsZXJzLFxuICBjaGlsZHJlbixcbiAgY29udGVudFN0eWxlLFxufTogTm9kZVByb3BzKSA9PiB7XG4gIGNvbnN0IGZhY3RvcnlUeXBlID0gbm9kZURhdHVtLmF0dHJpYnV0ZXM/LnR5cGUgfHwgJyc7XG4gIGNvbnN0IGlzTGVhZk5vZGUgPSAhbm9kZURhdHVtLmNoaWxkcmVuIHx8IG5vZGVEYXR1bS5jaGlsZHJlbi5sZW5ndGggPT09IDA7XG4gIGNvbnN0IGlzTW9uaXRvcmVkID0gbm9kZURhdHVtLmF0dHJpYnV0ZXM/Lm1vbml0b3JlZDtcbiAgY29uc3Qgc2NvcmUgPSBub2RlRGF0dW0uYXR0cmlidXRlcz8uc2NvcmUgPz8gLTE7XG4gIGNvbnN0IGJvcmRlckNvbG9yID0gdGhlbWUubmF0dXJhbC5uMzA7XG4gIGNvbnN0IGlzSGlnaGxpZ2h0ZWQgPVxuICAgICEhc2VhcmNoVGVybSAmJlxuICAgIChub2RlRGF0dW0ubmFtZT8udG9Mb3dlckNhc2UoKT8uaW5jbHVkZXMoc2VhcmNoVGVybS50b0xvd2VyQ2FzZSgpKSB8fFxuICAgICAgbm9kZURhdHVtPy5hdHRyaWJ1dGVzPy5hcmVhX25hbWVcbiAgICAgICAgPy50b0xvd2VyQ2FzZSgpXG4gICAgICAgID8uaW5jbHVkZXMoc2VhcmNoVGVybS50b0xvd2VyQ2FzZSgpKSk7XG4gIC8vIGNvbnN0IGlzRm9jdXNlZCA9IHNpdGVJRCA9PT0gbm9kZURhdHVtLmF0dHJpYnV0ZXM/LnBvaW50X2lkPy50b1N0cmluZygpO1xuXG4gIGNvbnN0IGNhcmRTdHlsZTogUmVhY3QuQ1NTUHJvcGVydGllcyA9IHtcbiAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgIGJvcmRlckNvbG9yOiBpc0hpZ2hsaWdodGVkID8gdGhlbWUuYnJhbmQuc3VyZmFjZS5tdXRlZCA6IGJvcmRlckNvbG9yLFxuICAgIGJvcmRlclN0eWxlOiBpc01vbml0b3JlZCA/ICdzb2xpZCcgOiAnZGFzaGVkJyxcbiAgICBib3JkZXJXaWR0aDogJzNweCcsXG4gICAgYmFja2dyb3VuZENvbG9yOiAnI0ZGRkZGRicsXG4gICAgc3Ryb2tlOiAnbm9uZScsXG4gICAgaGVpZ2h0OiAnMTcwcHgnLFxuICB9O1xuICBjb25zdCB0aXRsZSA9XG4gICAgZmFjdG9yeVR5cGUgPT09ICdhcmVhJ1xuICAgICAgPyBub2RlRGF0dW0uYXR0cmlidXRlcz8uYXJlYV9uYW1lIHx8IG5vZGVEYXR1bS5uYW1lXG4gICAgICA6IG5vZGVEYXR1bS5uYW1lO1xuICAvLyBjb25zdCBvblNob3dEZXRhaWxzID0gKGV2ZW50KSA9PiB7XG4gIC8vICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIC8vICAgb25Ob2RlQ2xpY2sobm9kZURhdHVtKTtcbiAgLy8gfTtcbiAgY29uc3QgaXNTaG93U2FtcGxlciA9IHNob3dTYW1wbGVycyAmJiBub2RlRGF0dW0uYXR0cmlidXRlcz8uaGFzX3NhbXBsZXI7XG5cbiAgaWYgKCFub2RlRGF0dW0ubmFtZSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHJldHVybiAoXG4gICAgPGcgb25DbGljaz17dG9nZ2xlTm9kZX0gc3R5bGU9e3sgY3Vyc29yOiAncG9pbnRlcicgfX0+XG4gICAgICA8Zm9yZWlnbk9iamVjdCB4PVwiLTEwMFwiIHk9XCItMTM3XCIgd2lkdGg9XCIyMDBcIiBoZWlnaHQ9XCIyNTBcIj5cbiAgICAgICAge25vZGVEYXR1bS5hdHRyaWJ1dGVzPy5wb2ludF9pZCAmJiAoXG4gICAgICAgICAgPEFjdGlvbnNDb250YWluZXI+XG4gICAgICAgICAgICB7Lyp7ZWFybHlBZG9wdGVyICYmICgqL31cbiAgICAgICAgICAgIHsvKiAgPHNwYW4gc3R5bGU9e3sgbWFyZ2luSW5saW5lRW5kOiAnOHB4JyB9fT4qL31cbiAgICAgICAgICAgIHsvKiAgICA8T3ZlcmxheVRyaWdnZXIqL31cbiAgICAgICAgICAgIHsvKiAgICAgIG92ZXJsYXk9eyovfVxuICAgICAgICAgICAgey8qICAgICAgICA8VG9vbHRpcCBpZD17J2RldGFpbHMnfSBwbGFjZW1lbnQ9XCJhdXRvXCI+Ki99XG4gICAgICAgICAgICB7LyogICAgICAgICAgPFRyYW5zKi99XG4gICAgICAgICAgICB7LyogICAgICAgICAgICBpMThuS2V5PXsnZ3JvdXBfc2NyZWVuLmdlbmVyYWxfdGFiLmdyb3VwX2RldGFpbHMnfSovfVxuICAgICAgICAgICAgey8qICAgICAgICAgIC8+Ki99XG4gICAgICAgICAgICB7LyogICAgICAgIDwvVG9vbHRpcD4qL31cbiAgICAgICAgICAgIHsvKiAgICAgIH0qL31cbiAgICAgICAgICAgIHsvKiAgICA+Ki99XG4gICAgICAgICAgICB7LyogICAgICA8RGV0YWlsc1N2ZyBvbkNsaWNrPXtvblNob3dEZXRhaWxzfSAvPiovfVxuICAgICAgICAgICAgey8qICAgIDwvT3ZlcmxheVRyaWdnZXI+Ki99XG4gICAgICAgICAgICB7LyogIDwvc3Bhbj4qL31cbiAgICAgICAgICAgIHsvKil9Ki99XG4gICAgICAgICAgICA8U3R5bGVkTGlua1xuICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgIHN0cm9rZTogdGhlbWUuYnJhbmQuc3VyZmFjZS5kZWZhdWx0LFxuICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoOiAxLFxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICd3aGl0ZScsXG4gICAgICAgICAgICAgICAgbWFyZ2luSW5saW5lU3RhcnQ6IDY0LFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICB1cGRhdGVQYXJhbXM9e3sgdmlldzogJ21hcCcgfX1cbiAgICAgICAgICAgICAgdG89e2AvZGFzaGJvYXJkX3YyL3NpdGUvJHtub2RlRGF0dW0uYXR0cmlidXRlcy5wb2ludF9pZH1gfVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4gZS5zdG9wUHJvcGFnYXRpb24oKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPE92ZXJsYXlUcmlnZ2VyXG4gICAgICAgICAgICAgICAgb3ZlcmxheT17XG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcCBpZD1cIm1hcFwiIHBsYWNlbWVudD1cImF1dG9cIj5cbiAgICAgICAgICAgICAgICAgICAgPFRyYW5zIGkxOG5LZXk9eydoZWFkZXIubWFwJ30gLz5cbiAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8TWFwU3ZnIHN0eWxlPXt7IHdpZHRoOiA1NSwgaGVpZ2h0OiA1NSB9fSAvPlxuICAgICAgICAgICAgICA8L092ZXJsYXlUcmlnZ2VyPlxuICAgICAgICAgICAgPC9TdHlsZWRMaW5rPlxuICAgICAgICAgICAge2lzU2hvd1NhbXBsZXIgJiYgKFxuICAgICAgICAgICAgICA8T3ZlcmxheVRyaWdnZXJcbiAgICAgICAgICAgICAgICBvdmVybGF5PXtcbiAgICAgICAgICAgICAgICAgIDxUb29sdGlwIGlkPVwic2FtcGxlclwiIHBsYWNlbWVudD1cImF1dG9cIj5cbiAgICAgICAgICAgICAgICAgICAgPFRyYW5zXG4gICAgICAgICAgICAgICAgICAgICAgaTE4bktleT17XG4gICAgICAgICAgICAgICAgICAgICAgICAnZGFzaGJvYXJkX3YyLnV0aWxpdHlfZGFzaGJvYXJkLmhpZXJhcmNoeS5zYW1wbGVyJ1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9eydzYW1wbGVyLWljb24taG9sZGVyJ30+XG4gICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgIHNyYz17c2FtcGxlckljb24oKX1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwic2FtcGxlci1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgYWx0PXsnc2FtcGxlcid9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9PdmVybGF5VHJpZ2dlcj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9BY3Rpb25zQ29udGFpbmVyPlxuICAgICAgICApfVxuICAgICAgICA8Q2FyZExheW91dFxuICAgICAgICAgIHRpdGxlPXt0aXRsZX1cbiAgICAgICAgICBzdHlsZT17Y2FyZFN0eWxlfVxuICAgICAgICAgIGhlYWRlclJpZ2h0PXs8Tm9kZUljb24gdHlwZT17ZmFjdG9yeVR5cGV9IC8+fVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydub2RlLWNvbnRlbnQnfSBzdHlsZT17Y29udGVudFN0eWxlfT5cbiAgICAgICAgICAgIHtub2RlRGF0dW0uYXR0cmlidXRlcyAmJiBpc01vbml0b3JlZCAmJiAoXG4gICAgICAgICAgICAgIC8vIDxTZXZlcml0eUJhZGdlXG4gICAgICAgICAgICAgIC8vICAgY2xhc3NOYW1lPXsnc2NvcmUnfVxuICAgICAgICAgICAgICAvLyAgIHByb3BzPXt7IHNjb3JlLCBoYXNfZGV2aWNlOiBpc01vbml0b3JlZCB9fVxuICAgICAgICAgICAgICAvLyAvPiAmJlxuICAgICAgICAgICAgICA8V3JhcHBlciBzY29yZUNvbG9yPXtzY29yZVRvQ29sb3Ioc2NvcmUpfSB1cD17dHJ1ZX0+XG4gICAgICAgICAgICAgICAgPFNldmVyaXR5QmFkZ2VcbiAgICAgICAgICAgICAgICAgIHByb3BzPXt7IHNjb3JlLCBoYXNfZGV2aWNlOiBpc01vbml0b3JlZCB9fVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXsnc2NvcmUnfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvV3JhcHBlcj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvQ2FyZExheW91dD5cbiAgICAgIDwvZm9yZWlnbk9iamVjdD5cbiAgICAgIHtpc0xlYWZOb2RlICYmIDxMZWFmU2lnbiBjb2xvcj17Ym9yZGVyQ29sb3J9IC8+fVxuICAgIDwvZz5cbiAgKTtcbn07XG5leHBvcnQgZGVmYXVsdCBOb2RlTGF5b3V0O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsV0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsU0FBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0Es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
122
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9DYXJkTGF5b3V0IiwiX05vZGVJY29uIiwiX1RvcE5hdmJhciIsIl9TdHlsZWRMaW5rIiwiX3V0aWxzIiwiX0xlYWZTaWduIiwiX3JlYWN0STE4bmV4dCIsIl9yZWFjdEJvb3RzdHJhcCIsIl90aGVtZSIsIl9pY29ucyIsIk5vZGVMYXlvdXQiLCJfcmVmIiwiX25vZGVEYXR1bSRhdHRyaWJ1dGVzIiwiX25vZGVEYXR1bSRhdHRyaWJ1dGVzMiIsIl9ub2RlRGF0dW0kYXR0cmlidXRlczMiLCJfbm9kZURhdHVtJGF0dHJpYnV0ZXM0IiwiX25vZGVEYXR1bSRhdHRyaWJ1dGVzNSIsIm5vZGVEYXR1bSIsInRvZ2dsZU5vZGUiLCJzZWFyY2hUZXJtIiwic2hvd1NhbXBsZXJzIiwiX3JlZiRpc0hpZ2hsaWdodCIsImlzSGlnaGxpZ2h0IiwiX3JlZiRpc0V4Y2VlZGVkIiwiaXNFeGNlZWRlZCIsImNoaWxkcmVuIiwiY29udGVudFN0eWxlIiwiZmFjdG9yeVR5cGUiLCJhdHRyaWJ1dGVzIiwidHlwZSIsImlzTGVhZk5vZGUiLCJsZW5ndGgiLCJpc01vbml0b3JlZCIsIm1vbml0b3JlZCIsImJvcmRlckNvbG9yIiwidGhlbWUiLCJuYXR1cmFsIiwibjYwIiwiY2FyZFN0eWxlIiwiYm9yZGVyUmFkaXVzIiwiY29sb3JTY2hlbWUiLCJkYXRhIiwiUjEwMCIsImJyYW5kIiwic3VyZmFjZSIsIm11dGVkIiwiYm9yZGVyU3R5bGUiLCJib3JkZXJXaWR0aCIsImNvbG9yIiwidGV4dCIsImRlZmF1bHQiLCJiYWNrZ3JvdW5kQ29sb3IiLCJzdHJva2UiLCJoZWlnaHQiLCJ0aXRsZSIsImFyZWFfbmFtZSIsIm5hbWUiLCJpc1Nob3dTYW1wbGVyIiwiaGFzX3NhbXBsZXIiLCJjcmVhdGVFbGVtZW50Iiwib25DbGljayIsInN0eWxlIiwiY3Vyc29yIiwiY2xhc3NOYW1lIiwieCIsInkiLCJ3aWR0aCIsInBvaW50X2lkIiwiQWN0aW9uc0NvbnRhaW5lciIsIlN0eWxlZExpbmsiLCJzdHJva2VXaWR0aCIsImJhY2tncm91bmQiLCJtYXJnaW5JbmxpbmVTdGFydCIsInRhcmdldCIsInVwZGF0ZVBhcmFtcyIsInZpZXciLCJ0byIsImNvbmNhdCIsImUiLCJzdG9wUHJvcGFnYXRpb24iLCJPdmVybGF5VHJpZ2dlciIsIm92ZXJsYXkiLCJUb29sdGlwIiwiaWQiLCJwbGFjZW1lbnQiLCJUcmFucyIsImkxOG5LZXkiLCJNYXBTdmciLCJzcmMiLCJzYW1wbGVySWNvbiIsImFsdCIsImhlYWRlclJpZ2h0IiwibGlua2VkSGVhZGVyVXJsIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3VpLWtpdC9IaWVyYXJjaHlHcmFwaC9Ob2RlTGF5b3V0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IENhcmRMYXlvdXQgZnJvbSAnLi4vLi4vV2lkZ2V0cy9Nb3N0UG9sbHV0aW5nL0ZhY3Rvcmllcy9GYWN0b3J5Qm94L0NhcmRMYXlvdXQnO1xuaW1wb3J0IE5vZGVJY29uIGZyb20gJy4vTm9kZUljb24nO1xuaW1wb3J0IHsgTWFwU3ZnIH0gZnJvbSAnLi4vLi4vYXNzZXRzL2ljb25zL1RvcE5hdmJhcic7XG5pbXBvcnQgeyBTdHlsZWRMaW5rIH0gZnJvbSAnc3JjL2NvbXBvbmVudHMvTGlua3MvU3R5bGVkTGluay9TdHlsZWRMaW5rJztcbmltcG9ydCB7IEFjdGlvbnNDb250YWluZXIsIE5vZGVQcm9wcyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IExlYWZTaWduIGZyb20gJy4vTGVhZlNpZ24nO1xuaW1wb3J0IHsgVHJhbnMgfSBmcm9tICdyZWFjdC1pMThuZXh0JztcbmltcG9ydCB7IE92ZXJsYXlUcmlnZ2VyLCBUb29sdGlwIH0gZnJvbSAncmVhY3QtYm9vdHN0cmFwJztcbmltcG9ydCB7IHRoZW1lIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3RoZW1lL3RoZW1lJztcbmltcG9ydCB7IHNhbXBsZXJJY29uIH0gZnJvbSAnc3JjL3V0aWxpdGllcy9tYXAvaWNvbnMnO1xuaW1wb3J0ICcuL3N0eWxlLnNjc3MnO1xuXG5jb25zdCBOb2RlTGF5b3V0ID0gKHtcbiAgbm9kZURhdHVtLFxuICB0b2dnbGVOb2RlLFxuICBzZWFyY2hUZXJtLFxuICBzaG93U2FtcGxlcnMsXG4gIGlzSGlnaGxpZ2h0ID0gZmFsc2UsXG4gIGlzRXhjZWVkZWQgPSBmYWxzZSxcbiAgY2hpbGRyZW4sXG4gIGNvbnRlbnRTdHlsZSxcbn06IE5vZGVQcm9wcykgPT4ge1xuICBjb25zdCBmYWN0b3J5VHlwZSA9IG5vZGVEYXR1bS5hdHRyaWJ1dGVzPy50eXBlIHx8ICcnO1xuICBjb25zdCBpc0xlYWZOb2RlID0gIW5vZGVEYXR1bS5jaGlsZHJlbiB8fCBub2RlRGF0dW0uY2hpbGRyZW4ubGVuZ3RoID09PSAwO1xuICBjb25zdCBpc01vbml0b3JlZCA9IG5vZGVEYXR1bS5hdHRyaWJ1dGVzPy5tb25pdG9yZWQ7XG4gIGNvbnN0IGJvcmRlckNvbG9yID0gdGhlbWUubmF0dXJhbC5uNjA7XG5cbiAgY29uc3QgY2FyZFN0eWxlOiBSZWFjdC5DU1NQcm9wZXJ0aWVzID0ge1xuICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgYm9yZGVyQ29sb3I6IGlzRXhjZWVkZWRcbiAgICAgID8gdGhlbWUuY29sb3JTY2hlbWUuZGF0YS5SMTAwXG4gICAgICA6IGlzSGlnaGxpZ2h0XG4gICAgICA/IHRoZW1lLmJyYW5kLnN1cmZhY2UubXV0ZWRcbiAgICAgIDogYm9yZGVyQ29sb3IsXG4gICAgYm9yZGVyU3R5bGU6IGlzTW9uaXRvcmVkID8gJ3NvbGlkJyA6ICdkYXNoZWQnLFxuICAgIGJvcmRlcldpZHRoOiAnM3B4JyxcbiAgICBjb2xvcjogaXNIaWdobGlnaHQgfHwgaXNFeGNlZWRlZCA/ICd3aGl0ZScgOiB0aGVtZS5uYXR1cmFsLnRleHQuZGVmYXVsdCxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjRkZGRkZGJyxcbiAgICBzdHJva2U6ICdub25lJyxcbiAgICBoZWlnaHQ6ICcxNzBweCcsXG4gIH07XG4gIGNvbnN0IHRpdGxlID1cbiAgICBmYWN0b3J5VHlwZSA9PT0gJ2FyZWEnXG4gICAgICA/IG5vZGVEYXR1bS5hdHRyaWJ1dGVzPy5hcmVhX25hbWUgfHwgbm9kZURhdHVtLm5hbWVcbiAgICAgIDogbm9kZURhdHVtLm5hbWU7XG4gIC8vIGNvbnN0IG9uU2hvd0RldGFpbHMgPSAoZXZlbnQpID0+IHtcbiAgLy8gICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgLy8gICBvbk5vZGVDbGljayhub2RlRGF0dW0pO1xuICAvLyB9O1xuICBjb25zdCBpc1Nob3dTYW1wbGVyID0gc2hvd1NhbXBsZXJzICYmIG5vZGVEYXR1bS5hdHRyaWJ1dGVzPy5oYXNfc2FtcGxlcjtcblxuICBpZiAoIW5vZGVEYXR1bS5uYW1lKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgcmV0dXJuIChcbiAgICA8Z1xuICAgICAgb25DbGljaz17dG9nZ2xlTm9kZX1cbiAgICAgIHN0eWxlPXt7IGN1cnNvcjogJ3BvaW50ZXInIH19XG4gICAgICBjbGFzc05hbWU9e2lzRXhjZWVkZWQgPyAnZXhjZWVkZWQnIDogaXNIaWdobGlnaHQgPyAnaGlnaGxpZ2h0JyA6ICcnfVxuICAgID5cbiAgICAgIDxmb3JlaWduT2JqZWN0IHg9XCItMTAwXCIgeT1cIi0xMzdcIiB3aWR0aD1cIjIwMFwiIGhlaWdodD1cIjI1MFwiPlxuICAgICAgICB7bm9kZURhdHVtLmF0dHJpYnV0ZXM/LnBvaW50X2lkICYmIChcbiAgICAgICAgICA8QWN0aW9uc0NvbnRhaW5lcj5cbiAgICAgICAgICAgIHsvKntlYXJseUFkb3B0ZXIgJiYgKCovfVxuICAgICAgICAgICAgey8qICA8c3BhbiBzdHlsZT17eyBtYXJnaW5JbmxpbmVFbmQ6ICc4cHgnIH19PiovfVxuICAgICAgICAgICAgey8qICAgIDxPdmVybGF5VHJpZ2dlciovfVxuICAgICAgICAgICAgey8qICAgICAgb3ZlcmxheT17Ki99XG4gICAgICAgICAgICB7LyogICAgICAgIDxUb29sdGlwIGlkPXsnZGV0YWlscyd9IHBsYWNlbWVudD1cImF1dG9cIj4qL31cbiAgICAgICAgICAgIHsvKiAgICAgICAgICA8VHJhbnMqL31cbiAgICAgICAgICAgIHsvKiAgICAgICAgICAgIGkxOG5LZXk9eydncm91cF9zY3JlZW4uZ2VuZXJhbF90YWIuZ3JvdXBfZGV0YWlscyd9Ki99XG4gICAgICAgICAgICB7LyogICAgICAgICAgLz4qL31cbiAgICAgICAgICAgIHsvKiAgICAgICAgPC9Ub29sdGlwPiovfVxuICAgICAgICAgICAgey8qICAgICAgfSovfVxuICAgICAgICAgICAgey8qICAgID4qL31cbiAgICAgICAgICAgIHsvKiAgICAgIDxEZXRhaWxzU3ZnIG9uQ2xpY2s9e29uU2hvd0RldGFpbHN9IC8+Ki99XG4gICAgICAgICAgICB7LyogICAgPC9PdmVybGF5VHJpZ2dlcj4qL31cbiAgICAgICAgICAgIHsvKiAgPC9zcGFuPiovfVxuICAgICAgICAgICAgey8qKX0qL31cbiAgICAgICAgICAgIDxTdHlsZWRMaW5rXG4gICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgc3Ryb2tlOiB0aGVtZS5icmFuZC5zdXJmYWNlLm11dGVkLFxuICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoOiAxLFxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICd3aGl0ZScsXG4gICAgICAgICAgICAgICAgbWFyZ2luSW5saW5lU3RhcnQ6IDY0LFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICB1cGRhdGVQYXJhbXM9e3sgdmlldzogJ21hcCcgfX1cbiAgICAgICAgICAgICAgdG89e2AvZGFzaGJvYXJkX3YyL3NpdGUvJHtub2RlRGF0dW0uYXR0cmlidXRlcy5wb2ludF9pZH1gfVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4gZS5zdG9wUHJvcGFnYXRpb24oKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPE92ZXJsYXlUcmlnZ2VyXG4gICAgICAgICAgICAgICAgb3ZlcmxheT17XG4gICAgICAgICAgICAgICAgICA8VG9vbHRpcCBpZD1cIm1hcFwiIHBsYWNlbWVudD1cImF1dG9cIj5cbiAgICAgICAgICAgICAgICAgICAgPFRyYW5zIGkxOG5LZXk9eydoZWFkZXIubWFwJ30gLz5cbiAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8TWFwU3ZnIHN0eWxlPXt7IHdpZHRoOiA1NSwgaGVpZ2h0OiA1NSB9fSAvPlxuICAgICAgICAgICAgICA8L092ZXJsYXlUcmlnZ2VyPlxuICAgICAgICAgICAgPC9TdHlsZWRMaW5rPlxuICAgICAgICAgICAge2lzU2hvd1NhbXBsZXIgJiYgKFxuICAgICAgICAgICAgICA8T3ZlcmxheVRyaWdnZXJcbiAgICAgICAgICAgICAgICBvdmVybGF5PXtcbiAgICAgICAgICAgICAgICAgIDxUb29sdGlwIGlkPVwic2FtcGxlclwiIHBsYWNlbWVudD1cImF1dG9cIj5cbiAgICAgICAgICAgICAgICAgICAgPFRyYW5zXG4gICAgICAgICAgICAgICAgICAgICAgaTE4bktleT17XG4gICAgICAgICAgICAgICAgICAgICAgICAnZGFzaGJvYXJkX3YyLnV0aWxpdHlfZGFzaGJvYXJkLmhpZXJhcmNoeS5zYW1wbGVyJ1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9eydzYW1wbGVyLWljb24taG9sZGVyJ30+XG4gICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgIHNyYz17c2FtcGxlckljb24oKX1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwic2FtcGxlci1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgYWx0PXsnc2FtcGxlcid9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9PdmVybGF5VHJpZ2dlcj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9BY3Rpb25zQ29udGFpbmVyPlxuICAgICAgICApfVxuICAgICAgICA8Q2FyZExheW91dFxuICAgICAgICAgIHRpdGxlPXt0aXRsZX1cbiAgICAgICAgICBzdHlsZT17Y2FyZFN0eWxlfVxuICAgICAgICAgIGhlYWRlclJpZ2h0PXs8Tm9kZUljb24gdHlwZT17ZmFjdG9yeVR5cGV9IC8+fVxuICAgICAgICAgIGxpbmtlZEhlYWRlclVybD17XG4gICAgICAgICAgICBub2RlRGF0dW0uYXR0cmlidXRlc1xuICAgICAgICAgICAgICA/IGAvZGFzaGJvYXJkX3YyL3NpdGUvJHtub2RlRGF0dW0uYXR0cmlidXRlcy5wb2ludF9pZH1gXG4gICAgICAgICAgICAgIDogJydcbiAgICAgICAgICB9XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J25vZGUtY29udGVudCd9IHN0eWxlPXtjb250ZW50U3R5bGV9PlxuICAgICAgICAgICAge25vZGVEYXR1bS5hdHRyaWJ1dGVzICYmIGlzTW9uaXRvcmVkICYmIGNoaWxkcmVufVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L0NhcmRMYXlvdXQ+XG4gICAgICA8L2ZvcmVpZ25PYmplY3Q+XG4gICAgICB7aXNMZWFmTm9kZSAmJiA8TGVhZlNpZ24gY29sb3I9e2JvcmRlckNvbG9yfSAvPn1cbiAgICA8L2c+XG4gICk7XG59O1xuZXhwb3J0IGRlZmF1bHQgTm9kZUxheW91dDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElB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
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectWithoutProperties"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _NodeLayout = _interopRequireDefault(require("./NodeLayout"));
11
+ var _MicroStackedBar = _interopRequireDefault(require("./MicroStackedBar"));
12
+ var _reactBootstrap = require("react-bootstrap");
13
+ var _reactI18next = require("react-i18next");
14
+ var _options = require("../InletsPie/options");
15
+ var _excluded = ["nodeDatum"];
16
+ var PollutionContributorNode = function PollutionContributorNode(_ref) {
17
+ var _nodeDatum$attributes;
18
+ var nodeDatum = _ref.nodeDatum,
19
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
20
+ var contribution_percent = ((_nodeDatum$attributes = nodeDatum.attributes) === null || _nodeDatum$attributes === void 0 ? void 0 : _nodeDatum$attributes.contributor_percents) || 0;
21
+ var segments = [{
22
+ value: contribution_percent,
23
+ color: _options.colors[0],
24
+ title: 'Extreme'
25
+ }];
26
+ var pollutionPercent = "".concat(contribution_percent, "%");
27
+ return /*#__PURE__*/_react.default.createElement(_NodeLayout.default, Object.assign({
28
+ nodeDatum: nodeDatum
29
+ }, props), contribution_percent > 0 && /*#__PURE__*/_react.default.createElement(_reactBootstrap.OverlayTrigger, {
30
+ overlay: /*#__PURE__*/_react.default.createElement(_reactBootstrap.Tooltip, {
31
+ id: "polluted-".concat(nodeDatum.name),
32
+ placement: "auto"
33
+ }, /*#__PURE__*/_react.default.createElement(_reactI18next.Trans, {
34
+ i18nKey: 'dashboard_v2.utility_dashboard.hierarchy.polluted',
35
+ values: {
36
+ pollutionPercent: pollutionPercent
37
+ }
38
+ }))
39
+ }, /*#__PURE__*/_react.default.createElement("g", null, /*#__PURE__*/_react.default.createElement(_MicroStackedBar.default, {
40
+ segments: segments,
41
+ width: 160,
42
+ height: 50,
43
+ radius: 8
44
+ }))));
45
+ };
46
+ var _default = PollutionContributorNode;
47
+ exports.default = _default;
48
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9Ob2RlTGF5b3V0IiwiX01pY3JvU3RhY2tlZEJhciIsIl9yZWFjdEJvb3RzdHJhcCIsIl9yZWFjdEkxOG5leHQiLCJfb3B0aW9ucyIsIl9leGNsdWRlZCIsIlBvbGx1dGlvbkNvbnRyaWJ1dG9yTm9kZSIsIl9yZWYiLCJfbm9kZURhdHVtJGF0dHJpYnV0ZXMiLCJub2RlRGF0dW0iLCJwcm9wcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllczIiLCJkZWZhdWx0IiwiY29udHJpYnV0aW9uX3BlcmNlbnQiLCJhdHRyaWJ1dGVzIiwiY29udHJpYnV0b3JfcGVyY2VudHMiLCJzZWdtZW50cyIsInZhbHVlIiwiY29sb3IiLCJjb2xvcnMiLCJ0aXRsZSIsInBvbGx1dGlvblBlcmNlbnQiLCJjb25jYXQiLCJjcmVhdGVFbGVtZW50IiwiT2JqZWN0IiwiYXNzaWduIiwiT3ZlcmxheVRyaWdnZXIiLCJvdmVybGF5IiwiVG9vbHRpcCIsImlkIiwibmFtZSIsInBsYWNlbWVudCIsIlRyYW5zIiwiaTE4bktleSIsInZhbHVlcyIsIndpZHRoIiwiaGVpZ2h0IiwicmFkaXVzIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3VpLWtpdC9IaWVyYXJjaHlHcmFwaC9Qb2xsdXRpb25Db250cmlidXRvck5vZGUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgTm9kZUxheW91dCBmcm9tICcuL05vZGVMYXlvdXQnO1xuaW1wb3J0IHsgTm9kZVByb3BzIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgTWljcm9TdGFja2VkQmFyIGZyb20gJy4vTWljcm9TdGFja2VkQmFyJztcbmltcG9ydCB7IE92ZXJsYXlUcmlnZ2VyLCBUb29sdGlwIH0gZnJvbSAncmVhY3QtYm9vdHN0cmFwJztcbmltcG9ydCB7IFRyYW5zIH0gZnJvbSAncmVhY3QtaTE4bmV4dCc7XG5pbXBvcnQgeyBjb2xvcnMgfSBmcm9tICcuLi9JbmxldHNQaWUvb3B0aW9ucyc7XG5cbmNvbnN0IFBvbGx1dGlvbkNvbnRyaWJ1dG9yTm9kZSA9ICh7IG5vZGVEYXR1bSwgLi4ucHJvcHMgfTogTm9kZVByb3BzKSA9PiB7XG4gIGNvbnN0IGNvbnRyaWJ1dGlvbl9wZXJjZW50ID0gbm9kZURhdHVtLmF0dHJpYnV0ZXM/LmNvbnRyaWJ1dG9yX3BlcmNlbnRzIHx8IDA7XG4gIGNvbnN0IHNlZ21lbnRzID0gW1xuICAgIHtcbiAgICAgIHZhbHVlOiBjb250cmlidXRpb25fcGVyY2VudCxcbiAgICAgIGNvbG9yOiBjb2xvcnNbMF0sXG4gICAgICB0aXRsZTogJ0V4dHJlbWUnLFxuICAgIH0sXG4gIF07XG5cbiAgY29uc3QgcG9sbHV0aW9uUGVyY2VudCA9IGAke2NvbnRyaWJ1dGlvbl9wZXJjZW50fSVgO1xuICByZXR1cm4gKFxuICAgIDxOb2RlTGF5b3V0IG5vZGVEYXR1bT17bm9kZURhdHVtfSB7Li4ucHJvcHN9PlxuICAgICAge2NvbnRyaWJ1dGlvbl9wZXJjZW50ID4gMCAmJiAoXG4gICAgICAgIDxPdmVybGF5VHJpZ2dlclxuICAgICAgICAgIG92ZXJsYXk9e1xuICAgICAgICAgICAgPFRvb2x0aXAgaWQ9e2Bwb2xsdXRlZC0ke25vZGVEYXR1bS5uYW1lfWB9IHBsYWNlbWVudD1cImF1dG9cIj5cbiAgICAgICAgICAgICAgPFRyYW5zXG4gICAgICAgICAgICAgICAgaTE4bktleT17J2Rhc2hib2FyZF92Mi51dGlsaXR5X2Rhc2hib2FyZC5oaWVyYXJjaHkucG9sbHV0ZWQnfVxuICAgICAgICAgICAgICAgIHZhbHVlcz17eyBwb2xsdXRpb25QZXJjZW50IH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgfVxuICAgICAgICA+XG4gICAgICAgICAgPGc+XG4gICAgICAgICAgICA8TWljcm9TdGFja2VkQmFyXG4gICAgICAgICAgICAgIHNlZ21lbnRzPXtzZWdtZW50c31cbiAgICAgICAgICAgICAgd2lkdGg9ezE2MH1cbiAgICAgICAgICAgICAgaGVpZ2h0PXs1MH1cbiAgICAgICAgICAgICAgcmFkaXVzPXs4fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2c+XG4gICAgICAgIDwvT3ZlcmxheVRyaWdnZXI+XG4gICAgICApfVxuICAgIDwvTm9kZUxheW91dD5cbiAgKTtcbn07XG5leHBvcnQgZGVmYXVsdCBQb2xsdXRpb25Db250cmlidXRvck5vZGU7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsV0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUUsZ0JBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLGVBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLGFBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFFBQUEsR0FBQUwsT0FBQTtBQUE4QyxJQUFBTSxTQUFBO0FBRTlDLElBQU1DLHdCQUF3QixHQUFHLFNBQTNCQSx3QkFBd0JBLENBQUFDLElBQUEsRUFBMkM7RUFBQSxJQUFBQyxxQkFBQTtFQUFBLElBQXJDQyxTQUFTLEdBQUFGLElBQUEsQ0FBVEUsU0FBUztJQUFLQyxLQUFLLE9BQUFDLHlCQUFBLENBQUFDLE9BQUEsRUFBQUwsSUFBQSxFQUFBRixTQUFBO0VBQ3JELElBQU1RLG9CQUFvQixHQUFHLEVBQUFMLHFCQUFBLEdBQUFDLFNBQVMsQ0FBQ0ssVUFBVSxjQUFBTixxQkFBQSx1QkFBcEJBLHFCQUFBLENBQXNCTyxvQkFBb0IsS0FBSSxDQUFDO0VBQzVFLElBQU1DLFFBQVEsR0FBRyxDQUNmO0lBQ0VDLEtBQUssRUFBRUosb0JBQW9CO0lBQzNCSyxLQUFLLEVBQUVDLGVBQU0sQ0FBQyxDQUFDLENBQUM7SUFDaEJDLEtBQUssRUFBRTtFQUNULENBQUMsQ0FDRjtFQUVELElBQU1DLGdCQUFnQixNQUFBQyxNQUFBLENBQU1ULG9CQUFvQixNQUFHO0VBQ25ELG9CQUNFaEIsTUFBQSxDQUFBZSxPQUFBLENBQUFXLGFBQUEsQ0FBQ3ZCLFdBQUEsQ0FBQVksT0FBVSxFQUFBWSxNQUFBLENBQUFDLE1BQUE7SUFBQ2hCLFNBQVMsRUFBRUE7RUFBVSxHQUFLQyxLQUFLLEdBQ3hDRyxvQkFBb0IsR0FBRyxDQUFDLGlCQUN2QmhCLE1BQUEsQ0FBQWUsT0FBQSxDQUFBVyxhQUFBLENBQUNyQixlQUFBLENBQUF3QixjQUFjO0lBQ2JDLE9BQU8sZUFDTDlCLE1BQUEsQ0FBQWUsT0FBQSxDQUFBVyxhQUFBLENBQUNyQixlQUFBLENBQUEwQixPQUFPO01BQUNDLEVBQUUsY0FBQVAsTUFBQSxDQUFjYixTQUFTLENBQUNxQixJQUFJLENBQUc7TUFBQ0MsU0FBUyxFQUFDO0lBQU0sZ0JBQ3pEbEMsTUFBQSxDQUFBZSxPQUFBLENBQUFXLGFBQUEsQ0FBQ3BCLGFBQUEsQ0FBQTZCLEtBQUs7TUFDSkMsT0FBTyxFQUFFLG1EQUFvRDtNQUM3REMsTUFBTSxFQUFFO1FBQUViLGdCQUFnQixFQUFoQkE7TUFBaUI7SUFBRSxDQUM5QixDQUNNO0VBQ1YsZ0JBRUR4QixNQUFBLENBQUFlLE9BQUEsQ0FBQVcsYUFBQSx5QkFDRTFCLE1BQUEsQ0FBQWUsT0FBQSxDQUFBVyxhQUFBLENBQUN0QixnQkFBQSxDQUFBVyxPQUFlO0lBQ2RJLFFBQVEsRUFBRUEsUUFBUztJQUNuQm1CLEtBQUssRUFBRSxHQUFJO0lBQ1hDLE1BQU0sRUFBRSxFQUFHO0lBQ1hDLE1BQU0sRUFBRTtFQUFFLENBQ1gsQ0FDQSxDQUNXLENBRVIsQ0FBQztBQUVqQixDQUFDO0FBQUMsSUFBQUMsUUFBQSxHQUNhaEMsd0JBQXdCO0FBQUFpQyxPQUFBLENBQUEzQixPQUFBLEdBQUEwQixRQUFBIn0=