@kando-env/kando-ui 1.2.412-alpha.8 → 1.2.412
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/Widgets/EventsRow/EventsRow.js +3 -3
- package/lib/Widgets/Map/Map.js +100 -128
- package/lib/Widgets/Map/MapUtils.js +18 -10
- package/lib/Widgets/Map/areas/AreaPolygon.js +24 -23
- package/lib/Widgets/Map/events/Event.js +6 -2
- package/lib/Widgets/Map/points/PointMarker.js +3 -10
- package/lib/Widgets/Map/points/PointMarkers.js +25 -15
- package/lib/Widgets/Map/points/PointUtils.js +16 -32
- package/lib/components/DischargeHeatmap/mocks/handlers.js +3 -3
- package/lib/components/Header/InfoBar/Breadcrumbs/Breadcrumbs.js +3 -4
- package/lib/components/Header/InfoBar/InfoBar.js +9 -9
- package/lib/components/Map/Map.js +5 -6
- package/lib/components/SevereEvent/SevereEvent.js +2 -3
- package/lib/i18n/en.json +1 -2
- package/lib/i18n/en_uk.json +5 -2
- package/lib/macros/getVersion.js +2 -2
- package/lib/pages/DashboardMap/FactoryCard.js +5 -2
- package/lib/pages/DashboardMap/List.js +69 -77
- package/lib/pages/DashboardMap/SeverityBadge.js +3 -7
- package/lib/pages/DashboardMap/WWTPMap.js +5 -6
- package/lib/pages/EventsPage/Body/Body.js +17 -17
- package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainer.js +5 -4
- package/lib/pages/EventsPage/events/Sidebar.js +11 -12
- package/lib/pages/EventsPage/events/event_info/EventSection.test.js +22 -21
- package/lib/pages/EventsPage/events/event_info/Header/Header.js +1 -1
- package/lib/pages/EventsPage/events/event_info/Header/HeaderContainer.js +1 -1
- package/lib/pages/EventsPage/events/event_info/Header/index.js +1 -1
- package/lib/pages/EventsPage/events/event_info/SeverityScore/index.js +1 -1
- package/lib/pages/EventsPage/events/event_info/Timelines/index.js +1 -1
- package/lib/pages/EventsPage/events/events_list/EventsList.js +2 -2
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.js +5 -7
- package/lib/pages/UtilityDashboardPage/TopBar/TopBar.js +2 -2
- package/lib/pages/UtilityDashboardPage/TopBar/constants.js +11 -9
- package/lib/test/mocks/browser.js +1 -1
- package/lib/test/test-utils.js +1 -1
- package/lib/ui-kit/KandoTable/KandoTable.test.js +1 -1
- package/lib/utilities/Analytics.js +27 -34
- package/lib/utilities/scoreToData.js +3 -7
- package/lib/utilities/scoreToData.test.js +1 -1
- package/package.json +1 -1
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.zoomLevels = exports.topIconOptions = exports.toggleEdgesVisibility = exports.shouldLoadMapObjects = exports.shoudLoadDependentMapObjects = exports.setupCheckboxListener = exports.multipleLayeredIcons = exports.middleIconOptions = exports.mapStyle = exports.isValidArea = exports.initializeMap = exports.iconZoomControl = exports.findSpecificLayersFromMap = exports.findPoint = exports.filterPoints = exports.filterEdges = exports.eventsCounterIcons = exports.eventsCountIcon = exports.edgesSpecificLogic = exports.customFunctionalityForMapLayers = exports.clusterGroupOptions = exports.bubbleIconOptions = exports.baseMaps = exports.areaFocusLogic = void 0;
|
|
7
|
+
exports.zoomLevels = exports.topIconOptions = exports.toggleMonitoredPointsVisibility = exports.toggleEdgesVisibility = exports.shouldLoadMapObjects = exports.shoudLoadDependentMapObjects = exports.setupCheckboxListener = exports.multipleLayeredIcons = exports.middleIconOptions = exports.mapStyle = exports.isValidArea = exports.initializeMap = exports.iconZoomControl = exports.findSpecificLayersFromMap = exports.findPoint = exports.filterPoints = exports.filterEdges = exports.eventsCounterIcons = exports.eventsCountIcon = exports.edgesSpecificLogic = exports.customFunctionalityForMapLayers = exports.clusterGroupOptions = exports.bubbleIconOptions = exports.baseMaps = exports.areaFocusLogic = void 0;
|
|
8
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
|
|
9
9
|
var _leaflet = _interopRequireDefault(require("leaflet"));
|
|
10
10
|
var _actions = require("../../store/global/actions");
|
|
@@ -208,14 +208,13 @@ var toggleEdgesVisibility = function toggleEdgesVisibility(visible, map) {
|
|
|
208
208
|
}
|
|
209
209
|
});
|
|
210
210
|
};
|
|
211
|
-
|
|
212
|
-
// export const toggleMonitoredPointsVisibility = (visible) => {
|
|
213
|
-
// console.warn('toggleMonitoredPointsVisibility', visible);
|
|
214
|
-
// };
|
|
215
211
|
exports.toggleEdgesVisibility = toggleEdgesVisibility;
|
|
212
|
+
var toggleMonitoredPointsVisibility = function toggleMonitoredPointsVisibility(visible) {
|
|
213
|
+
console.warn('toggleMonitoredPointsVisibility', visible);
|
|
214
|
+
};
|
|
215
|
+
exports.toggleMonitoredPointsVisibility = toggleMonitoredPointsVisibility;
|
|
216
216
|
var edgesSpecificLogic = function edgesSpecificLogic(defaultOn, map) {
|
|
217
217
|
var checkbox = document.querySelector('#edges-checkbox');
|
|
218
|
-
if (checkbox == null) return;
|
|
219
218
|
checkbox.checked = defaultOn;
|
|
220
219
|
};
|
|
221
220
|
exports.edgesSpecificLogic = edgesSpecificLogic;
|
|
@@ -233,10 +232,19 @@ var customControls = function customControls(map) {
|
|
|
233
232
|
id: 'monitored-points-checkbox',
|
|
234
233
|
inputType: 'checkbox',
|
|
235
234
|
onChange: function onChange(isChecked) {
|
|
236
|
-
return
|
|
235
|
+
return toggleMonitoredPointsVisibility(isChecked);
|
|
237
236
|
}
|
|
238
|
-
}
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
// {
|
|
240
|
+
// label: 'Another custom feature',
|
|
241
|
+
// id: 'custom-feature-checkbox',
|
|
242
|
+
// inputType: 'checkbox',
|
|
243
|
+
// onChange: (isChecked) => console.log(`Another feature is now ${isChecked ? 'enabled' : 'disabled'}`),
|
|
244
|
+
// },
|
|
245
|
+
];
|
|
239
246
|
};
|
|
247
|
+
|
|
240
248
|
var appendCustomCheckboxToLeafletsLayerBox = function appendCustomCheckboxToLeafletsLayerBox(leafletsContainer, customContainer) {
|
|
241
249
|
_leaflet.default.DomEvent.on(leafletsContainer, 'mouseover', function () {
|
|
242
250
|
customContainer.style.display = 'block';
|
|
@@ -328,7 +336,7 @@ var clusterGroupOptions = {
|
|
|
328
336
|
showCoverageOnHover: false,
|
|
329
337
|
zoomToBoundsOnClick: true,
|
|
330
338
|
animate: true,
|
|
331
|
-
disableClusteringAtZoom:
|
|
339
|
+
disableClusteringAtZoom: 15,
|
|
332
340
|
removeOutsideVisibleBounds: false,
|
|
333
341
|
chunkedLoading: true,
|
|
334
342
|
iconCreateFunction: function iconCreateFunction(cluster) {
|
|
@@ -393,4 +401,4 @@ var setupCheckboxListener = function setupCheckboxListener(selector, onChange) {
|
|
|
393
401
|
});
|
|
394
402
|
};
|
|
395
403
|
exports.setupCheckboxListener = setupCheckboxListener;
|
|
396
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2FjdGlvbnMiLCJfaTE4biIsIl9XV1RQRGFzaGJvYXJkU2xpY2UiLCJhcmVhRm9jdXNMb2dpYyIsIm1hcFJlZiIsImlzVmFsaWRBcmVhIiwiYXJlYVRvQ2VudGVyQnkiLCJtYXBJbnN0YW5jZSIsImN1cnJlbnQiLCJmaXRCb3VuZHMiLCJwYWRkaW5nIiwiZ3JvdXAiLCJwcm9wZXJ0eSIsIl9sYXllcnMiLCJrYW5kb19vYmplY3QiLCJwdXNoIiwiT2JqZWN0Iiwia2V5cyIsIkwiLCJmZWF0dXJlR3JvdXAiLCJnZXRCb3VuZHMiLCJsZW5ndGgiLCJleHBvcnRzIiwiYXJlYSIsInNob3VsZExvYWRNYXBPYmplY3RzIiwiZ2xvYmFsX2RhdGEiLCJwb2ludHMiLCJlZGdlcyIsIm1hcCIsInVuZGVmaW5lZCIsInNob3VkTG9hZERlcGVuZGVudE1hcE9iamVjdHMiLCJhcmVhcyIsImdsb2JhbCIsImZpbmRTcGVjaWZpY0xheWVyc0Zyb21NYXAiLCJsYXllcnNUb0ZpbmQiLCJjdXJyZW50TGF5ZXIiLCJpbmNsdWRlcyIsImthbmRvX3BvaW50X3R5cGUiLCJldmVudHNDb3VudGVySWNvbnMiLCJsYXllciIsInpvb21MZXZlbCIsImljb24iLCJvcHRpb25zIiwiaWNvblNpemUiLCJldmVudHNDb3VudEljb24iLCJpY29uQW5jaG9yIiwic2V0SWNvbiIsInNldE9wYWNpdHkiLCJtdWx0aXBsZUxheWVyZWRJY29ucyIsImlzQUZld0xheWVySWNvbiIsImthbmRvX2Zld19sYXllcl9pY29uIiwibWluaUljb24iLCJwcmVzZW50Iiwia2FuZG9fc2Vjb25kYXJ5Iiwia2FuZG9fdGhpcmQiLCJzZWNvbmRhcnkiLCJ0aGlyZCIsImthbmRvX2luZGV4X29iamVjdCIsImJ1YmJsZUljb25PcHRpb25zIiwib25lTGF5ZXJJY29uT3B0aW9ucyIsIm1pZGRsZUljb25PcHRpb25zIiwidG9wSWNvbk9wdGlvbnMiLCJpY29uWm9vbUNvbnRyb2wiLCJsYXllcnMiLCJfem9vbSIsIm1hcFN0eWxlIiwibWFwQm94U3R5bGUiLCJ0aWxlTGF5ZXIiLCJjb25jYXQiLCJhdHRyaWJ1dGlvbiIsIm1heFpvb20iLCJtaW5ab29tIiwiaWQiLCJ0aWxlU2l6ZSIsInpvb21PZmZzZXQiLCJ1cGRhdGVXaGVuWm9vbWluZyIsInVwZGF0ZVdoZW5JZGxlIiwiYmFzZU1hcHMiLCJtYXBCb3hTYXRlbGxpdGVTdHlsZSIsIl9yZWYiLCJkZWZhdWx0TWFwIiwiaTE4biIsInQiLCJzYXRlbGxpdGUiLCJfZGVmaW5lUHJvcGVydHkyIiwiZGVmYXVsdCIsInRvZ2dsZUVkZ2VzVmlzaWJpbGl0eSIsInZpc2libGUiLCJlYWNoTGF5ZXIiLCJQb2x5bGluZSIsIlN5bWJvbCIsImFycm93SGVhZCIsInNldFN0eWxlIiwib3BhY2l0eSIsImVkZ2VzU3BlY2lmaWNMb2dpYyIsImRlZmF1bHRPbiIsImNoZWNrYm94IiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwiY2hlY2tlZCIsImN1c3RvbUNvbnRyb2xzIiwibGFiZWwiLCJpbnB1dFR5cGUiLCJkZW55Rm9yV2EiLCJvbkNoYW5nZSIsImlzQ2hlY2tlZCIsImFwcGVuZEN1c3RvbUNoZWNrYm94VG9MZWFmbGV0c0xheWVyQm94IiwibGVhZmxldHNDb250YWluZXIiLCJjdXN0b21Db250YWluZXIiLCJEb21FdmVudCIsIm9uIiwic3R5bGUiLCJkaXNwbGF5IiwiY3JlYXRlQ3VzdG9tQ29udHJvbCIsImNvbnRyb2wiLCJjb250YWluZXIiLCJjb250cm9sQ29udGFpbmVyIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsImlubmVySFRNTCIsImFkZEV2ZW50TGlzdGVuZXIiLCJlIiwidGFyZ2V0IiwiYXBwZW5kQ2hpbGQiLCJjdXN0b21GdW5jdGlvbmFsaXR5Rm9yTWFwTGF5ZXJzIiwibWFwVHlwZXMiLCJhcmd1bWVudHMiLCJ3YUlkIiwiZm9yV1dUUERhc2hib2FyZCIsImNvbnRyb2xsZXIiLCJwb3NpdGlvbiIsImFkZFRvIiwiZ2V0Q29udGFpbmVyIiwiZm9yRWFjaCIsImluaXRpYWxpemVNYXAiLCJtYXBab29tTGV2ZWwiLCJkaXNwYXRjaCIsInNldE1hcFpvb21MZXZlbCIsInNob3dFZGdlc0J5RGVmYXVsdCIsIk1hcCIsImNlbnRlciIsInpvb21TbmFwIiwiem9vbSIsImF0dHJpYnV0aW9uQ29udHJvbCIsInByZWZlckNhbnZhcyIsInNldE1hcCIsIndoZW5SZWFkeSIsInZhbHVlcyIsInNldFRpbWVvdXQiLCJpbnZhbGlkYXRlU2l6ZSIsImVyciIsImNvbnNvbGUiLCJlcnJvciIsInN0b3JlTWFwIiwic2lkZU5hdkV4cGFuZGVkIiwiZXZlbnQiLCJvcmlnaW5hbEV2ZW50Iiwia2V5IiwiY2xvc2VQb3B1cCIsImJvZHkiLCJmb2N1cyIsImdldFpvb20iLCJjbHVzdGVyR3JvdXBPcHRpb25zIiwic3BpZGVyZnlPbk1heFpvb20iLCJzaG93Q292ZXJhZ2VPbkhvdmVyIiwiem9vbVRvQm91bmRzT25DbGljayIsImFuaW1hdGUiLCJkaXNhYmxlQ2x1c3RlcmluZ0F0Wm9vbSIsInJlbW92ZU91dHNpZGVWaXNpYmxlQm91bmRzIiwiY2h1bmtlZExvYWRpbmciLCJpY29uQ3JlYXRlRnVuY3Rpb24iLCJjbHVzdGVyIiwiRGl2SWNvbiIsImh0bWwiLCJfY2hpbGRDb3VudCIsIlBvaW50Iiwiem9vbUxldmVscyIsImZpbHRlclBvaW50cyIsImhhc0RldmljZSIsImZpbHRlciIsInBvaW50IiwiaGFzX2RldmljZSIsImZpbmRQb2ludCIsInBvaW50SWQiLCJoYXNEZXZpY2VDaGVjayIsImZpbmQiLCJmaWx0ZXJFZGdlcyIsImlzTW9uaXRvcmVkIiwiZWRnZSIsInNvdXJjZVBvaW50Iiwic291cmNlX3BvaW50X2lkIiwiZGVzY2VuZGFudHNfaGFzX2RldmljZSIsInBhcmVudFBvaW50IiwidGFyZ2V0X3BvaW50X2lkIiwic2V0dXBDaGVja2JveExpc3RlbmVyIiwic2VsZWN0b3IiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvV2lkZ2V0cy9NYXAvTWFwVXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEwsIHsgUG9pbnRUdXBsZSB9IGZyb20gJ2xlYWZsZXQnO1xuaW1wb3J0IHsgc2lkZU5hdkV4cGFuZGVkLCBzdG9yZU1hcCB9IGZyb20gJy4uLy4uL3N0b3JlL2dsb2JhbC9hY3Rpb25zJztcbmltcG9ydCBpMThuIGZyb20gJ3NyYy91dGlsaXRpZXMvaTE4bic7XG5pbXBvcnQgeyBzZXRNYXAgfSBmcm9tICcuLi8uLi9zdG9yZS9XV1RQRGFzaGJvYXJkL1dXVFBEYXNoYm9hcmRTbGljZSc7XG5cbmV4cG9ydCBjb25zdCBhcmVhRm9jdXNMb2dpYyA9IChtYXBSZWYsIGlzVmFsaWRBcmVhLCBhcmVhVG9DZW50ZXJCeSkgPT4ge1xuICBsZXQgbWFwSW5zdGFuY2U6IGFueSA9IG1hcFJlZi5jdXJyZW50O1xuICBpZiAoaXNWYWxpZEFyZWEoYXJlYVRvQ2VudGVyQnkpKSB7XG4gICAgbWFwSW5zdGFuY2UuZml0Qm91bmRzKGFyZWFUb0NlbnRlckJ5LCB7IHBhZGRpbmc6IFswLCAwXSB9KTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBncm91cDogYW55W10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgcHJvcGVydHkgaW4gbWFwSW5zdGFuY2UuX2xheWVycykge1xuICAgICAgaWYgKFxuICAgICAgICBtYXBJbnN0YW5jZS5fbGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3QgPT09ICdBcmVhJyB8fFxuICAgICAgICBtYXBJbnN0YW5jZS5fbGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3QgPT09ICdQb2ludCdcbiAgICAgICkge1xuICAgICAgICBncm91cC5wdXNoKG1hcEluc3RhbmNlLl9sYXllcnNbcHJvcGVydHldKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoT2JqZWN0LmtleXMoTC5mZWF0dXJlR3JvdXAoZ3JvdXApLmdldEJvdW5kcygpKS5sZW5ndGggIT09IDApIHtcbiAgICAgIG1hcEluc3RhbmNlLmZpdEJvdW5kcyhMLmZlYXR1cmVHcm91cChncm91cCkuZ2V0Qm91bmRzKCksIHtcbiAgICAgICAgcGFkZGluZzogWzEwMCwgMTAwXSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICAvLyBtYXBJbnN0YW5jZS5pbnZhbGlkYXRlU2l6ZSh0cnVlKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1ZhbGlkQXJlYSA9IChhcmVhKSA9PiB7XG4gIHJldHVybiBhcmVhICYmIGFyZWEubGVuZ3RoID4gMCAmJiBPYmplY3Qua2V5cyhhcmVhWzBdKS5sZW5ndGggPiAwO1xufTtcblxuZXhwb3J0IGNvbnN0IHNob3VsZExvYWRNYXBPYmplY3RzID0gKGdsb2JhbF9kYXRhLCBtYXBSZWYsIHBvaW50cywgZWRnZXMpID0+IHtcbiAgcmV0dXJuIChcbiAgICBnbG9iYWxfZGF0YS5tYXAgIT09IHVuZGVmaW5lZCAmJlxuICAgIG1hcFJlZi5jdXJyZW50ICE9PSBudWxsICYmXG4gICAgZWRnZXMgIT09IHVuZGVmaW5lZCAmJlxuICAgIHBvaW50cyAhPT0gdW5kZWZpbmVkXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2hvdWRMb2FkRGVwZW5kZW50TWFwT2JqZWN0cyA9IChcbiAgZWRnZXMsXG4gIGFyZWFzLFxuICBnbG9iYWwsXG4gIG1hcFJlZixcbiAgcG9pbnRzLFxuKSA9PiB7XG4gIHJldHVybiAoXG4gICAgZ2xvYmFsLm1hcCAhPT0gdW5kZWZpbmVkICYmXG4gICAgbWFwUmVmLmN1cnJlbnQgIT09IG51bGwgJiZcbiAgICAvLyBlZGdlcy5sZW5ndGggIT09IDAgJiZcbiAgICAvLyBhcmVhcy5sZW5ndGggIT09IDAgJiZcbiAgICBwb2ludHMubGVuZ3RoICE9PSAwXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgZmluZFNwZWNpZmljTGF5ZXJzRnJvbU1hcCA9IChcbiAgbGF5ZXJzVG9GaW5kOiBzdHJpbmdbXSxcbiAgY3VycmVudExheWVyLFxuKSA9PiB7XG4gIHJldHVybiAoXG4gICAgbGF5ZXJzVG9GaW5kLmluY2x1ZGVzKGN1cnJlbnRMYXllci5rYW5kb19vYmplY3QpICYmXG4gICAgY3VycmVudExheWVyLmthbmRvX3BvaW50X3R5cGUgIT09ICdNYW5ob2xlJ1xuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IGV2ZW50c0NvdW50ZXJJY29ucyA9IChsYXllciwgem9vbUxldmVsKSA9PiB7XG4gIGxldCBpY29uID0gbGF5ZXIub3B0aW9ucy5pY29uO1xuICBpY29uLm9wdGlvbnMuaWNvblNpemUgPSBldmVudHNDb3VudEljb24oem9vbUxldmVsKS5pY29uU2l6ZTtcbiAgaWNvbi5vcHRpb25zLmljb25BbmNob3IgPSBldmVudHNDb3VudEljb24oem9vbUxldmVsKS5pY29uQW5jaG9yO1xuICBsYXllci5zZXRJY29uKGljb24pO1xuICBsYXllci5zZXRPcGFjaXR5KDEpO1xufTtcblxuZXhwb3J0IGNvbnN0IG11bHRpcGxlTGF5ZXJlZEljb25zID0gKGxheWVyLCB6b29tTGV2ZWwpID0+IHtcbiAgbGV0IGljb24gPSBsYXllci5vcHRpb25zLmljb247XG4gIGxldCBpc0FGZXdMYXllckljb24gPSBsYXllci5rYW5kb19mZXdfbGF5ZXJfaWNvbjtcbiAgbGV0IG1pbmlJY29uID0ge1xuICAgIHByZXNlbnQ6IGxheWVyLmthbmRvX3NlY29uZGFyeSB8fCBsYXllci5rYW5kb190aGlyZCxcbiAgICBzZWNvbmRhcnk6IGxheWVyLmthbmRvX3NlY29uZGFyeSxcbiAgICB0aGlyZDogbGF5ZXIua2FuZG9fdGhpcmQsXG4gIH07XG5cbiAgaWYgKGxheWVyLmthbmRvX2luZGV4X29iamVjdCA9PT0gMCkge1xuICAgIGlmIChpc0FGZXdMYXllckljb24pIHtcbiAgICAgIGljb24ub3B0aW9ucy5pY29uU2l6ZSA9IGJ1YmJsZUljb25PcHRpb25zKHpvb21MZXZlbCwgbWluaUljb24pLmljb25TaXplO1xuICAgICAgaWNvbi5vcHRpb25zLmljb25BbmNob3IgPSBidWJibGVJY29uT3B0aW9ucyhcbiAgICAgICAgem9vbUxldmVsLFxuICAgICAgICBtaW5pSWNvbixcbiAgICAgICkuaWNvbkFuY2hvcjtcbiAgICB9IGVsc2Uge1xuICAgICAgaWNvbi5vcHRpb25zLmljb25TaXplID0gb25lTGF5ZXJJY29uT3B0aW9ucyh6b29tTGV2ZWwpLmljb25TaXplO1xuICAgICAgaWNvbi5vcHRpb25zLmljb25BbmNob3IgPSBvbmVMYXllckljb25PcHRpb25zKHpvb21MZXZlbCkuaWNvbkFuY2hvcjtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgaWYgKGxheWVyLmthbmRvX2luZGV4X29iamVjdCA9PT0gMSkge1xuICAgICAgaWNvbi5vcHRpb25zLmljb25TaXplID0gbWlkZGxlSWNvbk9wdGlvbnMoem9vbUxldmVsLCBtaW5pSWNvbikuaWNvblNpemU7XG4gICAgICBpY29uLm9wdGlvbnMuaWNvbkFuY2hvciA9IG1pZGRsZUljb25PcHRpb25zKFxuICAgICAgICB6b29tTGV2ZWwsXG4gICAgICAgIG1pbmlJY29uLFxuICAgICAgKS5pY29uQW5jaG9yO1xuICAgIH0gZWxzZSB7XG4gICAgICBpY29uLm9wdGlvbnMuaWNvblNpemUgPSB0b3BJY29uT3B0aW9ucyh6b29tTGV2ZWwsIG1pbmlJY29uKS5pY29uU2l6ZTtcbiAgICAgIGljb24ub3B0aW9ucy5pY29uQW5jaG9yID0gdG9wSWNvbk9wdGlvbnMoem9vbUxldmVsLCBtaW5pSWNvbikuaWNvbkFuY2hvcjtcbiAgICB9XG4gIH1cblxuICBsYXllci5zZXRJY29uKGljb24pO1xufTtcblxuY29uc3Qgb25lTGF5ZXJJY29uT3B0aW9ucyA9ICh6b29tTGV2ZWwpID0+IHtcbiAgcmV0dXJuIHtcbiAgICBpY29uU2l6ZTogW3pvb21MZXZlbCAqIDMuMywgem9vbUxldmVsICogMy4zXSBhcyBQb2ludFR1cGxlLFxuICAgIGljb25BbmNob3I6IFt6b29tTGV2ZWwgKiAxLjcsIHpvb21MZXZlbCAqIDMuN10gYXMgUG9pbnRUdXBsZSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBldmVudHNDb3VudEljb24gPSAoem9vbUxldmVsKSA9PiB7XG4gIHJldHVybiB7XG4gICAgaWNvblNpemU6IFt6b29tTGV2ZWwgKiAyLjUsIHpvb21MZXZlbCAqIDIuNV0gYXMgUG9pbnRUdXBsZSxcbiAgICBpY29uQW5jaG9yOiBbem9vbUxldmVsICogMCwgem9vbUxldmVsICogNF0gYXMgUG9pbnRUdXBsZSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBidWJibGVJY29uT3B0aW9ucyA9ICh6b29tTGV2ZWwsIG1pbmlJY29uKSA9PiB7XG4gIGlmIChtaW5pSWNvbi5wcmVzZW50KSB7XG4gICAgaWYgKG1pbmlJY29uLnNlY29uZGFyeSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWNvblNpemU6IFt6b29tTGV2ZWwgKiAxLjk4LCB6b29tTGV2ZWwgKiAyLjNdIGFzIFBvaW50VHVwbGUsXG4gICAgICAgIGljb25BbmNob3I6IFt6b29tTGV2ZWwgKiAwLCB6b29tTGV2ZWwgKiA0XSBhcyBQb2ludFR1cGxlLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWNvblNpemU6IFt6b29tTGV2ZWwgKiAxLjk4LCB6b29tTGV2ZWwgKiAyLjNdIGFzIFBvaW50VHVwbGUsXG4gICAgICAgIGljb25BbmNob3I6IFt6b29tTGV2ZWwgKiAwLCB6b29tTGV2ZWwgKiAyXSBhcyBQb2ludFR1cGxlLFxuICAgICAgfTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGljb25TaXplOiBbem9vbUxldmVsICogMy45OCwgem9vbUxldmVsICogNC4zXSBhcyBQb2ludFR1cGxlLFxuICAgICAgaWNvbkFuY2hvcjogW3pvb21MZXZlbCAqIDIsIHpvb21MZXZlbCAqIDRdIGFzIFBvaW50VHVwbGUsXG4gICAgfTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IG1pZGRsZUljb25PcHRpb25zID0gKHpvb21MZXZlbCwgbWluaUljb24pID0+IHtcbiAgaWYgKG1pbmlJY29uLnByZXNlbnQpIHtcbiAgICBpZiAobWluaUljb24uc2Vjb25kYXJ5KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpY29uU2l6ZTogW3pvb21MZXZlbCAqIDEuMSwgem9vbUxldmVsICogMS4xXSxcbiAgICAgICAgaWNvbkFuY2hvcjogW3pvb21MZXZlbCAqIC0wLjQ1LCB6b29tTGV2ZWwgKiAzLjVdLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWNvblNpemU6IFt6b29tTGV2ZWwgKiAxLjEsIHpvb21MZXZlbCAqIDEuMV0sXG4gICAgICAgIGljb25BbmNob3I6IFt6b29tTGV2ZWwgKiAtMC40NSwgem9vbUxldmVsICogMS41XSxcbiAgICAgIH07XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHJldHVybiB7XG4gICAgICBpY29uU2l6ZTogW3pvb21MZXZlbCAqIDIuNSwgem9vbUxldmVsICogMi41XSxcbiAgICAgIGljb25BbmNob3I6IFt6b29tTGV2ZWwgKiAxLjI5NSwgem9vbUxldmVsICogMy4zNV0sXG4gICAgfTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHRvcEljb25PcHRpb25zID0gKHpvb21MZXZlbCwgbWluaUljb24pID0+IHtcbiAgaWYgKG1pbmlJY29uLnByZXNlbnQpIHtcbiAgICBpZiAobWluaUljb24uc2Vjb25kYXJ5KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpY29uU2l6ZTogW3pvb21MZXZlbCAqIDAuOSwgem9vbUxldmVsICogMS44XSxcbiAgICAgICAgaWNvbkFuY2hvcjogW3pvb21MZXZlbCAqIC0wLjUsIHpvb21MZXZlbCAqIDMuOF0sXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpY29uU2l6ZTogW3pvb21MZXZlbCAqIDEuNiwgem9vbUxldmVsICogMi41XSxcbiAgICAgICAgaWNvbkFuY2hvcjogW3pvb21MZXZlbCAqIC0wLjIsIHpvb21MZXZlbCAqIDIuMV0sXG4gICAgICB9O1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWNvblNpemU6IFt6b29tTGV2ZWwgKiAzLjksIHpvb21MZXZlbCAqIDMuOF0sXG4gICAgICBpY29uQW5jaG9yOiBbem9vbUxldmVsICogMiwgem9vbUxldmVsICogMy44XSxcbiAgICB9O1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgaWNvblpvb21Db250cm9sID0gKG1hcCkgPT4ge1xuICBsZXQgbGF5ZXJzID0gbWFwLl9sYXllcnM7XG4gIGxldCB6b29tTGV2ZWwgPSBtYXAuX3pvb207XG5cbiAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBsYXllcnMpIHtcbiAgICBpZiAoZmluZFNwZWNpZmljTGF5ZXJzRnJvbU1hcChbJ0ljb25OdW1iZXInXSwgbGF5ZXJzW3Byb3BlcnR5XSkpIHtcbiAgICAgIGV2ZW50c0NvdW50ZXJJY29ucyhsYXllcnNbcHJvcGVydHldLCB6b29tTGV2ZWwpO1xuICAgIH1cblxuICAgIGlmIChmaW5kU3BlY2lmaWNMYXllcnNGcm9tTWFwKFsnUG9pbnQnLCAnSWNvbiddLCBsYXllcnNbcHJvcGVydHldKSkge1xuICAgICAgbXVsdGlwbGVMYXllcmVkSWNvbnMobGF5ZXJzW3Byb3BlcnR5XSwgem9vbUxldmVsKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBmaW5kU3BlY2lmaWNMYXllcnNGcm9tTWFwKFsnU2FtcGxpbmcnLCAnT2JzZXJ2YXRpb24nXSwgbGF5ZXJzW3Byb3BlcnR5XSlcbiAgICApIHtcbiAgICAgIG11bHRpcGxlTGF5ZXJlZEljb25zKGxheWVyc1twcm9wZXJ0eV0sIHpvb21MZXZlbCk7XG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgY29uc3QgbWFwU3R5bGUgPSAobWFwQm94U3R5bGUpID0+IHtcbiAgcmV0dXJuIEwudGlsZUxheWVyKFxuICAgIGBodHRwczovL2FwaS5tYXBib3guY29tL3N0eWxlcy92MS9uYWRhdi1rYW5kby8ke21hcEJveFN0eWxlfS90aWxlcy8yNTYve3p9L3t4fS97eX1AMng/YWNjZXNzX3Rva2VuPXBrLmV5SjFJam9pYm1Ga1lYWXRhMkZ1Wkc4aUxDSmhJam9pWTJwdmVIcHJkR1J4TUhsbWRETjRiRGcwZHpKeE9YYzRkU0o5LkotMm9ocTdqNHlLTmJtNE5fLVA2cXdgLFxuICAgIHtcbiAgICAgIGF0dHJpYnV0aW9uOlxuICAgICAgICAnTWFwIGRhdGEgJmNvcHk7IDxhIGhyZWY9XCJodHRwczovL3d3dy5vcGVuc3RyZWV0bWFwLm9yZy9cIj5PcGVuU3RyZWV0TWFwPC9hPiBjb250cmlidXRvcnMsIDxhIGhyZWY9XCJodHRwczovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktc2EvMi4wL1wiPkNDLUJZLVNBPC9hPiwgSW1hZ2VyeSDCqSA8YSBocmVmPVwiaHR0cHM6Ly93d3cubWFwYm94LmNvbS9cIj5NYXBib3g8L2E+JyxcbiAgICAgIG1heFpvb206IDE4LFxuICAgICAgbWluWm9vbTogMixcbiAgICAgIGlkOiAnbWFwYm94L3N0cmVldHMtdjExJyxcbiAgICAgIHRpbGVTaXplOiA1MTIsXG4gICAgICB6b29tT2Zmc2V0OiAtMSxcbiAgICAgIHVwZGF0ZVdoZW5ab29taW5nOiBmYWxzZSxcbiAgICAgIHVwZGF0ZVdoZW5JZGxlOiBmYWxzZSxcbiAgICB9LFxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IGJhc2VNYXBzID0gKG1hcEJveFN0eWxlLCBtYXBCb3hTYXRlbGxpdGVTdHlsZSkgPT4ge1xuICBsZXQgZGVmYXVsdE1hcCA9IGkxOG4udCgnbWFwLmxheWVycy5kZWZhdWx0Jyk7XG4gIGxldCBzYXRlbGxpdGUgPSBpMThuLnQoJ21hcC5sYXllcnMuc2F0ZWxsaXRlJyk7XG4gIHJldHVybiB7XG4gICAgW2RlZmF1bHRNYXBdOiBtYXBTdHlsZShtYXBCb3hTdHlsZSksXG4gICAgW3NhdGVsbGl0ZV06IG1hcFN0eWxlKG1hcEJveFNhdGVsbGl0ZVN0eWxlKSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB0b2dnbGVFZGdlc1Zpc2liaWxpdHkgPSAodmlzaWJsZSwgbWFwKSA9PiB7XG4gIG1hcC5lYWNoTGF5ZXIoKGxheWVyKSA9PiB7XG4gICAgaWYgKFxuICAgICAgKGxheWVyIGluc3RhbmNlb2YgTC5Qb2x5bGluZSAmJiBsYXllci5rYW5kb19vYmplY3QgIT09ICdBcmVhJykgfHxcbiAgICAgIGxheWVyIGluc3RhbmNlb2YgTC5TeW1ib2wuYXJyb3dIZWFkXG4gICAgKSB7XG4gICAgICBsYXllci5zZXRTdHlsZSh7IG9wYWNpdHk6IHZpc2libGUgPyAxIDogMCB9KTtcbiAgICB9XG4gIH0pO1xufTtcblxuLy8gZXhwb3J0IGNvbnN0IHRvZ2dsZU1vbml0b3JlZFBvaW50c1Zpc2liaWxpdHkgPSAodmlzaWJsZSkgPT4ge1xuLy8gICBjb25zb2xlLndhcm4oJ3RvZ2dsZU1vbml0b3JlZFBvaW50c1Zpc2liaWxpdHknLCB2aXNpYmxlKTtcbi8vIH07XG5cbmV4cG9ydCBjb25zdCBlZGdlc1NwZWNpZmljTG9naWMgPSAoZGVmYXVsdE9uLCBtYXApID0+IHtcbiAgbGV0IGNoZWNrYm94ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2VkZ2VzLWNoZWNrYm94Jyk7XG4gIGlmIChjaGVja2JveCA9PSBudWxsKSByZXR1cm47XG4gIGNoZWNrYm94LmNoZWNrZWQgPSBkZWZhdWx0T247XG59O1xuXG5jb25zdCBjdXN0b21Db250cm9scyA9IChtYXApID0+IHtcbiAgcmV0dXJuIFtcbiAgICB7XG4gICAgICBsYWJlbDogaTE4bi50KCdtYXAubGF5ZXJzLm5ldHdvcmtfbGluZXMnKSxcbiAgICAgIGlkOiAnZWRnZXMtY2hlY2tib3gnLFxuICAgICAgaW5wdXRUeXBlOiAnY2hlY2tib3gnLFxuICAgICAgZGVueUZvcldhOiBbNTE4XSxcbiAgICAgIG9uQ2hhbmdlOiAoaXNDaGVja2VkKSA9PiB0b2dnbGVFZGdlc1Zpc2liaWxpdHkoaXNDaGVja2VkLCBtYXApLFxuICAgIH0sXG5cbiAgICB7XG4gICAgICBsYWJlbDogJ1Nob3cgb25seSBtb25pdG9yZWQgcG9pbnRzJyxcbiAgICAgIGlkOiAnbW9uaXRvcmVkLXBvaW50cy1jaGVja2JveCcsXG4gICAgICBpbnB1dFR5cGU6ICdjaGVja2JveCcsXG4gICAgICBvbkNoYW5nZTogKGlzQ2hlY2tlZCkgPT4gKCkgPT4ge30sXG4gICAgfSxcbiAgXTtcbn07XG5cbmNvbnN0IGFwcGVuZEN1c3RvbUNoZWNrYm94VG9MZWFmbGV0c0xheWVyQm94ID0gKFxuICBsZWFmbGV0c0NvbnRhaW5lcixcbiAgY3VzdG9tQ29udGFpbmVyLFxuKSA9PiB7XG4gIEwuRG9tRXZlbnQub24obGVhZmxldHNDb250YWluZXIsICdtb3VzZW92ZXInLCBmdW5jdGlvbiAoKSB7XG4gICAgY3VzdG9tQ29udGFpbmVyLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snO1xuICB9KTtcblxuICBMLkRvbUV2ZW50Lm9uKGxlYWZsZXRzQ29udGFpbmVyLCAnbW91c2VvdXQnLCBmdW5jdGlvbiAoKSB7XG4gICAgY3VzdG9tQ29udGFpbmVyLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gIH0pO1xufTtcblxuY29uc3QgY3JlYXRlQ3VzdG9tQ29udHJvbCA9IChjb250cm9sLCBjb250YWluZXIpID0+IHtcbiAgbGV0IGNvbnRyb2xDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgY29udHJvbENvbnRhaW5lci5jbGFzc05hbWUgPSAnbGVhZmxldC1jb250cm9sLWxheWVycy1vdmVybGF5cyc7XG4gIGNvbnRyb2xDb250YWluZXIuaW5uZXJIVE1MID0gYFxuICAgICAgPGxhYmVsPlxuICAgICAgICA8aW5wdXQgdHlwZT1cIiR7Y29udHJvbC5pbnB1dFR5cGV9XCIgaWQ9XCIke2NvbnRyb2wuaWR9XCIgLz4gJHtjb250cm9sLmxhYmVsfVxuICAgICAgPC9sYWJlbD5cbiAgICBgO1xuXG4gIGNvbnRyb2xDb250YWluZXJcbiAgICAucXVlcnlTZWxlY3RvcihgIyR7Y29udHJvbC5pZH1gKVxuICAgIC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBmdW5jdGlvbiAoZSkge1xuICAgICAgY29uc3QgaXNDaGVja2VkID0gZS50YXJnZXQuY2hlY2tlZDtcbiAgICAgIGNvbnRyb2wub25DaGFuZ2UoaXNDaGVja2VkKTtcbiAgICB9KTtcblxuICBjb250cm9sQ29udGFpbmVyLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gIGNvbnRhaW5lcj8uYXBwZW5kQ2hpbGQoY29udHJvbENvbnRhaW5lcik7XG5cbiAgYXBwZW5kQ3VzdG9tQ2hlY2tib3hUb0xlYWZsZXRzTGF5ZXJCb3goY29udGFpbmVyLCBjb250cm9sQ29udGFpbmVyKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjdXN0b21GdW5jdGlvbmFsaXR5Rm9yTWFwTGF5ZXJzID0gKFxuICBtYXAsXG4gIG1hcFR5cGVzLFxuICBkZWZhdWx0T24gPSB0cnVlLFxuICB3YUlkLFxuICBmb3JXV1RQRGFzaGJvYXJkLFxuKSA9PiB7XG4gIGxldCBjb250cm9sbGVyID0gTC5jb250cm9sXG4gICAgLmxheWVycyhtYXBUeXBlcywge30sIHsgcG9zaXRpb246ICdib3R0b21yaWdodCcgfSlcbiAgICAuYWRkVG8obWFwKTtcbiAgbGV0IGNvbnRhaW5lciA9IGNvbnRyb2xsZXIuZ2V0Q29udGFpbmVyKCk7XG5cbiAgaWYgKGZvcldXVFBEYXNoYm9hcmQpIHtcbiAgICBjdXN0b21Db250cm9scyhtYXApLmZvckVhY2goKGNvbnRyb2wpID0+IHtcbiAgICAgIGlmIChjb250cm9sLmRlbnlGb3JXYSAmJiBjb250cm9sLmRlbnlGb3JXYS5pbmNsdWRlcyh3YUlkKSkgcmV0dXJuO1xuXG4gICAgICBjcmVhdGVDdXN0b21Db250cm9sKGNvbnRyb2wsIGNvbnRhaW5lcik7XG4gICAgICBlZGdlc1NwZWNpZmljTG9naWMoZGVmYXVsdE9uLCBtYXApO1xuICAgIH0pO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgaW5pdGlhbGl6ZU1hcCA9IChcbiAgbWFwWm9vbUxldmVsLFxuICBtYXBCb3hTdHlsZSxcbiAgbWFwQm94U2F0ZWxsaXRlU3R5bGUsXG4gIG1hcFJlZixcbiAgZGlzcGF0Y2gsXG4gIGlzVmFsaWRBcmVhLFxuICBhcmVhVG9DZW50ZXJCeSxcbiAgc2V0TWFwWm9vbUxldmVsLFxuICBmb3JXV1RQRGFzaGJvYXJkLFxuICBzaG93RWRnZXNCeURlZmF1bHQsXG4gIHdhSWQgPSAwLFxuKSA9PiB7XG4gIC8vIEB0cy1pZ25vcmVcbiAgbWFwUmVmLmN1cnJlbnQgPSBuZXcgTC5NYXAoJ21hcCcsIHtcbiAgICBjZW50ZXI6IFswLCAwXSxcbiAgICB6b29tU25hcDogMSxcbiAgICB6b29tOiBtYXBab29tTGV2ZWwsXG4gICAgYXR0cmlidXRpb25Db250cm9sOiBmYWxzZSxcbiAgICBwcmVmZXJDYW52YXM6IGZhbHNlLFxuICB9KTtcblxuICBpZiAoZm9yV1dUUERhc2hib2FyZCkgZGlzcGF0Y2goc2V0TWFwKG1hcFJlZi5jdXJyZW50KSk7XG5cbiAgbWFwUmVmLmN1cnJlbnQud2hlblJlYWR5KCgpID0+IHtcbiAgICBsZXQgbWFwID0gbWFwUmVmLmN1cnJlbnQ7XG4gICAgY29uc3QgbWFwVHlwZXMgPSBiYXNlTWFwcyhtYXBCb3hTdHlsZSwgbWFwQm94U2F0ZWxsaXRlU3R5bGUpO1xuXG4gICAgY3VzdG9tRnVuY3Rpb25hbGl0eUZvck1hcExheWVycyhcbiAgICAgIG1hcCxcbiAgICAgIG1hcFR5cGVzLFxuICAgICAgc2hvd0VkZ2VzQnlEZWZhdWx0LFxuICAgICAgd2FJZCxcbiAgICAgIGZvcldXVFBEYXNoYm9hcmQsXG4gICAgKTtcblxuICAgIC8vIFRoZSBuYW1lIG9mIHRoZSBsYXllciBjaGFuZ2VzIGJldHdlZW4gbGFuZ3VhZ2VzIHNvIHRoZXJlIHdhcyBhIG5lZWQgdG8gZ2V0IHRvIHRoZSBmaXJzdCBsYXllclxuICAgIE9iamVjdC52YWx1ZXMobWFwVHlwZXMpWzBdLmFkZFRvKG1hcCk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICghbWFwUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0cnkge1xuICAgICAgICBtYXBSZWYuY3VycmVudC5pbnZhbGlkYXRlU2l6ZSh0cnVlKTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdlcnInLCBlcnIpO1xuICAgICAgfVxuXG4gICAgICBkaXNwYXRjaChzdG9yZU1hcChtYXBSZWYuY3VycmVudCkpO1xuICAgICAgZGlzcGF0Y2goc2lkZU5hdkV4cGFuZGVkKHRydWUpKTtcblxuICAgICAgbWFwLm9uKCdrZXlkb3duJywgKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChldmVudC5vcmlnaW5hbEV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgICBtYXAuY2xvc2VQb3B1cCgpO1xuICAgICAgICAgIGRvY3VtZW50LmJvZHkuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSwgMCk7XG4gICAgaWYgKG1hcFJlZi5jdXJyZW50ICYmIGlzVmFsaWRBcmVhKGFyZWFUb0NlbnRlckJ5KSkge1xuICAgICAgbWFwUmVmLmN1cnJlbnQuZml0Qm91bmRzKGFyZWFUb0NlbnRlckJ5KTtcbiAgICB9XG4gIH0pO1xuXG4gIG1hcFJlZi5jdXJyZW50Lm9uKCd6b29tZW5kJywgZnVuY3Rpb24gKGUpIHtcbiAgICBpZiAoIW1hcFJlZi5jdXJyZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCB6b29tID0gbWFwUmVmLmN1cnJlbnQuZ2V0Wm9vbSgpO1xuICAgIHNldE1hcFpvb21MZXZlbCh6b29tKTtcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgY2x1c3Rlckdyb3VwT3B0aW9ucyA9IHtcbiAgc3BpZGVyZnlPbk1heFpvb206IGZhbHNlLFxuICBzaG93Q292ZXJhZ2VPbkhvdmVyOiBmYWxzZSxcbiAgem9vbVRvQm91bmRzT25DbGljazogdHJ1ZSxcbiAgYW5pbWF0ZTogdHJ1ZSxcbiAgZGlzYWJsZUNsdXN0ZXJpbmdBdFpvb206IDEwLFxuICByZW1vdmVPdXRzaWRlVmlzaWJsZUJvdW5kczogZmFsc2UsXG4gIGNodW5rZWRMb2FkaW5nOiB0cnVlLFxuICBpY29uQ3JlYXRlRnVuY3Rpb246IChjbHVzdGVyKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBMLkRpdkljb24oe1xuICAgICAgaHRtbDogYDxkaXY+PHNwYW4+JHtjbHVzdGVyLl9jaGlsZENvdW50fTwvc3Bhbj48L2Rpdj5cbiAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdtYXJrZXItY2x1c3Rlci1uYW1lJz4ke2kxOG4udCgnaW5kdXN0cmllcycpfTwvZGl2PmAsXG4gICAgICBjbGFzc05hbWU6ICdtYXJrZXItY2x1c3RlcicsXG4gICAgICBpY29uU2l6ZTogbmV3IEwuUG9pbnQoNDAsIDQwKSxcbiAgICB9KTtcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCB6b29tTGV2ZWxzID0ge1xuICAxOiAnWExhcmdlJyxcbiAgMjogJ1hMYXJnZScsXG4gIDM6ICdYTGFyZ2UnLFxuICA0OiAnWExhcmdlJyxcbiAgNTogJ1hMYXJnZScsXG4gIDY6ICdYTGFyZ2UnLFxuICA3OiAnTGFyZ2UnLFxuICA4OiAnTGFyZ2UnLFxuICA5OiAnTGFyZ2UnLFxuICAxMDogJ0xhcmdlJyxcbiAgMTE6ICdNTGFyZ2UnLFxuICAxMjogJ01MYXJnZScsXG4gIDEzOiAnTUxhcmdlJyxcbiAgMTQ6ICdNTGFyZ2UnLFxuICAxNTogJ01lZGl1bScsXG4gIDE2OiAnTWVkaXVtJyxcbiAgMTc6ICdTbWFsbCcsXG4gIDE4OiAnU21hbGwnLFxufTtcblxuZXhwb3J0IGNvbnN0IGZpbHRlclBvaW50cyA9IChwb2ludHMsIGhhc0RldmljZSkgPT5cbiAgcG9pbnRzLmZpbHRlcigocG9pbnQpID0+IHBvaW50Lmhhc19kZXZpY2UgPT09IGhhc0RldmljZSk7XG5cbmV4cG9ydCBjb25zdCBmaW5kUG9pbnQgPSAocG9pbnRzLCBwb2ludElkLCBoYXNEZXZpY2VDaGVjaykgPT5cbiAgcG9pbnRzLmZpbmQoKHBvaW50KSA9PiBwb2ludC5pZCA9PT0gcG9pbnRJZCAmJiBoYXNEZXZpY2VDaGVjayhwb2ludCkpO1xuXG5leHBvcnQgY29uc3QgZmlsdGVyRWRnZXMgPSAoZWRnZXMsIHBvaW50cywgaXNNb25pdG9yZWQpID0+XG4gIGVkZ2VzLmZpbHRlcigoZWRnZSkgPT4ge1xuICAgIGNvbnN0IHNvdXJjZVBvaW50ID0gZmluZFBvaW50KHBvaW50cywgZWRnZS5zb3VyY2VfcG9pbnRfaWQsIChwb2ludCkgPT5cbiAgICAgIGlzTW9uaXRvcmVkXG4gICAgICAgID8gcG9pbnQuaGFzX2RldmljZSB8fCBlZGdlLmRlc2NlbmRhbnRzX2hhc19kZXZpY2VcbiAgICAgICAgOiAhcG9pbnQuZGVzY2VuZGFudHNfaGFzX2RldmljZSxcbiAgICApO1xuXG4gICAgY29uc3QgcGFyZW50UG9pbnQgPSBmaW5kUG9pbnQocG9pbnRzLCBlZGdlLnRhcmdldF9wb2ludF9pZCwgKHBvaW50KSA9PlxuICAgICAgaXNNb25pdG9yZWRcbiAgICAgICAgPyBlZGdlLmRlc2NlbmRhbnRzX2hhc19kZXZpY2UgfHwgc291cmNlUG9pbnQgIT09IHVuZGVmaW5lZFxuICAgICAgICA6ICFwb2ludC5kZXNjZW5kYW50c19oYXNfZGV2aWNlLFxuICAgICk7XG5cbiAgICByZXR1cm4gc291cmNlUG9pbnQgJiYgcGFyZW50UG9pbnQ7XG4gIH0pO1xuXG5leHBvcnQgY29uc3Qgc2V0dXBDaGVja2JveExpc3RlbmVyID0gKHNlbGVjdG9yLCBvbkNoYW5nZSkgPT4ge1xuICBjb25zdCBjaGVja2JveCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpO1xuICBpZiAoY2hlY2tib3ggPT09IG51bGwpIHJldHVybjtcbiAgY2hlY2tib3guYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKCkgPT4gb25DaGFuZ2UoY2hlY2tib3guY2hlY2tlZCkpO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxRQUFBLEdBQUFD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
|
|
404
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2FjdGlvbnMiLCJfaTE4biIsIl9XV1RQRGFzaGJvYXJkU2xpY2UiLCJhcmVhRm9jdXNMb2dpYyIsIm1hcFJlZiIsImlzVmFsaWRBcmVhIiwiYXJlYVRvQ2VudGVyQnkiLCJtYXBJbnN0YW5jZSIsImN1cnJlbnQiLCJmaXRCb3VuZHMiLCJwYWRkaW5nIiwiZ3JvdXAiLCJwcm9wZXJ0eSIsIl9sYXllcnMiLCJrYW5kb19vYmplY3QiLCJwdXNoIiwiT2JqZWN0Iiwia2V5cyIsIkwiLCJmZWF0dXJlR3JvdXAiLCJnZXRCb3VuZHMiLCJsZW5ndGgiLCJleHBvcnRzIiwiYXJlYSIsInNob3VsZExvYWRNYXBPYmplY3RzIiwiZ2xvYmFsX2RhdGEiLCJwb2ludHMiLCJlZGdlcyIsIm1hcCIsInVuZGVmaW5lZCIsInNob3VkTG9hZERlcGVuZGVudE1hcE9iamVjdHMiLCJhcmVhcyIsImdsb2JhbCIsImZpbmRTcGVjaWZpY0xheWVyc0Zyb21NYXAiLCJsYXllcnNUb0ZpbmQiLCJjdXJyZW50TGF5ZXIiLCJpbmNsdWRlcyIsImthbmRvX3BvaW50X3R5cGUiLCJldmVudHNDb3VudGVySWNvbnMiLCJsYXllciIsInpvb21MZXZlbCIsImljb24iLCJvcHRpb25zIiwiaWNvblNpemUiLCJldmVudHNDb3VudEljb24iLCJpY29uQW5jaG9yIiwic2V0SWNvbiIsInNldE9wYWNpdHkiLCJtdWx0aXBsZUxheWVyZWRJY29ucyIsImlzQUZld0xheWVySWNvbiIsImthbmRvX2Zld19sYXllcl9pY29uIiwibWluaUljb24iLCJwcmVzZW50Iiwia2FuZG9fc2Vjb25kYXJ5Iiwia2FuZG9fdGhpcmQiLCJzZWNvbmRhcnkiLCJ0aGlyZCIsImthbmRvX2luZGV4X29iamVjdCIsImJ1YmJsZUljb25PcHRpb25zIiwib25lTGF5ZXJJY29uT3B0aW9ucyIsIm1pZGRsZUljb25PcHRpb25zIiwidG9wSWNvbk9wdGlvbnMiLCJpY29uWm9vbUNvbnRyb2wiLCJsYXllcnMiLCJfem9vbSIsIm1hcFN0eWxlIiwibWFwQm94U3R5bGUiLCJ0aWxlTGF5ZXIiLCJjb25jYXQiLCJhdHRyaWJ1dGlvbiIsIm1heFpvb20iLCJtaW5ab29tIiwiaWQiLCJ0aWxlU2l6ZSIsInpvb21PZmZzZXQiLCJ1cGRhdGVXaGVuWm9vbWluZyIsInVwZGF0ZVdoZW5JZGxlIiwiYmFzZU1hcHMiLCJtYXBCb3hTYXRlbGxpdGVTdHlsZSIsIl9yZWYiLCJkZWZhdWx0TWFwIiwiaTE4biIsInQiLCJzYXRlbGxpdGUiLCJfZGVmaW5lUHJvcGVydHkyIiwiZGVmYXVsdCIsInRvZ2dsZUVkZ2VzVmlzaWJpbGl0eSIsInZpc2libGUiLCJlYWNoTGF5ZXIiLCJQb2x5bGluZSIsIlN5bWJvbCIsImFycm93SGVhZCIsInNldFN0eWxlIiwib3BhY2l0eSIsInRvZ2dsZU1vbml0b3JlZFBvaW50c1Zpc2liaWxpdHkiLCJjb25zb2xlIiwid2FybiIsImVkZ2VzU3BlY2lmaWNMb2dpYyIsImRlZmF1bHRPbiIsImNoZWNrYm94IiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwiY2hlY2tlZCIsImN1c3RvbUNvbnRyb2xzIiwibGFiZWwiLCJpbnB1dFR5cGUiLCJkZW55Rm9yV2EiLCJvbkNoYW5nZSIsImlzQ2hlY2tlZCIsImFwcGVuZEN1c3RvbUNoZWNrYm94VG9MZWFmbGV0c0xheWVyQm94IiwibGVhZmxldHNDb250YWluZXIiLCJjdXN0b21Db250YWluZXIiLCJEb21FdmVudCIsIm9uIiwic3R5bGUiLCJkaXNwbGF5IiwiY3JlYXRlQ3VzdG9tQ29udHJvbCIsImNvbnRyb2wiLCJjb250YWluZXIiLCJjb250cm9sQ29udGFpbmVyIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsImlubmVySFRNTCIsImFkZEV2ZW50TGlzdGVuZXIiLCJlIiwidGFyZ2V0IiwiYXBwZW5kQ2hpbGQiLCJjdXN0b21GdW5jdGlvbmFsaXR5Rm9yTWFwTGF5ZXJzIiwibWFwVHlwZXMiLCJhcmd1bWVudHMiLCJ3YUlkIiwiZm9yV1dUUERhc2hib2FyZCIsImNvbnRyb2xsZXIiLCJwb3NpdGlvbiIsImFkZFRvIiwiZ2V0Q29udGFpbmVyIiwiZm9yRWFjaCIsImluaXRpYWxpemVNYXAiLCJtYXBab29tTGV2ZWwiLCJkaXNwYXRjaCIsInNldE1hcFpvb21MZXZlbCIsInNob3dFZGdlc0J5RGVmYXVsdCIsIk1hcCIsImNlbnRlciIsInpvb21TbmFwIiwiem9vbSIsImF0dHJpYnV0aW9uQ29udHJvbCIsInByZWZlckNhbnZhcyIsInNldE1hcCIsIndoZW5SZWFkeSIsInZhbHVlcyIsInNldFRpbWVvdXQiLCJpbnZhbGlkYXRlU2l6ZSIsImVyciIsImVycm9yIiwic3RvcmVNYXAiLCJzaWRlTmF2RXhwYW5kZWQiLCJldmVudCIsIm9yaWdpbmFsRXZlbnQiLCJrZXkiLCJjbG9zZVBvcHVwIiwiYm9keSIsImZvY3VzIiwiZ2V0Wm9vbSIsImNsdXN0ZXJHcm91cE9wdGlvbnMiLCJzcGlkZXJmeU9uTWF4Wm9vbSIsInNob3dDb3ZlcmFnZU9uSG92ZXIiLCJ6b29tVG9Cb3VuZHNPbkNsaWNrIiwiYW5pbWF0ZSIsImRpc2FibGVDbHVzdGVyaW5nQXRab29tIiwicmVtb3ZlT3V0c2lkZVZpc2libGVCb3VuZHMiLCJjaHVua2VkTG9hZGluZyIsImljb25DcmVhdGVGdW5jdGlvbiIsImNsdXN0ZXIiLCJEaXZJY29uIiwiaHRtbCIsIl9jaGlsZENvdW50IiwiUG9pbnQiLCJ6b29tTGV2ZWxzIiwiZmlsdGVyUG9pbnRzIiwiaGFzRGV2aWNlIiwiZmlsdGVyIiwicG9pbnQiLCJoYXNfZGV2aWNlIiwiZmluZFBvaW50IiwicG9pbnRJZCIsImhhc0RldmljZUNoZWNrIiwiZmluZCIsImZpbHRlckVkZ2VzIiwiaXNNb25pdG9yZWQiLCJlZGdlIiwic291cmNlUG9pbnQiLCJzb3VyY2VfcG9pbnRfaWQiLCJkZXNjZW5kYW50c19oYXNfZGV2aWNlIiwicGFyZW50UG9pbnQiLCJ0YXJnZXRfcG9pbnRfaWQiLCJzZXR1cENoZWNrYm94TGlzdGVuZXIiLCJzZWxlY3RvciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9NYXBVdGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTCwgeyBQb2ludFR1cGxlIH0gZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgeyBzaWRlTmF2RXhwYW5kZWQsIHN0b3JlTWFwIH0gZnJvbSAnLi4vLi4vc3RvcmUvZ2xvYmFsL2FjdGlvbnMnO1xuaW1wb3J0IGkxOG4gZnJvbSAnc3JjL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCB7IHNldE1hcCB9IGZyb20gJy4uLy4uL3N0b3JlL1dXVFBEYXNoYm9hcmQvV1dUUERhc2hib2FyZFNsaWNlJztcblxuZXhwb3J0IGNvbnN0IGFyZWFGb2N1c0xvZ2ljID0gKG1hcFJlZiwgaXNWYWxpZEFyZWEsIGFyZWFUb0NlbnRlckJ5KSA9PiB7XG4gIGxldCBtYXBJbnN0YW5jZTogYW55ID0gbWFwUmVmLmN1cnJlbnQ7XG4gIGlmIChpc1ZhbGlkQXJlYShhcmVhVG9DZW50ZXJCeSkpIHtcbiAgICBtYXBJbnN0YW5jZS5maXRCb3VuZHMoYXJlYVRvQ2VudGVyQnksIHsgcGFkZGluZzogWzAsIDBdIH0pO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGdyb3VwOiBhbnlbXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBtYXBJbnN0YW5jZS5fbGF5ZXJzKSB7XG4gICAgICBpZiAoXG4gICAgICAgIG1hcEluc3RhbmNlLl9sYXllcnNbcHJvcGVydHldLmthbmRvX29iamVjdCA9PT0gJ0FyZWEnIHx8XG4gICAgICAgIG1hcEluc3RhbmNlLl9sYXllcnNbcHJvcGVydHldLmthbmRvX29iamVjdCA9PT0gJ1BvaW50J1xuICAgICAgKSB7XG4gICAgICAgIGdyb3VwLnB1c2gobWFwSW5zdGFuY2UuX2xheWVyc1twcm9wZXJ0eV0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChPYmplY3Qua2V5cyhMLmZlYXR1cmVHcm91cChncm91cCkuZ2V0Qm91bmRzKCkpLmxlbmd0aCAhPT0gMCkge1xuICAgICAgbWFwSW5zdGFuY2UuZml0Qm91bmRzKEwuZmVhdHVyZUdyb3VwKGdyb3VwKS5nZXRCb3VuZHMoKSwge1xuICAgICAgICBwYWRkaW5nOiBbMTAwLCAxMDBdLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIC8vIG1hcEluc3RhbmNlLmludmFsaWRhdGVTaXplKHRydWUpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzVmFsaWRBcmVhID0gKGFyZWEpID0+IHtcbiAgcmV0dXJuIGFyZWEgJiYgYXJlYS5sZW5ndGggPiAwICYmIE9iamVjdC5rZXlzKGFyZWFbMF0pLmxlbmd0aCA+IDA7XG59O1xuXG5leHBvcnQgY29uc3Qgc2hvdWxkTG9hZE1hcE9iamVjdHMgPSAoZ2xvYmFsX2RhdGEsIG1hcFJlZiwgcG9pbnRzLCBlZGdlcykgPT4ge1xuICByZXR1cm4gKFxuICAgIGdsb2JhbF9kYXRhLm1hcCAhPT0gdW5kZWZpbmVkICYmXG4gICAgbWFwUmVmLmN1cnJlbnQgIT09IG51bGwgJiZcbiAgICBlZGdlcyAhPT0gdW5kZWZpbmVkICYmXG4gICAgcG9pbnRzICE9PSB1bmRlZmluZWRcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBzaG91ZExvYWREZXBlbmRlbnRNYXBPYmplY3RzID0gKFxuICBlZGdlcyxcbiAgYXJlYXMsXG4gIGdsb2JhbCxcbiAgbWFwUmVmLFxuICBwb2ludHMsXG4pID0+IHtcbiAgcmV0dXJuIChcbiAgICBnbG9iYWwubWFwICE9PSB1bmRlZmluZWQgJiZcbiAgICBtYXBSZWYuY3VycmVudCAhPT0gbnVsbCAmJlxuICAgIC8vIGVkZ2VzLmxlbmd0aCAhPT0gMCAmJlxuICAgIC8vIGFyZWFzLmxlbmd0aCAhPT0gMCAmJlxuICAgIHBvaW50cy5sZW5ndGggIT09IDBcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBmaW5kU3BlY2lmaWNMYXllcnNGcm9tTWFwID0gKFxuICBsYXllcnNUb0ZpbmQ6IHN0cmluZ1tdLFxuICBjdXJyZW50TGF5ZXIsXG4pID0+IHtcbiAgcmV0dXJuIChcbiAgICBsYXllcnNUb0ZpbmQuaW5jbHVkZXMoY3VycmVudExheWVyLmthbmRvX29iamVjdCkgJiZcbiAgICBjdXJyZW50TGF5ZXIua2FuZG9fcG9pbnRfdHlwZSAhPT0gJ01hbmhvbGUnXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgZXZlbnRzQ291bnRlckljb25zID0gKGxheWVyLCB6b29tTGV2ZWwpID0+IHtcbiAgbGV0IGljb24gPSBsYXllci5vcHRpb25zLmljb247XG4gIGljb24ub3B0aW9ucy5pY29uU2l6ZSA9IGV2ZW50c0NvdW50SWNvbih6b29tTGV2ZWwpLmljb25TaXplO1xuICBpY29uLm9wdGlvbnMuaWNvbkFuY2hvciA9IGV2ZW50c0NvdW50SWNvbih6b29tTGV2ZWwpLmljb25BbmNob3I7XG4gIGxheWVyLnNldEljb24oaWNvbik7XG4gIGxheWVyLnNldE9wYWNpdHkoMSk7XG59O1xuXG5leHBvcnQgY29uc3QgbXVsdGlwbGVMYXllcmVkSWNvbnMgPSAobGF5ZXIsIHpvb21MZXZlbCkgPT4ge1xuICBsZXQgaWNvbiA9IGxheWVyLm9wdGlvbnMuaWNvbjtcbiAgbGV0IGlzQUZld0xheWVySWNvbiA9IGxheWVyLmthbmRvX2Zld19sYXllcl9pY29uO1xuICBsZXQgbWluaUljb24gPSB7XG4gICAgcHJlc2VudDogbGF5ZXIua2FuZG9fc2Vjb25kYXJ5IHx8IGxheWVyLmthbmRvX3RoaXJkLFxuICAgIHNlY29uZGFyeTogbGF5ZXIua2FuZG9fc2Vjb25kYXJ5LFxuICAgIHRoaXJkOiBsYXllci5rYW5kb190aGlyZCxcbiAgfTtcblxuICBpZiAobGF5ZXIua2FuZG9faW5kZXhfb2JqZWN0ID09PSAwKSB7XG4gICAgaWYgKGlzQUZld0xheWVySWNvbikge1xuICAgICAgaWNvbi5vcHRpb25zLmljb25TaXplID0gYnViYmxlSWNvbk9wdGlvbnMoem9vbUxldmVsLCBtaW5pSWNvbikuaWNvblNpemU7XG4gICAgICBpY29uLm9wdGlvbnMuaWNvbkFuY2hvciA9IGJ1YmJsZUljb25PcHRpb25zKFxuICAgICAgICB6b29tTGV2ZWwsXG4gICAgICAgIG1pbmlJY29uLFxuICAgICAgKS5pY29uQW5jaG9yO1xuICAgIH0gZWxzZSB7XG4gICAgICBpY29uLm9wdGlvbnMuaWNvblNpemUgPSBvbmVMYXllckljb25PcHRpb25zKHpvb21MZXZlbCkuaWNvblNpemU7XG4gICAgICBpY29uLm9wdGlvbnMuaWNvbkFuY2hvciA9IG9uZUxheWVySWNvbk9wdGlvbnMoem9vbUxldmVsKS5pY29uQW5jaG9yO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAobGF5ZXIua2FuZG9faW5kZXhfb2JqZWN0ID09PSAxKSB7XG4gICAgICBpY29uLm9wdGlvbnMuaWNvblNpemUgPSBtaWRkbGVJY29uT3B0aW9ucyh6b29tTGV2ZWwsIG1pbmlJY29uKS5pY29uU2l6ZTtcbiAgICAgIGljb24ub3B0aW9ucy5pY29uQW5jaG9yID0gbWlkZGxlSWNvbk9wdGlvbnMoXG4gICAgICAgIHpvb21MZXZlbCxcbiAgICAgICAgbWluaUljb24sXG4gICAgICApLmljb25BbmNob3I7XG4gICAgfSBlbHNlIHtcbiAgICAgIGljb24ub3B0aW9ucy5pY29uU2l6ZSA9IHRvcEljb25PcHRpb25zKHpvb21MZXZlbCwgbWluaUljb24pLmljb25TaXplO1xuICAgICAgaWNvbi5vcHRpb25zLmljb25BbmNob3IgPSB0b3BJY29uT3B0aW9ucyh6b29tTGV2ZWwsIG1pbmlJY29uKS5pY29uQW5jaG9yO1xuICAgIH1cbiAgfVxuXG4gIGxheWVyLnNldEljb24oaWNvbik7XG59O1xuXG5jb25zdCBvbmVMYXllckljb25PcHRpb25zID0gKHpvb21MZXZlbCkgPT4ge1xuICByZXR1cm4ge1xuICAgIGljb25TaXplOiBbem9vbUxldmVsICogMy4zLCB6b29tTGV2ZWwgKiAzLjNdIGFzIFBvaW50VHVwbGUsXG4gICAgaWNvbkFuY2hvcjogW3pvb21MZXZlbCAqIDEuNywgem9vbUxldmVsICogMy43XSBhcyBQb2ludFR1cGxlLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGV2ZW50c0NvdW50SWNvbiA9ICh6b29tTGV2ZWwpID0+IHtcbiAgcmV0dXJuIHtcbiAgICBpY29uU2l6ZTogW3pvb21MZXZlbCAqIDIuNSwgem9vbUxldmVsICogMi41XSBhcyBQb2ludFR1cGxlLFxuICAgIGljb25BbmNob3I6IFt6b29tTGV2ZWwgKiAwLCB6b29tTGV2ZWwgKiA0XSBhcyBQb2ludFR1cGxlLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGJ1YmJsZUljb25PcHRpb25zID0gKHpvb21MZXZlbCwgbWluaUljb24pID0+IHtcbiAgaWYgKG1pbmlJY29uLnByZXNlbnQpIHtcbiAgICBpZiAobWluaUljb24uc2Vjb25kYXJ5KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpY29uU2l6ZTogW3pvb21MZXZlbCAqIDEuOTgsIHpvb21MZXZlbCAqIDIuM10gYXMgUG9pbnRUdXBsZSxcbiAgICAgICAgaWNvbkFuY2hvcjogW3pvb21MZXZlbCAqIDAsIHpvb21MZXZlbCAqIDRdIGFzIFBvaW50VHVwbGUsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpY29uU2l6ZTogW3pvb21MZXZlbCAqIDEuOTgsIHpvb21MZXZlbCAqIDIuM10gYXMgUG9pbnRUdXBsZSxcbiAgICAgICAgaWNvbkFuY2hvcjogW3pvb21MZXZlbCAqIDAsIHpvb21MZXZlbCAqIDJdIGFzIFBvaW50VHVwbGUsXG4gICAgICB9O1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWNvblNpemU6IFt6b29tTGV2ZWwgKiAzLjk4LCB6b29tTGV2ZWwgKiA0LjNdIGFzIFBvaW50VHVwbGUsXG4gICAgICBpY29uQW5jaG9yOiBbem9vbUxldmVsICogMiwgem9vbUxldmVsICogNF0gYXMgUG9pbnRUdXBsZSxcbiAgICB9O1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgbWlkZGxlSWNvbk9wdGlvbnMgPSAoem9vbUxldmVsLCBtaW5pSWNvbikgPT4ge1xuICBpZiAobWluaUljb24ucHJlc2VudCkge1xuICAgIGlmIChtaW5pSWNvbi5zZWNvbmRhcnkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGljb25TaXplOiBbem9vbUxldmVsICogMS4xLCB6b29tTGV2ZWwgKiAxLjFdLFxuICAgICAgICBpY29uQW5jaG9yOiBbem9vbUxldmVsICogLTAuNDUsIHpvb21MZXZlbCAqIDMuNV0sXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpY29uU2l6ZTogW3pvb21MZXZlbCAqIDEuMSwgem9vbUxldmVsICogMS4xXSxcbiAgICAgICAgaWNvbkFuY2hvcjogW3pvb21MZXZlbCAqIC0wLjQ1LCB6b29tTGV2ZWwgKiAxLjVdLFxuICAgICAgfTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGljb25TaXplOiBbem9vbUxldmVsICogMi41LCB6b29tTGV2ZWwgKiAyLjVdLFxuICAgICAgaWNvbkFuY2hvcjogW3pvb21MZXZlbCAqIDEuMjk1LCB6b29tTGV2ZWwgKiAzLjM1XSxcbiAgICB9O1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgdG9wSWNvbk9wdGlvbnMgPSAoem9vbUxldmVsLCBtaW5pSWNvbikgPT4ge1xuICBpZiAobWluaUljb24ucHJlc2VudCkge1xuICAgIGlmIChtaW5pSWNvbi5zZWNvbmRhcnkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGljb25TaXplOiBbem9vbUxldmVsICogMC45LCB6b29tTGV2ZWwgKiAxLjhdLFxuICAgICAgICBpY29uQW5jaG9yOiBbem9vbUxldmVsICogLTAuNSwgem9vbUxldmVsICogMy44XSxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGljb25TaXplOiBbem9vbUxldmVsICogMS42LCB6b29tTGV2ZWwgKiAyLjVdLFxuICAgICAgICBpY29uQW5jaG9yOiBbem9vbUxldmVsICogLTAuMiwgem9vbUxldmVsICogMi4xXSxcbiAgICAgIH07XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHJldHVybiB7XG4gICAgICBpY29uU2l6ZTogW3pvb21MZXZlbCAqIDMuOSwgem9vbUxldmVsICogMy44XSxcbiAgICAgIGljb25BbmNob3I6IFt6b29tTGV2ZWwgKiAyLCB6b29tTGV2ZWwgKiAzLjhdLFxuICAgIH07XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBpY29uWm9vbUNvbnRyb2wgPSAobWFwKSA9PiB7XG4gIGxldCBsYXllcnMgPSBtYXAuX2xheWVycztcbiAgbGV0IHpvb21MZXZlbCA9IG1hcC5fem9vbTtcblxuICBmb3IgKGNvbnN0IHByb3BlcnR5IGluIGxheWVycykge1xuICAgIGlmIChmaW5kU3BlY2lmaWNMYXllcnNGcm9tTWFwKFsnSWNvbk51bWJlciddLCBsYXllcnNbcHJvcGVydHldKSkge1xuICAgICAgZXZlbnRzQ291bnRlckljb25zKGxheWVyc1twcm9wZXJ0eV0sIHpvb21MZXZlbCk7XG4gICAgfVxuXG4gICAgaWYgKGZpbmRTcGVjaWZpY0xheWVyc0Zyb21NYXAoWydQb2ludCcsICdJY29uJ10sIGxheWVyc1twcm9wZXJ0eV0pKSB7XG4gICAgICBtdWx0aXBsZUxheWVyZWRJY29ucyhsYXllcnNbcHJvcGVydHldLCB6b29tTGV2ZWwpO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIGZpbmRTcGVjaWZpY0xheWVyc0Zyb21NYXAoWydTYW1wbGluZycsICdPYnNlcnZhdGlvbiddLCBsYXllcnNbcHJvcGVydHldKVxuICAgICkge1xuICAgICAgbXVsdGlwbGVMYXllcmVkSWNvbnMobGF5ZXJzW3Byb3BlcnR5XSwgem9vbUxldmVsKTtcbiAgICB9XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBtYXBTdHlsZSA9IChtYXBCb3hTdHlsZSkgPT4ge1xuICByZXR1cm4gTC50aWxlTGF5ZXIoXG4gICAgYGh0dHBzOi8vYXBpLm1hcGJveC5jb20vc3R5bGVzL3YxL25hZGF2LWthbmRvLyR7bWFwQm94U3R5bGV9L3RpbGVzLzI1Ni97en0ve3h9L3t5fUAyeD9hY2Nlc3NfdG9rZW49cGsuZXlKMUlqb2libUZrWVhZdGEyRnVaRzhpTENKaElqb2lZMnB2ZUhwcmRHUnhNSGxtZERONGJEZzBkekp4T1hjNGRTSjkuSi0yb2hxN2o0eUtOYm00Tl8tUDZxd2AsXG4gICAge1xuICAgICAgYXR0cmlidXRpb246XG4gICAgICAgICdNYXAgZGF0YSAmY29weTsgPGEgaHJlZj1cImh0dHBzOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnL1wiPk9wZW5TdHJlZXRNYXA8L2E+IGNvbnRyaWJ1dG9ycywgPGEgaHJlZj1cImh0dHBzOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS1zYS8yLjAvXCI+Q0MtQlktU0E8L2E+LCBJbWFnZXJ5IMKpIDxhIGhyZWY9XCJodHRwczovL3d3dy5tYXBib3guY29tL1wiPk1hcGJveDwvYT4nLFxuICAgICAgbWF4Wm9vbTogMTgsXG4gICAgICBtaW5ab29tOiAyLFxuICAgICAgaWQ6ICdtYXBib3gvc3RyZWV0cy12MTEnLFxuICAgICAgdGlsZVNpemU6IDUxMixcbiAgICAgIHpvb21PZmZzZXQ6IC0xLFxuICAgICAgdXBkYXRlV2hlblpvb21pbmc6IGZhbHNlLFxuICAgICAgdXBkYXRlV2hlbklkbGU6IGZhbHNlLFxuICAgIH0sXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgYmFzZU1hcHMgPSAobWFwQm94U3R5bGUsIG1hcEJveFNhdGVsbGl0ZVN0eWxlKSA9PiB7XG4gIGxldCBkZWZhdWx0TWFwID0gaTE4bi50KCdtYXAubGF5ZXJzLmRlZmF1bHQnKTtcbiAgbGV0IHNhdGVsbGl0ZSA9IGkxOG4udCgnbWFwLmxheWVycy5zYXRlbGxpdGUnKTtcbiAgcmV0dXJuIHtcbiAgICBbZGVmYXVsdE1hcF06IG1hcFN0eWxlKG1hcEJveFN0eWxlKSxcbiAgICBbc2F0ZWxsaXRlXTogbWFwU3R5bGUobWFwQm94U2F0ZWxsaXRlU3R5bGUpLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHRvZ2dsZUVkZ2VzVmlzaWJpbGl0eSA9ICh2aXNpYmxlLCBtYXApID0+IHtcbiAgbWFwLmVhY2hMYXllcigobGF5ZXIpID0+IHtcbiAgICBpZiAoXG4gICAgICAobGF5ZXIgaW5zdGFuY2VvZiBMLlBvbHlsaW5lICYmIGxheWVyLmthbmRvX29iamVjdCAhPT0gJ0FyZWEnKSB8fFxuICAgICAgbGF5ZXIgaW5zdGFuY2VvZiBMLlN5bWJvbC5hcnJvd0hlYWRcbiAgICApIHtcbiAgICAgIGxheWVyLnNldFN0eWxlKHsgb3BhY2l0eTogdmlzaWJsZSA/IDEgOiAwIH0pO1xuICAgIH1cbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgdG9nZ2xlTW9uaXRvcmVkUG9pbnRzVmlzaWJpbGl0eSA9ICh2aXNpYmxlKSA9PiB7XG4gIGNvbnNvbGUud2FybigndG9nZ2xlTW9uaXRvcmVkUG9pbnRzVmlzaWJpbGl0eScsIHZpc2libGUpO1xufTtcblxuZXhwb3J0IGNvbnN0IGVkZ2VzU3BlY2lmaWNMb2dpYyA9IChkZWZhdWx0T24sIG1hcCkgPT4ge1xuICBsZXQgY2hlY2tib3ggPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjZWRnZXMtY2hlY2tib3gnKTtcbiAgY2hlY2tib3guY2hlY2tlZCA9IGRlZmF1bHRPbjtcbn07XG5cbmNvbnN0IGN1c3RvbUNvbnRyb2xzID0gKG1hcCkgPT4ge1xuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIGxhYmVsOiBpMThuLnQoJ21hcC5sYXllcnMubmV0d29ya19saW5lcycpLFxuICAgICAgaWQ6ICdlZGdlcy1jaGVja2JveCcsXG4gICAgICBpbnB1dFR5cGU6ICdjaGVja2JveCcsXG4gICAgICBkZW55Rm9yV2E6IFs1MThdLFxuICAgICAgb25DaGFuZ2U6IChpc0NoZWNrZWQpID0+IHRvZ2dsZUVkZ2VzVmlzaWJpbGl0eShpc0NoZWNrZWQsIG1hcCksXG4gICAgfSxcblxuICAgIHtcbiAgICAgIGxhYmVsOiAnU2hvdyBvbmx5IG1vbml0b3JlZCBwb2ludHMnLFxuICAgICAgaWQ6ICdtb25pdG9yZWQtcG9pbnRzLWNoZWNrYm94JyxcbiAgICAgIGlucHV0VHlwZTogJ2NoZWNrYm94JyxcbiAgICAgIG9uQ2hhbmdlOiAoaXNDaGVja2VkKSA9PiB0b2dnbGVNb25pdG9yZWRQb2ludHNWaXNpYmlsaXR5KGlzQ2hlY2tlZCksXG4gICAgfSxcblxuICAgIC8vIHtcbiAgICAvLyAgIGxhYmVsOiAnQW5vdGhlciBjdXN0b20gZmVhdHVyZScsXG4gICAgLy8gICBpZDogJ2N1c3RvbS1mZWF0dXJlLWNoZWNrYm94JyxcbiAgICAvLyAgIGlucHV0VHlwZTogJ2NoZWNrYm94JyxcbiAgICAvLyAgIG9uQ2hhbmdlOiAoaXNDaGVja2VkKSA9PiBjb25zb2xlLmxvZyhgQW5vdGhlciBmZWF0dXJlIGlzIG5vdyAke2lzQ2hlY2tlZCA/ICdlbmFibGVkJyA6ICdkaXNhYmxlZCd9YCksXG4gICAgLy8gfSxcbiAgXTtcbn07XG5cbmNvbnN0IGFwcGVuZEN1c3RvbUNoZWNrYm94VG9MZWFmbGV0c0xheWVyQm94ID0gKFxuICBsZWFmbGV0c0NvbnRhaW5lcixcbiAgY3VzdG9tQ29udGFpbmVyLFxuKSA9PiB7XG4gIEwuRG9tRXZlbnQub24obGVhZmxldHNDb250YWluZXIsICdtb3VzZW92ZXInLCBmdW5jdGlvbiAoKSB7XG4gICAgY3VzdG9tQ29udGFpbmVyLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snO1xuICB9KTtcblxuICBMLkRvbUV2ZW50Lm9uKGxlYWZsZXRzQ29udGFpbmVyLCAnbW91c2VvdXQnLCBmdW5jdGlvbiAoKSB7XG4gICAgY3VzdG9tQ29udGFpbmVyLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gIH0pO1xufTtcblxuY29uc3QgY3JlYXRlQ3VzdG9tQ29udHJvbCA9IChjb250cm9sLCBjb250YWluZXIpID0+IHtcbiAgbGV0IGNvbnRyb2xDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgY29udHJvbENvbnRhaW5lci5jbGFzc05hbWUgPSAnbGVhZmxldC1jb250cm9sLWxheWVycy1vdmVybGF5cyc7XG4gIGNvbnRyb2xDb250YWluZXIuaW5uZXJIVE1MID0gYFxuICAgICAgPGxhYmVsPlxuICAgICAgICA8aW5wdXQgdHlwZT1cIiR7Y29udHJvbC5pbnB1dFR5cGV9XCIgaWQ9XCIke2NvbnRyb2wuaWR9XCIgLz4gJHtjb250cm9sLmxhYmVsfVxuICAgICAgPC9sYWJlbD5cbiAgICBgO1xuXG4gIGNvbnRyb2xDb250YWluZXJcbiAgICAucXVlcnlTZWxlY3RvcihgIyR7Y29udHJvbC5pZH1gKVxuICAgIC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBmdW5jdGlvbiAoZSkge1xuICAgICAgY29uc3QgaXNDaGVja2VkID0gZS50YXJnZXQuY2hlY2tlZDtcbiAgICAgIGNvbnRyb2wub25DaGFuZ2UoaXNDaGVja2VkKTtcbiAgICB9KTtcblxuICBjb250cm9sQ29udGFpbmVyLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gIGNvbnRhaW5lcj8uYXBwZW5kQ2hpbGQoY29udHJvbENvbnRhaW5lcik7XG5cbiAgYXBwZW5kQ3VzdG9tQ2hlY2tib3hUb0xlYWZsZXRzTGF5ZXJCb3goY29udGFpbmVyLCBjb250cm9sQ29udGFpbmVyKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjdXN0b21GdW5jdGlvbmFsaXR5Rm9yTWFwTGF5ZXJzID0gKFxuICBtYXAsXG4gIG1hcFR5cGVzLFxuICBkZWZhdWx0T24gPSB0cnVlLFxuICB3YUlkLFxuICBmb3JXV1RQRGFzaGJvYXJkLFxuKSA9PiB7XG4gIGxldCBjb250cm9sbGVyID0gTC5jb250cm9sXG4gICAgLmxheWVycyhtYXBUeXBlcywge30sIHsgcG9zaXRpb246ICdib3R0b21yaWdodCcgfSlcbiAgICAuYWRkVG8obWFwKTtcbiAgbGV0IGNvbnRhaW5lciA9IGNvbnRyb2xsZXIuZ2V0Q29udGFpbmVyKCk7XG5cbiAgaWYgKGZvcldXVFBEYXNoYm9hcmQpIHtcbiAgICBjdXN0b21Db250cm9scyhtYXApLmZvckVhY2goKGNvbnRyb2wpID0+IHtcbiAgICAgIGlmIChjb250cm9sLmRlbnlGb3JXYSAmJiBjb250cm9sLmRlbnlGb3JXYS5pbmNsdWRlcyh3YUlkKSkgcmV0dXJuO1xuXG4gICAgICBjcmVhdGVDdXN0b21Db250cm9sKGNvbnRyb2wsIGNvbnRhaW5lcik7XG4gICAgICBlZGdlc1NwZWNpZmljTG9naWMoZGVmYXVsdE9uLCBtYXApO1xuICAgIH0pO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgaW5pdGlhbGl6ZU1hcCA9IChcbiAgbWFwWm9vbUxldmVsLFxuICBtYXBCb3hTdHlsZSxcbiAgbWFwQm94U2F0ZWxsaXRlU3R5bGUsXG4gIG1hcFJlZixcbiAgZGlzcGF0Y2gsXG4gIGlzVmFsaWRBcmVhLFxuICBhcmVhVG9DZW50ZXJCeSxcbiAgc2V0TWFwWm9vbUxldmVsLFxuICBmb3JXV1RQRGFzaGJvYXJkLFxuICBzaG93RWRnZXNCeURlZmF1bHQsXG4gIHdhSWQgPSAwLFxuKSA9PiB7XG4gIC8vIEB0cy1pZ25vcmVcbiAgbWFwUmVmLmN1cnJlbnQgPSBuZXcgTC5NYXAoJ21hcCcsIHtcbiAgICBjZW50ZXI6IFswLCAwXSxcbiAgICB6b29tU25hcDogMSxcbiAgICB6b29tOiBtYXBab29tTGV2ZWwsXG4gICAgYXR0cmlidXRpb25Db250cm9sOiBmYWxzZSxcbiAgICBwcmVmZXJDYW52YXM6IGZhbHNlLFxuICB9KTtcblxuICBpZiAoZm9yV1dUUERhc2hib2FyZCkgZGlzcGF0Y2goc2V0TWFwKG1hcFJlZi5jdXJyZW50KSk7XG5cbiAgbWFwUmVmLmN1cnJlbnQud2hlblJlYWR5KCgpID0+IHtcbiAgICBsZXQgbWFwID0gbWFwUmVmLmN1cnJlbnQ7XG4gICAgY29uc3QgbWFwVHlwZXMgPSBiYXNlTWFwcyhtYXBCb3hTdHlsZSwgbWFwQm94U2F0ZWxsaXRlU3R5bGUpO1xuXG4gICAgY3VzdG9tRnVuY3Rpb25hbGl0eUZvck1hcExheWVycyhcbiAgICAgIG1hcCxcbiAgICAgIG1hcFR5cGVzLFxuICAgICAgc2hvd0VkZ2VzQnlEZWZhdWx0LFxuICAgICAgd2FJZCxcbiAgICAgIGZvcldXVFBEYXNoYm9hcmQsXG4gICAgKTtcblxuICAgIC8vIFRoZSBuYW1lIG9mIHRoZSBsYXllciBjaGFuZ2VzIGJldHdlZW4gbGFuZ3VhZ2VzIHNvIHRoZXJlIHdhcyBhIG5lZWQgdG8gZ2V0IHRvIHRoZSBmaXJzdCBsYXllclxuICAgIE9iamVjdC52YWx1ZXMobWFwVHlwZXMpWzBdLmFkZFRvKG1hcCk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICghbWFwUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0cnkge1xuICAgICAgICBtYXBSZWYuY3VycmVudC5pbnZhbGlkYXRlU2l6ZSh0cnVlKTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdlcnInLCBlcnIpO1xuICAgICAgfVxuXG4gICAgICBkaXNwYXRjaChzdG9yZU1hcChtYXBSZWYuY3VycmVudCkpO1xuICAgICAgZGlzcGF0Y2goc2lkZU5hdkV4cGFuZGVkKHRydWUpKTtcblxuICAgICAgbWFwLm9uKCdrZXlkb3duJywgKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChldmVudC5vcmlnaW5hbEV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgICBtYXAuY2xvc2VQb3B1cCgpO1xuICAgICAgICAgIGRvY3VtZW50LmJvZHkuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSwgMCk7XG4gICAgaWYgKG1hcFJlZi5jdXJyZW50ICYmIGlzVmFsaWRBcmVhKGFyZWFUb0NlbnRlckJ5KSkge1xuICAgICAgbWFwUmVmLmN1cnJlbnQuZml0Qm91bmRzKGFyZWFUb0NlbnRlckJ5KTtcbiAgICB9XG4gIH0pO1xuXG4gIG1hcFJlZi5jdXJyZW50Lm9uKCd6b29tZW5kJywgZnVuY3Rpb24gKGUpIHtcbiAgICBpZiAoIW1hcFJlZi5jdXJyZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCB6b29tID0gbWFwUmVmLmN1cnJlbnQuZ2V0Wm9vbSgpO1xuICAgIHNldE1hcFpvb21MZXZlbCh6b29tKTtcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgY2x1c3Rlckdyb3VwT3B0aW9ucyA9IHtcbiAgc3BpZGVyZnlPbk1heFpvb206IGZhbHNlLFxuICBzaG93Q292ZXJhZ2VPbkhvdmVyOiBmYWxzZSxcbiAgem9vbVRvQm91bmRzT25DbGljazogdHJ1ZSxcbiAgYW5pbWF0ZTogdHJ1ZSxcbiAgZGlzYWJsZUNsdXN0ZXJpbmdBdFpvb206IDE1LFxuICByZW1vdmVPdXRzaWRlVmlzaWJsZUJvdW5kczogZmFsc2UsXG4gIGNodW5rZWRMb2FkaW5nOiB0cnVlLFxuICBpY29uQ3JlYXRlRnVuY3Rpb246IChjbHVzdGVyKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBMLkRpdkljb24oe1xuICAgICAgaHRtbDogYDxkaXY+PHNwYW4+JHtjbHVzdGVyLl9jaGlsZENvdW50fTwvc3Bhbj48L2Rpdj5cbiAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdtYXJrZXItY2x1c3Rlci1uYW1lJz4ke2kxOG4udCgnaW5kdXN0cmllcycpfTwvZGl2PmAsXG4gICAgICBjbGFzc05hbWU6ICdtYXJrZXItY2x1c3RlcicsXG4gICAgICBpY29uU2l6ZTogbmV3IEwuUG9pbnQoNDAsIDQwKSxcbiAgICB9KTtcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCB6b29tTGV2ZWxzID0ge1xuICAxOiAnWExhcmdlJyxcbiAgMjogJ1hMYXJnZScsXG4gIDM6ICdYTGFyZ2UnLFxuICA0OiAnWExhcmdlJyxcbiAgNTogJ1hMYXJnZScsXG4gIDY6ICdYTGFyZ2UnLFxuICA3OiAnTGFyZ2UnLFxuICA4OiAnTGFyZ2UnLFxuICA5OiAnTGFyZ2UnLFxuICAxMDogJ0xhcmdlJyxcbiAgMTE6ICdNTGFyZ2UnLFxuICAxMjogJ01MYXJnZScsXG4gIDEzOiAnTUxhcmdlJyxcbiAgMTQ6ICdNTGFyZ2UnLFxuICAxNTogJ01lZGl1bScsXG4gIDE2OiAnTWVkaXVtJyxcbiAgMTc6ICdTbWFsbCcsXG4gIDE4OiAnU21hbGwnLFxufTtcblxuZXhwb3J0IGNvbnN0IGZpbHRlclBvaW50cyA9IChwb2ludHMsIGhhc0RldmljZSkgPT5cbiAgcG9pbnRzLmZpbHRlcigocG9pbnQpID0+IHBvaW50Lmhhc19kZXZpY2UgPT09IGhhc0RldmljZSk7XG5cbmV4cG9ydCBjb25zdCBmaW5kUG9pbnQgPSAocG9pbnRzLCBwb2ludElkLCBoYXNEZXZpY2VDaGVjaykgPT5cbiAgcG9pbnRzLmZpbmQoKHBvaW50KSA9PiBwb2ludC5pZCA9PT0gcG9pbnRJZCAmJiBoYXNEZXZpY2VDaGVjayhwb2ludCkpO1xuXG5leHBvcnQgY29uc3QgZmlsdGVyRWRnZXMgPSAoZWRnZXMsIHBvaW50cywgaXNNb25pdG9yZWQpID0+XG4gIGVkZ2VzLmZpbHRlcigoZWRnZSkgPT4ge1xuICAgIGNvbnN0IHNvdXJjZVBvaW50ID0gZmluZFBvaW50KHBvaW50cywgZWRnZS5zb3VyY2VfcG9pbnRfaWQsIChwb2ludCkgPT5cbiAgICAgIGlzTW9uaXRvcmVkXG4gICAgICAgID8gcG9pbnQuaGFzX2RldmljZSB8fCBlZGdlLmRlc2NlbmRhbnRzX2hhc19kZXZpY2VcbiAgICAgICAgOiAhcG9pbnQuZGVzY2VuZGFudHNfaGFzX2RldmljZSxcbiAgICApO1xuXG4gICAgY29uc3QgcGFyZW50UG9pbnQgPSBmaW5kUG9pbnQocG9pbnRzLCBlZGdlLnRhcmdldF9wb2ludF9pZCwgKHBvaW50KSA9PlxuICAgICAgaXNNb25pdG9yZWRcbiAgICAgICAgPyBlZGdlLmRlc2NlbmRhbnRzX2hhc19kZXZpY2UgfHwgc291cmNlUG9pbnQgIT09IHVuZGVmaW5lZFxuICAgICAgICA6ICFwb2ludC5kZXNjZW5kYW50c19oYXNfZGV2aWNlLFxuICAgICk7XG5cbiAgICByZXR1cm4gc291cmNlUG9pbnQgJiYgcGFyZW50UG9pbnQ7XG4gIH0pO1xuXG5leHBvcnQgY29uc3Qgc2V0dXBDaGVja2JveExpc3RlbmVyID0gKHNlbGVjdG9yLCBvbkNoYW5nZSkgPT4ge1xuICBjb25zdCBjaGVja2JveCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpO1xuICBpZiAoY2hlY2tib3ggPT09IG51bGwpIHJldHVybjtcbiAgY2hlY2tib3guYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKCkgPT4gb25DaGFuZ2UoY2hlY2tib3guY2hlY2tlZCkpO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxRQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxRQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxLQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxtQkFBQSxHQUFBSCxPQUFBO0FBRU8sSUFBTUksY0FBYyxHQUFHLFNBQWpCQSxjQUFjQSxDQUFJQyxNQUFNLEVBQUVDLFdBQVcsRUFBRUMsY0FBYyxFQUFLO0VBQ3JFLElBQUlDLFdBQWdCLEdBQUdILE1BQU0sQ0FBQ0ksT0FBTztFQUNyQyxJQUFJSCxXQUFXLENBQUNDLGNBQWMsQ0FBQyxFQUFFO0lBQy9CQyxXQUFXLENBQUNFLFNBQVMsQ0FBQ0gsY0FBYyxFQUFFO01BQUVJLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQUUsQ0FBQyxDQUFDO0VBQzVELENBQUMsTUFBTTtJQUNMLElBQU1DLEtBQVksR0FBRyxFQUFFO0lBRXZCLEtBQUssSUFBTUMsUUFBUSxJQUFJTCxXQUFXLENBQUNNLE9BQU8sRUFBRTtNQUMxQyxJQUNFTixXQUFXLENBQUNNLE9BQU8sQ0FBQ0QsUUFBUSxDQUFDLENBQUNFLFlBQVksS0FBSyxNQUFNLElBQ3JEUCxXQUFXLENBQUNNLE9BQU8sQ0FBQ0QsUUFBUSxDQUFDLENBQUNFLFlBQVksS0FBSyxPQUFPLEVBQ3REO1FBQ0FILEtBQUssQ0FBQ0ksSUFBSSxDQUFDUixXQUFXLENBQUNNLE9B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
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = void 0;
|
|
9
8
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
10
9
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator"));
|
|
11
|
-
var _react =
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
12
11
|
var _reactRedux = require("react-redux");
|
|
13
12
|
var _AreaUtils = require("./AreaUtils");
|
|
14
13
|
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
@@ -17,8 +16,6 @@ var _utils = require("pages/DashboardMap/utils");
|
|
|
17
16
|
var _scoreToData = require("utilities/scoreToData");
|
|
18
17
|
var _Capacity = require("pages/DashboardMap/Capacity");
|
|
19
18
|
var _reactRouterDom = require("react-router-dom");
|
|
20
|
-
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); }
|
|
21
|
-
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; }
|
|
22
19
|
var AreaPolygon = function AreaPolygon(props) {
|
|
23
20
|
var map = props.map,
|
|
24
21
|
area = props.area,
|
|
@@ -102,32 +99,36 @@ var AreaPolygon = function AreaPolygon(props) {
|
|
|
102
99
|
};
|
|
103
100
|
var isPolygonChangedColor = function isPolygonChangedColor(polygon, area) {
|
|
104
101
|
if (!polygon) return true;
|
|
105
|
-
var areaColor = (0, _scoreToData.
|
|
102
|
+
var areaColor = (0, _scoreToData.scoreToColor)(area.area_score);
|
|
106
103
|
var polygonColor = polygon.options.color;
|
|
107
104
|
return areaColor !== polygonColor;
|
|
108
105
|
};
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
106
|
+
|
|
107
|
+
// The following removes the existing layer and redraw it after.
|
|
108
|
+
// This is necessary so the featureGroup will hold only one polygon per area otherwise they are piling up.
|
|
109
|
+
// We replace them because the area's color might have changed.
|
|
110
|
+
// This creates a flickering effect on the map which is not ideal
|
|
111
|
+
// but it's the best solution we have for now and we might need to refactor this in the future.
|
|
112
|
+
var area_id = (0, _AreaUtils.getAreaId)(area);
|
|
113
|
+
var existingPolygon = getPolygon(area_id);
|
|
114
|
+
if (isPolygonChangedColor(existingPolygon, area)) {
|
|
115
|
+
var polygon = (0, _AreaUtils.createPolygon)(area, mapZoom, featureGroup, map, WWTPMapLogic);
|
|
116
|
+
if (polygon) {
|
|
117
|
+
var subAreas = area.sub_areas.map(function (subArea) {
|
|
118
|
+
return subArea.area_id;
|
|
119
|
+
});
|
|
120
|
+
if (subAreas.length > 0) {
|
|
121
|
+
polygon['sub_areas'] = subAreas;
|
|
125
122
|
}
|
|
126
123
|
}
|
|
127
|
-
|
|
124
|
+
if (existingPolygon && featureGroup && map) {
|
|
125
|
+
featureGroup.removeLayer(existingPolygon);
|
|
126
|
+
map.fire('zoomend');
|
|
127
|
+
}
|
|
128
|
+
}
|
|
128
129
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
|
|
129
130
|
};
|
|
130
131
|
var connector = (0, _reactRedux.connect)(null);
|
|
131
132
|
var _default = connector(AreaPolygon);
|
|
132
133
|
exports.default = _default;
|
|
133
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RSZWR1eCIsIl9BcmVhVXRpbHMiLCJfcmVhY3REb20iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1dpZGdldCIsIl91dGlscyIsIl9zY29yZVRvRGF0YSIsIl9DYXBhY2l0eSIsIl9yZWFjdFJvdXRlckRvbSIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiQXJlYVBvbHlnb24iLCJwcm9wcyIsIm1hcCIsImFyZWEiLCJtYXBab29tIiwiZ2xvYmFsX2RhdGEiLCJmZWF0dXJlR3JvdXAiLCJwb2ludHMiLCJ1c2VTZWxlY3RvciIsInN0YXRlIiwicG9pbnRzX2RhdGEiLCJpdGVtcyIsImFyZWFzIiwiYXJlYXNfZGF0YSIsIldXVFBNb2RlIiwid3d0cF9kYXNoYm9hcmQiLCJjYXBhY2l0eSIsIndhdGVyQXV0aG9yaXR5SXNDYXBhY2l0eSIsImRpc3BhdGNoIiwidXNlRGlzcGF0Y2giLCJoaXN0b3J5IiwidXNlSGlzdG9yeSIsIldXVFBNYXBMb2dpYyIsInBvbHlnb24iLCJmZXRjaERhdGFBbmRTaG93UG9wdXAiLCJfcmVmIiwiX2FzeW5jVG9HZW5lcmF0b3IyIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJ3aWRnZXRDb250YWluZXIiLCJ0eXBlIiwid3JhcCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImNyZWF0ZVBvcHVwRm9yT2JqZWN0IiwicmVuZGVyZWRFbGVtZW50IiwibWFya2VyIiwiaXNfdmlydHVhbCIsImZldGNoQ2FwYWNpdHkiLCJhcmVhX2lkIiwid2F0ZXJBdXRob3JpdHlJZCIsInRoZW4iLCJsaXN0RGF0YSIsIlJlYWN0RE9NIiwicmVuZGVyIiwiV2lkZ2V0Iiwib2JqZWN0IiwiaXNQb3B1cE9wZW4iLCJvcGVuUG9wdXAiLCJzdG9wIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJvbiIsImNsb3NlUG9wdXAiLCJvcGVuVG9vbHRpcCIsInN1YmplY3QiLCJzZW5kQW5hbHl0aWNzRXZlbnQiLCJhcmVhX25hbWUiLCJnZXRQb2x5Z29uIiwiaWQiLCJlYWNoTGF5ZXIiLCJsYXllciIsImthbmRvX29iamVjdF9pZCIsImlzUG9seWdvbkNoYW5nZWRDb2xvciIsImFyZWFDb2xvciIsIm9iamVjdFRvQ29sb3IiLCJwb2x5Z29uQ29sb3IiLCJvcHRpb25zIiwiY29sb3IiLCJ1c2VFZmZlY3QiLCJnZXRBcmVhSWQiLCJleGlzdGluZ1BvbHlnb24iLCJjcmVhdGVQb2x5Z29uIiwic3ViQXJlYXMiLCJzdWJfYXJlYXMiLCJzdWJBcmVhIiwibGVuZ3RoIiwicmVtb3ZlTGF5ZXIiLCJmaXJlIiwiRnJhZ21lbnQiLCJjb25uZWN0b3IiLCJjb25uZWN0IiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL1dpZGdldHMvTWFwL2FyZWFzL0FyZWFQb2x5Z29uLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY29ubmVjdCwgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgSUFyZWEgfSBmcm9tICdzcmMvc3RvcmUvYXJlYXMvbW9kZWxzL0lBcmVhJztcbmltcG9ydCB7IGNyZWF0ZVBvbHlnb24gfSBmcm9tICcuL0FyZWFVdGlscyc7XG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCB7IFdpZGdldCB9IGZyb20gJ3NyYy9wYWdlcy9EYXNoYm9hcmRNYXAvV2lkZ2V0JztcbmltcG9ydCB7XG4gIGNyZWF0ZVBvcHVwRm9yT2JqZWN0LFxuICBzZW5kQW5hbHl0aWNzRXZlbnQsXG59IGZyb20gJ3NyYy9wYWdlcy9EYXNoYm9hcmRNYXAvdXRpbHMnO1xuaW1wb3J0IHsgRmVhdHVyZUdyb3VwIH0gZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgeyBvYmplY3RUb0NvbG9yIH0gZnJvbSAnc3JjL3V0aWxpdGllcy9zY29yZVRvRGF0YSc7XG5pbXBvcnQgeyBmZXRjaENhcGFjaXR5IH0gZnJvbSAnc3JjL3BhZ2VzL0Rhc2hib2FyZE1hcC9DYXBhY2l0eSc7XG5pbXBvcnQgeyB1c2VIaXN0b3J5IH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgeyBnZXRBcmVhSWQgfSBmcm9tICcuL0FyZWFVdGlscyc7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIG1hcDogYW55O1xuICBMOiBhbnk7XG4gIGFyZWE6IElBcmVhICYgeyBjb2xvcj86IHN0cmluZzsgc2hvd0NvbG9yT25seUluQm9yZGVycz86IGJvb2xlYW4gfTtcbiAgbWFwWm9vbTogbnVtYmVyO1xuICBnbG9iYWxfZGF0YTogYW55O1xuICBiaW5kUG9wdXA/OiBib29sZWFuO1xuICBmZWF0dXJlR3JvdXA6IEZlYXR1cmVHcm91cDtcbn07XG5cbmNvbnN0IEFyZWFQb2x5Z29uOiBSZWFjdC5GQzxQcm9wcz4gPSAocHJvcHMpID0+IHtcbiAgY29uc3QgeyBtYXAsIGFyZWEsIG1hcFpvb20sIGdsb2JhbF9kYXRhLCBmZWF0dXJlR3JvdXAgfSA9IHByb3BzO1xuICBjb25zdCBwb2ludHMgPSB1c2VTZWxlY3Rvcigoc3RhdGUpID0+IHN0YXRlLnBvaW50c19kYXRhLml0ZW1zKTtcbiAgY29uc3QgYXJlYXMgPSB1c2VTZWxlY3Rvcigoc3RhdGUpID0+IHN0YXRlLmFyZWFzX2RhdGEuaXRlbXMpO1xuICBjb25zdCBXV1RQTW9kZSA9IHVzZVNlbGVjdG9yKChzdGF0ZSkgPT4gc3RhdGUud3d0cF9kYXNoYm9hcmQubWFwICE9PSBudWxsKTtcbiAgY29uc3QgY2FwYWNpdHkgPSBnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlzQ2FwYWNpdHk7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgaGlzdG9yeSA9IHVzZUhpc3RvcnkoKTtcblxuICBjb25zdCBXV1RQTWFwTG9naWMgPSAocG9seWdvbiwgYXJlYSkgPT4ge1xuICAgIGlmICghV1dUUE1vZGUgfHwgIWNhcGFjaXR5KSByZXR1cm47XG5cbiAgICBjb25zdCBmZXRjaERhdGFBbmRTaG93UG9wdXAgPSBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB3aWRnZXRDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG5cbiAgICAgIGNyZWF0ZVBvcHVwRm9yT2JqZWN0KHtcbiAgICAgICAgcmVuZGVyZWRFbGVtZW50OiB3aWRnZXRDb250YWluZXIsXG4gICAgICAgIG1hcmtlcjogcG9seWdvbixcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCB0eXBlID0gYXJlYT8uaXNfdmlydHVhbCA9PT0gdHJ1ZSA/ICd2YXJlYScgOiAnYXJlYSc7XG4gICAgICBmZXRjaENhcGFjaXR5KHR5cGUsIGFyZWEuYXJlYV9pZCwgZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCkudGhlbihcbiAgICAgICAgKGxpc3REYXRhKSA9PiB7XG4gICAgICAgICAgUmVhY3RET00ucmVuZGVyKFxuICAgICAgICAgICAgPFdpZGdldFxuICAgICAgICAgICAgICBvYmplY3Q9e2FyZWF9XG4gICAgICAgICAgICAgIGRpc3BhdGNoPXtkaXNwYXRjaH1cbiAgICAgICAgICAgICAgYXJlYXM9e2FyZWFzfVxuICAgICAgICAgICAgICBwb2ludHM9e3BvaW50c31cbiAgICAgICAgICAgICAgbWFwPXttYXB9XG4gICAgICAgICAgICAgIGdsb2JhbF9kYXRhPXtnbG9iYWxfZGF0YX1cbiAgICAgICAgICAgICAgbGlzdERhdGE9e2xpc3REYXRhfVxuICAgICAgICAgICAgICBoaXN0b3J5PXtoaXN0b3J5fVxuICAgICAgICAgICAgLz4sXG4gICAgICAgICAgICB3aWRnZXRDb250YWluZXIsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICAgIGlmICghcG9seWdvbi5pc1BvcHVwT3BlbigpKSB7XG4gICAgICAgIHBvbHlnb24ub3BlblBvcHVwKCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHBvbHlnb24ub24oJ2NsaWNrLWV2ZW50JywgKCkgPT4ge1xuICAgICAgcG9seWdvbi5pc1BvcHVwT3BlbigpID8gcG9seWdvbi5jbG9zZVBvcHVwKCkgOiBmZXRjaERhdGFBbmRTaG93UG9wdXAoKTtcbiAgICAgIHBvbHlnb24ub3BlblRvb2x0aXAoKTtcbiAgICB9KTtcblxuICAgIHBvbHlnb24ub24oJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgZmV0Y2hEYXRhQW5kU2hvd1BvcHVwKCk7XG5cbiAgICAgIGNvbnN0IHN1YmplY3QgPSAnTWFwIFZpZXcgLSBBcmVhIGNsaWNrZWQnO1xuICAgICAgc2VuZEFuYWx5dGljc0V2ZW50KHN1YmplY3QsICdtYXAnLCB7XG4gICAgICAgIGFyZWFfaWQ6IGFyZWEuYXJlYV9pZCxcbiAgICAgICAgYXJlYV9uYW1lOiBhcmVhLmFyZWFfbmFtZSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGdldFBvbHlnb24gPSAoaWQ6IHN0cmluZykgPT4ge1xuICAgIGxldCBwb2x5Z29uO1xuICAgIGZlYXR1cmVHcm91cC5lYWNoTGF5ZXIoKGxheWVyKSA9PiB7XG4gICAgICBpZiAobGF5ZXIua2FuZG9fb2JqZWN0X2lkID09PSBpZCkge1xuICAgICAgICBwb2x5Z29uID0gbGF5ZXI7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHBvbHlnb247XG4gIH07XG5cbiAgY29uc3QgaXNQb2x5Z29uQ2hhbmdlZENvbG9yID0gKHBvbHlnb24sIGFyZWEpID0+IHtcbiAgICBpZiAoIXBvbHlnb24pIHJldHVybiB0cnVlO1xuICAgIGNvbnN0IGFyZWFDb2xvciA9IG9iamVjdFRvQ29sb3IoYXJlYSk7XG4gICAgY29uc3QgcG9seWdvbkNvbG9yID0gcG9seWdvbi5vcHRpb25zLmNvbG9yO1xuICAgIHJldHVybiBhcmVhQ29sb3IgIT09IHBvbHlnb25Db2xvcjtcbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGFyZWFfaWQgPSBnZXRBcmVhSWQoYXJlYSk7XG4gICAgY29uc3QgZXhpc3RpbmdQb2x5Z29uID0gZ2V0UG9seWdvbihhcmVhX2lkKTtcblxuICAgIGlmIChpc1BvbHlnb25DaGFuZ2VkQ29sb3IoZXhpc3RpbmdQb2x5Z29uLCBhcmVhKSkge1xuICAgICAgY29uc3QgcG9seWdvbiA9IGNyZWF0ZVBvbHlnb24oXG4gICAgICAgIGFyZWEsXG4gICAgICAgIG1hcFpvb20sXG4gICAgICAgIGZlYXR1cmVHcm91cCxcbiAgICAgICAgbWFwLFxuICAgICAgICBXV1RQTWFwTG9naWMsXG4gICAgICApO1xuXG4gICAgICBpZiAocG9seWdvbikge1xuICAgICAgICBjb25zdCBzdWJBcmVhcyA9IGFyZWEuc3ViX2FyZWFzLm1hcCgoc3ViQXJlYSkgPT4gc3ViQXJlYS5hcmVhX2lkKTtcbiAgICAgICAgaWYgKHN1YkFyZWFzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBwb2x5Z29uWydzdWJfYXJlYXMnXSA9IHN1YkFyZWFzO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChleGlzdGluZ1BvbHlnb24gJiYgZmVhdHVyZUdyb3VwICYmIG1hcCkge1xuICAgICAgICBmZWF0dXJlR3JvdXAucmVtb3ZlTGF5ZXIoZXhpc3RpbmdQb2x5Z29uKTtcbiAgICAgICAgbWFwLmZpcmUoJ3pvb21lbmQnKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIFthcmVhLCBtYXBab29tLCBtYXAsIGZlYXR1cmVHcm91cF0pO1xuXG4gIHJldHVybiA8PjwvPjtcbn07XG5cbmNvbnN0IGNvbm5lY3RvciA9IGNvbm5lY3QobnVsbCk7XG5leHBvcnQgZGVmYXVsdCBjb25uZWN0b3IoQXJlYVBvbHlnb24pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsV0FBQSxHQUFBRCxPQUFBO0FBRUEsSUFBQUUsVUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsU0FBQSxHQUFBQyxzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQUssT0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sTUFBQSxHQUFBTixPQUFBO0FBS0EsSUFBQU8sWUFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsU0FBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsZUFBQSxHQUFBVCxPQUFBO0FBQThDLFNBQUFVLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBWix3QkFBQWdCLEdBQUEsRUFBQUosV0FBQSxTQUFBQSxXQUFBLElBQUFJLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLFdBQUFELEdBQUEsUUFBQUEsR0FBQSxhQUFBRSxPQUFBLENBQUFGLEdBQUEseUJBQUFBLEdBQUEsNEJBQUFHLE9BQUEsRUFBQUgsR0FBQSxVQUFBSSxLQUFBLEdBQUFULHdCQUFBLENBQUFDLFdBQUEsT0FBQVEsS0FBQSxJQUFBQSxLQUFBLENBQUFDLEdBQUEsQ0FBQUwsR0FBQSxZQUFBSSxLQUFBLENBQUFFLEdB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
|
|
134
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdFJlZHV4IiwiX0FyZWFVdGlscyIsIl9yZWFjdERvbSIsIl9XaWRnZXQiLCJfdXRpbHMiLCJfc2NvcmVUb0RhdGEiLCJfQ2FwYWNpdHkiLCJfcmVhY3RSb3V0ZXJEb20iLCJBcmVhUG9seWdvbiIsInByb3BzIiwibWFwIiwiYXJlYSIsIm1hcFpvb20iLCJnbG9iYWxfZGF0YSIsImZlYXR1cmVHcm91cCIsInBvaW50cyIsInVzZVNlbGVjdG9yIiwic3RhdGUiLCJwb2ludHNfZGF0YSIsIml0ZW1zIiwiYXJlYXMiLCJhcmVhc19kYXRhIiwiV1dUUE1vZGUiLCJ3d3RwX2Rhc2hib2FyZCIsImNhcGFjaXR5Iiwid2F0ZXJBdXRob3JpdHlJc0NhcGFjaXR5IiwiZGlzcGF0Y2giLCJ1c2VEaXNwYXRjaCIsImhpc3RvcnkiLCJ1c2VIaXN0b3J5IiwiV1dUUE1hcExvZ2ljIiwicG9seWdvbiIsImZldGNoRGF0YUFuZFNob3dQb3B1cCIsIl9yZWYiLCJfYXN5bmNUb0dlbmVyYXRvcjIiLCJkZWZhdWx0IiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJ3aWRnZXRDb250YWluZXIiLCJ0eXBlIiwid3JhcCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImNyZWF0ZVBvcHVwRm9yT2JqZWN0IiwicmVuZGVyZWRFbGVtZW50IiwibWFya2VyIiwiaXNfdmlydHVhbCIsImZldGNoQ2FwYWNpdHkiLCJhcmVhX2lkIiwid2F0ZXJBdXRob3JpdHlJZCIsInRoZW4iLCJsaXN0RGF0YSIsIlJlYWN0RE9NIiwicmVuZGVyIiwiV2lkZ2V0Iiwib2JqZWN0IiwiaXNQb3B1cE9wZW4iLCJvcGVuUG9wdXAiLCJzdG9wIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJvbiIsImNsb3NlUG9wdXAiLCJvcGVuVG9vbHRpcCIsInN1YmplY3QiLCJzZW5kQW5hbHl0aWNzRXZlbnQiLCJhcmVhX25hbWUiLCJnZXRQb2x5Z29uIiwiaWQiLCJlYWNoTGF5ZXIiLCJsYXllciIsImthbmRvX29iamVjdF9pZCIsImlzUG9seWdvbkNoYW5nZWRDb2xvciIsImFyZWFDb2xvciIsInNjb3JlVG9Db2xvciIsImFyZWFfc2NvcmUiLCJwb2x5Z29uQ29sb3IiLCJvcHRpb25zIiwiY29sb3IiLCJnZXRBcmVhSWQiLCJleGlzdGluZ1BvbHlnb24iLCJjcmVhdGVQb2x5Z29uIiwic3ViQXJlYXMiLCJzdWJfYXJlYXMiLCJzdWJBcmVhIiwibGVuZ3RoIiwicmVtb3ZlTGF5ZXIiLCJmaXJlIiwiRnJhZ21lbnQiLCJjb25uZWN0b3IiLCJjb25uZWN0IiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL1dpZGdldHMvTWFwL2FyZWFzL0FyZWFQb2x5Z29uLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY29ubmVjdCwgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgSUFyZWEgfSBmcm9tICdzcmMvc3RvcmUvYXJlYXMvbW9kZWxzL0lBcmVhJztcbmltcG9ydCB7IGNyZWF0ZVBvbHlnb24gfSBmcm9tICcuL0FyZWFVdGlscyc7XG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCB7IFdpZGdldCB9IGZyb20gJ3NyYy9wYWdlcy9EYXNoYm9hcmRNYXAvV2lkZ2V0JztcbmltcG9ydCB7XG4gIGNyZWF0ZVBvcHVwRm9yT2JqZWN0LFxuICBzZW5kQW5hbHl0aWNzRXZlbnQsXG59IGZyb20gJ3NyYy9wYWdlcy9EYXNoYm9hcmRNYXAvdXRpbHMnO1xuaW1wb3J0IHsgRmVhdHVyZUdyb3VwIH0gZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgeyBzY29yZVRvQ29sb3IgfSBmcm9tICdzcmMvdXRpbGl0aWVzL3Njb3JlVG9EYXRhJztcbmltcG9ydCB7IGZldGNoQ2FwYWNpdHkgfSBmcm9tICdzcmMvcGFnZXMvRGFzaGJvYXJkTWFwL0NhcGFjaXR5JztcbmltcG9ydCB7IHVzZUhpc3RvcnkgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7IGdldEFyZWFJZCB9IGZyb20gJy4vQXJlYVV0aWxzJztcblxudHlwZSBQcm9wcyA9IHtcbiAgbWFwOiBhbnk7XG4gIEw6IGFueTtcbiAgYXJlYTogSUFyZWEgJiB7IGNvbG9yPzogc3RyaW5nOyBzaG93Q29sb3JPbmx5SW5Cb3JkZXJzPzogYm9vbGVhbiB9O1xuICBtYXBab29tOiBudW1iZXI7XG4gIGdsb2JhbF9kYXRhOiBhbnk7XG4gIGJpbmRQb3B1cD86IGJvb2xlYW47XG4gIGZlYXR1cmVHcm91cDogRmVhdHVyZUdyb3VwO1xufTtcblxuY29uc3QgQXJlYVBvbHlnb246IFJlYWN0LkZDPFByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IG1hcCwgYXJlYSwgbWFwWm9vbSwgZ2xvYmFsX2RhdGEsIGZlYXR1cmVHcm91cCB9ID0gcHJvcHM7XG4gIGNvbnN0IHBvaW50cyA9IHVzZVNlbGVjdG9yKChzdGF0ZSkgPT4gc3RhdGUucG9pbnRzX2RhdGEuaXRlbXMpO1xuICBjb25zdCBhcmVhcyA9IHVzZVNlbGVjdG9yKChzdGF0ZSkgPT4gc3RhdGUuYXJlYXNfZGF0YS5pdGVtcyk7XG4gIGNvbnN0IFdXVFBNb2RlID0gdXNlU2VsZWN0b3IoKHN0YXRlKSA9PiBzdGF0ZS53d3RwX2Rhc2hib2FyZC5tYXAgIT09IG51bGwpO1xuICBjb25zdCBjYXBhY2l0eSA9IGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SXNDYXBhY2l0eTtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBoaXN0b3J5ID0gdXNlSGlzdG9yeSgpO1xuXG4gIGNvbnN0IFdXVFBNYXBMb2dpYyA9IChwb2x5Z29uLCBhcmVhKSA9PiB7XG4gICAgaWYgKCFXV1RQTW9kZSB8fCAhY2FwYWNpdHkpIHJldHVybjtcblxuICAgIGNvbnN0IGZldGNoRGF0YUFuZFNob3dQb3B1cCA9IGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHdpZGdldENvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcblxuICAgICAgY3JlYXRlUG9wdXBGb3JPYmplY3Qoe1xuICAgICAgICByZW5kZXJlZEVsZW1lbnQ6IHdpZGdldENvbnRhaW5lcixcbiAgICAgICAgbWFya2VyOiBwb2x5Z29uLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHR5cGUgPSBhcmVhPy5pc192aXJ0dWFsID09PSB0cnVlID8gJ3ZhcmVhJyA6ICdhcmVhJztcbiAgICAgIGZldGNoQ2FwYWNpdHkodHlwZSwgYXJlYS5hcmVhX2lkLCBnbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkKS50aGVuKFxuICAgICAgICAobGlzdERhdGEpID0+IHtcbiAgICAgICAgICBSZWFjdERPTS5yZW5kZXIoXG4gICAgICAgICAgICA8V2lkZ2V0XG4gICAgICAgICAgICAgIG9iamVjdD17YXJlYX1cbiAgICAgICAgICAgICAgZGlzcGF0Y2g9e2Rpc3BhdGNofVxuICAgICAgICAgICAgICBhcmVhcz17YXJlYXN9XG4gICAgICAgICAgICAgIHBvaW50cz17cG9pbnRzfVxuICAgICAgICAgICAgICBtYXA9e21hcH1cbiAgICAgICAgICAgICAgZ2xvYmFsX2RhdGE9e2dsb2JhbF9kYXRhfVxuICAgICAgICAgICAgICBsaXN0RGF0YT17bGlzdERhdGF9XG4gICAgICAgICAgICAgIGhpc3Rvcnk9e2hpc3Rvcnl9XG4gICAgICAgICAgICAvPixcbiAgICAgICAgICAgIHdpZGdldENvbnRhaW5lcixcbiAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgaWYgKCFwb2x5Z29uLmlzUG9wdXBPcGVuKCkpIHtcbiAgICAgICAgcG9seWdvbi5vcGVuUG9wdXAoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgcG9seWdvbi5vbignY2xpY2stZXZlbnQnLCAoKSA9PiB7XG4gICAgICBwb2x5Z29uLmlzUG9wdXBPcGVuKCkgPyBwb2x5Z29uLmNsb3NlUG9wdXAoKSA6IGZldGNoRGF0YUFuZFNob3dQb3B1cCgpO1xuICAgICAgcG9seWdvbi5vcGVuVG9vbHRpcCgpO1xuICAgIH0pO1xuXG4gICAgcG9seWdvbi5vbignY2xpY2snLCAoKSA9PiB7XG4gICAgICBmZXRjaERhdGFBbmRTaG93UG9wdXAoKTtcblxuICAgICAgY29uc3Qgc3ViamVjdCA9ICdNYXAgVmlldyAtIEFyZWEgY2xpY2tlZCc7XG4gICAgICBzZW5kQW5hbHl0aWNzRXZlbnQoc3ViamVjdCwgJ21hcCcsIHtcbiAgICAgICAgYXJlYV9pZDogYXJlYS5hcmVhX2lkLFxuICAgICAgICBhcmVhX25hbWU6IGFyZWEuYXJlYV9uYW1lLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgZ2V0UG9seWdvbiA9IChpZDogc3RyaW5nKSA9PiB7XG4gICAgbGV0IHBvbHlnb247XG4gICAgZmVhdHVyZUdyb3VwLmVhY2hMYXllcigobGF5ZXIpID0+IHtcbiAgICAgIGlmIChsYXllci5rYW5kb19vYmplY3RfaWQgPT09IGlkKSB7XG4gICAgICAgIHBvbHlnb24gPSBsYXllcjtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcG9seWdvbjtcbiAgfTtcblxuICBjb25zdCBpc1BvbHlnb25DaGFuZ2VkQ29sb3IgPSAocG9seWdvbiwgYXJlYSkgPT4ge1xuICAgIGlmICghcG9seWdvbikgcmV0dXJuIHRydWU7XG4gICAgY29uc3QgYXJlYUNvbG9yID0gc2NvcmVUb0NvbG9yKGFyZWEuYXJlYV9zY29yZSk7XG4gICAgY29uc3QgcG9seWdvbkNvbG9yID0gcG9seWdvbi5vcHRpb25zLmNvbG9yO1xuICAgIHJldHVybiBhcmVhQ29sb3IgIT09IHBvbHlnb25Db2xvcjtcbiAgfTtcblxuICAvLyBUaGUgZm9sbG93aW5nIHJlbW92ZXMgdGhlIGV4aXN0aW5nIGxheWVyIGFuZCByZWRyYXcgaXQgYWZ0ZXIuXG4gIC8vIFRoaXMgaXMgbmVjZXNzYXJ5IHNvIHRoZSBmZWF0dXJlR3JvdXAgd2lsbCBob2xkIG9ubHkgb25lIHBvbHlnb24gcGVyIGFyZWEgb3RoZXJ3aXNlIHRoZXkgYXJlIHBpbGluZyB1cC5cbiAgLy8gV2UgcmVwbGFjZSB0aGVtIGJlY2F1c2UgdGhlIGFyZWEncyBjb2xvciBtaWdodCBoYXZlIGNoYW5nZWQuXG4gIC8vIFRoaXMgY3JlYXRlcyBhIGZsaWNrZXJpbmcgZWZmZWN0IG9uIHRoZSBtYXAgd2hpY2ggaXMgbm90IGlkZWFsXG4gIC8vIGJ1dCBpdCdzIHRoZSBiZXN0IHNvbHV0aW9uIHdlIGhhdmUgZm9yIG5vdyBhbmQgd2UgbWlnaHQgbmVlZCB0byByZWZhY3RvciB0aGlzIGluIHRoZSBmdXR1cmUuXG4gIGNvbnN0IGFyZWFfaWQgPSBnZXRBcmVhSWQoYXJlYSk7XG4gIGNvbnN0IGV4aXN0aW5nUG9seWdvbiA9IGdldFBvbHlnb24oYXJlYV9pZCk7XG4gIGlmIChpc1BvbHlnb25DaGFuZ2VkQ29sb3IoZXhpc3RpbmdQb2x5Z29uLCBhcmVhKSkge1xuICAgIGNvbnN0IHBvbHlnb24gPSBjcmVhdGVQb2x5Z29uKFxuICAgICAgYXJlYSxcbiAgICAgIG1hcFpvb20sXG4gICAgICBmZWF0dXJlR3JvdXAsXG4gICAgICBtYXAsXG4gICAgICBXV1RQTWFwTG9naWMsXG4gICAgKTtcbiAgICBpZiAocG9seWdvbikge1xuICAgICAgbGV0IHN1YkFyZWFzID0gYXJlYS5zdWJfYXJlYXMubWFwKChzdWJBcmVhKSA9PiBzdWJBcmVhLmFyZWFfaWQpO1xuICAgICAgaWYgKHN1YkFyZWFzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcG9seWdvblsnc3ViX2FyZWFzJ10gPSBzdWJBcmVhcztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGV4aXN0aW5nUG9seWdvbiAmJiBmZWF0dXJlR3JvdXAgJiYgbWFwKSB7XG4gICAgICBmZWF0dXJlR3JvdXAucmVtb3ZlTGF5ZXIoZXhpc3RpbmdQb2x5Z29uKTtcbiAgICAgIG1hcC5maXJlKCd6b29tZW5kJyk7XG4gICAgfVxuICB9XG4gIHJldHVybiA8PjwvPjtcbn07XG5cbmNvbnN0IGNvbm5lY3RvciA9IGNvbm5lY3QobnVsbCk7XG5leHBvcnQgZGVmYXVsdCBjb25uZWN0b3IoQXJlYVBvbHlnb24pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxXQUFBLEdBQUFELE9BQUE7QUFFQSxJQUFBRSxVQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxTQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxPQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxNQUFBLEdBQUFMLE9BQUE7QUFLQSxJQUFBTSxZQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxTQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxlQUFBLEdBQUFSLE9BQUE7QUFhQSxJQUFNUyxXQUE0QixHQUFHLFNBQS9CQSxXQUE0QkEsQ0FBSUMsS0FBSyxFQUFLO0VBQzlDLElBQVFDLEdBQUcsR0FBK0NELEtBQUssQ0FBdkRDLEdBQUc7SUFBRUMsSUFBSSxHQUF5Q0YsS0FBSyxDQUFsREUsSUFBSTtJQUFFQyxPQUFPLEdBQWdDSCxLQUFLLENBQTVDRyxPQUFPO0lBQUVDLFdBQVcsR0FBbUJKLEtBQUssQ0FBbkNJLFdBQVc7SUFBRUMsWUFBWSxHQUFLTCxLQUFLLENBQXRCSyxZQUFZO0VBQ3JELElBQU1DLE1BQU0sR0FBRyxJQUFBQyx1QkFBVyxFQUFDLFVBQUNDLEtBQUs7SUFBQSxPQUFLQSxLQUFLLENBQUNDLFdBQVcsQ0FBQ0MsS0FBSztFQUFBLEVBQUM7RUFDOUQsSUFBTUMsS0FBSyxHQUFHLElBQUFKLHVCQUFXLEVBQUMsVUFBQ0MsS0FBSztJQUFBLE9BQUtBLEtBQUssQ0FBQ0ksVUFBVSxDQUFDRixLQUFLO0VBQUEsRUFBQztF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
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports.Event = void 0;
|
|
8
|
-
var _react =
|
|
9
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
10
|
var _NetworkForSpecificEvent = require("./NetworkForSpecificEvent");
|
|
10
11
|
var _Snail = require("./Snail");
|
|
11
12
|
var _ErrorBoundary = _interopRequireDefault(require("../../../utilities/ErrorBoundary"));
|
|
12
13
|
var _useQueryURL = _interopRequireDefault(require("../../../hooks/useQueryURL"));
|
|
13
14
|
var _PointsForSpecificEvent = require("./PointsForSpecificEvent");
|
|
15
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
16
|
+
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; }
|
|
14
17
|
// @ts-ignore
|
|
15
18
|
|
|
16
19
|
var Event = function Event(_ref) {
|
|
@@ -31,6 +34,7 @@ var Event = function Event(_ref) {
|
|
|
31
34
|
var shouldNotRenderEvent = function shouldNotRenderEvent() {
|
|
32
35
|
return !shouldRenderEvent() && event.observations.length === 0;
|
|
33
36
|
};
|
|
37
|
+
(0, _react.useEffect)(function () {}, [event, event.focused, edges]);
|
|
34
38
|
if (shouldNotRenderEvent()) return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
|
|
35
39
|
return /*#__PURE__*/_react.default.createElement(_ErrorBoundary.default, null, includeNetwork && /*#__PURE__*/_react.default.createElement(_NetworkForSpecificEvent.NetworkForSpecificEvent, {
|
|
36
40
|
event: event,
|
|
@@ -47,4 +51,4 @@ var Event = function Event(_ref) {
|
|
|
47
51
|
}));
|
|
48
52
|
};
|
|
49
53
|
exports.Event = Event;
|
|
50
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfTmV0d29ya0ZvclNwZWNpZmljRXZlbnQiLCJfU25haWwiLCJfRXJyb3JCb3VuZGFyeSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXNlUXVlcnlVUkwiLCJfUG9pbnRzRm9yU3BlY2lmaWNFdmVudCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiRXZlbnQiLCJfcmVmIiwiZXZlbnQiLCJtYXAiLCJlZGdlcyIsInBvaW50cyIsIl9yZWYkaW5jbHVkZU5ldHdvcmsiLCJpbmNsdWRlTmV0d29yayIsInF1ZXJ5IiwidXNlUXVlcnlVUkwiLCJpc1ZhbGlkRXZlbnQiLCJ2YWxpZEV2ZW50IiwiZm9jdXNlZCIsInNob3VsZFJlbmRlckV2ZW50IiwicGF0aCIsImxlbmd0aCIsIm9ic2VydmF0aW9ucyIsImhvdmVyZWQiLCJzaG91bGROb3RSZW5kZXJFdmVudCIsInVzZUVmZmVjdCIsImNyZWF0ZUVsZW1lbnQiLCJGcmFnbWVudCIsIk5ldHdvcmtGb3JTcGVjaWZpY0V2ZW50IiwiUG9pbnRzRm9yU3BlY2lmaWNFdmVudCIsIlNuYWlsIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9ldmVudHMvRXZlbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1pZ25vcmVcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBOZXR3b3JrRm9yU3BlY2lmaWNFdmVudCB9IGZyb20gJy4vTmV0d29ya0ZvclNwZWNpZmljRXZlbnQnO1xuaW1wb3J0IHsgSUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvZXZlbnRzL21vZGVscy9JRXZlbnQnO1xuaW1wb3J0IHsgTWFwIGFzIExlYWZsZXRNYXAgfSBmcm9tICdsZWFmbGV0JztcbmltcG9ydCB7IElFZGdlIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvZWRnZXMvbW9kZWxzL0lFZGdlJztcbmltcG9ydCB7IElQb2ludCB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCB7IFNuYWlsIH0gZnJvbSAnLi9TbmFpbCc7XG5pbXBvcnQgRXJyb3JCb3VuZGFyeSBmcm9tICcuLi8uLi8uLi91dGlsaXRpZXMvRXJyb3JCb3VuZGFyeSc7XG5pbXBvcnQgdXNlUXVlcnlVUkwgZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlUXVlcnlVUkwnO1xuaW1wb3J0IHsgUG9pbnRzRm9yU3BlY2lmaWNFdmVudCB9IGZyb20gJy4vUG9pbnRzRm9yU3BlY2lmaWNFdmVudCc7XG5cbnR5cGUgSVByb3BzID0ge1xuICBldmVudDogSUV2ZW50O1xuICBtYXA6IExlYWZsZXRNYXAgfCBhbnk7XG4gIGVkZ2VzOiBJRWRnZVtdO1xuICBwb2ludHM6IElQb2ludFtdO1xuICBpbmNsdWRlTmV0d29yaz86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgY29uc3QgRXZlbnQ6IFJlYWN0LkZDPElQcm9wcz4gPSAoe1xuICBldmVudCxcbiAgbWFwLFxuICBlZGdlcyxcbiAgcG9pbnRzLFxuICBpbmNsdWRlTmV0d29yayA9IGZhbHNlLFxufSkgPT4ge1xuICBjb25zdCBxdWVyeSA9IHVzZVF1ZXJ5VVJMKCk7XG4gIGNvbnN0IGlzVmFsaWRFdmVudCA9ICgpID0+IHtcbiAgICBsZXQgdmFsaWRFdmVudCA9IHF1ZXJ5LmdldCgndmFsaWRFdmVudCcpO1xuXG4gICAgcmV0dXJuIHZhbGlkRXZlbnQgPT09ICd0cnVlJyAmJiBldmVudD8uZm9jdXNlZDtcbiAgfTtcbiAgY29uc3Qgc2hvdWxkUmVuZGVyRXZlbnQgPSAoKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIChldmVudC5wYXRoLmxlbmd0aCA9PT0gMCAmJiBldmVudC5vYnNlcnZhdGlvbnMubGVuZ3RoID09PSAxKSB8fFxuICAgICAgaXNWYWxpZEV2ZW50KCkgfHxcbiAgICAgIGV2ZW50Py5ob3ZlcmVkXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBzaG91bGROb3RSZW5kZXJFdmVudCA9ICgpID0+IHtcbiAgICByZXR1cm4gIXNob3VsZFJlbmRlckV2ZW50KCkgJiYgZXZlbnQub2JzZXJ2YXRpb25zLmxlbmd0aCA9PT0gMDtcbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge30sIFtldmVudCwgZXZlbnQuZm9jdXNlZCwgZWRnZXNdKTtcblxuICBpZiAoc2hvdWxkTm90UmVuZGVyRXZlbnQoKSkgcmV0dXJuIDw+PC8+O1xuICByZXR1cm4gKFxuICAgIDxFcnJvckJvdW5kYXJ5PlxuICAgICAge2luY2x1ZGVOZXR3b3JrICYmIChcbiAgICAgICAgPE5ldHdvcmtGb3JTcGVjaWZpY0V2ZW50XG4gICAgICAgICAgZXZlbnQ9e2V2ZW50fVxuICAgICAgICAgIG1hcD17bWFwfVxuICAgICAgICAgIGVkZ2VzPXtlZGdlc31cbiAgICAgICAgICBwb2ludHM9e3BvaW50c31cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgICA8UG9pbnRzRm9yU3BlY2lmaWNFdmVudFxuICAgICAgICBwb2ludHM9e3BvaW50c31cbiAgICAgICAgZXZlbnQ9e2V2ZW50fVxuICAgICAgICBlZGdlcz17ZWRnZXN9XG4gICAgICAgIG1hcD17bWFwfVxuICAgICAgLz5cbiAgICAgIDxTbmFpbCBldmVudD17ZXZlbnR9IC8+XG5cbiAgICAgIHsvKntldmVudC5mb2N1c2VkICYmICgqL31cbiAgICAgIHsvKiAgPGRpdiBjbGFzc05hbWU9eydldmVudC10aW1lcmFuZ2UnfT4qL31cbiAgICAgIHsvKiAgICA8RXZlbnRUaW1lUmFuZ2UgLz4qL31cbiAgICAgIHsvKiAgPC9kaXY+Ki99XG4gICAgICB7LyopfSovfVxuICAgIDwvRXJyb3JCb3VuZGFyeT5cbiAgKTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQ0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsd0JBQUEsR0FBQUQsT0FBQTtBQUtBLElBQUFFLE1BQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLGNBQUEsR0FBQUMsc0JBQUEsQ0FBQUosT0FBQTtBQUNBLElBQUFLLFlBQUEsR0FBQUQsc0JBQUEsQ0FBQUosT0FBQTtBQUNBLElBQUFNLHVCQUFBLEdBQUFOLE9BQUE7QUFBa0UsU0FBQU8seUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFBRSxnQkFBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFULHdCQUFBYSxHQUFBLEVBQUFKLFdBQUEsU0FBQUEsV0FBQSxJQUFBSSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxXQUFBRCxHQUFBLFFBQUFBLEdBQUEsYUFBQUUsT0FBQSxDQUFBRixHQUFBLHlCQUFBQSxHQUFBLDRCQUFBRyxPQUFBLEVBQUFILEdBQUEsVUFBQUksS0FBQSxHQUFBVCx3QkFBQSxDQUFBQyxXQUFBLE9BQUFRLEtBQUEsSUFBQUEsS0FBQSxDQUFBQyxHQUFBLENBQUFMLEdBQUEsWUFBQUksS0FBQSxDQUFBRSxHQUFBLENBQUFOLEdBQUEsU0FBQU8sTUFBQSxXQUFBQyxxQkFBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxHQUFB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
|
|
@@ -52,18 +52,13 @@ var PointMarker = function PointMarker(props) {
|
|
|
52
52
|
var wwtpPoint = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, point), {}, {
|
|
53
53
|
forWWTPMap: true
|
|
54
54
|
});
|
|
55
|
-
var markerOnMap = layerGroup.getLayers().find(function (layer) {
|
|
56
|
-
return layer.kando_object_id === point.id;
|
|
57
|
-
});
|
|
58
55
|
var args = {
|
|
59
56
|
markerLocation: markerLocation,
|
|
60
57
|
wwtpPoint: wwtpPoint
|
|
61
58
|
};
|
|
62
|
-
var wwtp =
|
|
59
|
+
var wwtp = (0, _PointUtils.bubbleForWWTP)(args);
|
|
63
60
|
var tooltipVisible = false;
|
|
64
|
-
|
|
65
|
-
wwtp.addTo(layerGroup);
|
|
66
|
-
}
|
|
61
|
+
wwtp.addTo(map);
|
|
67
62
|
var fetchDataAndShowPopup = /*#__PURE__*/function () {
|
|
68
63
|
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
69
64
|
var widgetContainer;
|
|
@@ -137,8 +132,6 @@ var PointMarker = function PointMarker(props) {
|
|
|
137
132
|
(0, _PointUtils.createBubblePoint)(markerLocation, point, map, null, layerGroup, flowRateUnit, handleSelectItem);
|
|
138
133
|
}
|
|
139
134
|
};
|
|
140
|
-
|
|
141
|
-
// blobal_data is used here to force markers re-render when in events view, going back from a focused event
|
|
142
135
|
(0, _react.useEffect)(function () {
|
|
143
136
|
renderLogic();
|
|
144
137
|
}, [rerender]);
|
|
@@ -149,4 +142,4 @@ var _default = connectedMarker( /*#__PURE__*/_react.default.memo(PointMarker, fu
|
|
|
149
142
|
return prevProps.events_data.focusedEvent === nextProps.events_data.focusedEvent;
|
|
150
143
|
}));
|
|
151
144
|
exports.default = _default;
|
|
152
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RSZWR1eCIsIl9Qb2ludFV0aWxzIiwiX1dpZGdldCIsIl9yZWFjdERvbSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXRpbHMiLCJfTGlzdENvbnRleHQiLCJfQ2FwYWNpdHkiLCJfcmVhY3RSb3V0ZXJEb20iLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIm1hcFN0YXRlVG9Qcm9wcyIsInN0YXRlIiwiZXZlbnRzX2RhdGEiLCJhcmVhc19kYXRhIiwicG9pbnRzX2RhdGEiLCJnbG9iYWxfZGF0YSIsIlBvaW50TWFya2VyIiwicHJvcHMiLCJtYXAiLCJwb2ludCIsInJlcmVuZGVyIiwibGF5ZXJHcm91cCIsImZsb3dSYXRlVW5pdCIsImRpc3BhdGNoIiwidXNlRGlzcGF0Y2giLCJfdXNlU2VsZWN0ZWRJdGVtIiwidXNlU2VsZWN0ZWRJdGVtIiwiaGFuZGxlU2VsZWN0SXRlbSIsIldXVFBNb2RlIiwidXNlU2VsZWN0b3IiLCJ3d3RwX2Rhc2hib2FyZCIsImhpc3RvcnkiLCJ1c2VIaXN0b3J5IiwiV1dUUE1hcExvZ2ljIiwibWFya2VyTG9jYXRpb24iLCJ3d3RwUG9pbnQiLCJfb2JqZWN0U3ByZWFkMiIsImZvcldXVFBNYXAiLCJtYXJrZXJPbk1hcCIsImdldExheWVycyIsImZpbmQiLCJsYXllciIsImthbmRvX29iamVjdF9pZCIsImlkIiwiYXJncyIsInd3dHAiLCJidWJibGVGb3JXV1RQIiwidG9vbHRpcFZpc2libGUiLCJhZGRUbyIsImZldGNoRGF0YUFuZFNob3dQb3B1cCIsIl9yZWYiLCJfYXN5bmNUb0dlbmVyYXRvcjIiLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiX2NhbGxlZSIsIndpZGdldENvbnRhaW5lciIsIndyYXAiLCJfY2FsbGVlJCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJjcmVhdGVQb3B1cEZvck9iamVjdCIsInJlbmRlcmVkRWxlbWVudCIsIm1hcmtlciIsImZldGNoQ2FwYWNpdHkiLCJ3YXRlckF1dGhvcml0eUlkIiwidGhlbiIsImxpc3REYXRhIiwiUmVhY3RET00iLCJyZW5kZXIiLCJXaWRnZXQiLCJvYmplY3QiLCJwb2ludHMiLCJpdGVtcyIsImFyZWFzIiwibmV3QXJlYXMiLCJpc1BvcHVwT3BlbiIsIm9wZW5Qb3B1cCIsInN0b3AiLCJhcHBseSIsImFyZ3VtZW50cyIsIm9uIiwiY2xvc2VQb3B1cCIsInNlbmRBbmFseXRpY3NFdmVudCIsInBvaW50X2lkIiwicG9pbnRfbmFtZSIsIm5hbWUiLCJzZXRJY29uIiwicmVuZGVyTG9naWMiLCJwb2ludElzV1dUUCIsImNyZWF0ZUJ1YmJsZVBvaW50IiwidXNlRWZmZWN0IiwiRnJhZ21lbnQiLCJjb25uZWN0ZWRNYXJrZXIiLCJjb25uZWN0IiwiX2RlZmF1bHQiLCJSZWFjdCIsIm1lbW8iLCJwcmV2UHJvcHMiLCJuZXh0UHJvcHMiLCJmb2N1c2VkRXZlbnQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL1dpZGdldHMvTWFwL3BvaW50cy9Qb2ludE1hcmtlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNvbm5lY3QsIENvbm5lY3RlZFByb3BzLCB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBJQXBwU3RhdGUgfSBmcm9tICdzcmMvbW9kZWxzL0lBcHBTdGF0ZSc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdzcmMvc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnQnO1xuaW1wb3J0IHtcbiAgYnViYmxlRm9yV1dUUCxcbiAgY3JlYXRlQnViYmxlUG9pbnQsXG4gIHBvaW50SXNXV1RQLFxuICBzZXRJY29uLFxufSBmcm9tICcuL1BvaW50VXRpbHMnO1xuaW1wb3J0IHsgV2lkZ2V0IH0gZnJvbSAnc3JjL3BhZ2VzL0Rhc2hib2FyZE1hcC9XaWRnZXQnO1xuaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgTCwgeyBMYXRMbmdUdXBsZSB9IGZyb20gJ2xlYWZsZXQnO1xuaW1wb3J0IHtcbiAgY3JlYXRlUG9wdXBGb3JPYmplY3QsXG4gIHNlbmRBbmFseXRpY3NFdmVudCxcbn0gZnJvbSAnc3JjL3BhZ2VzL0Rhc2hib2FyZE1hcC91dGlscyc7XG5pbXBvcnQgeyB1c2VTZWxlY3RlZEl0ZW0gfSBmcm9tICdzcmMvcGFnZXMvRGFzaGJvYXJkTWFwL0xpc3RDb250ZXh0JztcbmltcG9ydCB7IGZldGNoQ2FwYWNpdHkgfSBmcm9tICdzcmMvcGFnZXMvRGFzaGJvYXJkTWFwL0NhcGFjaXR5JztcbmltcG9ydCB7IHVzZUhpc3RvcnkgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcblxuZnVuY3Rpb24gbWFwU3RhdGVUb1Byb3BzKHN0YXRlOiBJQXBwU3RhdGUpIHtcbiAgY29uc3QgeyBldmVudHNfZGF0YSwgYXJlYXNfZGF0YSwgcG9pbnRzX2RhdGEsIGdsb2JhbF9kYXRhIH0gPSBzdGF0ZTtcblxuICByZXR1cm4ge1xuICAgIGV2ZW50c19kYXRhLFxuICAgIGFyZWFzX2RhdGEsXG4gICAgcG9pbnRzX2RhdGEsXG4gICAgZ2xvYmFsX2RhdGEsXG4gIH07XG59XG5cbnR5cGUgUHJvcHMgPSBDb25uZWN0ZWRQcm9wczx0eXBlb2YgY29ubmVjdGVkTWFya2VyPiAmIHtcbiAgbWFwOiBhbnk7XG4gIHBvaW50OiBJUG9pbnQ7XG4gIHJlcmVuZGVyOiBzdHJpbmc7XG4gIGxheWVyR3JvdXA6IGFueTtcbiAgZmxvd1JhdGVVbml0OiBzdHJpbmc7XG59O1xuXG5jb25zdCBQb2ludE1hcmtlcjogUmVhY3QuRkM8UHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBtYXAsXG4gICAgcG9pbnQsXG4gICAgcmVyZW5kZXIsXG4gICAgbGF5ZXJHcm91cCxcbiAgICBmbG93UmF0ZVVuaXQsXG4gICAgcG9pbnRzX2RhdGEsXG4gICAgYXJlYXNfZGF0YSxcbiAgICBnbG9iYWxfZGF0YSxcbiAgfSA9IHByb3BzO1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IHsgaGFuZGxlU2VsZWN0SXRlbSB9ID0gdXNlU2VsZWN0ZWRJdGVtKCk7XG4gIGNvbnN0IFdXVFBNb2RlID0gdXNlU2VsZWN0b3IoKHN0YXRlKSA9PiBzdGF0ZS53d3RwX2Rhc2hib2FyZC5tYXAgIT09IG51bGwpO1xuICBjb25zdCBoaXN0b3J5ID0gdXNlSGlzdG9yeSgpO1xuXG4gIGNvbnN0IFdXVFBNYXBMb2dpYyA9IChtYXJrZXJMb2NhdGlvbikgPT4ge1xuICAgIGNvbnN0IHd3dHBQb2ludCA9IHtcbiAgICAgIC4uLnBvaW50LFxuICAgICAgZm9yV1dUUE1hcDogdHJ1ZSxcbiAgICB9O1xuICAgIGNvbnN0IG1hcmtlck9uTWFwID0gbGF5ZXJHcm91cFxuICAgICAgLmdldExheWVycygpXG4gICAgICAuZmluZCgobGF5ZXIpID0+IGxheWVyLmthbmRvX29iamVjdF9pZCA9PT0gcG9pbnQuaWQpO1xuICAgIGxldCBhcmdzID0geyBtYXJrZXJMb2NhdGlvbiwgd3d0cFBvaW50IH07XG4gICAgbGV0IHd3dHA6IEwuTWFya2VyID0gbWFya2VyT25NYXAgPyBtYXJrZXJPbk1hcCA6IGJ1YmJsZUZvcldXVFAoYXJncyk7XG4gICAgbGV0IHRvb2x0aXBWaXNpYmxlID0gZmFsc2U7XG5cbiAgICBpZiAoIW1hcmtlck9uTWFwKSB7XG4gICAgICB3d3RwLmFkZFRvKGxheWVyR3JvdXApO1xuICAgIH1cblxuICAgIGNvbnN0IGZldGNoRGF0YUFuZFNob3dQb3B1cCA9IGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHdpZGdldENvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcblxuICAgICAgY3JlYXRlUG9wdXBGb3JPYmplY3Qoe1xuICAgICAgICByZW5kZXJlZEVsZW1lbnQ6IHdpZGdldENvbnRhaW5lcixcbiAgICAgICAgbWFya2VyOiB3d3RwLFxuICAgICAgfSk7XG5cbiAgICAgIGZldGNoQ2FwYWNpdHkoJ3NpdGUnLCBwb2ludC5pZCwgZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCkudGhlbihcbiAgICAgICAgKGxpc3REYXRhKSA9PiB7XG4gICAgICAgICAgUmVhY3RET00ucmVuZGVyKFxuICAgICAgICAgICAgPFdpZGdldFxuICAgICAgICAgICAgICBvYmplY3Q9e3d3dHBQb2ludH1cbiAgICAgICAgICAgICAgZGlzcGF0Y2g9e2Rpc3BhdGNofVxuICAgICAgICAgICAgICBwb2ludHM9e3BvaW50c19kYXRhLml0ZW1zfVxuICAgICAgICAgICAgICBhcmVhcz17YXJlYXNfZGF0YS5uZXdBcmVhc31cbiAgICAgICAgICAgICAgbWFwPXttYXB9XG4gICAgICAgICAgICAgIGdsb2JhbF9kYXRhPXtnbG9iYWxfZGF0YX1cbiAgICAgICAgICAgICAgbGlzdERhdGE9e2xpc3REYXRhfVxuICAgICAgICAgICAgICBoaXN0b3J5PXtoaXN0b3J5fVxuICAgICAgICAgICAgLz4sXG4gICAgICAgICAgICB3aWRnZXRDb250YWluZXIsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICAgIGlmICghd3d0cC5pc1BvcHVwT3BlbigpKSB7XG4gICAgICAgIHd3dHAub3BlblBvcHVwKCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHd3dHAub24oJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgd3d0cC5pc1BvcHVwT3BlbigpID8gd3d0cC5jbG9zZVBvcHVwKCkgOiBmZXRjaERhdGFBbmRTaG93UG9wdXAoKTtcbiAgICAgIHNlbmRBbmFseXRpY3NFdmVudCgnTWFwIFZpZXcgLSBXV1RQIGNsaWNrZWQnLCAnbWFwJywge1xuICAgICAgICBwb2ludF9pZDogcG9pbnQuaWQsXG4gICAgICAgIHBvaW50X25hbWU6IHBvaW50Lm5hbWUsXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHd3dHAub24oJ21vdXNlb3ZlcicsICgpID0+IHtcbiAgICAgIGlmICh0b29sdGlwVmlzaWJsZSkgcmV0dXJuO1xuXG4gICAgICBzZXRJY29uKHd3dHAsIHRydWUsIHBvaW50KTtcbiAgICAgIHRvb2x0aXBWaXNpYmxlID0gdHJ1ZTtcbiAgICB9KTtcblxuICAgIHd3dHAub24oJ21vdXNlb3V0JywgKCkgPT4ge1xuICAgICAgaWYgKHd3dHAuaXNQb3B1cE9wZW4oKSkgcmV0dXJuO1xuXG4gICAgICBzZXRJY29uKHd3dHAsIGZhbHNlLCBwb2ludCk7XG4gICAgICB0b29sdGlwVmlzaWJsZSA9IGZhbHNlO1xuICAgIH0pO1xuXG4gICAgd3d0cC5vbigncG9wdXBjbG9zZScsICgpID0+IHtcbiAgICAgIHNldEljb24od3d0cCwgZmFsc2UsIHBvaW50KTtcbiAgICAgIHRvb2x0aXBWaXNpYmxlID0gZmFsc2U7XG4gICAgfSk7XG5cbiAgICB3d3RwLm9uKCdwb3B1cG9wZW4nLCAoKSA9PiB7XG4gICAgICBzZXRJY29uKHd3dHAsIHRydWUsIHBvaW50KTtcbiAgICAgIHRvb2x0aXBWaXNpYmxlID0gdHJ1ZTtcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCByZW5kZXJMb2dpYyA9ICgpID0+IHtcbiAgICBsZXQgbWFya2VyTG9jYXRpb246IExhdExuZ1R1cGxlID0gW3BvaW50WydsYXRpdHVkZSddLCBwb2ludFsnbG9uZ2l0dWRlJ11dO1xuICAgIGlmIChtYXJrZXJMb2NhdGlvblswXSA9PT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgaWYgKHBvaW50SXNXV1RQKHBvaW50KSAmJiBXV1RQTW9kZSA9PT0gdHJ1ZSkge1xuICAgICAgV1dUUE1hcExvZ2ljKG1hcmtlckxvY2F0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY3JlYXRlQnViYmxlUG9pbnQoXG4gICAgICAgIG1hcmtlckxvY2F0aW9uLFxuICAgICAgICBwb2ludCxcbiAgICAgICAgbWFwLFxuICAgICAgICBudWxsLFxuICAgICAgICBsYXllckdyb3VwLFxuICAgICAgICBmbG93UmF0ZVVuaXQsXG4gICAgICAgIGhhbmRsZVNlbGVjdEl0ZW0sXG4gICAgICApO1xuICAgIH1cbiAgfTtcblxuICAvLyBibG9iYWxfZGF0YSBpcyB1c2VkIGhlcmUgdG8gZm9yY2UgbWFya2VycyByZS1yZW5kZXIgd2hlbiBpbiBldmVudHMgdmlldywgZ29pbmcgYmFjayBmcm9tIGEgZm9jdXNlZCBldmVudFxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJlbmRlckxvZ2ljKCk7XG4gIH0sIFtyZXJlbmRlcl0pO1xuXG4gIHJldHVybiA8PjwvPjtcbn07XG5cbmNvbnN0IGNvbm5lY3RlZE1hcmtlciA9IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzKTtcbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3RlZE1hcmtlcihcbiAgUmVhY3QubWVtbyhQb2ludE1hcmtlciwgKHByZXZQcm9wcywgbmV4dFByb3BzKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHByZXZQcm9wcy5ldmVudHNfZGF0YS5mb2N1c2VkRXZlbnQgPT09IG5leHRQcm9wcy5ldmVudHNfZGF0YS5mb2N1c2VkRXZlbnRcbiAgICApO1xuICB9KSxcbik7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsV0FBQSxH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
|
|
145
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RSZWR1eCIsIl9Qb2ludFV0aWxzIiwiX1dpZGdldCIsIl9yZWFjdERvbSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXRpbHMiLCJfTGlzdENvbnRleHQiLCJfQ2FwYWNpdHkiLCJfcmVhY3RSb3V0ZXJEb20iLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIm1hcFN0YXRlVG9Qcm9wcyIsInN0YXRlIiwiZXZlbnRzX2RhdGEiLCJhcmVhc19kYXRhIiwicG9pbnRzX2RhdGEiLCJnbG9iYWxfZGF0YSIsIlBvaW50TWFya2VyIiwicHJvcHMiLCJtYXAiLCJwb2ludCIsInJlcmVuZGVyIiwibGF5ZXJHcm91cCIsImZsb3dSYXRlVW5pdCIsImRpc3BhdGNoIiwidXNlRGlzcGF0Y2giLCJfdXNlU2VsZWN0ZWRJdGVtIiwidXNlU2VsZWN0ZWRJdGVtIiwiaGFuZGxlU2VsZWN0SXRlbSIsIldXVFBNb2RlIiwidXNlU2VsZWN0b3IiLCJ3d3RwX2Rhc2hib2FyZCIsImhpc3RvcnkiLCJ1c2VIaXN0b3J5IiwiV1dUUE1hcExvZ2ljIiwibWFya2VyTG9jYXRpb24iLCJ3d3RwUG9pbnQiLCJfb2JqZWN0U3ByZWFkMiIsImZvcldXVFBNYXAiLCJhcmdzIiwid3d0cCIsImJ1YmJsZUZvcldXVFAiLCJ0b29sdGlwVmlzaWJsZSIsImFkZFRvIiwiZmV0Y2hEYXRhQW5kU2hvd1BvcHVwIiwiX3JlZiIsIl9hc3luY1RvR2VuZXJhdG9yMiIsIl9yZWdlbmVyYXRvciIsIm1hcmsiLCJfY2FsbGVlIiwid2lkZ2V0Q29udGFpbmVyIiwid3JhcCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImNyZWF0ZVBvcHVwRm9yT2JqZWN0IiwicmVuZGVyZWRFbGVtZW50IiwibWFya2VyIiwiZmV0Y2hDYXBhY2l0eSIsImlkIiwid2F0ZXJBdXRob3JpdHlJZCIsInRoZW4iLCJsaXN0RGF0YSIsIlJlYWN0RE9NIiwicmVuZGVyIiwiV2lkZ2V0Iiwib2JqZWN0IiwicG9pbnRzIiwiaXRlbXMiLCJhcmVhcyIsIm5ld0FyZWFzIiwiaXNQb3B1cE9wZW4iLCJvcGVuUG9wdXAiLCJzdG9wIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJvbiIsImNsb3NlUG9wdXAiLCJzZW5kQW5hbHl0aWNzRXZlbnQiLCJwb2ludF9pZCIsInBvaW50X25hbWUiLCJuYW1lIiwic2V0SWNvbiIsInJlbmRlckxvZ2ljIiwicG9pbnRJc1dXVFAiLCJjcmVhdGVCdWJibGVQb2ludCIsInVzZUVmZmVjdCIsIkZyYWdtZW50IiwiY29ubmVjdGVkTWFya2VyIiwiY29ubmVjdCIsIl9kZWZhdWx0IiwiUmVhY3QiLCJtZW1vIiwicHJldlByb3BzIiwibmV4dFByb3BzIiwiZm9jdXNlZEV2ZW50IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9wb2ludHMvUG9pbnRNYXJrZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjb25uZWN0LCBDb25uZWN0ZWRQcm9wcywgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgSUFwcFN0YXRlIH0gZnJvbSAnc3JjL21vZGVscy9JQXBwU3RhdGUnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCB7XG4gIGJ1YmJsZUZvcldXVFAsXG4gIGNyZWF0ZUJ1YmJsZVBvaW50LFxuICBwb2ludElzV1dUUCxcbiAgc2V0SWNvbixcbn0gZnJvbSAnLi9Qb2ludFV0aWxzJztcbmltcG9ydCB7IFdpZGdldCB9IGZyb20gJ3NyYy9wYWdlcy9EYXNoYm9hcmRNYXAvV2lkZ2V0JztcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IEwsIHsgTGF0TG5nVHVwbGUgfSBmcm9tICdsZWFmbGV0JztcbmltcG9ydCB7XG4gIGNyZWF0ZVBvcHVwRm9yT2JqZWN0LFxuICBzZW5kQW5hbHl0aWNzRXZlbnQsXG59IGZyb20gJ3NyYy9wYWdlcy9EYXNoYm9hcmRNYXAvdXRpbHMnO1xuaW1wb3J0IHsgdXNlU2VsZWN0ZWRJdGVtIH0gZnJvbSAnc3JjL3BhZ2VzL0Rhc2hib2FyZE1hcC9MaXN0Q29udGV4dCc7XG5pbXBvcnQgeyBmZXRjaENhcGFjaXR5IH0gZnJvbSAnc3JjL3BhZ2VzL0Rhc2hib2FyZE1hcC9DYXBhY2l0eSc7XG5pbXBvcnQgeyB1c2VIaXN0b3J5IH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5cbmZ1bmN0aW9uIG1hcFN0YXRlVG9Qcm9wcyhzdGF0ZTogSUFwcFN0YXRlKSB7XG4gIGNvbnN0IHsgZXZlbnRzX2RhdGEsIGFyZWFzX2RhdGEsIHBvaW50c19kYXRhLCBnbG9iYWxfZGF0YSB9ID0gc3RhdGU7XG5cbiAgcmV0dXJuIHtcbiAgICBldmVudHNfZGF0YSxcbiAgICBhcmVhc19kYXRhLFxuICAgIHBvaW50c19kYXRhLFxuICAgIGdsb2JhbF9kYXRhLFxuICB9O1xufVxuXG50eXBlIFByb3BzID0gQ29ubmVjdGVkUHJvcHM8dHlwZW9mIGNvbm5lY3RlZE1hcmtlcj4gJiB7XG4gIG1hcDogYW55O1xuICBwb2ludDogSVBvaW50O1xuICByZXJlbmRlcjogc3RyaW5nO1xuICBsYXllckdyb3VwOiBhbnk7XG4gIGZsb3dSYXRlVW5pdDogc3RyaW5nO1xufTtcblxuY29uc3QgUG9pbnRNYXJrZXI6IFJlYWN0LkZDPFByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7XG4gICAgbWFwLFxuICAgIHBvaW50LFxuICAgIHJlcmVuZGVyLFxuICAgIGxheWVyR3JvdXAsXG4gICAgZmxvd1JhdGVVbml0LFxuICAgIHBvaW50c19kYXRhLFxuICAgIGFyZWFzX2RhdGEsXG4gICAgZ2xvYmFsX2RhdGEsXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCB7IGhhbmRsZVNlbGVjdEl0ZW0gfSA9IHVzZVNlbGVjdGVkSXRlbSgpO1xuICBjb25zdCBXV1RQTW9kZSA9IHVzZVNlbGVjdG9yKChzdGF0ZSkgPT4gc3RhdGUud3d0cF9kYXNoYm9hcmQubWFwICE9PSBudWxsKTtcbiAgY29uc3QgaGlzdG9yeSA9IHVzZUhpc3RvcnkoKTtcblxuICBjb25zdCBXV1RQTWFwTG9naWMgPSAobWFya2VyTG9jYXRpb24pID0+IHtcbiAgICBjb25zdCB3d3RwUG9pbnQgPSB7XG4gICAgICAuLi5wb2ludCxcbiAgICAgIGZvcldXVFBNYXA6IHRydWUsXG4gICAgfTtcbiAgICBsZXQgYXJncyA9IHsgbWFya2VyTG9jYXRpb24sIHd3dHBQb2ludCB9O1xuICAgIGxldCB3d3RwOiBMLk1hcmtlciA9IGJ1YmJsZUZvcldXVFAoYXJncyk7XG4gICAgbGV0IHRvb2x0aXBWaXNpYmxlID0gZmFsc2U7XG5cbiAgICB3d3RwLmFkZFRvKG1hcCk7XG5cbiAgICBjb25zdCBmZXRjaERhdGFBbmRTaG93UG9wdXAgPSBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB3aWRnZXRDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG5cbiAgICAgIGNyZWF0ZVBvcHVwRm9yT2JqZWN0KHtcbiAgICAgICAgcmVuZGVyZWRFbGVtZW50OiB3aWRnZXRDb250YWluZXIsXG4gICAgICAgIG1hcmtlcjogd3d0cCxcbiAgICAgIH0pO1xuXG4gICAgICBmZXRjaENhcGFjaXR5KCdzaXRlJywgcG9pbnQuaWQsIGdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQpLnRoZW4oXG4gICAgICAgIChsaXN0RGF0YSkgPT4ge1xuICAgICAgICAgIFJlYWN0RE9NLnJlbmRlcihcbiAgICAgICAgICAgIDxXaWRnZXRcbiAgICAgICAgICAgICAgb2JqZWN0PXt3d3RwUG9pbnR9XG4gICAgICAgICAgICAgIGRpc3BhdGNoPXtkaXNwYXRjaH1cbiAgICAgICAgICAgICAgcG9pbnRzPXtwb2ludHNfZGF0YS5pdGVtc31cbiAgICAgICAgICAgICAgYXJlYXM9e2FyZWFzX2RhdGEubmV3QXJlYXN9XG4gICAgICAgICAgICAgIG1hcD17bWFwfVxuICAgICAgICAgICAgICBnbG9iYWxfZGF0YT17Z2xvYmFsX2RhdGF9XG4gICAgICAgICAgICAgIGxpc3REYXRhPXtsaXN0RGF0YX1cbiAgICAgICAgICAgICAgaGlzdG9yeT17aGlzdG9yeX1cbiAgICAgICAgICAgIC8+LFxuICAgICAgICAgICAgd2lkZ2V0Q29udGFpbmVyLFxuICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgICBpZiAoIXd3dHAuaXNQb3B1cE9wZW4oKSkge1xuICAgICAgICB3d3RwLm9wZW5Qb3B1cCgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB3d3RwLm9uKCdjbGljaycsICgpID0+IHtcbiAgICAgIHd3dHAuaXNQb3B1cE9wZW4oKSA/IHd3dHAuY2xvc2VQb3B1cCgpIDogZmV0Y2hEYXRhQW5kU2hvd1BvcHVwKCk7XG4gICAgICBzZW5kQW5hbHl0aWNzRXZlbnQoJ01hcCBWaWV3IC0gV1dUUCBjbGlja2VkJywgJ21hcCcsIHtcbiAgICAgICAgcG9pbnRfaWQ6IHBvaW50LmlkLFxuICAgICAgICBwb2ludF9uYW1lOiBwb2ludC5uYW1lLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICB3d3RwLm9uKCdtb3VzZW92ZXInLCAoKSA9PiB7XG4gICAgICBpZiAodG9vbHRpcFZpc2libGUpIHJldHVybjtcblxuICAgICAgc2V0SWNvbih3d3RwLCB0cnVlLCBwb2ludCk7XG4gICAgICB0b29sdGlwVmlzaWJsZSA9IHRydWU7XG4gICAgfSk7XG5cbiAgICB3d3RwLm9uKCdtb3VzZW91dCcsICgpID0+IHtcbiAgICAgIGlmICh3d3RwLmlzUG9wdXBPcGVuKCkpIHJldHVybjtcblxuICAgICAgc2V0SWNvbih3d3RwLCBmYWxzZSwgcG9pbnQpO1xuICAgICAgdG9vbHRpcFZpc2libGUgPSBmYWxzZTtcbiAgICB9KTtcblxuICAgIHd3dHAub24oJ3BvcHVwY2xvc2UnLCAoKSA9PiB7XG4gICAgICBzZXRJY29uKHd3dHAsIGZhbHNlLCBwb2ludCk7XG4gICAgICB0b29sdGlwVmlzaWJsZSA9IGZhbHNlO1xuICAgIH0pO1xuXG4gICAgd3d0cC5vbigncG9wdXBvcGVuJywgKCkgPT4ge1xuICAgICAgc2V0SWNvbih3d3RwLCB0cnVlLCBwb2ludCk7XG4gICAgICB0b29sdGlwVmlzaWJsZSA9IHRydWU7XG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgcmVuZGVyTG9naWMgPSAoKSA9PiB7XG4gICAgbGV0IG1hcmtlckxvY2F0aW9uOiBMYXRMbmdUdXBsZSA9IFtwb2ludFsnbGF0aXR1ZGUnXSwgcG9pbnRbJ2xvbmdpdHVkZSddXTtcbiAgICBpZiAobWFya2VyTG9jYXRpb25bMF0gPT09IG51bGwpIHJldHVybjtcblxuICAgIGlmIChwb2ludElzV1dUUChwb2ludCkgJiYgV1dUUE1vZGUgPT09IHRydWUpIHtcbiAgICAgIFdXVFBNYXBMb2dpYyhtYXJrZXJMb2NhdGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNyZWF0ZUJ1YmJsZVBvaW50KFxuICAgICAgICBtYXJrZXJMb2NhdGlvbixcbiAgICAgICAgcG9pbnQsXG4gICAgICAgIG1hcCxcbiAgICAgICAgbnVsbCxcbiAgICAgICAgbGF5ZXJHcm91cCxcbiAgICAgICAgZmxvd1JhdGVVbml0LFxuICAgICAgICBoYW5kbGVTZWxlY3RJdGVtLFxuICAgICAgKTtcbiAgICB9XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZW5kZXJMb2dpYygpO1xuICB9LCBbcmVyZW5kZXJdKTtcblxuICByZXR1cm4gPD48Lz47XG59O1xuXG5jb25zdCBjb25uZWN0ZWRNYXJrZXIgPSBjb25uZWN0KG1hcFN0YXRlVG9Qcm9wcyk7XG5leHBvcnQgZGVmYXVsdCBjb25uZWN0ZWRNYXJrZXIoXG4gIFJlYWN0Lm1lbW8oUG9pbnRNYXJrZXIsIChwcmV2UHJvcHMsIG5leHRQcm9wcykgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICBwcmV2UHJvcHMuZXZlbnRzX2RhdGEuZm9jdXNlZEV2ZW50ID09PSBuZXh0UHJvcHMuZXZlbnRzX2RhdGEuZm9jdXNlZEV2ZW50XG4gICAgKTtcbiAgfSksXG4pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFdBQUEsR0FBQUQsT0FBQTtBQUdBLElBQUFFLFdBQUEsR0FBQUYsT0FBQTtBQU1BLElBQUFHLE9BQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFNBQUEsR0FBQUMsc0JBQUEsQ0FBQUwsT0FBQTtBQUVBLElBQUFNLE1BQUEsR0FBQU4sT0FBQTtBQUlBLElBQUFPLFlBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLFNBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLGVBQUEsR0FBQVQsT0FBQTtBQUE4QyxTQUFBVSx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLFdBQUEsV0FBQUEsV0FBQSxHQUFBRyxnQkFBQSxHQUFBRCxpQkFBQSxLQUFBRixXQUFBO0FBQUEsU0FBQVosd0JBQUFnQixHQUFBLEVBQUFKLFdBQUEsU0FBQUEsV0FBQSxJQUFBSSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxXQUFBRCxHQUFBLFFBQUFBLEdBQUEsYUFBQUUsT0FBQSxDQUFBRixHQUFBLHlCQUFBQSxHQUFBLDRCQUFBRyxPQUFBLEVBQUFILEdBQUEsVUFBQUksS0FBQSxHQUFBVCx3QkFBQSxDQUFBQyxXQUFBLE9BQUFRLEtBQUEsSUFBQUEsS0FBQSxDQUFBQyxHQUFBLENBQUFMLEdBQUEsWUFBQUksS0FBQSxDQUFBRSxHQUFBLENBQUFOLEdBQUEsU0FBQU8sTUFBQSxXQUFBQyxxQkFBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxHQUFBLElBQUFaLEdBQUEsUUFBQVksR0FBQSxrQkFBQUgsTUFBQSxDQUFBSSxTQUFBLENBQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBZixHQUFBLEVBQUFZLEdBQUEsU0FBQUksSUFBQSxHQUFBUixxQkFBQSxHQUFBQyxNQUFBLENBQUFFLHdCQUFBLENBQUFYLEdBQUEsRUFBQVksR0FBQSxjQUFBSSxJQUFBLEtBQUFBLElBQUEsQ0FBQVYsR0FBQSxJQUFBVSxJQUFBLENBQUFDLEdBQUEsS0FBQVIsTUFBQSxDQUFBQyxjQUFBLENBQUFILE1BQUEsRUFBQUssR0FBQSxFQUFBSSxJQUFBLFlBQUFULE1BQUEsQ0FBQUssR0FBQSxJQUFBWixHQUFBLENBQUFZLEdBQUEsU0FBQUwsTUFBQSxDQUFBSixPQUFBLEdBQUFILEdBQUEsTUFBQUksS0FBQSxJQUFBQSxLQUFBLENBQUFhLEdBQUEsQ0FBQWpCLEdBQUEsRUFBQU8sTUFBQSxZQUFBQSxNQUFBO0FBRTlDLFNBQVNXLGVBQWVBLENBQUNDLEtBQWdCLEVBQUU7RUFDekMsSUFBUUMsV0FBVyxHQUEyQ0QsS0FBSyxDQUEzREMsV0FBVztJQUFFQyxVQUFVLEdBQStCRixLQUFLLENBQTlDRSxVQUFVO0lBQUVDLFdBQVcsR0FBa0JILEtBQUssQ0FBbENHLFdBQVc7SUFBRUMsV0FBVyxHQUFLSixLQUFLLENBQXJCSSxXQUFXO0VBRXpELE9BQU87SUFDTEgsV0FBVyxFQUFYQSxXQUFXO0lBQ1hDLFVBQVUsRUFBVkEsVUFBVTtJQUNWQyxXQUFXLEVBQVhBLFdBQVc7SUFDWEMsV0FBVyxFQUFYQTtFQUNGLENBQUM7QUFDSDtBQVVBLElBQU1DLFdBQTRCLEdBQUcsU0FBL0JBLFdBQTRCQSxDQUFJQyxLQUFLLEVBQUs7RUFDOUMsSUFDRUMsR0FBRyxHQVFERCxLQUFLLENBUlBDLEdBQUc7SUFDSEMsS0FBSyxHQU9IRixLQUFLLENBUFBFLEtBQUs7SUFDTEMsUUFBUSxHQU1OSCxLQUFLLENBTlBHLFFBQVE7SUFDUkMsVUFBVSxHQUtSSixLQUFLLENBTFBJLFVBQVU7SUFDVkMsWUFBWSxHQUlWTCxLQUFLLENBSlBLLFlBQVk7SUFDWlIsV0FBVyxHQUdURyxLQUFLLENBSFBILFdBQVc7SUFDWEQsVUFBVSxHQUVSSSxLQUFLLENBRlBKLFVBQVU7SUFDVkUsV0FBVyxHQUNURSxLQUFLLENBRFBGLFdBQVc7RUFFYixJQUFNUSxRQUFRLEdBQUcsSUFBQUMsdUJBQVcsRUFBQyxDQUFDO0VBQzlCLElBQUFDLGdCQUFBLEdBQTZCLElBQUFDLDRCQUFlLEVBQUMsQ0FBQztJQUF0Q0MsZ0JBQWdCLEdBQUFGLGdCQUFBLENBQWhCRSxnQkFBZ0I7RUFDeEIsSUFBTUMsUUFBUSxHQUFHLElBQUFDLHVCQUFXLEVBQUMsVUFBQ2xCLEtBQUs7SUFBQSxPQUFLQSxLQUFLLENBQUNtQixjQUFjLENBQUNaLEdBQUcsS0FBSyxJQUFJO0VBQUEsRUFBQztFQUMxRSxJQUFNYSxPQUFPLEdBQUcsSUFBQUMsMEJBQVUsRUFBQyxDQUFDO0VBRTVCLElBQU1DLFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFJQyxjQUFjLEVBQUs7SUFDdkMsSUFBTUMsU0FBUyxPQUFBQyxjQUFBLENBQUF6QyxPQUFBLE1BQUF5QyxjQUFBLENBQUF6QyxPQUFBLE1BQ1Z3QixLQUFLO01BQ1JrQixVQUFVLEVBQUU7SUFBSSxFQUNqQjtJQUNELElBQUlDLElBQUksR0FBRztNQUFFSixjQUFjLEVBQWRBLGNBQWM7TUFBRUMsU0FBUyxFQUFUQTtJQUFVLENBQUM7SUFDeEMsSUFBSUksSUFBYyxHQUFHLElBQUFDLHlCQUFhLEVBQUNGLElBQUksQ0FBQztJQUN4QyxJQUFJRyxjQUFjLEdBQUcsS0FBSztJQUUxQkYsSUFBSSxDQUFDRyxLQUFLLENBQUN4QixHQUFHLENBQUM7SUFFZixJQUFNeUIscUJBQXFCO01BQUEsSUFBQUMsSUFBQSxPQUFBQyxrQkFBQSxDQUFBbEQsT0FBQSxnQkFBQW1ELFlBQUEsQ0FBQW5ELE9BQUEsQ0FBQW9ELElBQUEsQ0FBRyxTQUFBQyxRQUFBO1FBQUEsSUFBQUMsZUFBQTtRQUFBLE9BQUFILFlBQUEsQ0FBQW5ELE9BQUEsQ0FBQXVELElBQUEsVUFBQUMsU0FBQUMsUUFBQTtVQUFBO1lBQUEsUUFBQUEsUUFBQSxDQUFBQyxJQUFBLEdBQUFELFFBQUEsQ0FBQUUsSUFBQTtjQUFBO2dCQUN0QkwsZUFBZSxHQUFHTSxRQUFRLENBQUNDLGFBQWEsQ0FBQyxNQUFNLENBQUM7Z0JBRXRELElBQUFDLDJCQUFvQixFQUFDO2tCQUNuQkMsZUFBZSxFQUFFVCxlQUFlO2tCQUNoQ1UsTUFBTSxFQUFFcEI7Z0JBQ1YsQ0FBQyxDQUFDO2dCQUVGLElBQUFxQix1QkFBYSxFQUFDLE1BQU0sRUFBRXpDLEtBQUssQ0FBQzBDLEVBQUUsRUFBRTlDLFdBQVcsQ0FBQytDLGdCQUFnQixDQUFDLENBQUNDLElBQUksQ0FDaEUsVUFBQ0MsUUFBUSxFQUFLO2tCQUNaQyxpQkFBUSxDQUFDQyxNQUFNLGVBQ2IzRixNQUFBLENBQUFvQixPQUFBLENBQUE2RCxhQUFBLENBQUM1RSxPQUFBLENBQUF1RixNQUFNO29CQUNMQyxNQUFNLEVBQUVqQyxTQUFVO29CQUNsQlosUUFBUSxFQUFFQSxRQUFTO29CQUNuQjhDLE1BQU0sRUFBRXZELFdBQVcsQ0FBQ3dELEtBQU07b0JBQzFCQyxLQUFLLEVBQUUxRCxVQUFVLENBQUMyRCxRQUFTO29CQUMzQnRELEdBQUcsRUFBRUEsR0FBSTtvQkFDVEgsV0FBVyxFQUFFQSxXQUFZO29CQUN6QmlELFFBQVEsRUFBRUEsUUFBUztvQkFDbkJqQyxPQUFPLEVBQUVBO2tCQUFRLENBQ2xCLENBQUMsRUFDRmtCLGVBQ0YsQ0FBQztnQkFDSCxDQUNGLENBQUM7Z0JBRUQsSUFBSSxDQUFDVixJQUFJLENBQUNrQyxXQUFXLENBQUMsQ0FBQyxFQUFFO2tCQUN2QmxDLElBQUksQ0FBQ21DLFNBQVMsQ0FBQyxDQUFDO2dCQUNsQjtjQUFDO2NBQUE7Z0JBQUEsT0FBQXRCLFFBQUEsQ0FBQXVCLElBQUE7WUFBQTtVQUFBO1FBQUEsR0FBQTNCLE9BQUE7TUFBQSxDQUNGO01BQUEsZ0JBN0JLTCxxQkFBcUJBLENBQUE7UUFBQSxPQUFBQyxJQUFBLENBQUFnQyxLQUFBLE9BQUFDLFNBQUE7TUFBQTtJQUFBLEdBNkIxQjtJQUVEdEMsSUFBSSxDQUFDdUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxZQUFNO01BQ3JCdkMsSUFBSSxDQUFDa0MsV0FBVyxDQUFDLENBQUMsR0FBR2xDLElBQUksQ0FBQ3dDLFVBQVUsQ0FBQyxDQUFDLEdBQUdwQyxxQkFBcUIsQ0FBQyxDQUFDO01BQ2hFLElBQUFxQyx5QkFBa0IsRUFBQyx5QkFBeUIsRUFBRSxLQUFLLEVBQUU7UUFDbkRDLFFBQVEsRUFBRTlELEtBQUssQ0FBQzBDLEVBQUU7UUFDbEJxQixVQUFVLEVBQUUvRCxLQUFLLENBQUNnRTtNQUNwQixDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7SUFFRjVDLElBQUksQ0FBQ3VDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsWUFBTTtNQUN6QixJQUFJckMsY0FBYyxFQUFFO01BRXBCLElBQUEyQyxtQkFBTyxFQUFDN0MsSUFBSSxFQUFFLElBQUksRUFBRXBCLEtBQUssQ0FBQztNQUMxQnNCLGNBQWMsR0FBRyxJQUFJO0lBQ3ZCLENBQUMsQ0FBQztJQUVGRixJQUFJLENBQUN1QyxFQUFFLENBQUMsVUFBVSxFQUFFLFlBQU07TUFDeEIsSUFBSXZDLElBQUksQ0FBQ2tDLFdBQVcsQ0FBQyxDQUFDLEVBQUU7TUFFeEIsSUFBQVcsbUJBQU8sRUFBQzdDLElBQUksRUFBRSxLQUFLLEVBQUVwQixLQUFLLENBQUM7TUFDM0JzQixjQUFjLEdBQUcsS0FBSztJQUN4QixDQUFDLENBQUM7SUFFRkYsSUFBSSxDQUFDdUMsRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFNO01BQzFCLElBQUFNLG1CQUFPLEVBQUM3QyxJQUFJLEVBQUUsS0FBSyxFQUFFcEIsS0FBSyxDQUFDO01BQzNCc0IsY0FBYyxHQUFHLEtBQUs7SUFDeEIsQ0FBQyxDQUFDO0lBRUZGLElBQUksQ0FBQ3VDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsWUFBTTtNQUN6QixJQUFBTSxtQkFBTyxFQUFDN0MsSUFBSSxFQUFFLElBQUksRUFBRXBCLEtBQUssQ0FBQztNQUMxQnNCLGNBQWMsR0FBRyxJQUFJO0lBQ3ZCLENBQUMsQ0FBQztFQUNKLENBQUM7RUFFRCxJQUFNNEMsV0FBVyxHQUFHLFNBQWRBLFdBQVdBLENBQUEsRUFBUztJQUN4QixJQUFJbkQsY0FBMkIsR0FBRyxDQUFDZixLQUFLLENBQUMsVUFBVSxDQUFDLEVBQUVBLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6RSxJQUFJZSxjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFO0lBRWhDLElBQUksSUFBQW9ELHVCQUFXLEVBQUNuRSxLQUFLLENBQUMsSUFBSVMsUUFBUSxLQUFLLElBQUksRUFBRTtNQUMzQ0ssWUFBWSxDQUFDQyxjQUFjLENBQUM7SUFDOUIsQ0FBQyxNQUFNO01BQ0wsSUFBQXFELDZCQUFpQixFQUNmckQsY0FBYyxFQUNkZixLQUFLLEVBQ0xELEdBQUcsRUFDSCxJQUFJLEVBQ0pHLFVBQVUsRUFDVkMsWUFBWSxFQUNaSyxnQkFDRixDQUFDO0lBQ0g7RUFDRixDQUFDO0VBRUQsSUFBQTZELGdCQUFTLEVBQUMsWUFBTTtJQUNkSCxXQUFXLENBQUMsQ0FBQztFQUNmLENBQUMsRUFBRSxDQUFDakUsUUFBUSxDQUFDLENBQUM7RUFFZCxvQkFBTzdDLE1BQUEsQ0FBQW9CLE9BQUEsQ0FBQTZELGFBQUEsQ0FBQWpGLE1BQUEsQ0FBQW9CLE9BQUEsQ0FBQThGLFFBQUEsTUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELElBQU1DLGVBQWUsR0FBRyxJQUFBQyxtQkFBTyxFQUFDakYsZUFBZSxDQUFDO0FBQUMsSUFBQWtGLFFBQUEsR0FDbENGLGVBQWUsZUFDNUJHLGNBQUssQ0FBQ0MsSUFBSSxDQUFDOUUsV0FBVyxFQUFFLFVBQUMrRSxTQUFTLEVBQUVDLFNBQVMsRUFBSztFQUNoRCxPQUNFRCxTQUFTLENBQUNuRixXQUFXLENBQUNxRixZQUFZLEtBQUtELFNBQVMsQ0FBQ3BGLFdBQVcsQ0FBQ3FGLFlBQVk7QUFFN0UsQ0FBQyxDQUNILENBQUM7QUFBQUMsT0FBQSxDQUFBdkcsT0FBQSxHQUFBaUcsUUFBQSJ9
|