tnx-shared 5.3.372 → 5.3.373

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.
@@ -367,7 +367,7 @@ export class NotifierService {
367
367
  if (popupObject.acceptVisible) {
368
368
  if (accept)
369
369
  accept();
370
- resolve(false);
370
+ resolve(true);
371
371
  }
372
372
  }, reject: () => {
373
373
  if (popupObject.rejectVisible) {
@@ -449,4 +449,4 @@ export var NotifierType;
449
449
  NotifierType[NotifierType["CONFIRM"] = 0] = "CONFIRM";
450
450
  NotifierType[NotifierType["ERROR"] = 1] = "ERROR";
451
451
  })(NotifierType || (NotifierType = {}));
452
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi9zZXJ2aWNlcy9ub3RpZmllci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBVyxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUdyRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQUs5RCxNQUFNLE9BQU8sZUFBZTtJQUt4QixZQUNZLGVBQStCLEVBQy9CLGVBQW9DLEVBQ3BDLG9CQUF5QyxFQUNqRCxTQUFtQjtRQUhYLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUMvQixvQkFBZSxHQUFmLGVBQWUsQ0FBcUI7UUFDcEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtRQVA3QyxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBVXBCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxDQUFDLFdBQVcsQ0FBQztRQUNyRSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxVQUFVLENBQUMsT0FHUCxFQUFFO1FBQ0YsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1YsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1NBQy9CO1FBQ0QsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztTQUNsRDtRQUVELElB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Ozs7WUFwZ0JKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7O1lBUHNDLGNBQWM7WUFBNUMsbUJBQW1CO1lBR25CLG1CQUFtQjtZQUxQLFFBQVE7O0FBOGdCN0IsTUFBTSxDQUFOLElBQVksWUFHWDtBQUhELFdBQVksWUFBWTtJQUNwQixxREFBTyxDQUFBO0lBQ1AsaURBQUssQ0FBQTtBQUNULENBQUMsRUFIVyxZQUFZLEtBQVosWUFBWSxRQUd2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlLCBNZXNzYWdlLCBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3RuLWN1c3RvbS1wcmltZW5nL2FwaSc7XG5cbmltcG9ydCB7IFJlc3BvbnNlUmVzdWx0IH0gZnJvbSAnLi4vbW9kZWxzL3Jlc3BvbnNlLXJlc3VsdCc7XG5pbXBvcnQgeyBNb2R1bGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9tb2R1bGUtY29uZmlnLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE5vdGlmaWVyU2VydmljZSB7XG4gICAgcHJpdmF0ZSBfdGltZU91dCA9IDUwMDA7XG4gICAgZW52aXJvbm1lbnQ6IGFueTtcbiAgICBwcml2YXRlIF90cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX21lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfY29uZmlybVNlcnZpY2U6IENvbmZpcm1hdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX21vZHVsZUNvbmZpZ1NlcnZpY2U6IE1vZHVsZUNvbmZpZ1NlcnZpY2UsXG4gICAgICAgIF9pbmplY3RvcjogSW5qZWN0b3JcbiAgICApIHtcbiAgICAgICAgdGhpcy5lbnZpcm9ubWVudCA9IHRoaXMuX21vZHVsZUNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCkuZW52aXJvbm1lbnQ7XG4gICAgICAgIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UgPSBfaW5qZWN0b3IuZ2V0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuICAgIH1cblxuICAgIHNldFNlcnZpY2Uob3B0czoge1xuICAgICAgICBlbnY/OiBhbnksIHRyYW5zbGF0ZVNlcnZpY2U/OiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBtZXNzYWdlU2VydmljZT86IE1lc3NhZ2VTZXJ2aWNlLCBjb25maXJtU2VydmljZT86IENvbmZpcm1hdGlvblNlcnZpY2U7XG4gICAgfSA9IHt9KSB7XG4gICAgICAgIGlmIChvcHRzLmVudikge1xuICAgICAgICAgICAgdGhpcy5lbnZpcm9ubWVudCA9IG9wdHMuZW52O1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRzLnRyYW5zbGF0ZVNlcnZpY2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UgPSBvcHRzLnRyYW5zbGF0ZVNlcnZpY2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0cy5tZXNzYWdlU2VydmljZSkge1xuICAgICAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UgPSBvcHRzLm1lc3NhZ2VTZXJ2aWNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9wdHMuY29uZmlybVNlcnZpY2UpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbmZpcm1TZXJ2aWNlID0gb3B0cy5jb25maXJtU2VydmljZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNob3dTdWNjZXNzKG1lc3NhZ2U6IHN0cmluZywgaGVhZGVyOiBzdHJpbmcgPSAnVGjDtG5nIGLDoW8nLCBsaWZlOiBudW1iZXIgPSB0aGlzLl90aW1lT3V0KSB7XG4gICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICBzZXZlcml0eTogJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgc3VtbWFyeTogaGVhZGVyLFxuICAgICAgICAgICAgZGV0YWlsOiBtZXNzYWdlLFxuICAgICAgICAgICAgbGlmZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzaG93SW5zZXJ0RGF0YVN1Y2Nlc3MobGlmZTogbnVtYmVyID0gdGhpcy5fdGltZU91dCkge1xuICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgc2V2ZXJpdHk6ICdzdWNjZXNzJyxcbiAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fU1VDQ0VTU19IRUFERVInKSxcbiAgICAgICAgICAgIGRldGFpbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLklOU0VSVF9EQVRBX1NVQ0NFU1MnKSxcbiAgICAgICAgICAgIGxpZmVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2hvd1VwZGF0ZURhdGFTdWNjZXNzKGxpZmU6IG51bWJlciA9IHRoaXMuX3RpbWVPdXQpIHtcbiAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgIHNldmVyaXR5OiAnc3VjY2VzcycsXG4gICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuQ09NTU9OX1NVQ0NFU1NfSEVBREVSJyksXG4gICAgICAgICAgICBkZXRhaWw6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5VUERBVEVfREFUQV9TVUNDRVNTJyksXG4gICAgICAgICAgICBsaWZlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNob3dEZWxldGVEYXRhU3VjY2VzcyhsaWZlOiBudW1iZXIgPSB0aGlzLl90aW1lT3V0KSB7XG4gICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICBzZXZlcml0eTogJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgc3VtbWFyeTogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkNPTU1PTl9TVUNDRVNTX0hFQURFUicpLFxuICAgICAgICAgICAgZGV0YWlsOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuREVMRVRFX0RBVEFfU1VDQ0VTUycpLFxuICAgICAgICAgICAgbGlmZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzaG93RGVsZXRlRGF0YUVycm9yKGxpZmU6IG51bWJlciA9IHRoaXMuX3RpbWVPdXQpIHtcbiAgICAgICAgaWYgKHRoaXMuZW52aXJvbm1lbnQgJiYgIXRoaXMuZW52aXJvbm1lbnQuc2hvd0Vycm9yTWVzc2FnZUluVG9hc3QpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ2Vycm9yIG1lc2FnZSBpbiB0b2FzdCBoYXMgZGlzYWJsZWQgZnJvbSBlbnZpcm9ubWVudCBzZXR0aW5nLCBkZXRhaWwgbWVzc2FnZTogJywgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkRFTEVURV9EQVRBX0VSUk9SJyksXG4gICAgICAgICAgICAgICAgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkNPTU1PTl9FUlJPUl9IRUFERVInKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxuICAgICAgICAgICAgc3VtbWFyeTogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkNPTU1PTl9FUlJPUl9IRUFERVInKSxcbiAgICAgICAgICAgIGRldGFpbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkRFTEVURV9EQVRBX0VSUk9SJyksXG4gICAgICAgICAgICBsaWZlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNob3dEZWxldGVEYXRhRW1wdHlFcnJvcihsaWZlOiBudW1iZXIgPSB0aGlzLl90aW1lT3V0KSB7XG4gICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fRVJST1JfSEVBREVSJyksXG4gICAgICAgICAgICBkZXRhaWw6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnQuG6oW4gcGjhuqNpIGNo4buNbiDDrXQgbmjhuqV0IDEgYuG6o24gZ2hpIMSR4buDIHjDs2EnKSxcbiAgICAgICAgICAgIGxpZmVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2hvd0R1cGxpY2F0ZURhdGFFcnJvcihsaWZlOiBudW1iZXIgPSB0aGlzLl90aW1lT3V0KSB7XG4gICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fRVJST1JfSEVBREVSJyksXG4gICAgICAgICAgICBkZXRhaWw6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTcOjIGPhu5l0IGtow7RuZyB0aOG7gyBi4buLIHRyw7luZyBs4bq3cCcpLFxuICAgICAgICAgICAgbGlmZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzaG93V2FybmluZyhtZXNzYWdlOiBzdHJpbmcsIGhlYWRlcjogc3RyaW5nID0gJ1Row7RuZyBiw6FvJywgbGlmZTogbnVtYmVyID0gdGhpcy5fdGltZU91dCkge1xuICAgICAgICBpZiAodGhpcy5lbnZpcm9ubWVudCAmJiAhdGhpcy5lbnZpcm9ubWVudC5zaG93V2FybmluZ01lc3NhZ2VJblRvYXN0KSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ2Vycm9yIG1lc2FnZSBpbiB0b2FzdCBoYXMgZGlzYWJsZWQgZnJvbSBlbnZpcm9ubWVudCBzZXR0aW5nLCBkZXRhaWwgbWVzc2FnZTogJywgaGVhZGVyLCBtZXNzYWdlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgc2V2ZXJpdHk6ICd3YXJuJyxcbiAgICAgICAgICAgIHN1bW1hcnk6IGhlYWRlcixcbiAgICAgICAgICAgIGRldGFpbDogbWVzc2FnZSxcbiAgICAgICAgICAgIGxpZmVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2hvd0Vycm9yKG1lc3NhZ2U6IHN0cmluZywga2V5OiBzdHJpbmcgPSAnJywgaGVhZGVyOiBzdHJpbmcgPSAnTOG7l2knLCBsaWZlOiBudW1iZXIgPSB0aGlzLl90aW1lT3V0KSB7XG4gICAgICAgIGlmICh0aGlzLmVudmlyb25tZW50ICYmICF0aGlzLmVudmlyb25tZW50LnNob3dFcnJvck1lc3NhZ2VJblRvYXN0KSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdlcnJvciBtZXNhZ2UgaW4gdG9hc3QgaGFzIGRpc2FibGVkIGZyb20gZW52aXJvbm1lbnQgc2V0dGluZywgZGV0YWlsIG1lc3NhZ2U6ICcsIG1lc3NhZ2UsIGhlYWRlcik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoa2V5KSB7XG4gICAgICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICBzdW1tYXJ5OiBoZWFkZXIsXG4gICAgICAgICAgICAgICAgZGV0YWlsOiBtZXNzYWdlLFxuICAgICAgICAgICAgICAgIGxpZmVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICBzdW1tYXJ5OiBoZWFkZXIsXG4gICAgICAgICAgICAgICAgZGV0YWlsOiBtZXNzYWdlLFxuICAgICAgICAgICAgICAgIGxpZmVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2hvd0V4Y2VwdGlvbihlcnI6IGFueSwgaGVhZGVyOiBzdHJpbmcgPSAnVGjDtG5nIGLDoW8nLCBsaWZlOiBudW1iZXIgPSB0aGlzLl90aW1lT3V0KSB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSAnQ8OzIGzhu5dpIHjhuqN5IHJhLiBMacOqbiBo4buHIHF14bqjbiB0cuG7iyB2acOqbiDEkeG7gyBiaeG6v3QgdGjDqm0gY2hpIHRp4bq/dCEnO1xuICAgICAgICBpZiAodGhpcy5lbnZpcm9ubWVudCAmJiAhdGhpcy5lbnZpcm9ubWVudC5zaG93V2FybmluZ01lc3NhZ2VJblRvYXN0KSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ2Vycm9yIG1lc2FnZSBpbiB0b2FzdCBoYXMgZGlzYWJsZWQgZnJvbSBlbnZpcm9ubWVudCBzZXR0aW5nLCBkZXRhaWwgbWVzc2FnZTogJywgaGVhZGVyLCBtZXNzYWdlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgc2V2ZXJpdHk6ICd3YXJuJyxcbiAgICAgICAgICAgIHN1bW1hcnk6IGhlYWRlcixcbiAgICAgICAgICAgIGRldGFpbDogbWVzc2FnZSxcbiAgICAgICAgICAgIGxpZmVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2hvd1dhcm5pbmdCeVJlc3BvbnNlKHJlczogUmVzcG9uc2VSZXN1bHQpIHtcbiAgICAgICAgbGV0IG1lc3NhZ2UgPSByZXMubWVzc2FnZTtcbiAgICAgICAgaWYgKCFtZXNzYWdlKSB7XG4gICAgICAgICAgICBtZXNzYWdlID0gcmVzLmVycm9yO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2hvd1dhcm5pbmcobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgc2hvd0J1c2luZXNzRXJyb3IobWVzc2FnZTogc3RyaW5nLCBrZXk6IHN0cmluZyA9ICcnLCBoZWFkZXI6IHN0cmluZyA9ICdM4buXaScsIGxpZmU6IG51bWJlciA9IHRoaXMuX3RpbWVPdXQpIHtcbiAgICAgICAgaWYgKGtleSkge1xuICAgICAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgc3VtbWFyeTogaGVhZGVyLFxuICAgICAgICAgICAgICAgIGRldGFpbDogbWVzc2FnZSxcbiAgICAgICAgICAgICAgICBsaWZlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgc3VtbWFyeTogaGVhZGVyLFxuICAgICAgICAgICAgICAgIGRldGFpbDogbWVzc2FnZSxcbiAgICAgICAgICAgICAgICBsaWZlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNob3dIdHRwVW5rbm93RXJyb3IobGlmZTogbnVtYmVyID0gdGhpcy5fdGltZU91dCkge1xuICAgICAgICBpZiAodGhpcy5lbnZpcm9ubWVudCAmJiAhdGhpcy5lbnZpcm9ubWVudC5zaG93RXJyb3JNZXNzYWdlSW5Ub2FzdCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignZXJyb3IgbWVzYWdlIGluIHRvYXN0IGhhcyBkaXNhYmxlZCBmcm9tIGVudmlyb25tZW50IHNldHRpbmcsIGRldGFpbCBtZXNzYWdlOiAnLFxuICAgICAgICAgICAgICAgIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5IVFRQX1VOS05PV19FUlJPUl9IRUFERVInKSwgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkhUVFBfVU5LTk9XX0VSUk9SJykpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxuICAgICAgICAgICAgc3VtbWFyeTogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkhUVFBfVU5LTk9XX0VSUk9SX0hFQURFUicpLFxuICAgICAgICAgICAgZGV0YWlsOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuSFRUUF9VTktOT1dfRVJST1InKSxcbiAgICAgICAgICAgIGxpZmVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2hvd1Jlc3BvbnNlRXJyb3Ioc3RhdHVzOiBudW1iZXIsIGxpZmU6IG51bWJlciA9IHRoaXMuX3RpbWVPdXQsIHNlcnZpY2VOYW1lOiBzdHJpbmcgPSAnJykge1xuICAgICAgICBpZiAodGhpcy5lbnZpcm9ubWVudCAmJiAhdGhpcy5lbnZpcm9ubWVudC5zaG93RXJyb3JNZXNzYWdlSW5Ub2FzdCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignZXJyb3IgbWVzYWdlIGluIHRvYXN0IGhhcyBkaXNhYmxlZCBmcm9tIGVudmlyb25tZW50IHNldHRpbmcsIGRldGFpbCBzdGF0dXMgY29kZTogJywgc3RhdHVzKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RhdHVzID09PSA0MDQpIHtcbiAgICAgICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgc3VtbWFyeTogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkNPTU1PTl9FUlJPUl9IRUFERVInKSxcbiAgICAgICAgICAgICAgICBkZXRhaWw6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5OT1RfRk9VTkRfRVJST1InKSxcbiAgICAgICAgICAgICAgICBsaWZlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChzdGF0dXMgPT09IDQwMSkge1xuICAgICAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuQ09NTU9OX0VSUk9SX0hFQURFUicpLFxuICAgICAgICAgICAgICAgIGRldGFpbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLlVOQVVUSE9SSVpFRF9FUlJPUicpLFxuICAgICAgICAgICAgICAgIGxpZmVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHN0YXR1cyA9PT0gNDAzKSB7XG4gICAgICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxuICAgICAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fRVJST1JfSEVBREVSJyksXG4gICAgICAgICAgICAgICAgZGV0YWlsOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuQUNDRVNTX0RFTklORURfRVJST1InKSxcbiAgICAgICAgICAgICAgICBsaWZlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChzdGF0dXMgPT09IDUwMCkge1xuICAgICAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuQ09NTU9OX0VSUk9SX0hFQURFUicpLFxuICAgICAgICAgICAgICAgIGRldGFpbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLklOVEVSTkFMX1NFUlZFUl9FUlJPUicpLFxuICAgICAgICAgICAgICAgIGxpZmVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHN0YXR1cyA9PT0gNDA5KSB7XG4gICAgICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxuICAgICAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fRVJST1JfSEVBREVSJyksXG4gICAgICAgICAgICAgICAgZGV0YWlsOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuQ09ORkxJQ1RfRVJST1InKSxcbiAgICAgICAgICAgICAgICBsaWZlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChzdGF0dXMgPT09IDQwMCkge1xuICAgICAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuQ09NTU9OX0VSUk9SX0hFQURFUicpLFxuICAgICAgICAgICAgICAgIGRldGFpbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdWdWkgbMOybmcga2nhu4NtIHRyYSBk4buvIGxp4buHdSDEkeG6p3UgdsOgbycpLFxuICAgICAgICAgICAgICAgIGxpZmVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHN0YXR1cyA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuQ09NTU9OX0VSUk9SX0hFQURFUicpLFxuICAgICAgICAgICAgICAgIGRldGFpbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGBWdWkgbMOybmcga2nhu4NtIHRyYSBs4bqhaSBk4buLY2ggduG7pSAke3NlcnZpY2VOYW1lfWApLFxuICAgICAgICAgICAgICAgIGxpZmVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2hvd0luc2VydERhdGFGYWlsZWQobGlmZTogbnVtYmVyID0gdGhpcy5fdGltZU91dCkge1xuICAgICAgICBpZiAodGhpcy5lbnZpcm9ubWVudCAmJiAhdGhpcy5lbnZpcm9ubWVudC5zaG93RXJyb3JNZXNzYWdlSW5Ub2FzdCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignZXJyb3IgbWVzYWdlIGluIHRvYXN0IGhhcyBkaXNhYmxlZCBmcm9tIGVudmlyb25tZW50IHNldHRpbmcsIGRldGFpbCBzdGF0dXMgY29kZTogJyxcbiAgICAgICAgICAgICAgICB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuSU5TRVJUX0RBVEFfRkFJTEVEJyksIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fRVJST1JfSEVBREVSJykpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fRVJST1JfSEVBREVSJyksXG4gICAgICAgICAgICBkZXRhaWw6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5JTlNFUlRfREFUQV9GQUlMRUQnKSxcbiAgICAgICAgICAgIGxpZmVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2hvd1VwZGF0ZURhdGFGYWlsZWQobGlmZTogbnVtYmVyID0gdGhpcy5fdGltZU91dCkge1xuICAgICAgICBpZiAodGhpcy5lbnZpcm9ubWVudCAmJiAhdGhpcy5lbnZpcm9ubWVudC5zaG93RXJyb3JNZXNzYWdlSW5Ub2FzdCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignZXJyb3IgbWVzYWdlIGluIHRvYXN0IGhhcyBkaXNhYmxlZCBmcm9tIGVudmlyb25tZW50IHNldHRpbmcsIGRldGFpbCBzdGF0dXMgY29kZTogJyxcbiAgICAgICAgICAgICAgICB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuVVBEQVRFX0RBVEFfRkFJTEVEJyksIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fRVJST1JfSEVBREVSJykpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fRVJST1JfSEVBREVSJyksXG4gICAgICAgICAgICBkZXRhaWw6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5VUERBVEVfREFUQV9GQUlMRUQnKSxcbiAgICAgICAgICAgIGxpZmVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2hvd0xvY2tVc2VyRmFpbGVkKGxpZmU6IG51bWJlciA9IHRoaXMuX3RpbWVPdXQpIHtcbiAgICAgICAgaWYgKHRoaXMuZW52aXJvbm1lbnQgJiYgIXRoaXMuZW52aXJvbm1lbnQuc2hvd0Vycm9yTWVzc2FnZUluVG9hc3QpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ2Vycm9yIG1lc2FnZSBpbiB0b2FzdCBoYXMgZGlzYWJsZWQgZnJvbSBlbnZpcm9ubWVudCBzZXR0aW5nLCBkZXRhaWwgc3RhdHVzIGNvZGU6ICcsXG4gICAgICAgICAgICAgICAgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdLaMOzYSBuZ8aw4budaSBkw7luZyB0aOG6pXQgYuG6oWknKSwgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkNPTU1PTl9FUlJPUl9IRUFERVInKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxuICAgICAgICAgICAgc3VtbWFyeTogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkNPTU1PTl9FUlJPUl9IRUFERVInKSxcbiAgICAgICAgICAgIGRldGFpbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdLaMOzYSBuZ8aw4budaSBkw7luZyB0aOG6pXQgYuG6oWknKSxcbiAgICAgICAgICAgIGxpZmVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2hvd1VubG9ja1VzZXJGYWlsZWQobGlmZTogbnVtYmVyID0gdGhpcy5fdGltZU91dCkge1xuICAgICAgICBpZiAodGhpcy5lbnZpcm9ubWVudCAmJiAhdGhpcy5lbnZpcm9ubWVudC5zaG93RXJyb3JNZXNzYWdlSW5Ub2FzdCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignZXJyb3IgbWVzYWdlIGluIHRvYXN0IGhhcyBkaXNhYmxlZCBmcm9tIGVudmlyb25tZW50IHNldHRpbmcsIGRldGFpbCBzdGF0dXMgY29kZTogJyxcbiAgICAgICAgICAgICAgICB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ03hu58ga2jDs2EgbmfGsOG7nWkgZMO5bmcgdGjhuqV0IGLhuqFpJyksIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fRVJST1JfSEVBREVSJykpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fRVJST1JfSEVBREVSJyksXG4gICAgICAgICAgICBkZXRhaWw6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTeG7nyBraMOzYSBuZ8aw4budaSBkw7luZyB0aOG6pXQgYuG6oWknKSxcbiAgICAgICAgICAgIGxpZmVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2hvd1VwZGF0ZURhdGFTaW5nbGVGYWlsZWQobGlmZTogbnVtYmVyID0gdGhpcy5fdGltZU91dCkge1xuICAgICAgICBpZiAodGhpcy5lbnZpcm9ubWVudCAmJiAhdGhpcy5lbnZpcm9ubWVudC5zaG93RXJyb3JNZXNzYWdlSW5Ub2FzdCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignZXJyb3IgbWVzYWdlIGluIHRvYXN0IGhhcyBkaXNhYmxlZCBmcm9tIGVudmlyb25tZW50IHNldHRpbmcsIGRldGFpbCBzdGF0dXMgY29kZTogJyxcbiAgICAgICAgICAgICAgICB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ03DoyBob+G6t2MgdMOqbiBkYW5oIG3hu6VjIMSRw6MgdOG7k24gdOG6oWknKSwgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkNPTU1PTl9FUlJPUl9IRUFERVInKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxuICAgICAgICAgICAgc3VtbWFyeTogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkNPTU1PTl9FUlJPUl9IRUFERVInKSxcbiAgICAgICAgICAgIGRldGFpbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNw6MgaG/hurdjIHTDqm4gZGFuaCBt4bulYyDEkcOjIHThu5NuIHThuqFpJyksXG4gICAgICAgICAgICBsaWZlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNob3dVcGRhdGVEYXRhQ29uZmlndXJhdGlvbkZhaWxlZChsaWZlOiBudW1iZXIgPSB0aGlzLl90aW1lT3V0KSB7XG4gICAgICAgIGlmICh0aGlzLmVudmlyb25tZW50ICYmICF0aGlzLmVudmlyb25tZW50LnNob3dFcnJvck1lc3NhZ2VJblRvYXN0KSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdlcnJvciBtZXNhZ2UgaW4gdG9hc3QgaGFzIGRpc2FibGVkIGZyb20gZW52aXJvbm1lbnQgc2V0dGluZywgZGV0YWlsIHN0YXR1cyBjb2RlOiAnLFxuICAgICAgICAgICAgICAgIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTeG6rXQga2jhuql1IGtow7RuZyDEkcaw4bujYyDEkeG7gyB0cuG7kW5nJyksIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fRVJST1JfSEVBREVSJykpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fRVJST1JfSEVBREVSJyksXG4gICAgICAgICAgICBkZXRhaWw6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTeG6rXQga2jhuql1IGtow7RuZyDEkcaw4bujYyDEkeG7gyB0cuG7kW5nJyksXG4gICAgICAgICAgICBsaWZlXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBzaG93QmxvYkVycm9yKGVycm9yKSB7XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEJsb2IpIHtcbiAgICAgICAgICAgIC8vIENvbnZlcnQgQmxvYiB0byBKU09OIE9iamVjdCBpZiBwb3NzaWJsZVxuICAgICAgICAgICAgcmV0dXJuIGVycm9yLnRleHQoKS50aGVuKHRleHQgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yT2JqZWN0ID0gSlNPTi5wYXJzZSh0ZXh0KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zaG93V2FybmluZyhlcnJvck9iamVjdC5tZXNzYWdlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gUmV0dXJuIHRoZSBlcnJvciBvYmplY3QgZGlyZWN0bHlcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNob3dFeGNlcHRpb24obnVsbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZW5lcmljU2hvdyhtZXNzYWdlOiBzdHJpbmcsXG4gICAgICAgIGhlYWRlcjogc3RyaW5nLFxuICAgICAgICBpY29uOiBzdHJpbmcsXG4gICAgICAgIGFjY2VwdFZpc2libGU6IGJvb2xlYW4sXG4gICAgICAgIGFjY2VwdExhYmVsOiBzdHJpbmcgPSAnJyxcbiAgICAgICAgYWNjZXB0SWNvbjogc3RyaW5nID0gJycsXG4gICAgICAgIHJlamVjdExhYmVsOiBzdHJpbmcgPSAnJyxcbiAgICAgICAgcmVqZWN0SWNvbjogc3RyaW5nID0gJycsXG4gICAgICAgIGFjY2VwdDogRnVuY3Rpb24gPSBudWxsLFxuICAgICAgICByZWplY3Q6IEZ1bmN0aW9uID0gbnVsbCxcbiAgICAgICAgbm90aWZpZXJUeXBlOiBOb3RpZmllclR5cGUpIHtcbiAgICAgICAgc3dpdGNoIChub3RpZmllclR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgTm90aWZpZXJUeXBlLkNPTkZJUk06XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2hvd0NvbmZpcm0obWVzc2FnZSwgaGVhZGVyLCBpY29uLCBhY2NlcHRWaXNpYmxlLCByZWplY3RMYWJlbCwgcmVqZWN0SWNvbiwgYWNjZXB0TGFiZWwsIGFjY2VwdEljb24sIGFjY2VwdCwgcmVqZWN0LCk7XG4gICAgICAgICAgICBjYXNlIE5vdGlmaWVyVHlwZS5FUlJPUjpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zaG93RXJyb3IobWVzc2FnZSwgJycsIGhlYWRlcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzaG93Q29uZmlybShcbiAgICAgICAgbWVzc2FnZTogc3RyaW5nLFxuICAgICAgICBoZWFkZXI6IHN0cmluZyA9ICdYw6FjIG5o4bqtbicsXG4gICAgICAgIGljb246IHN0cmluZyA9ICdwaSBwaS1leGNsYW1hdGlvbi10cmlhbmdsZScsXG4gICAgICAgIGFjY2VwdFZpc2libGU6IGJvb2xlYW4gPSB0cnVlLFxuICAgICAgICByZWplY3RMYWJlbDogc3RyaW5nID0gdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdDT05GSVJNLlJFSkVDVF9MQUJFTCcpLFxuICAgICAgICByZWplY3RJY29uOiBzdHJpbmcgPSAncGkgcGktdGltZXMnLFxuICAgICAgICBhY2NlcHRMYWJlbDogc3RyaW5nID0gdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdDT05GSVJNLkFDQ0VQVF9MQUJFTCcpLFxuICAgICAgICBhY2NlcHRJY29uOiBzdHJpbmcgPSAncGkgcGktY2hlY2snLFxuICAgICAgICBhY2NlcHQ6IEZ1bmN0aW9uID0gbnVsbCxcbiAgICAgICAgcmVqZWN0RnVuYzogRnVuY3Rpb24gPSBudWxsLFxuICAgICAgICBhY2NlcHRCdXR0b25TdHlsZUNsYXNzID0gJ3AtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tdGV4dCcsXG4gICAgICAgIHJlamVjdEJ1dHRvblN0eWxlQ2xhc3MgPSAnXCJwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLXRleHQgcC1idXR0b24tc2Vjb25kYXJ5JyxcbiAgICAgICAgcmVqZWN0VmlzaWJsZTogYm9vbGVhbiA9IHRydWVcblxuICAgICk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9jb25maXJtU2VydmljZS5jb25maXJtKHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICAgICAgICAgIGhlYWRlcjogaGVhZGVyLFxuICAgICAgICAgICAgICAgIGljb246IGljb24sXG4gICAgICAgICAgICAgICAgYWNjZXB0VmlzaWJsZSxcbiAgICAgICAgICAgICAgICByZWplY3RWaXNpYmxlLFxuICAgICAgICAgICAgICAgIGFjY2VwdEljb246IGFjY2VwdEljb24sXG4gICAgICAgICAgICAgICAgYWNjZXB0TGFiZWw6IGFjY2VwdExhYmVsLFxuICAgICAgICAgICAgICAgIHJlamVjdExhYmVsLFxuICAgICAgICAgICAgICAgIHJlamVjdEljb24sXG4gICAgICAgICAgICAgICAgYWNjZXB0QnV0dG9uU3R5bGVDbGFzcyxcbiAgICAgICAgICAgICAgICByZWplY3RCdXR0b25TdHlsZUNsYXNzLFxuICAgICAgICAgICAgICAgIGFjY2VwdDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoYWNjZXB0KSBhY2NlcHQoKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJlamVjdDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoYWNjZXB0VmlzaWJsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlamVjdEZ1bmMpIHJlamVjdEZ1bmMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBzaG93Q29uZmlybU9iamVjdChcbiAgICAgICAgZGF0YTogYW55LFxuICAgICAgICBhY2NlcHQ6IEZ1bmN0aW9uID0gbnVsbCxcbiAgICAgICAgcmVqZWN0RnVuYzogRnVuY3Rpb24gPSBudWxsLFxuICAgICk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGNvbnN0IHBvcHVwT2JqZWN0ID0ge1xuICAgICAgICAgICAgLy8gbWVzc2FnZTogc3RyaW5nLFxuICAgICAgICAgICAgaGVhZGVyOiAnWMOhYyBuaOG6rW4nLFxuICAgICAgICAgICAgaWNvbjogJ3BpIHBpLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlJyxcbiAgICAgICAgICAgIGFjY2VwdFZpc2libGU6IHRydWUsXG4gICAgICAgICAgICByZWplY3RMYWJlbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdDT05GSVJNLlJFSkVDVF9MQUJFTCcpLFxuICAgICAgICAgICAgcmVqZWN0SWNvbjogJ3BpIHBpLXRpbWVzJyxcbiAgICAgICAgICAgIGFjY2VwdExhYmVsOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0NPTkZJUk0uQUNDRVBUX0xBQkVMJyksXG4gICAgICAgICAgICBhY2NlcHRJY29uOiAncGkgcGktY2hlY2snLFxuICAgICAgICAgICAgYWNjZXB0QnV0dG9uU3R5bGVDbGFzczogJ3AtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tdGV4dCcsXG4gICAgICAgICAgICByZWplY3RCdXR0b25TdHlsZUNsYXNzOiAnXCJwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLXRleHQgcC1idXR0b24tc2Vjb25kYXJ5JyxcbiAgICAgICAgICAgIC4uLmRhdGEsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9jb25maXJtU2VydmljZS5jb25maXJtKHtcbiAgICAgICAgICAgICAgICAuLi5wb3B1cE9iamVjdCxcbiAgICAgICAgICAgICAgICBhY2NlcHQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBvcHVwT2JqZWN0LmFjY2VwdFZpc2libGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhY2NlcHQpIGFjY2VwdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJlamVjdDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAocG9wdXBPYmplY3QucmVqZWN0VmlzaWJsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlamVjdEZ1bmMpIHJlamVjdEZ1bmMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHNob3dDb25maXJtTWFueShcbiAgICAgICAgbWVzc2FnZTogc3RyaW5nLFxuICAgICAgICB0aW1lOiBudW1iZXIgPSAyLCBkZWxheTogbnVtYmVyID0gMTAwLFxuICAgICAgICBoZWFkZXI6IHN0cmluZyA9ICcnLCBpY29uOiBzdHJpbmcgPSAnJywgYWNjZXB0VmlzaWJsZTogYm9vbGVhbiA9IHRydWUsIHJlamVjdExhYmVsOiBzdHJpbmcgPSB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0NPTkZJUk0uUkVKRUNUX0xBQkVMJyksIGRlbGF5VGltZW91dDogbnVtYmVyID0gMCk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGYgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NvbmZpcm1TZXJ2aWNlLmNvbmZpcm0oe1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXI6IGhlYWRlciA/IGhlYWRlciA6ICdYw6FjIG5o4bqtbicsXG4gICAgICAgICAgICAgICAgICAgIGljb246IGljb24gPyBpY29uIDogJ3BpIHBpLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlJyxcbiAgICAgICAgICAgICAgICAgICAgYWNjZXB0TGFiZWw6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnQ09ORklSTS5BQ0NFUFRfTEFCRUwnKSxcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0TGFiZWwsXG4gICAgICAgICAgICAgICAgICAgIGFjY2VwdFZpc2libGUsXG4gICAgICAgICAgICAgICAgICAgIGFjY2VwdDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRpbWUgPT0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3dDb25maXJtTWFueShtZXNzYWdlLCB0aW1lIC0gMSwgZGVsYXksIGhlYWRlciwgaWNvbiwgYWNjZXB0VmlzaWJsZSwgcmVqZWN0TGFiZWwsIGRlbGF5KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbihyZXMgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShyZXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWNjZXB0VmlzaWJsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LCBkZWxheVRpbWVvdXQpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzaG93RGVsZXRlQ29uZmlybShtZXNzYWdlOiBzdHJpbmcgPSAnJywgaWNvbjogc3RyaW5nID0gJycpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fY29uZmlybVNlcnZpY2UuY29uZmlybSh7XG4gICAgICAgICAgICAgICAgbWVzc2FnZTogbWVzc2FnZSA/IG1lc3NhZ2UgOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0NPTkZJUk0uREVGQVVMVF9ERUxFVEVfQ09ORklSTScpLFxuICAgICAgICAgICAgICAgIGhlYWRlcjogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdDT05GSVJNLkRFRkFVTFRfREVMRVRFX0NPTkZJUk1fVElUTEUnKSxcbiAgICAgICAgICAgICAgICBpY29uOiBpY29uID8gaWNvbiA6ICdwaSBwaS10cmFzaCcsXG4gICAgICAgICAgICAgICAgYWNjZXB0TGFiZWw6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnQ09ORklSTS5BQ0NFUFRfTEFCRUwnKSxcbiAgICAgICAgICAgICAgICByZWplY3RMYWJlbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdDT05GSVJNLlJFSkVDVF9MQUJFTCcpLFxuICAgICAgICAgICAgICAgIGFjY2VwdDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcmVqZWN0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBhZGRFcnJvck1lc3NhZ2UobXNnczogTWVzc2FnZVtdLCBjb250ZW50KSB7XG4gICAgICAgIG1zZ3MucHVzaCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnRXJyb3IgTWVzc2FnZScsIGRldGFpbDogJ1ZhbGlkYXRpb24gZmFpbGVkJyB9KTtcbiAgICB9XG5cbiAgICBjbGVhckVycm9yTWVzc2FnZShtc2dzOiBNZXNzYWdlW10pIHtcbiAgICAgICAgbXNncy5sZW5ndGggPSAwO1xuICAgIH1cbn1cblxuZXhwb3J0IGVudW0gTm90aWZpZXJUeXBlIHtcbiAgICBDT05GSVJNLFxuICAgIEVSUk9SXG59XG4iXX0=
452
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi9zZXJ2aWNlcy9ub3RpZmllci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBVyxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUdyRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQUs5RCxNQUFNLE9BQU8sZUFBZTtJQUt4QixZQUNZLGVBQStCLEVBQy9CLGVBQW9DLEVBQ3BDLG9CQUF5QyxFQUNqRCxTQUFtQjtRQUhYLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUMvQixvQkFBZSxHQUFmLGVBQWUsQ0FBcUI7UUFDcEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtRQVA3QyxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBVXBCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxDQUFDLFdBQVcsQ0FBQztRQUNyRSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxVQUFVLENBQUMsT0FHUCxFQUFFO1FBQ0YsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1YsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1NBQy9CO1FBQ0QsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztTQUNsRDtRQUVELElB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Ozs7WUFwZ0JKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7O1lBUHNDLGNBQWM7WUFBNUMsbUJBQW1CO1lBR25CLG1CQUFtQjtZQUxQLFFBQVE7O0FBOGdCN0IsTUFBTSxDQUFOLElBQVksWUFHWDtBQUhELFdBQVksWUFBWTtJQUNwQixxREFBTyxDQUFBO0lBQ1AsaURBQUssQ0FBQTtBQUNULENBQUMsRUFIVyxZQUFZLEtBQVosWUFBWSxRQUd2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlLCBNZXNzYWdlLCBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3RuLWN1c3RvbS1wcmltZW5nL2FwaSc7XG5cbmltcG9ydCB7IFJlc3BvbnNlUmVzdWx0IH0gZnJvbSAnLi4vbW9kZWxzL3Jlc3BvbnNlLXJlc3VsdCc7XG5pbXBvcnQgeyBNb2R1bGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9tb2R1bGUtY29uZmlnLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE5vdGlmaWVyU2VydmljZSB7XG4gICAgcHJpdmF0ZSBfdGltZU91dCA9IDUwMDA7XG4gICAgZW52aXJvbm1lbnQ6IGFueTtcbiAgICBwcml2YXRlIF90cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX21lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfY29uZmlybVNlcnZpY2U6IENvbmZpcm1hdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX21vZHVsZUNvbmZpZ1NlcnZpY2U6IE1vZHVsZUNvbmZpZ1NlcnZpY2UsXG4gICAgICAgIF9pbmplY3RvcjogSW5qZWN0b3JcbiAgICApIHtcbiAgICAgICAgdGhpcy5lbnZpcm9ubWVudCA9IHRoaXMuX21vZHVsZUNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCkuZW52aXJvbm1lbnQ7XG4gICAgICAgIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UgPSBfaW5qZWN0b3IuZ2V0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuICAgIH1cblxuICAgIHNldFNlcnZpY2Uob3B0czoge1xuICAgICAgICBlbnY/OiBhbnksIHRyYW5zbGF0ZVNlcnZpY2U/OiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBtZXNzYWdlU2VydmljZT86IE1lc3NhZ2VTZXJ2aWNlLCBjb25maXJtU2VydmljZT86IENvbmZpcm1hdGlvblNlcnZpY2U7XG4gICAgfSA9IHt9KSB7XG4gICAgICAgIGlmIChvcHRzLmVudikge1xuICAgICAgICAgICAgdGhpcy5lbnZpcm9ubWVudCA9IG9wdHMuZW52O1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRzLnRyYW5zbGF0ZVNlcnZpY2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UgPSBvcHRzLnRyYW5zbGF0ZVNlcnZpY2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0cy5tZXNzYWdlU2VydmljZSkge1xuICAgICAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UgPSBvcHRzLm1lc3NhZ2VTZXJ2aWNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9wdHMuY29uZmlybVNlcnZpY2UpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbmZpcm1TZXJ2aWNlID0gb3B0cy5jb25maXJtU2VydmljZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNob3dTdWNjZXNzKG1lc3NhZ2U6IHN0cmluZywgaGVhZGVyOiBzdHJpbmcgPSAnVGjDtG5nIGLDoW8nLCBsaWZlOiBudW1iZXIgPSB0aGlzLl90aW1lT3V0KSB7XG4gICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICBzZXZlcml0eTogJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgc3VtbWFyeTogaGVhZGVyLFxuICAgICAgICAgICAgZGV0YWlsOiBtZXNzYWdlLFxuICAgICAgICAgICAgbGlmZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzaG93SW5zZXJ0RGF0YVN1Y2Nlc3MobGlmZTogbnVtYmVyID0gdGhpcy5fdGltZU91dCkge1xuICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgc2V2ZXJpdHk6ICdzdWNjZXNzJyxcbiAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fU1VDQ0VTU19IRUFERVInKSxcbiAgICAgICAgICAgIGRldGFpbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLklOU0VSVF9EQVRBX1NVQ0NFU1MnKSxcbiAgICAgICAgICAgIGxpZmVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2hvd1VwZGF0ZURhdGFTdWNjZXNzKGxpZmU6IG51bWJlciA9IHRoaXMuX3RpbWVPdXQpIHtcbiAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgIHNldmVyaXR5OiAnc3VjY2VzcycsXG4gICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuQ09NTU9OX1NVQ0NFU1NfSEVBREVSJyksXG4gICAgICAgICAgICBkZXRhaWw6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5VUERBVEVfREFUQV9TVUNDRVNTJyksXG4gICAgICAgICAgICBsaWZlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNob3dEZWxldGVEYXRhU3VjY2VzcyhsaWZlOiBudW1iZXIgPSB0aGlzLl90aW1lT3V0KSB7XG4gICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICBzZXZlcml0eTogJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgc3VtbWFyeTogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkNPTU1PTl9TVUNDRVNTX0hFQURFUicpLFxuICAgICAgICAgICAgZGV0YWlsOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuREVMRVRFX0RBVEFfU1VDQ0VTUycpLFxuICAgICAgICAgICAgbGlmZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzaG93RGVsZXRlRGF0YUVycm9yKGxpZmU6IG51bWJlciA9IHRoaXMuX3RpbWVPdXQpIHtcbiAgICAgICAgaWYgKHRoaXMuZW52aXJvbm1lbnQgJiYgIXRoaXMuZW52aXJvbm1lbnQuc2hvd0Vycm9yTWVzc2FnZUluVG9hc3QpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ2Vycm9yIG1lc2FnZSBpbiB0b2FzdCBoYXMgZGlzYWJsZWQgZnJvbSBlbnZpcm9ubWVudCBzZXR0aW5nLCBkZXRhaWwgbWVzc2FnZTogJywgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkRFTEVURV9EQVRBX0VSUk9SJyksXG4gICAgICAgICAgICAgICAgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkNPTU1PTl9FUlJPUl9IRUFERVInKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxuICAgICAgICAgICAgc3VtbWFyeTogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkNPTU1PTl9FUlJPUl9IRUFERVInKSxcbiAgICAgICAgICAgIGRldGFpbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkRFTEVURV9EQVRBX0VSUk9SJyksXG4gICAgICAgICAgICBsaWZlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNob3dEZWxldGVEYXRhRW1wdHlFcnJvcihsaWZlOiBudW1iZXIgPSB0aGlzLl90aW1lT3V0KSB7XG4gICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fRVJST1JfSEVBREVSJyksXG4gICAgICAgICAgICBkZXRhaWw6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnQuG6oW4gcGjhuqNpIGNo4buNbiDDrXQgbmjhuqV0IDEgYuG6o24gZ2hpIMSR4buDIHjDs2EnKSxcbiAgICAgICAgICAgIGxpZmVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2hvd0R1cGxpY2F0ZURhdGFFcnJvcihsaWZlOiBudW1iZXIgPSB0aGlzLl90aW1lT3V0KSB7XG4gICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fRVJST1JfSEVBREVSJyksXG4gICAgICAgICAgICBkZXRhaWw6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTcOjIGPhu5l0IGtow7RuZyB0aOG7gyBi4buLIHRyw7luZyBs4bq3cCcpLFxuICAgICAgICAgICAgbGlmZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzaG93V2FybmluZyhtZXNzYWdlOiBzdHJpbmcsIGhlYWRlcjogc3RyaW5nID0gJ1Row7RuZyBiw6FvJywgbGlmZTogbnVtYmVyID0gdGhpcy5fdGltZU91dCkge1xuICAgICAgICBpZiAodGhpcy5lbnZpcm9ubWVudCAmJiAhdGhpcy5lbnZpcm9ubWVudC5zaG93V2FybmluZ01lc3NhZ2VJblRvYXN0KSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ2Vycm9yIG1lc2FnZSBpbiB0b2FzdCBoYXMgZGlzYWJsZWQgZnJvbSBlbnZpcm9ubWVudCBzZXR0aW5nLCBkZXRhaWwgbWVzc2FnZTogJywgaGVhZGVyLCBtZXNzYWdlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgc2V2ZXJpdHk6ICd3YXJuJyxcbiAgICAgICAgICAgIHN1bW1hcnk6IGhlYWRlcixcbiAgICAgICAgICAgIGRldGFpbDogbWVzc2FnZSxcbiAgICAgICAgICAgIGxpZmVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2hvd0Vycm9yKG1lc3NhZ2U6IHN0cmluZywga2V5OiBzdHJpbmcgPSAnJywgaGVhZGVyOiBzdHJpbmcgPSAnTOG7l2knLCBsaWZlOiBudW1iZXIgPSB0aGlzLl90aW1lT3V0KSB7XG4gICAgICAgIGlmICh0aGlzLmVudmlyb25tZW50ICYmICF0aGlzLmVudmlyb25tZW50LnNob3dFcnJvck1lc3NhZ2VJblRvYXN0KSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdlcnJvciBtZXNhZ2UgaW4gdG9hc3QgaGFzIGRpc2FibGVkIGZyb20gZW52aXJvbm1lbnQgc2V0dGluZywgZGV0YWlsIG1lc3NhZ2U6ICcsIG1lc3NhZ2UsIGhlYWRlcik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoa2V5KSB7XG4gICAgICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICBzdW1tYXJ5OiBoZWFkZXIsXG4gICAgICAgICAgICAgICAgZGV0YWlsOiBtZXNzYWdlLFxuICAgICAgICAgICAgICAgIGxpZmVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICBzdW1tYXJ5OiBoZWFkZXIsXG4gICAgICAgICAgICAgICAgZGV0YWlsOiBtZXNzYWdlLFxuICAgICAgICAgICAgICAgIGxpZmVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2hvd0V4Y2VwdGlvbihlcnI6IGFueSwgaGVhZGVyOiBzdHJpbmcgPSAnVGjDtG5nIGLDoW8nLCBsaWZlOiBudW1iZXIgPSB0aGlzLl90aW1lT3V0KSB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSAnQ8OzIGzhu5dpIHjhuqN5IHJhLiBMacOqbiBo4buHIHF14bqjbiB0cuG7iyB2acOqbiDEkeG7gyBiaeG6v3QgdGjDqm0gY2hpIHRp4bq/dCEnO1xuICAgICAgICBpZiAodGhpcy5lbnZpcm9ubWVudCAmJiAhdGhpcy5lbnZpcm9ubWVudC5zaG93V2FybmluZ01lc3NhZ2VJblRvYXN0KSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ2Vycm9yIG1lc2FnZSBpbiB0b2FzdCBoYXMgZGlzYWJsZWQgZnJvbSBlbnZpcm9ubWVudCBzZXR0aW5nLCBkZXRhaWwgbWVzc2FnZTogJywgaGVhZGVyLCBtZXNzYWdlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgc2V2ZXJpdHk6ICd3YXJuJyxcbiAgICAgICAgICAgIHN1bW1hcnk6IGhlYWRlcixcbiAgICAgICAgICAgIGRldGFpbDogbWVzc2FnZSxcbiAgICAgICAgICAgIGxpZmVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2hvd1dhcm5pbmdCeVJlc3BvbnNlKHJlczogUmVzcG9uc2VSZXN1bHQpIHtcbiAgICAgICAgbGV0IG1lc3NhZ2UgPSByZXMubWVzc2FnZTtcbiAgICAgICAgaWYgKCFtZXNzYWdlKSB7XG4gICAgICAgICAgICBtZXNzYWdlID0gcmVzLmVycm9yO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2hvd1dhcm5pbmcobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgc2hvd0J1c2luZXNzRXJyb3IobWVzc2FnZTogc3RyaW5nLCBrZXk6IHN0cmluZyA9ICcnLCBoZWFkZXI6IHN0cmluZyA9ICdM4buXaScsIGxpZmU6IG51bWJlciA9IHRoaXMuX3RpbWVPdXQpIHtcbiAgICAgICAgaWYgKGtleSkge1xuICAgICAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgc3VtbWFyeTogaGVhZGVyLFxuICAgICAgICAgICAgICAgIGRldGFpbDogbWVzc2FnZSxcbiAgICAgICAgICAgICAgICBsaWZlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgc3VtbWFyeTogaGVhZGVyLFxuICAgICAgICAgICAgICAgIGRldGFpbDogbWVzc2FnZSxcbiAgICAgICAgICAgICAgICBsaWZlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNob3dIdHRwVW5rbm93RXJyb3IobGlmZTogbnVtYmVyID0gdGhpcy5fdGltZU91dCkge1xuICAgICAgICBpZiAodGhpcy5lbnZpcm9ubWVudCAmJiAhdGhpcy5lbnZpcm9ubWVudC5zaG93RXJyb3JNZXNzYWdlSW5Ub2FzdCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignZXJyb3IgbWVzYWdlIGluIHRvYXN0IGhhcyBkaXNhYmxlZCBmcm9tIGVudmlyb25tZW50IHNldHRpbmcsIGRldGFpbCBtZXNzYWdlOiAnLFxuICAgICAgICAgICAgICAgIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5IVFRQX1VOS05PV19FUlJPUl9IRUFERVInKSwgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkhUVFBfVU5LTk9XX0VSUk9SJykpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxuICAgICAgICAgICAgc3VtbWFyeTogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkhUVFBfVU5LTk9XX0VSUk9SX0hFQURFUicpLFxuICAgICAgICAgICAgZGV0YWlsOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuSFRUUF9VTktOT1dfRVJST1InKSxcbiAgICAgICAgICAgIGxpZmVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2hvd1Jlc3BvbnNlRXJyb3Ioc3RhdHVzOiBudW1iZXIsIGxpZmU6IG51bWJlciA9IHRoaXMuX3RpbWVPdXQsIHNlcnZpY2VOYW1lOiBzdHJpbmcgPSAnJykge1xuICAgICAgICBpZiAodGhpcy5lbnZpcm9ubWVudCAmJiAhdGhpcy5lbnZpcm9ubWVudC5zaG93RXJyb3JNZXNzYWdlSW5Ub2FzdCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignZXJyb3IgbWVzYWdlIGluIHRvYXN0IGhhcyBkaXNhYmxlZCBmcm9tIGVudmlyb25tZW50IHNldHRpbmcsIGRldGFpbCBzdGF0dXMgY29kZTogJywgc3RhdHVzKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RhdHVzID09PSA0MDQpIHtcbiAgICAgICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgc3VtbWFyeTogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkNPTU1PTl9FUlJPUl9IRUFERVInKSxcbiAgICAgICAgICAgICAgICBkZXRhaWw6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5OT1RfRk9VTkRfRVJST1InKSxcbiAgICAgICAgICAgICAgICBsaWZlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChzdGF0dXMgPT09IDQwMSkge1xuICAgICAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuQ09NTU9OX0VSUk9SX0hFQURFUicpLFxuICAgICAgICAgICAgICAgIGRldGFpbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLlVOQVVUSE9SSVpFRF9FUlJPUicpLFxuICAgICAgICAgICAgICAgIGxpZmVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHN0YXR1cyA9PT0gNDAzKSB7XG4gICAgICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxuICAgICAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fRVJST1JfSEVBREVSJyksXG4gICAgICAgICAgICAgICAgZGV0YWlsOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuQUNDRVNTX0RFTklORURfRVJST1InKSxcbiAgICAgICAgICAgICAgICBsaWZlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChzdGF0dXMgPT09IDUwMCkge1xuICAgICAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuQ09NTU9OX0VSUk9SX0hFQURFUicpLFxuICAgICAgICAgICAgICAgIGRldGFpbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLklOVEVSTkFMX1NFUlZFUl9FUlJPUicpLFxuICAgICAgICAgICAgICAgIGxpZmVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHN0YXR1cyA9PT0gNDA5KSB7XG4gICAgICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxuICAgICAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fRVJST1JfSEVBREVSJyksXG4gICAgICAgICAgICAgICAgZGV0YWlsOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuQ09ORkxJQ1RfRVJST1InKSxcbiAgICAgICAgICAgICAgICBsaWZlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChzdGF0dXMgPT09IDQwMCkge1xuICAgICAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuQ09NTU9OX0VSUk9SX0hFQURFUicpLFxuICAgICAgICAgICAgICAgIGRldGFpbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdWdWkgbMOybmcga2nhu4NtIHRyYSBk4buvIGxp4buHdSDEkeG6p3UgdsOgbycpLFxuICAgICAgICAgICAgICAgIGxpZmVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHN0YXR1cyA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuQ09NTU9OX0VSUk9SX0hFQURFUicpLFxuICAgICAgICAgICAgICAgIGRldGFpbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGBWdWkgbMOybmcga2nhu4NtIHRyYSBs4bqhaSBk4buLY2ggduG7pSAke3NlcnZpY2VOYW1lfWApLFxuICAgICAgICAgICAgICAgIGxpZmVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2hvd0luc2VydERhdGFGYWlsZWQobGlmZTogbnVtYmVyID0gdGhpcy5fdGltZU91dCkge1xuICAgICAgICBpZiAodGhpcy5lbnZpcm9ubWVudCAmJiAhdGhpcy5lbnZpcm9ubWVudC5zaG93RXJyb3JNZXNzYWdlSW5Ub2FzdCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignZXJyb3IgbWVzYWdlIGluIHRvYXN0IGhhcyBkaXNhYmxlZCBmcm9tIGVudmlyb25tZW50IHNldHRpbmcsIGRldGFpbCBzdGF0dXMgY29kZTogJyxcbiAgICAgICAgICAgICAgICB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuSU5TRVJUX0RBVEFfRkFJTEVEJyksIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fRVJST1JfSEVBREVSJykpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fRVJST1JfSEVBREVSJyksXG4gICAgICAgICAgICBkZXRhaWw6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5JTlNFUlRfREFUQV9GQUlMRUQnKSxcbiAgICAgICAgICAgIGxpZmVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2hvd1VwZGF0ZURhdGFGYWlsZWQobGlmZTogbnVtYmVyID0gdGhpcy5fdGltZU91dCkge1xuICAgICAgICBpZiAodGhpcy5lbnZpcm9ubWVudCAmJiAhdGhpcy5lbnZpcm9ubWVudC5zaG93RXJyb3JNZXNzYWdlSW5Ub2FzdCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignZXJyb3IgbWVzYWdlIGluIHRvYXN0IGhhcyBkaXNhYmxlZCBmcm9tIGVudmlyb25tZW50IHNldHRpbmcsIGRldGFpbCBzdGF0dXMgY29kZTogJyxcbiAgICAgICAgICAgICAgICB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01FU1NBR0UuVVBEQVRFX0RBVEFfRkFJTEVEJyksIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fRVJST1JfSEVBREVSJykpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fRVJST1JfSEVBREVSJyksXG4gICAgICAgICAgICBkZXRhaWw6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5VUERBVEVfREFUQV9GQUlMRUQnKSxcbiAgICAgICAgICAgIGxpZmVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2hvd0xvY2tVc2VyRmFpbGVkKGxpZmU6IG51bWJlciA9IHRoaXMuX3RpbWVPdXQpIHtcbiAgICAgICAgaWYgKHRoaXMuZW52aXJvbm1lbnQgJiYgIXRoaXMuZW52aXJvbm1lbnQuc2hvd0Vycm9yTWVzc2FnZUluVG9hc3QpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ2Vycm9yIG1lc2FnZSBpbiB0b2FzdCBoYXMgZGlzYWJsZWQgZnJvbSBlbnZpcm9ubWVudCBzZXR0aW5nLCBkZXRhaWwgc3RhdHVzIGNvZGU6ICcsXG4gICAgICAgICAgICAgICAgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdLaMOzYSBuZ8aw4budaSBkw7luZyB0aOG6pXQgYuG6oWknKSwgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkNPTU1PTl9FUlJPUl9IRUFERVInKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxuICAgICAgICAgICAgc3VtbWFyeTogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkNPTU1PTl9FUlJPUl9IRUFERVInKSxcbiAgICAgICAgICAgIGRldGFpbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdLaMOzYSBuZ8aw4budaSBkw7luZyB0aOG6pXQgYuG6oWknKSxcbiAgICAgICAgICAgIGxpZmVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2hvd1VubG9ja1VzZXJGYWlsZWQobGlmZTogbnVtYmVyID0gdGhpcy5fdGltZU91dCkge1xuICAgICAgICBpZiAodGhpcy5lbnZpcm9ubWVudCAmJiAhdGhpcy5lbnZpcm9ubWVudC5zaG93RXJyb3JNZXNzYWdlSW5Ub2FzdCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignZXJyb3IgbWVzYWdlIGluIHRvYXN0IGhhcyBkaXNhYmxlZCBmcm9tIGVudmlyb25tZW50IHNldHRpbmcsIGRldGFpbCBzdGF0dXMgY29kZTogJyxcbiAgICAgICAgICAgICAgICB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ03hu58ga2jDs2EgbmfGsOG7nWkgZMO5bmcgdGjhuqV0IGLhuqFpJyksIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fRVJST1JfSEVBREVSJykpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fRVJST1JfSEVBREVSJyksXG4gICAgICAgICAgICBkZXRhaWw6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTeG7nyBraMOzYSBuZ8aw4budaSBkw7luZyB0aOG6pXQgYuG6oWknKSxcbiAgICAgICAgICAgIGxpZmVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2hvd1VwZGF0ZURhdGFTaW5nbGVGYWlsZWQobGlmZTogbnVtYmVyID0gdGhpcy5fdGltZU91dCkge1xuICAgICAgICBpZiAodGhpcy5lbnZpcm9ubWVudCAmJiAhdGhpcy5lbnZpcm9ubWVudC5zaG93RXJyb3JNZXNzYWdlSW5Ub2FzdCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignZXJyb3IgbWVzYWdlIGluIHRvYXN0IGhhcyBkaXNhYmxlZCBmcm9tIGVudmlyb25tZW50IHNldHRpbmcsIGRldGFpbCBzdGF0dXMgY29kZTogJyxcbiAgICAgICAgICAgICAgICB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ03DoyBob+G6t2MgdMOqbiBkYW5oIG3hu6VjIMSRw6MgdOG7k24gdOG6oWknKSwgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkNPTU1PTl9FUlJPUl9IRUFERVInKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxuICAgICAgICAgICAgc3VtbWFyeTogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNRVNTQUdFLkNPTU1PTl9FUlJPUl9IRUFERVInKSxcbiAgICAgICAgICAgIGRldGFpbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdNw6MgaG/hurdjIHTDqm4gZGFuaCBt4bulYyDEkcOjIHThu5NuIHThuqFpJyksXG4gICAgICAgICAgICBsaWZlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNob3dVcGRhdGVEYXRhQ29uZmlndXJhdGlvbkZhaWxlZChsaWZlOiBudW1iZXIgPSB0aGlzLl90aW1lT3V0KSB7XG4gICAgICAgIGlmICh0aGlzLmVudmlyb25tZW50ICYmICF0aGlzLmVudmlyb25tZW50LnNob3dFcnJvck1lc3NhZ2VJblRvYXN0KSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdlcnJvciBtZXNhZ2UgaW4gdG9hc3QgaGFzIGRpc2FibGVkIGZyb20gZW52aXJvbm1lbnQgc2V0dGluZywgZGV0YWlsIHN0YXR1cyBjb2RlOiAnLFxuICAgICAgICAgICAgICAgIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTeG6rXQga2jhuql1IGtow7RuZyDEkcaw4bujYyDEkeG7gyB0cuG7kW5nJyksIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fRVJST1JfSEVBREVSJykpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTUVTU0FHRS5DT01NT05fRVJST1JfSEVBREVSJyksXG4gICAgICAgICAgICBkZXRhaWw6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTeG6rXQga2jhuql1IGtow7RuZyDEkcaw4bujYyDEkeG7gyB0cuG7kW5nJyksXG4gICAgICAgICAgICBsaWZlXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBzaG93QmxvYkVycm9yKGVycm9yKSB7XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEJsb2IpIHtcbiAgICAgICAgICAgIC8vIENvbnZlcnQgQmxvYiB0byBKU09OIE9iamVjdCBpZiBwb3NzaWJsZVxuICAgICAgICAgICAgcmV0dXJuIGVycm9yLnRleHQoKS50aGVuKHRleHQgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yT2JqZWN0ID0gSlNPTi5wYXJzZSh0ZXh0KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zaG93V2FybmluZyhlcnJvck9iamVjdC5tZXNzYWdlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gUmV0dXJuIHRoZSBlcnJvciBvYmplY3QgZGlyZWN0bHlcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNob3dFeGNlcHRpb24obnVsbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZW5lcmljU2hvdyhtZXNzYWdlOiBzdHJpbmcsXG4gICAgICAgIGhlYWRlcjogc3RyaW5nLFxuICAgICAgICBpY29uOiBzdHJpbmcsXG4gICAgICAgIGFjY2VwdFZpc2libGU6IGJvb2xlYW4sXG4gICAgICAgIGFjY2VwdExhYmVsOiBzdHJpbmcgPSAnJyxcbiAgICAgICAgYWNjZXB0SWNvbjogc3RyaW5nID0gJycsXG4gICAgICAgIHJlamVjdExhYmVsOiBzdHJpbmcgPSAnJyxcbiAgICAgICAgcmVqZWN0SWNvbjogc3RyaW5nID0gJycsXG4gICAgICAgIGFjY2VwdDogRnVuY3Rpb24gPSBudWxsLFxuICAgICAgICByZWplY3Q6IEZ1bmN0aW9uID0gbnVsbCxcbiAgICAgICAgbm90aWZpZXJUeXBlOiBOb3RpZmllclR5cGUpIHtcbiAgICAgICAgc3dpdGNoIChub3RpZmllclR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgTm90aWZpZXJUeXBlLkNPTkZJUk06XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2hvd0NvbmZpcm0obWVzc2FnZSwgaGVhZGVyLCBpY29uLCBhY2NlcHRWaXNpYmxlLCByZWplY3RMYWJlbCwgcmVqZWN0SWNvbiwgYWNjZXB0TGFiZWwsIGFjY2VwdEljb24sIGFjY2VwdCwgcmVqZWN0LCk7XG4gICAgICAgICAgICBjYXNlIE5vdGlmaWVyVHlwZS5FUlJPUjpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zaG93RXJyb3IobWVzc2FnZSwgJycsIGhlYWRlcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzaG93Q29uZmlybShcbiAgICAgICAgbWVzc2FnZTogc3RyaW5nLFxuICAgICAgICBoZWFkZXI6IHN0cmluZyA9ICdYw6FjIG5o4bqtbicsXG4gICAgICAgIGljb246IHN0cmluZyA9ICdwaSBwaS1leGNsYW1hdGlvbi10cmlhbmdsZScsXG4gICAgICAgIGFjY2VwdFZpc2libGU6IGJvb2xlYW4gPSB0cnVlLFxuICAgICAgICByZWplY3RMYWJlbDogc3RyaW5nID0gdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdDT05GSVJNLlJFSkVDVF9MQUJFTCcpLFxuICAgICAgICByZWplY3RJY29uOiBzdHJpbmcgPSAncGkgcGktdGltZXMnLFxuICAgICAgICBhY2NlcHRMYWJlbDogc3RyaW5nID0gdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdDT05GSVJNLkFDQ0VQVF9MQUJFTCcpLFxuICAgICAgICBhY2NlcHRJY29uOiBzdHJpbmcgPSAncGkgcGktY2hlY2snLFxuICAgICAgICBhY2NlcHQ6IEZ1bmN0aW9uID0gbnVsbCxcbiAgICAgICAgcmVqZWN0RnVuYzogRnVuY3Rpb24gPSBudWxsLFxuICAgICAgICBhY2NlcHRCdXR0b25TdHlsZUNsYXNzID0gJ3AtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tdGV4dCcsXG4gICAgICAgIHJlamVjdEJ1dHRvblN0eWxlQ2xhc3MgPSAnXCJwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLXRleHQgcC1idXR0b24tc2Vjb25kYXJ5JyxcbiAgICAgICAgcmVqZWN0VmlzaWJsZTogYm9vbGVhbiA9IHRydWVcblxuICAgICk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9jb25maXJtU2VydmljZS5jb25maXJtKHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICAgICAgICAgIGhlYWRlcjogaGVhZGVyLFxuICAgICAgICAgICAgICAgIGljb246IGljb24sXG4gICAgICAgICAgICAgICAgYWNjZXB0VmlzaWJsZSxcbiAgICAgICAgICAgICAgICByZWplY3RWaXNpYmxlLFxuICAgICAgICAgICAgICAgIGFjY2VwdEljb246IGFjY2VwdEljb24sXG4gICAgICAgICAgICAgICAgYWNjZXB0TGFiZWw6IGFjY2VwdExhYmVsLFxuICAgICAgICAgICAgICAgIHJlamVjdExhYmVsLFxuICAgICAgICAgICAgICAgIHJlamVjdEljb24sXG4gICAgICAgICAgICAgICAgYWNjZXB0QnV0dG9uU3R5bGVDbGFzcyxcbiAgICAgICAgICAgICAgICByZWplY3RCdXR0b25TdHlsZUNsYXNzLFxuICAgICAgICAgICAgICAgIGFjY2VwdDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoYWNjZXB0KSBhY2NlcHQoKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJlamVjdDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoYWNjZXB0VmlzaWJsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlamVjdEZ1bmMpIHJlamVjdEZ1bmMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBzaG93Q29uZmlybU9iamVjdChcbiAgICAgICAgZGF0YTogYW55LFxuICAgICAgICBhY2NlcHQ6IEZ1bmN0aW9uID0gbnVsbCxcbiAgICAgICAgcmVqZWN0RnVuYzogRnVuY3Rpb24gPSBudWxsLFxuICAgICk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGNvbnN0IHBvcHVwT2JqZWN0ID0ge1xuICAgICAgICAgICAgLy8gbWVzc2FnZTogc3RyaW5nLFxuICAgICAgICAgICAgaGVhZGVyOiAnWMOhYyBuaOG6rW4nLFxuICAgICAgICAgICAgaWNvbjogJ3BpIHBpLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlJyxcbiAgICAgICAgICAgIGFjY2VwdFZpc2libGU6IHRydWUsXG4gICAgICAgICAgICByZWplY3RMYWJlbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdDT05GSVJNLlJFSkVDVF9MQUJFTCcpLFxuICAgICAgICAgICAgcmVqZWN0SWNvbjogJ3BpIHBpLXRpbWVzJyxcbiAgICAgICAgICAgIGFjY2VwdExhYmVsOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0NPTkZJUk0uQUNDRVBUX0xBQkVMJyksXG4gICAgICAgICAgICBhY2NlcHRJY29uOiAncGkgcGktY2hlY2snLFxuICAgICAgICAgICAgYWNjZXB0QnV0dG9uU3R5bGVDbGFzczogJ3AtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tdGV4dCcsXG4gICAgICAgICAgICByZWplY3RCdXR0b25TdHlsZUNsYXNzOiAnXCJwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLXRleHQgcC1idXR0b24tc2Vjb25kYXJ5JyxcbiAgICAgICAgICAgIC4uLmRhdGEsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9jb25maXJtU2VydmljZS5jb25maXJtKHtcbiAgICAgICAgICAgICAgICAuLi5wb3B1cE9iamVjdCxcbiAgICAgICAgICAgICAgICBhY2NlcHQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBvcHVwT2JqZWN0LmFjY2VwdFZpc2libGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhY2NlcHQpIGFjY2VwdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcmVqZWN0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwb3B1cE9iamVjdC5yZWplY3RWaXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVqZWN0RnVuYykgcmVqZWN0RnVuYygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgc2hvd0NvbmZpcm1NYW55KFxuICAgICAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgICAgIHRpbWU6IG51bWJlciA9IDIsIGRlbGF5OiBudW1iZXIgPSAxMDAsXG4gICAgICAgIGhlYWRlcjogc3RyaW5nID0gJycsIGljb246IHN0cmluZyA9ICcnLCBhY2NlcHRWaXNpYmxlOiBib29sZWFuID0gdHJ1ZSwgcmVqZWN0TGFiZWw6IHN0cmluZyA9IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnQ09ORklSTS5SRUpFQ1RfTEFCRUwnKSwgZGVsYXlUaW1lb3V0OiBudW1iZXIgPSAwKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoZiA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY29uZmlybVNlcnZpY2UuY29uZmlybSh7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcjogaGVhZGVyID8gaGVhZGVyIDogJ1jDoWMgbmjhuq1uJyxcbiAgICAgICAgICAgICAgICAgICAgaWNvbjogaWNvbiA/IGljb24gOiAncGkgcGktZXhjbGFtYXRpb24tdHJpYW5nbGUnLFxuICAgICAgICAgICAgICAgICAgICBhY2NlcHRMYWJlbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdDT05GSVJNLkFDQ0VQVF9MQUJFTCcpLFxuICAgICAgICAgICAgICAgICAgICByZWplY3RMYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgYWNjZXB0VmlzaWJsZSxcbiAgICAgICAgICAgICAgICAgICAgYWNjZXB0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGltZSA9PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd0NvbmZpcm1NYW55KG1lc3NhZ2UsIHRpbWUgLSAxLCBkZWxheSwgaGVhZGVyLCBpY29uLCBhY2NlcHRWaXNpYmxlLCByZWplY3RMYWJlbCwgZGVsYXkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICByZWplY3Q6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhY2NlcHRWaXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sIGRlbGF5VGltZW91dCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNob3dEZWxldGVDb25maXJtKG1lc3NhZ2U6IHN0cmluZyA9ICcnLCBpY29uOiBzdHJpbmcgPSAnJyk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9jb25maXJtU2VydmljZS5jb25maXJtKHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBtZXNzYWdlID8gbWVzc2FnZSA6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnQ09ORklSTS5ERUZBVUxUX0RFTEVURV9DT05GSVJNJyksXG4gICAgICAgICAgICAgICAgaGVhZGVyOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0NPTkZJUk0uREVGQVVMVF9ERUxFVEVfQ09ORklSTV9USVRMRScpLFxuICAgICAgICAgICAgICAgIGljb246IGljb24gPyBpY29uIDogJ3BpIHBpLXRyYXNoJyxcbiAgICAgICAgICAgICAgICBhY2NlcHRMYWJlbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdDT05GSVJNLkFDQ0VQVF9MQUJFTCcpLFxuICAgICAgICAgICAgICAgIHJlamVjdExhYmVsOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0NPTkZJUk0uUkVKRUNUX0xBQkVMJyksXG4gICAgICAgICAgICAgICAgYWNjZXB0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICByZWplY3Q6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFkZEVycm9yTWVzc2FnZShtc2dzOiBNZXNzYWdlW10sIGNvbnRlbnQpIHtcbiAgICAgICAgbXNncy5wdXNoKHsgc2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6ICdFcnJvciBNZXNzYWdlJywgZGV0YWlsOiAnVmFsaWRhdGlvbiBmYWlsZWQnIH0pO1xuICAgIH1cblxuICAgIGNsZWFyRXJyb3JNZXNzYWdlKG1zZ3M6IE1lc3NhZ2VbXSkge1xuICAgICAgICBtc2dzLmxlbmd0aCA9IDA7XG4gICAgfVxufVxuXG5leHBvcnQgZW51bSBOb3RpZmllclR5cGUge1xuICAgIENPTkZJUk0sXG4gICAgRVJST1Jcbn1cbiJdfQ==
@@ -2697,7 +2697,7 @@ class NotifierService {
2697
2697
  if (popupObject.acceptVisible) {
2698
2698
  if (accept)
2699
2699
  accept();
2700
- resolve(false);
2700
+ resolve(true);
2701
2701
  }
2702
2702
  }, reject: () => {
2703
2703
  if (popupObject.rejectVisible) {