@ng-nest/ui 18.0.8 → 18.0.10
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/alert/alert.component.d.ts +3 -3
- package/auto-complete/auto-complete-portal.component.d.ts +6 -9
- package/auto-complete/auto-complete.component.d.ts +1 -0
- package/cascade/cascade-portal.component.d.ts +7 -9
- package/cascade/cascade.component.d.ts +1 -9
- package/cascade/cascade.property.d.ts +5 -2
- package/checkbox/checkbox.property.d.ts +10 -98
- package/color-picker/color-picker-portal.component.d.ts +6 -9
- package/core/functions/convert.d.ts +5 -0
- package/core/util/public-api.d.ts +1 -0
- package/core/util/sleep.d.ts +5 -0
- package/date-picker/date-picker-portal.component.d.ts +5 -6
- package/date-picker/date-picker.property.d.ts +1 -31
- package/date-picker/date-range-portal.component.d.ts +5 -6
- package/dialog/dialog.component.d.ts +4 -3
- package/dropdown/dropdown-portal.component.d.ts +5 -7
- package/esm2022/alert/alert.component.mjs +13 -10
- package/esm2022/auto-complete/auto-complete-portal.component.mjs +17 -10
- package/esm2022/auto-complete/auto-complete.component.mjs +7 -4
- package/esm2022/back-top/back-top.component.mjs +4 -2
- package/esm2022/cascade/cascade-portal.component.mjs +20 -11
- package/esm2022/cascade/cascade.component.mjs +5 -3
- package/esm2022/cascade/cascade.property.mjs +2 -2
- package/esm2022/checkbox/checkbox.property.mjs +3 -43
- package/esm2022/color-picker/color-picker-portal.component.mjs +17 -10
- package/esm2022/color-picker/color-picker.component.mjs +3 -3
- package/esm2022/color-picker/color-picker.property.mjs +3 -3
- package/esm2022/core/functions/convert.mjs +15 -1
- package/esm2022/core/util/public-api.mjs +2 -1
- package/esm2022/core/util/sleep.mjs +8 -0
- package/esm2022/date-picker/date-picker-portal.component.mjs +17 -6
- package/esm2022/date-picker/date-picker.component.mjs +3 -3
- package/esm2022/date-picker/date-picker.property.mjs +2 -17
- package/esm2022/date-picker/date-range-portal.component.mjs +17 -6
- package/esm2022/date-picker/date-range.component.mjs +3 -3
- package/esm2022/dialog/dialog.component.mjs +23 -18
- package/esm2022/dropdown/dropdown-portal.component.mjs +17 -8
- package/esm2022/dropdown/dropdown.component.mjs +3 -3
- package/esm2022/find/find.component.mjs +15 -8
- package/esm2022/find/find.property.mjs +7 -57
- package/esm2022/form/form.component.mjs +3 -3
- package/esm2022/form/form.property.mjs +1 -1
- package/esm2022/highlight/highlight.component.mjs +3 -3
- package/esm2022/icon/icon.component.mjs +2 -2
- package/esm2022/image/image.component.mjs +3 -3
- package/esm2022/input/input.component.mjs +3 -3
- package/esm2022/input-number/input-number.component.mjs +3 -3
- package/esm2022/input-number/input-number.property.mjs +3 -23
- package/esm2022/loading/loading.component.mjs +3 -3
- package/esm2022/loading/loading.property.mjs +5 -5
- package/esm2022/radio/radio.property.mjs +3 -53
- package/esm2022/rate/rate.property.mjs +3 -58
- package/esm2022/select/select-portal.component.mjs +17 -10
- package/esm2022/select/select.component.mjs +23 -5
- package/esm2022/select/select.property.mjs +2 -2
- package/esm2022/slider-select/slider-select.property.mjs +3 -58
- package/esm2022/switch/switch.property.mjs +3 -58
- package/esm2022/table/table-body.component.mjs +5 -4
- package/esm2022/table/table.component.mjs +3 -3
- package/esm2022/table/table.property.mjs +14 -4
- package/esm2022/textarea/textarea.property.mjs +3 -38
- package/esm2022/time-picker/time-picker-portal.component.mjs +17 -6
- package/esm2022/time-picker/time-picker.component.mjs +3 -3
- package/esm2022/time-picker/time-picker.property.mjs +3 -3
- package/esm2022/transfer/transfer.component.mjs +3 -3
- package/esm2022/tree/tree-node.component.mjs +10 -2
- package/esm2022/tree/tree.component.mjs +11 -9
- package/esm2022/tree/tree.property.mjs +1 -1
- package/esm2022/tree/tree.service.mjs +28 -4
- package/esm2022/tree-select/tree-select-portal.component.mjs +17 -6
- package/esm2022/tree-select/tree-select.component.mjs +20 -4
- package/fesm2022/ng-nest-ui-alert.mjs +12 -9
- package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-auto-complete.mjs +21 -11
- package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-back-top.mjs +3 -1
- package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-cascade.mjs +24 -13
- package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-checkbox.mjs +2 -42
- package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-color-picker.mjs +20 -13
- package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-core.mjs +23 -1
- package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-date-picker.mjs +36 -29
- package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-dialog.mjs +22 -17
- package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-dropdown.mjs +19 -10
- package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-find.mjs +20 -63
- package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-form.mjs +2 -2
- package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-highlight.mjs +2 -2
- package/fesm2022/ng-nest-ui-highlight.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-icon.mjs +1 -1
- package/fesm2022/ng-nest-ui-icon.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-image.mjs +2 -2
- package/fesm2022/ng-nest-ui-image.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-input-number.mjs +4 -24
- package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-input.mjs +2 -2
- package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-loading.mjs +6 -6
- package/fesm2022/ng-nest-ui-loading.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-radio.mjs +2 -52
- package/fesm2022/ng-nest-ui-radio.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-rate.mjs +2 -57
- package/fesm2022/ng-nest-ui-rate.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-select.mjs +39 -14
- package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-slider-select.mjs +2 -57
- package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-switch.mjs +2 -57
- package/fesm2022/ng-nest-ui-switch.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-table.mjs +19 -8
- package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-textarea.mjs +2 -37
- package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-time-picker.mjs +20 -9
- package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-transfer.mjs +2 -2
- package/fesm2022/ng-nest-ui-transfer.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree-select.mjs +35 -8
- package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree.mjs +46 -12
- package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
- package/find/find.component.d.ts +2 -0
- package/find/find.property.d.ts +20 -97
- package/form/form.property.d.ts +13 -6
- package/input-number/input-number.property.d.ts +4 -56
- package/loading/loading.property.d.ts +4 -4
- package/package.json +124 -124
- package/radio/radio.property.d.ts +10 -118
- package/rate/rate.property.d.ts +16 -121
- package/select/select-portal.component.d.ts +6 -9
- package/select/select.component.d.ts +5 -1
- package/slider-select/slider-select.property.d.ts +6 -113
- package/switch/switch.property.d.ts +2 -117
- package/table/table-body.component.d.ts +1 -1
- package/table/table.property.d.ts +13 -3
- package/textarea/textarea.property.d.ts +10 -45
- package/time-picker/time-picker-portal.component.d.ts +5 -6
- package/time-picker/time-picker.property.d.ts +1 -2
- package/tree/tree.component.d.ts +2 -3
- package/tree/tree.property.d.ts +1 -1
- package/tree/tree.service.d.ts +1 -1
- package/tree-select/tree-select-portal.component.d.ts +5 -6
- package/tree-select/tree-select.component.d.ts +7 -4
|
@@ -114,6 +114,20 @@ export function XGetChildren(nodes, node, level) {
|
|
|
114
114
|
node.children.map((y) => XGetChildren(nodes, y, level + 1));
|
|
115
115
|
return node;
|
|
116
116
|
}
|
|
117
|
+
/**
|
|
118
|
+
* @zh_CN 递归检查并设置节点是否具有子节点
|
|
119
|
+
* @en_US Recursively checks and sets whether nodes have children
|
|
120
|
+
*/
|
|
121
|
+
export function XHasChildren(nodes, level) {
|
|
122
|
+
for (let node of nodes) {
|
|
123
|
+
node.level = level;
|
|
124
|
+
node.leaf = node.children && node.children.length > 0;
|
|
125
|
+
if (node.leaf) {
|
|
126
|
+
XHasChildren(node.children, level + 1);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return nodes;
|
|
130
|
+
}
|
|
117
131
|
/**
|
|
118
132
|
* @zh_CN 将对象键值对反转
|
|
119
133
|
* @en_US Reversal the key value of the object
|
|
@@ -213,4 +227,4 @@ export function XDataConvert() {
|
|
|
213
227
|
export function XClamp(value, min, max) {
|
|
214
228
|
return Math.max(min, Math.min(max, value));
|
|
215
229
|
}
|
|
216
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2NvcmUvZnVuY3Rpb25zL2NvbnZlcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUNMLE9BQU8sRUFDUCxZQUFZLEVBQ1osUUFBUSxFQUNSLFFBQVEsRUFDUixTQUFTLEVBQ1QsYUFBYSxFQUNiLFdBQVcsRUFDWCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBcUIsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQWtCLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdsRjs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsVUFBVSxDQUFDLEtBQWU7SUFDeEMsT0FBTyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNqQyxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEtBQWM7SUFDN0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDckQsT0FBTyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM1QyxDQUFDO1NBQU0sQ0FBQztRQUNOLE9BQU8sbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLEtBQWM7SUFDdEMsT0FBTyxHQUFHLEtBQUssRUFBRSxDQUFDO0FBQ3BCLENBQUM7QUFRRCxNQUFNLFVBQVUsU0FBUyxDQUFDLEtBQWMs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b3J0IHsgY29lcmNlQ3NzUGl4ZWxWYWx1ZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XHJcbmltcG9ydCB7XHJcbiAgWElzTnVsbCxcclxuICBYSXNVbmRlZmluZWQsXHJcbiAgWElzQXJyYXksXHJcbiAgWElzVmFsdWUsXHJcbiAgWElzT2JqZWN0LFxyXG4gIFhJc09ic2VydmFibGUsXHJcbiAgWElzRnVuY3Rpb24sXHJcbiAgWElzTnVtYmVyXHJcbn0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIE9ic2VydmVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBXcml0YWJsZVNpZ25hbCwgYm9vbGVhbkF0dHJpYnV0ZSwgbnVtYmVyQXR0cmlidXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB0eXBlIHsgWERhdGEsIFhQYXJlbnRJZGVudGl0eVByb3BlcnR5LCBYQm9vbGVhbiwgWENsYXNzTWFwLCBYTnVtYmVyLCBYRGF0YUFycmF5IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcblxyXG4vKipcclxuICogQHpoX0NOIOi9rOaNoiB2YWx1ZSDkuLogYm9vbGVhbiDlgLxcclxuICogQGVuX1VTIENvbnZlcnQgdGhlIHZhbHVlIHRvIGJvb2xlYW4gdmFsdWVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBYVG9Cb29sZWFuKHZhbHVlOiBYQm9vbGVhbik6IGJvb2xlYW4ge1xyXG4gIHJldHVybiBib29sZWFuQXR0cmlidXRlKHZhbHVlKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDovazmjaIgdmFsdWUg5Li65YOP57Sg5YC8XHJcbiAqIEBlbl9VUyBDb252ZXJ0IHRoZSB2YWx1ZSB0byBwaXhlbHNcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBYVG9Dc3NQaXhlbFZhbHVlKHZhbHVlOiBYTnVtYmVyKTogc3RyaW5nIHtcclxuICBpZiAoIVhJc051bWJlcih2YWx1ZSkgJiYgL15cXGQrKFxcLlxcZCspPyQvLnRlc3QodmFsdWUpKSB7XHJcbiAgICByZXR1cm4gY29lcmNlQ3NzUGl4ZWxWYWx1ZShOdW1iZXIodmFsdWUpKTtcclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIGNvZXJjZUNzc1BpeGVsVmFsdWUodmFsdWUpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFhUb1N0cmluZyh2YWx1ZTogWE51bWJlcik6IHN0cmluZyB7XHJcbiAgcmV0dXJuIGAke3ZhbHVlfWA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g6L2s5o2iIHZhbHVlIOS4uiBudW1iZXIg5YC8XHJcbiAqIEBlbl9VUyBDb252ZXJ0IHRoZSB2YWx1ZSB0byBOdW1iZXIgdmFsdWVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBYVG9OdW1iZXIodmFsdWU6IFhOdW1iZXIpOiBudW1iZXI7XHJcbmV4cG9ydCBmdW5jdGlvbiBYVG9OdW1iZXI8RD4odmFsdWU6IFhOdW1iZXIsIGZhbGxiYWNrOiBEKTogbnVtYmVyIHwgRDtcclxuZXhwb3J0IGZ1bmN0aW9uIFhUb051bWJlcih2YWx1ZTogWE51bWJlciwgZmFsbGJhY2tWYWx1ZT86IG51bWJlcik6IG51bWJlciB7XHJcbiAgcmV0dXJuIG51bWJlckF0dHJpYnV0ZSh2YWx1ZSwgZmFsbGJhY2tWYWx1ZSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g6L2s5o2iIHZhbHVlIOS4uuaMh+WumueahCBsaXN0IOaVsOaNriBbeyBsYWJlbDogYW55OyBpZDogYW55IH0sIC4uLi5dXHJcbiAqIEBlbl9VUyBDb252ZXJ0IHZhbHVlIGFzIHRoZSBzcGVjaWZpZWQgbGlzdCBkYXRhIFt7IGxhYmVsOiBhbnk7IGlkOiBhbnkgfSwgLi4uLl1cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBYVG9EYXRhQ29udmVydDxUPih2YWx1ZTogWERhdGE8VD4pOiBYRGF0YTxUPiB7XHJcbiAgaWYgKFhJc0FycmF5KHZhbHVlKSkge1xyXG4gICAgcmV0dXJuICh2YWx1ZSBhcyBbXSkubWFwKCh4OiBhbnkpID0+IHtcclxuICAgICAgaWYgKFhJc1ZhbHVlKHgpKSB7XHJcbiAgICAgICAgcmV0dXJuIHsgbGFiZWw6IHgsIGlkOiB4IH07XHJcbiAgICAgIH0gZWxzZSBpZiAoWElzT2JqZWN0PHsgbGFiZWw6IGFueTsgaWQ6IGFueSB9Pih4KSkge1xyXG4gICAgICAgIHgubGFiZWwgPSBYSXNVbmRlZmluZWQoeC5sYWJlbCkgfHwgWElzTnVsbCh4LmxhYmVsKSA/IHguaWQgOiB4LmxhYmVsO1xyXG4gICAgICAgIHguaWQgPSBYSXNVbmRlZmluZWQoeC5pZCkgfHwgWElzTnVsbCh4LmlkKSA/IHgubGFiZWwgOiB4LmlkO1xyXG4gICAgICAgIHJldHVybiB4O1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB4O1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHJldHVybiB2YWx1ZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDovazmjaIgdmFsdWUg5Li65oyH5a6a55qEIGxpc3Qg5pWw5o2uIFt7IGxhYmVsOiBhbnk7IGlkOiBhbnkgfSwgLi4uLl1cclxuICogQGVuX1VTIENvbnZlcnQgdmFsdWUgYXMgdGhlIHNwZWNpZmllZCBsaXN0IGRhdGEgW3sgbGFiZWw6IGFueTsgaWQ6IGFueSB9LCAuLi4uXVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIFhUb0RhdGFBcnJheTxUPih2YWx1ZTogWERhdGFBcnJheTxUPik6IFRbXSB7XHJcbiAgaWYgKFhJc0FycmF5KHZhbHVlKSkge1xyXG4gICAgcmV0dXJuIHZhbHVlLm1hcCgoeDogYW55KSA9PiB7XHJcbiAgICAgIGlmIChYSXNWYWx1ZSh4KSkge1xyXG4gICAgICAgIHJldHVybiB7IGxhYmVsOiB4LCBpZDogeCB9O1xyXG4gICAgICB9IGVsc2UgaWYgKFhJc09iamVjdDx7IGxhYmVsOiBhbnk7IGlkOiBhbnkgfT4oeCkpIHtcclxuICAgICAgICB4LmxhYmVsID0gWElzVW5kZWZpbmVkKHgubGFiZWwpIHx8IFhJc051bGwoeC5sYWJlbCkgPyB4LmlkIDogeC5sYWJlbDtcclxuICAgICAgICB4LmlkID0gWElzVW5kZWZpbmVkKHguaWQpIHx8IFhJc051bGwoeC5pZCkgPyB4LmxhYmVsIDogeC5pZDtcclxuICAgICAgICByZXR1cm4geDtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4geDtcclxuICAgIH0pO1xyXG4gIH1cclxuICByZXR1cm4gW3sgbGFiZWw6IHZhbHVlLCBpZDogdmFsdWUgfSBhcyBUXTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDmoLnmja4gZGF0YSDnmoTnsbvlnovojrflj5blrp7pmYXnmoTmlbDmja5cclxuICogQGVuX1VTIE9idGFpbiBhY3R1YWwgZGF0YSBiYXNlZCBvbiB0aGUgdHlwZSBvZiBkYXRhXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gWFNldERhdGE8VD4oXHJcbiAgZGF0YTogWERhdGE8VD4sXHJcbiAgdW5TdWJqZWN0OiBTdWJqZWN0PHZvaWQ+LFxyXG4gIHRvQ29udmVydCA9IHRydWUsXHJcbiAgZnVuY1BhcmFtOiBhbnkgPSBudWxsXHJcbik6IE9ic2VydmFibGU8VFtdPiB7XHJcbiAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKCh4OiBPYnNlcnZlcjxUW10+KSA9PiB7XHJcbiAgICBjb25zdCByZXN1bHQgPSAocmVzOiBUW10pID0+IHtcclxuICAgICAgeC5uZXh0KHJlcyk7XHJcbiAgICAgIHguY29tcGxldGUoKTtcclxuICAgIH07XHJcbiAgICBpZiAodHlwZW9mIGRhdGEgPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgIHJlc3VsdChbXSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoWElzT2JzZXJ2YWJsZShkYXRhKSkge1xyXG4gICAgICAgIChkYXRhIGFzIE9ic2VydmFibGU8VFtdPilcclxuICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICBtYXAoKHkpID0+ICh0b0NvbnZlcnQgPyBYVG9EYXRhQ29udmVydCh5KSA6IHkpKSxcclxuICAgICAgICAgICAgdGFrZVVudGlsKHVuU3ViamVjdClcclxuICAgICAgICAgIClcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKHkpID0+IHtcclxuICAgICAgICAgICAgcmVzdWx0KHkgYXMgVFtdKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKFhJc0Z1bmN0aW9uKGRhdGEpKSB7XHJcbiAgICAgICAgKGRhdGEgYXMgKHBhcmFtOiBhbnkpID0+IE9ic2VydmFibGU8VFtdPikoZnVuY1BhcmFtKVxyXG4gICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCgoeSkgPT4gKHRvQ29udmVydCA/IFhUb0RhdGFDb252ZXJ0KHkpIDogeSkpLFxyXG4gICAgICAgICAgICB0YWtlVW50aWwodW5TdWJqZWN0KVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgICAgLnN1YnNjcmliZSgoeSkgPT4ge1xyXG4gICAgICAgICAgICByZXN1bHQoeSBhcyBUW10pO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmVzdWx0KCh0b0NvbnZlcnQgPyBYVG9EYXRhQ29udmVydChkYXRhKSA6IGRhdGEpIGFzIFRbXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9KS5waXBlKHRha2VVbnRpbCh1blN1YmplY3QpKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDmoLnmja4gaWTjgIFwaWQg6I635Y+W5a2Q6IqC54K5XHJcbiAqIEBlbl9VUyBPYnRhaW4gc3ViLW5vZGVzIGJhc2VkIG9uIElEIGFuZCBQSURcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBYR2V0Q2hpbGRyZW48VCBleHRlbmRzIFhQYXJlbnRJZGVudGl0eVByb3BlcnR5PFQ+Pihub2RlczogVFtdLCBub2RlOiBULCBsZXZlbDogbnVtYmVyKTogVCB7XHJcbiAgbm9kZS5sZXZlbCA9IGxldmVsO1xyXG4gIG5vZGUuY2hpbGRyZW4gPSBub2Rlcy5maWx0ZXIoKHkpID0+IHkucGlkID09PSBub2RlLmlkKTtcclxuICBub2RlLmxlYWYgPSBub2RlLmNoaWxkcmVuPy5sZW5ndGggPiAwO1xyXG4gIGlmIChub2RlLmxlYWYpIG5vZGUuY2hpbGRyZW4ubWFwKCh5KSA9PiBYR2V0Q2hpbGRyZW4obm9kZXMsIHksIGxldmVsICsgMSkpO1xyXG4gIHJldHVybiBub2RlO1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIOWwhuWvueixoemUruWAvOWvueWPjei9rFxyXG4gKiBAZW5fVVMgUmV2ZXJzYWwgdGhlIGtleSB2YWx1ZSBvZiB0aGUgb2JqZWN0XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gWEludmVydEtleVZhbHVlcyhvYmo6IGFueSk6IE1hcDxhbnksIGFueT4ge1xyXG4gIHJldHVybiBPYmplY3Qua2V5cyhvYmopLnJlZHVjZSgobncsIGtleSkgPT4ge1xyXG4gICAgbncuc2V0KG9ialtrZXldLCBrZXkpO1xyXG4gICAgcmV0dXJuIG53O1xyXG4gIH0sIG5ldyBNYXAoKSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g6K6+572u5qC35byP5ZCN56ew5Li6IGZhbHNlXHJcbiAqIEBlbl9VUyBTZXQgc3R5bGUgbmFtZSBpcyBmYWxzZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIFhDbGVhckNsYXNzKC4uLmNsYXNzTWFwczogWENsYXNzTWFwW10pOiB2b2lkIHtcclxuICBjbGFzc01hcHMuZm9yRWFjaCgoY2xhc3NNYXApID0+IHtcclxuICAgIGZvciAoY29uc3Qga2V5IGluIGNsYXNzTWFwKSB7XHJcbiAgICAgIGNsYXNzTWFwW2tleV0gPSBmYWxzZTtcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDorr7nva7moLflvI/lkI3np7DkuLogZmFsc2VcclxuICogQGVuX1VTIFNldCBzdHlsZSBuYW1lIGlzIGZhbHNlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gWENsZWFyQ2xhc3NTaWduYWwoLi4uY2xhc3NNYXBzOiBXcml0YWJsZVNpZ25hbDxYQ2xhc3NNYXA+W10pOiB2b2lkIHtcclxuICBjbGFzc01hcHMuZm9yRWFjaCgoY2xhc3NNYXApID0+IHtcclxuICAgIGNvbnN0IHZhbHVlID0gY2xhc3NNYXAoKTtcclxuICAgIGZvciAoY29uc3Qga2V5IGluIHZhbHVlKSB7XHJcbiAgICAgIHZhbHVlW2tleV0gPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGNsYXNzTWFwLnNldCh2YWx1ZSk7XHJcbiAgfSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5bGe5oCn6KOF6aWw5Zmo6L+U5Zue57G75Z6LXHJcbiAqIEBlbl9VUyBBdHRyaWJ1dGUgZGVjb3JhdG9yIHJldHVybiB0eXBlXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBYUHJvcERlY29yYXRvciA9ICh0YXJnZXQ6IGFueSwgcHJvcE5hbWU6IHN0cmluZykgPT4gdm9pZDtcclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5Yib5bu65bGe5oCn6KOF6aWw5Zmo55qE5bel5Y6C5Ye95pWwXHJcbiAqIEBlbl9VUyBGYWN0b3J5IGZ1bmN0aW9ucyB0aGF0IGNyZWF0ZSBhdHRyaWJ1dGUgZGVjb3JhdG9yc1xyXG4gKi9cclxuZnVuY3Rpb24gcHJvcERlY29yYXRvckZhY3Rvcnk8VCwgRD4obmFtZTogc3RyaW5nLCBmYWxsYmFjazogKHY6IFQpID0+IEQpOiBYUHJvcERlY29yYXRvciB7XHJcbiAgZnVuY3Rpb24gcHJvcERlY29yYXRvcih0YXJnZXQ6IGFueSwgcHJvcE5hbWU6IHN0cmluZywgb3JpZ2luYWxEZXNjcmlwdG9yPzogVHlwZWRQcm9wZXJ0eURlc2NyaXB0b3I8YW55Pik6IGFueSB7XHJcbiAgICBjb25zdCBwcml2YXRlUHJvcE5hbWUgPSBgJCRfXyR7cHJvcE5hbWV9YDtcclxuXHJcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRhcmdldCwgcHJpdmF0ZVByb3BOYW1lKSkge1xyXG4gICAgICBjb25zb2xlLndhcm4oYFRoZSBwcm9wIFwiJHtwcml2YXRlUHJvcE5hbWV9XCIgaXMgYWxyZWFkeSBleGlzdCwgaXQgd2lsbCBiZSBvdmVycmlkZWQgYnkgJHtuYW1lfSBkZWNvcmF0b3IuYCk7XHJcbiAgICB9XHJcblxyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgcHJpdmF0ZVByb3BOYW1lLCB7XHJcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcclxuICAgICAgd3JpdGFibGU6IHRydWVcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGdldCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBvcmlnaW5hbERlc2NyaXB0b3IgJiYgb3JpZ2luYWxEZXNjcmlwdG9yLmdldFxyXG4gICAgICAgICAgPyBvcmlnaW5hbERlc2NyaXB0b3IuZ2V0LmJpbmQodGhpcykoKVxyXG4gICAgICAgICAgOiB0aGlzW3ByaXZhdGVQcm9wTmFtZV07XHJcbiAgICAgIH0sXHJcbiAgICAgIHNldCh2YWx1ZTogVCk6IHZvaWQge1xyXG4gICAgICAgIGlmIChvcmlnaW5hbERlc2NyaXB0b3IgJiYgb3JpZ2luYWxEZXNjcmlwdG9yLnNldCkge1xyXG4gICAgICAgICAgb3JpZ2luYWxEZXNjcmlwdG9yLnNldC5iaW5kKHRoaXMpKGZhbGxiYWNrKHZhbHVlKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXNbcHJpdmF0ZVByb3BOYW1lXSA9IGZhbGxiYWNrKHZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHJldHVybiBwcm9wRGVjb3JhdG9yO1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIOWIm+W7uiBYSW5wdXRCb29sZWFuIOWxnuaAp+ijhemlsOWZqFxyXG4gKiBAZW5fVVMgQ3JlYXRlIFhJbnB1dEJvb2xlYW4gUHJvcGVydGllc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIFhJbnB1dEJvb2xlYW4oKTogWFByb3BEZWNvcmF0b3Ige1xyXG4gIHJldHVybiBwcm9wRGVjb3JhdG9yRmFjdG9yeSgnWElucHV0Qm9vbGVhbicsIFhUb0Jvb2xlYW4pO1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIOWIm+W7uiBYSW5wdXROdW1iZXIg5bGe5oCn6KOF6aWw5ZmoXHJcbiAqIEBlbl9VUyBDcmVhdGUgWElucHV0TnVtYmVyIFByb3BlcnRpZXNcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBYSW5wdXROdW1iZXIoKTogWFByb3BEZWNvcmF0b3Ige1xyXG4gIHJldHVybiBwcm9wRGVjb3JhdG9yRmFjdG9yeSgnWElucHV0TnVtYmVyJywgWFRvTnVtYmVyKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDliJvlu7ogWElucHV0TnVtYmVyIOWxnuaAp+ijhemlsOWZqFxyXG4gKiBAZW5fVVMgQ3JlYXRlIFhJbnB1dE51bWJlciBQcm9wZXJ0aWVzXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gWElucHV0Q3NzUGl4ZWxWYWx1ZSgpOiBYUHJvcERlY29yYXRvciB7XHJcbiAgcmV0dXJuIHByb3BEZWNvcmF0b3JGYWN0b3J5KCdYSW5wdXRDc3NQaXhlbFZhbHVlJywgWFRvQ3NzUGl4ZWxWYWx1ZSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5Yib5bu6IFhEYXRhQ29udmVydCDlsZ7mgKfoo4XppbDlmahcclxuICogQGVuX1VTIENyZWF0ZSBYRGF0YUNvbnZlcnQgUHJvcGVydGllc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIFhEYXRhQ29udmVydCgpOiBYUHJvcERlY29yYXRvciB7XHJcbiAgcmV0dXJuIHByb3BEZWNvcmF0b3JGYWN0b3J5KCdYRGF0YUNvbnZlcnQnLCBYVG9EYXRhQ29udmVydCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g6ZmQ5Yi257uZ5a6a5pWw5YC8IHZhbHVlIOeahOiMg+WbtFxyXG4gKiBAZW5fVVMgTGltaXQgdGhlIHJhbmdlIG9mIHRoZSBnaXZlbiB2YWx1ZSB2YWx1ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIFhDbGFtcCh2YWx1ZTogbnVtYmVyLCBtaW46IG51bWJlciwgbWF4OiBudW1iZXIpOiBudW1iZXIge1xyXG4gIHJldHVybiBNYXRoLm1heChtaW4sIE1hdGgubWluKG1heCwgdmFsdWUpKTtcclxufVxyXG4iXX0=
|
|
230
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2NvcmUvZnVuY3Rpb25zL2NvbnZlcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUNMLE9BQU8sRUFDUCxZQUFZLEVBQ1osUUFBUSxFQUNSLFFBQVEsRUFDUixTQUFTLEVBQ1QsYUFBYSxFQUNiLFdBQVcsRUFDWCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBcUIsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQWtCLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdsRjs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsVUFBVSxDQUFDLEtBQWU7SUFDeEMsT0FBTyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNqQyxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEtBQWM7SUFDN0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDckQsT0FBTyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM1QyxDQUFDO1NBQU0sQ0FBQztRQUNOLE9BQU8sbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLEtBQWM7SUFDdEMsT0FBTyxHQUFHLEtBQUssRUFBRSxDQUFDO0FBQ3BCLENBQUM7QUFRRCxNQUFNLFVBQVUsU0FBUyxDQUFDLEtBQWMs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QUFDSCxNQUFNLFVBQVUsbUJBQW1CO0lBQ2pDLE9BQU8sb0JBQW9CLENBQUMscUJBQXFCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztBQUN2RSxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLFlBQVk7SUFDMUIsT0FBTyxvQkFBb0IsQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLENBQUM7QUFDOUQsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxNQUFNLENBQUMsS0FBYSxFQUFFLEdBQVcsRUFBRSxHQUFXO0lBQzVELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUM3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlQ3NzUGl4ZWxWYWx1ZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XHJcbmltcG9ydCB7XHJcbiAgWElzTnVsbCxcclxuICBYSXNVbmRlZmluZWQsXHJcbiAgWElzQXJyYXksXHJcbiAgWElzVmFsdWUsXHJcbiAgWElzT2JqZWN0LFxyXG4gIFhJc09ic2VydmFibGUsXHJcbiAgWElzRnVuY3Rpb24sXHJcbiAgWElzTnVtYmVyXHJcbn0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIE9ic2VydmVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBXcml0YWJsZVNpZ25hbCwgYm9vbGVhbkF0dHJpYnV0ZSwgbnVtYmVyQXR0cmlidXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB0eXBlIHsgWERhdGEsIFhQYXJlbnRJZGVudGl0eVByb3BlcnR5LCBYQm9vbGVhbiwgWENsYXNzTWFwLCBYTnVtYmVyLCBYRGF0YUFycmF5IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcblxyXG4vKipcclxuICogQHpoX0NOIOi9rOaNoiB2YWx1ZSDkuLogYm9vbGVhbiDlgLxcclxuICogQGVuX1VTIENvbnZlcnQgdGhlIHZhbHVlIHRvIGJvb2xlYW4gdmFsdWVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBYVG9Cb29sZWFuKHZhbHVlOiBYQm9vbGVhbik6IGJvb2xlYW4ge1xyXG4gIHJldHVybiBib29sZWFuQXR0cmlidXRlKHZhbHVlKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDovazmjaIgdmFsdWUg5Li65YOP57Sg5YC8XHJcbiAqIEBlbl9VUyBDb252ZXJ0IHRoZSB2YWx1ZSB0byBwaXhlbHNcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBYVG9Dc3NQaXhlbFZhbHVlKHZhbHVlOiBYTnVtYmVyKTogc3RyaW5nIHtcclxuICBpZiAoIVhJc051bWJlcih2YWx1ZSkgJiYgL15cXGQrKFxcLlxcZCspPyQvLnRlc3QodmFsdWUpKSB7XHJcbiAgICByZXR1cm4gY29lcmNlQ3NzUGl4ZWxWYWx1ZShOdW1iZXIodmFsdWUpKTtcclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIGNvZXJjZUNzc1BpeGVsVmFsdWUodmFsdWUpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFhUb1N0cmluZyh2YWx1ZTogWE51bWJlcik6IHN0cmluZyB7XHJcbiAgcmV0dXJuIGAke3ZhbHVlfWA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g6L2s5o2iIHZhbHVlIOS4uiBudW1iZXIg5YC8XHJcbiAqIEBlbl9VUyBDb252ZXJ0IHRoZSB2YWx1ZSB0byBOdW1iZXIgdmFsdWVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBYVG9OdW1iZXIodmFsdWU6IFhOdW1iZXIpOiBudW1iZXI7XHJcbmV4cG9ydCBmdW5jdGlvbiBYVG9OdW1iZXI8RD4odmFsdWU6IFhOdW1iZXIsIGZhbGxiYWNrOiBEKTogbnVtYmVyIHwgRDtcclxuZXhwb3J0IGZ1bmN0aW9uIFhUb051bWJlcih2YWx1ZTogWE51bWJlciwgZmFsbGJhY2tWYWx1ZT86IG51bWJlcik6IG51bWJlciB7XHJcbiAgcmV0dXJuIG51bWJlckF0dHJpYnV0ZSh2YWx1ZSwgZmFsbGJhY2tWYWx1ZSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g6L2s5o2iIHZhbHVlIOS4uuaMh+WumueahCBsaXN0IOaVsOaNriBbeyBsYWJlbDogYW55OyBpZDogYW55IH0sIC4uLi5dXHJcbiAqIEBlbl9VUyBDb252ZXJ0IHZhbHVlIGFzIHRoZSBzcGVjaWZpZWQgbGlzdCBkYXRhIFt7IGxhYmVsOiBhbnk7IGlkOiBhbnkgfSwgLi4uLl1cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBYVG9EYXRhQ29udmVydDxUPih2YWx1ZTogWERhdGE8VD4pOiBYRGF0YTxUPiB7XHJcbiAgaWYgKFhJc0FycmF5KHZhbHVlKSkge1xyXG4gICAgcmV0dXJuICh2YWx1ZSBhcyBbXSkubWFwKCh4OiBhbnkpID0+IHtcclxuICAgICAgaWYgKFhJc1ZhbHVlKHgpKSB7XHJcbiAgICAgICAgcmV0dXJuIHsgbGFiZWw6IHgsIGlkOiB4IH07XHJcbiAgICAgIH0gZWxzZSBpZiAoWElzT2JqZWN0PHsgbGFiZWw6IGFueTsgaWQ6IGFueSB9Pih4KSkge1xyXG4gICAgICAgIHgubGFiZWwgPSBYSXNVbmRlZmluZWQoeC5sYWJlbCkgfHwgWElzTnVsbCh4LmxhYmVsKSA/IHguaWQgOiB4LmxhYmVsO1xyXG4gICAgICAgIHguaWQgPSBYSXNVbmRlZmluZWQoeC5pZCkgfHwgWElzTnVsbCh4LmlkKSA/IHgubGFiZWwgOiB4LmlkO1xyXG4gICAgICAgIHJldHVybiB4O1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB4O1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHJldHVybiB2YWx1ZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDovazmjaIgdmFsdWUg5Li65oyH5a6a55qEIGxpc3Qg5pWw5o2uIFt7IGxhYmVsOiBhbnk7IGlkOiBhbnkgfSwgLi4uLl1cclxuICogQGVuX1VTIENvbnZlcnQgdmFsdWUgYXMgdGhlIHNwZWNpZmllZCBsaXN0IGRhdGEgW3sgbGFiZWw6IGFueTsgaWQ6IGFueSB9LCAuLi4uXVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIFhUb0RhdGFBcnJheTxUPih2YWx1ZTogWERhdGFBcnJheTxUPik6IFRbXSB7XHJcbiAgaWYgKFhJc0FycmF5KHZhbHVlKSkge1xyXG4gICAgcmV0dXJuIHZhbHVlLm1hcCgoeDogYW55KSA9PiB7XHJcbiAgICAgIGlmIChYSXNWYWx1ZSh4KSkge1xyXG4gICAgICAgIHJldHVybiB7IGxhYmVsOiB4LCBpZDogeCB9O1xyXG4gICAgICB9IGVsc2UgaWYgKFhJc09iamVjdDx7IGxhYmVsOiBhbnk7IGlkOiBhbnkgfT4oeCkpIHtcclxuICAgICAgICB4LmxhYmVsID0gWElzVW5kZWZpbmVkKHgubGFiZWwpIHx8IFhJc051bGwoeC5sYWJlbCkgPyB4LmlkIDogeC5sYWJlbDtcclxuICAgICAgICB4LmlkID0gWElzVW5kZWZpbmVkKHguaWQpIHx8IFhJc051bGwoeC5pZCkgPyB4LmxhYmVsIDogeC5pZDtcclxuICAgICAgICByZXR1cm4geDtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4geDtcclxuICAgIH0pO1xyXG4gIH1cclxuICByZXR1cm4gW3sgbGFiZWw6IHZhbHVlLCBpZDogdmFsdWUgfSBhcyBUXTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDmoLnmja4gZGF0YSDnmoTnsbvlnovojrflj5blrp7pmYXnmoTmlbDmja5cclxuICogQGVuX1VTIE9idGFpbiBhY3R1YWwgZGF0YSBiYXNlZCBvbiB0aGUgdHlwZSBvZiBkYXRhXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gWFNldERhdGE8VD4oXHJcbiAgZGF0YTogWERhdGE8VD4sXHJcbiAgdW5TdWJqZWN0OiBTdWJqZWN0PHZvaWQ+LFxyXG4gIHRvQ29udmVydCA9IHRydWUsXHJcbiAgZnVuY1BhcmFtOiBhbnkgPSBudWxsXHJcbik6IE9ic2VydmFibGU8VFtdPiB7XHJcbiAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKCh4OiBPYnNlcnZlcjxUW10+KSA9PiB7XHJcbiAgICBjb25zdCByZXN1bHQgPSAocmVzOiBUW10pID0+IHtcclxuICAgICAgeC5uZXh0KHJlcyk7XHJcbiAgICAgIHguY29tcGxldGUoKTtcclxuICAgIH07XHJcbiAgICBpZiAodHlwZW9mIGRhdGEgPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgIHJlc3VsdChbXSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoWElzT2JzZXJ2YWJsZShkYXRhKSkge1xyXG4gICAgICAgIChkYXRhIGFzIE9ic2VydmFibGU8VFtdPilcclxuICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICBtYXAoKHkpID0+ICh0b0NvbnZlcnQgPyBYVG9EYXRhQ29udmVydCh5KSA6IHkpKSxcclxuICAgICAgICAgICAgdGFrZVVudGlsKHVuU3ViamVjdClcclxuICAgICAgICAgIClcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKHkpID0+IHtcclxuICAgICAgICAgICAgcmVzdWx0KHkgYXMgVFtdKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKFhJc0Z1bmN0aW9uKGRhdGEpKSB7XHJcbiAgICAgICAgKGRhdGEgYXMgKHBhcmFtOiBhbnkpID0+IE9ic2VydmFibGU8VFtdPikoZnVuY1BhcmFtKVxyXG4gICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCgoeSkgPT4gKHRvQ29udmVydCA/IFhUb0RhdGFDb252ZXJ0KHkpIDogeSkpLFxyXG4gICAgICAgICAgICB0YWtlVW50aWwodW5TdWJqZWN0KVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgICAgLnN1YnNjcmliZSgoeSkgPT4ge1xyXG4gICAgICAgICAgICByZXN1bHQoeSBhcyBUW10pO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmVzdWx0KCh0b0NvbnZlcnQgPyBYVG9EYXRhQ29udmVydChkYXRhKSA6IGRhdGEpIGFzIFRbXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9KS5waXBlKHRha2VVbnRpbCh1blN1YmplY3QpKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDmoLnmja4gaWTjgIFwaWQg6I635Y+W5a2Q6IqC54K5XHJcbiAqIEBlbl9VUyBPYnRhaW4gc3ViLW5vZGVzIGJhc2VkIG9uIElEIGFuZCBQSURcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBYR2V0Q2hpbGRyZW48VCBleHRlbmRzIFhQYXJlbnRJZGVudGl0eVByb3BlcnR5PFQ+Pihub2RlczogVFtdLCBub2RlOiBULCBsZXZlbDogbnVtYmVyKTogVCB7XHJcbiAgbm9kZS5sZXZlbCA9IGxldmVsO1xyXG4gIG5vZGUuY2hpbGRyZW4gPSBub2Rlcy5maWx0ZXIoKHkpID0+IHkucGlkID09PSBub2RlLmlkKTtcclxuICBub2RlLmxlYWYgPSBub2RlLmNoaWxkcmVuPy5sZW5ndGggPiAwO1xyXG4gIGlmIChub2RlLmxlYWYpIG5vZGUuY2hpbGRyZW4ubWFwKCh5KSA9PiBYR2V0Q2hpbGRyZW4obm9kZXMsIHksIGxldmVsICsgMSkpO1xyXG4gIHJldHVybiBub2RlO1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIOmAkuW9kuajgOafpeW5tuiuvue9ruiKgueCueaYr+WQpuWFt+acieWtkOiKgueCuVxyXG4gKiBAZW5fVVMgUmVjdXJzaXZlbHkgY2hlY2tzIGFuZCBzZXRzIHdoZXRoZXIgbm9kZXMgaGF2ZSBjaGlsZHJlblxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIFhIYXNDaGlsZHJlbjxUIGV4dGVuZHMgWFBhcmVudElkZW50aXR5UHJvcGVydHk8VD4+KG5vZGVzOiBUW10sIGxldmVsOiBudW1iZXIpOiBUW10ge1xyXG4gIGZvciAobGV0IG5vZGUgb2Ygbm9kZXMpIHtcclxuICAgIG5vZGUubGV2ZWwgPSBsZXZlbDtcclxuICAgIG5vZGUubGVhZiA9IG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwO1xyXG4gICAgaWYgKG5vZGUubGVhZikge1xyXG4gICAgICBYSGFzQ2hpbGRyZW4obm9kZS5jaGlsZHJlbiEsIGxldmVsICsgMSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gbm9kZXM7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5bCG5a+56LGh6ZSu5YC85a+55Y+N6L2sXHJcbiAqIEBlbl9VUyBSZXZlcnNhbCB0aGUga2V5IHZhbHVlIG9mIHRoZSBvYmplY3RcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBYSW52ZXJ0S2V5VmFsdWVzKG9iajogYW55KTogTWFwPGFueSwgYW55PiB7XHJcbiAgcmV0dXJuIE9iamVjdC5rZXlzKG9iaikucmVkdWNlKChudywga2V5KSA9PiB7XHJcbiAgICBudy5zZXQob2JqW2tleV0sIGtleSk7XHJcbiAgICByZXR1cm4gbnc7XHJcbiAgfSwgbmV3IE1hcCgpKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDorr7nva7moLflvI/lkI3np7DkuLogZmFsc2VcclxuICogQGVuX1VTIFNldCBzdHlsZSBuYW1lIGlzIGZhbHNlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gWENsZWFyQ2xhc3MoLi4uY2xhc3NNYXBzOiBYQ2xhc3NNYXBbXSk6IHZvaWQge1xyXG4gIGNsYXNzTWFwcy5mb3JFYWNoKChjbGFzc01hcCkgPT4ge1xyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gY2xhc3NNYXApIHtcclxuICAgICAgY2xhc3NNYXBba2V5XSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIOiuvue9ruagt+W8j+WQjeensOS4uiBmYWxzZVxyXG4gKiBAZW5fVVMgU2V0IHN0eWxlIG5hbWUgaXMgZmFsc2VcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBYQ2xlYXJDbGFzc1NpZ25hbCguLi5jbGFzc01hcHM6IFdyaXRhYmxlU2lnbmFsPFhDbGFzc01hcD5bXSk6IHZvaWQge1xyXG4gIGNsYXNzTWFwcy5mb3JFYWNoKChjbGFzc01hcCkgPT4ge1xyXG4gICAgY29uc3QgdmFsdWUgPSBjbGFzc01hcCgpO1xyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gdmFsdWUpIHtcclxuICAgICAgdmFsdWVba2V5XSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgY2xhc3NNYXAuc2V0KHZhbHVlKTtcclxuICB9KTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDlsZ7mgKfoo4XppbDlmajov5Tlm57nsbvlnotcclxuICogQGVuX1VTIEF0dHJpYnV0ZSBkZWNvcmF0b3IgcmV0dXJuIHR5cGVcclxuICovXHJcbmV4cG9ydCB0eXBlIFhQcm9wRGVjb3JhdG9yID0gKHRhcmdldDogYW55LCBwcm9wTmFtZTogc3RyaW5nKSA9PiB2b2lkO1xyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDliJvlu7rlsZ7mgKfoo4XppbDlmajnmoTlt6XljoLlh73mlbBcclxuICogQGVuX1VTIEZhY3RvcnkgZnVuY3Rpb25zIHRoYXQgY3JlYXRlIGF0dHJpYnV0ZSBkZWNvcmF0b3JzXHJcbiAqL1xyXG5mdW5jdGlvbiBwcm9wRGVjb3JhdG9yRmFjdG9yeTxULCBEPihuYW1lOiBzdHJpbmcsIGZhbGxiYWNrOiAodjogVCkgPT4gRCk6IFhQcm9wRGVjb3JhdG9yIHtcclxuICBmdW5jdGlvbiBwcm9wRGVjb3JhdG9yKHRhcmdldDogYW55LCBwcm9wTmFtZTogc3RyaW5nLCBvcmlnaW5hbERlc2NyaXB0b3I/OiBUeXBlZFByb3BlcnR5RGVzY3JpcHRvcjxhbnk+KTogYW55IHtcclxuICAgIGNvbnN0IHByaXZhdGVQcm9wTmFtZSA9IGAkJF9fJHtwcm9wTmFtZX1gO1xyXG5cclxuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGFyZ2V0LCBwcml2YXRlUHJvcE5hbWUpKSB7XHJcbiAgICAgIGNvbnNvbGUud2FybihgVGhlIHByb3AgXCIke3ByaXZhdGVQcm9wTmFtZX1cIiBpcyBhbHJlYWR5IGV4aXN0LCBpdCB3aWxsIGJlIG92ZXJyaWRlZCBieSAke25hbWV9IGRlY29yYXRvci5gKTtcclxuICAgIH1cclxuXHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBwcml2YXRlUHJvcE5hbWUsIHtcclxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxyXG4gICAgICB3cml0YWJsZTogdHJ1ZVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZ2V0KCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIG9yaWdpbmFsRGVzY3JpcHRvciAmJiBvcmlnaW5hbERlc2NyaXB0b3IuZ2V0XHJcbiAgICAgICAgICA/IG9yaWdpbmFsRGVzY3JpcHRvci5nZXQuYmluZCh0aGlzKSgpXHJcbiAgICAgICAgICA6IHRoaXNbcHJpdmF0ZVByb3BOYW1lXTtcclxuICAgICAgfSxcclxuICAgICAgc2V0KHZhbHVlOiBUKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKG9yaWdpbmFsRGVzY3JpcHRvciAmJiBvcmlnaW5hbERlc2NyaXB0b3Iuc2V0KSB7XHJcbiAgICAgICAgICBvcmlnaW5hbERlc2NyaXB0b3Iuc2V0LmJpbmQodGhpcykoZmFsbGJhY2sodmFsdWUpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpc1twcml2YXRlUHJvcE5hbWVdID0gZmFsbGJhY2sodmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHByb3BEZWNvcmF0b3I7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5Yib5bu6IFhJbnB1dEJvb2xlYW4g5bGe5oCn6KOF6aWw5ZmoXHJcbiAqIEBlbl9VUyBDcmVhdGUgWElucHV0Qm9vbGVhbiBQcm9wZXJ0aWVzXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gWElucHV0Qm9vbGVhbigpOiBYUHJvcERlY29yYXRvciB7XHJcbiAgcmV0dXJuIHByb3BEZWNvcmF0b3JGYWN0b3J5KCdYSW5wdXRCb29sZWFuJywgWFRvQm9vbGVhbik7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5Yib5bu6IFhJbnB1dE51bWJlciDlsZ7mgKfoo4XppbDlmahcclxuICogQGVuX1VTIENyZWF0ZSBYSW5wdXROdW1iZXIgUHJvcGVydGllc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIFhJbnB1dE51bWJlcigpOiBYUHJvcERlY29yYXRvciB7XHJcbiAgcmV0dXJuIHByb3BEZWNvcmF0b3JGYWN0b3J5KCdYSW5wdXROdW1iZXInLCBYVG9OdW1iZXIpO1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIOWIm+W7uiBYSW5wdXROdW1iZXIg5bGe5oCn6KOF6aWw5ZmoXHJcbiAqIEBlbl9VUyBDcmVhdGUgWElucHV0TnVtYmVyIFByb3BlcnRpZXNcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBYSW5wdXRDc3NQaXhlbFZhbHVlKCk6IFhQcm9wRGVjb3JhdG9yIHtcclxuICByZXR1cm4gcHJvcERlY29yYXRvckZhY3RvcnkoJ1hJbnB1dENzc1BpeGVsVmFsdWUnLCBYVG9Dc3NQaXhlbFZhbHVlKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDliJvlu7ogWERhdGFDb252ZXJ0IOWxnuaAp+ijhemlsOWZqFxyXG4gKiBAZW5fVVMgQ3JlYXRlIFhEYXRhQ29udmVydCBQcm9wZXJ0aWVzXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gWERhdGFDb252ZXJ0KCk6IFhQcm9wRGVjb3JhdG9yIHtcclxuICByZXR1cm4gcHJvcERlY29yYXRvckZhY3RvcnkoJ1hEYXRhQ29udmVydCcsIFhUb0RhdGFDb252ZXJ0KTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDpmZDliLbnu5nlrprmlbDlgLwgdmFsdWUg55qE6IyD5Zu0XHJcbiAqIEBlbl9VUyBMaW1pdCB0aGUgcmFuZ2Ugb2YgdGhlIGdpdmVuIHZhbHVlIHZhbHVlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gWENsYW1wKHZhbHVlOiBudW1iZXIsIG1pbjogbnVtYmVyLCBtYXg6IG51bWJlcik6IG51bWJlciB7XHJcbiAgcmV0dXJuIE1hdGgubWF4KG1pbiwgTWF0aC5taW4obWF4LCB2YWx1ZSkpO1xyXG59XHJcbiJdfQ==
|
|
@@ -7,4 +7,5 @@ export * from './html';
|
|
|
7
7
|
export * from './check';
|
|
8
8
|
export * from './camel-to-kebab';
|
|
9
9
|
export * from './kebab-to-camel';
|
|
10
|
-
|
|
10
|
+
export * from './sleep';
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2NvcmUvdXRpbC9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsT0FBTyxDQUFDO0FBQ3RCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9vcHRpb24nO1xyXG5leHBvcnQgKiBmcm9tICcuL2hvc3QnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xvZyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29tcHV0ZWQtc3R5bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2FuaW1hdGlvbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vaHRtbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY2hlY2snO1xyXG5leHBvcnQgKiBmcm9tICcuL2NhbWVsLXRvLWtlYmFiJztcclxuZXhwb3J0ICogZnJvbSAnLi9rZWJhYi10by1jYW1lbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2xlZXAnO1xyXG4iXX0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @zh_CN 延迟时间
|
|
3
|
+
* @en_US Delayed sleep
|
|
4
|
+
*/
|
|
5
|
+
export function XSleep(time) {
|
|
6
|
+
return new Promise((resolve) => setTimeout(resolve, time));
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xlZXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9jb3JlL3V0aWwvc2xlZXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLE1BQU0sQ0FBQyxJQUFZO0lBQ2pDLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUM3RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEB6aF9DTiDlu7bov5/ml7bpl7RcclxuICogQGVuX1VTIERlbGF5ZWQgc2xlZXBcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBYU2xlZXAodGltZTogbnVtYmVyKSB7XHJcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIHRpbWUpKTtcclxufVxyXG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, HostListener, inject, input, output, viewChild, computed, signal, model } from '@angular/core';
|
|
1
|
+
import { Component, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, HostListener, inject, input, output, viewChild, computed, signal, model, DestroyRef } from '@angular/core';
|
|
2
2
|
import { XDatePickerPortalPrefix } from './date-picker.property';
|
|
3
3
|
import { XIsEmpty, XConnectBaseAnimation, XAddDays, XIsUndefined } from '@ng-nest/ui/core';
|
|
4
4
|
import { map } from 'rxjs/operators';
|
|
@@ -19,6 +19,8 @@ export class XDatePickerPortalComponent {
|
|
|
19
19
|
constructor() {
|
|
20
20
|
this.i18n = inject(XI18nService);
|
|
21
21
|
this._type = signal('date');
|
|
22
|
+
this.destroy = signal(false);
|
|
23
|
+
this.destroyRef = inject(DestroyRef);
|
|
22
24
|
this.timePickerFrame = viewChild('timePickerFrame', { read: XTimePickerFrameComponent });
|
|
23
25
|
this.value = input();
|
|
24
26
|
this.type = model('date');
|
|
@@ -57,11 +59,20 @@ export class XDatePickerPortalComponent {
|
|
|
57
59
|
get getPlacement() {
|
|
58
60
|
return this.placement();
|
|
59
61
|
}
|
|
60
|
-
done(
|
|
61
|
-
|
|
62
|
+
done() {
|
|
63
|
+
if (this.destroy())
|
|
64
|
+
return;
|
|
65
|
+
this.animating.emit(false);
|
|
62
66
|
}
|
|
63
|
-
start(
|
|
64
|
-
|
|
67
|
+
start() {
|
|
68
|
+
if (this.destroy())
|
|
69
|
+
return;
|
|
70
|
+
this.animating.emit(true);
|
|
71
|
+
}
|
|
72
|
+
ngOnInit() {
|
|
73
|
+
this.destroyRef.onDestroy(() => {
|
|
74
|
+
this.destroy.set(true);
|
|
75
|
+
});
|
|
65
76
|
}
|
|
66
77
|
ngAfterViewInit() {
|
|
67
78
|
this.init();
|
|
@@ -182,4 +193,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
|
|
|
182
193
|
type: HostListener,
|
|
183
194
|
args: ['@x-connect-base-animation.start', ['$event']]
|
|
184
195
|
}] } });
|
|
185
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXItcG9ydGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci1wb3J0YWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBRXZCLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEVBQ04sS0FBSyxFQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHTCx1QkFBdUIsRUFHeEIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQ0wsUUFBUSxFQUNSLHFCQUFxQixFQUVyQixRQUFRLEVBRVIsWUFBWSxFQUNiLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFlBQVksRUFBbUIsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFeEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDakUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FB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RSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzVELENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzNELENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQVU7UUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM1QyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUcsQ0FBQyxDQUFDO1FBQy9CLENBQUM7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFDLElBQVU7UUFDdEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM1QyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzlCLENBQUM7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQVU7UUFDbkIsSUFB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QixDQUFDLE1BQU0sY0FDbkMsQ0FBQyxxQkFBcUIsQ0FBQyxhQUN4QixDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUM7OEJBR2lCLFlBQVk7c0JBQWhFLFdBQVc7dUJBQUMsMkJBQTJCO2dCQUdvQixJQUFJO3NCQUEvRCxZQUFZO3VCQUFDLGdDQUFnQyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUdHLEtBQUs7c0JBQWpFLFlBQVk7dUJBQUMsaUNBQWlDLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBpbmplY3QsXHJcbiAgaW5wdXQsXHJcbiAgb3V0cHV0LFxyXG4gIHZpZXdDaGlsZCxcclxuICBjb21wdXRlZCxcclxuICBzaWduYWwsXHJcbiAgbW9kZWxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBYRGF0ZVBpY2tlckRpc2FibGVkRGF0ZSxcclxuICBYRGF0ZVBpY2tlckRpc2FibGVkVGltZSxcclxuICBYRGF0ZVBpY2tlclBvcnRhbFByZWZpeCxcclxuICBYRGF0ZVBpY2tlclByZXNldCxcclxuICBYRGF0ZVBpY2tlclR5cGVcclxufSBmcm9tICcuL2RhdGUtcGlja2VyLnByb3BlcnR5JztcclxuaW1wb3J0IHtcclxuICBYSXNFbXB0eSxcclxuICBYQ29ubmVjdEJhc2VBbmltYXRpb24sXHJcbiAgWFBvc2l0aW9uVG9wQm90dG9tLFxyXG4gIFhBZGREYXlzLFxyXG4gIFhUZW1wbGF0ZSxcclxuICBYSXNVbmRlZmluZWRcclxufSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBEYXRlUGlwZSwgTG93ZXJDYXNlUGlwZSwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFhJMThuU2VydmljZSwgWEkxOG5EYXRlUGlja2VyLCB6aF9DTiB9IGZyb20gJ0BuZy1uZXN0L3VpL2kxOG4nO1xyXG5pbXBvcnQgeyBYSW5wdXRDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9pbnB1dCc7XHJcbmltcG9ydCB7IFhUaW1lUGlja2VyRnJhbWVDb21wb25lbnQsIFhUaW1lUGlja2VyTW9kdWxlIH0gZnJvbSAnQG5nLW5lc3QvdWkvdGltZS1waWNrZXInO1xyXG5pbXBvcnQgeyBYUGlja2VyRGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vcGlja2VyLWRhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWFBpY2tlck1vbnRoQ29tcG9uZW50IH0gZnJvbSAnLi9waWNrZXItbW9udGguY29tcG9uZW50JztcclxuaW1wb3J0IHsgWFBpY2tlclF1YXJ0ZXJDb21wb25lbnQgfSBmcm9tICcuL3BpY2tlci1xdWFydGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFhQaWNrZXJZZWFyQ29tcG9uZW50IH0gZnJvbSAnLi9waWNrZXIteWVhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBYQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvYnV0dG9uJztcclxuaW1wb3J0IHsgWExpbmtDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9saW5rJztcclxuaW1wb3J0IHsgWE91dGxldERpcmVjdGl2ZSB9IGZyb20gJ0BuZy1uZXN0L3VpL291dGxldCc7XHJcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hEYXRlUGlja2VyUG9ydGFsUHJlZml4fWAsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxyXG4gICAgRGF0ZVBpcGUsXHJcbiAgICBYUGlja2VyRGF0ZUNvbXBvbmVudCxcclxuICAgIFhQaWNrZXJNb250aENvbXBvbmVudCxcclxuICAgIFhQaWNrZXJRdWFydGVyQ29tcG9uZW50LFxyXG4gICAgWFBpY2tlclllYXJDb21wb25lbnQsXHJcbiAgICBYVGltZVBpY2tlck1vZHVsZSxcclxuICAgIFhCdXR0b25Db21wb25lbnQsXHJcbiAgICBYTGlua0NvbXBvbmVudCxcclxuICAgIFhPdXRsZXREaXJlY3RpdmVcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXBpY2tlci1wb3J0YWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RhdGUtcGlja2VyLXBvcnRhbC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgYW5pbWF0aW9uczogW1hDb25uZWN0QmFzZUFuaW1hdGlvbl0sXHJcbiAgcHJvdmlkZXJzOiBbRGF0ZVBpcGUsIExvd2VyQ2FzZVBpcGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYRGF0ZVBpY2tlclBvcnRhbENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xyXG4gIEBIb3N0QmluZGluZygnQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbicpIHB1YmxpYyBnZXQgZ2V0UGxhY2VtZW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMucGxhY2VtZW50KCk7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ0B4LWNvbm5lY3QtYmFzZS1hbmltYXRpb24uZG9uZScsIFsnJGV2ZW50J10pIGRvbmUoZXZlbnQ6IHsgdG9TdGF0ZTogc3RyaW5nIH0pIHtcclxuICAgIGV2ZW50LnRvU3RhdGUgIT09ICd2b2lkJyAmJiB0aGlzLmFuaW1hdGluZy5lbWl0KGZhbHNlKTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbi5zdGFydCcsIFsnJGV2ZW50J10pIHN0YXJ0KGV2ZW50OiB7IHRvU3RhdGU6IHN0cmluZyB9KSB7XHJcbiAgICBldmVudC50b1N0YXRlICE9PSAndm9pZCcgJiYgdGhpcy5hbmltYXRpbmcuZW1pdCh0cnVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaTE4biA9IGluamVjdChYSTE4blNlcnZpY2UpO1xyXG4gIHByaXZhdGUgX3R5cGUgPSBzaWduYWw8WERhdGVQaWNrZXJUeXBlPignZGF0ZScpO1xyXG5cclxuICB0aW1lUGlja2VyRnJhbWUgPSB2aWV3Q2hpbGQoJ3RpbWVQaWNrZXJGcmFtZScsIHsgcmVhZDogWFRpbWVQaWNrZXJGcmFtZUNvbXBvbmVudCB9KTtcclxuICB2YWx1ZSA9IGlucHV0PGFueT4oKTtcclxuICB0eXBlID0gbW9kZWw8WERhdGVQaWNrZXJUeXBlPignZGF0ZScpO1xyXG4gIHByZXNldCA9IGlucHV0PFhEYXRlUGlja2VyUHJlc2V0W10+KFtdKTtcclxuICBleHRyYUZvb3RlciA9IGlucHV0PFhUZW1wbGF0ZT4oKTtcclxuICBwbGFjZW1lbnQgPSBpbnB1dDxYUG9zaXRpb25Ub3BCb3R0b20+KCk7XHJcbiAgaW5wdXRDb20gPSBpbnB1dDxYSW5wdXRDb21wb25lbnQ+KCk7XHJcbiAgZGlzYWJsZWREYXRlID0gaW5wdXQ8WERhdGVQaWNrZXJEaXNhYmxlZERhdGU+KCk7XHJcbiAgZGlzYWJsZWRUaW1lID0gaW5wdXQ8WERhdGVQaWNrZXJEaXNhYmxlZFRpbWU+KCk7XHJcblxyXG4gIGFuaW1hdGluZyA9IG91dHB1dDxib29sZWFuPigpO1xyXG4gIG5vZGVDbGljayA9IG91dHB1dDx7IGRhdGU6IERhdGU7IHN1cmU/OiBib29sZWFuIH0+KCk7XHJcblxyXG4gIGRpc3BsYXkgPSBzaWduYWwobmV3IERhdGUoKSk7XHJcbiAgbW9kZWwgPSBzaWduYWw8RGF0ZSB8IG51bGw+KG51bGwpO1xyXG4gIGxvY2FsZSA9IHRvU2lnbmFsKHRoaXMuaTE4bi5sb2NhbGVDaGFuZ2UucGlwZShtYXAoKHgpID0+IHguZGF0ZVBpY2tlciBhcyBYSTE4bkRhdGVQaWNrZXIpKSwge1xyXG4gICAgaW5pdGlhbFZhbHVlOiB6aF9DTi5kYXRlUGlja2VyXHJcbiAgfSk7XHJcbiAgdGltZSA9IHNpZ25hbDxudW1iZXIgfCBudWxsPihudWxsKTtcclxuXHJcbiAgaXNEYXRlUGlja2VyID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgcmV0dXJuIFsnZGF0ZScsICdtb250aCcsICd5ZWFyJ10uaW5jbHVkZXModGhpcy50eXBlKCkpO1xyXG4gIH0pO1xyXG5cclxuICBzdXJlRGlzYWJsZWQgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICBsZXQgcmVzID0gWElzVW5kZWZpbmVkKHRoaXMudGltZSgpKTtcclxuICAgIGxldCB0aW1lUGlja2VyRnJhbWUgPSB0aGlzLnRpbWVQaWNrZXJGcmFtZSgpO1xyXG4gICAgaWYgKHRpbWVQaWNrZXJGcmFtZSAmJiAhWElzVW5kZWZpbmVkKHRoaXMudGltZSgpKSkge1xyXG4gICAgICBjb25zdCBkdCA9IG5ldyBEYXRlKHRoaXMudGltZSgpISk7XHJcbiAgICAgIGNvbnN0IGhvdXJzID0gZHQuZ2V0SG91cnMoKTtcclxuICAgICAgY29uc3QgbWludXRlcyA9IGR0LmdldE1pbnV0ZXMoKTtcclxuICAgICAgY29uc3Qgc2Vjb25kcyA9IGR0LmdldFNlY29uZHMoKTtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICB0aW1lUGlja2VyRnJhbWUuc2V0RGlzYWJsZWQoJ2hvdXJzJywgaG91cnMpIHx8XHJcbiAgICAgICAgdGltZVBpY2tlckZyYW1lLnNldERpc2FibGVkKCdtaW51dGVzJywgbWludXRlcykgfHxcclxuICAgICAgICB0aW1lUGlja2VyRnJhbWUuc2V0RGlzYWJsZWQoJ3NlY29uZHMnLCBzZWNvbmRzKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlcztcclxuICB9KTtcclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5pbml0KCk7XHJcbiAgfVxyXG5cclxuICBpbml0KCkge1xyXG4gICAgaWYgKCFYSXNFbXB0eSh0aGlzLnZhbHVlKCkpKSB7XHJcbiAgICAgIHRoaXMuc2V0RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fdHlwZS5zZXQodGhpcy50eXBlKCkpO1xyXG4gIH1cclxuXHJcbiAgc2V0RGVmYXVsdCgpIHtcclxuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aGlzLnZhbHVlKCkpO1xyXG4gICAgdGhpcy5tb2RlbC5zZXQoZGF0ZSk7XHJcbiAgICB0aGlzLnRpbWUuc2V0KHRoaXMubW9kZWwoKSEuZ2V0VGltZSgpKTtcclxuICAgIHRoaXMuc2V0RGlzcGxheSh0aGlzLm1vZGVsKCkhKTtcclxuICB9XHJcblxyXG4gIHNldERpc3BsYXkoZGF0ZTogRGF0ZSkge1xyXG4gICAgdGhpcy5kaXNwbGF5LnNldChuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgMSkpO1xyXG4gIH1cclxuXHJcbiAgZGF0ZUNoYW5nZShkYXRlOiBEYXRlKSB7XHJcbiAgICB0aGlzLnNldERpc3BsYXkoZGF0ZSk7XHJcbiAgICB0aGlzLm1vZGVsLnNldChkYXRlKTtcclxuICAgIGlmIChbJ2RhdGUtdGltZScsICdkYXRlLWhvdXInLCAnZGF0ZS1taW51dGUnXS5pbmNsdWRlcyh0aGlzLl90eXBlKCkpKSB7XHJcbiAgICAgIGxldCB0aW1lID0gbmV3IERhdGUoKTtcclxuICAgICAgaWYgKFsnZGF0ZS1ob3VyJywgJ2RhdGUtbWludXRlJ10uaW5jbHVkZXModGhpcy50eXBlKCkpKSB7XHJcbiAgICAgICAgdGltZS5zZXRTZWNvbmRzKDApO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnR5cGUoKSA9PT0gJ2RhdGUtaG91cicpIHtcclxuICAgICAgICB0aW1lLnNldE1pbnV0ZXMoMCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCF0aGlzLnRpbWUoKSkge1xyXG4gICAgICAgIHRoaXMudGltZS5zZXQodGltZS5nZXRUaW1lKCkpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2V0TW9kZWxUaW1lKHRoaXMubW9kZWwoKSEsIG5ldyBEYXRlKHRoaXMudGltZSgpISkpO1xyXG4gICAgICB0aGlzLm5vZGVDbGljay5lbWl0KHsgZGF0ZTogdGhpcy5tb2RlbCgpISwgc3VyZTogZmFsc2UgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm5vZGVDbGljay5lbWl0KHsgZGF0ZTogdGhpcy5tb2RlbCgpISwgc3VyZTogdHJ1ZSB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1vbnRoQ2hhbmdlKGRhdGU6IERhdGUpIHtcclxuICAgIHRoaXMuc2V0RGlzcGxheShkYXRlKTtcclxuICAgIGlmICh0aGlzLl90eXBlKCkgPT09ICdtb250aCcpIHtcclxuICAgICAgdGhpcy5tb2RlbC5zZXQoZGF0ZSk7XHJcbiAgICAgIHRoaXMubm9kZUNsaWNrLmVtaXQoeyBkYXRlLCBzdXJlOiB0cnVlIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50eXBlLnNldCh0aGlzLl90eXBlKCkhKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHF1YXJ0ZXJDaGFuZ2UoZGF0ZTogRGF0ZSkge1xyXG4gICAgdGhpcy5zZXREaXNwbGF5KGRhdGUpO1xyXG4gICAgaWYgKHRoaXMuX3R5cGUoKSA9PT0gJ3F1YXJ0ZXInKSB7XHJcbiAgICAgIHRoaXMubW9kZWwuc2V0KGRhdGUpO1xyXG4gICAgICB0aGlzLm5vZGVDbGljay5lbWl0KHsgZGF0ZSwgc3VyZTogdHJ1ZSB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudHlwZS5zZXQodGhpcy5fdHlwZSgpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHllYXJDaGFuZ2UoZGF0ZTogRGF0ZSkge1xyXG4gICAgdGhpcy5zZXREaXNwbGF5KGRhdGUpO1xyXG4gICAgaWYgKHRoaXMuX3R5cGUoKSA9PT0gJ3llYXInKSB7XHJcbiAgICAgIHRoaXMubW9kZWwuc2V0KGRhdGUpO1xyXG4gICAgICB0aGlzLm5vZGVDbGljay5lbWl0KHsgZGF0ZSwgc3VyZTogdHJ1ZSB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudHlwZS5zZXQoJ21vbnRoJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblRvZGF5KCkge1xyXG4gICAgdGhpcy5kYXRlQ2hhbmdlKG5ldyBEYXRlKCkpO1xyXG4gIH1cclxuXHJcbiAgb25ZZXN0ZXJkYXkoKSB7XHJcbiAgICB0aGlzLmRhdGVDaGFuZ2UoWEFkZERheXMobmV3IERhdGUoKSwgLTEpKTtcclxuICB9XHJcblxyXG4gIG9uVG9tb3Jyb3coKSB7XHJcbiAgICB0aGlzLmRhdGVDaGFuZ2UoWEFkZERheXMobmV3IERhdGUoKSwgMSkpO1xyXG4gIH1cclxuXHJcbiAgb25QcmVzZXRGdW5jKGl0ZW06IFhEYXRlUGlja2VyUHJlc2V0KSB7XHJcbiAgICB0aGlzLmRhdGVDaGFuZ2UoaXRlbS5mdW5jKCkpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0VGltZSh0aW1lOiBEYXRlKSB7XHJcbiAgICBpZiAoIXRoaXMubW9kZWwoKSkge1xyXG4gICAgICB0aGlzLm1vZGVsLnNldChuZXcgRGF0ZSgpKTtcclxuICAgIH1cclxuICAgIHRoaXMudGltZS5zZXQodGltZS5nZXRUaW1lKCkpO1xyXG4gICAgdGhpcy5ub2RlQ2xpY2suZW1pdCh7IGRhdGU6IHRoaXMuc2V0TW9kZWxUaW1lKHRoaXMubW9kZWwoKSEsIHRpbWUpLCBzdXJlOiBmYWxzZSB9KTtcclxuICB9XHJcblxyXG4gIHNldE1vZGVsVGltZShkYXRlOiBEYXRlLCB0aW1lOiBEYXRlKSB7XHJcbiAgICB0aGlzLm1vZGVsLnNldChcclxuICAgICAgbmV3IERhdGUoXHJcbiAgICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICAgIGRhdGUuZ2V0TW9udGgoKSxcclxuICAgICAgICBkYXRlLmdldERhdGUoKSxcclxuICAgICAgICB0aW1lLmdldEhvdXJzKCksXHJcbiAgICAgICAgdGltZS5nZXRNaW51dGVzKCksXHJcbiAgICAgICAgdGltZS5nZXRTZWNvbmRzKClcclxuICAgICAgKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLm1vZGVsKCkhO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwieC1kYXRlLXBpY2tlci1wb3J0YWwge3sgdHlwZSgpIH19XCIgKGNsaWNrKT1cImlucHV0Q29tKCk/LmlucHV0Rm9jdXMoJ2ZvY3VzJylcIj5cclxuICBAc3dpdGNoICh0eXBlKCkpIHtcclxuICAgIEBjYXNlICgnZGF0ZScpIHtcclxuICAgICAgPHgtcGlja2VyLWRhdGVcclxuICAgICAgICBbKGRpc3BsYXkpXT1cImRpc3BsYXlcIlxyXG4gICAgICAgIFsobW9kZWwpXT1cIm1vZGVsXCJcclxuICAgICAgICBbKHR5cGUpXT1cInR5cGVcIlxyXG4gICAgICAgIChtb2RlbENoYW5nZSk9XCJkYXRlQ2hhbmdlKCRldmVudCEpXCJcclxuICAgICAgICBbZGlzYWJsZWREYXRlXT1cImRpc2FibGVkRGF0ZSgpXCJcclxuICAgICAgPjwveC1waWNrZXItZGF0ZT5cclxuICAgIH1cclxuICAgIEBjYXNlICgnd2VlaycpIHtcclxuICAgICAgPHgtcGlja2VyLWRhdGVcclxuICAgICAgICBbKGRpc3BsYXkpXT1cImRpc3BsYXlcIlxyXG4gICAgICAgIFsobW9kZWwpXT1cIm1vZGVsXCJcclxuICAgICAgICBbKHR5cGUpXT1cInR5cGVcIlxyXG4gICAgICAgIChtb2RlbENoYW5nZSk9XCJkYXRlQ2hhbmdlKCRldmVudCEpXCJcclxuICAgICAgICBbZGlzYWJsZWREYXRlXT1cImRpc2FibGVkRGF0ZSgpXCJcclxuICAgICAgPjwveC1waWNrZXItZGF0ZT5cclxuICAgIH1cclxuICAgIEBjYXNlICgnbW9udGgnKSB7XHJcbiAgICAgIDx4LXBpY2tlci1tb250aFxyXG4gICAgICAgIFsoZGlzcGxheSldPVwiZGlzcGxheVwiXHJcbiAgICAgICAgWyhtb2RlbCldPVwibW9kZWxcIlxyXG4gICAgICAgIFsodHlwZSldPVwidHlwZVwiXHJcbiAgICAgICAgKG1vZGVsQ2hhbmdlKT1cIm1vbnRoQ2hhbmdlKCRldmVudCEpXCJcclxuICAgICAgICBbZGlzYWJsZWREYXRlXT1cImRpc2FibGVkRGF0ZSgpXCJcclxuICAgICAgPjwveC1waWNrZXItbW9udGg+XHJcbiAgICB9XHJcbiAgICBAY2FzZSAoJ3F1YXJ0ZXInKSB7XHJcbiAgICAgIDx4LXBpY2tlci1xdWFydGVyXHJcbiAgICAgICAgWyhkaXNwbGF5KV09XCJkaXNwbGF5XCJcclxuICAgICAgICBbKG1vZGVsKV09XCJtb2RlbFwiXHJcbiAgICAgICAgWyh0eXBlKV09XCJ0eXBlXCJcclxuICAgICAgICAobW9kZWxDaGFuZ2UpPVwicXVhcnRlckNoYW5nZSgkZXZlbnQhKVwiXHJcbiAgICAgICAgW2Rpc2FibGVkRGF0ZV09XCJkaXNhYmxlZERhdGUoKVwiXHJcbiAgICAgID48L3gtcGlja2VyLXF1YXJ0ZXI+XHJcbiAgICB9XHJcbiAgICBAY2FzZSAoJ3llYXInKSB7XHJcbiAgICAgIDx4LXBpY2tlci15ZWFyXHJcbiAgICAgICAgWyhkaXNwbGF5KV09XCJkaXNwbGF5XCJcclxuICAgICAgICBbKG1vZGVsKV09XCJtb2RlbFwiXHJcbiAgICAgICAgWyh0eXBlKV09XCJ0eXBlXCJcclxuICAgICAgICAobW9kZWxDaGFuZ2UpPVwieWVhckNoYW5nZSgkZXZlbnQhKVwiXHJcbiAgICAgICAgW2Rpc2FibGVkRGF0ZV09XCJkaXNhYmxlZERhdGUoKVwiXHJcbiAgICAgID48L3gtcGlja2VyLXllYXI+XHJcbiAgICB9XHJcbiAgICBAY2FzZSAoJ2RhdGUtdGltZScpIHtcclxuICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGF0ZVRpbWVIb3VyTWludXRlVHBsOyBjb250ZXh0OiB7IHRpbWVGb3JtYXQ6ICdISDptbTpzcycsIHRpbWVUeXBlOiAndGltZScgfVwiXHJcbiAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgIH1cclxuICAgIEBjYXNlICgnZGF0ZS1ob3VyJykge1xyXG4gICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkYXRlVGltZUhvdXJNaW51dGVUcGw7IGNvbnRleHQ6IHsgdGltZUZvcm1hdDogJ0hIJywgdGltZVR5cGU6ICdob3VyJyB9XCJcclxuICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgfVxyXG4gICAgQGNhc2UgKCdkYXRlLW1pbnV0ZScpIHtcclxuICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGF0ZVRpbWVIb3VyTWludXRlVHBsOyBjb250ZXh0OiB7IHRpbWVGb3JtYXQ6ICdISDptbScsIHRpbWVUeXBlOiAnbWludXRlJyB9XCJcclxuICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgfVxyXG4gICAgQGNhc2UgKCdtb250aCcpIHt9XHJcbiAgfVxyXG4gIEBpZiAoaXNEYXRlUGlja2VyKCkpIHtcclxuICAgIEBpZiAoZXh0cmFGb290ZXIoKSkge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwieC1kYXRlLXBpY2tlci1wb3J0YWwtZXh0cmEtZm9vdGVyXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cImV4dHJhRm9vdGVyKClcIj57eyBleHRyYUZvb3RlcigpIH19PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInByZXNldFRwbFwiPjwvbmctY29udGFpbmVyPlxyXG4gIH1cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI2RhdGVUaW1lSG91ck1pbnV0ZVRwbCBsZXQtdGltZUZvcm1hdD1cInRpbWVGb3JtYXRcIiBsZXQtdGltZVR5cGU9XCJ0aW1lVHlwZVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ4LWRhdGUtcGlja2VyLXBvcnRhbC1jb250ZW50XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1kYXRlLXBpY2tlci1wb3J0YWwtZGF0ZVwiPlxyXG4gICAgICA8eC1waWNrZXItZGF0ZVxyXG4gICAgICAgIFsoZGlzcGxheSldPVwiZGlzcGxheVwiXHJcbiAgICAgICAgWyh0eXBlKV09XCJ0eXBlXCJcclxuICAgICAgICBbKG1vZGVsKV09XCJtb2RlbFwiXHJcbiAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImRhdGVDaGFuZ2UoJGV2ZW50ISlcIlxyXG4gICAgICAgIFtkaXNhYmxlZERhdGVdPVwiZGlzYWJsZWREYXRlKClcIlxyXG4gICAgICA+PC94LXBpY2tlci1kYXRlPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1kYXRlLXBpY2tlci1wb3J0YWwtdGltZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwieC1kYXRlLXBpY2tlci1wb3J0YWwtdGltZS1sYWJlbFwiPlxyXG4gICAgICAgIHt7IHRpbWUoKSB8IGRhdGU6IHRpbWVGb3JtYXQgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDx4LXRpbWUtcGlja2VyLWZyYW1lXHJcbiAgICAgICAgI3RpbWVQaWNrZXJGcmFtZURcclxuICAgICAgICBbdHlwZV09XCJ0aW1lVHlwZVwiXHJcbiAgICAgICAgW3ZhbHVlXT1cInRpbWUoKVwiXHJcbiAgICAgICAgKG5vZGVFbWl0KT1cInNlbGVjdFRpbWUoJGV2ZW50KVwiXHJcbiAgICAgICAgW2Rpc2FibGVkVGltZV09XCJkaXNhYmxlZFRpbWUoKVwiXHJcbiAgICAgICAgW2RlZmF1bHROb3ddPVwiZmFsc2VcIlxyXG4gICAgICA+PC94LXRpbWUtcGlja2VyLWZyYW1lPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgQGlmICghaXNEYXRlUGlja2VyKCkgJiYgZXh0cmFGb290ZXIoKSkge1xyXG4gICAgPGRpdiBjbGFzcz1cIngtZGF0ZS1waWNrZXItcG9ydGFsLWV4dHJhLWZvb3RlclwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwiZXh0cmFGb290ZXIoKVwiPnt7IGV4dHJhRm9vdGVyKCkgfX08L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuICA8ZGl2IGNsYXNzPVwieC1kYXRlLXBpY2tlci1wb3J0YWwtZm9vdGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1kYXRlLXBpY2tlci1wb3J0YWwtZm9vdGVyLWxlZnRcIj5cclxuICAgICAgQGlmICghaXNEYXRlUGlja2VyKCkgJiYgcHJlc2V0KCkpIHtcclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicHJlc2V0VHBsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gICAgPHgtYnV0dG9uXHJcbiAgICAgIHR5cGU9XCJwcmltYXJ5XCJcclxuICAgICAgdGV4dFxyXG4gICAgICAoY2xpY2spPVwiIXN1cmVEaXNhYmxlZCgpICYmIG5vZGVDbGljay5lbWl0KHsgZGF0ZTogbW9kZWwoKSEsIHN1cmU6IHRydWUgfSlcIlxyXG4gICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwic3VyZURpc2FibGVkKClcIlxyXG4gICAgICA+e3sgbG9jYWxlKCkuc3VyZSB9fTwveC1idXR0b25cclxuICAgID5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjcHJlc2V0VHBsPlxyXG4gIEBpZiAocHJlc2V0KCkpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJ4LWRhdGUtcGlja2VyLXBvcnRhbC1wcmVzZXRcIj5cclxuICAgICAgQGZvciAoaXRlbSBvZiBwcmVzZXQoKTsgdHJhY2sgaXRlbSkge1xyXG4gICAgICAgIEBzd2l0Y2ggKGl0ZW0uaWQpIHtcclxuICAgICAgICAgIEBjYXNlICgneWVzdGVyZGF5Jykge1xyXG4gICAgICAgICAgICA8eC1saW5rIChjbGljayk9XCJvblllc3RlcmRheSgpXCI+e3sgbG9jYWxlKCkueWVzdGVyZGF5IH19PC94LWxpbms+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBAY2FzZSAoJ3RvZGF5Jykge1xyXG4gICAgICAgICAgICA8eC1saW5rIChjbGljayk9XCJvblRvZGF5KClcIj57eyBsb2NhbGUoKS50b2RheSB9fTwveC1saW5rPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgQGNhc2UgKCd0b21vcnJvdycpIHtcclxuICAgICAgICAgICAgPHgtbGluayAoY2xpY2spPVwib25Ub21vcnJvdygpXCI+e3sgbG9jYWxlKCkudG9tb3Jyb3cgfX08L3gtbGluaz5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgQGlmICghIWl0ZW0uZnVuYykge1xyXG4gICAgICAgICAgPHgtbGluayAoY2xpY2spPVwib25QcmVzZXRGdW5jKGl0ZW0pXCI+e3sgaXRlbS5sYWJlbCB9fTwveC1saW5rPlxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXItcG9ydGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci1wb3J0YWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBRXZCLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEVBQ04sS0FBSyxFQUNMLFVBQVUsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsdUJBQXVCLEVBR3hCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUNMLFFBQVEsRUFDUixxQkFBcUIsRUFFckIsUUFBUSxFQUVSLFlBQVksRUFDYixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQW1CLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXhFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFD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QjtrQkF0QnRDLFNBQVM7K0JBQ0UsR0FBRyx1QkFBdUIsRUFBRSxjQUMxQixJQUFJLFdBQ1A7d0JBQ1AsZ0JBQWdCO3dCQUNoQixRQUFRO3dCQUNSLG9CQUFvQjt3QkFDcEIscUJBQXFCO3dCQUNyQix1QkFBdUI7d0JBQ3ZCLG9CQUFvQjt3QkFDcEIsaUJBQWlCO3dCQUNqQixnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2QsZ0JBQWdCO3FCQUNqQixpQkFHYyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLENBQUMscUJBQXFCLENBQUMsYUFDeEIsQ0FBQyxRQUFRLEVBQUUsYUFBYSxDQUFDOzhCQUdpQixZQUFZO3NCQUFoRSxXQUFXO3VCQUFDLDJCQUEyQjtnQkFHb0IsSUFBSTtzQkFBL0QsWUFBWTt1QkFBQyxnQ0FBZ0MsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFJRyxLQUFLO3NCQUFqRSxZQUFZO3VCQUFDLGlDQUFpQyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBIb3N0QmluZGluZyxcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgaW5qZWN0LFxyXG4gIGlucHV0LFxyXG4gIG91dHB1dCxcclxuICB2aWV3Q2hpbGQsXHJcbiAgY29tcHV0ZWQsXHJcbiAgc2lnbmFsLFxyXG4gIG1vZGVsLFxyXG4gIERlc3Ryb3lSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBYRGF0ZVBpY2tlckRpc2FibGVkRGF0ZSxcclxuICBYRGF0ZVBpY2tlckRpc2FibGVkVGltZSxcclxuICBYRGF0ZVBpY2tlclBvcnRhbFByZWZpeCxcclxuICBYRGF0ZVBpY2tlclByZXNldCxcclxuICBYRGF0ZVBpY2tlclR5cGVcclxufSBmcm9tICcuL2RhdGUtcGlja2VyLnByb3BlcnR5JztcclxuaW1wb3J0IHtcclxuICBYSXNFbXB0eSxcclxuICBYQ29ubmVjdEJhc2VBbmltYXRpb24sXHJcbiAgWFBvc2l0aW9uVG9wQm90dG9tLFxyXG4gIFhBZGREYXlzLFxyXG4gIFhUZW1wbGF0ZSxcclxuICBYSXNVbmRlZmluZWRcclxufSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBEYXRlUGlwZSwgTG93ZXJDYXNlUGlwZSwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFhJMThuU2VydmljZSwgWEkxOG5EYXRlUGlja2VyLCB6aF9DTiB9IGZyb20gJ0BuZy1uZXN0L3VpL2kxOG4nO1xyXG5pbXBvcnQgeyBYSW5wdXRDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9pbnB1dCc7XHJcbmltcG9ydCB7IFhUaW1lUGlja2VyRnJhbWVDb21wb25lbnQsIFhUaW1lUGlja2VyTW9kdWxlIH0gZnJvbSAnQG5nLW5lc3QvdWkvdGltZS1waWNrZXInO1xyXG5pbXBvcnQgeyBYUGlja2VyRGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vcGlja2VyLWRhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWFBpY2tlck1vbnRoQ29tcG9uZW50IH0gZnJvbSAnLi9waWNrZXItbW9udGguY29tcG9uZW50JztcclxuaW1wb3J0IHsgWFBpY2tlclF1YXJ0ZXJDb21wb25lbnQgfSBmcm9tICcuL3BpY2tlci1xdWFydGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFhQaWNrZXJZZWFyQ29tcG9uZW50IH0gZnJvbSAnLi9waWNrZXIteWVhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBYQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvYnV0dG9uJztcclxuaW1wb3J0IHsgWExpbmtDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9saW5rJztcclxuaW1wb3J0IHsgWE91dGxldERpcmVjdGl2ZSB9IGZyb20gJ0BuZy1uZXN0L3VpL291dGxldCc7XHJcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hEYXRlUGlja2VyUG9ydGFsUHJlZml4fWAsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxyXG4gICAgRGF0ZVBpcGUsXHJcbiAgICBYUGlja2VyRGF0ZUNvbXBvbmVudCxcclxuICAgIFhQaWNrZXJNb250aENvbXBvbmVudCxcclxuICAgIFhQaWNrZXJRdWFydGVyQ29tcG9uZW50LFxyXG4gICAgWFBpY2tlclllYXJDb21wb25lbnQsXHJcbiAgICBYVGltZVBpY2tlck1vZHVsZSxcclxuICAgIFhCdXR0b25Db21wb25lbnQsXHJcbiAgICBYTGlua0NvbXBvbmVudCxcclxuICAgIFhPdXRsZXREaXJlY3RpdmVcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXBpY2tlci1wb3J0YWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RhdGUtcGlja2VyLXBvcnRhbC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgYW5pbWF0aW9uczogW1hDb25uZWN0QmFzZUFuaW1hdGlvbl0sXHJcbiAgcHJvdmlkZXJzOiBbRGF0ZVBpcGUsIExvd2VyQ2FzZVBpcGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYRGF0ZVBpY2tlclBvcnRhbENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xyXG4gIEBIb3N0QmluZGluZygnQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbicpIHB1YmxpYyBnZXQgZ2V0UGxhY2VtZW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMucGxhY2VtZW50KCk7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ0B4LWNvbm5lY3QtYmFzZS1hbmltYXRpb24uZG9uZScsIFsnJGV2ZW50J10pIGRvbmUoKSB7XHJcbiAgICBpZiAodGhpcy5kZXN0cm95KCkpIHJldHVybjtcclxuICAgIHRoaXMuYW5pbWF0aW5nLmVtaXQoZmFsc2UpO1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uLnN0YXJ0JywgWyckZXZlbnQnXSkgc3RhcnQoKSB7XHJcbiAgICBpZiAodGhpcy5kZXN0cm95KCkpIHJldHVybjtcclxuICAgIHRoaXMuYW5pbWF0aW5nLmVtaXQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoWEkxOG5TZXJ2aWNlKTtcclxuICBwcml2YXRlIF90eXBlID0gc2lnbmFsPFhEYXRlUGlja2VyVHlwZT4oJ2RhdGUnKTtcclxuICBkZXN0cm95ID0gc2lnbmFsKGZhbHNlKTtcclxuICBwcml2YXRlIGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XHJcblxyXG4gIHRpbWVQaWNrZXJGcmFtZSA9IHZpZXdDaGlsZCgndGltZVBpY2tlckZyYW1lJywgeyByZWFkOiBYVGltZVBpY2tlckZyYW1lQ29tcG9uZW50IH0pO1xyXG4gIHZhbHVlID0gaW5wdXQ8YW55PigpO1xyXG4gIHR5cGUgPSBtb2RlbDxYRGF0ZVBpY2tlclR5cGU+KCdkYXRlJyk7XHJcbiAgcHJlc2V0ID0gaW5wdXQ8WERhdGVQaWNrZXJQcmVzZXRbXT4oW10pO1xyXG4gIGV4dHJhRm9vdGVyID0gaW5wdXQ8WFRlbXBsYXRlPigpO1xyXG4gIHBsYWNlbWVudCA9IGlucHV0PFhQb3NpdGlvblRvcEJvdHRvbT4oKTtcclxuICBpbnB1dENvbSA9IGlucHV0PFhJbnB1dENvbXBvbmVudD4oKTtcclxuICBkaXNhYmxlZERhdGUgPSBpbnB1dDxYRGF0ZVBpY2tlckRpc2FibGVkRGF0ZT4oKTtcclxuICBkaXNhYmxlZFRpbWUgPSBpbnB1dDxYRGF0ZVBpY2tlckRpc2FibGVkVGltZT4oKTtcclxuXHJcbiAgYW5pbWF0aW5nID0gb3V0cHV0PGJvb2xlYW4+KCk7XHJcbiAgbm9kZUNsaWNrID0gb3V0cHV0PHsgZGF0ZTogRGF0ZTsgc3VyZT86IGJvb2xlYW4gfT4oKTtcclxuXHJcbiAgZGlzcGxheSA9IHNpZ25hbChuZXcgRGF0ZSgpKTtcclxuICBtb2RlbCA9IHNpZ25hbDxEYXRlIHwgbnVsbD4obnVsbCk7XHJcbiAgbG9jYWxlID0gdG9TaWduYWwodGhpcy5pMThuLmxvY2FsZUNoYW5nZS5waXBlKG1hcCgoeCkgPT4geC5kYXRlUGlja2VyIGFzIFhJMThuRGF0ZVBpY2tlcikpLCB7XHJcbiAgICBpbml0aWFsVmFsdWU6IHpoX0NOLmRhdGVQaWNrZXJcclxuICB9KTtcclxuICB0aW1lID0gc2lnbmFsPG51bWJlciB8IG51bGw+KG51bGwpO1xyXG5cclxuICBpc0RhdGVQaWNrZXIgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICByZXR1cm4gWydkYXRlJywgJ21vbnRoJywgJ3llYXInXS5pbmNsdWRlcyh0aGlzLnR5cGUoKSk7XHJcbiAgfSk7XHJcblxyXG4gIHN1cmVEaXNhYmxlZCA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIGxldCByZXMgPSBYSXNVbmRlZmluZWQodGhpcy50aW1lKCkpO1xyXG4gICAgbGV0IHRpbWVQaWNrZXJGcmFtZSA9IHRoaXMudGltZVBpY2tlckZyYW1lKCk7XHJcbiAgICBpZiAodGltZVBpY2tlckZyYW1lICYmICFYSXNVbmRlZmluZWQodGhpcy50aW1lKCkpKSB7XHJcbiAgICAgIGNvbnN0IGR0ID0gbmV3IERhdGUodGhpcy50aW1lKCkhKTtcclxuICAgICAgY29uc3QgaG91cnMgPSBkdC5nZXRIb3VycygpO1xyXG4gICAgICBjb25zdCBtaW51dGVzID0gZHQuZ2V0TWludXRlcygpO1xyXG4gICAgICBjb25zdCBzZWNvbmRzID0gZHQuZ2V0U2Vjb25kcygpO1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIHRpbWVQaWNrZXJGcmFtZS5zZXREaXNhYmxlZCgnaG91cnMnLCBob3VycykgfHxcclxuICAgICAgICB0aW1lUGlja2VyRnJhbWUuc2V0RGlzYWJsZWQoJ21pbnV0ZXMnLCBtaW51dGVzKSB8fFxyXG4gICAgICAgIHRpbWVQaWNrZXJGcmFtZS5zZXREaXNhYmxlZCgnc2Vjb25kcycsIHNlY29uZHMpXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzO1xyXG4gIH0pO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4ge1xyXG4gICAgICB0aGlzLmRlc3Ryb3kuc2V0KHRydWUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmluaXQoKTtcclxuICB9XHJcblxyXG4gIGluaXQoKSB7XHJcbiAgICBpZiAoIVhJc0VtcHR5KHRoaXMudmFsdWUoKSkpIHtcclxuICAgICAgdGhpcy5zZXREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl90eXBlLnNldCh0aGlzLnR5cGUoKSk7XHJcbiAgfVxyXG5cclxuICBzZXREZWZhdWx0KCkge1xyXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRoaXMudmFsdWUoKSk7XHJcbiAgICB0aGlzLm1vZGVsLnNldChkYXRlKTtcclxuICAgIHRoaXMudGltZS5zZXQodGhpcy5tb2RlbCgpIS5nZXRUaW1lKCkpO1xyXG4gICAgdGhpcy5zZXREaXNwbGF5KHRoaXMubW9kZWwoKSEpO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzcGxheShkYXRlOiBEYXRlKSB7XHJcbiAgICB0aGlzLmRpc3BsYXkuc2V0KG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCAxKSk7XHJcbiAgfVxyXG5cclxuICBkYXRlQ2hhbmdlKGRhdGU6IERhdGUpIHtcclxuICAgIHRoaXMuc2V0RGlzcGxheShkYXRlKTtcclxuICAgIHRoaXMubW9kZWwuc2V0KGRhdGUpO1xyXG4gICAgaWYgKFsnZGF0ZS10aW1lJywgJ2RhdGUtaG91cicsICdkYXRlLW1pbnV0ZSddLmluY2x1ZGVzKHRoaXMuX3R5cGUoKSkpIHtcclxuICAgICAgbGV0IHRpbWUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICBpZiAoWydkYXRlLWhvdXInLCAnZGF0ZS1taW51dGUnXS5pbmNsdWRlcyh0aGlzLnR5cGUoKSkpIHtcclxuICAgICAgICB0aW1lLnNldFNlY29uZHMoMCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMudHlwZSgpID09PSAnZGF0ZS1ob3VyJykge1xyXG4gICAgICAgIHRpbWUuc2V0TWludXRlcygwKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIXRoaXMudGltZSgpKSB7XHJcbiAgICAgICAgdGhpcy50aW1lLnNldCh0aW1lLmdldFRpbWUoKSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zZXRNb2RlbFRpbWUodGhpcy5tb2RlbCgpISwgbmV3IERhdGUodGhpcy50aW1lKCkhKSk7XHJcbiAgICAgIHRoaXMubm9kZUNsaWNrLmVtaXQoeyBkYXRlOiB0aGlzLm1vZGVsKCkhLCBzdXJlOiBmYWxzZSB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubm9kZUNsaWNrLmVtaXQoeyBkYXRlOiB0aGlzLm1vZGVsKCkhLCBzdXJlOiB0cnVlIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbW9udGhDaGFuZ2UoZGF0ZTogRGF0ZSkge1xyXG4gICAgdGhpcy5zZXREaXNwbGF5KGRhdGUpO1xyXG4gICAgaWYgKHRoaXMuX3R5cGUoKSA9PT0gJ21vbnRoJykge1xyXG4gICAgICB0aGlzLm1vZGVsLnNldChkYXRlKTtcclxuICAgICAgdGhpcy5ub2RlQ2xpY2suZW1pdCh7IGRhdGUsIHN1cmU6IHRydWUgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnR5cGUuc2V0KHRoaXMuX3R5cGUoKSEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcXVhcnRlckNoYW5nZShkYXRlOiBEYXRlKSB7XHJcbiAgICB0aGlzLnNldERpc3BsYXkoZGF0ZSk7XHJcbiAgICBpZiAodGhpcy5fdHlwZSgpID09PSAncXVhcnRlcicpIHtcclxuICAgICAgdGhpcy5tb2RlbC5zZXQoZGF0ZSk7XHJcbiAgICAgIHRoaXMubm9kZUNsaWNrLmVtaXQoeyBkYXRlLCBzdXJlOiB0cnVlIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50eXBlLnNldCh0aGlzLl90eXBlKCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgeWVhckNoYW5nZShkYXRlOiBEYXRlKSB7XHJcbiAgICB0aGlzLnNldERpc3BsYXkoZGF0ZSk7XHJcbiAgICBpZiAodGhpcy5fdHlwZSgpID09PSAneWVhcicpIHtcclxuICAgICAgdGhpcy5tb2RlbC5zZXQoZGF0ZSk7XHJcbiAgICAgIHRoaXMubm9kZUNsaWNrLmVtaXQoeyBkYXRlLCBzdXJlOiB0cnVlIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50eXBlLnNldCgnbW9udGgnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uVG9kYXkoKSB7XHJcbiAgICB0aGlzLmRhdGVDaGFuZ2UobmV3IERhdGUoKSk7XHJcbiAgfVxyXG5cclxuICBvblllc3RlcmRheSgpIHtcclxuICAgIHRoaXMuZGF0ZUNoYW5nZShYQWRkRGF5cyhuZXcgRGF0ZSgpLCAtMSkpO1xyXG4gIH1cclxuXHJcbiAgb25Ub21vcnJvdygpIHtcclxuICAgIHRoaXMuZGF0ZUNoYW5nZShYQWRkRGF5cyhuZXcgRGF0ZSgpLCAxKSk7XHJcbiAgfVxyXG5cclxuICBvblByZXNldEZ1bmMoaXRlbTogWERhdGVQaWNrZXJQcmVzZXQpIHtcclxuICAgIHRoaXMuZGF0ZUNoYW5nZShpdGVtLmZ1bmMoKSk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RUaW1lKHRpbWU6IERhdGUpIHtcclxuICAgIGlmICghdGhpcy5tb2RlbCgpKSB7XHJcbiAgICAgIHRoaXMubW9kZWwuc2V0KG5ldyBEYXRlKCkpO1xyXG4gICAgfVxyXG4gICAgdGhpcy50aW1lLnNldCh0aW1lLmdldFRpbWUoKSk7XHJcbiAgICB0aGlzLm5vZGVDbGljay5lbWl0KHsgZGF0ZTogdGhpcy5zZXRNb2RlbFRpbWUodGhpcy5tb2RlbCgpISwgdGltZSksIHN1cmU6IGZhbHNlIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0TW9kZWxUaW1lKGRhdGU6IERhdGUsIHRpbWU6IERhdGUpIHtcclxuICAgIHRoaXMubW9kZWwuc2V0KFxyXG4gICAgICBuZXcgRGF0ZShcclxuICAgICAgICBkYXRlLmdldEZ1bGxZZWFyKCksXHJcbiAgICAgICAgZGF0ZS5nZXRNb250aCgpLFxyXG4gICAgICAgIGRhdGUuZ2V0RGF0ZSgpLFxyXG4gICAgICAgIHRpbWUuZ2V0SG91cnMoKSxcclxuICAgICAgICB0aW1lLmdldE1pbnV0ZXMoKSxcclxuICAgICAgICB0aW1lLmdldFNlY29uZHMoKVxyXG4gICAgICApXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHRoaXMubW9kZWwoKSE7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ4LWRhdGUtcGlja2VyLXBvcnRhbCB7eyB0eXBlKCkgfX1cIiAoY2xpY2spPVwiaW5wdXRDb20oKT8uaW5wdXRGb2N1cygnZm9jdXMnKVwiPlxyXG4gIEBzd2l0Y2ggKHR5cGUoKSkge1xyXG4gICAgQGNhc2UgKCdkYXRlJykge1xyXG4gICAgICA8eC1waWNrZXItZGF0ZVxyXG4gICAgICAgIFsoZGlzcGxheSldPVwiZGlzcGxheVwiXHJcbiAgICAgICAgWyhtb2RlbCldPVwibW9kZWxcIlxyXG4gICAgICAgIFsodHlwZSldPVwidHlwZVwiXHJcbiAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImRhdGVDaGFuZ2UoJGV2ZW50ISlcIlxyXG4gICAgICAgIFtkaXNhYmxlZERhdGVdPVwiZGlzYWJsZWREYXRlKClcIlxyXG4gICAgICA+PC94LXBpY2tlci1kYXRlPlxyXG4gICAgfVxyXG4gICAgQGNhc2UgKCd3ZWVrJykge1xyXG4gICAgICA8eC1waWNrZXItZGF0ZVxyXG4gICAgICAgIFsoZGlzcGxheSldPVwiZGlzcGxheVwiXHJcbiAgICAgICAgWyhtb2RlbCldPVwibW9kZWxcIlxyXG4gICAgICAgIFsodHlwZSldPVwidHlwZVwiXHJcbiAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImRhdGVDaGFuZ2UoJGV2ZW50ISlcIlxyXG4gICAgICAgIFtkaXNhYmxlZERhdGVdPVwiZGlzYWJsZWREYXRlKClcIlxyXG4gICAgICA+PC94LXBpY2tlci1kYXRlPlxyXG4gICAgfVxyXG4gICAgQGNhc2UgKCdtb250aCcpIHtcclxuICAgICAgPHgtcGlja2VyLW1vbnRoXHJcbiAgICAgICAgWyhkaXNwbGF5KV09XCJkaXNwbGF5XCJcclxuICAgICAgICBbKG1vZGVsKV09XCJtb2RlbFwiXHJcbiAgICAgICAgWyh0eXBlKV09XCJ0eXBlXCJcclxuICAgICAgICAobW9kZWxDaGFuZ2UpPVwibW9udGhDaGFuZ2UoJGV2ZW50ISlcIlxyXG4gICAgICAgIFtkaXNhYmxlZERhdGVdPVwiZGlzYWJsZWREYXRlKClcIlxyXG4gICAgICA+PC94LXBpY2tlci1tb250aD5cclxuICAgIH1cclxuICAgIEBjYXNlICgncXVhcnRlcicpIHtcclxuICAgICAgPHgtcGlja2VyLXF1YXJ0ZXJcclxuICAgICAgICBbKGRpc3BsYXkpXT1cImRpc3BsYXlcIlxyXG4gICAgICAgIFsobW9kZWwpXT1cIm1vZGVsXCJcclxuICAgICAgICBbKHR5cGUpXT1cInR5cGVcIlxyXG4gICAgICAgIChtb2RlbENoYW5nZSk9XCJxdWFydGVyQ2hhbmdlKCRldmVudCEpXCJcclxuICAgICAgICBbZGlzYWJsZWREYXRlXT1cImRpc2FibGVkRGF0ZSgpXCJcclxuICAgICAgPjwveC1waWNrZXItcXVhcnRlcj5cclxuICAgIH1cclxuICAgIEBjYXNlICgneWVhcicpIHtcclxuICAgICAgPHgtcGlja2VyLXllYXJcclxuICAgICAgICBbKGRpc3BsYXkpXT1cImRpc3BsYXlcIlxyXG4gICAgICAgIFsobW9kZWwpXT1cIm1vZGVsXCJcclxuICAgICAgICBbKHR5cGUpXT1cInR5cGVcIlxyXG4gICAgICAgIChtb2RlbENoYW5nZSk9XCJ5ZWFyQ2hhbmdlKCRldmVudCEpXCJcclxuICAgICAgICBbZGlzYWJsZWREYXRlXT1cImRpc2FibGVkRGF0ZSgpXCJcclxuICAgICAgPjwveC1waWNrZXIteWVhcj5cclxuICAgIH1cclxuICAgIEBjYXNlICgnZGF0ZS10aW1lJykge1xyXG4gICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkYXRlVGltZUhvdXJNaW51dGVUcGw7IGNvbnRleHQ6IHsgdGltZUZvcm1hdDogJ0hIOm1tOnNzJywgdGltZVR5cGU6ICd0aW1lJyB9XCJcclxuICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgfVxyXG4gICAgQGNhc2UgKCdkYXRlLWhvdXInKSB7XHJcbiAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImRhdGVUaW1lSG91ck1pbnV0ZVRwbDsgY29udGV4dDogeyB0aW1lRm9ybWF0OiAnSEgnLCB0aW1lVHlwZTogJ2hvdXInIH1cIlxyXG4gICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICB9XHJcbiAgICBAY2FzZSAoJ2RhdGUtbWludXRlJykge1xyXG4gICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkYXRlVGltZUhvdXJNaW51dGVUcGw7IGNvbnRleHQ6IHsgdGltZUZvcm1hdDogJ0hIOm1tJywgdGltZVR5cGU6ICdtaW51dGUnIH1cIlxyXG4gICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICB9XHJcbiAgICBAY2FzZSAoJ21vbnRoJykge31cclxuICB9XHJcbiAgQGlmIChpc0RhdGVQaWNrZXIoKSkge1xyXG4gICAgQGlmIChleHRyYUZvb3RlcigpKSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ4LWRhdGUtcGlja2VyLXBvcnRhbC1leHRyYS1mb290ZXJcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwiZXh0cmFGb290ZXIoKVwiPnt7IGV4dHJhRm9vdGVyKCkgfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicHJlc2V0VHBsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgfVxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZGF0ZVRpbWVIb3VyTWludXRlVHBsIGxldC10aW1lRm9ybWF0PVwidGltZUZvcm1hdFwiIGxldC10aW1lVHlwZT1cInRpbWVUeXBlXCI+XHJcbiAgPGRpdiBjbGFzcz1cIngtZGF0ZS1waWNrZXItcG9ydGFsLWNvbnRlbnRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LWRhdGUtcGlja2VyLXBvcnRhbC1kYXRlXCI+XHJcbiAgICAgIDx4LXBpY2tlci1kYXRlXHJcbiAgICAgICAgWyhkaXNwbGF5KV09XCJkaXNwbGF5XCJcclxuICAgICAgICBbKHR5cGUpXT1cInR5cGVcIlxyXG4gICAgICAgIFsobW9kZWwpXT1cIm1vZGVsXCJcclxuICAgICAgICAobW9kZWxDaGFuZ2UpPVwiZGF0ZUNoYW5nZSgkZXZlbnQhKVwiXHJcbiAgICAgICAgW2Rpc2FibGVkRGF0ZV09XCJkaXNhYmxlZERhdGUoKVwiXHJcbiAgICAgID48L3gtcGlja2VyLWRhdGU+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LWRhdGUtcGlja2VyLXBvcnRhbC10aW1lXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ4LWRhdGUtcGlja2VyLXBvcnRhbC10aW1lLWxhYmVsXCI+XHJcbiAgICAgICAge3sgdGltZSgpIHwgZGF0ZTogdGltZUZvcm1hdCB9fVxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPHgtdGltZS1waWNrZXItZnJhbWVcclxuICAgICAgICAjdGltZVBpY2tlckZyYW1lRFxyXG4gICAgICAgIFt0eXBlXT1cInRpbWVUeXBlXCJcclxuICAgICAgICBbdmFsdWVdPVwidGltZSgpXCJcclxuICAgICAgICAobm9kZUVtaXQpPVwic2VsZWN0VGltZSgkZXZlbnQpXCJcclxuICAgICAgICBbZGlzYWJsZWRUaW1lXT1cImRpc2FibGVkVGltZSgpXCJcclxuICAgICAgICBbZGVmYXVsdE5vd109XCJmYWxzZVwiXHJcbiAgICAgID48L3gtdGltZS1waWNrZXItZnJhbWU+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICBAaWYgKCFpc0RhdGVQaWNrZXIoKSAmJiBleHRyYUZvb3RlcigpKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1kYXRlLXBpY2tlci1wb3J0YWwtZXh0cmEtZm9vdGVyXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJleHRyYUZvb3RlcigpXCI+e3sgZXh0cmFGb290ZXIoKSB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG4gIDxkaXYgY2xhc3M9XCJ4LWRhdGUtcGlja2VyLXBvcnRhbC1mb290ZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LWRhdGUtcGlja2VyLXBvcnRhbC1mb290ZXItbGVmdFwiPlxyXG4gICAgICBAaWYgKCFpc0RhdGVQaWNrZXIoKSAmJiBwcmVzZXQoKSkge1xyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwcmVzZXRUcGxcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgICA8eC1idXR0b25cclxuICAgICAgdHlwZT1cInByaW1hcnlcIlxyXG4gICAgICB0ZXh0XHJcbiAgICAgIChjbGljayk9XCIhc3VyZURpc2FibGVkKCkgJiYgbm9kZUNsaWNrLmVtaXQoeyBkYXRlOiBtb2RlbCgpISwgc3VyZTogdHJ1ZSB9KVwiXHJcbiAgICAgIHNpemU9XCJzbWFsbFwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJzdXJlRGlzYWJsZWQoKVwiXHJcbiAgICAgID57eyBsb2NhbGUoKS5zdXJlIH19PC94LWJ1dHRvblxyXG4gICAgPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNwcmVzZXRUcGw+XHJcbiAgQGlmIChwcmVzZXQoKSkge1xyXG4gICAgPGRpdiBjbGFzcz1cIngtZGF0ZS1waWNrZXItcG9ydGFsLXByZXNldFwiPlxyXG4gICAgICBAZm9yIChpdGVtIG9mIHByZXNldCgpOyB0cmFjayBpdGVtKSB7XHJcbiAgICAgICAgQHN3aXRjaCAoaXRlbS5pZCkge1xyXG4gICAgICAgICAgQGNhc2UgKCd5ZXN0ZXJkYXknKSB7XHJcbiAgICAgICAgICAgIDx4LWxpbmsgKGNsaWNrKT1cIm9uWWVzdGVyZGF5KClcIj57eyBsb2NhbGUoKS55ZXN0ZXJkYXkgfX08L3gtbGluaz5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIEBjYXNlICgndG9kYXknKSB7XHJcbiAgICAgICAgICAgIDx4LWxpbmsgKGNsaWNrKT1cIm9uVG9kYXkoKVwiPnt7IGxvY2FsZSgpLnRvZGF5IH19PC94LWxpbms+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBAY2FzZSAoJ3RvbW9ycm93Jykge1xyXG4gICAgICAgICAgICA8eC1saW5rIChjbGljayk9XCJvblRvbW9ycm93KClcIj57eyBsb2NhbGUoKS50b21vcnJvdyB9fTwveC1saW5rPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBAaWYgKCEhaXRlbS5mdW5jKSB7XHJcbiAgICAgICAgICA8eC1saW5rIChjbGljayk9XCJvblByZXNldEZ1bmMoaXRlbSlcIj57eyBpdGVtLmxhYmVsIH19PC94LWxpbms+XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
@@ -311,10 +311,10 @@ export class XDatePickerComponent extends XDatePickerProperty {
|
|
|
311
311
|
this.ngOnInit();
|
|
312
312
|
}
|
|
313
313
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XDatePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
314
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.2", type: XDatePickerComponent, isStandalone: true, selector: "x-date-picker", providers: [XValueAccessor(XDatePickerComponent), DatePipe], viewQueries: [{ propertyName: "inputCom", first: true, predicate: ["inputCom"], descendants: true, read: XInputComponent, isSignal: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #datePicker class=\"x-date-picker\">\r\n <div class=\"x-date-picker-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label()\"\r\n [labelWidth]=\"labelWidth()\"\r\n [labelAlign]=\"labelAlign()\"\r\n [justify]=\"justify()\"\r\n [align]=\"align()\"\r\n [direction]=\"direction()\"\r\n [disabled]=\"disabledComputed()\"\r\n [required]=\"requiredComputed()\"\r\n [validator]=\"validatorComputed()\"\r\n [icon]=\"icon()\"\r\n [placeholder]=\"placeholderSignal()!\"\r\n [readonly]=\"readonly()\"\r\n [clearable]=\"clearable() && inputClearable()\"\r\n [ngModel]=\"
|
|
314
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.2", type: XDatePickerComponent, isStandalone: true, selector: "x-date-picker", providers: [XValueAccessor(XDatePickerComponent), DatePipe], viewQueries: [{ propertyName: "inputCom", first: true, predicate: ["inputCom"], descendants: true, read: XInputComponent, isSignal: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #datePicker class=\"x-date-picker\">\r\n <div class=\"x-date-picker-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label()\"\r\n [labelWidth]=\"labelWidth()\"\r\n [labelAlign]=\"labelAlign()\"\r\n [justify]=\"justify()\"\r\n [align]=\"align()\"\r\n [direction]=\"direction()\"\r\n [disabled]=\"disabledComputed()\"\r\n [required]=\"requiredComputed()\"\r\n [validator]=\"validatorComputed()\"\r\n [inputValidator]=\"inputValidator()\"\r\n [icon]=\"icon()\"\r\n [placeholder]=\"placeholderSignal()!\"\r\n [readonly]=\"readonly()\"\r\n [clearable]=\"clearable() && inputClearable()\"\r\n [(ngModel)]=\"value\"\r\n [valueTpl]=\"valueTpl() ? valueTpl() : valueTemplate\"\r\n [valueTplContext]=\"valueTplContext()\"\r\n [size]=\"size()\"\r\n [bordered]=\"bordered()\"\r\n [before]=\"before()\"\r\n [after]=\"after()\"\r\n [pattern]=\"patternComputed()\"\r\n [message]=\"messageComputed()\"\r\n [pointer]=\"pointer()\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xInput)=\"onInput()\"\r\n (xClick)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\r\n\r\n <ng-template #valueTemplate>\r\n {{ displayValue() }}\r\n </ng-template>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-date-picker{display:inline-block;width:12rem}.x-date-picker{margin:0;padding:0}.x-date-picker{width:100%}.x-date-picker x-input{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: XInputComponent, selector: "x-input" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
315
315
|
}
|
|
316
316
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XDatePickerComponent, decorators: [{
|
|
317
317
|
type: Component,
|
|
318
|
-
args: [{ selector: `${XDatePickerPrefix}`, standalone: true, imports: [FormsModule, ReactiveFormsModule, XInputComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XDatePickerComponent), DatePipe], template: "<div #datePicker class=\"x-date-picker\">\r\n <div class=\"x-date-picker-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label()\"\r\n [labelWidth]=\"labelWidth()\"\r\n [labelAlign]=\"labelAlign()\"\r\n [justify]=\"justify()\"\r\n [align]=\"align()\"\r\n [direction]=\"direction()\"\r\n [disabled]=\"disabledComputed()\"\r\n [required]=\"requiredComputed()\"\r\n [validator]=\"validatorComputed()\"\r\n [icon]=\"icon()\"\r\n [placeholder]=\"placeholderSignal()!\"\r\n [readonly]=\"readonly()\"\r\n [clearable]=\"clearable() && inputClearable()\"\r\n [ngModel]=\"
|
|
318
|
+
args: [{ selector: `${XDatePickerPrefix}`, standalone: true, imports: [FormsModule, ReactiveFormsModule, XInputComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XDatePickerComponent), DatePipe], template: "<div #datePicker class=\"x-date-picker\">\r\n <div class=\"x-date-picker-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label()\"\r\n [labelWidth]=\"labelWidth()\"\r\n [labelAlign]=\"labelAlign()\"\r\n [justify]=\"justify()\"\r\n [align]=\"align()\"\r\n [direction]=\"direction()\"\r\n [disabled]=\"disabledComputed()\"\r\n [required]=\"requiredComputed()\"\r\n [validator]=\"validatorComputed()\"\r\n [inputValidator]=\"inputValidator()\"\r\n [icon]=\"icon()\"\r\n [placeholder]=\"placeholderSignal()!\"\r\n [readonly]=\"readonly()\"\r\n [clearable]=\"clearable() && inputClearable()\"\r\n [(ngModel)]=\"value\"\r\n [valueTpl]=\"valueTpl() ? valueTpl() : valueTemplate\"\r\n [valueTplContext]=\"valueTplContext()\"\r\n [size]=\"size()\"\r\n [bordered]=\"bordered()\"\r\n [before]=\"before()\"\r\n [after]=\"after()\"\r\n [pattern]=\"patternComputed()\"\r\n [message]=\"messageComputed()\"\r\n [pointer]=\"pointer()\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xInput)=\"onInput()\"\r\n (xClick)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\r\n\r\n <ng-template #valueTemplate>\r\n {{ displayValue() }}\r\n </ng-template>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-date-picker{display:inline-block;width:12rem}.x-date-picker{margin:0;padding:0}.x-date-picker{width:100%}.x-date-picker x-input{width:100%}\n"] }]
|
|
319
319
|
}], ctorParameters: () => [] });
|
|
320
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGNBQWMsRUFBcUIsd0JBQXdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQ0wsU0FBUyxFQUVULGlCQUFpQixFQUNqQix1QkFBdUIsRUFDdkIsVUFBVSxFQUVWLGdCQUFnQixFQUVoQixNQUFNLEVBQ04sTUFBTSxFQUNOLFFBQVEsRUFDUixTQUFTLEVBRVQsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBd0IsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RyxPQUFPLEVBQ0wsUUFBUSxFQUNSLE9BQU8sRUFDUCxTQUFTLEVBQ1QsU0FBUyxFQUVULFNBQVMsRUFDVCxPQUFPLEVBQ1AsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixRQUFRLEVBRVQsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQ0wsT0FBTyxFQUtSLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1B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dkIsQ0FBQyxDQUFDLENBQUM7UUFJRCxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1RSxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNsRixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNwRSxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN4RSxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNsRixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1RSxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNwRixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMs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VyxFQUFFLG1CQUFtQixFQUFFLGVBQWUsQ0FBQyxpQkFHN0MsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLGNBQWMsc0JBQXNCLEVBQUUsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgWERhdGVQaWNrZXJQb3J0YWxDb21wb25lbnQgfSBmcm9tICcuL2RhdGUtcGlja2VyLXBvcnRhbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBYUG9ydGFsU2VydmljZSwgWFBvcnRhbE92ZXJsYXlSZWYsIFhQb3J0YWxDb25uZWN0ZWRQb3NpdGlvbiB9IGZyb20gJ0BuZy1uZXN0L3VpL3BvcnRhbCc7XHJcbmltcG9ydCB7IFN1YmplY3QsIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgRWxlbWVudFJlZixcclxuICBPbkNoYW5nZXMsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIGluamVjdCxcclxuICBzaWduYWwsXHJcbiAgY29tcHV0ZWQsXHJcbiAgdmlld0NoaWxkLFxyXG4gIENvbXBvbmVudFJlZixcclxuICBlZmZlY3RcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWERhdGVQaWNrZXJQcmVmaXgsIFhEYXRlUGlja2VyUHJvcGVydHksIFhEYXRlUGlja2VyTW9kZWxUeXBlIH0gZnJvbSAnLi9kYXRlLXBpY2tlci5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7XHJcbiAgWElzRW1wdHksXHJcbiAgWElzRGF0ZSxcclxuICBYSXNOdW1iZXIsXHJcbiAgWElzQ2hhbmdlLFxyXG4gIFhDb3JuZXIsXHJcbiAgWElzU3RyaW5nLFxyXG4gIFhJc051bGwsXHJcbiAgWERhdGVZZWFyV2VlayxcclxuICBYRGF0ZVllYXJRdWFydGVyLFxyXG4gIFhQYXJlbnRzLFxyXG4gIFhQbGFjZW1lbnRcclxufSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgWElucHV0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvaW5wdXQnO1xyXG5pbXBvcnQgeyBET0NVTUVOVCwgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIE92ZXJsYXksXHJcbiAgT3ZlcmxheUNvbmZpZyxcclxuICBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3ksXHJcbiAgQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlLFxyXG4gIE92ZXJsYXlSZWZcclxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcbmltcG9ydCB7IGZpbHRlciwgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFhWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQG5nLW5lc3QvdWkvYmFzZS1mb3JtJztcclxuaW1wb3J0IHsgWEkxOG5EYXRlUGlja2VyLCBYSTE4blNlcnZpY2UsIHpoX0NOIH0gZnJvbSAnQG5nLW5lc3QvdWkvaTE4bic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYRGF0ZVBpY2tlclByZWZpeH1gLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0Zvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBYSW5wdXRDb21wb25lbnRdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW1hWYWx1ZUFjY2Vzc29yKFhEYXRlUGlja2VyQ29tcG9uZW50KSwgRGF0ZVBpcGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYRGF0ZVBpY2tlckNvbXBvbmVudCBleHRlbmRzIFhEYXRlUGlja2VyUHJvcGVydHkgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgcHJpdmF0ZSBwb3J0YWxTZXJ2aWNlID0gaW5qZWN0KFhQb3J0YWxTZXJ2aWNlKTtcclxuICBwcml2YXRlIHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XHJcbiAgcHJpdmF0ZSBkYXRlUGlwZSA9IGluamVjdChEYXRlUGlwZSk7XHJcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KFhJMThuU2VydmljZSk7XHJcbiAgcHJpdmF0ZSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xyXG4gIHByaXZhdGUgb3ZlcmxheSA9IGluamVjdChPdmVybGF5KTtcclxuXHJcbiAgaW5wdXRDb20gPSB2aWV3Q2hpbGQucmVxdWlyZWQoJ2lucHV0Q29tJywgeyByZWFkOiBYSW5wdXRDb21wb25lbnQgfSk7XHJcblxyXG4gIG1vZGVsVHlwZSA9IHNpZ25hbDxYRGF0ZVBpY2tlck1vZGVsVHlwZT4oJ2RhdGUnKTtcclxuICBudW1iZXJWYWx1ZSA9IHNpZ25hbDxudW1iZXIgfCBzdHJpbmcgfCBudWxsPihudWxsKTtcclxuICBpc0lucHV0ID0gc2lnbmFsKGZhbHNlKTtcclxuXHJcbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAoWElzRGF0ZSh2YWx1ZSkpIHtcclxuICAgICAgdGhpcy5tb2RlbFR5cGUuc2V0KCdkYXRlJyk7XHJcbiAgICAgIHRoaXMubnVtYmVyVmFsdWUuc2V0KHZhbHVlLmdldFRpbWUoKSk7XHJcbiAgICB9IGVsc2UgaWYgKFhJc051bWJlcih2YWx1ZSkpIHtcclxuICAgICAgdGhpcy5tb2RlbFR5cGUuc2V0KCdudW1iZXInKTtcclxuICAgICAgdGhpcy5udW1iZXJWYWx1ZS5zZXQodmFsdWUpO1xyXG4gICAgfSBlbHNlIGlmIChYSXNTdHJpbmcodmFsdWUpKSB7XHJcbiAgICAgIHRoaXMubW9kZWxUeXBlLnNldCgnc3RyaW5nJyk7XHJcbiAgICAgIGNvbnN0IHZhbHVlVGltZSA9IG5ldyBEYXRlKHZhbHVlKS5nZXRUaW1lKCk7XHJcbiAgICAgIHRoaXMubnVtYmVyVmFsdWUuc2V0KCFpc05hTih2YWx1ZVRpbWUpID8gdmFsdWVUaW1lIDogJycpO1xyXG4gICAgfSBlbHNlIGlmIChYSXNFbXB0eSh2YWx1ZSkgfHwgWElzTnVsbCh2YWx1ZSkpIHtcclxuICAgICAgdGhpcy5udW1iZXJWYWx1ZS5zZXQoJycpO1xyXG4gICAgfVxyXG4gICAgdGhpcy52YWx1ZS5zZXQodmFsdWUpO1xyXG4gICAgdGhpcy5zZXREaXNwbGF5VmFsdWUodGhpcy5udW1iZXJWYWx1ZSgpISk7XHJcbiAgfVxyXG5cclxuICBlbnRlciA9IHNpZ25hbChmYWxzZSk7XHJcbiAgaW5wdXRDbGVhcmFibGUgPSBzaWduYWwoZmFsc2UpO1xyXG4gIGFuaW1hdGluZyA9IHNpZ25hbChmYWxzZSk7XHJcbiAgZGlzcGxheVZhbHVlID0gc2lnbmFsKCcnKTtcclxuICBwb3J0YWwhOiBYUG9ydGFsT3ZlcmxheVJlZjxYRGF0ZVBpY2tlclBvcnRhbENvbXBvbmVudD47XHJcbiAgaWNvbiA9IHNpZ25hbCgnZnRvLWNhbGVuZGFyJyk7XHJcbiAgY2xvc2VTdWJqZWN0OiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuICBsb2NhbGUgPSB0b1NpZ25hbCh0aGlzLmkxOG4ubG9jYWxlQ2hhbmdlLnBpcGUobWFwKCh4KSA9PiB4LmRhdGVQaWNrZXIgYXMgWEkxOG5EYXRlUGlja2VyKSksIHtcclxuICAgIGluaXRpYWxWYWx1ZTogemhfQ04uZGF0ZVBpY2tlclxyXG4gIH0pO1xyXG4gIGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcclxuXHJcbiAgcHJpdmF0ZSB1blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHByaXZhdGUgcmVhbFBsYWNlbWVudCA9IHNpZ25hbDxYUGxhY2VtZW50IHwgbnVsbD4obnVsbCk7XHJcbiAgcG9ydGFsQ29tcG9uZW50ID0gc2lnbmFsPENvbXBvbmVudFJlZjxYRGF0ZVBpY2tlclBvcnRhbENvbXBvbmVudD4gfCBudWxsPihudWxsKTtcclxuICBwb3J0YWxPdmVybGF5UmVmID0gc2lnbmFsPE92ZXJsYXlSZWYgfCBudWxsPihudWxsKTtcclxuXHJcbiAgcGxhY2Vob2xkZXJTaWduYWwgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICBpZiAodGhpcy5wbGFjZWhvbGRlcigpKSByZXR1cm4gdGhpcy5wbGFjZWhvbGRlcigpO1xyXG4gICAgaWYgKHRoaXMudHlwZSgpID09PSAnbW9udGgnKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxvY2FsZSgpLnNlbGVjdE1vbnRoO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUoKSA9PT0gJ3F1YXJ0ZXInKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxvY2FsZSgpLnNlbGVjdFF1YXJ0ZXI7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSgpID09PSAneWVhcicpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubG9jYWxlKCkuc2VsZWN0WWVhcjtcclxuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlKCkgPT09ICd3ZWVrJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5sb2NhbGUoKS5zZWxlY3RXZWVrO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMubG9jYWxlKCkuc2VsZWN0RGF0ZTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgZm9ybWF0U2lnbmFsID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgaWYgKHRoaXMuZm9ybWF0KCkgIT09ICd5eXl5LU1NLWRkJykgcmV0dXJuIHRoaXMuZm9ybWF0KCk7XHJcbiAgICBpZiAodGhpcy50eXBlKCkgPT09ICdkYXRlJykge1xyXG4gICAgICByZXR1cm4gJ3l5eXktTU0tZGQnO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUoKSA9PT0gJ3llYXInKSB7XHJcbiAgICAgIHJldHVybiAneXl5eSc7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSgpID09PSAncXVhcnRlcicpIHtcclxuICAgICAgcmV0dXJuICd5eXl5LU1NLWRkJztcclxuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlKCkgPT09ICdtb250aCcpIHtcclxuICAgICAgcmV0dXJuICd5eXl5LU1NJztcclxuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlKCkgPT09ICdkYXRlLXRpbWUnKSB7XHJcbiAgICAgIHJldHVybiAneXl5eS1NTS1kZCBISDptbTpzcyc7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSgpID09PSAnZGF0ZS1ob3VyJykge1xyXG4gICAgICByZXR1cm4gJ3l5eXktTU0tZGQgSEgnO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUoKSA9PT0gJ2RhdGUtbWludXRlJykge1xyXG4gICAgICByZXR1cm4gJ3l5eXktTU0tZGQgSEg6bW0nO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0KCk7XHJcbiAgfSk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIGVmZmVjdCgoKSA9PiB0aGlzLnBvcnRhbENvbXBvbmVudCgpPy5zZXRJbnB1dCgndmFsdWUnLCB0aGlzLm51bWJlclZhbHVlKCkpKTtcclxuICAgIGVmZmVjdCgoKSA9PiB0aGlzLnBvcnRhbENvbXBvbmVudCgpPy5zZXRJbnB1dCgncGxhY2VtZW50JywgdGhpcy5yZWFsUGxhY2VtZW50KCkpKTtcclxuICAgIGVmZmVjdCgoKSA9PiB0aGlzLnBvcnRhbENvbXBvbmVudCgpPy5zZXRJbnB1dCgndHlwZScsIHRoaXMudHlwZSgpKSk7XHJcbiAgICBlZmZlY3QoKCkgPT4gdGhpcy5wb3J0YWxDb21wb25lbnQoKT8uc2V0SW5wdXQoJ3ByZXNldCcsIHRoaXMucHJlc2V0KCkpKTtcclxuICAgIGVmZmVjdCgoKSA9PiB0aGlzLnBvcnRhbENvbXBvbmVudCgpPy5zZXRJbnB1dCgnZXh0cmFGb290ZXInLCB0aGlzLmV4dHJhRm9vdGVyKCkpKTtcclxuICAgIGVmZmVjdCgoKSA9PiB0aGlzLnBvcnRhbENvbXBvbmVudCgpPy5zZXRJbnB1dCgnaW5wdXRDb20nLCB0aGlzLmlucHV0Q29tKCkpKTtcclxuICAgIGVmZmVjdCgoKSA9PiB0aGlzLnBvcnRhbENvbXBvbmVudCgpPy5zZXRJbnB1dCgnZGlzYWJsZWREYXRlJywgdGhpcy5kaXNhYmxlZERhdGUoKSkpO1xyXG4gICAgZWZmZWN0KCgpID0+IHRoaXMucG9ydGFsQ29tcG9uZW50KCk/LnNldElucHV0KCdkaXNhYmxlZFRpbWUnLCB0aGlzLmRpc2FibGVkVGltZSgpKSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0U3ViamVjdCgpO1xyXG4gICAgdGhpcy5zZXRQYXJhbnRTY3JvbGwoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuc2V0UG9ydGFsKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjb25zdCB7IHR5cGUgfSA9IGNoYW5nZXM7XHJcbiAgICBpZiAoWElzQ2hhbmdlKHR5cGUpKSB7XHJcbiAgICAgIHRoaXMuc2V0RGlzcGxheVZhbHVlKHRoaXMubnVtYmVyVmFsdWUoKSEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnVuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLnVuU3ViamVjdC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0U3ViamVjdCgpIHtcclxuICAgIHRoaXMuY2xvc2VTdWJqZWN0LnBpcGUodGFrZVVudGlsKHRoaXMudW5TdWJqZWN0KSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5jbG9zZVBvcnRhbCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBtZW50ZXIoKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZENvbXB1dGVkKCkpIHJldHVybjtcclxuICAgIHRoaXMuZW50ZXIuc2V0KHRydWUpO1xyXG4gICAgaWYgKCF0aGlzLmNsZWFyYWJsZSgpKSByZXR1cm47XHJcbiAgICBpZiAoIVhJc0VtcHR5KHRoaXMubnVtYmVyVmFsdWUoKSkpIHtcclxuICAgICAgdGhpcy5pY29uLnNldCgnJyk7XHJcbiAgICAgIHRoaXMuaW5wdXRDbGVhcmFibGUuc2V0KHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbWxlYXZlKCkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWRDb21wdXRlZCgpKSByZXR1cm47XHJcbiAgICB0aGlzLmVudGVyLnNldChmYWxzZSk7XHJcbiAgICBpZiAoIXRoaXMuY2xlYXJhYmxlKCkpIHJldHVybjtcclxuICAgIGlmICh0aGlzLmlucHV0Q2xlYXJhYmxlKCkpIHtcclxuICAgICAgdGhpcy5pY29uLnNldCgnZnRvLWNhbGVuZGFyJyk7XHJcbiAgICAgIHRoaXMuaW5wdXRDbGVhcmFibGUuc2V0KGZhbHNlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFBhcmFudFNjcm9sbCgpIHtcclxuICAgIGlmICghdGhpcy5kb2N1bWVudCkgcmV0dXJuO1xyXG4gICAgY29uc3QgcGFyZW50cyA9IFhQYXJlbnRzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICAgIGxldCBmaXJzdFNjcm9sbDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcclxuICAgIGZvciAobGV0IGl0ZW0gb2YgcGFyZW50cykge1xyXG4gICAgICBpZiAoaXRlbS5jbGllbnRIZWlnaHQgPCBpdGVtLnNjcm9sbEhlaWdodCkge1xyXG4gICAgICAgIGZpcnN0U2Nyb2xsID0gaXRlbTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGZpcnN0U2Nyb2xsICYmIGZpcnN0U2Nyb2xsLnRhZ05hbWUgIT09ICdCT0RZJykge1xyXG4gICAgICBmcm9tRXZlbnQoZmlyc3RTY3JvbGwsICdzY3JvbGwnKVxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMucG9ydGFsQXR0YWNoZWQoKSEpLFxyXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMudW5TdWJqZWN0KVxyXG4gICAgICAgIClcclxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy51cGRhdGVQb3NpdGlvbigpO1xyXG4gICAgICAgICAgY29uc3QgZXJhY3QgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICAgIGNvbnN0IGZyZWN0ID0gZmlyc3RTY3JvbGwhLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgICAgaWYgKGVyYWN0LnRvcCArIGVyYWN0LmhlaWdodCAtIGZyZWN0LnRvcCA8IDAgfHwgZXJhY3QuYm90dG9tID4gZnJlY3QuYm90dG9tKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2VTdWJqZWN0Lm5leHQoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsZWFyRW1pdCgpIHtcclxuICAgIHRoaXMudmFsdWUuc2V0KG51bGwpO1xyXG4gICAgdGhpcy5udW1iZXJWYWx1ZS5zZXQobnVsbCk7XHJcbiAgICB0aGlzLmRpc3BsYXlWYWx1ZS5zZXQoJycpO1xyXG4gICAgdGhpcy5tbGVhdmUoKTtcclxuICAgIHRoaXMubW9kZWxDaGFuZ2UoKTtcclxuICB9XHJcblxyXG4gIG1vZGVsQ2hhbmdlKCkge1xyXG4gICAgaWYgKHRoaXMub25DaGFuZ2UpIHtcclxuICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLmdldFZhbHVlKCkpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5mb3JtQ29udHJvbFZhbGlkYXRvcigpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmFsdWUoKSB7XHJcbiAgICBpZiAodGhpcy5udW1iZXJWYWx1ZSgpID09PSAnJykgcmV0dXJuIG51bGw7XHJcbiAgICByZXR1cm4gWydkYXRlJywgJ3N0cmluZyddLmluY2x1ZGVzKHRoaXMubW9kZWxUeXBlKCkpID8gbmV3IERhdGUodGhpcy5udW1iZXJWYWx1ZSgpISkgOiB0aGlzLm51bWJlclZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBwb3J0YWxBdHRhY2hlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uaGFzQXR0YWNoZWQoKTtcclxuICB9XHJcblxyXG4gIGNsb3NlUG9ydGFsKCkge1xyXG4gICAgaWYgKHRoaXMucG9ydGFsQXR0YWNoZWQoKSkge1xyXG4gICAgICB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uZGV0YWNoKCk7XHJcbiAgICAgIHRoaXMuYWN0aXZlLnNldChmYWxzZSk7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZGVzdHJveVBvcnRhbCgpIHtcclxuICAgIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy5kaXNwb3NlKCk7XHJcbiAgfVxyXG5cclxuICBzaG93UG9ydGFsKCkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWRDb21wdXRlZCgpIHx8IHRoaXMuYW5pbWF0aW5nKCkpIHJldHVybjtcclxuICAgIHRoaXMuYWN0aXZlLnNldCh0cnVlKTtcclxuICAgIGNvbnN0IGNvbmZpZzogT3ZlcmxheUNvbmZpZyA9IHtcclxuICAgICAgYmFja2Ryb3BDbGFzczogJycsXHJcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMuc2V0UGxhY2VtZW50KCksXHJcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKClcclxuICAgIH07XHJcbiAgICB0aGlzLnNldFBvc2l0aW9uKGNvbmZpZyk7XHJcbiAgICB0aGlzLnBvcnRhbCA9IHRoaXMucG9ydGFsU2VydmljZS5hdHRhY2goe1xyXG4gICAgICBjb250ZW50OiBYRGF0ZVBpY2tlclBvcnRhbENvbXBvbmVudCxcclxuICAgICAgdmlld0NvbnRhaW5lclJlZjogdGhpcy52aWV3Q29udGFpbmVyUmVmLFxyXG4gICAgICBvdmVybGF5Q29uZmlnOiBjb25maWdcclxuICAgIH0pO1xyXG4gICAgdGhpcy5wb3J0YWwub3ZlcmxheVJlZlxyXG4gICAgICA/Lm91dHNpZGVQb2ludGVyRXZlbnRzKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5TdWJqZWN0KSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXREaXNwbGF5VmFsdWUodGhpcy5udW1iZXJWYWx1ZSgpISk7XHJcbiAgICAgICAgdGhpcy5jbG9zZVN1YmplY3QubmV4dCgpO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMuc2V0SW5zdGFuY2UoKTtcclxuICB9XHJcblxyXG4gIHNldFBvc2l0aW9uKGNvbmZpZzogT3ZlcmxheUNvbmZpZykge1xyXG4gICAgbGV0IHBvc2l0aW9uID0gY29uZmlnLnBvc2l0aW9uU3RyYXRlZ3kgYXMgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5O1xyXG4gICAgcG9zaXRpb24ucG9zaXRpb25DaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMudW5TdWJqZWN0KSkuc3Vic2NyaWJlKChwb3M6IENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZSkgPT4ge1xyXG4gICAgICBjb25zdCBwbGFjZSA9IFhQb3J0YWxDb25uZWN0ZWRQb3NpdGlvbi5nZXQocG9zLmNvbm5lY3Rpb25QYWlyKSBhcyBYQ29ybmVyO1xyXG4gICAgICBpZiAocGxhY2UgIT09IHRoaXMucmVhbFBsYWNlbWVudCgpKSB7XHJcbiAgICAgICAgdGhpcy5yZWFsUGxhY2VtZW50LnNldChwbGFjZSk7XHJcbiAgICAgICAgdGhpcy5wb3J0YWxPdmVybGF5UmVmKCk/LnVwZGF0ZVBvc2l0aW9uKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0SW5zdGFuY2UoKSB7XHJcbiAgICBsZXQgeyBjb21wb25lbnRSZWYsIG92ZXJsYXlSZWYgfSA9IHRoaXMucG9ydGFsO1xyXG4gICAgaWYgKCFjb21wb25lbnRSZWYgfHwgIW92ZXJsYXlSZWYpIHJldHVybjtcclxuICAgIHRoaXMucG9ydGFsQ29tcG9uZW50LnNldChjb21wb25lbnRSZWYpO1xyXG4gICAgdGhpcy5wb3J0YWxPdmVybGF5UmVmLnNldChvdmVybGF5UmVmKTtcclxuICAgIHRoaXMucmVhbFBsYWNlbWVudC5zZXQodGhpcy5wbGFjZW1lbnQoKSk7XHJcbiAgICBjb25zdCB7IG5vZGVDbGljaywgYW5pbWF0aW5nIH0gPSBjb21wb25lbnRSZWYuaW5zdGFuY2U7XHJcbiAgICBub2RlQ2xpY2suc3Vic2NyaWJlKCh4KSA9PiB0aGlzLm9uTm9kZUNsaWNrKHguZGF0ZSwgeC5zdXJlKSk7XHJcbiAgICBhbmltYXRpbmcuc3Vic2NyaWJlKChpbmcpID0+IHRoaXMuYW5pbWF0aW5nLnNldChpbmcpKTtcclxuICB9XHJcblxyXG4gIG9uTm9kZUNsaWNrKGRhdGU6IERhdGUsIHN1cmUgPSB0cnVlKSB7XHJcbiAgICB0aGlzLmlzSW5wdXQuc2V0KGZhbHNlKTtcclxuICAgIGlmIChzdXJlKSB7XHJcbiAgICAgIHRoaXMubnVtYmVyVmFsdWUuc2V0KGRhdGUuZ2V0VGltZSgpKTtcclxuICAgICAgdGhpcy52YWx1ZS5zZXQodGhpcy5nZXRWYWx1ZSgpKTtcclxuICAgICAgdGhpcy5zZXREaXNwbGF5VmFsdWUodGhpcy5udW1iZXJWYWx1ZSgpISk7XHJcbiAgICAgIHRoaXMuY2xvc2VTdWJqZWN0Lm5leHQoKTtcclxuICAgICAgdGhpcy5tb2RlbENoYW5nZSgpO1xyXG4gICAgICB0aGlzLm5vZGVFbWl0LmVtaXQoTnVtYmVyKHRoaXMubnVtYmVyVmFsdWUoKSkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXREaXNwbGF5VmFsdWUoZGF0ZS5nZXRUaW1lKCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25JbnB1dCgpIHtcclxuICAgIHRoaXMuaXNJbnB1dC5zZXQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBzZXREaXNwbGF5VmFsdWUoZGF0ZU51bWJlcjogbnVtYmVyIHwgc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy5pc0lucHV0KCkgJiYgIWlzTmFOKERhdGUucGFyc2UodGhpcy5kaXNwbGF5VmFsdWUoKSkpICYmICFbJ3dlZWsnLCAncXVhcnRlciddLmluY2x1ZGVzKHRoaXMudHlwZSgpKSkge1xyXG4gICAgICB0aGlzLmRpc3BsYXlWYWx1ZS5zZXQodGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5kaXNwbGF5VmFsdWUoKSwgdGhpcy5mb3JtYXRTaWduYWwoKSkhKTtcclxuICAgICAgdGhpcy5udW1iZXJWYWx1ZS5zZXQobmV3IERhdGUodGhpcy5kaXNwbGF5VmFsdWUoKSkuZ2V0VGltZSgpKTtcclxuICAgICAgdGhpcy52YWx1ZS5zZXQodGhpcy5nZXRWYWx1ZSgpKTtcclxuICAgICAgdGhpcy5tb2RlbENoYW5nZSgpO1xyXG4gICAgICB0aGlzLmlzSW5wdXQuc2V0KGZhbHNlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLnR5cGUoKSA9PT0gJ3dlZWsnKSB7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUuc2V0KFhEYXRlWWVhcldlZWsoZGF0ZU51bWJlcikpO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSgpID09PSAncXVhcnRlcicpIHtcclxuICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZS5zZXQoWERhdGVZZWFyUXVhcnRlcihkYXRlTnVtYmVyKSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUuc2V0KHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKGRhdGVOdW1iZXIsIHRoaXMuZm9ybWF0U2lnbmFsKCkpISk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFBsYWNlbWVudCgpIHtcclxuICAgIHJldHVybiB0aGlzLnBvcnRhbFNlcnZpY2Uuc2V0UGxhY2VtZW50KHtcclxuICAgICAgZWxlbWVudFJlZjogdGhpcy5pbnB1dENvbSgpLmlucHV0UmVmKCksXHJcbiAgICAgIHBsYWNlbWVudDogW3RoaXMucGxhY2VtZW50KCkgYXMgWENvcm5lciwgJ2JvdHRvbS1zdGFydCcsICdib3R0b20tZW5kJywgJ3RvcC1zdGFydCcsICd0b3AtZW5kJ10sXHJcbiAgICAgIHRyYW5zZm9ybU9yaWdpbk9uOiAneC1kYXRlLXBpY2tlci1wb3J0YWwnXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldFBvcnRhbCgpIHtcclxuICAgIHRoaXMucG9ydGFsQXR0YWNoZWQoKSAmJiB0aGlzLnBvcnRhbE92ZXJsYXlSZWYoKT8udXBkYXRlUG9zaXRpb25TdHJhdGVneSh0aGlzLnNldFBsYWNlbWVudCgpKTtcclxuICB9XHJcblxyXG4gIGZvcm1Db250cm9sQ2hhbmdlcygpIHtcclxuICAgIHRoaXMubmdPbkluaXQoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiAjZGF0ZVBpY2tlciBjbGFzcz1cIngtZGF0ZS1waWNrZXJcIj5cclxuICA8ZGl2IGNsYXNzPVwieC1kYXRlLXBpY2tlci1yb3dcIj5cclxuICAgIDx4LWlucHV0XHJcbiAgICAgICNpbnB1dENvbVxyXG4gICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgIFtsYWJlbF09XCJsYWJlbCgpXCJcclxuICAgICAgW2xhYmVsV2lkdGhdPVwibGFiZWxXaWR0aCgpXCJcclxuICAgICAgW2xhYmVsQWxpZ25dPVwibGFiZWxBbGlnbigpXCJcclxuICAgICAgW2p1c3RpZnldPVwianVzdGlmeSgpXCJcclxuICAgICAgW2FsaWduXT1cImFsaWduKClcIlxyXG4gICAgICBbZGlyZWN0aW9uXT1cImRpcmVjdGlvbigpXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkQ29tcHV0ZWQoKVwiXHJcbiAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZENvbXB1dGVkKClcIlxyXG4gICAgICBbdmFsaWRhdG9yXT1cInZhbGlkYXRvckNvbXB1dGVkKClcIlxyXG4gICAgICBbaWNvbl09XCJpY29uKClcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJTaWduYWwoKSFcIlxyXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHkoKVwiXHJcbiAgICAgIFtjbGVhcmFibGVdPVwiY2xlYXJhYmxlKCkgJiYgaW5wdXRDbGVhcmFibGUoKVwiXHJcbiAgICAgIFtuZ01vZGVsXT1cImRpc3BsYXlWYWx1ZSgpXCJcclxuICAgICAgW3ZhbHVlVHBsXT1cInZhbHVlVHBsKClcIlxyXG4gICAgICBbdmFsdWVUcGxDb250ZXh0XT1cInZhbHVlVHBsQ29udGV4dCgpXCJcclxuICAgICAgW3NpemVdPVwic2l6ZSgpXCJcclxuICAgICAgW2JvcmRlcmVkXT1cImJvcmRlcmVkKClcIlxyXG4gICAgICBbYmVmb3JlXT1cImJlZm9yZSgpXCJcclxuICAgICAgW2FmdGVyXT1cImFmdGVyKClcIlxyXG4gICAgICBbcGF0dGVybl09XCJwYXR0ZXJuQ29tcHV0ZWQoKVwiXHJcbiAgICAgIFttZXNzYWdlXT1cIm1lc3NhZ2VDb21wdXRlZCgpXCJcclxuICAgICAgW3BvaW50ZXJdPVwicG9pbnRlcigpXCJcclxuICAgICAgWyhhY3RpdmUpXT1cImFjdGl2ZVwiXHJcbiAgICAgIChjbGVhckVtaXQpPVwiY2xlYXJFbWl0KClcIlxyXG4gICAgICAoeElucHV0KT1cIm9uSW5wdXQoKVwiXHJcbiAgICAgICh4Q2xpY2spPVwic2hvd1BvcnRhbCgpXCJcclxuICAgICAgKHhNb3VzZWVudGVyKT1cIm1lbnRlcigpXCJcclxuICAgICAgKHhNb3VzZWxlYXZlKT1cIm1sZWF2ZSgpXCJcclxuICAgID48L3gtaW5wdXQ+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
320
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGNBQWMsRUFBcUIsd0JBQXdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQ0wsU0FBUyxFQUVULGlCQUFpQixFQUNqQix1QkFBdUIsRUFDdkIsVUFBVSxFQUVWLGdCQUFnQixFQUVoQixNQUFNLEVBQ04sTUFBTSxFQUNOLFFBQVEsRUFDUixTQUFTLEVBRVQsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBd0IsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RyxPQUFPLEVBQ0wsUUFBUSxFQUNSLE9BQU8sRUFDUCxTQUFTLEVBQ1QsU0FBUyxFQUVULFNBQVMsRUFDVCxPQUFPLEVBQ1AsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixRQUFRLEVBRVQsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQ0wsT0FBTyxFQUtSLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1B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dkIsQ0FBQyxDQUFDLENBQUM7UUFJRCxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1RSxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNsRixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNwRSxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN4RSxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNsRixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1RSxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNwRixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMs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VyxFQUFFLG1CQUFtQixFQUFFLGVBQWUsQ0FBQyxpQkFHN0MsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLGNBQWMsc0JBQXNCLEVBQUUsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgWERhdGVQaWNrZXJQb3J0YWxDb21wb25lbnQgfSBmcm9tICcuL2RhdGUtcGlja2VyLXBvcnRhbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBYUG9ydGFsU2VydmljZSwgWFBvcnRhbE92ZXJsYXlSZWYsIFhQb3J0YWxDb25uZWN0ZWRQb3NpdGlvbiB9IGZyb20gJ0BuZy1uZXN0L3VpL3BvcnRhbCc7XHJcbmltcG9ydCB7IFN1YmplY3QsIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgRWxlbWVudFJlZixcclxuICBPbkNoYW5nZXMsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIGluamVjdCxcclxuICBzaWduYWwsXHJcbiAgY29tcHV0ZWQsXHJcbiAgdmlld0NoaWxkLFxyXG4gIENvbXBvbmVudFJlZixcclxuICBlZmZlY3RcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWERhdGVQaWNrZXJQcmVmaXgsIFhEYXRlUGlja2VyUHJvcGVydHksIFhEYXRlUGlja2VyTW9kZWxUeXBlIH0gZnJvbSAnLi9kYXRlLXBpY2tlci5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7XHJcbiAgWElzRW1wdHksXHJcbiAgWElzRGF0ZSxcclxuICBYSXNOdW1iZXIsXHJcbiAgWElzQ2hhbmdlLFxyXG4gIFhDb3JuZXIsXHJcbiAgWElzU3RyaW5nLFxyXG4gIFhJc051bGwsXHJcbiAgWERhdGVZZWFyV2VlayxcclxuICBYRGF0ZVllYXJRdWFydGVyLFxyXG4gIFhQYXJlbnRzLFxyXG4gIFhQbGFjZW1lbnRcclxufSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgWElucHV0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvaW5wdXQnO1xyXG5pbXBvcnQgeyBET0NVTUVOVCwgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIE92ZXJsYXksXHJcbiAgT3ZlcmxheUNvbmZpZyxcclxuICBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3ksXHJcbiAgQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlLFxyXG4gIE92ZXJsYXlSZWZcclxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcbmltcG9ydCB7IGZpbHRlciwgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFhWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQG5nLW5lc3QvdWkvYmFzZS1mb3JtJztcclxuaW1wb3J0IHsgWEkxOG5EYXRlUGlja2VyLCBYSTE4blNlcnZpY2UsIHpoX0NOIH0gZnJvbSAnQG5nLW5lc3QvdWkvaTE4bic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYRGF0ZVBpY2tlclByZWZpeH1gLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0Zvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBYSW5wdXRDb21wb25lbnRdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW1hWYWx1ZUFjY2Vzc29yKFhEYXRlUGlja2VyQ29tcG9uZW50KSwgRGF0ZVBpcGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYRGF0ZVBpY2tlckNvbXBvbmVudCBleHRlbmRzIFhEYXRlUGlja2VyUHJvcGVydHkgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgcHJpdmF0ZSBwb3J0YWxTZXJ2aWNlID0gaW5qZWN0KFhQb3J0YWxTZXJ2aWNlKTtcclxuICBwcml2YXRlIHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XHJcbiAgcHJpdmF0ZSBkYXRlUGlwZSA9IGluamVjdChEYXRlUGlwZSk7XHJcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KFhJMThuU2VydmljZSk7XHJcbiAgcHJpdmF0ZSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xyXG4gIHByaXZhdGUgb3ZlcmxheSA9IGluamVjdChPdmVybGF5KTtcclxuXHJcbiAgaW5wdXRDb20gPSB2aWV3Q2hpbGQucmVxdWlyZWQoJ2lucHV0Q29tJywgeyByZWFkOiBYSW5wdXRDb21wb25lbnQgfSk7XHJcblxyXG4gIG1vZGVsVHlwZSA9IHNpZ25hbDxYRGF0ZVBpY2tlck1vZGVsVHlwZT4oJ2RhdGUnKTtcclxuICBudW1iZXJWYWx1ZSA9IHNpZ25hbDxudW1iZXIgfCBzdHJpbmcgfCBudWxsPihudWxsKTtcclxuICBpc0lucHV0ID0gc2lnbmFsKGZhbHNlKTtcclxuXHJcbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAoWElzRGF0ZSh2YWx1ZSkpIHtcclxuICAgICAgdGhpcy5tb2RlbFR5cGUuc2V0KCdkYXRlJyk7XHJcbiAgICAgIHRoaXMubnVtYmVyVmFsdWUuc2V0KHZhbHVlLmdldFRpbWUoKSk7XHJcbiAgICB9IGVsc2UgaWYgKFhJc051bWJlcih2YWx1ZSkpIHtcclxuICAgICAgdGhpcy5tb2RlbFR5cGUuc2V0KCdudW1iZXInKTtcclxuICAgICAgdGhpcy5udW1iZXJWYWx1ZS5zZXQodmFsdWUpO1xyXG4gICAgfSBlbHNlIGlmIChYSXNTdHJpbmcodmFsdWUpKSB7XHJcbiAgICAgIHRoaXMubW9kZWxUeXBlLnNldCgnc3RyaW5nJyk7XHJcbiAgICAgIGNvbnN0IHZhbHVlVGltZSA9IG5ldyBEYXRlKHZhbHVlKS5nZXRUaW1lKCk7XHJcbiAgICAgIHRoaXMubnVtYmVyVmFsdWUuc2V0KCFpc05hTih2YWx1ZVRpbWUpID8gdmFsdWVUaW1lIDogJycpO1xyXG4gICAgfSBlbHNlIGlmIChYSXNFbXB0eSh2YWx1ZSkgfHwgWElzTnVsbCh2YWx1ZSkpIHtcclxuICAgICAgdGhpcy5udW1iZXJWYWx1ZS5zZXQoJycpO1xyXG4gICAgfVxyXG4gICAgdGhpcy52YWx1ZS5zZXQodmFsdWUpO1xyXG4gICAgdGhpcy5zZXREaXNwbGF5VmFsdWUodGhpcy5udW1iZXJWYWx1ZSgpISk7XHJcbiAgfVxyXG5cclxuICBlbnRlciA9IHNpZ25hbChmYWxzZSk7XHJcbiAgaW5wdXRDbGVhcmFibGUgPSBzaWduYWwoZmFsc2UpO1xyXG4gIGFuaW1hdGluZyA9IHNpZ25hbChmYWxzZSk7XHJcbiAgZGlzcGxheVZhbHVlID0gc2lnbmFsKCcnKTtcclxuICBwb3J0YWwhOiBYUG9ydGFsT3ZlcmxheVJlZjxYRGF0ZVBpY2tlclBvcnRhbENvbXBvbmVudD47XHJcbiAgaWNvbiA9IHNpZ25hbCgnZnRvLWNhbGVuZGFyJyk7XHJcbiAgY2xvc2VTdWJqZWN0OiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuICBsb2NhbGUgPSB0b1NpZ25hbCh0aGlzLmkxOG4ubG9jYWxlQ2hhbmdlLnBpcGUobWFwKCh4KSA9PiB4LmRhdGVQaWNrZXIgYXMgWEkxOG5EYXRlUGlja2VyKSksIHtcclxuICAgIGluaXRpYWxWYWx1ZTogemhfQ04uZGF0ZVBpY2tlclxyXG4gIH0pO1xyXG4gIGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcclxuXHJcbiAgcHJpdmF0ZSB1blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHByaXZhdGUgcmVhbFBsYWNlbWVudCA9IHNpZ25hbDxYUGxhY2VtZW50IHwgbnVsbD4obnVsbCk7XHJcbiAgcG9ydGFsQ29tcG9uZW50ID0gc2lnbmFsPENvbXBvbmVudFJlZjxYRGF0ZVBpY2tlclBvcnRhbENvbXBvbmVudD4gfCBudWxsPihudWxsKTtcclxuICBwb3J0YWxPdmVybGF5UmVmID0gc2lnbmFsPE92ZXJsYXlSZWYgfCBudWxsPihudWxsKTtcclxuXHJcbiAgcGxhY2Vob2xkZXJTaWduYWwgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICBpZiAodGhpcy5wbGFjZWhvbGRlcigpKSByZXR1cm4gdGhpcy5wbGFjZWhvbGRlcigpO1xyXG4gICAgaWYgKHRoaXMudHlwZSgpID09PSAnbW9udGgnKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxvY2FsZSgpLnNlbGVjdE1vbnRoO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUoKSA9PT0gJ3F1YXJ0ZXInKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxvY2FsZSgpLnNlbGVjdFF1YXJ0ZXI7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSgpID09PSAneWVhcicpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubG9jYWxlKCkuc2VsZWN0WWVhcjtcclxuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlKCkgPT09ICd3ZWVrJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5sb2NhbGUoKS5zZWxlY3RXZWVrO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMubG9jYWxlKCkuc2VsZWN0RGF0ZTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgZm9ybWF0U2lnbmFsID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgaWYgKHRoaXMuZm9ybWF0KCkgIT09ICd5eXl5LU1NLWRkJykgcmV0dXJuIHRoaXMuZm9ybWF0KCk7XHJcbiAgICBpZiAodGhpcy50eXBlKCkgPT09ICdkYXRlJykge1xyXG4gICAgICByZXR1cm4gJ3l5eXktTU0tZGQnO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUoKSA9PT0gJ3llYXInKSB7XHJcbiAgICAgIHJldHVybiAneXl5eSc7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSgpID09PSAncXVhcnRlcicpIHtcclxuICAgICAgcmV0dXJuICd5eXl5LU1NLWRkJztcclxuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlKCkgPT09ICdtb250aCcpIHtcclxuICAgICAgcmV0dXJuICd5eXl5LU1NJztcclxuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlKCkgPT09ICdkYXRlLXRpbWUnKSB7XHJcbiAgICAgIHJldHVybiAneXl5eS1NTS1kZCBISDptbTpzcyc7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSgpID09PSAnZGF0ZS1ob3VyJykge1xyXG4gICAgICByZXR1cm4gJ3l5eXktTU0tZGQgSEgnO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUoKSA9PT0gJ2RhdGUtbWludXRlJykge1xyXG4gICAgICByZXR1cm4gJ3l5eXktTU0tZGQgSEg6bW0nO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0KCk7XHJcbiAgfSk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIGVmZmVjdCgoKSA9PiB0aGlzLnBvcnRhbENvbXBvbmVudCgpPy5zZXRJbnB1dCgndmFsdWUnLCB0aGlzLm51bWJlclZhbHVlKCkpKTtcclxuICAgIGVmZmVjdCgoKSA9PiB0aGlzLnBvcnRhbENvbXBvbmVudCgpPy5zZXRJbnB1dCgncGxhY2VtZW50JywgdGhpcy5yZWFsUGxhY2VtZW50KCkpKTtcclxuICAgIGVmZmVjdCgoKSA9PiB0aGlzLnBvcnRhbENvbXBvbmVudCgpPy5zZXRJbnB1dCgndHlwZScsIHRoaXMudHlwZSgpKSk7XHJcbiAgICBlZmZlY3QoKCkgPT4gdGhpcy5wb3J0YWxDb21wb25lbnQoKT8uc2V0SW5wdXQoJ3ByZXNldCcsIHRoaXMucHJlc2V0KCkpKTtcclxuICAgIGVmZmVjdCgoKSA9PiB0aGlzLnBvcnRhbENvbXBvbmVudCgpPy5zZXRJbnB1dCgnZXh0cmFGb290ZXInLCB0aGlzLmV4dHJhRm9vdGVyKCkpKTtcclxuICAgIGVmZmVjdCgoKSA9PiB0aGlzLnBvcnRhbENvbXBvbmVudCgpPy5zZXRJbnB1dCgnaW5wdXRDb20nLCB0aGlzLmlucHV0Q29tKCkpKTtcclxuICAgIGVmZmVjdCgoKSA9PiB0aGlzLnBvcnRhbENvbXBvbmVudCgpPy5zZXRJbnB1dCgnZGlzYWJsZWREYXRlJywgdGhpcy5kaXNhYmxlZERhdGUoKSkpO1xyXG4gICAgZWZmZWN0KCgpID0+IHRoaXMucG9ydGFsQ29tcG9uZW50KCk/LnNldElucHV0KCdkaXNhYmxlZFRpbWUnLCB0aGlzLmRpc2FibGVkVGltZSgpKSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0U3ViamVjdCgpO1xyXG4gICAgdGhpcy5zZXRQYXJhbnRTY3JvbGwoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuc2V0UG9ydGFsKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjb25zdCB7IHR5cGUgfSA9IGNoYW5nZXM7XHJcbiAgICBpZiAoWElzQ2hhbmdlKHR5cGUpKSB7XHJcbiAgICAgIHRoaXMuc2V0RGlzcGxheVZhbHVlKHRoaXMubnVtYmVyVmFsdWUoKSEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnVuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLnVuU3ViamVjdC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0U3ViamVjdCgpIHtcclxuICAgIHRoaXMuY2xvc2VTdWJqZWN0LnBpcGUodGFrZVVudGlsKHRoaXMudW5TdWJqZWN0KSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5jbG9zZVBvcnRhbCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBtZW50ZXIoKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZENvbXB1dGVkKCkpIHJldHVybjtcclxuICAgIHRoaXMuZW50ZXIuc2V0KHRydWUpO1xyXG4gICAgaWYgKCF0aGlzLmNsZWFyYWJsZSgpKSByZXR1cm47XHJcbiAgICBpZiAoIVhJc0VtcHR5KHRoaXMubnVtYmVyVmFsdWUoKSkpIHtcclxuICAgICAgdGhpcy5pY29uLnNldCgnJyk7XHJcbiAgICAgIHRoaXMuaW5wdXRDbGVhcmFibGUuc2V0KHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbWxlYXZlKCkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWRDb21wdXRlZCgpKSByZXR1cm47XHJcbiAgICB0aGlzLmVudGVyLnNldChmYWxzZSk7XHJcbiAgICBpZiAoIXRoaXMuY2xlYXJhYmxlKCkpIHJldHVybjtcclxuICAgIGlmICh0aGlzLmlucHV0Q2xlYXJhYmxlKCkpIHtcclxuICAgICAgdGhpcy5pY29uLnNldCgnZnRvLWNhbGVuZGFyJyk7XHJcbiAgICAgIHRoaXMuaW5wdXRDbGVhcmFibGUuc2V0KGZhbHNlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFBhcmFudFNjcm9sbCgpIHtcclxuICAgIGlmICghdGhpcy5kb2N1bWVudCkgcmV0dXJuO1xyXG4gICAgY29uc3QgcGFyZW50cyA9IFhQYXJlbnRzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICAgIGxldCBmaXJzdFNjcm9sbDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcclxuICAgIGZvciAobGV0IGl0ZW0gb2YgcGFyZW50cykge1xyXG4gICAgICBpZiAoaXRlbS5jbGllbnRIZWlnaHQgPCBpdGVtLnNjcm9sbEhlaWdodCkge1xyXG4gICAgICAgIGZpcnN0U2Nyb2xsID0gaXRlbTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGZpcnN0U2Nyb2xsICYmIGZpcnN0U2Nyb2xsLnRhZ05hbWUgIT09ICdCT0RZJykge1xyXG4gICAgICBmcm9tRXZlbnQoZmlyc3RTY3JvbGwsICdzY3JvbGwnKVxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMucG9ydGFsQXR0YWNoZWQoKSEpLFxyXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMudW5TdWJqZWN0KVxyXG4gICAgICAgIClcclxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy51cGRhdGVQb3NpdGlvbigpO1xyXG4gICAgICAgICAgY29uc3QgZXJhY3QgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICAgIGNvbnN0IGZyZWN0ID0gZmlyc3RTY3JvbGwhLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgICAgaWYgKGVyYWN0LnRvcCArIGVyYWN0LmhlaWdodCAtIGZyZWN0LnRvcCA8IDAgfHwgZXJhY3QuYm90dG9tID4gZnJlY3QuYm90dG9tKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2VTdWJqZWN0Lm5leHQoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsZWFyRW1pdCgpIHtcclxuICAgIHRoaXMudmFsdWUuc2V0KG51bGwpO1xyXG4gICAgdGhpcy5udW1iZXJWYWx1ZS5zZXQobnVsbCk7XHJcbiAgICB0aGlzLmRpc3BsYXlWYWx1ZS5zZXQoJycpO1xyXG4gICAgdGhpcy5tbGVhdmUoKTtcclxuICAgIHRoaXMubW9kZWxDaGFuZ2UoKTtcclxuICB9XHJcblxyXG4gIG1vZGVsQ2hhbmdlKCkge1xyXG4gICAgaWYgKHRoaXMub25DaGFuZ2UpIHtcclxuICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLmdldFZhbHVlKCkpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5mb3JtQ29udHJvbFZhbGlkYXRvcigpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmFsdWUoKSB7XHJcbiAgICBpZiAodGhpcy5udW1iZXJWYWx1ZSgpID09PSAnJykgcmV0dXJuIG51bGw7XHJcbiAgICByZXR1cm4gWydkYXRlJywgJ3N0cmluZyddLmluY2x1ZGVzKHRoaXMubW9kZWxUeXBlKCkpID8gbmV3IERhdGUodGhpcy5udW1iZXJWYWx1ZSgpISkgOiB0aGlzLm51bWJlclZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBwb3J0YWxBdHRhY2hlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uaGFzQXR0YWNoZWQoKTtcclxuICB9XHJcblxyXG4gIGNsb3NlUG9ydGFsKCkge1xyXG4gICAgaWYgKHRoaXMucG9ydGFsQXR0YWNoZWQoKSkge1xyXG4gICAgICB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uZGV0YWNoKCk7XHJcbiAgICAgIHRoaXMuYWN0aXZlLnNldChmYWxzZSk7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZGVzdHJveVBvcnRhbCgpIHtcclxuICAgIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy5kaXNwb3NlKCk7XHJcbiAgfVxyXG5cclxuICBzaG93UG9ydGFsKCkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWRDb21wdXRlZCgpIHx8IHRoaXMuYW5pbWF0aW5nKCkpIHJldHVybjtcclxuICAgIHRoaXMuYWN0aXZlLnNldCh0cnVlKTtcclxuICAgIGNvbnN0IGNvbmZpZzogT3ZlcmxheUNvbmZpZyA9IHtcclxuICAgICAgYmFja2Ryb3BDbGFzczogJycsXHJcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMuc2V0UGxhY2VtZW50KCksXHJcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKClcclxuICAgIH07XHJcbiAgICB0aGlzLnNldFBvc2l0aW9uKGNvbmZpZyk7XHJcbiAgICB0aGlzLnBvcnRhbCA9IHRoaXMucG9ydGFsU2VydmljZS5hdHRhY2goe1xyXG4gICAgICBjb250ZW50OiBYRGF0ZVBpY2tlclBvcnRhbENvbXBvbmVudCxcclxuICAgICAgdmlld0NvbnRhaW5lclJlZjogdGhpcy52aWV3Q29udGFpbmVyUmVmLFxyXG4gICAgICBvdmVybGF5Q29uZmlnOiBjb25maWdcclxuICAgIH0pO1xyXG4gICAgdGhpcy5wb3J0YWwub3ZlcmxheVJlZlxyXG4gICAgICA/Lm91dHNpZGVQb2ludGVyRXZlbnRzKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5TdWJqZWN0KSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXREaXNwbGF5VmFsdWUodGhpcy5udW1iZXJWYWx1ZSgpISk7XHJcbiAgICAgICAgdGhpcy5jbG9zZVN1YmplY3QubmV4dCgpO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMuc2V0SW5zdGFuY2UoKTtcclxuICB9XHJcblxyXG4gIHNldFBvc2l0aW9uKGNvbmZpZzogT3ZlcmxheUNvbmZpZykge1xyXG4gICAgbGV0IHBvc2l0aW9uID0gY29uZmlnLnBvc2l0aW9uU3RyYXRlZ3kgYXMgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5O1xyXG4gICAgcG9zaXRpb24ucG9zaXRpb25DaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMudW5TdWJqZWN0KSkuc3Vic2NyaWJlKChwb3M6IENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZSkgPT4ge1xyXG4gICAgICBjb25zdCBwbGFjZSA9IFhQb3J0YWxDb25uZWN0ZWRQb3NpdGlvbi5nZXQocG9zLmNvbm5lY3Rpb25QYWlyKSBhcyBYQ29ybmVyO1xyXG4gICAgICBpZiAocGxhY2UgIT09IHRoaXMucmVhbFBsYWNlbWVudCgpKSB7XHJcbiAgICAgICAgdGhpcy5yZWFsUGxhY2VtZW50LnNldChwbGFjZSk7XHJcbiAgICAgICAgdGhpcy5wb3J0YWxPdmVybGF5UmVmKCk/LnVwZGF0ZVBvc2l0aW9uKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0SW5zdGFuY2UoKSB7XHJcbiAgICBsZXQgeyBjb21wb25lbnRSZWYsIG92ZXJsYXlSZWYgfSA9IHRoaXMucG9ydGFsO1xyXG4gICAgaWYgKCFjb21wb25lbnRSZWYgfHwgIW92ZXJsYXlSZWYpIHJldHVybjtcclxuICAgIHRoaXMucG9ydGFsQ29tcG9uZW50LnNldChjb21wb25lbnRSZWYpO1xyXG4gICAgdGhpcy5wb3J0YWxPdmVybGF5UmVmLnNldChvdmVybGF5UmVmKTtcclxuICAgIHRoaXMucmVhbFBsYWNlbWVudC5zZXQodGhpcy5wbGFjZW1lbnQoKSk7XHJcbiAgICBjb25zdCB7IG5vZGVDbGljaywgYW5pbWF0aW5nIH0gPSBjb21wb25lbnRSZWYuaW5zdGFuY2U7XHJcbiAgICBub2RlQ2xpY2suc3Vic2NyaWJlKCh4KSA9PiB0aGlzLm9uTm9kZUNsaWNrKHguZGF0ZSwgeC5zdXJlKSk7XHJcbiAgICBhbmltYXRpbmcuc3Vic2NyaWJlKChpbmcpID0+IHRoaXMuYW5pbWF0aW5nLnNldChpbmcpKTtcclxuICB9XHJcblxyXG4gIG9uTm9kZUNsaWNrKGRhdGU6IERhdGUsIHN1cmUgPSB0cnVlKSB7XHJcbiAgICB0aGlzLmlzSW5wdXQuc2V0KGZhbHNlKTtcclxuICAgIGlmIChzdXJlKSB7XHJcbiAgICAgIHRoaXMubnVtYmVyVmFsdWUuc2V0KGRhdGUuZ2V0VGltZSgpKTtcclxuICAgICAgdGhpcy52YWx1ZS5zZXQodGhpcy5nZXRWYWx1ZSgpKTtcclxuICAgICAgdGhpcy5zZXREaXNwbGF5VmFsdWUodGhpcy5udW1iZXJWYWx1ZSgpISk7XHJcbiAgICAgIHRoaXMuY2xvc2VTdWJqZWN0Lm5leHQoKTtcclxuICAgICAgdGhpcy5tb2RlbENoYW5nZSgpO1xyXG4gICAgICB0aGlzLm5vZGVFbWl0LmVtaXQoTnVtYmVyKHRoaXMubnVtYmVyVmFsdWUoKSkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXREaXNwbGF5VmFsdWUoZGF0ZS5nZXRUaW1lKCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25JbnB1dCgpIHtcclxuICAgIHRoaXMuaXNJbnB1dC5zZXQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBzZXREaXNwbGF5VmFsdWUoZGF0ZU51bWJlcjogbnVtYmVyIHwgc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy5pc0lucHV0KCkgJiYgIWlzTmFOKERhdGUucGFyc2UodGhpcy5kaXNwbGF5VmFsdWUoKSkpICYmICFbJ3dlZWsnLCAncXVhcnRlciddLmluY2x1ZGVzKHRoaXMudHlwZSgpKSkge1xyXG4gICAgICB0aGlzLmRpc3BsYXlWYWx1ZS5zZXQodGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5kaXNwbGF5VmFsdWUoKSwgdGhpcy5mb3JtYXRTaWduYWwoKSkhKTtcclxuICAgICAgdGhpcy5udW1iZXJWYWx1ZS5zZXQobmV3IERhdGUodGhpcy5kaXNwbGF5VmFsdWUoKSkuZ2V0VGltZSgpKTtcclxuICAgICAgdGhpcy52YWx1ZS5zZXQodGhpcy5nZXRWYWx1ZSgpKTtcclxuICAgICAgdGhpcy5tb2RlbENoYW5nZSgpO1xyXG4gICAgICB0aGlzLmlzSW5wdXQuc2V0KGZhbHNlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLnR5cGUoKSA9PT0gJ3dlZWsnKSB7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUuc2V0KFhEYXRlWWVhcldlZWsoZGF0ZU51bWJlcikpO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSgpID09PSAncXVhcnRlcicpIHtcclxuICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZS5zZXQoWERhdGVZZWFyUXVhcnRlcihkYXRlTnVtYmVyKSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUuc2V0KHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKGRhdGVOdW1iZXIsIHRoaXMuZm9ybWF0U2lnbmFsKCkpISk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFBsYWNlbWVudCgpIHtcclxuICAgIHJldHVybiB0aGlzLnBvcnRhbFNlcnZpY2Uuc2V0UGxhY2VtZW50KHtcclxuICAgICAgZWxlbWVudFJlZjogdGhpcy5pbnB1dENvbSgpLmlucHV0UmVmKCksXHJcbiAgICAgIHBsYWNlbWVudDogW3RoaXMucGxhY2VtZW50KCkgYXMgWENvcm5lciwgJ2JvdHRvbS1zdGFydCcsICdib3R0b20tZW5kJywgJ3RvcC1zdGFydCcsICd0b3AtZW5kJ10sXHJcbiAgICAgIHRyYW5zZm9ybU9yaWdpbk9uOiAneC1kYXRlLXBpY2tlci1wb3J0YWwnXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldFBvcnRhbCgpIHtcclxuICAgIHRoaXMucG9ydGFsQXR0YWNoZWQoKSAmJiB0aGlzLnBvcnRhbE92ZXJsYXlSZWYoKT8udXBkYXRlUG9zaXRpb25TdHJhdGVneSh0aGlzLnNldFBsYWNlbWVudCgpKTtcclxuICB9XHJcblxyXG4gIGZvcm1Db250cm9sQ2hhbmdlcygpIHtcclxuICAgIHRoaXMubmdPbkluaXQoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiAjZGF0ZVBpY2tlciBjbGFzcz1cIngtZGF0ZS1waWNrZXJcIj5cclxuICA8ZGl2IGNsYXNzPVwieC1kYXRlLXBpY2tlci1yb3dcIj5cclxuICAgIDx4LWlucHV0XHJcbiAgICAgICNpbnB1dENvbVxyXG4gICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgIFtsYWJlbF09XCJsYWJlbCgpXCJcclxuICAgICAgW2xhYmVsV2lkdGhdPVwibGFiZWxXaWR0aCgpXCJcclxuICAgICAgW2xhYmVsQWxpZ25dPVwibGFiZWxBbGlnbigpXCJcclxuICAgICAgW2p1c3RpZnldPVwianVzdGlmeSgpXCJcclxuICAgICAgW2FsaWduXT1cImFsaWduKClcIlxyXG4gICAgICBbZGlyZWN0aW9uXT1cImRpcmVjdGlvbigpXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkQ29tcHV0ZWQoKVwiXHJcbiAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZENvbXB1dGVkKClcIlxyXG4gICAgICBbdmFsaWRhdG9yXT1cInZhbGlkYXRvckNvbXB1dGVkKClcIlxyXG4gICAgICBbaW5wdXRWYWxpZGF0b3JdPVwiaW5wdXRWYWxpZGF0b3IoKVwiXHJcbiAgICAgIFtpY29uXT1cImljb24oKVwiXHJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclNpZ25hbCgpIVwiXHJcbiAgICAgIFtyZWFkb25seV09XCJyZWFkb25seSgpXCJcclxuICAgICAgW2NsZWFyYWJsZV09XCJjbGVhcmFibGUoKSAmJiBpbnB1dENsZWFyYWJsZSgpXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgICAgIFt2YWx1ZVRwbF09XCJ2YWx1ZVRwbCgpID8gdmFsdWVUcGwoKSA6IHZhbHVlVGVtcGxhdGVcIlxyXG4gICAgICBbdmFsdWVUcGxDb250ZXh0XT1cInZhbHVlVHBsQ29udGV4dCgpXCJcclxuICAgICAgW3NpemVdPVwic2l6ZSgpXCJcclxuICAgICAgW2JvcmRlcmVkXT1cImJvcmRlcmVkKClcIlxyXG4gICAgICBbYmVmb3JlXT1cImJlZm9yZSgpXCJcclxuICAgICAgW2FmdGVyXT1cImFmdGVyKClcIlxyXG4gICAgICBbcGF0dGVybl09XCJwYXR0ZXJuQ29tcHV0ZWQoKVwiXHJcbiAgICAgIFttZXNzYWdlXT1cIm1lc3NhZ2VDb21wdXRlZCgpXCJcclxuICAgICAgW3BvaW50ZXJdPVwicG9pbnRlcigpXCJcclxuICAgICAgWyhhY3RpdmUpXT1cImFjdGl2ZVwiXHJcbiAgICAgIChjbGVhckVtaXQpPVwiY2xlYXJFbWl0KClcIlxyXG4gICAgICAoeElucHV0KT1cIm9uSW5wdXQoKVwiXHJcbiAgICAgICh4Q2xpY2spPVwic2hvd1BvcnRhbCgpXCJcclxuICAgICAgKHhNb3VzZWVudGVyKT1cIm1lbnRlcigpXCJcclxuICAgICAgKHhNb3VzZWxlYXZlKT1cIm1sZWF2ZSgpXCJcclxuICAgID48L3gtaW5wdXQ+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlICN2YWx1ZVRlbXBsYXRlPlxyXG4gICAgICB7eyBkaXNwbGF5VmFsdWUoKSB9fVxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|