ngx-sp-infra 3.3.0-next → 3.3.1
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.
|
@@ -222,4 +222,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
222
222
|
}], selectionChange: [{
|
|
223
223
|
type: Output
|
|
224
224
|
}] } });
|
|
225
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNwLWluZnJhL3NyYy9saWIvd2lkZ2V0cy90YWJsZS90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi93aWRnZXRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0MsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7Ozs7OztBQUUzSTs7Ozs7Ozs7Ozs7O0VBWUU7QUFNRixNQUFNLE9BQU8sY0FBYztJQTBCekI7bUJBQ2U7SUFDZixJQUNXLFdBQVcsS0FBd0IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUN6RSxJQUFXLFdBQVcsQ0FBQyxLQUF3QixJQUFJLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztJQTJCL0UsMEhBQTBIO0lBQzFILElBQ1csWUFBWSxLQUFhLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDaEUsSUFBVyxZQUFZLENBQUMsS0FBYTtRQUNuQyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssSUFBSSxvQkFBb0IsQ0FBQztJQUNyRCxDQUFDO0lBYUQsOEJBQThCO0lBQy9CLElBQVcsSUFBSSxLQUFhLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFDdkQsSUFBVyxJQUFJLENBQUMsS0FBYSxJQUFJLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUU1RCxtREFBbUQ7SUFDbkQsSUFBVyxZQUFZLEtBQWEsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLElBQVcsWUFB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QkFBbEMsTUFBTTtnQkFHVSxVQUFVO3NCQUExQixNQUFNO2dCQUdVLGVBQWU7c0JBQS9CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKipcclxuICogQ29tcG9uZW50ZSBkZSBUYWJlbGEgQ3VzdG9taXrDoXZlbFxyXG4gKlxyXG4gKiBPIGBUYWJsZUNvbXBvbmVudGAgw6kgdW0gY29tcG9uZW50ZSBBbmd1bGFyIHByb2pldGFkbyBwYXJhIGV4aWJpciB1bWEgdGFiZWxhIGN1c3RvbWl6w6F2ZWxcclxuICogY29tIHN1cG9ydGUgYSBwYWdpbmHDp8Ojby4gRWxlIHBlcm1pdGUgYSBjb25maWd1cmHDp8OjbyBkZSBjYWJlw6dhbGhvcyBkZSBjb2x1bmFzLCBwb3NpY2lvbmFtZW50b1xyXG4gKiBkYSBwYWdpbmHDp8OjbyBlIG9ww6fDtWVzIGRlIGl0ZW5zIHBvciBww6FnaW5hLiBPIGNvbXBvbmVudGUgw6kgZmxleMOtdmVsLCB1dGlsaXphbmRvIGNsYXNzZXMgQm9vdHN0cmFwXHJcbiAqIHBhcmEgYWp1c3RhciBvIGxheW91dCBkYXMgY29sdW5hcyBlIGVtaXRpbmRvIGV2ZW50b3MgcGFyYSBxdWUgbyBjb21wb25lbnRlIHBhaSBwb3NzYSByZWFnaXIgYVxyXG4gKiBtdWRhbsOnYXMgbmEgcMOhZ2luYSBvdSBubyBuw7ptZXJvIGRlIGl0ZW5zIGV4aWJpZG9zLlxyXG4gKlxyXG4gKiBAc2VsZWN0b3IgbGliLXRhYmxlXHJcbiAqIEB0ZW1wbGF0ZVVybCAuL3RhYmxlLmNvbXBvbmVudC5odG1sXHJcbiAqIEBzdHlsZVVybCAuL3RhYmxlLmNvbXBvbmVudC5zY3NzXHJcbiovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXRhYmxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xyXG5cclxuICAvLyAjcmVnaW9uID09PT09PT09PT0+IFBST1BSSUVEQURFUyA8PT09PT09PT09PVxyXG5cclxuICAvLyAjcmVnaW9uIFBSSVZBVEVcclxuICBwcml2YXRlIF9wYWdpbmF0aW9uSUQ6IHN0cmluZztcclxuICBwcml2YXRlIF9yZWNvcmRzTGlzdDogYW55W10gfCB1bmRlZmluZWQ7XHJcblxyXG4gIHByaXZhdGUgX2N1cnJlbnRQYWdlOiBudW1iZXIgPSAxO1xyXG4gIHByaXZhdGUgX2N1cnJlbnRJdGVtc1BlclBhZ2U6IG51bWJlciA9IDA7XHJcbiAgLy8gI2VuZHJlZ2lvbiBQUklWQVRFXHJcblxyXG4gIC8vICNyZWdpb24gUFVCTElDXHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3Rpb246IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcclxuXHJcbiAgLyoqIERldGVybWluYSBzZSBoYXZlcsOhIHVtYSBjb2x1bmEgaW5pY2lhbCBwYXJhIHNlbGXDp8OjbyBkZSByZWdpc3Ryb3MgbmEgdGFiZWxhLiAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB1c2VTZWxlY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqIERldGVybWluYSBzZSBoYXZlcsOhIHVtYSBjb2x1bmEgaW5pY2lhbCBwYXJhIHNlbGXDp8OjbyBkZSByZWdpc3Ryb3MgbmEgdGFiZWxhLiAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3RlZENvdW50PzogbnVtYmVyO1xyXG5cclxuICAvKiogRGV0ZXJtaW5hIHNlIGEgdGFiZWxhIGRldmUgdXNhciBwYWdpbmHDp8Ojby5cclxuICAgKiBAZGVmYXVsdCB0cnVlICovXHJcbiAgQElucHV0KCkgcHVibGljIHVzZVBhZ2luYXRpb246IGJvb2xlYW4gPSB0cnVlO1xyXG4gIFxyXG4gIC8qKiBMaXN0YSBkZSByZWdpc3Ryb3MgYSBzZXJlbSBleGliaWRvcyBuYSB0YWJlbGEuXHJcbiAgICogQHJlcXVpcmVkICovXHJcbiAgQElucHV0KHsgYWxpYXM6ICdsaXN0JywgcmVxdWlyZWQ6IHRydWUgfSlcclxuICBwdWJsaWMgZ2V0IHJlY29yZHNMaXN0KCk6IGFueVtdIHwgdW5kZWZpbmVkIHsgcmV0dXJuIHRoaXMuX3JlY29yZHNMaXN0OyB9XHJcbiAgcHVibGljIHNldCByZWNvcmRzTGlzdCh2YWx1ZTogYW55W10gfCB1bmRlZmluZWQpIHsgdGhpcy5fcmVjb3Jkc0xpc3QgPSB2YWx1ZTsgfVxyXG5cclxuICAvKiogT3DDp8O1ZXMgZGUgY29udGFnZW0gZGUgaXRlbnMgcG9yIHDDoWdpbmEgZGlzcG9uw612ZWlzIHBhcmEgbyB1c3XDoXJpby5cclxuICAgKiBAcmVxdWlyZWQgKi9cclxuICBASW5wdXQoJ2NvdW50cycpIHB1YmxpYyBjb3VudE9wdGlvbnM6IG51bWJlcltdO1xyXG5cclxuICAvKiogUG9zaWNpb25hbWVudG8gZG9zIGNvbnRyb2xlcyBkZSBwYWdpbmHDp8Ojby5cclxuICAgKiBAZGVmYXVsdCAnZW5kJyAqL1xyXG4gIEBJbnB1dCgncGxhY2VtZW50JykgcHVibGljIHBhZ2luYXRpb25QbGFjZW1lbnQ6ICdzdGFydCcgfCAnY2VudGVyJyB8ICdlbmQnIHwgJ2JldHdlZW4nID0gJ2VuZCc7XHJcblxyXG4gIC8qKiBMaXN0YSBkZSBjYWJlw6dhbGhvcyBwYXJhIGFzIGNvbHVuYXMgZGEgdGFiZWxhLCBpbmNsdWluZG8gbyBub21lLCBhIGxhcmd1cmEgZGEgY29sdW5hIGUgY2xhc3NlcyBjdXN0b21pemFkYXMuXHJcbiAgICogQHJlcXVpcmVkICovXHJcbiAgQElucHV0KHsgYWxpYXM6ICdoZWFkZXJzJywgcmVxdWlyZWQ6IHRydWUgfSkgcHVibGljIGhlYWRlcnNMaXN0OiB7XHJcbiAgICBuYW1lOiBzdHJpbmcsXHJcbiAgICBjb2w/OiBudW1iZXIsXHJcbiAgICB3aWR0aENsYXNzPzogc3RyaW5nLFxyXG4gICAgY3VzdG9tQ2xhc3Nlcz86IHN0cmluZyxcclxuICAgIG9yZGVyQ29sdW1uPzogc3RyaW5nXHJcbiAgfVtdO1xyXG5cclxuICAvKiogTWVuc2FnZW0gY3VzdG9taXphZGEgcGFyYSBsaXN0YSB2YXppYSAqL1xyXG4gIEBJbnB1dCgnZW1wdHlMaXN0TWVzc2FnZScpIHB1YmxpYyBlbXB0eUxpc3RNZXNzYWdlPzogc3RyaW5nO1xyXG5cclxuICAvKiogSW5mb3JtYSBzZSBvIGNvdW50ZXIgZGUgcmVnaXN0cm9zIGRldmUgYXBhcmVjZXIgb3UgbsOjby5cclxuICAgKiBAZGVmYXVsdCB0cnVlICovXHJcbiAgQElucHV0KCdzaG93Q291bnRlcicpIHB1YmxpYyBzaG93Q291bnRlcjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIC8qKiBJbmZvcm1hIHVtIElEIHBhcmEgYSBwYWdpbmHDp8OjbyBkYSB0YWJlbGEgZXNwZWPDrWZpY2EuIERldmUgc2VyIHV0aWxpemFkYSBlbSBjYXNvIGRlIG3Dumx0aXBsYXMgdGFiZWxhcyBuYSBtZXNtYSB0ZWxhLiAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCBwYWdpbmF0aW9uSUQoKTogc3RyaW5nIHsgcmV0dXJuIHRoaXMuX3BhZ2luYXRpb25JRDsgfVxyXG4gIHB1YmxpYyBzZXQgcGFnaW5hdGlvbklEKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3BhZ2luYXRpb25JRCA9IHZhbHVlIHx8ICdsaWJUYWJsZVBhZ2luYXRpb24nO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKiBFdmVudG8gZW1pdGlkbyBxdWFuZG8gbyBuw7ptZXJvIGRlIGl0ZW5zIHBvciBww6FnaW5hIMOpIGFsdGVyYWRvLiAqL1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgaXRlbXNQZXJQYWdlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG5cclxuICAvKiogRXZlbnRvIGVtaXRpZG8gcXVhbmRvIGEgcMOhZ2luYSDDqSBhbHRlcmFkYS4gKi9cclxuICBAT3V0cHV0KCkgcHVibGljIHBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcblxyXG4gIC8qKiBFdmVudG8gZW1pdGlkbyBxdWFuZG8gbyBjaGVja2JveCBkZSBzZWxlw6fDo28gc2UgYWx0ZXJhci4gKi9cclxuICBAT3V0cHV0KCkgcHVibGljIHNlbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuXHJcbiAgLyoqIFDDoWdpbmEgYXR1YWwgZGEgdGFiZWxhLiAqL1xyXG5cdHB1YmxpYyBnZXQgcGFnZSgpOiBudW1iZXIgeyByZXR1cm4gdGhpcy5fY3VycmVudFBhZ2U7IH1cclxuXHRwdWJsaWMgc2V0IHBhZ2UodmFsdWU6IG51bWJlcikgeyB0aGlzLl9jdXJyZW50UGFnZSA9IHZhbHVlOyB9XHJcblxyXG4gIC8qKiBOw7ptZXJvIGRlIGl0ZW5zIGEgc2VyZW0gZXhpYmlkb3MgcG9yIHDDoWdpbmEuICovXHJcbiAgcHVibGljIGdldCBpdGVtc1BlclBhZ2UoKTogbnVtYmVyIHsgcmV0dXJuIHRoaXMuX2N1cnJlbnRJdGVtc1BlclBhZ2U7IH1cclxuXHRwdWJsaWMgc2V0IGl0ZW1zUGVyUGFnZSh2YWx1ZTogbnVtYmVyKSB7IHRoaXMuX2N1cnJlbnRJdGVtc1BlclBhZ2UgPSB2YWx1ZTsgfVxyXG5cclxuXHJcbiAgcHVibGljIGdldCBmaXJzdEl0ZW1PZlBhZ2UoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiAodGhpcy5wYWdlIC0gMSkgKiB0aGlzLml0ZW1zUGVyUGFnZSArIDE7XHJcbiAgfVxyXG4gIHB1YmxpYyBnZXQgbGFzdEl0ZW1PZlBhZ2UoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiBNYXRoLm1pbih0aGlzLnBhZ2UgKiB0aGlzLml0ZW1zUGVyUGFnZSwgdGhpcy5yZWNvcmRzTGlzdD8ubGVuZ3RoID8/IDApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpdGVtc0Rpc3BsYXlUZXh0KCk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5yZWNvcmRzTGlzdCAmJiB0aGlzLnJlY29yZHNMaXN0Lmxlbmd0aCA9PT0gMCkgeyByZXR1cm4gYEV4aWJpbmRvICR7dGhpcy5yZWNvcmRzTGlzdD8ubGVuZ3RoID8/IDB9IHJlZ2lzdHJvc2A7IH1cclxuICAgIHJldHVybiBgRXhpYmluZG8gJHsgdGhpcy5jb3VudE9wdGlvbnMgPyB0aGlzLmZpcnN0SXRlbU9mUGFnZStcIi1cIit0aGlzLmxhc3RJdGVtT2ZQYWdlICsgXCIgZGVcIiA6IFwiXCIgfSAke3RoaXMucmVjb3Jkc0xpc3Q/Lmxlbmd0aCA/PyAwfSByZWdpc3Ryb3NgO1xyXG4gIH1cclxuXHJcbiAgXHJcbiAgcHVibGljIGhlYWRlcnNVc2VPbGRXaWR0aD86IGJvb2xlYW47XHJcbiAgLy8gI2VuZHJlZ2lvbiBQVUJMSUNcclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiA9PT09PT09PT09PiBQUk9QUklFREFERVMgPD09PT09PT09PT1cclxuXHJcblxyXG4gIC8vICNyZWdpb24gPT09PT09PT09PT4gSU5JQ0lBTElaQcOHw4NPIDw9PT09PT09PT09XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7IH1cclxuXHJcbiAgLyoqIEluaWNpYWxpemEgbyBjb21wb25lbnRlIGUgZGVmaW5lIG8gbsO6bWVybyBpbmljaWFsIGRlIGl0ZW5zIHBvciBww6FnaW5hLiAqL1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy51cGRhdGVDb3VudGVySW5mbygpO1xyXG4gICAgdGhpcy52YWxpZGF0ZUhlYWRlcnMoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTsgIC8vIEZvcsOnYXIgdW1hIG5vdmEgZGV0ZWPDp8OjbyBhcMOzcyBhIHJlbmRlcml6YcOnw6NvXHJcbiAgfVxyXG5cclxuICAvKiogTW9uaXRvcmEgYXMgbXVkYW7Dp2FzIG5hcyBlbnRyYWRhcyBkbyBjb21wb25lbnRlIGUgcmVhbGl6YSBhanVzdGVzLCBjb21vIHJlc2V0YXIgYSBwYWdpbmHDp8OjbyBvdSB2YWxpZGFyIG8gbGF5b3V0IGRhcyBjb2x1bmFzLlxyXG4gICAqIEBwYXJhbSBjaGFuZ2VzIE9iamV0byBxdWUgY29udMOpbSBhcyBtdWRhbsOnYXMgbmFzIGVudHJhZGFzIGRvIGNvbXBvbmVudGUuICovXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ3JlY29yZHNMaXN0J10gJiYgY2hhbmdlc1sncmVjb3Jkc0xpc3QnXS5jdXJyZW50VmFsdWUpIHtcclxuICAgICAgdGhpcy5yZXNldFBhZ2luYXRpb24odGhpcy5yZWNvcmRzTGlzdCA/PyBbXSk7XHJcbiAgICAgIHRoaXMudXBkYXRlQ291bnRlckluZm8oKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY2hhbmdlc1snaGVhZGVyc0xpc3QnXSkgeyB0aGlzLnZhbGlkYXRlSGVhZGVycygpOyB9XHJcbiAgfVxyXG4gIC8vICNlbmRyZWdpb24gPT09PT09PT09PT4gSU5JQ0lBTElaQcOHw4NPIDw9PT09PT09PT09XHJcblxyXG5cclxuICAvLyAjcmVnaW9uID09PT09PT09PT0+IFVUSUxJVMOBUklPUyA8PT09PT09PT09PVxyXG4gIHByaXZhdGUgdmFsaWRhdGVIZWFkZXJzKCk6IHZvaWQge1xyXG4gICAgbGV0IGhlYWRlcnNVc2VPbGRXaWR0aDogYm9vbGVhbiA9IHRoaXMuaGVhZGVyc0xpc3QuZXZlcnkoaGVhZGVyID0+IGhlYWRlci5jb2wgJiYgaGVhZGVyLmNvbCAhPSB1bmRlZmluZWQpO1xyXG4gICAgXHJcbiAgICBsZXQgaGVhZGVyc1VzZUNvbDogYm9vbGVhbiA9IHRoaXMuaGVhZGVyc0xpc3QuZXZlcnkoaGVhZGVyID0+IGhlYWRlci53aWR0aENsYXNzICYmIGhlYWRlci53aWR0aENsYXNzLmluY2x1ZGVzKCdjb2wtJykpO1xyXG4gICAgbGV0IGhlYWRlcnNVc2VQZXJjZW50OiBib29sZWFuID0gdGhpcy5oZWFkZXJzTGlzdC5ldmVyeShoZWFkZXIgPT4gaGVhZGVyLndpZHRoQ2xhc3MgJiYgaGVhZGVyLndpZHRoQ2xhc3MuaW5jbHVkZXMoJ3ctJykpO1xyXG5cclxuICAgIGlmIChoZWFkZXJzVXNlT2xkV2lkdGgpIHsgdGhpcy5oZWFkZXJzVXNlT2xkV2lkdGggPSB0cnVlOyB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5oZWFkZXJzVXNlT2xkV2lkdGggPSBmYWxzZTtcclxuXHJcbiAgICAgIGlmICghaGVhZGVyc1VzZUNvbCAmJiAhaGVhZGVyc1VzZVBlcmNlbnQpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKFwiQSBsYXJndXJhIGRhcyBjb2x1bmFzIGVzdMOhIGVtIHVtIGZvcm1hdG8gaW52w6FsaWRvLiBDZXJ0aWZpcXVlLXNlIHF1ZSB0b2RhcyBlbGFzIHV0aWxpemFtIGFwZW5hcyAnY29sLScgb3UgJ3ctJ1wiKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVDb3VudGVySW5mbygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnJlY29yZHNMaXN0ICYmIHRoaXMuc2hvd0NvdW50ZXIgJiYgdGhpcy51c2VQYWdpbmF0aW9uKSB7XHJcbiAgICAgIHRoaXMuaXRlbXNQZXJQYWdlID0gdGhpcy5jb3VudE9wdGlvbnMgPyB0aGlzLmNvdW50T3B0aW9uc1swXSA6IHRoaXMucmVjb3Jkc0xpc3QubGVuZ3RoO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoIXRoaXMucmVjb3Jkc0xpc3QgJiYgdGhpcy5zaG93Q291bnRlciAmJiB0aGlzLnVzZVBhZ2luYXRpb24pIHtcclxuICAgICAgdGhpcy5pdGVtc1BlclBhZ2UgPSAxO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIC8qKiBNb2RpZmljYSBhIHF1YW50aWRhZGUgZGUgaXRlbnMgYSBzZXIgbW9zdHJhZGEgbmEgbGlzdGEuXHJcbiAgICogQHBhcmFtIGV2ZW50IHBhcsOibWV0cm8gZGUgZXZlbnRvIHF1ZSBpcsOhIHNlbGVjaW9uYXIgYSBub3ZhIHF1YW50aWRhZGUuICovXHJcbiAgcHVibGljIG9uU2VsZWN0Q2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuaXRlbXNQZXJQYWdlID0gcGFyc2VJbnQoZXZlbnQudGFyZ2V0LnZhbHVlLCAxMCk7XHJcbiAgICB0aGlzLnBhZ2UgPSAxO1xyXG4gICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQodGhpcy5wYWdlKTtcclxuICAgIHRoaXMuaXRlbXNQZXJQYWdlQ2hhbmdlLmVtaXQodGhpcy5pdGVtc1BlclBhZ2UpO1xyXG4gIH1cclxuXHJcbiAgLyoqIFJlc2V0YSBhIHBhZ2luYcOnw6NvIGRhIGxpc3RhZ2VtIGNvbSBiYXNlIG5vIG7Dum1lcm8gYXR1YWwgZGUgcmVnaXN0cm9zLlxyXG4gICAqIEBwYXJhbSBsaXN0IExpc3RhIGRlIHJlZ2lzdHJvcyBwYXJhIHJlc2V0YXIgYSBwYWdpbmHDp8Ojby4gKi9cclxuICBwdWJsaWMgcmVzZXRQYWdpbmF0aW9uKGxpc3Q6IGFueVtdKTogdm9pZCB7XHJcbiAgICBjb25zdCBzdGFydEluZGV4ID0gKHRoaXMucGFnZSAtIDEpICogdGhpcy5pdGVtc1BlclBhZ2U7XHJcbiAgICBpZiAobGlzdC5sZW5ndGggPD0gc3RhcnRJbmRleCkgdGhpcy5wYWdlID0gMTtcclxuICB9XHJcblxyXG5cdC8vI3JlZ2lvbiBPcmRlcmluZywgU29ydGluZyBvdSBhcGVuYXMgT3JkZW5hw6fDo29cclxuXHJcblx0LyoqIE3DqXRvZG8gcXVlIGZheiBhIG9yZGVuYcOnw6NvIGRvcyBjb250cmF0b3MgbmEgdGVsYSBkZSBsaXN0YWdlbSwgZW0gY2FkYSB1bWEgZGFzIGPDqWx1bGFzIGRvIGNhYmXDp2FsaG8gZGEgdGFiZWxhLCBvbmRlIGNhZGEgdW0gIFxyXG5cdCAqICBkb3MgZWxlbWVudG9zIDx0aD4gcmVwcmVzZW50YSB1bWEgY29sdW5hLCBkZSBhY29yZG8gY29tIGEgbGlzdGEgZGUgY29udHJhdG9zIHF1ZSByZXRvcm5hIGRvIGJhY2tlbmQuICovXHJcblx0Ly8gT2JqZXRvIHBhcmEgYXJtYXplbmFyIGEgZGlyZcOnw6NvIGRlIG9yZGVuYcOnw6NvIGRlIGNhZGEgY29sdW5hXHJcblx0cHVibGljIHNvcnREaXJlY3Rpb246IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcclxuXHJcblx0Ly8gQ29sdW5hIGF0dWFsbWVudGUgc2VsZWNpb25hZGEgcGFyYSBvcmRlbmHDp8Ojb1xyXG5cdHB1YmxpYyBjdXJyZW50U29ydENvbHVtbjogc3RyaW5nID0gJyc7XHJcblxyXG5cdC8vIEZ1bsOnw6NvIGNoYW1hZGEgcXVhbmRvIG9jb3JyZSB1bWEgbXVkYW7Dp2EgbmEgb3JkZW5hw6fDo29cclxuXHRvblNvcnRDaGFuZ2UoZXZlbnQ6IHsgZGlyZWN0aW9uOiBzdHJpbmcsIGNvbHVtbjogc3RyaW5nIH0pIHtcclxuXHRcdGNvbnN0IHsgZGlyZWN0aW9uLCBjb2x1bW4gfSA9IGV2ZW50O1xyXG5cclxuXHRcdC8vIFZlcmlmaWNhIHNlIGEgY29sdW5hIGF0dWFsbWVudGUgc2VsZWNpb25hZGEgw6kgYSBtZXNtYSBkYSBub3ZhIHNlbGXDp8Ojb1xyXG5cdFx0aWYgKHRoaXMuY3VycmVudFNvcnRDb2x1bW4gPT09IGNvbHVtbikge1xyXG5cdFx0XHQvLyBBbHRlcm5hIGVudHJlICdhc2MnIGUgJ2Rlc2MnIHBhcmEgYSBkaXJlw6fDo28gZGUgb3JkZW5hw6fDo28gZGEgY29sdW5hXHJcblx0XHRcdHRoaXMuc29ydERpcmVjdGlvbltjb2x1bW5dID0gdGhpcy5zb3J0RGlyZWN0aW9uW2NvbHVtbl0gPT09ICdhc2MnID8gJ2FzYycgOiAnZGVzYyc7XHJcblx0XHR9XHJcbiAgICBlbHNlIHtcclxuXHRcdFx0Ly8gRGVmaW5lIGEgbm92YSBjb2x1bmEgZSBhIGRpcmXDp8OjbyBkZSBvcmRlbmHDp8OjbyBjb21vICdhc2MnXHJcblx0XHRcdHRoaXMuY3VycmVudFNvcnRDb2x1bW4gPSBjb2x1bW47XHJcblx0XHRcdHRoaXMuc29ydERpcmVjdGlvbiA9IHsgW2NvbHVtbl06ICdhc2MnIH07XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gUmVhbGl6YSBhIG9yZGVuYcOnw6NvIGRvcyBkYWRvcyBkYSB0YWJlbGFcclxuXHRcdHRoaXMuc29ydERhdGEoKTtcclxuXHR9XHJcblxyXG5cdC8vIEZ1bsOnw6NvIGRlIG9yZGVuYcOnw6NvIGRvcyBkYWRvcyBkYSB0YWJlbGFcclxuXHRwcml2YXRlIHNvcnREYXRhKCkge1xyXG5cdFx0aWYgKHRoaXMucmVjb3Jkc0xpc3QpIHtcclxuXHRcdFx0Y29uc3QgZ3J1cG9zTGlzdCA9IHRoaXMucmVjb3Jkc0xpc3Q7XHJcblxyXG5cdFx0XHRncnVwb3NMaXN0LnNvcnQoKGEsIGIpID0+IHtcclxuXHRcdFx0XHRjb25zdCBhdHRyaWJ1dGUgPSB0aGlzLmN1cnJlbnRTb3J0Q29sdW1uO1xyXG5cdFx0XHRcdGNvbnN0IGRpcmVjdGlvbiA9IHRoaXMuc29ydERpcmVjdGlvblthdHRyaWJ1dGVdO1xyXG5cclxuXHRcdFx0XHRyZXR1cm4gdGhpcy5jb21wYXJlUHJvcGVydGllcyhhLCBiLCBhdHRyaWJ1dGUsIGRpcmVjdGlvbik7XHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ly8gQ29tcGFyYSBvcyB2YWxvcmVzIGRhcyBwcm9wcmllZGFkZXMgZW50cmUgZG9pcyBvYmpldG9zXHJcblx0cHJpdmF0ZSBjb21wYXJlUHJvcGVydGllcyhhOiBhbnksIGI6IGFueSwgYXR0cmlidXRlOiBzdHJpbmcsIGRpcmVjdGlvbjogc3RyaW5nKTogbnVtYmVyIHtcclxuXHRcdGNvbnN0IHByb3BlcnR5QSA9IHRoaXMuZ2V0UHJvcGVydHkoYSwgYXR0cmlidXRlKS50b1VwcGVyQ2FzZSgpO1xyXG5cdFx0Y29uc3QgcHJvcGVydHlCID0gdGhpcy5nZXRQcm9wZXJ0eShiLCBhdHRyaWJ1dGUpLnRvVXBwZXJDYXNlKCk7XHJcblxyXG5cdFx0aWYgKHByb3BlcnR5QSA8IHByb3BlcnR5QikgcmV0dXJuIGRpcmVjdGlvbiA9PT0gJ2FzYycgPyAtMSA6IDE7XHJcblx0XHRpZiAocHJvcGVydHlBID4gcHJvcGVydHlCKSByZXR1cm4gZGlyZWN0aW9uID09PSAnYXNjJyA/IDEgOiAtMTtcclxuXHJcblx0XHRyZXR1cm4gMDtcclxuXHR9XHJcblxyXG5cdC8vIE9idMOpbSBvIHZhbG9yIGRlIHVtYSBwcm9wcmllZGFkZSBlc3BlY8OtZmljYSBkZSB1bSBvYmpldG9cclxuXHRwcml2YXRlIGdldFByb3BlcnR5KG9iajogYW55LCBwYXRoOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHN0cmluZyB7XHJcblx0XHRpZiAodHlwZW9mIHBhdGggPT09ICdzdHJpbmcnKSBwYXRoID0gcGF0aC5zcGxpdCgnLicpO1xyXG5cdFx0cmV0dXJuIHBhdGgucmVkdWNlKCh2YWx1ZSwgcHJvcGVydHkpID0+IHZhbHVlID8gdmFsdWVbcHJvcGVydHldIDogJycsIG9iaik7XHJcblx0fVxyXG5cdC8vI2VuZHJlZ2lvbiBPcmRlcmluZywgU29ydGluZyBvdSBhcGVuYXMgT3JkZW5hw6fDo29cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiA9PT09PT09PT09PiBVVElMSVTDgVJJT1MgPD09PT09PT09PT1cclxuXHJcbn1cclxuIiwiQGlmIChyZWNvcmRzTGlzdCkge1xyXG4gICA8ZGl2IGNsYXNzPVwidGFibGUtbGlzdCB3LTEwMCBwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG5cclxuICAgICAgPCEtLSBUcmVjaG9zIGRlIHRleHRvIGFjaW1hIGRhIHRhYmxlIC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWItMiBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgIDwhLS0gRXhpYmUgbyBuw7ptZXJvIGRlIGl0ZW5zIG1vc3RyYWRvcyBlIG8gdG90YWwgZGUgcmVnaXN0cm9zIC0tPlxyXG4gICAgICAgICA8c3BhbiAqbmdJZj1cInNob3dDb3VudGVyXCIgY2xhc3M9XCJcIj4ge3sgaXRlbXNEaXNwbGF5VGV4dCB9fSA8L3NwYW4+XHJcbiAgIFxyXG4gICAgICAgICA8IS0tIEV4aWJlIGEgYmFkZ2UgaW5mb3JtYW5kbyBxdWFudG9zIHJlZ2lzdHJvcyBmb3JhbSBzZWxlY2lvbmFkb3MgLS0+XHJcbiAgICAgICAgIDxzcGFuICpuZ0lmPVwic2VsZWN0ZWRDb3VudCAmJiBzZWxlY3RlZENvdW50ID4gMFwiIGNsYXNzPVwibXMtMiBiYWRnZSB0ZXh0LWJnLXByaW1hcnlcIj57eyBzZWxlY3RlZENvdW50IH19IHJlZ2lzdHJvcyBzZWxlY2lvbmFkb3M8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICBcclxuICAgICAgPCEtLSBDb250YWluZXIgZGEgdGFiZWxhIC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGFibGUtbGlzdCBvdmVyZmxvdy1oaWRkZW4gYm9yZGVyLWJvdHRvbS0wIHJvdW5kZWQtYm90dG9tIHJvdW5kZWRcIj5cclxuICAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgdGFibGUtaG92ZXIgYm9yZGVyIG1iLTBcIj5cclxuICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gSXRlcmEgc29icmUgYSBsaXN0YSBkZSBjYWJlw6dhbGhvcyBwYXJhIGNyaWFyIGFzIGNvbHVuYXMgLS0+XHJcbiAgICAgICAgICAgICAgICAgIDx0aCAqbmdJZj1cInVzZVNlbGVjdGlvblwiID5cclxuICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIGlkPVwidGFibGVDaGVja0FsbFwiIFsobmdNb2RlbCldPVwic2VsZWN0aW9uXCIgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0aW9uQ2hhbmdlLmVtaXQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC90aD5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDx0aCAqbmdGb3I9XCJsZXQgaGVhZGVyIG9mIGhlYWRlcnNMaXN0XCIgc2NvcGU9XCJjb2xcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImFsaWduLW1pZGRsZSB0ZXh0LWRhcmstZ3JleSB7eyBoZWFkZXIuY3VzdG9tQ2xhc3NlcyB9fVxyXG4gICAgICAgICAgICAgICAgICAgICB7eyBoZWFkZXJzVXNlT2xkV2lkdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBoZWFkZXIuY29sICYmIGhlYWRlci5jb2wgPiAwID8gJ2NvbC0nK2hlYWRlci5jb2wgOiAnY29sJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGhlYWRlci53aWR0aENsYXNzIH19XCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICB7eyBoZWFkZXIubmFtZSB9fVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgPGFwcC1vcmRlcmluZyAqbmdJZj1cImhlYWRlci5vcmRlckNvbHVtblwiIFsoc29ydERpcmVjdGlvbildPVwic29ydERpcmVjdGlvbltoZWFkZXIub3JkZXJDb2x1bW5dXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHNvcnRDaGFuZ2UpPVwib25Tb3J0Q2hhbmdlKHsgZGlyZWN0aW9uOiAkZXZlbnQuZGlyZWN0aW9uLCBjb2x1bW46IGhlYWRlci5vcmRlckNvbHVtbiB9KVwiPjwvYXBwLW9yZGVyaW5nPlxyXG4gICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8L3RoZWFkPlxyXG5cclxuICAgICAgICAgICAgPHRib2R5IGNsYXNzPVwiYmctbGlnaHQgZmFkZS1pbi1yb3dcIj5cclxuICAgICAgICAgICAgICAgQGlmIChyZWNvcmRzTGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gQ29udGXDumRvIGRhcyBsaW5oYXMgZGEgdGFiZWxhIC0tPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbaW5uZXJSb3dzXVwiPjwvbmctY29udGVudD5cclxuICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gTWVuc2FnZW0gZGUgYXVzw6puY2lhIGRlIHJlZ2lzdHJvcyAtLT5cclxuICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjEyXCIgY2xhc3M9XCJhbGlnbi1taWRkbGUgdGV4dC1jZW50ZXIgcC00IHRleHQtZGFyay1ncmV5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPiB7eyBlbXB0eUxpc3RNZXNzYWdlID8gZW1wdHlMaXN0TWVzc2FnZSA6IFwiTsOjbyBow6EgZGFkb3MgcGFyYSBzZXJlbSBsaXN0YWRvcy5cIiB9fSA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgPC90YWJsZT5cclxuXHJcbiAgICAgICAgIDwhLS0gI3JlZ2lvbiBQQUdJTkHDh8ODTyAtLT5cclxuICAgICAgICAgPGRpdiAqbmdJZj1cInVzZVBhZ2luYXRpb24gJiYgcmVjb3Jkc0xpc3QubGVuZ3RoID4gMFwiIGNsYXNzPVwiZC1mbGV4IG10LTJcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICAgICdqdXN0aWZ5LWNvbnRlbnQtc3RhcnQnOiBwYWdpbmF0aW9uUGxhY2VtZW50ID09ICdzdGFydCcsXHJcbiAgICAgICAgICAgICAgICdqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJzogcGFnaW5hdGlvblBsYWNlbWVudCA9PSAnY2VudGVyJyxcclxuICAgICAgICAgICAgICAgJ2p1c3RpZnktY29udGVudC1lbmQnOiBwYWdpbmF0aW9uUGxhY2VtZW50ID09ICdlbmQnLFxyXG4gICAgICAgICAgICAgICAnanVzdGlmeS1jb250ZW50LWJldHdlZW4nOiBwYWdpbmF0aW9uUGxhY2VtZW50ID09ICdiZXR3ZWVuJ1xyXG4gICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cIm1lLTJcIiBzdHlsZT1cIndoaXRlLXNwYWNlOiBub3dyYXA7XCI+IEl0ZW5zIHBvciBww6FnaW5hIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdCBzZWxlY3Qtc2VhcmNoXCIgKGNoYW5nZSk9XCJvblNlbGVjdENoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGNvdW50IG9mIGNvdW50T3B0aW9uczsgbGV0IGkgPSBpbmRleFwiIFt2YWx1ZV09XCJjb3VudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJjb3VudE9wdGlvbnMubGVuZ3RoID4gMCAmJiBpID09IDBcIj57eyBjb3VudCB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8IS0tIENvbnRyb2xlIGRlIHBhZ2luYcOnw6NvIC0tPlxyXG4gICAgICAgICAgICA8cGFnaW5hdGlvbi1jb250cm9sc1xyXG4gICAgICAgICAgICAgICBbaWRdPVwicGFnaW5hdGlvbklEXCJcclxuICAgICAgICAgICAgICAgY2xhc3M9XCJzcC1wYWdpbmF0aW9uIG10LTNcIlxyXG4gICAgICAgICAgICAgICAocGFnZUNoYW5nZSk9XCJwYWdlID0gJGV2ZW50OyBwYWdlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgIHByZXZpb3VzTGFiZWw9XCLCqyZuYnNwOyZuYnNwOyZuYnNwO1wiIG5leHRMYWJlbD1cIiZuYnNwOyZuYnNwOyZuYnNwO8K7XCJcclxuICAgICAgICAgICAgICAgW21heFNpemVdPVwiNVwiPlxyXG4gICAgICAgICAgICA8L3BhZ2luYXRpb24tY29udHJvbHM+XHJcbiAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICA8IS0tICNlbmRyZWdpb24gUEFHSU5Bw4fDg08gLS0+XHJcbiAgICAgIDwvZGl2PlxyXG4gICA8L2Rpdj5cclxufSBAZWxzZSB7XHJcbiAgIDwhLS0gTG9hZGVyIGVucXVhbnRvIG9zIHJlZ2lzdHJvcyBzw6NvIGNhcnJlZ2Fkb3MgLS0+XHJcbiAgIDxkaXYgY2xhc3M9XCJ3LTEwMCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic3Bpbm5lci1ib3JkZXJcIiByb2xlPVwic3RhdHVzXCI+IDxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+Q2FycmVnYW5kbyBpbmZvcm1hw6fDtWVzLi4uPC9zcGFuPiA8L2Rpdj5cclxuICAgPC9kaXY+XHJcbn1cclxuIl19
|
|
225
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNwLWluZnJhL3NyYy9saWIvd2lkZ2V0cy90YWJsZS90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtaW5mcmEvc3JjL2xpYi93aWRnZXRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0MsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7Ozs7OztBQUUzSTs7Ozs7Ozs7Ozs7O0VBWUU7QUFNRixNQUFNLE9BQU8sY0FBYztJQTBCekI7bUJBQ2U7SUFDZixJQUNXLFdBQVcsS0FBd0IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUN6RSxJQUFXLFdBQVcsQ0FBQyxLQUF3QixJQUFJLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztJQTJCL0UsMEhBQTBIO0lBQzFILElBQ1csWUFBWSxLQUFhLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDaEUsSUFBVyxZQUFZLENBQUMsS0FBYTtRQUNuQyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssSUFBSSxvQkFBb0IsQ0FBQztJQUNyRCxDQUFDO0lBYUQsOEJBQThCO0lBQy9CLElBQVcsSUFBSSxLQUFhLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFDdkQsSUFBVyxJQUFJLENBQUMsS0FBYSxJQUFJLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUU1RCxtREFBbUQ7SUFDbkQsSUFBVyxZQUFZLEtBQWEsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLElBQVcsWUFB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QkFBbEMsTUFBTTtnQkFHVSxVQUFVO3NCQUExQixNQUFNO2dCQUdVLGVBQWU7c0JBQS9CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKipcclxuICogQ29tcG9uZW50ZSBkZSBUYWJlbGEgQ3VzdG9taXrDoXZlbFxyXG4gKlxyXG4gKiBPIGBUYWJsZUNvbXBvbmVudGAgw6kgdW0gY29tcG9uZW50ZSBBbmd1bGFyIHByb2pldGFkbyBwYXJhIGV4aWJpciB1bWEgdGFiZWxhIGN1c3RvbWl6w6F2ZWxcclxuICogY29tIHN1cG9ydGUgYSBwYWdpbmHDp8Ojby4gRWxlIHBlcm1pdGUgYSBjb25maWd1cmHDp8OjbyBkZSBjYWJlw6dhbGhvcyBkZSBjb2x1bmFzLCBwb3NpY2lvbmFtZW50b1xyXG4gKiBkYSBwYWdpbmHDp8OjbyBlIG9ww6fDtWVzIGRlIGl0ZW5zIHBvciBww6FnaW5hLiBPIGNvbXBvbmVudGUgw6kgZmxleMOtdmVsLCB1dGlsaXphbmRvIGNsYXNzZXMgQm9vdHN0cmFwXHJcbiAqIHBhcmEgYWp1c3RhciBvIGxheW91dCBkYXMgY29sdW5hcyBlIGVtaXRpbmRvIGV2ZW50b3MgcGFyYSBxdWUgbyBjb21wb25lbnRlIHBhaSBwb3NzYSByZWFnaXIgYVxyXG4gKiBtdWRhbsOnYXMgbmEgcMOhZ2luYSBvdSBubyBuw7ptZXJvIGRlIGl0ZW5zIGV4aWJpZG9zLlxyXG4gKlxyXG4gKiBAc2VsZWN0b3IgbGliLXRhYmxlXHJcbiAqIEB0ZW1wbGF0ZVVybCAuL3RhYmxlLmNvbXBvbmVudC5odG1sXHJcbiAqIEBzdHlsZVVybCAuL3RhYmxlLmNvbXBvbmVudC5zY3NzXHJcbiovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXRhYmxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xyXG5cclxuICAvLyAjcmVnaW9uID09PT09PT09PT0+IFBST1BSSUVEQURFUyA8PT09PT09PT09PVxyXG5cclxuICAvLyAjcmVnaW9uIFBSSVZBVEVcclxuICBwcml2YXRlIF9wYWdpbmF0aW9uSUQ6IHN0cmluZztcclxuICBwcml2YXRlIF9yZWNvcmRzTGlzdDogYW55W10gfCB1bmRlZmluZWQ7XHJcblxyXG4gIHByaXZhdGUgX2N1cnJlbnRQYWdlOiBudW1iZXIgPSAxO1xyXG4gIHByaXZhdGUgX2N1cnJlbnRJdGVtc1BlclBhZ2U6IG51bWJlciA9IDA7XHJcbiAgLy8gI2VuZHJlZ2lvbiBQUklWQVRFXHJcblxyXG4gIC8vICNyZWdpb24gUFVCTElDXHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3Rpb246IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcclxuXHJcbiAgLyoqIERldGVybWluYSBzZSBoYXZlcsOhIHVtYSBjb2x1bmEgaW5pY2lhbCBwYXJhIHNlbGXDp8OjbyBkZSByZWdpc3Ryb3MgbmEgdGFiZWxhLiAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB1c2VTZWxlY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqIERldGVybWluYSBvIG7Dum1lcm8gZGUgcmVnaXN0cm9zIHNlbGVjaW9uYWRvcy4gKi9cclxuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0ZWRDb3VudD86IG51bWJlcjtcclxuXHJcbiAgLyoqIERldGVybWluYSBzZSBhIHRhYmVsYSBkZXZlIHVzYXIgcGFnaW5hw6fDo28uXHJcbiAgICogQGRlZmF1bHQgdHJ1ZSAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB1c2VQYWdpbmF0aW9uOiBib29sZWFuID0gdHJ1ZTtcclxuICBcclxuICAvKiogTGlzdGEgZGUgcmVnaXN0cm9zIGEgc2VyZW0gZXhpYmlkb3MgbmEgdGFiZWxhLlxyXG4gICAqIEByZXF1aXJlZCAqL1xyXG4gIEBJbnB1dCh7IGFsaWFzOiAnbGlzdCcsIHJlcXVpcmVkOiB0cnVlIH0pXHJcbiAgcHVibGljIGdldCByZWNvcmRzTGlzdCgpOiBhbnlbXSB8IHVuZGVmaW5lZCB7IHJldHVybiB0aGlzLl9yZWNvcmRzTGlzdDsgfVxyXG4gIHB1YmxpYyBzZXQgcmVjb3Jkc0xpc3QodmFsdWU6IGFueVtdIHwgdW5kZWZpbmVkKSB7IHRoaXMuX3JlY29yZHNMaXN0ID0gdmFsdWU7IH1cclxuXHJcbiAgLyoqIE9ww6fDtWVzIGRlIGNvbnRhZ2VtIGRlIGl0ZW5zIHBvciBww6FnaW5hIGRpc3BvbsOtdmVpcyBwYXJhIG8gdXN1w6FyaW8uXHJcbiAgICogQHJlcXVpcmVkICovXHJcbiAgQElucHV0KCdjb3VudHMnKSBwdWJsaWMgY291bnRPcHRpb25zOiBudW1iZXJbXTtcclxuXHJcbiAgLyoqIFBvc2ljaW9uYW1lbnRvIGRvcyBjb250cm9sZXMgZGUgcGFnaW5hw6fDo28uXHJcbiAgICogQGRlZmF1bHQgJ2VuZCcgKi9cclxuICBASW5wdXQoJ3BsYWNlbWVudCcpIHB1YmxpYyBwYWdpbmF0aW9uUGxhY2VtZW50OiAnc3RhcnQnIHwgJ2NlbnRlcicgfCAnZW5kJyB8ICdiZXR3ZWVuJyA9ICdlbmQnO1xyXG5cclxuICAvKiogTGlzdGEgZGUgY2FiZcOnYWxob3MgcGFyYSBhcyBjb2x1bmFzIGRhIHRhYmVsYSwgaW5jbHVpbmRvIG8gbm9tZSwgYSBsYXJndXJhIGRhIGNvbHVuYSBlIGNsYXNzZXMgY3VzdG9taXphZGFzLlxyXG4gICAqIEByZXF1aXJlZCAqL1xyXG4gIEBJbnB1dCh7IGFsaWFzOiAnaGVhZGVycycsIHJlcXVpcmVkOiB0cnVlIH0pIHB1YmxpYyBoZWFkZXJzTGlzdDoge1xyXG4gICAgbmFtZTogc3RyaW5nLFxyXG4gICAgY29sPzogbnVtYmVyLFxyXG4gICAgd2lkdGhDbGFzcz86IHN0cmluZyxcclxuICAgIGN1c3RvbUNsYXNzZXM/OiBzdHJpbmcsXHJcbiAgICBvcmRlckNvbHVtbj86IHN0cmluZ1xyXG4gIH1bXTtcclxuXHJcbiAgLyoqIE1lbnNhZ2VtIGN1c3RvbWl6YWRhIHBhcmEgbGlzdGEgdmF6aWEgKi9cclxuICBASW5wdXQoJ2VtcHR5TGlzdE1lc3NhZ2UnKSBwdWJsaWMgZW1wdHlMaXN0TWVzc2FnZT86IHN0cmluZztcclxuXHJcbiAgLyoqIEluZm9ybWEgc2UgbyBjb3VudGVyIGRlIHJlZ2lzdHJvcyBkZXZlIGFwYXJlY2VyIG91IG7Do28uXHJcbiAgICogQGRlZmF1bHQgdHJ1ZSAqL1xyXG4gIEBJbnB1dCgnc2hvd0NvdW50ZXInKSBwdWJsaWMgc2hvd0NvdW50ZXI6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAvKiogSW5mb3JtYSB1bSBJRCBwYXJhIGEgcGFnaW5hw6fDo28gZGEgdGFiZWxhIGVzcGVjw61maWNhLiBEZXZlIHNlciB1dGlsaXphZGEgZW0gY2FzbyBkZSBtw7psdGlwbGFzIHRhYmVsYXMgbmEgbWVzbWEgdGVsYS4gKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgcGFnaW5hdGlvbklEKCk6IHN0cmluZyB7IHJldHVybiB0aGlzLl9wYWdpbmF0aW9uSUQ7IH1cclxuICBwdWJsaWMgc2V0IHBhZ2luYXRpb25JRCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9wYWdpbmF0aW9uSUQgPSB2YWx1ZSB8fCAnbGliVGFibGVQYWdpbmF0aW9uJztcclxuICB9XHJcblxyXG5cclxuICAvKiogRXZlbnRvIGVtaXRpZG8gcXVhbmRvIG8gbsO6bWVybyBkZSBpdGVucyBwb3IgcMOhZ2luYSDDqSBhbHRlcmFkby4gKi9cclxuICBAT3V0cHV0KCkgcHVibGljIGl0ZW1zUGVyUGFnZUNoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuXHJcbiAgLyoqIEV2ZW50byBlbWl0aWRvIHF1YW5kbyBhIHDDoWdpbmEgw6kgYWx0ZXJhZGEuICovXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBwYWdlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG5cclxuICAvKiogRXZlbnRvIGVtaXRpZG8gcXVhbmRvIG8gY2hlY2tib3ggZGUgc2VsZcOnw6NvIHNlIGFsdGVyYXIuICovXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBzZWxlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcblxyXG4gIC8qKiBQw6FnaW5hIGF0dWFsIGRhIHRhYmVsYS4gKi9cclxuXHRwdWJsaWMgZ2V0IHBhZ2UoKTogbnVtYmVyIHsgcmV0dXJuIHRoaXMuX2N1cnJlbnRQYWdlOyB9XHJcblx0cHVibGljIHNldCBwYWdlKHZhbHVlOiBudW1iZXIpIHsgdGhpcy5fY3VycmVudFBhZ2UgPSB2YWx1ZTsgfVxyXG5cclxuICAvKiogTsO6bWVybyBkZSBpdGVucyBhIHNlcmVtIGV4aWJpZG9zIHBvciBww6FnaW5hLiAqL1xyXG4gIHB1YmxpYyBnZXQgaXRlbXNQZXJQYWdlKCk6IG51bWJlciB7IHJldHVybiB0aGlzLl9jdXJyZW50SXRlbXNQZXJQYWdlOyB9XHJcblx0cHVibGljIHNldCBpdGVtc1BlclBhZ2UodmFsdWU6IG51bWJlcikgeyB0aGlzLl9jdXJyZW50SXRlbXNQZXJQYWdlID0gdmFsdWU7IH1cclxuXHJcblxyXG4gIHB1YmxpYyBnZXQgZmlyc3RJdGVtT2ZQYWdlKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gKHRoaXMucGFnZSAtIDEpICogdGhpcy5pdGVtc1BlclBhZ2UgKyAxO1xyXG4gIH1cclxuICBwdWJsaWMgZ2V0IGxhc3RJdGVtT2ZQYWdlKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gTWF0aC5taW4odGhpcy5wYWdlICogdGhpcy5pdGVtc1BlclBhZ2UsIHRoaXMucmVjb3Jkc0xpc3Q/Lmxlbmd0aCA/PyAwKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaXRlbXNEaXNwbGF5VGV4dCgpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMucmVjb3Jkc0xpc3QgJiYgdGhpcy5yZWNvcmRzTGlzdC5sZW5ndGggPT09IDApIHsgcmV0dXJuIGBFeGliaW5kbyAke3RoaXMucmVjb3Jkc0xpc3Q/Lmxlbmd0aCA/PyAwfSByZWdpc3Ryb3NgOyB9XHJcbiAgICByZXR1cm4gYEV4aWJpbmRvICR7IHRoaXMuY291bnRPcHRpb25zID8gdGhpcy5maXJzdEl0ZW1PZlBhZ2UrXCItXCIrdGhpcy5sYXN0SXRlbU9mUGFnZSArIFwiIGRlXCIgOiBcIlwiIH0gJHt0aGlzLnJlY29yZHNMaXN0Py5sZW5ndGggPz8gMH0gcmVnaXN0cm9zYDtcclxuICB9XHJcblxyXG4gIFxyXG4gIHB1YmxpYyBoZWFkZXJzVXNlT2xkV2lkdGg/OiBib29sZWFuO1xyXG4gIC8vICNlbmRyZWdpb24gUFVCTElDXHJcblxyXG4gIC8vICNlbmRyZWdpb24gPT09PT09PT09PT4gUFJPUFJJRURBREVTIDw9PT09PT09PT09XHJcblxyXG5cclxuICAvLyAjcmVnaW9uID09PT09PT09PT0+IElOSUNJQUxJWkHDh8ODTyA8PT09PT09PT09PVxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikgeyB9XHJcblxyXG4gIC8qKiBJbmljaWFsaXphIG8gY29tcG9uZW50ZSBlIGRlZmluZSBvIG7Dum1lcm8gaW5pY2lhbCBkZSBpdGVucyBwb3IgcMOhZ2luYS4gKi9cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudXBkYXRlQ291bnRlckluZm8oKTtcclxuICAgIHRoaXMudmFsaWRhdGVIZWFkZXJzKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7ICAvLyBGb3LDp2FyIHVtYSBub3ZhIGRldGVjw6fDo28gYXDDs3MgYSByZW5kZXJpemHDp8Ojb1xyXG4gIH1cclxuXHJcbiAgLyoqIE1vbml0b3JhIGFzIG11ZGFuw6dhcyBuYXMgZW50cmFkYXMgZG8gY29tcG9uZW50ZSBlIHJlYWxpemEgYWp1c3RlcywgY29tbyByZXNldGFyIGEgcGFnaW5hw6fDo28gb3UgdmFsaWRhciBvIGxheW91dCBkYXMgY29sdW5hcy5cclxuICAgKiBAcGFyYW0gY2hhbmdlcyBPYmpldG8gcXVlIGNvbnTDqW0gYXMgbXVkYW7Dp2FzIG5hcyBlbnRyYWRhcyBkbyBjb21wb25lbnRlLiAqL1xyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydyZWNvcmRzTGlzdCddICYmIGNoYW5nZXNbJ3JlY29yZHNMaXN0J10uY3VycmVudFZhbHVlKSB7XHJcbiAgICAgIHRoaXMucmVzZXRQYWdpbmF0aW9uKHRoaXMucmVjb3Jkc0xpc3QgPz8gW10pO1xyXG4gICAgICB0aGlzLnVwZGF0ZUNvdW50ZXJJbmZvKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNoYW5nZXNbJ2hlYWRlcnNMaXN0J10pIHsgdGhpcy52YWxpZGF0ZUhlYWRlcnMoKTsgfVxyXG4gIH1cclxuICAvLyAjZW5kcmVnaW9uID09PT09PT09PT0+IElOSUNJQUxJWkHDh8ODTyA8PT09PT09PT09PVxyXG5cclxuXHJcbiAgLy8gI3JlZ2lvbiA9PT09PT09PT09PiBVVElMSVTDgVJJT1MgPD09PT09PT09PT1cclxuICBwcml2YXRlIHZhbGlkYXRlSGVhZGVycygpOiB2b2lkIHtcclxuICAgIGxldCBoZWFkZXJzVXNlT2xkV2lkdGg6IGJvb2xlYW4gPSB0aGlzLmhlYWRlcnNMaXN0LmV2ZXJ5KGhlYWRlciA9PiBoZWFkZXIuY29sICYmIGhlYWRlci5jb2wgIT0gdW5kZWZpbmVkKTtcclxuICAgIFxyXG4gICAgbGV0IGhlYWRlcnNVc2VDb2w6IGJvb2xlYW4gPSB0aGlzLmhlYWRlcnNMaXN0LmV2ZXJ5KGhlYWRlciA9PiBoZWFkZXIud2lkdGhDbGFzcyAmJiBoZWFkZXIud2lkdGhDbGFzcy5pbmNsdWRlcygnY29sLScpKTtcclxuICAgIGxldCBoZWFkZXJzVXNlUGVyY2VudDogYm9vbGVhbiA9IHRoaXMuaGVhZGVyc0xpc3QuZXZlcnkoaGVhZGVyID0+IGhlYWRlci53aWR0aENsYXNzICYmIGhlYWRlci53aWR0aENsYXNzLmluY2x1ZGVzKCd3LScpKTtcclxuXHJcbiAgICBpZiAoaGVhZGVyc1VzZU9sZFdpZHRoKSB7IHRoaXMuaGVhZGVyc1VzZU9sZFdpZHRoID0gdHJ1ZTsgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuaGVhZGVyc1VzZU9sZFdpZHRoID0gZmFsc2U7XHJcblxyXG4gICAgICBpZiAoIWhlYWRlcnNVc2VDb2wgJiYgIWhlYWRlcnNVc2VQZXJjZW50KSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihcIkEgbGFyZ3VyYSBkYXMgY29sdW5hcyBlc3TDoSBlbSB1bSBmb3JtYXRvIGludsOhbGlkby4gQ2VydGlmaXF1ZS1zZSBxdWUgdG9kYXMgZWxhcyB1dGlsaXphbSBhcGVuYXMgJ2NvbC0nIG91ICd3LSdcIik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlQ291bnRlckluZm8oKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5yZWNvcmRzTGlzdCAmJiB0aGlzLnNob3dDb3VudGVyICYmIHRoaXMudXNlUGFnaW5hdGlvbikge1xyXG4gICAgICB0aGlzLml0ZW1zUGVyUGFnZSA9IHRoaXMuY291bnRPcHRpb25zID8gdGhpcy5jb3VudE9wdGlvbnNbMF0gOiB0aGlzLnJlY29yZHNMaXN0Lmxlbmd0aDtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKCF0aGlzLnJlY29yZHNMaXN0ICYmIHRoaXMuc2hvd0NvdW50ZXIgJiYgdGhpcy51c2VQYWdpbmF0aW9uKSB7XHJcbiAgICAgIHRoaXMuaXRlbXNQZXJQYWdlID0gMTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAvKiogTW9kaWZpY2EgYSBxdWFudGlkYWRlIGRlIGl0ZW5zIGEgc2VyIG1vc3RyYWRhIG5hIGxpc3RhLlxyXG4gICAqIEBwYXJhbSBldmVudCBwYXLDom1ldHJvIGRlIGV2ZW50byBxdWUgaXLDoSBzZWxlY2lvbmFyIGEgbm92YSBxdWFudGlkYWRlLiAqL1xyXG4gIHB1YmxpYyBvblNlbGVjdENoYW5nZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLml0ZW1zUGVyUGFnZSA9IHBhcnNlSW50KGV2ZW50LnRhcmdldC52YWx1ZSwgMTApO1xyXG4gICAgdGhpcy5wYWdlID0gMTtcclxuICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KHRoaXMucGFnZSk7XHJcbiAgICB0aGlzLml0ZW1zUGVyUGFnZUNoYW5nZS5lbWl0KHRoaXMuaXRlbXNQZXJQYWdlKTtcclxuICB9XHJcblxyXG4gIC8qKiBSZXNldGEgYSBwYWdpbmHDp8OjbyBkYSBsaXN0YWdlbSBjb20gYmFzZSBubyBuw7ptZXJvIGF0dWFsIGRlIHJlZ2lzdHJvcy5cclxuICAgKiBAcGFyYW0gbGlzdCBMaXN0YSBkZSByZWdpc3Ryb3MgcGFyYSByZXNldGFyIGEgcGFnaW5hw6fDo28uICovXHJcbiAgcHVibGljIHJlc2V0UGFnaW5hdGlvbihsaXN0OiBhbnlbXSk6IHZvaWQge1xyXG4gICAgY29uc3Qgc3RhcnRJbmRleCA9ICh0aGlzLnBhZ2UgLSAxKSAqIHRoaXMuaXRlbXNQZXJQYWdlO1xyXG4gICAgaWYgKGxpc3QubGVuZ3RoIDw9IHN0YXJ0SW5kZXgpIHRoaXMucGFnZSA9IDE7XHJcbiAgfVxyXG5cclxuXHQvLyNyZWdpb24gT3JkZXJpbmcsIFNvcnRpbmcgb3UgYXBlbmFzIE9yZGVuYcOnw6NvXHJcblxyXG5cdC8qKiBNw6l0b2RvIHF1ZSBmYXogYSBvcmRlbmHDp8OjbyBkb3MgY29udHJhdG9zIG5hIHRlbGEgZGUgbGlzdGFnZW0sIGVtIGNhZGEgdW1hIGRhcyBjw6lsdWxhcyBkbyBjYWJlw6dhbGhvIGRhIHRhYmVsYSwgb25kZSBjYWRhIHVtICBcclxuXHQgKiAgZG9zIGVsZW1lbnRvcyA8dGg+IHJlcHJlc2VudGEgdW1hIGNvbHVuYSwgZGUgYWNvcmRvIGNvbSBhIGxpc3RhIGRlIGNvbnRyYXRvcyBxdWUgcmV0b3JuYSBkbyBiYWNrZW5kLiAqL1xyXG5cdC8vIE9iamV0byBwYXJhIGFybWF6ZW5hciBhIGRpcmXDp8OjbyBkZSBvcmRlbmHDp8OjbyBkZSBjYWRhIGNvbHVuYVxyXG5cdHB1YmxpYyBzb3J0RGlyZWN0aW9uOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XHJcblxyXG5cdC8vIENvbHVuYSBhdHVhbG1lbnRlIHNlbGVjaW9uYWRhIHBhcmEgb3JkZW5hw6fDo29cclxuXHRwdWJsaWMgY3VycmVudFNvcnRDb2x1bW46IHN0cmluZyA9ICcnO1xyXG5cclxuXHQvLyBGdW7Dp8OjbyBjaGFtYWRhIHF1YW5kbyBvY29ycmUgdW1hIG11ZGFuw6dhIG5hIG9yZGVuYcOnw6NvXHJcblx0b25Tb3J0Q2hhbmdlKGV2ZW50OiB7IGRpcmVjdGlvbjogc3RyaW5nLCBjb2x1bW46IHN0cmluZyB9KSB7XHJcblx0XHRjb25zdCB7IGRpcmVjdGlvbiwgY29sdW1uIH0gPSBldmVudDtcclxuXHJcblx0XHQvLyBWZXJpZmljYSBzZSBhIGNvbHVuYSBhdHVhbG1lbnRlIHNlbGVjaW9uYWRhIMOpIGEgbWVzbWEgZGEgbm92YSBzZWxlw6fDo29cclxuXHRcdGlmICh0aGlzLmN1cnJlbnRTb3J0Q29sdW1uID09PSBjb2x1bW4pIHtcclxuXHRcdFx0Ly8gQWx0ZXJuYSBlbnRyZSAnYXNjJyBlICdkZXNjJyBwYXJhIGEgZGlyZcOnw6NvIGRlIG9yZGVuYcOnw6NvIGRhIGNvbHVuYVxyXG5cdFx0XHR0aGlzLnNvcnREaXJlY3Rpb25bY29sdW1uXSA9IHRoaXMuc29ydERpcmVjdGlvbltjb2x1bW5dID09PSAnYXNjJyA/ICdhc2MnIDogJ2Rlc2MnO1xyXG5cdFx0fVxyXG4gICAgZWxzZSB7XHJcblx0XHRcdC8vIERlZmluZSBhIG5vdmEgY29sdW5hIGUgYSBkaXJlw6fDo28gZGUgb3JkZW5hw6fDo28gY29tbyAnYXNjJ1xyXG5cdFx0XHR0aGlzLmN1cnJlbnRTb3J0Q29sdW1uID0gY29sdW1uO1xyXG5cdFx0XHR0aGlzLnNvcnREaXJlY3Rpb24gPSB7IFtjb2x1bW5dOiAnYXNjJyB9O1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIFJlYWxpemEgYSBvcmRlbmHDp8OjbyBkb3MgZGFkb3MgZGEgdGFiZWxhXHJcblx0XHR0aGlzLnNvcnREYXRhKCk7XHJcblx0fVxyXG5cclxuXHQvLyBGdW7Dp8OjbyBkZSBvcmRlbmHDp8OjbyBkb3MgZGFkb3MgZGEgdGFiZWxhXHJcblx0cHJpdmF0ZSBzb3J0RGF0YSgpIHtcclxuXHRcdGlmICh0aGlzLnJlY29yZHNMaXN0KSB7XHJcblx0XHRcdGNvbnN0IGdydXBvc0xpc3QgPSB0aGlzLnJlY29yZHNMaXN0O1xyXG5cclxuXHRcdFx0Z3J1cG9zTGlzdC5zb3J0KChhLCBiKSA9PiB7XHJcblx0XHRcdFx0Y29uc3QgYXR0cmlidXRlID0gdGhpcy5jdXJyZW50U29ydENvbHVtbjtcclxuXHRcdFx0XHRjb25zdCBkaXJlY3Rpb24gPSB0aGlzLnNvcnREaXJlY3Rpb25bYXR0cmlidXRlXTtcclxuXHJcblx0XHRcdFx0cmV0dXJuIHRoaXMuY29tcGFyZVByb3BlcnRpZXMoYSwgYiwgYXR0cmlidXRlLCBkaXJlY3Rpb24pO1xyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8vIENvbXBhcmEgb3MgdmFsb3JlcyBkYXMgcHJvcHJpZWRhZGVzIGVudHJlIGRvaXMgb2JqZXRvc1xyXG5cdHByaXZhdGUgY29tcGFyZVByb3BlcnRpZXMoYTogYW55LCBiOiBhbnksIGF0dHJpYnV0ZTogc3RyaW5nLCBkaXJlY3Rpb246IHN0cmluZyk6IG51bWJlciB7XHJcblx0XHRjb25zdCBwcm9wZXJ0eUEgPSB0aGlzLmdldFByb3BlcnR5KGEsIGF0dHJpYnV0ZSkudG9VcHBlckNhc2UoKTtcclxuXHRcdGNvbnN0IHByb3BlcnR5QiA9IHRoaXMuZ2V0UHJvcGVydHkoYiwgYXR0cmlidXRlKS50b1VwcGVyQ2FzZSgpO1xyXG5cclxuXHRcdGlmIChwcm9wZXJ0eUEgPCBwcm9wZXJ0eUIpIHJldHVybiBkaXJlY3Rpb24gPT09ICdhc2MnID8gLTEgOiAxO1xyXG5cdFx0aWYgKHByb3BlcnR5QSA+IHByb3BlcnR5QikgcmV0dXJuIGRpcmVjdGlvbiA9PT0gJ2FzYycgPyAxIDogLTE7XHJcblxyXG5cdFx0cmV0dXJuIDA7XHJcblx0fVxyXG5cclxuXHQvLyBPYnTDqW0gbyB2YWxvciBkZSB1bWEgcHJvcHJpZWRhZGUgZXNwZWPDrWZpY2EgZGUgdW0gb2JqZXRvXHJcblx0cHJpdmF0ZSBnZXRQcm9wZXJ0eShvYmo6IGFueSwgcGF0aDogc3RyaW5nIHwgc3RyaW5nW10pOiBzdHJpbmcge1xyXG5cdFx0aWYgKHR5cGVvZiBwYXRoID09PSAnc3RyaW5nJykgcGF0aCA9IHBhdGguc3BsaXQoJy4nKTtcclxuXHRcdHJldHVybiBwYXRoLnJlZHVjZSgodmFsdWUsIHByb3BlcnR5KSA9PiB2YWx1ZSA/IHZhbHVlW3Byb3BlcnR5XSA6ICcnLCBvYmopO1xyXG5cdH1cclxuXHQvLyNlbmRyZWdpb24gT3JkZXJpbmcsIFNvcnRpbmcgb3UgYXBlbmFzIE9yZGVuYcOnw6NvXHJcblxyXG4gIC8vICNlbmRyZWdpb24gPT09PT09PT09PT4gVVRJTElUw4FSSU9TIDw9PT09PT09PT09XHJcblxyXG59XHJcbiIsIkBpZiAocmVjb3Jkc0xpc3QpIHtcclxuICAgPGRpdiBjbGFzcz1cInRhYmxlLWxpc3Qgdy0xMDAgcG9zaXRpb24tcmVsYXRpdmVcIj5cclxuXHJcbiAgICAgIDwhLS0gVHJlY2hvcyBkZSB0ZXh0byBhY2ltYSBkYSB0YWJsZSAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1iLTIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICA8IS0tIEV4aWJlIG8gbsO6bWVybyBkZSBpdGVucyBtb3N0cmFkb3MgZSBvIHRvdGFsIGRlIHJlZ2lzdHJvcyAtLT5cclxuICAgICAgICAgPHNwYW4gKm5nSWY9XCJzaG93Q291bnRlclwiIGNsYXNzPVwiXCI+IHt7IGl0ZW1zRGlzcGxheVRleHQgfX0gPC9zcGFuPlxyXG4gICBcclxuICAgICAgICAgPCEtLSBFeGliZSBhIGJhZGdlIGluZm9ybWFuZG8gcXVhbnRvcyByZWdpc3Ryb3MgZm9yYW0gc2VsZWNpb25hZG9zIC0tPlxyXG4gICAgICAgICA8c3BhbiAqbmdJZj1cInNlbGVjdGVkQ291bnQgJiYgc2VsZWN0ZWRDb3VudCA+IDBcIiBjbGFzcz1cIm1zLTIgYmFkZ2UgdGV4dC1iZy1wcmltYXJ5XCI+e3sgc2VsZWN0ZWRDb3VudCB9fSByZWdpc3Ryb3Mgc2VsZWNpb25hZG9zPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgXHJcbiAgICAgIDwhLS0gQ29udGFpbmVyIGRhIHRhYmVsYSAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWxpc3Qgb3ZlcmZsb3ctaGlkZGVuIGJvcmRlci1ib3R0b20tMCByb3VuZGVkLWJvdHRvbSByb3VuZGVkXCI+XHJcbiAgICAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIHRhYmxlLWhvdmVyIGJvcmRlciBtYi0wXCI+XHJcbiAgICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICA8IS0tIEl0ZXJhIHNvYnJlIGEgbGlzdGEgZGUgY2FiZcOnYWxob3MgcGFyYSBjcmlhciBhcyBjb2x1bmFzIC0tPlxyXG4gICAgICAgICAgICAgICAgICA8dGggKm5nSWY9XCJ1c2VTZWxlY3Rpb25cIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiBpZD1cInRhYmxlQ2hlY2tBbGxcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGlvblwiIChuZ01vZGVsQ2hhbmdlKT1cInNlbGVjdGlvbkNoYW5nZS5lbWl0KCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvdGg+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8dGggKm5nRm9yPVwibGV0IGhlYWRlciBvZiBoZWFkZXJzTGlzdFwiIHNjb3BlPVwiY29sXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhbGlnbi1taWRkbGUgdGV4dC1kYXJrLWdyZXkge3sgaGVhZGVyLmN1c3RvbUNsYXNzZXMgfX1cclxuICAgICAgICAgICAgICAgICAgICAge3sgaGVhZGVyc1VzZU9sZFdpZHRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gaGVhZGVyLmNvbCAmJiBoZWFkZXIuY29sID4gMCA/ICdjb2wtJytoZWFkZXIuY29sIDogJ2NvbCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBoZWFkZXIud2lkdGhDbGFzcyB9fVwiID5cclxuICAgICAgICAgICAgICAgICAgICAge3sgaGVhZGVyLm5hbWUgfX1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgIDxhcHAtb3JkZXJpbmcgKm5nSWY9XCJoZWFkZXIub3JkZXJDb2x1bW5cIiBbKHNvcnREaXJlY3Rpb24pXT1cInNvcnREaXJlY3Rpb25baGVhZGVyLm9yZGVyQ29sdW1uXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChzb3J0Q2hhbmdlKT1cIm9uU29ydENoYW5nZSh7IGRpcmVjdGlvbjogJGV2ZW50LmRpcmVjdGlvbiwgY29sdW1uOiBoZWFkZXIub3JkZXJDb2x1bW4gfSlcIj48L2FwcC1vcmRlcmluZz5cclxuICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPC90aGVhZD5cclxuXHJcbiAgICAgICAgICAgIDx0Ym9keSBjbGFzcz1cImJnLWxpZ2h0IGZhZGUtaW4tcm93XCI+XHJcbiAgICAgICAgICAgICAgIEBpZiAocmVjb3Jkc0xpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICA8IS0tIENvbnRlw7pkbyBkYXMgbGluaGFzIGRhIHRhYmVsYSAtLT5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2lubmVyUm93c11cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICA8IS0tIE1lbnNhZ2VtIGRlIGF1c8OqbmNpYSBkZSByZWdpc3Ryb3MgLS0+XHJcbiAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49XCIxMlwiIGNsYXNzPVwiYWxpZ24tbWlkZGxlIHRleHQtY2VudGVyIHAtNCB0ZXh0LWRhcmstZ3JleVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4ge3sgZW1wdHlMaXN0TWVzc2FnZSA/IGVtcHR5TGlzdE1lc3NhZ2UgOiBcIk7Do28gaMOhIGRhZG9zIHBhcmEgc2VyZW0gbGlzdGFkb3MuXCIgfX0gPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgIDwvdGFibGU+XHJcblxyXG4gICAgICAgICA8IS0tICNyZWdpb24gUEFHSU5Bw4fDg08gLS0+XHJcbiAgICAgICAgIDxkaXYgKm5nSWY9XCJ1c2VQYWdpbmF0aW9uICYmIHJlY29yZHNMaXN0Lmxlbmd0aCA+IDBcIiBjbGFzcz1cImQtZmxleCBtdC0yXCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAnanVzdGlmeS1jb250ZW50LXN0YXJ0JzogcGFnaW5hdGlvblBsYWNlbWVudCA9PSAnc3RhcnQnLFxyXG4gICAgICAgICAgICAgICAnanVzdGlmeS1jb250ZW50LWNlbnRlcic6IHBhZ2luYXRpb25QbGFjZW1lbnQgPT0gJ2NlbnRlcicsXHJcbiAgICAgICAgICAgICAgICdqdXN0aWZ5LWNvbnRlbnQtZW5kJzogcGFnaW5hdGlvblBsYWNlbWVudCA9PSAnZW5kJyxcclxuICAgICAgICAgICAgICAgJ2p1c3RpZnktY29udGVudC1iZXR3ZWVuJzogcGFnaW5hdGlvblBsYWNlbWVudCA9PSAnYmV0d2VlbidcclxuICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJtZS0yXCIgc3R5bGU9XCJ3aGl0ZS1zcGFjZTogbm93cmFwO1wiPiBJdGVucyBwb3IgcMOhZ2luYSA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3Qgc2VsZWN0LXNlYXJjaFwiIChjaGFuZ2UpPVwib25TZWxlY3RDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBjb3VudCBvZiBjb3VudE9wdGlvbnM7IGxldCBpID0gaW5kZXhcIiBbdmFsdWVdPVwiY291bnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwiY291bnRPcHRpb25zLmxlbmd0aCA+IDAgJiYgaSA9PSAwXCI+e3sgY291bnQgfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPCEtLSBDb250cm9sZSBkZSBwYWdpbmHDp8OjbyAtLT5cclxuICAgICAgICAgICAgPHBhZ2luYXRpb24tY29udHJvbHNcclxuICAgICAgICAgICAgICAgW2lkXT1cInBhZ2luYXRpb25JRFwiXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwic3AtcGFnaW5hdGlvbiBtdC0zXCJcclxuICAgICAgICAgICAgICAgKHBhZ2VDaGFuZ2UpPVwicGFnZSA9ICRldmVudDsgcGFnZUNoYW5nZS5lbWl0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICBwcmV2aW91c0xhYmVsPVwiwqsmbmJzcDsmbmJzcDsmbmJzcDtcIiBuZXh0TGFiZWw9XCImbmJzcDsmbmJzcDsmbmJzcDvCu1wiXHJcbiAgICAgICAgICAgICAgIFttYXhTaXplXT1cIjVcIj5cclxuICAgICAgICAgICAgPC9wYWdpbmF0aW9uLWNvbnRyb2xzPlxyXG4gICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgPCEtLSAjZW5kcmVnaW9uIFBBR0lOQcOHw4NPIC0tPlxyXG4gICAgICA8L2Rpdj5cclxuICAgPC9kaXY+XHJcbn0gQGVsc2Uge1xyXG4gICA8IS0tIExvYWRlciBlbnF1YW50byBvcyByZWdpc3Ryb3Mgc8OjbyBjYXJyZWdhZG9zIC0tPlxyXG4gICA8ZGl2IGNsYXNzPVwidy0xMDAgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNwaW5uZXItYm9yZGVyXCIgcm9sZT1cInN0YXR1c1wiPiA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPkNhcnJlZ2FuZG8gaW5mb3JtYcOnw7Vlcy4uLjwvc3Bhbj4gPC9kaXY+XHJcbiAgIDwvZGl2PlxyXG59XHJcbiJdfQ==
|