@adlfe/campaign-management-library 2.13.1 → 2.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (20) hide show
  1. package/bundles/adlfe-campaign-management-library.umd.js +69 -65
  2. package/bundles/adlfe-campaign-management-library.umd.js.map +1 -1
  3. package/bundles/adlfe-campaign-management-library.umd.min.js +1 -1
  4. package/bundles/adlfe-campaign-management-library.umd.min.js.map +1 -1
  5. package/esm2015/environments/environment.js +3 -3
  6. package/esm2015/lib/campaign-management/models/general-information-wa-req.model.js +15 -27
  7. package/esm2015/lib/campaign-management/modules/new-campaign/components/general-information-wa/general-information-wa.component.js +41 -32
  8. package/esm2015/lib/campaign-management/modules/new-campaign/general-information/general-information.component.js +1 -2
  9. package/esm2015/lib/campaign-management/modules/new-campaign/new-number-bases/new-number-bases.component.js +14 -6
  10. package/esm5/environments/environment.js +3 -3
  11. package/esm5/lib/campaign-management/models/general-information-wa-req.model.js +15 -27
  12. package/esm5/lib/campaign-management/modules/new-campaign/components/general-information-wa/general-information-wa.component.js +41 -32
  13. package/esm5/lib/campaign-management/modules/new-campaign/general-information/general-information.component.js +1 -2
  14. package/esm5/lib/campaign-management/modules/new-campaign/new-number-bases/new-number-bases.component.js +14 -6
  15. package/fesm2015/adlfe-campaign-management-library.js +69 -65
  16. package/fesm2015/adlfe-campaign-management-library.js.map +1 -1
  17. package/fesm5/adlfe-campaign-management-library.js +69 -65
  18. package/fesm5/adlfe-campaign-management-library.js.map +1 -1
  19. package/lib/campaign-management/models/general-information-wa-req.model.d.ts +0 -5
  20. package/package.json +1 -1
