@progressio_resources/gravity-design-system 3.5.1 → 3.5.2
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.
|
@@ -258,6 +258,7 @@ export class GravityDropdownListComponent {
|
|
|
258
258
|
}
|
|
259
259
|
clearSelection() {
|
|
260
260
|
this.selectedItems = [];
|
|
261
|
+
this.networkConfig = null;
|
|
261
262
|
if (this.multiple) {
|
|
262
263
|
this.selectedItemsResponse.emit(this.selectedItems);
|
|
263
264
|
}
|
|
@@ -508,4 +509,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
508
509
|
type: HostListener,
|
|
509
510
|
args: ['document:click', ['$event']]
|
|
510
511
|
}] } });
|
|
511
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Jhdml0eS1kcm9wZG93bi1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyYXZpdHktZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1kcm9wZG93bi1saXN0L2dyYXZpdHktZHJvcGRvd24tbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncmF2aXR5LWRlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2dyYXZpdHktZHJvcGRvd24tbGlzdC9ncmF2aXR5LWRyb3Bkb3duLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBRTVFLE9BQU8sRUFBQyxTQUFTLEVBQWMsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWdDLE1BQU0sRUFBK0IsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7QUFRckssTUFBTSxPQUFPLDRCQUE0QjtJQXlCdkMsSUFDSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLGFBQWEsQ0FBQyxLQUFjO1FBQzlCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQzlCLENBQUM7SUFLRCxJQUNJLEtBQUssQ0FBQyxXQUF5QztRQUNqRCxJQUFJLFdBQVcsRUFBRTtZQUNmLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUMsYUFBYSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7U0FDeEQ7SUFDSCxDQUFDO0lBQUEsQ0FBQztJQWFILFlBQW9CLGVBQThDLEVBQVUsS0FBaUI7UUFBekUsb0JBQWUsR0FBZixlQUFl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TTt1QkFBQyxVQUFVO2dCQUdkLEtBQUs7c0JBRFIsU0FBUzt1QkFBQyxhQUFhO2dCQW9UbUIsZUFBZTtzQkFBMUQsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtGaWx0ZXJCeVBpcGV9IGZyb20gXCIuL2ZpbHRlci1ieS5waXBlXCI7XG5pbXBvcnQge0dyYXZpdHlJY29uQ29tcG9uZW50fSBmcm9tIFwiLi4vZ3Jhdml0eS1pY29uL2dyYXZpdHktaWNvbi5jb21wb25lbnRcIjtcbmltcG9ydCB7R3Jhdml0eURyb3Bkb3duTWFuYWdlclNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9ncmF2aXR5LWRyb3Bkb3duLW1hbmFnZXIuc2VydmljZVwiO1xuaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2UsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dyYXZpdHktZHJvcGRvd24tbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9ncmF2aXR5LWRyb3Bkb3duLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ncmF2aXR5LWRyb3Bkb3duLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbRmlsdGVyQnlQaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBHcmF2aXR5RHJvcGRvd25MaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIE9uRGVzdHJveSB7XG4gIC8vIENvbXBvbmVudCBmZWF0dXJlc1xuICBASW5wdXQoKSBwdWJsaWMgbGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIGljb25MZWZ0OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBpdGVtczogQXJyYXk8YW55PjtcbiAgQElucHV0KCkgcHVibGljIGN5cHJlc3NUYWc6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzdXBwb3J0VGV4dDogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgaGFzRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGNsZWFyYWJsZTogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHB1YmxpYyBtdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGN1cnJlbnRMYW5nOiBzdHJpbmcgPSAnZW4nO1xuICBASW5wdXQoKSBwdWJsaWMgaXNDdXJyZW5jeTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgaXNEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgaXNSZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgY3VzdG9tVmFsdWVzOiBBcnJheTxhbnk+IHwgYW55O1xuICBASW5wdXQoKSBwdWJsaWMgY29uZmlnPzogeyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogc3RyaW5nOyB9O1xuXG4gIC8vIEFwcGVhcmFuY2Ugc2V0dGluZ3NcbiAgQElucHV0KCkgcHVibGljIGxhYmVsU2l6ZTogJ3NtJyB8ICdtZCcgfCAnbGcnID0gJ3NtJztcbiAgQElucHV0KCkgcHVibGljIHNpemU6ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICd4bCcgPSAnbWQnO1xuICBASW5wdXQoKSBwdWJsaWMgaW5wdXRUeXBlOiAnZmllbGQnIHwgJ2xhYmVsJyA9ICdmaWVsZCc7XG4gIEBJbnB1dCgpIHB1YmxpYyB3aWR0aDogJ3Nob3J0JyB8ICdtZWRpdW0nIHwgJ2Z1bGwnIHwgJ2ZpdCcgPSAnc2hvcnQnO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBkcm9wZG93blN0YXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRyb3Bkb3duT3BlbmVkO1xuICB9XG5cbiAgc2V0IGRyb3Bkb3duU3RhdGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRyb3Bkb3duT3BlbmVkID0gdmFsdWU7XG4gIH1cblxuICBAT3V0cHV0KCkgZHJvcGRvd25TdGF0ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgncmVzcG9uc2UnKSBwdWJsaWMgc2VsZWN0ZWRJdGVtc1Jlc3BvbnNlOiBFdmVudEVtaXR0ZXI8YW55W10gfCBhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaElucHV0JylcbiAgc2V0IHdhdGNoKHNlYXJjaElucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+KSB7XG4gICAgaWYgKHNlYXJjaElucHV0KSB7XG4gICAgICBzZWFyY2hJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiB0cnVlfSk7XG4gICAgfVxuICB9O1xuXG4gIHB1YmxpYyBzZWFyY2hUZXh0OiBzdHJpbmcgPSAnJztcbiAgcHVibGljIHNlbGVjdGVkSXRlbXM6IGFueVtdID0gW107XG4gIHB1YmxpYyBpc29Db25maWc6IHN0cmluZyA9ICdpc28nO1xuXHRwdWJsaWMgbmFtZUNvbmZpZzogc3RyaW5nID0gJ25hbWUnO1xuICBwdWJsaWMgYXZhaWxhYmxlT3B0aW9uczogYW55W10gPSBbXTtcbiAgcHVibGljIGRyb3Bkb3duT3BlbmVkOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBvcGVuQ2hpbGRyZW5NYXAgPSBuZXcgTWFwPGFueSwgYm9vbGVhbj4oKTtcbiAgcHVibGljIG5ldHdvcmtDb25maWc6IHsgbGFiZWw6IHN0cmluZzsgaXNvOiBzdHJpbmc7IGlkOiBudW1iZXI7IH0gPSBudWxsO1xuXG5cdHByaXZhdGUgZHJvcGRvd25NYW5hZ2VyU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xuXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgZHJvcGRvd25TZXJ2aWNlOiBHcmF2aXR5RHJvcGRvd25NYW5hZ2VyU2VydmljZSwgcHJpdmF0ZSBfZXJlZjogRWxlbWVudFJlZikgeyB9XG5cblx0bmdPbkluaXQoKSB7XG5cdFx0dGhpcy5kcm9wZG93bk1hbmFnZXJTdWJzY3JpcHRpb24gPSB0aGlzLmRyb3Bkb3duU2VydmljZS5kcm9wZG93bk9wZW5lZCQuc3Vic2NyaWJlKG9wZW5lZERyb3Bkb3duID0+IHtcblx0XHRcdGlmIChvcGVuZWREcm9wZG93biAhPT0gdGhpcyAmJiB0aGlzLmRyb3Bkb3duT3BlbmVkKSB7XG5cdFx0XHRcdHRoaXMuY2xvc2VEcm9wZG93bigpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydpdGVtcyddPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMuYXZhaWxhYmxlT3B0aW9ucyA9IHRoaXMuaXRlbXM7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXNbJ2N1c3RvbVZhbHVlcyddKSB7XG4gICAgICBjb25zdCBjaGFuZ2VJdGVtOiBTaW1wbGVDaGFuZ2UgPSBjaGFuZ2VzWydjdXN0b21WYWx1ZXMnXTtcbiAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IGNoYW5nZUl0ZW0/LmN1cnJlbnRWYWx1ZTtcblxuICAgICAgY29uc3QgZmluZE9wdGlvblJlY3Vyc2l2ZWx5ID0gKGl0ZW1zOiBhbnlbXSwgdmFsdWU6IGFueSk6IGFueSB8IG51bGwgPT4ge1xuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcbiAgICAgICAgICBjb25zdCBpdGVtVmFsdWUgPSB0aGlzLmNvbmZpZyA/IGl0ZW1bdGhpcy5jb25maWcudmFsdWVdIDogaXRlbTtcbiAgICAgICAgICBpZiAoaXRlbVZhbHVlID09IHZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoaXRlbS5jaGlsZHJlbikge1xuICAgICAgICAgICAgY29uc3QgZm91bmRDaGlsZCA9IGZpbmRPcHRpb25SZWN1cnNpdmVseShpdGVtLmNoaWxkcmVuLCB2YWx1ZSk7XG4gICAgICAgICAgICBpZiAoZm91bmRDaGlsZCkgcmV0dXJuIGZvdW5kQ2hpbGQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfTtcblxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW107XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGN1cnJlbnRWYWx1ZSkpIHtcbiAgICAgICAgY3VycmVudFZhbHVlLmZvckVhY2goKHZhbDogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3QgZm91bmQgPSBmaW5kT3B0aW9uUmVjdXJzaXZlbHkodGhpcy5pdGVtcywgdmFsKTtcbiAgICAgICAgICBpZiAoZm91bmQgJiYgIXRoaXMuc2VsZWN0ZWRJdGVtcy5pbmNsdWRlcyhmb3VuZCkpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5wdXNoKGZvdW5kKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmIChjdXJyZW50VmFsdWUgIT0gbnVsbCAmJiBjdXJyZW50VmFsdWUgIT09ICcnKSB7XG4gICAgICAgIGNvbnN0IGZvdW5kID0gZmluZE9wdGlvblJlY3Vyc2l2ZWx5KHRoaXMuaXRlbXMsIGN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIGlmIChmb3VuZCkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtmb3VuZF07XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoIWN1cnJlbnRWYWx1ZSAmJiAhY2hhbmdlSXRlbS5maXJzdENoYW5nZSkge1xuICAgICAgICB0aGlzLmNsZWFyU2VsZWN0aW9uKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cblx0bmdPbkRlc3Ryb3koKSB7XG5cdFx0aWYgKHRoaXMuZHJvcGRvd25NYW5hZ2VyU3Vic2NyaXB0aW9uKSB7XG5cdFx0XHR0aGlzLmRyb3Bkb3duTWFuYWdlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBnZXRTdGF0dXMoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkKSB7XG4gICAgICByZXR1cm4gJ2Rpc2FibGVkJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNSZWFkb25seSkge1xuICAgICAgcmV0dXJuICdyZWFkb25seSc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmhhc0Vycm9yKSB7XG4gICAgICByZXR1cm4gJ2Vycm9yJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuZHJvcGRvd25PcGVuZWQpIHtcbiAgICAgIHJldHVybiAnb3Blbic7XG4gICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuICdzZWxlY3RlZCc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnYWN0aXZlJztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNJY29uTGVmdE5ldygpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5pY29uTGVmdCkge1xuICAgICAgcmV0dXJuIEdyYXZpdHlJY29uQ29tcG9uZW50LmlzTmV3SWNvbih0aGlzLmljb25MZWZ0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuXHRwdWJsaWMgdG9nZ2xlRHJvcGRvd24oKTogdm9pZCB7XG5cdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdFx0dGhpcy5uZXR3b3JrQ29uZmlnID0gbnVsbDtcblxuXHRcdGlmICghdGhpcy5pc0Rpc2FibGVkICYmICF0aGlzLmlzUmVhZG9ubHkpIHtcblx0XHRcdGlmICh0aGlzLmRyb3Bkb3duT3BlbmVkKSB7XG5cdFx0XHRcdHRoaXMuZW1pdFNlbGVjdGlvbigpO1xuXHRcdFx0XHR0aGlzLnNlYXJjaFRleHQgPSAnJztcblx0XHRcdFx0dGhpcy5jbG9zZURyb3Bkb3duKCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLm9wZW5Ecm9wZG93bigpO1xuXHRcdFx0XHR0aGlzLnNlbGVjdGVkSXRlbXM/LmZvckVhY2goc2VsID0+IHtcblx0XHRcdFx0XHR0aGlzLml0ZW1zPy5mb3JFYWNoKHBhcmVudCA9PiB7XG5cdFx0XHRcdFx0XHRpZiAocGFyZW50LmNoaWxkcmVuPy5pbmNsdWRlcyhzZWwpKSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMub3BlbkNoaWxkcmVuTWFwLnNldChwYXJlbnQsIHRydWUpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIGVtaXRTZWxlY3Rpb24oKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMubXVsdGlwbGUpIHtcblx0XHRcdGlmICh0aGlzLnNlbGVjdGVkSXRlbXM/Lmxlbmd0aCA+IDApIHtcblx0XHRcdFx0dGhpcy5zZWxlY3RlZEl0ZW1zUmVzcG9uc2UuZW1pdCh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRpZiAodGhpcy5zZWxlY3RlZEl0ZW1zWzBdKSB7XG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRJdGVtc1Jlc3BvbnNlLmVtaXQodGhpcy5zZWxlY3RlZEl0ZW1zWzBdKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgc2VsZWN0SXRlbShpdGVtVG9BZGQ6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IGlzUGFyZW50ID0gISFpdGVtVG9BZGQuY2hpbGRyZW47XG5cbiAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xuICAgICAgY29uc3QgaXNTZWxlY3RlZCA9IHRoaXMuY2hlY2tJZlNlbGVjdGVkKGl0ZW1Ub0FkZCk7XG5cbiAgICAgIGlmIChpc1NlbGVjdGVkKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHRoaXMuc2VsZWN0ZWRJdGVtcy5maWx0ZXIoaSA9PlxuICAgICAgICAgICh0aGlzLmNvbmZpZyA/IGlbdGhpcy5jb25maWcudmFsdWVdIDogaSkgIT09XG4gICAgICAgICAgKHRoaXMuY29uZmlnID8gaXRlbVRvQWRkW3RoaXMuY29uZmlnLnZhbHVlXSA6IGl0ZW1Ub0FkZClcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoaXNQYXJlbnQpIHtcbiAgICAgICAgICBpdGVtVG9BZGQuY2hpbGRyZW4uZm9yRWFjaChjaGlsZCA9PiB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnNlbGVjdGVkSXRlbXMuZmlsdGVyKGkgPT4gaSAhPT0gY2hpbGQpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuaXRlbXMuZm9yRWFjaChwYXJlbnQgPT4ge1xuICAgICAgICAgICAgaWYgKHBhcmVudC5jaGlsZHJlbj8uaW5jbHVkZXMoaXRlbVRvQWRkKSkge1xuICAgICAgICAgICAgICBjb25zdCBhbnlTZWxlY3RlZCA9IHBhcmVudC5jaGlsZHJlbi5zb21lKGNoaWxkID0+IHRoaXMuY2hlY2tJZlNlbGVjdGVkKGNoaWxkKSk7XG4gICAgICAgICAgICAgIGNvbnN0IGFsbFNlbGVjdGVkID0gcGFyZW50LmNoaWxkcmVuLmV2ZXJ5KGNoaWxkID0+IHRoaXMuY2hlY2tJZlNlbGVjdGVkKGNoaWxkKSk7XG4gICAgICAgICAgICAgIGlmICghYW55U2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnNlbGVjdGVkSXRlbXMuZmlsdGVyKGkgPT4gaSAhPT0gcGFyZW50KTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChhbGxTZWxlY3RlZCAmJiAhdGhpcy5jaGVja0lmU2VsZWN0ZWQocGFyZW50KSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5wdXNoKHBhcmVudCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMucHVzaChpdGVtVG9BZGQpO1xuXG4gICAgICAgIGlmIChpc1BhcmVudCkge1xuICAgICAgICAgIGl0ZW1Ub0FkZC5jaGlsZHJlbi5mb3JFYWNoKGNoaWxkID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5jaGVja0lmU2VsZWN0ZWQoY2hpbGQpKSB7XG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5wdXNoKGNoaWxkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLml0ZW1zLmZvckVhY2gocGFyZW50ID0+IHtcbiAgICAgICAgICAgIGlmIChwYXJlbnQuY2hpbGRyZW4/LmluY2x1ZGVzKGl0ZW1Ub0FkZCkpIHtcbiAgICAgICAgICAgICAgY29uc3QgYWxsU2VsZWN0ZWQgPSBwYXJlbnQuY2hpbGRyZW4uZXZlcnkoY2hpbGQgPT4gdGhpcy5jaGVja0lmU2VsZWN0ZWQoY2hpbGQpKTtcbiAgICAgICAgICAgICAgaWYgKGFsbFNlbGVjdGVkICYmICF0aGlzLmNoZWNrSWZTZWxlY3RlZChwYXJlbnQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnB1c2gocGFyZW50KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtpdGVtVG9BZGRdO1xuICAgICAgdGhpcy50b2dnbGVEcm9wZG93bigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpc1BhcnRpYWxseVNlbGVjdGVkKGl0ZW06IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmICghaXRlbS5jaGlsZHJlbj8ubGVuZ3RoKSByZXR1cm4gZmFsc2U7XG5cbiAgICBjb25zdCBzZWxlY3RlZENoaWxkcmVuID0gaXRlbS5jaGlsZHJlbi5maWx0ZXIoY2hpbGQgPT4gdGhpcy5jaGVja0lmU2VsZWN0ZWQoY2hpbGQpKTtcbiAgICByZXR1cm4gc2VsZWN0ZWRDaGlsZHJlbi5sZW5ndGggPiAwICYmIHNlbGVjdGVkQ2hpbGRyZW4ubGVuZ3RoIDwgaXRlbS5jaGlsZHJlbi5sZW5ndGg7XG4gIH1cblxuICBwdWJsaWMgY2hlY2tJZlNlbGVjdGVkKGl0ZW0/OiBhbnkpOiBib29sZWFuIHtcbiAgICBjb25zdCBnZXRWYWx1ZSA9IChlbDogYW55KSA9PiB0aGlzLmNvbmZpZyA/IGVsW3RoaXMuY29uZmlnLnZhbHVlXSA6IGVsO1xuXG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSXRlbXMuc29tZShzZWxlY3RlZCA9PiBnZXRWYWx1ZShzZWxlY3RlZCkgPT09IGdldFZhbHVlKGl0ZW0pKTtcbiAgICB9XG5cbiAgICBjb25zdCBmbGF0dGVuID0gdGhpcy5mbGF0dGVuSXRlbXModGhpcy5hdmFpbGFibGVPcHRpb25zKTtcbiAgICByZXR1cm4gZmxhdHRlbi5sZW5ndGggPiAwICYmIGZsYXR0ZW4uZXZlcnkob3B0aW9uID0+XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuc29tZShzZWxlY3RlZCA9PiBnZXRWYWx1ZShzZWxlY3RlZCkgPT09IGdldFZhbHVlKG9wdGlvbikpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RBbGxJdGVtcyhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGNvbnN0IGZsYXR0ZW4gPSB0aGlzLmZsYXR0ZW5JdGVtcyh0aGlzLmF2YWlsYWJsZU9wdGlvbnMpO1xuICAgIGNvbnN0IGdldFZhbHVlID0gKGVsOiBhbnkpID0+IHRoaXMuY29uZmlnID8gZWxbdGhpcy5jb25maWcudmFsdWVdIDogZWw7XG5cbiAgICBjb25zdCBhbGxTZWxlY3RlZCA9IGZsYXR0ZW4uZXZlcnkob3B0aW9uID0+XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuc29tZShzZWxlY3RlZCA9PiBnZXRWYWx1ZShzZWxlY3RlZCkgPT09IGdldFZhbHVlKG9wdGlvbikpXG4gICAgKTtcblxuICAgIGlmIChhbGxTZWxlY3RlZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gdGhpcy5zZWxlY3RlZEl0ZW1zLmZpbHRlcihzZWxlY3RlZCA9PlxuICAgICAgICAhZmxhdHRlbi5zb21lKG9wdGlvbiA9PiBnZXRWYWx1ZShzZWxlY3RlZCkgPT09IGdldFZhbHVlKG9wdGlvbikpXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBmbGF0dGVuLmZvckVhY2gob3B0aW9uID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkSXRlbXMuc29tZShzZWxlY3RlZCA9PiBnZXRWYWx1ZShzZWxlY3RlZCkgPT09IGdldFZhbHVlKG9wdGlvbikpKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnB1c2gob3B0aW9uKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmbGF0dGVuSXRlbXMoaXRlbXM6IGFueVtdKTogYW55W10ge1xuICAgIHJldHVybiBpdGVtcy5yZWR1Y2UoKGFjYywgaXRlbSkgPT4ge1xuICAgICAgYWNjLnB1c2goaXRlbSk7XG4gICAgICBpZiAoaXRlbS5jaGlsZHJlbj8ubGVuZ3RoKSB7XG4gICAgICAgIGFjYy5wdXNoKC4uLnRoaXMuZmxhdHRlbkl0ZW1zKGl0ZW0uY2hpbGRyZW4pKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgW10pO1xuICB9XG5cbiAgcHVibGljIGNsZWFyU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuXG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtc1Jlc3BvbnNlLmVtaXQodGhpcy5zZWxlY3RlZEl0ZW1zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zUmVzcG9uc2UuZW1pdChudWxsKTtcbiAgICB9XG4gIH1cblxuXHRwdWJsaWMgZmlsdGVySXRlbXMoKTogdm9pZCB7XG5cdFx0Y29uc3Qgc2VhcmNoID0gdGhpcy5zZWFyY2hUZXh0Py50b0xvd2VyQ2FzZSgpO1xuXHRcdHRoaXMub3BlbkNoaWxkcmVuTWFwLmNsZWFyKCk7XG5cblx0XHRpZiAoIXNlYXJjaCkge1xuXHRcdFx0dGhpcy5hdmFpbGFibGVPcHRpb25zID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLml0ZW1zKSk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y29uc3QgZmlsdGVyUmVjdXJzaXZlID0gKGl0ZW1zOiBhbnlbXSk6IGFueVtdID0+IHtcblx0XHRcdGNvbnN0IHJlc3VsdCA9IFtdO1xuXG5cdFx0XHRpdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuXHRcdFx0XHRjb25zdCBoYXNDaGlsZHJlbiA9ICEhaXRlbS5jaGlsZHJlbj8ubGVuZ3RoO1xuXG5cdFx0XHRcdGNvbnN0IGZpZWxkc1RvU2VhcmNoOiBhbnlbXSA9IFtdO1xuXHRcdFx0XHRpZiAodGhpcy5jb25maWcpIHtcblx0XHRcdFx0XHRmaWVsZHNUb1NlYXJjaC5wdXNoKGl0ZW1bdGhpcy5pc29Db25maWddKTtcblx0XHRcdFx0XHRmaWVsZHNUb1NlYXJjaC5wdXNoKGl0ZW1bdGhpcy5uYW1lQ29uZmlnXSk7XG5cblx0XHRcdFx0XHRpZih0aGlzLmNvbmZpZy5sYWJlbCkge1xuXHRcdFx0XHRcdFx0ZmllbGRzVG9TZWFyY2gucHVzaChpdGVtW3RoaXMuY29uZmlnLmxhYmVsXSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Y29uc3QgbWF0Y2ggPSBmaWVsZHNUb1NlYXJjaC5zb21lKGZpZWxkID0+XG5cdFx0XHRcdFx0ZmllbGQ/LnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gpXG5cdFx0XHRcdCk7XG5cblx0XHRcdFx0bGV0IGZpbHRlcmVkQ2hpbGRyZW46IGFueVtdID0gW107XG5cdFx0XHRcdGlmIChoYXNDaGlsZHJlbikge1xuXHRcdFx0XHRcdGZpbHRlcmVkQ2hpbGRyZW4gPSBmaWx0ZXJSZWN1cnNpdmUoaXRlbS5jaGlsZHJlbik7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRjb25zdCBpbmNsdWRlSXRlbSA9IGhhc0NoaWxkcmVuID8gZmlsdGVyZWRDaGlsZHJlbi5sZW5ndGggPiAwIDogbWF0Y2g7XG5cblx0XHRcdFx0aWYgKGluY2x1ZGVJdGVtKSB7XG5cdFx0XHRcdFx0Y29uc3QgbmV3SXRlbSA9IHsgLi4uaXRlbSB9O1xuXHRcdFx0XHRcdGlmIChmaWx0ZXJlZENoaWxkcmVuLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRcdG5ld0l0ZW0uY2hpbGRyZW4gPSBmaWx0ZXJlZENoaWxkcmVuO1xuXHRcdFx0XHRcdFx0dGhpcy5vcGVuQ2hpbGRyZW5NYXAuc2V0KG5ld0l0ZW0sIHRydWUpO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRkZWxldGUgbmV3SXRlbS5jaGlsZHJlbjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmVzdWx0LnB1c2gobmV3SXRlbSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXG5cdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdH07XG5cblx0XHR0aGlzLmF2YWlsYWJsZU9wdGlvbnMgPSBmaWx0ZXJSZWN1cnNpdmUodGhpcy5pdGVtcyk7XG5cdH1cblxuXHRASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pIG9uRG9jdW1lbnRDbGljaygkZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fZXJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKCRldmVudC50YXJnZXQpICYmIHRoaXMuZHJvcGRvd25PcGVuZWQpIHtcbiAgICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtc1Jlc3BvbnNlLmVtaXQodGhpcy5zZWxlY3RlZEl0ZW1zKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkSXRlbXNbMF0pIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXNSZXNwb25zZS5lbWl0KHRoaXMuc2VsZWN0ZWRJdGVtc1swXSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICB9XG4gIH1cblxuXHRwdWJsaWMgb3BlbkRyb3Bkb3duKCk6IHZvaWQge1xuXHRcdHRoaXMuZHJvcGRvd25PcGVuZWQgPSB0cnVlO1xuXHRcdHRoaXMuZHJvcGRvd25TZXJ2aWNlLm5vdGlmeURyb3Bkb3duT3BlbmVkKHRoaXMpO1xuXHRcdHRoaXMuZHJvcGRvd25TdGF0ZUNoYW5nZS5lbWl0KHRoaXMuZHJvcGRvd25PcGVuZWQpO1xuXHR9XG5cblx0cHVibGljIGNsb3NlRHJvcGRvd24oKTogdm9pZCB7XG5cdFx0dGhpcy5zZWFyY2hUZXh0ID0gJyc7XG5cdFx0dGhpcy5kcm9wZG93bk9wZW5lZCA9IGZhbHNlO1xuXHRcdHRoaXMuYXZhaWxhYmxlT3B0aW9ucyA9IHRoaXMuaXRlbXM7XG5cdFx0dGhpcy5kcm9wZG93blN0YXRlQ2hhbmdlLmVtaXQodGhpcy5kcm9wZG93bk9wZW5lZCk7XG5cdH1cblxuICBwdWJsaWMgZ2V0Q3VycmVuY3lJY29uU2l6ZShzaXplOiBzdHJpbmcpIHtcbiAgICBzd2l0Y2ggKHNpemUpIHtcbiAgICAgIGNhc2UgJ3NtJzpcbiAgICAgICAgcmV0dXJuICdzbS0xNic7XG4gICAgICBjYXNlICdsZyc6XG4gICAgICAgIHJldHVybiAnbGctMzInO1xuICAgICAgY2FzZSAneGwnOlxuICAgICAgICByZXR1cm4gJ3hsLTQwJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnbWQtMjQnO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRTcGFjaW5nQ2xhc3Moc2l6ZTogc3RyaW5nKSB7XG4gICAgc3dpdGNoIChzaXplKSB7XG4gICAgICBjYXNlICdzbSc6XG4gICAgICAgIHJldHVybiAnZ3Jhdml0eS1tYXJnaW4tcmlnaHQteHhzJztcbiAgICAgIGNhc2UgJ21kJzpcbiAgICAgICAgcmV0dXJuICdncmF2aXR5LW1hcmdpbi1yaWdodC14cyc7XG4gICAgICBjYXNlICdsZyc6XG4gICAgICAgIHJldHVybiAnZ3Jhdml0eS1tYXJnaW4tcmlnaHQtc20nO1xuICAgICAgY2FzZSAneGwnOlxuICAgICAgICByZXR1cm4gJ2dyYXZpdHktbWFyZ2luLXJpZ2h0LW1kJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0TXVsdGlsZXZlbFNwYWNpbmdDbGFzcyhzaXplOiBzdHJpbmcpIHtcbiAgICBzd2l0Y2ggKHNpemUpIHtcbiAgICAgIGNhc2UgJ3NtJzpcbiAgICAgICAgcmV0dXJuICdncmF2aXR5LW1hcmdpbi1yaWdodC1tZCc7XG4gICAgICBjYXNlICdtZCc6XG4gICAgICAgIHJldHVybiAnZ3Jhdml0eS1tYXJnaW4tcmlnaHQtbGcnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRMYWJlbFRleHQoKTogc3RyaW5nIHtcbiAgICBsZXQgcmVzdWx0OiBzdHJpbmcgPSAnJztcbiAgICBpZiAodGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmVzdWx0ID0gdGhpcy5sYWJlbDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLmZvckVhY2goKGl0ZW0sIGkpID0+IHtcbiAgICAgICAgbGV0IGRpc3BsYXlWYWx1ZSA9IHRoaXMuY29uZmlnID8gaXRlbVt0aGlzLmNvbmZpZy5sYWJlbF0gOiBpdGVtO1xuICAgICAgICBsZXQgc2VwYXJhdG9yID0gaSAhPT0gdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCAtIDEgPyAnLCcgOiAnJztcbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICsgZGlzcGxheVZhbHVlICsgc2VwYXJhdG9yO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgaXNDaGlsZHJlbk9wZW4oaXRlbTogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMub3BlbkNoaWxkcmVuTWFwLmdldChpdGVtKSA9PT0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVDaGlsZHJlbihpdGVtOiBhbnksIGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMub3BlbkNoaWxkcmVuTWFwLmdldChpdGVtKSB8fCBmYWxzZTtcbiAgICB0aGlzLm9wZW5DaGlsZHJlbk1hcC5zZXQoaXRlbSwgIWN1cnJlbnQpO1xuICB9XG5cbiAgcHVibGljIGdldERpc3BsYXlWYWx1ZShjaGlsZDogYW55LCBjb25maWc/OiB7IGxhYmVsOiBzdHJpbmcgfSk6IHN0cmluZyB7XG4gICAgaWYgKGNvbmZpZz8ubGFiZWwgJiYgdHlwZW9mIGNoaWxkID09PSAnb2JqZWN0JyAmJiBjaGlsZCAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGNoaWxkW2NvbmZpZy5sYWJlbF0gPz8gJyc7XG4gICAgfVxuICAgIHJldHVybiBjaGlsZCA/PyAnJztcbiAgfVxuXG4gIHB1YmxpYyBpbnB1dERpc3BsYXlWYWx1ZSgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5zZWxlY3RlZEl0ZW1zPy5sZW5ndGgpIHJldHVybiAnJztcblxuICAgIGNvbnN0IGdldFZhbHVlID0gKGl0ZW06IGFueSkgPT4gdGhpcy5jb25maWcgPyBpdGVtW3RoaXMuY29uZmlnLnZhbHVlXSA6IGl0ZW07XG5cbiAgICBjb25zdCBnZXRMYWJlbCA9IChpdGVtOiBhbnkpOiBzdHJpbmcgPT4ge1xuICAgICAgY29uc3QgYmFzZUxhYmVsID0gdGhpcy5jb25maWcgPyBpdGVtW3RoaXMuY29uZmlnLmxhYmVsXSA6IGl0ZW07XG5cbiAgICAgIGlmICghdGhpcy5tdWx0aXBsZSAmJiBpdGVtLm5ldHdvcms/LmNvZGUgJiYgKGl0ZW0ubmV0d29ya19pZCAhPT0gaXRlbS5jdXJyZW5jeV9pZCB8fCBpdGVtLmNoaWxkcmVuIHx8IGl0ZW0uaXNfRVJDMjApKSB7XG4gICAgICAgIHRoaXMubmV0d29ya0NvbmZpZyA9IHtsYWJlbDogYmFzZUxhYmVsLCBpc286IGl0ZW0ubmV0d29yaz8uY29kZSwgaWQ6IGl0ZW0ubmV0d29ya19pZH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGJhc2VMYWJlbDtcbiAgICB9O1xuXG4gICAgaWYgKCF0aGlzLml0ZW1zPy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSXRlbXMubWFwKGdldExhYmVsKS5qb2luKCcsICcpO1xuICAgIH1cblxuICAgIGNvbnN0IGxhYmVsczogc3RyaW5nW10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgcGFyZW50IG9mIHRoaXMuaXRlbXMpIHtcbiAgICAgIGlmIChwYXJlbnQuY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgICAgICBjb25zdCBhbGxDaGlsZHJlblNlbGVjdGVkID0gcGFyZW50LmNoaWxkcmVuLmV2ZXJ5KGNoaWxkID0+XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnNvbWUoc2VsID0+IGdldFZhbHVlKHNlbCkgPT09IGdldFZhbHVlKGNoaWxkKSlcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoYWxsQ2hpbGRyZW5TZWxlY3RlZCkge1xuICAgICAgICAgIGxhYmVscy5wdXNoKGdldExhYmVsKHBhcmVudCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgcGFyZW50LmNoaWxkcmVuKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZEl0ZW1zLnNvbWUoc2VsID0+IGdldFZhbHVlKHNlbCkgPT09IGdldFZhbHVlKGNoaWxkKSkpIHtcbiAgICAgICAgICAgICAgbGFiZWxzLnB1c2goZ2V0TGFiZWwoY2hpbGQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZEl0ZW1zLnNvbWUoc2VsID0+IGdldFZhbHVlKHNlbCkgPT09IGdldFZhbHVlKHBhcmVudCkpKSB7XG4gICAgICAgIGxhYmVscy5wdXNoKGdldExhYmVsKHBhcmVudCkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnRydW5jYXRlKGxhYmVscyk7XG4gIH1cblxuICBwcml2YXRlIHRydW5jYXRlKGxhYmVsczogc3RyaW5nW10pOiBzdHJpbmcge1xuICAgIGNvbnN0IG1heEl0ZW1zID0gdGhpcy53aWR0aCA9PT0gJ3Nob3J0JyA/IDMgOiB0aGlzLndpZHRoID09PSAnbWVkaXVtJyA/IDYgOiAxMjtcbiAgICBpZiAobGFiZWxzLmxlbmd0aCA8PSBtYXhJdGVtcykgcmV0dXJuIGxhYmVscy5qb2luKCcsICcpO1xuICAgIHJldHVybiBsYWJlbHMuc2xpY2UoMCwgbWF4SXRlbXMpLmpvaW4oJywgJykgKyAnLi4uJztcbiAgfVxuXG4gIHB1YmxpYyBjbGVhclNlYXJjaCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaFRleHQgPSAnJztcbiAgICB0aGlzLmF2YWlsYWJsZU9wdGlvbnMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuaXRlbXMpKTtcbiAgfVxuXG4gIHB1YmxpYyBwcmV2ZW50VHlwaW5nV2hlbkxvY2tlZChldmVudDogS2V5Ym9hcmRFdmVudCwgaW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQpIHtcbiAgICBjb25zdCBpc0xvY2tlZCA9ICF0aGlzLmRyb3Bkb3duT3BlbmVkIHx8ICF0aGlzLml0ZW1zO1xuXG4gICAgaWYgKGlzTG9ja2VkKSB7XG4gICAgICBpZiAoZXZlbnQua2V5Lmxlbmd0aCA9PT0gMSB8fCBldmVudC5rZXkgPT09ICdCYWNrc3BhY2UnIHx8IGV2ZW50LmtleSA9PT0gJ0RlbGV0ZScpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cblxuICAgICAgaW5wdXQuYmx1cigpO1xuICAgIH1cbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImlucHV0VHlwZSA9PT0gJ2ZpZWxkJ1wiPlxuICA8bGFiZWwgY2xhc3M9XCJoci1sYWJlbCBzbS1ib2xkIHt7Z2V0U3RhdHVzKCl9fVwiICpuZ0lmPVwibGFiZWxcIj5cbiAgICB7eyBsYWJlbCB9fSA8c3BhbiAqbmdJZj1cInJlcXVpcmVkIHx8IGhhc0Vycm9yXCI+Kjwvc3Bhbj5cbiAgPC9sYWJlbD5cbjwvbmctY29udGFpbmVyPlxuXG48ZGl2IGNsYXNzPVwiZ3Jhdml0eS1pbnB1dC1maWVsZCB7e2lucHV0VHlwZX19LXt7bGFiZWxTaXplfX0ge3tzaXplfX0ge3t3aWR0aH19LXdpZHRoIHt7Z2V0U3RhdHVzKCl9fVwiXG4gICAgIFthdHRyLmRhdGEtY3ldPVwiY3lwcmVzc1RhZ1wiIChjbGljayk9XCJ0b2dnbGVEcm9wZG93bigpO1wiPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbnB1dFR5cGUgPT09ICdmaWVsZCdcIj5cbiAgICA8Z3Jhdml0eS1pY29uIGNsYXNzPVwibGVmdFwiIFtpY29uTmFtZV09XCJpY29uTGVmdFwiIFtpY29uU2l6ZV09XCJpc0ljb25MZWZ0TmV3KCkgPyAnbWQtMTYnIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cIihpY29uTGVmdCAmJiAhZHJvcGRvd25PcGVuZWQpIHx8IChpY29uTGVmdCAmJiAhaXRlbXMpXCI+PC9ncmF2aXR5LWljb24+XG5cbiAgICA8Z3Jhdml0eS1pY29uIGNsYXNzPVwic2VhcmNoLWljb25cIiBbaWNvbk5hbWVdPVwiJ3NlYXJjaCdcIiBbaWNvblNpemVdPVwiJ3NtLTEyJ1wiXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cIihkcm9wZG93bk9wZW5lZCAmJiBpdGVtcylcIj48L2dyYXZpdHktaWNvbj5cblxuICAgIDxkaXYgKm5nSWY9XCIhZHJvcGRvd25PcGVuZWQgJiYgbmV0d29ya0NvbmZpZ1wiIGNsYXNzPVwibmV0d29yay1waWxsXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImhyLWxhYmVsIHt7c2l6ZX19LXJlZ3VsYXJcIj57e25ldHdvcmtDb25maWcubGFiZWx9fTwvc3Bhbj5cbiAgICAgIDxncmF2aXR5LW5ldHdvcmstcGlsbCBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiIFtuZXR3b3JrXT1cIntpc286IG5ldHdvcmtDb25maWcuaXNvLCBpZDogbmV0d29ya0NvbmZpZy5pZH1cIj48L2dyYXZpdHktbmV0d29yay1waWxsPlxuICAgIDwvZGl2PlxuXG4gICAgPGlucHV0ICpuZ0lmPVwiIW5ldHdvcmtDb25maWcgfHwgZHJvcGRvd25PcGVuZWRcIiBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICBjbGFzcz1cImhyLWxhYmVsIHt7c2l6ZX19LXJlZ3VsYXIge3tnZXRTdGF0dXMoKX19XCJcbiAgICAgICAgICAgKGZvY3VzKT1cInNlYXJjaFRleHQgPSAnJ1wiIFtjbGFzcy5sb2NrZWRdPVwiIWRyb3Bkb3duT3BlbmVkIHx8ICFpdGVtc1wiXG4gICAgICAgICAgIChrZXlkb3duKT1cInByZXZlbnRUeXBpbmdXaGVuTG9ja2VkKCRldmVudCwgc2VhcmNoSW5wdXQpXCJcbiAgICAgICAgICAgKGlucHV0KT1cImZpbHRlckl0ZW1zKCk7IGRyb3Bkb3duT3BlbmVkID0gdHJ1ZVwiXG4gICAgICAgICAgIFthdHRyLmRhdGEtY3ldPVwiY3lwcmVzc1RhZyArICdfc2VhcmNoX2lucHV0J1wiXG4gICAgICAgICAgICNzZWFyY2hJbnB1dFxuICAgICAgICAgICBbbmdNb2RlbF09XCIoZHJvcGRvd25PcGVuZWQgJiYgaXRlbXMpID8gc2VhcmNoVGV4dCA6IGlucHV0RGlzcGxheVZhbHVlKClcIlxuICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZWFyY2hUZXh0ID0gJGV2ZW50XCJcbiAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyhkcm9wZG93bk9wZW5lZCAmJiBpdGVtcykgPyAoY3VycmVudExhbmcgPT0gJ2VzJyA/ICdCdXNjYXInIDogJ1NlYXJjaCBpbnB1dCcpIDogKHBsYWNlaG9sZGVyID8gcGxhY2Vob2xkZXIgOiBsYWJlbCl9fVwiPlxuXG4gICAgPGdyYXZpdHktaWNvbiBjbGFzcz1cInJpZ2h0XCIgW2ljb25OYW1lXT1cImRyb3Bkb3duT3BlbmVkID8gJ2Fycm93LXVwJzogJ2Fycm93LWRvd24nXCJcbiAgICAgICAgICAgICAgICAgIFtpY29uU2l6ZV09XCInbWQtMTYnXCIgKm5nSWY9XCIhaXNSZWFkb25seSAmJiBzZWFyY2hUZXh0Lmxlbmd0aCA9PSAwXCI+PC9ncmF2aXR5LWljb24+XG5cbiAgICA8Z3Jhdml0eS1pY29uIGNsYXNzPVwicmlnaHRcIiBbaWNvbk5hbWVdPVwiJ3Vuc3VjY2VzcydcIiAoY2xpY2spPVwiY2xlYXJTZWFyY2goKVwiXG4gICAgICAgICAgICAgICAgICBbaWNvblNpemVdPVwiJ21kLTE2J1wiICpuZ0lmPVwiZHJvcGRvd25PcGVuZWQgJiYgc2VhcmNoVGV4dC5sZW5ndGggPiAwXCI+PC9ncmF2aXR5LWljb24+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbnB1dFR5cGUgPT09ICdsYWJlbCdcIj5cbiAgICA8Z3Jhdml0eS1kcm9wZG93bi1sYWJlbCAob25DbGlja0xhYmVsKT1cInRvZ2dsZURyb3Bkb3duKClcIiBbbGFiZWxdPVwiZ2V0TGFiZWxUZXh0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaXplXT1cImxhYmVsU2l6ZVwiIFtpc09wZW5dPVwiZHJvcGRvd25PcGVuZWRcIj5cbiAgICA8L2dyYXZpdHktZHJvcGRvd24tbGFiZWw+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1wYW5lbCB7e2dldFN0YXR1cygpfX1cIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCIgKm5nSWY9XCJpdGVtcyAmJiBkcm9wZG93bk9wZW5lZFwiXG4gICAgICAgW2F0dHIuZGF0YS1jeV09XCJjeXByZXNzVGFnICsgJ19wYW5lbCdcIj5cbiAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWlucHV0XCIgKm5nSWY9XCJpbnB1dFR5cGUgPT09ICdsYWJlbCdcIj5cbiAgICAgIDxncmF2aXR5LWljb24gY2xhc3M9XCJzZWFyY2gtaWNvblwiIFtpY29uTmFtZV09XCInc2VhcmNoJ1wiIFtpY29uU2l6ZV09XCInc20tMTInXCI+PC9ncmF2aXR5LWljb24+XG4gICAgICA8aW5wdXQgYXV0b2NvbXBsZXRlPVwib2ZmXCIgY2xhc3M9XCJoci1sYWJlbCB7e3NpemV9fS1yZWd1bGFyXCIgKGlucHV0KT1cImZpbHRlckl0ZW1zKClcIlxuICAgICAgICAgICAgIFthdHRyLmRhdGEtY3ldPVwiY3lwcmVzc1RhZyArICdfc2VhcmNoX2lucHV0J1wiICNzZWFyY2hJbnB1dFxuICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoVGV4dFwiIHBsYWNlaG9sZGVyPVwie3tjdXJyZW50TGFuZyA9PSAnZXMnID8gJ0J1c2NhcicgOiAnU2VhcmNoIGlucHV0J319XCI+XG4gICAgICA8Z3Jhdml0eS1pY29uIGNsYXNzPVwicG9pbnRlciByZXNldC1pY29uXCIgKGNsaWNrKT1cInNlYXJjaFRleHQgPSAnJzsgZmlsdGVySXRlbXMoKVwiIFtpY29uTmFtZV09XCIndW5zdWNjZXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtpY29uU2l6ZV09XCInc20tMTInXCIgKm5nSWY9XCJzZWFyY2hUZXh0Py5sZW5ndGggPiAwXCI+PC9ncmF2aXR5LWljb24+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwic2VsZWN0LWFsbFwiICpuZ0lmPVwibXVsdGlwbGUgJiYgYXZhaWxhYmxlT3B0aW9ucy5sZW5ndGggIT0gMFwiPlxuICAgICAgPGdyYXZpdHktY2hlY2tib3ggW25nQ2xhc3NdPVwiZ2V0U3BhY2luZ0NsYXNzKHNpemUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RBbGxJdGVtcygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImNoZWNrSWZTZWxlY3RlZCgpXCI+PC9ncmF2aXR5LWNoZWNrYm94PlxuICAgICAgPHAgY2xhc3M9XCJoci1sYWJlbCB7e3NpemV9fS1yZWd1bGFyXCI+e3sgY3VycmVudExhbmcgPT0gJ2VzJyA/ICdTZWxlY2Npb25hciB0b2RvJyA6ICdTZWxlY3QgYWxsJyB9fTwvcD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJpdGVtcy1jb250YWluZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJpdGVtc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1jb250YWluZXJcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBhdmFpbGFibGVPcHRpb25zXCJcbiAgICAgICAgICAgICBbYXR0ci5kYXRhLWN5XT1cImlzQ3VycmVuY3kgPyAnY3VycmVuY3lfb3B0aW9uXycgKyBpdGVtLmN1cnJlbmN5X2lkIDogJydcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaHItbGFiZWwgaXRlbSB7e3NpemV9fS1yZWd1bGFyIHBvaW50ZXJcIlxuICAgICAgICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImNoZWNrSWZTZWxlY3RlZChpdGVtKVwiXG4gICAgICAgICAgICAgICBbY2xhc3MucGFydGlhbF09XCJpc1BhcnRpYWxseVNlbGVjdGVkKGl0ZW0pXCJcbiAgICAgICAgICAgICAgIChjbGljayk9XCJpdGVtLmNoaWxkcmVuPy5sZW5ndGggPyBtdWx0aXBsZSA/IHNlbGVjdEl0ZW0oaXRlbSkgOiB0b2dnbGVDaGlsZHJlbihpdGVtLCAkZXZlbnQpIDogc2VsZWN0SXRlbShpdGVtKVwiPlxuXG4gICAgICAgICAgICA8Z3Jhdml0eS1jaGVja2JveCAqbmdJZj1cIm11bHRpcGxlXCIgW25nQ2xhc3NdPVwiZ2V0U3BhY2luZ0NsYXNzKHNpemUpXCJcbiAgICAgICAgICAgICAgW2lzUGFydGlhbF09XCJpc1BhcnRpYWxseVNlbGVjdGVkKGl0ZW0pXCJcbiAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY2hlY2tJZlNlbGVjdGVkKGl0ZW0pXCI+XG4gICAgICAgICAgICA8L2dyYXZpdHktY2hlY2tib3g+XG5cbiAgICAgICAgICAgIDxncmF2aXR5LWN1cnJlbmN5LWRpc3BsYXktdjIgKm5nSWY9XCJpc0N1cnJlbmN5XCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJnZXRTcGFjaW5nQ2xhc3Moc2l6ZSlcIlxuICAgICAgICAgICAgICAgIFt0eXBlXT1cIml0ZW0udHlwZSA9PT0gJ0ZJQVQnID8gJ2ZpYXQtc2hvcnQnIDogJ3Nob3J0LWhyeidcIlxuICAgICAgICAgICAgICAgIFtjdXJyZW5jeV09XCJ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5X25hbWU6IGl0ZW0ubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgY3VycmVuY3lfaWQ6IGl0ZW0uY3VycmVuY3lfaWQsIGN1cnJlbmN5X2lzbzogaXRlbS5pc28sXG4gICAgICAgICAgICAgICAgICAgIG5ldHdvcmtfaWQ6IGl0ZW0ubmV0d29yaz8uaWQsIG5ldHdvcmtfaXNvOiBpdGVtLm5ldHdvcms/LmNvZGUsXG4gICAgICAgICAgICAgICAgICAgIHBpbGxfdHlwZTogY2hlY2tJZlNlbGVjdGVkKGl0ZW0pID8gJ3NlY29uZGFyeScgOiAncHJpbWFyeSd9XCIgPlxuICAgICAgICAgICAgPC9ncmF2aXR5LWN1cnJlbmN5LWRpc3BsYXktdjI+XG5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhaXNDdXJyZW5jeVwiIFtuZ0NsYXNzXT1cImdldFNwYWNpbmdDbGFzcyhzaXplKVwiPnt7IGdldERpc3BsYXlWYWx1ZShpdGVtLCBjb25maWcpIH19PC9kaXY+XG5cbiAgICAgICAgICAgIDxncmF2aXR5LWljb24gc3R5bGU9XCJtYXJnaW4tbGVmdDogYXV0b1wiIChjbGljayk9XCJ0b2dnbGVDaGlsZHJlbihpdGVtLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25OYW1lXT1cImlzQ2hpbGRyZW5PcGVuKGl0ZW0pID8gJ2Fycm93LXVwJyA6ICdhcnJvdy1kb3duJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uU2l6ZV09XCInbWQtMTYnXCIgKm5nSWY9XCJpdGVtLmNoaWxkcmVuPy5sZW5ndGhcIj48L2dyYXZpdHktaWNvbj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWNoaWxkcmVuXCIgKm5nSWY9XCJpdGVtLmNoaWxkcmVuPy5sZW5ndGggJiYgaXNDaGlsZHJlbk9wZW4oaXRlbSlcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNoaWxkIG9mIGl0ZW0uY2hpbGRyZW5cIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhyLWxhYmVsIGl0ZW0ge3tzaXplfX0tcmVndWxhciBwb2ludGVyXCIgW25nQ2xhc3NdPVwieydtdWx0aXBsZScgOiBtdWx0aXBsZX1cIlxuICAgICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJjaGVja0lmU2VsZWN0ZWQoY2hpbGQpXCJcbiAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0SXRlbShjaGlsZClcIj5cbiAgICAgICAgICAgICAgICA8Z3Jhdml0eS1jaGVja2JveCAqbmdJZj1cIm11bHRpcGxlXCIgW25nQ2xhc3NdPVwiZ2V0TXVsdGlsZXZlbFNwYWNpbmdDbGFzcyhzaXplKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY2hlY2tJZlNlbGVjdGVkKGNoaWxkKVwiPjwvZ3Jhdml0eS1jaGVja2JveD5cbiAgICAgICAgICAgICAgICA8Z3Jhdml0eS1jdXJyZW5jeSAqbmdJZj1cImlzQ3VycmVuY3lcIiBbbmdDbGFzc109XCJnZXRTcGFjaW5nQ2xhc3Moc2l6ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaXplXT1cImdldEN1cnJlbmN5SWNvblNpemUoc2l6ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjdXJyZW5jeV09XCJ7Y3VycmVuY3lfaWQ6IGNoaWxkLmN1cnJlbmN5X2lkfVwiPjwvZ3Jhdml0eS1jdXJyZW5jeT5cbiAgICAgICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cImdldFNwYWNpbmdDbGFzcyhzaXplKVwiPnt7IGdldERpc3BsYXlWYWx1ZShjaGlsZCwgY29uZmlnKSB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIDxncmF2aXR5LW5ldHdvcmstcGlsbCAqbmdJZj1cImlzQ3VycmVuY3lcIiBbdHlwZV09XCJjaGVja0lmU2VsZWN0ZWQoY2hpbGQpID8gJ3NlY29uZGFyeScgOiAncHJpbWFyeSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmV0d29ya109XCJ7IGlzbzogY2hpbGQubmV0d29yaz8uY29kZSwgaWQ6IGNoaWxkLm5ldHdvcms/LmlkIH1cIj48L2dyYXZpdHktbmV0d29yay1waWxsPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tY29udGFpbmVyXCIgKm5nSWY9XCJhdmFpbGFibGVPcHRpb25zLmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJoci1sYWJlbCBpdGVtIHt7c2l6ZX19LWJvbGQgbm8tcmVzdWx0c1wiPlxuICAgICAgICAgICAge3sgY3VycmVudExhbmcgPT0gJ2VzJyA/ICdTaW4gcmVzdWx0YWRvcyBlbmNvbnRyYWRvcycgOiAnTm8gcmVzdWx0cyBmb3VuZC4nIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tZm9vdGVyXCIgKm5nSWY9XCJzZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDAgJiYgYXZhaWxhYmxlT3B0aW9ucy5sZW5ndGggIT09IDBcIlxuICAgICAgICAgW2NsYXNzLm5vdC1jbGVhcmFibGVdPVwiIWNsZWFyYWJsZVwiPlxuICAgICAgPGdyYXZpdHktbGluayAqbmdJZj1cImNsZWFyYWJsZVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbGVhclNlbGVjdGlvbigpXCJcbiAgICAgICAgICAgICAgICAgICAgW2ZvbnRDbGFzc109XCInaHItbGFiZWwgc20tcmVndWxhcidcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWN5XT1cImN5cHJlc3NUYWcgKyAnX2NsZWFyJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtsaW5rVGV4dF09XCJjdXJyZW50TGFuZyA9PSAnZXMnID8gJ0xpbXBpYXInIDogJ0NsZWFyIHNlbGVjdGlvbidcIj5cbiAgICAgIDwvZ3Jhdml0eS1saW5rPlxuXG4gICAgICA8Z3Jhdml0eS1saW5rICpuZ0lmPVwiYXZhaWxhYmxlT3B0aW9ucy5sZW5ndGggIT0gMFwiXG4gICAgICAgICAgICAgICAgICAgIFtmb250Q2xhc3NdPVwiJ2hyLWxhYmVsIHNtLWJvbGQnXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1jeV09XCJjeXByZXNzVGFnICsgJ19hcHBseSdcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyB0b2dnbGVEcm9wZG93bigpXCJcbiAgICAgICAgICAgICAgICAgICAgW2xpbmtUZXh0XT1cImN1cnJlbnRMYW5nID09ICdlcycgPyAnQXBsaWNhcicgOiAnQXBwbHknXCI+XG4gICAgICA8L2dyYXZpdHktbGluaz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tZm9vdGVyIG5vLXJlc3VsdHNcIiAqbmdJZj1cImF2YWlsYWJsZU9wdGlvbnMubGVuZ3RoID09PSAwXCIgW2NsYXNzLm5vdC1jbGVhcmFibGVdPVwiIWNsZWFyYWJsZVwiPlxuICAgICAgPGdyYXZpdHktbGluayAqbmdJZj1cImNsZWFyYWJsZVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbGVhclNlYXJjaCgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2ZvbnRDbGFzc109XCInaHItbGFiZWwgc20tcmVndWxhcidcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWN5XT1cImN5cHJlc3NUYWcgKyAnX2NsZWFyX3NlYXJjaCdcIlxuICAgICAgICAgICAgICAgICAgICBbbGlua1RleHRdPVwiY3VycmVudExhbmcgPT0gJ2VzJyA/ICdMaW1waWFyIGLDunNxdWVkYScgOiAnQ2xlYXIgc2VhcmNoJ1wiPlxuICAgICAgPC9ncmF2aXR5LWxpbms+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxzZWN0aW9uIGNsYXNzPVwiZXh0ZXJuYWwtY29udGVudFwiICpuZ0lmPVwiIWl0ZW1zICYmIGRyb3Bkb3duT3BlbmVkXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9zZWN0aW9uPlxuPC9kaXY+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJpbnB1dFR5cGUgPT09ICdmaWVsZCdcIj5cbiAgPHAgY2xhc3M9XCJoci1sYWJlbCBzbS1yZWd1bGFyIHN1cHBvcnRpbmctdGV4dCB7e2dldFN0YXR1cygpfX0ge3tzaXplfX1cIiAqbmdJZj1cInN1cHBvcnRUZXh0XCI+XG4gICAge3sgc3VwcG9ydFRleHQgfX1cbiAgPC9wPlxuICA8cCBjbGFzcz1cImhyLWxhYmVsIHNtLXJlZ3VsYXIgc3VwcG9ydGluZy10ZXh0IHt7Z2V0U3RhdHVzKCl9fSB7e3NpemV9fVwiXG4gICAgICpuZ0lmPVwiIXN1cHBvcnRUZXh0ICYmIGdldFN0YXR1cygpID09ICdhY3RpdmUnICYmIHNlbGVjdGVkSXRlbXMubGVuZ3RoID09IDAgJiYgcmVxdWlyZWRcIj5cbiAgICB7eyBjdXJyZW50TGFuZyA9PSAnZXMnID8gJ1JlcXVlcmlkbycgOiAnUmVxdWlyZWQnIH19XG4gIDwvcD5cbjwvbmctY29udGFpbmVyPiJdfQ==
|
|
512
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Jhdml0eS1kcm9wZG93bi1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyYXZpdHktZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1kcm9wZG93bi1saXN0L2dyYXZpdHktZHJvcGRvd24tbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncmF2aXR5LWRlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2dyYXZpdHktZHJvcGRvd24tbGlzdC9ncmF2aXR5LWRyb3Bkb3duLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBRTVFLE9BQU8sRUFBQyxTQUFTLEVBQWMsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWdDLE1BQU0sRUFBK0IsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7QUFRckssTUFBTSxPQUFPLDRCQUE0QjtJQXlCdkMsSUFDSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLGFBQWEsQ0FBQyxLQUFjO1FBQzlCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQzlCLENBQUM7SUFLRCxJQUNJLEtBQUssQ0FBQyxXQUF5QztRQUNqRCxJQUFJLFdBQVcsRUFBRTtZQUNmLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUMsYUFBYSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7U0FDeEQ7SUFDSCxDQUFDO0lBQUEsQ0FBQztJQWFILFlBQW9CLGVBQThDLEVBQVUsS0FBaUI7UUFBekUsb0JBQWUsR0FBZixlQUFl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c0JBQTVCLE1BQU07Z0JBQ29CLHFCQUFxQjtzQkFBL0MsTUFBTTt1QkFBQyxVQUFVO2dCQUdkLEtBQUs7c0JBRFIsU0FBUzt1QkFBQyxhQUFhO2dCQXFUbUIsZUFBZTtzQkFBMUQsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtGaWx0ZXJCeVBpcGV9IGZyb20gXCIuL2ZpbHRlci1ieS5waXBlXCI7XG5pbXBvcnQge0dyYXZpdHlJY29uQ29tcG9uZW50fSBmcm9tIFwiLi4vZ3Jhdml0eS1pY29uL2dyYXZpdHktaWNvbi5jb21wb25lbnRcIjtcbmltcG9ydCB7R3Jhdml0eURyb3Bkb3duTWFuYWdlclNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9ncmF2aXR5LWRyb3Bkb3duLW1hbmFnZXIuc2VydmljZVwiO1xuaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2UsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dyYXZpdHktZHJvcGRvd24tbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9ncmF2aXR5LWRyb3Bkb3duLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ncmF2aXR5LWRyb3Bkb3duLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbRmlsdGVyQnlQaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBHcmF2aXR5RHJvcGRvd25MaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIE9uRGVzdHJveSB7XG4gIC8vIENvbXBvbmVudCBmZWF0dXJlc1xuICBASW5wdXQoKSBwdWJsaWMgbGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIGljb25MZWZ0OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBpdGVtczogQXJyYXk8YW55PjtcbiAgQElucHV0KCkgcHVibGljIGN5cHJlc3NUYWc6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzdXBwb3J0VGV4dDogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgaGFzRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGNsZWFyYWJsZTogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHB1YmxpYyBtdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGN1cnJlbnRMYW5nOiBzdHJpbmcgPSAnZW4nO1xuICBASW5wdXQoKSBwdWJsaWMgaXNDdXJyZW5jeTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgaXNEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgaXNSZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgY3VzdG9tVmFsdWVzOiBBcnJheTxhbnk+IHwgYW55O1xuICBASW5wdXQoKSBwdWJsaWMgY29uZmlnPzogeyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogc3RyaW5nOyB9O1xuXG4gIC8vIEFwcGVhcmFuY2Ugc2V0dGluZ3NcbiAgQElucHV0KCkgcHVibGljIGxhYmVsU2l6ZTogJ3NtJyB8ICdtZCcgfCAnbGcnID0gJ3NtJztcbiAgQElucHV0KCkgcHVibGljIHNpemU6ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICd4bCcgPSAnbWQnO1xuICBASW5wdXQoKSBwdWJsaWMgaW5wdXRUeXBlOiAnZmllbGQnIHwgJ2xhYmVsJyA9ICdmaWVsZCc7XG4gIEBJbnB1dCgpIHB1YmxpYyB3aWR0aDogJ3Nob3J0JyB8ICdtZWRpdW0nIHwgJ2Z1bGwnIHwgJ2ZpdCcgPSAnc2hvcnQnO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBkcm9wZG93blN0YXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRyb3Bkb3duT3BlbmVkO1xuICB9XG5cbiAgc2V0IGRyb3Bkb3duU3RhdGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRyb3Bkb3duT3BlbmVkID0gdmFsdWU7XG4gIH1cblxuICBAT3V0cHV0KCkgZHJvcGRvd25TdGF0ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgncmVzcG9uc2UnKSBwdWJsaWMgc2VsZWN0ZWRJdGVtc1Jlc3BvbnNlOiBFdmVudEVtaXR0ZXI8YW55W10gfCBhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaElucHV0JylcbiAgc2V0IHdhdGNoKHNlYXJjaElucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+KSB7XG4gICAgaWYgKHNlYXJjaElucHV0KSB7XG4gICAgICBzZWFyY2hJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiB0cnVlfSk7XG4gICAgfVxuICB9O1xuXG4gIHB1YmxpYyBzZWFyY2hUZXh0OiBzdHJpbmcgPSAnJztcbiAgcHVibGljIHNlbGVjdGVkSXRlbXM6IGFueVtdID0gW107XG4gIHB1YmxpYyBpc29Db25maWc6IHN0cmluZyA9ICdpc28nO1xuXHRwdWJsaWMgbmFtZUNvbmZpZzogc3RyaW5nID0gJ25hbWUnO1xuICBwdWJsaWMgYXZhaWxhYmxlT3B0aW9uczogYW55W10gPSBbXTtcbiAgcHVibGljIGRyb3Bkb3duT3BlbmVkOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBvcGVuQ2hpbGRyZW5NYXAgPSBuZXcgTWFwPGFueSwgYm9vbGVhbj4oKTtcbiAgcHVibGljIG5ldHdvcmtDb25maWc6IHsgbGFiZWw6IHN0cmluZzsgaXNvOiBzdHJpbmc7IGlkOiBudW1iZXI7IH0gPSBudWxsO1xuXG5cdHByaXZhdGUgZHJvcGRvd25NYW5hZ2VyU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xuXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgZHJvcGRvd25TZXJ2aWNlOiBHcmF2aXR5RHJvcGRvd25NYW5hZ2VyU2VydmljZSwgcHJpdmF0ZSBfZXJlZjogRWxlbWVudFJlZikgeyB9XG5cblx0bmdPbkluaXQoKSB7XG5cdFx0dGhpcy5kcm9wZG93bk1hbmFnZXJTdWJzY3JpcHRpb24gPSB0aGlzLmRyb3Bkb3duU2VydmljZS5kcm9wZG93bk9wZW5lZCQuc3Vic2NyaWJlKG9wZW5lZERyb3Bkb3duID0+IHtcblx0XHRcdGlmIChvcGVuZWREcm9wZG93biAhPT0gdGhpcyAmJiB0aGlzLmRyb3Bkb3duT3BlbmVkKSB7XG5cdFx0XHRcdHRoaXMuY2xvc2VEcm9wZG93bigpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydpdGVtcyddPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMuYXZhaWxhYmxlT3B0aW9ucyA9IHRoaXMuaXRlbXM7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXNbJ2N1c3RvbVZhbHVlcyddKSB7XG4gICAgICBjb25zdCBjaGFuZ2VJdGVtOiBTaW1wbGVDaGFuZ2UgPSBjaGFuZ2VzWydjdXN0b21WYWx1ZXMnXTtcbiAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IGNoYW5nZUl0ZW0/LmN1cnJlbnRWYWx1ZTtcblxuICAgICAgY29uc3QgZmluZE9wdGlvblJlY3Vyc2l2ZWx5ID0gKGl0ZW1zOiBhbnlbXSwgdmFsdWU6IGFueSk6IGFueSB8IG51bGwgPT4ge1xuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcbiAgICAgICAgICBjb25zdCBpdGVtVmFsdWUgPSB0aGlzLmNvbmZpZyA/IGl0ZW1bdGhpcy5jb25maWcudmFsdWVdIDogaXRlbTtcbiAgICAgICAgICBpZiAoaXRlbVZhbHVlID09IHZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoaXRlbS5jaGlsZHJlbikge1xuICAgICAgICAgICAgY29uc3QgZm91bmRDaGlsZCA9IGZpbmRPcHRpb25SZWN1cnNpdmVseShpdGVtLmNoaWxkcmVuLCB2YWx1ZSk7XG4gICAgICAgICAgICBpZiAoZm91bmRDaGlsZCkgcmV0dXJuIGZvdW5kQ2hpbGQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfTtcblxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW107XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGN1cnJlbnRWYWx1ZSkpIHtcbiAgICAgICAgY3VycmVudFZhbHVlLmZvckVhY2goKHZhbDogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3QgZm91bmQgPSBmaW5kT3B0aW9uUmVjdXJzaXZlbHkodGhpcy5pdGVtcywgdmFsKTtcbiAgICAgICAgICBpZiAoZm91bmQgJiYgIXRoaXMuc2VsZWN0ZWRJdGVtcy5pbmNsdWRlcyhmb3VuZCkpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5wdXNoKGZvdW5kKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmIChjdXJyZW50VmFsdWUgIT0gbnVsbCAmJiBjdXJyZW50VmFsdWUgIT09ICcnKSB7XG4gICAgICAgIGNvbnN0IGZvdW5kID0gZmluZE9wdGlvblJlY3Vyc2l2ZWx5KHRoaXMuaXRlbXMsIGN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIGlmIChmb3VuZCkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtmb3VuZF07XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoIWN1cnJlbnRWYWx1ZSAmJiAhY2hhbmdlSXRlbS5maXJzdENoYW5nZSkge1xuICAgICAgICB0aGlzLmNsZWFyU2VsZWN0aW9uKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cblx0bmdPbkRlc3Ryb3koKSB7XG5cdFx0aWYgKHRoaXMuZHJvcGRvd25NYW5hZ2VyU3Vic2NyaXB0aW9uKSB7XG5cdFx0XHR0aGlzLmRyb3Bkb3duTWFuYWdlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBnZXRTdGF0dXMoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkKSB7XG4gICAgICByZXR1cm4gJ2Rpc2FibGVkJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNSZWFkb25seSkge1xuICAgICAgcmV0dXJuICdyZWFkb25seSc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmhhc0Vycm9yKSB7XG4gICAgICByZXR1cm4gJ2Vycm9yJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuZHJvcGRvd25PcGVuZWQpIHtcbiAgICAgIHJldHVybiAnb3Blbic7XG4gICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuICdzZWxlY3RlZCc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnYWN0aXZlJztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNJY29uTGVmdE5ldygpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5pY29uTGVmdCkge1xuICAgICAgcmV0dXJuIEdyYXZpdHlJY29uQ29tcG9uZW50LmlzTmV3SWNvbih0aGlzLmljb25MZWZ0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuXHRwdWJsaWMgdG9nZ2xlRHJvcGRvd24oKTogdm9pZCB7XG5cdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdFx0dGhpcy5uZXR3b3JrQ29uZmlnID0gbnVsbDtcblxuXHRcdGlmICghdGhpcy5pc0Rpc2FibGVkICYmICF0aGlzLmlzUmVhZG9ubHkpIHtcblx0XHRcdGlmICh0aGlzLmRyb3Bkb3duT3BlbmVkKSB7XG5cdFx0XHRcdHRoaXMuZW1pdFNlbGVjdGlvbigpO1xuXHRcdFx0XHR0aGlzLnNlYXJjaFRleHQgPSAnJztcblx0XHRcdFx0dGhpcy5jbG9zZURyb3Bkb3duKCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLm9wZW5Ecm9wZG93bigpO1xuXHRcdFx0XHR0aGlzLnNlbGVjdGVkSXRlbXM/LmZvckVhY2goc2VsID0+IHtcblx0XHRcdFx0XHR0aGlzLml0ZW1zPy5mb3JFYWNoKHBhcmVudCA9PiB7XG5cdFx0XHRcdFx0XHRpZiAocGFyZW50LmNoaWxkcmVuPy5pbmNsdWRlcyhzZWwpKSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMub3BlbkNoaWxkcmVuTWFwLnNldChwYXJlbnQsIHRydWUpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIGVtaXRTZWxlY3Rpb24oKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMubXVsdGlwbGUpIHtcblx0XHRcdGlmICh0aGlzLnNlbGVjdGVkSXRlbXM/Lmxlbmd0aCA+IDApIHtcblx0XHRcdFx0dGhpcy5zZWxlY3RlZEl0ZW1zUmVzcG9uc2UuZW1pdCh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRpZiAodGhpcy5zZWxlY3RlZEl0ZW1zWzBdKSB7XG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRJdGVtc1Jlc3BvbnNlLmVtaXQodGhpcy5zZWxlY3RlZEl0ZW1zWzBdKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgc2VsZWN0SXRlbShpdGVtVG9BZGQ6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IGlzUGFyZW50ID0gISFpdGVtVG9BZGQuY2hpbGRyZW47XG5cbiAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xuICAgICAgY29uc3QgaXNTZWxlY3RlZCA9IHRoaXMuY2hlY2tJZlNlbGVjdGVkKGl0ZW1Ub0FkZCk7XG5cbiAgICAgIGlmIChpc1NlbGVjdGVkKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHRoaXMuc2VsZWN0ZWRJdGVtcy5maWx0ZXIoaSA9PlxuICAgICAgICAgICh0aGlzLmNvbmZpZyA/IGlbdGhpcy5jb25maWcudmFsdWVdIDogaSkgIT09XG4gICAgICAgICAgKHRoaXMuY29uZmlnID8gaXRlbVRvQWRkW3RoaXMuY29uZmlnLnZhbHVlXSA6IGl0ZW1Ub0FkZClcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoaXNQYXJlbnQpIHtcbiAgICAgICAgICBpdGVtVG9BZGQuY2hpbGRyZW4uZm9yRWFjaChjaGlsZCA9PiB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnNlbGVjdGVkSXRlbXMuZmlsdGVyKGkgPT4gaSAhPT0gY2hpbGQpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuaXRlbXMuZm9yRWFjaChwYXJlbnQgPT4ge1xuICAgICAgICAgICAgaWYgKHBhcmVudC5jaGlsZHJlbj8uaW5jbHVkZXMoaXRlbVRvQWRkKSkge1xuICAgICAgICAgICAgICBjb25zdCBhbnlTZWxlY3RlZCA9IHBhcmVudC5jaGlsZHJlbi5zb21lKGNoaWxkID0+IHRoaXMuY2hlY2tJZlNlbGVjdGVkKGNoaWxkKSk7XG4gICAgICAgICAgICAgIGNvbnN0IGFsbFNlbGVjdGVkID0gcGFyZW50LmNoaWxkcmVuLmV2ZXJ5KGNoaWxkID0+IHRoaXMuY2hlY2tJZlNlbGVjdGVkKGNoaWxkKSk7XG4gICAgICAgICAgICAgIGlmICghYW55U2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnNlbGVjdGVkSXRlbXMuZmlsdGVyKGkgPT4gaSAhPT0gcGFyZW50KTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChhbGxTZWxlY3RlZCAmJiAhdGhpcy5jaGVja0lmU2VsZWN0ZWQocGFyZW50KSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5wdXNoKHBhcmVudCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMucHVzaChpdGVtVG9BZGQpO1xuXG4gICAgICAgIGlmIChpc1BhcmVudCkge1xuICAgICAgICAgIGl0ZW1Ub0FkZC5jaGlsZHJlbi5mb3JFYWNoKGNoaWxkID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5jaGVja0lmU2VsZWN0ZWQoY2hpbGQpKSB7XG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5wdXNoKGNoaWxkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLml0ZW1zLmZvckVhY2gocGFyZW50ID0+IHtcbiAgICAgICAgICAgIGlmIChwYXJlbnQuY2hpbGRyZW4/LmluY2x1ZGVzKGl0ZW1Ub0FkZCkpIHtcbiAgICAgICAgICAgICAgY29uc3QgYWxsU2VsZWN0ZWQgPSBwYXJlbnQuY2hpbGRyZW4uZXZlcnkoY2hpbGQgPT4gdGhpcy5jaGVja0lmU2VsZWN0ZWQoY2hpbGQpKTtcbiAgICAgICAgICAgICAgaWYgKGFsbFNlbGVjdGVkICYmICF0aGlzLmNoZWNrSWZTZWxlY3RlZChwYXJlbnQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnB1c2gocGFyZW50KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtpdGVtVG9BZGRdO1xuICAgICAgdGhpcy50b2dnbGVEcm9wZG93bigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpc1BhcnRpYWxseVNlbGVjdGVkKGl0ZW06IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmICghaXRlbS5jaGlsZHJlbj8ubGVuZ3RoKSByZXR1cm4gZmFsc2U7XG5cbiAgICBjb25zdCBzZWxlY3RlZENoaWxkcmVuID0gaXRlbS5jaGlsZHJlbi5maWx0ZXIoY2hpbGQgPT4gdGhpcy5jaGVja0lmU2VsZWN0ZWQoY2hpbGQpKTtcbiAgICByZXR1cm4gc2VsZWN0ZWRDaGlsZHJlbi5sZW5ndGggPiAwICYmIHNlbGVjdGVkQ2hpbGRyZW4ubGVuZ3RoIDwgaXRlbS5jaGlsZHJlbi5sZW5ndGg7XG4gIH1cblxuICBwdWJsaWMgY2hlY2tJZlNlbGVjdGVkKGl0ZW0/OiBhbnkpOiBib29sZWFuIHtcbiAgICBjb25zdCBnZXRWYWx1ZSA9IChlbDogYW55KSA9PiB0aGlzLmNvbmZpZyA/IGVsW3RoaXMuY29uZmlnLnZhbHVlXSA6IGVsO1xuXG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSXRlbXMuc29tZShzZWxlY3RlZCA9PiBnZXRWYWx1ZShzZWxlY3RlZCkgPT09IGdldFZhbHVlKGl0ZW0pKTtcbiAgICB9XG5cbiAgICBjb25zdCBmbGF0dGVuID0gdGhpcy5mbGF0dGVuSXRlbXModGhpcy5hdmFpbGFibGVPcHRpb25zKTtcbiAgICByZXR1cm4gZmxhdHRlbi5sZW5ndGggPiAwICYmIGZsYXR0ZW4uZXZlcnkob3B0aW9uID0+XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuc29tZShzZWxlY3RlZCA9PiBnZXRWYWx1ZShzZWxlY3RlZCkgPT09IGdldFZhbHVlKG9wdGlvbikpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RBbGxJdGVtcyhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGNvbnN0IGZsYXR0ZW4gPSB0aGlzLmZsYXR0ZW5JdGVtcyh0aGlzLmF2YWlsYWJsZU9wdGlvbnMpO1xuICAgIGNvbnN0IGdldFZhbHVlID0gKGVsOiBhbnkpID0+IHRoaXMuY29uZmlnID8gZWxbdGhpcy5jb25maWcudmFsdWVdIDogZWw7XG5cbiAgICBjb25zdCBhbGxTZWxlY3RlZCA9IGZsYXR0ZW4uZXZlcnkob3B0aW9uID0+XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuc29tZShzZWxlY3RlZCA9PiBnZXRWYWx1ZShzZWxlY3RlZCkgPT09IGdldFZhbHVlKG9wdGlvbikpXG4gICAgKTtcblxuICAgIGlmIChhbGxTZWxlY3RlZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gdGhpcy5zZWxlY3RlZEl0ZW1zLmZpbHRlcihzZWxlY3RlZCA9PlxuICAgICAgICAhZmxhdHRlbi5zb21lKG9wdGlvbiA9PiBnZXRWYWx1ZShzZWxlY3RlZCkgPT09IGdldFZhbHVlKG9wdGlvbikpXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBmbGF0dGVuLmZvckVhY2gob3B0aW9uID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkSXRlbXMuc29tZShzZWxlY3RlZCA9PiBnZXRWYWx1ZShzZWxlY3RlZCkgPT09IGdldFZhbHVlKG9wdGlvbikpKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnB1c2gob3B0aW9uKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmbGF0dGVuSXRlbXMoaXRlbXM6IGFueVtdKTogYW55W10ge1xuICAgIHJldHVybiBpdGVtcy5yZWR1Y2UoKGFjYywgaXRlbSkgPT4ge1xuICAgICAgYWNjLnB1c2goaXRlbSk7XG4gICAgICBpZiAoaXRlbS5jaGlsZHJlbj8ubGVuZ3RoKSB7XG4gICAgICAgIGFjYy5wdXNoKC4uLnRoaXMuZmxhdHRlbkl0ZW1zKGl0ZW0uY2hpbGRyZW4pKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgW10pO1xuICB9XG5cbiAgcHVibGljIGNsZWFyU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuXHRcdHRoaXMubmV0d29ya0NvbmZpZyA9IG51bGw7XG5cbiAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zUmVzcG9uc2UuZW1pdCh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXNSZXNwb25zZS5lbWl0KG51bGwpO1xuICAgIH1cbiAgfVxuXG5cdHB1YmxpYyBmaWx0ZXJJdGVtcygpOiB2b2lkIHtcblx0XHRjb25zdCBzZWFyY2ggPSB0aGlzLnNlYXJjaFRleHQ/LnRvTG93ZXJDYXNlKCk7XG5cdFx0dGhpcy5vcGVuQ2hpbGRyZW5NYXAuY2xlYXIoKTtcblxuXHRcdGlmICghc2VhcmNoKSB7XG5cdFx0XHR0aGlzLmF2YWlsYWJsZU9wdGlvbnMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuaXRlbXMpKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBmaWx0ZXJSZWN1cnNpdmUgPSAoaXRlbXM6IGFueVtdKTogYW55W10gPT4ge1xuXHRcdFx0Y29uc3QgcmVzdWx0ID0gW107XG5cblx0XHRcdGl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG5cdFx0XHRcdGNvbnN0IGhhc0NoaWxkcmVuID0gISFpdGVtLmNoaWxkcmVuPy5sZW5ndGg7XG5cblx0XHRcdFx0Y29uc3QgZmllbGRzVG9TZWFyY2g6IGFueVtdID0gW107XG5cdFx0XHRcdGlmICh0aGlzLmNvbmZpZykge1xuXHRcdFx0XHRcdGZpZWxkc1RvU2VhcmNoLnB1c2goaXRlbVt0aGlzLmlzb0NvbmZpZ10pO1xuXHRcdFx0XHRcdGZpZWxkc1RvU2VhcmNoLnB1c2goaXRlbVt0aGlzLm5hbWVDb25maWddKTtcblxuXHRcdFx0XHRcdGlmKHRoaXMuY29uZmlnLmxhYmVsKSB7XG5cdFx0XHRcdFx0XHRmaWVsZHNUb1NlYXJjaC5wdXNoKGl0ZW1bdGhpcy5jb25maWcubGFiZWxdKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRjb25zdCBtYXRjaCA9IGZpZWxkc1RvU2VhcmNoLnNvbWUoZmllbGQgPT5cblx0XHRcdFx0XHRmaWVsZD8udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaClcblx0XHRcdFx0KTtcblxuXHRcdFx0XHRsZXQgZmlsdGVyZWRDaGlsZHJlbjogYW55W10gPSBbXTtcblx0XHRcdFx0aWYgKGhhc0NoaWxkcmVuKSB7XG5cdFx0XHRcdFx0ZmlsdGVyZWRDaGlsZHJlbiA9IGZpbHRlclJlY3Vyc2l2ZShpdGVtLmNoaWxkcmVuKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGNvbnN0IGluY2x1ZGVJdGVtID0gaGFzQ2hpbGRyZW4gPyBmaWx0ZXJlZENoaWxkcmVuLmxlbmd0aCA+IDAgOiBtYXRjaDtcblxuXHRcdFx0XHRpZiAoaW5jbHVkZUl0ZW0pIHtcblx0XHRcdFx0XHRjb25zdCBuZXdJdGVtID0geyAuLi5pdGVtIH07XG5cdFx0XHRcdFx0aWYgKGZpbHRlcmVkQ2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdFx0bmV3SXRlbS5jaGlsZHJlbiA9IGZpbHRlcmVkQ2hpbGRyZW47XG5cdFx0XHRcdFx0XHR0aGlzLm9wZW5DaGlsZHJlbk1hcC5zZXQobmV3SXRlbSwgdHJ1ZSk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdGRlbGV0ZSBuZXdJdGVtLmNoaWxkcmVuO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXN1bHQucHVzaChuZXdJdGVtKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cblx0XHRcdHJldHVybiByZXN1bHQ7XG5cdFx0fTtcblxuXHRcdHRoaXMuYXZhaWxhYmxlT3B0aW9ucyA9IGZpbHRlclJlY3Vyc2l2ZSh0aGlzLml0ZW1zKTtcblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSkgb25Eb2N1bWVudENsaWNrKCRldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9lcmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoJGV2ZW50LnRhcmdldCkgJiYgdGhpcy5kcm9wZG93bk9wZW5lZCkge1xuICAgICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zUmVzcG9uc2UuZW1pdCh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtc1swXSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtc1Jlc3BvbnNlLmVtaXQodGhpcy5zZWxlY3RlZEl0ZW1zWzBdKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgIH1cbiAgfVxuXG5cdHB1YmxpYyBvcGVuRHJvcGRvd24oKTogdm9pZCB7XG5cdFx0dGhpcy5kcm9wZG93bk9wZW5lZCA9IHRydWU7XG5cdFx0dGhpcy5kcm9wZG93blNlcnZpY2Uubm90aWZ5RHJvcGRvd25PcGVuZWQodGhpcyk7XG5cdFx0dGhpcy5kcm9wZG93blN0YXRlQ2hhbmdlLmVtaXQodGhpcy5kcm9wZG93bk9wZW5lZCk7XG5cdH1cblxuXHRwdWJsaWMgY2xvc2VEcm9wZG93bigpOiB2b2lkIHtcblx0XHR0aGlzLnNlYXJjaFRleHQgPSAnJztcblx0XHR0aGlzLmRyb3Bkb3duT3BlbmVkID0gZmFsc2U7XG5cdFx0dGhpcy5hdmFpbGFibGVPcHRpb25zID0gdGhpcy5pdGVtcztcblx0XHR0aGlzLmRyb3Bkb3duU3RhdGVDaGFuZ2UuZW1pdCh0aGlzLmRyb3Bkb3duT3BlbmVkKTtcblx0fVxuXG4gIHB1YmxpYyBnZXRDdXJyZW5jeUljb25TaXplKHNpemU6IHN0cmluZykge1xuICAgIHN3aXRjaCAoc2l6ZSkge1xuICAgICAgY2FzZSAnc20nOlxuICAgICAgICByZXR1cm4gJ3NtLTE2JztcbiAgICAgIGNhc2UgJ2xnJzpcbiAgICAgICAgcmV0dXJuICdsZy0zMic7XG4gICAgICBjYXNlICd4bCc6XG4gICAgICAgIHJldHVybiAneGwtNDAnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICdtZC0yNCc7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFNwYWNpbmdDbGFzcyhzaXplOiBzdHJpbmcpIHtcbiAgICBzd2l0Y2ggKHNpemUpIHtcbiAgICAgIGNhc2UgJ3NtJzpcbiAgICAgICAgcmV0dXJuICdncmF2aXR5LW1hcmdpbi1yaWdodC14eHMnO1xuICAgICAgY2FzZSAnbWQnOlxuICAgICAgICByZXR1cm4gJ2dyYXZpdHktbWFyZ2luLXJpZ2h0LXhzJztcbiAgICAgIGNhc2UgJ2xnJzpcbiAgICAgICAgcmV0dXJuICdncmF2aXR5LW1hcmdpbi1yaWdodC1zbSc7XG4gICAgICBjYXNlICd4bCc6XG4gICAgICAgIHJldHVybiAnZ3Jhdml0eS1tYXJnaW4tcmlnaHQtbWQnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRNdWx0aWxldmVsU3BhY2luZ0NsYXNzKHNpemU6IHN0cmluZykge1xuICAgIHN3aXRjaCAoc2l6ZSkge1xuICAgICAgY2FzZSAnc20nOlxuICAgICAgICByZXR1cm4gJ2dyYXZpdHktbWFyZ2luLXJpZ2h0LW1kJztcbiAgICAgIGNhc2UgJ21kJzpcbiAgICAgICAgcmV0dXJuICdncmF2aXR5LW1hcmdpbi1yaWdodC1sZyc7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldExhYmVsVGV4dCgpOiBzdHJpbmcge1xuICAgIGxldCByZXN1bHQ6IHN0cmluZyA9ICcnO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXN1bHQgPSB0aGlzLmxhYmVsO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuZm9yRWFjaCgoaXRlbSwgaSkgPT4ge1xuICAgICAgICBsZXQgZGlzcGxheVZhbHVlID0gdGhpcy5jb25maWcgPyBpdGVtW3RoaXMuY29uZmlnLmxhYmVsXSA6IGl0ZW07XG4gICAgICAgIGxldCBzZXBhcmF0b3IgPSBpICE9PSB0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoIC0gMSA/ICcsJyA6ICcnO1xuICAgICAgICByZXN1bHQgPSByZXN1bHQgKyBkaXNwbGF5VmFsdWUgKyBzZXBhcmF0b3I7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHB1YmxpYyBpc0NoaWxkcmVuT3BlbihpdGVtOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5vcGVuQ2hpbGRyZW5NYXAuZ2V0KGl0ZW0pID09PSB0cnVlO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZUNoaWxkcmVuKGl0ZW06IGFueSwgZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5vcGVuQ2hpbGRyZW5NYXAuZ2V0KGl0ZW0pIHx8IGZhbHNlO1xuICAgIHRoaXMub3BlbkNoaWxkcmVuTWFwLnNldChpdGVtLCAhY3VycmVudCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RGlzcGxheVZhbHVlKGNoaWxkOiBhbnksIGNvbmZpZz86IHsgbGFiZWw6IHN0cmluZyB9KTogc3RyaW5nIHtcbiAgICBpZiAoY29uZmlnPy5sYWJlbCAmJiB0eXBlb2YgY2hpbGQgPT09ICdvYmplY3QnICYmIGNoaWxkICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gY2hpbGRbY29uZmlnLmxhYmVsXSA/PyAnJztcbiAgICB9XG4gICAgcmV0dXJuIGNoaWxkID8/ICcnO1xuICB9XG5cbiAgcHVibGljIGlucHV0RGlzcGxheVZhbHVlKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkSXRlbXM/Lmxlbmd0aCkgcmV0dXJuICcnO1xuXG4gICAgY29uc3QgZ2V0VmFsdWUgPSAoaXRlbTogYW55KSA9PiB0aGlzLmNvbmZpZyA/IGl0ZW1bdGhpcy5jb25maWcudmFsdWVdIDogaXRlbTtcblxuICAgIGNvbnN0IGdldExhYmVsID0gKGl0ZW06IGFueSk6IHN0cmluZyA9PiB7XG4gICAgICBjb25zdCBiYXNlTGFiZWwgPSB0aGlzLmNvbmZpZyA/IGl0ZW1bdGhpcy5jb25maWcubGFiZWxdIDogaXRlbTtcblxuICAgICAgaWYgKCF0aGlzLm11bHRpcGxlICYmIGl0ZW0ubmV0d29yaz8uY29kZSAmJiAoaXRlbS5uZXR3b3JrX2lkICE9PSBpdGVtLmN1cnJlbmN5X2lkIHx8IGl0ZW0uY2hpbGRyZW4gfHwgaXRlbS5pc19FUkMyMCkpIHtcbiAgICAgICAgdGhpcy5uZXR3b3JrQ29uZmlnID0ge2xhYmVsOiBiYXNlTGFiZWwsIGlzbzogaXRlbS5uZXR3b3JrPy5jb2RlLCBpZDogaXRlbS5uZXR3b3JrX2lkfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gYmFzZUxhYmVsO1xuICAgIH07XG5cbiAgICBpZiAoIXRoaXMuaXRlbXM/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtcy5tYXAoZ2V0TGFiZWwpLmpvaW4oJywgJyk7XG4gICAgfVxuXG4gICAgY29uc3QgbGFiZWxzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBwYXJlbnQgb2YgdGhpcy5pdGVtcykge1xuICAgICAgaWYgKHBhcmVudC5jaGlsZHJlbj8ubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGFsbENoaWxkcmVuU2VsZWN0ZWQgPSBwYXJlbnQuY2hpbGRyZW4uZXZlcnkoY2hpbGQgPT5cbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuc29tZShzZWwgPT4gZ2V0VmFsdWUoc2VsKSA9PT0gZ2V0VmFsdWUoY2hpbGQpKVxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChhbGxDaGlsZHJlblNlbGVjdGVkKSB7XG4gICAgICAgICAgbGFiZWxzLnB1c2goZ2V0TGFiZWwocGFyZW50KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBwYXJlbnQuY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkSXRlbXMuc29tZShzZWwgPT4gZ2V0VmFsdWUoc2VsKSA9PT0gZ2V0VmFsdWUoY2hpbGQpKSkge1xuICAgICAgICAgICAgICBsYWJlbHMucHVzaChnZXRMYWJlbChjaGlsZCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkSXRlbXMuc29tZShzZWwgPT4gZ2V0VmFsdWUoc2VsKSA9PT0gZ2V0VmFsdWUocGFyZW50KSkpIHtcbiAgICAgICAgbGFiZWxzLnB1c2goZ2V0TGFiZWwocGFyZW50KSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMudHJ1bmNhdGUobGFiZWxzKTtcbiAgfVxuXG4gIHByaXZhdGUgdHJ1bmNhdGUobGFiZWxzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgY29uc3QgbWF4SXRlbXMgPSB0aGlzLndpZHRoID09PSAnc2hvcnQnID8gMyA6IHRoaXMud2lkdGggPT09ICdtZWRpdW0nID8gNiA6IDEyO1xuICAgIGlmIChsYWJlbHMubGVuZ3RoIDw9IG1heEl0ZW1zKSByZXR1cm4gbGFiZWxzLmpvaW4oJywgJyk7XG4gICAgcmV0dXJuIGxhYmVscy5zbGljZSgwLCBtYXhJdGVtcykuam9pbignLCAnKSArICcuLi4nO1xuICB9XG5cbiAgcHVibGljIGNsZWFyU2VhcmNoKCk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoVGV4dCA9ICcnO1xuICAgIHRoaXMuYXZhaWxhYmxlT3B0aW9ucyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5pdGVtcykpO1xuICB9XG5cbiAgcHVibGljIHByZXZlbnRUeXBpbmdXaGVuTG9ja2VkKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBpbnB1dDogSFRNTElucHV0RWxlbWVudCkge1xuICAgIGNvbnN0IGlzTG9ja2VkID0gIXRoaXMuZHJvcGRvd25PcGVuZWQgfHwgIXRoaXMuaXRlbXM7XG5cbiAgICBpZiAoaXNMb2NrZWQpIHtcbiAgICAgIGlmIChldmVudC5rZXkubGVuZ3RoID09PSAxIHx8IGV2ZW50LmtleSA9PT0gJ0JhY2tzcGFjZScgfHwgZXZlbnQua2V5ID09PSAnRGVsZXRlJykge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuXG4gICAgICBpbnB1dC5ibHVyKCk7XG4gICAgfVxuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiaW5wdXRUeXBlID09PSAnZmllbGQnXCI+XG4gIDxsYWJlbCBjbGFzcz1cImhyLWxhYmVsIHNtLWJvbGQge3tnZXRTdGF0dXMoKX19XCIgKm5nSWY9XCJsYWJlbFwiPlxuICAgIHt7IGxhYmVsIH19IDxzcGFuICpuZ0lmPVwicmVxdWlyZWQgfHwgaGFzRXJyb3JcIj4qPC9zcGFuPlxuICA8L2xhYmVsPlxuPC9uZy1jb250YWluZXI+XG5cbjxkaXYgY2xhc3M9XCJncmF2aXR5LWlucHV0LWZpZWxkIHt7aW5wdXRUeXBlfX0te3tsYWJlbFNpemV9fSB7e3NpemV9fSB7e3dpZHRofX0td2lkdGgge3tnZXRTdGF0dXMoKX19XCJcbiAgICAgW2F0dHIuZGF0YS1jeV09XCJjeXByZXNzVGFnXCIgKGNsaWNrKT1cInRvZ2dsZURyb3Bkb3duKCk7XCI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlucHV0VHlwZSA9PT0gJ2ZpZWxkJ1wiPlxuICAgIDxncmF2aXR5LWljb24gY2xhc3M9XCJsZWZ0XCIgW2ljb25OYW1lXT1cImljb25MZWZ0XCIgW2ljb25TaXplXT1cImlzSWNvbkxlZnROZXcoKSA/ICdtZC0xNicgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiKGljb25MZWZ0ICYmICFkcm9wZG93bk9wZW5lZCkgfHwgKGljb25MZWZ0ICYmICFpdGVtcylcIj48L2dyYXZpdHktaWNvbj5cblxuICAgIDxncmF2aXR5LWljb24gY2xhc3M9XCJzZWFyY2gtaWNvblwiIFtpY29uTmFtZV09XCInc2VhcmNoJ1wiIFtpY29uU2l6ZV09XCInc20tMTInXCJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiKGRyb3Bkb3duT3BlbmVkICYmIGl0ZW1zKVwiPjwvZ3Jhdml0eS1pY29uPlxuXG4gICAgPGRpdiAqbmdJZj1cIiFkcm9wZG93bk9wZW5lZCAmJiBuZXR3b3JrQ29uZmlnXCIgY2xhc3M9XCJuZXR3b3JrLXBpbGxcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiaHItbGFiZWwge3tzaXplfX0tcmVndWxhclwiPnt7bmV0d29ya0NvbmZpZy5sYWJlbH19PC9zcGFuPlxuICAgICAgPGdyYXZpdHktbmV0d29yay1waWxsIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCIgW25ldHdvcmtdPVwie2lzbzogbmV0d29ya0NvbmZpZy5pc28sIGlkOiBuZXR3b3JrQ29uZmlnLmlkfVwiPjwvZ3Jhdml0eS1uZXR3b3JrLXBpbGw+XG4gICAgPC9kaXY+XG5cbiAgICA8aW5wdXQgKm5nSWY9XCIhbmV0d29ya0NvbmZpZyB8fCBkcm9wZG93bk9wZW5lZFwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgIGNsYXNzPVwiaHItbGFiZWwge3tzaXplfX0tcmVndWxhciB7e2dldFN0YXR1cygpfX1cIlxuICAgICAgICAgICAoZm9jdXMpPVwic2VhcmNoVGV4dCA9ICcnXCIgW2NsYXNzLmxvY2tlZF09XCIhZHJvcGRvd25PcGVuZWQgfHwgIWl0ZW1zXCJcbiAgICAgICAgICAgKGtleWRvd24pPVwicHJldmVudFR5cGluZ1doZW5Mb2NrZWQoJGV2ZW50LCBzZWFyY2hJbnB1dClcIlxuICAgICAgICAgICAoaW5wdXQpPVwiZmlsdGVySXRlbXMoKTsgZHJvcGRvd25PcGVuZWQgPSB0cnVlXCJcbiAgICAgICAgICAgW2F0dHIuZGF0YS1jeV09XCJjeXByZXNzVGFnICsgJ19zZWFyY2hfaW5wdXQnXCJcbiAgICAgICAgICAgI3NlYXJjaElucHV0XG4gICAgICAgICAgIFtuZ01vZGVsXT1cIihkcm9wZG93bk9wZW5lZCAmJiBpdGVtcykgPyBzZWFyY2hUZXh0IDogaW5wdXREaXNwbGF5VmFsdWUoKVwiXG4gICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNlYXJjaFRleHQgPSAkZXZlbnRcIlxuICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7KGRyb3Bkb3duT3BlbmVkICYmIGl0ZW1zKSA/IChjdXJyZW50TGFuZyA9PSAnZXMnID8gJ0J1c2NhcicgOiAnU2VhcmNoIGlucHV0JykgOiAocGxhY2Vob2xkZXIgPyBwbGFjZWhvbGRlciA6IGxhYmVsKX19XCI+XG5cbiAgICA8Z3Jhdml0eS1pY29uIGNsYXNzPVwicmlnaHRcIiBbaWNvbk5hbWVdPVwiZHJvcGRvd25PcGVuZWQgPyAnYXJyb3ctdXAnOiAnYXJyb3ctZG93bidcIlxuICAgICAgICAgICAgICAgICAgW2ljb25TaXplXT1cIidtZC0xNidcIiAqbmdJZj1cIiFpc1JlYWRvbmx5ICYmIHNlYXJjaFRleHQubGVuZ3RoID09IDBcIj48L2dyYXZpdHktaWNvbj5cblxuICAgIDxncmF2aXR5LWljb24gY2xhc3M9XCJyaWdodFwiIFtpY29uTmFtZV09XCIndW5zdWNjZXNzJ1wiIChjbGljayk9XCJjbGVhclNlYXJjaCgpXCJcbiAgICAgICAgICAgICAgICAgIFtpY29uU2l6ZV09XCInbWQtMTYnXCIgKm5nSWY9XCJkcm9wZG93bk9wZW5lZCAmJiBzZWFyY2hUZXh0Lmxlbmd0aCA+IDBcIj48L2dyYXZpdHktaWNvbj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlucHV0VHlwZSA9PT0gJ2xhYmVsJ1wiPlxuICAgIDxncmF2aXR5LWRyb3Bkb3duLWxhYmVsIChvbkNsaWNrTGFiZWwpPVwidG9nZ2xlRHJvcGRvd24oKVwiIFtsYWJlbF09XCJnZXRMYWJlbFRleHQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NpemVdPVwibGFiZWxTaXplXCIgW2lzT3Blbl09XCJkcm9wZG93bk9wZW5lZFwiPlxuICAgIDwvZ3Jhdml0eS1kcm9wZG93bi1sYWJlbD5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLXBhbmVsIHt7Z2V0U3RhdHVzKCl9fVwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiAqbmdJZj1cIml0ZW1zICYmIGRyb3Bkb3duT3BlbmVkXCJcbiAgICAgICBbYXR0ci5kYXRhLWN5XT1cImN5cHJlc3NUYWcgKyAnX3BhbmVsJ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtaW5wdXRcIiAqbmdJZj1cImlucHV0VHlwZSA9PT0gJ2xhYmVsJ1wiPlxuICAgICAgPGdyYXZpdHktaWNvbiBjbGFzcz1cInNlYXJjaC1pY29uXCIgW2ljb25OYW1lXT1cIidzZWFyY2gnXCIgW2ljb25TaXplXT1cIidzbS0xMidcIj48L2dyYXZpdHktaWNvbj5cbiAgICAgIDxpbnB1dCBhdXRvY29tcGxldGU9XCJvZmZcIiBjbGFzcz1cImhyLWxhYmVsIHt7c2l6ZX19LXJlZ3VsYXJcIiAoaW5wdXQpPVwiZmlsdGVySXRlbXMoKVwiXG4gICAgICAgICAgICAgW2F0dHIuZGF0YS1jeV09XCJjeXByZXNzVGFnICsgJ19zZWFyY2hfaW5wdXQnXCIgI3NlYXJjaElucHV0XG4gICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXh0XCIgcGxhY2Vob2xkZXI9XCJ7e2N1cnJlbnRMYW5nID09ICdlcycgPyAnQnVzY2FyJyA6ICdTZWFyY2ggaW5wdXQnfX1cIj5cbiAgICAgIDxncmF2aXR5LWljb24gY2xhc3M9XCJwb2ludGVyIHJlc2V0LWljb25cIiAoY2xpY2spPVwic2VhcmNoVGV4dCA9ICcnOyBmaWx0ZXJJdGVtcygpXCIgW2ljb25OYW1lXT1cIid1bnN1Y2Nlc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgW2ljb25TaXplXT1cIidzbS0xMidcIiAqbmdJZj1cInNlYXJjaFRleHQ/Lmxlbmd0aCA+IDBcIj48L2dyYXZpdHktaWNvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJzZWxlY3QtYWxsXCIgKm5nSWY9XCJtdWx0aXBsZSAmJiBhdmFpbGFibGVPcHRpb25zLmxlbmd0aCAhPSAwXCI+XG4gICAgICA8Z3Jhdml0eS1jaGVja2JveCBbbmdDbGFzc109XCJnZXRTcGFjaW5nQ2xhc3Moc2l6ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEFsbEl0ZW1zKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY2hlY2tJZlNlbGVjdGVkKClcIj48L2dyYXZpdHktY2hlY2tib3g+XG4gICAgICA8cCBjbGFzcz1cImhyLWxhYmVsIHt7c2l6ZX19LXJlZ3VsYXJcIj57eyBjdXJyZW50TGFuZyA9PSAnZXMnID8gJ1NlbGVjY2lvbmFyIHRvZG8nIDogJ1NlbGVjdCBhbGwnIH19PC9wPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cIml0ZW1zLWNvbnRhaW5lclwiPlxuICAgICAgPGRpdiBjbGFzcz1cIml0ZW1zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWNvbnRhaW5lclwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGF2YWlsYWJsZU9wdGlvbnNcIlxuICAgICAgICAgICAgIFthdHRyLmRhdGEtY3ldPVwiaXNDdXJyZW5jeSA/ICdjdXJyZW5jeV9vcHRpb25fJyArIGl0ZW0uY3VycmVuY3lfaWQgOiAnJ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJoci1sYWJlbCBpdGVtIHt7c2l6ZX19LXJlZ3VsYXIgcG9pbnRlclwiXG4gICAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwiY2hlY2tJZlNlbGVjdGVkKGl0ZW0pXCJcbiAgICAgICAgICAgICAgIFtjbGFzcy5wYXJ0aWFsXT1cImlzUGFydGlhbGx5U2VsZWN0ZWQoaXRlbSlcIlxuICAgICAgICAgICAgICAgKGNsaWNrKT1cIml0ZW0uY2hpbGRyZW4/Lmxlbmd0aCA/IG11bHRpcGxlID8gc2VsZWN0SXRlbShpdGVtKSA6IHRvZ2dsZUNoaWxkcmVuKGl0ZW0sICRldmVudCkgOiBzZWxlY3RJdGVtKGl0ZW0pXCI+XG5cbiAgICAgICAgICAgIDxncmF2aXR5LWNoZWNrYm94ICpuZ0lmPVwibXVsdGlwbGVcIiBbbmdDbGFzc109XCJnZXRTcGFjaW5nQ2xhc3Moc2l6ZSlcIlxuICAgICAgICAgICAgICBbaXNQYXJ0aWFsXT1cImlzUGFydGlhbGx5U2VsZWN0ZWQoaXRlbSlcIlxuICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjaGVja0lmU2VsZWN0ZWQoaXRlbSlcIj5cbiAgICAgICAgICAgIDwvZ3Jhdml0eS1jaGVja2JveD5cblxuICAgICAgICAgICAgPGdyYXZpdHktY3VycmVuY3ktZGlzcGxheS12MiAqbmdJZj1cImlzQ3VycmVuY3lcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImdldFNwYWNpbmdDbGFzcyhzaXplKVwiXG4gICAgICAgICAgICAgICAgW3R5cGVdPVwiaXRlbS50eXBlID09PSAnRklBVCcgPyAnZmlhdC1zaG9ydCcgOiAnc2hvcnQtaHJ6J1wiXG4gICAgICAgICAgICAgICAgW2N1cnJlbmN5XT1cIntcbiAgICAgICAgICAgICAgICAgICAgY3VycmVuY3lfbmFtZTogaXRlbS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeV9pZDogaXRlbS5jdXJyZW5jeV9pZCwgY3VycmVuY3lfaXNvOiBpdGVtLmlzbyxcbiAgICAgICAgICAgICAgICAgICAgbmV0d29ya19pZDogaXRlbS5uZXR3b3JrPy5pZCwgbmV0d29ya19pc286IGl0ZW0ubmV0d29yaz8uY29kZSxcbiAgICAgICAgICAgICAgICAgICAgcGlsbF90eXBlOiBjaGVja0lmU2VsZWN0ZWQoaXRlbSkgPyAnc2Vjb25kYXJ5JyA6ICdwcmltYXJ5J31cIiA+XG4gICAgICAgICAgICA8L2dyYXZpdHktY3VycmVuY3ktZGlzcGxheS12Mj5cblxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFpc0N1cnJlbmN5XCIgW25nQ2xhc3NdPVwiZ2V0U3BhY2luZ0NsYXNzKHNpemUpXCI+e3sgZ2V0RGlzcGxheVZhbHVlKGl0ZW0sIGNvbmZpZykgfX08L2Rpdj5cblxuICAgICAgICAgICAgPGdyYXZpdHktaWNvbiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiBhdXRvXCIgKGNsaWNrKT1cInRvZ2dsZUNoaWxkcmVuKGl0ZW0sICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbaWNvbk5hbWVdPVwiaXNDaGlsZHJlbk9wZW4oaXRlbSkgPyAnYXJyb3ctdXAnIDogJ2Fycm93LWRvd24nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25TaXplXT1cIidtZC0xNidcIiAqbmdJZj1cIml0ZW0uY2hpbGRyZW4/Lmxlbmd0aFwiPjwvZ3Jhdml0eS1pY29uPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tY2hpbGRyZW5cIiAqbmdJZj1cIml0ZW0uY2hpbGRyZW4/Lmxlbmd0aCAmJiBpc0NoaWxkcmVuT3BlbihpdGVtKVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2hpbGQgb2YgaXRlbS5jaGlsZHJlblwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaHItbGFiZWwgaXRlbSB7e3NpemV9fS1yZWd1bGFyIHBvaW50ZXJcIiBbbmdDbGFzc109XCJ7J211bHRpcGxlJyA6IG11bHRpcGxlfVwiXG4gICAgICAgICAgICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImNoZWNrSWZTZWxlY3RlZChjaGlsZClcIlxuICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RJdGVtKGNoaWxkKVwiPlxuICAgICAgICAgICAgICAgIDxncmF2aXR5LWNoZWNrYm94ICpuZ0lmPVwibXVsdGlwbGVcIiBbbmdDbGFzc109XCJnZXRNdWx0aWxldmVsU3BhY2luZ0NsYXNzKHNpemUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjaGVja0lmU2VsZWN0ZWQoY2hpbGQpXCI+PC9ncmF2aXR5LWNoZWNrYm94PlxuICAgICAgICAgICAgICAgIDxncmF2aXR5LWN1cnJlbmN5ICpuZ0lmPVwiaXNDdXJyZW5jeVwiIFtuZ0NsYXNzXT1cImdldFNwYWNpbmdDbGFzcyhzaXplKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NpemVdPVwiZ2V0Q3VycmVuY3lJY29uU2l6ZShzaXplKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2N1cnJlbmN5XT1cIntjdXJyZW5jeV9pZDogY2hpbGQuY3VycmVuY3lfaWR9XCI+PC9ncmF2aXR5LWN1cnJlbmN5PlxuICAgICAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiZ2V0U3BhY2luZ0NsYXNzKHNpemUpXCI+e3sgZ2V0RGlzcGxheVZhbHVlKGNoaWxkLCBjb25maWcpIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgPGdyYXZpdHktbmV0d29yay1waWxsICpuZ0lmPVwiaXNDdXJyZW5jeVwiIFt0eXBlXT1cImNoZWNrSWZTZWxlY3RlZChjaGlsZCkgPyAnc2Vjb25kYXJ5JyA6ICdwcmltYXJ5J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZXR3b3JrXT1cInsgaXNvOiBjaGlsZC5uZXR3b3JrPy5jb2RlLCBpZDogY2hpbGQubmV0d29yaz8uaWQgfVwiPjwvZ3Jhdml0eS1uZXR3b3JrLXBpbGw+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1jb250YWluZXJcIiAqbmdJZj1cImF2YWlsYWJsZU9wdGlvbnMubGVuZ3RoID09PSAwXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhyLWxhYmVsIGl0ZW0ge3tzaXplfX0tYm9sZCBuby1yZXN1bHRzXCI+XG4gICAgICAgICAgICB7eyBjdXJyZW50TGFuZyA9PSAnZXMnID8gJ1NpbiByZXN1bHRhZG9zIGVuY29udHJhZG9zJyA6ICdObyByZXN1bHRzIGZvdW5kLicgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1mb290ZXJcIiAqbmdJZj1cInNlbGVjdGVkSXRlbXMubGVuZ3RoID4gMCAmJiBhdmFpbGFibGVPcHRpb25zLmxlbmd0aCAhPT0gMFwiXG4gICAgICAgICBbY2xhc3Mubm90LWNsZWFyYWJsZV09XCIhY2xlYXJhYmxlXCI+XG4gICAgICA8Z3Jhdml0eS1saW5rICpuZ0lmPVwiY2xlYXJhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyU2VsZWN0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICBbZm9udENsYXNzXT1cIidoci1sYWJlbCBzbS1yZWd1bGFyJ1wiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtY3ldPVwiY3lwcmVzc1RhZyArICdfY2xlYXInXCJcbiAgICAgICAgICAgICAgICAgICAgW2xpbmtUZXh0XT1cImN1cnJlbnRMYW5nID09ICdlcycgPyAnTGltcGlhcicgOiAnQ2xlYXIgc2VsZWN0aW9uJ1wiPlxuICAgICAgPC9ncmF2aXR5LWxpbms+XG5cbiAgICAgIDxncmF2aXR5LWxpbmsgKm5nSWY9XCJhdmFpbGFibGVPcHRpb25zLmxlbmd0aCAhPSAwXCJcbiAgICAgICAgICAgICAgICAgICAgW2ZvbnRDbGFzc109XCInaHItbGFiZWwgc20tYm9sZCdcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWN5XT1cImN5cHJlc3NUYWcgKyAnX2FwcGx5J1wiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IHRvZ2dsZURyb3Bkb3duKClcIlxuICAgICAgICAgICAgICAgICAgICBbbGlua1RleHRdPVwiY3VycmVudExhbmcgPT0gJ2VzJyA/ICdBcGxpY2FyJyA6ICdBcHBseSdcIj5cbiAgICAgIDwvZ3Jhdml0eS1saW5rPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1mb290ZXIgbm8tcmVzdWx0c1wiICpuZ0lmPVwiYXZhaWxhYmxlT3B0aW9ucy5sZW5ndGggPT09IDBcIiBbY2xhc3Mubm90LWNsZWFyYWJsZV09XCIhY2xlYXJhYmxlXCI+XG4gICAgICA8Z3Jhdml0eS1saW5rICpuZ0lmPVwiY2xlYXJhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyU2VhcmNoKClcIlxuICAgICAgICAgICAgICAgICAgICBbZm9udENsYXNzXT1cIidoci1sYWJlbCBzbS1yZWd1bGFyJ1wiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtY3ldPVwiY3lwcmVzc1RhZyArICdfY2xlYXJfc2VhcmNoJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtsaW5rVGV4dF09XCJjdXJyZW50TGFuZyA9PSAnZXMnID8gJ0xpbXBpYXIgYsO6c3F1ZWRhJyA6ICdDbGVhciBzZWFyY2gnXCI+XG4gICAgICA8L2dyYXZpdHktbGluaz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPHNlY3Rpb24gY2xhc3M9XCJleHRlcm5hbC1jb250ZW50XCIgKm5nSWY9XCIhaXRlbXMgJiYgZHJvcGRvd25PcGVuZWRcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L3NlY3Rpb24+XG48L2Rpdj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImlucHV0VHlwZSA9PT0gJ2ZpZWxkJ1wiPlxuICA8cCBjbGFzcz1cImhyLWxhYmVsIHNtLXJlZ3VsYXIgc3VwcG9ydGluZy10ZXh0IHt7Z2V0U3RhdHVzKCl9fSB7e3NpemV9fVwiICpuZ0lmPVwic3VwcG9ydFRleHRcIj5cbiAgICB7eyBzdXBwb3J0VGV4dCB9fVxuICA8L3A+XG4gIDxwIGNsYXNzPVwiaHItbGFiZWwgc20tcmVndWxhciBzdXBwb3J0aW5nLXRleHQge3tnZXRTdGF0dXMoKX19IHt7c2l6ZX19XCJcbiAgICAgKm5nSWY9XCIhc3VwcG9ydFRleHQgJiYgZ2V0U3RhdHVzKCkgPT0gJ2FjdGl2ZScgJiYgc2VsZWN0ZWRJdGVtcy5sZW5ndGggPT0gMCAmJiByZXF1aXJlZFwiPlxuICAgIHt7IGN1cnJlbnRMYW5nID09ICdlcycgPyAnUmVxdWVyaWRvJyA6ICdSZXF1aXJlZCcgfX1cbiAgPC9wPlxuPC9uZy1jb250YWluZXI+Il19
|