@eui/components 15.5.0-snapshot-1694093393657 → 15.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/dependencies.html +2 -2
- package/docs/js/search/search_index.js +2 -2
- package/esm2020/eui-table/eui-table.component.mjs +5 -1
- package/eui-table/eui-table.component.d.ts.map +1 -1
- package/fesm2015/eui-components-eui-table.mjs +4 -0
- package/fesm2015/eui-components-eui-table.mjs.map +1 -1
- package/fesm2020/eui-components-eui-table.mjs +4 -0
- package/fesm2020/eui-components-eui-table.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -359,6 +359,8 @@ export class EuiTableComponent extends BaseDirective {
|
|
|
359
359
|
}
|
|
360
360
|
}
|
|
361
361
|
}
|
|
362
|
+
//This function is to do the sorting the table with the combination of 0,null and text in descending order.
|
|
363
|
+
//getObjPropValue is to get the object property value
|
|
362
364
|
sortTwoRowsDesc(a, b, colName) {
|
|
363
365
|
const aSortOn = this.getObjPropValue(a, colName);
|
|
364
366
|
const bSortOn = this.getObjPropValue(b, colName);
|
|
@@ -381,6 +383,8 @@ export class EuiTableComponent extends BaseDirective {
|
|
|
381
383
|
return aSortOn < bSortOn ? 1 : aSortOn > bSortOn ? -1 : 0;
|
|
382
384
|
}
|
|
383
385
|
}
|
|
386
|
+
//This function is to do the sorting the table with the combination of 0,null and text in ascending order.
|
|
387
|
+
//getObjPropValue is to get the object property value
|
|
384
388
|
sortTwoRowsAsc(a, b, colName) {
|
|
385
389
|
const aSortOn = this.getObjPropValue(a, colName);
|
|
386
390
|
const bSortOn = this.getObjPropValue(b, colName);
|
|
@@ -502,4 +506,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
502
506
|
type: HostBinding,
|
|
503
507
|
args: ['class']
|
|
504
508
|
}] } });
|
|
505
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V1aS10YWJsZS9ldWktdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXRhYmxlL2V1aS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxlQUFlLEVBRWYsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBSUwsTUFBTSxFQUlOLFNBQVMsRUFDVCxpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLHFCQUFxQixFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBRTVFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUd2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUd4RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUUzRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7O0FBVTNELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxhQUFhO0lBeUdoRCxZQUNZLG1CQUF3QyxFQUN4QyxFQUFxQixFQUNyQiw0QkFBMEQsRUFDMUQsVUFBc0I7UUFFOUIsS0FBSyxFQUFFLENBQUM7UUFMQSx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ3JCLGlDQUE0QixHQUE1Qiw0QkFBNEIsQ0FBOEI7UUFD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T0FBTztnQkFDeUIsVUFBVTtzQkFBdEQsV0FBVzt1QkFBQywwQkFBMEI7Z0JBSTdCLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQWFnQyxTQUFTO3NCQUEvQyxlQUFlO3VCQUFDLG9CQUFvQjtnQkFFZCxRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVU7Z0JBQ0UsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQUdSLE9BQU87c0JBQW5CLEtBQUs7Z0JBSUYsVUFBVTtzQkFEYixLQUFLO2dCQUtGLFNBQVM7c0JBRFosS0FBSztnQkFLRixrQkFBa0I7c0JBRHJCLEtBQUs7Z0JBS0YsbUJBQW1CO3NCQUR0QixLQUFLO2dCQUtGLGlCQUFpQjtzQkFEcEIsS0FBSztnQkFLRixhQUFhO3NCQURoQixLQUFLO2dCQUtGLGdCQUFnQjtzQkFEbkIsS0FBSztnQkFLRixlQUFlO3NCQURsQixLQUFLO2dCQUtGLGVBQWU7c0JBRGxCLEtBQUs7Z0JBS0YsZ0JBQWdCO3NCQURuQixLQUFLO2dCQWFGLFVBQVU7c0JBRGIsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5cbmltcG9ydCB7IEV1aVRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgQmFzZURpcmVjdGl2ZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9zaGFyZWQnO1xuaW1wb3J0IHsgRXVpUGFnaW5hdG9yQ29tcG9uZW50IH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2V1aS1wYWdpbmF0b3InO1xuXG5pbXBvcnQgeyBFdWlUYWJsZVNvcnRTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9ldWktdGFibGUtc29ydC5zZXJ2aWNlJztcbmltcG9ydCB7IFBhZ2luYXRpb25FdmVudCB9IGZyb20gJy4vbW9kZWxzL3BhZ2luYXRpb24tZXZlbnQubW9kZWwnO1xuaW1wb3J0IHsgRXVpVGFibGVGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2ZpbHRlci9ldWktdGFibGUtZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFdWlUYWJsZVNlbGVjdGFibGVSb3dTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9ldWktdGFibGUtc2VsZWN0YWJsZS1yb3cuc2VydmljZSc7XG5pbXBvcnQgeyBTb3J0RXZlbnQgfSBmcm9tICcuL21vZGVscy9zb3J0LWV2ZW50Lm1vZGVsJztcbmltcG9ydCB7IE11bHRpc29ydFBhcmFtIH0gZnJvbSAnLi9tb2RlbHMvbXVsdGktc29ydC5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXVpLXRhYmxlLCB0YWJsZVtldWlUYWJsZV0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ldWktdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3N0eWxlcy9faW5kZXguc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbRXVpVGFibGVTb3J0U2VydmljZSwgRXVpVGFibGVTZWxlY3RhYmxlUm93U2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIEV1aVRhYmxlQ29tcG9uZW50IGV4dGVuZHMgQmFzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuICAgIEBJbnB1dCgpIHJvd3M6IGFueVtdID0gW107XG4gICAgQElucHV0KCkgcHJvcElkID0gJ2lkJztcbiAgICBASW5wdXQoKSBwYWdpbmF0b3I6IEV1aVBhZ2luYXRvckNvbXBvbmVudDtcbiAgICBASW5wdXQoKSBmaWx0ZXI6IEV1aVRhYmxlRmlsdGVyQ29tcG9uZW50O1xuICAgIEBJbnB1dCgpIHByZXNlbGVjdGVkUm93czogYW55W10gPSBbXTtcbiAgICAvKiogQGRlcHJlY2F0ZWQgU2luY2UgZXVpLXRhYmxlIHVzZXMgbmF0aXZlIENTUyBwb3NpdGlvbiBzdGlja3ksIHBhc3NpbmcgdGhlIHJlZmVyZW5jZSBvZiBjb250YWluZXIgaXMgbm8gbG9uZ2VyIG5lZWRlZC5cbiAgICAgKiBJdCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIGZ1dHVyZSB2ZXJzaW9uIG9mIGVVSVxuICAgICAqICovXG4gICAgQElucHV0KCkgc2Nyb2xsYWJsZUNvbnRhaW5lclJlZjogRWxlbWVudDtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBzdHJpbmcgPSAnZXVpLXRhYmxlJztcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmV1aS10YWJsZV9fbG9hZGluZycpIGdldCBoYXNMb2FkaW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2FkaW5nO1xuICAgIH1cblxuICAgIEBPdXRwdXQoKSBzZWxlY3RlZFJvd3MgPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xuICAgIEBPdXRwdXQoKSBzb3J0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTb3J0RXZlbnQ+KCk7XG4gICAgQE91dHB1dCgpIG11bHRpU29ydENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8TXVsdGlzb3J0UGFyYW1bXT4oKTtcblxuICAgIHB1YmxpYyBoZWFkZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBwdWJsaWMgYm9keVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIHB1YmxpYyBmb290ZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBwdWJsaWMgZW1wdHlNZXNzYWdlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgcHVibGljIHJvd3NSZW5kZXJlZDogYW55W10gPSBbXTtcblxuICAgIHB1YmxpYyBwYWdlID0gMDtcbiAgICBwdWJsaWMgcGFnZVNpemUgPSAwO1xuICAgIHB1YmxpYyBzaG93U3RpY2t5SGVhZGVyID0gZmFsc2U7XG4gICAgcHVibGljIGZpbHRlcmVkUm93cyA9IFtdO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihFdWlUZW1wbGF0ZURpcmVjdGl2ZSkgdGVtcGxhdGVzOiBRdWVyeUxpc3Q8RXVpVGVtcGxhdGVEaXJlY3RpdmU+O1xuXG4gICAgQFZpZXdDaGlsZCgndGhlYWRSZWYnKSB0aGVhZFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gICAgQFZpZXdDaGlsZCgndGJvZHlSZWYnKSB0Ym9keVJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBwcmV0dGllci9wcmV0dGllciAqL1xuICAgIEBJbnB1dCgpIGdldCBsb2FkaW5nKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fbG9hZGluZzsgfVxuICAgIHNldCBsb2FkaW5nKHZhbHVlOiBCb29sZWFuSW5wdXQpIHsgdGhpcy5fbG9hZGluZyA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7IH1cbiAgICBwcml2YXRlIF9sb2FkaW5nID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgYXN5bmNUYWJsZSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2FzeW5jVGFibGU7IH1cbiAgICBzZXQgYXN5bmNUYWJsZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7IHRoaXMuX2FzeW5jVGFibGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpOyB9XG4gICAgcHJpdmF0ZSBfYXN5bmNUYWJsZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IHBhZ2luYWJsZSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX3BhZ2luYWJsZTsgfVxuICAgIHNldCBwYWdpbmFibGUodmFsdWU6IEJvb2xlYW5JbnB1dCkgeyB0aGlzLl9wYWdpbmFibGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpOyB9XG4gICAgcHJpdmF0ZSBfcGFnaW5hYmxlID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgZXVpVGFibGVSZXNwb25zaXZlKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fZXVpVGFibGVSZXNwb25zaXZlOyB9XG4gICAgc2V0IGV1aVRhYmxlUmVzcG9uc2l2ZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7IHRoaXMuX2V1aVRhYmxlUmVzcG9uc2l2ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7IH1cbiAgICBwcml2YXRlIF9ldWlUYWJsZVJlc3BvbnNpdmUgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBldWlUYWJsZUZpeGVkTGF5b3V0KCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fZXVpVGFibGVGaXhlZExheW91dDsgfVxuICAgIHNldCBldWlUYWJsZUZpeGVkTGF5b3V0KHZhbHVlOiBCb29sZWFuSW5wdXQpIHsgdGhpcy5fZXVpVGFibGVGaXhlZExheW91dCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7IH1cbiAgICBwcml2YXRlIF9ldWlUYWJsZUZpeGVkTGF5b3V0ID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgZXVpVGFibGVEcmFnZ2FibGUoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9ldWlUYWJsZURyYWdnYWJsZTsgfVxuICAgIHNldCBldWlUYWJsZURyYWdnYWJsZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7IHRoaXMuX2V1aVRhYmxlRHJhZ2dhYmxlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTsgfVxuICAgIHByaXZhdGUgX2V1aVRhYmxlRHJhZ2dhYmxlID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgZXVpVGFibGVDYXJkcygpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2V1aVRhYmxlQ2FyZHM7IH1cbiAgICBzZXQgZXVpVGFibGVDYXJkcyh2YWx1ZTogQm9vbGVhbklucHV0KSB7IHRoaXMuX2V1aVRhYmxlQ2FyZHMgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpOyB9XG4gICAgcHJpdmF0ZSBfZXVpVGFibGVDYXJkcyA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGV1aVRhYmxlQm9yZGVyZWQoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9ldWlUYWJsZUJvcmRlcmVkOyB9XG4gICAgc2V0IGV1aVRhYmxlQm9yZGVyZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkgeyB0aGlzLl9ldWlUYWJsZUJvcmRlcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTsgfVxuICAgIHByaXZhdGUgX2V1aVRhYmxlQm9yZGVyZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBldWlUYWJsZUNvbXBhY3QoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9ldWlUYWJsZUNvbXBhY3Q7IH1cbiAgICBzZXQgZXVpVGFibGVDb21wYWN0KHZhbHVlOiBCb29sZWFuSW5wdXQpIHsgdGhpcy5fZXVpVGFibGVDb21wYWN0ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTsgfVxuICAgIHByaXZhdGUgX2V1aVRhYmxlQ29tcGFjdCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGhhc1N0aWNreUhlYWRlcigpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2hhc1N0aWNreUhlYWRlcjsgfVxuICAgIHNldCBoYXNTdGlja3lIZWFkZXIodmFsdWU6IEJvb2xlYW5JbnB1dCkgeyB0aGlzLl9oYXNTdGlja3lIZWFkZXIgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpOyB9XG4gICAgcHJpdmF0ZSBfaGFzU3RpY2t5SGVhZGVyID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaGFzU3RpY2t5Q29sdW1ucygpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2hhc1N0aWNreUNvbHVtbnM7IH1cbiAgICBzZXQgaGFzU3RpY2t5Q29sdW1ucyh2YWx1ZTogQm9vbGVhbklucHV0KSB7IHRoaXMuX2hhc1N0aWNreUNvbHVtbnMgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpOyB9XG4gICAgcHJpdmF0ZSBfaGFzU3RpY2t5Q29sdW1ucyA9IGZhbHNlO1xuICAgIC8qIGVzbGludC1lbmFibGUgcHJldHRpZXIvcHJldHRpZXIgKi9cblxuICAgIHByaXZhdGUgcm93c1NyYzogYW55ID0gbnVsbDtcbiAgICBwcml2YXRlIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgICBwcml2YXRlIHRhYmxlRmVhdHVyZXNIYW5kbGVyU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgIHByaXZhdGUgc2VsZWN0Um93c0ZlYXR1cmVIYW5kbGVyU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgIHByaXZhdGUgc3RpY2t5RmVhdHVyZUhhbmRsZXJJbmRleCA9IDA7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgY3NzQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgdGhpcy5ldWlUYWJsZVJlc3BvbnNpdmUgPyBgZXVpLXRhYmxlLS1yZXNwb25zaXZlYCA6IGBgLFxuICAgICAgICAgICAgdGhpcy5ldWlUYWJsZUZpeGVkTGF5b3V0ID8gYGV1aS10YWJsZS0tZml4ZWQtbGF5b3V0YCA6IGBgLFxuICAgICAgICAgICAgdGhpcy5ldWlUYWJsZUJvcmRlcmVkID8gYGV1aS10YWJsZS0tYm9yZGVyZWRgIDogYGAsXG4gICAgICAgICAgICB0aGlzLmV1aVRhYmxlQ29tcGFjdCA/IGBldWktdGFibGUtLWNvbXBhY3RgIDogYGAsXG4gICAgICAgICAgICB0aGlzLmV1aVRhYmxlRHJhZ2dhYmxlID8gYGV1aS10YWJsZS0tZHJhZ2dhYmxlYCA6IGBgLFxuICAgICAgICAgICAgdGhpcy5ldWlUYWJsZUNhcmRzID8gYGV1aS10YWJsZS1jYXJkc2AgOiBgYCxcbiAgICAgICAgICAgIHRoaXMuaGFzU3RpY2t5SGVhZGVyID8gYGV1aS10YWJsZS0tc3RpY2t5LWhlYWRlcmAgOiBgYCxcbiAgICAgICAgICAgIHRoaXMuaGFzU3RpY2t5Q29sdW1ucyA/IGBldWktdGFibGUtLXN0aWNreS1jb2x1bW5zYCA6IGBgLFxuICAgICAgICAgICAgc3VwZXIuZ2V0Q3NzQ2xhc3NlcygnZXVpLXRhYmxlJyksXG4gICAgICAgIF1cbiAgICAgICAgICAgIC5qb2luKCcgJylcbiAgICAgICAgICAgIC50cmltKCk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZXVpVGFibGVTb3J0U2VydmljZTogRXVpVGFibGVTb3J0U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgZXVpVGFibGVTZWxlY3RhYmxlUm93U2VydmljZTogRXVpVGFibGVTZWxlY3RhYmxlUm93U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoYzogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMucm93cykge1xuICAgICAgICAgICAgdGhpcy5yb3dzID0gW107XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmV1aVRhYmxlU2VsZWN0YWJsZVJvd1NlcnZpY2Uuc2V0UHJvcElkKHRoaXMucHJvcElkKTtcbiAgICAgICAgaWYgKGMgJiYgYy5yb3dzICYmIGMucm93cy5maXJzdENoYW5nZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHRoaXMudGFibGVGZWF0dXJlc0hhbmRsZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcblxuICAgICAgICAgICAgLy8gR28gdG8gZmlyc3QgcGFnZSBvbmx5IGlmIGxlbmd0aCBvZiBkYXRhIGhhcyBjaGFuZ2VkLiBUbyBhdm9pZCB1c2VyIHRvIGJlIG9uIGEgcGFnZSB0aGF0IG5vIGxvbmdlciBleGlzdCBpbiBjYXNlIG9mIGZpbHRlcmluZy5cbiAgICAgICAgICAgIGNvbnN0IGxlbmd0aENoYW5nZWQgPSB0aGlzLnJvd3NTcmMubGVuZ3RoICE9PSBjLnJvd3MuY3VycmVudFZhbHVlLmxlbmd0aDtcblxuICAgICAgICAgICAgdGhpcy5yb3dzU3JjID0gWy4uLmMucm93cy5jdXJyZW50VmFsdWVdO1xuICAgICAgICAgICAgaWYgKHRoaXMucGFnaW5hdG9yICYmIGxlbmd0aENoYW5nZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhZ2luYXRvci5nb0ZpcnN0UGFnZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCF0aGlzLmFzeW5jVGFibGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmV1aVRhYmxlU2VsZWN0YWJsZVJvd1NlcnZpY2UucmVzZXRSb3dzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5ldWlUYWJsZVNlbGVjdGFibGVSb3dTZXJ2aWNlLmFkZFJvd3MoYy5yb3dzLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZUZlYXR1cmVzSGFuZGxlcigpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmV1aVRhYmxlU2VsZWN0YWJsZVJvd1NlcnZpY2UucmVzZXRSb3dzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5ldWlUYWJsZVNlbGVjdGFibGVSb3dTZXJ2aWNlLmFkZFJvd3MoYy5yb3dzLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYyAmJiBjLnByZXNlbGVjdGVkUm93cyAmJiBjLnByZXNlbGVjdGVkUm93cy5maXJzdENoYW5nZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHRoaXMuZXVpVGFibGVTZWxlY3RhYmxlUm93U2VydmljZS5zZWxlY3RSb3dzKHRoaXMucHJlc2VsZWN0ZWRSb3dzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjICYmIGMucGFnaW5hdG9yPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMucGFnaW5hdG9yLnNldExlbmd0aCh0aGlzLnJvd3MubGVuZ3RoKTtcbiAgICAgICAgICAgIGlmICghYy5wYWdpbmF0b3I/LmlzRmlyc3RDaGFuZ2UoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMucGFnaW5hdG9yLmdvRmlyc3RQYWdlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyB0aGlzLnJvd3MgY2FuIGJlIGNoYW5nZWQgYW55dGltZSwgdGhlbiB0aGlzIGVsc2UgY2FuIGJlIGV4ZWN1dGVkIGF0IHRoYXQgdGltZSwgdGVzdGluZyB0aGlzLnBhZ2luYXRvciBhbGxvd3MgdG8gbWFrZSBzdXJlXG4gICAgICAgICAgICAvLyB0aGUgdXNlciB3aGFudHMgdG8gZGlzYWJsZSBwYWdpbmF0aW9uIG9yIGNoYW5nZSB0aGUgZGF0YXNvdXJjZVxuICAgICAgICAgICAgaWYgKCF0aGlzLnBhZ2luYXRvcikge1xuICAgICAgICAgICAgICAgIHRoaXMucm93c1JlbmRlcmVkID0gdGhpcy5yb3dzU3JjID8gdGhpcy5yb3dzU3JjIDogWy4uLnRoaXMucm93c107XG4gICAgICAgICAgICAgICAgdGhpcy5wYWdlID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJvd3NTcmMgPSBbLi4udGhpcy5yb3dzXTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5lMmVBdHRyKSB7XG4gICAgICAgICAgICB0aGlzLmUyZUF0dHIgPSAnZXVpLXRhYmxlJztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRlbXBsYXRlcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpZiAoaXRlbS5nZXRUeXBlKCkgPT09ICdoZWFkZXInKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oZWFkZXJUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXRlbS5nZXRUeXBlKCkgPT09ICdib2R5Jykge1xuICAgICAgICAgICAgICAgIHRoaXMuYm9keVRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpdGVtLmdldFR5cGUoKSA9PT0gJ2Zvb3RlcicpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvb3RlclRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpdGVtLmdldFR5cGUoKSA9PT0gJ2VtcHR5TWVzc2FnZScpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVtcHR5TWVzc2FnZVRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuYXN5bmNUYWJsZSkge1xuICAgICAgICAgICAgdGhpcy50YWJsZUZlYXR1cmVzSGFuZGxlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgdGhpcy50YWJsZUZlYXR1cmVzSGFuZGxlcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5ldWlUYWJsZVNvcnRTZXJ2aWNlLnNvcnRpbmdQYXJhbXMkXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChzb3J0aW5nUGFyYW1zOiB7IHNvcnQ6IHN0cmluZyB8IG51bGw7IG9yZGVyOiBzdHJpbmcgfSkgPT4ge1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNvcnRDaGFuZ2UuZW1pdCh7IHNvcnQ6IHNvcnRpbmdQYXJhbXMuc29ydCwgb3JkZXI6IHNvcnRpbmdQYXJhbXMub3JkZXIgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmV1aVRhYmxlU29ydFNlcnZpY2UubXVsdGlzb3J0UGFyYW1zU29ydCQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgobXVsdGlTb3J0UGFyYW1zOiBNdWx0aXNvcnRQYXJhbVtdKSA9PiB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm11bHRpU29ydENoYW5nZS5lbWl0KG11bHRpU29ydFBhcmFtcy5maWx0ZXIoKGVsKSA9PiBlbC5wb3NpdGlvbiA+IDApKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnNlbGVjdFJvd3NGZWF0dXJlSGFuZGxlcigpO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5ldWlUYWJsZVNlbGVjdGFibGVSb3dTZXJ2aWNlLnNlbGVjdFJvd3ModGhpcy5wcmVzZWxlY3RlZFJvd3MpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHRyYWNrQnlGbihpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cblxuICAgIHB1YmxpYyBzZWxlY3RBbGxSb3dzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmV1aVRhYmxlU2VsZWN0YWJsZVJvd1NlcnZpY2Uuc2VsZWN0QWxsUm93cygpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1bnNlbGVjdEFsbFJvd3MoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZXVpVGFibGVTZWxlY3RhYmxlUm93U2VydmljZS51bnNlbGVjdEFsbFJvd3MoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VsZWN0Um93cyhyb3dzOiBhbnlbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLmV1aVRhYmxlU2VsZWN0YWJsZVJvd1NlcnZpY2Uuc2VsZWN0Um93cyhyb3dzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZmlsdGVyUm93cyhmaWx0ZXI6IHN0cmluZywgcjogYW55W10pOiBhbnlbXSB7XG4gICAgICAgIGNvbnN0IHJvd3MgPSBmaWx0ZXJcbiAgICAgICAgICAgID8gci5maWx0ZXIoKHJvdykgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc3QgbWF0Y2hpbmcgPSB0aGlzLmdldFByb3BzKHJvdywgZmlsdGVyKS5maWx0ZXIoKHApID0+IHAubWF0Y2ggPT09IHRydWUpO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoaW5nPy5sZW5ndGggPiAwO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgOiByO1xuXG4gICAgICAgIHRoaXMuZXVpVGFibGVTZWxlY3RhYmxlUm93U2VydmljZS5yZXNldFJvd3MoKTtcbiAgICAgICAgdGhpcy5ldWlUYWJsZVNlbGVjdGFibGVSb3dTZXJ2aWNlLmFkZFJvd3Mocm93cyk7XG5cbiAgICAgICAgdGhpcy5maWx0ZXJlZFJvd3MgPSByb3dzO1xuXG4gICAgICAgIHJldHVybiByb3dzO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRTb3J0KHNvcnQ6IHN0cmluZyB8IG51bGwsIG9yZGVyOiAnYXNjJyB8ICdkZXNjJyB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ldWlUYWJsZVNvcnRTZXJ2aWNlLnNldFNvcnQoc29ydCwgb3JkZXIpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RpY2t5RmVhdHVyZUhhbmRsZXIoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRpbWVvdXQgPSB0aGlzLnN0aWNreUZlYXR1cmVIYW5kbGVySW5kZXggPT09IDAgPyAyNTAgOiAwO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdHJJdGVtcyA9IEFycmF5LmZyb20odGhpcy50Ym9keVJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3RyJykpO1xuICAgICAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudD8ucGFyZW50RWxlbWVudD8uY2xpZW50V2lkdGggfHwgMDtcblxuICAgICAgICAgICAgaWYgKHRoaXMudGhlYWRSZWYpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aEl0ZW1zOiBIVE1MVGFibGVDZWxsRWxlbWVudFtdID0gQXJyYXkuZnJvbSh0aGlzLnRoZWFkUmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmV1aS10YWJsZV9fY29sLS1zdGlja3knKSk7XG5cbiAgICAgICAgICAgICAgICAvLyBSZXNldCBsZWZ0ICYgcmlnaHQgcG9zaXRpb25cbiAgICAgICAgICAgICAgICB0aEl0ZW1zLmZvckVhY2goKHRoOiBIVE1MVGFibGVDZWxsRWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aC5zdHlsZS5sZWZ0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgdGguc3R5bGUucmlnaHQgPSBudWxsO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgLy8gU3RpY2t5IEZpcnN0IENvbHMgJiBMYXN0IENvbHNcbiAgICAgICAgICAgICAgICBjb25zdCB0aEl0ZW1zU3RpY2t5Rmlyc3RDb2wgPSB0aEl0ZW1zLmZpbHRlcigodGgpID0+IHRoLm9mZnNldExlZnQgKyB0aC5jbGllbnRXaWR0aCA8IGNvbnRhaW5lcldpZHRoKTtcbiAgICAgICAgICAgICAgICBjb25zdCB0aEl0ZW1zU3RpY2t5TGFzdENvbCA9IHRoSXRlbXMuZmlsdGVyKCh0aCkgPT4gdGgub2Zmc2V0TGVmdCArIHRoLmNsaWVudFdpZHRoID4gY29udGFpbmVyV2lkdGgpO1xuXG4gICAgICAgICAgICAgICAgdGhJdGVtc1N0aWNreUZpcnN0Q29sLmZvckVhY2goKHRoLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHcgPSB0aEl0ZW1zU3RpY2t5Rmlyc3RDb2xbaSAtIDFdPy5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbCA9IHBhcnNlSW50KHRoSXRlbXNTdGlja3lGaXJzdENvbFtpIC0gMV0/LnN0eWxlLmxlZnQsIDEwKTtcbiAgICAgICAgICAgICAgICAgICAgdGguc3R5bGUubGVmdCA9IChpID09PSAwID8gMCA6IHcgKyBsKSArICdweCc7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGkgKyAxID09PSB0aEl0ZW1zU3RpY2t5Rmlyc3RDb2wubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aC5jbGFzc0xpc3QuYWRkKCdldWktdGFibGVfX2NvbC0tc3RpY2t5LXNoYWRvd2VkLWZpcnN0Jyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHRoSXRlbXNTdGlja3lMYXN0Q29sLnJldmVyc2UoKS5mb3JFYWNoKCh0aCwgaSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB3ID0gdGhJdGVtc1N0aWNreUxhc3RDb2xbaSAtIDFdPy5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgciA9IHBhcnNlSW50KHRoSXRlbXNTdGlja3lMYXN0Q29sW2kgLSAxXT8uc3R5bGUucmlnaHQsIDEwKTtcbiAgICAgICAgICAgICAgICAgICAgdGguc3R5bGUucmlnaHQgPSAoaSA9PT0gMCA/IDAgOiB3ICsgcikgKyAncHgnO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChpICsgMSA9PT0gdGhJdGVtc1N0aWNreUxhc3RDb2wubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aC5jbGFzc0xpc3QuYWRkKCdldWktdGFibGVfX2NvbC0tc3RpY2t5LXNoYWRvd2VkLWxhc3QnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0ckl0ZW1zLmZvckVhY2goKHRyKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGRJdGVtczogSFRNTFRhYmxlQ2VsbEVsZW1lbnRbXSA9IEFycmF5LmZyb20odHIucXVlcnlTZWxlY3RvckFsbCgnLmV1aS10YWJsZV9fY29sLS1zdGlja3knKSk7XG4gICAgICAgICAgICAgICAgdGRJdGVtcy5mb3JFYWNoKCh0ZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0ZC5zdHlsZS5sZWZ0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgdGQuc3R5bGUucmlnaHQgPSBudWxsO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRySXRlbXMuZm9yRWFjaCgodHIpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB0ZEl0ZW1zOiBIVE1MVGFibGVDZWxsRWxlbWVudFtdID0gQXJyYXkuZnJvbSh0ci5xdWVyeVNlbGVjdG9yQWxsKCcuZXVpLXRhYmxlX19jb2wtLXN0aWNreScpKTtcblxuICAgICAgICAgICAgICAgIC8vIFN0aWNreSBGaXJzdCBDb2xzXG4gICAgICAgICAgICAgICAgY29uc3QgdGRJdGVtc1N0aWNreUZpcnN0Q29sID0gdGRJdGVtcy5maWx0ZXIoKHRkKSA9PiB0ZC5vZmZzZXRMZWZ0ICsgdGQuY2xpZW50V2lkdGggPCBjb250YWluZXJXaWR0aCk7XG4gICAgICAgICAgICAgICAgdGRJdGVtc1N0aWNreUZpcnN0Q29sLmZvckVhY2goKHRkLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHcgPSB0ZEl0ZW1zU3RpY2t5Rmlyc3RDb2xbaSAtIDFdPy5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbCA9IHBhcnNlSW50KHRkSXRlbXNTdGlja3lGaXJzdENvbFtpIC0gMV0/LnN0eWxlLmxlZnQsIDEwKTtcbiAgICAgICAgICAgICAgICAgICAgdGQuc3R5bGUubGVmdCA9IChpID09PSAwID8gMCA6IHcgKyBsKSArICdweCc7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGkgKyAxID09PSB0ZEl0ZW1zU3RpY2t5Rmlyc3RDb2wubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZC5jbGFzc0xpc3QuYWRkKCdldWktdGFibGVfX2NvbC0tc3RpY2t5LXNoYWRvd2VkLWZpcnN0Jyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIC8vIFN0aWNreSBMYXN0IENvbHNcbiAgICAgICAgICAgICAgICBjb25zdCB0ZEl0ZW1zU3RpY2t5TGFzdENvbCA9IHRkSXRlbXMuZmlsdGVyKCh0ZCkgPT4gdGQub2Zmc2V0TGVmdCArIHRkLmNsaWVudFdpZHRoID4gY29udGFpbmVyV2lkdGgpO1xuICAgICAgICAgICAgICAgIHRkSXRlbXNTdGlja3lMYXN0Q29sLnJldmVyc2UoKS5mb3JFYWNoKCh0ZCwgaSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB3ID0gdGRJdGVtc1N0aWNreUxhc3RDb2xbaSAtIDFdPy5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgciA9IHBhcnNlSW50KHRkSXRlbXNTdGlja3lMYXN0Q29sW2kgLSAxXT8uc3R5bGUucmlnaHQsIDEwKTtcbiAgICAgICAgICAgICAgICAgICAgdGQuc3R5bGUucmlnaHQgPSAoaSA9PT0gMCA/IDAgOiB3ICsgcikgKyAncHgnO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChpICsgMSA9PT0gdGRJdGVtc1N0aWNreUxhc3RDb2wubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZC5jbGFzc0xpc3QuYWRkKCdldWktdGFibGVfX2NvbC0tc3RpY2t5LXNoYWRvd2VkLWxhc3QnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sIHRpbWVvdXQpO1xuXG4gICAgICAgIHRoaXMuc3RpY2t5RmVhdHVyZUhhbmRsZXJJbmRleCsrO1xuICAgIH1cblxuICAgIHByaXZhdGUgdGFibGVGZWF0dXJlc0hhbmRsZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGFibGVGZWF0dXJlc0hhbmRsZXJTdWJzY3JpcHRpb24gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIHRoaXMuZXVpVGFibGVTb3J0U2VydmljZS5zb3J0aW5nUGFyYW1zJCxcbiAgICAgICAgICAgIHRoaXMucGFnaW5hdG9yID8gdGhpcy5wYWdpbmF0b3IucGFnZSQgOiBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpLFxuICAgICAgICAgICAgdGhpcy5maWx0ZXIgPyB0aGlzLmZpbHRlci5maWx0ZXIkIDogbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKSxcbiAgICAgICAgICAgIHRoaXMuZXVpVGFibGVTb3J0U2VydmljZS5tdWx0aXNvcnRQYXJhbXNTb3J0JCxcbiAgICAgICAgXSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKFtzb3J0aW5nUGFyYW1zLCBwYWdpbmF0aW9uLCBmaWx0ZXIsIG11bHRpc29ydFBhcmFtc10pID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgciA9IFsuLi50aGlzLnJvd3NTcmNdO1xuICAgICAgICAgICAgICAgIGlmIChzb3J0aW5nUGFyYW1zLm9yZGVyICE9PSBudWxsICYmIHNvcnRpbmdQYXJhbXMuc29ydCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtdWx0aXNvcnQgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgbXVsdGlzb3J0LnB1c2gobmV3IE11bHRpc29ydFBhcmFtKHNvcnRpbmdQYXJhbXMuc29ydCwgc29ydGluZ1BhcmFtcy5vcmRlciwgMSkpO1xuICAgICAgICAgICAgICAgICAgICByID0gdGhpcy5kb011bHRpU29ydChtdWx0aXNvcnQsIHIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChtdWx0aXNvcnRQYXJhbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzb3J0YWJsZUNvbHVtbnMgPSBtdWx0aXNvcnRQYXJhbXMuZmlsdGVyKChjb2wpID0+IGNvbC5vcmRlciAhPT0gbnVsbCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzb3J0YWJsZUNvbHVtbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgciA9IHRoaXMuZG9NdWx0aVNvcnQoc29ydGFibGVDb2x1bW5zLCByKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByID0gdGhpcy5maWx0ZXJSb3dzKGZpbHRlciwgcik7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucGFnaW5hdG9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFnaW5hdG9yLnNldExlbmd0aChyLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgICAgIHIgPSB0aGlzLnBhZ2luYXRlUm93cyhwYWdpbmF0aW9uLCByKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLnJvd3NSZW5kZXJlZCA9IHI7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGlja3lGZWF0dXJlSGFuZGxlcigpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRvTXVsdGlTb3J0KG11bHRpc29ydFBhcmFtczogTXVsdGlzb3J0UGFyYW1bXSwgcjogYW55KTogYW55W10ge1xuICAgICAgICByID0gdGhpcy5tdWx0aVNvcnRSb3dzKG11bHRpc29ydFBhcmFtcywgMSwgcik7XG4gICAgICAgIHJldHVybiByO1xuICAgIH1cblxuICAgIHByaXZhdGUgbXVsdGlTb3J0Um93cyhtdWx0aXNvcnRQYXJhbXM6IE11bHRpc29ydFBhcmFtW10sIGN1cnJlbnRQb3NpdGlvbjogbnVtYmVyLCByOiBhbnkpOiBhbnlbXSB7XG4gICAgICAgIGxldCByb3dzOiBhbnlbXSA9IG51bGw7XG4gICAgICAgIGNvbnN0IGNvbFBhcmFtcyA9IG11bHRpc29ydFBhcmFtcy5maW5kKChjb2wpID0+IGNvbC5wb3NpdGlvbiA9PT0gY3VycmVudFBvc2l0aW9uKTtcbiAgICAgICAgaWYgKGNvbFBhcmFtcy5vcmRlciA9PT0gJ2Rlc2MnKSB7XG4gICAgICAgICAgICByb3dzID0gci5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzQ29sdW1uU29ydGFibGUoYSwgYiwgbXVsdGlzb3J0UGFyYW1zLCBjdXJyZW50UG9zaXRpb24pKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNvcnRUd29Sb3dzRGVzYyhhLCBiLCBjb2xQYXJhbXMubmFtZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByb3dzID0gci5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzQ29sdW1uU29ydGFibGUoYSwgYiwgbXVsdGlzb3J0UGFyYW1zLCBjdXJyZW50UG9zaXRpb24pKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNvcnRUd29Sb3dzQXNjKGEsIGIsIGNvbFBhcmFtcy5uYW1lKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobXVsdGlzb3J0UGFyYW1zLmxlbmd0aCA9PT0gY3VycmVudFBvc2l0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gcm93cztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm11bHRpU29ydFJvd3MobXVsdGlzb3J0UGFyYW1zLCArK2N1cnJlbnRQb3NpdGlvbiwgcm93cyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGlzQ29sdW1uU29ydGFibGUoYTogYW55LCBiOiBhbnksIG11bHRpc29ydFBhcmFtczogTXVsdGlzb3J0UGFyYW1bXSwgY3VycmVudFBvc2l0aW9uOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKGN1cnJlbnRQb3NpdGlvbiA9PT0gMSkgcmV0dXJuIHRydWU7XG4gICAgICAgIGNvbnN0IGNvbFBhcmFtcyA9IG11bHRpc29ydFBhcmFtcy5maW5kKChjb2wpID0+IGNvbC5wb3NpdGlvbiA9PT0gY3VycmVudFBvc2l0aW9uIC0gMSk7XG4gICAgICAgIGNvbnN0IGFDb2wgPSB0aGlzLmdldE9ialByb3BWYWx1ZShhLCBjb2xQYXJhbXMubmFtZSk7XG4gICAgICAgIC8vIHR5cGVvZiB0aGlzLmdldE9ialByb3AoYSwgY29sUGFyYW1zLm5hbWUpID09PSAnc3RyaW5nJ1xuICAgICAgICAvLyAgICAgPyB0aGlzLmdldE9ialByb3AoYSwgY29sUGFyYW1zLm5hbWUpLnRvTG93ZXJDYXNlKClcbiAgICAgICAgLy8gICAgIDogdGhpcy5nZXRPYmpQcm9wKGEsIGNvbFBhcmFtcy5uYW1lKTtcbiAgICAgICAgY29uc3QgYkNvbCA9IHRoaXMuZ2V0T2JqUHJvcFZhbHVlKGIsIGNvbFBhcmFtcy5uYW1lKTtcbiAgICAgICAgLy8gdHlwZW9mIHRoaXMuZ2V0T2JqUHJvcChiLCBjb2xQYXJhbXMubmFtZSkgPT09ICdzdHJpbmcnXG4gICAgICAgIC8vICAgICA/IHRoaXMuZ2V0T2JqUHJvcChiLCBjb2xQYXJhbXMubmFtZSkudG9Mb3dlckNhc2UoKVxuICAgICAgICAvLyAgICAgOiB0aGlzLmdldE9ialByb3AoYiwgY29sUGFyYW1zLm5hbWUpO1xuICAgICAgICBpZiAoYUNvbCAhPT0gYkNvbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRQb3NpdGlvbiAtIDEgPT09IDEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNDb2x1bW5Tb3J0YWJsZShhLCBiLCBtdWx0aXNvcnRQYXJhbXMsIC0tY3VycmVudFBvc2l0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc29ydFR3b1Jvd3NEZXNjKGE6IGFueSwgYjogYW55LCBjb2xOYW1lOiBzdHJpbmcpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBhU29ydE9uID0gdGhpcy5nZXRPYmpQcm9wVmFsdWUoYSwgY29sTmFtZSk7XG4gICAgICAgIGNvbnN0IGJTb3J0T24gPSB0aGlzLmdldE9ialByb3BWYWx1ZShiLCBjb2xOYW1lKTtcbiAgICAgICAgaWYgKGFTb3J0T24gPT09IG51bGwgJiYgYlNvcnRPbikge1xuICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH0gZWxzZSBpZiAoYVNvcnRPbiAmJiBiU29ydE9uID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgIH0gZWxzZSBpZiAoYVNvcnRPbiA9PT0gbnVsbCAmJiBiU29ydE9uID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfSBlbHNlIGlmIChhU29ydE9uID09PSBudWxsICYmIGJTb3J0T24gPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9IGVsc2UgaWYgKGFTb3J0T24gPT09IDAgJiYgYlNvcnRPbiA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGFTb3J0T24gPCBiU29ydE9uID8gMSA6IGFTb3J0T24gPiBiU29ydE9uID8gLTEgOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzb3J0VHdvUm93c0FzYyhhOiBhbnksIGI6IGFueSwgY29sTmFtZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgYVNvcnRPbiA9IHRoaXMuZ2V0T2JqUHJvcFZhbHVlKGEsIGNvbE5hbWUpO1xuICAgICAgICBjb25zdCBiU29ydE9uID0gdGhpcy5nZXRPYmpQcm9wVmFsdWUoYiwgY29sTmFtZSk7XG4gICAgICAgIGlmIChhU29ydE9uID09PSBudWxsICYmIGJTb3J0T24pIHtcbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfSBlbHNlIGlmIChhU29ydE9uICYmIGJTb3J0T24gPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9IGVsc2UgaWYgKGFTb3J0T24gPT09IG51bGwgJiYgYlNvcnRPbiA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH0gZWxzZSBpZiAoYVNvcnRPbiA9PT0gbnVsbCAmJiBiU29ydE9uID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgIH0gZWxzZSBpZiAoYVNvcnRPbiA9PT0gMCAmJiBiU29ydE9uID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBhU29ydE9uIDwgYlNvcnRPbiA/IC0xIDogYVNvcnRPbiA+IGJTb3J0T24gPyAxIDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0T2JqUHJvcFZhbHVlKG9iajogYW55LCBwcm9wOiBzdHJpbmcpOiBhbnkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0T2JqUHJvcChvYmosIHByb3ApO1xuICAgICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHZhbHVlLnRvTG93ZXJDYXNlKCkgOiB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNlbGVjdFJvd3NGZWF0dXJlSGFuZGxlcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RSb3dzRmVhdHVyZUhhbmRsZXJTdWJzY3JpcHRpb24gPSB0aGlzLmV1aVRhYmxlU2VsZWN0YWJsZVJvd1NlcnZpY2Uuc2VsZWN0ZWRSb3dzJFxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoc2VsZWN0ZWQ6IGFueVtdKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFJvd3MuZW1pdChzZWxlY3RlZCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFByb3BzKG9iajogYW55W10sIGZpbHRlcjogc3RyaW5nKTogeyBrZXk6IHN0cmluZzsgbWF0Y2g6IGJvb2xlYW47IHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfVtdIHtcbiAgICAgICAgY29uc3QgaXNPYmplY3QgPSAodmFsOiBhbnkpOiBib29sZWFuID0+IHZhbCAmJiB0eXBlb2YgdmFsID09PSAnb2JqZWN0JztcbiAgICAgICAgY29uc3QgYWRkRGVsaW1pdGVyID0gKGE6IHN0cmluZywgYjogc3RyaW5nKTogc3RyaW5nID0+IChhICYmIGEgIT09ICcwJyA/IGAke2F9LiR7Yn1gIDogYik7XG4gICAgICAgIGNvbnN0IHByb3BzID0gW107XG4gICAgICAgIGNvbnN0IHBhdGhzID0gKHBhdGhPYmogPSB7fSwgaGVhZCA9ICcnKTogYW55W10gPT5cbiAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKHBhdGhPYmopLnJlZHVjZSgocHJvZHVjdCwgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZnVsbFBhdGggPSBhZGREZWxpbWl0ZXIoaGVhZCwga2V5KTtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXRjaCA9ICh2OiBhbnkpOiBib29sZWFuID0+XG4gICAgICAgICAgICAgICAgICAgIHYgJiYgdHlwZW9mIHYgIT09ICdvYmplY3QnICYmIHY/LnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKS5pbmRleE9mKGZpbHRlcj8udHJpbSgpLnRvTG93ZXJDYXNlKCkpICE9PSAtMTtcblxuICAgICAgICAgICAgICAgIGlmIChrZXkgIT09ICcwJyAmJiB0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIHByb3BzLnB1c2goeyBrZXk6IGFkZERlbGltaXRlcihoZWFkLCBrZXkpLCBtYXRjaDogbWF0Y2godmFsdWUpLCB2YWx1ZSB9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gaXNPYmplY3QodmFsdWUpID8gcHJvZHVjdC5jb25jYXQocGF0aHModmFsdWUsIGZ1bGxQYXRoKSkgOiBwcm9kdWN0LmNvbmNhdChmdWxsUGF0aCk7XG4gICAgICAgICAgICB9LCBbXSk7XG5cbiAgICAgICAgcGF0aHMob2JqKTtcblxuICAgICAgICByZXR1cm4gcHJvcHM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwYWdpbmF0ZVJvd3MocGFnaW5hdGlvbjogUGFnaW5hdGlvbkV2ZW50LCByOiBhbnlbXSk6IGFueVtdIHtcbiAgICAgICAgdGhpcy5wYWdlID0gcGFnaW5hdGlvbi5wYWdlO1xuICAgICAgICB0aGlzLnBhZ2VTaXplID0gcGFnaW5hdGlvbi5wYWdlU2l6ZTtcblxuICAgICAgICByZXR1cm4gci5zbGljZSh0aGlzLnBhZ2UgKiB0aGlzLnBhZ2VTaXplLCB0aGlzLnBhZ2UgKiB0aGlzLnBhZ2VTaXplICsgdGhpcy5wYWdlU2l6ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRPYmpQcm9wKG9iajogYW55LCBwcm9wOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gcHJvcCA/IHByb3Auc3BsaXQoJy4nKS5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IChwcmV2ID8gcHJldltjdXJyXSA6IG51bGwpLCBvYmogfHwgc2VsZikgOiBudWxsO1xuICAgIH1cbn1cbiIsIjx0aGVhZCAjdGhlYWRSZWYgKm5nSWY9XCJoZWFkZXJUZW1wbGF0ZVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWFkZXJUZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG48L3RoZWFkPlxuPHRib2R5ICN0Ym9keVJlZiAqbmdJZj1cImJvZHlUZW1wbGF0ZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHJvdyBvZiByb3dzUmVuZGVyZWQ7IGxldCBpID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlGblwiPlxuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImJvZHlUZW1wbGF0ZVwiXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHJvdywgaW5kZXg6IGkgKyBwYWdlICogcGFnZVNpemUgfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVtcHR5TWVzc2FnZVRlbXBsYXRlICYmIHJvd3NSZW5kZXJlZC5sZW5ndGggPT09IDBcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImVtcHR5TWVzc2FnZVRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvdGJvZHk+XG48dGZvb3QgKm5nSWY9XCJmb290ZXJUZW1wbGF0ZVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJmb290ZXJUZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG48L3Rmb290PlxuIl19
|
|
509
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V1aS10YWJsZS9ldWktdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXRhYmxlL2V1aS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxlQUFlLEVBRWYsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBSUwsTUFBTSxFQUlOLFNBQVMsRUFDVCxpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLHFCQUFxQixFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBRTVFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUd2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUd4RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUUzRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7O0FBVTNELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxhQUFhO0lBeUdoRCxZQUNZLG1CQUF3QyxFQUN4QyxFQUFxQixFQUNyQiw0QkFBMEQsRUFDMUQsVUFBc0I7UUFFOUIsS0FBSyxFQUFFLENBQUM7UUFMQSx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ3JCLGlDQUE0QixHQUE1Qiw0QkFBNEIsQ0FBOEI7UUFD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SUcsc0JBQXNCO3NCQUE5QixLQUFLO2dCQUVnQixNQUFNO3NCQUEzQixXQUFXO3VCQUFDLE9BQU87Z0JBQ3lCLFVBQVU7c0JBQXRELFdBQVc7dUJBQUMsMEJBQTBCO2dCQUk3QixZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFhZ0MsU0FBUztzQkFBL0MsZUFBZTt1QkFBQyxvQkFBb0I7Z0JBRWQsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQUNFLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVTtnQkFHUixPQUFPO3NCQUFuQixLQUFLO2dCQUlGLFVBQVU7c0JBRGIsS0FBSztnQkFLRixTQUFTO3NCQURaLEtBQUs7Z0JBS0Ysa0JBQWtCO3NCQURyQixLQUFLO2dCQUtGLG1CQUFtQjtzQkFEdEIsS0FBSztnQkFLRixpQkFBaUI7c0JBRHBCLEtBQUs7Z0JBS0YsYUFBYTtzQkFEaEIsS0FBSztnQkFLRixnQkFBZ0I7c0JBRG5CLEtBQUs7Z0JBS0YsZUFBZTtzQkFEbEIsS0FBSztnQkFLRixlQUFlO3NCQURsQixLQUFLO2dCQUtGLGdCQUFnQjtzQkFEbkIsS0FBSztnQkFhRixVQUFVO3NCQURiLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuXG5pbXBvcnQgeyBFdWlUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9kaXJlY3RpdmVzJztcbmltcG9ydCB7IEJhc2VEaXJlY3RpdmUgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvc2hhcmVkJztcbmltcG9ydCB7IEV1aVBhZ2luYXRvckNvbXBvbmVudCB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9ldWktcGFnaW5hdG9yJztcblxuaW1wb3J0IHsgRXVpVGFibGVTb3J0U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZXVpLXRhYmxlLXNvcnQuc2VydmljZSc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uRXZlbnQgfSBmcm9tICcuL21vZGVscy9wYWdpbmF0aW9uLWV2ZW50Lm1vZGVsJztcbmltcG9ydCB7IEV1aVRhYmxlRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9maWx0ZXIvZXVpLXRhYmxlLWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRXVpVGFibGVTZWxlY3RhYmxlUm93U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZXVpLXRhYmxlLXNlbGVjdGFibGUtcm93LnNlcnZpY2UnO1xuaW1wb3J0IHsgU29ydEV2ZW50IH0gZnJvbSAnLi9tb2RlbHMvc29ydC1ldmVudC5tb2RlbCc7XG5pbXBvcnQgeyBNdWx0aXNvcnRQYXJhbSB9IGZyb20gJy4vbW9kZWxzL211bHRpLXNvcnQubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2V1aS10YWJsZSwgdGFibGVbZXVpVGFibGVdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZXVpLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zdHlsZXMvX2luZGV4LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW0V1aVRhYmxlU29ydFNlcnZpY2UsIEV1aVRhYmxlU2VsZWN0YWJsZVJvd1NlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlUYWJsZUNvbXBvbmVudCBleHRlbmRzIEJhc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoKSByb3dzOiBhbnlbXSA9IFtdO1xuICAgIEBJbnB1dCgpIHByb3BJZCA9ICdpZCc7XG4gICAgQElucHV0KCkgcGFnaW5hdG9yOiBFdWlQYWdpbmF0b3JDb21wb25lbnQ7XG4gICAgQElucHV0KCkgZmlsdGVyOiBFdWlUYWJsZUZpbHRlckNvbXBvbmVudDtcbiAgICBASW5wdXQoKSBwcmVzZWxlY3RlZFJvd3M6IGFueVtdID0gW107XG4gICAgLyoqIEBkZXByZWNhdGVkIFNpbmNlIGV1aS10YWJsZSB1c2VzIG5hdGl2ZSBDU1MgcG9zaXRpb24gc3RpY2t5LCBwYXNzaW5nIHRoZSByZWZlcmVuY2Ugb2YgY29udGFpbmVyIGlzIG5vIGxvbmdlciBuZWVkZWQuXG4gICAgICogSXQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBmdXR1cmUgdmVyc2lvbiBvZiBlVUlcbiAgICAgKiAqL1xuICAgIEBJbnB1dCgpIHNjcm9sbGFibGVDb250YWluZXJSZWY6IEVsZW1lbnQ7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgc3RyaW5nID0gJ2V1aS10YWJsZSc7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5ldWktdGFibGVfX2xvYWRpbmcnKSBnZXQgaGFzTG9hZGluZygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGluZztcbiAgICB9XG5cbiAgICBAT3V0cHV0KCkgc2VsZWN0ZWRSb3dzID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcbiAgICBAT3V0cHV0KCkgc29ydENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U29ydEV2ZW50PigpO1xuICAgIEBPdXRwdXQoKSBtdWx0aVNvcnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPE11bHRpc29ydFBhcmFtW10+KCk7XG5cbiAgICBwdWJsaWMgaGVhZGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgcHVibGljIGJvZHlUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBwdWJsaWMgZm9vdGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgcHVibGljIGVtcHR5TWVzc2FnZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIHB1YmxpYyByb3dzUmVuZGVyZWQ6IGFueVtdID0gW107XG5cbiAgICBwdWJsaWMgcGFnZSA9IDA7XG4gICAgcHVibGljIHBhZ2VTaXplID0gMDtcbiAgICBwdWJsaWMgc2hvd1N0aWNreUhlYWRlciA9IGZhbHNlO1xuICAgIHB1YmxpYyBmaWx0ZXJlZFJvd3MgPSBbXTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oRXVpVGVtcGxhdGVEaXJlY3RpdmUpIHRlbXBsYXRlczogUXVlcnlMaXN0PEV1aVRlbXBsYXRlRGlyZWN0aXZlPjtcblxuICAgIEBWaWV3Q2hpbGQoJ3RoZWFkUmVmJykgdGhlYWRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICAgIEBWaWV3Q2hpbGQoJ3Rib2R5UmVmJykgdGJvZHlSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyogZXNsaW50LWRpc2FibGUgcHJldHRpZXIvcHJldHRpZXIgKi9cbiAgICBASW5wdXQoKSBnZXQgbG9hZGluZygpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2xvYWRpbmc7IH1cbiAgICBzZXQgbG9hZGluZyh2YWx1ZTogQm9vbGVhbklucHV0KSB7IHRoaXMuX2xvYWRpbmcgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpOyB9XG4gICAgcHJpdmF0ZSBfbG9hZGluZyA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGFzeW5jVGFibGUoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9hc3luY1RhYmxlOyB9XG4gICAgc2V0IGFzeW5jVGFibGUodmFsdWU6IEJvb2xlYW5JbnB1dCkgeyB0aGlzLl9hc3luY1RhYmxlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTsgfVxuICAgIHByaXZhdGUgX2FzeW5jVGFibGUgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBwYWdpbmFibGUoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9wYWdpbmFibGU7IH1cbiAgICBzZXQgcGFnaW5hYmxlKHZhbHVlOiBCb29sZWFuSW5wdXQpIHsgdGhpcy5fcGFnaW5hYmxlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTsgfVxuICAgIHByaXZhdGUgX3BhZ2luYWJsZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGV1aVRhYmxlUmVzcG9uc2l2ZSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2V1aVRhYmxlUmVzcG9uc2l2ZTsgfVxuICAgIHNldCBldWlUYWJsZVJlc3BvbnNpdmUodmFsdWU6IEJvb2xlYW5JbnB1dCkgeyB0aGlzLl9ldWlUYWJsZVJlc3BvbnNpdmUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpOyB9XG4gICAgcHJpdmF0ZSBfZXVpVGFibGVSZXNwb25zaXZlID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgZXVpVGFibGVGaXhlZExheW91dCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2V1aVRhYmxlRml4ZWRMYXlvdXQ7IH1cbiAgICBzZXQgZXVpVGFibGVGaXhlZExheW91dCh2YWx1ZTogQm9vbGVhbklucHV0KSB7IHRoaXMuX2V1aVRhYmxlRml4ZWRMYXlvdXQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpOyB9XG4gICAgcHJpdmF0ZSBfZXVpVGFibGVGaXhlZExheW91dCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGV1aVRhYmxlRHJhZ2dhYmxlKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fZXVpVGFibGVEcmFnZ2FibGU7IH1cbiAgICBzZXQgZXVpVGFibGVEcmFnZ2FibGUodmFsdWU6IEJvb2xlYW5JbnB1dCkgeyB0aGlzLl9ldWlUYWJsZURyYWdnYWJsZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7IH1cbiAgICBwcml2YXRlIF9ldWlUYWJsZURyYWdnYWJsZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGV1aVRhYmxlQ2FyZHMoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9ldWlUYWJsZUNhcmRzOyB9XG4gICAgc2V0IGV1aVRhYmxlQ2FyZHModmFsdWU6IEJvb2xlYW5JbnB1dCkgeyB0aGlzLl9ldWlUYWJsZUNhcmRzID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTsgfVxuICAgIHByaXZhdGUgX2V1aVRhYmxlQ2FyZHMgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBldWlUYWJsZUJvcmRlcmVkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fZXVpVGFibGVCb3JkZXJlZDsgfVxuICAgIHNldCBldWlUYWJsZUJvcmRlcmVkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHsgdGhpcy5fZXVpVGFibGVCb3JkZXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7IH1cbiAgICBwcml2YXRlIF9ldWlUYWJsZUJvcmRlcmVkID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgZXVpVGFibGVDb21wYWN0KCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fZXVpVGFibGVDb21wYWN0OyB9XG4gICAgc2V0IGV1aVRhYmxlQ29tcGFjdCh2YWx1ZTogQm9vbGVhbklucHV0KSB7IHRoaXMuX2V1aVRhYmxlQ29tcGFjdCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7IH1cbiAgICBwcml2YXRlIF9ldWlUYWJsZUNvbXBhY3QgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBoYXNTdGlja3lIZWFkZXIoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9oYXNTdGlja3lIZWFkZXI7IH1cbiAgICBzZXQgaGFzU3RpY2t5SGVhZGVyKHZhbHVlOiBCb29sZWFuSW5wdXQpIHsgdGhpcy5faGFzU3RpY2t5SGVhZGVyID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTsgfVxuICAgIHByaXZhdGUgX2hhc1N0aWNreUhlYWRlciA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGhhc1N0aWNreUNvbHVtbnMoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9oYXNTdGlja3lDb2x1bW5zOyB9XG4gICAgc2V0IGhhc1N0aWNreUNvbHVtbnModmFsdWU6IEJvb2xlYW5JbnB1dCkgeyB0aGlzLl9oYXNTdGlja3lDb2x1bW5zID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTsgfVxuICAgIHByaXZhdGUgX2hhc1N0aWNreUNvbHVtbnMgPSBmYWxzZTtcbiAgICAvKiBlc2xpbnQtZW5hYmxlIHByZXR0aWVyL3ByZXR0aWVyICovXG5cbiAgICBwcml2YXRlIHJvd3NTcmM6IGFueSA9IG51bGw7XG4gICAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gICAgcHJpdmF0ZSB0YWJsZUZlYXR1cmVzSGFuZGxlclN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgICBwcml2YXRlIHNlbGVjdFJvd3NGZWF0dXJlSGFuZGxlclN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgICBwcml2YXRlIHN0aWNreUZlYXR1cmVIYW5kbGVySW5kZXggPSAwO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgZ2V0IGNzc0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHRoaXMuZXVpVGFibGVSZXNwb25zaXZlID8gYGV1aS10YWJsZS0tcmVzcG9uc2l2ZWAgOiBgYCxcbiAgICAgICAgICAgIHRoaXMuZXVpVGFibGVGaXhlZExheW91dCA/IGBldWktdGFibGUtLWZpeGVkLWxheW91dGAgOiBgYCxcbiAgICAgICAgICAgIHRoaXMuZXVpVGFibGVCb3JkZXJlZCA/IGBldWktdGFibGUtLWJvcmRlcmVkYCA6IGBgLFxuICAgICAgICAgICAgdGhpcy5ldWlUYWJsZUNvbXBhY3QgPyBgZXVpLXRhYmxlLS1jb21wYWN0YCA6IGBgLFxuICAgICAgICAgICAgdGhpcy5ldWlUYWJsZURyYWdnYWJsZSA/IGBldWktdGFibGUtLWRyYWdnYWJsZWAgOiBgYCxcbiAgICAgICAgICAgIHRoaXMuZXVpVGFibGVDYXJkcyA/IGBldWktdGFibGUtY2FyZHNgIDogYGAsXG4gICAgICAgICAgICB0aGlzLmhhc1N0aWNreUhlYWRlciA/IGBldWktdGFibGUtLXN0aWNreS1oZWFkZXJgIDogYGAsXG4gICAgICAgICAgICB0aGlzLmhhc1N0aWNreUNvbHVtbnMgPyBgZXVpLXRhYmxlLS1zdGlja3ktY29sdW1uc2AgOiBgYCxcbiAgICAgICAgICAgIHN1cGVyLmdldENzc0NsYXNzZXMoJ2V1aS10YWJsZScpLFxuICAgICAgICBdXG4gICAgICAgICAgICAuam9pbignICcpXG4gICAgICAgICAgICAudHJpbSgpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGV1aVRhYmxlU29ydFNlcnZpY2U6IEV1aVRhYmxlU29ydFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIGV1aVRhYmxlU2VsZWN0YWJsZVJvd1NlcnZpY2U6IEV1aVRhYmxlU2VsZWN0YWJsZVJvd1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZlxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnJvd3MpIHtcbiAgICAgICAgICAgIHRoaXMucm93cyA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5ldWlUYWJsZVNlbGVjdGFibGVSb3dTZXJ2aWNlLnNldFByb3BJZCh0aGlzLnByb3BJZCk7XG4gICAgICAgIGlmIChjICYmIGMucm93cyAmJiBjLnJvd3MuZmlyc3RDaGFuZ2UgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICB0aGlzLnRhYmxlRmVhdHVyZXNIYW5kbGVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG5cbiAgICAgICAgICAgIC8vIEdvIHRvIGZpcnN0IHBhZ2Ugb25seSBpZiBsZW5ndGggb2YgZGF0YSBoYXMgY2hhbmdlZC4gVG8gYXZvaWQgdXNlciB0byBiZSBvbiBhIHBhZ2UgdGhhdCBubyBsb25nZXIgZXhpc3QgaW4gY2FzZSBvZiBmaWx0ZXJpbmcuXG4gICAgICAgICAgICBjb25zdCBsZW5ndGhDaGFuZ2VkID0gdGhpcy5yb3dzU3JjLmxlbmd0aCAhPT0gYy5yb3dzLmN1cnJlbnRWYWx1ZS5sZW5ndGg7XG5cbiAgICAgICAgICAgIHRoaXMucm93c1NyYyA9IFsuLi5jLnJvd3MuY3VycmVudFZhbHVlXTtcbiAgICAgICAgICAgIGlmICh0aGlzLnBhZ2luYXRvciAmJiBsZW5ndGhDaGFuZ2VkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYWdpbmF0b3IuZ29GaXJzdFBhZ2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdGhpcy5hc3luY1RhYmxlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ldWlUYWJsZVNlbGVjdGFibGVSb3dTZXJ2aWNlLnJlc2V0Um93cygpO1xuICAgICAgICAgICAgICAgIHRoaXMuZXVpVGFibGVTZWxlY3RhYmxlUm93U2VydmljZS5hZGRSb3dzKGMucm93cy5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgICAgIHRoaXMudGFibGVGZWF0dXJlc0hhbmRsZXIoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ldWlUYWJsZVNlbGVjdGFibGVSb3dTZXJ2aWNlLnJlc2V0Um93cygpO1xuICAgICAgICAgICAgICAgIHRoaXMuZXVpVGFibGVTZWxlY3RhYmxlUm93U2VydmljZS5hZGRSb3dzKGMucm93cy5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGMgJiYgYy5wcmVzZWxlY3RlZFJvd3MgJiYgYy5wcmVzZWxlY3RlZFJvd3MuZmlyc3RDaGFuZ2UgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICB0aGlzLmV1aVRhYmxlU2VsZWN0YWJsZVJvd1NlcnZpY2Uuc2VsZWN0Um93cyh0aGlzLnByZXNlbGVjdGVkUm93cyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYyAmJiBjLnBhZ2luYXRvcj8uY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnBhZ2luYXRvci5zZXRMZW5ndGgodGhpcy5yb3dzLmxlbmd0aCk7XG4gICAgICAgICAgICBpZiAoIWMucGFnaW5hdG9yPy5pc0ZpcnN0Q2hhbmdlKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhZ2luYXRvci5nb0ZpcnN0UGFnZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gdGhpcy5yb3dzIGNhbiBiZSBjaGFuZ2VkIGFueXRpbWUsIHRoZW4gdGhpcyBlbHNlIGNhbiBiZSBleGVjdXRlZCBhdCB0aGF0IHRpbWUsIHRlc3RpbmcgdGhpcy5wYWdpbmF0b3IgYWxsb3dzIHRvIG1ha2Ugc3VyZVxuICAgICAgICAgICAgLy8gdGhlIHVzZXIgd2hhbnRzIHRvIGRpc2FibGUgcGFnaW5hdGlvbiBvciBjaGFuZ2UgdGhlIGRhdGFzb3VyY2VcbiAgICAgICAgICAgIGlmICghdGhpcy5wYWdpbmF0b3IpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJvd3NSZW5kZXJlZCA9IHRoaXMucm93c1NyYyA/IHRoaXMucm93c1NyYyA6IFsuLi50aGlzLnJvd3NdO1xuICAgICAgICAgICAgICAgIHRoaXMucGFnZSA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yb3dzU3JjID0gWy4uLnRoaXMucm93c107XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZTJlQXR0cikge1xuICAgICAgICAgICAgdGhpcy5lMmVBdHRyID0gJ2V1aS10YWJsZSc7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50ZW1wbGF0ZXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgaWYgKGl0ZW0uZ2V0VHlwZSgpID09PSAnaGVhZGVyJykge1xuICAgICAgICAgICAgICAgIHRoaXMuaGVhZGVyVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGl0ZW0uZ2V0VHlwZSgpID09PSAnYm9keScpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJvZHlUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXRlbS5nZXRUeXBlKCkgPT09ICdmb290ZXInKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb290ZXJUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXRlbS5nZXRUeXBlKCkgPT09ICdlbXB0eU1lc3NhZ2UnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbXB0eU1lc3NhZ2VUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmFzeW5jVGFibGUpIHtcbiAgICAgICAgICAgIHRoaXMudGFibGVGZWF0dXJlc0hhbmRsZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMudGFibGVGZWF0dXJlc0hhbmRsZXIoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZXVpVGFibGVTb3J0U2VydmljZS5zb3J0aW5nUGFyYW1zJFxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoc29ydGluZ1BhcmFtczogeyBzb3J0OiBzdHJpbmcgfCBudWxsOyBvcmRlcjogc3RyaW5nIH0pID0+IHtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zb3J0Q2hhbmdlLmVtaXQoeyBzb3J0OiBzb3J0aW5nUGFyYW1zLnNvcnQsIG9yZGVyOiBzb3J0aW5nUGFyYW1zLm9yZGVyIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5ldWlUYWJsZVNvcnRTZXJ2aWNlLm11bHRpc29ydFBhcmFtc1NvcnQkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKG11bHRpU29ydFBhcmFtczogTXVsdGlzb3J0UGFyYW1bXSkgPT4ge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5tdWx0aVNvcnRDaGFuZ2UuZW1pdChtdWx0aVNvcnRQYXJhbXMuZmlsdGVyKChlbCkgPT4gZWwucG9zaXRpb24gPiAwKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5zZWxlY3RSb3dzRmVhdHVyZUhhbmRsZXIoKTtcblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZXVpVGFibGVTZWxlY3RhYmxlUm93U2VydmljZS5zZWxlY3RSb3dzKHRoaXMucHJlc2VsZWN0ZWRSb3dzKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0cmFja0J5Rm4oaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VsZWN0QWxsUm93cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ldWlUYWJsZVNlbGVjdGFibGVSb3dTZXJ2aWNlLnNlbGVjdEFsbFJvd3MoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdW5zZWxlY3RBbGxSb3dzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmV1aVRhYmxlU2VsZWN0YWJsZVJvd1NlcnZpY2UudW5zZWxlY3RBbGxSb3dzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNlbGVjdFJvd3Mocm93czogYW55W10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ldWlUYWJsZVNlbGVjdGFibGVSb3dTZXJ2aWNlLnNlbGVjdFJvd3Mocm93cyk7XG4gICAgfVxuXG4gICAgcHVibGljIGZpbHRlclJvd3MoZmlsdGVyOiBzdHJpbmcsIHI6IGFueVtdKTogYW55W10ge1xuICAgICAgICBjb25zdCByb3dzID0gZmlsdGVyXG4gICAgICAgICAgICA/IHIuZmlsdGVyKChyb3cpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoaW5nID0gdGhpcy5nZXRQcm9wcyhyb3csIGZpbHRlcikuZmlsdGVyKChwKSA9PiBwLm1hdGNoID09PSB0cnVlKTtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBtYXRjaGluZz8ubGVuZ3RoID4gMDtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIDogcjtcblxuICAgICAgICB0aGlzLmV1aVRhYmxlU2VsZWN0YWJsZVJvd1NlcnZpY2UucmVzZXRSb3dzKCk7XG4gICAgICAgIHRoaXMuZXVpVGFibGVTZWxlY3RhYmxlUm93U2VydmljZS5hZGRSb3dzKHJvd3MpO1xuXG4gICAgICAgIHRoaXMuZmlsdGVyZWRSb3dzID0gcm93cztcblxuICAgICAgICByZXR1cm4gcm93cztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0U29ydChzb3J0OiBzdHJpbmcgfCBudWxsLCBvcmRlcjogJ2FzYycgfCAnZGVzYycgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZXVpVGFibGVTb3J0U2VydmljZS5zZXRTb3J0KHNvcnQsIG9yZGVyKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0aWNreUZlYXR1cmVIYW5kbGVyKCk6IHZvaWQge1xuICAgICAgICBjb25zdCB0aW1lb3V0ID0gdGhpcy5zdGlja3lGZWF0dXJlSGFuZGxlckluZGV4ID09PSAwID8gMjUwIDogMDtcblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRySXRlbXMgPSBBcnJheS5mcm9tKHRoaXMudGJvZHlSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCd0cicpKTtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ/LnBhcmVudEVsZW1lbnQ/LmNsaWVudFdpZHRoIHx8IDA7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnRoZWFkUmVmKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhJdGVtczogSFRNTFRhYmxlQ2VsbEVsZW1lbnRbXSA9IEFycmF5LmZyb20odGhpcy50aGVhZFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ldWktdGFibGVfX2NvbC0tc3RpY2t5JykpO1xuXG4gICAgICAgICAgICAgICAgLy8gUmVzZXQgbGVmdCAmIHJpZ2h0IHBvc2l0aW9uXG4gICAgICAgICAgICAgICAgdGhJdGVtcy5mb3JFYWNoKCh0aDogSFRNTFRhYmxlQ2VsbEVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGguc3R5bGUubGVmdCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIHRoLnN0eWxlLnJpZ2h0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIC8vIFN0aWNreSBGaXJzdCBDb2xzICYgTGFzdCBDb2xzXG4gICAgICAgICAgICAgICAgY29uc3QgdGhJdGVtc1N0aWNreUZpcnN0Q29sID0gdGhJdGVtcy5maWx0ZXIoKHRoKSA9PiB0aC5vZmZzZXRMZWZ0ICsgdGguY2xpZW50V2lkdGggPCBjb250YWluZXJXaWR0aCk7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhJdGVtc1N0aWNreUxhc3RDb2wgPSB0aEl0ZW1zLmZpbHRlcigodGgpID0+IHRoLm9mZnNldExlZnQgKyB0aC5jbGllbnRXaWR0aCA+IGNvbnRhaW5lcldpZHRoKTtcblxuICAgICAgICAgICAgICAgIHRoSXRlbXNTdGlja3lGaXJzdENvbC5mb3JFYWNoKCh0aCwgaSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB3ID0gdGhJdGVtc1N0aWNreUZpcnN0Q29sW2kgLSAxXT8uY2xpZW50V2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGwgPSBwYXJzZUludCh0aEl0ZW1zU3RpY2t5Rmlyc3RDb2xbaSAtIDFdPy5zdHlsZS5sZWZ0LCAxMCk7XG4gICAgICAgICAgICAgICAgICAgIHRoLnN0eWxlLmxlZnQgPSAoaSA9PT0gMCA/IDAgOiB3ICsgbCkgKyAncHgnO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChpICsgMSA9PT0gdGhJdGVtc1N0aWNreUZpcnN0Q29sLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGguY2xhc3NMaXN0LmFkZCgnZXVpLXRhYmxlX19jb2wtLXN0aWNreS1zaGFkb3dlZC1maXJzdCcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICB0aEl0ZW1zU3RpY2t5TGFzdENvbC5yZXZlcnNlKCkuZm9yRWFjaCgodGgsIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdyA9IHRoSXRlbXNTdGlja3lMYXN0Q29sW2kgLSAxXT8uY2xpZW50V2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHIgPSBwYXJzZUludCh0aEl0ZW1zU3RpY2t5TGFzdENvbFtpIC0gMV0/LnN0eWxlLnJpZ2h0LCAxMCk7XG4gICAgICAgICAgICAgICAgICAgIHRoLnN0eWxlLnJpZ2h0ID0gKGkgPT09IDAgPyAwIDogdyArIHIpICsgJ3B4JztcblxuICAgICAgICAgICAgICAgICAgICBpZiAoaSArIDEgPT09IHRoSXRlbXNTdGlja3lMYXN0Q29sLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGguY2xhc3NMaXN0LmFkZCgnZXVpLXRhYmxlX19jb2wtLXN0aWNreS1zaGFkb3dlZC1sYXN0Jyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdHJJdGVtcy5mb3JFYWNoKCh0cikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRkSXRlbXM6IEhUTUxUYWJsZUNlbGxFbGVtZW50W10gPSBBcnJheS5mcm9tKHRyLnF1ZXJ5U2VsZWN0b3JBbGwoJy5ldWktdGFibGVfX2NvbC0tc3RpY2t5JykpO1xuICAgICAgICAgICAgICAgIHRkSXRlbXMuZm9yRWFjaCgodGQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGQuc3R5bGUubGVmdCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIHRkLnN0eWxlLnJpZ2h0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0ckl0ZW1zLmZvckVhY2goKHRyKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGRJdGVtczogSFRNTFRhYmxlQ2VsbEVsZW1lbnRbXSA9IEFycmF5LmZyb20odHIucXVlcnlTZWxlY3RvckFsbCgnLmV1aS10YWJsZV9fY29sLS1zdGlja3knKSk7XG5cbiAgICAgICAgICAgICAgICAvLyBTdGlja3kgRmlyc3QgQ29sc1xuICAgICAgICAgICAgICAgIGNvbnN0IHRkSXRlbXNTdGlja3lGaXJzdENvbCA9IHRkSXRlbXMuZmlsdGVyKCh0ZCkgPT4gdGQub2Zmc2V0TGVmdCArIHRkLmNsaWVudFdpZHRoIDwgY29udGFpbmVyV2lkdGgpO1xuICAgICAgICAgICAgICAgIHRkSXRlbXNTdGlja3lGaXJzdENvbC5mb3JFYWNoKCh0ZCwgaSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB3ID0gdGRJdGVtc1N0aWNreUZpcnN0Q29sW2kgLSAxXT8uY2xpZW50V2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGwgPSBwYXJzZUludCh0ZEl0ZW1zU3RpY2t5Rmlyc3RDb2xbaSAtIDFdPy5zdHlsZS5sZWZ0LCAxMCk7XG4gICAgICAgICAgICAgICAgICAgIHRkLnN0eWxlLmxlZnQgPSAoaSA9PT0gMCA/IDAgOiB3ICsgbCkgKyAncHgnO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChpICsgMSA9PT0gdGRJdGVtc1N0aWNreUZpcnN0Q29sLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGQuY2xhc3NMaXN0LmFkZCgnZXVpLXRhYmxlX19jb2wtLXN0aWNreS1zaGFkb3dlZC1maXJzdCcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAvLyBTdGlja3kgTGFzdCBDb2xzXG4gICAgICAgICAgICAgICAgY29uc3QgdGRJdGVtc1N0aWNreUxhc3RDb2wgPSB0ZEl0ZW1zLmZpbHRlcigodGQpID0+IHRkLm9mZnNldExlZnQgKyB0ZC5jbGllbnRXaWR0aCA+IGNvbnRhaW5lcldpZHRoKTtcbiAgICAgICAgICAgICAgICB0ZEl0ZW1zU3RpY2t5TGFzdENvbC5yZXZlcnNlKCkuZm9yRWFjaCgodGQsIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdyA9IHRkSXRlbXNTdGlja3lMYXN0Q29sW2kgLSAxXT8uY2xpZW50V2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHIgPSBwYXJzZUludCh0ZEl0ZW1zU3RpY2t5TGFzdENvbFtpIC0gMV0/LnN0eWxlLnJpZ2h0LCAxMCk7XG4gICAgICAgICAgICAgICAgICAgIHRkLnN0eWxlLnJpZ2h0ID0gKGkgPT09IDAgPyAwIDogdyArIHIpICsgJ3B4JztcblxuICAgICAgICAgICAgICAgICAgICBpZiAoaSArIDEgPT09IHRkSXRlbXNTdGlja3lMYXN0Q29sLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGQuY2xhc3NMaXN0LmFkZCgnZXVpLXRhYmxlX19jb2wtLXN0aWNreS1zaGFkb3dlZC1sYXN0Jyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LCB0aW1lb3V0KTtcblxuICAgICAgICB0aGlzLnN0aWNreUZlYXR1cmVIYW5kbGVySW5kZXgrKztcbiAgICB9XG5cbiAgICBwcml2YXRlIHRhYmxlRmVhdHVyZXNIYW5kbGVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRhYmxlRmVhdHVyZXNIYW5kbGVyU3Vic2NyaXB0aW9uID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLmV1aVRhYmxlU29ydFNlcnZpY2Uuc29ydGluZ1BhcmFtcyQsXG4gICAgICAgICAgICB0aGlzLnBhZ2luYXRvciA/IHRoaXMucGFnaW5hdG9yLnBhZ2UkIDogbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKSxcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyID8gdGhpcy5maWx0ZXIuZmlsdGVyJCA6IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCksXG4gICAgICAgICAgICB0aGlzLmV1aVRhYmxlU29ydFNlcnZpY2UubXVsdGlzb3J0UGFyYW1zU29ydCQsXG4gICAgICAgIF0pXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChbc29ydGluZ1BhcmFtcywgcGFnaW5hdGlvbiwgZmlsdGVyLCBtdWx0aXNvcnRQYXJhbXNdKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IHIgPSBbLi4udGhpcy5yb3dzU3JjXTtcbiAgICAgICAgICAgICAgICBpZiAoc29ydGluZ1BhcmFtcy5vcmRlciAhPT0gbnVsbCAmJiBzb3J0aW5nUGFyYW1zLnNvcnQgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbXVsdGlzb3J0ID0gW107XG4gICAgICAgICAgICAgICAgICAgIG11bHRpc29ydC5wdXNoKG5ldyBNdWx0aXNvcnRQYXJhbShzb3J0aW5nUGFyYW1zLnNvcnQsIHNvcnRpbmdQYXJhbXMub3JkZXIsIDEpKTtcbiAgICAgICAgICAgICAgICAgICAgciA9IHRoaXMuZG9NdWx0aVNvcnQobXVsdGlzb3J0LCByKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAobXVsdGlzb3J0UGFyYW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc29ydGFibGVDb2x1bW5zID0gbXVsdGlzb3J0UGFyYW1zLmZpbHRlcigoY29sKSA9PiBjb2wub3JkZXIgIT09IG51bGwpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc29ydGFibGVDb2x1bW5zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHIgPSB0aGlzLmRvTXVsdGlTb3J0KHNvcnRhYmxlQ29sdW1ucywgcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgciA9IHRoaXMuZmlsdGVyUm93cyhmaWx0ZXIsIHIpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnBhZ2luYXRvcikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhZ2luYXRvci5zZXRMZW5ndGgoci5sZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICByID0gdGhpcy5wYWdpbmF0ZVJvd3MocGFnaW5hdGlvbiwgcik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5yb3dzUmVuZGVyZWQgPSByO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RpY2t5RmVhdHVyZUhhbmRsZXIoKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkb011bHRpU29ydChtdWx0aXNvcnRQYXJhbXM6IE11bHRpc29ydFBhcmFtW10sIHI6IGFueSk6IGFueVtdIHtcbiAgICAgICAgciA9IHRoaXMubXVsdGlTb3J0Um93cyhtdWx0aXNvcnRQYXJhbXMsIDEsIHIpO1xuICAgICAgICByZXR1cm4gcjtcbiAgICB9XG5cbiAgICBwcml2YXRlIG11bHRpU29ydFJvd3MobXVsdGlzb3J0UGFyYW1zOiBNdWx0aXNvcnRQYXJhbVtdLCBjdXJyZW50UG9zaXRpb246IG51bWJlciwgcjogYW55KTogYW55W10ge1xuICAgICAgICBsZXQgcm93czogYW55W10gPSBudWxsO1xuICAgICAgICBjb25zdCBjb2xQYXJhbXMgPSBtdWx0aXNvcnRQYXJhbXMuZmluZCgoY29sKSA9PiBjb2wucG9zaXRpb24gPT09IGN1cnJlbnRQb3NpdGlvbik7XG4gICAgICAgIGlmIChjb2xQYXJhbXMub3JkZXIgPT09ICdkZXNjJykge1xuICAgICAgICAgICAgcm93cyA9IHIuc29ydCgoYTogYW55LCBiOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0NvbHVtblNvcnRhYmxlKGEsIGIsIG11bHRpc29ydFBhcmFtcywgY3VycmVudFBvc2l0aW9uKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zb3J0VHdvUm93c0Rlc2MoYSwgYiwgY29sUGFyYW1zLm5hbWUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcm93cyA9IHIuc29ydCgoYTogYW55LCBiOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0NvbHVtblNvcnRhYmxlKGEsIGIsIG11bHRpc29ydFBhcmFtcywgY3VycmVudFBvc2l0aW9uKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zb3J0VHdvUm93c0FzYyhhLCBiLCBjb2xQYXJhbXMubmFtZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG11bHRpc29ydFBhcmFtcy5sZW5ndGggPT09IGN1cnJlbnRQb3NpdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIHJvd3M7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5tdWx0aVNvcnRSb3dzKG11bHRpc29ydFBhcmFtcywgKytjdXJyZW50UG9zaXRpb24sIHJvd3MpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0NvbHVtblNvcnRhYmxlKGE6IGFueSwgYjogYW55LCBtdWx0aXNvcnRQYXJhbXM6IE11bHRpc29ydFBhcmFtW10sIGN1cnJlbnRQb3NpdGlvbjogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChjdXJyZW50UG9zaXRpb24gPT09IDEpIHJldHVybiB0cnVlO1xuICAgICAgICBjb25zdCBjb2xQYXJhbXMgPSBtdWx0aXNvcnRQYXJhbXMuZmluZCgoY29sKSA9PiBjb2wucG9zaXRpb24gPT09IGN1cnJlbnRQb3NpdGlvbiAtIDEpO1xuICAgICAgICBjb25zdCBhQ29sID0gdGhpcy5nZXRPYmpQcm9wVmFsdWUoYSwgY29sUGFyYW1zLm5hbWUpO1xuICAgICAgICAvLyB0eXBlb2YgdGhpcy5nZXRPYmpQcm9wKGEsIGNvbFBhcmFtcy5uYW1lKSA9PT0gJ3N0cmluZydcbiAgICAgICAgLy8gICAgID8gdGhpcy5nZXRPYmpQcm9wKGEsIGNvbFBhcmFtcy5uYW1lKS50b0xvd2VyQ2FzZSgpXG4gICAgICAgIC8vICAgICA6IHRoaXMuZ2V0T2JqUHJvcChhLCBjb2xQYXJhbXMubmFtZSk7XG4gICAgICAgIGNvbnN0IGJDb2wgPSB0aGlzLmdldE9ialByb3BWYWx1ZShiLCBjb2xQYXJhbXMubmFtZSk7XG4gICAgICAgIC8vIHR5cGVvZiB0aGlzLmdldE9ialByb3AoYiwgY29sUGFyYW1zLm5hbWUpID09PSAnc3RyaW5nJ1xuICAgICAgICAvLyAgICAgPyB0aGlzLmdldE9ialByb3AoYiwgY29sUGFyYW1zLm5hbWUpLnRvTG93ZXJDYXNlKClcbiAgICAgICAgLy8gICAgIDogdGhpcy5nZXRPYmpQcm9wKGIsIGNvbFBhcmFtcy5uYW1lKTtcbiAgICAgICAgaWYgKGFDb2wgIT09IGJDb2wpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChjdXJyZW50UG9zaXRpb24gLSAxID09PSAxKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmlzQ29sdW1uU29ydGFibGUoYSwgYiwgbXVsdGlzb3J0UGFyYW1zLCAtLWN1cnJlbnRQb3NpdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvL1RoaXMgZnVuY3Rpb24gaXMgdG8gZG8gdGhlIHNvcnRpbmcgdGhlIHRhYmxlIHdpdGggdGhlIGNvbWJpbmF0aW9uIG9mIDAsbnVsbCBhbmQgdGV4dCBpbiBkZXNjZW5kaW5nIG9yZGVyLlxuICAgIC8vZ2V0T2JqUHJvcFZhbHVlIGlzIHRvIGdldCB0aGUgb2JqZWN0IHByb3BlcnR5IHZhbHVlXG4gICAgcHJpdmF0ZSBzb3J0VHdvUm93c0Rlc2MoYTogYW55LCBiOiBhbnksIGNvbE5hbWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGFTb3J0T24gPSB0aGlzLmdldE9ialByb3BWYWx1ZShhLCBjb2xOYW1lKTtcbiAgICAgICAgY29uc3QgYlNvcnRPbiA9IHRoaXMuZ2V0T2JqUHJvcFZhbHVlKGIsIGNvbE5hbWUpO1xuICAgICAgICBpZiAoYVNvcnRPbiA9PT0gbnVsbCAmJiBiU29ydE9uKSB7XG4gICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfSBlbHNlIGlmIChhU29ydE9uICYmIGJTb3J0T24gPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfSBlbHNlIGlmIChhU29ydE9uID09PSBudWxsICYmIGJTb3J0T24gPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9IGVsc2UgaWYgKGFTb3J0T24gPT09IG51bGwgJiYgYlNvcnRPbiA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH0gZWxzZSBpZiAoYVNvcnRPbiA9PT0gMCAmJiBiU29ydE9uID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gYVNvcnRPbiA8IGJTb3J0T24gPyAxIDogYVNvcnRPbiA+IGJTb3J0T24gPyAtMSA6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvL1RoaXMgZnVuY3Rpb24gaXMgdG8gZG8gdGhlIHNvcnRpbmcgdGhlIHRhYmxlIHdpdGggdGhlIGNvbWJpbmF0aW9uIG9mIDAsbnVsbCBhbmQgdGV4dCBpbiBhc2NlbmRpbmcgb3JkZXIuXG4gICAgLy9nZXRPYmpQcm9wVmFsdWUgaXMgdG8gZ2V0IHRoZSBvYmplY3QgcHJvcGVydHkgdmFsdWVcbiAgICBwcml2YXRlIHNvcnRUd29Sb3dzQXNjKGE6IGFueSwgYjogYW55LCBjb2xOYW1lOiBzdHJpbmcpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBhU29ydE9uID0gdGhpcy5nZXRPYmpQcm9wVmFsdWUoYSwgY29sTmFtZSk7XG4gICAgICAgIGNvbnN0IGJTb3J0T24gPSB0aGlzLmdldE9ialByb3BWYWx1ZShiLCBjb2xOYW1lKTtcbiAgICAgICAgaWYgKGFTb3J0T24gPT09IG51bGwgJiYgYlNvcnRPbikge1xuICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9IGVsc2UgaWYgKGFTb3J0T24gJiYgYlNvcnRPbiA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH0gZWxzZSBpZiAoYVNvcnRPbiA9PT0gbnVsbCAmJiBiU29ydE9uID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfSBlbHNlIGlmIChhU29ydE9uID09PSBudWxsICYmIGJTb3J0T24gPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfSBlbHNlIGlmIChhU29ydE9uID09PSAwICYmIGJTb3J0T24gPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGFTb3J0T24gPCBiU29ydE9uID8gLTEgOiBhU29ydE9uID4gYlNvcnRPbiA/IDEgOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRPYmpQcm9wVmFsdWUob2JqOiBhbnksIHByb3A6IHN0cmluZyk6IGFueSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRPYmpQcm9wKG9iaiwgcHJvcCk7XG4gICAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8gdmFsdWUudG9Mb3dlckNhc2UoKSA6IHZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2VsZWN0Um93c0ZlYXR1cmVIYW5kbGVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdFJvd3NGZWF0dXJlSGFuZGxlclN1YnNjcmlwdGlvbiA9IHRoaXMuZXVpVGFibGVTZWxlY3RhYmxlUm93U2VydmljZS5zZWxlY3RlZFJvd3MkXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChzZWxlY3RlZDogYW55W10pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUm93cy5lbWl0KHNlbGVjdGVkKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UHJvcHMob2JqOiBhbnlbXSwgZmlsdGVyOiBzdHJpbmcpOiB7IGtleTogc3RyaW5nOyBtYXRjaDogYm9vbGVhbjsgdmFsdWU6IHN0cmluZyB8IG51bWJlciB9W10ge1xuICAgICAgICBjb25zdCBpc09iamVjdCA9ICh2YWw6IGFueSk6IGJvb2xlYW4gPT4gdmFsICYmIHR5cGVvZiB2YWwgPT09ICdvYmplY3QnO1xuICAgICAgICBjb25zdCBhZGREZWxpbWl0ZXIgPSAoYTogc3RyaW5nLCBiOiBzdHJpbmcpOiBzdHJpbmcgPT4gKGEgJiYgYSAhPT0gJzAnID8gYCR7YX0uJHtifWAgOiBiKTtcbiAgICAgICAgY29uc3QgcHJvcHMgPSBbXTtcbiAgICAgICAgY29uc3QgcGF0aHMgPSAocGF0aE9iaiA9IHt9LCBoZWFkID0gJycpOiBhbnlbXSA9PlxuICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMocGF0aE9iaikucmVkdWNlKChwcm9kdWN0LCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmdWxsUGF0aCA9IGFkZERlbGltaXRlcihoZWFkLCBrZXkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoID0gKHY6IGFueSk6IGJvb2xlYW4gPT5cbiAgICAgICAgICAgICAgICAgICAgdiAmJiB0eXBlb2YgdiAhPT0gJ29iamVjdCcgJiYgdj8udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoZmlsdGVyPy50cmltKCkudG9Mb3dlckNhc2UoKSkgIT09IC0xO1xuXG4gICAgICAgICAgICAgICAgaWYgKGtleSAhPT0gJzAnICYmIHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvcHMucHVzaCh7IGtleTogYWRkRGVsaW1pdGVyKGhlYWQsIGtleSksIG1hdGNoOiBtYXRjaCh2YWx1ZSksIHZhbHVlIH0pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBpc09iamVjdCh2YWx1ZSkgPyBwcm9kdWN0LmNvbmNhdChwYXRocyh2YWx1ZSwgZnVsbFBhdGgpKSA6IHByb2R1Y3QuY29uY2F0KGZ1bGxQYXRoKTtcbiAgICAgICAgICAgIH0sIFtdKTtcblxuICAgICAgICBwYXRocyhvYmopO1xuXG4gICAgICAgIHJldHVybiBwcm9wcztcbiAgICB9XG5cbiAgICBwcml2YXRlIHBhZ2luYXRlUm93cyhwYWdpbmF0aW9uOiBQYWdpbmF0aW9uRXZlbnQsIHI6IGFueVtdKTogYW55W10ge1xuICAgICAgICB0aGlzLnBhZ2UgPSBwYWdpbmF0aW9uLnBhZ2U7XG4gICAgICAgIHRoaXMucGFnZVNpemUgPSBwYWdpbmF0aW9uLnBhZ2VTaXplO1xuXG4gICAgICAgIHJldHVybiByLnNsaWNlKHRoaXMucGFnZSAqIHRoaXMucGFnZVNpemUsIHRoaXMucGFnZSAqIHRoaXMucGFnZVNpemUgKyB0aGlzLnBhZ2VTaXplKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE9ialByb3Aob2JqOiBhbnksIHByb3A6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBwcm9wID8gcHJvcC5zcGxpdCgnLicpLnJlZHVjZSgocHJldiwgY3VycikgPT4gKHByZXYgPyBwcmV2W2N1cnJdIDogbnVsbCksIG9iaiB8fCBzZWxmKSA6IG51bGw7XG4gICAgfVxufVxuIiwiPHRoZWFkICN0aGVhZFJlZiAqbmdJZj1cImhlYWRlclRlbXBsYXRlXCI+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhlYWRlclRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbjwvdGhlYWQ+XG48dGJvZHkgI3Rib2R5UmVmICpuZ0lmPVwiYm9keVRlbXBsYXRlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcm93IG9mIHJvd3NSZW5kZXJlZDsgbGV0IGkgPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeUZuXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiYm9keVRlbXBsYXRlXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogcm93LCBpbmRleDogaSArIHBhZ2UgKiBwYWdlU2l6ZSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZW1wdHlNZXNzYWdlVGVtcGxhdGUgJiYgcm93c1JlbmRlcmVkLmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiZW1wdHlNZXNzYWdlVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC90Ym9keT5cbjx0Zm9vdCAqbmdJZj1cImZvb3RlclRlbXBsYXRlXCI+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZvb3RlclRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbjwvdGZvb3Q+XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-table.component.d.ts","sourceRoot":"","sources":["../../eui-table/eui-table.component.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"eui-table.component.d.ts","sourceRoot":"","sources":["../../eui-table/eui-table.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -550,6 +550,8 @@ class EuiTableComponent extends BaseDirective {
|
|
|
550
550
|
}
|
|
551
551
|
}
|
|
552
552
|
}
|
|
553
|
+
//This function is to do the sorting the table with the combination of 0,null and text in descending order.
|
|
554
|
+
//getObjPropValue is to get the object property value
|
|
553
555
|
sortTwoRowsDesc(a, b, colName) {
|
|
554
556
|
const aSortOn = this.getObjPropValue(a, colName);
|
|
555
557
|
const bSortOn = this.getObjPropValue(b, colName);
|
|
@@ -572,6 +574,8 @@ class EuiTableComponent extends BaseDirective {
|
|
|
572
574
|
return aSortOn < bSortOn ? 1 : aSortOn > bSortOn ? -1 : 0;
|
|
573
575
|
}
|
|
574
576
|
}
|
|
577
|
+
//This function is to do the sorting the table with the combination of 0,null and text in ascending order.
|
|
578
|
+
//getObjPropValue is to get the object property value
|
|
575
579
|
sortTwoRowsAsc(a, b, colName) {
|
|
576
580
|
const aSortOn = this.getObjPropValue(a, colName);
|
|
577
581
|
const bSortOn = this.getObjPropValue(b, colName);
|