kivio 1.6.7 → 1.6.9

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.
@@ -74,7 +74,6 @@ export class KvItemCardComponent {
74
74
  }
75
75
  onCancelAction() {
76
76
  this.onCancel.emit();
77
- this.itemsSpecificationForm.clear();
78
77
  }
79
78
  formatNumber(value) {
80
79
  if (!value)
@@ -205,4 +204,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
205
204
  }], onItemsProcessed: [{
206
205
  type: Output
207
206
  }] } });
208
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtaXRlbS1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdmlvL3NyYy9saWIvY29tcG9uZW50cy9rdi1pdGVtLWNhcmQva3YtaXRlbS1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdmlvL3NyYy9saWIvY29tcG9uZW50cy9rdi1pdGVtLWNhcmQva3YtaXRlbS1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBYSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQStCL0MsTUFBTSxPQUFPLG1CQUFtQjtJQXFCOUIsWUFDbUIsV0FBK0I7UUFBL0IsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBckJ6Qyx5QkFBb0IsR0FBWSxLQUFLLENBQUM7UUFDdEMsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUNyQixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUMvQiwyQkFBc0IsR0FBeUIsSUFBSSxTQUFTLENBQVksRUFBRSxDQUFDLENBQUM7UUFFM0UsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDdEMsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDcEMscUJBQWdCLEdBQUcsSUFBSSxZ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LENBQUMsSUFBUyxFQUFFLFFBQW1CO1FBQ25ELFFBQVEsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTSxVQUFVLENBQUMsTUFBYztRQUM5QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUNyRSxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssS0FBSyxNQUFNLENBQ3pDLENBQUM7UUFFRixJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNoQixJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzdDO0lBQ0gsQ0FBQzsrR0EzTlUsbUJBQW1CO21HQUFuQixtQkFBbUIsK1VDMUNoQywwdk9BOEhlLG13Y0Q3RlgsWUFBWSwrUEFDWixtQkFBbUIsczNEQUNuQixnQkFBZ0Isa0xBQ2hCLG1CQUFtQjs7NEZBTVYsbUJBQW1CO2tCQWIvQixTQUFTOytCQUNFLGtCQUFrQixjQUNoQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3FCQUVwQjt1RkFLUSxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUVJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1BcnJheSwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBLdlBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi4va3YtcG9wdXAva3YtcG9wdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWN0aW9uVHlwZSB9IGZyb20gJy4uLy4uL2VudW1zL2FjdGlvbi10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBEYXRlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybUZpZWxkQ29uZmlnIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9mb3JtLWZpZWxkLmNvbmZpZyc7XHJcbmltcG9ydCB7IEZvcm1GYWN0b3J5U2VydmljZSB9IGZyb20gJy4uLy4uL2ZhY3Rvcmllcy9mb3JtLWZhY3Rvcnkuc2VydmljZSc7XHJcblxyXG5cclxuaW50ZXJmYWNlIENyZWF0ZVdpdGhNdWx0aXBsZUl0ZW1zUmVxdWVzdCB7XHJcbiAgY3VycmVuY3k6IHN0cmluZztcclxuICBvZmZlcl9pZDogc3RyaW5nO1xyXG4gIGl0ZW1faWQ6IHN0cmluZztcclxuICBwb2ludF9vZl9zYWxlX2lkOiBzdHJpbmc7XHJcbiAgYW1vdW50OiBudW1iZXI7XHJcbiAgYXZhaWxhYmlsaXR5OiBudW1iZXI7XHJcbiAgZXhwaXJlX2F0OiBzdHJpbmc7XHJcbiAgaXNfZXh0ZXJuYWw6IGJvb2xlYW47XHJcbiAgYWxsb3dfbXVsdGlwbGVfaXRlbXM6IGJvb2xlYW47XHJcbiAgYmFzZV9wcmljZTogbnVtYmVyO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1rdi1pdGVtLWNhcmQnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIEt2UG9wdXBDb21wb25lbnQsXHJcbiAgICBEYXRlUGlja2VyQ29tcG9uZW50LFxyXG5cclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9rdi1pdGVtLWNhcmQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9rdi1pdGVtLWNhcmQuY29tcG9uZW50LnNjc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgS3ZJdGVtQ2FyZENvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgc2hvdWxkU2hvd0RhdGVwaWNrZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBvZmZlcklkOiBzdHJpbmcgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIHNob3dDb3N0UG9wdXA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBpdGVtc1NwZWNpZmljYXRpb25Gb3JtOiBGb3JtQXJyYXk8Rm9ybUdyb3VwPiA9IG5ldyBGb3JtQXJyYXk8Rm9ybUdyb3VwPihbXSk7XHJcblxyXG4gIEBPdXRwdXQoKSBvbkNvbnRpbnVlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKSBvbkNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAT3V0cHV0KCkgb25JdGVtc1Byb2Nlc3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgbXVsdGlwbGVJdGVtczogQ3JlYXRlV2l0aE11bHRpcGxlSXRlbXNSZXF1ZXN0W107XHJcbiAgICByZWd1bGFySXRlbXM6IGFueVtdO1xyXG4gIH0+KCk7XHJcblxyXG4gIHB1YmxpYyBhY3Rpb25UeXBlRW51bSA9IEFjdGlvblR5cGU7XHJcbiAgcHVibGljIGRlZmF1bHREYXRlID0gbmV3IERhdGUoKTtcclxuXHJcbiAgcGFnZVNpemU6IG51bWJlciA9IDI7XHJcbiAgY3VycmVudFBhZ2U6IG51bWJlciA9IDE7XHJcbiAgTWF0aCA9IE1hdGg7XHJcbiAgc2VhcmNoVGV4dDogc3RyaW5nID0gJyc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtRmFjdG9yeTogRm9ybUZhY3RvcnlTZXJ2aWNlLFxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pdGVtc1NwZWNpZmljYXRpb25Gb3JtID0gbmV3IEZvcm1BcnJheTxGb3JtR3JvdXA+KFtdKTtcclxuXHJcbiAgfVxyXG5cclxuICBnZXQgZmlsdGVyZWREYXRhSXRlbXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5pdGVtc1NwZWNpZmljYXRpb25Gb3JtLmNvbnRyb2xzXHJcbiAgICAgIC5maWx0ZXIoKGl0ZW1Gb3JtKSA9PlxyXG4gICAgICAgIGl0ZW1Gb3JtLmdldCgnbmFtZScpPy52YWx1ZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpKVxyXG4gICAgICApXHJcbiAgICAgIC5zbGljZSgodGhpcy5jdXJyZW50UGFnZSAtIDEpICogdGhpcy5wYWdlU2l6ZSwgdGhpcy5jdXJyZW50UGFnZSAqIHRoaXMucGFnZVNpemUpO1xyXG4gIH1cclxuXHJcbiAgYWRkSXRlbShpbmRleDogbnVtYmVyLCBpdGVtTmFtZT86IHN0cmluZywgaXRlbUlzRXh0ZXJuYWw/OiBib29sZWFuLCBpdGVtSW1hZ2U/OiBzdHJpbmcsIGF2YWlsYWJpbGl0eT86IG51bWJlciwgaXRlbUlkPzogc3RyaW5nLCBwb3NJZD86IHN0cmluZywgaXRlbUJhc2VQcmljZT86IG51bWJlcik6IHZvaWQge1xyXG4gICAgY29uc3QgaXRlbVNwZWNGb3JtQ29uZmlnOiBGb3JtRmllbGRDb25maWdbXSA9IFtcclxuICAgICAgeyBuYW1lOiAnYW1vdW50JywgZGVmYXVsdFZhbHVlOiAwLCB2YWxpZGF0b3JzOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0gfSxcclxuICAgICAgeyBuYW1lOiAnYXZhaWxhYmlsaXR5JywgZGVmYXVsdFZhbHVlOiAwLCB2YWxpZGF0b3JzOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0gfSxcclxuICAgICAgeyBuYW1lOiAnY3VycmVuY3knLCBkZWZhdWx0VmFsdWU6ICdDT1AnLCB2YWxpZGF0b3JzOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0gfSxcclxuICAgICAgeyBuYW1lOiAnZXhwaXJlX2F0JywgZGVmYXVsdFZhbHVlOiB0aGlzLmRlZmF1bHREYXRlLCB2YWxpZGF0b3JzOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0gfSxcclxuICAgICAgeyBuYW1lOiAnb2ZmZXJfaWQnLCBkZWZhdWx0VmFsdWU6ICcnIH0sXHJcbiAgICAgIHsgbmFtZTogJ2l0ZW1faWQnLCBkZWZhdWx0VmFsdWU6ICcnLCB2YWxpZGF0b3JzOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0gfSxcclxuICAgICAgeyBuYW1lOiAnbmFtZScsIGRlZmF1bHRWYWx1ZTogJycsIHZhbGlkYXRvcnM6IFtdIH0sXHJcbiAgICAgIHsgbmFtZTogJ2lzX2V4dGVybmFsJywgZGVmYXVsdFZhbHVlOiBmYWxzZSwgdmFsaWRhdG9yczogW10gfSxcclxuICAgICAgeyBuYW1lOiAncG9pbnRfb2Zfc2FsZV9pZCcsIGRlZmF1bHRWYWx1ZTogJycsIHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSB9LFxyXG4gICAgICB7IG5hbWU6ICdpbWFnZV91cmwnLCBkZWZhdWx0VmFsdWU6ICcnLCB2YWxpZGF0b3JzOiBbXSB9LFxyXG4gICAgICB7IG5hbWU6ICdhbGxvd19tdWx0aXBsZV9pdGVtcycsIGRlZmF1bHRWYWx1ZTogZmFsc2UsIHZhbGlkYXRvcnM6IFtdIH0sXHJcbiAgICAgIHsgbmFtZTogJ2Jhc2VfcHJpY2UnLCBkZWZhdWx0VmFsdWU6IGl0ZW1CYXNlUHJpY2UsIHZhbGlkYXRvcnM6IFtdIH0sXHJcbiAgICBdO1xyXG5cclxuICAgIGNvbnN0IG5ld0l0ZW0gPSB0aGlzLmZvcm1GYWN0b3J5LmNyZWF0ZUZvcm0oaXRlbVNwZWNGb3JtQ29uZmlnKTtcclxuICAgIG5ld0l0ZW0uZ2V0KCduYW1lJyk/LnNldFZhbHVlKGl0ZW1OYW1lKTtcclxuICAgIG5ld0l0ZW0uZ2V0KCdpc19leHRlcm5hbCcpPy5zZXRWYWx1ZShpdGVtSXNFeHRlcm5hbCA/PyBmYWxzZSk7XHJcbiAgICBuZXdJdGVtLmdldCgncG9pbnRfb2Zfc2FsZV9pZCcpPy5zZXRWYWx1ZShwb3NJZCk7XHJcbiAgICBuZXdJdGVtLmdldCgnaW1hZ2VfdXJsJyk/LnNldFZhbHVlKGl0ZW1JbWFnZSB8fCAnJyk7XHJcbiAgICBuZXdJdGVtLmdldCgnYXZhaWxhYmlsaXR5Jyk/LnNldFZhbHVlKGF2YWlsYWJpbGl0eSB8fCBudWxsKTtcclxuICAgIG5ld0l0ZW0uZ2V0KCdpdGVtX2lkJyk/LnNldFZhbHVlKGl0ZW1JZCk7XHJcbiAgICBhdmFpbGFiaWxpdHkgPyBuZXdJdGVtLmdldCgnYXZhaWxhYmlsaXR5Jyk/LmRpc2FibGUoKSA6IG5ld0l0ZW0uZ2V0KCdhdmFpbGFiaWxpdHknKT8uZW5hYmxlKCk7XHJcbiAgICB0aGlzLml0ZW1zU3BlY2lmaWNhdGlvbkZvcm0ucHVzaChuZXdJdGVtKTtcclxuICB9XHJcblxyXG4gIHByZXZlbnROZWdhdGl2ZShldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgY29uc3QgaW52YWxpZEtleXMgPSBbJy0nLCAnZSddO1xyXG4gICAgY29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuXHJcbiAgICBpZiAoaW52YWxpZEtleXMuaW5jbHVkZXMoZXZlbnQua2V5KSB8fFxyXG4gICAgICAoZXZlbnQua2V5ID09PSAnMCcgJiYgaW5wdXQudmFsdWUubGVuZ3RoID09PSAwKSkge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25JbnB1dChldmVudDogRXZlbnQsIGl0ZW1Gb3JtOiBGb3JtR3JvdXApIHtcclxuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICBjb25zdCBudW1iZXIgPSBpbnB1dC52YWx1ZS5yZXBsYWNlKC9cXEQvZywgJycpO1xyXG4gICAgY29uc3QgZm9ybWF0dGVkID0gdGhpcy5mb3JtYXROdW1iZXIobnVtYmVyKTtcclxuICAgIGl0ZW1Gb3JtLmdldCgnYW1vdW50Jyk/LnNldFZhbHVlKGZvcm1hdHRlZCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIG9uQ2FuY2VsQWN0aW9uKCkge1xyXG4gICAgdGhpcy5vbkNhbmNlbC5lbWl0KCk7XHJcbiAgICB0aGlzLml0ZW1zU3BlY2lmaWNhdGlvbkZvcm0uY2xlYXIoKVxyXG4gIH1cclxuXHJcbiAgZm9ybWF0TnVtYmVyKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuICcnO1xyXG4gICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoL1xcQig/PShcXGR7M30pKyg/IVxcZCkpL2csICcuJyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWxsVGltZXNIYXNDb3N0KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaXRlbXNTcGVjaWZpY2F0aW9uRm9ybS5pbnZhbGlkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFRvdGFsRXh0ZXJuYWxCYXNlUHJpY2UoKTogbnVtYmVyIHtcclxuICAgIGxldCB0b3RhbCA9IDA7XHJcblxyXG4gICAgdGhpcy5pdGVtc1NwZWNpZmljYXRpb25Gb3JtLmNvbnRyb2xzLmZvckVhY2goaXRlbUZvcm0gPT4ge1xyXG4gICAgICBjb25zdCBpc0V4dGVybmFsID0gaXRlbUZvcm0uZ2V0KCdpc19leHRlcm5hbCcpPy52YWx1ZTtcclxuXHJcbiAgICAgIGlmIChpc0V4dGVybmFsKSB7XHJcbiAgICAgICAgY29uc3QgYmFzZVByaWNlID0gaXRlbUZvcm0uZ2V0KCdiYXNlX3ByaWNlJyk/LnZhbHVlO1xyXG4gICAgICAgIGNvbnN0IGF2YWlsYWJpbGl0eSA9IGl0ZW1Gb3JtLmdldCgnYXZhaWxhYmlsaXR5Jyk/LnZhbHVlO1xyXG5cclxuICAgICAgICBpZiAoYmFzZVByaWNlICYmIGF2YWlsYWJpbGl0eSkge1xyXG4gICAgICAgICAgdG90YWwgKz0gTnVtYmVyKGJhc2VQcmljZSkgKiBOdW1iZXIoYXZhaWxhYmlsaXR5KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiB0b3RhbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzaG93RXh0ZXJuYWxCYXNlUHJpY2VXYXJuaW5nKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgdG90YWxFeHRlcm5hbCA9IHRoaXMuZ2V0VG90YWxFeHRlcm5hbEJhc2VQcmljZSgpO1xyXG5cclxuICAgIGNvbnN0IGhhc0V4dGVybmFsUHJvZHVjdHMgPSB0aGlzLml0ZW1zU3BlY2lmaWNhdGlvbkZvcm0uY29udHJvbHMuc29tZShcclxuICAgICAgaXRlbUZvcm0gPT4gaXRlbUZvcm0uZ2V0KCdpc19leHRlcm5hbCcpPy52YWx1ZSA9PT0gdHJ1ZVxyXG4gICAgKTtcclxuXHJcbiAgICByZXR1cm4gaGFzRXh0ZXJuYWxQcm9kdWN0cyAmJiB0b3RhbEV4dGVybmFsID4gMCAmJiB0b3RhbEV4dGVybmFsIDwgMTI5MDA7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2FuU3VibWl0KCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuaXRlbXNTcGVjaWZpY2F0aW9uRm9ybS5pbnZhbGlkKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gIXRoaXMuc2hvd0V4dGVybmFsQmFzZVByaWNlV2FybmluZygpO1xyXG4gIH1cclxuXHJcbiAgdG90YWxQYWdlcygpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIE1hdGguY2VpbChcclxuICAgICAgdGhpcy5pdGVtc1NwZWNpZmljYXRpb25Gb3JtLmNvbnRyb2xzLmZpbHRlcigoaXRlbUZvcm0pID0+XHJcbiAgICAgICAgaXRlbUZvcm0uZ2V0KCduYW1lJyk/LnZhbHVlLnRvTG93ZXJDYXNlKClcclxuICAgICAgKS5sZW5ndGggLyB0aGlzLnBhZ2VTaXplXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlUGFnZShkaXJlY3Rpb246IG51bWJlcikge1xyXG4gICAgY29uc3QgbmV3UGFnZSA9IHRoaXMuY3VycmVudFBhZ2UgKyBkaXJlY3Rpb247XHJcbiAgICBpZiAobmV3UGFnZSA+IDAgJiYgbmV3UGFnZSA8PSB0aGlzLnRvdGFsUGFnZXMoKSkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRQYWdlID0gbmV3UGFnZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhc0l0ZW1zQXNzb2NpYXRlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLml0ZW1zU3BlY2lmaWNhdGlvbkZvcm0ubGVuZ3RoID4gMDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblN1Ym1pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNhblN1Ym1pdCgpKSB7XHJcbiAgICAgIHRoaXMub25Db250aW51ZS5lbWl0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm9jZXNzSXRlbVNwZWNpZmljYXRpb25zKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pdGVtc1NwZWNpZmljYXRpb25Gb3JtLmNvbnRyb2xzLmZvckVhY2goaXRlbUZvcm0gPT4ge1xyXG4gICAgICBpdGVtRm9ybS5nZXQoJ29mZmVyX2lkJyk/LnNldFZhbHVlKHRoaXMub2ZmZXJJZCk7XHJcbiAgICB9KTtcclxuICAgIGlmICh0aGlzLml0ZW1zU3BlY2lmaWNhdGlvbkZvcm0udmFsaWQpIHtcclxuICAgICAgdGhpcy5zaG93Q29zdFBvcHVwID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuaXRlbXNTcGVjaWZpY2F0aW9uRm9ybS5jb250cm9scy5mb3JFYWNoKGNvbnRyb2wgPT4ge1xyXG4gICAgICAgIGxldCBpdGVtQW1vdW50ID0gY29udHJvbC5nZXQoJ2Ftb3VudCcpPy52YWx1ZTtcclxuICAgICAgICBpZiAodHlwZW9mIGl0ZW1BbW91bnQgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICBpdGVtQW1vdW50ID0gaXRlbUFtb3VudC5yZXBsYWNlKC9cXC4vZywgJycpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb250cm9sLmdldCgnYW1vdW50Jyk/LnNldFZhbHVlKE51bWJlcihpdGVtQW1vdW50KSlcclxuICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBtdWx0aXBsZUl0ZW1zU3BlY3M6IENyZWF0ZVdpdGhNdWx0aXBsZUl0ZW1zUmVxdWVzdFtdID0gW107XHJcbiAgICBjb25zdCByZWd1bGFySXRlbXNTcGVjczogYW55W10gPSBbXTtcclxuXHJcbiAgICB0aGlzLml0ZW1zU3BlY2lmaWNhdGlvbkZvcm0uY29udHJvbHMuZm9yRWFjaChjb250cm9sID0+IHtcclxuICAgICAgY29uc3QgYWxsb3dNdWx0aXBsZSA9IGNvbnRyb2wuZ2V0KCdhbGxvd19tdWx0aXBsZV9pdGVtcycpPy52YWx1ZTtcclxuICAgICAgY29udHJvbC5nZXQoJ2F2YWlsYWJpbGl0eScpPy5lbmFibGUoKTtcclxuICAgICAgY29uc3QgaXRlbVNwZWMgPSBjb250cm9sLnZhbHVlO1xyXG5cclxuICAgICAgaWYgKGFsbG93TXVsdGlwbGUpIHtcclxuICAgICAgICBjb25zdCBtdWx0aXBsZUl0ZW1TcGVjOiBDcmVhdGVXaXRoTXVsdGlwbGVJdGVtc1JlcXVlc3QgPSB7XHJcbiAgICAgICAgICBjdXJyZW5jeTogaXRlbVNwZWMuY3VycmVuY3ksXHJcbiAgICAgICAgICBvZmZlcl9pZDogaXRlbVNwZWMub2ZmZXJfaWQsXHJcbiAgICAgICAgICBpdGVtX2lkOiBpdGVtU3BlYy5pdGVtX2lkLFxyXG4gICAgICAgICAgcG9pbnRfb2Zfc2FsZV9pZDogaXRlbVNwZWMucG9pbnRfb2Zfc2FsZV9pZCxcclxuICAgICAgICAgIGFtb3VudDogaXRlbVNwZWMuYW1vdW50LFxyXG4gICAgICAgICAgYXZhaWxhYmlsaXR5OiBpdGVtU3BlYy5hdmFpbGFiaWxpdHksXHJcbiAgICAgICAgICBleHBpcmVfYXQ6IGl0ZW1TcGVjLmV4cGlyZV9hdCxcclxuICAgICAgICAgIGlzX2V4dGVybmFsOiBpdGVtU3BlYy5pc19leHRlcm5hbCxcclxuICAgICAgICAgIGFsbG93X211bHRpcGxlX2l0ZW1zOiB0cnVlLFxyXG4gICAgICAgICAgYmFzZV9wcmljZTogaXRlbVNwZWMuYmFzZV9wcmljZVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgbXVsdGlwbGVJdGVtc1NwZWNzLnB1c2gobXVsdGlwbGVJdGVtU3BlYyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmVndWxhckl0ZW1zU3BlY3MucHVzaChpdGVtU3BlYyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMub25JdGVtc1Byb2Nlc3NlZC5lbWl0KHtcclxuICAgICAgbXVsdGlwbGVJdGVtczogbXVsdGlwbGVJdGVtc1NwZWNzLFxyXG4gICAgICByZWd1bGFySXRlbXM6IHJlZ3VsYXJJdGVtc1NwZWNzLFxyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIG9uRGF0ZVBpY2tlZChkYXRlOiBhbnksIGl0ZW1Gb3JtOiBGb3JtR3JvdXApIHtcclxuICAgIGl0ZW1Gb3JtLmdldCgnZXhwaXJlX2F0Jyk/LnNldFZhbHVlKGRhdGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlbW92ZUl0ZW0oaXRlbUlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5pdGVtc1NwZWNpZmljYXRpb25Gb3JtLmNvbnRyb2xzLmZpbmRJbmRleChjb250cm9sID0+XHJcbiAgICAgIGNvbnRyb2wuZ2V0KCdpdGVtX2lkJyk/LnZhbHVlID09PSBpdGVtSWRcclxuICAgICk7XHJcblxyXG4gICAgaWYgKGluZGV4ICE9PSAtMSkge1xyXG4gICAgICB0aGlzLml0ZW1zU3BlY2lmaWNhdGlvbkZvcm0ucmVtb3ZlQXQoaW5kZXgpO1xyXG4gICAgfVxyXG4gIH1cclxufSIsIjxsaWIta3YtcG9wdXAgKm5nSWY9XCJzaG93Q29zdFBvcHVwXCIgW3RpdGxlXT1cIidTZXQgcHJpY2luZyBhbmQgYXZhaWxhYmlsaXR5IGZvciB5b3VyIGl0ZW1zJ1wiIFtkZXNjcmlwdGlvbl09XCInQ29uZmlndXJlIHRoZSBjb3N0LCBhdmFpbGFiaWxpdHksIGFuZCBleHBpcmF0aW9uIGRldGFpbHMgZm9yIGVhY2ggc2VsZWN0ZWQgaXRlbSBpbiB5b3VyIG9mZmVyLidcIiBbaXNDdXN0b21UZW1wbGF0ZV09XCJ0cnVlXCIgW2FjdGlvblR5cGVdPVwiYWN0aW9uVHlwZUVudW0uSW5mb1wiXHJcbiAgICAob25BY2NlcHQpPVwic2hvd0Nvc3RQb3B1cCA9IGZhbHNlXCIgKG9uQ2xvc2UpPVwic2hvd0Nvc3RQb3B1cCA9IGZhbHNlXCI+XHJcblxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJiYXNlLXByaWNlLXdhcm5pbmdcIiAqbmdJZj1cInNob3dFeHRlcm5hbEJhc2VQcmljZVdhcm5pbmcoKVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIj53YXJuaW5nPC9zcGFuPlxyXG4gICAgICAgIDxzcGFuPkVsIHRvdGFsIGRlIGxvcyBwcm9kdWN0b3MgZXh0ZXJub3MgKFByZWNpbyBleHRlcm5vIMOXIGRpc3BvbmliaWxpZGFkKSBkZWJlIHNlciBhbCBtZW5vcyAkMTIuOTAwLiBUb3RhbCBhY3R1YWw6ICR7eyBnZXRUb3RhbEV4dGVybmFsQmFzZVByaWNlKCkudG9Mb2NhbGVTdHJpbmcoJ2VzLUNPJykgfX08L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiaXRlbXMtY29udGFpbmVyXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbUZvcm0gb2YgZmlsdGVyZWREYXRhSXRlbXM7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0taGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0taW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nICpuZ0lmPVwiaXRlbUZvcm0uZ2V0KCdpbWFnZV91cmwnKT8udmFsdWVcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIml0ZW1Gb3JtLmdldCgnaW1hZ2VfdXJsJyk/LnZhbHVlXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FsdF09XCJpdGVtRm9ybS5nZXQoJ25hbWUnKT8udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaXRlbS1pbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1kZXRhaWxzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJpdGVtLW5hbWVcIj57eyBpdGVtRm9ybS5nZXQoJ25hbWUnKT8udmFsdWUgfX08L2g0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpdGVtLXR5cGVcIiAqbmdJZj1cIml0ZW1Gb3JtLmdldCgnaXNfZXh0ZXJuYWwnKT8udmFsdWVcIj5FeHRlcm5hbCBJdGVtPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cIml0ZW1Gb3JtXCIgY2xhc3M9XCJpdGVtLWZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1zZWN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoNSBjbGFzcz1cInNlY3Rpb24tdGl0bGVcIj5QcmljaW5nICYgQXZhaWxhYmlsaXR5PC9oNT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncmlkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiYW1vdW50LXt7aX19XCI+Q29zdCAqPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29zdC1pbnB1dC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwiYW1vdW50LXt7aX19XCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYW1vdW50XCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVudGVyIGNvc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJvbklucHV0KCRldmVudCwgaXRlbUZvcm0pXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImN1cnJlbmN5LXNlbGVjdFwiIGZvcm1Db250cm9sTmFtZT1cImN1cnJlbmN5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiQ09QXCI+Q09QPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJpdGVtRm9ybS5nZXQoJ2Ftb3VudCcpPy5pbnZhbGlkICYmIGl0ZW1Gb3JtLmdldCgnYW1vdW50Jyk/LnRvdWNoZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29zdCBpcyByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJhdmFpbGFiaWxpdHkte3tpfX1cIj5BdmFpbGFiaWxpdHkgKjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwiYXZhaWxhYmlsaXR5LXt7aX19XCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhdmFpbGFiaWxpdHlcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbj1cIjFcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiQXZhaWxhYmxlIHF1YW50aXR5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duKT1cInByZXZlbnROZWdhdGl2ZSgkZXZlbnQpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiaXRlbUZvcm0uZ2V0KCdhdmFpbGFiaWxpdHknKT8uaW52YWxpZCAmJiBpdGVtRm9ybS5nZXQoJ2F2YWlsYWJpbGl0eScpPy50b3VjaGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF2YWlsYWJpbGl0eSBpcyByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1zZWN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoNSBjbGFzcz1cInNlY3Rpb24tdGl0bGVcIj5NdWx0aXBsZSBJdGVtcyBTZXR0aW5nczwvaDU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9nZ2xlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidG9nZ2xlLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYWxsb3dfbXVsdGlwbGVfaXRlbXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0b2dnbGUtaW5wdXRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRvZ2dsZS1zbGlkZXJcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b2dnbGUtdGV4dFwiPkFsbG93IG11bHRpcGxlIGl0ZW1zIHBlciB1c2VyPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidG9nZ2xlLWRlc2NyaXB0aW9uXCI+V2hlbiBlbmFibGVkLCB1c2VycyBjYW4gYmlkIG9uIG11bHRpcGxlIHF1YW50aXRpZXMgb2YgdGhpcyBpdGVtPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1zZWN0aW9uXCIgKm5nSWY9XCJzaG91bGRTaG93RGF0ZXBpY2tlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDUgY2xhc3M9XCJzZWN0aW9uLXRpdGxlXCI+RXhwaXJhdGlvbjwvaDU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImV4cGlyZUF0LXt7aX19XCI+RXhwaXJlcyBvbjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWt2LWRhdGUtcGlja2VyIFtpbml0aWFsRGF0ZV09XCJkZWZhdWx0RGF0ZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd0RldGFpbHNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlU2VsZWN0ZWQpPVwib25EYXRlUGlja2VkKCRldmVudCwgaXRlbUZvcm0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpYi1rdi1kYXRlLXBpY2tlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInBhZ2luYXRpb24tY29udGFpbmVyXCIgKm5nSWY9XCJ0b3RhbFBhZ2VzKCkgPiAxXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInBhZ2luYXRpb24taW5mb1wiPlxyXG4gICAgICAgICAgICA8c3Bhbj5TaG93aW5nIHt7IChjdXJyZW50UGFnZSAtIDEpICogcGFnZVNpemUgKyAxIH19IC0ge3sgTWF0aC5taW4oY3VycmVudFBhZ2UgKiBwYWdlU2l6ZSwgaXRlbXNTcGVjaWZpY2F0aW9uRm9ybS5sZW5ndGgpIH19IG9mIHt7IGl0ZW1zU3BlY2lmaWNhdGlvbkZvcm0ubGVuZ3RoIH19IGl0ZW1zPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwYWdpbmF0aW9uLWNvbnRyb2xzXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJwYWdpbmF0aW9uLWJ0blwiIFxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjaGFuZ2VQYWdlKC0xKVwiIFxyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZSA9PT0gMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImN1cnJlbnRQYWdlID09PSAxXCI+XHJcbiAgICAgICAgICAgICAgICDihpAgUHJldmlvdXNcclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGFnZS1pbmRpY2F0b3JcIj57eyBjdXJyZW50UGFnZSB9fSAvIHt7IHRvdGFsUGFnZXMoKSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInBhZ2luYXRpb24tYnRuXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNoYW5nZVBhZ2UoMSlcIiBcclxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UgPT09IHRvdGFsUGFnZXMoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImN1cnJlbnRQYWdlID09PSB0b3RhbFBhZ2VzKClcIj5cclxuICAgICAgICAgICAgICAgIE5leHQg4oaSXHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInBvcHVwLWZvb3RlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb290ZXItaW5mb1wiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIml0ZW1zLWNvdW50XCI+e3sgaXRlbXNTcGVjaWZpY2F0aW9uRm9ybS5sZW5ndGggfX0gaXRlbShzKSBjb25maWd1cmVkPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb290ZXItYWN0aW9uc1wiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ1dHRvbi0tY2FuY2VsXCIgKGNsaWNrKT1cIm9uQ2FuY2VsQWN0aW9uKClcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidXR0b24tLXByaW1hcnktbWluXCJcclxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWNhblN1Ym1pdCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TdWJtaXQoKVwiPlxyXG4gICAgICAgICAgICAgICAgQ29udGludWVcclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9saWIta3YtcG9wdXA+Il19
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtaXRlbS1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdmlvL3NyYy9saWIvY29tcG9uZW50cy9rdi1pdGVtLWNhcmQva3YtaXRlbS1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdmlvL3NyYy9saWIvY29tcG9uZW50cy9rdi1pdGVtLWNhcmQva3YtaXRlbS1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBYSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQStCL0MsTUFBTSxPQUFPLG1CQUFtQjtJQXFCOUIsWUFDbUIsV0FBK0I7UUFBL0IsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBckJ6Qyx5QkFBb0IsR0FBWSxLQUFLLENBQUM7UUFDdEMsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUNyQixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUMvQiwyQkFBc0IsR0FBeUIsSUFBSSxTQUFTLENBQVksRUFBRSxDQUFDLENBQUM7UUFFM0UsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDdEMsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDcEMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBR3pDLENBQUM7UUFFRSxtQkFBYyxHQUFHLFVBQVUsQ0FBQztRQUM1QixnQkFBVyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFFaEMsYUFBUSxHQUFXLENBQUMsQ0FBQztRQUNyQixnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUN4QixTQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ1osZUFBVSxHQUFXLEVBQUUsQ0FBQztJQUlwQixDQUFDO0lBRUwsUUFBUTtRQUNOLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLFNBQVMsQ0FBWSxFQUFFLENBQUMsQ0FBQztJQUU3RCxDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUTthQUN4QyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUNuQixRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUNsRjthQUNBLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQWEsRUFBRSxRQUFpQixFQUFFLGNBQXdCLEVBQUUsU0FBa0IsRUFBRSxZQUFxQixFQUFFLE1BQWUsRUFBRSxLQUFjLEVBQUUsYUFBc0I7UUFDcEssTUFBTSxrQkFBa0IsR0FBc0I7WUFDNUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3RFLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUM1RSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDNUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLFVBQVUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUN4RixFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRTtZQUN0QyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDeEUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRTtZQUNsRCxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFO1lBQzVELEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2pGLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUU7WUFDdkQsRUFBRSxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFO1lBQ3JFLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUU7U0FDcEUsQ0FBQztRQUVGLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDaEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRSxRQUFRLENBQUMsY0FBYyxJQUFJLEtBQUssQ0FBQyxDQUFDO1FBQzlELE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxRQUFRLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsUUFBUSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsQ0FBQztRQUM1RCxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QyxZQUFZLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDOUYsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQW9CO1FBQ2xDLE1BQU0sV0FBVyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUEwQixDQUFDO1FBRS9DLElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO1lBQ2pDLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDakQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFZLEVBQUUsUUFBbUI7UUFDdkMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQTBCLENBQUM7UUFDL0MsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxRQUFRLENBQUMsU0FBUyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVTLGNBQWM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWE7UUFDeEIsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUN0QixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVNLGVBQWU7UUFDcEIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDO0lBQzdDLENBQUM7SUFFTSx5QkFBeUI7UUFDOUIsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBRWQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDdEQsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRSxLQUFLLENBQUM7WUFFdEQsSUFBSSxVQUFVLEVBQUU7Z0JBQ2QsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxLQUFLLENBQUM7Z0JBQ3BELE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsS0FBSyxDQUFDO2dCQUV6RCxJQUFJLFNBQVMsSUFBSSxZQUFZLEVBQUU7b0JBQzdCLEtBQUssSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO2lCQUNuRDthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTSw0QkFBNEI7UUFDakMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFFdkQsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDbkUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFFLEtBQUssS0FBSyxJQUFJLENBQ3hELENBQUM7UUFFRixPQUFPLG1CQUFtQixJQUFJLGFBQWEsR0FBRyxDQUFDLElBQUksYUFBYSxHQUFHLEtBQUssQ0FBQztJQUMzRSxDQUFDO0lBRU0sU0FBUztRQUNkLElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sRUFBRTtZQUN2QyxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsT0FBTyxDQUFDLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUNkLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FDdkQsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLENBQUMsV0FBVyxFQUFFLENBQzFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQ3pCLENBQUM7SUFDSixDQUFDO0lBRUQsVUFBVSxDQUFDLFNBQWlCO1FBQzFCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO1FBQzdDLElBQUksT0FBTyxHQUFHLENBQUMsSUFBSSxPQUFPLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQy9DLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUN4QjtJQUNILENBQUM7SUFFRCx5QkFBeUI7UUFDdkIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDdEQsUUFBUSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFO1lBQ3JDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1lBQzNCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNyRCxJQUFJLFVBQVUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssQ0FBQztnQkFDOUMsSUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLEVBQUU7b0JBQ2xDLFVBQVUsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztpQkFDNUM7Z0JBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUE7WUFDckQsQ0FBQyxDQUFDLENBQUE7U0FDSDtRQUVELE1BQU0sa0JBQWtCLEdBQXFDLEVBQUUsQ0FBQztRQUNoRSxNQUFNLGlCQUFpQixHQUFVLEVBQUUsQ0FBQztRQUVwQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNyRCxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLEVBQUUsS0FBSyxDQUFDO1lBQ2pFLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDdEMsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUUvQixJQUFJLGFBQWEsRUFBRTtnQkFDakIsTUFBTSxnQkFBZ0IsR0FBbUM7b0JBQ3ZELFFBQVEsRUFBRSxRQUFRLENBQUMsUUFBUTtvQkFDM0IsUUFBUSxFQUFFLFFBQVEsQ0FBQyxRQUFRO29CQUMzQixPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU87b0JBQ3pCLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxnQkFBZ0I7b0JBQzNDLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTTtvQkFDdkIsWUFBWSxFQUFFLFFBQVEsQ0FBQyxZQUFZO29CQUNuQyxTQUFTLEVBQUUsUUFBUSxDQUFDLFNBQVM7b0JBQzdCLFdBQVcsRUFBRSxRQUFRLENBQUMsV0FBVztvQkFDakMsb0JBQW9CLEVBQUUsSUFBSTtvQkFDMUIsVUFBVSxFQUFFLFFBQVEsQ0FBQyxVQUFVO2lCQUNoQyxDQUFDO2dCQUNGLGtCQUFrQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2FBQzNDO2lCQUFNO2dCQUNMLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUNsQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQztZQUN6QixhQUFhLEVBQUUsa0JBQWtCO1lBQ2pDLFlBQVksRUFBRSxpQkFBaUI7U0FDaEMsQ0FBQyxDQUFDO0lBRUwsQ0FBQztJQUVTLFlBQVksQ0FBQyxJQUFTLEVBQUUsUUFBbUI7UUFDbkQsUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVNLFVBQVUsQ0FBQyxNQUFjO1FBQzlCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQ3JFLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsS0FBSyxLQUFLLE1BQU0sQ0FDekMsQ0FBQztRQUVGLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDN0M7SUFDSCxDQUFDOytHQTFOVSxtQkFBbUI7bUdBQW5CLG1CQUFtQiwrVUMxQ2hDLDB2T0E4SGUsbXdjRDdGWCxZQUFZLCtQQUNaLG1CQUFtQixzM0RBQ25CLGdCQUFnQixrTEFDaEIsbUJBQW1COzs0RkFNVixtQkFBbUI7a0JBYi9CLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixtQkFBbUI7cUJBRXBCO3VGQUtRLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtR3JvdXAsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEt2UG9wdXBDb21wb25lbnQgfSBmcm9tICcuLi9rdi1wb3B1cC9rdi1wb3B1cC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBY3Rpb25UeXBlIH0gZnJvbSAnLi4vLi4vZW51bXMvYWN0aW9uLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IERhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3JtRmllbGRDb25maWcgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2Zvcm0tZmllbGQuY29uZmlnJztcclxuaW1wb3J0IHsgRm9ybUZhY3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZmFjdG9yaWVzL2Zvcm0tZmFjdG9yeS5zZXJ2aWNlJztcclxuXHJcblxyXG5pbnRlcmZhY2UgQ3JlYXRlV2l0aE11bHRpcGxlSXRlbXNSZXF1ZXN0IHtcclxuICBjdXJyZW5jeTogc3RyaW5nO1xyXG4gIG9mZmVyX2lkOiBzdHJpbmc7XHJcbiAgaXRlbV9pZDogc3RyaW5nO1xyXG4gIHBvaW50X29mX3NhbGVfaWQ6IHN0cmluZztcclxuICBhbW91bnQ6IG51bWJlcjtcclxuICBhdmFpbGFiaWxpdHk6IG51bWJlcjtcclxuICBleHBpcmVfYXQ6IHN0cmluZztcclxuICBpc19leHRlcm5hbDogYm9vbGVhbjtcclxuICBhbGxvd19tdWx0aXBsZV9pdGVtczogYm9vbGVhbjtcclxuICBiYXNlX3ByaWNlOiBudW1iZXI7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWt2LWl0ZW0tY2FyZCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgS3ZQb3B1cENvbXBvbmVudCxcclxuICAgIERhdGVQaWNrZXJDb21wb25lbnQsXHJcblxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2t2LWl0ZW0tY2FyZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2t2LWl0ZW0tY2FyZC5jb21wb25lbnQuc2NzcycsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBLdkl0ZW1DYXJkQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBzaG91bGRTaG93RGF0ZXBpY2tlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG9mZmVySWQ6IHN0cmluZyA9IFwiXCI7XHJcbiAgQElucHV0KCkgc2hvd0Nvc3RQb3B1cDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGl0ZW1zU3BlY2lmaWNhdGlvbkZvcm06IEZvcm1BcnJheTxGb3JtR3JvdXA+ID0gbmV3IEZvcm1BcnJheTxGb3JtR3JvdXA+KFtdKTtcclxuXHJcbiAgQE91dHB1dCgpIG9uQ29udGludWUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpIG9uQ2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKSBvbkl0ZW1zUHJvY2Vzc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx7XHJcbiAgICBtdWx0aXBsZUl0ZW1zOiBDcmVhdGVXaXRoTXVsdGlwbGVJdGVtc1JlcXVlc3RbXTtcclxuICAgIHJlZ3VsYXJJdGVtczogYW55W107XHJcbiAgfT4oKTtcclxuXHJcbiAgcHVibGljIGFjdGlvblR5cGVFbnVtID0gQWN0aW9uVHlwZTtcclxuICBwdWJsaWMgZGVmYXVsdERhdGUgPSBuZXcgRGF0ZSgpO1xyXG5cclxuICBwYWdlU2l6ZTogbnVtYmVyID0gMjtcclxuICBjdXJyZW50UGFnZTogbnVtYmVyID0gMTtcclxuICBNYXRoID0gTWF0aDtcclxuICBzZWFyY2hUZXh0OiBzdHJpbmcgPSAnJztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1GYWN0b3J5OiBGb3JtRmFjdG9yeVNlcnZpY2UsXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLml0ZW1zU3BlY2lmaWNhdGlvbkZvcm0gPSBuZXcgRm9ybUFycmF5PEZvcm1Hcm91cD4oW10pO1xyXG5cclxuICB9XHJcblxyXG4gIGdldCBmaWx0ZXJlZERhdGFJdGVtcygpIHtcclxuICAgIHJldHVybiB0aGlzLml0ZW1zU3BlY2lmaWNhdGlvbkZvcm0uY29udHJvbHNcclxuICAgICAgLmZpbHRlcigoaXRlbUZvcm0pID0+XHJcbiAgICAgICAgaXRlbUZvcm0uZ2V0KCduYW1lJyk/LnZhbHVlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5zZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkpXHJcbiAgICAgIClcclxuICAgICAgLnNsaWNlKCh0aGlzLmN1cnJlbnRQYWdlIC0gMSkgKiB0aGlzLnBhZ2VTaXplLCB0aGlzLmN1cnJlbnRQYWdlICogdGhpcy5wYWdlU2l6ZSk7XHJcbiAgfVxyXG5cclxuICBhZGRJdGVtKGluZGV4OiBudW1iZXIsIGl0ZW1OYW1lPzogc3RyaW5nLCBpdGVtSXNFeHRlcm5hbD86IGJvb2xlYW4sIGl0ZW1JbWFnZT86IHN0cmluZywgYXZhaWxhYmlsaXR5PzogbnVtYmVyLCBpdGVtSWQ/OiBzdHJpbmcsIHBvc0lkPzogc3RyaW5nLCBpdGVtQmFzZVByaWNlPzogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBjb25zdCBpdGVtU3BlY0Zvcm1Db25maWc6IEZvcm1GaWVsZENvbmZpZ1tdID0gW1xyXG4gICAgICB7IG5hbWU6ICdhbW91bnQnLCBkZWZhdWx0VmFsdWU6IDAsIHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSB9LFxyXG4gICAgICB7IG5hbWU6ICdhdmFpbGFiaWxpdHknLCBkZWZhdWx0VmFsdWU6IDAsIHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSB9LFxyXG4gICAgICB7IG5hbWU6ICdjdXJyZW5jeScsIGRlZmF1bHRWYWx1ZTogJ0NPUCcsIHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSB9LFxyXG4gICAgICB7IG5hbWU6ICdleHBpcmVfYXQnLCBkZWZhdWx0VmFsdWU6IHRoaXMuZGVmYXVsdERhdGUsIHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSB9LFxyXG4gICAgICB7IG5hbWU6ICdvZmZlcl9pZCcsIGRlZmF1bHRWYWx1ZTogJycgfSxcclxuICAgICAgeyBuYW1lOiAnaXRlbV9pZCcsIGRlZmF1bHRWYWx1ZTogJycsIHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSB9LFxyXG4gICAgICB7IG5hbWU6ICduYW1lJywgZGVmYXVsdFZhbHVlOiAnJywgdmFsaWRhdG9yczogW10gfSxcclxuICAgICAgeyBuYW1lOiAnaXNfZXh0ZXJuYWwnLCBkZWZhdWx0VmFsdWU6IGZhbHNlLCB2YWxpZGF0b3JzOiBbXSB9LFxyXG4gICAgICB7IG5hbWU6ICdwb2ludF9vZl9zYWxlX2lkJywgZGVmYXVsdFZhbHVlOiAnJywgdmFsaWRhdG9yczogW1ZhbGlkYXRvcnMucmVxdWlyZWRdIH0sXHJcbiAgICAgIHsgbmFtZTogJ2ltYWdlX3VybCcsIGRlZmF1bHRWYWx1ZTogJycsIHZhbGlkYXRvcnM6IFtdIH0sXHJcbiAgICAgIHsgbmFtZTogJ2FsbG93X211bHRpcGxlX2l0ZW1zJywgZGVmYXVsdFZhbHVlOiBmYWxzZSwgdmFsaWRhdG9yczogW10gfSxcclxuICAgICAgeyBuYW1lOiAnYmFzZV9wcmljZScsIGRlZmF1bHRWYWx1ZTogaXRlbUJhc2VQcmljZSwgdmFsaWRhdG9yczogW10gfSxcclxuICAgIF07XHJcblxyXG4gICAgY29uc3QgbmV3SXRlbSA9IHRoaXMuZm9ybUZhY3RvcnkuY3JlYXRlRm9ybShpdGVtU3BlY0Zvcm1Db25maWcpO1xyXG4gICAgbmV3SXRlbS5nZXQoJ25hbWUnKT8uc2V0VmFsdWUoaXRlbU5hbWUpO1xyXG4gICAgbmV3SXRlbS5nZXQoJ2lzX2V4dGVybmFsJyk/LnNldFZhbHVlKGl0ZW1Jc0V4dGVybmFsID8/IGZhbHNlKTtcclxuICAgIG5ld0l0ZW0uZ2V0KCdwb2ludF9vZl9zYWxlX2lkJyk/LnNldFZhbHVlKHBvc0lkKTtcclxuICAgIG5ld0l0ZW0uZ2V0KCdpbWFnZV91cmwnKT8uc2V0VmFsdWUoaXRlbUltYWdlIHx8ICcnKTtcclxuICAgIG5ld0l0ZW0uZ2V0KCdhdmFpbGFiaWxpdHknKT8uc2V0VmFsdWUoYXZhaWxhYmlsaXR5IHx8IG51bGwpO1xyXG4gICAgbmV3SXRlbS5nZXQoJ2l0ZW1faWQnKT8uc2V0VmFsdWUoaXRlbUlkKTtcclxuICAgIGF2YWlsYWJpbGl0eSA/IG5ld0l0ZW0uZ2V0KCdhdmFpbGFiaWxpdHknKT8uZGlzYWJsZSgpIDogbmV3SXRlbS5nZXQoJ2F2YWlsYWJpbGl0eScpPy5lbmFibGUoKTtcclxuICAgIHRoaXMuaXRlbXNTcGVjaWZpY2F0aW9uRm9ybS5wdXNoKG5ld0l0ZW0pO1xyXG4gIH1cclxuXHJcbiAgcHJldmVudE5lZ2F0aXZlKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBjb25zdCBpbnZhbGlkS2V5cyA9IFsnLScsICdlJ107XHJcbiAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG5cclxuICAgIGlmIChpbnZhbGlkS2V5cy5pbmNsdWRlcyhldmVudC5rZXkpIHx8XHJcbiAgICAgIChldmVudC5rZXkgPT09ICcwJyAmJiBpbnB1dC52YWx1ZS5sZW5ndGggPT09IDApKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbklucHV0KGV2ZW50OiBFdmVudCwgaXRlbUZvcm06IEZvcm1Hcm91cCkge1xyXG4gICAgY29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIGNvbnN0IG51bWJlciA9IGlucHV0LnZhbHVlLnJlcGxhY2UoL1xcRC9nLCAnJyk7XHJcbiAgICBjb25zdCBmb3JtYXR0ZWQgPSB0aGlzLmZvcm1hdE51bWJlcihudW1iZXIpO1xyXG4gICAgaXRlbUZvcm0uZ2V0KCdhbW91bnQnKT8uc2V0VmFsdWUoZm9ybWF0dGVkLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgb25DYW5jZWxBY3Rpb24oKSB7XHJcbiAgICB0aGlzLm9uQ2FuY2VsLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIGZvcm1hdE51bWJlcih2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmICghdmFsdWUpIHJldHVybiAnJztcclxuICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKC9cXEIoPz0oXFxkezN9KSsoPyFcXGQpKS9nLCAnLicpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFsbFRpbWVzSGFzQ29zdCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLml0ZW1zU3BlY2lmaWNhdGlvbkZvcm0uaW52YWxpZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRUb3RhbEV4dGVybmFsQmFzZVByaWNlKCk6IG51bWJlciB7XHJcbiAgICBsZXQgdG90YWwgPSAwO1xyXG5cclxuICAgIHRoaXMuaXRlbXNTcGVjaWZpY2F0aW9uRm9ybS5jb250cm9scy5mb3JFYWNoKGl0ZW1Gb3JtID0+IHtcclxuICAgICAgY29uc3QgaXNFeHRlcm5hbCA9IGl0ZW1Gb3JtLmdldCgnaXNfZXh0ZXJuYWwnKT8udmFsdWU7XHJcblxyXG4gICAgICBpZiAoaXNFeHRlcm5hbCkge1xyXG4gICAgICAgIGNvbnN0IGJhc2VQcmljZSA9IGl0ZW1Gb3JtLmdldCgnYmFzZV9wcmljZScpPy52YWx1ZTtcclxuICAgICAgICBjb25zdCBhdmFpbGFiaWxpdHkgPSBpdGVtRm9ybS5nZXQoJ2F2YWlsYWJpbGl0eScpPy52YWx1ZTtcclxuXHJcbiAgICAgICAgaWYgKGJhc2VQcmljZSAmJiBhdmFpbGFiaWxpdHkpIHtcclxuICAgICAgICAgIHRvdGFsICs9IE51bWJlcihiYXNlUHJpY2UpICogTnVtYmVyKGF2YWlsYWJpbGl0eSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gdG90YWw7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd0V4dGVybmFsQmFzZVByaWNlV2FybmluZygpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHRvdGFsRXh0ZXJuYWwgPSB0aGlzLmdldFRvdGFsRXh0ZXJuYWxCYXNlUHJpY2UoKTtcclxuXHJcbiAgICBjb25zdCBoYXNFeHRlcm5hbFByb2R1Y3RzID0gdGhpcy5pdGVtc1NwZWNpZmljYXRpb25Gb3JtLmNvbnRyb2xzLnNvbWUoXHJcbiAgICAgIGl0ZW1Gb3JtID0+IGl0ZW1Gb3JtLmdldCgnaXNfZXh0ZXJuYWwnKT8udmFsdWUgPT09IHRydWVcclxuICAgICk7XHJcblxyXG4gICAgcmV0dXJuIGhhc0V4dGVybmFsUHJvZHVjdHMgJiYgdG90YWxFeHRlcm5hbCA+IDAgJiYgdG90YWxFeHRlcm5hbCA8IDEyOTAwO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNhblN1Ym1pdCgpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLml0ZW1zU3BlY2lmaWNhdGlvbkZvcm0uaW52YWxpZCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuICF0aGlzLnNob3dFeHRlcm5hbEJhc2VQcmljZVdhcm5pbmcoKTtcclxuICB9XHJcblxyXG4gIHRvdGFsUGFnZXMoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiBNYXRoLmNlaWwoXHJcbiAgICAgIHRoaXMuaXRlbXNTcGVjaWZpY2F0aW9uRm9ybS5jb250cm9scy5maWx0ZXIoKGl0ZW1Gb3JtKSA9PlxyXG4gICAgICAgIGl0ZW1Gb3JtLmdldCgnbmFtZScpPy52YWx1ZS50b0xvd2VyQ2FzZSgpXHJcbiAgICAgICkubGVuZ3RoIC8gdGhpcy5wYWdlU2l6ZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGNoYW5nZVBhZ2UoZGlyZWN0aW9uOiBudW1iZXIpIHtcclxuICAgIGNvbnN0IG5ld1BhZ2UgPSB0aGlzLmN1cnJlbnRQYWdlICsgZGlyZWN0aW9uO1xyXG4gICAgaWYgKG5ld1BhZ2UgPiAwICYmIG5ld1BhZ2UgPD0gdGhpcy50b3RhbFBhZ2VzKCkpIHtcclxuICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IG5ld1BhZ2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYXNJdGVtc0Fzc29jaWF0ZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pdGVtc1NwZWNpZmljYXRpb25Gb3JtLmxlbmd0aCA+IDA7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25TdWJtaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jYW5TdWJtaXQoKSkge1xyXG4gICAgICB0aGlzLm9uQ29udGludWUuZW1pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvY2Vzc0l0ZW1TcGVjaWZpY2F0aW9ucygpOiB2b2lkIHtcclxuICAgIHRoaXMuaXRlbXNTcGVjaWZpY2F0aW9uRm9ybS5jb250cm9scy5mb3JFYWNoKGl0ZW1Gb3JtID0+IHtcclxuICAgICAgaXRlbUZvcm0uZ2V0KCdvZmZlcl9pZCcpPy5zZXRWYWx1ZSh0aGlzLm9mZmVySWQpO1xyXG4gICAgfSk7XHJcbiAgICBpZiAodGhpcy5pdGVtc1NwZWNpZmljYXRpb25Gb3JtLnZhbGlkKSB7XHJcbiAgICAgIHRoaXMuc2hvd0Nvc3RQb3B1cCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLml0ZW1zU3BlY2lmaWNhdGlvbkZvcm0uY29udHJvbHMuZm9yRWFjaChjb250cm9sID0+IHtcclxuICAgICAgICBsZXQgaXRlbUFtb3VudCA9IGNvbnRyb2wuZ2V0KCdhbW91bnQnKT8udmFsdWU7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBpdGVtQW1vdW50ID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgaXRlbUFtb3VudCA9IGl0ZW1BbW91bnQucmVwbGFjZSgvXFwuL2csICcnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udHJvbC5nZXQoJ2Ftb3VudCcpPy5zZXRWYWx1ZShOdW1iZXIoaXRlbUFtb3VudCkpXHJcbiAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbXVsdGlwbGVJdGVtc1NwZWNzOiBDcmVhdGVXaXRoTXVsdGlwbGVJdGVtc1JlcXVlc3RbXSA9IFtdO1xyXG4gICAgY29uc3QgcmVndWxhckl0ZW1zU3BlY3M6IGFueVtdID0gW107XHJcblxyXG4gICAgdGhpcy5pdGVtc1NwZWNpZmljYXRpb25Gb3JtLmNvbnRyb2xzLmZvckVhY2goY29udHJvbCA9PiB7XHJcbiAgICAgIGNvbnN0IGFsbG93TXVsdGlwbGUgPSBjb250cm9sLmdldCgnYWxsb3dfbXVsdGlwbGVfaXRlbXMnKT8udmFsdWU7XHJcbiAgICAgIGNvbnRyb2wuZ2V0KCdhdmFpbGFiaWxpdHknKT8uZW5hYmxlKCk7XHJcbiAgICAgIGNvbnN0IGl0ZW1TcGVjID0gY29udHJvbC52YWx1ZTtcclxuXHJcbiAgICAgIGlmIChhbGxvd011bHRpcGxlKSB7XHJcbiAgICAgICAgY29uc3QgbXVsdGlwbGVJdGVtU3BlYzogQ3JlYXRlV2l0aE11bHRpcGxlSXRlbXNSZXF1ZXN0ID0ge1xyXG4gICAgICAgICAgY3VycmVuY3k6IGl0ZW1TcGVjLmN1cnJlbmN5LFxyXG4gICAgICAgICAgb2ZmZXJfaWQ6IGl0ZW1TcGVjLm9mZmVyX2lkLFxyXG4gICAgICAgICAgaXRlbV9pZDogaXRlbVNwZWMuaXRlbV9pZCxcclxuICAgICAgICAgIHBvaW50X29mX3NhbGVfaWQ6IGl0ZW1TcGVjLnBvaW50X29mX3NhbGVfaWQsXHJcbiAgICAgICAgICBhbW91bnQ6IGl0ZW1TcGVjLmFtb3VudCxcclxuICAgICAgICAgIGF2YWlsYWJpbGl0eTogaXRlbVNwZWMuYXZhaWxhYmlsaXR5LFxyXG4gICAgICAgICAgZXhwaXJlX2F0OiBpdGVtU3BlYy5leHBpcmVfYXQsXHJcbiAgICAgICAgICBpc19leHRlcm5hbDogaXRlbVNwZWMuaXNfZXh0ZXJuYWwsXHJcbiAgICAgICAgICBhbGxvd19tdWx0aXBsZV9pdGVtczogdHJ1ZSxcclxuICAgICAgICAgIGJhc2VfcHJpY2U6IGl0ZW1TcGVjLmJhc2VfcHJpY2VcclxuICAgICAgICB9O1xyXG4gICAgICAgIG11bHRpcGxlSXRlbXNTcGVjcy5wdXNoKG11bHRpcGxlSXRlbVNwZWMpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJlZ3VsYXJJdGVtc1NwZWNzLnB1c2goaXRlbVNwZWMpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLm9uSXRlbXNQcm9jZXNzZWQuZW1pdCh7XHJcbiAgICAgIG11bHRpcGxlSXRlbXM6IG11bHRpcGxlSXRlbXNTcGVjcyxcclxuICAgICAgcmVndWxhckl0ZW1zOiByZWd1bGFySXRlbXNTcGVjcyxcclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBvbkRhdGVQaWNrZWQoZGF0ZTogYW55LCBpdGVtRm9ybTogRm9ybUdyb3VwKSB7XHJcbiAgICBpdGVtRm9ybS5nZXQoJ2V4cGlyZV9hdCcpPy5zZXRWYWx1ZShkYXRlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZW1vdmVJdGVtKGl0ZW1JZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuaXRlbXNTcGVjaWZpY2F0aW9uRm9ybS5jb250cm9scy5maW5kSW5kZXgoY29udHJvbCA9PlxyXG4gICAgICBjb250cm9sLmdldCgnaXRlbV9pZCcpPy52YWx1ZSA9PT0gaXRlbUlkXHJcbiAgICApO1xyXG5cclxuICAgIGlmIChpbmRleCAhPT0gLTEpIHtcclxuICAgICAgdGhpcy5pdGVtc1NwZWNpZmljYXRpb25Gb3JtLnJlbW92ZUF0KGluZGV4KTtcclxuICAgIH1cclxuICB9XHJcbn0iLCI8bGliLWt2LXBvcHVwICpuZ0lmPVwic2hvd0Nvc3RQb3B1cFwiIFt0aXRsZV09XCInU2V0IHByaWNpbmcgYW5kIGF2YWlsYWJpbGl0eSBmb3IgeW91ciBpdGVtcydcIiBbZGVzY3JpcHRpb25dPVwiJ0NvbmZpZ3VyZSB0aGUgY29zdCwgYXZhaWxhYmlsaXR5LCBhbmQgZXhwaXJhdGlvbiBkZXRhaWxzIGZvciBlYWNoIHNlbGVjdGVkIGl0ZW0gaW4geW91ciBvZmZlci4nXCIgW2lzQ3VzdG9tVGVtcGxhdGVdPVwidHJ1ZVwiIFthY3Rpb25UeXBlXT1cImFjdGlvblR5cGVFbnVtLkluZm9cIlxyXG4gICAgKG9uQWNjZXB0KT1cInNob3dDb3N0UG9wdXAgPSBmYWxzZVwiIChvbkNsb3NlKT1cInNob3dDb3N0UG9wdXAgPSBmYWxzZVwiPlxyXG5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiYmFzZS1wcmljZS13YXJuaW5nXCIgKm5nSWY9XCJzaG93RXh0ZXJuYWxCYXNlUHJpY2VXYXJuaW5nKClcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCI+d2FybmluZzwvc3Bhbj5cclxuICAgICAgICA8c3Bhbj5FbCB0b3RhbCBkZSBsb3MgcHJvZHVjdG9zIGV4dGVybm9zIChQcmVjaW8gZXh0ZXJubyDDlyBkaXNwb25pYmlsaWRhZCkgZGViZSBzZXIgYWwgbWVub3MgJDEyLjkwMC4gVG90YWwgYWN0dWFsOiAke3sgZ2V0VG90YWxFeHRlcm5hbEJhc2VQcmljZSgpLnRvTG9jYWxlU3RyaW5nKCdlcy1DTycpIH19PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cIml0ZW1zLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW1Gb3JtIG9mIGZpbHRlcmVkRGF0YUl0ZW1zOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWluZm9cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyAqbmdJZj1cIml0ZW1Gb3JtLmdldCgnaW1hZ2VfdXJsJyk/LnZhbHVlXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJpdGVtRm9ybS5nZXQoJ2ltYWdlX3VybCcpPy52YWx1ZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthbHRdPVwiaXRlbUZvcm0uZ2V0KCduYW1lJyk/LnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIml0ZW0taW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tZGV0YWlsc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwiaXRlbS1uYW1lXCI+e3sgaXRlbUZvcm0uZ2V0KCduYW1lJyk/LnZhbHVlIH19PC9oND5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaXRlbS10eXBlXCIgKm5nSWY9XCJpdGVtRm9ybS5nZXQoJ2lzX2V4dGVybmFsJyk/LnZhbHVlXCI+RXh0ZXJuYWwgSXRlbTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJpdGVtRm9ybVwiIGNsYXNzPVwiaXRlbS1mb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tc2VjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDUgY2xhc3M9XCJzZWN0aW9uLXRpdGxlXCI+UHJpY2luZyAmIEF2YWlsYWJpbGl0eTwvaDU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JpZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImFtb3VudC17e2l9fVwiPkNvc3QgKjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvc3QtaW5wdXQtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImFtb3VudC17e2l9fVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImFtb3VudFwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciBjb3N0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5wdXQpPVwib25JbnB1dCgkZXZlbnQsIGl0ZW1Gb3JtKVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJjdXJyZW5jeS1zZWxlY3RcIiBmb3JtQ29udHJvbE5hbWU9XCJjdXJyZW5jeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIkNPUFwiPkNPUDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiaXRlbUZvcm0uZ2V0KCdhbW91bnQnKT8uaW52YWxpZCAmJiBpdGVtRm9ybS5nZXQoJ2Ftb3VudCcpPy50b3VjaGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvc3QgaXMgcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiYXZhaWxhYmlsaXR5LXt7aX19XCI+QXZhaWxhYmlsaXR5ICo8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImF2YWlsYWJpbGl0eS17e2l9fVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYXZhaWxhYmlsaXR5XCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW49XCIxXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkF2YWlsYWJsZSBxdWFudGl0eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJwcmV2ZW50TmVnYXRpdmUoJGV2ZW50KVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cIml0ZW1Gb3JtLmdldCgnYXZhaWxhYmlsaXR5Jyk/LmludmFsaWQgJiYgaXRlbUZvcm0uZ2V0KCdhdmFpbGFiaWxpdHknKT8udG91Y2hlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdmFpbGFiaWxpdHkgaXMgcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tc2VjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDUgY2xhc3M9XCJzZWN0aW9uLXRpdGxlXCI+TXVsdGlwbGUgSXRlbXMgU2V0dGluZ3M8L2g1PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvZ2dsZS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInRvZ2dsZS1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImFsbG93X211bHRpcGxlX2l0ZW1zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidG9nZ2xlLWlucHV0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b2dnbGUtc2xpZGVyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidG9nZ2xlLXRleHRcIj5BbGxvdyBtdWx0aXBsZSBpdGVtcyBwZXIgdXNlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRvZ2dsZS1kZXNjcmlwdGlvblwiPldoZW4gZW5hYmxlZCwgdXNlcnMgY2FuIGJpZCBvbiBtdWx0aXBsZSBxdWFudGl0aWVzIG9mIHRoaXMgaXRlbTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tc2VjdGlvblwiICpuZ0lmPVwic2hvdWxkU2hvd0RhdGVwaWNrZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGg1IGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPkV4cGlyYXRpb248L2g1PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJleHBpcmVBdC17e2l9fVwiPkV4cGlyZXMgb248L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1rdi1kYXRlLXBpY2tlciBbaW5pdGlhbERhdGVdPVwiZGVmYXVsdERhdGVcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dEZXRhaWxzXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZVNlbGVjdGVkKT1cIm9uRGF0ZVBpY2tlZCgkZXZlbnQsIGl0ZW1Gb3JtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saWIta3YtZGF0ZS1waWNrZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJwYWdpbmF0aW9uLWNvbnRhaW5lclwiICpuZ0lmPVwidG90YWxQYWdlcygpID4gMVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwYWdpbmF0aW9uLWluZm9cIj5cclxuICAgICAgICAgICAgPHNwYW4+U2hvd2luZyB7eyAoY3VycmVudFBhZ2UgLSAxKSAqIHBhZ2VTaXplICsgMSB9fSAtIHt7IE1hdGgubWluKGN1cnJlbnRQYWdlICogcGFnZVNpemUsIGl0ZW1zU3BlY2lmaWNhdGlvbkZvcm0ubGVuZ3RoKSB9fSBvZiB7eyBpdGVtc1NwZWNpZmljYXRpb25Gb3JtLmxlbmd0aCB9fSBpdGVtczwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicGFnaW5hdGlvbi1jb250cm9sc1wiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwicGFnaW5hdGlvbi1idG5cIiBcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlUGFnZSgtMSlcIiBcclxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UgPT09IDFcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJjdXJyZW50UGFnZSA9PT0gMVwiPlxyXG4gICAgICAgICAgICAgICAg4oaQIFByZXZpb3VzXHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBhZ2UtaW5kaWNhdG9yXCI+e3sgY3VycmVudFBhZ2UgfX0gLyB7eyB0b3RhbFBhZ2VzKCkgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJwYWdpbmF0aW9uLWJ0blwiIFxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjaGFuZ2VQYWdlKDEpXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImN1cnJlbnRQYWdlID09PSB0b3RhbFBhZ2VzKClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJjdXJyZW50UGFnZSA9PT0gdG90YWxQYWdlcygpXCI+XHJcbiAgICAgICAgICAgICAgICBOZXh0IOKGklxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1mb290ZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyLWluZm9cIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpdGVtcy1jb3VudFwiPnt7IGl0ZW1zU3BlY2lmaWNhdGlvbkZvcm0ubGVuZ3RoIH19IGl0ZW0ocykgY29uZmlndXJlZDwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyLWFjdGlvbnNcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidXR0b24tLWNhbmNlbFwiIChjbGljayk9XCJvbkNhbmNlbEFjdGlvbigpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnV0dG9uLS1wcmltYXJ5LW1pblwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFjYW5TdWJtaXQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU3VibWl0KClcIj5cclxuICAgICAgICAgICAgICAgIENvbnRpbnVlXHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvbGliLWt2LXBvcHVwPiJdfQ==