@kando-env/kando-ui 1.2.318-alpha.29 → 1.2.318-alpha.3

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.
@@ -18,14 +18,10 @@ var _FactoryCard = require("./FactoryCard");
18
18
  var _OrganicCard = _interopRequireDefault(require("../WwtpPage/OrganicCard"));
19
19
  var _PotentialSaving = _interopRequireDefault(require("../WwtpPage/PotentialSaving"));
20
20
  var _ListContext = require("./ListContext");
21
- var _i18n = _interopRequireDefault(require("utilities/i18n"));
22
- var _DischargePattern = require("../SitePage/DischargePattern/DischargePattern");
23
- var _QualitySummary = require("Widgets/QualitySummary/QualitySummary");
24
- var _LineChart = require("pages/AreaPage/Dashboard/LineChart/LineChart");
25
21
  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); }
26
22
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(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; }
27
23
  var List = function List(props) {
28
- var _WWTPInfo$point, _WWTPInfo$point2;
24
+ var _WWTPInfo$point;
29
25
  var _useSelectedItem = (0, _ListContext.useSelectedItem)(),
30
26
  selectedItem = _useSelectedItem.selectedItem,
31
27
  handleSelectItem = _useSelectedItem.handleSelectItem;
@@ -40,29 +36,12 @@ var List = function List(props) {
40
36
  areas = _useState2[0],
41
37
  setAreas = _useState2[1];
42
38
  var selectedRef = (0, _react.useRef)(null);
43
- var siteID = (_WWTPInfo$point = WWTPInfo.point) === null || _WWTPInfo$point === void 0 ? void 0 : _WWTPInfo$point.id;
44
39
  var handleItemClick = function handleItemClick(item) {
45
40
  handleSelectItem(item);
46
41
  };
47
- var noDataMessage = _i18n.default.t('wwtpPage.no_data_for_site');
48
42
  var areaDetails = (0, _react.useMemo)(function () {
49
- var _focusedArea$sub_area;
50
- if (focusedArea && (focusedArea === null || focusedArea === void 0 ? void 0 : focusedArea.forWWTPMap) === true && (!areas || areas.length === 0)) {
51
- if ((focusedArea === null || focusedArea === void 0 ? void 0 : focusedArea.is_assessment) === false) {
52
- return /*#__PURE__*/_react.default.createElement(ListContainer, null, /*#__PURE__*/_react.default.createElement(ErrorMessage, null, noDataMessage));
53
- } else {
54
- return /*#__PURE__*/_react.default.createElement(ListContainer, null, /*#__PURE__*/_react.default.createElement(SummaryComponent, {
55
- endpoint: "/data/events-component-data/".concat(siteID),
56
- className: "summary-component"
57
- }), /*#__PURE__*/_react.default.createElement(LineChartComponent, {
58
- title: _i18n.default.t('area_dashboard.trend'),
59
- endpoint: "/points/".concat(siteID, "/trend-graph")
60
- }), /*#__PURE__*/_react.default.createElement(_DischargePattern.DischargePattern, {
61
- siteID: Number(siteID)
62
- }));
63
- }
64
- }
65
- if ((focusedArea === null || focusedArea === void 0 ? void 0 : (_focusedArea$sub_area = focusedArea.sub_areas) === null || _focusedArea$sub_area === void 0 ? void 0 : _focusedArea$sub_area.length) !== 0) {
43
+ if (!areas) return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
44
+ if ((focusedArea === null || focusedArea === void 0 ? void 0 : focusedArea.sub_areas.length) !== 0) {
66
45
  return areas && areas.filter(Boolean).map(function (area) {
67
46
  return /*#__PURE__*/_react.default.createElement(_AreaCard.AreaCard, {
68
47
  key: area.area_id,
@@ -96,17 +75,16 @@ var List = function List(props) {
96
75
  (0, _react.useEffect)(function () {
97
76
  // the map layers is an object but before the map is loaded it is a zero lengthed array
98
77
  if (focusedArea != null && map !== null && (0, _typeof2.default)(map._layers) === 'object' && map._layers.length === undefined) {
99
- var isAPoint = focusedArea.forWWTPMap !== undefined;
100
78
  var _WWTPInfo = {
101
- point: isAPoint ? focusedArea : undefined,
102
- area: !isAPoint ? focusedArea : undefined
79
+ point: undefined,
80
+ area: focusedArea
103
81
  };
104
82
  (0, _utils.areaFocusLogic)({
105
83
  WWTPInfo: _WWTPInfo,
106
84
  setAreas: setAreas,
107
85
  map: map
108
86
  });
109
- //focusMap(focusedArea, map);
87
+ (0, _utils.focusMap)(focusedArea, map);
110
88
  }
111
89
  }, [focusedArea]);
112
90
  (0, _react.useEffect)(function () {
@@ -117,12 +95,12 @@ var List = function List(props) {
117
95
  inline: 'center'
118
96
  });
119
97
  }, [selectedItem]);
120
- if ((focusedArea === null || focusedArea === void 0 ? void 0 : focusedArea.group) && focusedArea.group.type === 'Groups::WastewaterTreatmentPlant') return /*#__PURE__*/_react.default.createElement(WWTPDetails, {
98
+ if (!focusedArea) return /*#__PURE__*/_react.default.createElement(WWTPDetails, {
121
99
  className: "p-3",
122
100
  style: {
123
101
  overflow: 'scroll'
124
102
  }
125
- }, /*#__PURE__*/_react.default.createElement("h3", null, (_WWTPInfo$point2 = WWTPInfo.point) === null || _WWTPInfo$point2 === void 0 ? void 0 : _WWTPInfo$point2.name), /*#__PURE__*/_react.default.createElement("div", {
103
+ }, /*#__PURE__*/_react.default.createElement("h3", null, (_WWTPInfo$point = WWTPInfo.point) === null || _WWTPInfo$point === void 0 ? void 0 : _WWTPInfo$point.name), /*#__PURE__*/_react.default.createElement("div", {
126
104
  className: 'h-auto my-4'
127
105
  }, /*#__PURE__*/_react.default.createElement(_OrganicCard.default, null)), /*#__PURE__*/_react.default.createElement("div", {
128
106
  className: 'h-auto mt-2'
@@ -132,7 +110,7 @@ var List = function List(props) {
132
110
  style: {
133
111
  overflow: 'scroll'
134
112
  }
135
- }, /*#__PURE__*/_react.default.createElement("h3", null, (focusedArea === null || focusedArea === void 0 ? void 0 : focusedArea.area_name) || (focusedArea === null || focusedArea === void 0 ? void 0 : focusedArea.name)), /*#__PURE__*/_react.default.createElement("ul", {
113
+ }, /*#__PURE__*/_react.default.createElement("h3", null, focusedArea.area_name || focusedArea.name), /*#__PURE__*/_react.default.createElement("ul", {
136
114
  className: 'mx-n3'
137
115
  }, areaDetails));
138
116
  };
@@ -141,20 +119,4 @@ var WWTPDetails = _styledComponents.default.div.withConfig({
141
119
  displayName: "List__WWTPDetails",
142
120
  componentId: "sc-1f5wz2c-0"
143
121
  })(["width:100%;height:calc(100vh - 134px);background:", ";"], _theme.theme.WWTPMap.bg);
144
- var SummaryComponent = (0, _styledComponents.default)(_QualitySummary.QualitySummary).withConfig({
145
- displayName: "List__SummaryComponent",
146
- componentId: "sc-1f5wz2c-1"
147
- })(["grid-area:summary;summary-component{background-color:blue;}"]);
148
- var LineChartComponent = (0, _styledComponents.default)(_LineChart.LineChart).withConfig({
149
- displayName: "List__LineChartComponent",
150
- componentId: "sc-1f5wz2c-2"
151
- })(["grid-area:graph;"]);
152
- var ListContainer = _styledComponents.default.div.withConfig({
153
- displayName: "List__ListContainer",
154
- componentId: "sc-1f5wz2c-3"
155
- })(["display:flex;flex-direction:column;justify-content:space-between;height:100%;padding:20px;gap:30px;"]);
156
- var ErrorMessage = _styledComponents.default.div.withConfig({
157
- displayName: "List__ErrorMessage",
158
- componentId: "sc-1f5wz2c-4"
159
- })(["display:flex;height:100%;font-size:20px;justify-content:center;box-shadow:-0.9px -0.5px 5px 0 rgba(0,0,0,0.06);border:solid 1px #ebebeb;padding:20px;"]);
160
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfdGhlbWUiLCJfcmVhY3RSZWR1eCIsIl91dGlscyIsIl9BcmVhQ2FyZCIsIl9GYWN0b3J5Q2FyZCIsIl9PcmdhbmljQ2FyZCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfUG90ZW50aWFsU2F2aW5nIiwiX0xpc3RDb250ZXh0IiwiX2kxOG4iLCJfRGlzY2hhcmdlUGF0dGVybiIsIl9RdWFsaXR5U3VtbWFyeSIsIl9MaW5lQ2hhcnQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZjMiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJMaXN0IiwicHJvcHMiLCJfV1dUUEluZm8kcG9pbnQiLCJfV1dUUEluZm8kcG9pbnQyIiwiX3VzZVNlbGVjdGVkSXRlbSIsInVzZVNlbGVjdGVkSXRlbSIsInNlbGVjdGVkSXRlbSIsImhhbmRsZVNlbGVjdEl0ZW0iLCJXV1RQSW5mbyIsIl91c2VTZWxlY3RvciIsInVzZVNlbGVjdG9yIiwic3RhdGUiLCJ3d3RwX2Rhc2hib2FyZCIsImZvY3VzZWRBcmVhIiwibWFwIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwiYXJlYXMiLCJzZXRBcmVhcyIsInNlbGVjdGVkUmVmIiwidXNlUmVmIiwic2l0ZUlEIiwicG9pbnQiLCJpZCIsImhhbmRsZUl0ZW1DbGljayIsIml0ZW0iLCJub0RhdGFNZXNzYWdlIiwiaTE4biIsInQiLCJhcmVhRGV0YWlscyIsInVzZU1lbW8iLCJfZm9jdXNlZEFyZWEkc3ViX2FyZWEiLCJmb3JXV1RQTWFwIiwibGVuZ3RoIiwiaXNfYXNzZXNzbWVudCIsImNyZWF0ZUVsZW1lbnQiLCJMaXN0Q29udGFpbmVyIiwiRXJyb3JNZXNzYWdlIiwiU3VtbWFyeUNvbXBvbmVudCIsImVuZHBvaW50IiwiY29uY2F0IiwiY2xhc3NOYW1lIiwiTGluZUNoYXJ0Q29tcG9uZW50IiwidGl0bGUiLCJEaXNjaGFyZ2VQYXR0ZXJuIiwiTnVtYmVyIiwic3ViX2FyZWFzIiwiZmlsdGVyIiwiQm9vbGVhbiIsImFyZWEiLCJBcmVhQ2FyZCIsImFyZWFfaWQiLCJvYmplY3QiLCJtYXBSZWYiLCJvbkNsaWNrIiwic2VsZWN0ZWQiLCJpdGVtUmVmIiwiZmFjdG9yaWVzIiwiZmFjdG9yeSIsIkZhY3RvcnlDYXJkIiwiRnJhZ21lbnQiLCJ1c2VFZmZlY3QiLCJfdHlwZW9mMiIsIl9sYXllcnMiLCJ1bmRlZmluZWQiLCJpc0FQb2ludCIsImFyZWFGb2N1c0xvZ2ljIiwiX3NlbGVjdGVkUmVmJGN1cnJlbnQiLCJjdXJyZW50Iiwic2Nyb2xsSW50b1ZpZXciLCJiZWhhdmlvciIsImJsb2NrIiwiaW5saW5lIiwiZ3JvdXAiLCJ0eXBlIiwiV1dUUERldGFpbHMiLCJzdHlsZSIsIm92ZXJmbG93IiwibmFtZSIsImFyZWFfbmFtZSIsImV4cG9ydHMiLCJzdHlsZWQiLCJkaXYiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsInRoZW1lIiwiV1dUUE1hcCIsImJnIiwiUXVhbGl0eVN1bW1hcnkiLCJMaW5lQ2hhcnQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFnZXMvRGFzaGJvYXJkTWFwL0xpc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElBcmVhIH0gZnJvbSAnLi4vLi4vc3RvcmUvYXJlYXMvbW9kZWxzL0lBcmVhJztcbmltcG9ydCB7IElQb2ludCB9IGZyb20gJy4uLy4uL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlLCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzL21hY3JvJztcbmltcG9ydCB7IHRoZW1lIH0gZnJvbSAnc3JjL3N0eWxlcy90aGVtZS90aGVtZSc7XG5pbXBvcnQgeyB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IGFwcFJlZHVjZXIgfSBmcm9tICcuLi8uLi9zdG9yZS9yb290UmVkdWNlcic7XG5pbXBvcnQgeyBhcmVhRm9jdXNMb2dpYyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgQXJlYUNhcmQgfSBmcm9tICcuL0FyZWFDYXJkJztcbmltcG9ydCB7IEZhY3RvcnlDYXJkIH0gZnJvbSAnLi9GYWN0b3J5Q2FyZCc7XG5pbXBvcnQgT3JnYW5pY0NhcmQgZnJvbSAnLi4vV3d0cFBhZ2UvT3JnYW5pY0NhcmQnO1xuaW1wb3J0IEltcGFjdENhcmQgZnJvbSAnLi4vV3d0cFBhZ2UvUG90ZW50aWFsU2F2aW5nJztcbmltcG9ydCB7IHVzZVNlbGVjdGVkSXRlbSB9IGZyb20gJy4vTGlzdENvbnRleHQnO1xuaW1wb3J0IGkxOG4gZnJvbSAnc3JjL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCB7IERpc2NoYXJnZVBhdHRlcm4gfSBmcm9tICcuLi9TaXRlUGFnZS9EaXNjaGFyZ2VQYXR0ZXJuL0Rpc2NoYXJnZVBhdHRlcm4nO1xuaW1wb3J0IHsgUXVhbGl0eVN1bW1hcnkgfSBmcm9tICdzcmMvV2lkZ2V0cy9RdWFsaXR5U3VtbWFyeS9RdWFsaXR5U3VtbWFyeSc7XG5pbXBvcnQgeyBMaW5lQ2hhcnQgfSBmcm9tICdzcmMvcGFnZXMvQXJlYVBhZ2UvRGFzaGJvYXJkL0xpbmVDaGFydC9MaW5lQ2hhcnQnO1xuXG50eXBlIElQcm9wcyA9IHtcbiAgZ2xvYmFsX2RhdGE6IGFueTtcbiAgYXJlYXM6IElBcmVhW10gfCBudWxsO1xuICBwb2ludHM6IElQb2ludFtdIHwgbnVsbDtcbiAgV1dUUEluZm86IGFueTtcbn07XG5cbmV4cG9ydCBjb25zdCBMaXN0OiBSZWFjdC5GQzxJUHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgc2VsZWN0ZWRJdGVtLCBoYW5kbGVTZWxlY3RJdGVtIH0gPSB1c2VTZWxlY3RlZEl0ZW0oKTtcbiAgY29uc3QgeyBXV1RQSW5mbyB9ID0gcHJvcHM7XG4gIGNvbnN0IHsgZm9jdXNlZEFyZWEsIG1hcCB9ID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlOiBSZXR1cm5UeXBlPHR5cGVvZiBhcHBSZWR1Y2VyPikgPT4gc3RhdGUud3d0cF9kYXNoYm9hcmQsXG4gICk7XG4gIGNvbnN0IFthcmVhcywgc2V0QXJlYXNdID0gdXNlU3RhdGU8SUFyZWFbXSB8IG51bGw+KG51bGwpO1xuICBjb25zdCBzZWxlY3RlZFJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3Qgc2l0ZUlEID0gV1dUUEluZm8ucG9pbnQ/LmlkO1xuXG4gIGNvbnN0IGhhbmRsZUl0ZW1DbGljayA9IChpdGVtKSA9PiB7XG4gICAgaGFuZGxlU2VsZWN0SXRlbShpdGVtKTtcbiAgfTtcblxuICBjb25zdCBub0RhdGFNZXNzYWdlID0gaTE4bi50KCd3d3RwUGFnZS5ub19kYXRhX2Zvcl9zaXRlJyk7XG5cbiAgbGV0IGFyZWFEZXRhaWxzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKFxuICAgICAgZm9jdXNlZEFyZWEgJiZcbiAgICAgIGZvY3VzZWRBcmVhPy5mb3JXV1RQTWFwID09PSB0cnVlICYmXG4gICAgICAoIWFyZWFzIHx8IGFyZWFzLmxlbmd0aCA9PT0gMClcbiAgICApIHtcbiAgICAgIGlmIChmb2N1c2VkQXJlYT8uaXNfYXNzZXNzbWVudCA9PT0gZmFsc2UpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8TGlzdENvbnRhaW5lcj5cbiAgICAgICAgICAgIDxFcnJvck1lc3NhZ2U+e25vRGF0YU1lc3NhZ2V9PC9FcnJvck1lc3NhZ2U+XG4gICAgICAgICAgPC9MaXN0Q29udGFpbmVyPlxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8TGlzdENvbnRhaW5lcj5cbiAgICAgICAgICAgIDxTdW1tYXJ5Q29tcG9uZW50XG4gICAgICAgICAgICAgIGVuZHBvaW50PXtgL2RhdGEvZXZlbnRzLWNvbXBvbmVudC1kYXRhLyR7c2l0ZUlEfWB9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cInN1bW1hcnktY29tcG9uZW50XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8TGluZUNoYXJ0Q29tcG9uZW50XG4gICAgICAgICAgICAgIHRpdGxlPXtpMThuLnQoJ2FyZWFfZGFzaGJvYXJkLnRyZW5kJyl9XG4gICAgICAgICAgICAgIGVuZHBvaW50PXtgL3BvaW50cy8ke3NpdGVJRH0vdHJlbmQtZ3JhcGhgfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxEaXNjaGFyZ2VQYXR0ZXJuIHNpdGVJRD17TnVtYmVyKHNpdGVJRCl9IC8+XG4gICAgICAgICAgPC9MaXN0Q29udGFpbmVyPlxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChmb2N1c2VkQXJlYT8uc3ViX2FyZWFzPy5sZW5ndGggIT09IDApIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGFyZWFzICYmXG4gICAgICAgIGFyZWFzXG4gICAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgICAgIC5tYXAoKGFyZWE6IElBcmVhKSA9PiAoXG4gICAgICAgICAgICA8QXJlYUNhcmRcbiAgICAgICAgICAgICAga2V5PXthcmVhLmFyZWFfaWR9XG4gICAgICAgICAgICAgIG9iamVjdD17YXJlYX1cbiAgICAgICAgICAgICAgbWFwUmVmPXttYXB9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZUl0ZW1DbGljayhhcmVhLmFyZWFfaWQpfVxuICAgICAgICAgICAgICBzZWxlY3RlZD17c2VsZWN0ZWRJdGVtID09PSBhcmVhLmFyZWFfaWR9XG4gICAgICAgICAgICAgIGl0ZW1SZWY9e3NlbGVjdGVkSXRlbSA9PT0gYXJlYS5hcmVhX2lkID8gc2VsZWN0ZWRSZWYgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApKVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGZvY3VzZWRBcmVhPy5mYWN0b3JpZXMpIHtcbiAgICAgICAgcmV0dXJuIGZvY3VzZWRBcmVhLmZhY3Rvcmllc1xuICAgICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgICAgICAubWFwKChmYWN0b3J5KSA9PiAoXG4gICAgICAgICAgICA8RmFjdG9yeUNhcmRcbiAgICAgICAgICAgICAga2V5PXtmYWN0b3J5LmlkfVxuICAgICAgICAgICAgICBvYmplY3Q9e2ZhY3Rvcnl9XG4gICAgICAgICAgICAgIG1hcFJlZj17bWFwfVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVJdGVtQ2xpY2soZmFjdG9yeS5pZCl9XG4gICAgICAgICAgICAgIHNlbGVjdGVkPXtzZWxlY3RlZEl0ZW0gPT09IGZhY3RvcnkuaWR9XG4gICAgICAgICAgICAgIGl0ZW1SZWY9e3NlbGVjdGVkSXRlbSA9PT0gZmFjdG9yeS5pZCA/IHNlbGVjdGVkUmVmIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gPD48Lz47XG4gICAgfVxuICB9LCBbc2VsZWN0ZWRJdGVtLCBhcmVhc10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gdGhlIG1hcCBsYXllcnMgaXMgYW4gb2JqZWN0IGJ1dCBiZWZvcmUgdGhlIG1hcCBpcyBsb2FkZWQgaXQgaXMgYSB6ZXJvIGxlbmd0aGVkIGFycmF5XG4gICAgaWYgKFxuICAgICAgZm9jdXNlZEFyZWEgIT0gbnVsbCAmJlxuICAgICAgbWFwICE9PSBudWxsICYmXG4gICAgICB0eXBlb2YgbWFwLl9sYXllcnMgPT09ICdvYmplY3QnICYmXG4gICAgICBtYXAuX2xheWVycy5sZW5ndGggPT09IHVuZGVmaW5lZFxuICAgICkge1xuICAgICAgY29uc3QgaXNBUG9pbnQgPSBmb2N1c2VkQXJlYS5mb3JXV1RQTWFwICE9PSB1bmRlZmluZWQ7XG5cbiAgICAgIGNvbnN0IFdXVFBJbmZvID0ge1xuICAgICAgICBwb2ludDogaXNBUG9pbnQgPyBmb2N1c2VkQXJlYSA6IHVuZGVmaW5lZCxcbiAgICAgICAgYXJlYTogIWlzQVBvaW50ID8gZm9jdXNlZEFyZWEgOiB1bmRlZmluZWQsXG4gICAgICB9O1xuICAgICAgYXJlYUZvY3VzTG9naWMoeyBXV1RQSW5mbywgc2V0QXJlYXMsIG1hcCB9KTtcbiAgICAgIC8vZm9jdXNNYXAoZm9jdXNlZEFyZWEsIG1hcCk7XG4gICAgfVxuICB9LCBbZm9jdXNlZEFyZWFdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNlbGVjdGVkUmVmLmN1cnJlbnQ/LnNjcm9sbEludG9WaWV3KHtcbiAgICAgIGJlaGF2aW9yOiAnc21vb3RoJyxcbiAgICAgIGJsb2NrOiAnY2VudGVyJyxcbiAgICAgIGlubGluZTogJ2NlbnRlcicsXG4gICAgfSk7XG4gIH0sIFtzZWxlY3RlZEl0ZW1dKTtcblxuICBpZiAoXG4gICAgZm9jdXNlZEFyZWE/Lmdyb3VwICYmXG4gICAgZm9jdXNlZEFyZWEuZ3JvdXAudHlwZSA9PT0gJ0dyb3Vwczo6V2FzdGV3YXRlclRyZWF0bWVudFBsYW50J1xuICApXG4gICAgcmV0dXJuIChcbiAgICAgIDxXV1RQRGV0YWlscyBjbGFzc05hbWU9XCJwLTNcIiBzdHlsZT17eyBvdmVyZmxvdzogJ3Njcm9sbCcgfX0+XG4gICAgICAgIDxoMz57V1dUUEluZm8ucG9pbnQ/Lm5hbWV9PC9oMz5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9eydoLWF1dG8gbXktNCd9PlxuICAgICAgICAgIDxPcmdhbmljQ2FyZCAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9eydoLWF1dG8gbXQtMid9PlxuICAgICAgICAgIDxJbXBhY3RDYXJkIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9XV1RQRGV0YWlscz5cbiAgICApO1xuXG4gIHJldHVybiAoXG4gICAgPFdXVFBEZXRhaWxzIGNsYXNzTmFtZT1cInAtM1wiIHN0eWxlPXt7IG92ZXJmbG93OiAnc2Nyb2xsJyB9fT5cbiAgICAgIDxoMz57Zm9jdXNlZEFyZWE/LmFyZWFfbmFtZSB8fCBmb2N1c2VkQXJlYT8ubmFtZX08L2gzPlxuICAgICAgPHVsIGNsYXNzTmFtZT17J214LW4zJ30+e2FyZWFEZXRhaWxzfTwvdWw+XG4gICAgPC9XV1RQRGV0YWlscz5cbiAgKTtcbn07XG5cbmNvbnN0IFdXVFBEZXRhaWxzID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogY2FsYygxMDB2aCAtIDEzNHB4KTtcbiAgYmFja2dyb3VuZDogJHt0aGVtZS5XV1RQTWFwLmJnfTtcbmA7XG5cbmNvbnN0IFN1bW1hcnlDb21wb25lbnQgPSBzdHlsZWQoUXVhbGl0eVN1bW1hcnkpYFxuICBncmlkLWFyZWE6IHN1bW1hcnk7XG5cbiAgc3VtbWFyeS1jb21wb25lbnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7XG4gIH1cbmA7XG5cbmNvbnN0IExpbmVDaGFydENvbXBvbmVudCA9IHN0eWxlZChMaW5lQ2hhcnQpYFxuICBncmlkLWFyZWE6IGdyYXBoO1xuYDtcblxuY29uc3QgTGlzdENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAyMHB4O1xuICBnYXA6IDMwcHg7XG5gO1xuXG5jb25zdCBFcnJvck1lc3NhZ2UgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJveC1zaGFkb3c6IC0wLjlweCAtMC41cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjA2KTtcbiAgYm9yZGVyOiBzb2xpZCAxcHggI2ViZWJlYjtcbiAgcGFkZGluZzogMjBweDtcbmA7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBRUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsV0FBQSxHQUFBRixPQUFBO0FBRUEsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksU0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssWUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sWUFBQSxHQUFBQyxzQkFBQSxDQUFBUCxPQUFBO0FBQ0EsSUFBQVEsZ0JBQUEsR0FBQUQsc0JBQUEsQ0FBQVAsT0FBQTtBQUNBLElBQUFTLFlBQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLEtBQUEsR0FBQUgsc0JBQUEsQ0FBQVAsT0FBQTtBQUNBLElBQUFXLGlCQUFBLEdBQUFYLE9BQUE7QUFDQSxJQUFBWSxlQUFBLEdBQUFaLE9BQUE7QUFDQSxJQUFBYSxVQUFBLEdBQUFiLE9BQUE7QUFBNkUsU0FBQWMseUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFBRSxnQkFBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFoQix3QkFBQW9CLEdBQUEsRUFBQUosV0FBQSxTQUFBQSxXQUFBLElBQUFJLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLFdBQUFELEdBQUEsUUFBQUEsR0FBQSxhQUFB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
122
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfdGhlbWUiLCJfcmVhY3RSZWR1eCIsIl91dGlscyIsIl9BcmVhQ2FyZCIsIl9GYWN0b3J5Q2FyZCIsIl9PcmdhbmljQ2FyZCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfUG90ZW50aWFsU2F2aW5nIiwiX0xpc3RDb250ZXh0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YzIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiTGlzdCIsInByb3BzIiwiX1dXVFBJbmZvJHBvaW50IiwiX3VzZVNlbGVjdGVkSXRlbSIsInVzZVNlbGVjdGVkSXRlbSIsInNlbGVjdGVkSXRlbSIsImhhbmRsZVNlbGVjdEl0ZW0iLCJXV1RQSW5mbyIsIl91c2VTZWxlY3RvciIsInVzZVNlbGVjdG9yIiwic3RhdGUiLCJ3d3RwX2Rhc2hib2FyZCIsImZvY3VzZWRBcmVhIiwibWFwIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwiYXJlYXMiLCJzZXRBcmVhcyIsInNlbGVjdGVkUmVmIiwidXNlUmVmIiwiaGFuZGxlSXRlbUNsaWNrIiwiaXRlbSIsImFyZWFEZXRhaWxzIiwidXNlTWVtbyIsImNyZWF0ZUVsZW1lbnQiLCJGcmFnbWVudCIsInN1Yl9hcmVhcyIsImxlbmd0aCIsImZpbHRlciIsIkJvb2xlYW4iLCJhcmVhIiwiQXJlYUNhcmQiLCJhcmVhX2lkIiwib2JqZWN0IiwibWFwUmVmIiwib25DbGljayIsInNlbGVjdGVkIiwiaXRlbVJlZiIsImZhY3RvcmllcyIsImZhY3RvcnkiLCJGYWN0b3J5Q2FyZCIsImlkIiwidXNlRWZmZWN0IiwiX3R5cGVvZjIiLCJfbGF5ZXJzIiwidW5kZWZpbmVkIiwicG9pbnQiLCJhcmVhRm9jdXNMb2dpYyIsImZvY3VzTWFwIiwiX3NlbGVjdGVkUmVmJGN1cnJlbnQiLCJjdXJyZW50Iiwic2Nyb2xsSW50b1ZpZXciLCJiZWhhdmlvciIsImJsb2NrIiwiaW5saW5lIiwiV1dUUERldGFpbHMiLCJjbGFzc05hbWUiLCJzdHlsZSIsIm92ZXJmbG93IiwibmFtZSIsImFyZWFfbmFtZSIsImV4cG9ydHMiLCJzdHlsZWQiLCJkaXYiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsInRoZW1lIiwiV1dUUE1hcCIsImJnIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BhZ2VzL0Rhc2hib2FyZE1hcC9MaXN0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQXJlYSB9IGZyb20gJy4uLy4uL3N0b3JlL2FyZWFzL21vZGVscy9JQXJlYSc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICcuLi8uLi9zdG9yZS9wb2ludHMvbW9kZWxzL0lQb2ludCc7XG5pbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSwgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cy9tYWNybyc7XG5pbXBvcnQgeyB0aGVtZSB9IGZyb20gJ3NyYy9zdHlsZXMvdGhlbWUvdGhlbWUnO1xuaW1wb3J0IHsgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBhcHBSZWR1Y2VyIH0gZnJvbSAnLi4vLi4vc3RvcmUvcm9vdFJlZHVjZXInO1xuaW1wb3J0IHsgYXJlYUZvY3VzTG9naWMsIGZvY3VzTWFwIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBBcmVhQ2FyZCB9IGZyb20gJy4vQXJlYUNhcmQnO1xuaW1wb3J0IHsgRmFjdG9yeUNhcmQgfSBmcm9tICcuL0ZhY3RvcnlDYXJkJztcbmltcG9ydCBPcmdhbmljQ2FyZCBmcm9tICcuLi9Xd3RwUGFnZS9PcmdhbmljQ2FyZCc7XG5pbXBvcnQgSW1wYWN0Q2FyZCBmcm9tICcuLi9Xd3RwUGFnZS9Qb3RlbnRpYWxTYXZpbmcnO1xuaW1wb3J0IHsgdXNlU2VsZWN0ZWRJdGVtIH0gZnJvbSAnLi9MaXN0Q29udGV4dCc7XG5cbnR5cGUgSVByb3BzID0ge1xuICBnbG9iYWxfZGF0YTogYW55O1xuICBhcmVhczogSUFyZWFbXSB8IG51bGw7XG4gIHBvaW50czogSVBvaW50W10gfCBudWxsO1xuICBXV1RQSW5mbzogYW55O1xufTtcblxuZXhwb3J0IGNvbnN0IExpc3Q6IFJlYWN0LkZDPElQcm9wcz4gPSAocHJvcHMpID0+IHtcbiAgY29uc3QgeyBzZWxlY3RlZEl0ZW0sIGhhbmRsZVNlbGVjdEl0ZW0gfSA9IHVzZVNlbGVjdGVkSXRlbSgpO1xuICBjb25zdCB7IFdXVFBJbmZvIH0gPSBwcm9wcztcbiAgY29uc3QgeyBmb2N1c2VkQXJlYSwgbWFwIH0gPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGU6IFJldHVyblR5cGU8dHlwZW9mIGFwcFJlZHVjZXI+KSA9PiBzdGF0ZS53d3RwX2Rhc2hib2FyZCxcbiAgKTtcbiAgY29uc3QgW2FyZWFzLCBzZXRBcmVhc10gPSB1c2VTdGF0ZTxJQXJlYVtdIHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IHNlbGVjdGVkUmVmID0gdXNlUmVmKG51bGwpO1xuXG4gIGNvbnN0IGhhbmRsZUl0ZW1DbGljayA9IChpdGVtKSA9PiB7XG4gICAgaGFuZGxlU2VsZWN0SXRlbShpdGVtKTtcbiAgfTtcblxuICBsZXQgYXJlYURldGFpbHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIWFyZWFzKSByZXR1cm4gPD48Lz47XG5cbiAgICBpZiAoZm9jdXNlZEFyZWE/LnN1Yl9hcmVhcy5sZW5ndGggIT09IDApIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGFyZWFzICYmXG4gICAgICAgIGFyZWFzXG4gICAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgICAgIC5tYXAoKGFyZWE6IElBcmVhKSA9PiAoXG4gICAgICAgICAgICA8QXJlYUNhcmRcbiAgICAgICAgICAgICAga2V5PXthcmVhLmFyZWFfaWR9XG4gICAgICAgICAgICAgIG9iamVjdD17YXJlYX1cbiAgICAgICAgICAgICAgbWFwUmVmPXttYXB9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZUl0ZW1DbGljayhhcmVhLmFyZWFfaWQpfVxuICAgICAgICAgICAgICBzZWxlY3RlZD17c2VsZWN0ZWRJdGVtID09PSBhcmVhLmFyZWFfaWR9XG4gICAgICAgICAgICAgIGl0ZW1SZWY9e3NlbGVjdGVkSXRlbSA9PT0gYXJlYS5hcmVhX2lkID8gc2VsZWN0ZWRSZWYgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApKVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGZvY3VzZWRBcmVhPy5mYWN0b3JpZXMpIHtcbiAgICAgICAgcmV0dXJuIGZvY3VzZWRBcmVhLmZhY3Rvcmllc1xuICAgICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgICAgICAubWFwKChmYWN0b3J5KSA9PiAoXG4gICAgICAgICAgICA8RmFjdG9yeUNhcmRcbiAgICAgICAgICAgICAga2V5PXtmYWN0b3J5LmlkfVxuICAgICAgICAgICAgICBvYmplY3Q9e2ZhY3Rvcnl9XG4gICAgICAgICAgICAgIG1hcFJlZj17bWFwfVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVJdGVtQ2xpY2soZmFjdG9yeS5pZCl9XG4gICAgICAgICAgICAgIHNlbGVjdGVkPXtzZWxlY3RlZEl0ZW0gPT09IGZhY3RvcnkuaWR9XG4gICAgICAgICAgICAgIGl0ZW1SZWY9e3NlbGVjdGVkSXRlbSA9PT0gZmFjdG9yeS5pZCA/IHNlbGVjdGVkUmVmIDogbnVsbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gPD48Lz47XG4gICAgfVxuICB9LCBbc2VsZWN0ZWRJdGVtLCBhcmVhc10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gdGhlIG1hcCBsYXllcnMgaXMgYW4gb2JqZWN0IGJ1dCBiZWZvcmUgdGhlIG1hcCBpcyBsb2FkZWQgaXQgaXMgYSB6ZXJvIGxlbmd0aGVkIGFycmF5XG4gICAgaWYgKFxuICAgICAgZm9jdXNlZEFyZWEgIT0gbnVsbCAmJlxuICAgICAgbWFwICE9PSBudWxsICYmXG4gICAgICB0eXBlb2YgbWFwLl9sYXllcnMgPT09ICdvYmplY3QnICYmXG4gICAgICBtYXAuX2xheWVycy5sZW5ndGggPT09IHVuZGVmaW5lZFxuICAgICkge1xuICAgICAgY29uc3QgV1dUUEluZm8gPSB7XG4gICAgICAgIHBvaW50OiB1bmRlZmluZWQsXG4gICAgICAgIGFyZWE6IGZvY3VzZWRBcmVhLFxuICAgICAgfTtcbiAgICAgIGFyZWFGb2N1c0xvZ2ljKHsgV1dUUEluZm8sIHNldEFyZWFzLCBtYXAgfSk7XG4gICAgICBmb2N1c01hcChmb2N1c2VkQXJlYSwgbWFwKTtcbiAgICB9XG4gIH0sIFtmb2N1c2VkQXJlYV0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2VsZWN0ZWRSZWYuY3VycmVudD8uc2Nyb2xsSW50b1ZpZXcoe1xuICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnLFxuICAgICAgYmxvY2s6ICdjZW50ZXInLFxuICAgICAgaW5saW5lOiAnY2VudGVyJyxcbiAgICB9KTtcbiAgfSwgW3NlbGVjdGVkSXRlbV0pO1xuXG4gIGlmICghZm9jdXNlZEFyZWEpXG4gICAgcmV0dXJuIChcbiAgICAgIDxXV1RQRGV0YWlscyBjbGFzc05hbWU9XCJwLTNcIiBzdHlsZT17eyBvdmVyZmxvdzogJ3Njcm9sbCcgfX0+XG4gICAgICAgIDxoMz57V1dUUEluZm8ucG9pbnQ/Lm5hbWV9PC9oMz5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9eydoLWF1dG8gbXktNCd9PlxuICAgICAgICAgIDxPcmdhbmljQ2FyZCAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9eydoLWF1dG8gbXQtMid9PlxuICAgICAgICAgIDxJbXBhY3RDYXJkIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9XV1RQRGV0YWlscz5cbiAgICApO1xuXG4gIHJldHVybiAoXG4gICAgPFdXVFBEZXRhaWxzIGNsYXNzTmFtZT1cInAtM1wiIHN0eWxlPXt7IG92ZXJmbG93OiAnc2Nyb2xsJyB9fT5cbiAgICAgIDxoMz57Zm9jdXNlZEFyZWEuYXJlYV9uYW1lIHx8IGZvY3VzZWRBcmVhLm5hbWV9PC9oMz5cbiAgICAgIDx1bCBjbGFzc05hbWU9eydteC1uMyd9PnthcmVhRGV0YWlsc308L3VsPlxuICAgIDwvV1dUUERldGFpbHM+XG4gICk7XG59O1xuXG5jb25zdCBXV1RQRGV0YWlscyA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAxMzRweCk7XG4gIGJhY2tncm91bmQ6ICR7dGhlbWUuV1dUUE1hcC5iZ307XG5gO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUVBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFdBQUEsR0FBQUYsT0FBQTtBQUVBLElBQUFHLE1BQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFNBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFlBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFlBQUEsR0FBQUMsc0JBQUEsQ0FBQVAsT0FBQTtBQUNBLElBQUFRLGdCQUFBLEdBQUFELHNCQUFBLENBQUFQLE9BQUE7QUFDQSxJQUFBUyxZQUFB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
@@ -18,11 +18,10 @@ var _List = require("./List");
18
18
  var _utils = require("./utils");
19
19
  var _Loader = require("./Loader");
20
20
  var _reactRouterDom = require("react-router-dom");
21
- var _useQueryURL = _interopRequireDefault(require("../../hooks/useQueryURL"));
22
21
  var _WWTPDashboardSlice = require("../../store/WWTPDashboard/WWTPDashboardSlice");
23
22
  var _ListContext = require("./ListContext");
24
23
  var _reactBootstrap = require("react-bootstrap");
25
- var _Capacity = require("./Capacity");
24
+ var _useQueryURL = _interopRequireDefault(require("../../hooks/useQueryURL"));
26
25
  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); }
27
26
  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; }
28
27
  var WWTPMap = function WWTPMap(props) {
@@ -60,13 +59,37 @@ var WWTPMap = function WWTPMap(props) {
60
59
  var dataExists = function dataExists() {
61
60
  return areas_data.newAreas.length !== 0 || points_data.items.length !== 0 || edges_data.items.length !== 0;
62
61
  };
62
+ (0, _react.useEffect)(function () {
63
+ // if (
64
+ // !WWTPInfo.area ||
65
+ // !wwtp_dashboard.map ||
66
+ // points_data.items.length === 0
67
+ // )
68
+ // return;
69
+
70
+ if (isMapTab && (WWTPInfo.area || WWTPInfo.point)) {
71
+ (0, _utils.focusMap)(WWTPInfo.area ? WWTPInfo.area : WWTPInfo.point, wwtp_dashboard.map);
72
+ // areaFocusLogic({
73
+ // WWTPInfo,
74
+ // setAreas,
75
+ // map: wwtp_dashboard.map,
76
+ // });
77
+ }
78
+ }, [wwtp_dashboard.map, WWTPInfo]);
63
79
  (0, _react.useEffect)(function () {
64
80
  if (global_data.waterAuthorityId) {
65
- dispatch((0, _actions3.fetchPoints)(global_data.waterAuthorityId));
66
- dispatch((0, _actions2.fetchEdges)(global_data.waterAuthorityId));
81
+ // dispatch(fetchPoints(global_data.waterAuthorityId));
82
+ // dispatch(fetchEdges(global_data.waterAuthorityId));
67
83
  dispatch((0, _actions.fetchAreas)(global_data.waterAuthorityId, ReduxState.dashboard.period.toString(), true));
68
84
  }
69
85
  }, [ReduxState.dashboard.period]);
86
+ (0, _react.useEffect)(function () {
87
+ if (global_data.waterAuthorityId) {
88
+ points_data.items.length === 0 && dispatch((0, _actions3.fetchPoints)(global_data.waterAuthorityId));
89
+ edges_data.items.length === 0 && dispatch((0, _actions2.fetchEdges)(global_data.waterAuthorityId));
90
+ areas_data.items.length === 0 && dispatch((0, _actions.fetchAreas)(global_data.waterAuthorityId, ReduxState.dashboard.period, true));
91
+ }
92
+ }, [isMapTab, global_data.waterAuthorityId]);
70
93
  (0, _react.useEffect)(function () {
71
94
  (0, _utils.initializeWWTPData)({
72
95
  areas_data: areas_data,
@@ -77,23 +100,8 @@ var WWTPMap = function WWTPMap(props) {
77
100
  dataExists: dataExists,
78
101
  id: id
79
102
  });
80
- }, [areas_data]);
103
+ }, [areas_data.newAreas, points_data.items]);
81
104
  (0, _react.useEffect)(function () {
82
- setWWTPInfo((0, _utils.calculateWWTPInfo)({
83
- id: id,
84
- points_data: points_data,
85
- areas_data: areas_data
86
- }));
87
- }, [id]);
88
- (0, _react.useEffect)(function () {
89
- (0, _utils.focusMap)(WWTPInfo.area || WWTPInfo.point, wwtp_dashboard.map);
90
- }, [WWTPInfo]);
91
- (0, _react.useEffect)(function () {
92
- if (global_data.waterAuthorityId) {
93
- points_data.items.length === 0 && dispatch((0, _actions3.fetchPoints)(global_data.waterAuthorityId));
94
- edges_data.items.length === 0 && dispatch((0, _actions2.fetchEdges)(global_data.waterAuthorityId));
95
- areas_data.items.length === 0 && dispatch((0, _actions.fetchAreas)(global_data.waterAuthorityId, ReduxState.dashboard.period, true));
96
- }
97
105
  return function cleanup() {
98
106
  setPoints(null);
99
107
  setAreas(null);
@@ -106,30 +114,23 @@ var WWTPMap = function WWTPMap(props) {
106
114
  };
107
115
  }, [global_data.waterAuthorityId]);
108
116
  (0, _react.useEffect)(function () {
109
- var object = WWTPInfo.area || WWTPInfo.point;
110
- if (isMapTab && object) {
111
- var type = WWTPInfo.area ? object.is_virtual === true ? 'varea' : 'area' : 'site';
112
- var validObject = type === 'site' ? object.id.toString() === id : object.area_id === parseInt(id);
113
- if (validObject) {
114
- (0, _Capacity.fetchCapacity)(type, id, global_data.waterAuthorityId).then(function (response) {
115
- (0, _Capacity.setFocusedItem)(object, response.data, points, areas, dispatch, _WWTPDashboardSlice.setFocusedArea);
117
+ if (areaID === id && areas_data.newAreas.length > 0) {
118
+ var area = areas_data.newAreas.find(function (area) {
119
+ return area.area_id.toString() === id;
120
+ });
121
+ area && dispatch((0, _WWTPDashboardSlice.setFocusedArea)(area));
122
+ } else {
123
+ if (points_data.items.length > 0) {
124
+ var point = points_data.items.find(function (point) {
125
+ return point.id.toString() === id;
116
126
  });
127
+ point && dispatch((0, _WWTPDashboardSlice.setFocusedArea)(point));
128
+ } else {
129
+ // console.log('last option');
130
+ dispatch((0, _WWTPDashboardSlice.setFocusedArea)(areas_data.newAreas));
117
131
  }
118
- } else {
119
- var utilityDirects = areas === null || areas === void 0 ? void 0 : areas.filter(
120
- // consider changing to has_parent = false
121
- // sorting the list becasue the server doesn't
122
- function (area) {
123
- return area.is_virtual === true || area.is_wwtp === true || area.is_inlet === true;
124
- }).sort(function (a, b) {
125
- return a.is_assessment === b.is_assessment ? 0 : a.is_assessment ? -1 : 1;
126
- }).sort(function (a, b) {
127
- return b.area_score - a.area_score;
128
- });
129
- (0, _Capacity.setFocusedItem)(undefined, null, points, utilityDirects, dispatch, _WWTPDashboardSlice.setFocusedArea);
130
132
  }
131
- (0, _utils.focusMap)(object, wwtp_dashboard.map);
132
- }, [wwtp_dashboard.map]);
133
+ }, [areas]);
133
134
  if (!isMapTab) return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
134
135
  if (!dataExists() || !points || !areas) return /*#__PURE__*/_react.default.createElement(_Loader.Loader, null);
135
136
  return /*#__PURE__*/_react.default.createElement(_ListContext.SelectedItemProvider, null, /*#__PURE__*/_react.default.createElement(Container, props, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Row, {
@@ -152,7 +153,7 @@ var WWTPMap = function WWTPMap(props) {
152
153
  areas: areas,
153
154
  global_data: global_data,
154
155
  edges: edges_data.items,
155
- areaToCenterBy: null,
156
+ areaToCenterBy: areas[0],
156
157
  focusedEvent: null,
157
158
  includeUnmonitoredPoints: true,
158
159
  forEventsView: false,
@@ -165,4 +166,4 @@ var Container = _styledComponents.default.div.withConfig({
165
166
  })(["width:100vw;.map-column{z-index:0;}.kd-map-container{height:calc(100vh - 134px);width:100%;@media (max-width:1250px){height:calc(100vh - 125px);}#map{height:100%;width:100%;*,*:focus,*:hover{outline:none;}.leaflet-popup-close-button{font-size:x-large;}}}"]);
166
167
  var _default = WWTPMap;
167
168
  exports.default = _default;
168
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3RSZWR1eCIsInJlcXVpcmUiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9NYXAiLCJfYWN0aW9ucyIsIl9hY3Rpb25zMiIsIl9hY3Rpb25zMyIsIl9MaXN0IiwiX3V0aWxzIiwiX0xvYWRlciIsIl9yZWFjdFJvdXRlckRvbSIsIl91c2VRdWVyeVVSTCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfV1dUUERhc2hib2FyZFNsaWNlIiwiX0xpc3RDb250ZXh0IiwiX3JlYWN0Qm9vdHN0cmFwIiwiX0NhcGFjaXR5IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJXV1RQTWFwIiwicHJvcHMiLCJzZWFyY2hRdWVyeSIsInVzZVF1ZXJ5VVJMIiwiaXNNYXBUYWIiLCJfdXNlUGFyYW1zIiwidXNlUGFyYW1zIiwiaWQiLCJhcmVhSUQiLCJzaXRlSUQiLCJSZWR1eFN0YXRlIiwidXNlU2VsZWN0b3IiLCJzdGF0ZSIsImRpc3BhdGNoIiwidXNlRGlzcGF0Y2giLCJhcmVhc19kYXRhIiwiZ2xvYmFsX2RhdGEiLCJwb2ludHNfZGF0YSIsImVkZ2VzX2RhdGEiLCJ3d3RwX2Rhc2hib2FyZCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInBvaW50cyIsInNldFBvaW50cyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiYXJlYXMiLCJzZXRBcmVhcyIsIl91c2VTdGF0ZTUiLCJwb2ludCIsImFyZWEiLCJfdXNlU3RhdGU2IiwiV1dUUEluZm8iLCJzZXRXV1RQSW5mbyIsImRhdGFFeGlzdHMiLCJuZXdBcmVhcyIsImxlbmd0aCIsIml0ZW1zIiwidXNlRWZmZWN0Iiwid2F0ZXJBdXRob3JpdHlJZCIsImZldGNoUG9pbnRzIiwiZmV0Y2hFZGdlcyIsImZldGNoQXJlYXMiLCJkYXNoYm9hcmQiLCJwZXJpb2QiLCJ0b1N0cmluZyIsImluaXRpYWxpemVXV1RQRGF0YSIsImNhbGN1bGF0ZVdXVFBJbmZvIiwiZm9jdXNNYXAiLCJtYXAiLCJjbGVhbnVwIiwic2V0Rm9jdXNlZEFyZWEiLCJzZXRNYXAiLCJvYmplY3QiLCJ0eXBlIiwiaXNfdmlydHVhbCIsInZhbGlkT2JqZWN0IiwiYXJlYV9pZCIsInBhcnNlSW50IiwiZmV0Y2hDYXBhY2l0eSIsInRoZW4iLCJyZXNwb25zZSIsInNldEZvY3VzZWRJdGVtIiwiZGF0YSIsInV0aWxpdHlEaXJlY3RzIiwiZmlsdGVyIiwiaXNfd3d0cCIsImlzX2lubGV0Iiwic29ydCIsImEiLCJiIiwiaXNfYXNzZXNzbWVudCIsImFyZWFfc2NvcmUiLCJ1bmRlZmluZWQiLCJjcmVhdGVFbGVtZW50IiwiRnJhZ21lbnQiLCJMb2FkZXIiLCJTZWxlY3RlZEl0ZW1Qcm92aWRlciIsIkNvbnRhaW5lciIsIlJvdyIsImNsYXNzTmFtZSIsIkNvbCIsInhzIiwic20iLCJMaXN0IiwiTWFwIiwiZWRnZXMiLCJhcmVhVG9DZW50ZXJCeSIsImZvY3VzZWRFdmVudCIsImluY2x1ZGVVbm1vbml0b3JlZFBvaW50cyIsImZvckV2ZW50c1ZpZXciLCJmb3JXV1RQRGFzaGJvYXJkIiwic3R5bGVkIiwiZGl2Iiwid2l0aENvbmZpZyIsImRpc3BsYXlOYW1lIiwiY29tcG9uZW50SWQiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFnZXMvRGFzaGJvYXJkTWFwL1dXVFBNYXAudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgTWFwIH0gZnJvbSAnc3JjL1dpZGdldHMvTWFwL01hcCc7XG5pbXBvcnQgeyBmZXRjaEFyZWFzIH0gZnJvbSAnc3JjL3N0b3JlL2FyZWFzL2FjdGlvbnMnO1xuaW1wb3J0IHsgZmV0Y2hFZGdlcyB9IGZyb20gJ3NyYy9zdG9yZS9lZGdlcy9hY3Rpb25zJztcbmltcG9ydCB7IGZldGNoUG9pbnRzIH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9hY3Rpb25zJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMvbWFjcm8nO1xuaW1wb3J0IHsgTGlzdCB9IGZyb20gJy4vTGlzdCc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICcuLi8uLi9zdG9yZS9wb2ludHMvbW9kZWxzL0lQb2ludCc7XG5pbXBvcnQgeyBJQXJlYSB9IGZyb20gJy4uLy4uL3N0b3JlL2FyZWFzL21vZGVscy9JQXJlYSc7XG5pbXBvcnQgeyBjYWxjdWxhdGVXV1RQSW5mbywgZm9jdXNNYXAsIGluaXRpYWxpemVXV1RQRGF0YSB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgTG9hZGVyIH0gZnJvbSAnLi9Mb2FkZXInO1xuaW1wb3J0IHsgdXNlUGFyYW1zIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgdXNlUXVlcnlVUkwgZnJvbSAnLi4vLi4vaG9va3MvdXNlUXVlcnlVUkwnO1xuaW1wb3J0IHtcbiAgc2V0Rm9jdXNlZEFyZWEsXG4gIHNldE1hcCxcbn0gZnJvbSAnLi4vLi4vc3RvcmUvV1dUUERhc2hib2FyZC9XV1RQRGFzaGJvYXJkU2xpY2UnO1xuaW1wb3J0IHsgU2VsZWN0ZWRJdGVtUHJvdmlkZXIgfSBmcm9tICcuL0xpc3RDb250ZXh0JztcbmltcG9ydCB7IFJvdywgQ29sIH0gZnJvbSAncmVhY3QtYm9vdHN0cmFwJztcbmltcG9ydCB7IGZldGNoQ2FwYWNpdHksIHNldEZvY3VzZWRJdGVtIH0gZnJvbSAnLi9DYXBhY2l0eSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FwYWNpdHlNYXBDb250YWluZXJQcm9wcyB7XG4gIGNsYXNzTmFtZTogc3RyaW5nO1xufVxuY29uc3QgV1dUUE1hcDogUmVhY3QuRkM8Q2FwYWNpdHlNYXBDb250YWluZXJQcm9wcz4gPSAocHJvcHMpID0+IHtcbiAgY29uc3Qgc2VhcmNoUXVlcnkgPSB1c2VRdWVyeVVSTCgpO1xuICBjb25zdCBpc01hcFRhYiA9IHNlYXJjaFF1ZXJ5LmdldCgndmlldycpID09PSAnbWFwJztcbiAgbGV0IHsgaWQsIGFyZWFJRCwgc2l0ZUlEIH0gPSB1c2VQYXJhbXMoKTtcbiAgaWQgPSBpZCB8fCBhcmVhSUQgfHwgc2l0ZUlEO1xuICBjb25zdCBSZWR1eFN0YXRlID0gdXNlU2VsZWN0b3IoKHN0YXRlKSA9PiBzdGF0ZSk7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgeyBhcmVhc19kYXRhLCBnbG9iYWxfZGF0YSwgcG9pbnRzX2RhdGEsIGVkZ2VzX2RhdGEsIHd3dHBfZGFzaGJvYXJkIH0gPVxuICAgIFJlZHV4U3RhdGU7XG4gIGNvbnN0IFtwb2ludHMsIHNldFBvaW50c10gPSB1c2VTdGF0ZTxJUG9pbnRbXSB8IG51bGw+KG51bGwpO1xuICBjb25zdCBbYXJlYXMsIHNldEFyZWFzXSA9IHVzZVN0YXRlPElBcmVhW10gfCBudWxsPihudWxsKTtcbiAgY29uc3QgW1dXVFBJbmZvLCBzZXRXV1RQSW5mb10gPSB1c2VTdGF0ZTx7XG4gICAgcG9pbnQ6IElQb2ludCB8IG51bGw7XG4gICAgYXJlYTogSUFyZWEgfCBudWxsO1xuICB9Pih7IHBvaW50OiBudWxsLCBhcmVhOiBudWxsIH0pO1xuICBsZXQgZGF0YUV4aXN0cyA9ICgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgYXJlYXNfZGF0YS5uZXdBcmVhcy5sZW5ndGggIT09IDAgfHxcbiAgICAgIHBvaW50c19kYXRhLml0ZW1zLmxlbmd0aCAhPT0gMCB8fFxuICAgICAgZWRnZXNfZGF0YS5pdGVtcy5sZW5ndGggIT09IDBcbiAgICApO1xuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQpIHtcbiAgICAgIGRpc3BhdGNoKGZldGNoUG9pbnRzKGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQpKTtcbiAgICAgIGRpc3BhdGNoKGZldGNoRWRnZXMoZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCkpO1xuICAgICAgZGlzcGF0Y2goXG4gICAgICAgIGZldGNoQXJlYXMoXG4gICAgICAgICAgZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCxcbiAgICAgICAgICBSZWR1eFN0YXRlLmRhc2hib2FyZC5wZXJpb2QudG9TdHJpbmcoKSxcbiAgICAgICAgICB0cnVlLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICB9XG4gIH0sIFtSZWR1eFN0YXRlLmRhc2hib2FyZC5wZXJpb2RdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGluaXRpYWxpemVXV1RQRGF0YSh7XG4gICAgICBhcmVhc19kYXRhLFxuICAgICAgcG9pbnRzX2RhdGEsXG4gICAgICBzZXRQb2ludHMsXG4gICAgICBzZXRBcmVhcyxcbiAgICAgIHNldFdXVFBJbmZvLFxuICAgICAgZGF0YUV4aXN0cyxcbiAgICAgIGlkLFxuICAgIH0pO1xuICB9LCBbYXJlYXNfZGF0YV0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0V1dUUEluZm8oY2FsY3VsYXRlV1dUUEluZm8oeyBpZCwgcG9pbnRzX2RhdGEsIGFyZWFzX2RhdGEgfSkpO1xuICB9LCBbaWRdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGZvY3VzTWFwKFdXVFBJbmZvLmFyZWEgfHwgV1dUUEluZm8ucG9pbnQsIHd3dHBfZGFzaGJvYXJkLm1hcCk7XG4gIH0sIFtXV1RQSW5mb10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQpIHtcbiAgICAgIHBvaW50c19kYXRhLml0ZW1zLmxlbmd0aCA9PT0gMCAmJlxuICAgICAgICBkaXNwYXRjaChmZXRjaFBvaW50cyhnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkKSk7XG4gICAgICBlZGdlc19kYXRhLml0ZW1zLmxlbmd0aCA9PT0gMCAmJlxuICAgICAgICBkaXNwYXRjaChmZXRjaEVkZ2VzKGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQpKTtcbiAgICAgIGFyZWFzX2RhdGEuaXRlbXMubGVuZ3RoID09PSAwICYmXG4gICAgICAgIGRpc3BhdGNoKFxuICAgICAgICAgIGZldGNoQXJlYXMoXG4gICAgICAgICAgICBnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkLFxuICAgICAgICAgICAgUmVkdXhTdGF0ZS5kYXNoYm9hcmQucGVyaW9kLFxuICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICApLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBmdW5jdGlvbiBjbGVhbnVwKCkge1xuICAgICAgc2V0UG9pbnRzKG51bGwpO1xuICAgICAgc2V0QXJlYXMobnVsbCk7XG4gICAgICBzZXRXV1RQSW5mbyh7IHBvaW50OiBudWxsLCBhcmVhOiBudWxsIH0pO1xuICAgICAgZGlzcGF0Y2goc2V0Rm9jdXNlZEFyZWEobnVsbCkpO1xuICAgICAgZGlzcGF0Y2goc2V0TWFwKG51bGwpKTtcbiAgICB9O1xuICB9LCBbZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgb2JqZWN0ID0gV1dUUEluZm8uYXJlYSB8fCBXV1RQSW5mby5wb2ludDtcblxuICAgIGlmIChpc01hcFRhYiAmJiBvYmplY3QpIHtcbiAgICAgIGNvbnN0IHR5cGUgPSBXV1RQSW5mby5hcmVhXG4gICAgICAgID8gb2JqZWN0LmlzX3ZpcnR1YWwgPT09IHRydWVcbiAgICAgICAgICA/ICd2YXJlYSdcbiAgICAgICAgICA6ICdhcmVhJ1xuICAgICAgICA6ICdzaXRlJztcblxuICAgICAgY29uc3QgdmFsaWRPYmplY3QgPVxuICAgICAgICB0eXBlID09PSAnc2l0ZSdcbiAgICAgICAgICA/IG9iamVjdC5pZC50b1N0cmluZygpID09PSBpZFxuICAgICAgICAgIDogb2JqZWN0LmFyZWFfaWQgPT09IHBhcnNlSW50KGlkKTtcbiAgICAgIGlmICh2YWxpZE9iamVjdCkge1xuICAgICAgICBmZXRjaENhcGFjaXR5KHR5cGUsIGlkLCBnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkKS50aGVuKFxuICAgICAgICAgIChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgc2V0Rm9jdXNlZEl0ZW0oXG4gICAgICAgICAgICAgIG9iamVjdCxcbiAgICAgICAgICAgICAgcmVzcG9uc2UuZGF0YSxcbiAgICAgICAgICAgICAgcG9pbnRzLFxuICAgICAgICAgICAgICBhcmVhcyxcbiAgICAgICAgICAgICAgZGlzcGF0Y2gsXG4gICAgICAgICAgICAgIHNldEZvY3VzZWRBcmVhLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB1dGlsaXR5RGlyZWN0cyA9IGFyZWFzXG4gICAgICAgID8uZmlsdGVyKFxuICAgICAgICAgIC8vIGNvbnNpZGVyIGNoYW5naW5nIHRvIGhhc19wYXJlbnQgPSBmYWxzZVxuICAgICAgICAgIC8vIHNvcnRpbmcgdGhlIGxpc3QgYmVjYXN1ZSB0aGUgc2VydmVyIGRvZXNuJ3RcbiAgICAgICAgICAoYXJlYSkgPT5cbiAgICAgICAgICAgIGFyZWEuaXNfdmlydHVhbCA9PT0gdHJ1ZSB8fFxuICAgICAgICAgICAgYXJlYS5pc193d3RwID09PSB0cnVlIHx8XG4gICAgICAgICAgICBhcmVhLmlzX2lubGV0ID09PSB0cnVlLFxuICAgICAgICApXG4gICAgICAgIC5zb3J0KChhLCBiKSA9PlxuICAgICAgICAgIGEuaXNfYXNzZXNzbWVudCA9PT0gYi5pc19hc3Nlc3NtZW50ID8gMCA6IGEuaXNfYXNzZXNzbWVudCA/IC0xIDogMSxcbiAgICAgICAgKVxuICAgICAgICAuc29ydCgoYSwgYikgPT4gYi5hcmVhX3Njb3JlIC0gYS5hcmVhX3Njb3JlKTtcblxuICAgICAgc2V0Rm9jdXNlZEl0ZW0oXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgbnVsbCxcbiAgICAgICAgcG9pbnRzLFxuICAgICAgICB1dGlsaXR5RGlyZWN0cyxcbiAgICAgICAgZGlzcGF0Y2gsXG4gICAgICAgIHNldEZvY3VzZWRBcmVhLFxuICAgICAgKTtcbiAgICB9XG4gICAgZm9jdXNNYXAob2JqZWN0LCB3d3RwX2Rhc2hib2FyZC5tYXApO1xuICB9LCBbd3d0cF9kYXNoYm9hcmQubWFwXSk7XG5cbiAgaWYgKCFpc01hcFRhYikgcmV0dXJuIDw+PC8+O1xuICBpZiAoIWRhdGFFeGlzdHMoKSB8fCAhcG9pbnRzIHx8ICFhcmVhcykgcmV0dXJuIDxMb2FkZXIgLz47XG4gIHJldHVybiAoXG4gICAgPFNlbGVjdGVkSXRlbVByb3ZpZGVyPlxuICAgICAgPENvbnRhaW5lciB7Li4ucHJvcHN9PlxuICAgICAgICA8Um93IGNsYXNzTmFtZT1cIm5vLWd1dHRlcnNcIj5cbiAgICAgICAgICA8Q29sIHhzPVwiYXV0b1wiIHNtPXs0fSBjbGFzc05hbWU9XCJkLW5vbmUgZC1zbS1mbGV4XCI+XG4gICAgICAgICAgICA8TGlzdFxuICAgICAgICAgICAgICBnbG9iYWxfZGF0YT17Z2xvYmFsX2RhdGF9XG4gICAgICAgICAgICAgIGFyZWFzPXthcmVhc31cbiAgICAgICAgICAgICAgcG9pbnRzPXtwb2ludHN9XG4gICAgICAgICAgICAgIFdXVFBJbmZvPXtXV1RQSW5mb31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgPENvbCBjbGFzc05hbWU9XCJtYXAtY29sdW1uXCIgeHM9ezEyfSBzbT17OH0+XG4gICAgICAgICAgICA8TWFwXG4gICAgICAgICAgICAgIHBvaW50cz17cG9pbnRzfVxuICAgICAgICAgICAgICBhcmVhcz17YXJlYXN9XG4gICAgICAgICAgICAgIGdsb2JhbF9kYXRhPXtnbG9iYWxfZGF0YX1cbiAgICAgICAgICAgICAgZWRnZXM9e2VkZ2VzX2RhdGEuaXRlbXN9XG4gICAgICAgICAgICAgIGFyZWFUb0NlbnRlckJ5PXtudWxsfVxuICAgICAgICAgICAgICBmb2N1c2VkRXZlbnQ9e251bGx9XG4gICAgICAgICAgICAgIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50cz17dHJ1ZX1cbiAgICAgICAgICAgICAgZm9yRXZlbnRzVmlldz17ZmFsc2V9XG4gICAgICAgICAgICAgIGZvcldXVFBEYXNoYm9hcmQ9e3RydWV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cbiAgICAgIDwvQ29udGFpbmVyPlxuICAgIDwvU2VsZWN0ZWRJdGVtUHJvdmlkZXI+XG4gICk7XG59O1xuXG5jb25zdCBDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTAwdnc7XG5cbiAgLm1hcC1jb2x1bW4ge1xuICAgIHotaW5kZXg6IDA7XG4gIH1cblxuICAua2QtbWFwLWNvbnRhaW5lciB7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTM0cHgpO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDEyNTBweCkge1xuICAgICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTI1cHgpO1xuICAgIH1cblxuICAgICNtYXAge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICosXG4gICAgICAqOmZvY3VzLFxuICAgICAgKjpob3ZlciB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5sZWFmbGV0LXBvcHVwLWNsb3NlLWJ1dHRvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogeC1sYXJnZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbmA7XG5cbmV4cG9ydCBkZWZhdWx0IFdXVFBNYXA7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFDLHVCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxJQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxRQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxTQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxTQUFBLEdBQUFOLE9BQUE7QUFFQSxJQUFBTyxLQUFBLEdBQUFQLE9BQUE7QUFHQSxJQUFBUSxNQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxPQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSxlQUFBLEdBQUFWLE9BQUE7QUFDQSxJQUFBVyxZQUFBLEdBQUFDLHNCQUFBLENBQUFaLE9BQUE7QUFDQSxJQUFBYSxtQkFBQSxHQUFBYixPQUFBO0FBSUEsSUFBQWMsWUFBQSxHQUFBZCxPQUFBO0FBQ0EsSUFBQWUsZUFBQSxHQUFBZixPQUFBO0FBQ0EsSUFBQWdCLFNBQUEsR0FBQWhCLE9BQUE7QUFBMkQsU0FBQWlCLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBaEIsd0JBQUFvQixHQUFBLEVBQUFKLFdBQUEsU0FBQUEsV0FBQSxJQUFBSSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxXQUFBRCxHQUFBLFFBQUFBLEdBQUEsYUFBQUUsT0FBQSxDQUFBRixHQUFBLHlCQUFBQSxHQUFBLDRC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
169
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3RSZWR1eCIsInJlcXVpcmUiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9NYXAiLCJfYWN0aW9ucyIsIl9hY3Rpb25zMiIsIl9hY3Rpb25zMyIsIl9MaXN0IiwiX3V0aWxzIiwiX0xvYWRlciIsIl9yZWFjdFJvdXRlckRvbSIsIl9XV1RQRGFzaGJvYXJkU2xpY2UiLCJfTGlzdENvbnRleHQiLCJfcmVhY3RCb290c3RyYXAiLCJfdXNlUXVlcnlVUkwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJXV1RQTWFwIiwicHJvcHMiLCJzZWFyY2hRdWVyeSIsInVzZVF1ZXJ5VVJMIiwiaXNNYXBUYWIiLCJfdXNlUGFyYW1zIiwidXNlUGFyYW1zIiwiaWQiLCJhcmVhSUQiLCJzaXRlSUQiLCJSZWR1eFN0YXRlIiwidXNlU2VsZWN0b3IiLCJzdGF0ZSIsImRpc3BhdGNoIiwidXNlRGlzcGF0Y2giLCJhcmVhc19kYXRhIiwiZ2xvYmFsX2RhdGEiLCJwb2ludHNfZGF0YSIsImVkZ2VzX2RhdGEiLCJ3d3RwX2Rhc2hib2FyZCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInBvaW50cyIsInNldFBvaW50cyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiYXJlYXMiLCJzZXRBcmVhcyIsIl91c2VTdGF0ZTUiLCJwb2ludCIsImFyZWEiLCJfdXNlU3RhdGU2IiwiV1dUUEluZm8iLCJzZXRXV1RQSW5mbyIsImRhdGFFeGlzdHMiLCJuZXdBcmVhcyIsImxlbmd0aCIsIml0ZW1zIiwidXNlRWZmZWN0IiwiZm9jdXNNYXAiLCJtYXAiLCJ3YXRlckF1dGhvcml0eUlkIiwiZmV0Y2hBcmVhcyIsImRhc2hib2FyZCIsInBlcmlvZCIsInRvU3RyaW5nIiwiZmV0Y2hQb2ludHMiLCJmZXRjaEVkZ2VzIiwiaW5pdGlhbGl6ZVdXVFBEYXRhIiwiY2xlYW51cCIsInNldEZvY3VzZWRBcmVhIiwic2V0TWFwIiwiZmluZCIsImFyZWFfaWQiLCJjcmVhdGVFbGVtZW50IiwiRnJhZ21lbnQiLCJMb2FkZXIiLCJTZWxlY3RlZEl0ZW1Qcm92aWRlciIsIkNvbnRhaW5lciIsIlJvdyIsImNsYXNzTmFtZSIsIkNvbCIsInhzIiwic20iLCJMaXN0IiwiTWFwIiwiZWRnZXMiLCJhcmVhVG9DZW50ZXJCeSIsImZvY3VzZWRFdmVudCIsImluY2x1ZGVVbm1vbml0b3JlZFBvaW50cyIsImZvckV2ZW50c1ZpZXciLCJmb3JXV1RQRGFzaGJvYXJkIiwic3R5bGVkIiwiZGl2Iiwid2l0aENvbmZpZyIsImRpc3BsYXlOYW1lIiwiY29tcG9uZW50SWQiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFnZXMvRGFzaGJvYXJkTWFwL1dXVFBNYXAudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgTWFwIH0gZnJvbSAnc3JjL1dpZGdldHMvTWFwL01hcCc7XG5pbXBvcnQgeyBmZXRjaEFyZWFzIH0gZnJvbSAnc3JjL3N0b3JlL2FyZWFzL2FjdGlvbnMnO1xuaW1wb3J0IHsgZmV0Y2hFZGdlcyB9IGZyb20gJ3NyYy9zdG9yZS9lZGdlcy9hY3Rpb25zJztcbmltcG9ydCB7IGZldGNoUG9pbnRzIH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9hY3Rpb25zJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMvbWFjcm8nO1xuaW1wb3J0IHsgTGlzdCB9IGZyb20gJy4vTGlzdCc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICcuLi8uLi9zdG9yZS9wb2ludHMvbW9kZWxzL0lQb2ludCc7XG5pbXBvcnQgeyBJQXJlYSB9IGZyb20gJy4uLy4uL3N0b3JlL2FyZWFzL21vZGVscy9JQXJlYSc7XG5pbXBvcnQgeyBmb2N1c01hcCwgaW5pdGlhbGl6ZVdXVFBEYXRhIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBMb2FkZXIgfSBmcm9tICcuL0xvYWRlcic7XG5pbXBvcnQgeyB1c2VQYXJhbXMgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7XG4gIHNldEZvY3VzZWRBcmVhLFxuICBzZXRNYXAsXG59IGZyb20gJy4uLy4uL3N0b3JlL1dXVFBEYXNoYm9hcmQvV1dUUERhc2hib2FyZFNsaWNlJztcbmltcG9ydCB7IFNlbGVjdGVkSXRlbVByb3ZpZGVyIH0gZnJvbSAnLi9MaXN0Q29udGV4dCc7XG5pbXBvcnQgeyBSb3csIENvbCB9IGZyb20gJ3JlYWN0LWJvb3RzdHJhcCc7XG5pbXBvcnQgdXNlUXVlcnlVUkwgZnJvbSAnLi4vLi4vaG9va3MvdXNlUXVlcnlVUkwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENhcGFjaXR5TWFwQ29udGFpbmVyUHJvcHMge1xuICBjbGFzc05hbWU6IHN0cmluZztcbn1cbmNvbnN0IFdXVFBNYXA6IFJlYWN0LkZDPENhcGFjaXR5TWFwQ29udGFpbmVyUHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHNlYXJjaFF1ZXJ5ID0gdXNlUXVlcnlVUkwoKTtcbiAgY29uc3QgaXNNYXBUYWIgPSBzZWFyY2hRdWVyeS5nZXQoJ3ZpZXcnKSA9PT0gJ21hcCc7XG4gIGxldCB7IGlkLCBhcmVhSUQsIHNpdGVJRCB9ID0gdXNlUGFyYW1zKCk7XG4gIGlkID0gaWQgfHwgYXJlYUlEIHx8IHNpdGVJRDtcbiAgY29uc3QgUmVkdXhTdGF0ZSA9IHVzZVNlbGVjdG9yKChzdGF0ZSkgPT4gc3RhdGUpO1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IHsgYXJlYXNfZGF0YSwgZ2xvYmFsX2RhdGEsIHBvaW50c19kYXRhLCBlZGdlc19kYXRhLCB3d3RwX2Rhc2hib2FyZCB9ID1cbiAgICBSZWR1eFN0YXRlO1xuICBjb25zdCBbcG9pbnRzLCBzZXRQb2ludHNdID0gdXNlU3RhdGU8SVBvaW50W10gfCBudWxsPihudWxsKTtcbiAgY29uc3QgW2FyZWFzLCBzZXRBcmVhc10gPSB1c2VTdGF0ZTxJQXJlYVtdIHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IFtXV1RQSW5mbywgc2V0V1dUUEluZm9dID0gdXNlU3RhdGU8e1xuICAgIHBvaW50OiBJUG9pbnQgfCBudWxsO1xuICAgIGFyZWE6IElBcmVhIHwgbnVsbDtcbiAgfT4oeyBwb2ludDogbnVsbCwgYXJlYTogbnVsbCB9KTtcbiAgbGV0IGRhdGFFeGlzdHMgPSAoKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIGFyZWFzX2RhdGEubmV3QXJlYXMubGVuZ3RoICE9PSAwIHx8XG4gICAgICBwb2ludHNfZGF0YS5pdGVtcy5sZW5ndGggIT09IDAgfHxcbiAgICAgIGVkZ2VzX2RhdGEuaXRlbXMubGVuZ3RoICE9PSAwXG4gICAgKTtcbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIGlmIChcbiAgICAvLyAgICFXV1RQSW5mby5hcmVhIHx8XG4gICAgLy8gICAhd3d0cF9kYXNoYm9hcmQubWFwIHx8XG4gICAgLy8gICBwb2ludHNfZGF0YS5pdGVtcy5sZW5ndGggPT09IDBcbiAgICAvLyApXG4gICAgLy8gICByZXR1cm47XG5cbiAgICBpZiAoaXNNYXBUYWIgJiYgKFdXVFBJbmZvLmFyZWEgfHwgV1dUUEluZm8ucG9pbnQpKSB7XG4gICAgICBmb2N1c01hcChcbiAgICAgICAgV1dUUEluZm8uYXJlYSA/IFdXVFBJbmZvLmFyZWEgOiBXV1RQSW5mby5wb2ludCxcbiAgICAgICAgd3d0cF9kYXNoYm9hcmQubWFwLFxuICAgICAgKTtcbiAgICAgIC8vIGFyZWFGb2N1c0xvZ2ljKHtcbiAgICAgIC8vICAgV1dUUEluZm8sXG4gICAgICAvLyAgIHNldEFyZWFzLFxuICAgICAgLy8gICBtYXA6IHd3dHBfZGFzaGJvYXJkLm1hcCxcbiAgICAgIC8vIH0pO1xuICAgIH1cbiAgfSwgW3d3dHBfZGFzaGJvYXJkLm1hcCwgV1dUUEluZm9dKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkKSB7XG4gICAgICAvLyBkaXNwYXRjaChmZXRjaFBvaW50cyhnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkKSk7XG4gICAgICAvLyBkaXNwYXRjaChmZXRjaEVkZ2VzKGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQpKTtcbiAgICAgIGRpc3BhdGNoKFxuICAgICAgICBmZXRjaEFyZWFzKFxuICAgICAgICAgIGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQsXG4gICAgICAgICAgUmVkdXhTdGF0ZS5kYXNoYm9hcmQucGVyaW9kLnRvU3RyaW5nKCksXG4gICAgICAgICAgdHJ1ZSxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgfVxuICB9LCBbUmVkdXhTdGF0ZS5kYXNoYm9hcmQucGVyaW9kXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCkge1xuICAgICAgcG9pbnRzX2RhdGEuaXRlbXMubGVuZ3RoID09PSAwICYmXG4gICAgICAgIGRpc3BhdGNoKGZldGNoUG9pbnRzKGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQpKTtcbiAgICAgIGVkZ2VzX2RhdGEuaXRlbXMubGVuZ3RoID09PSAwICYmXG4gICAgICAgIGRpc3BhdGNoKGZldGNoRWRnZXMoZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCkpO1xuICAgICAgYXJlYXNfZGF0YS5pdGVtcy5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgZGlzcGF0Y2goXG4gICAgICAgICAgZmV0Y2hBcmVhcyhcbiAgICAgICAgICAgIGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQsXG4gICAgICAgICAgICBSZWR1eFN0YXRlLmRhc2hib2FyZC5wZXJpb2QsXG4gICAgICAgICAgICB0cnVlLFxuICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgfVxuICB9LCBbaXNNYXBUYWIsIGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWRdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGluaXRpYWxpemVXV1RQRGF0YSh7XG4gICAgICBhcmVhc19kYXRhLFxuICAgICAgcG9pbnRzX2RhdGEsXG4gICAgICBzZXRQb2ludHMsXG4gICAgICBzZXRBcmVhcyxcbiAgICAgIHNldFdXVFBJbmZvLFxuICAgICAgZGF0YUV4aXN0cyxcbiAgICAgIGlkLFxuICAgIH0pO1xuICB9LCBbYXJlYXNfZGF0YS5uZXdBcmVhcywgcG9pbnRzX2RhdGEuaXRlbXNdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiBmdW5jdGlvbiBjbGVhbnVwKCkge1xuICAgICAgc2V0UG9pbnRzKG51bGwpO1xuICAgICAgc2V0QXJlYXMobnVsbCk7XG4gICAgICBzZXRXV1RQSW5mbyh7IHBvaW50OiBudWxsLCBhcmVhOiBudWxsIH0pO1xuICAgICAgZGlzcGF0Y2goc2V0Rm9jdXNlZEFyZWEobnVsbCkpO1xuICAgICAgZGlzcGF0Y2goc2V0TWFwKG51bGwpKTtcbiAgICB9O1xuICB9LCBbZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGFyZWFJRCA9PT0gaWQgJiYgYXJlYXNfZGF0YS5uZXdBcmVhcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBhcmVhID0gYXJlYXNfZGF0YS5uZXdBcmVhcy5maW5kKFxuICAgICAgICAoYXJlYSkgPT4gYXJlYS5hcmVhX2lkLnRvU3RyaW5nKCkgPT09IGlkLFxuICAgICAgKTtcbiAgICAgIGFyZWEgJiYgZGlzcGF0Y2goc2V0Rm9jdXNlZEFyZWEoYXJlYSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAocG9pbnRzX2RhdGEuaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBwb2ludCA9IHBvaW50c19kYXRhLml0ZW1zLmZpbmQoXG4gICAgICAgICAgKHBvaW50KSA9PiBwb2ludC5pZC50b1N0cmluZygpID09PSBpZCxcbiAgICAgICAgKTtcbiAgICAgICAgcG9pbnQgJiYgZGlzcGF0Y2goc2V0Rm9jdXNlZEFyZWEocG9pbnQpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdsYXN0IG9wdGlvbicpO1xuICAgICAgICBkaXNwYXRjaChzZXRGb2N1c2VkQXJlYShhcmVhc19kYXRhLm5ld0FyZWFzKSk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbYXJlYXNdKTtcblxuICBpZiAoIWlzTWFwVGFiKSByZXR1cm4gPD48Lz47XG4gIGlmICghZGF0YUV4aXN0cygpIHx8ICFwb2ludHMgfHwgIWFyZWFzKSByZXR1cm4gPExvYWRlciAvPjtcbiAgcmV0dXJuIChcbiAgICA8U2VsZWN0ZWRJdGVtUHJvdmlkZXI+XG4gICAgICA8Q29udGFpbmVyIHsuLi5wcm9wc30+XG4gICAgICAgIDxSb3cgY2xhc3NOYW1lPVwibm8tZ3V0dGVyc1wiPlxuICAgICAgICAgIDxDb2wgeHM9XCJhdXRvXCIgc209ezR9IGNsYXNzTmFtZT1cImQtbm9uZSBkLXNtLWZsZXhcIj5cbiAgICAgICAgICAgIDxMaXN0XG4gICAgICAgICAgICAgIGdsb2JhbF9kYXRhPXtnbG9iYWxfZGF0YX1cbiAgICAgICAgICAgICAgYXJlYXM9e2FyZWFzfVxuICAgICAgICAgICAgICBwb2ludHM9e3BvaW50c31cbiAgICAgICAgICAgICAgV1dUUEluZm89e1dXVFBJbmZvfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICA8Q29sIGNsYXNzTmFtZT1cIm1hcC1jb2x1bW5cIiB4cz17MTJ9IHNtPXs4fT5cbiAgICAgICAgICAgIDxNYXBcbiAgICAgICAgICAgICAgcG9pbnRzPXtwb2ludHN9XG4gICAgICAgICAgICAgIGFyZWFzPXthcmVhc31cbiAgICAgICAgICAgICAgZ2xvYmFsX2RhdGE9e2dsb2JhbF9kYXRhfVxuICAgICAgICAgICAgICBlZGdlcz17ZWRnZXNfZGF0YS5pdGVtc31cbiAgICAgICAgICAgICAgYXJlYVRvQ2VudGVyQnk9e2FyZWFzWzBdfVxuICAgICAgICAgICAgICBmb2N1c2VkRXZlbnQ9e251bGx9XG4gICAgICAgICAgICAgIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50cz17dHJ1ZX1cbiAgICAgICAgICAgICAgZm9yRXZlbnRzVmlldz17ZmFsc2V9XG4gICAgICAgICAgICAgIGZvcldXVFBEYXNoYm9hcmQ9e3RydWV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cbiAgICAgIDwvQ29udGFpbmVyPlxuICAgIDwvU2VsZWN0ZWRJdGVtUHJvdmlkZXI+XG4gICk7XG59O1xuXG5jb25zdCBDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTAwdnc7XG5cbiAgLm1hcC1jb2x1bW4ge1xuICAgIHotaW5kZXg6IDA7XG4gIH1cblxuICAua2QtbWFwLWNvbnRhaW5lciB7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTM0cHgpO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDEyNTBweCkge1xuICAgICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTI1cHgpO1xuICAgIH1cblxuICAgICNtYXAge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICosXG4gICAgICAqOmZvY3VzLFxuICAgICAgKjpob3ZlciB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5sZWFmbGV0LXBvcHVwLWNsb3NlLWJ1dHRvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogeC1sYXJnZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbmA7XG5cbmV4cG9ydCBkZWZhdWx0IFdXVFBNYXA7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFDLHVCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxJQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxRQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxTQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxTQUFBLEdBQUFOLE9BQUE7QUFFQSxJQUFBTyxLQUFBLEdBQUFQLE9BQUE7QUFHQSxJQUFBUSxNQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxPQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSxlQUFBLEdBQUFWLE9BQUE7QUFDQSxJQUFBVyxtQkFBQSxHQUFBWCxPQUFBO0FBSUEsSUFBQVksWUFBQSxHQUFBWixPQUFBO0FBQ0EsSUFBQWEsZUFBQSxHQUFBYixPQUFBO0FBQ0EsSUFBQWMsWUFBQSxHQUFBQyxzQkFBQSxDQUFBZixPQUFBO0FBQWtELFNBQUFnQix5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLFdBQUEsV0FBQUEsV0FBQSxHQUFBRyxnQkFBQSxHQUFBRCxpQkFBQSxLQUFBRixXQUFBO0FBQUEsU0FBQWYsd0JBQUFtQixHQUFBLEVBQUFKLFdBQUEsU0FBQUEsV0FBQSxJQUFBSSxHQUFBLElBQUFB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
@@ -14,7 +14,6 @@ var _WWTPDashboardSlice = require("../../store/WWTPDashboard/WWTPDashboardSlice"
14
14
  var _i18n = _interopRequireDefault(require("../../utilities/i18n"));
15
15
  var _InletsPie = _interopRequireDefault(require("../../ui-kit/InletsPie"));
16
16
  var _utils = require("./utils");
17
- var _Capacity = require("./Capacity");
18
17
  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); }
19
18
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
20
19
  var updatePoint = function updatePoint(_ref) {
@@ -60,8 +59,7 @@ var Widget = function Widget(props) {
60
59
  areas = props.areas,
61
60
  map = props.map,
62
61
  global_data = props.global_data,
63
- listData = props.listData,
64
- history = props.history;
62
+ listData = props.listData;
65
63
  var _useState = (0, _react.useState)(null),
66
64
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
67
65
  area = _useState2[0],
@@ -80,8 +78,27 @@ var Widget = function Widget(props) {
80
78
  setListItems = _useState8[1];
81
79
  var handleClick = function handleClick() {
82
80
  map.closePopup();
83
- (0, _utils.updateHistory)(object, history);
84
- (0, _Capacity.setFocusedItem)(object, listItems, points, areas, dispatch, _WWTPDashboardSlice.setFocusedArea, true);
81
+ if (area) {
82
+ var focusedArea = area;
83
+ if (listItems && listItems.length > 0) {
84
+ var _area = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, focusedArea), {}, {
85
+ factories: focusedArea.sub_areas.length > 0 ? [] : getPoints(listItems, points)
86
+ });
87
+ dispatch((0, _WWTPDashboardSlice.setFocusedArea)(_area));
88
+ } else {
89
+ dispatch((0, _WWTPDashboardSlice.setFocusedArea)(focusedArea));
90
+ }
91
+ } else {
92
+ if (point) {
93
+ var focusedPoint = updatePoint({
94
+ point: point,
95
+ listItems: listItems,
96
+ areas: areas,
97
+ points: points
98
+ });
99
+ dispatch((0, _WWTPDashboardSlice.setFocusedArea)(focusedPoint));
100
+ }
101
+ }
85
102
  sendButtonClickedAnalytics();
86
103
  };
87
104
  var sendButtonClickedAnalytics = function sendButtonClickedAnalytics() {
@@ -89,6 +106,9 @@ var Widget = function Widget(props) {
89
106
  utility_name: global_data.waterAuthorityName
90
107
  });
91
108
  };
109
+
110
+ // Return the point objects of all items in the list sorted by their names
111
+
92
112
  var getButtonType = function getButtonType(type) {
93
113
  var rc;
94
114
  switch (type.toLowerCase()) {
@@ -151,4 +171,4 @@ var Widget = function Widget(props) {
151
171
  }, widgetContent()));
152
172
  };
153
173
  exports.Widget = Widget;
154
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RCb290c3RyYXAiLCJfV1dUUERhc2hib2FyZFNsaWNlIiwiX2kxOG4iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX0lubGV0c1BpZSIsIl91dGlscyIsIl9DYXBhY2l0eSIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwidXBkYXRlUG9pbnQiLCJfcmVmIiwicG9pbnQiLCJsaXN0SXRlbXMiLCJhcmVhcyIsInBvaW50cyIsImFyZWFJZHMiLCJtYXAiLCJpdGVtIiwiaWQiLCJzdWJBcmVhcyIsImdldEFyZWFzIiwiX29iamVjdFNwcmVhZDIiLCJmYWN0b3JpZXMiLCJsZW5ndGgiLCJnZXRQb2ludHMiLCJzdWJfYXJlYXMiLCJzaGFwZV9kYXRhIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJleHBvcnRzIiwidW5kZWZpbmVkIiwicmV0dXJuZWRBcmVhcyIsImNvcnJlc3BvbmRpbmdBcmVhIiwiZmluZCIsImFyZWEiLCJhcmVhX2lkIiwicmV0dXJuZWRQb2ludHMiLCJjb3JyZXNwb25kaW5nUG9pbnQiLCJXaWRnZXQiLCJwcm9wcyIsIm9iamVjdCIsImRpc3BhdGNoIiwiZ2xvYmFsX2RhdGEiLCJsaXN0RGF0YSIsImhpc3RvcnkiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJzZXRBcmVhIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJzZXRQb2ludCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiYnV0dG9uTmFtZSIsInNldEJ1dHRvbk5hbWUiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsInNldExpc3RJdGVtcyIsImhhbmRsZUNsaWNrIiwiY2xvc2VQb3B1cCIsInVwZGF0ZUhpc3RvcnkiLCJzZXRGb2N1c2VkSXRlbSIsInNldEZvY3VzZWRBcmVhIiwic2VuZEJ1dHRvbkNsaWNrZWRBbmFseXRpY3MiLCJzZW5kQW5hbHl0aWNzRXZlbnQiLCJ1dGlsaXR5X25hbWUiLCJ3YXRlckF1dGhvcml0eU5hbWUiLCJnZXRCdXR0b25UeXBlIiwidHlwZSIsInJjIiwidG9Mb3dlckNhc2UiLCJ0aXRsZSIsInBheWxvYWQiLCJuYW1lIiwiYXJlYV9uYW1lIiwiYnV0dG9uVGl0bGUiLCJpMThuIiwidCIsImNvbmNhdCIsInVzZUVmZmVjdCIsImlzQVBvaW50IiwiZm9yV1dUUE1hcCIsImRhdGEiLCJ3aWRnZXRDb250ZW50Iiwic2hvd0J1dHRvbiIsImNyZWF0ZUVsZW1lbnQiLCJCdXR0b24iLCJvbkNsaWNrIiwiY2xhc3NOYW1lIiwiaW5sZXRzIiwiRnJhZ21lbnQiLCJDYXJkIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BhZ2VzL0Rhc2hib2FyZE1hcC9XaWRnZXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQnV0dG9uLCBDYXJkIH0gZnJvbSAncmVhY3QtYm9vdHN0cmFwJztcbmltcG9ydCB7IHNldEZvY3VzZWRBcmVhIH0gZnJvbSAnLi4vLi4vc3RvcmUvV1dUUERhc2hib2FyZC9XV1RQRGFzaGJvYXJkU2xpY2UnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnLi4vLi4vc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnQnO1xuaW1wb3J0IGkxOG4gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2kxOG4nO1xuaW1wb3J0IHsgSUFyZWEgfSBmcm9tICcuLi8uLi9zdG9yZS9hcmVhcy9tb2RlbHMvSUFyZWEnO1xuaW1wb3J0IElubGV0c1BpZSBmcm9tICcuLi8uLi91aS1raXQvSW5sZXRzUGllJztcbmltcG9ydCB7IHNlbmRBbmFseXRpY3NFdmVudCwgdXBkYXRlSGlzdG9yeSB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgc2V0Rm9jdXNlZEl0ZW0gfSBmcm9tICcuL0NhcGFjaXR5JztcblxudHlwZSBJUHJvcHMgPSB7XG4gIG9iamVjdDogYW55O1xuICBkaXNwYXRjaDogYW55O1xuICBwb2ludHM/OiBJUG9pbnRbXTtcbiAgYXJlYXM/OiBJQXJlYVtdO1xuICBtYXA7XG4gIGdsb2JhbF9kYXRhO1xuICBsaXN0RGF0YTogYW55O1xuICBoaXN0b3J5OiBhbnk7XG59O1xuXG5leHBvcnQgY29uc3QgdXBkYXRlUG9pbnQgPSAoeyBwb2ludCwgbGlzdEl0ZW1zLCBhcmVhcywgcG9pbnRzIH0pID0+IHtcbiAgY29uc3QgYXJlYUlkcyA9IGxpc3RJdGVtcy5tYXAoKGl0ZW0pID0+IGl0ZW0uaWQpO1xuICBjb25zdCBzdWJBcmVhcyA9IGdldEFyZWFzKGFyZWFJZHMsIGFyZWFzKTtcbiAgcmV0dXJuIHtcbiAgICAuLi5wb2ludCxcbiAgICBmYWN0b3JpZXM6IHN1YkFyZWFzLmxlbmd0aCA+IDAgPyBbXSA6IGdldFBvaW50cyhsaXN0SXRlbXMsIHBvaW50cyksXG4gICAgc3ViX2FyZWFzOiBzdWJBcmVhcyxcbiAgICBzaGFwZV9kYXRhOiBbW3BvaW50LmxhdGl0dWRlLCBwb2ludC5sb25naXR1ZGVdXSxcbiAgfTtcbn07XG5cbmNvbnN0IGdldEFyZWFzID0gKGFyZWFJZHM6IGFueVtdLCBhcmVhcykgPT4ge1xuICBpZiAoXG4gICAgYXJlYUlkcy5sZW5ndGggPT09IDAgfHxcbiAgICBhcmVhcyA9PT0gdW5kZWZpbmVkIHx8XG4gICAgYXJlYXMgPT09IG51bGwgfHxcbiAgICBhcmVhcy5sZW5ndGggPT09IDBcbiAgKVxuICAgIHJldHVybiBbXTtcblxuICBjb25zdCByZXR1cm5lZEFyZWFzID0gYXJlYUlkcy5tYXAoKGlkKSA9PiB7XG4gICAgY29uc3QgY29ycmVzcG9uZGluZ0FyZWEgPSBhcmVhcy5maW5kKChhcmVhKSA9PiBhcmVhLmFyZWFfaWQgPT09IGlkKTtcbiAgICByZXR1cm4gY29ycmVzcG9uZGluZ0FyZWE7XG4gIH0pO1xuXG4gIHJldHVybiByZXR1cm5lZEFyZWFzO1xufTtcblxuY29uc3QgZ2V0UG9pbnRzID0gKGxpc3RJdGVtcywgcG9pbnRzKSA9PiB7XG4gIGlmIChsaXN0SXRlbXMgPT09IG51bGwgfHwgcG9pbnRzID09PSB1bmRlZmluZWQgfHwgcG9pbnRzLmxlbmd0aCA9PT0gMClcbiAgICByZXR1cm4gW107XG5cbiAgY29uc3QgcmV0dXJuZWRQb2ludHMgPSBsaXN0SXRlbXMubWFwKChpdGVtKSA9PiB7XG4gICAgY29uc3QgY29ycmVzcG9uZGluZ1BvaW50ID0gcG9pbnRzLmZpbmQoKHBvaW50KSA9PiBwb2ludC5pZCA9PT0gaXRlbS5pZCk7XG4gICAgcmV0dXJuIGNvcnJlc3BvbmRpbmdQb2ludDtcbiAgfSk7XG5cbiAgcmV0dXJuIHJldHVybmVkUG9pbnRzO1xufTtcbmV4cG9ydCBjb25zdCBXaWRnZXQ6IFJlYWN0LkZDPElQcm9wcz4gPSAocHJvcHMpID0+IHtcbiAgY29uc3Qge1xuICAgIG9iamVjdCxcbiAgICBkaXNwYXRjaCxcbiAgICBwb2ludHMsXG4gICAgYXJlYXMsXG4gICAgbWFwLFxuICAgIGdsb2JhbF9kYXRhLFxuICAgIGxpc3REYXRhLFxuICAgIGhpc3RvcnksXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgW2FyZWEsIHNldEFyZWFdID0gdXNlU3RhdGU8SUFyZWEgfCBudWxsPihudWxsKTtcbiAgY29uc3QgW3BvaW50LCBzZXRQb2ludF0gPSB1c2VTdGF0ZTxJUG9pbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgW2J1dHRvbk5hbWUsIHNldEJ1dHRvbk5hbWVdID0gdXNlU3RhdGU8c3RyaW5nPignJyk7XG4gIGNvbnN0IFtsaXN0SXRlbXMsIHNldExpc3RJdGVtc10gPSB1c2VTdGF0ZTxhbnlbXT4oW10pO1xuXG4gIGNvbnN0IGhhbmRsZUNsaWNrID0gKCkgPT4ge1xuICAgIG1hcC5jbG9zZVBvcHVwKCk7XG4gICAgdXBkYXRlSGlzdG9yeShvYmplY3QsIGhpc3RvcnkpO1xuICAgIHNldEZvY3VzZWRJdGVtKFxuICAgICAgb2JqZWN0LFxuICAgICAgbGlzdEl0ZW1zLFxuICAgICAgcG9pbnRzLFxuICAgICAgYXJlYXMsXG4gICAgICBkaXNwYXRjaCxcbiAgICAgIHNldEZvY3VzZWRBcmVhLFxuICAgICAgdHJ1ZSxcbiAgICApO1xuICAgIHNlbmRCdXR0b25DbGlja2VkQW5hbHl0aWNzKCk7XG4gIH07XG5cbiAgY29uc3Qgc2VuZEJ1dHRvbkNsaWNrZWRBbmFseXRpY3MgPSAoKSA9PiB7XG4gICAgc2VuZEFuYWx5dGljc0V2ZW50KCdNYXAgdmlldyAtIFBvcHVwIGRyaWxsZG93biBjbGlja2VkJywgYnV0dG9uTmFtZSwge1xuICAgICAgdXRpbGl0eV9uYW1lOiBnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eU5hbWUsXG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgZ2V0QnV0dG9uVHlwZSA9ICh0eXBlOiBzdHJpbmcpID0+IHtcbiAgICBsZXQgcmM7XG5cbiAgICBzd2l0Y2ggKHR5cGUudG9Mb3dlckNhc2UoKSkge1xuICAgICAgY2FzZSAnYXJlYSc6XG4gICAgICBjYXNlICd2YXJlYSc6XG4gICAgICAgIHJjID0gJ3ZpZXdfc3ViX2FyZWFzJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdmYWN0b3J5JzpcbiAgICAgICAgcmMgPSAndmlld19mYWN0b3JpZXMnO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJjID0gJ3ZpZXdfaW5sZXRzJztcbiAgICB9XG4gICAgcmV0dXJuIHJjO1xuICB9O1xuXG4gIGNvbnN0IHRpdGxlID0gKCkgPT4ge1xuICAgIGxldCBwYXlsb2FkID0gJyc7XG4gICAgaWYgKHBvaW50KSB7XG4gICAgICBwYXlsb2FkID0gcG9pbnQubmFtZTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGFyZWEpIHtcbiAgICAgICAgcGF5bG9hZCA9IGFyZWEuYXJlYV9uYW1lO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcGF5bG9hZDtcbiAgfTtcblxuICBjb25zdCBidXR0b25UaXRsZSA9ICgpID0+IHtcbiAgICBpZiAoYnV0dG9uTmFtZSA9PT0gJycpIHJldHVybiAnJztcbiAgICByZXR1cm4gaTE4bi50KGB3d3RwUGFnZS4ke2J1dHRvbk5hbWV9YCk7XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgaXNBUG9pbnQgPSBvYmplY3QuZm9yV1dUUE1hcCAhPT0gdW5kZWZpbmVkO1xuXG4gICAgaWYgKGlzQVBvaW50KSB7XG4gICAgICBzZXRQb2ludChvYmplY3QpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRBcmVhKG9iamVjdCk7XG4gICAgfVxuICB9LCBbb2JqZWN0XSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAobGlzdERhdGEgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuXG4gICAgc2V0TGlzdEl0ZW1zKGxpc3REYXRhPy5kYXRhKTtcbiAgICBpZiAobGlzdERhdGEuZGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICBzZXRCdXR0b25OYW1lKGdldEJ1dHRvblR5cGUobGlzdERhdGEuZGF0YVswXS50eXBlKSk7XG4gICAgfVxuICB9LCBbbGlzdERhdGFdKTtcblxuICBjb25zdCB3aWRnZXRDb250ZW50ID0gKCkgPT4ge1xuICAgIGNvbnN0IGRhdGEgPSBsaXN0RGF0YT8uZGF0YTtcbiAgICBjb25zdCBzaG93QnV0dG9uID0gZGF0YT8ubGVuZ3RoID4gMDtcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2PlxuICAgICAgICB7c2hvd0J1dHRvbiAmJiAoXG4gICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlQ2xpY2soKX1cbiAgICAgICAgICAgIGNsYXNzTmFtZT17J2NoaWxkcmVuQnV0dG9uIHJvdW5kZWQtcGlsbCBidG4tbGlnaHQnfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtidXR0b25UaXRsZSgpfVxuICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgICA8SW5sZXRzUGllIGlubGV0cz17bGlzdEl0ZW1zfSAvPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8aDM+e3RpdGxlKCl9PC9oMz5cbiAgICAgIDxDYXJkIGNsYXNzTmFtZT1cImJnLXdoaXRlIHdpZGdldC1jb250YWluZXJcIj57d2lkZ2V0Q29udGVudCgpfTwvQ2FyZD5cbiAgICA8Lz5cbiAgKTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxlQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxtQkFBQSxHQUFBRixPQUFBO0FBRUEsSUFBQUcsS0FBQSxHQUFBQyxzQkFBQSxDQUFBSixPQUFBO0FBRUEsSUFBQUssVUFBQSxHQUFBRCxzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQU0sTUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sU0FBQSxHQUFBUCxPQUFBO0FBQTRDLFNBQUFRLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBVix3QkFBQWMsR0FBQSxFQUFBSixXQUFBLFNBQUFBLFdBQUEsSUFBQUks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
174
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RCb290c3RyYXAiLCJfV1dUUERhc2hib2FyZFNsaWNlIiwiX2kxOG4iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX0lubGV0c1BpZSIsIl91dGlscyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwidXBkYXRlUG9pbnQiLCJfcmVmIiwicG9pbnQiLCJsaXN0SXRlbXMiLCJhcmVhcyIsInBvaW50cyIsImFyZWFJZHMiLCJtYXAiLCJpdGVtIiwiaWQiLCJzdWJBcmVhcyIsImdldEFyZWFzIiwiX29iamVjdFNwcmVhZDIiLCJmYWN0b3JpZXMiLCJsZW5ndGgiLCJnZXRQb2ludHMiLCJzdWJfYXJlYXMiLCJzaGFwZV9kYXRhIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJleHBvcnRzIiwidW5kZWZpbmVkIiwicmV0dXJuZWRBcmVhcyIsImNvcnJlc3BvbmRpbmdBcmVhIiwiZmluZCIsImFyZWEiLCJhcmVhX2lkIiwicmV0dXJuZWRQb2ludHMiLCJjb3JyZXNwb25kaW5nUG9pbnQiLCJXaWRnZXQiLCJwcm9wcyIsIm9iamVjdCIsImRpc3BhdGNoIiwiZ2xvYmFsX2RhdGEiLCJsaXN0RGF0YSIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInNldEFyZWEiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInNldFBvaW50IiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJidXR0b25OYW1lIiwic2V0QnV0dG9uTmFtZSIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4Iiwic2V0TGlzdEl0ZW1zIiwiaGFuZGxlQ2xpY2siLCJjbG9zZVBvcHVwIiwiZm9jdXNlZEFyZWEiLCJzZXRGb2N1c2VkQXJlYSIsImZvY3VzZWRQb2ludCIsInNlbmRCdXR0b25DbGlja2VkQW5hbHl0aWNzIiwic2VuZEFuYWx5dGljc0V2ZW50IiwidXRpbGl0eV9uYW1lIiwid2F0ZXJBdXRob3JpdHlOYW1lIiwiZ2V0QnV0dG9uVHlwZSIsInR5cGUiLCJyYyIsInRvTG93ZXJDYXNlIiwidGl0bGUiLCJwYXlsb2FkIiwibmFtZSIsImFyZWFfbmFtZSIsImJ1dHRvblRpdGxlIiwiaTE4biIsInQiLCJjb25jYXQiLCJ1c2VFZmZlY3QiLCJpc0FQb2ludCIsImZvcldXVFBNYXAiLCJkYXRhIiwid2lkZ2V0Q29udGVudCIsInNob3dCdXR0b24iLCJjcmVhdGVFbGVtZW50IiwiQnV0dG9uIiwib25DbGljayIsImNsYXNzTmFtZSIsImlubGV0cyIsIkZyYWdtZW50IiwiQ2FyZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWdlcy9EYXNoYm9hcmRNYXAvV2lkZ2V0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiwgQ2FyZCB9IGZyb20gJ3JlYWN0LWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBzZXRGb2N1c2VkQXJlYSB9IGZyb20gJy4uLy4uL3N0b3JlL1dXVFBEYXNoYm9hcmQvV1dUUERhc2hib2FyZFNsaWNlJztcbmltcG9ydCB7IElQb2ludCB9IGZyb20gJy4uLy4uL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCBpMThuIGZyb20gJy4uLy4uL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCB7IElBcmVhIH0gZnJvbSAnLi4vLi4vc3RvcmUvYXJlYXMvbW9kZWxzL0lBcmVhJztcbmltcG9ydCBJbmxldHNQaWUgZnJvbSAnLi4vLi4vdWkta2l0L0lubGV0c1BpZSc7XG5pbXBvcnQgeyBzZW5kQW5hbHl0aWNzRXZlbnQgfSBmcm9tICcuL3V0aWxzJztcblxudHlwZSBJUHJvcHMgPSB7XG4gIG9iamVjdDogYW55O1xuICBkaXNwYXRjaDogYW55O1xuICBwb2ludHM/OiBJUG9pbnRbXTtcbiAgYXJlYXM/OiBJQXJlYVtdO1xuICBtYXA7XG4gIGdsb2JhbF9kYXRhO1xuICBsaXN0RGF0YTogYW55O1xufTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZVBvaW50ID0gKHsgcG9pbnQsIGxpc3RJdGVtcywgYXJlYXMsIHBvaW50cyB9KSA9PiB7XG4gIGNvbnN0IGFyZWFJZHMgPSBsaXN0SXRlbXMubWFwKChpdGVtKSA9PiBpdGVtLmlkKTtcbiAgY29uc3Qgc3ViQXJlYXMgPSBnZXRBcmVhcyhhcmVhSWRzLCBhcmVhcyk7XG4gIHJldHVybiB7XG4gICAgLi4ucG9pbnQsXG4gICAgZmFjdG9yaWVzOiBzdWJBcmVhcy5sZW5ndGggPiAwID8gW10gOiBnZXRQb2ludHMobGlzdEl0ZW1zLCBwb2ludHMpLFxuICAgIHN1Yl9hcmVhczogc3ViQXJlYXMsXG4gICAgc2hhcGVfZGF0YTogW1twb2ludC5sYXRpdHVkZSwgcG9pbnQubG9uZ2l0dWRlXV0sXG4gIH07XG59O1xuXG5jb25zdCBnZXRBcmVhcyA9IChhcmVhSWRzOiBhbnlbXSwgYXJlYXMpID0+IHtcbiAgaWYgKFxuICAgIGFyZWFJZHMubGVuZ3RoID09PSAwIHx8XG4gICAgYXJlYXMgPT09IHVuZGVmaW5lZCB8fFxuICAgIGFyZWFzID09PSBudWxsIHx8XG4gICAgYXJlYXMubGVuZ3RoID09PSAwXG4gIClcbiAgICByZXR1cm4gW107XG5cbiAgY29uc3QgcmV0dXJuZWRBcmVhcyA9IGFyZWFJZHMubWFwKChpZCkgPT4ge1xuICAgIGNvbnN0IGNvcnJlc3BvbmRpbmdBcmVhID0gYXJlYXMuZmluZCgoYXJlYSkgPT4gYXJlYS5hcmVhX2lkID09PSBpZCk7XG4gICAgcmV0dXJuIGNvcnJlc3BvbmRpbmdBcmVhO1xuICB9KTtcblxuICByZXR1cm4gcmV0dXJuZWRBcmVhcztcbn07XG5cbmNvbnN0IGdldFBvaW50cyA9IChsaXN0SXRlbXMsIHBvaW50cykgPT4ge1xuICBpZiAobGlzdEl0ZW1zID09PSBudWxsIHx8IHBvaW50cyA9PT0gdW5kZWZpbmVkIHx8IHBvaW50cy5sZW5ndGggPT09IDApXG4gICAgcmV0dXJuIFtdO1xuXG4gIGNvbnN0IHJldHVybmVkUG9pbnRzID0gbGlzdEl0ZW1zLm1hcCgoaXRlbSkgPT4ge1xuICAgIGNvbnN0IGNvcnJlc3BvbmRpbmdQb2ludCA9IHBvaW50cy5maW5kKChwb2ludCkgPT4gcG9pbnQuaWQgPT09IGl0ZW0uaWQpO1xuICAgIHJldHVybiBjb3JyZXNwb25kaW5nUG9pbnQ7XG4gIH0pO1xuXG4gIHJldHVybiByZXR1cm5lZFBvaW50cztcbn07XG5leHBvcnQgY29uc3QgV2lkZ2V0OiBSZWFjdC5GQzxJUHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgb2JqZWN0LCBkaXNwYXRjaCwgcG9pbnRzLCBhcmVhcywgbWFwLCBnbG9iYWxfZGF0YSwgbGlzdERhdGEgfSA9IHByb3BzO1xuICBjb25zdCBbYXJlYSwgc2V0QXJlYV0gPSB1c2VTdGF0ZTxJQXJlYSB8IG51bGw+KG51bGwpO1xuICBjb25zdCBbcG9pbnQsIHNldFBvaW50XSA9IHVzZVN0YXRlPElQb2ludCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBbYnV0dG9uTmFtZSwgc2V0QnV0dG9uTmFtZV0gPSB1c2VTdGF0ZTxzdHJpbmc+KCcnKTtcbiAgY29uc3QgW2xpc3RJdGVtcywgc2V0TGlzdEl0ZW1zXSA9IHVzZVN0YXRlPGFueVtdPihbXSk7XG5cbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoKSA9PiB7XG4gICAgbWFwLmNsb3NlUG9wdXAoKTtcbiAgICBpZiAoYXJlYSkge1xuICAgICAgbGV0IGZvY3VzZWRBcmVhID0gYXJlYTtcbiAgICAgIGlmIChsaXN0SXRlbXMgJiYgbGlzdEl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgYXJlYSA9IHtcbiAgICAgICAgICAuLi5mb2N1c2VkQXJlYSxcbiAgICAgICAgICBmYWN0b3JpZXM6XG4gICAgICAgICAgICBmb2N1c2VkQXJlYS5zdWJfYXJlYXMubGVuZ3RoID4gMFxuICAgICAgICAgICAgICA/IFtdXG4gICAgICAgICAgICAgIDogZ2V0UG9pbnRzKGxpc3RJdGVtcywgcG9pbnRzKSxcbiAgICAgICAgfTtcbiAgICAgICAgZGlzcGF0Y2goc2V0Rm9jdXNlZEFyZWEoYXJlYSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGlzcGF0Y2goc2V0Rm9jdXNlZEFyZWEoZm9jdXNlZEFyZWEpKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHBvaW50KSB7XG4gICAgICAgIGNvbnN0IGZvY3VzZWRQb2ludCA9IHVwZGF0ZVBvaW50KHsgcG9pbnQsIGxpc3RJdGVtcywgYXJlYXMsIHBvaW50cyB9KTtcbiAgICAgICAgZGlzcGF0Y2goc2V0Rm9jdXNlZEFyZWEoZm9jdXNlZFBvaW50KSk7XG4gICAgICB9XG4gICAgfVxuICAgIHNlbmRCdXR0b25DbGlja2VkQW5hbHl0aWNzKCk7XG4gIH07XG5cbiAgY29uc3Qgc2VuZEJ1dHRvbkNsaWNrZWRBbmFseXRpY3MgPSAoKSA9PiB7XG4gICAgc2VuZEFuYWx5dGljc0V2ZW50KCdNYXAgdmlldyAtIFBvcHVwIGRyaWxsZG93biBjbGlja2VkJywgYnV0dG9uTmFtZSwge1xuICAgICAgdXRpbGl0eV9uYW1lOiBnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eU5hbWUsXG4gICAgfSk7XG4gIH07XG5cbiAgLy8gUmV0dXJuIHRoZSBwb2ludCBvYmplY3RzIG9mIGFsbCBpdGVtcyBpbiB0aGUgbGlzdCBzb3J0ZWQgYnkgdGhlaXIgbmFtZXNcblxuICBjb25zdCBnZXRCdXR0b25UeXBlID0gKHR5cGU6IHN0cmluZykgPT4ge1xuICAgIGxldCByYztcblxuICAgIHN3aXRjaCAodHlwZS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICBjYXNlICdhcmVhJzpcbiAgICAgIGNhc2UgJ3ZhcmVhJzpcbiAgICAgICAgcmMgPSAndmlld19zdWJfYXJlYXMnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2ZhY3RvcnknOlxuICAgICAgICByYyA9ICd2aWV3X2ZhY3Rvcmllcyc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmMgPSAndmlld19pbmxldHMnO1xuICAgIH1cbiAgICByZXR1cm4gcmM7XG4gIH07XG5cbiAgY29uc3QgdGl0bGUgPSAoKSA9PiB7XG4gICAgbGV0IHBheWxvYWQgPSAnJztcbiAgICBpZiAocG9pbnQpIHtcbiAgICAgIHBheWxvYWQgPSBwb2ludC5uYW1lO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoYXJlYSkge1xuICAgICAgICBwYXlsb2FkID0gYXJlYS5hcmVhX25hbWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwYXlsb2FkO1xuICB9O1xuXG4gIGNvbnN0IGJ1dHRvblRpdGxlID0gKCkgPT4ge1xuICAgIGlmIChidXR0b25OYW1lID09PSAnJykgcmV0dXJuICcnO1xuICAgIHJldHVybiBpMThuLnQoYHd3dHBQYWdlLiR7YnV0dG9uTmFtZX1gKTtcbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxldCBpc0FQb2ludCA9IG9iamVjdC5mb3JXV1RQTWFwICE9PSB1bmRlZmluZWQ7XG5cbiAgICBpZiAoaXNBUG9pbnQpIHtcbiAgICAgIHNldFBvaW50KG9iamVjdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldEFyZWEob2JqZWN0KTtcbiAgICB9XG4gIH0sIFtvYmplY3RdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChsaXN0RGF0YSA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG5cbiAgICBzZXRMaXN0SXRlbXMobGlzdERhdGE/LmRhdGEpO1xuICAgIGlmIChsaXN0RGF0YS5kYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgIHNldEJ1dHRvbk5hbWUoZ2V0QnV0dG9uVHlwZShsaXN0RGF0YS5kYXRhWzBdLnR5cGUpKTtcbiAgICB9XG4gIH0sIFtsaXN0RGF0YV0pO1xuXG4gIGNvbnN0IHdpZGdldENvbnRlbnQgPSAoKSA9PiB7XG4gICAgY29uc3QgZGF0YSA9IGxpc3REYXRhPy5kYXRhO1xuICAgIGNvbnN0IHNob3dCdXR0b24gPSBkYXRhPy5sZW5ndGggPiAwO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIHtzaG93QnV0dG9uICYmIChcbiAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVDbGljaygpfVxuICAgICAgICAgICAgY2xhc3NOYW1lPXsnY2hpbGRyZW5CdXR0b24gcm91bmRlZC1waWxsIGJ0bi1saWdodCd9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2J1dHRvblRpdGxlKCl9XG4gICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICl9XG4gICAgICAgIDxJbmxldHNQaWUgaW5sZXRzPXtsaXN0SXRlbXN9IC8+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxoMz57dGl0bGUoKX08L2gzPlxuICAgICAgPENhcmQgY2xhc3NOYW1lPVwiYmctd2hpdGUgd2lkZ2V0LWNvbnRhaW5lclwiPnt3aWRnZXRDb250ZW50KCl9PC9DYXJkPlxuICAgIDwvPlxuICApO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGVBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLG1CQUFBLEdBQUFGLE9BQUE7QUFFQSxJQUFBRyxL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