@plait/draw 0.77.2 → 0.77.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/transforms/image.mjs +12 -1
- package/esm2022/utils/hit.mjs +8 -12
- package/fesm2022/plait-draw.mjs +19 -12
- package/fesm2022/plait-draw.mjs.map +1 -1
- package/package.json +1 -1
- package/transforms/image.d.ts +6 -0
- package/utils/hit.d.ts +1 -1
|
@@ -19,4 +19,15 @@ export const insertImage = (board, imageItem, startPoint) => {
|
|
|
19
19
|
Transforms.insertNode(board, imageElement, [board.children.length]);
|
|
20
20
|
Transforms.addSelectionWithTemporaryElements(board, [imageElement]);
|
|
21
21
|
};
|
|
22
|
-
|
|
22
|
+
export const createImage = (startPoint, imageItem) => {
|
|
23
|
+
const { width, height, url } = imageItem;
|
|
24
|
+
const points = [startPoint, [startPoint[0] + width, startPoint[1] + height]];
|
|
25
|
+
const imageElement = {
|
|
26
|
+
id: idCreator(),
|
|
27
|
+
type: 'image',
|
|
28
|
+
points,
|
|
29
|
+
url
|
|
30
|
+
};
|
|
31
|
+
return imageElement;
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy90cmFuc2Zvcm1zL2ltYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQVMsVUFBVSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXBHLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLEtBQWlCLEVBQUUsU0FBMEIsRUFBRSxVQUFrQixFQUFFLEVBQUU7SUFDN0YsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsU0FBUyxDQUFDO0lBQ3pDLE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDdEUsTUFBTSxjQUFjLEdBQUcsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUN4RSxNQUFNLEtBQUssR0FBRyxjQUFjLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxLQUFLLEVBQUUsYUFBYSxHQUFHLENBQUMsRUFBRSxjQUFjLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvRixNQUFNLE1BQU0sR0FBWSxVQUFVO1FBQzlCLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1FBQy9ELENBQUMsQ0FBQztZQUNJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDN0MsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxHQUFHLENBQUMsQ0FBQztTQUNoRCxDQUFDO0lBQ1IsTUFBTSxZQUFZLEdBQUc7UUFDakIsRUFBRSxFQUFFLFNBQVMsRUFBRTtRQUNmLElBQUksRUFBRSxPQUFPO1FBQ2IsTUFBTTtRQUNOLEdBQUc7S0FDTixDQUFDO0lBQ0YsVUFBVSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLFVBQVUsQ0FBQyxpQ0FBaUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0FBQ3hFLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLFVBQWlCLEVBQUUsU0FBMEIsRUFBRSxFQUFFO0lBQ3pFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLFNBQVMsQ0FBQztJQUN6QyxNQUFNLE1BQU0sR0FBWSxDQUFDLFVBQVUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDdEYsTUFBTSxZQUFZLEdBQUc7UUFDakIsRUFBRSxFQUFFLFNBQVMsRUFBRTtRQUNmLElBQUksRUFBRSxPQUFPO1FBQ2IsTUFBTTtRQUNOLEdBQUc7S0FDTixDQUFDO0lBQ0YsT0FBTyxZQUFZLENBQUM7QUFDeEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uSW1hZ2VJdGVtIH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5pbXBvcnQgeyBQbGFpdEJvYXJkLCBQb2ludCwgVHJhbnNmb3JtcywgaWRDcmVhdG9yLCB0b0hvc3RQb2ludCwgdG9WaWV3Qm94UG9pbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBpbnNlcnRJbWFnZSA9IChib2FyZDogUGxhaXRCb2FyZCwgaW1hZ2VJdGVtOiBDb21tb25JbWFnZUl0ZW0sIHN0YXJ0UG9pbnQ/OiBQb2ludCkgPT4ge1xuICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCwgdXJsIH0gPSBpbWFnZUl0ZW07XG4gICAgY29uc3Qgdmlld3BvcnRXaWR0aCA9IFBsYWl0Qm9hcmQuZ2V0Qm9hcmRDb250YWluZXIoYm9hcmQpLmNsaWVudFdpZHRoO1xuICAgIGNvbnN0IHZpZXdwb3J0SGVpZ2h0ID0gUGxhaXRCb2FyZC5nZXRCb2FyZENvbnRhaW5lcihib2FyZCkuY2xpZW50SGVpZ2h0O1xuICAgIGNvbnN0IHBvaW50ID0gdG9WaWV3Qm94UG9pbnQoYm9hcmQsIHRvSG9zdFBvaW50KGJvYXJkLCB2aWV3cG9ydFdpZHRoIC8gMiwgdmlld3BvcnRIZWlnaHQgLyAyKSk7XG4gICAgY29uc3QgcG9pbnRzOiBQb2ludFtdID0gc3RhcnRQb2ludFxuICAgICAgICA/IFtzdGFydFBvaW50LCBbc3RhcnRQb2ludFswXSArIHdpZHRoLCBzdGFydFBvaW50WzFdICsgaGVpZ2h0XV1cbiAgICAgICAgOiBbXG4gICAgICAgICAgICAgIFtwb2ludFswXSAtIHdpZHRoIC8gMiwgcG9pbnRbMV0gLSBoZWlnaHQgLyAyXSxcbiAgICAgICAgICAgICAgW3BvaW50WzBdICsgd2lkdGggLyAyLCBwb2ludFsxXSArIGhlaWdodCAvIDJdXG4gICAgICAgICAgXTtcbiAgICBjb25zdCBpbWFnZUVsZW1lbnQgPSB7XG4gICAgICAgIGlkOiBpZENyZWF0b3IoKSxcbiAgICAgICAgdHlwZTogJ2ltYWdlJyxcbiAgICAgICAgcG9pbnRzLFxuICAgICAgICB1cmxcbiAgICB9O1xuICAgIFRyYW5zZm9ybXMuaW5zZXJ0Tm9kZShib2FyZCwgaW1hZ2VFbGVtZW50LCBbYm9hcmQuY2hpbGRyZW4ubGVuZ3RoXSk7XG4gICAgVHJhbnNmb3Jtcy5hZGRTZWxlY3Rpb25XaXRoVGVtcG9yYXJ5RWxlbWVudHMoYm9hcmQsIFtpbWFnZUVsZW1lbnRdKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVJbWFnZSA9IChzdGFydFBvaW50OiBQb2ludCwgaW1hZ2VJdGVtOiBDb21tb25JbWFnZUl0ZW0pID0+IHtcbiAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQsIHVybCB9ID0gaW1hZ2VJdGVtO1xuICAgIGNvbnN0IHBvaW50czogUG9pbnRbXSA9IFtzdGFydFBvaW50LCBbc3RhcnRQb2ludFswXSArIHdpZHRoLCBzdGFydFBvaW50WzFdICsgaGVpZ2h0XV07XG4gICAgY29uc3QgaW1hZ2VFbGVtZW50ID0ge1xuICAgICAgICBpZDogaWRDcmVhdG9yKCksXG4gICAgICAgIHR5cGU6ICdpbWFnZScsXG4gICAgICAgIHBvaW50cyxcbiAgICAgICAgdXJsXG4gICAgfTtcbiAgICByZXR1cm4gaW1hZ2VFbGVtZW50O1xufTtcbiJdfQ==
|
package/esm2022/utils/hit.mjs
CHANGED
|
@@ -112,9 +112,9 @@ export const getHitDrawElement = (board, elements) => {
|
|
|
112
112
|
endIndex = elements.indexOf(firstFilledElement) + 1;
|
|
113
113
|
}
|
|
114
114
|
const newElements = elements.slice(0, endIndex);
|
|
115
|
-
const
|
|
116
|
-
if (
|
|
117
|
-
return
|
|
115
|
+
const solidElements = getSolidElements(newElements);
|
|
116
|
+
if (solidElements) {
|
|
117
|
+
return solidElements[0];
|
|
118
118
|
}
|
|
119
119
|
const sortElements = sortElementsByArea(board, newElements, 'asc');
|
|
120
120
|
return sortElements[0];
|
|
@@ -136,14 +136,10 @@ export const getFirstFilledDrawElement = (board, elements) => {
|
|
|
136
136
|
export const isFilledDrawElement = (board, element) => {
|
|
137
137
|
return getFirstFilledDrawElement(board, [element]) !== null;
|
|
138
138
|
};
|
|
139
|
-
export const
|
|
140
|
-
const
|
|
141
|
-
if (
|
|
142
|
-
return
|
|
143
|
-
}
|
|
144
|
-
const lines = elements.filter((item) => PlaitDrawElement.isArrowLine(item));
|
|
145
|
-
if (lines.length) {
|
|
146
|
-
return lines[0];
|
|
139
|
+
export const getSolidElements = (elements) => {
|
|
140
|
+
const solidElements = elements.filter((item) => PlaitDrawElement.isText(item) || PlaitDrawElement.isLine(item) || elements.filter((item) => PlaitDrawElement.isImage(item)));
|
|
141
|
+
if (solidElements.length) {
|
|
142
|
+
return solidElements;
|
|
147
143
|
}
|
|
148
144
|
return null;
|
|
149
145
|
};
|
|
@@ -239,4 +235,4 @@ export const isHitElementInside = (board, element, point) => {
|
|
|
239
235
|
}
|
|
240
236
|
return null;
|
|
241
237
|
};
|
|
242
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvdXRpbHMvaGl0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxlQUFlLEVBR2Ysa0JBQWtCLEVBRWxCLCtCQUErQixFQUMvQiw0QkFBNEIsRUFDNUIsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6QixnQkFBZ0IsRUFDaEIsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixpQ0FBaUMsRUFDakMsbUJBQW1CLEVBQ3RCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFDSCxXQUFXLEVBS1gsZ0JBQWdCLEVBSW5CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDN0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN2QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzFDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbkksT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLE1BQU0sRUFBVyxNQUFNLE9BQU8sQ0FBQztBQUN4QyxPQUFP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LEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUQsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNkLE9BQU8sV0FBVyxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzFCLE1BQU0sU0FBUyxHQUFHLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNuRCxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNaLE9BQU8sU0FBUyxDQUFDO1lBQ3JCLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUNELElBQUksZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDcEMsTUFBTSxNQUFNLEdBQUcsZUFBZSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwRSxPQUFPLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELElBQUksZ0JBQWdCLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDeEMsT0FBTyxjQUFjLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBSSxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUN6QyxPQUFPLGVBQWUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFBsYWl0RWxlbWVudCxcbiAgICBSZWN0YW5nbGVDbGllbnQsXG4gICAgU2VsZWN0aW9uLFxuICAgIFBsYWl0Qm9hcmQsXG4gICAgaXNMaW5lSGl0UmVjdGFuZ2xlLFxuICAgIFBvaW50LFxuICAgIGRpc3RhbmNlQmV0d2VlblBvaW50QW5kU2VnbWVudHMsXG4gICAgZGlzdGFuY2VCZXR3ZWVuUG9pbnRBbmRQb2ludCxcbiAgICBISVRfRElTVEFOQ0VfQlVGRkVSLFxuICAgIHJvdGF0ZUFudGlQb2ludHNCeUVsZW1lbnQsXG4gICAgaXNQb2ludEluUG9seWdvbixcbiAgICByb3RhdGVQb2ludHNCeUFuZ2xlLFxuICAgIGNyZWF0ZURlYnVnR2VuZXJhdG9yLFxuICAgIGdldE5lYXJlc3RQb2ludEJldHdlZW5Qb2ludEFuZEFyYyxcbiAgICBnZXRFbGxpcHNlQXJjQ2VudGVyXG59IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7XG4gICAgQmFzaWNTaGFwZXMsXG4gICAgR2VvbWV0cnlTaGFwZXMsXG4gICAgUGxhaXRBcnJvd0xpbmUsXG4gICAgUGxhaXRDb21tb25HZW9tZXRyeSxcbiAgICBQbGFpdEN1c3RvbUdlb21ldHJ5LFxuICAgIFBsYWl0RHJhd0VsZW1lbnQsXG4gICAgUGxhaXRHZW9tZXRyeSxcbiAgICBQbGFpdFNoYXBlRWxlbWVudCxcbiAgICBQbGFpdFZlY3RvckxpbmVcbn0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBnZXROZWFyZXN0UG9pbnQgfSBmcm9tICcuL2dlb21ldHJ5JztcbmltcG9ydCB7IGdldEFycm93TGluZVBvaW50cyB9IGZyb20gJy4vYXJyb3ctbGluZS9hcnJvdy1saW5lLWJhc2ljJztcbmltcG9ydCB7IGdldEZpbGxCeUVsZW1lbnQgfSBmcm9tICcuL3N0eWxlL3N0cm9rZSc7XG5pbXBvcnQgeyBnZXRFbmdpbmUgfSBmcm9tICcuLi9lbmdpbmVzJztcbmltcG9ydCB7IGdldEVsZW1lbnRTaGFwZSB9IGZyb20gJy4vc2hhcGUnO1xuaW1wb3J0IHsgZ2V0SGl0QXJyb3dMaW5lVGV4dEluZGV4IH0gZnJvbSAnLi9wb3NpdGlvbi9hcnJvdy1saW5lJztcbmltcG9ydCB7IGdldFRleHRSZWN0YW5nbGUsIGlzQ2xvc2VkQ3VzdG9tR2VvbWV0cnksIGlzQ2xvc2VkRHJhd0VsZW1lbnQsIGlzQ2xvc2VkUG9pbnRzLCBpc0RyYXdFbGVtZW50SW5jbHVkZVRleHQgfSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQgeyBpc011bHRpcGxlVGV4dEdlb21ldHJ5IH0gZnJvbSAnLi9tdWx0aS10ZXh0LWdlb21ldHJ5JztcbmltcG9ydCB7IGdldEZpcnN0VGV4dEVkaXRvciwgaXNGaWxsZWQsIHNvcnRFbGVtZW50c0J5QXJlYSB9IGZyb20gJ0BwbGFpdC9jb21tb24nO1xuaW1wb3J0IHsgZ2V0VmVjdG9yTGluZVBvaW50cyB9IGZyb20gJy4vdmVjdG9yLWxpbmUnO1xuaW1wb3J0IHsgRWRpdG9yLCBFbGVtZW50IH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgZ2VuZXJhdGVDbG91ZFBhdGggfSBmcm9tICcuLi9lbmdpbmVzL2Jhc2ljLXNoYXBlcy9jbG91ZCc7XG5cbmV4cG9ydCBjb25zdCBpc1RleHRFeGNlZWRpbmdCb3VuZHMgPSAoZ2VvbWV0cnk6IFBsYWl0R2VvbWV0cnkpID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoZ2VvbWV0cnkucG9pbnRzKTtcbiAgICBpZiAoZ2VvbWV0cnkudGV4dEhlaWdodCAmJiBnZW9tZXRyeS50ZXh0SGVpZ2h0ID4gY2xpZW50LmhlaWdodCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzSGl0QXJyb3dMaW5lVGV4dCA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogUGxhaXRBcnJvd0xpbmUsIHBvaW50OiBQb2ludCkgPT4ge1xuICAgIHJldHVybiBnZXRIaXRBcnJvd0xpbmVUZXh0SW5kZXgoYm9hcmQsIGVsZW1lbnQsIHBvaW50KSAhPT0gLTE7XG59O1xuXG5leHBvcnQgY29uc3QgaXNIaXRQb2x5TGluZSA9IChwYXRoUG9pbnRzOiBQb2ludFtdLCBwb2ludDogUG9pbnQpID0+IHtcbiAgICBjb25zdCBkaXN0YW5jZSA9IGRpc3RhbmNlQmV0d2VlblBvaW50QW5kU2VnbWVudHMocG9pbnQsIHBhdGhQb2ludHMpO1xuICAgIHJldHVybiBkaXN0YW5jZSA8PSBISVRfRElTVEFOQ0VfQlVGRkVSO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzSGl0QXJyb3dMaW5lID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBQbGFpdEFycm93TGluZSwgcG9pbnQ6IFBvaW50KSA9PiB7XG4gICAgY29uc3QgcG9pbnRzID0gZ2V0QXJyb3dMaW5lUG9pbnRzKGJvYXJkLCBlbGVtZW50KTtcbiAgICBjb25zdCBpc0hpdFRleHQgPSBpc0hpdEFycm93TGluZVRleHQoYm9hcmQsIGVsZW1lbnQgYXMgUGxhaXRBcnJvd0xpbmUsIHBvaW50KTtcbiAgICByZXR1cm4gaXNIaXRUZXh0IHx8IGlzSGl0UG9seUxpbmUocG9pbnRzLCBwb2ludCk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNIaXRWZWN0b3JMaW5lID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBQbGFpdFZlY3RvckxpbmUsIHBvaW50OiBQb2ludCkgPT4ge1xuICAgIGNvbnN0IHBvaW50cyA9IGdldFZlY3RvckxpbmVQb2ludHMoYm9hcmQsIGVsZW1lbnQpITtcbiAgICBpZiAoaXNDbG9zZWRQb2ludHMoZWxlbWVudC5wb2ludHMpKSB7XG4gICAgICAgIHJldHVybiBpc1BvaW50SW5Qb2x5Z29uKHBvaW50LCBwb2ludHMpIHx8IGlzSGl0UG9seUxpbmUocG9pbnRzLCBwb2ludCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGlzSGl0UG9seUxpbmUocG9pbnRzLCBwb2ludCk7XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGlzUmVjdGFuZ2xlSGl0RWxlbWVudFRleHQgPSAoZWxlbWVudDogUGxhaXRDb21tb25HZW9tZXRyeSwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpID0+IHtcbiAgICBjb25zdCBlbmdpbmUgPSBnZXRFbmdpbmU8UGxhaXRDb21tb25HZW9tZXRyeT4oZWxlbWVudC5zaGFwZSk7XG4gICAgaWYgKGlzTXVsdGlwbGVUZXh0R2VvbWV0cnkoZWxlbWVudCkpIHtcbiAgICAgICAgY29uc3QgdGV4dHMgPSBlbGVtZW50LnRleHRzO1xuICAgICAgICByZXR1cm4gdGV4dHMuc29tZSgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGV4dENsaWVudCA9IGVuZ2luZS5nZXRUZXh0UmVjdGFuZ2xlIShlbGVtZW50LCB7IGlkOiBpdGVtLmlkIH0pO1xuICAgICAgICAgICAgcmV0dXJuIGlzUmVjdGFuZ2xlSGl0Um90YXRlZFBvaW50cyhyZWN0YW5nbGUsIFJlY3RhbmdsZUNsaWVudC5nZXRDb3JuZXJQb2ludHModGV4dENsaWVudCksIGVsZW1lbnQuYW5nbGUpO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB0ZXh0Q2xpZW50ID0gZW5naW5lLmdldFRleHRSZWN0YW5nbGUgPyBlbmdpbmUuZ2V0VGV4dFJlY3RhbmdsZShlbGVtZW50KSA6IGdldFRleHRSZWN0YW5nbGUoZWxlbWVudCk7XG4gICAgICAgIHJldHVybiBpc1JlY3RhbmdsZUhpdFJvdGF0ZWRQb2ludHMocmVjdGFuZ2xlLCBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ybmVyUG9pbnRzKHRleHRDbGllbnQpLCBlbGVtZW50LmFuZ2xlKTtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgaXNIaXRFbGVtZW50VGV4dCA9IChlbGVtZW50OiBQbGFpdENvbW1vbkdlb21ldHJ5LCBwb2ludDogUG9pbnQpID0+IHtcbiAgICBjb25zdCBlbmdpbmUgPSBnZXRFbmdpbmU8UGxhaXRDb21tb25HZW9tZXRyeT4oZWxlbWVudC5zaGFwZSk7XG4gICAgaWYgKGlzTXVsdGlwbGVUZXh0R2VvbWV0cnkoZWxlbWVudCkpIHtcbiAgICAgICAgY29uc3QgdGV4dHMgPSBlbGVtZW50LnRleHRzO1xuICAgICAgICByZXR1cm4gdGV4dHMuc29tZSgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGV4dENsaWVudCA9IGVuZ2luZS5nZXRUZXh0UmVjdGFuZ2xlIShlbGVtZW50LCB7IGlkOiBpdGVtLmlkIH0pO1xuICAgICAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5pc1BvaW50SW5SZWN0YW5nbGUodGV4dENsaWVudCwgcG9pbnQpO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB0ZXh0Q2xpZW50ID0gZW5naW5lLmdldFRleHRSZWN0YW5nbGUgPyBlbmdpbmUuZ2V0VGV4dFJlY3RhbmdsZShlbGVtZW50KSA6IGdldFRleHRSZWN0YW5nbGUoZWxlbWVudCk7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuaXNQb2ludEluUmVjdGFuZ2xlKHRleHRDbGllbnQsIHBvaW50KTtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgaXNFbXB0eVRleHRFbGVtZW50ID0gKGVsZW1lbnQ6IFBsYWl0Q29tbW9uR2VvbWV0cnkpID0+IHtcbiAgICBpZiAoIWlzRHJhd0VsZW1lbnRJbmNsdWRlVGV4dChlbGVtZW50KSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgY29uc3QgZWRpdG9yID0gZ2V0Rmlyc3RUZXh0RWRpdG9yKGVsZW1lbnQpO1xuICAgIHJldHVybiBFZGl0b3IuaXNFbXB0eShlZGl0b3IsIGVkaXRvci5jaGlsZHJlblswXSBhcyBFbGVtZW50KTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1JlY3RhbmdsZUhpdERyYXdFbGVtZW50ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBQbGFpdEVsZW1lbnQsIHNlbGVjdGlvbjogU2VsZWN0aW9uKSA9PiB7XG4gICAgY29uc3QgcmFuZ2VSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoW3NlbGVjdGlvbi5hbmNob3IsIHNlbGVjdGlvbi5mb2N1c10pO1xuICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzR2VvbWV0cnkoZWxlbWVudCkpIHtcbiAgICAgICAgY29uc3QgaXNIaXRFbGVtZW50ID0gaXNSZWN0YW5nbGVIaXRSb3RhdGVkRWxlbWVudChib2FyZCwgcmFuZ2VSZWN0YW5nbGUsIGVsZW1lbnQpO1xuICAgICAgICBpZiAoaXNIaXRFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gaXNIaXRFbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAhaXNFbXB0eVRleHRFbGVtZW50KGVsZW1lbnQpICYmIGlzUmVjdGFuZ2xlSGl0RWxlbWVudFRleHQoZWxlbWVudCwgcmFuZ2VSZWN0YW5nbGUpO1xuICAgIH1cblxuICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzSW1hZ2UoZWxlbWVudCkpIHtcbiAgICAgICAgcmV0dXJuIGlzUmVjdGFuZ2xlSGl0Um90YXRlZEVsZW1lbnQoYm9hcmQsIHJhbmdlUmVjdGFuZ2xlLCBlbGVtZW50KTtcbiAgICB9XG5cbiAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc0Fycm93TGluZShlbGVtZW50KSkge1xuICAgICAgICBjb25zdCBwb2ludHMgPSBnZXRBcnJvd0xpbmVQb2ludHMoYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gaXNMaW5lSGl0UmVjdGFuZ2xlKHBvaW50cywgcmFuZ2VSZWN0YW5nbGUpO1xuICAgIH1cblxuICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzVmVjdG9yTGluZShlbGVtZW50KSkge1xuICAgICAgICBjb25zdCBwb2ludHMgPSBnZXRWZWN0b3JMaW5lUG9pbnRzKGJvYXJkLCBlbGVtZW50KSE7XG4gICAgICAgIHJldHVybiBpc0xpbmVIaXRSZWN0YW5nbGUocG9pbnRzLCByYW5nZVJlY3RhbmdsZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG59O1xuXG5leHBvcnQgY29uc3QgaXNSZWN0YW5nbGVIaXRSb3RhdGVkRWxlbWVudCA9IChcbiAgICBib2FyZDogUGxhaXRCb2FyZCxcbiAgICByZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCxcbiAgICBlbGVtZW50OiBQbGFpdEVsZW1lbnQgJiB7IHBvaW50czogUG9pbnRbXSB9XG4pID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoZWxlbWVudC5wb2ludHMpO1xuICAgIHJldHVybiBpc1JlY3RhbmdsZUhpdFJvdGF0ZWRQb2ludHMocmVjdGFuZ2xlLCBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ybmVyUG9pbnRzKGNsaWVudCksIGVsZW1lbnQuYW5nbGUpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzUmVjdGFuZ2xlSGl0Um90YXRlZFBvaW50cyA9IChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnRzOiBQb2ludFtdLCBhbmdsZTogbnVtYmVyIHwgdW5kZWZpbmVkKSA9PiB7XG4gICAgbGV0IHJvdGF0ZWRQb2ludHMgPSByb3RhdGVQb2ludHNCeUFuZ2xlKHBvaW50cywgYW5nbGUpIHx8IHBvaW50cztcbiAgICByZXR1cm4gaXNMaW5lSGl0UmVjdGFuZ2xlKHJvdGF0ZWRQb2ludHMsIHJlY3RhbmdsZSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0SGl0RHJhd0VsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnRzOiAoUGxhaXREcmF3RWxlbWVudCB8IFBsYWl0Q3VzdG9tR2VvbWV0cnkpW10pID0+IHtcbiAgICBsZXQgZmlyc3RGaWxsZWRFbGVtZW50ID0gZ2V0Rmlyc3RGaWxsZWREcmF3RWxlbWVudChib2FyZCwgZWxlbWVudHMpO1xuICAgIGxldCBlbmRJbmRleCA9IGVsZW1lbnRzLmxlbmd0aDtcbiAgICBpZiAoZmlyc3RGaWxsZWRFbGVtZW50KSB7XG4gICAgICAgIGVuZEluZGV4ID0gZWxlbWVudHMuaW5kZXhPZihmaXJzdEZpbGxlZEVsZW1lbnQpICsgMTtcbiAgICB9XG4gICAgY29uc3QgbmV3RWxlbWVudHMgPSBlbGVtZW50cy5zbGljZSgwLCBlbmRJbmRleCk7XG4gICAgY29uc3QgZWxlbWVudCA9IGdldEZpcnN0VGV4dE9yTGluZUVsZW1lbnQobmV3RWxlbWVudHMpO1xuICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBlbGVtZW50O1xuICAgIH1cbiAgICBjb25zdCBzb3J0RWxlbWVudHMgPSBzb3J0RWxlbWVudHNCeUFyZWEoYm9hcmQsIG5ld0VsZW1lbnRzLCAnYXNjJyk7XG4gICAgcmV0dXJuIHNvcnRFbGVtZW50c1swXTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRGaXJzdEZpbGxlZERyYXdFbGVtZW50ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50czogKFBsYWl0RHJhd0VsZW1lbnQgfCBQbGFpdEN1c3RvbUdlb21ldHJ5KVtdKSA9PiB7XG4gICAgbGV0IGZpbGxlZEVsZW1lbnQ6IFBsYWl0R2VvbWV0cnkgfCBQbGFpdEN1c3RvbUdlb21ldHJ5IHwgbnVsbCA9IG51bGw7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gZWxlbWVudHNbaV07XG4gICAgICAgIGlmIChpc0Nsb3NlZEN1c3RvbUdlb21ldHJ5KGJvYXJkLCBlbGVtZW50KSB8fCBpc0Nsb3NlZERyYXdFbGVtZW50KGVsZW1lbnQpKSB7XG4gICAgICAgICAgICBjb25zdCBmaWxsID0gZ2V0RmlsbEJ5RWxlbWVudChib2FyZCwgZWxlbWVudCk7XG4gICAgICAgICAgICBpZiAoaXNGaWxsZWQoZmlsbCkpIHtcbiAgICAgICAgICAgICAgICBmaWxsZWRFbGVtZW50ID0gZWxlbWVudCBhcyBQbGFpdEdlb21ldHJ5O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmaWxsZWRFbGVtZW50O1xufTtcblxuZXhwb3J0IGNvbnN0IGlzRmlsbGVkRHJhd0VsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFBsYWl0RHJhd0VsZW1lbnQgfCBQbGFpdEN1c3RvbUdlb21ldHJ5KSA9PiB7XG4gICAgcmV0dXJuIGdldEZpcnN0RmlsbGVkRHJhd0VsZW1lbnQoYm9hcmQsIFtlbGVtZW50XSkgIT09IG51bGw7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Rmlyc3RUZXh0T3JMaW5lRWxlbWVudCA9IChlbGVtZW50czogUGxhaXRFbGVtZW50W10pID0+IHtcbiAgICBjb25zdCB0ZXh0cyA9IGVsZW1lbnRzLmZpbHRlcigoaXRlbSkgPT4gUGxhaXREcmF3RWxlbWVudC5pc1RleHQoaXRlbSkpO1xuICAgIGlmICh0ZXh0cy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHRleHRzWzBdO1xuICAgIH1cbiAgICBjb25zdCBsaW5lcyA9IGVsZW1lbnRzLmZpbHRlcigoaXRlbSkgPT4gUGxhaXREcmF3RWxlbWVudC5pc0Fycm93TGluZShpdGVtKSk7XG4gICAgaWYgKGxpbmVzLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gbGluZXNbMF07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufTtcblxuY29uc3QgZGVidWdLZXkgPSAnZGVidWc6cGxhaXQ6aGl0OnNoYXBlOmVkZ2U6c2FtcGxlLXBvaW50cyc7XG5jb25zdCBkZWJ1Z0dlbmVyYXRvciA9IGNyZWF0ZURlYnVnR2VuZXJhdG9yKGRlYnVnS2V5KTtcbmNvbnN0IHNoYXBlczogR2VvbWV0cnlTaGFwZXNbXSA9IFtCYXNpY1NoYXBlcy5jbG91ZF07XG5cbmV4cG9ydCBjb25zdCBpc0hpdERyYXdFbGVtZW50ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBQbGFpdEVsZW1lbnQsIHBvaW50OiBQb2ludCwgaXNTdHJpY3Q6IGJvb2xlYW4gPSB0cnVlKSA9PiB7XG4gICAgY29uc3QgcmVjdGFuZ2xlID0gYm9hcmQuZ2V0UmVjdGFuZ2xlKGVsZW1lbnQpO1xuICAgIHBvaW50ID0gcm90YXRlQW50aVBvaW50c0J5RWxlbWVudChib2FyZCwgcG9pbnQsIGVsZW1lbnQpIHx8IHBvaW50O1xuICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzR2VvbWV0cnkoZWxlbWVudCkgJiYgcmVjdGFuZ2xlKSB7XG4gICAgICAgIGlmIChkZWJ1Z0dlbmVyYXRvci5pc0RlYnVnKCkgJiYgc2hhcGVzLmluY2x1ZGVzKGVsZW1lbnQuc2hhcGUpKSB7XG4gICAgICAgICAgICBkZWJ1Z0dlbmVyYXRvci5jbGVhcigpO1xuICAgICAgICAgICAgY29uc3QgeyBzdGFydFBvaW50LCBhcmNDb21tYW5kcyB9ID0gZ2VuZXJhdGVDbG91ZFBhdGgocmVjdGFuZ2xlKTtcbiAgICAgICAgICAgIGNvbnN0IHBvaW50cyA9IFtzdGFydFBvaW50LCAuLi5hcmNDb21tYW5kcy5tYXAoKGFyYykgPT4gW2FyYy5lbmRYLCBhcmMuZW5kWV0pXSBhcyBQb2ludFtdO1xuICAgICAgICAgICAgZGVidWdHZW5lcmF0b3IuZHJhd0NpcmNsZXMoYm9hcmQsIHBvaW50cywgNSwgZmFsc2UpO1xuICAgICAgICAgICAgbGV0IG1pbkRpc3RhbmNlID0gSW5maW5pdHk7XG4gICAgICAgICAgICBsZXQgbmVhcmVzdFBvaW50ID0gcG9pbnQ7XG4gICAgICAgICAgICBsZXQgY3VycmVudFN0YXJ0ID0gc3RhcnRQb2ludDtcbiAgICAgICAgICAgIGZvciAoY29uc3QgYXJjIG9mIGFyY0NvbW1hbmRzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXJjTmVhcmVzdFBvaW50ID0gZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kQXJjKHBvaW50LCBjdXJyZW50U3RhcnQsIGFyYyk7XG4gICAgICAgICAgICAgICAgY29uc3QgZGlzdGFuY2UgPSBkaXN0YW5jZUJldHdlZW5Qb2ludEFuZFBvaW50KHBvaW50WzBdLCBwb2ludFsxXSwgYXJjTmVhcmVzdFBvaW50WzBdLCBhcmNOZWFyZXN0UG9pbnRbMV0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgY2VudGVyIH0gPSBnZXRFbGxpcHNlQXJjQ2VudGVyKGN1cnJlbnRTdGFydCwgYXJjKTtcbiAgICAgICAgICAgICAgICBkZWJ1Z0dlbmVyYXRvci5kcmF3Q2lyY2xlcyhib2FyZCwgW2NlbnRlcl0sIDgsIGZhbHNlLCB7IGZpbGw6ICd5ZWxsb3cnIH0pO1xuICAgICAgICAgICAgICAgIGlmIChkaXN0YW5jZSA8IG1pbkRpc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgICAgIG1pbkRpc3RhbmNlID0gZGlzdGFuY2U7XG4gICAgICAgICAgICAgICAgICAgIG5lYXJlc3RQb2ludCA9IGFyY05lYXJlc3RQb2ludDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY3VycmVudFN0YXJ0ID0gW2FyYy5lbmRYLCBhcmMuZW5kWV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWJ1Z0dlbmVyYXRvci5kcmF3Q2lyY2xlcyhib2FyZCwgW3BvaW50XSwgMTIsIGZhbHNlLCB7IGZpbGw6ICdibGFjaycsIHN0cm9rZTogJ2JsYWNrJyB9KTtcbiAgICAgICAgICAgIGRlYnVnR2VuZXJhdG9yLmRyYXdDaXJjbGVzKGJvYXJkLCBbbmVhcmVzdFBvaW50XSwgMTIsIGZhbHNlLCB7IGZpbGw6ICdncmVlbicsIHN0cm9rZTogJ2dyZWVuJyB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNIaXRFZGdlT2ZTaGFwZShib2FyZCwgZWxlbWVudCwgcG9pbnQsIEhJVF9ESVNUQU5DRV9CVUZGRVIpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlbmdpbmUgPSBnZXRFbmdpbmUoZ2V0RWxlbWVudFNoYXBlKGVsZW1lbnQpKTtcbiAgICAgICAgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNUZXh0KGVsZW1lbnQpKSB7XG4gICAgICAgICAgICBjb25zdCB0ZXh0Q2xpZW50ID0gZ2V0VGV4dFJlY3RhbmdsZShlbGVtZW50KTtcbiAgICAgICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuaXNQb2ludEluUmVjdGFuZ2xlKHRleHRDbGllbnQsIHBvaW50KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoISFpc1N0cmljdCAmJiBpc0VtcHR5VGV4dEVsZW1lbnQoZWxlbWVudCkgJiYgIWlzRmlsbGVkRHJhd0VsZW1lbnQoYm9hcmQsIGVsZW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXNIaXRUZXh0ID0gaXNIaXRFbGVtZW50VGV4dChlbGVtZW50LCBwb2ludCk7XG4gICAgICAgIHJldHVybiBpc0hpdFRleHQgfHwgZW5naW5lLmlzSW5zaWRlUG9pbnQocmVjdGFuZ2xlISwgcG9pbnQpO1xuICAgIH1cbiAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc0ltYWdlKGVsZW1lbnQpKSB7XG4gICAgICAgIGNvbnN0IGNsaWVudCA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhlbGVtZW50LnBvaW50cyk7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuaXNQb2ludEluUmVjdGFuZ2xlKGNsaWVudCwgcG9pbnQpO1xuICAgIH1cbiAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc0Fycm93TGluZShlbGVtZW50KSkge1xuICAgICAgICByZXR1cm4gaXNIaXRBcnJvd0xpbmUoYm9hcmQsIGVsZW1lbnQsIHBvaW50KTtcbiAgICB9XG5cbiAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc1ZlY3RvckxpbmUoZWxlbWVudCkpIHtcbiAgICAgICAgcmV0dXJuIGlzSGl0VmVjdG9yTGluZShib2FyZCwgZWxlbWVudCwgcG9pbnQpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0hpdEVkZ2VPZlNoYXBlID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBQbGFpdFNoYXBlRWxlbWVudCwgcG9pbnQ6IFBvaW50LCBoaXREaXN0YW5jZUJ1ZmZlcjogbnVtYmVyKSA9PiB7XG4gICAgY29uc3QgbmVhcmVzdFBvaW50ID0gZ2V0TmVhcmVzdFBvaW50KGVsZW1lbnQsIHBvaW50KTtcbiAgICBjb25zdCBkaXN0YW5jZSA9IGRpc3RhbmNlQmV0d2VlblBvaW50QW5kUG9pbnQobmVhcmVzdFBvaW50WzBdLCBuZWFyZXN0UG9pbnRbMV0sIHBvaW50WzBdLCBwb2ludFsxXSk7XG4gICAgcmV0dXJuIGRpc3RhbmNlIDw9IGhpdERpc3RhbmNlQnVmZmVyO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzSW5zaWRlT2ZTaGFwZSA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogUGxhaXRTaGFwZUVsZW1lbnQsIHBvaW50OiBQb2ludCwgaGl0RGlzdGFuY2VCdWZmZXI6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IFJlY3RhbmdsZUNsaWVudC5pbmZsYXRlKFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhlbGVtZW50LnBvaW50cyksIGhpdERpc3RhbmNlQnVmZmVyKTtcbiAgICByZXR1cm4gZ2V0RW5naW5lKGdldEVsZW1lbnRTaGFwZShlbGVtZW50KSkuaXNJbnNpZGVQb2ludChjbGllbnQsIHBvaW50KTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0hpdEVsZW1lbnRJbnNpZGUgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFBsYWl0RWxlbWVudCwgcG9pbnQ6IFBvaW50KSA9PiB7XG4gICAgY29uc3QgcmVjdGFuZ2xlID0gYm9hcmQuZ2V0UmVjdGFuZ2xlKGVsZW1lbnQpO1xuICAgIHBvaW50ID0gcm90YXRlQW50aVBvaW50c0J5RWxlbWVudChib2FyZCwgcG9pbnQsIGVsZW1lbnQpIHx8IHBvaW50O1xuICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzR2VvbWV0cnkoZWxlbWVudCkgJiYgIVBsYWl0RHJhd0VsZW1lbnQuaXNHZW9tZXRyeUJ5VGFibGUoZWxlbWVudCkpIHtcbiAgICAgICAgY29uc3QgZW5naW5lID0gZ2V0RW5naW5lKGdldEVsZW1lbnRTaGFwZShlbGVtZW50KSk7XG4gICAgICAgIGNvbnN0IGlzSGl0SW5zaWRlID0gZW5naW5lLmlzSW5zaWRlUG9pbnQocmVjdGFuZ2xlISwgcG9pbnQpO1xuICAgICAgICBpZiAoaXNIaXRJbnNpZGUpIHtcbiAgICAgICAgICAgIHJldHVybiBpc0hpdEluc2lkZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW5naW5lLmdldFRleHRSZWN0YW5nbGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGlzSGl0VGV4dCA9IGlzSGl0RWxlbWVudFRleHQoZWxlbWVudCwgcG9pbnQpO1xuICAgICAgICAgICAgaWYgKGlzSGl0VGV4dCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpc0hpdFRleHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNJbWFnZShlbGVtZW50KSkge1xuICAgICAgICBjb25zdCBjbGllbnQgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoZWxlbWVudC5wb2ludHMpO1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmlzUG9pbnRJblJlY3RhbmdsZShjbGllbnQsIHBvaW50KTtcbiAgICB9XG5cbiAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc0Fycm93TGluZShlbGVtZW50KSkge1xuICAgICAgICByZXR1cm4gaXNIaXRBcnJvd0xpbmUoYm9hcmQsIGVsZW1lbnQsIHBvaW50KTtcbiAgICB9XG5cbiAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc1ZlY3RvckxpbmUoZWxlbWVudCkpIHtcbiAgICAgICAgcmV0dXJuIGlzSGl0VmVjdG9yTGluZShib2FyZCwgZWxlbWVudCwgcG9pbnQpO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xufTtcbiJdfQ==
|
|
238
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvdXRpbHMvaGl0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxlQUFlLEVBR2Ysa0JBQWtCLEVBRWxCLCtCQUErQixFQUMvQiw0QkFBNEIsRUFDNUIsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6QixnQkFBZ0IsRUFDaEIsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixpQ0FBaUMsRUFDakMsbUJBQW1CLEVBQ3RCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFDSCxXQUFXLEVBS1gsZ0JBQWdCLEVBSW5CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDN0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN2QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzFDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbkksT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLE1BQU0sRUFBVyxNQUFNLE9BQU8sQ0FBQztBQUN4QyxPQUFP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Q0FBQztRQUN2QixDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMxQixNQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbkQsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDWixPQUFPLFNBQVMsQ0FBQztZQUNyQixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFDRCxJQUFJLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEUsT0FBTyxlQUFlLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxJQUFJLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sY0FBYyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELElBQUksZ0JBQWdCLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDekMsT0FBTyxlQUFlLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBQbGFpdEVsZW1lbnQsXG4gICAgUmVjdGFuZ2xlQ2xpZW50LFxuICAgIFNlbGVjdGlvbixcbiAgICBQbGFpdEJvYXJkLFxuICAgIGlzTGluZUhpdFJlY3RhbmdsZSxcbiAgICBQb2ludCxcbiAgICBkaXN0YW5jZUJldHdlZW5Qb2ludEFuZFNlZ21lbnRzLFxuICAgIGRpc3RhbmNlQmV0d2VlblBvaW50QW5kUG9pbnQsXG4gICAgSElUX0RJU1RBTkNFX0JVRkZFUixcbiAgICByb3RhdGVBbnRpUG9pbnRzQnlFbGVtZW50LFxuICAgIGlzUG9pbnRJblBvbHlnb24sXG4gICAgcm90YXRlUG9pbnRzQnlBbmdsZSxcbiAgICBjcmVhdGVEZWJ1Z0dlbmVyYXRvcixcbiAgICBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRBcmMsXG4gICAgZ2V0RWxsaXBzZUFyY0NlbnRlclxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQge1xuICAgIEJhc2ljU2hhcGVzLFxuICAgIEdlb21ldHJ5U2hhcGVzLFxuICAgIFBsYWl0QXJyb3dMaW5lLFxuICAgIFBsYWl0Q29tbW9uR2VvbWV0cnksXG4gICAgUGxhaXRDdXN0b21HZW9tZXRyeSxcbiAgICBQbGFpdERyYXdFbGVtZW50LFxuICAgIFBsYWl0R2VvbWV0cnksXG4gICAgUGxhaXRTaGFwZUVsZW1lbnQsXG4gICAgUGxhaXRWZWN0b3JMaW5lXG59IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgZ2V0TmVhcmVzdFBvaW50IH0gZnJvbSAnLi9nZW9tZXRyeSc7XG5pbXBvcnQgeyBnZXRBcnJvd0xpbmVQb2ludHMgfSBmcm9tICcuL2Fycm93LWxpbmUvYXJyb3ctbGluZS1iYXNpYyc7XG5pbXBvcnQgeyBnZXRGaWxsQnlFbGVtZW50IH0gZnJvbSAnLi9zdHlsZS9zdHJva2UnO1xuaW1wb3J0IHsgZ2V0RW5naW5lIH0gZnJvbSAnLi4vZW5naW5lcyc7XG5pbXBvcnQgeyBnZXRFbGVtZW50U2hhcGUgfSBmcm9tICcuL3NoYXBlJztcbmltcG9ydCB7IGdldEhpdEFycm93TGluZVRleHRJbmRleCB9IGZyb20gJy4vcG9zaXRpb24vYXJyb3ctbGluZSc7XG5pbXBvcnQgeyBnZXRUZXh0UmVjdGFuZ2xlLCBpc0Nsb3NlZEN1c3RvbUdlb21ldHJ5LCBpc0Nsb3NlZERyYXdFbGVtZW50LCBpc0Nsb3NlZFBvaW50cywgaXNEcmF3RWxlbWVudEluY2x1ZGVUZXh0IH0gZnJvbSAnLi9jb21tb24nO1xuaW1wb3J0IHsgaXNNdWx0aXBsZVRleHRHZW9tZXRyeSB9IGZyb20gJy4vbXVsdGktdGV4dC1nZW9tZXRyeSc7XG5pbXBvcnQgeyBnZXRGaXJzdFRleHRFZGl0b3IsIGlzRmlsbGVkLCBzb3J0RWxlbWVudHNCeUFyZWEgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcbmltcG9ydCB7IGdldFZlY3RvckxpbmVQb2ludHMgfSBmcm9tICcuL3ZlY3Rvci1saW5lJztcbmltcG9ydCB7IEVkaXRvciwgRWxlbWVudCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IGdlbmVyYXRlQ2xvdWRQYXRoIH0gZnJvbSAnLi4vZW5naW5lcy9iYXNpYy1zaGFwZXMvY2xvdWQnO1xuXG5leHBvcnQgY29uc3QgaXNUZXh0RXhjZWVkaW5nQm91bmRzID0gKGdlb21ldHJ5OiBQbGFpdEdlb21ldHJ5KSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGdlb21ldHJ5LnBvaW50cyk7XG4gICAgaWYgKGdlb21ldHJ5LnRleHRIZWlnaHQgJiYgZ2VvbWV0cnkudGV4dEhlaWdodCA+IGNsaWVudC5oZWlnaHQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0hpdEFycm93TGluZVRleHQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFBsYWl0QXJyb3dMaW5lLCBwb2ludDogUG9pbnQpID0+IHtcbiAgICByZXR1cm4gZ2V0SGl0QXJyb3dMaW5lVGV4dEluZGV4KGJvYXJkLCBlbGVtZW50LCBwb2ludCkgIT09IC0xO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzSGl0UG9seUxpbmUgPSAocGF0aFBvaW50czogUG9pbnRbXSwgcG9pbnQ6IFBvaW50KSA9PiB7XG4gICAgY29uc3QgZGlzdGFuY2UgPSBkaXN0YW5jZUJldHdlZW5Qb2ludEFuZFNlZ21lbnRzKHBvaW50LCBwYXRoUG9pbnRzKTtcbiAgICByZXR1cm4gZGlzdGFuY2UgPD0gSElUX0RJU1RBTkNFX0JVRkZFUjtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0hpdEFycm93TGluZSA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogUGxhaXRBcnJvd0xpbmUsIHBvaW50OiBQb2ludCkgPT4ge1xuICAgIGNvbnN0IHBvaW50cyA9IGdldEFycm93TGluZVBvaW50cyhib2FyZCwgZWxlbWVudCk7XG4gICAgY29uc3QgaXNIaXRUZXh0ID0gaXNIaXRBcnJvd0xpbmVUZXh0KGJvYXJkLCBlbGVtZW50IGFzIFBsYWl0QXJyb3dMaW5lLCBwb2ludCk7XG4gICAgcmV0dXJuIGlzSGl0VGV4dCB8fCBpc0hpdFBvbHlMaW5lKHBvaW50cywgcG9pbnQpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzSGl0VmVjdG9yTGluZSA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogUGxhaXRWZWN0b3JMaW5lLCBwb2ludDogUG9pbnQpID0+IHtcbiAgICBjb25zdCBwb2ludHMgPSBnZXRWZWN0b3JMaW5lUG9pbnRzKGJvYXJkLCBlbGVtZW50KSE7XG4gICAgaWYgKGlzQ2xvc2VkUG9pbnRzKGVsZW1lbnQucG9pbnRzKSkge1xuICAgICAgICByZXR1cm4gaXNQb2ludEluUG9seWdvbihwb2ludCwgcG9pbnRzKSB8fCBpc0hpdFBvbHlMaW5lKHBvaW50cywgcG9pbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBpc0hpdFBvbHlMaW5lKHBvaW50cywgcG9pbnQpO1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBpc1JlY3RhbmdsZUhpdEVsZW1lbnRUZXh0ID0gKGVsZW1lbnQ6IFBsYWl0Q29tbW9uR2VvbWV0cnksIHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSA9PiB7XG4gICAgY29uc3QgZW5naW5lID0gZ2V0RW5naW5lPFBsYWl0Q29tbW9uR2VvbWV0cnk+KGVsZW1lbnQuc2hhcGUpO1xuICAgIGlmIChpc011bHRpcGxlVGV4dEdlb21ldHJ5KGVsZW1lbnQpKSB7XG4gICAgICAgIGNvbnN0IHRleHRzID0gZWxlbWVudC50ZXh0cztcbiAgICAgICAgcmV0dXJuIHRleHRzLnNvbWUoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRleHRDbGllbnQgPSBlbmdpbmUuZ2V0VGV4dFJlY3RhbmdsZSEoZWxlbWVudCwgeyBpZDogaXRlbS5pZCB9KTtcbiAgICAgICAgICAgIHJldHVybiBpc1JlY3RhbmdsZUhpdFJvdGF0ZWRQb2ludHMocmVjdGFuZ2xlLCBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ybmVyUG9pbnRzKHRleHRDbGllbnQpLCBlbGVtZW50LmFuZ2xlKTtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgdGV4dENsaWVudCA9IGVuZ2luZS5nZXRUZXh0UmVjdGFuZ2xlID8gZW5naW5lLmdldFRleHRSZWN0YW5nbGUoZWxlbWVudCkgOiBnZXRUZXh0UmVjdGFuZ2xlKGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gaXNSZWN0YW5nbGVIaXRSb3RhdGVkUG9pbnRzKHJlY3RhbmdsZSwgUmVjdGFuZ2xlQ2xpZW50LmdldENvcm5lclBvaW50cyh0ZXh0Q2xpZW50KSwgZWxlbWVudC5hbmdsZSk7XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGlzSGl0RWxlbWVudFRleHQgPSAoZWxlbWVudDogUGxhaXRDb21tb25HZW9tZXRyeSwgcG9pbnQ6IFBvaW50KSA9PiB7XG4gICAgY29uc3QgZW5naW5lID0gZ2V0RW5naW5lPFBsYWl0Q29tbW9uR2VvbWV0cnk+KGVsZW1lbnQuc2hhcGUpO1xuICAgIGlmIChpc011bHRpcGxlVGV4dEdlb21ldHJ5KGVsZW1lbnQpKSB7XG4gICAgICAgIGNvbnN0IHRleHRzID0gZWxlbWVudC50ZXh0cztcbiAgICAgICAgcmV0dXJuIHRleHRzLnNvbWUoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRleHRDbGllbnQgPSBlbmdpbmUuZ2V0VGV4dFJlY3RhbmdsZSEoZWxlbWVudCwgeyBpZDogaXRlbS5pZCB9KTtcbiAgICAgICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuaXNQb2ludEluUmVjdGFuZ2xlKHRleHRDbGllbnQsIHBvaW50KTtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgdGV4dENsaWVudCA9IGVuZ2luZS5nZXRUZXh0UmVjdGFuZ2xlID8gZW5naW5lLmdldFRleHRSZWN0YW5nbGUoZWxlbWVudCkgOiBnZXRUZXh0UmVjdGFuZ2xlKGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmlzUG9pbnRJblJlY3RhbmdsZSh0ZXh0Q2xpZW50LCBwb2ludCk7XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGlzRW1wdHlUZXh0RWxlbWVudCA9IChlbGVtZW50OiBQbGFpdENvbW1vbkdlb21ldHJ5KSA9PiB7XG4gICAgaWYgKCFpc0RyYXdFbGVtZW50SW5jbHVkZVRleHQoZWxlbWVudCkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGNvbnN0IGVkaXRvciA9IGdldEZpcnN0VGV4dEVkaXRvcihlbGVtZW50KTtcbiAgICByZXR1cm4gRWRpdG9yLmlzRW1wdHkoZWRpdG9yLCBlZGl0b3IuY2hpbGRyZW5bMF0gYXMgRWxlbWVudCk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNSZWN0YW5nbGVIaXREcmF3RWxlbWVudCA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogUGxhaXRFbGVtZW50LCBzZWxlY3Rpb246IFNlbGVjdGlvbikgPT4ge1xuICAgIGNvbnN0IHJhbmdlUmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKFtzZWxlY3Rpb24uYW5jaG9yLCBzZWxlY3Rpb24uZm9jdXNdKTtcbiAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc0dlb21ldHJ5KGVsZW1lbnQpKSB7XG4gICAgICAgIGNvbnN0IGlzSGl0RWxlbWVudCA9IGlzUmVjdGFuZ2xlSGl0Um90YXRlZEVsZW1lbnQoYm9hcmQsIHJhbmdlUmVjdGFuZ2xlLCBlbGVtZW50KTtcbiAgICAgICAgaWYgKGlzSGl0RWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIGlzSGl0RWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gIWlzRW1wdHlUZXh0RWxlbWVudChlbGVtZW50KSAmJiBpc1JlY3RhbmdsZUhpdEVsZW1lbnRUZXh0KGVsZW1lbnQsIHJhbmdlUmVjdGFuZ2xlKTtcbiAgICB9XG5cbiAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc0ltYWdlKGVsZW1lbnQpKSB7XG4gICAgICAgIHJldHVybiBpc1JlY3RhbmdsZUhpdFJvdGF0ZWRFbGVtZW50KGJvYXJkLCByYW5nZVJlY3RhbmdsZSwgZWxlbWVudCk7XG4gICAgfVxuXG4gICAgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNBcnJvd0xpbmUoZWxlbWVudCkpIHtcbiAgICAgICAgY29uc3QgcG9pbnRzID0gZ2V0QXJyb3dMaW5lUG9pbnRzKGJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgcmV0dXJuIGlzTGluZUhpdFJlY3RhbmdsZShwb2ludHMsIHJhbmdlUmVjdGFuZ2xlKTtcbiAgICB9XG5cbiAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc1ZlY3RvckxpbmUoZWxlbWVudCkpIHtcbiAgICAgICAgY29uc3QgcG9pbnRzID0gZ2V0VmVjdG9yTGluZVBvaW50cyhib2FyZCwgZWxlbWVudCkhO1xuICAgICAgICByZXR1cm4gaXNMaW5lSGl0UmVjdGFuZ2xlKHBvaW50cywgcmFuZ2VSZWN0YW5nbGUpO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzUmVjdGFuZ2xlSGl0Um90YXRlZEVsZW1lbnQgPSAoXG4gICAgYm9hcmQ6IFBsYWl0Qm9hcmQsXG4gICAgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsXG4gICAgZWxlbWVudDogUGxhaXRFbGVtZW50ICYgeyBwb2ludHM6IFBvaW50W10gfVxuKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGVsZW1lbnQucG9pbnRzKTtcbiAgICByZXR1cm4gaXNSZWN0YW5nbGVIaXRSb3RhdGVkUG9pbnRzKHJlY3RhbmdsZSwgUmVjdGFuZ2xlQ2xpZW50LmdldENvcm5lclBvaW50cyhjbGllbnQpLCBlbGVtZW50LmFuZ2xlKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1JlY3RhbmdsZUhpdFJvdGF0ZWRQb2ludHMgPSAocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50czogUG9pbnRbXSwgYW5nbGU6IG51bWJlciB8IHVuZGVmaW5lZCkgPT4ge1xuICAgIGxldCByb3RhdGVkUG9pbnRzID0gcm90YXRlUG9pbnRzQnlBbmdsZShwb2ludHMsIGFuZ2xlKSB8fCBwb2ludHM7XG4gICAgcmV0dXJuIGlzTGluZUhpdFJlY3RhbmdsZShyb3RhdGVkUG9pbnRzLCByZWN0YW5nbGUpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEhpdERyYXdFbGVtZW50ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50czogKFBsYWl0RHJhd0VsZW1lbnQgfCBQbGFpdEN1c3RvbUdlb21ldHJ5KVtdKSA9PiB7XG4gICAgbGV0IGZpcnN0RmlsbGVkRWxlbWVudCA9IGdldEZpcnN0RmlsbGVkRHJhd0VsZW1lbnQoYm9hcmQsIGVsZW1lbnRzKTtcbiAgICBsZXQgZW5kSW5kZXggPSBlbGVtZW50cy5sZW5ndGg7XG4gICAgaWYgKGZpcnN0RmlsbGVkRWxlbWVudCkge1xuICAgICAgICBlbmRJbmRleCA9IGVsZW1lbnRzLmluZGV4T2YoZmlyc3RGaWxsZWRFbGVtZW50KSArIDE7XG4gICAgfVxuICAgIGNvbnN0IG5ld0VsZW1lbnRzID0gZWxlbWVudHMuc2xpY2UoMCwgZW5kSW5kZXgpO1xuICAgIGNvbnN0IHNvbGlkRWxlbWVudHMgPSBnZXRTb2xpZEVsZW1lbnRzKG5ld0VsZW1lbnRzKTtcbiAgICBpZiAoc29saWRFbGVtZW50cykge1xuICAgICAgICByZXR1cm4gc29saWRFbGVtZW50c1swXTtcbiAgICB9XG4gICAgY29uc3Qgc29ydEVsZW1lbnRzID0gc29ydEVsZW1lbnRzQnlBcmVhKGJvYXJkLCBuZXdFbGVtZW50cywgJ2FzYycpO1xuICAgIHJldHVybiBzb3J0RWxlbWVudHNbMF07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Rmlyc3RGaWxsZWREcmF3RWxlbWVudCA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudHM6IChQbGFpdERyYXdFbGVtZW50IHwgUGxhaXRDdXN0b21HZW9tZXRyeSlbXSkgPT4ge1xuICAgIGxldCBmaWxsZWRFbGVtZW50OiBQbGFpdEdlb21ldHJ5IHwgUGxhaXRDdXN0b21HZW9tZXRyeSB8IG51bGwgPSBudWxsO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IGVsZW1lbnRzW2ldO1xuICAgICAgICBpZiAoaXNDbG9zZWRDdXN0b21HZW9tZXRyeShib2FyZCwgZWxlbWVudCkgfHwgaXNDbG9zZWREcmF3RWxlbWVudChlbGVtZW50KSkge1xuICAgICAgICAgICAgY29uc3QgZmlsbCA9IGdldEZpbGxCeUVsZW1lbnQoYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICAgICAgaWYgKGlzRmlsbGVkKGZpbGwpKSB7XG4gICAgICAgICAgICAgICAgZmlsbGVkRWxlbWVudCA9IGVsZW1lbnQgYXMgUGxhaXRHZW9tZXRyeTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmlsbGVkRWxlbWVudDtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0ZpbGxlZERyYXdFbGVtZW50ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBQbGFpdERyYXdFbGVtZW50IHwgUGxhaXRDdXN0b21HZW9tZXRyeSkgPT4ge1xuICAgIHJldHVybiBnZXRGaXJzdEZpbGxlZERyYXdFbGVtZW50KGJvYXJkLCBbZWxlbWVudF0pICE9PSBudWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFNvbGlkRWxlbWVudHMgPSAoZWxlbWVudHM6IFBsYWl0RWxlbWVudFtdKSA9PiB7XG4gICAgY29uc3Qgc29saWRFbGVtZW50cyA9IGVsZW1lbnRzLmZpbHRlcihcbiAgICAgICAgKGl0ZW0pID0+XG4gICAgICAgICAgICBQbGFpdERyYXdFbGVtZW50LmlzVGV4dChpdGVtKSB8fCBQbGFpdERyYXdFbGVtZW50LmlzTGluZShpdGVtKSB8fCBlbGVtZW50cy5maWx0ZXIoKGl0ZW0pID0+IFBsYWl0RHJhd0VsZW1lbnQuaXNJbWFnZShpdGVtKSlcbiAgICApO1xuICAgIGlmIChzb2xpZEVsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gc29saWRFbGVtZW50cztcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59O1xuXG5jb25zdCBkZWJ1Z0tleSA9ICdkZWJ1ZzpwbGFpdDpoaXQ6c2hhcGU6ZWRnZTpzYW1wbGUtcG9pbnRzJztcbmNvbnN0IGRlYnVnR2VuZXJhdG9yID0gY3JlYXRlRGVidWdHZW5lcmF0b3IoZGVidWdLZXkpO1xuY29uc3Qgc2hhcGVzOiBHZW9tZXRyeVNoYXBlc1tdID0gW0Jhc2ljU2hhcGVzLmNsb3VkXTtcblxuZXhwb3J0IGNvbnN0IGlzSGl0RHJhd0VsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFBsYWl0RWxlbWVudCwgcG9pbnQ6IFBvaW50LCBpc1N0cmljdDogYm9vbGVhbiA9IHRydWUpID0+IHtcbiAgICBjb25zdCByZWN0YW5nbGUgPSBib2FyZC5nZXRSZWN0YW5nbGUoZWxlbWVudCk7XG4gICAgcG9pbnQgPSByb3RhdGVBbnRpUG9pbnRzQnlFbGVtZW50KGJvYXJkLCBwb2ludCwgZWxlbWVudCkgfHwgcG9pbnQ7XG4gICAgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNHZW9tZXRyeShlbGVtZW50KSAmJiByZWN0YW5nbGUpIHtcbiAgICAgICAgaWYgKGRlYnVnR2VuZXJhdG9yLmlzRGVidWcoKSAmJiBzaGFwZXMuaW5jbHVkZXMoZWxlbWVudC5zaGFwZSkpIHtcbiAgICAgICAgICAgIGRlYnVnR2VuZXJhdG9yLmNsZWFyKCk7XG4gICAgICAgICAgICBjb25zdCB7IHN0YXJ0UG9pbnQsIGFyY0NvbW1hbmRzIH0gPSBnZW5lcmF0ZUNsb3VkUGF0aChyZWN0YW5nbGUpO1xuICAgICAgICAgICAgY29uc3QgcG9pbnRzID0gW3N0YXJ0UG9pbnQsIC4uLmFyY0NvbW1hbmRzLm1hcCgoYXJjKSA9PiBbYXJjLmVuZFgsIGFyYy5lbmRZXSldIGFzIFBvaW50W107XG4gICAgICAgICAgICBkZWJ1Z0dlbmVyYXRvci5kcmF3Q2lyY2xlcyhib2FyZCwgcG9pbnRzLCA1LCBmYWxzZSk7XG4gICAgICAgICAgICBsZXQgbWluRGlzdGFuY2UgPSBJbmZpbml0eTtcbiAgICAgICAgICAgIGxldCBuZWFyZXN0UG9pbnQgPSBwb2ludDtcbiAgICAgICAgICAgIGxldCBjdXJyZW50U3RhcnQgPSBzdGFydFBvaW50O1xuICAgICAgICAgICAgZm9yIChjb25zdCBhcmMgb2YgYXJjQ29tbWFuZHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhcmNOZWFyZXN0UG9pbnQgPSBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRBcmMocG9pbnQsIGN1cnJlbnRTdGFydCwgYXJjKTtcbiAgICAgICAgICAgICAgICBjb25zdCBkaXN0YW5jZSA9IGRpc3RhbmNlQmV0d2VlblBvaW50QW5kUG9pbnQocG9pbnRbMF0sIHBvaW50WzFdLCBhcmNOZWFyZXN0UG9pbnRbMF0sIGFyY05lYXJlc3RQb2ludFsxXSk7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBjZW50ZXIgfSA9IGdldEVsbGlwc2VBcmNDZW50ZXIoY3VycmVudFN0YXJ0LCBhcmMpO1xuICAgICAgICAgICAgICAgIGRlYnVnR2VuZXJhdG9yLmRyYXdDaXJjbGVzKGJvYXJkLCBbY2VudGVyXSwgOCwgZmFsc2UsIHsgZmlsbDogJ3llbGxvdycgfSk7XG4gICAgICAgICAgICAgICAgaWYgKGRpc3RhbmNlIDwgbWluRGlzdGFuY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgbWluRGlzdGFuY2UgPSBkaXN0YW5jZTtcbiAgICAgICAgICAgICAgICAgICAgbmVhcmVzdFBvaW50ID0gYXJjTmVhcmVzdFBvaW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjdXJyZW50U3RhcnQgPSBbYXJjLmVuZFgsIGFyYy5lbmRZXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlYnVnR2VuZXJhdG9yLmRyYXdDaXJjbGVzKGJvYXJkLCBbcG9pbnRdLCAxMiwgZmFsc2UsIHsgZmlsbDogJ2JsYWNrJywgc3Ryb2tlOiAnYmxhY2snIH0pO1xuICAgICAgICAgICAgZGVidWdHZW5lcmF0b3IuZHJhd0NpcmNsZXMoYm9hcmQsIFtuZWFyZXN0UG9pbnRdLCAxMiwgZmFsc2UsIHsgZmlsbDogJ2dyZWVuJywgc3Ryb2tlOiAnZ3JlZW4nIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0hpdEVkZ2VPZlNoYXBlKGJvYXJkLCBlbGVtZW50LCBwb2ludCwgSElUX0RJU1RBTkNFX0JVRkZFUikpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVuZ2luZSA9IGdldEVuZ2luZShnZXRFbGVtZW50U2hhcGUoZWxlbWVudCkpO1xuICAgICAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc1RleHQoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHRleHRDbGllbnQgPSBnZXRUZXh0UmVjdGFuZ2xlKGVsZW1lbnQpO1xuICAgICAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5pc1BvaW50SW5SZWN0YW5nbGUodGV4dENsaWVudCwgcG9pbnQpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghIWlzU3RyaWN0ICYmIGlzRW1wdHlUZXh0RWxlbWVudChlbGVtZW50KSAmJiAhaXNGaWxsZWREcmF3RWxlbWVudChib2FyZCwgZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpc0hpdFRleHQgPSBpc0hpdEVsZW1lbnRUZXh0KGVsZW1lbnQsIHBvaW50KTtcbiAgICAgICAgcmV0dXJuIGlzSGl0VGV4dCB8fCBlbmdpbmUuaXNJbnNpZGVQb2ludChyZWN0YW5nbGUhLCBwb2ludCk7XG4gICAgfVxuICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzSW1hZ2UoZWxlbWVudCkpIHtcbiAgICAgICAgY29uc3QgY2xpZW50ID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGVsZW1lbnQucG9pbnRzKTtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5pc1BvaW50SW5SZWN0YW5nbGUoY2xpZW50LCBwb2ludCk7XG4gICAgfVxuICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzQXJyb3dMaW5lKGVsZW1lbnQpKSB7XG4gICAgICAgIHJldHVybiBpc0hpdEFycm93TGluZShib2FyZCwgZWxlbWVudCwgcG9pbnQpO1xuICAgIH1cblxuICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzVmVjdG9yTGluZShlbGVtZW50KSkge1xuICAgICAgICByZXR1cm4gaXNIaXRWZWN0b3JMaW5lKGJvYXJkLCBlbGVtZW50LCBwb2ludCk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzSGl0RWRnZU9mU2hhcGUgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFBsYWl0U2hhcGVFbGVtZW50LCBwb2ludDogUG9pbnQsIGhpdERpc3RhbmNlQnVmZmVyOiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBuZWFyZXN0UG9pbnQgPSBnZXROZWFyZXN0UG9pbnQoZWxlbWVudCwgcG9pbnQpO1xuICAgIGNvbnN0IGRpc3RhbmNlID0gZGlzdGFuY2VCZXR3ZWVuUG9pbnRBbmRQb2ludChuZWFyZXN0UG9pbnRbMF0sIG5lYXJlc3RQb2ludFsxXSwgcG9pbnRbMF0sIHBvaW50WzFdKTtcbiAgICByZXR1cm4gZGlzdGFuY2UgPD0gaGl0RGlzdGFuY2VCdWZmZXI7XG59O1xuXG5leHBvcnQgY29uc3QgaXNJbnNpZGVPZlNoYXBlID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBQbGFpdFNoYXBlRWxlbWVudCwgcG9pbnQ6IFBvaW50LCBoaXREaXN0YW5jZUJ1ZmZlcjogbnVtYmVyKSA9PiB7XG4gICAgY29uc3QgY2xpZW50ID0gUmVjdGFuZ2xlQ2xpZW50LmluZmxhdGUoUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGVsZW1lbnQucG9pbnRzKSwgaGl0RGlzdGFuY2VCdWZmZXIpO1xuICAgIHJldHVybiBnZXRFbmdpbmUoZ2V0RWxlbWVudFNoYXBlKGVsZW1lbnQpKS5pc0luc2lkZVBvaW50KGNsaWVudCwgcG9pbnQpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzSGl0RWxlbWVudEluc2lkZSA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogUGxhaXRFbGVtZW50LCBwb2ludDogUG9pbnQpID0+IHtcbiAgICBjb25zdCByZWN0YW5nbGUgPSBib2FyZC5nZXRSZWN0YW5nbGUoZWxlbWVudCk7XG4gICAgcG9pbnQgPSByb3RhdGVBbnRpUG9pbnRzQnlFbGVtZW50KGJvYXJkLCBwb2ludCwgZWxlbWVudCkgfHwgcG9pbnQ7XG4gICAgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNHZW9tZXRyeShlbGVtZW50KSAmJiAhUGxhaXREcmF3RWxlbWVudC5pc0dlb21ldHJ5QnlUYWJsZShlbGVtZW50KSkge1xuICAgICAgICBjb25zdCBlbmdpbmUgPSBnZXRFbmdpbmUoZ2V0RWxlbWVudFNoYXBlKGVsZW1lbnQpKTtcbiAgICAgICAgY29uc3QgaXNIaXRJbnNpZGUgPSBlbmdpbmUuaXNJbnNpZGVQb2ludChyZWN0YW5nbGUhLCBwb2ludCk7XG4gICAgICAgIGlmIChpc0hpdEluc2lkZSkge1xuICAgICAgICAgICAgcmV0dXJuIGlzSGl0SW5zaWRlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbmdpbmUuZ2V0VGV4dFJlY3RhbmdsZSkge1xuICAgICAgICAgICAgY29uc3QgaXNIaXRUZXh0ID0gaXNIaXRFbGVtZW50VGV4dChlbGVtZW50LCBwb2ludCk7XG4gICAgICAgICAgICBpZiAoaXNIaXRUZXh0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzSGl0VGV4dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc0ltYWdlKGVsZW1lbnQpKSB7XG4gICAgICAgIGNvbnN0IGNsaWVudCA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhlbGVtZW50LnBvaW50cyk7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuaXNQb2ludEluUmVjdGFuZ2xlKGNsaWVudCwgcG9pbnQpO1xuICAgIH1cblxuICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzQXJyb3dMaW5lKGVsZW1lbnQpKSB7XG4gICAgICAgIHJldHVybiBpc0hpdEFycm93TGluZShib2FyZCwgZWxlbWVudCwgcG9pbnQpO1xuICAgIH1cblxuICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzVmVjdG9yTGluZShlbGVtZW50KSkge1xuICAgICAgICByZXR1cm4gaXNIaXRWZWN0b3JMaW5lKGJvYXJkLCBlbGVtZW50LCBwb2ludCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG59O1xuIl19
|
package/fesm2022/plait-draw.mjs
CHANGED
|
@@ -1945,9 +1945,9 @@ const getHitDrawElement = (board, elements) => {
|
|
|
1945
1945
|
endIndex = elements.indexOf(firstFilledElement) + 1;
|
|
1946
1946
|
}
|
|
1947
1947
|
const newElements = elements.slice(0, endIndex);
|
|
1948
|
-
const
|
|
1949
|
-
if (
|
|
1950
|
-
return
|
|
1948
|
+
const solidElements = getSolidElements(newElements);
|
|
1949
|
+
if (solidElements) {
|
|
1950
|
+
return solidElements[0];
|
|
1951
1951
|
}
|
|
1952
1952
|
const sortElements = sortElementsByArea(board, newElements, 'asc');
|
|
1953
1953
|
return sortElements[0];
|
|
@@ -1969,14 +1969,10 @@ const getFirstFilledDrawElement = (board, elements) => {
|
|
|
1969
1969
|
const isFilledDrawElement = (board, element) => {
|
|
1970
1970
|
return getFirstFilledDrawElement(board, [element]) !== null;
|
|
1971
1971
|
};
|
|
1972
|
-
const
|
|
1973
|
-
const
|
|
1974
|
-
if (
|
|
1975
|
-
return
|
|
1976
|
-
}
|
|
1977
|
-
const lines = elements.filter((item) => PlaitDrawElement.isArrowLine(item));
|
|
1978
|
-
if (lines.length) {
|
|
1979
|
-
return lines[0];
|
|
1972
|
+
const getSolidElements = (elements) => {
|
|
1973
|
+
const solidElements = elements.filter((item) => PlaitDrawElement.isText(item) || PlaitDrawElement.isLine(item) || elements.filter((item) => PlaitDrawElement.isImage(item)));
|
|
1974
|
+
if (solidElements.length) {
|
|
1975
|
+
return solidElements;
|
|
1980
1976
|
}
|
|
1981
1977
|
return null;
|
|
1982
1978
|
};
|
|
@@ -2751,6 +2747,17 @@ const insertImage = (board, imageItem, startPoint) => {
|
|
|
2751
2747
|
Transforms.insertNode(board, imageElement, [board.children.length]);
|
|
2752
2748
|
Transforms.addSelectionWithTemporaryElements(board, [imageElement]);
|
|
2753
2749
|
};
|
|
2750
|
+
const createImage = (startPoint, imageItem) => {
|
|
2751
|
+
const { width, height, url } = imageItem;
|
|
2752
|
+
const points = [startPoint, [startPoint[0] + width, startPoint[1] + height]];
|
|
2753
|
+
const imageElement = {
|
|
2754
|
+
id: idCreator(),
|
|
2755
|
+
type: 'image',
|
|
2756
|
+
points,
|
|
2757
|
+
url
|
|
2758
|
+
};
|
|
2759
|
+
return imageElement;
|
|
2760
|
+
};
|
|
2754
2761
|
|
|
2755
2762
|
const resizeArrowLine = (board, options, path) => {
|
|
2756
2763
|
Transforms.setNode(board, options, path);
|
|
@@ -9305,5 +9312,5 @@ const withDraw = (board) => {
|
|
|
9305
9312
|
* Generated bundle index. Do not edit.
|
|
9306
9313
|
*/
|
|
9307
9314
|
|
|
9308
|
-
export { ArrowLineAutoCompleteGenerator, ArrowLineComponent, ArrowLineHandleKey, ArrowLineMarkerType, ArrowLineShape, BasicShapes, DEFAULT_IMAGE_WIDTH, DefaultActivationProperty, DefaultActorProperty, DefaultArrowProperty, DefaultAssemblyProperty, DefaultBasicShapeProperty, DefaultBasicShapePropertyMap, DefaultClassProperty, DefaultCloudProperty, DefaultCombinedFragmentProperty, DefaultComponentBoxProperty, DefaultConnectorProperty, DefaultContainerProperty, DefaultDataBaseProperty, DefaultDataProperty, DefaultDecisionProperty, DefaultDeletionProperty, DefaultDocumentProperty, DefaultDrawActiveStyle, DefaultDrawStyle, DefaultFlowchartProperty, DefaultFlowchartPropertyMap, DefaultInterfaceProperty, DefaultInternalStorageProperty, DefaultLineStyle, DefaultManualInputProperty, DefaultMergeProperty, DefaultMultiDocumentProperty, DefaultNoteProperty, DefaultObjectProperty, DefaultPackageProperty, DefaultPentagonArrowProperty, DefaultPortProperty, DefaultProvidedInterfaceProperty, DefaultRequiredInterfaceProperty, DefaultSwimlaneHorizontalProperty, DefaultSwimlaneHorizontalWithHeaderProperty, DefaultSwimlanePropertyMap, DefaultSwimlaneVerticalProperty, DefaultSwimlaneVerticalWithHeaderProperty, DefaultTextProperty, DefaultTwoWayArrowProperty, DefaultUMLPropertyMap, DrawI18nKey, DrawThemeColors, DrawTransforms, FlowchartSymbols, GEOMETRY_NOT_CLOSED, GEOMETRY_WITHOUT_TEXT, GEOMETRY_WITH_MULTIPLE_TEXT, GeometryCommonTextKeys, GeometryComponent, GeometryShapeGenerator, GeometryThreshold, KEY_TO_TEXT_MANAGE, LINE_ALIGN_TOLERANCE, LINE_AUTO_COMPLETE_DIAMETER, LINE_AUTO_COMPLETE_HOVERED_DIAMETER, LINE_AUTO_COMPLETE_HOVERED_OPACITY, LINE_AUTO_COMPLETE_OPACITY, LINE_HIT_GEOMETRY_BUFFER, LINE_SNAPPING_BUFFER, LINE_SNAPPING_CONNECTOR_BUFFER, LINE_TEXT, LINE_TEXT_SPACE, LineActiveGenerator, MIN_TEXT_WIDTH, MemorizeKey, MultipleTextGeometryTextKeys, PlaitArrowLine, PlaitDrawElement, PlaitGeometry, PlaitTableElement, Q2C, SELECTED_CELLS, SWIMLANE_HEADER_SIZE, ShapeDefaultSpace, SingleTextGenerator, SwimlaneDrawSymbols, SwimlaneSymbols, TableGenerator, TableSymbols, TextGenerator, UMLSymbols, VectorLineComponent, VectorLinePointerType, VectorLineShape, WithArrowLineAutoCompletePluginKey, WithDrawPluginKey, adjustSwimlaneShape, alignElbowSegment, alignPoints, buildClipboardData, buildDefaultTextsByShape, buildSwimlaneTable, clearSelectedCells, collectArrowLineUpdatedRefsByGeometry, createArrowLineElement, createCell, createDefaultCells, createDefaultGeometry, createDefaultRowsOrColumns, createDefaultSwimlane, createGeometryElement, createGeometryElementWithText, createGeometryElementWithoutText, createMultipleTextGeometryElement, createTextElement, createUMLClassOrInterfaceGeometryElement, createVectorLineElement, debugGenerator$1 as debugGenerator, deleteTextManage, drawArrowLine, drawArrowLineArrow, drawBoundReaction, drawGeometry, drawShape, drawVectorLine, editCell, editText, getArrowLineHandleRefPair, getArrowLinePointers, getArrowLinePoints, getArrowLineTextRectangle, getArrowLines, getAutoCompletePoints, getBasicPointers, getCellWithPoints, getCellsRectangle, getCellsWithPoints, getCenterPointsOnPolygon, getConnectionPoint, getCurvePoints, getDefaultBasicShapeProperty, getDefaultFlowchartProperty, getDefaultGeometryPoints, getDefaultGeometryProperty, getDefaultGeometryText, getDefaultSwimlanePoints, getDefaultTextPoints, getDefaultUMLProperty, getDrawDefaultStrokeColor, getElbowLineRouteOptions, getElbowPoints, getFillByElement, getFirstFilledDrawElement,
|
|
9315
|
+
export { ArrowLineAutoCompleteGenerator, ArrowLineComponent, ArrowLineHandleKey, ArrowLineMarkerType, ArrowLineShape, BasicShapes, DEFAULT_IMAGE_WIDTH, DefaultActivationProperty, DefaultActorProperty, DefaultArrowProperty, DefaultAssemblyProperty, DefaultBasicShapeProperty, DefaultBasicShapePropertyMap, DefaultClassProperty, DefaultCloudProperty, DefaultCombinedFragmentProperty, DefaultComponentBoxProperty, DefaultConnectorProperty, DefaultContainerProperty, DefaultDataBaseProperty, DefaultDataProperty, DefaultDecisionProperty, DefaultDeletionProperty, DefaultDocumentProperty, DefaultDrawActiveStyle, DefaultDrawStyle, DefaultFlowchartProperty, DefaultFlowchartPropertyMap, DefaultInterfaceProperty, DefaultInternalStorageProperty, DefaultLineStyle, DefaultManualInputProperty, DefaultMergeProperty, DefaultMultiDocumentProperty, DefaultNoteProperty, DefaultObjectProperty, DefaultPackageProperty, DefaultPentagonArrowProperty, DefaultPortProperty, DefaultProvidedInterfaceProperty, DefaultRequiredInterfaceProperty, DefaultSwimlaneHorizontalProperty, DefaultSwimlaneHorizontalWithHeaderProperty, DefaultSwimlanePropertyMap, DefaultSwimlaneVerticalProperty, DefaultSwimlaneVerticalWithHeaderProperty, DefaultTextProperty, DefaultTwoWayArrowProperty, DefaultUMLPropertyMap, DrawI18nKey, DrawThemeColors, DrawTransforms, FlowchartSymbols, GEOMETRY_NOT_CLOSED, GEOMETRY_WITHOUT_TEXT, GEOMETRY_WITH_MULTIPLE_TEXT, GeometryCommonTextKeys, GeometryComponent, GeometryShapeGenerator, GeometryThreshold, KEY_TO_TEXT_MANAGE, LINE_ALIGN_TOLERANCE, LINE_AUTO_COMPLETE_DIAMETER, LINE_AUTO_COMPLETE_HOVERED_DIAMETER, LINE_AUTO_COMPLETE_HOVERED_OPACITY, LINE_AUTO_COMPLETE_OPACITY, LINE_HIT_GEOMETRY_BUFFER, LINE_SNAPPING_BUFFER, LINE_SNAPPING_CONNECTOR_BUFFER, LINE_TEXT, LINE_TEXT_SPACE, LineActiveGenerator, MIN_TEXT_WIDTH, MemorizeKey, MultipleTextGeometryTextKeys, PlaitArrowLine, PlaitDrawElement, PlaitGeometry, PlaitTableElement, Q2C, SELECTED_CELLS, SWIMLANE_HEADER_SIZE, ShapeDefaultSpace, SingleTextGenerator, SwimlaneDrawSymbols, SwimlaneSymbols, TableGenerator, TableSymbols, TextGenerator, UMLSymbols, VectorLineComponent, VectorLinePointerType, VectorLineShape, WithArrowLineAutoCompletePluginKey, WithDrawPluginKey, adjustSwimlaneShape, alignElbowSegment, alignPoints, buildClipboardData, buildDefaultTextsByShape, buildSwimlaneTable, clearSelectedCells, collectArrowLineUpdatedRefsByGeometry, createArrowLineElement, createCell, createDefaultCells, createDefaultGeometry, createDefaultRowsOrColumns, createDefaultSwimlane, createGeometryElement, createGeometryElementWithText, createGeometryElementWithoutText, createMultipleTextGeometryElement, createTextElement, createUMLClassOrInterfaceGeometryElement, createVectorLineElement, debugGenerator$1 as debugGenerator, deleteTextManage, drawArrowLine, drawArrowLineArrow, drawBoundReaction, drawGeometry, drawShape, drawVectorLine, editCell, editText, getArrowLineHandleRefPair, getArrowLinePointers, getArrowLinePoints, getArrowLineTextRectangle, getArrowLines, getAutoCompletePoints, getBasicPointers, getCellWithPoints, getCellsRectangle, getCellsWithPoints, getCenterPointsOnPolygon, getConnectionPoint, getCurvePoints, getDefaultBasicShapeProperty, getDefaultFlowchartProperty, getDefaultGeometryPoints, getDefaultGeometryProperty, getDefaultGeometryText, getDefaultSwimlanePoints, getDefaultTextPoints, getDefaultUMLProperty, getDrawDefaultStrokeColor, getElbowLineRouteOptions, getElbowPoints, getFillByElement, getFirstFilledDrawElement, getFlowchartDefaultFill, getFlowchartPointers, getGeometryAlign, getGeometryPointers, getHitCell, getHitConnection, getHitConnectorPoint, getHitDrawElement, getHitIndexOfAutoCompletePoint, getHitMultipleGeometryText, getHitShape, getIndexAndDeleteCountByKeyPoint, getLineMemorizedLatest, getMemorizeKey, getMemorizedLatestByPointer, getMemorizedLatestShape, getMidKeyPoints, getMiddlePoints, getMirrorDataPoints, getMultipleTextGeometryTextKeys, getNearestPoint, getNextRenderPoints, getNextSourceAndTargetPoints, getResizedPreviousAndNextPoint, getSelectedArrowLineElements, getSelectedCells, getSelectedCustomGeometryElements, getSelectedDrawElements, getSelectedGeometryElements, getSelectedImageElements, getSelectedSwimlane, getSelectedTableCellsEditor, getSelectedTableElements, getSelectedVectorLineElements, getSnapResizingRef, getSnapResizingRefOptions, getSnappingRef, getSnappingShape, getSolidElements, getSourceAndTargetRectangle, getStrokeColorByElement, getStrokeStyleByElement, getStrokeWidthByElement, getSwimlaneCount, getSwimlanePointers, getTextKey, getTextManage, getTextManageByCell, getTextRectangle, getTextShapeProperty, getUMLPointers, getVectorByConnection, getVectorLinePointers, getVectorLinePoints, handleArrowLineCreating, hasIllegalElbowPoint, insertClipboardData, insertElement, isCellIncludeText, isClosedCustomGeometry, isClosedDrawElement, isClosedPoints, isDrawElementIncludeText, isDrawElementsIncludeText, isEmptyTextElement, isFilledDrawElement, isGeometryClosed, isGeometryIncludeText, isHitArrowLine, isHitArrowLineText, isHitDrawElement, isHitEdgeOfShape, isHitElementInside, isHitElementText, isHitPolyLine, isHitVectorLine, isInsideOfShape, isMultipleTextGeometry, isMultipleTextShape, isRectangleHitDrawElement, isRectangleHitElementText, isRectangleHitRotatedElement, isRectangleHitRotatedPoints, isSelfLoop, isSingleSelectLine, isSingleSelectSwimlane, isSingleSelectTable, isSingleTextGeometry, isSingleTextShape, isSwimlanePointers, isSwimlaneWithHeader, isTextExceedingBounds, isUpdatedHandleIndex, isUseDefaultOrthogonalRoute, memorizeLatestShape, memorizeLatestText, setSelectedCells, setTextManage, traverseDrawShapes, updateCellIds, updateCellIdsByRowOrColumn, updateColumns, updateRowOrColumnIds, updateRows, vectorLineCreating, withArrowLineAutoComplete, withDraw };
|
|
9309
9316
|
//# sourceMappingURL=plait-draw.mjs.map
|