@kando-env/kando-ui 1.2.423-alpha.0 → 1.2.424-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/Widgets/Map/Map.js
CHANGED
|
@@ -185,6 +185,7 @@ var Map = function Map(_ref) {
|
|
|
185
185
|
var handlePointsCheckboxChange = function handlePointsCheckboxChange(isChecked) {
|
|
186
186
|
setOnlyMonitoredPoints(isChecked);
|
|
187
187
|
if (mapRef.current !== null) {
|
|
188
|
+
setOnlyMonitoredPoints(isChecked);
|
|
188
189
|
var zoom = _MapUtils.zoomLevels[mapRef.current.getZoom()];
|
|
189
190
|
if (isChecked) {
|
|
190
191
|
// Hide unmonitored points when "show only monitored" is checked
|
|
@@ -210,11 +211,11 @@ var Map = function Map(_ref) {
|
|
|
210
211
|
(0, _MapUtils.setupCheckboxListener)('#monitored-points-with-sampler-checkbox', handlePointsWithSamplerCheckboxChange);
|
|
211
212
|
};
|
|
212
213
|
var zoomRulesForEventsView = function zoomRulesForEventsView() {
|
|
213
|
-
var payload = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, memoizedEdges, memoizedUnmonitoredEdges, memoizedUnmonitoredPoints, memoizedMonitoredPoints);
|
|
214
|
+
var payload = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, memoizedEdges, !onlyMonitoredPoints && memoizedUnmonitoredEdges, !onlyMonitoredPoints && memoizedUnmonitoredPoints, memoizedMonitoredPoints);
|
|
214
215
|
return payload;
|
|
215
216
|
};
|
|
216
217
|
var zoomRulesForDashaboardMaps = function zoomRulesForDashaboardMaps() {
|
|
217
|
-
var payload = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, memoizedUnmonitoredPoints, memoizedMonitoredPoints);
|
|
218
|
+
var payload = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !onlyMonitoredPoints && memoizedUnmonitoredPoints, memoizedMonitoredPoints);
|
|
218
219
|
if (edgesZoomLevels.includes(_MapUtils.zoomLevels[mapZoomLevel])) {
|
|
219
220
|
payload = zoomRulesForEventsView();
|
|
220
221
|
}
|
|
@@ -368,4 +369,4 @@ var Map = function Map(_ref) {
|
|
|
368
369
|
}), renderAreas(), (0, _MapUtils.shoudLoadDependentMapObjects)(edges, areas, global_data, mapRef, points) && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, memoizedEvent(), memoizedZoomControl(), children))));
|
|
369
370
|
};
|
|
370
371
|
exports.Map = Map;
|
|
371
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3JlYWN0UmVkdXgiLCJfRXJyb3JCb3VuZGFyeSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfQXJlYVBvbHlnb25zIiwiX0VkZ2VzIiwiX1BvaW50TWFya2VycyIsIl9FdmVudCIsIl9NYXBVdGlscyIsIl90aGVtZSIsIl9MaXN0Q29udGV4dCIsIl9hY3Rpb25zIiwiX2FjdGlvbnMyIiwiX1BvaW50SWNvbjIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIk1hcCIsIl9yZWYiLCJhcmVhcyIsImVkZ2VzIiwicG9pbnRzIiwiZ2xvYmFsX2RhdGEiLCJhcmVhVG9DZW50ZXJCeSIsImZvY3VzZWRFdmVudCIsImhvdmVyZWRFdmVudCIsIl9yZWYkaGlkZUVkZ2VzIiwiaGlkZUVkZ2VzIiwiX3JlZiRtYXBCb3hTdHlsZSIsIm1hcEJveFN0eWxlIiwibGVhZmxldE1hcCIsIm1hcERlZmF1bHQiLCJjaGlsZHJlbiIsIl9yZWYkaW5jbHVkZVVubW9uaXRvciIsImluY2x1ZGVVbm1vbml0b3JlZFBvaW50cyIsIl9yZWYkaW5jbHVkZVVubW9uaXRvcjIiLCJpbmNsdWRlVW5tb25pdG9yZWREZXNjZW5kYW50c0ZvckVkZ2VzIiwiX3JlZiRmb3JFdmVudHNWaWV3IiwiZm9yRXZlbnRzVmlldyIsIl9yZWYkc3R5bGUiLCJzdHlsZSIsIl9yZWYkZm9yV1dUUERhc2hib2FyZCIsImZvcldXVFBEYXNoYm9hcmQiLCJtYXAiLCJtYXBSZWYiLCJ1c2VSZWYiLCJkaXNwYXRjaCIsInVzZURpc3BhdGNoIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwibWFwWm9vbUxldmVsIiwic2V0TWFwWm9vbUxldmVsIiwiX3VzZVNlbGVjdGVkSXRlbSIsInVzZVNlbGVjdGVkSXRlbSIsInNlbGVjdGVkSXRlbSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiZWRnZXNDaGVja2JveCIsInNldEVkZ2VzQ2hlY2tib3giLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsIm9ubHlNb25pdG9yZWRQb2ludHMiLCJzZXRPbmx5TW9uaXRvcmVkUG9pbnRzIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJzaG93U2FtcGxlckljb24iLCJzZXRTaG93U2FtcGxlckljb24iLCJlZGdlc0NoZWNrYm94UmVmIiwiaG92ZXJlZEV2ZW50UHJlc2VudCIsInVzZU1lbW8iLCJ1bmRlZmluZWQiLCJmb2N1c2VkRXZlbnRQcmVzZW50IiwiX3VzZVN0YXRlOSIsImxheWVyR3JvdXAiLCJfdXNlU3RhdGUxMCIsImZhY3Rvcmllc1BhcmVudEdyb3VwIiwiX3VzZVN0YXRlMTEiLCJfdXNlU3RhdGUxMiIsInVubW9uaXRvcmVkRmFjdG9yaWVzR3JvdXAiLCJfdXNlU3RhdGUxMyIsIl91c2VTdGF0ZTE0IiwibW9uaXRvcmVkRmFjdG9yaWVzR3JvdXAiLCJfdXNlU3RhdGUxNSIsIl91c2VTdGF0ZTE2IiwidW5tb25pdG9yZWRFZGdlc0dyb3VwIiwiX3VzZVN0YXRlMTciLCJfdXNlU3RhdGUxOCIsIm1vbml0b3JlZEVkZ2VzR3JvdXAiLCJfdXNlU3RhdGUxOSIsIl91c2VTdGF0ZTIwIiwid3d0cHNMYXllckdyb3VwIiwiX3VzZVN0YXRlMjEiLCJfdXNlU3RhdGUyMiIsImNvbGxlY3RvcnNMYXllckdyb3VwIiwiX3VzZVN0YXRlMjMiLCJGZWF0dXJlR3JvdXAiLCJfdXNlU3RhdGUyNCIsImFyZWFzTGF5ZXJHcm91cCIsInJlbmRlclBvaW50TWFya2VycyIsImZpbHRlcmVkUG9pbnRzIiwicHJvcHMiLCJjdXJyZW50IiwiY3JlYXRlRWxlbWVudCIsIlBvaW50TWFya2VycyIsImFzc2lnbiIsIm1lbW9pemVkTW9uaXRvcmVkUG9pbnRzIiwibGVuZ3RoIiwibW9uaXRvcmVkUG9pbnRzIiwiZmlsdGVyUG9pbnRzIiwib25seU1vbml0b3JlZCIsInJlc3VsdCIsInJlcmVuZGVyIiwiem9vbUxldmVscyIsImZhY3Rvcmllc0dyb3VwIiwid3d0cHNHcm91cCIsImNvbGxlY3RvcnNHcm91cCIsIm1lbW9pemVkVW5tb25pdG9yZWRQb2ludHMiLCJ1bm1vbml0b3JlZFBvaW50cyIsInJlbmRlckVkZ2VzIiwiZmlsdGVyZWRFZGdlcyIsIm1lbW9pemVkRWRnZXMiLCJtb25pdG9yZWRFZGdlcyIsImZpbHRlckVkZ2VzIiwiaGlkZUFycm93cyIsImFsbG93VW5tb25pdG9yZWREZXNjZW5kYW50cyIsImdyb3VwIiwibWVtb2l6ZWRVbm1vbml0b3JlZEVkZ2VzIiwidW5tb25pdG9yZWRFZGdlcyIsImhhbmRsZUVkZ2VzQ2hlY2tib3hDaGFuZ2UiLCJpc0NoZWNrZWQiLCJlZGdlc1pvb21MZXZlbHMiLCJoYW5kbGVQb2ludHNDaGVja2JveENoYW5nZSIsInpvb20iLCJnZXRab29tIiwicmVtb3ZlTGF5ZXIiLCJyZW1vdmVGcm9tIiwiYWRkTGF5ZXIiLCJpbmNsdWRlcyIsImFkZFRvIiwiaGFuZGxlUG9pbnRzV2l0aFNhbXBsZXJDaGVja2JveENoYW5nZSIsInRyYWNrTGF5ZXJib3giLCJzZXR1cENoZWNrYm94TGlzdGVuZXIiLCJ6b29tUnVsZXNGb3JFdmVudHNWaWV3IiwicGF5bG9hZCIsIkZyYWdtZW50Iiwiem9vbVJ1bGVzRm9yRGFzaGFib2FyZE1hcHMiLCJtZW1vaXplZFpvb21Db250cm9sIiwibWVtb2l6ZWRFdmVudCIsImZvY3VzZWQiLCJob3ZlcmVkIiwiRXZlbnQiLCJldmVudCIsImluY2x1ZGVOZXR3b3JrIiwidXNlRWZmZWN0IiwiYWxsR3JvdXBzIiwibWF0Y2hpbmdNYXJrZXJzIiwiZm9yRWFjaCIsImdldExheWVycyIsImxheWVyIiwiTWFya2VyIiwicHVzaCIsIm1hcmtlciIsIm1hcmtlckljb25EYXRhIiwibWFya2VyQ2xpY2tlZCIsImlzUG9wdXBPcGVuIiwiaGlkZVRleHQiLCJpY29uIiwiZ2V0UG9pbnRJY29uQnlUeXBlIiwidHlwZSIsInRpdGxlIiwic3VidGl0bGUiLCJoYXNJc3N1ZXMiLCJzaG91bGRJbnN0YWxsIiwic2V0SWNvbiIsImNsZWFudXAiLCJjbGVhclBvaW50cyIsImNsZWFyQXJlYXMiLCJjbGVhckxheWVycyIsImVhY2hMYXllciIsIlRpbGVMYXllciIsIndhdGVyQXV0aG9yaXR5SWQiLCJpbml0aWFsaXplTWFwIiwic2F0ZWxsaXRlIiwiaXNWYWxpZEFyZWEiLCJhcmVhIiwic2hhcGVfZGF0YSIsImZsYXQiLCJhcmVhRm9jdXNMb2dpYyIsIl9tYXBSZWYkY3VycmVudCIsImNsaWNrZWQiLCJrYW5kb19vYmplY3RfaWQiLCJmaXJlIiwiUG9seWdvbiIsInJlbmRlckFyZWFzIiwic2hvdWxkTG9hZE1hcE9iamVjdHMiLCJBcmVhUG9seWdvbnMiLCJtYXBab29tIiwiZmVhdHVyZUdyb3VwIiwiY2xhc3NOYW1lIiwiY29uY2F0Iiwic2lkZW5hdkV4cGFuZGVkIiwiaWQiLCJzaG91ZExvYWREZXBlbmRlbnRNYXBPYmplY3RzIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9NYXAudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1pZ25vcmVcbmltcG9ydCAqIGFzIEwgZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgJ3NyYy91dGlsaXRpZXMvcG9seWxpbmVkZWNvcmF0b3InO1xuaW1wb3J0ICdsZWFmbGV0Lm1hcmtlcmNsdXN0ZXInO1xuaW1wb3J0ICdsZWFmbGV0LnBhdHRlcm4nO1xuaW1wb3J0ICdsZWFmbGV0LmhlYXQnO1xuaW1wb3J0IFJlYWN0LCB7XG4gIENTU1Byb3BlcnRpZXMsXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2ggfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBJQXJlYSB9IGZyb20gJ3NyYy9zdG9yZS9hcmVhcy9tb2RlbHMvSUFyZWEnO1xuaW1wb3J0IHsgSUVkZ2UgfSBmcm9tICdzcmMvc3RvcmUvZWRnZXMvbW9kZWxzL0lFZGdlJztcbmltcG9ydCB7IElFdmVudCB9IGZyb20gJ3NyYy9zdG9yZS9ldmVudHMvbW9kZWxzL0lFdmVudCc7XG5pbXBvcnQgeyBJR2xvYmFsU3RhdGUgfSBmcm9tICdzcmMvc3RvcmUvZ2xvYmFsL21vZGVscy9JR2xvYmFsU3RhdGUnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCBFcnJvckJvdW5kYXJ5IGZyb20gJ3NyYy91dGlsaXRpZXMvRXJyb3JCb3VuZGFyeSc7XG5pbXBvcnQgeyBBcmVhUG9seWdvbnMgfSBmcm9tICcuL2FyZWFzL0FyZWFQb2x5Z29ucyc7XG5pbXBvcnQgRWRnZXMgZnJvbSAnLi9lZGdlcy9FZGdlcyc7XG5pbXBvcnQgJy4vTWFwLnNjc3MnO1xuaW1wb3J0ICcuL3BvaW50cy9Qb2ludEljb24uc2Nzcyc7XG5pbXBvcnQgeyBQb2ludE1hcmtlcnMgfSBmcm9tICcuL3BvaW50cy9Qb2ludE1hcmtlcnMnO1xuaW1wb3J0IHsgRXZlbnQgfSBmcm9tICcuL2V2ZW50cy9FdmVudCc7XG5pbXBvcnQge1xuICBhcmVhRm9jdXNMb2dpYyxcbiAgZmlsdGVyRWRnZXMsXG4gIGZpbHRlclBvaW50cyxcbiAgaW5pdGlhbGl6ZU1hcCxcbiAgaXNWYWxpZEFyZWEsXG4gIHNldHVwQ2hlY2tib3hMaXN0ZW5lcixcbiAgc2hvdWRMb2FkRGVwZW5kZW50TWFwT2JqZWN0cyxcbiAgc2hvdWxkTG9hZE1hcE9iamVjdHMsXG4gIHpvb21MZXZlbHMsXG59IGZyb20gJy4vTWFwVXRpbHMnO1xuaW1wb3J0IHsgbGVhZmxldE1hcCB9IGZyb20gJy4uLy4uL3N0eWxlcy90aGVtZS90aGVtZSc7XG5pbXBvcnQgeyB1c2VTZWxlY3RlZEl0ZW0gfSBmcm9tICdzcmMvcGFnZXMvRGFzaGJvYXJkTWFwL0xpc3RDb250ZXh0JztcbmltcG9ydCB7IGNsZWFyQXJlYXMgfSBmcm9tICdzcmMvc3RvcmUvYXJlYXMvYWN0aW9ucyc7XG5pbXBvcnQgeyBjbGVhclBvaW50cyB9IGZyb20gJ3NyYy9zdG9yZS9wb2ludHMvYWN0aW9ucyc7XG5pbXBvcnQgeyBnZXRQb2ludEljb25CeVR5cGUgfSBmcm9tICcuL3BvaW50cy9Qb2ludEljb24nO1xucmVxdWlyZSgnbGVhZmxldC5tYXJrZXJjbHVzdGVyJyk7XG5cbmludGVyZmFjZSBNYXBQcm9wcyB7XG4gIGFyZWFzOiBJQXJlYVtdO1xuICBlZGdlcz86IElFZGdlW107XG4gIHBvaW50cz86IElQb2ludFtdO1xuICBnbG9iYWxfZGF0YTogSUdsb2JhbFN0YXRlO1xuICBhcmVhVG9DZW50ZXJCeT86IGFueTtcbiAgZm9jdXNlZEV2ZW50PzogSUV2ZW50IHwgbnVsbDtcbiAgaG92ZXJlZEV2ZW50PzogSUV2ZW50IHwgbnVsbDtcbiAgaGlkZUVkZ2VzPzogYm9vbGVhbjtcbiAgbWFwQm94U3R5bGU/OiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogYW55O1xuICBzdHlsZT86IENTU1Byb3BlcnRpZXM7XG4gIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50cz86IGJvb2xlYW47XG4gIGluY2x1ZGVVbm1vbml0b3JlZERlc2NlbmRhbnRzRm9yRWRnZXM/OiBib29sZWFuO1xuICBmb3JFdmVudHNWaWV3OiBib29sZWFuO1xuICBmb3JXV1RQRGFzaGJvYXJkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IE1hcDogUmVhY3QuRkM8TWFwUHJvcHM+ID0gKHtcbiAgYXJlYXMsXG4gIGVkZ2VzLFxuICBwb2ludHMsXG4gIGdsb2JhbF9kYXRhLFxuICBhcmVhVG9DZW50ZXJCeSxcbiAgZm9jdXNlZEV2ZW50LFxuICBob3ZlcmVkRXZlbnQsXG4gIGhpZGVFZGdlcyA9IGZhbHNlLFxuICBtYXBCb3hTdHlsZSA9IGxlYWZsZXRNYXAubWFwRGVmYXVsdCxcbiAgY2hpbGRyZW4sXG4gIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50cyA9IHRydWUsXG4gIGluY2x1ZGVVbm1vbml0b3JlZERlc2NlbmRhbnRzRm9yRWRnZXMgPSBmYWxzZSxcbiAgZm9yRXZlbnRzVmlldyA9IGZhbHNlLFxuICBzdHlsZSA9IHt9LFxuICBmb3JXV1RQRGFzaGJvYXJkID0gZmFsc2UsXG59KSA9PiB7XG4gIGNvbnN0IHsgbWFwIH0gPSBnbG9iYWxfZGF0YTtcbiAgY29uc3QgbWFwUmVmID0gdXNlUmVmPEwuTWFwIHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgW21hcFpvb21MZXZlbCwgc2V0TWFwWm9vbUxldmVsXSA9IHVzZVN0YXRlKDIpO1xuICBjb25zdCB7IHNlbGVjdGVkSXRlbSB9ID0gdXNlU2VsZWN0ZWRJdGVtKCk7XG4gIGNvbnN0IFtlZGdlc0NoZWNrYm94LCBzZXRFZGdlc0NoZWNrYm94XSA9IHVzZVN0YXRlKHRydWUpO1xuICBjb25zdCBbb25seU1vbml0b3JlZFBvaW50cywgc2V0T25seU1vbml0b3JlZFBvaW50c10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtzaG93U2FtcGxlckljb24sIHNldFNob3dTYW1wbGVySWNvbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IGVkZ2VzQ2hlY2tib3hSZWYgPSB1c2VSZWYoZWRnZXNDaGVja2JveCk7XG5cbiAgY29uc3QgaG92ZXJlZEV2ZW50UHJlc2VudCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBob3ZlcmVkRXZlbnQgIT09IG51bGwgJiYgaG92ZXJlZEV2ZW50ICE9PSB1bmRlZmluZWQ7XG4gIH0sIFtob3ZlcmVkRXZlbnRdKTtcblxuICBjb25zdCBmb2N1c2VkRXZlbnRQcmVzZW50ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIGZvY3VzZWRFdmVudCAhPT0gbnVsbCAmJiBmb2N1c2VkRXZlbnQgIT09IHVuZGVmaW5lZDtcbiAgfSwgW2ZvY3VzZWRFdmVudF0pO1xuXG4gIC8vIEFkZCBwYXJlbnQgbGF5ZXIgZ3JvdXAgZm9yIGFsbCBmYWN0b3JpZXNcbiAgY29uc3QgW2ZhY3Rvcmllc1BhcmVudEdyb3VwXSA9IHVzZVN0YXRlKEwubGF5ZXJHcm91cCgpKTtcbiAgY29uc3QgW3VubW9uaXRvcmVkRmFjdG9yaWVzR3JvdXBdID0gdXNlU3RhdGUoTC5sYXllckdyb3VwKCkpO1xuICBjb25zdCBbbW9uaXRvcmVkRmFjdG9yaWVzR3JvdXBdID0gdXNlU3RhdGUoTC5sYXllckdyb3VwKCkpO1xuICBjb25zdCBbdW5tb25pdG9yZWRFZGdlc0dyb3VwXSA9IHVzZVN0YXRlKEwubGF5ZXJHcm91cCgpKTtcbiAgY29uc3QgW21vbml0b3JlZEVkZ2VzR3JvdXBdID0gdXNlU3RhdGUoTC5sYXllckdyb3VwKCkpO1xuICBjb25zdCBbd3d0cHNMYXllckdyb3VwXSA9IHVzZVN0YXRlKEwubGF5ZXJHcm91cCgpKTtcbiAgY29uc3QgW2NvbGxlY3RvcnNMYXllckdyb3VwXSA9IHVzZVN0YXRlKEwubGF5ZXJHcm91cCgpKTtcbiAgY29uc3QgW2FyZWFzTGF5ZXJHcm91cF0gPSB1c2VTdGF0ZShuZXcgTC5GZWF0dXJlR3JvdXAoKSk7XG5cbiAgY29uc3QgcmVuZGVyUG9pbnRNYXJrZXJzID0gKGZpbHRlcmVkUG9pbnRzLCBtYXBSZWYsIHByb3BzKSA9PlxuICAgIG1hcFJlZi5jdXJyZW50ICE9PSBudWxsICYmXG4gICAgcG9pbnRzICYmIChcbiAgICAgIDxQb2ludE1hcmtlcnNcbiAgICAgICAgbWFwPXttYXBSZWYuY3VycmVudH1cbiAgICAgICAgcG9pbnRzPXtmaWx0ZXJlZFBvaW50c31cbiAgICAgICAgc2hvd1NhbXBsZXJJY29uPXtzaG93U2FtcGxlckljb259XG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgIC8+XG4gICAgKTtcblxuICBjb25zdCBtZW1vaXplZE1vbml0b3JlZFBvaW50cyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghbWFwUmVmLmN1cnJlbnQgfHwgIXBvaW50cyB8fCBwb2ludHMubGVuZ3RoID09PSAwKSByZXR1cm4gbnVsbDtcblxuICAgIGNvbnN0IG1vbml0b3JlZFBvaW50cyA9IGZpbHRlclBvaW50cyhwb2ludHMsIHsgb25seU1vbml0b3JlZDogdHJ1ZSB9KTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IHJlbmRlclBvaW50TWFya2Vycyhtb25pdG9yZWRQb2ludHMsIG1hcFJlZiwge1xuICAgICAgaW5jbHVkZVVubW9uaXRvcmVkUG9pbnRzOiB0cnVlLFxuICAgICAgcmVyZW5kZXI6IHpvb21MZXZlbHNbbWFwWm9vbUxldmVsXSxcbiAgICAgIGZhY3Rvcmllc0dyb3VwOiBtb25pdG9yZWRGYWN0b3JpZXNHcm91cCxcbiAgICAgIHd3dHBzR3JvdXA6IHd3dHBzTGF5ZXJHcm91cCxcbiAgICAgIGNvbGxlY3RvcnNHcm91cDogY29sbGVjdG9yc0xheWVyR3JvdXAsXG4gICAgICBmb3JFdmVudHNWaWV3LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSwgW21hcFJlZi5jdXJyZW50LCBwb2ludHMsIG1hcFpvb21MZXZlbF0pO1xuXG4gIGNvbnN0IG1lbW9pemVkVW5tb25pdG9yZWRQb2ludHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIW1hcFJlZi5jdXJyZW50IHx8ICFwb2ludHMgfHwgcG9pbnRzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIG51bGw7XG5cbiAgICBjb25zdCB1bm1vbml0b3JlZFBvaW50cyA9IGZpbHRlclBvaW50cyhwb2ludHMsIHsgb25seU1vbml0b3JlZDogZmFsc2UgfSk7XG5cbiAgICBjb25zdCByZXN1bHQgPSByZW5kZXJQb2ludE1hcmtlcnModW5tb25pdG9yZWRQb2ludHMsIG1hcFJlZiwge1xuICAgICAgaW5jbHVkZVVubW9uaXRvcmVkUG9pbnRzOiB0cnVlLFxuICAgICAgcmVyZW5kZXI6IHpvb21MZXZlbHNbbWFwWm9vbUxldmVsXSxcbiAgICAgIGZhY3Rvcmllc0dyb3VwOiB1bm1vbml0b3JlZEZhY3Rvcmllc0dyb3VwLFxuICAgICAgd3d0cHNHcm91cDogd3d0cHNMYXllckdyb3VwLFxuICAgICAgY29sbGVjdG9yc0dyb3VwOiBjb2xsZWN0b3JzTGF5ZXJHcm91cCxcbiAgICAgIGZvckV2ZW50c1ZpZXcsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9LCBbbWFwUmVmLmN1cnJlbnQsIHBvaW50cywgbWFwWm9vbUxldmVsXSk7XG5cbiAgY29uc3QgcmVuZGVyRWRnZXMgPSAoZmlsdGVyZWRFZGdlcywgbWFwUmVmLCBlZGdlc0NoZWNrYm94LCBwcm9wcykgPT5cbiAgICBtYXBSZWYuY3VycmVudCAhPT0gbnVsbCAmJlxuICAgIGVkZ2VzQ2hlY2tib3ggJiYgKFxuICAgICAgPEVkZ2VzIGVkZ2VzPXtmaWx0ZXJlZEVkZ2VzfSBtYXA9e21hcFJlZi5jdXJyZW50fSB7Li4ucHJvcHN9IC8+XG4gICAgKTtcblxuICBjb25zdCBtZW1vaXplZEVkZ2VzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgbW9uaXRvcmVkRWRnZXMgPSBmaWx0ZXJFZGdlcyhlZGdlcywgcG9pbnRzLCB0cnVlKTtcblxuICAgIHJldHVybiByZW5kZXJFZGdlcyhtb25pdG9yZWRFZGdlcywgbWFwUmVmLCBlZGdlc0NoZWNrYm94LCB7XG4gICAgICBMLFxuICAgICAgcG9pbnRzLFxuICAgICAgaGlkZUVkZ2VzOiBmYWxzZSxcbiAgICAgIGhpZGVBcnJvd3M6IHRydWUsXG4gICAgICBhbGxvd1VubW9uaXRvcmVkRGVzY2VuZGFudHM6IGluY2x1ZGVVbm1vbml0b3JlZERlc2NlbmRhbnRzRm9yRWRnZXMsXG4gICAgICBncm91cDogbW9uaXRvcmVkRWRnZXNHcm91cCxcbiAgICB9KTtcbiAgfSwgW3BvaW50cywgZWRnZXNDaGVja2JveCwgbWFwWm9vbUxldmVsXSk7XG5cbiAgY29uc3QgbWVtb2l6ZWRVbm1vbml0b3JlZEVkZ2VzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKG9ubHlNb25pdG9yZWRQb2ludHMpIHJldHVybiBudWxsO1xuXG4gICAgY29uc3QgdW5tb25pdG9yZWRFZGdlcyA9IGZpbHRlckVkZ2VzKGVkZ2VzLCBwb2ludHMsIGZhbHNlKTtcblxuICAgIHJldHVybiByZW5kZXJFZGdlcyh1bm1vbml0b3JlZEVkZ2VzLCBtYXBSZWYsIGVkZ2VzQ2hlY2tib3gsIHtcbiAgICAgIEwsXG4gICAgICBwb2ludHMsXG4gICAgICBoaWRlRWRnZXM6IGZhbHNlLFxuICAgICAgaGlkZUFycm93czogdHJ1ZSxcbiAgICAgIGFsbG93VW5tb25pdG9yZWREZXNjZW5kYW50czogaW5jbHVkZVVubW9uaXRvcmVkRGVzY2VuZGFudHNGb3JFZGdlcyxcbiAgICAgIGdyb3VwOiB1bm1vbml0b3JlZEVkZ2VzR3JvdXAsXG4gICAgfSk7XG4gIH0sIFtwb2ludHMsIGVkZ2VzQ2hlY2tib3gsIG1hcFpvb21MZXZlbF0pO1xuXG4gIGNvbnN0IGhhbmRsZUVkZ2VzQ2hlY2tib3hDaGFuZ2UgPSAoaXNDaGVja2VkKSA9PiB7XG4gICAgc2V0RWRnZXNDaGVja2JveChpc0NoZWNrZWQpO1xuICB9O1xuXG4gIC8vIFRoaXMgdmFyaWFibGUgc3RvcmVzIHRoZSB6b29tIGxldmVscyB0aGUgZWRnZXMgYXJlIGRpc3BsYXllZFxuICAvLyBJdCBpcyB1c2VkIGluIHR3byBwbGFjZXMgaW4gdGhlIGNvZGUsIHNvIGl0IGlzIGJldHRlciB0byBzdG9yZSBpdCBpbiBvbmUgcGxhY2VcbiAgY29uc3QgZWRnZXNab29tTGV2ZWxzID0gWydTbWFsbCcsICdNZWRpdW0nLCAnTUxhcmdlJywgJ0xhcmdlJ107XG5cbiAgY29uc3QgaGFuZGxlUG9pbnRzQ2hlY2tib3hDaGFuZ2UgPSAoaXNDaGVja2VkKSA9PiB7XG4gICAgc2V0T25seU1vbml0b3JlZFBvaW50cyhpc0NoZWNrZWQpO1xuICAgIGlmIChtYXBSZWYuY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgbGV0IHpvb20gPSB6b29tTGV2ZWxzW21hcFJlZi5jdXJyZW50LmdldFpvb20oKV07XG5cbiAgICAgIGlmIChpc0NoZWNrZWQpIHtcbiAgICAgICAgLy8gSGlkZSB1bm1vbml0b3JlZCBwb2ludHMgd2hlbiBcInNob3cgb25seSBtb25pdG9yZWRcIiBpcyBjaGVja2VkXG4gICAgICAgIGZhY3Rvcmllc1BhcmVudEdyb3VwLnJlbW92ZUxheWVyKHVubW9uaXRvcmVkRmFjdG9yaWVzR3JvdXApO1xuICAgICAgICB1bm1vbml0b3JlZEVkZ2VzR3JvdXAucmVtb3ZlRnJvbShtYXBSZWYuY3VycmVudCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBTaG93IGFsbCBwb2ludHMgd2hlbiBcInNob3cgb25seSBtb25pdG9yZWRcIiBpcyB1bmNoZWNrZWRcbiAgICAgICAgZmFjdG9yaWVzUGFyZW50R3JvdXAuYWRkTGF5ZXIodW5tb25pdG9yZWRGYWN0b3JpZXNHcm91cCk7XG5cbiAgICAgICAgLy8gU2hvdyB1bm1vbml0b3JlZCBlZGdlcyBpZiBhdCBhcHByb3ByaWF0ZSB6b29tIGxldmVsXG4gICAgICAgIGlmIChlZGdlc0NoZWNrYm94UmVmLmN1cnJlbnQgJiYgZWRnZXNab29tTGV2ZWxzLmluY2x1ZGVzKHpvb20pKSB7XG4gICAgICAgICAgdW5tb25pdG9yZWRFZGdlc0dyb3VwLmFkZFRvKG1hcFJlZi5jdXJyZW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVQb2ludHNXaXRoU2FtcGxlckNoZWNrYm94Q2hhbmdlID0gKGlzQ2hlY2tlZCkgPT4ge1xuICAgIHNldFNob3dTYW1wbGVySWNvbihpc0NoZWNrZWQpO1xuICB9O1xuXG4gIGNvbnN0IHRyYWNrTGF5ZXJib3ggPSAoKSA9PiB7XG4gICAgc2V0dXBDaGVja2JveExpc3RlbmVyKCcjZWRnZXMtY2hlY2tib3gnLCBoYW5kbGVFZGdlc0NoZWNrYm94Q2hhbmdlKTtcbiAgICBzZXR1cENoZWNrYm94TGlzdGVuZXIoXG4gICAgICAnI21vbml0b3JlZC1wb2ludHMtY2hlY2tib3gnLFxuICAgICAgaGFuZGxlUG9pbnRzQ2hlY2tib3hDaGFuZ2UsXG4gICAgKTtcbiAgICBzZXR1cENoZWNrYm94TGlzdGVuZXIoXG4gICAgICAnI21vbml0b3JlZC1wb2ludHMtd2l0aC1zYW1wbGVyLWNoZWNrYm94JyxcbiAgICAgIGhhbmRsZVBvaW50c1dpdGhTYW1wbGVyQ2hlY2tib3hDaGFuZ2UsXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCB6b29tUnVsZXNGb3JFdmVudHNWaWV3ID0gKCkgPT4ge1xuICAgIGNvbnN0IHBheWxvYWQgPSAoXG4gICAgICA8PlxuICAgICAgICB7bWVtb2l6ZWRFZGdlc31cbiAgICAgICAge21lbW9pemVkVW5tb25pdG9yZWRFZGdlc31cbiAgICAgICAge21lbW9pemVkVW5tb25pdG9yZWRQb2ludHN9XG4gICAgICAgIHttZW1vaXplZE1vbml0b3JlZFBvaW50c31cbiAgICAgIDwvPlxuICAgICk7XG5cbiAgICByZXR1cm4gcGF5bG9hZDtcbiAgfTtcblxuICBjb25zdCB6b29tUnVsZXNGb3JEYXNoYWJvYXJkTWFwcyA9ICgpID0+IHtcbiAgICBsZXQgcGF5bG9hZCA9IChcbiAgICAgIDw+XG4gICAgICAgIHttZW1vaXplZFVubW9uaXRvcmVkUG9pbnRzfVxuICAgICAgICB7bWVtb2l6ZWRNb25pdG9yZWRQb2ludHN9XG4gICAgICA8Lz5cbiAgICApO1xuXG4gICAgaWYgKGVkZ2VzWm9vbUxldmVscy5pbmNsdWRlcyh6b29tTGV2ZWxzW21hcFpvb21MZXZlbF0pKSB7XG4gICAgICBwYXlsb2FkID0gem9vbVJ1bGVzRm9yRXZlbnRzVmlldygpO1xuICAgIH1cblxuICAgIHJldHVybiBwYXlsb2FkO1xuICB9O1xuXG4gIGNvbnN0IG1lbW9pemVkWm9vbUNvbnRyb2wgPSAoKSA9PiB7XG4gICAgLy8gY29uc3QgcGF5bG9hZCA9IGZvckV2ZW50c1ZpZXdcbiAgICAvLyAgID8gem9vbVJ1bGVzRm9yRXZlbnRzVmlldygpXG4gICAgLy8gICA6IHpvb21SdWxlc0ZvckRhc2hhYm9hcmRNYXBzKCk7XG4gICAgcmV0dXJuIHpvb21SdWxlc0ZvckRhc2hhYm9hcmRNYXBzKCk7XG4gIH07XG5cbiAgY29uc3QgbWVtb2l6ZWRFdmVudCA9ICgpID0+IHtcbiAgICBpZiAoZm9jdXNlZEV2ZW50UHJlc2VudCkge1xuICAgICAgZm9jdXNlZEV2ZW50IS5mb2N1c2VkID0gZm9jdXNlZEV2ZW50UHJlc2VudDtcbiAgICAgIGZvY3VzZWRFdmVudCEuaG92ZXJlZCA9ICFmb2N1c2VkRXZlbnRQcmVzZW50O1xuICAgIH1cblxuICAgIGlmIChob3ZlcmVkRXZlbnRQcmVzZW50KSB7XG4gICAgICBob3ZlcmVkRXZlbnQhLmhvdmVyZWQgPSBob3ZlcmVkRXZlbnRQcmVzZW50O1xuICAgICAgaG92ZXJlZEV2ZW50IS5mb2N1c2VkID0gIWhvdmVyZWRFdmVudFByZXNlbnQ7XG4gICAgfVxuXG4gICAgaWYgKCFob3ZlcmVkRXZlbnRQcmVzZW50ICYmICFmb2N1c2VkRXZlbnRQcmVzZW50KSByZXR1cm4gPD48Lz47XG5cbiAgICByZXR1cm4gKFxuICAgICAgPEV2ZW50XG4gICAgICAgIGV2ZW50PXtmb2N1c2VkRXZlbnQhIHx8IGhvdmVyZWRFdmVudCF9XG4gICAgICAgIG1hcD17bWFwfVxuICAgICAgICBlZGdlcz17ZWRnZXMhfVxuICAgICAgICBwb2ludHM9e3BvaW50cyF9XG4gICAgICAgIGluY2x1ZGVOZXR3b3JrPXshaG92ZXJlZEV2ZW50UHJlc2VudH1cbiAgICAgIC8+XG4gICAgKTtcbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGVkZ2VzQ2hlY2tib3hSZWYuY3VycmVudCA9IGVkZ2VzQ2hlY2tib3g7XG4gIH0sIFtlZGdlc0NoZWNrYm94XSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAobWFwUmVmLmN1cnJlbnQpIHtcbiAgICAgIGNvbnN0IGFsbEdyb3VwcyA9IFtcbiAgICAgICAgbW9uaXRvcmVkRmFjdG9yaWVzR3JvdXAsXG4gICAgICAgIHVubW9uaXRvcmVkRmFjdG9yaWVzR3JvdXAsXG4gICAgICAgIHd3dHBzTGF5ZXJHcm91cCxcbiAgICAgICAgY29sbGVjdG9yc0xheWVyR3JvdXAsXG4gICAgICBdO1xuXG4gICAgICBsZXQgbWF0Y2hpbmdNYXJrZXJzID0gW107XG5cbiAgICAgIGFsbEdyb3Vwcy5mb3JFYWNoKChncm91cCkgPT4ge1xuICAgICAgICBncm91cC5nZXRMYXllcnMoKS5mb3JFYWNoKChsYXllcikgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGxheWVyIGluc3RhbmNlb2YgTC5NYXJrZXIgJiZcbiAgICAgICAgICAgIGxheWVyWydrYW5kb19oYXNfc2FtcGxlciddID09PSB0cnVlXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBtYXRjaGluZ01hcmtlcnMucHVzaChsYXllcik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgICBtYXRjaGluZ01hcmtlcnMuZm9yRWFjaCgobWFya2VyKSA9PiB7XG4gICAgICAgIG1hcmtlclsna2FuZG9fc2hvd19zYW1wbGVyJ10gPSBzaG93U2FtcGxlckljb247XG5cbiAgICAgICAgY29uc3QgbWFya2VySWNvbkRhdGEgPSBtYXJrZXJbJ2thbmRvX2ljb25fZGF0YSddO1xuICAgICAgICBjb25zdCBtYXJrZXJDbGlja2VkID0gbWFya2VyLmlzUG9wdXBPcGVuKCkgfHwgZmFsc2U7XG4gICAgICAgIGNvbnN0IGhpZGVUZXh0ID0gbWFya2VyQ2xpY2tlZCA9PT0gZmFsc2U7XG5cbiAgICAgICAgaWYgKG1hcmtlckljb25EYXRhKSB7XG4gICAgICAgICAgY29uc3QgaWNvbiA9IGdldFBvaW50SWNvbkJ5VHlwZShcbiAgICAgICAgICAgIG1hcmtlckljb25EYXRhPy50eXBlIHx8ICcnLFxuICAgICAgICAgICAgbWFya2VySWNvbkRhdGE/LnRpdGxlIHx8ICcnLFxuICAgICAgICAgICAgbWFya2VySWNvbkRhdGE/LnN1YnRpdGxlIHx8ICcnLFxuICAgICAgICAgICAgbWFya2VyQ2xpY2tlZCxcbiAgICAgICAgICAgIGhpZGVUZXh0LFxuICAgICAgICAgICAgbWFya2VySWNvbkRhdGE/Lmhhc0lzc3VlcyB8fCBmYWxzZSxcbiAgICAgICAgICAgIHNob3dTYW1wbGVySWNvbixcbiAgICAgICAgICAgIG1hcmtlckljb25EYXRhPy5zaG91bGRJbnN0YWxsIHx8IGZhbHNlLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBtYXJrZXIuc2V0SWNvbihpY29uKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9LCBbc2hvd1NhbXBsZXJJY29uXSk7XG5cbiAgLy8gdXNlRWZmZWN0KCgpID0+IHtcbiAgLy8gICByZXR1cm4gZnVuY3Rpb24gY2xlYW51cCgpIHtcbiAgLy8gICAgIGNvbGxlY3RvcnNMYXllckdyb3VwLmNsZWFyTGF5ZXJzKCk7XG4gIC8vICAgICBtYXBSZWYuY3VycmVudD8ucmVtb3ZlTGF5ZXIoY29sbGVjdG9yc0xheWVyR3JvdXApO1xuICAvLyAgIH07XG4gIC8vIH0sIFtmb2N1c2VkRXZlbnQsIGdsb2JhbF9kYXRhLmV2ZW50RmlsdGVyUGFyYW1dKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiBmdW5jdGlvbiBjbGVhbnVwKCkge1xuICAgICAgaWYgKGZvckV2ZW50c1ZpZXcgJiYgbWFwUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgZGlzcGF0Y2goY2xlYXJQb2ludHMoKSk7XG4gICAgICAgIGRpc3BhdGNoKGNsZWFyQXJlYXMoKSk7XG4gICAgICAgIHd3dHBzTGF5ZXJHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgICBhcmVhc0xheWVyR3JvdXAuY2xlYXJMYXllcnMoKTtcbiAgICAgICAgdW5tb25pdG9yZWRGYWN0b3JpZXNHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgICBtb25pdG9yZWRGYWN0b3JpZXNHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgICBmYWN0b3JpZXNQYXJlbnRHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgICBtb25pdG9yZWRFZGdlc0dyb3VwLmNsZWFyTGF5ZXJzKCk7XG4gICAgICAgIGNvbGxlY3RvcnNMYXllckdyb3VwLmNsZWFyTGF5ZXJzKCk7XG4gICAgICAgIHVubW9uaXRvcmVkRWRnZXNHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgICBtYXBSZWYuY3VycmVudC5yZW1vdmVMYXllcih1bm1vbml0b3JlZEVkZ2VzR3JvdXApO1xuICAgICAgICBtYXBSZWYuY3VycmVudC5yZW1vdmVMYXllcihtb25pdG9yZWRFZGdlc0dyb3VwKTtcbiAgICAgICAgbWFwUmVmLmN1cnJlbnQucmVtb3ZlTGF5ZXIod3d0cHNMYXllckdyb3VwKTtcbiAgICAgICAgbWFwUmVmLmN1cnJlbnQucmVtb3ZlTGF5ZXIoY29sbGVjdG9yc0xheWVyR3JvdXApO1xuICAgICAgICBtYXBSZWYuY3VycmVudC5yZW1vdmVMYXllcihhcmVhc0xheWVyR3JvdXApO1xuICAgICAgICBtYXBSZWYuY3VycmVudC5yZW1vdmVMYXllcihmYWN0b3JpZXNQYXJlbnRHcm91cCk7XG5cbiAgICAgICAgbWFwUmVmLmN1cnJlbnQuZWFjaExheWVyKChsYXllcikgPT4ge1xuICAgICAgICAgIGlmIChsYXllciBpbnN0YW5jZW9mIEwuVGlsZUxheWVyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIG1hcFJlZi5jdXJyZW50LnJlbW92ZUxheWVyKGxheWVyKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW2dsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWRdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghbWFwUmVmLmN1cnJlbnQpIHtcbiAgICAgIGluaXRpYWxpemVNYXAoXG4gICAgICAgIG1hcFpvb21MZXZlbCxcbiAgICAgICAgbWFwQm94U3R5bGUsXG4gICAgICAgIGxlYWZsZXRNYXAuc2F0ZWxsaXRlLFxuICAgICAgICBtYXBSZWYsXG4gICAgICAgIGRpc3BhdGNoLFxuICAgICAgICBpc1ZhbGlkQXJlYSxcbiAgICAgICAgYXJlYVRvQ2VudGVyQnksXG4gICAgICAgIHNldE1hcFpvb21MZXZlbCxcbiAgICAgICAgZm9yV1dUUERhc2hib2FyZCxcbiAgICAgICAgdHJ1ZSxcbiAgICAgICAgZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCxcbiAgICAgICk7XG5cbiAgICAgIC8vIEluaXRpYWxpemUgcGFyZW50IGZhY3RvcnkgZ3JvdXBcbiAgICAgIGlmIChtYXBSZWYuY3VycmVudCkge1xuICAgICAgICBmYWN0b3JpZXNQYXJlbnRHcm91cC5hZGRUbyhtYXBSZWYuY3VycmVudCk7XG4gICAgICAgIGZhY3Rvcmllc1BhcmVudEdyb3VwLmFkZExheWVyKG1vbml0b3JlZEZhY3Rvcmllc0dyb3VwKTtcbiAgICAgICAgZmFjdG9yaWVzUGFyZW50R3JvdXAuYWRkTGF5ZXIodW5tb25pdG9yZWRGYWN0b3JpZXNHcm91cCk7XG4gICAgICB9XG5cbiAgICAgIHRyYWNrTGF5ZXJib3goKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0TWFwWm9vbUxldmVsKG1hcFJlZi5jdXJyZW50LmdldFpvb20oKSk7XG4gICAgICBpZiAoIWFyZWFUb0NlbnRlckJ5KSB7XG4gICAgICAgIGFyZWFUb0NlbnRlckJ5ID0gYXJlYXMubWFwKChhcmVhKSA9PiBhcmVhLnNoYXBlX2RhdGEpLmZsYXQoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFmb2N1c2VkRXZlbnQpIHtcbiAgICAgICAgYXJlYUZvY3VzTG9naWMobWFwUmVmLCBpc1ZhbGlkQXJlYSwgYXJlYVRvQ2VudGVyQnkpO1xuICAgICAgfVxuICAgIH1cbiAgfSwgW21hcFJlZi5jdXJyZW50LCBhcmVhVG9DZW50ZXJCeV0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IGNsaWNrZWQgPSBmYWxzZTtcblxuICAgIG1hcFJlZi5jdXJyZW50Py5lYWNoTGF5ZXIoKGxheWVyKSA9PiB7XG4gICAgICBpZiAoY2xpY2tlZCkgcmV0dXJuO1xuXG4gICAgICBpZiAoXG4gICAgICAgIGxheWVyPy5rYW5kb19vYmplY3RfaWQgPT09IHNlbGVjdGVkSXRlbSAmJlxuICAgICAgICBsYXllci5pc1BvcHVwT3BlbigpID09PSBmYWxzZVxuICAgICAgKSB7XG4gICAgICAgIGlmIChsYXllciBpbnN0YW5jZW9mIEwuTWFya2VyKSB7XG4gICAgICAgICAgbGF5ZXIuZmlyZSgnY2xpY2snKTtcbiAgICAgICAgfSBlbHNlIGlmIChsYXllciBpbnN0YW5jZW9mIEwuUG9seWdvbikge1xuICAgICAgICAgIGxheWVyLmZpcmUoJ2NsaWNrLWV2ZW50Jyk7XG4gICAgICAgIH1cbiAgICAgICAgY2xpY2tlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH0sIFtzZWxlY3RlZEl0ZW1dKTtcblxuICBjb25zdCByZW5kZXJBcmVhcyA9ICgpID0+IHtcbiAgICBpZiAoIXNob3VsZExvYWRNYXBPYmplY3RzKGdsb2JhbF9kYXRhLCBtYXBSZWYsIGVkZ2VzLCBwb2ludHMpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPEFyZWFQb2x5Z29uc1xuICAgICAgICBhcmVhcz17YXJlYXN9XG4gICAgICAgIG1hcD17bWFwUmVmLmN1cnJlbnR9XG4gICAgICAgIEw9e0x9XG4gICAgICAgIGFyZWFUb0NlbnRlckJ5PXthcmVhVG9DZW50ZXJCeX1cbiAgICAgICAgbWFwWm9vbT17bWFwWm9vbUxldmVsfVxuICAgICAgICBnbG9iYWxfZGF0YT17Z2xvYmFsX2RhdGF9XG4gICAgICAgIGZlYXR1cmVHcm91cD17YXJlYXNMYXllckdyb3VwfVxuICAgICAgLz5cbiAgICApO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJrZC1tYXAtY29udGFpbmVyXCIgc3R5bGU9e3N0eWxlfT5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPXtgIG1hcC1jb250YWluZXIgJHtcbiAgICAgICAgICBnbG9iYWxfZGF0YS5zaWRlbmF2RXhwYW5kZWQgPyAnJyA6ICdtYXAtY29udGFpbmVyLS1zaWRlbmF2LWNvbGxhcHNlZCdcbiAgICAgICAgfWB9XG4gICAgICA+XG4gICAgICAgIDxFcnJvckJvdW5kYXJ5PlxuICAgICAgICAgIDxkaXYgaWQ9XCJtYXBcIj48L2Rpdj5cbiAgICAgICAgICB7cmVuZGVyQXJlYXMoKX1cbiAgICAgICAgICB7c2hvdWRMb2FkRGVwZW5kZW50TWFwT2JqZWN0cyhcbiAgICAgICAgICAgIGVkZ2VzLFxuICAgICAgICAgICAgYXJlYXMsXG4gICAgICAgICAgICBnbG9iYWxfZGF0YSxcbiAgICAgICAgICAgIG1hcFJlZixcbiAgICAgICAgICAgIHBvaW50cyxcbiAgICAgICAgICApICYmIChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIHttZW1vaXplZEV2ZW50KCl9XG4gICAgICAgICAgICAgIHttZW1vaXplZFpvb21Db250cm9sKCl9XG4gICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvRXJyb3JCb3VuZGFyeT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQ0EsSUFBQUEsQ0FBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0FBLE9BQUE7QUFDQUEsT0FBQTtBQUNBQSxPQUFBO0FBQ0FBLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFGLHVCQUFB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
|
|
372
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3JlYWN0UmVkdXgiLCJfRXJyb3JCb3VuZGFyeSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfQXJlYVBvbHlnb25zIiwiX0VkZ2VzIiwiX1BvaW50TWFya2VycyIsIl9FdmVudCIsIl9NYXBVdGlscyIsIl90aGVtZSIsIl9MaXN0Q29udGV4dCIsIl9hY3Rpb25zIiwiX2FjdGlvbnMyIiwiX1BvaW50SWNvbjIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIk1hcCIsIl9yZWYiLCJhcmVhcyIsImVkZ2VzIiwicG9pbnRzIiwiZ2xvYmFsX2RhdGEiLCJhcmVhVG9DZW50ZXJCeSIsImZvY3VzZWRFdmVudCIsImhvdmVyZWRFdmVudCIsIl9yZWYkaGlkZUVkZ2VzIiwiaGlkZUVkZ2VzIiwiX3JlZiRtYXBCb3hTdHlsZSIsIm1hcEJveFN0eWxlIiwibGVhZmxldE1hcCIsIm1hcERlZmF1bHQiLCJjaGlsZHJlbiIsIl9yZWYkaW5jbHVkZVVubW9uaXRvciIsImluY2x1ZGVVbm1vbml0b3JlZFBvaW50cyIsIl9yZWYkaW5jbHVkZVVubW9uaXRvcjIiLCJpbmNsdWRlVW5tb25pdG9yZWREZXNjZW5kYW50c0ZvckVkZ2VzIiwiX3JlZiRmb3JFdmVudHNWaWV3IiwiZm9yRXZlbnRzVmlldyIsIl9yZWYkc3R5bGUiLCJzdHlsZSIsIl9yZWYkZm9yV1dUUERhc2hib2FyZCIsImZvcldXVFBEYXNoYm9hcmQiLCJtYXAiLCJtYXBSZWYiLCJ1c2VSZWYiLCJkaXNwYXRjaCIsInVzZURpc3BhdGNoIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwibWFwWm9vbUxldmVsIiwic2V0TWFwWm9vbUxldmVsIiwiX3VzZVNlbGVjdGVkSXRlbSIsInVzZVNlbGVjdGVkSXRlbSIsInNlbGVjdGVkSXRlbSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiZWRnZXNDaGVja2JveCIsInNldEVkZ2VzQ2hlY2tib3giLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsIm9ubHlNb25pdG9yZWRQb2ludHMiLCJzZXRPbmx5TW9uaXRvcmVkUG9pbnRzIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJzaG93U2FtcGxlckljb24iLCJzZXRTaG93U2FtcGxlckljb24iLCJlZGdlc0NoZWNrYm94UmVmIiwiaG92ZXJlZEV2ZW50UHJlc2VudCIsInVzZU1lbW8iLCJ1bmRlZmluZWQiLCJmb2N1c2VkRXZlbnRQcmVzZW50IiwiX3VzZVN0YXRlOSIsImxheWVyR3JvdXAiLCJfdXNlU3RhdGUxMCIsImZhY3Rvcmllc1BhcmVudEdyb3VwIiwiX3VzZVN0YXRlMTEiLCJfdXNlU3RhdGUxMiIsInVubW9uaXRvcmVkRmFjdG9yaWVzR3JvdXAiLCJfdXNlU3RhdGUxMyIsIl91c2VTdGF0ZTE0IiwibW9uaXRvcmVkRmFjdG9yaWVzR3JvdXAiLCJfdXNlU3RhdGUxNSIsIl91c2VTdGF0ZTE2IiwidW5tb25pdG9yZWRFZGdlc0dyb3VwIiwiX3VzZVN0YXRlMTciLCJfdXNlU3RhdGUxOCIsIm1vbml0b3JlZEVkZ2VzR3JvdXAiLCJfdXNlU3RhdGUxOSIsIl91c2VTdGF0ZTIwIiwid3d0cHNMYXllckdyb3VwIiwiX3VzZVN0YXRlMjEiLCJfdXNlU3RhdGUyMiIsImNvbGxlY3RvcnNMYXllckdyb3VwIiwiX3VzZVN0YXRlMjMiLCJGZWF0dXJlR3JvdXAiLCJfdXNlU3RhdGUyNCIsImFyZWFzTGF5ZXJHcm91cCIsInJlbmRlclBvaW50TWFya2VycyIsImZpbHRlcmVkUG9pbnRzIiwicHJvcHMiLCJjdXJyZW50IiwiY3JlYXRlRWxlbWVudCIsIlBvaW50TWFya2VycyIsImFzc2lnbiIsIm1lbW9pemVkTW9uaXRvcmVkUG9pbnRzIiwibGVuZ3RoIiwibW9uaXRvcmVkUG9pbnRzIiwiZmlsdGVyUG9pbnRzIiwib25seU1vbml0b3JlZCIsInJlc3VsdCIsInJlcmVuZGVyIiwiem9vbUxldmVscyIsImZhY3Rvcmllc0dyb3VwIiwid3d0cHNHcm91cCIsImNvbGxlY3RvcnNHcm91cCIsIm1lbW9pemVkVW5tb25pdG9yZWRQb2ludHMiLCJ1bm1vbml0b3JlZFBvaW50cyIsInJlbmRlckVkZ2VzIiwiZmlsdGVyZWRFZGdlcyIsIm1lbW9pemVkRWRnZXMiLCJtb25pdG9yZWRFZGdlcyIsImZpbHRlckVkZ2VzIiwiaGlkZUFycm93cyIsImFsbG93VW5tb25pdG9yZWREZXNjZW5kYW50cyIsImdyb3VwIiwibWVtb2l6ZWRVbm1vbml0b3JlZEVkZ2VzIiwidW5tb25pdG9yZWRFZGdlcyIsImhhbmRsZUVkZ2VzQ2hlY2tib3hDaGFuZ2UiLCJpc0NoZWNrZWQiLCJlZGdlc1pvb21MZXZlbHMiLCJoYW5kbGVQb2ludHNDaGVja2JveENoYW5nZSIsInpvb20iLCJnZXRab29tIiwicmVtb3ZlTGF5ZXIiLCJyZW1vdmVGcm9tIiwiYWRkTGF5ZXIiLCJpbmNsdWRlcyIsImFkZFRvIiwiaGFuZGxlUG9pbnRzV2l0aFNhbXBsZXJDaGVja2JveENoYW5nZSIsInRyYWNrTGF5ZXJib3giLCJzZXR1cENoZWNrYm94TGlzdGVuZXIiLCJ6b29tUnVsZXNGb3JFdmVudHNWaWV3IiwicGF5bG9hZCIsIkZyYWdtZW50Iiwiem9vbVJ1bGVzRm9yRGFzaGFib2FyZE1hcHMiLCJtZW1vaXplZFpvb21Db250cm9sIiwibWVtb2l6ZWRFdmVudCIsImZvY3VzZWQiLCJob3ZlcmVkIiwiRXZlbnQiLCJldmVudCIsImluY2x1ZGVOZXR3b3JrIiwidXNlRWZmZWN0IiwiYWxsR3JvdXBzIiwibWF0Y2hpbmdNYXJrZXJzIiwiZm9yRWFjaCIsImdldExheWVycyIsImxheWVyIiwiTWFya2VyIiwicHVzaCIsIm1hcmtlciIsIm1hcmtlckljb25EYXRhIiwibWFya2VyQ2xpY2tlZCIsImlzUG9wdXBPcGVuIiwiaGlkZVRleHQiLCJpY29uIiwiZ2V0UG9pbnRJY29uQnlUeXBlIiwidHlwZSIsInRpdGxlIiwic3VidGl0bGUiLCJoYXNJc3N1ZXMiLCJzaG91bGRJbnN0YWxsIiwic2V0SWNvbiIsImNsZWFudXAiLCJjbGVhclBvaW50cyIsImNsZWFyQXJlYXMiLCJjbGVhckxheWVycyIsImVhY2hMYXllciIsIlRpbGVMYXllciIsIndhdGVyQXV0aG9yaXR5SWQiLCJpbml0aWFsaXplTWFwIiwic2F0ZWxsaXRlIiwiaXNWYWxpZEFyZWEiLCJhcmVhIiwic2hhcGVfZGF0YSIsImZsYXQiLCJhcmVhRm9jdXNMb2dpYyIsIl9tYXBSZWYkY3VycmVudCIsImNsaWNrZWQiLCJrYW5kb19vYmplY3RfaWQiLCJmaXJlIiwiUG9seWdvbiIsInJlbmRlckFyZWFzIiwic2hvdWxkTG9hZE1hcE9iamVjdHMiLCJBcmVhUG9seWdvbnMiLCJtYXBab29tIiwiZmVhdHVyZUdyb3VwIiwiY2xhc3NOYW1lIiwiY29uY2F0Iiwic2lkZW5hdkV4cGFuZGVkIiwiaWQiLCJzaG91ZExvYWREZXBlbmRlbnRNYXBPYmplY3RzIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9NYXAudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1pZ25vcmVcbmltcG9ydCAqIGFzIEwgZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgJ3NyYy91dGlsaXRpZXMvcG9seWxpbmVkZWNvcmF0b3InO1xuaW1wb3J0ICdsZWFmbGV0Lm1hcmtlcmNsdXN0ZXInO1xuaW1wb3J0ICdsZWFmbGV0LnBhdHRlcm4nO1xuaW1wb3J0ICdsZWFmbGV0LmhlYXQnO1xuaW1wb3J0IFJlYWN0LCB7XG4gIENTU1Byb3BlcnRpZXMsXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2ggfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBJQXJlYSB9IGZyb20gJ3NyYy9zdG9yZS9hcmVhcy9tb2RlbHMvSUFyZWEnO1xuaW1wb3J0IHsgSUVkZ2UgfSBmcm9tICdzcmMvc3RvcmUvZWRnZXMvbW9kZWxzL0lFZGdlJztcbmltcG9ydCB7IElFdmVudCB9IGZyb20gJ3NyYy9zdG9yZS9ldmVudHMvbW9kZWxzL0lFdmVudCc7XG5pbXBvcnQgeyBJR2xvYmFsU3RhdGUgfSBmcm9tICdzcmMvc3RvcmUvZ2xvYmFsL21vZGVscy9JR2xvYmFsU3RhdGUnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCBFcnJvckJvdW5kYXJ5IGZyb20gJ3NyYy91dGlsaXRpZXMvRXJyb3JCb3VuZGFyeSc7XG5pbXBvcnQgeyBBcmVhUG9seWdvbnMgfSBmcm9tICcuL2FyZWFzL0FyZWFQb2x5Z29ucyc7XG5pbXBvcnQgRWRnZXMgZnJvbSAnLi9lZGdlcy9FZGdlcyc7XG5pbXBvcnQgJy4vTWFwLnNjc3MnO1xuaW1wb3J0ICcuL3BvaW50cy9Qb2ludEljb24uc2Nzcyc7XG5pbXBvcnQgeyBQb2ludE1hcmtlcnMgfSBmcm9tICcuL3BvaW50cy9Qb2ludE1hcmtlcnMnO1xuaW1wb3J0IHsgRXZlbnQgfSBmcm9tICcuL2V2ZW50cy9FdmVudCc7XG5pbXBvcnQge1xuICBhcmVhRm9jdXNMb2dpYyxcbiAgZmlsdGVyRWRnZXMsXG4gIGZpbHRlclBvaW50cyxcbiAgaW5pdGlhbGl6ZU1hcCxcbiAgaXNWYWxpZEFyZWEsXG4gIHNldHVwQ2hlY2tib3hMaXN0ZW5lcixcbiAgc2hvdWRMb2FkRGVwZW5kZW50TWFwT2JqZWN0cyxcbiAgc2hvdWxkTG9hZE1hcE9iamVjdHMsXG4gIHpvb21MZXZlbHMsXG59IGZyb20gJy4vTWFwVXRpbHMnO1xuaW1wb3J0IHsgbGVhZmxldE1hcCB9IGZyb20gJy4uLy4uL3N0eWxlcy90aGVtZS90aGVtZSc7XG5pbXBvcnQgeyB1c2VTZWxlY3RlZEl0ZW0gfSBmcm9tICdzcmMvcGFnZXMvRGFzaGJvYXJkTWFwL0xpc3RDb250ZXh0JztcbmltcG9ydCB7IGNsZWFyQXJlYXMgfSBmcm9tICdzcmMvc3RvcmUvYXJlYXMvYWN0aW9ucyc7XG5pbXBvcnQgeyBjbGVhclBvaW50cyB9IGZyb20gJ3NyYy9zdG9yZS9wb2ludHMvYWN0aW9ucyc7XG5pbXBvcnQgeyBnZXRQb2ludEljb25CeVR5cGUgfSBmcm9tICcuL3BvaW50cy9Qb2ludEljb24nO1xucmVxdWlyZSgnbGVhZmxldC5tYXJrZXJjbHVzdGVyJyk7XG5cbmludGVyZmFjZSBNYXBQcm9wcyB7XG4gIGFyZWFzOiBJQXJlYVtdO1xuICBlZGdlcz86IElFZGdlW107XG4gIHBvaW50cz86IElQb2ludFtdO1xuICBnbG9iYWxfZGF0YTogSUdsb2JhbFN0YXRlO1xuICBhcmVhVG9DZW50ZXJCeT86IGFueTtcbiAgZm9jdXNlZEV2ZW50PzogSUV2ZW50IHwgbnVsbDtcbiAgaG92ZXJlZEV2ZW50PzogSUV2ZW50IHwgbnVsbDtcbiAgaGlkZUVkZ2VzPzogYm9vbGVhbjtcbiAgbWFwQm94U3R5bGU/OiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogYW55O1xuICBzdHlsZT86IENTU1Byb3BlcnRpZXM7XG4gIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50cz86IGJvb2xlYW47XG4gIGluY2x1ZGVVbm1vbml0b3JlZERlc2NlbmRhbnRzRm9yRWRnZXM/OiBib29sZWFuO1xuICBmb3JFdmVudHNWaWV3OiBib29sZWFuO1xuICBmb3JXV1RQRGFzaGJvYXJkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IE1hcDogUmVhY3QuRkM8TWFwUHJvcHM+ID0gKHtcbiAgYXJlYXMsXG4gIGVkZ2VzLFxuICBwb2ludHMsXG4gIGdsb2JhbF9kYXRhLFxuICBhcmVhVG9DZW50ZXJCeSxcbiAgZm9jdXNlZEV2ZW50LFxuICBob3ZlcmVkRXZlbnQsXG4gIGhpZGVFZGdlcyA9IGZhbHNlLFxuICBtYXBCb3hTdHlsZSA9IGxlYWZsZXRNYXAubWFwRGVmYXVsdCxcbiAgY2hpbGRyZW4sXG4gIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50cyA9IHRydWUsXG4gIGluY2x1ZGVVbm1vbml0b3JlZERlc2NlbmRhbnRzRm9yRWRnZXMgPSBmYWxzZSxcbiAgZm9yRXZlbnRzVmlldyA9IGZhbHNlLFxuICBzdHlsZSA9IHt9LFxuICBmb3JXV1RQRGFzaGJvYXJkID0gZmFsc2UsXG59KSA9PiB7XG4gIGNvbnN0IHsgbWFwIH0gPSBnbG9iYWxfZGF0YTtcbiAgY29uc3QgbWFwUmVmID0gdXNlUmVmPEwuTWFwIHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgW21hcFpvb21MZXZlbCwgc2V0TWFwWm9vbUxldmVsXSA9IHVzZVN0YXRlKDIpO1xuICBjb25zdCB7IHNlbGVjdGVkSXRlbSB9ID0gdXNlU2VsZWN0ZWRJdGVtKCk7XG4gIGNvbnN0IFtlZGdlc0NoZWNrYm94LCBzZXRFZGdlc0NoZWNrYm94XSA9IHVzZVN0YXRlKHRydWUpO1xuICBjb25zdCBbb25seU1vbml0b3JlZFBvaW50cywgc2V0T25seU1vbml0b3JlZFBvaW50c10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtzaG93U2FtcGxlckljb24sIHNldFNob3dTYW1wbGVySWNvbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IGVkZ2VzQ2hlY2tib3hSZWYgPSB1c2VSZWYoZWRnZXNDaGVja2JveCk7XG5cbiAgY29uc3QgaG92ZXJlZEV2ZW50UHJlc2VudCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBob3ZlcmVkRXZlbnQgIT09IG51bGwgJiYgaG92ZXJlZEV2ZW50ICE9PSB1bmRlZmluZWQ7XG4gIH0sIFtob3ZlcmVkRXZlbnRdKTtcblxuICBjb25zdCBmb2N1c2VkRXZlbnRQcmVzZW50ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIGZvY3VzZWRFdmVudCAhPT0gbnVsbCAmJiBmb2N1c2VkRXZlbnQgIT09IHVuZGVmaW5lZDtcbiAgfSwgW2ZvY3VzZWRFdmVudF0pO1xuXG4gIC8vIEFkZCBwYXJlbnQgbGF5ZXIgZ3JvdXAgZm9yIGFsbCBmYWN0b3JpZXNcbiAgY29uc3QgW2ZhY3Rvcmllc1BhcmVudEdyb3VwXSA9IHVzZVN0YXRlKEwubGF5ZXJHcm91cCgpKTtcbiAgY29uc3QgW3VubW9uaXRvcmVkRmFjdG9yaWVzR3JvdXBdID0gdXNlU3RhdGUoTC5sYXllckdyb3VwKCkpO1xuICBjb25zdCBbbW9uaXRvcmVkRmFjdG9yaWVzR3JvdXBdID0gdXNlU3RhdGUoTC5sYXllckdyb3VwKCkpO1xuICBjb25zdCBbdW5tb25pdG9yZWRFZGdlc0dyb3VwXSA9IHVzZVN0YXRlKEwubGF5ZXJHcm91cCgpKTtcbiAgY29uc3QgW21vbml0b3JlZEVkZ2VzR3JvdXBdID0gdXNlU3RhdGUoTC5sYXllckdyb3VwKCkpO1xuICBjb25zdCBbd3d0cHNMYXllckdyb3VwXSA9IHVzZVN0YXRlKEwubGF5ZXJHcm91cCgpKTtcbiAgY29uc3QgW2NvbGxlY3RvcnNMYXllckdyb3VwXSA9IHVzZVN0YXRlKEwubGF5ZXJHcm91cCgpKTtcbiAgY29uc3QgW2FyZWFzTGF5ZXJHcm91cF0gPSB1c2VTdGF0ZShuZXcgTC5GZWF0dXJlR3JvdXAoKSk7XG5cbiAgY29uc3QgcmVuZGVyUG9pbnRNYXJrZXJzID0gKGZpbHRlcmVkUG9pbnRzLCBtYXBSZWYsIHByb3BzKSA9PlxuICAgIG1hcFJlZi5jdXJyZW50ICE9PSBudWxsICYmXG4gICAgcG9pbnRzICYmIChcbiAgICAgIDxQb2ludE1hcmtlcnNcbiAgICAgICAgbWFwPXttYXBSZWYuY3VycmVudH1cbiAgICAgICAgcG9pbnRzPXtmaWx0ZXJlZFBvaW50c31cbiAgICAgICAgc2hvd1NhbXBsZXJJY29uPXtzaG93U2FtcGxlckljb259XG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgIC8+XG4gICAgKTtcblxuICBjb25zdCBtZW1vaXplZE1vbml0b3JlZFBvaW50cyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghbWFwUmVmLmN1cnJlbnQgfHwgIXBvaW50cyB8fCBwb2ludHMubGVuZ3RoID09PSAwKSByZXR1cm4gbnVsbDtcblxuICAgIGNvbnN0IG1vbml0b3JlZFBvaW50cyA9IGZpbHRlclBvaW50cyhwb2ludHMsIHsgb25seU1vbml0b3JlZDogdHJ1ZSB9KTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IHJlbmRlclBvaW50TWFya2Vycyhtb25pdG9yZWRQb2ludHMsIG1hcFJlZiwge1xuICAgICAgaW5jbHVkZVVubW9uaXRvcmVkUG9pbnRzOiB0cnVlLFxuICAgICAgcmVyZW5kZXI6IHpvb21MZXZlbHNbbWFwWm9vbUxldmVsXSxcbiAgICAgIGZhY3Rvcmllc0dyb3VwOiBtb25pdG9yZWRGYWN0b3JpZXNHcm91cCxcbiAgICAgIHd3dHBzR3JvdXA6IHd3dHBzTGF5ZXJHcm91cCxcbiAgICAgIGNvbGxlY3RvcnNHcm91cDogY29sbGVjdG9yc0xheWVyR3JvdXAsXG4gICAgICBmb3JFdmVudHNWaWV3LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSwgW21hcFJlZi5jdXJyZW50LCBwb2ludHMsIG1hcFpvb21MZXZlbF0pO1xuXG4gIGNvbnN0IG1lbW9pemVkVW5tb25pdG9yZWRQb2ludHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIW1hcFJlZi5jdXJyZW50IHx8ICFwb2ludHMgfHwgcG9pbnRzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIG51bGw7XG5cbiAgICBjb25zdCB1bm1vbml0b3JlZFBvaW50cyA9IGZpbHRlclBvaW50cyhwb2ludHMsIHsgb25seU1vbml0b3JlZDogZmFsc2UgfSk7XG5cbiAgICBjb25zdCByZXN1bHQgPSByZW5kZXJQb2ludE1hcmtlcnModW5tb25pdG9yZWRQb2ludHMsIG1hcFJlZiwge1xuICAgICAgaW5jbHVkZVVubW9uaXRvcmVkUG9pbnRzOiB0cnVlLFxuICAgICAgcmVyZW5kZXI6IHpvb21MZXZlbHNbbWFwWm9vbUxldmVsXSxcbiAgICAgIGZhY3Rvcmllc0dyb3VwOiB1bm1vbml0b3JlZEZhY3Rvcmllc0dyb3VwLFxuICAgICAgd3d0cHNHcm91cDogd3d0cHNMYXllckdyb3VwLFxuICAgICAgY29sbGVjdG9yc0dyb3VwOiBjb2xsZWN0b3JzTGF5ZXJHcm91cCxcbiAgICAgIGZvckV2ZW50c1ZpZXcsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9LCBbbWFwUmVmLmN1cnJlbnQsIHBvaW50cywgbWFwWm9vbUxldmVsXSk7XG5cbiAgY29uc3QgcmVuZGVyRWRnZXMgPSAoZmlsdGVyZWRFZGdlcywgbWFwUmVmLCBlZGdlc0NoZWNrYm94LCBwcm9wcykgPT5cbiAgICBtYXBSZWYuY3VycmVudCAhPT0gbnVsbCAmJlxuICAgIGVkZ2VzQ2hlY2tib3ggJiYgKFxuICAgICAgPEVkZ2VzIGVkZ2VzPXtmaWx0ZXJlZEVkZ2VzfSBtYXA9e21hcFJlZi5jdXJyZW50fSB7Li4ucHJvcHN9IC8+XG4gICAgKTtcblxuICBjb25zdCBtZW1vaXplZEVkZ2VzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgbW9uaXRvcmVkRWRnZXMgPSBmaWx0ZXJFZGdlcyhlZGdlcywgcG9pbnRzLCB0cnVlKTtcblxuICAgIHJldHVybiByZW5kZXJFZGdlcyhtb25pdG9yZWRFZGdlcywgbWFwUmVmLCBlZGdlc0NoZWNrYm94LCB7XG4gICAgICBMLFxuICAgICAgcG9pbnRzLFxuICAgICAgaGlkZUVkZ2VzOiBmYWxzZSxcbiAgICAgIGhpZGVBcnJvd3M6IHRydWUsXG4gICAgICBhbGxvd1VubW9uaXRvcmVkRGVzY2VuZGFudHM6IGluY2x1ZGVVbm1vbml0b3JlZERlc2NlbmRhbnRzRm9yRWRnZXMsXG4gICAgICBncm91cDogbW9uaXRvcmVkRWRnZXNHcm91cCxcbiAgICB9KTtcbiAgfSwgW3BvaW50cywgZWRnZXNDaGVja2JveCwgbWFwWm9vbUxldmVsXSk7XG5cbiAgY29uc3QgbWVtb2l6ZWRVbm1vbml0b3JlZEVkZ2VzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKG9ubHlNb25pdG9yZWRQb2ludHMpIHJldHVybiBudWxsO1xuXG4gICAgY29uc3QgdW5tb25pdG9yZWRFZGdlcyA9IGZpbHRlckVkZ2VzKGVkZ2VzLCBwb2ludHMsIGZhbHNlKTtcblxuICAgIHJldHVybiByZW5kZXJFZGdlcyh1bm1vbml0b3JlZEVkZ2VzLCBtYXBSZWYsIGVkZ2VzQ2hlY2tib3gsIHtcbiAgICAgIEwsXG4gICAgICBwb2ludHMsXG4gICAgICBoaWRlRWRnZXM6IGZhbHNlLFxuICAgICAgaGlkZUFycm93czogdHJ1ZSxcbiAgICAgIGFsbG93VW5tb25pdG9yZWREZXNjZW5kYW50czogaW5jbHVkZVVubW9uaXRvcmVkRGVzY2VuZGFudHNGb3JFZGdlcyxcbiAgICAgIGdyb3VwOiB1bm1vbml0b3JlZEVkZ2VzR3JvdXAsXG4gICAgfSk7XG4gIH0sIFtwb2ludHMsIGVkZ2VzQ2hlY2tib3gsIG1hcFpvb21MZXZlbF0pO1xuXG4gIGNvbnN0IGhhbmRsZUVkZ2VzQ2hlY2tib3hDaGFuZ2UgPSAoaXNDaGVja2VkKSA9PiB7XG4gICAgc2V0RWRnZXNDaGVja2JveChpc0NoZWNrZWQpO1xuICB9O1xuXG4gIC8vIFRoaXMgdmFyaWFibGUgc3RvcmVzIHRoZSB6b29tIGxldmVscyB0aGUgZWRnZXMgYXJlIGRpc3BsYXllZFxuICAvLyBJdCBpcyB1c2VkIGluIHR3byBwbGFjZXMgaW4gdGhlIGNvZGUsIHNvIGl0IGlzIGJldHRlciB0byBzdG9yZSBpdCBpbiBvbmUgcGxhY2VcbiAgY29uc3QgZWRnZXNab29tTGV2ZWxzID0gWydTbWFsbCcsICdNZWRpdW0nLCAnTUxhcmdlJywgJ0xhcmdlJ107XG5cbiAgY29uc3QgaGFuZGxlUG9pbnRzQ2hlY2tib3hDaGFuZ2UgPSAoaXNDaGVja2VkKSA9PiB7XG4gICAgc2V0T25seU1vbml0b3JlZFBvaW50cyhpc0NoZWNrZWQpO1xuICAgIGlmIChtYXBSZWYuY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgc2V0T25seU1vbml0b3JlZFBvaW50cyhpc0NoZWNrZWQpO1xuICAgICAgbGV0IHpvb20gPSB6b29tTGV2ZWxzW21hcFJlZi5jdXJyZW50LmdldFpvb20oKV07XG5cbiAgICAgIGlmIChpc0NoZWNrZWQpIHtcbiAgICAgICAgLy8gSGlkZSB1bm1vbml0b3JlZCBwb2ludHMgd2hlbiBcInNob3cgb25seSBtb25pdG9yZWRcIiBpcyBjaGVja2VkXG4gICAgICAgIGZhY3Rvcmllc1BhcmVudEdyb3VwLnJlbW92ZUxheWVyKHVubW9uaXRvcmVkRmFjdG9yaWVzR3JvdXApO1xuICAgICAgICB1bm1vbml0b3JlZEVkZ2VzR3JvdXAucmVtb3ZlRnJvbShtYXBSZWYuY3VycmVudCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBTaG93IGFsbCBwb2ludHMgd2hlbiBcInNob3cgb25seSBtb25pdG9yZWRcIiBpcyB1bmNoZWNrZWRcbiAgICAgICAgZmFjdG9yaWVzUGFyZW50R3JvdXAuYWRkTGF5ZXIodW5tb25pdG9yZWRGYWN0b3JpZXNHcm91cCk7XG5cbiAgICAgICAgLy8gU2hvdyB1bm1vbml0b3JlZCBlZGdlcyBpZiBhdCBhcHByb3ByaWF0ZSB6b29tIGxldmVsXG4gICAgICAgIGlmIChlZGdlc0NoZWNrYm94UmVmLmN1cnJlbnQgJiYgZWRnZXNab29tTGV2ZWxzLmluY2x1ZGVzKHpvb20pKSB7XG4gICAgICAgICAgdW5tb25pdG9yZWRFZGdlc0dyb3VwLmFkZFRvKG1hcFJlZi5jdXJyZW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVQb2ludHNXaXRoU2FtcGxlckNoZWNrYm94Q2hhbmdlID0gKGlzQ2hlY2tlZCkgPT4ge1xuICAgIHNldFNob3dTYW1wbGVySWNvbihpc0NoZWNrZWQpO1xuICB9O1xuXG4gIGNvbnN0IHRyYWNrTGF5ZXJib3ggPSAoKSA9PiB7XG4gICAgc2V0dXBDaGVja2JveExpc3RlbmVyKCcjZWRnZXMtY2hlY2tib3gnLCBoYW5kbGVFZGdlc0NoZWNrYm94Q2hhbmdlKTtcbiAgICBzZXR1cENoZWNrYm94TGlzdGVuZXIoXG4gICAgICAnI21vbml0b3JlZC1wb2ludHMtY2hlY2tib3gnLFxuICAgICAgaGFuZGxlUG9pbnRzQ2hlY2tib3hDaGFuZ2UsXG4gICAgKTtcbiAgICBzZXR1cENoZWNrYm94TGlzdGVuZXIoXG4gICAgICAnI21vbml0b3JlZC1wb2ludHMtd2l0aC1zYW1wbGVyLWNoZWNrYm94JyxcbiAgICAgIGhhbmRsZVBvaW50c1dpdGhTYW1wbGVyQ2hlY2tib3hDaGFuZ2UsXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCB6b29tUnVsZXNGb3JFdmVudHNWaWV3ID0gKCkgPT4ge1xuICAgIGNvbnN0IHBheWxvYWQgPSAoXG4gICAgICA8PlxuICAgICAgICB7bWVtb2l6ZWRFZGdlc31cbiAgICAgICAgeyFvbmx5TW9uaXRvcmVkUG9pbnRzICYmIG1lbW9pemVkVW5tb25pdG9yZWRFZGdlc31cbiAgICAgICAgeyFvbmx5TW9uaXRvcmVkUG9pbnRzICYmIG1lbW9pemVkVW5tb25pdG9yZWRQb2ludHN9XG4gICAgICAgIHttZW1vaXplZE1vbml0b3JlZFBvaW50c31cbiAgICAgIDwvPlxuICAgICk7XG5cbiAgICByZXR1cm4gcGF5bG9hZDtcbiAgfTtcblxuICBjb25zdCB6b29tUnVsZXNGb3JEYXNoYWJvYXJkTWFwcyA9ICgpID0+IHtcbiAgICBsZXQgcGF5bG9hZCA9IChcbiAgICAgIDw+XG4gICAgICAgIHshb25seU1vbml0b3JlZFBvaW50cyAmJiBtZW1vaXplZFVubW9uaXRvcmVkUG9pbnRzfVxuICAgICAgICB7bWVtb2l6ZWRNb25pdG9yZWRQb2ludHN9XG4gICAgICA8Lz5cbiAgICApO1xuXG4gICAgaWYgKGVkZ2VzWm9vbUxldmVscy5pbmNsdWRlcyh6b29tTGV2ZWxzW21hcFpvb21MZXZlbF0pKSB7XG4gICAgICBwYXlsb2FkID0gem9vbVJ1bGVzRm9yRXZlbnRzVmlldygpO1xuICAgIH1cblxuICAgIHJldHVybiBwYXlsb2FkO1xuICB9O1xuXG4gIGNvbnN0IG1lbW9pemVkWm9vbUNvbnRyb2wgPSAoKSA9PiB7XG4gICAgLy8gY29uc3QgcGF5bG9hZCA9IGZvckV2ZW50c1ZpZXdcbiAgICAvLyAgID8gem9vbVJ1bGVzRm9yRXZlbnRzVmlldygpXG4gICAgLy8gICA6IHpvb21SdWxlc0ZvckRhc2hhYm9hcmRNYXBzKCk7XG4gICAgcmV0dXJuIHpvb21SdWxlc0ZvckRhc2hhYm9hcmRNYXBzKCk7XG4gIH07XG5cbiAgY29uc3QgbWVtb2l6ZWRFdmVudCA9ICgpID0+IHtcbiAgICBpZiAoZm9jdXNlZEV2ZW50UHJlc2VudCkge1xuICAgICAgZm9jdXNlZEV2ZW50IS5mb2N1c2VkID0gZm9jdXNlZEV2ZW50UHJlc2VudDtcbiAgICAgIGZvY3VzZWRFdmVudCEuaG92ZXJlZCA9ICFmb2N1c2VkRXZlbnRQcmVzZW50O1xuICAgIH1cblxuICAgIGlmIChob3ZlcmVkRXZlbnRQcmVzZW50KSB7XG4gICAgICBob3ZlcmVkRXZlbnQhLmhvdmVyZWQgPSBob3ZlcmVkRXZlbnRQcmVzZW50O1xuICAgICAgaG92ZXJlZEV2ZW50IS5mb2N1c2VkID0gIWhvdmVyZWRFdmVudFByZXNlbnQ7XG4gICAgfVxuXG4gICAgaWYgKCFob3ZlcmVkRXZlbnRQcmVzZW50ICYmICFmb2N1c2VkRXZlbnRQcmVzZW50KSByZXR1cm4gPD48Lz47XG5cbiAgICByZXR1cm4gKFxuICAgICAgPEV2ZW50XG4gICAgICAgIGV2ZW50PXtmb2N1c2VkRXZlbnQhIHx8IGhvdmVyZWRFdmVudCF9XG4gICAgICAgIG1hcD17bWFwfVxuICAgICAgICBlZGdlcz17ZWRnZXMhfVxuICAgICAgICBwb2ludHM9e3BvaW50cyF9XG4gICAgICAgIGluY2x1ZGVOZXR3b3JrPXshaG92ZXJlZEV2ZW50UHJlc2VudH1cbiAgICAgIC8+XG4gICAgKTtcbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGVkZ2VzQ2hlY2tib3hSZWYuY3VycmVudCA9IGVkZ2VzQ2hlY2tib3g7XG4gIH0sIFtlZGdlc0NoZWNrYm94XSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAobWFwUmVmLmN1cnJlbnQpIHtcbiAgICAgIGNvbnN0IGFsbEdyb3VwcyA9IFtcbiAgICAgICAgbW9uaXRvcmVkRmFjdG9yaWVzR3JvdXAsXG4gICAgICAgIHVubW9uaXRvcmVkRmFjdG9yaWVzR3JvdXAsXG4gICAgICAgIHd3dHBzTGF5ZXJHcm91cCxcbiAgICAgICAgY29sbGVjdG9yc0xheWVyR3JvdXAsXG4gICAgICBdO1xuXG4gICAgICBsZXQgbWF0Y2hpbmdNYXJrZXJzID0gW107XG5cbiAgICAgIGFsbEdyb3Vwcy5mb3JFYWNoKChncm91cCkgPT4ge1xuICAgICAgICBncm91cC5nZXRMYXllcnMoKS5mb3JFYWNoKChsYXllcikgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGxheWVyIGluc3RhbmNlb2YgTC5NYXJrZXIgJiZcbiAgICAgICAgICAgIGxheWVyWydrYW5kb19oYXNfc2FtcGxlciddID09PSB0cnVlXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBtYXRjaGluZ01hcmtlcnMucHVzaChsYXllcik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgICBtYXRjaGluZ01hcmtlcnMuZm9yRWFjaCgobWFya2VyKSA9PiB7XG4gICAgICAgIG1hcmtlclsna2FuZG9fc2hvd19zYW1wbGVyJ10gPSBzaG93U2FtcGxlckljb247XG5cbiAgICAgICAgY29uc3QgbWFya2VySWNvbkRhdGEgPSBtYXJrZXJbJ2thbmRvX2ljb25fZGF0YSddO1xuICAgICAgICBjb25zdCBtYXJrZXJDbGlja2VkID0gbWFya2VyLmlzUG9wdXBPcGVuKCkgfHwgZmFsc2U7XG4gICAgICAgIGNvbnN0IGhpZGVUZXh0ID0gbWFya2VyQ2xpY2tlZCA9PT0gZmFsc2U7XG5cbiAgICAgICAgaWYgKG1hcmtlckljb25EYXRhKSB7XG4gICAgICAgICAgY29uc3QgaWNvbiA9IGdldFBvaW50SWNvbkJ5VHlwZShcbiAgICAgICAgICAgIG1hcmtlckljb25EYXRhPy50eXBlIHx8ICcnLFxuICAgICAgICAgICAgbWFya2VySWNvbkRhdGE/LnRpdGxlIHx8ICcnLFxuICAgICAgICAgICAgbWFya2VySWNvbkRhdGE/LnN1YnRpdGxlIHx8ICcnLFxuICAgICAgICAgICAgbWFya2VyQ2xpY2tlZCxcbiAgICAgICAgICAgIGhpZGVUZXh0LFxuICAgICAgICAgICAgbWFya2VySWNvbkRhdGE/Lmhhc0lzc3VlcyB8fCBmYWxzZSxcbiAgICAgICAgICAgIHNob3dTYW1wbGVySWNvbixcbiAgICAgICAgICAgIG1hcmtlckljb25EYXRhPy5zaG91bGRJbnN0YWxsIHx8IGZhbHNlLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBtYXJrZXIuc2V0SWNvbihpY29uKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9LCBbc2hvd1NhbXBsZXJJY29uXSk7XG5cbiAgLy8gdXNlRWZmZWN0KCgpID0+IHtcbiAgLy8gICByZXR1cm4gZnVuY3Rpb24gY2xlYW51cCgpIHtcbiAgLy8gICAgIGNvbGxlY3RvcnNMYXllckdyb3VwLmNsZWFyTGF5ZXJzKCk7XG4gIC8vICAgICBtYXBSZWYuY3VycmVudD8ucmVtb3ZlTGF5ZXIoY29sbGVjdG9yc0xheWVyR3JvdXApO1xuICAvLyAgIH07XG4gIC8vIH0sIFtmb2N1c2VkRXZlbnQsIGdsb2JhbF9kYXRhLmV2ZW50RmlsdGVyUGFyYW1dKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiBmdW5jdGlvbiBjbGVhbnVwKCkge1xuICAgICAgaWYgKGZvckV2ZW50c1ZpZXcgJiYgbWFwUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgZGlzcGF0Y2goY2xlYXJQb2ludHMoKSk7XG4gICAgICAgIGRpc3BhdGNoKGNsZWFyQXJlYXMoKSk7XG4gICAgICAgIHd3dHBzTGF5ZXJHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgICBhcmVhc0xheWVyR3JvdXAuY2xlYXJMYXllcnMoKTtcbiAgICAgICAgdW5tb25pdG9yZWRGYWN0b3JpZXNHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgICBtb25pdG9yZWRGYWN0b3JpZXNHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgICBmYWN0b3JpZXNQYXJlbnRHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgICBtb25pdG9yZWRFZGdlc0dyb3VwLmNsZWFyTGF5ZXJzKCk7XG4gICAgICAgIGNvbGxlY3RvcnNMYXllckdyb3VwLmNsZWFyTGF5ZXJzKCk7XG4gICAgICAgIHVubW9uaXRvcmVkRWRnZXNHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgICBtYXBSZWYuY3VycmVudC5yZW1vdmVMYXllcih1bm1vbml0b3JlZEVkZ2VzR3JvdXApO1xuICAgICAgICBtYXBSZWYuY3VycmVudC5yZW1vdmVMYXllcihtb25pdG9yZWRFZGdlc0dyb3VwKTtcbiAgICAgICAgbWFwUmVmLmN1cnJlbnQucmVtb3ZlTGF5ZXIod3d0cHNMYXllckdyb3VwKTtcbiAgICAgICAgbWFwUmVmLmN1cnJlbnQucmVtb3ZlTGF5ZXIoY29sbGVjdG9yc0xheWVyR3JvdXApO1xuICAgICAgICBtYXBSZWYuY3VycmVudC5yZW1vdmVMYXllcihhcmVhc0xheWVyR3JvdXApO1xuICAgICAgICBtYXBSZWYuY3VycmVudC5yZW1vdmVMYXllcihmYWN0b3JpZXNQYXJlbnRHcm91cCk7XG5cbiAgICAgICAgbWFwUmVmLmN1cnJlbnQuZWFjaExheWVyKChsYXllcikgPT4ge1xuICAgICAgICAgIGlmIChsYXllciBpbnN0YW5jZW9mIEwuVGlsZUxheWVyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIG1hcFJlZi5jdXJyZW50LnJlbW92ZUxheWVyKGxheWVyKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW2dsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWRdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghbWFwUmVmLmN1cnJlbnQpIHtcbiAgICAgIGluaXRpYWxpemVNYXAoXG4gICAgICAgIG1hcFpvb21MZXZlbCxcbiAgICAgICAgbWFwQm94U3R5bGUsXG4gICAgICAgIGxlYWZsZXRNYXAuc2F0ZWxsaXRlLFxuICAgICAgICBtYXBSZWYsXG4gICAgICAgIGRpc3BhdGNoLFxuICAgICAgICBpc1ZhbGlkQXJlYSxcbiAgICAgICAgYXJlYVRvQ2VudGVyQnksXG4gICAgICAgIHNldE1hcFpvb21MZXZlbCxcbiAgICAgICAgZm9yV1dUUERhc2hib2FyZCxcbiAgICAgICAgdHJ1ZSxcbiAgICAgICAgZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCxcbiAgICAgICk7XG5cbiAgICAgIC8vIEluaXRpYWxpemUgcGFyZW50IGZhY3RvcnkgZ3JvdXBcbiAgICAgIGlmIChtYXBSZWYuY3VycmVudCkge1xuICAgICAgICBmYWN0b3JpZXNQYXJlbnRHcm91cC5hZGRUbyhtYXBSZWYuY3VycmVudCk7XG4gICAgICAgIGZhY3Rvcmllc1BhcmVudEdyb3VwLmFkZExheWVyKG1vbml0b3JlZEZhY3Rvcmllc0dyb3VwKTtcbiAgICAgICAgZmFjdG9yaWVzUGFyZW50R3JvdXAuYWRkTGF5ZXIodW5tb25pdG9yZWRGYWN0b3JpZXNHcm91cCk7XG4gICAgICB9XG5cbiAgICAgIHRyYWNrTGF5ZXJib3goKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0TWFwWm9vbUxldmVsKG1hcFJlZi5jdXJyZW50LmdldFpvb20oKSk7XG4gICAgICBpZiAoIWFyZWFUb0NlbnRlckJ5KSB7XG4gICAgICAgIGFyZWFUb0NlbnRlckJ5ID0gYXJlYXMubWFwKChhcmVhKSA9PiBhcmVhLnNoYXBlX2RhdGEpLmZsYXQoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFmb2N1c2VkRXZlbnQpIHtcbiAgICAgICAgYXJlYUZvY3VzTG9naWMobWFwUmVmLCBpc1ZhbGlkQXJlYSwgYXJlYVRvQ2VudGVyQnkpO1xuICAgICAgfVxuICAgIH1cbiAgfSwgW21hcFJlZi5jdXJyZW50LCBhcmVhVG9DZW50ZXJCeV0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IGNsaWNrZWQgPSBmYWxzZTtcblxuICAgIG1hcFJlZi5jdXJyZW50Py5lYWNoTGF5ZXIoKGxheWVyKSA9PiB7XG4gICAgICBpZiAoY2xpY2tlZCkgcmV0dXJuO1xuXG4gICAgICBpZiAoXG4gICAgICAgIGxheWVyPy5rYW5kb19vYmplY3RfaWQgPT09IHNlbGVjdGVkSXRlbSAmJlxuICAgICAgICBsYXllci5pc1BvcHVwT3BlbigpID09PSBmYWxzZVxuICAgICAgKSB7XG4gICAgICAgIGlmIChsYXllciBpbnN0YW5jZW9mIEwuTWFya2VyKSB7XG4gICAgICAgICAgbGF5ZXIuZmlyZSgnY2xpY2snKTtcbiAgICAgICAgfSBlbHNlIGlmIChsYXllciBpbnN0YW5jZW9mIEwuUG9seWdvbikge1xuICAgICAgICAgIGxheWVyLmZpcmUoJ2NsaWNrLWV2ZW50Jyk7XG4gICAgICAgIH1cbiAgICAgICAgY2xpY2tlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH0sIFtzZWxlY3RlZEl0ZW1dKTtcblxuICBjb25zdCByZW5kZXJBcmVhcyA9ICgpID0+IHtcbiAgICBpZiAoIXNob3VsZExvYWRNYXBPYmplY3RzKGdsb2JhbF9kYXRhLCBtYXBSZWYsIGVkZ2VzLCBwb2ludHMpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPEFyZWFQb2x5Z29uc1xuICAgICAgICBhcmVhcz17YXJlYXN9XG4gICAgICAgIG1hcD17bWFwUmVmLmN1cnJlbnR9XG4gICAgICAgIEw9e0x9XG4gICAgICAgIGFyZWFUb0NlbnRlckJ5PXthcmVhVG9DZW50ZXJCeX1cbiAgICAgICAgbWFwWm9vbT17bWFwWm9vbUxldmVsfVxuICAgICAgICBnbG9iYWxfZGF0YT17Z2xvYmFsX2RhdGF9XG4gICAgICAgIGZlYXR1cmVHcm91cD17YXJlYXNMYXllckdyb3VwfVxuICAgICAgLz5cbiAgICApO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJrZC1tYXAtY29udGFpbmVyXCIgc3R5bGU9e3N0eWxlfT5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPXtgIG1hcC1jb250YWluZXIgJHtcbiAgICAgICAgICBnbG9iYWxfZGF0YS5zaWRlbmF2RXhwYW5kZWQgPyAnJyA6ICdtYXAtY29udGFpbmVyLS1zaWRlbmF2LWNvbGxhcHNlZCdcbiAgICAgICAgfWB9XG4gICAgICA+XG4gICAgICAgIDxFcnJvckJvdW5kYXJ5PlxuICAgICAgICAgIDxkaXYgaWQ9XCJtYXBcIj48L2Rpdj5cbiAgICAgICAgICB7cmVuZGVyQXJlYXMoKX1cbiAgICAgICAgICB7c2hvdWRMb2FkRGVwZW5kZW50TWFwT2JqZWN0cyhcbiAgICAgICAgICAgIGVkZ2VzLFxuICAgICAgICAgICAgYXJlYXMsXG4gICAgICAgICAgICBnbG9iYWxfZGF0YSxcbiAgICAgICAgICAgIG1hcFJlZixcbiAgICAgICAgICAgIHBvaW50cyxcbiAgICAgICAgICApICYmIChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIHttZW1vaXplZEV2ZW50KCl9XG4gICAgICAgICAgICAgIHttZW1vaXplZFpvb21Db250cm9sKCl9XG4gICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvRXJyb3JCb3VuZGFyeT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7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
|
|
@@ -1,16 +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
|
-
var _react =
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
9
|
var _Arrows = require("./arrows/Arrows");
|
|
11
10
|
var _Edge = _interopRequireDefault(require("./Edge"));
|
|
12
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
13
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
14
11
|
var Edges = function Edges(_ref) {
|
|
15
12
|
var L = _ref.L,
|
|
16
13
|
edges = _ref.edges,
|
|
@@ -26,15 +23,20 @@ var Edges = function Edges(_ref) {
|
|
|
26
23
|
group = _ref.group,
|
|
27
24
|
_ref$shouldntDraw = _ref.shouldntDraw,
|
|
28
25
|
shouldntDraw = _ref$shouldntDraw === void 0 ? false : _ref$shouldntDraw;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
26
|
+
// useEffect(() => {
|
|
27
|
+
// return function cleanup() {
|
|
28
|
+
// for (const property in map._layers) {
|
|
29
|
+
// if (
|
|
30
|
+
// map._layers[property].kando_object === 'Edge' ||
|
|
31
|
+
// map._layers[property].kando_object === 'EdgeFront' ||
|
|
32
|
+
// map._layers[property].kando_object === 'Arrow'
|
|
33
|
+
// ) {
|
|
34
|
+
// map.removeLayer(map._layers[property]);
|
|
35
|
+
// }
|
|
36
|
+
// }
|
|
37
|
+
// };
|
|
38
|
+
// }, []);
|
|
39
|
+
|
|
38
40
|
var shownEdges = function shownEdges() {
|
|
39
41
|
return edges.filter(function (edge) {
|
|
40
42
|
return edge.descendants_has_device === true || edge.descendants_has_none_collectors === true;
|
|
@@ -63,4 +65,4 @@ var Edges = function Edges(_ref) {
|
|
|
63
65
|
};
|
|
64
66
|
var _default = Edges;
|
|
65
67
|
exports.default = _default;
|
|
66
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9BcnJvd3MiLCJfRWRnZSIsIkVkZ2VzIiwiX3JlZiIsIkwiLCJlZGdlcyIsIm1hcCIsInBvaW50cyIsIl9yZWYkaGlkZUVkZ2VzIiwiaGlkZUVkZ2VzIiwiX3JlZiRoaWRlQXJyb3dzIiwiaGlkZUFycm93cyIsIl9yZWYkYWxsb3dVbm1vbml0b3JlZCIsImFsbG93VW5tb25pdG9yZWREZXNjZW5kYW50cyIsInNwZWNpZmljRXZlbnQiLCJncm91cCIsIl9yZWYkc2hvdWxkbnREcmF3Iiwic2hvdWxkbnREcmF3Iiwic2hvd25FZGdlcyIsImZpbHRlciIsImVkZ2UiLCJkZXNjZW5kYW50c19oYXNfZGV2aWNlIiwiZGVzY2VuZGFudHNfaGFzX25vbmVfY29sbGVjdG9ycyIsImRlZmF1bHQiLCJjcmVhdGVFbGVtZW50IiwiRnJhZ21lbnQiLCJsZW5ndGgiLCJrZXkiLCJpZCIsIkFycm93cyIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9lZGdlcy9FZGdlcy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEFycm93cyB9IGZyb20gJy4vYXJyb3dzL0Fycm93cyc7XG5pbXBvcnQgeyBJRWRnZSB9IGZyb20gJ3NyYy9zdG9yZS9lZGdlcy9tb2RlbHMvSUVkZ2UnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCBFZGdlIGZyb20gJy4vRWRnZSc7XG5pbXBvcnQgeyBJRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9ldmVudHMvbW9kZWxzL0lFdmVudCc7XG5cbmludGVyZmFjZSBFZGdlc1Byb3BzIHtcbiAgbWFwOiBhbnk7XG4gIEw6IGFueTtcbiAgZWRnZXM6IElFZGdlW107XG4gIHBvaW50czogSVBvaW50W107XG4gIGhpZGVFZGdlcz86IGJvb2xlYW47XG4gIGhpZGVBcnJvd3M/OiBib29sZWFuO1xuICBzcGVjaWZpY0V2ZW50PzogSUV2ZW50O1xuICBhbGxvd1VubW9uaXRvcmVkRGVzY2VuZGFudHM/OiBib29sZWFuO1xuICBncm91cDogYW55O1xuICBzaG91bGRudERyYXc/OiBib29sZWFuO1xufVxuXG5jb25zdCBFZGdlczogUmVhY3QuRkM8RWRnZXNQcm9wcz4gPSAoe1xuICBMLFxuICBlZGdlcyxcbiAgbWFwLFxuICBwb2ludHMsXG4gIGhpZGVFZGdlcyA9IGZhbHNlLFxuICBoaWRlQXJyb3dzID0gZmFsc2UsXG4gIGFsbG93VW5tb25pdG9yZWREZXNjZW5kYW50cyA9IGZhbHNlLFxuICBzcGVjaWZpY0V2ZW50LFxuICBncm91cCxcbiAgc2hvdWxkbnREcmF3ID0gZmFsc2UsXG59KSA9PiB7XG4gIC8vIHVzZUVmZmVjdCgoKSA9PiB7XG4gIC8vICAgcmV0dXJuIGZ1bmN0aW9uIGNsZWFudXAoKSB7XG4gIC8vICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IGluIG1hcC5fbGF5ZXJzKSB7XG4gIC8vICAgICAgIGlmIChcbiAgLy8gICAgICAgICBtYXAuX2xheWVyc1twcm9wZXJ0eV0ua2FuZG9fb2JqZWN0ID09PSAnRWRnZScgfHxcbiAgLy8gICAgICAgICBtYXAuX2xheWVyc1twcm9wZXJ0eV0ua2FuZG9fb2JqZWN0ID09PSAnRWRnZUZyb250JyB8fFxuICAvLyAgICAgICAgIG1hcC5fbGF5ZXJzW3Byb3BlcnR5XS5rYW5kb19vYmplY3QgPT09ICdBcnJvdydcbiAgLy8gICAgICAgKSB7XG4gIC8vICAgICAgICAgbWFwLnJlbW92ZUxheWVyKG1hcC5fbGF5ZXJzW3Byb3BlcnR5XSk7XG4gIC8vICAgICAgIH1cbiAgLy8gICAgIH1cbiAgLy8gICB9O1xuICAvLyB9LCBbXSk7XG5cbiAgY29uc3Qgc2hvd25FZGdlcyA9ICgpID0+IHtcbiAgICByZXR1cm4gZWRnZXMuZmlsdGVyKFxuICAgICAgKGVkZ2UpID0+XG4gICAgICAgIGVkZ2UuZGVzY2VuZGFudHNfaGFzX2RldmljZSA9PT0gdHJ1ZSB8fFxuICAgICAgICBlZGdlLmRlc2NlbmRhbnRzX2hhc19ub25lX2NvbGxlY3RvcnMgPT09IHRydWUsXG4gICAgKTtcbiAgfTtcblxuICBlZGdlcyA9IHNob3duRWRnZXMoKTtcblxuICBpZiAoc2hvdWxkbnREcmF3KSByZXR1cm4gPD48Lz47XG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHtlZGdlcy5sZW5ndGggIT09IDAgJiZcbiAgICAgICAgZWRnZXMubWFwKChlZGdlOiBJRWRnZSkgPT4ge1xuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8RWRnZVxuICAgICAgICAgICAgICBMPXtMfVxuICAgICAgICAgICAgICBlZGdlPXtlZGdlfVxuICAgICAgICAgICAgICBtYXA9e21hcH1cbiAgICAgICAgICAgICAga2V5PXtlZGdlLmlkfVxuICAgICAgICAgICAgICBwb2ludHM9e3BvaW50c31cbiAgICAgICAgICAgICAgaGlkZUVkZ2VzPXtoaWRlRWRnZXN9XG4gICAgICAgICAgICAgIHNwZWNpZmljRXZlbnQ9e3NwZWNpZmljRXZlbnR9XG4gICAgICAgICAgICAgIGFsbG93VW5tb25pdG9yZWREZXNjZW5kYW50cz17YWxsb3dVbm1vbml0b3JlZERlc2NlbmRhbnRzfVxuICAgICAgICAgICAgICBncm91cD17Z3JvdXB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICk7XG4gICAgICAgIH0pfVxuICAgICAgeyFoaWRlRWRnZXMgJiYgIWhpZGVBcnJvd3MgJiYgZWRnZXMubGVuZ3RoICE9PSAwICYmIChcbiAgICAgICAgPEFycm93cyBtYXA9e21hcH0gTD17TH0gZWRnZXM9e2VkZ2VzfSBwb2ludHM9e3BvaW50c30gLz5cbiAgICAgICl9XG4gICAgPC8+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBFZGdlcztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUdBLElBQUFFLEtBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQWdCQSxJQUFNRyxLQUEyQixHQUFHLFNBQTlCQSxLQUEyQkEsQ0FBQUMsSUFBQSxFQVczQjtFQUFBLElBVkpDLENBQUMsR0FBQUQsSUFBQSxDQUFEQyxDQUFDO0lBQ0RDLEtBQUssR0FBQUYsSUFBQSxDQUFMRSxLQUFLO0lBQ0xDLEdBQUcsR0FBQUgsSUFBQSxDQUFIRyxHQUFHO0lBQ0hDLE1BQU0sR0FBQUosSUFBQSxDQUFOSSxNQUFNO0lBQUFDLGNBQUEsR0FBQUwsSUFBQSxDQUNOTSxTQUFTO0lBQVRBLFNBQVMsR0FBQUQsY0FBQSxjQUFHLEtBQUssR0FBQUEsY0FBQTtJQUFBRSxlQUFBLEdBQUFQLElBQUEsQ0FDakJRLFVBQVU7SUFBVkEsVUFBVSxHQUFBRCxlQUFBLGNBQUcsS0FBSyxHQUFBQSxlQUFBO0lBQUFFLHFCQUFBLEdBQUFULElBQUEsQ0FDbEJVLDJCQUEyQjtJQUEzQkEsMkJBQTJCLEdBQUFELHFCQUFBLGNBQUcsS0FBSyxHQUFBQSxxQkFBQTtJQUNuQ0UsYUFBYSxHQUFBWCxJQUFBLENBQWJXLGFBQWE7SUFDYkMsS0FBSyxHQUFBWixJQUFBLENBQUxZLEtBQUs7SUFBQUMsaUJBQUEsR0FBQWIsSUFBQSxDQUNMYyxZQUFZO0lBQVpBLFlBQVksR0FBQUQsaUJBQUEsY0FBRyxLQUFLLEdBQUFBLGlCQUFBO0VBRXBCO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztFQUVBLElBQU1FLFVBQVUsR0FBRyxTQUFiQSxVQUFVQSxDQUFBLEVBQVM7SUFDdkIsT0FBT2IsS0FBSyxDQUFDYyxNQUFNLENBQ2pCLFVBQUNDLElBQUk7TUFBQSxPQUNIQSxJQUFJLENBQUNDLHNCQUFzQixLQUFLLElBQUksSUFDcENELElBQUksQ0FBQ0UsK0JBQStCLEtBQUssSUFBSTtJQUFBLENBQ2pELENBQUM7RUFDSCxDQUFDO0VBRURqQixLQUFLLEdBQUdhLFVBQVUsQ0FBQyxDQUFDO0VBRXBCLElBQUlELFlBQVksRUFBRSxvQkFBT3BCLE1BQUEsQ0FBQTBCLE9BQUEsQ0FBQUMsYUFBQSxDQUFBM0IsTUFBQSxDQUFBMEIsT0FBQSxDQUFBRSxRQUFBLE1BQUksQ0FBQztFQUM5QixvQkFDRTVCLE1BQUEsQ0FBQTBCLE9BQUEsQ0FBQUMsYUFBQSxDQUFBM0IsTUFBQSxDQUFBMEIsT0FBQSxDQUFBRSxRQUFBLFFBQ0dwQixLQUFLLENBQUNxQixNQUFNLEtBQUssQ0FBQyxJQUNqQnJCLEtBQUssQ0FBQ0MsR0FBRyxDQUFDLFVBQUNjLElBQVcsRUFBSztJQUN6QixvQkFDRXZCLE1BQUEsQ0FBQTBCLE9BQUEsQ0FBQUMsYUFBQSxDQUFDdkIsS0FBQSxDQUFBc0IsT0FBSTtNQUNIbkIsQ0FBQyxFQUFFQSxDQUFFO01BQ0xnQixJQUFJLEVBQUVBLElBQUs7TUFDWGQsR0FBRyxFQUFFQSxHQUFJO01BQ1RxQixHQUFHLEVBQUVQLElBQUksQ0FBQ1EsRUFBRztNQUNickIsTUFBTSxFQUFFQSxNQUFPO01BQ2ZFLFNBQVMsRUFBRUEsU0FBVTtNQUNyQkssYUFBYSxFQUFFQSxhQUFjO01BQzdCRCwyQkFBMkIsRUFBRUEsMkJBQTRCO01BQ3pERSxLQUFLLEVBQUVBO0lBQU0sQ0FDZCxDQUFDO0VBRU4sQ0FBQyxDQUFDLEVBQ0gsQ0FBQ04sU0FBUyxJQUFJLENBQUNFLFVBQVUsSUFBSU4sS0FBSyxDQUFDcUIsTUFBTSxLQUFLLENBQUMsaUJBQzlDN0IsTUFBQSxDQUFBMEIsT0FBQSxDQUFBQyxhQUFBLENBQUN4QixPQUFBLENBQUE2QixNQUFNO0lBQUN2QixHQUFHLEVBQUVBLEdBQUk7SUFBQ0YsQ0FBQyxFQUFFQSxDQUFFO0lBQUNDLEtBQUssRUFBRUEsS0FBTTtJQUFDRSxNQUFNLEVBQUVBO0VBQU8sQ0FBRSxDQUV6RCxDQUFDO0FBRVAsQ0FBQztBQUFDLElBQUF1QixRQUFBLEdBRWE1QixLQUFLO0FBQUE2QixPQUFBLENBQUFSLE9BQUEsR0FBQU8sUUFBQSJ9
|
package/lib/macros/getVersion.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var packageJsonVersion = "1.2.
|
|
3
|
+
var packageJsonVersion = "1.2.424-alpha.0";
|
|
4
4
|
if (typeof packageJsonVersion === 'string') {
|
|
5
5
|
// eslint-disable-next-line no-console
|
|
6
6
|
console.log("%c Kando UI %c v".concat(packageJsonVersion, " "), 'font-size: 15px; background-color: #fff; color: #e20f53;', 'font-weight: bold; font-size: 15px; background-color: #e20f53; color: #fff;', "with NODE_ENV=".concat(process.env.NODE_ENV));
|