@kando-env/kando-ui 1.2.398-alpha.3 → 1.2.398-alpha.5
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/macros/getVersion.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var packageJsonVersion = "1.2.398-alpha.
|
|
3
|
+
var packageJsonVersion = "1.2.398-alpha.5";
|
|
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));
|
|
@@ -87,12 +87,12 @@ var useMap = function useMap(mapRef, points, edges, areas, selectedPoint, update
|
|
|
87
87
|
pointsLayerRef.current.addTo(map);
|
|
88
88
|
if (!pointsLayerRef.current.getLayers().length) {
|
|
89
89
|
points.forEach(function (point) {
|
|
90
|
-
var _pointsLayerRef$curre3;
|
|
91
90
|
var type = point.has_device === true || point.group.type === 'Groups::WastewaterTreatmentPlant' ? point.group.type : 'Groups::default';
|
|
92
91
|
var icon = (0, _PointIcon.getPointIconByType)(type, point.name, '', false, true);
|
|
93
92
|
var focusedIcon = (0, _PointIcon.getPointIconByType)(type, point.name, '', true, false);
|
|
94
|
-
|
|
95
|
-
|
|
93
|
+
if (point.latitude && point.longitude) {
|
|
94
|
+
var _pointsLayerRef$curre3;
|
|
95
|
+
var marker = getMarker(point);
|
|
96
96
|
marker.setIcon(icon);
|
|
97
97
|
// The use of marker._isInside is to overcome the issue that mouseover is endlessly triggered
|
|
98
98
|
// and we need it only once
|
|
@@ -109,24 +109,19 @@ var useMap = function useMap(mapRef, points, edges, areas, selectedPoint, update
|
|
|
109
109
|
marker.setIcon(icon);
|
|
110
110
|
}
|
|
111
111
|
});
|
|
112
|
+
marker.on('click', function () {
|
|
113
|
+
var _focusedMarkerRef$cur2;
|
|
114
|
+
if ((focusedMarkerRef === null || focusedMarkerRef === void 0 ? void 0 : (_focusedMarkerRef$cur2 = focusedMarkerRef.current) === null || _focusedMarkerRef$cur2 === void 0 ? void 0 : _focusedMarkerRef$cur2._leaflet_id) === (marker === null || marker === void 0 ? void 0 : marker._leaflet_id)) {
|
|
115
|
+
setFocusedMarker(null);
|
|
116
|
+
handleMarkerClick(null);
|
|
117
|
+
} else {
|
|
118
|
+
handleMarkerClick(point);
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
(_pointsLayerRef$curre3 = pointsLayerRef.current) === null || _pointsLayerRef$curre3 === void 0 ? void 0 : _pointsLayerRef$curre3.addLayer(marker);
|
|
112
122
|
}
|
|
113
|
-
marker.on('click', function () {
|
|
114
|
-
var _focusedMarkerRef$cur2;
|
|
115
|
-
if ((focusedMarkerRef === null || focusedMarkerRef === void 0 ? void 0 : (_focusedMarkerRef$cur2 = focusedMarkerRef.current) === null || _focusedMarkerRef$cur2 === void 0 ? void 0 : _focusedMarkerRef$cur2._leaflet_id) === (marker === null || marker === void 0 ? void 0 : marker._leaflet_id)) {
|
|
116
|
-
setFocusedMarker(null);
|
|
117
|
-
handleMarkerClick(null);
|
|
118
|
-
} else {
|
|
119
|
-
handleMarkerClick(point);
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
(_pointsLayerRef$curre3 = pointsLayerRef.current) === null || _pointsLayerRef$curre3 === void 0 ? void 0 : _pointsLayerRef$curre3.addLayer(marker);
|
|
123
123
|
});
|
|
124
124
|
}
|
|
125
|
-
if (pointsLayerRef.current.getLayers().length) {
|
|
126
|
-
map.fitBounds(pointsLayerRef.current.getBounds());
|
|
127
|
-
} else {
|
|
128
|
-
map.setView([32.219157, 34.982481], 12);
|
|
129
|
-
}
|
|
130
125
|
};
|
|
131
126
|
var getMarker = function getMarker(point) {
|
|
132
127
|
return _leaflet.default.marker([point.latitude, point.longitude], {
|
|
@@ -149,7 +144,7 @@ var useMap = function useMap(mapRef, points, edges, areas, selectedPoint, update
|
|
|
149
144
|
edgesLayerRef.current = _leaflet.default.featureGroup();
|
|
150
145
|
edgesLayerRef.current.addTo(map);
|
|
151
146
|
edges.forEach(function (edge) {
|
|
152
|
-
var _edgesLayerRef$curren;
|
|
147
|
+
var _edgesLayerRef$curren, _edgesLayerRef$curren2;
|
|
153
148
|
var sourcePoint = pointLookup.get(edge.source_point_id);
|
|
154
149
|
var targetPoint = pointLookup.get(edge.target_point_id);
|
|
155
150
|
if (!sourcePoint || !targetPoint) {
|
|
@@ -179,7 +174,7 @@ var useMap = function useMap(mapRef, points, edges, areas, selectedPoint, update
|
|
|
179
174
|
})
|
|
180
175
|
}]
|
|
181
176
|
});
|
|
182
|
-
|
|
177
|
+
(_edgesLayerRef$curren2 = edgesLayerRef.current) === null || _edgesLayerRef$curren2 === void 0 ? void 0 : _edgesLayerRef$curren2.addLayer(decorator);
|
|
183
178
|
});
|
|
184
179
|
};
|
|
185
180
|
var addAreas = function addAreas() {
|
|
@@ -197,7 +192,9 @@ var useMap = function useMap(mapRef, points, edges, areas, selectedPoint, update
|
|
|
197
192
|
var areas = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
198
193
|
var allAreas = [];
|
|
199
194
|
areas.forEach(function (area) {
|
|
200
|
-
|
|
195
|
+
if (area.shape_data.length > 0) {
|
|
196
|
+
allAreas.push(area);
|
|
197
|
+
}
|
|
201
198
|
|
|
202
199
|
// If there are sub_areas, recurse and concatenate
|
|
203
200
|
if (Array.isArray(area.sub_areas) && area.sub_areas.length > 0) {
|
|
@@ -225,12 +222,24 @@ var useMap = function useMap(mapRef, points, edges, areas, selectedPoint, update
|
|
|
225
222
|
(_areasLayerRef$curren = areasLayerRef.current) === null || _areasLayerRef$curren === void 0 ? void 0 : _areasLayerRef$curren.addLayer(polygon);
|
|
226
223
|
});
|
|
227
224
|
};
|
|
225
|
+
var focusMap = function focusMap() {
|
|
226
|
+
if (map) {
|
|
227
|
+
if ((pointsLayerRef === null || pointsLayerRef === void 0 ? void 0 : pointsLayerRef.current) && Array.isArray(pointsLayerRef.current.getLayers()) && pointsLayerRef.current.getLayers().length > 0) {
|
|
228
|
+
map.fitBounds(pointsLayerRef.current.getBounds());
|
|
229
|
+
} else {
|
|
230
|
+
map.setView([32.219157, 34.982481], 12);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
};
|
|
228
234
|
(0, _react.useEffect)(function () {
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
235
|
+
if (map) {
|
|
236
|
+
addAreas();
|
|
237
|
+
addEdges();
|
|
238
|
+
addMarkers();
|
|
239
|
+
focusMap();
|
|
240
|
+
}
|
|
241
|
+
}, [points, areas, edges, map]);
|
|
233
242
|
return map;
|
|
234
243
|
};
|
|
235
244
|
exports.useMap = useMap;
|
|
236
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX1BvaW50SWNvbiIsIl90aGVtZSIsIl9NYXBVdGlscyIsInVzZU1hcCIsIm1hcFJlZiIsInBvaW50cyIsImVkZ2VzIiwiYXJlYXMiLCJzZWxlY3RlZFBvaW50IiwidXBkYXRlU2VsZWN0ZWRQb2ludCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImRlZmF1bHQiLCJtYXAiLCJzZXRNYXAiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImZvY3VzZWRNYXJrZXIiLCJzZXRGb2N1c2VkTWFya2VyIiwiZm9jdXNlZE1hcmtlclJlZiIsInVzZVJlZiIsInBvaW50c0xheWVyUmVmIiwiZWRnZXNMYXllclJlZiIsImFyZWFzTGF5ZXJSZWYiLCJ1c2VFZmZlY3QiLCJjdXJyZW50IiwicmVzZXRBbGxPdGhlcnMiLCJtYXBUeXBlcyIsImJhc2VNYXBzIiwibGVhZmxldE1hcCIsIm1hcERlZmF1bHQiLCJzYXRlbGxpdGUiLCJtYXBUZW1wIiwiTCIsInJlbmRlcmVyIiwiY2FudmFzIiwiT2JqZWN0IiwidmFsdWVzIiwiYWRkVG8iLCJjb250cm9sIiwibGF5ZXJzIiwicG9zaXRpb24iLCJvZmYiLCJyZW1vdmUiLCJfcG9pbnRzTGF5ZXJSZWYkY3VycmUiLCJlYWNoTGF5ZXIiLCJtYXJrZXIiLCJvcHRpb25zIiwia2FuZG9fb2JqZWN0X2lkIiwiaWQiLCJfaXNJbnNpZGUiLCJmaXJlIiwiX3BvaW50c0xheWVyUmVmJGN1cnJlMiIsImhhbmRsZU1hcmtlckNsaWNrIiwicG9pbnQiLCJhZGRNYXJrZXJzIiwiaGFzTGF5ZXIiLCJyZW1vdmVMYXllciIsImZlYXR1cmVHcm91cCIsImdldExheWVycyIsImxlbmd0aCIsImZvckVhY2giLCJfcG9pbnRzTGF5ZXJSZWYkY3VycmUzIiwidHlwZSIsImhhc19kZXZpY2UiLCJncm91cCIsImljb24iLCJnZXRQb2ludEljb25CeVR5cGUiLCJuYW1lIiwiZm9jdXNlZEljb24iLCJnZXRNYXJrZXIiLCJNYXJrZXIiLCJzZXRJY29uIiwib24iLCJfZm9jdXNlZE1hcmtlclJlZiRjdXIiLCJfbGVhZmxldF9pZCIsIl9mb2N1c2VkTWFya2VyUmVmJGN1cjIiLCJhZGRMYXllciIsImZpdEJvdW5kcyIsImdldEJvdW5kcyIsInNldFZpZXciLCJsYXRpdHVkZSIsImxvbmdpdHVkZSIsImFkZEVkZ2VzIiwicG9pbnRMb29rdXAiLCJNYXAiLCJwIiwic2V0IiwiZWRnZSIsIl9lZGdlc0xheWVyUmVmJGN1cnJlbiIsInNvdXJjZVBvaW50IiwiZ2V0Iiwic291cmNlX3BvaW50X2lkIiwidGFyZ2V0UG9pbnQiLCJ0YXJnZXRfcG9pbnRfaWQiLCJsYXRsbmdzIiwicG9seWxpbmUiLCJjb2xvciIsIndlaWdodCIsIm9wYWNpdHkiLCJzbW9vdGhGYWN0b3IiLCJkZWNvcmF0b3IiLCJwb2x5bGluZURlY29yYXRvciIsInBhdHRlcm5zIiwib2Zmc2V0IiwicmVwZWF0Iiwic3ltYm9sIiwiU3ltYm9sIiwiYXJyb3dIZWFkIiwicGl4ZWxTaXplIiwicG9seWdvbiIsInBhdGhPcHRpb25zIiwic3Ryb2tlIiwiYWRkQXJlYXMiLCJmbGF0dGVuQXJlYXMiLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJhbGxBcmVhcyIsImFyZWEiLCJwdXNoIiwiQXJyYXkiLCJpc0FycmF5Iiwic3ViX2FyZWFzIiwiY29uY2F0IiwiX2FyZWFzTGF5ZXJSZWYkY3VycmVuIiwic2hhcGVfZGF0YSIsImludGVyYWN0aXZlIiwiYXJlYV9pZCIsImJpbmRUb29sdGlwIiwiYXJlYV9uYW1lIiwicGVybWFuZW50IiwiZGlyZWN0aW9uIiwiY2xhc3NOYW1lIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYWdlcy9PcGVyYXRpb25zUGFnZS9NYXAvdXNlTWFwLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTCwgeyBNYXJrZXIgfSBmcm9tICdsZWFmbGV0JztcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBnZXRQb2ludEljb25CeVR5cGUgfSBmcm9tICdzcmMvV2lkZ2V0cy9NYXAvcG9pbnRzL1BvaW50SWNvbic7XG5pbXBvcnQgeyBsZWFmbGV0TWFwIH0gZnJvbSAnc3JjL3N0eWxlcy90aGVtZS90aGVtZSc7XG5pbXBvcnQgeyBiYXNlTWFwcyB9IGZyb20gJ3NyYy9XaWRnZXRzL01hcC9NYXBVdGlscyc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdzcmMvc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnQnO1xuaW1wb3J0IHsgSUVkZ2UgfSBmcm9tICdzcmMvc3RvcmUvZWRnZXMvbW9kZWxzL0lFZGdlJztcbmltcG9ydCB7IElBcmVhIH0gZnJvbSAnc3JjL3N0b3JlL2FyZWFzL21vZGVscy9JQXJlYSc7XG5cbmV4cG9ydCBjb25zdCB1c2VNYXAgPSAoXG4gIG1hcFJlZjogUmVhY3QuUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PixcbiAgcG9pbnRzOiBJUG9pbnRbXSxcbiAgZWRnZXM6IElFZGdlW10sXG4gIGFyZWFzOiBJQXJlYVtdLFxuICBzZWxlY3RlZFBvaW50OiBJUG9pbnQgfCBudWxsLFxuICB1cGRhdGVTZWxlY3RlZFBvaW50OiAocG9pbnQ6IElQb2ludCkgPT4gdm9pZCxcbik6IEwuTWFwIHwgdW5kZWZpbmVkID0+IHtcbiAgY29uc3QgW21hcCwgc2V0TWFwXSA9IHVzZVN0YXRlPEwuTWFwPigpO1xuICBjb25zdCBbZm9jdXNlZE1hcmtlciwgc2V0Rm9jdXNlZE1hcmtlcl0gPSB1c2VTdGF0ZTxNYXJrZXIgfCBudWxsPihudWxsKTtcbiAgY29uc3QgZm9jdXNlZE1hcmtlclJlZiA9IHVzZVJlZjxNYXJrZXIgfCBudWxsPihudWxsKTtcbiAgY29uc3QgcG9pbnRzTGF5ZXJSZWYgPSB1c2VSZWY8TC5GZWF0dXJlR3JvdXA+KCk7XG4gIGNvbnN0IGVkZ2VzTGF5ZXJSZWYgPSB1c2VSZWY8TC5GZWF0dXJlR3JvdXA+KCk7XG4gIGNvbnN0IGFyZWFzTGF5ZXJSZWYgPSB1c2VSZWY8TC5GZWF0dXJlR3JvdXA+KCk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBmb2N1c2VkTWFya2VyUmVmLmN1cnJlbnQgPSBmb2N1c2VkTWFya2VyO1xuICAgIHJlc2V0QWxsT3RoZXJzKCk7XG4gIH0sIFtmb2N1c2VkTWFya2VyXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIW1hcFJlZi5jdXJyZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbWFwVHlwZXMgPSBiYXNlTWFwcyhsZWFmbGV0TWFwLm1hcERlZmF1bHQsIGxlYWZsZXRNYXAuc2F0ZWxsaXRlKTtcbiAgICBjb25zdCBtYXBUZW1wID0gTC5tYXAobWFwUmVmLmN1cnJlbnQsIHsgcmVuZGVyZXI6IEwuY2FudmFzKCkgfSk7XG5cbiAgICBPYmplY3QudmFsdWVzKG1hcFR5cGVzKVswXS5hZGRUbyhtYXBUZW1wKTtcblxuICAgIEwuY29udHJvbC5sYXllcnMobWFwVHlwZXMsIHt9LCB7IHBvc2l0aW9uOiAnYm90dG9tcmlnaHQnIH0pLmFkZFRvKG1hcFRlbXApO1xuXG4gICAgc2V0TWFwKG1hcFRlbXApO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmICghbWFwVGVtcCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBtYXBUZW1wLm9mZigpO1xuICAgICAgbWFwVGVtcC5yZW1vdmUoKTtcbiAgICB9O1xuICB9LCBbXSk7XG5cbiAgY29uc3QgcmVzZXRBbGxPdGhlcnMgPSAoKSA9PiB7XG4gICAgcG9pbnRzTGF5ZXJSZWYuY3VycmVudD8uZWFjaExheWVyKChtYXJrZXIpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgbWFya2VyLm9wdGlvbnMua2FuZG9fb2JqZWN0X2lkICE9PSBzZWxlY3RlZFBvaW50Py5pZCAmJlxuICAgICAgICBtYXJrZXIuX2lzSW5zaWRlXG4gICAgICApIHtcbiAgICAgICAgbWFya2VyLmZpcmUoJ21vdXNlb3V0Jyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoc2VsZWN0ZWRQb2ludCA9PT0gbnVsbCkge1xuICAgICAgc2V0Rm9jdXNlZE1hcmtlcihudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcG9pbnRzTGF5ZXJSZWYuY3VycmVudD8uZWFjaExheWVyKChtYXJrZXIpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHNlbGVjdGVkUG9pbnQgJiZcbiAgICAgICAgICBtYXJrZXIub3B0aW9ucy5rYW5kb19vYmplY3RfaWQgPT09IHNlbGVjdGVkUG9pbnQ/LmlkXG4gICAgICAgICkge1xuICAgICAgICAgIG1hcmtlci5maXJlKCdtb3VzZW92ZXInKTtcbiAgICAgICAgICBzZXRGb2N1c2VkTWFya2VyKG1hcmtlcik7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtzZWxlY3RlZFBvaW50XSk7XG5cbiAgY29uc3QgaGFuZGxlTWFya2VyQ2xpY2sgPSAocG9pbnQpID0+IHtcbiAgICB1cGRhdGVTZWxlY3RlZFBvaW50KHBvaW50KTtcbiAgfTtcblxuICBjb25zdCBhZGRNYXJrZXJzID0gKCkgPT4ge1xuICAgIGlmICghbWFwIHx8ICFwb2ludHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAocG9pbnRzTGF5ZXJSZWYuY3VycmVudCkge1xuICAgICAgaWYgKG1hcC5oYXNMYXllcihwb2ludHNMYXllclJlZi5jdXJyZW50KSkge1xuICAgICAgICBtYXAucmVtb3ZlTGF5ZXIocG9pbnRzTGF5ZXJSZWYuY3VycmVudCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcG9pbnRzTGF5ZXJSZWYuY3VycmVudCA9IEwuZmVhdHVyZUdyb3VwKCk7XG4gICAgcG9pbnRzTGF5ZXJSZWYuY3VycmVudC5hZGRUbyhtYXApO1xuXG4gICAgaWYgKCFwb2ludHNMYXllclJlZi5jdXJyZW50LmdldExheWVycygpLmxlbmd0aCkge1xuICAgICAgcG9pbnRzLmZvckVhY2goKHBvaW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHR5cGUgPVxuICAgICAgICAgIHBvaW50Lmhhc19kZXZpY2UgPT09IHRydWUgfHxcbiAgICAgICAgICBwb2ludC5ncm91cC50eXBlID09PSAnR3JvdXBzOjpXYXN0ZXdhdGVyVHJlYXRtZW50UGxhbnQnXG4gICAgICAgICAgICA/IHBvaW50Lmdyb3VwLnR5cGVcbiAgICAgICAgICAgIDogJ0dyb3Vwczo6ZGVmYXVsdCc7XG4gICAgICAgIGNvbnN0IGljb24gPSBnZXRQb2ludEljb25CeVR5cGUodHlwZSwgcG9pbnQubmFtZSwgJycsIGZhbHNlLCB0cnVlKTtcblxuICAgICAgICBjb25zdCBmb2N1c2VkSWNvbiA9IGdldFBvaW50SWNvbkJ5VHlwZShcbiAgICAgICAgICB0eXBlLFxuICAgICAgICAgIHBvaW50Lm5hbWUsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICBmYWxzZSxcbiAgICAgICAgKTtcblxuICAgICAgICBsZXQgbWFya2VyID0gZ2V0TWFya2VyKHBvaW50KTtcblxuICAgICAgICBpZiAobWFya2VyIGluc3RhbmNlb2YgTC5NYXJrZXIpIHtcbiAgICAgICAgICBtYXJrZXIuc2V0SWNvbihpY29uKTtcbiAgICAgICAgICAvLyBUaGUgdXNlIG9mIG1hcmtlci5faXNJbnNpZGUgaXMgdG8gb3ZlcmNvbWUgdGhlIGlzc3VlIHRoYXQgbW91c2VvdmVyIGlzIGVuZGxlc3NseSB0cmlnZ2VyZWRcbiAgICAgICAgICAvLyBhbmQgd2UgbmVlZCBpdCBvbmx5IG9uY2VcbiAgICAgICAgICBtYXJrZXIub24oJ21vdXNlb3ZlcicsICgpID0+IHtcbiAgICAgICAgICAgIGlmICghbWFya2VyLl9pc0luc2lkZSkge1xuICAgICAgICAgICAgICBtYXJrZXIuX2lzSW5zaWRlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgbWFya2VyLnNldEljb24oZm9jdXNlZEljb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIG1hcmtlci5vbignbW91c2VvdXQnLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIGZvY3VzZWRNYXJrZXJSZWY/LmN1cnJlbnQ/Ll9sZWFmbGV0X2lkICE9PSBtYXJrZXI/Ll9sZWFmbGV0X2lkXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgbWFya2VyLl9pc0luc2lkZSA9IGZhbHNlO1xuICAgICAgICAgICAgICBtYXJrZXIuc2V0SWNvbihpY29uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIG1hcmtlci5vbignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgaWYgKGZvY3VzZWRNYXJrZXJSZWY/LmN1cnJlbnQ/Ll9sZWFmbGV0X2lkID09PSBtYXJrZXI/Ll9sZWFmbGV0X2lkKSB7XG4gICAgICAgICAgICBzZXRGb2N1c2VkTWFya2VyKG51bGwpO1xuICAgICAgICAgICAgaGFuZGxlTWFya2VyQ2xpY2sobnVsbCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGhhbmRsZU1hcmtlckNsaWNrKHBvaW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHBvaW50c0xheWVyUmVmLmN1cnJlbnQ/LmFkZExheWVyKG1hcmtlcik7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAocG9pbnRzTGF5ZXJSZWYuY3VycmVudC5nZXRMYXllcnMoKS5sZW5ndGgpIHtcbiAgICAgIG1hcC5maXRCb3VuZHMocG9pbnRzTGF5ZXJSZWYuY3VycmVudC5nZXRCb3VuZHMoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG1hcC5zZXRWaWV3KFszMi4yMTkxNTcsIDM0Ljk4MjQ4MV0sIDEyKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgZ2V0TWFya2VyID0gKHBvaW50OiBJUG9pbnQpID0+IHtcbiAgICByZXR1cm4gTC5tYXJrZXIoW3BvaW50LmxhdGl0dWRlLCBwb2ludC5sb25naXR1ZGVdLCB7XG4gICAgICBrYW5kb19vYmplY3RfaWQ6IHBvaW50LmlkLFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGFkZEVkZ2VzID0gKCkgPT4ge1xuICAgIGlmICghbWFwIHx8ICFlZGdlcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHBvaW50TG9va3VwID0gbmV3IE1hcCgpO1xuICAgIHBvaW50cy5mb3JFYWNoKChwKSA9PiBwb2ludExvb2t1cC5zZXQocC5pZCwgcCkpO1xuXG4gICAgaWYgKGVkZ2VzTGF5ZXJSZWYuY3VycmVudCkge1xuICAgICAgaWYgKG1hcC5oYXNMYXllcihlZGdlc0xheWVyUmVmLmN1cnJlbnQpKSB7XG4gICAgICAgIG1hcC5yZW1vdmVMYXllcihlZGdlc0xheWVyUmVmLmN1cnJlbnQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGVkZ2VzTGF5ZXJSZWYuY3VycmVudCA9IEwuZmVhdHVyZUdyb3VwKCk7XG4gICAgZWRnZXNMYXllclJlZi5jdXJyZW50LmFkZFRvKG1hcCk7XG5cbiAgICBlZGdlcy5mb3JFYWNoKChlZGdlKSA9PiB7XG4gICAgICBjb25zdCBzb3VyY2VQb2ludCA9IHBvaW50TG9va3VwLmdldChlZGdlLnNvdXJjZV9wb2ludF9pZCk7XG4gICAgICBjb25zdCB0YXJnZXRQb2ludCA9IHBvaW50TG9va3VwLmdldChlZGdlLnRhcmdldF9wb2ludF9pZCk7XG5cbiAgICAgIGlmICghc291cmNlUG9pbnQgfHwgIXRhcmdldFBvaW50KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbGF0bG5ncyA9IFtcbiAgICAgICAgW3NvdXJjZVBvaW50Py5sYXRpdHVkZSwgc291cmNlUG9pbnQ/LmxvbmdpdHVkZV0sXG4gICAgICAgIFt0YXJnZXRQb2ludD8ubGF0aXR1ZGUsIHRhcmdldFBvaW50Py5sb25naXR1ZGVdLFxuICAgICAgXTtcblxuICAgICAgY29uc3QgcG9seWxpbmUgPSBMLnBvbHlsaW5lKGxhdGxuZ3MsIHtcbiAgICAgICAgY29sb3I6ICdibGFjaycsXG4gICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgb3BhY2l0eTogMC41LFxuICAgICAgICBzbW9vdGhGYWN0b3I6IDEsXG4gICAgICB9KTtcblxuICAgICAgZWRnZXNMYXllclJlZi5jdXJyZW50Py5hZGRMYXllcihwb2x5bGluZSk7XG5cbiAgICAgIGNvbnN0IGRlY29yYXRvciA9IEwucG9seWxpbmVEZWNvcmF0b3IocG9seWxpbmUsIHtcbiAgICAgICAgcGF0dGVybnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvZmZzZXQ6IDIwLFxuICAgICAgICAgICAgcmVwZWF0OiA2MCxcbiAgICAgICAgICAgIHN5bWJvbDogTC5TeW1ib2wuYXJyb3dIZWFkKHtcbiAgICAgICAgICAgICAgcGl4ZWxTaXplOiA0LFxuICAgICAgICAgICAgICBwb2x5Z29uOiBmYWxzZSxcbiAgICAgICAgICAgICAgcGF0aE9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBzdHJva2U6IHRydWUsXG4gICAgICAgICAgICAgICAgY29sb3I6ICcjNTU1JyxcbiAgICAgICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC44LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBkZWNvcmF0b3IuYWRkVG8obWFwKTtcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBhZGRBcmVhcyA9ICgpID0+IHtcbiAgICBpZiAoIW1hcCB8fCAhYXJlYXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoYXJlYXNMYXllclJlZi5jdXJyZW50KSB7XG4gICAgICBpZiAobWFwLmhhc0xheWVyKGFyZWFzTGF5ZXJSZWYuY3VycmVudCkpIHtcbiAgICAgICAgbWFwLnJlbW92ZUxheWVyKGFyZWFzTGF5ZXJSZWYuY3VycmVudCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYXJlYXNMYXllclJlZi5jdXJyZW50ID0gTC5mZWF0dXJlR3JvdXAoKTtcbiAgICBhcmVhc0xheWVyUmVmLmN1cnJlbnQuYWRkVG8obWFwKTtcblxuICAgIGNvbnN0IGZsYXR0ZW5BcmVhcyA9IChhcmVhczogSUFyZWFbXSA9IFtdKTogSUFyZWFbXSA9PiB7XG4gICAgICBsZXQgYWxsQXJlYXM6IElBcmVhW10gPSBbXTtcblxuICAgICAgYXJlYXMuZm9yRWFjaCgoYXJlYTogSUFyZWEpID0+IHtcbiAgICAgICAgYWxsQXJlYXMucHVzaChhcmVhKTtcblxuICAgICAgICAvLyBJZiB0aGVyZSBhcmUgc3ViX2FyZWFzLCByZWN1cnNlIGFuZCBjb25jYXRlbmF0ZVxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShhcmVhLnN1Yl9hcmVhcykgJiYgYXJlYS5zdWJfYXJlYXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGFsbEFyZWFzID0gYWxsQXJlYXMuY29uY2F0KGZsYXR0ZW5BcmVhcyhhcmVhLnN1Yl9hcmVhcykpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIGFsbEFyZWFzO1xuICAgIH07XG5cbiAgICBjb25zdCBhbGxBcmVhcyA9IGZsYXR0ZW5BcmVhcyhhcmVhcyk7XG5cbiAgICBhbGxBcmVhcy5mb3JFYWNoKChhcmVhKSA9PiB7XG4gICAgICBjb25zdCBwb2x5Z29uID0gTC5wb2x5Z29uKGFyZWEuc2hhcGVfZGF0YSwge1xuICAgICAgICBjb2xvcjogJ2JsYWNrJyxcbiAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICBvcGFjaXR5OiAwLjgsXG4gICAgICAgIHNtb290aEZhY3RvcjogMSxcbiAgICAgICAgaW50ZXJhY3RpdmU6IGZhbHNlLFxuICAgICAgICBrYW5kb19vYmplY3RfaWQ6IGFyZWEuYXJlYV9pZCxcbiAgICAgIH0pO1xuXG4gICAgICBwb2x5Z29uLmJpbmRUb29sdGlwKGFyZWEuYXJlYV9uYW1lLCB7XG4gICAgICAgIHBlcm1hbmVudDogdHJ1ZSxcbiAgICAgICAgZGlyZWN0aW9uOiAnY2VudGVyJyxcbiAgICAgICAgY2xhc3NOYW1lOiAnYXJlYS10b29sdGlwJyxcbiAgICAgIH0pO1xuXG4gICAgICBhcmVhc0xheWVyUmVmLmN1cnJlbnQ/LmFkZExheWVyKHBvbHlnb24pO1xuICAgIH0pO1xuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgYWRkQXJlYXMoKTtcbiAgICBhZGRNYXJrZXJzKCk7XG4gICAgYWRkRWRnZXMoKTtcbiAgfSwgW3BvaW50cywgbWFwXSk7XG5cbiAgcmV0dXJuIG1hcDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsUUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsVUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksU0FBQSxHQUFBSixPQUFBO0FBS08sSUFBTUssTUFBTSxHQUFHLFNBQVRBLE1BQU1BLENBQ2pCQyxNQUF1QyxFQUN2Q0MsTUFBZ0IsRUFDaEJDLEtBQWMsRUFDZEMsS0FBYyxFQUNkQyxhQUE0QixFQUM1QkMsbUJBQTRDLEVBQ3RCO0VBQ3RCLElBQUFDLFNBQUEsR0FBc0IsSUFBQUMsZUFBUSxFQUFRLENBQUM7SUFBQUMsVUFBQSxPQUFBQyxlQUFBLENBQUFDLE9BQUEsRUFBQUosU0FBQTtJQUFoQ0ssR0FBRyxHQUFBSCxVQUFBO0lBQUVJLE1BQU0sR0FBQUosVUFBQTtFQUNsQixJQUFBSyxVQUFBLEdBQTBDLElBQUFOLGVBQVEsRUFBZ0IsSUFBSSxDQUFDO0lBQUFPLFVBQUEsT0FBQUwsZUFBQSxDQUFBQyxPQUFBLEVBQUFHLFVBQUE7SUFBaEVF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
|
|
245
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX1BvaW50SWNvbiIsIl90aGVtZSIsIl9NYXBVdGlscyIsInVzZU1hcCIsIm1hcFJlZiIsInBvaW50cyIsImVkZ2VzIiwiYXJlYXMiLCJzZWxlY3RlZFBvaW50IiwidXBkYXRlU2VsZWN0ZWRQb2ludCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImRlZmF1bHQiLCJtYXAiLCJzZXRNYXAiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImZvY3VzZWRNYXJrZXIiLCJzZXRGb2N1c2VkTWFya2VyIiwiZm9jdXNlZE1hcmtlclJlZiIsInVzZVJlZiIsInBvaW50c0xheWVyUmVmIiwiZWRnZXNMYXllclJlZiIsImFyZWFzTGF5ZXJSZWYiLCJ1c2VFZmZlY3QiLCJjdXJyZW50IiwicmVzZXRBbGxPdGhlcnMiLCJtYXBUeXBlcyIsImJhc2VNYXBzIiwibGVhZmxldE1hcCIsIm1hcERlZmF1bHQiLCJzYXRlbGxpdGUiLCJtYXBUZW1wIiwiTCIsInJlbmRlcmVyIiwiY2FudmFzIiwiT2JqZWN0IiwidmFsdWVzIiwiYWRkVG8iLCJjb250cm9sIiwibGF5ZXJzIiwicG9zaXRpb24iLCJvZmYiLCJyZW1vdmUiLCJfcG9pbnRzTGF5ZXJSZWYkY3VycmUiLCJlYWNoTGF5ZXIiLCJtYXJrZXIiLCJvcHRpb25zIiwia2FuZG9fb2JqZWN0X2lkIiwiaWQiLCJfaXNJbnNpZGUiLCJmaXJlIiwiX3BvaW50c0xheWVyUmVmJGN1cnJlMiIsImhhbmRsZU1hcmtlckNsaWNrIiwicG9pbnQiLCJhZGRNYXJrZXJzIiwiaGFzTGF5ZXIiLCJyZW1vdmVMYXllciIsImZlYXR1cmVHcm91cCIsImdldExheWVycyIsImxlbmd0aCIsImZvckVhY2giLCJ0eXBlIiwiaGFzX2RldmljZSIsImdyb3VwIiwiaWNvbiIsImdldFBvaW50SWNvbkJ5VHlwZSIsIm5hbWUiLCJmb2N1c2VkSWNvbiIsImxhdGl0dWRlIiwibG9uZ2l0dWRlIiwiX3BvaW50c0xheWVyUmVmJGN1cnJlMyIsImdldE1hcmtlciIsInNldEljb24iLCJvbiIsIl9mb2N1c2VkTWFya2VyUmVmJGN1ciIsIl9sZWFmbGV0X2lkIiwiX2ZvY3VzZWRNYXJrZXJSZWYkY3VyMiIsImFkZExheWVyIiwiYWRkRWRnZXMiLCJwb2ludExvb2t1cCIsIk1hcCIsInAiLCJzZXQiLCJlZGdlIiwiX2VkZ2VzTGF5ZXJSZWYkY3VycmVuIiwiX2VkZ2VzTGF5ZXJSZWYkY3VycmVuMiIsInNvdXJjZVBvaW50IiwiZ2V0Iiwic291cmNlX3BvaW50X2lkIiwidGFyZ2V0UG9pbnQiLCJ0YXJnZXRfcG9pbnRfaWQiLCJsYXRsbmdzIiwicG9seWxpbmUiLCJjb2xvciIsIndlaWdodCIsIm9wYWNpdHkiLCJzbW9vdGhGYWN0b3IiLCJkZWNvcmF0b3IiLCJwb2x5bGluZURlY29yYXRvciIsInBhdHRlcm5zIiwib2Zmc2V0IiwicmVwZWF0Iiwic3ltYm9sIiwiU3ltYm9sIiwiYXJyb3dIZWFkIiwicGl4ZWxTaXplIiwicG9seWdvbiIsInBhdGhPcHRpb25zIiwic3Ryb2tlIiwiYWRkQXJlYXMiLCJmbGF0dGVuQXJlYXMiLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJhbGxBcmVhcyIsImFyZWEiLCJzaGFwZV9kYXRhIiwicHVzaCIsIkFycmF5IiwiaXNBcnJheSIsInN1Yl9hcmVhcyIsImNvbmNhdCIsIl9hcmVhc0xheWVyUmVmJGN1cnJlbiIsImludGVyYWN0aXZlIiwiYXJlYV9pZCIsImJpbmRUb29sdGlwIiwiYXJlYV9uYW1lIiwicGVybWFuZW50IiwiZGlyZWN0aW9uIiwiY2xhc3NOYW1lIiwiZm9jdXNNYXAiLCJmaXRCb3VuZHMiLCJnZXRCb3VuZHMiLCJzZXRWaWV3IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYWdlcy9PcGVyYXRpb25zUGFnZS9NYXAvdXNlTWFwLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTCwgeyBNYXJrZXIgfSBmcm9tICdsZWFmbGV0JztcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBnZXRQb2ludEljb25CeVR5cGUgfSBmcm9tICdzcmMvV2lkZ2V0cy9NYXAvcG9pbnRzL1BvaW50SWNvbic7XG5pbXBvcnQgeyBsZWFmbGV0TWFwIH0gZnJvbSAnc3JjL3N0eWxlcy90aGVtZS90aGVtZSc7XG5pbXBvcnQgeyBiYXNlTWFwcyB9IGZyb20gJ3NyYy9XaWRnZXRzL01hcC9NYXBVdGlscyc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdzcmMvc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnQnO1xuaW1wb3J0IHsgSUVkZ2UgfSBmcm9tICdzcmMvc3RvcmUvZWRnZXMvbW9kZWxzL0lFZGdlJztcbmltcG9ydCB7IElBcmVhIH0gZnJvbSAnc3JjL3N0b3JlL2FyZWFzL21vZGVscy9JQXJlYSc7XG5cbmV4cG9ydCBjb25zdCB1c2VNYXAgPSAoXG4gIG1hcFJlZjogUmVhY3QuUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PixcbiAgcG9pbnRzOiBJUG9pbnRbXSxcbiAgZWRnZXM6IElFZGdlW10sXG4gIGFyZWFzOiBJQXJlYVtdLFxuICBzZWxlY3RlZFBvaW50OiBJUG9pbnQgfCBudWxsLFxuICB1cGRhdGVTZWxlY3RlZFBvaW50OiAocG9pbnQ6IElQb2ludCkgPT4gdm9pZCxcbik6IEwuTWFwIHwgdW5kZWZpbmVkID0+IHtcbiAgY29uc3QgW21hcCwgc2V0TWFwXSA9IHVzZVN0YXRlPEwuTWFwPigpO1xuICBjb25zdCBbZm9jdXNlZE1hcmtlciwgc2V0Rm9jdXNlZE1hcmtlcl0gPSB1c2VTdGF0ZTxNYXJrZXIgfCBudWxsPihudWxsKTtcbiAgY29uc3QgZm9jdXNlZE1hcmtlclJlZiA9IHVzZVJlZjxNYXJrZXIgfCBudWxsPihudWxsKTtcbiAgY29uc3QgcG9pbnRzTGF5ZXJSZWYgPSB1c2VSZWY8TC5GZWF0dXJlR3JvdXA+KCk7XG4gIGNvbnN0IGVkZ2VzTGF5ZXJSZWYgPSB1c2VSZWY8TC5GZWF0dXJlR3JvdXA+KCk7XG4gIGNvbnN0IGFyZWFzTGF5ZXJSZWYgPSB1c2VSZWY8TC5GZWF0dXJlR3JvdXA+KCk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBmb2N1c2VkTWFya2VyUmVmLmN1cnJlbnQgPSBmb2N1c2VkTWFya2VyO1xuICAgIHJlc2V0QWxsT3RoZXJzKCk7XG4gIH0sIFtmb2N1c2VkTWFya2VyXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIW1hcFJlZi5jdXJyZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbWFwVHlwZXMgPSBiYXNlTWFwcyhsZWFmbGV0TWFwLm1hcERlZmF1bHQsIGxlYWZsZXRNYXAuc2F0ZWxsaXRlKTtcbiAgICBjb25zdCBtYXBUZW1wID0gTC5tYXAobWFwUmVmLmN1cnJlbnQsIHsgcmVuZGVyZXI6IEwuY2FudmFzKCkgfSk7XG5cbiAgICBPYmplY3QudmFsdWVzKG1hcFR5cGVzKVswXS5hZGRUbyhtYXBUZW1wKTtcblxuICAgIEwuY29udHJvbC5sYXllcnMobWFwVHlwZXMsIHt9LCB7IHBvc2l0aW9uOiAnYm90dG9tcmlnaHQnIH0pLmFkZFRvKG1hcFRlbXApO1xuXG4gICAgc2V0TWFwKG1hcFRlbXApO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmICghbWFwVGVtcCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBtYXBUZW1wLm9mZigpO1xuICAgICAgbWFwVGVtcC5yZW1vdmUoKTtcbiAgICB9O1xuICB9LCBbXSk7XG5cbiAgY29uc3QgcmVzZXRBbGxPdGhlcnMgPSAoKSA9PiB7XG4gICAgcG9pbnRzTGF5ZXJSZWYuY3VycmVudD8uZWFjaExheWVyKChtYXJrZXIpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgbWFya2VyLm9wdGlvbnMua2FuZG9fb2JqZWN0X2lkICE9PSBzZWxlY3RlZFBvaW50Py5pZCAmJlxuICAgICAgICBtYXJrZXIuX2lzSW5zaWRlXG4gICAgICApIHtcbiAgICAgICAgbWFya2VyLmZpcmUoJ21vdXNlb3V0Jyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoc2VsZWN0ZWRQb2ludCA9PT0gbnVsbCkge1xuICAgICAgc2V0Rm9jdXNlZE1hcmtlcihudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcG9pbnRzTGF5ZXJSZWYuY3VycmVudD8uZWFjaExheWVyKChtYXJrZXIpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHNlbGVjdGVkUG9pbnQgJiZcbiAgICAgICAgICBtYXJrZXIub3B0aW9ucy5rYW5kb19vYmplY3RfaWQgPT09IHNlbGVjdGVkUG9pbnQ/LmlkXG4gICAgICAgICkge1xuICAgICAgICAgIG1hcmtlci5maXJlKCdtb3VzZW92ZXInKTtcbiAgICAgICAgICBzZXRGb2N1c2VkTWFya2VyKG1hcmtlcik7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtzZWxlY3RlZFBvaW50XSk7XG5cbiAgY29uc3QgaGFuZGxlTWFya2VyQ2xpY2sgPSAocG9pbnQpID0+IHtcbiAgICB1cGRhdGVTZWxlY3RlZFBvaW50KHBvaW50KTtcbiAgfTtcblxuICBjb25zdCBhZGRNYXJrZXJzID0gKCkgPT4ge1xuICAgIGlmICghbWFwIHx8ICFwb2ludHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAocG9pbnRzTGF5ZXJSZWYuY3VycmVudCkge1xuICAgICAgaWYgKG1hcC5oYXNMYXllcihwb2ludHNMYXllclJlZi5jdXJyZW50KSkge1xuICAgICAgICBtYXAucmVtb3ZlTGF5ZXIocG9pbnRzTGF5ZXJSZWYuY3VycmVudCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcG9pbnRzTGF5ZXJSZWYuY3VycmVudCA9IEwuZmVhdHVyZUdyb3VwKCk7XG4gICAgcG9pbnRzTGF5ZXJSZWYuY3VycmVudC5hZGRUbyhtYXApO1xuXG4gICAgaWYgKCFwb2ludHNMYXllclJlZi5jdXJyZW50LmdldExheWVycygpLmxlbmd0aCkge1xuICAgICAgcG9pbnRzLmZvckVhY2goKHBvaW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHR5cGUgPVxuICAgICAgICAgIHBvaW50Lmhhc19kZXZpY2UgPT09IHRydWUgfHxcbiAgICAgICAgICBwb2ludC5ncm91cC50eXBlID09PSAnR3JvdXBzOjpXYXN0ZXdhdGVyVHJlYXRtZW50UGxhbnQnXG4gICAgICAgICAgICA/IHBvaW50Lmdyb3VwLnR5cGVcbiAgICAgICAgICAgIDogJ0dyb3Vwczo6ZGVmYXVsdCc7XG4gICAgICAgIGNvbnN0IGljb24gPSBnZXRQb2ludEljb25CeVR5cGUodHlwZSwgcG9pbnQubmFtZSwgJycsIGZhbHNlLCB0cnVlKTtcblxuICAgICAgICBjb25zdCBmb2N1c2VkSWNvbiA9IGdldFBvaW50SWNvbkJ5VHlwZShcbiAgICAgICAgICB0eXBlLFxuICAgICAgICAgIHBvaW50Lm5hbWUsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICBmYWxzZSxcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAocG9pbnQubGF0aXR1ZGUgJiYgcG9pbnQubG9uZ2l0dWRlKSB7XG4gICAgICAgICAgbGV0IG1hcmtlciA9IGdldE1hcmtlcihwb2ludCk7XG5cbiAgICAgICAgICBtYXJrZXIuc2V0SWNvbihpY29uKTtcbiAgICAgICAgICAvLyBUaGUgdXNlIG9mIG1hcmtlci5faXNJbnNpZGUgaXMgdG8gb3ZlcmNvbWUgdGhlIGlzc3VlIHRoYXQgbW91c2VvdmVyIGlzIGVuZGxlc3NseSB0cmlnZ2VyZWRcbiAgICAgICAgICAvLyBhbmQgd2UgbmVlZCBpdCBvbmx5IG9uY2VcbiAgICAgICAgICBtYXJrZXIub24oJ21vdXNlb3ZlcicsICgpID0+IHtcbiAgICAgICAgICAgIGlmICghbWFya2VyLl9pc0luc2lkZSkge1xuICAgICAgICAgICAgICBtYXJrZXIuX2lzSW5zaWRlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgbWFya2VyLnNldEljb24oZm9jdXNlZEljb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgbWFya2VyLm9uKCdtb3VzZW91dCcsICgpID0+IHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgZm9jdXNlZE1hcmtlclJlZj8uY3VycmVudD8uX2xlYWZsZXRfaWQgIT09IG1hcmtlcj8uX2xlYWZsZXRfaWRcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBtYXJrZXIuX2lzSW5zaWRlID0gZmFsc2U7XG4gICAgICAgICAgICAgIG1hcmtlci5zZXRJY29uKGljb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgbWFya2VyLm9uKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgZm9jdXNlZE1hcmtlclJlZj8uY3VycmVudD8uX2xlYWZsZXRfaWQgPT09IG1hcmtlcj8uX2xlYWZsZXRfaWRcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBzZXRGb2N1c2VkTWFya2VyKG51bGwpO1xuICAgICAgICAgICAgICBoYW5kbGVNYXJrZXJDbGljayhudWxsKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGhhbmRsZU1hcmtlckNsaWNrKHBvaW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHBvaW50c0xheWVyUmVmLmN1cnJlbnQ/LmFkZExheWVyKG1hcmtlcik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBnZXRNYXJrZXIgPSAocG9pbnQ6IElQb2ludCkgPT4ge1xuICAgIHJldHVybiBMLm1hcmtlcihbcG9pbnQubGF0aXR1ZGUsIHBvaW50LmxvbmdpdHVkZV0sIHtcbiAgICAgIGthbmRvX29iamVjdF9pZDogcG9pbnQuaWQsXG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgYWRkRWRnZXMgPSAoKSA9PiB7XG4gICAgaWYgKCFtYXAgfHwgIWVkZ2VzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcG9pbnRMb29rdXAgPSBuZXcgTWFwKCk7XG4gICAgcG9pbnRzLmZvckVhY2goKHApID0+IHBvaW50TG9va3VwLnNldChwLmlkLCBwKSk7XG5cbiAgICBpZiAoZWRnZXNMYXllclJlZi5jdXJyZW50KSB7XG4gICAgICBpZiAobWFwLmhhc0xheWVyKGVkZ2VzTGF5ZXJSZWYuY3VycmVudCkpIHtcbiAgICAgICAgbWFwLnJlbW92ZUxheWVyKGVkZ2VzTGF5ZXJSZWYuY3VycmVudCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZWRnZXNMYXllclJlZi5jdXJyZW50ID0gTC5mZWF0dXJlR3JvdXAoKTtcbiAgICBlZGdlc0xheWVyUmVmLmN1cnJlbnQuYWRkVG8obWFwKTtcblxuICAgIGVkZ2VzLmZvckVhY2goKGVkZ2UpID0+IHtcbiAgICAgIGNvbnN0IHNvdXJjZVBvaW50ID0gcG9pbnRMb29rdXAuZ2V0KGVkZ2Uuc291cmNlX3BvaW50X2lkKTtcbiAgICAgIGNvbnN0IHRhcmdldFBvaW50ID0gcG9pbnRMb29rdXAuZ2V0KGVkZ2UudGFyZ2V0X3BvaW50X2lkKTtcblxuICAgICAgaWYgKCFzb3VyY2VQb2ludCB8fCAhdGFyZ2V0UG9pbnQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBsYXRsbmdzID0gW1xuICAgICAgICBbc291cmNlUG9pbnQ/LmxhdGl0dWRlLCBzb3VyY2VQb2ludD8ubG9uZ2l0dWRlXSxcbiAgICAgICAgW3RhcmdldFBvaW50Py5sYXRpdHVkZSwgdGFyZ2V0UG9pbnQ/LmxvbmdpdHVkZV0sXG4gICAgICBdO1xuXG4gICAgICBjb25zdCBwb2x5bGluZSA9IEwucG9seWxpbmUobGF0bG5ncywge1xuICAgICAgICBjb2xvcjogJ2JsYWNrJyxcbiAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICBvcGFjaXR5OiAwLjUsXG4gICAgICAgIHNtb290aEZhY3RvcjogMSxcbiAgICAgIH0pO1xuXG4gICAgICBlZGdlc0xheWVyUmVmLmN1cnJlbnQ/LmFkZExheWVyKHBvbHlsaW5lKTtcblxuICAgICAgY29uc3QgZGVjb3JhdG9yID0gTC5wb2x5bGluZURlY29yYXRvcihwb2x5bGluZSwge1xuICAgICAgICBwYXR0ZXJuczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9mZnNldDogMjAsXG4gICAgICAgICAgICByZXBlYXQ6IDYwLFxuICAgICAgICAgICAgc3ltYm9sOiBMLlN5bWJvbC5hcnJvd0hlYWQoe1xuICAgICAgICAgICAgICBwaXhlbFNpemU6IDQsXG4gICAgICAgICAgICAgIHBvbHlnb246IGZhbHNlLFxuICAgICAgICAgICAgICBwYXRoT3B0aW9uczoge1xuICAgICAgICAgICAgICAgIHN0cm9rZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjb2xvcjogJyM1NTUnLFxuICAgICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjgsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGVkZ2VzTGF5ZXJSZWYuY3VycmVudD8uYWRkTGF5ZXIoZGVjb3JhdG9yKTtcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBhZGRBcmVhcyA9ICgpID0+IHtcbiAgICBpZiAoIW1hcCB8fCAhYXJlYXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoYXJlYXNMYXllclJlZi5jdXJyZW50KSB7XG4gICAgICBpZiAobWFwLmhhc0xheWVyKGFyZWFzTGF5ZXJSZWYuY3VycmVudCkpIHtcbiAgICAgICAgbWFwLnJlbW92ZUxheWVyKGFyZWFzTGF5ZXJSZWYuY3VycmVudCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYXJlYXNMYXllclJlZi5jdXJyZW50ID0gTC5mZWF0dXJlR3JvdXAoKTtcbiAgICBhcmVhc0xheWVyUmVmLmN1cnJlbnQuYWRkVG8obWFwKTtcblxuICAgIGNvbnN0IGZsYXR0ZW5BcmVhcyA9IChhcmVhczogSUFyZWFbXSA9IFtdKTogSUFyZWFbXSA9PiB7XG4gICAgICBsZXQgYWxsQXJlYXM6IElBcmVhW10gPSBbXTtcblxuICAgICAgYXJlYXMuZm9yRWFjaCgoYXJlYTogSUFyZWEpID0+IHtcbiAgICAgICAgaWYgKGFyZWEuc2hhcGVfZGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgYWxsQXJlYXMucHVzaChhcmVhKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIHRoZXJlIGFyZSBzdWJfYXJlYXMsIHJlY3Vyc2UgYW5kIGNvbmNhdGVuYXRlXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGFyZWEuc3ViX2FyZWFzKSAmJiBhcmVhLnN1Yl9hcmVhcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgYWxsQXJlYXMgPSBhbGxBcmVhcy5jb25jYXQoZmxhdHRlbkFyZWFzKGFyZWEuc3ViX2FyZWFzKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gYWxsQXJlYXM7XG4gICAgfTtcblxuICAgIGNvbnN0IGFsbEFyZWFzID0gZmxhdHRlbkFyZWFzKGFyZWFzKTtcblxuICAgIGFsbEFyZWFzLmZvckVhY2goKGFyZWEpID0+IHtcbiAgICAgIGNvbnN0IHBvbHlnb24gPSBMLnBvbHlnb24oYXJlYS5zaGFwZV9kYXRhLCB7XG4gICAgICAgIGNvbG9yOiAnYmxhY2snLFxuICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgIG9wYWNpdHk6IDAuOCxcbiAgICAgICAgc21vb3RoRmFjdG9yOiAxLFxuICAgICAgICBpbnRlcmFjdGl2ZTogZmFsc2UsXG4gICAgICAgIGthbmRvX29iamVjdF9pZDogYXJlYS5hcmVhX2lkLFxuICAgICAgfSk7XG5cbiAgICAgIHBvbHlnb24uYmluZFRvb2x0aXAoYXJlYS5hcmVhX25hbWUsIHtcbiAgICAgICAgcGVybWFuZW50OiB0cnVlLFxuICAgICAgICBkaXJlY3Rpb246ICdjZW50ZXInLFxuICAgICAgICBjbGFzc05hbWU6ICdhcmVhLXRvb2x0aXAnLFxuICAgICAgfSk7XG5cbiAgICAgIGFyZWFzTGF5ZXJSZWYuY3VycmVudD8uYWRkTGF5ZXIocG9seWdvbik7XG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgZm9jdXNNYXAgPSAoKSA9PiB7XG4gICAgaWYgKG1hcCkge1xuICAgICAgaWYgKFxuICAgICAgICBwb2ludHNMYXllclJlZj8uY3VycmVudCAmJlxuICAgICAgICBBcnJheS5pc0FycmF5KHBvaW50c0xheWVyUmVmLmN1cnJlbnQuZ2V0TGF5ZXJzKCkpICYmXG4gICAgICAgIHBvaW50c0xheWVyUmVmLmN1cnJlbnQuZ2V0TGF5ZXJzKCkubGVuZ3RoID4gMFxuICAgICAgKSB7XG4gICAgICAgIG1hcC5maXRCb3VuZHMocG9pbnRzTGF5ZXJSZWYuY3VycmVudC5nZXRCb3VuZHMoKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtYXAuc2V0VmlldyhbMzIuMjE5MTU3LCAzNC45ODI0ODFdLCAxMik7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKG1hcCkge1xuICAgICAgYWRkQXJlYXMoKTtcbiAgICAgIGFkZEVkZ2VzKCk7XG4gICAgICBhZGRNYXJrZXJzKCk7XG4gICAgICBmb2N1c01hcCgpO1xuICAgIH1cbiAgfSwgW3BvaW50cywgYXJlYXMsIGVkZ2VzLCBtYXBdKTtcblxuICByZXR1cm4gbWFwO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxRQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxVQUFB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
|