@@ -101,7 +101,6 @@ var GeneralInformationComponent = /** @class */ (function () {
101
101
  this.form.disable();
102
102
  };
103
103
  GeneralInformationComponent.prototype.updateGeneralInformationForm = function (form) {
104
- console.log(form, 'form');
105
104
  this.generalInformationForm = form;
106
105
  this.isShowMore = false;
107
106
  this.generalInformation.emit({
@@ -230,4 +229,4 @@ var GeneralInformationComponent = /** @class */ (function () {
230
229
  return GeneralInformationComponent;
231
230
  }());
232
231
  export { GeneralInformationComponent };
233
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhbC1pbmZvcm1hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWRsZmUvY2FtcGFpZ24tbWFuYWdlbWVudC1saWJyYXJ5LyIsInNvdXJjZXMiOlsibGliL2NhbXBhaWduLW1hbmFnZW1lbnQvbW9kdWxlcy9uZXctY2FtcGFpZ24vZ2VuZXJhbC1pbmZvcm1hdGlvbi9nZW5lcmFsLWluZm9ybWF0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxFQUNILHdDQUF3QyxFQUN4QyxtQkFBbUIsR0FDdEIsTUFBTSx3QkFBd0IsQ0FBQztBQWVoQztJQXlCSSxxQ0FBb0IsU0FBdUI7UUFBM0MsaUJBRUM7UUFGbUIsY0FBUyxHQUFULFNBQVMsQ0FBYztRQWZwQyxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUNqQyxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFDbEMsdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBQ3BDLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFHNUIsd0JBQW1CLEdBQUc7WUFDekIsUUFBUSxFQUFFLENBQUM7WUFDWCxVQUFVLEVBQUUsQ0FBQztZQUNiLFFBQVEsRUFBRSxFQUFFO1lBQ1osUUFBUSxFQUFFLGdDQUFnQztTQUM3QyxDQUFDO1FBeUtLLHlCQUFvQixHQUFHOztZQUMxQixJQUFNLGFBQWEsU0FBRyxLQUFJLENBQUMsc0JBQXNCLDBDQUFFLFdBQVcsRUFBRSxDQUFDO1lBQ2pFLElBQUks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OztPQUFBO0lBQ0QsYUFBYTtJQUVMLGlEQUFXLEdBQW5COztRQUNJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxlQUFHLElBQUksQ0FBQyxzQkFBc0IsMENBQUUsV0FBVyw0Q0FBSSxRQUFRLENBQUM7UUFDMUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLGVBQUcsSUFBSSxDQUFDLHNCQUFzQiwwQ0FBRSxXQUFXLDRDQUFJLFNBQVMsQ0FBQztJQUNoRixDQUFDO0lBRU8sc0RBQWdCLEdBQXhCLFVBQXlCLFVBQVU7UUFDL0IsT0FBTyxVQUFVO2FBQ1osVUFBVSxDQUFDLGdCQUFnQixFQUFFLGVBQWUsQ0FBQzthQUM3QyxVQUFVLENBQUMsc0JBQXNCLEVBQUUscUJBQXFCLENBQUM7YUFDekQsVUFBVSxDQUFDLGdDQUFnQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzFELENBQUM7O2dCQW5LOEIsWUFBWTs7SUF2QjNDO1FBREMsTUFBTSxFQUFFOzJFQUlOO0lBa0JNO1FBQVIsS0FBSyxFQUFFO3VFQUFnQztJQXZCL0IsMkJBQTJCO1FBTHZDLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxzQ0FBc0M7WUFDaEQsNnFuQkFBbUQ7O1NBRXRELENBQUM7T0FDVywyQkFBMkIsQ0FpT3ZDO0lBQUQsa0NBQUM7Q0FBQSxBQWpPRCxJQWlPQztTQWpPWSwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBTZWdtZW50ZWRNZXNzYWdlIH0gZnJvbSAnc21zLXNlZ21lbnRzLWNhbGN1bGF0b3InO1xyXG5pbXBvcnQge1xyXG4gICAgR2VuZXJhbEluZm9ybWF0aW9uTWVzc2FnZVZhbGlkYXRpb25Db25zdCxcclxuICAgIFBsYXRmb3JtT3B0aW9uQ29uc3QsXHJcbn0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9jb25zdCc7XHJcblxyXG5pbnRlcmZhY2UgSU1hcHMge1xyXG4gICAgem9vbTogbnVtYmVyO1xyXG4gICAgbGF0aXR1ZGU6IG51bWJlcjtcclxuICAgIGxvbmdpdHVkZTogbnVtYmVyO1xyXG4gICAgaXNEcmFnZ2FibGU6IGJvb2xlYW47XHJcbiAgICBpc0RvdWJsZUNsaWNrWm9vbTogYm9vbGVhbjtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2xpYi1uZXctY2FtcGFpZ24tZ2VuZXJhbC1pbmZvcm1hdGlvbicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vZ2VuZXJhbC1pbmZvcm1hdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9nZW5lcmFsLWluZm9ybWF0aW9uLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHZW5lcmFsSW5mb3JtYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgZ2VuZXJhbEluZm9ybWF0aW9uOiBFdmVudEVtaXR0ZXI8e1xyXG4gICAgICAgIHBhcmVudDogRm9ybUdyb3VwO1xyXG4gICAgICAgIGNoaWxkOiBGb3JtR3JvdXA7XHJcbiAgICB9PjtcclxuXHJcbiAgICBwdWJsaWMgZm9ybTogRm9ybUdyb3VwO1xyXG4gICAgcHVibGljIGNoYW5uZWxPcHRpb246IGFueVtdO1xyXG4gICAgcHVibGljIGdlbmVyYWxJbmZvcm1hdGlvbkZvcm06IEZvcm1Hcm91cDtcclxuICAgIHB1YmxpYyBpc1RvdWNoZWRXQUZvcm06IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBpc1RvdWNoZWRTTVNGb3JtOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgaXNUb3VjaGVkRW1haWxGb3JtOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgaXNTaG93TW9yZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIHZhbGlkYXRpb25NZXNzYWdlczogYW55O1xyXG4gICAgcHVibGljIG1hcHM6IElNYXBzO1xyXG4gICAgcHVibGljIHR3aWxpb1Jlc3VsdENvdW50ZXIgPSB7XHJcbiAgICAgICAgc2VnbWVudHM6IDAsXHJcbiAgICAgICAgY2hhcmFjdGVyczogMCxcclxuICAgICAgICBlbmNvZGluZzogJycsXHJcbiAgICAgICAgZnVsbHRleHQ6IGBFbmNvZGUgLSAvIENoYXJzIDAgLyBTZWdtZW50IDFgLFxyXG4gICAgfTtcclxuXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgaXNSZWFkT25seU1vZGU6IGJvb2xlYW47XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikge1xyXG4gICAgICAgIHRoaXMuZ2VuZXJhbEluZm9ybWF0aW9uID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2hhbm5lbE9wdGlvbiA9IFBsYXRmb3JtT3B0aW9uQ29uc3Q7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uTWVzc2FnZXMgPSBHZW5lcmFsSW5mb3JtYXRpb25NZXNzYWdlVmFsaWRhdGlvbkNvbnN0O1xyXG4gICAgICAgIHRoaXMubWFwcyA9IHtcclxuICAgICAgICAgICAgem9vbTogMTUsXHJcbiAgICAgICAgICAgIGxhdGl0dWRlOiBudWxsLFxyXG4gICAgICAgICAgICBsb25naXR1ZGU6IG51bGwsXHJcbiAgICAgICAgICAgIGlzRHJhZ2dhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICBpc0RvdWJsZUNsaWNrWm9vbTogdHJ1ZSxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLmluaXRGb3JtKCk7XHJcbiAgICAgICAgdGhpcy5pbml0RWRpdCgpO1xyXG4gICAgICAgIHRoaXMuaW5pdERpc2FibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXRGb3JtKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZm9ybSA9IG5ldyBGb3JtR3JvdXAoe1xyXG4gICAgICAgICAgICBpZDogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gICAgICAgICAgICBjYW1wYWlnbk5hbWU6IG5ldyBGb3JtQ29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTAwKV0pLFxyXG4gICAgICAgICAgICBtZWRpdW06IG5ldyBGb3JtQ29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNUb3VjaGVkV0FGb3JtID0gIXRoaXMuaXNUb3VjaGVkV0FGb3JtO1xyXG4gICAgICAgICAgICB0aGlzLmlzVG91Y2hlZFNNU0Zvcm0gPSAhdGhpcy5pc1RvdWNoZWRTTVNGb3JtO1xyXG4gICAgICAgICAgICB0aGlzLmlzVG91Y2hlZEVtYWlsRm9ybSA9ICF0aGlzLmlzVG91Y2hlZEVtYWlsRm9ybTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuZ2VuZXJhbEluZm9ybWF0aW9uLmVtaXQoe1xyXG4gICAgICAgICAgICAgICAgcGFyZW50OiB0aGlzLmZvcm0sXHJcbiAgICAgICAgICAgICAgICBjaGlsZDogdGhpcy5nZW5lcmFsSW5mb3JtYXRpb25Gb3JtLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMub25DaGVja1R3aWxpb0NvdW50ZXIoKTtcclxuICAgICAgICB9LCA0MDApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW5pdEVkaXQoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgY2FtcGFpZ24gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndGVsaW4uY2FtcGFpZ24nKVxyXG4gICAgICAgICAgICA/IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3RlbGluLmNhbXBhaWduJykpXHJcbiAgICAgICAgICAgIDoge307XHJcblxyXG4gICAgICAgIGlmIChPYmplY3QuZW50cmllcyhjYW1wYWlnbikubGVuZ3RoID09PSAwKSByZXR1cm47XHJcblxyXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ2lkJykuc2V0VmFsdWUoY2FtcGFpZ24/LmdlbmVyYWxJbmZvcm1hdGlvbj8uaWQpO1xyXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ2NhbXBhaWduTmFtZScpLnNldFZhbHVlKGNhbXBhaWduPy5nZW5lcmFsSW5mb3JtYXRpb24/LmZvcm0uY2FtcGFpZ25OYW1lKTtcclxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdtZWRpdW0nKS5zZXRWYWx1ZShjYW1wYWlnbj8uZ2VuZXJhbEluZm9ybWF0aW9uPy5mb3JtLm1lZGl1bSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0RGlzYWJsZSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuaXNSZWFkT25seU1vZGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5mb3JtLmRpc2FibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdXBkYXRlR2VuZXJhbEluZm9ybWF0aW9uRm9ybShmb3JtOiBGb3JtR3JvdXApOiB2b2lkIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhmb3JtLCAnZm9ybScpO1xyXG4gICAgICAgIHRoaXMuZ2VuZXJhbEluZm9ybWF0aW9uRm9ybSA9IGZvcm07XHJcbiAgICAgICAgdGhpcy5pc1Nob3dNb3JlID0gZmFsc2U7XHJcblxyXG4gICAgICAgIHRoaXMuZ2VuZXJhbEluZm9ybWF0aW9uLmVtaXQoe1xyXG4gICAgICAgICAgICBwYXJlbnQ6IHRoaXMuZm9ybSxcclxuICAgICAgICAgICAgY2hpbGQ6IHRoaXMuZ2VuZXJhbEluZm9ybWF0aW9uRm9ybSxcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZ2V0TWVkaWEgPT09ICdMT0NBVElPTicpIHRoaXMuZ2V0TG9jYXRpb24oKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZ2V0SGVhZGVyKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2VuZXJhbEluZm9ybWF0aW9uRm9ybT8uZ2V0UmF3VmFsdWUoKT8uZnJvbT8ubmFtZSB8fCAnJztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZ2V0Qm9keVN0cmluZygpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IGJvZHkgPVxyXG4gICAgICAgICAgICB0aGlzLmdlbmVyYWxJbmZvcm1hdGlvbkZvcm0/LmdldFJhd1ZhbHVlKCk/LnRleHQgfHxcclxuICAgICAgICAgICAgdGhpcy5nZW5lcmFsSW5mb3JtYXRpb25Gb3JtPy5nZXRSYXdWYWx1ZSgpPy50ZW1wbGF0ZT8uYm9keT8udGV4dCB8fFxyXG4gICAgICAgICAgICB0aGlzLmdlbmVyYWxJbmZvcm1hdGlvbkZvcm0/LmdldFJhd1ZhbHVlKCk/LmJvZHk/LnRleHQ7XHJcblxyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIGJvZHlcclxuICAgICAgICAgICAgICAgID8uc3BsaXQoL1xcXFxufFxcbi8pXHJcbiAgICAgICAgICAgICAgICAuam9pbignPGJyIC8+JylcclxuICAgICAgICAgICAgICAgIC5zcGxpdCgvXFxcXHR8XFx0LylcclxuICAgICAgICAgICAgICAgIC5qb2luKCcgICAgJykgPz8gJydcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBnZXRCb2R5KCk6IGFueSB7XHJcbiAgICAgICAgY29uc3QgYm9keSA9XHJcbiAgICAgICAgICAgIHRoaXMuZ2VuZXJhbEluZm9ybWF0aW9uRm9ybT8uZ2V0UmF3VmFsdWUoKT8udGV4dCB8fFxyXG4gICAgICAgICAgICB0aGlzLmdlbmVyYWxJbmZvcm1hdGlvbkZvcm0/LmdldFJhd1ZhbHVlKCk/LnRlbXBsYXRlPy5ib2R5Py50ZXh0IHx8XHJcbiAgICAgICAgICAgIHRoaXMuZ2VuZXJhbEluZm9ybWF0aW9uRm9ybT8uZ2V0UmF3VmFsdWUoKT8uYm9keT8udGV4dDtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKFxyXG4gICAgICAgICAgICB0aGlzLmZpeEdlbmVyYXRlZEh0bWwoXHJcbiAgICAgICAgICAgICAgICBib2R5XHJcbiAgICAgICAgICAgICAgICAgICAgPy5zcGxpdCgvXFxcXG58XFxuLylcclxuICAgICAgICAgICAgICAgICAgICAuam9pbignPGJyIC8+JylcclxuICAgICAgICAgICAgICAgICAgICAuc3BsaXQoL1xcXFx0fFxcdC8pXHJcbiAgICAgICAgICAgICAgICAgICAgLmpvaW4oJyAgICAnKSA/PyAnJ1xyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZ2V0TWVkaWEoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZW5lcmFsSW5mb3JtYXRpb25Gb3JtPy5nZXRSYXdWYWx1ZSgpPy5tZWRpYSB8fCAnJztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZ2V0VGVtcGxhdGUoKTogYW55IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZW5lcmFsSW5mb3JtYXRpb25Gb3JtPy5nZXRSYXdWYWx1ZSgpPy50ZW1wbGF0ZSB8fCB7fTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZ2V0VGVtcGxhdGVCdXR0b24oKTogYW55IHtcclxuICAgICAgICBjb25zdCBsaW1pdCA9XHJcbiAgICAgICAgICAgICF0aGlzLmlzU2hvd01vcmUgJiYgdGhpcy5nZXRUZW1wbGF0ZT8uYnV0dG9ucz8ubGVuZ3RoID4gM1xyXG4gICAgICAgICAgICAgICAgPyAyXHJcbiAgICAgICAgICAgICAgICA6IHRoaXMuZ2V0VGVtcGxhdGU/LmJ1dHRvbnM/Lmxlbmd0aDtcclxuXHJcbiAgICAgICAgcmV0dXJuIFsuLi50aGlzLmdldFRlbXBsYXRlPy5idXR0b25zXS5zcGxpY2UoMCwgbGltaXQpIHx8IFtdO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkaXNwbGF5RmlsZSgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIChcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2VuZXJhbEluZm9ybWF0aW9uRm9ybT8uZ2V0UmF3VmFsdWUoKT8udGFyZ2V0VVJMIHx8XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdlbmVyYWxJbmZvcm1hdGlvbkZvcm0/LmdldFJhd1ZhbHVlKCk/LnRlbXBsYXRlPy5oZWFkZXI/LnVybFxyXG4gICAgICAgICAgICApPy5yZXBsYWNlKCdhZGxzYW5kYm94LmNvbScsICdhZGxzYW5kYm94Lm5ldCcpID8/ICcnXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiBMSU5FICovXHJcbiAgICBnZXQgaXNUZXh0KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdlbmVyYWxJbmZvcm1hdGlvbkZvcm0/LmdldFJhd1ZhbHVlKCk/LmNoYW5uZWwgPT09ICdURVhUJztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaXNKU09OKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdlbmVyYWxJbmZvcm1hdGlvbkZvcm0/LmdldFJhd1ZhbHVlKCk/LmlzSlNPTjtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZ2V0VGVtcGxhdGVMaW5lKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNKU09OXHJcbiAgICAgICAgICAgID8gSlNPTi5wYXJzZSh0aGlzLmdlbmVyYWxJbmZvcm1hdGlvbkZvcm0/LmdldFJhd1ZhbHVlKCk/LnRlbXBsYXRlPy5ib2R5Py50ZXh0KVxyXG4gICAgICAgICAgICA6IHRoaXMuZ2VuZXJhbEluZm9ybWF0aW9uRm9ybT8uZ2V0UmF3VmFsdWUoKT8udGVtcGxhdGU/LmJvZHk/LnRleHQ7XHJcbiAgICB9XHJcbiAgICAvKiAuLyBMSU5FICovXHJcblxyXG4gICAgcHJpdmF0ZSBnZXRMb2NhdGlvbigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm1hcHMubGF0aXR1ZGUgPSB0aGlzLmdlbmVyYWxJbmZvcm1hdGlvbkZvcm0/LmdldFJhd1ZhbHVlKCk/LmxhdGl0dWRlO1xyXG4gICAgICAgIHRoaXMubWFwcy5sb25naXR1ZGUgPSB0aGlzLmdlbmVyYWxJbmZvcm1hdGlvbkZvcm0/LmdldFJhd1ZhbHVlKCk/LmxvbmdpdHVkZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGZpeEdlbmVyYXRlZEh0bWwoaHRtbFN0cmluZykge1xyXG4gICAgICAgIHJldHVybiBodG1sU3RyaW5nXHJcbiAgICAgICAgICAgIC5yZXBsYWNlQWxsKC9kaXYgc3JjPVwiaHR0cC9nLCAnaW1nIHNyYz1cImh0dHAnKVxyXG4gICAgICAgICAgICAucmVwbGFjZUFsbCgvZGl2IHNyYz1cImRhdGE6aW1hZ2UvZywgJ2ltZyBzcmM9XCJkYXRhOmltYWdlJylcclxuICAgICAgICAgICAgLnJlcGxhY2VBbGwoL0RyYWcgYW5kIGRyb3AgeW91ciBpbWFnZSBoZXJlL2csICcnKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25DaGVja1R3aWxpb0NvdW50ZXIgPSAoKTogdm9pZCA9PiB7XHJcbiAgICAgICAgY29uc3QgdmFsdWVzR2VuZXJhbCA9IHRoaXMuZ2VuZXJhbEluZm9ybWF0aW9uRm9ybT8uZ2V0UmF3VmFsdWUoKTtcclxuICAgICAgICBpZiAodmFsdWVzR2VuZXJhbD8uY2hhbm5lbCA9PT0gJ1RFWFQnKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNlZ21lbnRlZE1lc3NhZ2UgPSBuZXcgU2VnbWVudGVkTWVzc2FnZSh0aGlzLmdldEJvZHlTdHJpbmcpO1xyXG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSB7XHJcbiAgICAgICAgICAgICAgICBzZWdtZW50czogc2VnbWVudGVkTWVzc2FnZS5zZWdtZW50c0NvdW50LFxyXG4gICAgICAgICAgICAgICAgZW5jb2Rpbmc6IHNlZ21lbnRlZE1lc3NhZ2UuZW5jb2RpbmdOYW1lLFxyXG4gICAgICAgICAgICAgICAgY2hhcmFjdGVyczogc2VnbWVudGVkTWVzc2FnZS5udW1iZXJPZlVuaWNvZGVTY2FsYXJzLFxyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgdGhpcy50d2lsaW9SZXN1bHRDb3VudGVyID0ge1xyXG4gICAgICAgICAgICAgICAgLi4ucmVzdWx0LFxyXG4gICAgICAgICAgICAgICAgZnVsbHRleHQ6IGBFbmNvZGUgJHtyZXN1bHQuZW5jb2Rpbmd9IC8gQ2hhcnMgJHtyZXN1bHQuY2hhcmFjdGVyc30gLyBTZWdtZW50ICR7cmVzdWx0LnNlZ21lbnRzfWAsXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IHZhbHVlUmVzdWx0ID0gdGhpcy5nZXRCb2R5U3RyaW5nO1xyXG4gICAgICAgICAgICBBcnJheS5mcm9tKHZhbHVlc0dlbmVyYWw/LnRlbXBsYXRlPy5ib2R5Py5leGFtcGxlcyB8fCBbXSkubWFwKChlbnRyeSwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHBsYWNlaG9sZGVyID0gYHt7JHtlbnRyeX19fWA7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHZhbHVlc0dlbmVyYWwucGFyYW1Cb2R5W2luZGV4XT8ubmFtZTtcclxuICAgICAgICAgICAgICAgIHZhbHVlUmVzdWx0ID0gdmFsdWVSZXN1bHQuc3BsaXQocGxhY2Vob2xkZXIpLmpvaW4odmFsdWUpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IHNlZ21lbnRlZE1lc3NhZ2UgPSBuZXcgU2VnbWVudGVkTWVzc2FnZSh2YWx1ZVJlc3VsdCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHtcclxuICAgICAgICAgICAgICAgIHNlZ21lbnRzOiBzZWdtZW50ZWRNZXNzYWdlLnNlZ21lbnRzQ291bnQsXHJcbiAgICAgICAgICAgICAgICBlbmNvZGluZzogc2VnbWVudGVkTWVzc2FnZS5lbmNvZGluZ05hbWUsXHJcbiAgICAgICAgICAgICAgICBjaGFyYWN0ZXJzOiBzZWdtZW50ZWRNZXNzYWdlLm51bWJlck9mVW5pY29kZVNjYWxhcnMsXHJcbiAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICB0aGlzLnR3aWxpb1Jlc3VsdENvdW50ZXIgPSB7XHJcbiAgICAgICAgICAgICAgICAuLi5yZXN1bHQsXHJcbiAgICAgICAgICAgICAgICBmdWxsdGV4dDogYEVuY29kZSAke3Jlc3VsdC5lbmNvZGluZ30gLyBDaGFycyAke3Jlc3VsdC5jaGFyYWN0ZXJzfSAvIFNlZ21lbnQgJHtyZXN1bHQuc2VnbWVudHN9YCxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG59XHJcbiJdfQ==
232
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhbC1pbmZvcm1hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWRsZmUvY2FtcGFpZ24tbWFuYWdlbWVudC1saWJyYXJ5LyIsInNvdXJjZXMiOlsibGliL2NhbXBhaWduLW1hbmFnZW1lbnQvbW9kdWxlcy9uZXctY2FtcGFpZ24vZ2VuZXJhbC1pbmZvcm1hdGlvbi9nZW5lcmFsLWluZm9ybWF0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxFQUNILHdDQUF3QyxFQUN4QyxtQkFBbUIsR0FDdEIsTUFBTSx3QkFBd0IsQ0FBQztBQWVoQztJQXlCSSxxQ0FBb0IsU0FBdUI7UUFBM0MsaUJBRUM7UUFGbUIsY0FBUyxHQUFULFNBQVMsQ0FBYztRQWZwQyxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUNqQyxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFDbEMsdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBQ3BDLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFHNUIsd0JBQW1CLEdBQUc7WUFDekIsUUFBUSxFQUFFLENBQUM7WUFDWCxVQUFVLEVBQUUsQ0FBQztZQUNiLFFBQVEsRUFBRSxFQUFFO1lBQ1osUUFBUSxFQUFFLGdDQUFnQztTQUM3QyxDQUFDO1FBd0tLLHlCQUFvQixHQUFHOztZQUMxQixJQUFNLGFBQWEsU0FBRyxLQUFJLENBQUMsc0JBQXNCLDBDQUFFLFdBQVcsRUFBRSxDQUFDO1lBQ2pFLElBQUks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QUFJLENBQUMsUUFBUSxlQUFHLElBQUksQ0FBQyxzQkFBc0IsMENBQUUsV0FBVyw0Q0FBSSxRQUFRLENBQUM7UUFDMUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLGVBQUcsSUFBSSxDQUFDLHNCQUFzQiwwQ0FBRSxXQUFXLDRDQUFJLFNBQVMsQ0FBQztJQUNoRixDQUFDO0lBRU8sc0RBQWdCLEdBQXhCLFVBQXlCLFVBQVU7UUFDL0IsT0FBTyxVQUFVO2FBQ1osVUFBVSxDQUFDLGdCQUFnQixFQUFFLGVBQWUsQ0FBQzthQUM3QyxVQUFVLENBQUMsc0JBQXNCLEVBQUUscUJBQXFCLENBQUM7YUFDekQsVUFBVSxDQUFDLGdDQUFnQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzFELENBQUM7O2dCQWxLOEIsWUFBWTs7SUF2QjNDO1FBREMsTUFBTSxFQUFFOzJFQUlOO0lBa0JNO1FBQVIsS0FBSyxFQUFFO3VFQUFnQztJQXZCL0IsMkJBQTJCO1FBTHZDLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxzQ0FBc0M7WUFDaEQsNnFuQkFBbUQ7O1NBRXRELENBQUM7T0FDVywyQkFBMkIsQ0FnT3ZDO0lBQUQsa0NBQUM7Q0FBQSxBQWhPRCxJQWdPQztTQWhPWSwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBTZWdtZW50ZWRNZXNzYWdlIH0gZnJvbSAnc21zLXNlZ21lbnRzLWNhbGN1bGF0b3InO1xyXG5pbXBvcnQge1xyXG4gICAgR2VuZXJhbEluZm9ybWF0aW9uTWVzc2FnZVZhbGlkYXRpb25Db25zdCxcclxuICAgIFBsYXRmb3JtT3B0aW9uQ29uc3QsXHJcbn0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9jb25zdCc7XHJcblxyXG5pbnRlcmZhY2UgSU1hcHMge1xyXG4gICAgem9vbTogbnVtYmVyO1xyXG4gICAgbGF0aXR1ZGU6IG51bWJlcjtcclxuICAgIGxvbmdpdHVkZTogbnVtYmVyO1xyXG4gICAgaXNEcmFnZ2FibGU6IGJvb2xlYW47XHJcbiAgICBpc0RvdWJsZUNsaWNrWm9vbTogYm9vbGVhbjtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2xpYi1uZXctY2FtcGFpZ24tZ2VuZXJhbC1pbmZvcm1hdGlvbicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vZ2VuZXJhbC1pbmZvcm1hdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9nZW5lcmFsLWluZm9ybWF0aW9uLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHZW5lcmFsSW5mb3JtYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgZ2VuZXJhbEluZm9ybWF0aW9uOiBFdmVudEVtaXR0ZXI8e1xyXG4gICAgICAgIHBhcmVudDogRm9ybUdyb3VwO1xyXG4gICAgICAgIGNoaWxkOiBGb3JtR3JvdXA7XHJcbiAgICB9PjtcclxuXHJcbiAgICBwdWJsaWMgZm9ybTogRm9ybUdyb3VwO1xyXG4gICAgcHVibGljIGNoYW5uZWxPcHRpb246IGFueVtdO1xyXG4gICAgcHVibGljIGdlbmVyYWxJbmZvcm1hdGlvbkZvcm06IEZvcm1Hcm91cDtcclxuICAgIHB1YmxpYyBpc1RvdWNoZWRXQUZvcm06IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBpc1RvdWNoZWRTTVNGb3JtOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgaXNUb3VjaGVkRW1haWxGb3JtOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgaXNTaG93TW9yZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIHZhbGlkYXRpb25NZXNzYWdlczogYW55O1xyXG4gICAgcHVibGljIG1hcHM6IElNYXBzO1xyXG4gICAgcHVibGljIHR3aWxpb1Jlc3VsdENvdW50ZXIgPSB7XHJcbiAgICAgICAgc2VnbWVudHM6IDAsXHJcbiAgICAgICAgY2hhcmFjdGVyczogMCxcclxuICAgICAgICBlbmNvZGluZzogJycsXHJcbiAgICAgICAgZnVsbHRleHQ6IGBFbmNvZGUgLSAvIENoYXJzIDAgLyBTZWdtZW50IDFgLFxyXG4gICAgfTtcclxuXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgaXNSZWFkT25seU1vZGU6IGJvb2xlYW47XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikge1xyXG4gICAgICAgIHRoaXMuZ2VuZXJhbEluZm9ybWF0aW9uID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2hhbm5lbE9wdGlvbiA9IFBsYXRmb3JtT3B0aW9uQ29uc3Q7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uTWVzc2FnZXMgPSBHZW5lcmFsSW5mb3JtYXRpb25NZXNzYWdlVmFsaWRhdGlvbkNvbnN0O1xyXG4gICAgICAgIHRoaXMubWFwcyA9IHtcclxuICAgICAgICAgICAgem9vbTogMTUsXHJcbiAgICAgICAgICAgIGxhdGl0dWRlOiBudWxsLFxyXG4gICAgICAgICAgICBsb25naXR1ZGU6IG51bGwsXHJcbiAgICAgICAgICAgIGlzRHJhZ2dhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICBpc0RvdWJsZUNsaWNrWm9vbTogdHJ1ZSxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLmluaXRGb3JtKCk7XHJcbiAgICAgICAgdGhpcy5pbml0RWRpdCgpO1xyXG4gICAgICAgIHRoaXMuaW5pdERpc2FibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXRGb3JtKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZm9ybSA9IG5ldyBGb3JtR3JvdXAoe1xyXG4gICAgICAgICAgICBpZDogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gICAgICAgICAgICBjYW1wYWlnbk5hbWU6IG5ldyBGb3JtQ29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTAwKV0pLFxyXG4gICAgICAgICAgICBtZWRpdW06IG5ldyBGb3JtQ29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNUb3VjaGVkV0FGb3JtID0gIXRoaXMuaXNUb3VjaGVkV0FGb3JtO1xyXG4gICAgICAgICAgICB0aGlzLmlzVG91Y2hlZFNNU0Zvcm0gPSAhdGhpcy5pc1RvdWNoZWRTTVNGb3JtO1xyXG4gICAgICAgICAgICB0aGlzLmlzVG91Y2hlZEVtYWlsRm9ybSA9ICF0aGlzLmlzVG91Y2hlZEVtYWlsRm9ybTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuZ2VuZXJhbEluZm9ybWF0aW9uLmVtaXQoe1xyXG4gICAgICAgICAgICAgICAgcGFyZW50OiB0aGlzLmZvcm0sXHJcbiAgICAgICAgICAgICAgICBjaGlsZDogdGhpcy5nZW5lcmFsSW5mb3JtYXRpb25Gb3JtLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMub25DaGVja1R3aWxpb0NvdW50ZXIoKTtcclxuICAgICAgICB9LCA0MDApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW5pdEVkaXQoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgY2FtcGFpZ24gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndGVsaW4uY2FtcGFpZ24nKVxyXG4gICAgICAgICAgICA/IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3RlbGluLmNhbXBhaWduJykpXHJcbiAgICAgICAgICAgIDoge307XHJcblxyXG4gICAgICAgIGlmIChPYmplY3QuZW50cmllcyhjYW1wYWlnbikubGVuZ3RoID09PSAwKSByZXR1cm47XHJcblxyXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ2lkJykuc2V0VmFsdWUoY2FtcGFpZ24/LmdlbmVyYWxJbmZvcm1hdGlvbj8uaWQpO1xyXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ2NhbXBhaWduTmFtZScpLnNldFZhbHVlKGNhbXBhaWduPy5nZW5lcmFsSW5mb3JtYXRpb24/LmZvcm0uY2FtcGFpZ25OYW1lKTtcclxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCdtZWRpdW0nKS5zZXRWYWx1ZShjYW1wYWlnbj8uZ2VuZXJhbEluZm9ybWF0aW9uPy5mb3JtLm1lZGl1bSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0RGlzYWJsZSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuaXNSZWFkT25seU1vZGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5mb3JtLmRpc2FibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdXBkYXRlR2VuZXJhbEluZm9ybWF0aW9uRm9ybShmb3JtOiBGb3JtR3JvdXApOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmdlbmVyYWxJbmZvcm1hdGlvbkZvcm0gPSBmb3JtO1xyXG4gICAgICAgIHRoaXMuaXNTaG93TW9yZSA9IGZhbHNlO1xyXG5cclxuICAgICAgICB0aGlzLmdlbmVyYWxJbmZvcm1hdGlvbi5lbWl0KHtcclxuICAgICAgICAgICAgcGFyZW50OiB0aGlzLmZvcm0sXHJcbiAgICAgICAgICAgIGNoaWxkOiB0aGlzLmdlbmVyYWxJbmZvcm1hdGlvbkZvcm0sXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmdldE1lZGlhID09PSAnTE9DQVRJT04nKSB0aGlzLmdldExvY2F0aW9uKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGdldEhlYWRlcigpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdlbmVyYWxJbmZvcm1hdGlvbkZvcm0/LmdldFJhd1ZhbHVlKCk/LmZyb20/Lm5hbWUgfHwgJyc7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGdldEJvZHlTdHJpbmcoKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBib2R5ID1cclxuICAgICAgICAgICAgdGhpcy5nZW5lcmFsSW5mb3JtYXRpb25Gb3JtPy5nZXRSYXdWYWx1ZSgpPy50ZXh0IHx8XHJcbiAgICAgICAgICAgIHRoaXMuZ2VuZXJhbEluZm9ybWF0aW9uRm9ybT8uZ2V0UmF3VmFsdWUoKT8udGVtcGxhdGU/LmJvZHk/LnRleHQgfHxcclxuICAgICAgICAgICAgdGhpcy5nZW5lcmFsSW5mb3JtYXRpb25Gb3JtPy5nZXRSYXdWYWx1ZSgpPy5ib2R5Py50ZXh0O1xyXG5cclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICBib2R5XHJcbiAgICAgICAgICAgICAgICA/LnNwbGl0KC9cXFxcbnxcXG4vKVxyXG4gICAgICAgICAgICAgICAgLmpvaW4oJzxiciAvPicpXHJcbiAgICAgICAgICAgICAgICAuc3BsaXQoL1xcXFx0fFxcdC8pXHJcbiAgICAgICAgICAgICAgICAuam9pbignICAgICcpID8/ICcnXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZ2V0Qm9keSgpOiBhbnkge1xyXG4gICAgICAgIGNvbnN0IGJvZHkgPVxyXG4gICAgICAgICAgICB0aGlzLmdlbmVyYWxJbmZvcm1hdGlvbkZvcm0/LmdldFJhd1ZhbHVlKCk/LnRleHQgfHxcclxuICAgICAgICAgICAgdGhpcy5nZW5lcmFsSW5mb3JtYXRpb25Gb3JtPy5nZXRSYXdWYWx1ZSgpPy50ZW1wbGF0ZT8uYm9keT8udGV4dCB8fFxyXG4gICAgICAgICAgICB0aGlzLmdlbmVyYWxJbmZvcm1hdGlvbkZvcm0/LmdldFJhd1ZhbHVlKCk/LmJvZHk/LnRleHQ7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChcclxuICAgICAgICAgICAgdGhpcy5maXhHZW5lcmF0ZWRIdG1sKFxyXG4gICAgICAgICAgICAgICAgYm9keVxyXG4gICAgICAgICAgICAgICAgICAgID8uc3BsaXQoL1xcXFxufFxcbi8pXHJcbiAgICAgICAgICAgICAgICAgICAgLmpvaW4oJzxiciAvPicpXHJcbiAgICAgICAgICAgICAgICAgICAgLnNwbGl0KC9cXFxcdHxcXHQvKVxyXG4gICAgICAgICAgICAgICAgICAgIC5qb2luKCcgICAgJykgPz8gJydcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGdldE1lZGlhKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2VuZXJhbEluZm9ybWF0aW9uRm9ybT8uZ2V0UmF3VmFsdWUoKT8ubWVkaWEgfHwgJyc7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGdldFRlbXBsYXRlKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2VuZXJhbEluZm9ybWF0aW9uRm9ybT8uZ2V0UmF3VmFsdWUoKT8udGVtcGxhdGUgfHwge307XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGdldFRlbXBsYXRlQnV0dG9uKCk6IGFueSB7XHJcbiAgICAgICAgY29uc3QgbGltaXQgPVxyXG4gICAgICAgICAgICAhdGhpcy5pc1Nob3dNb3JlICYmIHRoaXMuZ2V0VGVtcGxhdGU/LmJ1dHRvbnM/Lmxlbmd0aCA+IDNcclxuICAgICAgICAgICAgICAgID8gMlxyXG4gICAgICAgICAgICAgICAgOiB0aGlzLmdldFRlbXBsYXRlPy5idXR0b25zPy5sZW5ndGg7XHJcblxyXG4gICAgICAgIHJldHVybiBbLi4udGhpcy5nZXRUZW1wbGF0ZT8uYnV0dG9uc10uc3BsaWNlKDAsIGxpbWl0KSB8fCBbXTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZGlzcGxheUZpbGUoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAoXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdlbmVyYWxJbmZvcm1hdGlvbkZvcm0/LmdldFJhd1ZhbHVlKCk/LnRhcmdldFVSTCB8fFxyXG4gICAgICAgICAgICAgICAgdGhpcy5nZW5lcmFsSW5mb3JtYXRpb25Gb3JtPy5nZXRSYXdWYWx1ZSgpPy50ZW1wbGF0ZT8uaGVhZGVyPy51cmxcclxuICAgICAgICAgICAgKT8ucmVwbGFjZSgnYWRsc2FuZGJveC5jb20nLCAnYWRsc2FuZGJveC5uZXQnKSA/PyAnJ1xyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyogTElORSAqL1xyXG4gICAgZ2V0IGlzVGV4dCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZW5lcmFsSW5mb3JtYXRpb25Gb3JtPy5nZXRSYXdWYWx1ZSgpPy5jaGFubmVsID09PSAnVEVYVCc7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGlzSlNPTigpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZW5lcmFsSW5mb3JtYXRpb25Gb3JtPy5nZXRSYXdWYWx1ZSgpPy5pc0pTT047XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGdldFRlbXBsYXRlTGluZSgpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmlzSlNPTlxyXG4gICAgICAgICAgICA/IEpTT04ucGFyc2UodGhpcy5nZW5lcmFsSW5mb3JtYXRpb25Gb3JtPy5nZXRSYXdWYWx1ZSgpPy50ZW1wbGF0ZT8uYm9keT8udGV4dClcclxuICAgICAgICAgICAgOiB0aGlzLmdlbmVyYWxJbmZvcm1hdGlvbkZvcm0/LmdldFJhd1ZhbHVlKCk/LnRlbXBsYXRlPy5ib2R5Py50ZXh0O1xyXG4gICAgfVxyXG4gICAgLyogLi8gTElORSAqL1xyXG5cclxuICAgIHByaXZhdGUgZ2V0TG9jYXRpb24oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5tYXBzLmxhdGl0dWRlID0gdGhpcy5nZW5lcmFsSW5mb3JtYXRpb25Gb3JtPy5nZXRSYXdWYWx1ZSgpPy5sYXRpdHVkZTtcclxuICAgICAgICB0aGlzLm1hcHMubG9uZ2l0dWRlID0gdGhpcy5nZW5lcmFsSW5mb3JtYXRpb25Gb3JtPy5nZXRSYXdWYWx1ZSgpPy5sb25naXR1ZGU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBmaXhHZW5lcmF0ZWRIdG1sKGh0bWxTdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gaHRtbFN0cmluZ1xyXG4gICAgICAgICAgICAucmVwbGFjZUFsbCgvZGl2IHNyYz1cImh0dHAvZywgJ2ltZyBzcmM9XCJodHRwJylcclxuICAgICAgICAgICAgLnJlcGxhY2VBbGwoL2RpdiBzcmM9XCJkYXRhOmltYWdlL2csICdpbWcgc3JjPVwiZGF0YTppbWFnZScpXHJcbiAgICAgICAgICAgIC5yZXBsYWNlQWxsKC9EcmFnIGFuZCBkcm9wIHlvdXIgaW1hZ2UgaGVyZS9nLCAnJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uQ2hlY2tUd2lsaW9Db3VudGVyID0gKCk6IHZvaWQgPT4ge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlc0dlbmVyYWwgPSB0aGlzLmdlbmVyYWxJbmZvcm1hdGlvbkZvcm0/LmdldFJhd1ZhbHVlKCk7XHJcbiAgICAgICAgaWYgKHZhbHVlc0dlbmVyYWw/LmNoYW5uZWwgPT09ICdURVhUJykge1xyXG4gICAgICAgICAgICBjb25zdCBzZWdtZW50ZWRNZXNzYWdlID0gbmV3IFNlZ21lbnRlZE1lc3NhZ2UodGhpcy5nZXRCb2R5U3RyaW5nKTtcclxuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0ge1xyXG4gICAgICAgICAgICAgICAgc2VnbWVudHM6IHNlZ21lbnRlZE1lc3NhZ2Uuc2VnbWVudHNDb3VudCxcclxuICAgICAgICAgICAgICAgIGVuY29kaW5nOiBzZWdtZW50ZWRNZXNzYWdlLmVuY29kaW5nTmFtZSxcclxuICAgICAgICAgICAgICAgIGNoYXJhY3RlcnM6IHNlZ21lbnRlZE1lc3NhZ2UubnVtYmVyT2ZVbmljb2RlU2NhbGFycyxcclxuICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMudHdpbGlvUmVzdWx0Q291bnRlciA9IHtcclxuICAgICAgICAgICAgICAgIC4uLnJlc3VsdCxcclxuICAgICAgICAgICAgICAgIGZ1bGx0ZXh0OiBgRW5jb2RlICR7cmVzdWx0LmVuY29kaW5nfSAvIENoYXJzICR7cmVzdWx0LmNoYXJhY3RlcnN9IC8gU2VnbWVudCAke3Jlc3VsdC5zZWdtZW50c31gLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCB2YWx1ZVJlc3VsdCA9IHRoaXMuZ2V0Qm9keVN0cmluZztcclxuICAgICAgICAgICAgQXJyYXkuZnJvbSh2YWx1ZXNHZW5lcmFsPy50ZW1wbGF0ZT8uYm9keT8uZXhhbXBsZXMgfHwgW10pLm1hcCgoZW50cnksIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwbGFjZWhvbGRlciA9IGB7eyR7ZW50cnl9fX1gO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB2YWx1ZXNHZW5lcmFsLnBhcmFtQm9keVtpbmRleF0/Lm5hbWU7XHJcbiAgICAgICAgICAgICAgICB2YWx1ZVJlc3VsdCA9IHZhbHVlUmVzdWx0LnNwbGl0KHBsYWNlaG9sZGVyKS5qb2luKHZhbHVlKTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBzZWdtZW50ZWRNZXNzYWdlID0gbmV3IFNlZ21lbnRlZE1lc3NhZ2UodmFsdWVSZXN1bHQpO1xyXG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSB7XHJcbiAgICAgICAgICAgICAgICBzZWdtZW50czogc2VnbWVudGVkTWVzc2FnZS5zZWdtZW50c0NvdW50LFxyXG4gICAgICAgICAgICAgICAgZW5jb2Rpbmc6IHNlZ21lbnRlZE1lc3NhZ2UuZW5jb2RpbmdOYW1lLFxyXG4gICAgICAgICAgICAgICAgY2hhcmFjdGVyczogc2VnbWVudGVkTWVzc2FnZS5udW1iZXJPZlVuaWNvZGVTY2FsYXJzLFxyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgdGhpcy50d2lsaW9SZXN1bHRDb3VudGVyID0ge1xyXG4gICAgICAgICAgICAgICAgLi4ucmVzdWx0LFxyXG4gICAgICAgICAgICAgICAgZnVsbHRleHQ6IGBFbmNvZGUgJHtyZXN1bHQuZW5jb2Rpbmd9IC8gQ2hhcnMgJHtyZXN1bHQuY2hhcmFjdGVyc30gLyBTZWdtZW50ICR7cmVzdWx0LnNlZ21lbnRzfWAsXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxufVxyXG4iXX0=
@@ -240,23 +240,31 @@ var NewNumberBasesComponent = /** @class */ (function () {
240
240
  return found ? true : false;
241
241
  };
242
242
  NewNumberBasesComponent.prototype.onDownloadSampleService = function () {
243
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
243
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
244
244
  var genInfoForm = (_b = (_a = this.getCampaignStorage) === null || _a === void 0 ? void 0 : _a.generalInformation) === null || _b === void 0 ? void 0 : _b.form;
245
245
  var isNeedSave = (_c = genInfoForm) === null || _c === void 0 ? void 0 : _c.isNeedSave;
246
246
  var parameterList = [
247
247
  this.initParam('platform', ((_e = (_d = genInfoForm) === null || _d === void 0 ? void 0 : _d.template) === null || _e === void 0 ? void 0 : _e.platform) || 'WA', 'string'),
248
+ this.initParam('templateName', (_g = (_f = genInfoForm) === null || _f === void 0 ? void 0 : _f.template) === null || _g === void 0 ? void 0 : _g.name, 'string'),
249
+ this.initParam('templateLang', (_j = (_h = genInfoForm) === null || _h === void 0 ? void 0 : _h.template) === null || _j === void 0 ? void 0 : _j.lang, 'string'),
248
250
  ];
249
251
  if (isNeedSave) {
250
252
  // SKENARIO 1: USE EXISTING / TEMPLATE SUDAH DISAVE
251
- parameterList.push(this.initParam('templateName', (_g = (_f = genInfoForm) === null || _f === void 0 ? void 0 : _f.template) === null || _g === void 0 ? void 0 : _g.name, 'string'), this.initParam('templateLang', (_j = (_h = genInfoForm) === null || _h === void 0 ? void 0 : _h.template) === null || _j === void 0 ? void 0 : _j.lang, 'string'), this.initParam('category', (_l = (_k = this.categorySelected) === null || _k === void 0 ? void 0 : _k.map(function (t) { return t.id; }).join(), (_l !== null && _l !== void 0 ? _l : '')), 'string'));
253
+ parameterList.push(this.initParam('category', (_l = (_k = this.categorySelected) === null || _k === void 0 ? void 0 : _k.map(function (t) { return t.id; }).join(), (_l !== null && _l !== void 0 ? _l : '')), 'string'));
252
254
  }
253
255
  else {
254
- // SKENARIO 2: CREATE NEW (Belum disave, butuh text & examples)
255
- parameterList.push(this.initParam('bodyText', (_m = genInfoForm) === null || _m === void 0 ? void 0 : _m.text, 'string'));
256
+ // SKENARIO 2: CREATE NEW (Auto-generated dll)
257
+ var safeBodyText = encodeURIComponent(((_m = genInfoForm) === null || _m === void 0 ? void 0 : _m.text) || '');
258
+ parameterList.push(this.initParam('bodyText', safeBodyText, 'string'));
256
259
  var variables = (_o = genInfoForm) === null || _o === void 0 ? void 0 : _o.variables;
257
260
  if (variables && Array.isArray(variables) && variables.length > 0) {
258
261
  var bodyExamplesString = variables.map(function (v) { return v.paramName; }).join(',');
259
- parameterList.push(this.initParam('bodyExamples', bodyExamplesString, 'string'));
262
+ var safeBodyExamples = encodeURIComponent(bodyExamplesString);
263
+ parameterList.push(this.initParam('bodyExamples', safeBodyExamples, 'string'));
264
+ }
265
+ if ((_r = (_q = (_p = genInfoForm) === null || _p === void 0 ? void 0 : _p.template) === null || _q === void 0 ? void 0 : _q.header) === null || _r === void 0 ? void 0 : _r.text) {
266
+ var safeHeaderText = encodeURIComponent(genInfoForm.template.header.text);
267
+ parameterList.push(this.initParam('headerText', safeHeaderText, 'string'));
260
268
  }
261
269
  }
262
270
  var subs = this.apiAdapterService
@@ -362,4 +370,4 @@ var NewNumberBasesComponent = /** @class */ (function () {
362
370
  return NewNumberBasesComponent;
363
371
  }());
364
372
  export { NewNumberBasesComponent };
365
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LW51bWJlci1iYXNlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWRsZmUvY2FtcGFpZ24tbWFuYWdlbWVudC1saWJyYXJ5LyIsInNvdXJjZXMiOlsibGliL2NhbXBhaWduLW1hbmFnZW1lbnQvbW9kdWxlcy9uZXctY2FtcGFpZ24vbmV3LW51bWJlci1iYXNlcy9uZXctbnVtYmVyLWJhc2VzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFDSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTNDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3JFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXpELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQU96RDtJQWdDSSxpQ0FDWSxpQkFBMkMsRUFDM0MsTUFBcUI7UUFEckIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUEwQjtRQUMzQyxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBeEIxQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0Isb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFDakMscUJBQWdCLEdBQTJCLEVBQUUsQ0FBQztRQUM5QyxjQUFTLEdBQUcsSUFBSSxjQUFjLENBQXVCLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMvRCxvQkFBZSxHQUFh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Q0FBQztJQUVELDZDQUFXLEdBQVg7UUFDSSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxVQUFDLElBQUksSUFBSyxPQUFBLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBbEIsQ0FBa0IsQ0FBQyxDQUFDO0lBQzNELENBQUM7O2dCQTVXOEIsd0JBQXdCO2dCQUNuQyxhQUFhOztJQWhDakM7UUFEQyxNQUFNLEVBQUU7bUVBTU47SUFxQk07UUFBUixLQUFLLEVBQUU7bUVBQWdDO0lBRXBCO1FBQW5CLFNBQVMsQ0FBQyxPQUFPLENBQUM7NERBQWtCO0lBOUI1Qix1QkFBdUI7UUFMbkMsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLHNCQUFzQjtZQUNoQyx5dEpBQWdEOztTQUVuRCxDQUFDO09BQ1csdUJBQXVCLENBOFluQztJQUFELDhCQUFDO0NBQUEsQUE5WUQsSUE4WUM7U0E5WVksdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xyXG5pbXBvcnQge1xyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkRlc3Ryb3ksXHJcbiAgICBPbkluaXQsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdFNvcnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHsgVG9hc3RyU2VydmljZSB9IGZyb20gJ25neC10b2FzdHInO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSHR0cEJvZHlSZXFQYWdpbmF0aW9uTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IFBhcmFtZXRlciB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvbW9kZWxzL3V0aWwvYXBpLWFkYXB0ZXItc2VydmljZS1tb2RlbHMnO1xyXG5pbXBvcnQgeyBBcHBSZXNwb25zZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvbW9kZWxzL3V0aWwvYXBpLWR0by9yZXNwb25zZS1tb2RlbHMnO1xyXG5pbXBvcnQgeyBBcGlBZGFwdGVyU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgZG93bmxvYWRCbG9iRmlsZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvdXRpbCc7XHJcbmltcG9ydCB7IENvbnRhY3RDYXRlZ29yeU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgVGFibGVNb2RlbCB9IGZyb20gJy4uLy4uL2NhbXBhaWduLWluZGV4L21vZGVscyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnbGliLW5ldy1udW1iZXItYmFzZXMnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL25ldy1udW1iZXItYmFzZXMuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vbmV3LW51bWJlci1iYXNlcy5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmV3TnVtYmVyQmFzZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyB0YXJnZXRBdWRpZW5jZTogRXZlbnRFbWl0dGVyPHtcclxuICAgICAgICB0YXJnZXRBdWRpZW5jZTogc3RyaW5nW107XHJcbiAgICAgICAgbnVtYmVyQ291bnQ6IG51bWJlcjtcclxuICAgICAgICBpc1VwbG9hZDogYm9vbGVhbjtcclxuICAgICAgICBmaWxlOiBhbnk7XHJcbiAgICB9PjtcclxuXHJcbiAgICBwdWJsaWMgdGFibGU6IFRhYmxlTW9kZWw7XHJcbiAgICBwdWJsaWMgaXNVcGxvYWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBpc1Nob3dVcGxvYWRDU1Y6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBjYXRlZ29yeVNlbGVjdGVkOiBDb250YWN0Q2F0ZWdvcnlNb2RlbFtdID0gW107XHJcbiAgICBwdWJsaWMgc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbk1vZGVsPENvbnRhY3RDYXRlZ29yeU1vZGVsPih0cnVlLCBbXSk7XHJcbiAgICBwdWJsaWMgZXh0RmlsZUFjY2VwdGVkOiBzdHJpbmdbXSA9IFtcclxuICAgICAgICAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsJyxcclxuICAgICAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQnLFxyXG4gICAgICAgICcuY3N2JyxcclxuICAgIF07XHJcbiAgICBwdWJsaWMgZmlsZVNlbGVjdGVkOiB7XHJcbiAgICAgICAgbmFtZTogc3RyaW5nO1xyXG4gICAgICAgIHRhcmdldFVSTDogc3RyaW5nO1xyXG4gICAgfSA9IG51bGw7XHJcblxyXG4gICAgcHJpdmF0ZSBjYXRlZ29yeVBhcmFtOiBIdHRwQm9keVJlcVBhZ2luYXRpb25Nb2RlbDtcclxuICAgIHByaXZhdGUgc3Vic2NyaWJlcnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gICAgQElucHV0KCkgcHVibGljIGlzUmVhZE9ubHlNb2RlOiBib29sZWFuO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoTWF0U29ydCkgbWF0U29ydDogTWF0U29ydDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGFwaUFkYXB0ZXJTZXJ2aWNlOiBBcGlBZGFwdGVyU2VydmljZVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSB0b2FzdHI6IFRvYXN0clNlcnZpY2VcclxuICAgICkge1xyXG4gICAgICAgIHRoaXMudGFyZ2V0QXVkaWVuY2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5jYXRlZ29yeVBhcmFtID0gbmV3IEh0dHBCb2R5UmVxUGFnaW5hdGlvbk1vZGVsKCk7XHJcblxyXG4gICAgICAgIHRoaXMuaW5pdFRhYmxlKCk7XHJcbiAgICAgICAgdGhpcy5nZXRDYXRlZ29yeUxpc3QoKTtcclxuXHJcbiAgICAgICAgdGhpcy50YXJnZXRBdWRpZW5jZS5lbWl0KHtcclxuICAgICAgICAgICAgdGFyZ2V0QXVkaWVuY2U6IFtdLFxyXG4gICAgICAgICAgICBudW1iZXJDb3VudDogMCxcclxuICAgICAgICAgICAgaXNVcGxvYWQ6IHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy5nZW5lcmFsSW5mb3JtYXRpb24/LmZvcm0/LmlzVXBsb2FkLFxyXG4gICAgICAgICAgICBmaWxlOiB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8udGFyZ2V0QXVkaWVuY2VGaWxlPy5uYW1lLFxyXG4gICAgICAgICAgICAgICAgdGFyZ2V0VVJMOiB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8udGFyZ2V0QXVkaWVuY2VGaWxlPy50YXJnZXRVUkwsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0VGFibGUoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy50YWJsZSA9IG5ldyBUYWJsZU1vZGVsKCk7XHJcbiAgICAgICAgdGhpcy50YWJsZS5sYWJlbHMgPSBbXHJcbiAgICAgICAgICAgICdzZWxlY3QnLFxyXG4gICAgICAgICAgICAnQ2F0ZWdvcnknLFxyXG4gICAgICAgICAgICAnTm8uIE9mIEN1c3RvbWVyJyxcclxuICAgICAgICAgICAgJ0NyZWF0ZWQgRGF0ZScsXHJcbiAgICAgICAgICAgICdVcGRhdGVkIERhdGUnLFxyXG4gICAgICAgIF07XHJcbiAgICAgICAgdGhpcy50YWJsZS5jb2x1bW5zID0gWydzZWxlY3QnLCAnbmFtZScsICd0b3RhbE1lbWJlcnMnLCAnY3JlYXRlZERhdGUnLCAndXBkYXRlZERhdGUnXTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZ2V0Q2FtcGFpZ25TdG9yYWdlKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd0ZWxpbi5jYW1wYWlnbicpXHJcbiAgICAgICAgICAgID8gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndGVsaW4uY2FtcGFpZ24nKSlcclxuICAgICAgICAgICAgOiB7fTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXRFZGl0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmIChPYmplY3QuZW50cmllcyh0aGlzLmdldENhbXBhaWduU3RvcmFnZSkubGVuZ3RoID09PSAwKSByZXR1cm47XHJcblxyXG4gICAgICAgIGNvbnN0IGdlbkluZm9Gb3JtID0gdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LmdlbmVyYWxJbmZvcm1hdGlvbj8uZm9ybTtcclxuICAgICAgICB0aGlzLmlzU2hvd1VwbG9hZENTViA9IGdlbkluZm9Gb3JtPy5pc1VwbG9hZCB8fCBnZW5JbmZvRm9ybT8uaXNEb3dubG9hZFZhcmlhYmxlWExTO1xyXG5cclxuICAgICAgICB0aGlzLmZpbGVTZWxlY3RlZCA9IHtcclxuICAgICAgICAgICAgbmFtZTogdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LnRhcmdldEF1ZGllbmNlRmlsZT8ubmFtZSxcclxuICAgICAgICAgICAgdGFyZ2V0VVJMOiB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8udGFyZ2V0QXVkaWVuY2VGaWxlPy50YXJnZXRVUkwsXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy50YWJsZS5kYXRhU291cmNlLmRhdGE/LmZvckVhY2goKGVhY2gpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy50YXJnZXRBdWRpZW5jZT8uaW5jbHVkZXMoZWFjaC5pZCkpXHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ2hlY2tlZCh0cnVlLCBlYWNoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldENhdGVnb3J5TGlzdChmaWx0ZXI6IHN0cmluZyA9ICcnKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5pc1JlYWRPbmx5TW9kZSkgdGhpcy5jYXRlZ29yeVBhcmFtLnBhZ2VTaXplID0gMTAwMDtcclxuXHJcbiAgICAgICAgY29uc3QgcGFyYW1ldGVyTGlzdDogQXJyYXk8UGFyYW1ldGVyPiA9IFtcclxuICAgICAgICAgICAgdGhpcy5pbml0UGFyYW0oJ3BhZ2VObycsIHRoaXMuY2F0ZWdvcnlQYXJhbS5wYWdlTm8sICdudW1iZXInKSxcclxuICAgICAgICAgICAgdGhpcy5pbml0UGFyYW0oJ3Jvd1BlclBhZ2UnLCB0aGlzLmNhdGVnb3J5UGFyYW0ucGFnZVNpemUsICdudW1iZXInKSxcclxuICAgICAgICAgICAgdGhpcy5pbml0UGFyYW0oJ2ZpbHRlcicsIGZpbHRlciwgJ3N0cmluZycpLFxyXG4gICAgICAgICAgICB0aGlzLmluaXRQYXJhbShcclxuICAgICAgICAgICAgICAgICdwbGF0Zm9ybScsXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8uZ2VuZXJhbEluZm9ybWF0aW9uPy5mb3JtPy5tZWRpdW0sXHJcbiAgICAgICAgICAgICAgICAnc3RyaW5nJ1xyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmdldENhbXBhaWduU3RvcmFnZT8uZ2VuZXJhbEluZm9ybWF0aW9uPy5mb3JtPy5tZWRpdW0gPT09ICdMSU5FJylcclxuICAgICAgICAgICAgcGFyYW1ldGVyTGlzdC5wdXNoKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5pbml0UGFyYW0oXHJcbiAgICAgICAgICAgICAgICAgICAgJ2FjY291bnRJZCcsXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LmdlbmVyYWxJbmZvcm1hdGlvbj8uZm9ybT8uZnJvbT8uaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgJ3N0cmluZydcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaXNSZWFkT25seU1vZGUpIHBhcmFtZXRlckxpc3QucHVzaCh0aGlzLmluaXRQYXJhbSgnc3VtbWFyeScsIHRydWUsICdzdHJpbmcnKSk7XHJcblxyXG4gICAgICAgIGNvbnN0IHN1YnMgPSB0aGlzLmFwaUFkYXB0ZXJTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5leGVjdXRlQXBpUmVxdWVzdChwYXJhbWV0ZXJMaXN0LCAnL2FkbWluL2NhdGVnb3J5JywgJ0dFVCcpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3A6IEFwcFJlc3BvbnNlPENvbnRhY3RDYXRlZ29yeU1vZGVsW10+KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc1JlYWRPbmx5TW9kZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFibGUuZGF0YVNvdXJjZS5kYXRhID0gcmVzcC5kYXRhPy5maWx0ZXIoKGVhY2gpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy50YXJnZXRBdWRpZW5jZT8uaW5jbHVkZXMoZWFjaC5pZClcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhdGVnb3J5U2VsZWN0ZWQgPSB0aGlzLnRhYmxlLmRhdGFTb3VyY2UuZGF0YTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdEVkaXQoKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZS5kYXRhU291cmNlLmRhdGEgPSByZXNwLmRhdGE7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLnNldE5leHRQYWdlKHJlc3AuaGF2ZU5leHQpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5pdEVkaXQoKTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlcnMucHVzaChzdWJzKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXRQYXJhbShfbmFtZTogc3RyaW5nLCBfdmFsdWU6IGFueSwgX3R5cGU6IHN0cmluZyk6IFBhcmFtZXRlciB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgbmFtZTogX25hbWUsXHJcbiAgICAgICAgICAgIHZhbHVlOiBfdmFsdWUsXHJcbiAgICAgICAgICAgIGluOiAncXVlcnknLFxyXG4gICAgICAgICAgICB0eXBlOiBfdHlwZSxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB1cGRhdGVTZWFyY2goc2VhcmNoVmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudGFibGUucmVzZXRQYWdlKCk7XHJcbiAgICAgICAgdGhpcy5jYXRlZ29yeVBhcmFtLnBhZ2VObyA9IHRoaXMudGFibGUucGFnZTtcclxuICAgICAgICB0aGlzLmdldENhdGVnb3J5TGlzdChzZWFyY2hWYWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHVwZGF0ZVBhZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnRhYmxlLnBhZ2VTaXplICE9PSBldmVudD8ucGFnZVNpemUpIHRoaXMudGFibGUucmVzZXRQYWdlKCk7XHJcblxyXG4gICAgICAgIHRoaXMudGFibGUucGFnZSA9XHJcbiAgICAgICAgICAgIHRoaXMudGFibGUucGFnZVNpemUgIT09IGV2ZW50Py5wYWdlU2l6ZSA/IHRoaXMudGFibGUucGFnZSA6IGV2ZW50Py5wYWdlSW5kZXggKyAxO1xyXG4gICAgICAgIHRoaXMudGFibGUucGFnZVNpemUgPSBldmVudD8ucGFnZVNpemU7XHJcbiAgICAgICAgdGhpcy5jYXRlZ29yeVBhcmFtLnBhZ2VObyA9IHRoaXMudGFibGUucGFnZTtcclxuICAgICAgICB0aGlzLmNhdGVnb3J5UGFyYW0ucGFnZVNpemUgPSB0aGlzLnRhYmxlLnBhZ2VTaXplO1xyXG5cclxuICAgICAgICB0aGlzLmdldENhdGVnb3J5TGlzdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzb3J0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudGFibGUuZGF0YVNvdXJjZS5zb3J0ID0gdGhpcy5tYXRTb3J0O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjaGVja2JveExhYmVsKHJvdz86IENvbnRhY3RDYXRlZ29yeU1vZGVsKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAoIXJvdykgcmV0dXJuIGAke3RoaXMuaXNBbGxTZWxlY3RlZCgpID8gJ2Rlc2VsZWN0JyA6ICdzZWxlY3QnfSBhbGxgO1xyXG5cclxuICAgICAgICByZXR1cm4gYCR7dGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZChyb3cpID8gJ2Rlc2VsZWN0JyA6ICdzZWxlY3QnfSByb3cgJHtyb3cubmFtZSArIDF9YDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaXNBbGxTZWxlY3RlZCgpIHtcclxuICAgICAgICBjb25zdCBudW1TZWxlY3RlZCA9IHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aDtcclxuICAgICAgICBjb25zdCBudW1Sb3dzID0gdGhpcy50YWJsZS5kYXRhU291cmNlLmRhdGE/Lmxlbmd0aCA/PyAwO1xyXG5cclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIHRoaXMudGFibGUuZGF0YVNvdXJjZS5kYXRhICYmXHJcbiAgICAgICAgICAgIHRoaXMudGFibGUuZGF0YVNvdXJjZS5kYXRhLmxlbmd0aCA+IDAgJiZcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQgJiZcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoID4gMFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGRhdGEgb2YgdGhpcy50YWJsZS5kYXRhU291cmNlLmRhdGEpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5maWx0ZXIoKHQpID0+IHQuaWQgPT09IGRhdGEuaWQpLmxlbmd0aCA+IDApIGNvbnRpbnVlO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG51bVNlbGVjdGVkID09PSBudW1Sb3dzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBtYXN0ZXJUb2dnbGUoaXNDaGVja2VkOiBib29sZWFuKSB7XHJcbiAgICAgICAgaWYgKCFpc0NoZWNrZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKTtcclxuICAgICAgICAgICAgdGhpcy5jYXRlZ29yeVNlbGVjdGVkID0gW107XHJcblxyXG4gICAgICAgICAgICB0aGlzLnRhcmdldEF1ZGllbmNlLmVtaXQoe1xyXG4gICAgICAgICAgICAgICAgdGFyZ2V0QXVkaWVuY2U6IFtdLFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyQ291bnQ6IDAsXHJcbiAgICAgICAgICAgICAgICBpc1VwbG9hZDogdGhpcy5pc1Nob3dVcGxvYWRDU1YsXHJcbiAgICAgICAgICAgICAgICBmaWxlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LnRhcmdldEF1ZGllbmNlRmlsZT8ubmFtZSxcclxuICAgICAgICAgICAgICAgICAgICB0YXJnZXRVUkw6IHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy50YXJnZXRBdWRpZW5jZUZpbGU/LnRhcmdldFVSTCxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0KC4uLnRoaXMudGFibGUuZGF0YVNvdXJjZS5kYXRhKTtcclxuICAgICAgICB0aGlzLmNhdGVnb3J5U2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZDtcclxuXHJcbiAgICAgICAgdGhpcy50YXJnZXRBdWRpZW5jZS5lbWl0KHtcclxuICAgICAgICAgICAgdGFyZ2V0QXVkaWVuY2U6IHRoaXMuY2F0ZWdvcnlTZWxlY3RlZC5tYXAoKHQpID0+IHQuaWQpLFxyXG4gICAgICAgICAgICBudW1iZXJDb3VudDogdGhpcy5jYXRlZ29yeVNlbGVjdGVkLnJlZHVjZSgoc3VtLCB4KSA9PiBzdW0gKyB4LnRvdGFsTWVtYmVycywgMCksXHJcbiAgICAgICAgICAgIGlzVXBsb2FkOiB0aGlzLmlzU2hvd1VwbG9hZENTVixcclxuICAgICAgICAgICAgZmlsZToge1xyXG4gICAgICAgICAgICAgICAgbmFtZTogdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LnRhcmdldEF1ZGllbmNlRmlsZT8ubmFtZSxcclxuICAgICAgICAgICAgICAgIHRhcmdldFVSTDogdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LnRhcmdldEF1ZGllbmNlRmlsZT8udGFyZ2V0VVJMLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbkNoZWNrZWQoaXNDaGVja2VkOiBib29sZWFuLCByb3c6IENvbnRhY3RDYXRlZ29yeU1vZGVsKSB7XHJcbiAgICAgICAgaWYgKCFpc0NoZWNrZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uZGVzZWxlY3QoLi4udGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQuZmlsdGVyKCh4KSA9PiB4LmlkID09PSByb3cuaWQpKTtcclxuICAgICAgICAgICAgdGhpcy5jYXRlZ29yeVNlbGVjdGVkID0gdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQ7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnRhcmdldEF1ZGllbmNlLmVtaXQoe1xyXG4gICAgICAgICAgICAgICAgdGFyZ2V0QXVkaWVuY2U6IHRoaXMuY2F0ZWdvcnlTZWxlY3RlZC5tYXAoKHQpID0+IHQuaWQpLFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyQ291bnQ6IHRoaXMuY2F0ZWdvcnlTZWxlY3RlZC5yZWR1Y2UoKHN1bSwgeCkgPT4gc3VtICsgeC50b3RhbE1lbWJlcnMsIDApLFxyXG4gICAgICAgICAgICAgICAgaXNVcGxvYWQ6IHRoaXMuaXNTaG93VXBsb2FkQ1NWLFxyXG4gICAgICAgICAgICAgICAgZmlsZToge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy50YXJnZXRBdWRpZW5jZUZpbGU/Lm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VVJMOiB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8udGFyZ2V0QXVkaWVuY2VGaWxlPy50YXJnZXRVUkwsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdChyb3cpO1xyXG4gICAgICAgIHRoaXMuY2F0ZWdvcnlTZWxlY3RlZCA9IHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkO1xyXG5cclxuICAgICAgICB0aGlzLnRhcmdldEF1ZGllbmNlLmVtaXQoe1xyXG4gICAgICAgICAgICB0YXJnZXRBdWRpZW5jZTogdGhpcy5jYXRlZ29yeVNlbGVjdGVkLm1hcCgodCkgPT4gdC5pZCksXHJcbiAgICAgICAgICAgIG51bWJlckNvdW50OiB0aGlzLmNhdGVnb3J5U2VsZWN0ZWQucmVkdWNlKChzdW0sIHgpID0+IHN1bSArIHgudG90YWxNZW1iZXJzLCAwKSxcclxuICAgICAgICAgICAgaXNVcGxvYWQ6IHRoaXMuaXNTaG93VXBsb2FkQ1NWLFxyXG4gICAgICAgICAgICBmaWxlOiB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8udGFyZ2V0QXVkaWVuY2VGaWxlPy5uYW1lLFxyXG4gICAgICAgICAgICAgICAgdGFyZ2V0VVJMOiB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8udGFyZ2V0QXVkaWVuY2VGaWxlPy50YXJnZXRVUkwsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGlzQ2hlY2tlZChyb3c6IENvbnRhY3RDYXRlZ29yeU1vZGVsKSB7XHJcbiAgICAgICAgY29uc3QgZm91bmQgPSB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5maW5kKCh4KSA9PiB4LmlkID09PSByb3cuaWQpO1xyXG4gICAgICAgIHJldHVybiBmb3VuZCA/IHRydWUgOiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25Eb3dubG9hZFNhbXBsZVNlcnZpY2UoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZ2VuSW5mb0Zvcm0gPSB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8uZ2VuZXJhbEluZm9ybWF0aW9uPy5mb3JtO1xyXG4gICAgICAgIGNvbnN0IGlzTmVlZFNhdmUgPSBnZW5JbmZvRm9ybT8uaXNOZWVkU2F2ZTtcclxuXHJcbiAgICAgICAgY29uc3QgcGFyYW1ldGVyTGlzdDogQXJyYXk8UGFyYW1ldGVyPiA9IFtcclxuICAgICAgICAgICAgdGhpcy5pbml0UGFyYW0oJ3BsYXRmb3JtJywgZ2VuSW5mb0Zvcm0/LnRlbXBsYXRlPy5wbGF0Zm9ybSB8fCAnV0EnLCAnc3RyaW5nJyksXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgaWYgKGlzTmVlZFNhdmUpIHtcclxuICAgICAgICAgICAgLy8gU0tFTkFSSU8gMTogVVNFIEVYSVNUSU5HIC8gVEVNUExBVEUgU1VEQUggRElTQVZFXHJcbiAgICAgICAgICAgIHBhcmFtZXRlckxpc3QucHVzaChcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5pdFBhcmFtKCd0ZW1wbGF0ZU5hbWUnLCBnZW5JbmZvRm9ybT8udGVtcGxhdGU/Lm5hbWUsICdzdHJpbmcnKSxcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5pdFBhcmFtKCd0ZW1wbGF0ZUxhbmcnLCBnZW5JbmZvRm9ybT8udGVtcGxhdGU/LmxhbmcsICdzdHJpbmcnKSxcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5pdFBhcmFtKFxyXG4gICAgICAgICAgICAgICAgICAgICdjYXRlZ29yeScsXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYXRlZ29yeVNlbGVjdGVkPy5tYXAoKHQpID0+IHQuaWQpLmpvaW4oKSA/PyAnJyxcclxuICAgICAgICAgICAgICAgICAgICAnc3RyaW5nJ1xyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIFNLRU5BUklPIDI6IENSRUFURSBORVcgKEJlbHVtIGRpc2F2ZSwgYnV0dWggdGV4dCAmIGV4YW1wbGVzKVxyXG4gICAgICAgICAgICBwYXJhbWV0ZXJMaXN0LnB1c2godGhpcy5pbml0UGFyYW0oJ2JvZHlUZXh0JywgZ2VuSW5mb0Zvcm0/LnRleHQsICdzdHJpbmcnKSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhcmlhYmxlcyA9IGdlbkluZm9Gb3JtPy52YXJpYWJsZXM7XHJcbiAgICAgICAgICAgIGlmICh2YXJpYWJsZXMgJiYgQXJyYXkuaXNBcnJheSh2YXJpYWJsZXMpICYmIHZhcmlhYmxlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBib2R5RXhhbXBsZXNTdHJpbmcgPSB2YXJpYWJsZXMubWFwKCh2OiBhbnkpID0+IHYucGFyYW1OYW1lKS5qb2luKCcsJyk7XHJcblxyXG4gICAgICAgICAgICAgICAgcGFyYW1ldGVyTGlzdC5wdXNoKHRoaXMuaW5pdFBhcmFtKCdib2R5RXhhbXBsZXMnLCBib2R5RXhhbXBsZXNTdHJpbmcsICdzdHJpbmcnKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHN1YnMgPSB0aGlzLmFwaUFkYXB0ZXJTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5leGVjdXRlQXBpUmVxdWVzdChwYXJhbWV0ZXJMaXN0LCAnL21lc3NhZ2UvYnVsa3VwbG9hZC90ZW1wbGF0ZScsICdHRVQnLCB0cnVlKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXNwOiBBcHBSZXNwb25zZTxhbnk+KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBkb3dubG9hZEJsb2JGaWxlKHJlc3AsICdTYW1wbGUtVXBsb2FkUGFyYW1ldGVyLnhsc3gnKTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlcnMucHVzaChzdWJzKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25GaWxlU2VsZWN0ZWQoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICAgICAgY29uc3QgZmlsZTogRmlsZUxpc3QgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLmZpbGVzO1xyXG4gICAgICAgIGNvbnN0IE1BWElNVU1fU0laRSA9IDMwICogMTAyNCAqIDEwMjQ7XHJcblxyXG4gICAgICAgIGlmIChmaWxlLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xyXG5cclxuICAgICAgICBpZiAoZmlsZVswXS5zaXplID4gTUFYSU1VTV9TSVpFKSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKCdVcGxvYWQgbWVkaWEgZmFpbGVkLCBtYXggc2l6ZSAzMG1iJyk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZ2V0UHJlc2lnbmVkVXJsU2VydmljZShmaWxlWzBdKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldFByZXNpZ25lZFVybFNlcnZpY2UoZmlsZTogRmlsZSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaXNVcGxvYWQgPSB0cnVlO1xyXG5cclxuICAgICAgICBjb25zdCBwYXJhbWV0ZXJMaXN0OiBBcnJheTxQYXJhbWV0ZXI+ID0gW1xyXG4gICAgICAgICAgICB7IG5hbWU6ICdmaWxlTmFtZScsIHZhbHVlOiBmaWxlLm5hbWUsIGluOiAncXVlcnknLCB0eXBlOiAnc3RyaW5nJyB9LFxyXG4gICAgICAgICAgICB7IG5hbWU6ICdmaWxlVHlwZScsIHZhbHVlOiBmaWxlLnR5cGUsIGluOiAncXVlcnknLCB0eXBlOiAnc3RyaW5nJyB9LFxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIGNvbnN0IHN1YnMgPSB0aGlzLmFwaUFkYXB0ZXJTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5leGVjdXRlQXBpUmVxdWVzdChwYXJhbWV0ZXJMaXN0LCAnL2NhbXBhaWduL3VwbG9hZC9wcmUtc2lnbmVkLXVybCcsICdHRVQnKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgKHJlc3A6IEFwcFJlc3BvbnNlPGFueT4pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcCAmJiByZXNwLmRhdGEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGxvYWRUb1MzU2VydmljZShmaWxlLCByZXNwLmRhdGEudXJsLCByZXNwLmRhdGEuZmlsZU5hbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAoKSA9PiAodGhpcy5pc1VwbG9hZCA9IGZhbHNlKVxyXG4gICAgICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLnN1YnNjcmliZXJzLnB1c2goc3Vicyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB1cGxvYWRUb1MzU2VydmljZShmaWxlOiBGaWxlLCBzM1VybDogc3RyaW5nLCBmaWxlTmFtZVMzOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmFwaUFkYXB0ZXJTZXJ2aWNlLnVwbG9hZEZpbGVUb1MzKHMzVXJsLCBmaWxlKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZmluYWxpemVUYXJnZXRGaWxlU2VydmljZShmaWxlTmFtZVMzKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IoJ0ZhaWxlZCB1cGxvYWRpbmcgdG8gUzMgc3RvcmFnZScpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc1VwbG9hZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignUzMgVXBsb2FkIEVycm9yOicsIGVycik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZmluYWxpemVUYXJnZXRGaWxlU2VydmljZShmaWxlTmFtZVMzOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBjYW1wYWlnbklkID0gdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LmdlbmVyYWxJbmZvcm1hdGlvbj8uaWQ7XHJcbiAgICAgICAgY29uc3QgcGFyYW1ldGVyTGlzdDogQXJyYXk8UGFyYW1ldGVyPiA9IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbmFtZTogJ2JvZHknLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IHsgZmlsZU5hbWU6IGZpbGVOYW1lUzMgfSxcclxuICAgICAgICAgICAgICAgIGluOiAnYm9keScsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcclxuICAgICAgICAgICAgICAgIHdpdGhvdXRLZXlEYXRhOiB0cnVlLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIGNvbnN0IHN1YnMgPSB0aGlzLmFwaUFkYXB0ZXJTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5leGVjdXRlQXBpUmVxdWVzdChwYXJhbWV0ZXJMaXN0LCBgL2NhbXBhaWduLyR7Y2FtcGFpZ25JZH0vdGFyZ2V0ZmlsZWAsICdQT1NUJylcclxuICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgIChyZXNwOiBBcHBSZXNwb25zZTxhbnk+KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNwKSByZXR1cm47XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3RyLmluZm8oJ1VwbG9hZCBYTFNYIGhhcyBiZWVuIHVwbG9hZGVkIHN1Y2Nlc3NmdWxseScpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNVcGxvYWQgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YXJnZXRBdWRpZW5jZS5lbWl0KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0QXVkaWVuY2U6IHRoaXMuY2F0ZWdvcnlTZWxlY3RlZC5tYXAoKHQpID0+IHQuaWQpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJDb3VudDogdGhpcy5jYXRlZ29yeVNlbGVjdGVkLnJlZHVjZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdW0sIHgpID0+IHN1bSArIHgudG90YWxNZW1iZXJzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgMFxyXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpc1VwbG9hZDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogZmlsZU5hbWVTMyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldFVSTDogcmVzcC5kYXRhPy50YXJnZXRVUkwgfHwgJycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgKCkgPT4gKHRoaXMuaXNVcGxvYWQgPSBmYWxzZSlcclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVycy5wdXNoKHN1YnMpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlcnMuZm9yRWFjaCgoZWFjaCkgPT4gZWFjaC51bnN1YnNjcmliZSgpKTtcclxuICAgIH1cclxufVxyXG4iXX0=
373
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LW51bWJlci1iYXNlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWRsZmUvY2FtcGFpZ24tbWFuYWdlbWVudC1saWJyYXJ5LyIsInNvdXJjZXMiOlsibGliL2NhbXBhaWduLW1hbmFnZW1lbnQvbW9kdWxlcy9uZXctY2FtcGFpZ24vbmV3LW51bWJlci1iYXNlcy9uZXctbnVtYmVyLWJhc2VzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFDSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTNDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3JFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXpELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQU96RDtJQWdDSSxpQ0FDWSxpQkFBMkMsRUFDM0MsTUFBcUI7UUFEckIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUEwQjtRQUMzQyxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBeEIxQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0Isb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFDakMscUJBQWdCLEdBQTJCLEVBQUUsQ0FBQztRQUM5QyxjQUFTLEdBQUcsSUFBSSxjQUFjLENBQXVCLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMvRCxvQkFBZSxHQUFh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QyxJQUFLLE9BQUEsR0FBRyxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQXBCLENBQW9CLEVBQ2hDLENBQUMsQ0FDSjtnQkFDRCxRQUFRLEVBQUUsSUFBSTtnQkFDZCxJQUFJLEVBQUU7b0JBQ0YsSUFBSSxFQUFFLFVBQVU7b0JBQ2hCLFNBQVMsRUFBRSxPQUFBLElBQUksQ0FBQyxJQUFJLDBDQUFFLFNBQVMsS0FBSSxFQUFFO2lCQUN4QzthQUNKLENBQUMsQ0FBQztRQUNQLENBQUMsRUFDRCxjQUFNLE9BQUEsQ0FBQyxLQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUF2QixDQUF1QixDQUNoQyxDQUFDO1FBRU4sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELDZDQUFXLEdBQVg7UUFDSSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxVQUFDLElBQUksSUFBSyxPQUFBLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBbEIsQ0FBa0IsQ0FBQyxDQUFDO0lBQzNELENBQUM7O2dCQW5YOEIsd0JBQXdCO2dCQUNuQyxhQUFhOztJQWhDakM7UUFEQyxNQUFNLEVBQUU7bUVBTU47SUFxQk07UUFBUixLQUFLLEVBQUU7bUVBQWdDO0lBRXBCO1FBQW5CLFNBQVMsQ0FBQyxPQUFPLENBQUM7NERBQWtCO0lBOUI1Qix1QkFBdUI7UUFMbkMsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLHNCQUFzQjtZQUNoQyx5dEpBQWdEOztTQUVuRCxDQUFDO09BQ1csdUJBQXVCLENBcVpuQztJQUFELDhCQUFDO0NBQUEsQUFyWkQsSUFxWkM7U0FyWlksdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xyXG5pbXBvcnQge1xyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkRlc3Ryb3ksXHJcbiAgICBPbkluaXQsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdFNvcnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHsgVG9hc3RyU2VydmljZSB9IGZyb20gJ25neC10b2FzdHInO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSHR0cEJvZHlSZXFQYWdpbmF0aW9uTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IFBhcmFtZXRlciB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvbW9kZWxzL3V0aWwvYXBpLWFkYXB0ZXItc2VydmljZS1tb2RlbHMnO1xyXG5pbXBvcnQgeyBBcHBSZXNwb25zZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvbW9kZWxzL3V0aWwvYXBpLWR0by9yZXNwb25zZS1tb2RlbHMnO1xyXG5pbXBvcnQgeyBBcGlBZGFwdGVyU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgZG93bmxvYWRCbG9iRmlsZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvdXRpbCc7XHJcbmltcG9ydCB7IENvbnRhY3RDYXRlZ29yeU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgVGFibGVNb2RlbCB9IGZyb20gJy4uLy4uL2NhbXBhaWduLWluZGV4L21vZGVscyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnbGliLW5ldy1udW1iZXItYmFzZXMnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL25ldy1udW1iZXItYmFzZXMuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vbmV3LW51bWJlci1iYXNlcy5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmV3TnVtYmVyQmFzZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyB0YXJnZXRBdWRpZW5jZTogRXZlbnRFbWl0dGVyPHtcclxuICAgICAgICB0YXJnZXRBdWRpZW5jZTogc3RyaW5nW107XHJcbiAgICAgICAgbnVtYmVyQ291bnQ6IG51bWJlcjtcclxuICAgICAgICBpc1VwbG9hZDogYm9vbGVhbjtcclxuICAgICAgICBmaWxlOiBhbnk7XHJcbiAgICB9PjtcclxuXHJcbiAgICBwdWJsaWMgdGFibGU6IFRhYmxlTW9kZWw7XHJcbiAgICBwdWJsaWMgaXNVcGxvYWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBpc1Nob3dVcGxvYWRDU1Y6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBjYXRlZ29yeVNlbGVjdGVkOiBDb250YWN0Q2F0ZWdvcnlNb2RlbFtdID0gW107XHJcbiAgICBwdWJsaWMgc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbk1vZGVsPENvbnRhY3RDYXRlZ29yeU1vZGVsPih0cnVlLCBbXSk7XHJcbiAgICBwdWJsaWMgZXh0RmlsZUFjY2VwdGVkOiBzdHJpbmdbXSA9IFtcclxuICAgICAgICAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsJyxcclxuICAgICAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQnLFxyXG4gICAgICAgICcuY3N2JyxcclxuICAgIF07XHJcbiAgICBwdWJsaWMgZmlsZVNlbGVjdGVkOiB7XHJcbiAgICAgICAgbmFtZTogc3RyaW5nO1xyXG4gICAgICAgIHRhcmdldFVSTDogc3RyaW5nO1xyXG4gICAgfSA9IG51bGw7XHJcblxyXG4gICAgcHJpdmF0ZSBjYXRlZ29yeVBhcmFtOiBIdHRwQm9keVJlcVBhZ2luYXRpb25Nb2RlbDtcclxuICAgIHByaXZhdGUgc3Vic2NyaWJlcnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gICAgQElucHV0KCkgcHVibGljIGlzUmVhZE9ubHlNb2RlOiBib29sZWFuO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoTWF0U29ydCkgbWF0U29ydDogTWF0U29ydDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGFwaUFkYXB0ZXJTZXJ2aWNlOiBBcGlBZGFwdGVyU2VydmljZVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSB0b2FzdHI6IFRvYXN0clNlcnZpY2VcclxuICAgICkge1xyXG4gICAgICAgIHRoaXMudGFyZ2V0QXVkaWVuY2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5jYXRlZ29yeVBhcmFtID0gbmV3IEh0dHBCb2R5UmVxUGFnaW5hdGlvbk1vZGVsKCk7XHJcblxyXG4gICAgICAgIHRoaXMuaW5pdFRhYmxlKCk7XHJcbiAgICAgICAgdGhpcy5nZXRDYXRlZ29yeUxpc3QoKTtcclxuXHJcbiAgICAgICAgdGhpcy50YXJnZXRBdWRpZW5jZS5lbWl0KHtcclxuICAgICAgICAgICAgdGFyZ2V0QXVkaWVuY2U6IFtdLFxyXG4gICAgICAgICAgICBudW1iZXJDb3VudDogMCxcclxuICAgICAgICAgICAgaXNVcGxvYWQ6IHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy5nZW5lcmFsSW5mb3JtYXRpb24/LmZvcm0/LmlzVXBsb2FkLFxyXG4gICAgICAgICAgICBmaWxlOiB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8udGFyZ2V0QXVkaWVuY2VGaWxlPy5uYW1lLFxyXG4gICAgICAgICAgICAgICAgdGFyZ2V0VVJMOiB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8udGFyZ2V0QXVkaWVuY2VGaWxlPy50YXJnZXRVUkwsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0VGFibGUoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy50YWJsZSA9IG5ldyBUYWJsZU1vZGVsKCk7XHJcbiAgICAgICAgdGhpcy50YWJsZS5sYWJlbHMgPSBbXHJcbiAgICAgICAgICAgICdzZWxlY3QnLFxyXG4gICAgICAgICAgICAnQ2F0ZWdvcnknLFxyXG4gICAgICAgICAgICAnTm8uIE9mIEN1c3RvbWVyJyxcclxuICAgICAgICAgICAgJ0NyZWF0ZWQgRGF0ZScsXHJcbiAgICAgICAgICAgICdVcGRhdGVkIERhdGUnLFxyXG4gICAgICAgIF07XHJcbiAgICAgICAgdGhpcy50YWJsZS5jb2x1bW5zID0gWydzZWxlY3QnLCAnbmFtZScsICd0b3RhbE1lbWJlcnMnLCAnY3JlYXRlZERhdGUnLCAndXBkYXRlZERhdGUnXTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZ2V0Q2FtcGFpZ25TdG9yYWdlKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd0ZWxpbi5jYW1wYWlnbicpXHJcbiAgICAgICAgICAgID8gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndGVsaW4uY2FtcGFpZ24nKSlcclxuICAgICAgICAgICAgOiB7fTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXRFZGl0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmIChPYmplY3QuZW50cmllcyh0aGlzLmdldENhbXBhaWduU3RvcmFnZSkubGVuZ3RoID09PSAwKSByZXR1cm47XHJcblxyXG4gICAgICAgIGNvbnN0IGdlbkluZm9Gb3JtID0gdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LmdlbmVyYWxJbmZvcm1hdGlvbj8uZm9ybTtcclxuICAgICAgICB0aGlzLmlzU2hvd1VwbG9hZENTViA9IGdlbkluZm9Gb3JtPy5pc1VwbG9hZCB8fCBnZW5JbmZvRm9ybT8uaXNEb3dubG9hZFZhcmlhYmxlWExTO1xyXG5cclxuICAgICAgICB0aGlzLmZpbGVTZWxlY3RlZCA9IHtcclxuICAgICAgICAgICAgbmFtZTogdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LnRhcmdldEF1ZGllbmNlRmlsZT8ubmFtZSxcclxuICAgICAgICAgICAgdGFyZ2V0VVJMOiB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8udGFyZ2V0QXVkaWVuY2VGaWxlPy50YXJnZXRVUkwsXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy50YWJsZS5kYXRhU291cmNlLmRhdGE/LmZvckVhY2goKGVhY2gpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy50YXJnZXRBdWRpZW5jZT8uaW5jbHVkZXMoZWFjaC5pZCkpXHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ2hlY2tlZCh0cnVlLCBlYWNoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldENhdGVnb3J5TGlzdChmaWx0ZXI6IHN0cmluZyA9ICcnKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5pc1JlYWRPbmx5TW9kZSkgdGhpcy5jYXRlZ29yeVBhcmFtLnBhZ2VTaXplID0gMTAwMDtcclxuXHJcbiAgICAgICAgY29uc3QgcGFyYW1ldGVyTGlzdDogQXJyYXk8UGFyYW1ldGVyPiA9IFtcclxuICAgICAgICAgICAgdGhpcy5pbml0UGFyYW0oJ3BhZ2VObycsIHRoaXMuY2F0ZWdvcnlQYXJhbS5wYWdlTm8sICdudW1iZXInKSxcclxuICAgICAgICAgICAgdGhpcy5pbml0UGFyYW0oJ3Jvd1BlclBhZ2UnLCB0aGlzLmNhdGVnb3J5UGFyYW0ucGFnZVNpemUsICdudW1iZXInKSxcclxuICAgICAgICAgICAgdGhpcy5pbml0UGFyYW0oJ2ZpbHRlcicsIGZpbHRlciwgJ3N0cmluZycpLFxyXG4gICAgICAgICAgICB0aGlzLmluaXRQYXJhbShcclxuICAgICAgICAgICAgICAgICdwbGF0Zm9ybScsXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8uZ2VuZXJhbEluZm9ybWF0aW9uPy5mb3JtPy5tZWRpdW0sXHJcbiAgICAgICAgICAgICAgICAnc3RyaW5nJ1xyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmdldENhbXBhaWduU3RvcmFnZT8uZ2VuZXJhbEluZm9ybWF0aW9uPy5mb3JtPy5tZWRpdW0gPT09ICdMSU5FJylcclxuICAgICAgICAgICAgcGFyYW1ldGVyTGlzdC5wdXNoKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5pbml0UGFyYW0oXHJcbiAgICAgICAgICAgICAgICAgICAgJ2FjY291bnRJZCcsXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LmdlbmVyYWxJbmZvcm1hdGlvbj8uZm9ybT8uZnJvbT8uaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgJ3N0cmluZydcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaXNSZWFkT25seU1vZGUpIHBhcmFtZXRlckxpc3QucHVzaCh0aGlzLmluaXRQYXJhbSgnc3VtbWFyeScsIHRydWUsICdzdHJpbmcnKSk7XHJcblxyXG4gICAgICAgIGNvbnN0IHN1YnMgPSB0aGlzLmFwaUFkYXB0ZXJTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5leGVjdXRlQXBpUmVxdWVzdChwYXJhbWV0ZXJMaXN0LCAnL2FkbWluL2NhdGVnb3J5JywgJ0dFVCcpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3A6IEFwcFJlc3BvbnNlPENvbnRhY3RDYXRlZ29yeU1vZGVsW10+KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc1JlYWRPbmx5TW9kZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFibGUuZGF0YVNvdXJjZS5kYXRhID0gcmVzcC5kYXRhPy5maWx0ZXIoKGVhY2gpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy50YXJnZXRBdWRpZW5jZT8uaW5jbHVkZXMoZWFjaC5pZClcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhdGVnb3J5U2VsZWN0ZWQgPSB0aGlzLnRhYmxlLmRhdGFTb3VyY2UuZGF0YTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdEVkaXQoKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZS5kYXRhU291cmNlLmRhdGEgPSByZXNwLmRhdGE7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLnNldE5leHRQYWdlKHJlc3AuaGF2ZU5leHQpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5pdEVkaXQoKTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlcnMucHVzaChzdWJzKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXRQYXJhbShfbmFtZTogc3RyaW5nLCBfdmFsdWU6IGFueSwgX3R5cGU6IHN0cmluZyk6IFBhcmFtZXRlciB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgbmFtZTogX25hbWUsXHJcbiAgICAgICAgICAgIHZhbHVlOiBfdmFsdWUsXHJcbiAgICAgICAgICAgIGluOiAncXVlcnknLFxyXG4gICAgICAgICAgICB0eXBlOiBfdHlwZSxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB1cGRhdGVTZWFyY2goc2VhcmNoVmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudGFibGUucmVzZXRQYWdlKCk7XHJcbiAgICAgICAgdGhpcy5jYXRlZ29yeVBhcmFtLnBhZ2VObyA9IHRoaXMudGFibGUucGFnZTtcclxuICAgICAgICB0aGlzLmdldENhdGVnb3J5TGlzdChzZWFyY2hWYWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHVwZGF0ZVBhZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnRhYmxlLnBhZ2VTaXplICE9PSBldmVudD8ucGFnZVNpemUpIHRoaXMudGFibGUucmVzZXRQYWdlKCk7XHJcblxyXG4gICAgICAgIHRoaXMudGFibGUucGFnZSA9XHJcbiAgICAgICAgICAgIHRoaXMudGFibGUucGFnZVNpemUgIT09IGV2ZW50Py5wYWdlU2l6ZSA/IHRoaXMudGFibGUucGFnZSA6IGV2ZW50Py5wYWdlSW5kZXggKyAxO1xyXG4gICAgICAgIHRoaXMudGFibGUucGFnZVNpemUgPSBldmVudD8ucGFnZVNpemU7XHJcbiAgICAgICAgdGhpcy5jYXRlZ29yeVBhcmFtLnBhZ2VObyA9IHRoaXMudGFibGUucGFnZTtcclxuICAgICAgICB0aGlzLmNhdGVnb3J5UGFyYW0ucGFnZVNpemUgPSB0aGlzLnRhYmxlLnBhZ2VTaXplO1xyXG5cclxuICAgICAgICB0aGlzLmdldENhdGVnb3J5TGlzdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzb3J0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudGFibGUuZGF0YVNvdXJjZS5zb3J0ID0gdGhpcy5tYXRTb3J0O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjaGVja2JveExhYmVsKHJvdz86IENvbnRhY3RDYXRlZ29yeU1vZGVsKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAoIXJvdykgcmV0dXJuIGAke3RoaXMuaXNBbGxTZWxlY3RlZCgpID8gJ2Rlc2VsZWN0JyA6ICdzZWxlY3QnfSBhbGxgO1xyXG5cclxuICAgICAgICByZXR1cm4gYCR7dGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZChyb3cpID8gJ2Rlc2VsZWN0JyA6ICdzZWxlY3QnfSByb3cgJHtyb3cubmFtZSArIDF9YDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaXNBbGxTZWxlY3RlZCgpIHtcclxuICAgICAgICBjb25zdCBudW1TZWxlY3RlZCA9IHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aDtcclxuICAgICAgICBjb25zdCBudW1Sb3dzID0gdGhpcy50YWJsZS5kYXRhU291cmNlLmRhdGE/Lmxlbmd0aCA/PyAwO1xyXG5cclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIHRoaXMudGFibGUuZGF0YVNvdXJjZS5kYXRhICYmXHJcbiAgICAgICAgICAgIHRoaXMudGFibGUuZGF0YVNvdXJjZS5kYXRhLmxlbmd0aCA+IDAgJiZcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQgJiZcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoID4gMFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGRhdGEgb2YgdGhpcy50YWJsZS5kYXRhU291cmNlLmRhdGEpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5maWx0ZXIoKHQpID0+IHQuaWQgPT09IGRhdGEuaWQpLmxlbmd0aCA+IDApIGNvbnRpbnVlO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG51bVNlbGVjdGVkID09PSBudW1Sb3dzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBtYXN0ZXJUb2dnbGUoaXNDaGVja2VkOiBib29sZWFuKSB7XHJcbiAgICAgICAgaWYgKCFpc0NoZWNrZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKTtcclxuICAgICAgICAgICAgdGhpcy5jYXRlZ29yeVNlbGVjdGVkID0gW107XHJcblxyXG4gICAgICAgICAgICB0aGlzLnRhcmdldEF1ZGllbmNlLmVtaXQoe1xyXG4gICAgICAgICAgICAgICAgdGFyZ2V0QXVkaWVuY2U6IFtdLFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyQ291bnQ6IDAsXHJcbiAgICAgICAgICAgICAgICBpc1VwbG9hZDogdGhpcy5pc1Nob3dVcGxvYWRDU1YsXHJcbiAgICAgICAgICAgICAgICBmaWxlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LnRhcmdldEF1ZGllbmNlRmlsZT8ubmFtZSxcclxuICAgICAgICAgICAgICAgICAgICB0YXJnZXRVUkw6IHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy50YXJnZXRBdWRpZW5jZUZpbGU/LnRhcmdldFVSTCxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0KC4uLnRoaXMudGFibGUuZGF0YVNvdXJjZS5kYXRhKTtcclxuICAgICAgICB0aGlzLmNhdGVnb3J5U2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZDtcclxuXHJcbiAgICAgICAgdGhpcy50YXJnZXRBdWRpZW5jZS5lbWl0KHtcclxuICAgICAgICAgICAgdGFyZ2V0QXVkaWVuY2U6IHRoaXMuY2F0ZWdvcnlTZWxlY3RlZC5tYXAoKHQpID0+IHQuaWQpLFxyXG4gICAgICAgICAgICBudW1iZXJDb3VudDogdGhpcy5jYXRlZ29yeVNlbGVjdGVkLnJlZHVjZSgoc3VtLCB4KSA9PiBzdW0gKyB4LnRvdGFsTWVtYmVycywgMCksXHJcbiAgICAgICAgICAgIGlzVXBsb2FkOiB0aGlzLmlzU2hvd1VwbG9hZENTVixcclxuICAgICAgICAgICAgZmlsZToge1xyXG4gICAgICAgICAgICAgICAgbmFtZTogdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LnRhcmdldEF1ZGllbmNlRmlsZT8ubmFtZSxcclxuICAgICAgICAgICAgICAgIHRhcmdldFVSTDogdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LnRhcmdldEF1ZGllbmNlRmlsZT8udGFyZ2V0VVJMLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbkNoZWNrZWQoaXNDaGVja2VkOiBib29sZWFuLCByb3c6IENvbnRhY3RDYXRlZ29yeU1vZGVsKSB7XHJcbiAgICAgICAgaWYgKCFpc0NoZWNrZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uZGVzZWxlY3QoLi4udGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQuZmlsdGVyKCh4KSA9PiB4LmlkID09PSByb3cuaWQpKTtcclxuICAgICAgICAgICAgdGhpcy5jYXRlZ29yeVNlbGVjdGVkID0gdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQ7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnRhcmdldEF1ZGllbmNlLmVtaXQoe1xyXG4gICAgICAgICAgICAgICAgdGFyZ2V0QXVkaWVuY2U6IHRoaXMuY2F0ZWdvcnlTZWxlY3RlZC5tYXAoKHQpID0+IHQuaWQpLFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyQ291bnQ6IHRoaXMuY2F0ZWdvcnlTZWxlY3RlZC5yZWR1Y2UoKHN1bSwgeCkgPT4gc3VtICsgeC50b3RhbE1lbWJlcnMsIDApLFxyXG4gICAgICAgICAgICAgICAgaXNVcGxvYWQ6IHRoaXMuaXNTaG93VXBsb2FkQ1NWLFxyXG4gICAgICAgICAgICAgICAgZmlsZToge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy50YXJnZXRBdWRpZW5jZUZpbGU/Lm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VVJMOiB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8udGFyZ2V0QXVkaWVuY2VGaWxlPy50YXJnZXRVUkwsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdChyb3cpO1xyXG4gICAgICAgIHRoaXMuY2F0ZWdvcnlTZWxlY3RlZCA9IHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkO1xyXG5cclxuICAgICAgICB0aGlzLnRhcmdldEF1ZGllbmNlLmVtaXQoe1xyXG4gICAgICAgICAgICB0YXJnZXRBdWRpZW5jZTogdGhpcy5jYXRlZ29yeVNlbGVjdGVkLm1hcCgodCkgPT4gdC5pZCksXHJcbiAgICAgICAgICAgIG51bWJlckNvdW50OiB0aGlzLmNhdGVnb3J5U2VsZWN0ZWQucmVkdWNlKChzdW0sIHgpID0+IHN1bSArIHgudG90YWxNZW1iZXJzLCAwKSxcclxuICAgICAgICAgICAgaXNVcGxvYWQ6IHRoaXMuaXNTaG93VXBsb2FkQ1NWLFxyXG4gICAgICAgICAgICBmaWxlOiB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8udGFyZ2V0QXVkaWVuY2VGaWxlPy5uYW1lLFxyXG4gICAgICAgICAgICAgICAgdGFyZ2V0VVJMOiB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8udGFyZ2V0QXVkaWVuY2VGaWxlPy50YXJnZXRVUkwsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGlzQ2hlY2tlZChyb3c6IENvbnRhY3RDYXRlZ29yeU1vZGVsKSB7XHJcbiAgICAgICAgY29uc3QgZm91bmQgPSB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5maW5kKCh4KSA9PiB4LmlkID09PSByb3cuaWQpO1xyXG4gICAgICAgIHJldHVybiBmb3VuZCA/IHRydWUgOiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25Eb3dubG9hZFNhbXBsZVNlcnZpY2UoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZ2VuSW5mb0Zvcm0gPSB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8uZ2VuZXJhbEluZm9ybWF0aW9uPy5mb3JtO1xyXG4gICAgICAgIGNvbnN0IGlzTmVlZFNhdmUgPSBnZW5JbmZvRm9ybT8uaXNOZWVkU2F2ZTtcclxuXHJcbiAgICAgICAgY29uc3QgcGFyYW1ldGVyTGlzdDogQXJyYXk8UGFyYW1ldGVyPiA9IFtcclxuICAgICAgICAgICAgdGhpcy5pbml0UGFyYW0oJ3BsYXRmb3JtJywgZ2VuSW5mb0Zvcm0/LnRlbXBsYXRlPy5wbGF0Zm9ybSB8fCAnV0EnLCAnc3RyaW5nJyksXHJcbiAgICAgICAgICAgIHRoaXMuaW5pdFBhcmFtKCd0ZW1wbGF0ZU5hbWUnLCBnZW5JbmZvRm9ybT8udGVtcGxhdGU/Lm5hbWUsICdzdHJpbmcnKSxcclxuICAgICAgICAgICAgdGhpcy5pbml0UGFyYW0oJ3RlbXBsYXRlTGFuZycsIGdlbkluZm9Gb3JtPy50ZW1wbGF0ZT8ubGFuZywgJ3N0cmluZycpLFxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIGlmIChpc05lZWRTYXZlKSB7XHJcbiAgICAgICAgICAgIC8vIFNLRU5BUklPIDE6IFVTRSBFWElTVElORyAvIFRFTVBMQVRFIFNVREFIIERJU0FWRVxyXG4gICAgICAgICAgICBwYXJhbWV0ZXJMaXN0LnB1c2goXHJcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRQYXJhbShcclxuICAgICAgICAgICAgICAgICAgICAnY2F0ZWdvcnknLFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2F0ZWdvcnlTZWxlY3RlZD8ubWFwKCh0KSA9PiB0LmlkKS5qb2luKCkgPz8gJycsXHJcbiAgICAgICAgICAgICAgICAgICAgJ3N0cmluZydcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBTS0VOQVJJTyAyOiBDUkVBVEUgTkVXIChBdXRvLWdlbmVyYXRlZCBkbGwpXHJcbiAgICAgICAgICAgIGNvbnN0IHNhZmVCb2R5VGV4dCA9IGVuY29kZVVSSUNvbXBvbmVudChnZW5JbmZvRm9ybT8udGV4dCB8fCAnJyk7XHJcbiAgICAgICAgICAgIHBhcmFtZXRlckxpc3QucHVzaCh0aGlzLmluaXRQYXJhbSgnYm9keVRleHQnLCBzYWZlQm9keVRleHQsICdzdHJpbmcnKSk7XHJcblxyXG4gICAgICAgICAgICBjb25zdCB2YXJpYWJsZXMgPSBnZW5JbmZvRm9ybT8udmFyaWFibGVzO1xyXG4gICAgICAgICAgICBpZiAodmFyaWFibGVzICYmIEFycmF5LmlzQXJyYXkodmFyaWFibGVzKSAmJiB2YXJpYWJsZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYm9keUV4YW1wbGVzU3RyaW5nID0gdmFyaWFibGVzLm1hcCgodjogYW55KSA9PiB2LnBhcmFtTmFtZSkuam9pbignLCcpO1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc2FmZUJvZHlFeGFtcGxlcyA9IGVuY29kZVVSSUNvbXBvbmVudChib2R5RXhhbXBsZXNTdHJpbmcpO1xyXG4gICAgICAgICAgICAgICAgcGFyYW1ldGVyTGlzdC5wdXNoKHRoaXMuaW5pdFBhcmFtKCdib2R5RXhhbXBsZXMnLCBzYWZlQm9keUV4YW1wbGVzLCAnc3RyaW5nJykpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoZ2VuSW5mb0Zvcm0/LnRlbXBsYXRlPy5oZWFkZXI/LnRleHQpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHNhZmVIZWFkZXJUZXh0ID0gZW5jb2RlVVJJQ29tcG9uZW50KGdlbkluZm9Gb3JtLnRlbXBsYXRlLmhlYWRlci50ZXh0KTtcclxuICAgICAgICAgICAgICAgIHBhcmFtZXRlckxpc3QucHVzaCh0aGlzLmluaXRQYXJhbSgnaGVhZGVyVGV4dCcsIHNhZmVIZWFkZXJUZXh0LCAnc3RyaW5nJykpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBzdWJzID0gdGhpcy5hcGlBZGFwdGVyU2VydmljZVxyXG4gICAgICAgICAgICAuZXhlY3V0ZUFwaVJlcXVlc3QocGFyYW1ldGVyTGlzdCwgJy9tZXNzYWdlL2J1bGt1cGxvYWQvdGVtcGxhdGUnLCAnR0VUJywgdHJ1ZSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzcDogQXBwUmVzcG9uc2U8YW55PikgPT4ge1xyXG4gICAgICAgICAgICAgICAgZG93bmxvYWRCbG9iRmlsZShyZXNwLCAnU2FtcGxlLVVwbG9hZFBhcmFtZXRlci54bHN4Jyk7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLnN1YnNjcmliZXJzLnB1c2goc3Vicyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uRmlsZVNlbGVjdGVkKGV2ZW50OiBFdmVudCkge1xyXG4gICAgICAgIGNvbnN0IGZpbGU6IEZpbGVMaXN0ID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5maWxlcztcclxuICAgICAgICBjb25zdCBNQVhJTVVNX1NJWkUgPSAzMCAqIDEwMjQgKiAxMDI0O1xyXG5cclxuICAgICAgICBpZiAoZmlsZS5sZW5ndGggPT09IDApIHJldHVybjtcclxuXHJcbiAgICAgICAgaWYgKGZpbGVbMF0uc2l6ZSA+IE1BWElNVU1fU0laRSkge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcignVXBsb2FkIG1lZGlhIGZhaWxlZCwgbWF4IHNpemUgMzBtYicpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmdldFByZXNpZ25lZFVybFNlcnZpY2UoZmlsZVswXSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRQcmVzaWduZWRVcmxTZXJ2aWNlKGZpbGU6IEZpbGUpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmlzVXBsb2FkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgY29uc3QgcGFyYW1ldGVyTGlzdDogQXJyYXk8UGFyYW1ldGVyPiA9IFtcclxuICAgICAgICAgICAgeyBuYW1lOiAnZmlsZU5hbWUnLCB2YWx1ZTogZmlsZS5uYW1lLCBpbjogJ3F1ZXJ5JywgdHlwZTogJ3N0cmluZycgfSxcclxuICAgICAgICAgICAgeyBuYW1lOiAnZmlsZVR5cGUnLCB2YWx1ZTogZmlsZS50eXBlLCBpbjogJ3F1ZXJ5JywgdHlwZTogJ3N0cmluZycgfSxcclxuICAgICAgICBdO1xyXG5cclxuICAgICAgICBjb25zdCBzdWJzID0gdGhpcy5hcGlBZGFwdGVyU2VydmljZVxyXG4gICAgICAgICAgICAuZXhlY3V0ZUFwaVJlcXVlc3QocGFyYW1ldGVyTGlzdCwgJy9jYW1wYWlnbi91cGxvYWQvcHJlLXNpZ25lZC11cmwnLCAnR0VUJylcclxuICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgIChyZXNwOiBBcHBSZXNwb25zZTxhbnk+KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3AgJiYgcmVzcC5kYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkVG9TM1NlcnZpY2UoZmlsZSwgcmVzcC5kYXRhLnVybCwgcmVzcC5kYXRhLmZpbGVOYW1lKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgKCkgPT4gKHRoaXMuaXNVcGxvYWQgPSBmYWxzZSlcclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVycy5wdXNoKHN1YnMpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdXBsb2FkVG9TM1NlcnZpY2UoZmlsZTogRmlsZSwgczNVcmw6IHN0cmluZywgZmlsZU5hbWVTMzogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5hcGlBZGFwdGVyU2VydmljZS51cGxvYWRGaWxlVG9TMyhzM1VybCwgZmlsZSkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZpbmFsaXplVGFyZ2V0RmlsZVNlcnZpY2UoZmlsZU5hbWVTMyk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIChlcnIpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKCdGYWlsZWQgdXBsb2FkaW5nIHRvIFMzIHN0b3JhZ2UnKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNVcGxvYWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1MzIFVwbG9hZCBFcnJvcjonLCBlcnIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGZpbmFsaXplVGFyZ2V0RmlsZVNlcnZpY2UoZmlsZU5hbWVTMzogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgY2FtcGFpZ25JZCA9IHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy5nZW5lcmFsSW5mb3JtYXRpb24/LmlkO1xyXG4gICAgICAgIGNvbnN0IHBhcmFtZXRlckxpc3Q6IEFycmF5PFBhcmFtZXRlcj4gPSBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIG5hbWU6ICdib2R5JyxcclxuICAgICAgICAgICAgICAgIHZhbHVlOiB7IGZpbGVOYW1lOiBmaWxlTmFtZVMzIH0sXHJcbiAgICAgICAgICAgICAgICBpbjogJ2JvZHknLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogJ29iamVjdCcsXHJcbiAgICAgICAgICAgICAgICB3aXRob3V0S2V5RGF0YTogdHJ1ZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICBdO1xyXG5cclxuICAgICAgICBjb25zdCBzdWJzID0gdGhpcy5hcGlBZGFwdGVyU2VydmljZVxyXG4gICAgICAgICAgICAuZXhlY3V0ZUFwaVJlcXVlc3QocGFyYW1ldGVyTGlzdCwgYC9jYW1wYWlnbi8ke2NhbXBhaWduSWR9L3RhcmdldGZpbGVgLCAnUE9TVCcpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAocmVzcDogQXBwUmVzcG9uc2U8YW55PikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghcmVzcCkgcmV0dXJuO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ci5pbmZvKCdVcGxvYWQgWExTWCBoYXMgYmVlbiB1cGxvYWRlZCBzdWNjZXNzZnVsbHknKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzVXBsb2FkID0gZmFsc2U7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFyZ2V0QXVkaWVuY2UuZW1pdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldEF1ZGllbmNlOiB0aGlzLmNhdGVnb3J5U2VsZWN0ZWQubWFwKCh0KSA9PiB0LmlkKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyQ291bnQ6IHRoaXMuY2F0ZWdvcnlTZWxlY3RlZC5yZWR1Y2UoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3VtLCB4KSA9PiBzdW0gKyB4LnRvdGFsTWVtYmVycyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDBcclxuICAgICAgICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXNVcGxvYWQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IGZpbGVOYW1lUzMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRVUkw6IHJlc3AuZGF0YT8udGFyZ2V0VVJMIHx8ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICgpID0+ICh0aGlzLmlzVXBsb2FkID0gZmFsc2UpXHJcbiAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlcnMucHVzaChzdWJzKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnN1YnNjcmliZXJzLmZvckVhY2goKGVhY2gpID0+IGVhY2gudW5zdWJzY3JpYmUoKSk7XHJcbiAgICB9XHJcbn1cclxuIl19