tnx-shared 5.3.367 → 5.3.368
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/tnx-shared.umd.js +3 -1
- package/bundles/tnx-shared.umd.js.map +1 -1
- package/bundles/tnx-shared.umd.min.js +1 -1
- package/bundles/tnx-shared.umd.min.js.map +1 -1
- package/esm2015/services/notifier.service.js +3 -2
- package/fesm2015/tnx-shared.js +2 -1
- package/fesm2015/tnx-shared.js.map +1 -1
- package/package.json +2 -2
- package/services/notifier.service.d.ts +1 -1
- package/services/notifier.service.d.ts.map +1 -1
|
@@ -329,13 +329,14 @@ export class NotifierService {
|
|
|
329
329
|
return this.showError(message, '', header);
|
|
330
330
|
}
|
|
331
331
|
}
|
|
332
|
-
showConfirm(message, header = 'Xác nhận', icon = 'pi pi-exclamation-triangle', acceptVisible = true, rejectLabel = this._translateService.instant('CONFIRM.REJECT_LABEL'), rejectIcon = 'pi pi-times', acceptLabel = this._translateService.instant('CONFIRM.ACCEPT_LABEL'), acceptIcon = 'pi pi-check', accept = null, rejectFunc = null, acceptButtonStyleClass = 'p-button-rounded p-button-text', rejectButtonStyleClass = '"p-button-rounded p-button-text p-button-secondary') {
|
|
332
|
+
showConfirm(message, header = 'Xác nhận', icon = 'pi pi-exclamation-triangle', acceptVisible = true, rejectLabel = this._translateService.instant('CONFIRM.REJECT_LABEL'), rejectIcon = 'pi pi-times', acceptLabel = this._translateService.instant('CONFIRM.ACCEPT_LABEL'), acceptIcon = 'pi pi-check', accept = null, rejectFunc = null, acceptButtonStyleClass = 'p-button-rounded p-button-text', rejectButtonStyleClass = '"p-button-rounded p-button-text p-button-secondary', rejectVisible = true) {
|
|
333
333
|
return new Promise((resolve, reject) => {
|
|
334
334
|
this._confirmService.confirm({
|
|
335
335
|
message,
|
|
336
336
|
header: header,
|
|
337
337
|
icon: icon,
|
|
338
338
|
acceptVisible,
|
|
339
|
+
rejectVisible,
|
|
339
340
|
acceptIcon: acceptIcon,
|
|
340
341
|
acceptLabel: acceptLabel,
|
|
341
342
|
rejectLabel,
|
|
@@ -428,4 +429,4 @@ export var NotifierType;
|
|
|
428
429
|
NotifierType[NotifierType["CONFIRM"] = 0] = "CONFIRM";
|
|
429
430
|
NotifierType[NotifierType["ERROR"] = 1] = "ERROR";
|
|
430
431
|
})(NotifierType || (NotifierType = {}));
|
|
431
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi9zZXJ2aWNlcy9ub3RpZmllci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBVyxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUdyRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQUs5RCxNQUFNLE9BQU8sZUFBZTtJQUt4QixZQUNZLGVBQStCLEVBQy9CLGVBQW9DLEVBQ3BDLG9CQUF5QyxFQUNqRCxTQUFtQjtRQUhYLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUMvQixvQkFBZSxHQUFmLGVBQWUsQ0FBcUI7UUFDcEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtRQVA3QyxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBVXBCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxDQUFDLFdBQVcsQ0FBQztRQUNyRSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxVQUFVLENBQUMsT0FHUCxFQUFFO1FBQ0YsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1YsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1NBQy9CO1FBQ0QsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztTQUNsRDtRQUVELElB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aUJBQWlCLENBQUMsSUFBZTtRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNwQixDQUFDOzs7O1lBOWRKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7O1lBUHNDLGNBQWM7WUFBNUMsbUJBQW1CO1lBR25CLG1CQUFtQjtZQUxQLFFBQVE7O0FBd2U3QixNQUFNLENBQU4sSUFBWSxZQUdYO0FBSEQsV0FBWSxZQUFZO0lBQ3BCLHFEQUFPLENBQUE7SUFDUCxpREFBSyxDQUFBO0FBQ1QsQ0FBQyxFQUhXLFlBQVksS0FBWixZQUFZLFFBR3ZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UsIE1lc3NhZ2UsIE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAndG4tY3VzdG9tLXByaW1lbmcvYXBpJztcblxuaW1wb3J0IHsgUmVzcG9uc2VSZXN1bHQgfSBmcm9tICcuLi9tb2RlbHMvcmVzcG9uc2UtcmVzdWx0JztcbmltcG9ydCB7IE1vZHVsZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL21vZHVsZS1jb25maWcuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTm90aWZpZXJTZXJ2aWNlIHtcbiAgICBwcml2YXRlIF90aW1lT3V0ID0gNTAwMDtcbiAgICBlbnZpcm9ubWVudDogYW55O1xuICAgIHByaXZhdGUgX3RyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9jb25maXJtU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfbW9kdWxlQ29uZmlnU2VydmljZTogTW9kdWxlQ29uZmlnU2VydmljZSxcbiAgICAgICAgX2luamVjdG9yOiBJbmplY3RvclxuICAgICkge1xuICAgICAgICB0aGlzLmVudmlyb25tZW50ID0gdGhpcy5fbW9kdWxlQ29uZmlnU2VydmljZS5nZXRDb25maWcoKS5lbnZpcm9ubWVudDtcbiAgICAgICAgdGhpcy5fdHJhbnNsYXRlU2VydmljZSA9IF9pbmplY3Rvci5nZXQoVHJhbnNsYXRlU2VydmljZSk7XG4gICAgfVxuXG4gICAgc2V0U2VydmljZShvcHRzOiB7XG4gICAgICAgIGVudj86IGFueSwgdHJhbnNsYXRlU2VydmljZT86IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIG1lc3NhZ2VTZXJ2aWNlPzogTWVzc2FnZVNlcnZpY2UsIGNvbmZpcm1TZXJ2aWNlPzogQ29uZmlybWF0aW9uU2VydmljZTtcbiAgICB9ID0ge30pIHtcbiAgICAgICAgaWYgKG9wdHMuZW52KSB7XG4gICAgICAgICAgICB0aGlzLmVudmlyb25tZW50ID0gb3B0cy5lbnY7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdHMudHJhbnNsYXRlU2VydmljZSkge1xuICAgICAgICAgICAgdGhpcy5fdHJhbnNsYXRlU2VydmljZSA9IG9wdHMudHJhbnNsYXRlU2VydmljZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRzLm1lc3NhZ2VTZXJ2aWNlKSB7XG4gICAgICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZSA9IG9wdHMubWVzc2FnZVNlcnZpY2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0cy5jb25maXJtU2VydmljZSkge1xuICAgICAgICAgICAgdGhpcy5fY29uZmlybVNlcnZpY2UgPSBvcHRzLmNvbmZpcm1TZXJ2aWNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2hvd1N1Y2Nlc3MobWVzc2FnZTogc3RyaW5nLCBoZWFkZXI6IHN0cmluZyA9ICdUaMO0bmcgYsOhbycsIGxpZmU6IG51bWJlciA9IHRoaXMuX3RpbWVPdXQpIHtcbiAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgIHNldmVyaXR5OiAnc3VjY2VzcycsXG4gICAgICAgICAgICBzdW1tYXJ5OiBoZWFkZXIsXG4gICAgICAgICAgICBkZXRhaWw6IG1lc3NhZ2UsXG4gICAgICAgICAgICBsaWZlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNob3dJbnNlcnREYXRhU3VjY2VzcyhsaWZlOiBudW1iZXIgPSB0aGlzLl90aW1lT3V0KSB7XG4gICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICBzZXZlcml0eTogJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgc3VtbWFyeTogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkNPTU1PTl9TVUNDRVNTX0hFQURFUicpLFxuICAgICAgICAgICAgZGV0YWlsOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuSU5TRVJUX0RBVEFfU1VDQ0VTUycpLFxuICAgICAgICAgICAgbGlmZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzaG93VXBkYXRlRGF0YVN1Y2Nlc3MobGlmZTogbnVtYmVyID0gdGhpcy5fdGltZU91dCkge1xuICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgc2V2ZXJpdHk6ICdzdWNjZXNzJyxcbiAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fU1VDQ0VTU19IRUFERVInKSxcbiAgICAgICAgICAgIGRldGFpbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLlVQREFURV9EQVRBX1NVQ0NFU1MnKSxcbiAgICAgICAgICAgIGxpZmVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2hvd0RlbGV0ZURhdGFTdWNjZXNzKGxpZmU6IG51bWJlciA9IHRoaXMuX3RpbWVPdXQpIHtcbiAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgIHNldmVyaXR5OiAnc3VjY2VzcycsXG4gICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuQ09NTU9OX1NVQ0NFU1NfSEVBREVSJyksXG4gICAgICAgICAgICBkZXRhaWw6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5ERUxFVEVfREFUQV9TVUNDRVNTJyksXG4gICAgICAgICAgICBsaWZlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNob3dEZWxldGVEYXRhRXJyb3IobGlmZTogbnVtYmVyID0gdGhpcy5fdGltZU91dCkge1xuICAgICAgICBpZiAodGhpcy5lbnZpcm9ubWVudCAmJiAhdGhpcy5lbnZpcm9ubWVudC5zaG93RXJyb3JNZXNzYWdlSW5Ub2FzdCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignZXJyb3IgbWVzYWdlIGluIHRvYXN0IGhhcyBkaXNhYmxlZCBmcm9tIGVudmlyb25tZW50IHNldHRpbmcsIGRldGFpbCBtZXNzYWdlOiAnLCB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuREVMRVRFX0RBVEFfRVJST1InKSxcbiAgICAgICAgICAgICAgICB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuQ09NTU9OX0VSUk9SX0hFQURFUicpKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXG4gICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuQ09NTU9OX0VSUk9SX0hFQURFUicpLFxuICAgICAgICAgICAgZGV0YWlsOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuREVMRVRFX0RBVEFfRVJST1InKSxcbiAgICAgICAgICAgIGxpZmVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2hvd0RlbGV0ZURhdGFFbXB0eUVycm9yKGxpZmU6IG51bWJlciA9IHRoaXMuX3RpbWVPdXQpIHtcbiAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxuICAgICAgICAgICAgc3VtbWFyeTogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkNPTU1PTl9FUlJPUl9IRUFERVInKSxcbiAgICAgICAgICAgIGRldGFpbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdC4bqhbiBwaOG6o2kgY2jhu41uIMOtdCBuaOG6pXQgMSBi4bqjbiBnaGkgxJHhu4MgeMOzYScpLFxuICAgICAgICAgICAgbGlmZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzaG93RHVwbGljYXRlRGF0YUVycm9yKGxpZmU6IG51bWJlciA9IHRoaXMuX3RpbWVPdXQpIHtcbiAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxuICAgICAgICAgICAgc3VtbWFyeTogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkNPTU1PTl9FUlJPUl9IRUFERVInKSxcbiAgICAgICAgICAgIGRldGFpbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNw6MgY+G7mXQga2jDtG5nIHRo4buDIGLhu4sgdHLDuW5nIGzhurdwJyksXG4gICAgICAgICAgICBsaWZlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNob3dXYXJuaW5nKG1lc3NhZ2U6IHN0cmluZywgaGVhZGVyOiBzdHJpbmcgPSAnVGjDtG5nIGLDoW8nLCBsaWZlOiBudW1iZXIgPSB0aGlzLl90aW1lT3V0KSB7XG4gICAgICAgIGlmICh0aGlzLmVudmlyb25tZW50ICYmICF0aGlzLmVudmlyb25tZW50LnNob3dXYXJuaW5nTWVzc2FnZUluVG9hc3QpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignZXJyb3IgbWVzYWdlIGluIHRvYXN0IGhhcyBkaXNhYmxlZCBmcm9tIGVudmlyb25tZW50IHNldHRpbmcsIGRldGFpbCBtZXNzYWdlOiAnLCBoZWFkZXIsIG1lc3NhZ2UpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICBzZXZlcml0eTogJ3dhcm4nLFxuICAgICAgICAgICAgc3VtbWFyeTogaGVhZGVyLFxuICAgICAgICAgICAgZGV0YWlsOiBtZXNzYWdlLFxuICAgICAgICAgICAgbGlmZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzaG93RXJyb3IobWVzc2FnZTogc3RyaW5nLCBrZXk6IHN0cmluZyA9ICcnLCBoZWFkZXI6IHN0cmluZyA9ICdM4buXaScsIGxpZmU6IG51bWJlciA9IHRoaXMuX3RpbWVPdXQpIHtcbiAgICAgICAgaWYgKHRoaXMuZW52aXJvbm1lbnQgJiYgIXRoaXMuZW52aXJvbm1lbnQuc2hvd0Vycm9yTWVzc2FnZUluVG9hc3QpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ2Vycm9yIG1lc2FnZSBpbiB0b2FzdCBoYXMgZGlzYWJsZWQgZnJvbSBlbnZpcm9ubWVudCBzZXR0aW5nLCBkZXRhaWwgbWVzc2FnZTogJywgbWVzc2FnZSwgaGVhZGVyKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxuICAgICAgICAgICAgICAgIHN1bW1hcnk6IGhlYWRlcixcbiAgICAgICAgICAgICAgICBkZXRhaWw6IG1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgbGlmZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxuICAgICAgICAgICAgICAgIHN1bW1hcnk6IGhlYWRlcixcbiAgICAgICAgICAgICAgICBkZXRhaWw6IG1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgbGlmZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzaG93RXhjZXB0aW9uKGVycjogYW55LCBoZWFkZXI6IHN0cmluZyA9ICdUaMO0bmcgYsOhbycsIGxpZmU6IG51bWJlciA9IHRoaXMuX3RpbWVPdXQpIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9ICdDw7MgbOG7l2kgeOG6o3kgcmEuIExpw6puIGjhu4cgcXXhuqNuIHRy4buLIHZpw6puIMSR4buDIGJp4bq/dCB0aMOqbSBjaGkgdGnhur90ISc7XG4gICAgICAgIGlmICh0aGlzLmVudmlyb25tZW50ICYmICF0aGlzLmVudmlyb25tZW50LnNob3dXYXJuaW5nTWVzc2FnZUluVG9hc3QpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignZXJyb3IgbWVzYWdlIGluIHRvYXN0IGhhcyBkaXNhYmxlZCBmcm9tIGVudmlyb25tZW50IHNldHRpbmcsIGRldGFpbCBtZXNzYWdlOiAnLCBoZWFkZXIsIG1lc3NhZ2UpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICBzZXZlcml0eTogJ3dhcm4nLFxuICAgICAgICAgICAgc3VtbWFyeTogaGVhZGVyLFxuICAgICAgICAgICAgZGV0YWlsOiBtZXNzYWdlLFxuICAgICAgICAgICAgbGlmZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzaG93V2FybmluZ0J5UmVzcG9uc2UocmVzOiBSZXNwb25zZVJlc3VsdCkge1xuICAgICAgICBsZXQgbWVzc2FnZSA9IHJlcy5tZXNzYWdlO1xuICAgICAgICBpZiAoIW1lc3NhZ2UpIHtcbiAgICAgICAgICAgIG1lc3NhZ2UgPSByZXMuZXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zaG93V2FybmluZyhtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBzaG93QnVzaW5lc3NFcnJvcihtZXNzYWdlOiBzdHJpbmcsIGtleTogc3RyaW5nID0gJycsIGhlYWRlcjogc3RyaW5nID0gJ0zhu5dpJywgbGlmZTogbnVtYmVyID0gdGhpcy5fdGltZU91dCkge1xuICAgICAgICBpZiAoa2V5KSB7XG4gICAgICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICBzdW1tYXJ5OiBoZWFkZXIsXG4gICAgICAgICAgICAgICAgZGV0YWlsOiBtZXNzYWdlLFxuICAgICAgICAgICAgICAgIGxpZmVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICBzdW1tYXJ5OiBoZWFkZXIsXG4gICAgICAgICAgICAgICAgZGV0YWlsOiBtZXNzYWdlLFxuICAgICAgICAgICAgICAgIGxpZmVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2hvd0h0dHBVbmtub3dFcnJvcihsaWZlOiBudW1iZXIgPSB0aGlzLl90aW1lT3V0KSB7XG4gICAgICAgIGlmICh0aGlzLmVudmlyb25tZW50ICYmICF0aGlzLmVudmlyb25tZW50LnNob3dFcnJvck1lc3NhZ2VJblRvYXN0KSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdlcnJvciBtZXNhZ2UgaW4gdG9hc3QgaGFzIGRpc2FibGVkIGZyb20gZW52aXJvbm1lbnQgc2V0dGluZywgZGV0YWlsIG1lc3NhZ2U6ICcsXG4gICAgICAgICAgICAgICAgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkhUVFBfVU5LTk9XX0VSUk9SX0hFQURFUicpLCB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuSFRUUF9VTktOT1dfRVJST1InKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXG4gICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuSFRUUF9VTktOT1dfRVJST1JfSEVBREVSJyksXG4gICAgICAgICAgICBkZXRhaWw6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5IVFRQX1VOS05PV19FUlJPUicpLFxuICAgICAgICAgICAgbGlmZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzaG93UmVzcG9uc2VFcnJvcihzdGF0dXM6IG51bWJlciwgbGlmZTogbnVtYmVyID0gdGhpcy5fdGltZU91dCwgc2VydmljZU5hbWU6IHN0cmluZyA9ICcnKSB7XG4gICAgICAgIGlmICh0aGlzLmVudmlyb25tZW50ICYmICF0aGlzLmVudmlyb25tZW50LnNob3dFcnJvck1lc3NhZ2VJblRvYXN0KSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdlcnJvciBtZXNhZ2UgaW4gdG9hc3QgaGFzIGRpc2FibGVkIGZyb20gZW52aXJvbm1lbnQgc2V0dGluZywgZGV0YWlsIHN0YXR1cyBjb2RlOiAnLCBzdGF0dXMpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGF0dXMgPT09IDQwNCkge1xuICAgICAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuQ09NTU9OX0VSUk9SX0hFQURFUicpLFxuICAgICAgICAgICAgICAgIGRldGFpbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLk5PVF9GT1VORF9FUlJPUicpLFxuICAgICAgICAgICAgICAgIGxpZmVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHN0YXR1cyA9PT0gNDAxKSB7XG4gICAgICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxuICAgICAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fRVJST1JfSEVBREVSJyksXG4gICAgICAgICAgICAgICAgZGV0YWlsOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuVU5BVVRIT1JJWkVEX0VSUk9SJyksXG4gICAgICAgICAgICAgICAgbGlmZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoc3RhdHVzID09PSA0MDMpIHtcbiAgICAgICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgc3VtbWFyeTogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkNPTU1PTl9FUlJPUl9IRUFERVInKSxcbiAgICAgICAgICAgICAgICBkZXRhaWw6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5BQ0NFU1NfREVOSU5FRF9FUlJPUicpLFxuICAgICAgICAgICAgICAgIGxpZmVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHN0YXR1cyA9PT0gNTAwKSB7XG4gICAgICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxuICAgICAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fRVJST1JfSEVBREVSJyksXG4gICAgICAgICAgICAgICAgZGV0YWlsOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuSU5URVJOQUxfU0VSVkVSX0VSUk9SJyksXG4gICAgICAgICAgICAgICAgbGlmZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoc3RhdHVzID09PSA0MDkpIHtcbiAgICAgICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgc3VtbWFyeTogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkNPTU1PTl9FUlJPUl9IRUFERVInKSxcbiAgICAgICAgICAgICAgICBkZXRhaWw6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT05GTElDVF9FUlJPUicpLFxuICAgICAgICAgICAgICAgIGxpZmVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHN0YXR1cyA9PT0gNDAwKSB7XG4gICAgICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxuICAgICAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fRVJST1JfSEVBREVSJyksXG4gICAgICAgICAgICAgICAgZGV0YWlsOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ1Z1aSBsw7JuZyBraeG7g20gdHJhIGThu68gbGnhu4d1IMSR4bqndSB2w6BvJyksXG4gICAgICAgICAgICAgICAgbGlmZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoc3RhdHVzID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxuICAgICAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fRVJST1JfSEVBREVSJyksXG4gICAgICAgICAgICAgICAgZGV0YWlsOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoYFZ1aSBsw7JuZyBraeG7g20gdHJhIGzhuqFpIGThu4tjaCB24bulICR7c2VydmljZU5hbWV9YCksXG4gICAgICAgICAgICAgICAgbGlmZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzaG93SW5zZXJ0RGF0YUZhaWxlZChsaWZlOiBudW1iZXIgPSB0aGlzLl90aW1lT3V0KSB7XG4gICAgICAgIGlmICh0aGlzLmVudmlyb25tZW50ICYmICF0aGlzLmVudmlyb25tZW50LnNob3dFcnJvck1lc3NhZ2VJblRvYXN0KSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdlcnJvciBtZXNhZ2UgaW4gdG9hc3QgaGFzIGRpc2FibGVkIGZyb20gZW52aXJvbm1lbnQgc2V0dGluZywgZGV0YWlsIHN0YXR1cyBjb2RlOiAnLFxuICAgICAgICAgICAgICAgIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5JTlNFUlRfREFUQV9GQUlMRUQnKSwgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkNPTU1PTl9FUlJPUl9IRUFERVInKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxuICAgICAgICAgICAgc3VtbWFyeTogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkNPTU1PTl9FUlJPUl9IRUFERVInKSxcbiAgICAgICAgICAgIGRldGFpbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLklOU0VSVF9EQVRBX0ZBSUxFRCcpLFxuICAgICAgICAgICAgbGlmZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzaG93VXBkYXRlRGF0YUZhaWxlZChsaWZlOiBudW1iZXIgPSB0aGlzLl90aW1lT3V0KSB7XG4gICAgICAgIGlmICh0aGlzLmVudmlyb25tZW50ICYmICF0aGlzLmVudmlyb25tZW50LnNob3dFcnJvck1lc3NhZ2VJblRvYXN0KSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdlcnJvciBtZXNhZ2UgaW4gdG9hc3QgaGFzIGRpc2FibGVkIGZyb20gZW52aXJvbm1lbnQgc2V0dGluZywgZGV0YWlsIHN0YXR1cyBjb2RlOiAnLFxuICAgICAgICAgICAgICAgIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5VUERBVEVfREFUQV9GQUlMRUQnKSwgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkNPTU1PTl9FUlJPUl9IRUFERVInKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxuICAgICAgICAgICAgc3VtbWFyeTogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkNPTU1PTl9FUlJPUl9IRUFERVInKSxcbiAgICAgICAgICAgIGRldGFpbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLlVQREFURV9EQVRBX0ZBSUxFRCcpLFxuICAgICAgICAgICAgbGlmZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzaG93TG9ja1VzZXJGYWlsZWQobGlmZTogbnVtYmVyID0gdGhpcy5fdGltZU91dCkge1xuICAgICAgICBpZiAodGhpcy5lbnZpcm9ubWVudCAmJiAhdGhpcy5lbnZpcm9ubWVudC5zaG93RXJyb3JNZXNzYWdlSW5Ub2FzdCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignZXJyb3IgbWVzYWdlIGluIHRvYXN0IGhhcyBkaXNhYmxlZCBmcm9tIGVudmlyb25tZW50IHNldHRpbmcsIGRldGFpbCBzdGF0dXMgY29kZTogJyxcbiAgICAgICAgICAgICAgICB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0tow7NhIG5nxrDhu51pIGTDuW5nIHRo4bqldCBi4bqhaScpLCB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuQ09NTU9OX0VSUk9SX0hFQURFUicpKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXG4gICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuQ09NTU9OX0VSUk9SX0hFQURFUicpLFxuICAgICAgICAgICAgZGV0YWlsOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0tow7NhIG5nxrDhu51pIGTDuW5nIHRo4bqldCBi4bqhaScpLFxuICAgICAgICAgICAgbGlmZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzaG93VW5sb2NrVXNlckZhaWxlZChsaWZlOiBudW1iZXIgPSB0aGlzLl90aW1lT3V0KSB7XG4gICAgICAgIGlmICh0aGlzLmVudmlyb25tZW50ICYmICF0aGlzLmVudmlyb25tZW50LnNob3dFcnJvck1lc3NhZ2VJblRvYXN0KSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdlcnJvciBtZXNhZ2UgaW4gdG9hc3QgaGFzIGRpc2FibGVkIGZyb20gZW52aXJvbm1lbnQgc2V0dGluZywgZGV0YWlsIHN0YXR1cyBjb2RlOiAnLFxuICAgICAgICAgICAgICAgIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTeG7nyBraMOzYSBuZ8aw4budaSBkw7luZyB0aOG6pXQgYuG6oWknKSwgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkNPTU1PTl9FUlJPUl9IRUFERVInKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxuICAgICAgICAgICAgc3VtbWFyeTogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkNPTU1PTl9FUlJPUl9IRUFERVInKSxcbiAgICAgICAgICAgIGRldGFpbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdN4bufIGtow7NhIG5nxrDhu51pIGTDuW5nIHRo4bqldCBi4bqhaScpLFxuICAgICAgICAgICAgbGlmZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzaG93VXBkYXRlRGF0YVNpbmdsZUZhaWxlZChsaWZlOiBudW1iZXIgPSB0aGlzLl90aW1lT3V0KSB7XG4gICAgICAgIGlmICh0aGlzLmVudmlyb25tZW50ICYmICF0aGlzLmVudmlyb25tZW50LnNob3dFcnJvck1lc3NhZ2VJblRvYXN0KSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdlcnJvciBtZXNhZ2UgaW4gdG9hc3QgaGFzIGRpc2FibGVkIGZyb20gZW52aXJvbm1lbnQgc2V0dGluZywgZGV0YWlsIHN0YXR1cyBjb2RlOiAnLFxuICAgICAgICAgICAgICAgIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTcOjIGhv4bq3YyB0w6puIGRhbmggbeG7pWMgxJHDoyB04buTbiB04bqhaScpLCB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuQ09NTU9OX0VSUk9SX0hFQURFUicpKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXG4gICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuQ09NTU9OX0VSUk9SX0hFQURFUicpLFxuICAgICAgICAgICAgZGV0YWlsOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ03DoyBob+G6t2MgdMOqbiBkYW5oIG3hu6VjIMSRw6MgdOG7k24gdOG6oWknKSxcbiAgICAgICAgICAgIGxpZmVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2hvd1VwZGF0ZURhdGFDb25maWd1cmF0aW9uRmFpbGVkKGxpZmU6IG51bWJlciA9IHRoaXMuX3RpbWVPdXQpIHtcbiAgICAgICAgaWYgKHRoaXMuZW52aXJvbm1lbnQgJiYgIXRoaXMuZW52aXJvbm1lbnQuc2hvd0Vycm9yTWVzc2FnZUluVG9hc3QpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ2Vycm9yIG1lc2FnZSBpbiB0b2FzdCBoYXMgZGlzYWJsZWQgZnJvbSBlbnZpcm9ubWVudCBzZXR0aW5nLCBkZXRhaWwgc3RhdHVzIGNvZGU6ICcsXG4gICAgICAgICAgICAgICAgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdN4bqtdCBraOG6qXUga2jDtG5nIMSRxrDhu6NjIMSR4buDIHRy4buRbmcnKSwgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkNPTU1PTl9FUlJPUl9IRUFERVInKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxuICAgICAgICAgICAgc3VtbWFyeTogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkNPTU1PTl9FUlJPUl9IRUFERVInKSxcbiAgICAgICAgICAgIGRldGFpbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdN4bqtdCBraOG6qXUga2jDtG5nIMSRxrDhu6NjIMSR4buDIHRy4buRbmcnKSxcbiAgICAgICAgICAgIGxpZmVcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHNob3dCbG9iRXJyb3IoZXJyb3IpIHtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgQmxvYikge1xuICAgICAgICAgICAgLy8gQ29udmVydCBCbG9iIHRvIEpTT04gT2JqZWN0IGlmIHBvc3NpYmxlXG4gICAgICAgICAgICByZXR1cm4gZXJyb3IudGV4dCgpLnRoZW4odGV4dCA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3JPYmplY3QgPSBKU09OLnBhcnNlKHRleHQpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNob3dXYXJuaW5nKGVycm9yT2JqZWN0Lm1lc3NhZ2UpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBSZXR1cm4gdGhlIGVycm9yIG9iamVjdCBkaXJlY3RseVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2hvd0V4Y2VwdGlvbihudWxsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdlbmVyaWNTaG93KG1lc3NhZ2U6IHN0cmluZyxcbiAgICAgICAgaGVhZGVyOiBzdHJpbmcsXG4gICAgICAgIGljb246IHN0cmluZyxcbiAgICAgICAgYWNjZXB0VmlzaWJsZTogYm9vbGVhbixcbiAgICAgICAgYWNjZXB0TGFiZWw6IHN0cmluZyA9ICcnLFxuICAgICAgICBhY2NlcHRJY29uOiBzdHJpbmcgPSAnJyxcbiAgICAgICAgcmVqZWN0TGFiZWw6IHN0cmluZyA9ICcnLFxuICAgICAgICByZWplY3RJY29uOiBzdHJpbmcgPSAnJyxcbiAgICAgICAgYWNjZXB0OiBGdW5jdGlvbiA9IG51bGwsXG4gICAgICAgIHJlamVjdDogRnVuY3Rpb24gPSBudWxsLFxuICAgICAgICBub3RpZmllclR5cGU6IE5vdGlmaWVyVHlwZSkge1xuICAgICAgICBzd2l0Y2ggKG5vdGlmaWVyVHlwZSkge1xuICAgICAgICAgICAgY2FzZSBOb3RpZmllclR5cGUuQ09ORklSTTpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zaG93Q29uZmlybShtZXNzYWdlLCBoZWFkZXIsIGljb24sIGFjY2VwdFZpc2libGUsIHJlamVjdExhYmVsLCByZWplY3RJY29uLCBhY2NlcHRMYWJlbCwgYWNjZXB0SWNvbiwgYWNjZXB0LCByZWplY3QsKTtcbiAgICAgICAgICAgIGNhc2UgTm90aWZpZXJUeXBlLkVSUk9SOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNob3dFcnJvcihtZXNzYWdlLCAnJywgaGVhZGVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNob3dDb25maXJtKFxuICAgICAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgICAgIGhlYWRlcjogc3RyaW5nID0gJ1jDoWMgbmjhuq1uJyxcbiAgICAgICAgaWNvbjogc3RyaW5nID0gJ3BpIHBpLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlJyxcbiAgICAgICAgYWNjZXB0VmlzaWJsZTogYm9vbGVhbiA9IHRydWUsXG4gICAgICAgIHJlamVjdExhYmVsOiBzdHJpbmcgPSB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0NPTkZJUk0uUkVKRUNUX0xBQkVMJyksXG4gICAgICAgIHJlamVjdEljb246IHN0cmluZyA9ICdwaSBwaS10aW1lcycsXG4gICAgICAgIGFjY2VwdExhYmVsOiBzdHJpbmcgPSB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0NPTkZJUk0uQUNDRVBUX0xBQkVMJyksXG4gICAgICAgIGFjY2VwdEljb246IHN0cmluZyA9ICdwaSBwaS1jaGVjaycsXG4gICAgICAgIGFjY2VwdDogRnVuY3Rpb24gPSBudWxsLFxuICAgICAgICByZWplY3RGdW5jOiBGdW5jdGlvbiA9IG51bGwsXG4gICAgICAgIGFjY2VwdEJ1dHRvblN0eWxlQ2xhc3MgPSAncC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi10ZXh0JyxcbiAgICAgICAgcmVqZWN0QnV0dG9uU3R5bGVDbGFzcyA9ICdcInAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tdGV4dCBwLWJ1dHRvbi1zZWNvbmRhcnknLFxuXG4gICAgKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2NvbmZpcm1TZXJ2aWNlLmNvbmZpcm0oe1xuICAgICAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgaGVhZGVyOiBoZWFkZXIsXG4gICAgICAgICAgICAgICAgaWNvbjogaWNvbixcbiAgICAgICAgICAgICAgICBhY2NlcHRWaXNpYmxlLFxuICAgICAgICAgICAgICAgIGFjY2VwdEljb246IGFjY2VwdEljb24sXG4gICAgICAgICAgICAgICAgYWNjZXB0TGFiZWw6IGFjY2VwdExhYmVsLFxuICAgICAgICAgICAgICAgIHJlamVjdExhYmVsLFxuICAgICAgICAgICAgICAgIHJlamVjdEljb24sXG4gICAgICAgICAgICAgICAgYWNjZXB0QnV0dG9uU3R5bGVDbGFzcyxcbiAgICAgICAgICAgICAgICByZWplY3RCdXR0b25TdHlsZUNsYXNzLFxuICAgICAgICAgICAgICAgIGFjY2VwdDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoYWNjZXB0KSBhY2NlcHQoKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJlamVjdDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoYWNjZXB0VmlzaWJsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlamVjdEZ1bmMpIHJlamVjdEZ1bmMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNob3dDb25maXJtTWFueShcbiAgICAgICAgbWVzc2FnZTogc3RyaW5nLFxuICAgICAgICB0aW1lOiBudW1iZXIgPSAyLCBkZWxheTogbnVtYmVyID0gMTAwLFxuICAgICAgICBoZWFkZXI6IHN0cmluZyA9ICcnLCBpY29uOiBzdHJpbmcgPSAnJywgYWNjZXB0VmlzaWJsZTogYm9vbGVhbiA9IHRydWUsIHJlamVjdExhYmVsOiBzdHJpbmcgPSB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0NPTkZJUk0uUkVKRUNUX0xBQkVMJyksIGRlbGF5VGltZW91dDogbnVtYmVyID0gMCk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGYgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NvbmZpcm1TZXJ2aWNlLmNvbmZpcm0oe1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXI6IGhlYWRlciA/IGhlYWRlciA6ICdYw6FjIG5o4bqtbicsXG4gICAgICAgICAgICAgICAgICAgIGljb246IGljb24gPyBpY29uIDogJ3BpIHBpLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlJyxcbiAgICAgICAgICAgICAgICAgICAgYWNjZXB0TGFiZWw6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnQ09ORklSTS5BQ0NFUFRfTEFCRUwnKSxcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0TGFiZWwsXG4gICAgICAgICAgICAgICAgICAgIGFjY2VwdFZpc2libGUsXG4gICAgICAgICAgICAgICAgICAgIGFjY2VwdDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRpbWUgPT0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3dDb25maXJtTWFueShtZXNzYWdlLCB0aW1lIC0gMSwgZGVsYXksIGhlYWRlciwgaWNvbiwgYWNjZXB0VmlzaWJsZSwgcmVqZWN0TGFiZWwsIGRlbGF5KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbihyZXMgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShyZXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWNjZXB0VmlzaWJsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LCBkZWxheVRpbWVvdXQpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzaG93RGVsZXRlQ29uZmlybShtZXNzYWdlOiBzdHJpbmcgPSAnJywgaWNvbjogc3RyaW5nID0gJycpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fY29uZmlybVNlcnZpY2UuY29uZmlybSh7XG4gICAgICAgICAgICAgICAgbWVzc2FnZTogbWVzc2FnZSA/IG1lc3NhZ2UgOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0NPTkZJUk0uREVGQVVMVF9ERUxFVEVfQ09ORklSTScpLFxuICAgICAgICAgICAgICAgIGhlYWRlcjogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdDT05GSVJNLkRFRkFVTFRfREVMRVRFX0NPTkZJUk1fVElUTEUnKSxcbiAgICAgICAgICAgICAgICBpY29uOiBpY29uID8gaWNvbiA6ICdwaSBwaS10cmFzaCcsXG4gICAgICAgICAgICAgICAgYWNjZXB0TGFiZWw6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnQ09ORklSTS5BQ0NFUFRfTEFCRUwnKSxcbiAgICAgICAgICAgICAgICByZWplY3RMYWJlbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdDT05GSVJNLlJFSkVDVF9MQUJFTCcpLFxuICAgICAgICAgICAgICAgIGFjY2VwdDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcmVqZWN0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBhZGRFcnJvck1lc3NhZ2UobXNnczogTWVzc2FnZVtdLCBjb250ZW50KSB7XG4gICAgICAgIG1zZ3MucHVzaCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnRXJyb3IgTWVzc2FnZScsIGRldGFpbDogJ1ZhbGlkYXRpb24gZmFpbGVkJyB9KTtcbiAgICB9XG5cbiAgICBjbGVhckVycm9yTWVzc2FnZShtc2dzOiBNZXNzYWdlW10pIHtcbiAgICAgICAgbXNncy5sZW5ndGggPSAwO1xuICAgIH1cbn1cblxuZXhwb3J0IGVudW0gTm90aWZpZXJUeXBlIHtcbiAgICBDT05GSVJNLFxuICAgIEVSUk9SXG59XG4iXX0=
|
|
432
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi9zZXJ2aWNlcy9ub3RpZmllci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBVyxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUdyRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQUs5RCxNQUFNLE9BQU8sZUFBZTtJQUt4QixZQUNZLGVBQStCLEVBQy9CLGVBQW9DLEVBQ3BDLG9CQUF5QyxFQUNqRCxTQUFtQjtRQUhYLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUMvQixvQkFBZSxHQUFmLGVBQWUsQ0FBcUI7UUFDcEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtRQVA3QyxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBVXBCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxDQUFDLFdBQVcsQ0FBQztRQUNyRSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxVQUFVLENBQUMsT0FHUCxFQUFFO1FBQ0YsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1YsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1NBQy9CO1FBQ0QsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztTQUNsRDtRQUVELElB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QUUsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxJQUFlO1FBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7Ozs7WUFoZUosVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCOzs7WUFQc0MsY0FBYztZQUE1QyxtQkFBbUI7WUFHbkIsbUJBQW1CO1lBTFAsUUFBUTs7QUEwZTdCLE1BQU0sQ0FBTixJQUFZLFlBR1g7QUFIRCxXQUFZLFlBQVk7SUFDcEIscURBQU8sQ0FBQTtJQUNQLGlEQUFLLENBQUE7QUFDVCxDQUFDLEVBSFcsWUFBWSxLQUFaLFlBQVksUUFHdkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSwgTWVzc2FnZSwgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICd0bi1jdXN0b20tcHJpbWVuZy9hcGknO1xuXG5pbXBvcnQgeyBSZXNwb25zZVJlc3VsdCB9IGZyb20gJy4uL21vZGVscy9yZXNwb25zZS1yZXN1bHQnO1xuaW1wb3J0IHsgTW9kdWxlQ29uZmlnU2VydmljZSB9IGZyb20gJy4vbW9kdWxlLWNvbmZpZy5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBOb3RpZmllclNlcnZpY2Uge1xuICAgIHByaXZhdGUgX3RpbWVPdXQgPSA1MDAwO1xuICAgIGVudmlyb25tZW50OiBhbnk7XG4gICAgcHJpdmF0ZSBfdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9tZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX2NvbmZpcm1TZXJ2aWNlOiBDb25maXJtYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9tb2R1bGVDb25maWdTZXJ2aWNlOiBNb2R1bGVDb25maWdTZXJ2aWNlLFxuICAgICAgICBfaW5qZWN0b3I6IEluamVjdG9yXG4gICAgKSB7XG4gICAgICAgIHRoaXMuZW52aXJvbm1lbnQgPSB0aGlzLl9tb2R1bGVDb25maWdTZXJ2aWNlLmdldENvbmZpZygpLmVudmlyb25tZW50O1xuICAgICAgICB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlID0gX2luamVjdG9yLmdldChUcmFuc2xhdGVTZXJ2aWNlKTtcbiAgICB9XG5cbiAgICBzZXRTZXJ2aWNlKG9wdHM6IHtcbiAgICAgICAgZW52PzogYW55LCB0cmFuc2xhdGVTZXJ2aWNlPzogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgbWVzc2FnZVNlcnZpY2U/OiBNZXNzYWdlU2VydmljZSwgY29uZmlybVNlcnZpY2U/OiBDb25maXJtYXRpb25TZXJ2aWNlO1xuICAgIH0gPSB7fSkge1xuICAgICAgICBpZiAob3B0cy5lbnYpIHtcbiAgICAgICAgICAgIHRoaXMuZW52aXJvbm1lbnQgPSBvcHRzLmVudjtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0cy50cmFuc2xhdGVTZXJ2aWNlKSB7XG4gICAgICAgICAgICB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlID0gb3B0cy50cmFuc2xhdGVTZXJ2aWNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9wdHMubWVzc2FnZVNlcnZpY2UpIHtcbiAgICAgICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlID0gb3B0cy5tZXNzYWdlU2VydmljZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRzLmNvbmZpcm1TZXJ2aWNlKSB7XG4gICAgICAgICAgICB0aGlzLl9jb25maXJtU2VydmljZSA9IG9wdHMuY29uZmlybVNlcnZpY2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzaG93U3VjY2VzcyhtZXNzYWdlOiBzdHJpbmcsIGhlYWRlcjogc3RyaW5nID0gJ1Row7RuZyBiw6FvJywgbGlmZTogbnVtYmVyID0gdGhpcy5fdGltZU91dCkge1xuICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgc2V2ZXJpdHk6ICdzdWNjZXNzJyxcbiAgICAgICAgICAgIHN1bW1hcnk6IGhlYWRlcixcbiAgICAgICAgICAgIGRldGFpbDogbWVzc2FnZSxcbiAgICAgICAgICAgIGxpZmVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2hvd0luc2VydERhdGFTdWNjZXNzKGxpZmU6IG51bWJlciA9IHRoaXMuX3RpbWVPdXQpIHtcbiAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgIHNldmVyaXR5OiAnc3VjY2VzcycsXG4gICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuQ09NTU9OX1NVQ0NFU1NfSEVBREVSJyksXG4gICAgICAgICAgICBkZXRhaWw6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5JTlNFUlRfREFUQV9TVUNDRVNTJyksXG4gICAgICAgICAgICBsaWZlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNob3dVcGRhdGVEYXRhU3VjY2VzcyhsaWZlOiBudW1iZXIgPSB0aGlzLl90aW1lT3V0KSB7XG4gICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICBzZXZlcml0eTogJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgc3VtbWFyeTogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkNPTU1PTl9TVUNDRVNTX0hFQURFUicpLFxuICAgICAgICAgICAgZGV0YWlsOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuVVBEQVRFX0RBVEFfU1VDQ0VTUycpLFxuICAgICAgICAgICAgbGlmZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzaG93RGVsZXRlRGF0YVN1Y2Nlc3MobGlmZTogbnVtYmVyID0gdGhpcy5fdGltZU91dCkge1xuICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgc2V2ZXJpdHk6ICdzdWNjZXNzJyxcbiAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fU1VDQ0VTU19IRUFERVInKSxcbiAgICAgICAgICAgIGRldGFpbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkRFTEVURV9EQVRBX1NVQ0NFU1MnKSxcbiAgICAgICAgICAgIGxpZmVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2hvd0RlbGV0ZURhdGFFcnJvcihsaWZlOiBudW1iZXIgPSB0aGlzLl90aW1lT3V0KSB7XG4gICAgICAgIGlmICh0aGlzLmVudmlyb25tZW50ICYmICF0aGlzLmVudmlyb25tZW50LnNob3dFcnJvck1lc3NhZ2VJblRvYXN0KSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdlcnJvciBtZXNhZ2UgaW4gdG9hc3QgaGFzIGRpc2FibGVkIGZyb20gZW52aXJvbm1lbnQgc2V0dGluZywgZGV0YWlsIG1lc3NhZ2U6ICcsIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5ERUxFVEVfREFUQV9FUlJPUicpLFxuICAgICAgICAgICAgICAgIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fRVJST1JfSEVBREVSJykpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fRVJST1JfSEVBREVSJyksXG4gICAgICAgICAgICBkZXRhaWw6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5ERUxFVEVfREFUQV9FUlJPUicpLFxuICAgICAgICAgICAgbGlmZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzaG93RGVsZXRlRGF0YUVtcHR5RXJyb3IobGlmZTogbnVtYmVyID0gdGhpcy5fdGltZU91dCkge1xuICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXG4gICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuQ09NTU9OX0VSUk9SX0hFQURFUicpLFxuICAgICAgICAgICAgZGV0YWlsOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0LhuqFuIHBo4bqjaSBjaOG7jW4gw610IG5o4bqldCAxIGLhuqNuIGdoaSDEkeG7gyB4w7NhJyksXG4gICAgICAgICAgICBsaWZlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNob3dEdXBsaWNhdGVEYXRhRXJyb3IobGlmZTogbnVtYmVyID0gdGhpcy5fdGltZU91dCkge1xuICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXG4gICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuQ09NTU9OX0VSUk9SX0hFQURFUicpLFxuICAgICAgICAgICAgZGV0YWlsOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ03DoyBj4buZdCBraMO0bmcgdGjhu4MgYuG7iyB0csO5bmcgbOG6t3AnKSxcbiAgICAgICAgICAgIGxpZmVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2hvd1dhcm5pbmcobWVzc2FnZTogc3RyaW5nLCBoZWFkZXI6IHN0cmluZyA9ICdUaMO0bmcgYsOhbycsIGxpZmU6IG51bWJlciA9IHRoaXMuX3RpbWVPdXQpIHtcbiAgICAgICAgaWYgKHRoaXMuZW52aXJvbm1lbnQgJiYgIXRoaXMuZW52aXJvbm1lbnQuc2hvd1dhcm5pbmdNZXNzYWdlSW5Ub2FzdCkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdlcnJvciBtZXNhZ2UgaW4gdG9hc3QgaGFzIGRpc2FibGVkIGZyb20gZW52aXJvbm1lbnQgc2V0dGluZywgZGV0YWlsIG1lc3NhZ2U6ICcsIGhlYWRlciwgbWVzc2FnZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgIHNldmVyaXR5OiAnd2FybicsXG4gICAgICAgICAgICBzdW1tYXJ5OiBoZWFkZXIsXG4gICAgICAgICAgICBkZXRhaWw6IG1lc3NhZ2UsXG4gICAgICAgICAgICBsaWZlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNob3dFcnJvcihtZXNzYWdlOiBzdHJpbmcsIGtleTogc3RyaW5nID0gJycsIGhlYWRlcjogc3RyaW5nID0gJ0zhu5dpJywgbGlmZTogbnVtYmVyID0gdGhpcy5fdGltZU91dCkge1xuICAgICAgICBpZiAodGhpcy5lbnZpcm9ubWVudCAmJiAhdGhpcy5lbnZpcm9ubWVudC5zaG93RXJyb3JNZXNzYWdlSW5Ub2FzdCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignZXJyb3IgbWVzYWdlIGluIHRvYXN0IGhhcyBkaXNhYmxlZCBmcm9tIGVudmlyb25tZW50IHNldHRpbmcsIGRldGFpbCBtZXNzYWdlOiAnLCBtZXNzYWdlLCBoZWFkZXIpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGtleSkge1xuICAgICAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgc3VtbWFyeTogaGVhZGVyLFxuICAgICAgICAgICAgICAgIGRldGFpbDogbWVzc2FnZSxcbiAgICAgICAgICAgICAgICBsaWZlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgc3VtbWFyeTogaGVhZGVyLFxuICAgICAgICAgICAgICAgIGRldGFpbDogbWVzc2FnZSxcbiAgICAgICAgICAgICAgICBsaWZlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNob3dFeGNlcHRpb24oZXJyOiBhbnksIGhlYWRlcjogc3RyaW5nID0gJ1Row7RuZyBiw6FvJywgbGlmZTogbnVtYmVyID0gdGhpcy5fdGltZU91dCkge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gJ0PDsyBs4buXaSB44bqjeSByYS4gTGnDqm4gaOG7hyBxdeG6o24gdHLhu4sgdmnDqm4gxJHhu4MgYmnhur90IHRow6ptIGNoaSB0aeG6v3QhJztcbiAgICAgICAgaWYgKHRoaXMuZW52aXJvbm1lbnQgJiYgIXRoaXMuZW52aXJvbm1lbnQuc2hvd1dhcm5pbmdNZXNzYWdlSW5Ub2FzdCkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdlcnJvciBtZXNhZ2UgaW4gdG9hc3QgaGFzIGRpc2FibGVkIGZyb20gZW52aXJvbm1lbnQgc2V0dGluZywgZGV0YWlsIG1lc3NhZ2U6ICcsIGhlYWRlciwgbWVzc2FnZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgIHNldmVyaXR5OiAnd2FybicsXG4gICAgICAgICAgICBzdW1tYXJ5OiBoZWFkZXIsXG4gICAgICAgICAgICBkZXRhaWw6IG1lc3NhZ2UsXG4gICAgICAgICAgICBsaWZlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNob3dXYXJuaW5nQnlSZXNwb25zZShyZXM6IFJlc3BvbnNlUmVzdWx0KSB7XG4gICAgICAgIGxldCBtZXNzYWdlID0gcmVzLm1lc3NhZ2U7XG4gICAgICAgIGlmICghbWVzc2FnZSkge1xuICAgICAgICAgICAgbWVzc2FnZSA9IHJlcy5lcnJvcjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNob3dXYXJuaW5nKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIHNob3dCdXNpbmVzc0Vycm9yKG1lc3NhZ2U6IHN0cmluZywga2V5OiBzdHJpbmcgPSAnJywgaGVhZGVyOiBzdHJpbmcgPSAnTOG7l2knLCBsaWZlOiBudW1iZXIgPSB0aGlzLl90aW1lT3V0KSB7XG4gICAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxuICAgICAgICAgICAgICAgIHN1bW1hcnk6IGhlYWRlcixcbiAgICAgICAgICAgICAgICBkZXRhaWw6IG1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgbGlmZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxuICAgICAgICAgICAgICAgIHN1bW1hcnk6IGhlYWRlcixcbiAgICAgICAgICAgICAgICBkZXRhaWw6IG1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgbGlmZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzaG93SHR0cFVua25vd0Vycm9yKGxpZmU6IG51bWJlciA9IHRoaXMuX3RpbWVPdXQpIHtcbiAgICAgICAgaWYgKHRoaXMuZW52aXJvbm1lbnQgJiYgIXRoaXMuZW52aXJvbm1lbnQuc2hvd0Vycm9yTWVzc2FnZUluVG9hc3QpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ2Vycm9yIG1lc2FnZSBpbiB0b2FzdCBoYXMgZGlzYWJsZWQgZnJvbSBlbnZpcm9ubWVudCBzZXR0aW5nLCBkZXRhaWwgbWVzc2FnZTogJyxcbiAgICAgICAgICAgICAgICB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuSFRUUF9VTktOT1dfRVJST1JfSEVBREVSJyksIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5IVFRQX1VOS05PV19FUlJPUicpKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5IVFRQX1VOS05PV19FUlJPUl9IRUFERVInKSxcbiAgICAgICAgICAgIGRldGFpbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkhUVFBfVU5LTk9XX0VSUk9SJyksXG4gICAgICAgICAgICBsaWZlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNob3dSZXNwb25zZUVycm9yKHN0YXR1czogbnVtYmVyLCBsaWZlOiBudW1iZXIgPSB0aGlzLl90aW1lT3V0LCBzZXJ2aWNlTmFtZTogc3RyaW5nID0gJycpIHtcbiAgICAgICAgaWYgKHRoaXMuZW52aXJvbm1lbnQgJiYgIXRoaXMuZW52aXJvbm1lbnQuc2hvd0Vycm9yTWVzc2FnZUluVG9hc3QpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ2Vycm9yIG1lc2FnZSBpbiB0b2FzdCBoYXMgZGlzYWJsZWQgZnJvbSBlbnZpcm9ubWVudCBzZXR0aW5nLCBkZXRhaWwgc3RhdHVzIGNvZGU6ICcsIHN0YXR1cyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0YXR1cyA9PT0gNDA0KSB7XG4gICAgICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxuICAgICAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fRVJST1JfSEVBREVSJyksXG4gICAgICAgICAgICAgICAgZGV0YWlsOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuTk9UX0ZPVU5EX0VSUk9SJyksXG4gICAgICAgICAgICAgICAgbGlmZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoc3RhdHVzID09PSA0MDEpIHtcbiAgICAgICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgc3VtbWFyeTogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkNPTU1PTl9FUlJPUl9IRUFERVInKSxcbiAgICAgICAgICAgICAgICBkZXRhaWw6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5VTkFVVEhPUklaRURfRVJST1InKSxcbiAgICAgICAgICAgICAgICBsaWZlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChzdGF0dXMgPT09IDQwMykge1xuICAgICAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuQ09NTU9OX0VSUk9SX0hFQURFUicpLFxuICAgICAgICAgICAgICAgIGRldGFpbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkFDQ0VTU19ERU5JTkVEX0VSUk9SJyksXG4gICAgICAgICAgICAgICAgbGlmZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoc3RhdHVzID09PSA1MDApIHtcbiAgICAgICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgc3VtbWFyeTogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkNPTU1PTl9FUlJPUl9IRUFERVInKSxcbiAgICAgICAgICAgICAgICBkZXRhaWw6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5JTlRFUk5BTF9TRVJWRVJfRVJST1InKSxcbiAgICAgICAgICAgICAgICBsaWZlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChzdGF0dXMgPT09IDQwOSkge1xuICAgICAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuQ09NTU9OX0VSUk9SX0hFQURFUicpLFxuICAgICAgICAgICAgICAgIGRldGFpbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkNPTkZMSUNUX0VSUk9SJyksXG4gICAgICAgICAgICAgICAgbGlmZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoc3RhdHVzID09PSA0MDApIHtcbiAgICAgICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgc3VtbWFyeTogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkNPTU1PTl9FUlJPUl9IRUFERVInKSxcbiAgICAgICAgICAgICAgICBkZXRhaWw6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnVnVpIGzDsm5nIGtp4buDbSB0cmEgZOG7ryBsaeG7h3UgxJHhuqd1IHbDoG8nKSxcbiAgICAgICAgICAgICAgICBsaWZlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChzdGF0dXMgPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgc3VtbWFyeTogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkNPTU1PTl9FUlJPUl9IRUFERVInKSxcbiAgICAgICAgICAgICAgICBkZXRhaWw6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChgVnVpIGzDsm5nIGtp4buDbSB0cmEgbOG6oWkgZOG7i2NoIHbhu6UgJHtzZXJ2aWNlTmFtZX1gKSxcbiAgICAgICAgICAgICAgICBsaWZlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNob3dJbnNlcnREYXRhRmFpbGVkKGxpZmU6IG51bWJlciA9IHRoaXMuX3RpbWVPdXQpIHtcbiAgICAgICAgaWYgKHRoaXMuZW52aXJvbm1lbnQgJiYgIXRoaXMuZW52aXJvbm1lbnQuc2hvd0Vycm9yTWVzc2FnZUluVG9hc3QpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ2Vycm9yIG1lc2FnZSBpbiB0b2FzdCBoYXMgZGlzYWJsZWQgZnJvbSBlbnZpcm9ubWVudCBzZXR0aW5nLCBkZXRhaWwgc3RhdHVzIGNvZGU6ICcsXG4gICAgICAgICAgICAgICAgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLklOU0VSVF9EQVRBX0ZBSUxFRCcpLCB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuQ09NTU9OX0VSUk9SX0hFQURFUicpKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXG4gICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuQ09NTU9OX0VSUk9SX0hFQURFUicpLFxuICAgICAgICAgICAgZGV0YWlsOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuSU5TRVJUX0RBVEFfRkFJTEVEJyksXG4gICAgICAgICAgICBsaWZlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNob3dVcGRhdGVEYXRhRmFpbGVkKGxpZmU6IG51bWJlciA9IHRoaXMuX3RpbWVPdXQpIHtcbiAgICAgICAgaWYgKHRoaXMuZW52aXJvbm1lbnQgJiYgIXRoaXMuZW52aXJvbm1lbnQuc2hvd0Vycm9yTWVzc2FnZUluVG9hc3QpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ2Vycm9yIG1lc2FnZSBpbiB0b2FzdCBoYXMgZGlzYWJsZWQgZnJvbSBlbnZpcm9ubWVudCBzZXR0aW5nLCBkZXRhaWwgc3RhdHVzIGNvZGU6ICcsXG4gICAgICAgICAgICAgICAgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLlVQREFURV9EQVRBX0ZBSUxFRCcpLCB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuQ09NTU9OX0VSUk9SX0hFQURFUicpKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXG4gICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuQ09NTU9OX0VSUk9SX0hFQURFUicpLFxuICAgICAgICAgICAgZGV0YWlsOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuVVBEQVRFX0RBVEFfRkFJTEVEJyksXG4gICAgICAgICAgICBsaWZlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNob3dMb2NrVXNlckZhaWxlZChsaWZlOiBudW1iZXIgPSB0aGlzLl90aW1lT3V0KSB7XG4gICAgICAgIGlmICh0aGlzLmVudmlyb25tZW50ICYmICF0aGlzLmVudmlyb25tZW50LnNob3dFcnJvck1lc3NhZ2VJblRvYXN0KSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdlcnJvciBtZXNhZ2UgaW4gdG9hc3QgaGFzIGRpc2FibGVkIGZyb20gZW52aXJvbm1lbnQgc2V0dGluZywgZGV0YWlsIHN0YXR1cyBjb2RlOiAnLFxuICAgICAgICAgICAgICAgIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnS2jDs2EgbmfGsOG7nWkgZMO5bmcgdGjhuqV0IGLhuqFpJyksIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fRVJST1JfSEVBREVSJykpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fRVJST1JfSEVBREVSJyksXG4gICAgICAgICAgICBkZXRhaWw6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnS2jDs2EgbmfGsOG7nWkgZMO5bmcgdGjhuqV0IGLhuqFpJyksXG4gICAgICAgICAgICBsaWZlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNob3dVbmxvY2tVc2VyRmFpbGVkKGxpZmU6IG51bWJlciA9IHRoaXMuX3RpbWVPdXQpIHtcbiAgICAgICAgaWYgKHRoaXMuZW52aXJvbm1lbnQgJiYgIXRoaXMuZW52aXJvbm1lbnQuc2hvd0Vycm9yTWVzc2FnZUluVG9hc3QpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ2Vycm9yIG1lc2FnZSBpbiB0b2FzdCBoYXMgZGlzYWJsZWQgZnJvbSBlbnZpcm9ubWVudCBzZXR0aW5nLCBkZXRhaWwgc3RhdHVzIGNvZGU6ICcsXG4gICAgICAgICAgICAgICAgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdN4bufIGtow7NhIG5nxrDhu51pIGTDuW5nIHRo4bqldCBi4bqhaScpLCB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuQ09NTU9OX0VSUk9SX0hFQURFUicpKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXG4gICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuQ09NTU9OX0VSUk9SX0hFQURFUicpLFxuICAgICAgICAgICAgZGV0YWlsOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ03hu58ga2jDs2EgbmfGsOG7nWkgZMO5bmcgdGjhuqV0IGLhuqFpJyksXG4gICAgICAgICAgICBsaWZlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNob3dVcGRhdGVEYXRhU2luZ2xlRmFpbGVkKGxpZmU6IG51bWJlciA9IHRoaXMuX3RpbWVPdXQpIHtcbiAgICAgICAgaWYgKHRoaXMuZW52aXJvbm1lbnQgJiYgIXRoaXMuZW52aXJvbm1lbnQuc2hvd0Vycm9yTWVzc2FnZUluVG9hc3QpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ2Vycm9yIG1lc2FnZSBpbiB0b2FzdCBoYXMgZGlzYWJsZWQgZnJvbSBlbnZpcm9ubWVudCBzZXR0aW5nLCBkZXRhaWwgc3RhdHVzIGNvZGU6ICcsXG4gICAgICAgICAgICAgICAgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNw6MgaG/hurdjIHTDqm4gZGFuaCBt4bulYyDEkcOjIHThu5NuIHThuqFpJyksIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fRVJST1JfSEVBREVSJykpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fRVJST1JfSEVBREVSJyksXG4gICAgICAgICAgICBkZXRhaWw6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTcOjIGhv4bq3YyB0w6puIGRhbmggbeG7pWMgxJHDoyB04buTbiB04bqhaScpLFxuICAgICAgICAgICAgbGlmZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzaG93VXBkYXRlRGF0YUNvbmZpZ3VyYXRpb25GYWlsZWQobGlmZTogbnVtYmVyID0gdGhpcy5fdGltZU91dCkge1xuICAgICAgICBpZiAodGhpcy5lbnZpcm9ubWVudCAmJiAhdGhpcy5lbnZpcm9ubWVudC5zaG93RXJyb3JNZXNzYWdlSW5Ub2FzdCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignZXJyb3IgbWVzYWdlIGluIHRvYXN0IGhhcyBkaXNhYmxlZCBmcm9tIGVudmlyb25tZW50IHNldHRpbmcsIGRldGFpbCBzdGF0dXMgY29kZTogJyxcbiAgICAgICAgICAgICAgICB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ03huq10IGto4bqpdSBraMO0bmcgxJHGsOG7o2MgxJHhu4MgdHLhu5FuZycpLCB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuQ09NTU9OX0VSUk9SX0hFQURFUicpKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXG4gICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuQ09NTU9OX0VSUk9SX0hFQURFUicpLFxuICAgICAgICAgICAgZGV0YWlsOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ03huq10IGto4bqpdSBraMO0bmcgxJHGsOG7o2MgxJHhu4MgdHLhu5FuZycpLFxuICAgICAgICAgICAgbGlmZVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgc2hvd0Jsb2JFcnJvcihlcnJvcikge1xuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBCbG9iKSB7XG4gICAgICAgICAgICAvLyBDb252ZXJ0IEJsb2IgdG8gSlNPTiBPYmplY3QgaWYgcG9zc2libGVcbiAgICAgICAgICAgIHJldHVybiBlcnJvci50ZXh0KCkudGhlbih0ZXh0ID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBlcnJvck9iamVjdCA9IEpTT04ucGFyc2UodGV4dCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2hvd1dhcm5pbmcoZXJyb3JPYmplY3QubWVzc2FnZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIFJldHVybiB0aGUgZXJyb3Igb2JqZWN0IGRpcmVjdGx5XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zaG93RXhjZXB0aW9uKG51bGwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2VuZXJpY1Nob3cobWVzc2FnZTogc3RyaW5nLFxuICAgICAgICBoZWFkZXI6IHN0cmluZyxcbiAgICAgICAgaWNvbjogc3RyaW5nLFxuICAgICAgICBhY2NlcHRWaXNpYmxlOiBib29sZWFuLFxuICAgICAgICBhY2NlcHRMYWJlbDogc3RyaW5nID0gJycsXG4gICAgICAgIGFjY2VwdEljb246IHN0cmluZyA9ICcnLFxuICAgICAgICByZWplY3RMYWJlbDogc3RyaW5nID0gJycsXG4gICAgICAgIHJlamVjdEljb246IHN0cmluZyA9ICcnLFxuICAgICAgICBhY2NlcHQ6IEZ1bmN0aW9uID0gbnVsbCxcbiAgICAgICAgcmVqZWN0OiBGdW5jdGlvbiA9IG51bGwsXG4gICAgICAgIG5vdGlmaWVyVHlwZTogTm90aWZpZXJUeXBlKSB7XG4gICAgICAgIHN3aXRjaCAobm90aWZpZXJUeXBlKSB7XG4gICAgICAgICAgICBjYXNlIE5vdGlmaWVyVHlwZS5DT05GSVJNOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNob3dDb25maXJtKG1lc3NhZ2UsIGhlYWRlciwgaWNvbiwgYWNjZXB0VmlzaWJsZSwgcmVqZWN0TGFiZWwsIHJlamVjdEljb24sIGFjY2VwdExhYmVsLCBhY2NlcHRJY29uLCBhY2NlcHQsIHJlamVjdCwpO1xuICAgICAgICAgICAgY2FzZSBOb3RpZmllclR5cGUuRVJST1I6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2hvd0Vycm9yKG1lc3NhZ2UsICcnLCBoZWFkZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2hvd0NvbmZpcm0oXG4gICAgICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICAgICAgaGVhZGVyOiBzdHJpbmcgPSAnWMOhYyBuaOG6rW4nLFxuICAgICAgICBpY29uOiBzdHJpbmcgPSAncGkgcGktZXhjbGFtYXRpb24tdHJpYW5nbGUnLFxuICAgICAgICBhY2NlcHRWaXNpYmxlOiBib29sZWFuID0gdHJ1ZSxcbiAgICAgICAgcmVqZWN0TGFiZWw6IHN0cmluZyA9IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnQ09ORklSTS5SRUpFQ1RfTEFCRUwnKSxcbiAgICAgICAgcmVqZWN0SWNvbjogc3RyaW5nID0gJ3BpIHBpLXRpbWVzJyxcbiAgICAgICAgYWNjZXB0TGFiZWw6IHN0cmluZyA9IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnQ09ORklSTS5BQ0NFUFRfTEFCRUwnKSxcbiAgICAgICAgYWNjZXB0SWNvbjogc3RyaW5nID0gJ3BpIHBpLWNoZWNrJyxcbiAgICAgICAgYWNjZXB0OiBGdW5jdGlvbiA9IG51bGwsXG4gICAgICAgIHJlamVjdEZ1bmM6IEZ1bmN0aW9uID0gbnVsbCxcbiAgICAgICAgYWNjZXB0QnV0dG9uU3R5bGVDbGFzcyA9ICdwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLXRleHQnLFxuICAgICAgICByZWplY3RCdXR0b25TdHlsZUNsYXNzID0gJ1wicC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXNlY29uZGFyeScsXG4gICAgICAgIHJlamVjdFZpc2libGU6IGJvb2xlYW4gPSB0cnVlXG5cbiAgICApOiBQcm9taXNlPGFueT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fY29uZmlybVNlcnZpY2UuY29uZmlybSh7XG4gICAgICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgICAgICAgICBoZWFkZXI6IGhlYWRlcixcbiAgICAgICAgICAgICAgICBpY29uOiBpY29uLFxuICAgICAgICAgICAgICAgIGFjY2VwdFZpc2libGUsXG4gICAgICAgICAgICAgICAgcmVqZWN0VmlzaWJsZSxcbiAgICAgICAgICAgICAgICBhY2NlcHRJY29uOiBhY2NlcHRJY29uLFxuICAgICAgICAgICAgICAgIGFjY2VwdExhYmVsOiBhY2NlcHRMYWJlbCxcbiAgICAgICAgICAgICAgICByZWplY3RMYWJlbCxcbiAgICAgICAgICAgICAgICByZWplY3RJY29uLFxuICAgICAgICAgICAgICAgIGFjY2VwdEJ1dHRvblN0eWxlQ2xhc3MsXG4gICAgICAgICAgICAgICAgcmVqZWN0QnV0dG9uU3R5bGVDbGFzcyxcbiAgICAgICAgICAgICAgICBhY2NlcHQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGFjY2VwdCkgYWNjZXB0KCk7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICByZWplY3Q6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGFjY2VwdFZpc2libGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZWplY3RGdW5jKSByZWplY3RGdW5jKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzaG93Q29uZmlybU1hbnkoXG4gICAgICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICAgICAgdGltZTogbnVtYmVyID0gMiwgZGVsYXk6IG51bWJlciA9IDEwMCxcbiAgICAgICAgaGVhZGVyOiBzdHJpbmcgPSAnJywgaWNvbjogc3RyaW5nID0gJycsIGFjY2VwdFZpc2libGU6IGJvb2xlYW4gPSB0cnVlLCByZWplY3RMYWJlbDogc3RyaW5nID0gdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdDT05GSVJNLlJFSkVDVF9MQUJFTCcpLCBkZWxheVRpbWVvdXQ6IG51bWJlciA9IDApOiBQcm9taXNlPGFueT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgc2V0VGltZW91dChmID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jb25maXJtU2VydmljZS5jb25maXJtKHtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyOiBoZWFkZXIgPyBoZWFkZXIgOiAnWMOhYyBuaOG6rW4nLFxuICAgICAgICAgICAgICAgICAgICBpY29uOiBpY29uID8gaWNvbiA6ICdwaSBwaS1leGNsYW1hdGlvbi10cmlhbmdsZScsXG4gICAgICAgICAgICAgICAgICAgIGFjY2VwdExhYmVsOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0NPTkZJUk0uQUNDRVBUX0xBQkVMJyksXG4gICAgICAgICAgICAgICAgICAgIHJlamVjdExhYmVsLFxuICAgICAgICAgICAgICAgICAgICBhY2NlcHRWaXNpYmxlLFxuICAgICAgICAgICAgICAgICAgICBhY2NlcHQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aW1lID09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93Q29uZmlybU1hbnkobWVzc2FnZSwgdGltZSAtIDEsIGRlbGF5LCBoZWFkZXIsIGljb24sIGFjY2VwdFZpc2libGUsIHJlamVjdExhYmVsLCBkZWxheSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4ocmVzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHJlamVjdDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFjY2VwdFZpc2libGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSwgZGVsYXlUaW1lb3V0KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2hvd0RlbGV0ZUNvbmZpcm0obWVzc2FnZTogc3RyaW5nID0gJycsIGljb246IHN0cmluZyA9ICcnKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2NvbmZpcm1TZXJ2aWNlLmNvbmZpcm0oe1xuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UgPyBtZXNzYWdlIDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdDT05GSVJNLkRFRkFVTFRfREVMRVRFX0NPTkZJUk0nKSxcbiAgICAgICAgICAgICAgICBoZWFkZXI6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnQ09ORklSTS5ERUZBVUxUX0RFTEVURV9DT05GSVJNX1RJVExFJyksXG4gICAgICAgICAgICAgICAgaWNvbjogaWNvbiA/IGljb24gOiAncGkgcGktdHJhc2gnLFxuICAgICAgICAgICAgICAgIGFjY2VwdExhYmVsOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0NPTkZJUk0uQUNDRVBUX0xBQkVMJyksXG4gICAgICAgICAgICAgICAgcmVqZWN0TGFiZWw6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnQ09ORklSTS5SRUpFQ1RfTEFCRUwnKSxcbiAgICAgICAgICAgICAgICBhY2NlcHQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJlamVjdDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgYWRkRXJyb3JNZXNzYWdlKG1zZ3M6IE1lc3NhZ2VbXSwgY29udGVudCkge1xuICAgICAgICBtc2dzLnB1c2goeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogJ0Vycm9yIE1lc3NhZ2UnLCBkZXRhaWw6ICdWYWxpZGF0aW9uIGZhaWxlZCcgfSk7XG4gICAgfVxuXG4gICAgY2xlYXJFcnJvck1lc3NhZ2UobXNnczogTWVzc2FnZVtdKSB7XG4gICAgICAgIG1zZ3MubGVuZ3RoID0gMDtcbiAgICB9XG59XG5cbmV4cG9ydCBlbnVtIE5vdGlmaWVyVHlwZSB7XG4gICAgQ09ORklSTSxcbiAgICBFUlJPUlxufVxuIl19
|
package/fesm2015/tnx-shared.js
CHANGED
|
@@ -2659,13 +2659,14 @@ class NotifierService {
|
|
|
2659
2659
|
return this.showError(message, '', header);
|
|
2660
2660
|
}
|
|
2661
2661
|
}
|
|
2662
|
-
showConfirm(message, header = 'Xác nhận', icon = 'pi pi-exclamation-triangle', acceptVisible = true, rejectLabel = this._translateService.instant('CONFIRM.REJECT_LABEL'), rejectIcon = 'pi pi-times', acceptLabel = this._translateService.instant('CONFIRM.ACCEPT_LABEL'), acceptIcon = 'pi pi-check', accept = null, rejectFunc = null, acceptButtonStyleClass = 'p-button-rounded p-button-text', rejectButtonStyleClass = '"p-button-rounded p-button-text p-button-secondary') {
|
|
2662
|
+
showConfirm(message, header = 'Xác nhận', icon = 'pi pi-exclamation-triangle', acceptVisible = true, rejectLabel = this._translateService.instant('CONFIRM.REJECT_LABEL'), rejectIcon = 'pi pi-times', acceptLabel = this._translateService.instant('CONFIRM.ACCEPT_LABEL'), acceptIcon = 'pi pi-check', accept = null, rejectFunc = null, acceptButtonStyleClass = 'p-button-rounded p-button-text', rejectButtonStyleClass = '"p-button-rounded p-button-text p-button-secondary', rejectVisible = true) {
|
|
2663
2663
|
return new Promise((resolve, reject) => {
|
|
2664
2664
|
this._confirmService.confirm({
|
|
2665
2665
|
message,
|
|
2666
2666
|
header: header,
|
|
2667
2667
|
icon: icon,
|
|
2668
2668
|
acceptVisible,
|
|
2669
|
+
rejectVisible,
|
|
2669
2670
|
acceptIcon: acceptIcon,
|
|
2670
2671
|
acceptLabel: acceptLabel,
|
|
2671
2672
|
rejectLabel,
|