@uiapplibct/ngx-reusa-app-lib 0.0.26 → 0.0.28

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.
@@ -640,19 +640,10 @@ export class HeaderComponent extends BasePage {
640
640
  var encVal = btoa(tempVal);
641
641
  var date = new Date();
642
642
  date.setTime(date.getTime() + 60000);
643
- const domain = ".dol.ct.gov";
643
+ const domain = LibConstants.ssoDomain;
644
644
  var expires = "expires=" + date.toUTCString();
645
645
  document.cookie = "parApToM=" + encVal + ";path=/;expires=" + expires + ";domain=" + domain + ";SameSite=Lax;";
646
- var cookie = "parApToM=" + encVal + ";path=/" + ";domain=.dol.ct.gov" + ";expires=" + expires + ";";
647
- var isHttps = window.location.protocol === 'https:';
648
- if (isHttps) {
649
- cookie += "SameSite=None; Secure";
650
- }
651
- else {
652
- cookie += "SameSite=None";
653
- }
654
- document.cookie = cookie;
655
- window.open(`${LibConstants.taxUrlExternal}/faces/virtual/contextswitch.xhtml?a=${userModel.access_token}&TAXAUDIT_PORTAL=true`, '_self');
646
+ window.open(`${LibConstants.taxUrl}/faces/virtual/contextswitch.xhtml?a=${userModel.access_token}&v=2299&TAXAUDIT_PORTAL=true`, '_self');
656
647
  }
657
648
  }
658
649
  openAuditDashboard() {
@@ -931,4 +922,4 @@ export class HeaderComponent extends BasePage {
931
922
  args: ['context']
932
923
  }] }); })();
933
924
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(HeaderComponent, { className: "HeaderComponent", filePath: "lib\\components\\header\\header.component.ts", lineNumber: 26 }); })();
934
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBR3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDbEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBUWhGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNkaEQsdUNBQ21COzs7O0lBRGtCLHVFQUFvQzs7O0lBSWpFLHNDQUNnSjs7O0lBQWhHLHlHQUE2RTs7OztJQVE3SCxzQ0FBeU07SUFBN0wsd0xBQVMsZUFBQSxrQkFBVSxDQUFBLElBQUM7SUFBeUssb0JBQUk7SUFBQSxpQkFBYTs7O0lBQWhKLG1HQUE2RTs7OztJQUV2SixzQ0FBOFI7SUFBakQsd0xBQVMsZUFBQSxzQkFBYyxDQUFBLElBQUM7O0lBQXlCLFlBQThDO0lBQUEsaUJBQWE7OztJQUF4VCxtRkFBa0Q7SUFBMEIsb0dBQThFO0lBQW1HLGVBQThDO0lBQTlDLHdFQUE4Qzs7OztJQUM1VSxzQ0FBNFI7SUFBekIsd0xBQVMsZUFBQSxzQkFBYyxDQUFBLElBQUM7O0lBQUMsWUFB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Q2YsZUFBc0M7WUFBdEMsK0RBQXNDO1lBTTVDLGVBQStFO1lBQS9FLDRHQUErRTtZQVE3RCxlQUFtQjtZQUFuQix3Q0FBbUI7WUF3Qm5ELGVBQXNCO1lBQXRCLDJDQUFzQjtZQUlSLGVBQThCO1lBQTlCLG1EQUE4Qjs7O2lGRDVHOUMsZUFBZTtjQUwzQixTQUFTOzJCQUNFLFlBQVk7MFVBY04sS0FBSztrQkFBcEIsS0FBSzttQkFBQyxPQUFPO1lBRUcsTUFBTTtrQkFBdEIsS0FBSzttQkFBQyxRQUFRO1lBRVMsYUFBYTtrQkFBcEMsS0FBSzttQkFBQyxlQUFlO1lBRUEsV0FBVztrQkFBaEMsS0FBSzttQkFBQyxhQUFhO1lBRUUsV0FBVztrQkFBaEMsS0FBSzttQkFBQyxhQUFhO1lBRUQsUUFBUTtrQkFBMUIsS0FBSzttQkFBQyxVQUFVO1lBRUMsT0FBTztrQkFBeEIsS0FBSzttQkFBQyxTQUFTOztrRkF0QkwsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkV4dHJhcywgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE1vZGFsQ29udHJvbGxlciwgTmF2Q29udHJvbGxlciwgUG9wb3ZlckNvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBMaWJDb25zdGFudHMgfSBmcm9tICcuLi8uLi9tb2RlbHMvTGliQ29uc3RhbnRzJztcbmltcG9ydCB7IENsYWltYW50TW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvY2xhaW1hbnQvQ2xhaW1hbnRNb2RlbCc7XG5pbXBvcnQgeyBNeU5vdGlmaWNhdGlvbnNQYWdlIH0gZnJvbSAnLi4vLi4vcGFnZXMvcG9wb3ZlcnMvbXktbm90aWZpY2F0aW9ucy9teS1ub3RpZmljYXRpb25zLnBhZ2UnO1xuaW1wb3J0IHsgTXlQcm9maWxlUGFnZSB9IGZyb20gJy4uLy4uL3BhZ2VzL3BvcG92ZXJzL215LXByb2ZpbGUvbXktcHJvZmlsZS5wYWdlJztcbmltcG9ydCB7IENsYWltYW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NsYWltYW50L2NsYWltYW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9naW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9naW4vbG9naW4uc2VydmljZSc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXRpbC91dGlsLnNlcnZpY2UnO1xuaW1wb3J0IHsgSGVscFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9oZWxwL2hlbHAuc2VydmljZSc7XG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEJhc2VQYWdlIH0gZnJvbSAnLi4vLi4vcGFnZXMvQmFzZVBhZ2UnO1xuaW1wb3J0IHsgQXV0b0NvbXBsZXRlU2VsZWN0RXZlbnQgfSBmcm9tICdwcmltZW5nL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBTZWFyY2hRdWVzdGlvbm5haXJlRGF0YSB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL1F1ZXN0aW9ubmFpcmVGb3JtJztcbmltcG9ydCB7IEF1ZGl0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2F1ZGl0L2F1ZGl0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQXVkaXREb2N1bWVudEVtcGxveWVyVXNlck1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0F1ZGl0RG9jdW1lbnRFbXBsb3llclVzZXJNb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaGVhZGVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgSGVhZGVyQ29tcG9uZW50IGV4dGVuZHMgQmFzZVBhZ2UgaW1wbGVtZW50cyBPbkluaXQgIHtcblxuICBpdGVtczogTWVudUl0ZW1bXTtcblxuICBzZWFyY2hUZXh0O1xuXG4gIHJlc3VsdHM6IENsYWltYW50TW9kZWxbXTtcblxuICBjb250ZXh0Um9vdDpzdHJpbmc7XG5cbiAgQElucHV0KCd0aXRsZScpIHRpdGxlOiBzdHJpbmc7XG5cbiAgQElucHV0KCdwYWdlSWQnKSBwYWdlSWQ6IHN0cmluZztcblxuICBASW5wdXQoJ3NlY29uZFRvb2xiYXInKSBzZWNvbmRUb29sYmFyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KCdkaXNwbGF5TG9nbycpIGRpc3BsYXlMb2dvOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KCdzaG93SGlzdG9yeScpIHNob3dIaXN0b3J5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KCdiYWNrUGFnZScpIGJhY2tQYWdlOiBzdHJpbmc7XG5cbiAgQElucHV0KCdjb250ZXh0JykgY29udGV4dDogc3RyaW5nO1xuXG4gIHB1YmxpYyBzaG93Tm90aWZpY2F0aW9uTG9hZGVyID0gZmFsc2U7XG5cbiAgcHVibGljIGxlZ2FjeU1lbnUgPSBMaWJDb25zdGFudHMubGVnYWN5TWVudTtcblxuICBwdWJsaWMgaW50ZXJpbUhvbWVQYWdlID0gTGliQ29uc3RhbnRzLmludGVyaW1Ib21lUGFnZTtcblxuICBwdWJsaWMgc2hvd1Byb2ZpbGVQb3B1cCA6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgc2hvd2pvYlNlYXJjaFJlc3VsdFBvcHVwIDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyBzaG93TGFuZ3VhZ2VPcHRpb24gPSBMaWJDb25zdGFudHMuZW5hYmxlTGFuZ3VhZ2VDaGFuZ2U7XG5cbiAgaXNFbXBsb3llckxvYWRlZCA9IGZhbHNlO1xuICBpc1F1ZXN0aW9ubmFpcmVEYXRhTG9hZGVkID0gZmFsc2U7XG5cblxuICBzZWFyY2hRdWVzdGlvbm5haXJlRGF0YTpTZWFyY2hRdWVzdGlvbm5haXJlRGF0YVtdO1xuICBzZWxlY3RlZFF1ZXN0aW9ubmFpcmVEYXRhOiBTZWFyY2hRdWVzdGlvbm5haXJlRGF0YVtdO1xuICBhdWRpdERvY3VtZW50RW1wbG95ZXJVc2VyTW9kZWw6IEF1ZGl0RG9jdW1lbnRFbXBsb3llclVzZXJNb2RlbDtcblxuXG5cbiAgY29uc3RydWN0b3IocHVibGljIGxzIDogTG9naW5TZXJ2aWNlLCBwdWJsaWMgdXRpbCA6IFV0aWxTZXJ2aWNlLCBwdWJsaWMgciA6IFJvdXRlciwgcHVibGljIHBvcHVwOiBQb3BvdmVyQ29udHJvbGxlciwgXG4gICAgICAgICAgICAgIHB1YmxpYyBjcyA6IENsYWltYW50U2VydmljZSwgcHJpdmF0ZSBuYXYgOiBOYXZDb250cm9sbGVyLCBwdWJsaWMgbW9kYWxDb250cm9sbGVyOiBNb2RhbENvbnRyb2xsZXIsXG4gICAgICAgICAgICAgIHB1YmxpYyBucyA6IE5vdGlmaWNhdGlvblNlcnZpY2UsIHB1YmxpYyBoczogSGVscFNlcnZpY2UsIHB1YmxpYyB0cmFuc2xhdGVTZXJ2aWNlIDogVHJhbnNsYXRlU2VydmljZSwgcHJpdmF0ZSBxczogQXVkaXRTZXJ2aWNlKSB7XG4gICAgICAgICAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgICAgICAgIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICAvL3RoaXMubG9hZE5vdGlmaWNhdGlvbkNvdW50KCk7XG4gICAgdGhpcy5zZXRNZW51SXRlbXMobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJsYW5ndWFnZVwiKSk7XG4gICAgaWYodGhpcy5scy5pc0VtcGxveWVyKCkpXG4gICAge1xuICAgICAgICAgIHRoaXMubG9hZEVtcGxveWVyRGV0YWlscygpXG4gICAgfVxuICAgIHRoaXMuY29udGV4dFJvb3QgPSB0aGlzLmdldENvbnRleHRSb290KCk7XG4gIH1cbiAgXG4gIC8qSm9iIFNlYXJjaCBSZXN1bHQgSWNvbiBQb3B1cFxuICAgcHJlc2VudEpvYlNlYXJjaFJlc3VsdFBvcHVwKCkge1xuICAgIGlmKHRoaXMubHMuaXNDbGFpbWFudCgpKXtcbiAgICAgIHRoaXMuc2hvd2pvYlNlYXJjaFJlc3VsdFBvcHVwID0gdHJ1ZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cbiAgKi9cbiAgZ2V0Q29udGV4dFJvb3QoKXtcbiAgICBsZXQgcGFydHMgPSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUuc3BsaXQoJy8nKTtcbiAgICBsZXQgY29udGV4dFJvb3QgPSBwYXJ0cy5sZW5ndGggPiAxID8gcGFydHNbMV0gOiAnJztcbiAgICByZXR1cm4gY29udGV4dFJvb3Q7XG4gIH1cbiAgc2V0TWVudUl0ZW1zKGxhbmd1YWdlIDogc3RyaW5nKXtcbiAgICB0aGlzLml0ZW1zID0gW3tcbiAgICAgIGxhYmVsIDogJ0Nob29zZSBsYW5ndWFnZScsXG4gICAgICBpdGVtczogW3tcbiAgICAgICAgbGFiZWw6ICdFbmdsaXNoJyxcbiAgICAgICAgaWNvbiA6IHRoaXMuZ2V0SWNvbihsYW5ndWFnZSwnZW4nKSxcbiAgICAgICAgY29tbWFuZDogKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRMYW5ndWFnZSgnZW4nLCAnRW5nbGlzaCcpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBsYWJlbDogJ0VzcGHvv71vbCcsXG4gICAgICAgIGljb24gOiB0aGlzLmdldEljb24obGFuZ3VhZ2UsJ2VzJyksXG4gICAgICAgIGNvbW1hbmQ6ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0TGFuZ3VhZ2UoJ2VzJywgJ2VzcGHvv71vbCcpO1xuICAgICAgICB9XG4gICAgICB9XVxuICAgIH1dO1xuICB9XG5cbiAgZ2V0SWNvbihzZWxlY3RlZExhbmcgOiBzdHJpbmcsIGxhbmd1YWdlIDogc3RyaW5nKXtcbiAgICBpZihsYW5ndWFnZSA9PSBzZWxlY3RlZExhbmcpe1xuICAgICAgcmV0dXJuIFwicGkgcGktZncgcGktY2hlY2tcIjtcbiAgICB9ZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBzZXRMYW5ndWFnZShsYW5ndWFnZSA6IHN0cmluZywgbmFtZSA6IHN0cmluZyl7XG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnVzZShsYW5ndWFnZSk7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2xhbmd1YWdlJywgbGFuZ3VhZ2UpO1xuICAgIHRoaXMudXRpbC50b2FzdCgnTGFuZ3VhZ2UgcHJlZmVyZW5jZSBjaGFuZ2VkIHRvICcgKyBuYW1lKTtcbiAgICB0aGlzLnNldE1lbnVJdGVtcyhsYW5ndWFnZSk7XG4gIH1cblxuICBhc3luYyBwcmVzZW50TXlQcm9maWxlUG9wb3ZlcihldmVudCkge1xuXG4gICAgaWYodGhpcy5scy5pc0NsYWltYW50KCkgJiYgICh0aGlzLmxlZ2FjeU1lbnUgPT0gJ2ZhbHNlJyB8fCB0aGlzLnV0aWwuaXNTdGF0ZSgnTUUnKSB8fCAodGhpcy51dGlsLmlzU3RhdGUoJ01TJykgJiYgTGliQ29uc3RhbnRzLmludGVyaW1Ib21lUGFnZSA9PSAndHJ1ZScpKSl7XG4gICAgICB0aGlzLnNob3dQcm9maWxlUG9wdXAgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHBvcG92ZXIgPSBhd2FpdCB0aGlzLnBvcHVwLmNyZWF0ZSh7XG4gICAgICBjb21wb25lbnQ6IE15UHJvZmlsZVBhZ2UsXG4gICAgICB0cmFuc2x1Y2VudDogdHJ1ZSxcbiAgICAgIGJhY2tkcm9wRGlzbWlzczogdHJ1ZSxcbiAgICAgIGV2ZW50OiBldmVudCxcbiAgICAgIGNzc0NsYXNzOiAnaGVhZGVyLXBvcG92ZXInXG4gICAgfSk7XG5cbiAgICByZXR1cm4gYXdhaXQgcG9wb3Zlci5wcmVzZW50KCk7XG4gIH1cblxuICBhc3luYyBwcmVzZW50TXlOb3RpZmljYXRpb25Qb3BvdmVyKGV2ZW50KSB7XG4gICAgY29uc3QgcG9wb3ZlciA9IGF3YWl0IHRoaXMucG9wdXAuY3JlYXRlKHtcbiAgICAgIGNvbXBvbmVudDogTXlOb3RpZmljYXRpb25zUGFnZSxcbiAgICAgIHRyYW5zbHVjZW50OiB0cnVlLFxuICAgICAgYmFja2Ryb3BEaXNtaXNzOiB0cnVlLFxuICAgICAgZXZlbnQ6IGV2ZW50LFxuICAgICAgY3NzQ2xhc3M6ICdoZWFkZXItcG9wb3ZlcidcbiAgICB9KTtcblxuICAgIHBvcG92ZXIub25EaWREaXNtaXNzKCkudGhlbigoKSA9PiB7XG4gICAgICB0aGlzLm5zLnVwZGF0ZVJlYWRGbGFnKCk7XG4gICAgfSlcblxuICAgIHJldHVybiBhd2FpdCBwb3BvdmVyLnByZXNlbnQoKTtcbiAgfVxuXG4gIGxvZ291dCgpe1xuICAgIHRoaXMubmF2Lm5hdmlnYXRlUm9vdCgnL2xhbmRpbmcnKTtcbiAgICB0aGlzLmxzLmxvZ291dCgpO1xuICB9XG5cbiAgb3BlbldlZWtsaWVzKCl7XG4gICAgaWYodGhpcy5sZWdhY3lNZW51ID09ICd0cnVlJyAmJiB0aGlzLmlzTVMoKSAmJiB0aGlzLmludGVyaW1Ib21lUGFnZSA9PSAnZmFsc2UnKXtcbiAgICAgIHRoaXMub3BlblBhZ2UoJ2NwJywgJ3YyL3dlZWtsaWVzJylcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcGVuUGFnZSgnY3AnLCAndjMvd2Vla2xpZXMnKVxuICAgIH1cbiAgfVxuXG4gIG9uQ2xpY2tEaXNwbGF5TG9nbygpXG4gIHtcbiAgICAgIGlmKHRoaXMuY29udGV4dD09J2F1ZGl0Jyl7XG4gICAgICBsZXQgdXNlck1vZGVsID0gdGhpcy5scy5nZXRVc2VyKCk7XG4gICAgICB2YXIgdGVtcFZhbCA9IEpTT04uc3RyaW5naWZ5KHsgcGFyYW0xOiBcInRheEF1ZGl0XCJ9KTtcbiAgICAgIHZhciBlbmNWYWwgPSBidG9hKHRlbXBWYWwpO1xuICAgICAgdmFyIGRhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgZGF0ZS5zZXRUaW1lKGRhdGUuZ2V0VGltZSgpICsgNjAwMDApO1xuICAgICAgY29uc3QgZG9tYWluID0gXCIuZG9sLmN0LmdvdlwiXG4gICAgICB2YXIgZXhwaXJlcyA9IFwiZXhwaXJlcz1cIiArIGRhdGUudG9VVENTdHJpbmcoKTtcbiAgICAgIGRvY3VtZW50LmNvb2tpZSA9IFwicGFyQXBUb009XCIgKyBlbmNWYWwgKyBcIjtwYXRoPS87ZXhwaXJlcz1cIiArIGV4cGlyZXMgKyBcIjtkb21haW49XCIgKyBkb21haW4gKyBcIjtTYW1lU2l0ZT1MYXg7XCI7XG4gICAgICB2YXIgY29va2llID0gXCJwYXJBcFRvTT1cIiArIGVuY1ZhbCArIFwiO3BhdGg9L1wiICsgXCI7ZG9tYWluPS5kb2wuY3QuZ292XCIgKyBcIjtleHBpcmVzPVwiICsgZXhwaXJlcyArIFwiO1wiO1xuICAgICAgdmFyIGlzSHR0cHMgPSB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgPT09ICdodHRwczonO1xuICAgICAgICBpZiAoaXNIdHRwcykge1xuICAgICAgICAgICAgY29va2llICs9IFwiU2FtZVNpdGU9Tm9uZTsgU2VjdXJlXCI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb29raWUgKz0gXCJTYW1lU2l0ZT1Ob25lXCI7XG4gICAgICAgIH0gXG4gICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IGNvb2tpZTtcbiAgICAgIHdpbmRvdy5vcGVuKGAke0xpYkNvbnN0YW50cy50YXhVcmxFeHRlcm5hbH0vZmFjZXMvdmlydHVhbC9jb250ZXh0c3dpdGNoLnhodG1sP2E9JHt1c2VyTW9kZWwuYWNjZXNzX3Rva2VufSZUQVhBVURJVF9QT1JUQUw9dHJ1ZWAsICdfc2VsZicpO1xuICAgIH1cbiAgfVxuXG4gICBvcGVuQXVkaXREYXNoYm9hcmQoKXtcbiAgICBpZih0aGlzLmNvbnRleHQ9PSdhdWRpdCcpe1xuICAgICAgaWYodGhpcy5scy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpIHx8IHRoaXMubHMuaXNUYXhBdWRpdERpcmVjdG9yKCkpe1xuICAgICAgICB0aGlzLm9wZW5QYWdlKCdhdWRpdCcsJy9kYXNoYm9hcmQnKTtcbiAgICAgIH0gZWxzZSBpZih0aGlzLmxzLmlzVGF4QXVkaXRBdWRpdG9yKCkpe1xuICAgICAgICB0aGlzLm9wZW5QYWdlKCdhdWRpdCcsJy9teXEnKTtcbiAgICAgIH0gZWxzZSBpZih0aGlzLmxzLmlzRW1wbG95ZXIoKSl7XG4gICAgICAgIHRoaXMub3BlblBhZ2UoJ2F1ZGl0JywnLycpOyAvL0FkZCB0aGUgYWN0dWFsIHVybCBmb3IgZW1wbG95ZXIgYXVkaXQgZGFzaGJvYXJkXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb3BlbkF1ZGl0b3JXb3JrTGlzdCgpe1xuICAgIHRoaXMub3BlblBhZ2UoJ2F1ZGl0JywnL2F1ZGl0b3Itd29yay1saXN0Jyk7XG4gIH1cblxuICAgb3BlblF1ZXN0aW9ubmFpcmUoKXtcbiAgICBpZih0aGlzLmxzLmlzVGF4QXVkaXRBdWRpdG9yKCkgfHwgdGhpcy5scy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpKXtcbiAgICAgIHRoaXMub3BlblBhZ2UoJ2F1ZGl0JywnL2F1ZGl0b3ItcXVlc3Rpb25uYWlyZScpO1xuICAgIH0gZWxzZSBpZih0aGlzLmxzLmlzRW1wbG95ZXIoKSl7XG4gICAgICBpZih0aGlzLnNlYXJjaFF1ZXN0aW9ubmFpcmVEYXRhICYmIHRoaXMuc2VhcmNoUXVlc3Rpb25uYWlyZURhdGEubGVuZ3RoID4gMClcbiAgICAgIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFF1ZXN0aW9ubmFpcmVEYXRhID0gdGhpcy5zZWFyY2hRdWVzdGlvbm5haXJlRGF0YTtcbiAgICAgICAgdGhpcy5xcy5zZXRRdWVzdGlvbm5haXJlRGF0YSh0aGlzLnNlbGVjdGVkUXVlc3Rpb25uYWlyZURhdGEpO1xuICAgICAgdGhpcy5vcGVuUGFnZSgnYXVkaXQnLCAnL2F1ZGl0b3ItcXVlc3Rpb25uYWlyZS1mb3JtJywge1xuICAgICAgICBzdGF0ZTogeyBhdWRpdDogdGhpcy5zZWFyY2hRdWVzdGlvbm5haXJlRGF0YSB9XG4gICAgICB9KTsvL0FkZCB0aGUgYWN0dWFsIHVybCBmb3IgZW1wbG95ZXIgcXVlc3Rpb25uYWlyZVxuICAgICAgfVxuICAgICAgZWxzZXtcbiAgICAgICAgdGhpcy51dGlsLnNob3dFcnJvcihcIk5vIGFjdGl2ZSBhdWRpdC4gVGhpcyBpcyBub3QgcmVxdWlyZWQgYXQgdGhpcyBwb2ludC5cIilcbiAgICAgIH1cbiAgICAgIFxuICAgIH1cbiAgfVxuICBvcGVuVXBsb2FkRG9jdW1lbnRzKCl7XG5cbiAgICBpZih0aGlzLmF1ZGl0RG9jdW1lbnRFbXBsb3llclVzZXJNb2RlbCAmJiB0aGlzLmF1ZGl0RG9jdW1lbnRFbXBsb3llclVzZXJNb2RlbC5hdWRpdElkICE9IG51bGwpXG4gICAge1xuICAgICAgdGhpcy5vcGVuUGFnZSgnYXVkaXQnLCAnL2VtcGxveWVyLWRvY3VtZW50cycsIHtcbiAgICAgICAgc3RhdGU6IHsgYXVkaXQ6IHRoaXMuYXVkaXREb2N1bWVudEVtcGxveWVyVXNlck1vZGVsIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICBlbHNle1xuICAgICAgdGhpcy51dGlsLnNob3dFcnJvcihcIk5vIGFjdGl2ZSBhdWRpdC4gVGhpcyBpcyBub3QgcmVxdWlyZWQgYXQgdGhpcyBwb2ludC5cIilcbiAgICB9XG4gIH1cblxuICBvcGVuRW1wbG95ZXJEYXNoYm9hcmQoKVxuICB7XG4gICAgdGhpcy5vcGVuUGFnZSgnYXVkaXQnLCAnL2VtcGxveWVyLWRhc2hib2FyZCcsIHtcbiAgICAgIH0pO1xuICB9XG5cbiAgb3BlblN1cGVydmlzb3JNeVEoKXtcbiAgICBpZih0aGlzLmxzLmlzVGF4QXVkaXRTdXBlcnZpc29yKCkgfHwgdGhpcy5scy5pc1RheEF1ZGl0QXVkaXRvcigpIHx8IHRoaXMubHMuaXNUYXhBdWRpdERpcmVjdG9yKCkpe1xuICAgICAgdGhpcy5vcGVuUGFnZSgnYXVkaXQnLCcvbXlxJyk7XG4gICAgfVxuICB9XG5cbiAgb3BlblN1cGVydmlzb3JJbnF1aXJ5KCl7XG4gICAgIGlmKHRoaXMuY29udGV4dD09J2F1ZGl0Jyl7XG4gICAgICBpZih0aGlzLmxzLmlzVGF4QXVkaXRTdXBlcnZpc29yKCkgfHwgdGhpcy5scy5pc1RheEF1ZGl0RGlyZWN0b3IoKXx8dGhpcy5scy5oYXNSb2xlKCd0YXhhdWRpdGFnZW5jeXN0YWZmJykpe1xuICAgICAgICB0aGlzLm9wZW5QYWdlKCdhdWRpdCcsJy9pbnF1aXJ5Jyk7XG4gICAgICB9IGVsc2UgaWYodGhpcy5scy5pc1RheEF1ZGl0QXVkaXRvcigpKXtcbiAgICAgICAgdGhpcy5vcGVuUGFnZSgnYXVkaXQnLCcvYXVkaXRvci1pbnF1aXJ5Jyk7XG4gICAgICB9XG4gICAgfVxuICAgIC8vdGhpcy5vcGVuUGFnZSgnYXVkaXQnLCcvaW5xdWlyeScpO1xuICB9XG5cbiAgb3BlblRQU0lucXVpcnkoKXtcbiAgICBpZih0aGlzLmxzLmhhc1JvbGUoJ3Rwc3NwZWNpYWxpc3QnKSl7XG4gICAgICB0aGlzLm9wZW5QYWdlKCdhdWRpdCcsJy90cHMtdW5pdmVyc2UnKTtcbiAgICB9XG4gIH1cblxuICBvcGVuVFBBUXVlc3Rpb25uYWlyZSgpe1xuICAgIGlmKHRoaXMubHMuaXNUcGEoKSl7XG4gICAgICB0aGlzLm9wZW5QYWdlKCdhdWRpdCcsJy90cGEtcXVlc3Rpb25uYWlyZScpXG4gICAgfVxuICB9XG5cbiAgb3BlblN1cGVydmlzb3JSZWZlcnJhbHMoKXtcbiAgICBpZih0aGlzLmxzLmlzVGF4QXVkaXRTdXBlcnZpc29yKCkgfHwgdGhpcy5scy5pc1RheEF1ZGl0RGlyZWN0b3IoKSl7XG4gICAgICB0aGlzLm9wZW5QYWdlKCdhdWRpdCcsJy9yZWZlcnJhbHMnKTtcbiAgICB9IGVsc2UgaWYodGhpcy5scy5pc1RheEF1ZGl0QXVkaXRvcigpIHx8IHRoaXMubHMuaXNUcGEoKSB8fCB0aGlzLmxzLmhhc1JvbGUoJ3RheGF1ZGl0YWdlbmN5c3RhZmYnKSl7Ly9BZ2VuY3kgRW1wbG95ZWUgRGVmYXVsdCAtIGNoZWNrIHJvbGUgd2l0aCBjaWp1XG4gICAgICB0aGlzLm9wZW5QYWdlKCdhdWRpdCcsJy9uZXctcmVmZXJyYWwnKTtcbiAgICB9XG4gIH1cblxuICBvcGVuU3VwZXJ2aXNvckNvbmZpZygpe1xuICAgIHRoaXMub3BlblBhZ2UoJ2F1ZGl0JywnL2NvbmZpZycpO1xuICB9XG5cbiAgb3BlblN1cGVydmlzb3JBbmFseXRpY3MoKXtcbiAgICBpZih0aGlzLmxzLmlzVGF4QXVkaXRTdXBlcnZpc29yKCkgfHwgdGhpcy5scy5pc1RheEF1ZGl0RGlyZWN0b3IoKSl7XG4gICAgICB0aGlzLm9wZW5QYWdlKCdhdWRpdCcsJy9hbmFseXRpY3MnKTtcbiAgICB9XG4gICAgaWYodGhpcy5scy5pc1RheEF1ZGl0QXVkaXRvcigpICYmICEodGhpcy5scy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpIHx8IHRoaXMubHMuaXNUYXhBdWRpdERpcmVjdG9yKCkpKXsgXG4gICAgICB0aGlzLm9wZW5QYWdlKCdhdWRpdCcsJy9hdWRpdG9yLWFuYWx5dGljcycpO1xuICAgIH1cbiAgfVxuXG4gIG9wZW5TdXBlcnZpc29yQXNzaWduKCl7XG4gICAgdGhpcy5vcGVuUGFnZSgnYXVkaXQnLCcvYXNzaWduJyk7XG4gIH1cblxuICBvcGVuU3VwZXJ2aXNvclRlYW0oKXtcbiAgICB0aGlzLm9wZW5QYWdlKCdhdWRpdCcsJy90ZWFtJyk7XG4gIH1cblxuXG4gIGxvYWRFbXBsb3llckRldGFpbHMoKVxuICB7XG4gICAgdGhpcy5pc0VtcGxveWVyTG9hZGVkID0gZmFsc2U7XG4gICAgdGhpcy5pc1F1ZXN0aW9ubmFpcmVEYXRhTG9hZGVkID0gZmFsc2U7XG4gICAgbGV0IHVzZXJNb2RlbCA9IHRoaXMubHMuZ2V0VXNlcigpXG5cbiAgICB0aGlzLnFzLnNlYXJjaFF1ZXN0aW9ubmFpcmUobnVsbCwgbnVsbCwgbnVsbCx1c2VyTW9kZWwudXNlcm5hbWUpXG4gICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICBpZiAocmVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5zZWFyY2hRdWVzdGlvbm5haXJlRGF0YSA9IHJlcztcbiAgICAgIH1cbiAgICAgIHRoaXMuaXNRdWVzdGlvbm5haXJlRGF0YUxvYWRlZCA9IHRydWVcbiAgICB9LCAoZXJyKSA9PiB7XG5cbiAgICB9KTtcblxuICAgIHRoaXMucXMuZmluZEVtcGxveWVyRGF0YVdpdGhVc2VySUQodXNlck1vZGVsLnVzZXJuYW1lKVxuICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgaWYgKHJlcylcbiAgICAgIHtcbiAgICAgICAgdGhpcy5hdWRpdERvY3VtZW50RW1wbG95ZXJVc2VyTW9kZWwgPSByZXM7XG4gICAgICB9XG4gICAgICB0aGlzLmlzRW1wbG95ZXJMb2FkZWQgPSB0cnVlOyBcbiAgICB9LCAoZXJyKSA9PiB7XG4gICAgIFxuICAgIH0pXG5cbiAgfVxuICBvcGVuSG9tZSgpe1xuICAgIC8vdGhpcy5uYXYubmF2aWdhdGVSb290KFwiL3dlbGNvbWVcIik7XG4gXHRpZih0aGlzLmNvbnRleHQ9PSdhdWRpdCcpe1xuICAgICAgICBsZXQgdXNlck1vZGVsID0gdGhpcy5scy5nZXRVc2VyKClcbiAgICAgICAgdGhpcy51dGlsLnNob3dMb2FkZXIoKTtcbiAgICAgICAgd2luZG93Lm9wZW4oYCR7TGliQ29uc3RhbnRzLnRheFVybEV4dGVybmFsfS9mYWNlcy92aXJ0dWFsL2NvbnRleHRzd2l0Y2gueGh0bWw/YT0ke3VzZXJNb2RlbC5hY2Nlc3NfdG9rZW59JnI9JHt1c2VyTW9kZWwucmVmcmVzaF90b2tlbn0mdj0yMjk5YCwgJ19zZWxmJyk7XG4gICAgfVxuICAgIGlmKHRoaXMubHMuaXNDbGFpbWFudCgpKXtcbiAgICAgIHRoaXMudXRpbC5vcGVuUGFnZUJ5Q29udGV4dFJvb3QodGhpcy51dGlsLmdldENsYWltYW50QXBwQ29udGV4dFJvb3QoKSwgXCJ3ZWxjb21lXCIsIHRoaXMubmF2KTsgXG4gICAgfSBlbHNlIGlmKHRoaXMubHMuaXNDc3IoKSl7XG4gICAgICB0aGlzLnV0aWwub3BlblBhZ2VCeUNvbnRleHRSb290KHRoaXMudXRpbC5nZXRTZWN1cml0eUFwcENvbnRleHRSb290KCksXCJ3ZWxjb21lXCIsIHRoaXMubmF2KTsgXG4gICAgfSBlbHNlIGlmKHRoaXMubHMuaXNFbXBsb3llcigpKXtcbiAgICAgIHRoaXMub3BlblBhZ2UoJ2F1ZGl0JywnLycpOy8vQWRkIHRoZSBhY3R1YWwgdXJsIGZvciBlbXBsb3llciBxdWVzdGlvbm5haXJlXG4gICAgICAvL3RoaXMubG9hZEVtcGxveWVyRGV0YWlscygpO1xuICAgIH0gXG4gICAgZWxzZSB7XG4gICAgICB0aGlzLm5hdi5uYXZpZ2F0ZVJvb3QoXCIvd2VsY29tZVwiKTtcbiAgICB9XG4gICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcbiAgfVxuXG4gIHNlYXJjaChldmVudCkge1xuICAgIGxldCBkb1NlYXJjaCA9IGZhbHNlO1xuICAgIGxldCBjbGFpbWFudFNlYXJjaCA9IG5ldyBDbGFpbWFudE1vZGVsKCk7XG4gICAgbGV0IHF1ZXJ5ID0gZXZlbnQucXVlcnkgKyAnJztcbiAgICBpZihxdWVyeS5pbmNsdWRlcyhcIiBcIikpe1xuICAgICAgbGV0IGZOYW1lID0gcXVlcnkuc3BsaXQoXCIgXCIpWzBdO1xuICAgICAgbGV0IGxOYW1lID0gcXVlcnkuc3BsaXQoXCIgXCIpWzFdO1xuICAgICAgY2xhaW1hbnRTZWFyY2guZmlyc3ROYW1lID0gZk5hbWU7XG4gICAgICBjbGFpbWFudFNlYXJjaC5sYXN0TmFtZSA9IGxOYW1lO1xuICAgICAgZG9TZWFyY2ggPSB0cnVlO1xuICAgIH1cblxuICAgIGlmKHF1ZXJ5Lmxlbmd0aCA9PSA5ICYmIHRoaXMuaXNOdW1iZXIocXVlcnkpICYmICFkb1NlYXJjaCl7XG4gICAgICBjbGFpbWFudFNlYXJjaC5zc24gPSBxdWVyeTtcbiAgICAgIGRvU2VhcmNoID0gdHJ1ZTtcbiAgICB9ZWxzZSBpZighdGhpcy5pc051bWJlcihxdWVyeSkgJiYgIWRvU2VhcmNoKXtcbiAgICAgIGNsYWltYW50U2VhcmNoLnVzZXJJZCA9IHF1ZXJ5O1xuICAgICAgZG9TZWFyY2ggPSB0cnVlO1xuICAgIH1cbiAgICBcbiAgICBpZihkb1NlYXJjaCl7XG4gICAgICB0aGlzLmNzLnNlYXJjaChjbGFpbWFudFNlYXJjaCkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICAgIHRoaXMucmVzdWx0cyA9IGRhdGE7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzTnVtYmVyKG51bSl7XG4gICAgcmV0dXJuICFpc05hTihudW0pO1xuICB9XG5cbiAgb25TZWxlY3RBY3Rpb24oZXZlbnQgOiBBdXRvQ29tcGxldGVTZWxlY3RFdmVudCl7XG4gICAgdGhpcy5yZXN1bHRzID0gbnVsbDtcbiAgICB0aGlzLnNlYXJjaFRleHQgPSBudWxsO1xuICAgIHRoaXMuY3MuZ2V0Q2xhaW1hbnQoKS5uZXh0KGV2ZW50LnZhbHVlKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMudXRpbC5vcGVuUGFnZUJ5Q29udGV4dFJvb3QodGhpcy51dGlsLmdldFNlY3VyaXR5QXBwQ29udGV4dFJvb3QoKSxcInJlc2V0LXBhc3N3b3JkXCIsIHRoaXMubmF2KTtcbiAgICAgIC8vdGhpcy5uYXYubmF2aWdhdGVGb3J3YXJkKCcvcmVzZXQtcGFzc3dvcmQnKTtcbiAgICB9LCA1MDApXG4gICAgXG4gIH1cblxuICBvcGVuQmVuZWZpdHNBcHAoKXtcbiAgICBsZXQgdXNlck1vZGVsID0gdGhpcy5scy5nZXRVc2VyKClcbiAgICB0aGlzLnV0aWwuc2hvd0xvYWRlcigpO1xuICAgIHdpbmRvdy5vcGVuKGAke0xpYkNvbnN0YW50cy5iZW5lZml0c1VybEV4dGVybmFsfS9mYWNlcy92aXJ0dWFsL2NvbnRleHRzd2l0Y2gueGh0bWw/YT0ke3VzZXJNb2RlbC5hY2Nlc3NfdG9rZW59JnI9JHt1c2VyTW9kZWwucmVmcmVzaF90b2tlbn0mdj0yMjk5YCwgJ19zZWxmJyk7XG4gIH1cblxuICBvcGVuUGFnZShjb250ZXh0Um9vdCwgdXJpLCBleHRyYXM/OiBOYXZpZ2F0aW9uRXh0cmFzKXtcbiAgICBsZXQgY3VycmVudENvbnRleHRSb290ID0gdGhpcy51dGlsLmdldENvbnRleHRSb290KCk7XG4gICAgbGV0IHRhcmdldCA9IGAvJHtjb250ZXh0Um9vdH1gO1xuXG4gICAgaWYoY3VycmVudENvbnRleHRSb290ID09IHRhcmdldCl7XG4gICAgICB0aGlzLm5hdi5uYXZpZ2F0ZVJvb3QoYC8ke3VyaX1gLCBleHRyYXMpO1xuICAgIH1lbHNle1xuICAgICAgdGhpcy51dGlsLm9wZW5QYWdlQnlDb250ZXh0Um9vdCh0YXJnZXQsIHVyaSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0Q2xhc3MobmFtZSl7XG4gICAgbGV0IGN1cnJlbnRSb3V0ZSA9IHRoaXMuci51cmwucmVwbGFjZSgnLycsICcnKTtcbiAgICBjb25zb2xlLmxvZyhjdXJyZW50Um91dGUsIG5hbWUsIGN1cnJlbnRSb3V0ZSA9PSBuYW1lKTtcbiAgICByZXR1cm4gY3VycmVudFJvdXRlID09IG5hbWUgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJztcbiAgfVxuXG4gIG9wZW5Db250ZXh0SGVscCgpe1xuXG4gIH1cblxuICBhc3luYyBjaGFuZ2VMYW5ndWFnZShldmVudCkge1xuICAgIFxuICB9XG59XG4iLCI8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiZGV0ZXJtaW5hdGVcIiBbdmFsdWVdPVwidXRpbC5sb2FkZXIudmFsdWUkIHwgYXN5bmNcIiAqbmdJZj1cIih1dGlsLmxvYWRlci52YWx1ZSQgfCBhc3luYykgIT0gMFwiPlxyXG48L21hdC1wcm9ncmVzcy1iYXI+XHJcbjxpb24tdG9vbGJhcj5cclxuICAgIDxpb24tYnV0dG9ucyBzbG90PVwic3RhcnRcIiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAtNXB4O1wiPlxyXG4gICAgICAgIDxpb24tbWVudS1idXR0b24gYXV0b0hpZGU9XCJmYWxzZVwiIHBUb29sdGlwPVwiTWVudVwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwibHMuaXNMb2dnZWRJbigpICYmICFscy5pc0VtcGxveWVyKClcIiBbbmdDbGFzc109XCJsZWdhY3lNZW51ID09ICdmYWxzZScgJiYgbHMuaXNDbGFpbWFudCgpID8gJ2hpZGUteGwgaGlkZS1sZycgOiAnJ1wiPjwvaW9uLW1lbnUtYnV0dG9uPlxyXG4gICAgPC9pb24tYnV0dG9ucz5cclxuICAgIDxpb24tYnV0dG9ucyBzbG90PVwic3RhcnRcIiBbbmdDbGFzc109XCJkaXNwbGF5TG9nbyA/ICdoZWFkZXJfYnV0dG9uX3doaXRlJyA6ICdoZWFkZXJfYnV0dG9uIGhpZGUteHMgaGlkZS1tZCdcIiAoY2xpY2spPVwib25DbGlja0Rpc3BsYXlMb2dvKClcIj5cclxuICAgICAgICA8aW1nIGFsdD1cImxvZ29cIiBwVG9vbHRpcD1cInt7J1JlRW1wbG95Q1QgTG9nbycgfCB0cmFuc2xhdGV9fVwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiXHJcbiAgICAgICAgIHNyYz1cImFzc2V0cy9pY29uL1JlRW1wbG95e3t1dGlsLmdldFN0YXRlKCl9fS5zdmdcIiBbbmdDbGFzc109XCJkaXNwbGF5TG9nbyA/ICdoZWFkZXJfbG9nbycgOiAnaGVhZGVyX2xvZ28gaGlkZS14cyBoaWRlLW1kJ1wiLz5cclxuICAgIDwvaW9uLWJ1dHRvbnM+XHJcbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cInN0YXJ0XCIgKm5nSWY9XCJscy5pc0xvZ2dlZEluKClcIj5cclxuICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwib3BlbkhvbWUoKVwiIHBUb29sdGlwPVwiSG9tZVwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIFtuZ0NsYXNzXT1cInIudXJsLnJlcGxhY2UoJy8nLCAnJykuaW5jbHVkZXMoJ3dlbGNvbWUnKSA/ICdoZWFkZXItYnV0dG9uJyA6ICcnXCIgKm5nSWY9XCJ0aGlzLmNvbnRleHQhPSdhdWRpdCcgfHwgbHMuaXNFbXBsb3llcigpXCI+SG9tZTwvaW9uLWJ1dHRvbj5cclxuXHJcbiAgICAgICAgPGlvbi1idXR0b24gaWQ9XCJidG5GaWxlV2Vla2xpZXNcIiBwVG9vbHRpcD1cInt7J2hlYWRlci53ZWVrbHkudG9vbHRpcCcgfCB0cmFuc2xhdGV9fVwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIFtuZ0NsYXNzXT1cInIudXJsLnJlcGxhY2UoJy8nLCAnJykuaW5jbHVkZXMoJ3dlZWtsaWVzJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwibHMuaXNDbGFpbWFudCgpICYmIGxlZ2FjeU1lbnUgPT0gJ2ZhbHNlJ1wiIChjbGljayk9XCJvcGVuV2Vla2xpZXMoKVwiIGNsYXNzPVwiaGlkZS14cyBoaWRlLW1kXCI+e3tsZWdhY3lNZW51ID09ICd0cnVlJyA/ICdXZWVrbHknIDogJ1dlZWtseSd9fTwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8aW9uLWJ1dHRvbiBpZD1cImJ0bkZpbGVXZWVrbGllc1wiIHBUb29sdGlwPVwie3snaGVhZGVyLndlZWtseS50b29sdGlwJyB8IHRyYW5zbGF0ZX19XCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgW25nQ2xhc3NdPVwici51cmwucmVwbGFjZSgnLycsICcnKS5pbmNsdWRlcygnd2Vla2xpZXMnKSA/ICdoZWFkZXItYnV0dG9uJyA6ICcnXCIgKm5nSWY9XCJscy5pc0NsYWltYW50KCkgJiYgbGVnYWN5TWVudSA9PSAndHJ1ZScgJiYgIXV0aWwuaXNTdGF0ZSgnTUUnKVwiIChjbGljayk9XCJvcGVuV2Vla2xpZXMoKVwiPnt7bGVnYWN5TWVudSA9PSAndHJ1ZScgPyAnV2Vla2x5JyA6ICdXZWVrbHknfX08L2lvbi1idXR0b24+XHJcbiAgICAgICAgPGlvbi1idXR0b24gaWQ9XCJidG5GaWxlV2Vla2xpZXNcIiBwVG9vbHRpcD1cInt7J2hlYWRlci53ZWVrbHkudG9vbHRpcCcgfCB0cmFuc2xhdGV9fVwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIFtuZ0NsYXNzXT1cInIudXJsLnJlcGxhY2UoJy8nLCAnJykuaW5jbHVkZXMoJ3dlZWtsaWVzJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwibHMuaXNDbGFpbWFudCgpICYmIGxlZ2FjeU1lbnUgPT0gJ3RydWUnICYmIHV0aWwuaXNTdGF0ZSgnTUUnKVwiIChjbGljayk9XCJvcGVuV2Vla2xpZXMoKVwiPnt7bGVnYWN5TWVudSA9PSAndHJ1ZScgPyAnV2Vla2x5IENsYWltJyA6ICdXZWVrbHknfX08L2lvbi1idXR0b24+XHJcbiAgICAgICAgXHJcbiAgICAgICBcclxuICAgICAgICA8aW9uLWJ1dHRvbiBwVG9vbHRpcD1cIkhpc3RvcnlcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBbbmdDbGFzc109XCJyLnVybC5yZXBsYWNlKCcvJywgJycpID09ICdoaXN0b3J5JyA/ICdoZWFkZXItYnV0dG9uJyA6ICcnXCIgKm5nSWY9XCJscy5pc0NsYWltYW50KCkgJiYgbGVnYWN5TWVudSA9PSAnZmFsc2UnICYmIGludGVyaW1Ib21lUGFnZSA9PSAnZmFsc2UnXCIgKGNsaWNrKT1cIm9wZW5QYWdlKCdjcCcsICdoaXN0b3J5JylcIiBjbGFzcz1cImhpZGUteHMgaGlkZS1tZFwiPkhpc3Rvcnk8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgIDxpb24tYnV0dG9uIGlkPVwiYnRuQXVkaXRFbXBsb3llckRhc2hib2FyZFwiIHBUb29sdGlwPVwiRW1wbG95ZXJEYXNoYm9hcmRcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBbbmdDbGFzc109XCJyLnVybC5yZXBsYWNlKCcvJywgJycpLmluY2x1ZGVzKCdlbXBsb3llci1kYXNoYm9hcmQnKSA/ICdoZWFkZXItYnV0dG9uJyA6ICcnXCIgKm5nSWY9XCJscy5pc0VtcGxveWVyKClcIiAoY2xpY2spPVwib3BlbkVtcGxveWVyRGFzaGJvYXJkKClcIj5BdWRpdCBEYXNoYm9hcmQ8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPGlvbi1idXR0b24gaWQ9XCJidG5BdWRpdE15UVwiIHBUb29sdGlwPVwiTXlRXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgW25nQ2xhc3NdPVwici51cmwucmVwbGFjZSgnLycsICcnKS5pbmNsdWRlcygnbXlxJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwidGhpcy5jb250ZXh0PT0nYXVkaXQnICYmIChscy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpIHx8IGxzLmlzVGF4QXVkaXRBdWRpdG9yKCkgfHwgbHMuaXNUYXhBdWRpdERpcmVjdG9yKCkgfHwgbHMuaXNUYXhBdWRpdERpcmVjdG9yKCkpXCIgKGNsaWNrKT1cIm9wZW5TdXBlcnZpc29yTXlRKClcIj5NeVE8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPGlvbi1idXR0b24gaWQ9XCJidG5BdWRpdERhc2hib2FyZFwiIHBUb29sdGlwPVwiRGFzaGJvYXJkXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgW25nQ2xhc3NdPVwici51cmwucmVwbGFjZSgnLycsICcnKS5pbmNsdWRlcygnZGFzaGJvYXJkJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwidGhpcy5jb250ZXh0PT0nYXVkaXQnICYmIChscy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpfHwgbHMuaXNUYXhBdWRpdERpcmVjdG9yKCkpXCIgKGNsaWNrKT1cIm9wZW5BdWRpdERhc2hib2FyZCgpXCI+RGFzaGJvYXJkPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIGlkPVwiYnRuQXVkaXRXb3JrTGlzdFwiIHBUb29sdGlwPVwiV29ya0xpc3RcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBbbmdDbGFzc109XCJyLnVybC5yZXBsYWNlKCcvJywgJycpLmluY2x1ZGVzKCdhdWRpdG9yLXdvcmstbGlzdCcpID8gJ2hlYWRlci1idXR0b24nIDogJydcIiAqbmdJZj1cInRoaXMuY29udGV4dD09J2F1ZGl0JyAmJiAobHMuaXNUYXhBdWRpdEF1ZGl0b3IoKSB8fCBscy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpKVwiIChjbGljayk9XCJvcGVuQXVkaXRvcldvcmtMaXN0KClcIj5Xb3JrIExpc3Q8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPGlvbi1idXR0b24gaWQ9XCJidG5BdWRpdElucXVpcnlcIiBwVG9vbHRpcD1cIklucXVpcnlcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBbbmdDbGFzc109XCJyLnVybC5yZXBsYWNlKCcvJywgJycpLmluY2x1ZGVzKCdpbnF1aXJ5JykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwidGhpcy5jb250ZXh0PT0nYXVkaXQnICYmIChscy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpIHx8IGxzLmlzVGF4QXVkaXRBdWRpdG9yKCkgfHwgbHMuaXNUYXhBdWRpdERpcmVjdG9yKCkpIHx8ICBscy5oYXNSb2xlKCd0YXhhdWRpdGFnZW5jeXN0YWZmJylcIiAoY2xpY2spPVwib3BlblN1cGVydmlzb3JJbnF1aXJ5KClcIj5JbnF1aXJ5PC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIGlkPVwiYnRuQXVkaXRVcGxvYWREb2N1bWVudHNcIiBwVG9vbHRpcD1cIlVwbG9hZCBEb2N1bWVudHNcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBbbmdDbGFzc109XCJyLnVybC5yZXBsYWNlKCcvJywgJycpLmluY2x1ZGVzKCd1cGxvYWQtZG9jdW1lbnRzJykgfHwgci51cmwucmVwbGFjZSgnLycsICcnKS5pbmNsdWRlcygnZW1wbG95ZXItZG9jdW1lbnRzJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwidGhpcy5jb250ZXh0PT0nYXVkaXQnICYmIGxzLmlzRW1wbG95ZXIoKVwiIChjbGljayk9XCJvcGVuVXBsb2FkRG9jdW1lbnRzKClcIiBbZGlzYWJsZWRdPVwiIWlzRW1wbG95ZXJMb2FkZWRcIj5VcGxvYWQgRG9jdW1lbnRzPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIGlkPVwiYnRuQXVkaXRRdWVzdGlvbm5haXJlXCIgcFRvb2x0aXA9XCJRdWVzdGlvbm5haXJlXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgW25nQ2xhc3NdPVwici51cmwucmVwbGFjZSgnLycsICcnKS5pbmNsdWRlcygnYXVkaXRvci1xdWVzdGlvbm5haXJlJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwidGhpcy5jb250ZXh0PT0nYXVkaXQnICYmIChscy5pc1RheEF1ZGl0QXVkaXRvcigpIHx8IGxzLmlzVGF4QXVkaXRTdXBlcnZpc29yKCkpXCIgKGNsaWNrKT1cIm9wZW5RdWVzdGlvbm5haXJlKClcIj5RdWVzdGlvbm5haXJlPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIGlkPVwiYnRuQXVkaXRRdWVzdGlvbm5haXJlXCIgcFRvb2x0aXA9XCJRdWVzdGlvbm5haXJlXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgW25nQ2xhc3NdPVwici51cmwucmVwbGFjZSgnLycsICcnKS5pbmNsdWRlcygnYXVkaXRvci1xdWVzdGlvbm5haXJlJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwidGhpcy5jb250ZXh0PT0nYXVkaXQnICYmIChscy5pc0VtcGxveWVyKCkpXCIgKGNsaWNrKT1cIm9wZW5RdWVzdGlvbm5haXJlKClcIiBbZGlzYWJsZWRdPVwiIWlzUXVlc3Rpb25uYWlyZURhdGFMb2FkZWRcIj5RdWVzdGlvbm5haXJlPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIGlkPVwiYnRuQXVkaXRSZWZlcnJhbHNcIiBwVG9vbHRpcD1cIlJlZmVycmFsc1wiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIFtuZ0NsYXNzXT1cInIudXJsLnJlcGxhY2UoJy8nLCAnJykuaW5jbHVkZXMoJ3JlZmVycmFsJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwidGhpcy5jb250ZXh0PT0nYXVkaXQnICYmIChscy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpIHx8IGxzLmlzVGF4QXVkaXRBdWRpdG9yKCkgfHwgbHMuaXNUYXhBdWRpdERpcmVjdG9yKCkpIHx8ICBscy5oYXNSb2xlKCd0YXhhdWRpdGFnZW5jeXN0YWZmJylcIiAoY2xpY2spPVwib3BlblN1cGVydmlzb3JSZWZlcnJhbHMoKVwiPlJlZmVycmFsczwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8aW9uLWJ1dHRvbiBpZD1cImJ0bkF1ZGl0QXNzaWduXCIgcFRvb2x0aXA9XCJBc3NpZ25cIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBbbmdDbGFzc109XCJyLnVybC5yZXBsYWNlKCcvJywgJycpLmluY2x1ZGVzKCdhc3NpZ24nKSA/ICdoZWFkZXItYnV0dG9uJyA6ICcnXCIgKm5nSWY9XCJ0aGlzLmNvbnRleHQ9PSdhdWRpdCcgJiYgbHMuaXNUYXhBdWRpdFN1cGVydmlzb3IoKVwiIChjbGljayk9XCJvcGVuU3VwZXJ2aXNvckFzc2lnbigpXCI+QXNzaWduPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIGlkPVwiYnRuQXVkaXRUZWFtXCIgcFRvb2x0aXA9XCJUZWFtXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgW25nQ2xhc3NdPVwici51cmwucmVwbGFjZSgnLycsICcnKS5pbmNsdWRlcygndGVhbScpID8gJ2hlYWRlci1idXR0b24nIDogJydcIiAqbmdJZj1cInRoaXMuY29udGV4dD09J2F1ZGl0JyAmJiBscy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpXCIgKGNsaWNrKT1cIm9wZW5TdXBlcnZpc29yVGVhbSgpXCI+VGVhbTwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8aW9uLWJ1dHRvbiBpZD1cImJ0bkF1ZGl0Q29uZmlnXCIgcFRvb2x0aXA9XCJDb25maWdcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBbbmdDbGFzc109XCJyLnVybC5yZXBsYWNlKCcvJywgJycpLmluY2x1ZGVzKCdjb25maWcnKSA/ICdoZWFkZXItYnV0dG9uJyA6ICcnXCIgKm5nSWY9XCJ0aGlzLmNvbnRleHQ9PSdhdWRpdCcgJiYgKGxzLmlzVGF4QXVkaXRTdXBlcnZpc29yKCkgfHwgbHMuaXNUYXhBdWRpdERpcmVjdG9yKCkpXCIgKGNsaWNrKT1cIm9wZW5TdXBlcnZpc29yQ29uZmlnKClcIj5Db25maWc8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPGlvbi1idXR0b24gaWQ9XCJidG5BdWRpdEFuYWx5dGljc1wiIHBUb29sdGlwPVwiQW5hbHl0aWNzXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgW25nQ2xhc3NdPVwici51cmwucmVwbGFjZSgnLycsICcnKS5pbmNsdWRlcygnYW5hbHl0aWNzJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwidGhpcy5jb250ZXh0PT0nYXVkaXQnICYmIChscy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpIHx8IGxzLmlzVGF4QXVkaXRBdWRpdG9yKCkgfHwgbHMuaXNUYXhBdWRpdERpcmVjdG9yKCkpXCIgKGNsaWNrKT1cIm9wZW5TdXBlcnZpc29yQW5hbHl0aWNzKClcIj5BbmFseXRpY3M8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPGlvbi1idXR0b24gaWQ9XCJidG5BdWRpdFRQU0lucXVpcnlcIiBwVG9vbHRpcD1cIklucXVpcnlcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBbbmdDbGFzc109XCJyLnVybC5yZXBsYWNlKCcvJywgJycpLmluY2x1ZGVzKCd0cHMtdW5pdmVyc2UnKSB8fCByLnVybC5yZXBsYWNlKCcvJywgJycpLmluY2x1ZGVzKCd0cHMtaW5xdWlyeScpID8gJ2hlYWRlci1idXR0b24nIDogJydcIiAqbmdJZj1cInRoaXMuY29udGV4dD09J2F1ZGl0JyAmJiB0aGlzLmxzLmhhc1JvbGUoJ3Rwc3NwZWNpYWxpc3QnKSAmJiAoICFscy5pc1RheEF1ZGl0QXVkaXRvcigpICYmICFscy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpKVwiIChjbGljayk9XCJvcGVuVFBTSW5xdWlyeSgpXCI+SW5xdWlyeTwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8aW9uLWJ1dHRvbiBpZD1cImJ0bkF1ZGl0VFBBUXVlc3Rpb25uYWlyZVwiIHBUb29sdGlwPVwiUXVlc3Rpb25uYWlyZVwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIFtuZ0NsYXNzXT1cInIudXJsLnJlcGxhY2UoJy8nLCAnJykuaW5jbHVkZXMoJ3RwYS1xdWVzdGlvbm5haXJlJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwidGhpcy5jb250ZXh0PT0nYXVkaXQnICYmIHRoaXMubHMuaXNUcGEoKSAmJiAhbHMuaXNUYXhBdWRpdEF1ZGl0b3IoKSAmJiAhbHMuaXNUYXhBdWRpdFN1cGVydmlzb3IoKVwiIChjbGljayk9XCJvcGVuVFBBUXVlc3Rpb25uYWlyZSgpXCI+UXVlc3Rpb25uYWlyZTwvaW9uLWJ1dHRvbj5cclxuXHJcbiAgICA8L2lvbi1idXR0b25zPlxyXG5cclxuICAgIFxyXG4gICAgPGRpdiBjbGFzcz1cInRvb2xiYXItY29udGVudCBoaWRlLXhzXCIgKm5nSWY9XCJscy5pc0xvZ2dlZEluKCkgJiYgbHMuaXNDc3IoKSAmJiB0aGlzLmNvbnRleHQgIT0nYXVkaXQnICYmIGNvbnRleHRSb290ID09PSdzcydcIj5cclxuICAgICAgICA8cC1hdXRvQ29tcGxldGUgYXBwZW5kVG89XCJib2R5XCIgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXh0XCIgW3N1Z2dlc3Rpb25zXT1cInJlc3VsdHNcIlxyXG4gICAgICAgICAgICAoY29tcGxldGVNZXRob2QpPVwic2VhcmNoKCRldmVudClcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaCBDbGFpbWFudHNcIiAob25TZWxlY3QpPVwib25TZWxlY3RBY3Rpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIGVtcHR5TWVzc2FnZT1cIk5vIFJlc3VsdHMgRm91bmQuXCIgc2l6ZT1cIjI1XCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtdXNlciBwVGVtcGxhdGU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICA8aW9uLXJvdyBjbGFzcz1cIi5pb24td3JhcFwiID5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplLWF1dG8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpb24tdGV4dD57e3VzZXIuZmlyc3ROYW1lIHwgcHJvcGVyQ2FzZX19IHt7dXNlci5sYXN0TmFtZSB8IHByb3BlckNhc2V9fTwvaW9uLXRleHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tY29sIHNpemUtYXV0bz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi10ZXh0Pnt7dXNlci51c2VySWR9fTwvaW9uLXRleHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tY29sIHNpemUtYXV0bz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi10ZXh0Pnt7dXRpbC5tYXNrU3NuKHVzZXIuc3NuKX19PC9pb24tdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9wLWF1dG9Db21wbGV0ZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIiAqbmdJZj1cImxzLmlzTG9nZ2VkSW4oKVwiID5cclxuICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwicHJlc2VudE15UHJvZmlsZVBvcG92ZXIoJGV2ZW50KVwiIHBUb29sdGlwPVwiQWNjb3VudFwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIFtuZ0NsYXNzXT1cImxlZ2FjeU1lbnUgPT0gJ2ZhbHNlJyAmJiBscy5pc0NsYWltYW50KCkgJiYgc2hvd1Byb2ZpbGVQb3B1cCA/ICdoaWRlLXhzIGhpZGUtbWQgaGVhZGVyLWJ1dHRvbicgOiAobGVnYWN5TWVudSA9PSAnZmFsc2UnICYmIGxzLmlzQ2xhaW1hbnQoKSA/ICdoaWRlLXhzIGhpZGUtbWQnIDogJycpXCI+XHJcbiAgICAgICAgICAgIDxpb24tdGl0bGUgc3R5bGU9XCJmb250LXNpemU6IDIwcHg7IHBhZGRpbmc6IDBweDtcIiBjbGFzcz1cImhpZGUteHNcIj57e2xzLmdldEZ1bGxOYW1lKCkgfCBwcm9wZXJDYXNlfX08L2lvbi10aXRsZT5cclxuICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJlbmRcIiBuYW1lPVwicGVyc29uLWNpcmNsZS1vdXRsaW5lXCI+PC9pb24taWNvbj5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cIm9wZW5QYWdlKCdjcCcsICdkb2N1bWVudHMnKVwiIHBUb29sdGlwPVwiTm90aWNlc1wiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiICpuZ0lmPVwiIWxzLmlzQ3NyKCkgJiYgbGVnYWN5TWVudSA9PSAnZmFsc2UnICYmICF1dGlsLmlzU3RhdGUoJ01FJylcIiBbbmdDbGFzc109XCJyLnVybC5yZXBsYWNlKCcvJywgJycpID09ICdkb2N1bWVudHMnID8gJ2hlYWRlci1idXR0b24gaGlkZS14cyBoaWRlLW1kJyA6ICdoaWRlLXhzIGhpZGUtbWQnXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPSdwaSBwaS1maWxlIGZvbnQtYm9sZCcgc3R5bGU9XCJmb250LXNpemU6IDEuM3JlbTsgIGZvbnQtd2VpZ2h0OiA1MDAgIWltcG9ydGFudDtcIj48L2k+XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJvcGVuUGFnZSgnY3AnLCAnZG9jdW1lbnRzJylcIiBwVG9vbHRpcD1cIk5vdGljZXNcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiAqbmdJZj1cIiFscy5pc0NzcigpICYmIGxlZ2FjeU1lbnUgPT0gJ3RydWUnXCI+XHJcbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiZG9jdW1lbnQtdGV4dC1vdXRsaW5lXCI+PC9pb24taWNvbj5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcblxyXG4gICAgICAgIFxyXG4gICAgICAgIDwhLS0gPGlvbi1idXR0b24gKGNsaWNrKT1cInByZXNlbnRKb2JTZWFyY2hSZXN1bHRQb3B1cCgpXCIgcFRvb2x0aXA9XCJTaG93IGpvYiBzZWFyY2ggcmVzdWx0XCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgW25nQ2xhc3NdPVwibGVnYWN5TWVudSA9PSAnZmFsc2UnICYmIGxzLmlzQ2xhaW1hbnQoKSA/ICdoaWRlLXhzIGhpZGUtbWQnIDogJydcIiAqbmdJZj1cImxzLmlzQ2xhaW1hbnQoKSAmJiBsZWdhY3lNZW51ID09ICdmYWxzZScgJiYgdXRpbC5pc1N0YXRlKCdNUycpXCI+XHJcbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiYnJpZWZjYXNlXCIgZmlsbD1cIm91dGxpbmVcIj48L2lvbi1pY29uPlxyXG4gICAgICAgIDwvaW9uLWJ1dHRvbj4gLS0+XHJcbiAgICAgICAgXHJcbiAgICAgICAgXHJcbiAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cInByZXNlbnRNeU5vdGlmaWNhdGlvblBvcG92ZXIoJGV2ZW50KVwiIHBUb29sdGlwPVwiTm90aWZpY2F0aW9uXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCJcclxuICAgICAgICAgICAgKm5nSWY9XCIhbnMuc2hvd05vdGlmaWNhdGlvbkxvYWRlciAmJiAhdXRpbC5pc1N0YXRlKCdNRScpXCIgW25nQ2xhc3NdPVwibGVnYWN5TWVudSA9PSAnZmFsc2UnICYmIGxzLmlzQ2xhaW1hbnQoKSA/ICdoaWRlLXhzIGhpZGUtbWQnIDogJydcIj5cclxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJub3RpZmljYXRpb25zLW91dGxpbmVcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICA8aW9uLWJhZGdlIGNvbG9yPVwiZGFya1wiICpuZ0lmPVwibnMubm90aWZpY2F0aW9uQ291bnQuZ2V0VmFsdWUoKSA+IDBcIj5cclxuICAgICAgICAgICAgICAgIDxpb24tbGFiZWw+e3tucy5ub3RpZmljYXRpb25Db3VudC5nZXRWYWx1ZSgpfX08L2lvbi1sYWJlbD5cclxuICAgICAgICAgICAgPC9pb24tYmFkZ2U+XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiY3Jlc2NlbnRcIiAqbmdJZj1cIm5zLnNob3dOb3RpZmljYXRpb25Mb2FkZXJcIj48L2lvbi1zcGlubmVyPlxyXG5cclxuICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwidGhpcy5ocy5zaG93KClcIiBwVG9vbHRpcD1cIkhlbHBcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiAqbmdJZj1cImxzLmlzQ2xhaW1hbnQoKSAmJiBsZWdhY3lNZW51ID09ICdmYWxzZScgJiYgKGhzLnNob3VsZERpc3BsYXlIZWxwQnV0dG9uKCkgfCBhc3luYylcIj5cclxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJoZWxwLWNpcmNsZS1vdXRsaW5lXCI+PC9pb24taWNvbj5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICA8L2lvbi1idXR0b25zPlxyXG5cclxuICAgIDxpb24tYnV0dG9ucyBzbG90PVwic2Vjb25kYXJ5XCIgKm5nSWY9XCIhbHMuaXNMb2dnZWRJbigpICYmIGxzLmdldFVzZXIoKVwiPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJsb2dvdXQoKVwiIHBUb29sdGlwPVwiTG9nb3V0XCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCI+XHJcbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwibG9nLW91dC1zaGFycFwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgPC9pb24tYnV0dG9ucz5cclxuXHJcbiAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cImVuZFwiICpuZ0lmPVwic2hvd0xhbmd1YWdlT3B0aW9uID09PSAndHJ1ZScgJiYgKCFscy5nZXRVc2VyKCkgJiYgbGVnYWN5TWVudSA9PSAnZmFsc2UnKVwiPlxyXG4gICAgICAgIDxwLW1lbnUgI21lbnUgW3BvcHVwXT1cInRydWVcIiBbbW9kZWxdPVwiaXRlbXNcIiBhcHBlbmRUbz1cImJvZHlcIj48L3AtbWVudT5cclxuICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwibWVudS50b2dnbGUoJGV2ZW50KVwiIHBUb29sdGlwPVwiTGFuZ3VhZ2VcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIj5cclxuICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwibGFuZ3VhZ2VcIiBzbG90PVwiZW5kXCI+PC9pb24taWNvbj5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgIDwvaW9uLWJ1dHRvbnM+XHJcblxyXG48L2lvbi10b29sYmFyPlxyXG48aW9uLXRvb2xiYXIgY29sb3I9XCJsaWdodFwiIGlkPVwic2Vjb25kVG9vbGJhclwiICpuZ0lmPVwic2Vjb25kVG9vbGJhclwiPlxyXG4gICAgPGlvbi1idXR0b25zIHNsb3Q9XCJzdGFydFwiPlxyXG4gICAgICAgIDxpb24tYmFjay1idXR0b24gcFRvb2x0aXA9XCJCYWNrXCIgYWx0PVwiQmFja1wiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIFtkZWZhdWx0SHJlZl09XCJiYWNrUGFnZSA/IGJhY2tQYWdlIDogJy93ZWxjb21lJ1wiPjwvaW9uLWJhY2stYnV0dG9uPlxyXG4gICAgICAgIDxpb24tdGl0bGUgY29sb3I9XCJwcmltYXJ5XCIgKm5nSWY9XCJ0aXRsZVwiIHN0eWxlPVwiZm9udC1zaXplOiAxOHB4XCI+e3t0aXRsZX19PC9pb24tdGl0bGU+XHJcbiAgICA8L2lvbi1idXR0b25zPlxyXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIj5cclxuICAgICAgICA8aW9uLXRpdGxlIGNvbG9yPVwicHJpbWFyeVwiIHN0eWxlPVwiZm9udC1zaXplOiB4eC1zbWFsbDsgZmxvYXQ6IHJpZ2h0OyBwYWRkaW5nLXJpZ2h0OiA4cHg7XCIgKm5nSWY9XCJwYWdlSWRcIj5cclxuICAgICAgICAgICAge3twYWdlSWR9fTwvaW9uLXRpdGxlPlxyXG4gICAgPC9pb24tYnV0dG9ucz5cclxuPC9pb24tdG9vbGJhcj5cclxuPHAtdG9hc3Q+XHJcbiAgICA8bmctdGVtcGxhdGUgbGV0LW1lc3NhZ2UgcFRlbXBsYXRlPVwibWVzc2FnZVwiPlxyXG4gICAgICAgIDxpICpuZ0lmPVwibWVzc2FnZS5zZXZlcml0eSA9PT0gJ2Vycm9yJ1wiIGNsYXNzPVwicGkgcGktdGltZXMtY2lyY2xlXCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDE0cHg7IGZvbnQtc2l6ZTogMzhweCBcIj48L2k+XHJcbiAgICAgICAgPGkgKm5nSWY9XCJtZXNzYWdlLnNldmVyaXR5ID09PSAnc3VjY2VzcydcIiBjbGFzcz1cInBpIHBpLWNoZWNrLWNpcmNsZVwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxNHB4OyBmb250LXNpemU6IDM4cHggXCI+PC9pPlxyXG4gICAgICAgIDxpICpuZ0lmPVwibWVzc2FnZS5zZXZlcml0eSA9PT0gJ3dhcm4nXCIgY2xhc3M9XCJwaSBwaS1leGNsYW1hdGlvbi1jaXJjbGVcInN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxNHB4OyBmb250LXNpemU6IDM4cHggXCI+PC9pPlxyXG4gICAgICAgIDxpICpuZ0lmPVwibWVzc2FnZS5zZXZlcml0eSA9PT0gJ2luZm8nXCIgY2xhc3M9XCJwaSBwaS1pbmZvLWNpcmNsZVwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxNHB4OyBmb250LXNpemU6IDM4cHggXCI+PC9pPlxyXG5cclxuICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwiJzxzdHJvbmcgc3R5bGU9XFwnZm9udC1zaXplOiAyMnB4O2ZvbnQtd2VpZ2h0OiBib2xkO1xcJz4nICsgbWVzc2FnZS5zdW1tYXJ5ICsgJzwvc3Ryb25nPjxicj48YnI+JyArIFxyXG4gICAgICAgICAgICAnPHNwYW4gc3R5bGU9XFwnZm9udC1zaXplOiAxOHB4O1xcJz4nICsgbWVzc2FnZS5kZXRhaWwgKyAnPC9zcGFuPidcIj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L3AtdG9hc3Q+XHJcblxyXG48bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1Byb2ZpbGVQb3B1cFwiPlxyXG4gICAgPGFwcC1wcm9maWxlICpuZ0lmPVwic2hvd1Byb2ZpbGVQb3B1cFwiIChvbkNhbmNlbCk9XCJzaG93UHJvZmlsZVBvcHVwID0gIXNob3dQcm9maWxlUG9wdXBcIj48L2FwcC1wcm9maWxlPlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxhcHAtam9iLXNlYXJjaC1yZXN1bHQtcGFnZSAqbmdJZj1cInNob3dqb2JTZWFyY2hSZXN1bHRQb3B1cFwiIChvbkNhbmNlbCk9XCJzaG93am9iU2VhcmNoUmVzdWx0UG9wdXAgPSAhc2hvd2pvYlNlYXJjaFJlc3VsdFBvcHVwXCI+PC9hcHAtam9iLXNlYXJjaC1yZXN1bHQtcGFnZT5cclxuXHJcblxyXG5cclxuIl19
925
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBR3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDbEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBUWhGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNkaEQsdUNBQ21COzs7O0lBRGtCLHVFQUFvQzs7O0lBSWpFLHNDQUNnSjs7O0lBQWhHLHlHQUE2RTs7OztJQVE3SCxzQ0FBeU07SUFBN0wsd0xBQVMsZUFBQSxrQkFBVSxDQUFBLElBQUM7SUFBeUssb0JBQUk7SUFBQSxpQkFBYTs7O0lBQWhKLG1HQUE2RTs7OztJQUV2SixzQ0FBOFI7SUFBakQsd0xBQVMsZUFBQSxzQkFBYyxDQUFBLElBQUM7O0lBQXlCLFlBQThDO0lBQUEsaUJBQWE7OztJQUF4VCxtRkFBa0Q7SUFBMEIsb0dBQThFO0lBQW1HLGVBQThDO0lBQTlDLHdFQUE4Qzs7OztJQUM1VSxzQ0FBNFI7SUFBekIsd0xBQVMsZUFBQSxzQkFBYyxDQUFBLElBQUM7O0lBQUMsWUFB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QUFoQyxLQUFLO21CQUFDLGFBQWE7WUFFRSxXQUFXO2tCQUFoQyxLQUFLO21CQUFDLGFBQWE7WUFFRCxRQUFRO2tCQUExQixLQUFLO21CQUFDLFVBQVU7WUFFQyxPQUFPO2tCQUF4QixLQUFLO21CQUFDLFNBQVM7O2tGQXRCTCxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRXh0cmFzLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTW9kYWxDb250cm9sbGVyLCBOYXZDb250cm9sbGVyLCBQb3BvdmVyQ29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IExpYkNvbnN0YW50cyB9IGZyb20gJy4uLy4uL21vZGVscy9MaWJDb25zdGFudHMnO1xuaW1wb3J0IHsgQ2xhaW1hbnRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9jbGFpbWFudC9DbGFpbWFudE1vZGVsJztcbmltcG9ydCB7IE15Tm90aWZpY2F0aW9uc1BhZ2UgfSBmcm9tICcuLi8uLi9wYWdlcy9wb3BvdmVycy9teS1ub3RpZmljYXRpb25zL215LW5vdGlmaWNhdGlvbnMucGFnZSc7XG5pbXBvcnQgeyBNeVByb2ZpbGVQYWdlIH0gZnJvbSAnLi4vLi4vcGFnZXMvcG9wb3ZlcnMvbXktcHJvZmlsZS9teS1wcm9maWxlLnBhZ2UnO1xuaW1wb3J0IHsgQ2xhaW1hbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2xhaW1hbnQvY2xhaW1hbnQuc2VydmljZSc7XG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2dpbi9sb2dpbi5zZXJ2aWNlJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XG5pbXBvcnQgeyBIZWxwU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2hlbHAvaGVscC5zZXJ2aWNlJztcbmltcG9ydCB7IE1lbnVJdGVtIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQmFzZVBhZ2UgfSBmcm9tICcuLi8uLi9wYWdlcy9CYXNlUGFnZSc7XG5pbXBvcnQgeyBBdXRvQ29tcGxldGVTZWxlY3RFdmVudCB9IGZyb20gJ3ByaW1lbmcvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IFNlYXJjaFF1ZXN0aW9ubmFpcmVEYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvUXVlc3Rpb25uYWlyZUZvcm0nO1xuaW1wb3J0IHsgQXVkaXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXVkaXQvYXVkaXQuc2VydmljZSc7XG5pbXBvcnQgeyBBdWRpdERvY3VtZW50RW1wbG95ZXJVc2VyTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvQXVkaXREb2N1bWVudEVtcGxveWVyVXNlck1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWhlYWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9oZWFkZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBIZWFkZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlUGFnZSBpbXBsZW1lbnRzIE9uSW5pdCAge1xuXG4gIGl0ZW1zOiBNZW51SXRlbVtdO1xuXG4gIHNlYXJjaFRleHQ7XG5cbiAgcmVzdWx0czogQ2xhaW1hbnRNb2RlbFtdO1xuXG4gIGNvbnRleHRSb290OnN0cmluZztcblxuICBASW5wdXQoJ3RpdGxlJykgdGl0bGU6IHN0cmluZztcblxuICBASW5wdXQoJ3BhZ2VJZCcpIHBhZ2VJZDogc3RyaW5nO1xuXG4gIEBJbnB1dCgnc2Vjb25kVG9vbGJhcicpIHNlY29uZFRvb2xiYXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoJ2Rpc3BsYXlMb2dvJykgZGlzcGxheUxvZ286IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoJ3Nob3dIaXN0b3J5Jykgc2hvd0hpc3Rvcnk6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoJ2JhY2tQYWdlJykgYmFja1BhZ2U6IHN0cmluZztcblxuICBASW5wdXQoJ2NvbnRleHQnKSBjb250ZXh0OiBzdHJpbmc7XG5cbiAgcHVibGljIHNob3dOb3RpZmljYXRpb25Mb2FkZXIgPSBmYWxzZTtcblxuICBwdWJsaWMgbGVnYWN5TWVudSA9IExpYkNvbnN0YW50cy5sZWdhY3lNZW51O1xuXG4gIHB1YmxpYyBpbnRlcmltSG9tZVBhZ2UgPSBMaWJDb25zdGFudHMuaW50ZXJpbUhvbWVQYWdlO1xuXG4gIHB1YmxpYyBzaG93UHJvZmlsZVBvcHVwIDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyBzaG93am9iU2VhcmNoUmVzdWx0UG9wdXAgOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIHNob3dMYW5ndWFnZU9wdGlvbiA9IExpYkNvbnN0YW50cy5lbmFibGVMYW5ndWFnZUNoYW5nZTtcblxuICBpc0VtcGxveWVyTG9hZGVkID0gZmFsc2U7XG4gIGlzUXVlc3Rpb25uYWlyZURhdGFMb2FkZWQgPSBmYWxzZTtcblxuXG4gIHNlYXJjaFF1ZXN0aW9ubmFpcmVEYXRhOlNlYXJjaFF1ZXN0aW9ubmFpcmVEYXRhW107XG4gIHNlbGVjdGVkUXVlc3Rpb25uYWlyZURhdGE6IFNlYXJjaFF1ZXN0aW9ubmFpcmVEYXRhW107XG4gIGF1ZGl0RG9jdW1lbnRFbXBsb3llclVzZXJNb2RlbDogQXVkaXREb2N1bWVudEVtcGxveWVyVXNlck1vZGVsO1xuXG5cblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbHMgOiBMb2dpblNlcnZpY2UsIHB1YmxpYyB1dGlsIDogVXRpbFNlcnZpY2UsIHB1YmxpYyByIDogUm91dGVyLCBwdWJsaWMgcG9wdXA6IFBvcG92ZXJDb250cm9sbGVyLCBcbiAgICAgICAgICAgICAgcHVibGljIGNzIDogQ2xhaW1hbnRTZXJ2aWNlLCBwcml2YXRlIG5hdiA6IE5hdkNvbnRyb2xsZXIsIHB1YmxpYyBtb2RhbENvbnRyb2xsZXI6IE1vZGFsQ29udHJvbGxlcixcbiAgICAgICAgICAgICAgcHVibGljIG5zIDogTm90aWZpY2F0aW9uU2VydmljZSwgcHVibGljIGhzOiBIZWxwU2VydmljZSwgcHVibGljIHRyYW5zbGF0ZVNlcnZpY2UgOiBUcmFuc2xhdGVTZXJ2aWNlLCBwcml2YXRlIHFzOiBBdWRpdFNlcnZpY2UpIHtcbiAgICAgICAgICAgICAgICBzdXBlcigpO1xuICAgICAgICAgICAgICAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIC8vdGhpcy5sb2FkTm90aWZpY2F0aW9uQ291bnQoKTtcbiAgICB0aGlzLnNldE1lbnVJdGVtcyhsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImxhbmd1YWdlXCIpKTtcbiAgICBpZih0aGlzLmxzLmlzRW1wbG95ZXIoKSlcbiAgICB7XG4gICAgICAgICAgdGhpcy5sb2FkRW1wbG95ZXJEZXRhaWxzKClcbiAgICB9XG4gICAgdGhpcy5jb250ZXh0Um9vdCA9IHRoaXMuZ2V0Q29udGV4dFJvb3QoKTtcbiAgfVxuICBcbiAgLypKb2IgU2VhcmNoIFJlc3VsdCBJY29uIFBvcHVwXG4gICBwcmVzZW50Sm9iU2VhcmNoUmVzdWx0UG9wdXAoKSB7XG4gICAgaWYodGhpcy5scy5pc0NsYWltYW50KCkpe1xuICAgICAgdGhpcy5zaG93am9iU2VhcmNoUmVzdWx0UG9wdXAgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuICAqL1xuICBnZXRDb250ZXh0Um9vdCgpe1xuICAgIGxldCBwYXJ0cyA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5zcGxpdCgnLycpO1xuICAgIGxldCBjb250ZXh0Um9vdCA9IHBhcnRzLmxlbmd0aCA+IDEgPyBwYXJ0c1sxXSA6ICcnO1xuICAgIHJldHVybiBjb250ZXh0Um9vdDtcbiAgfVxuICBzZXRNZW51SXRlbXMobGFuZ3VhZ2UgOiBzdHJpbmcpe1xuICAgIHRoaXMuaXRlbXMgPSBbe1xuICAgICAgbGFiZWwgOiAnQ2hvb3NlIGxhbmd1YWdlJyxcbiAgICAgIGl0ZW1zOiBbe1xuICAgICAgICBsYWJlbDogJ0VuZ2xpc2gnLFxuICAgICAgICBpY29uIDogdGhpcy5nZXRJY29uKGxhbmd1YWdlLCdlbicpLFxuICAgICAgICBjb21tYW5kOiAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldExhbmd1YWdlKCdlbicsICdFbmdsaXNoJyk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGxhYmVsOiAnRXNwYe+/vW9sJyxcbiAgICAgICAgaWNvbiA6IHRoaXMuZ2V0SWNvbihsYW5ndWFnZSwnZXMnKSxcbiAgICAgICAgY29tbWFuZDogKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRMYW5ndWFnZSgnZXMnLCAnZXNwYe+/vW9sJyk7XG4gICAgICAgIH1cbiAgICAgIH1dXG4gICAgfV07XG4gIH1cblxuICBnZXRJY29uKHNlbGVjdGVkTGFuZyA6IHN0cmluZywgbGFuZ3VhZ2UgOiBzdHJpbmcpe1xuICAgIGlmKGxhbmd1YWdlID09IHNlbGVjdGVkTGFuZyl7XG4gICAgICByZXR1cm4gXCJwaSBwaS1mdyBwaS1jaGVja1wiO1xuICAgIH1lbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHNldExhbmd1YWdlKGxhbmd1YWdlIDogc3RyaW5nLCBuYW1lIDogc3RyaW5nKXtcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudXNlKGxhbmd1YWdlKTtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnbGFuZ3VhZ2UnLCBsYW5ndWFnZSk7XG4gICAgdGhpcy51dGlsLnRvYXN0KCdMYW5ndWFnZSBwcmVmZXJlbmNlIGNoYW5nZWQgdG8gJyArIG5hbWUpO1xuICAgIHRoaXMuc2V0TWVudUl0ZW1zKGxhbmd1YWdlKTtcbiAgfVxuXG4gIGFzeW5jIHByZXNlbnRNeVByb2ZpbGVQb3BvdmVyKGV2ZW50KSB7XG5cbiAgICBpZih0aGlzLmxzLmlzQ2xhaW1hbnQoKSAmJiAgKHRoaXMubGVnYWN5TWVudSA9PSAnZmFsc2UnIHx8IHRoaXMudXRpbC5pc1N0YXRlKCdNRScpIHx8ICh0aGlzLnV0aWwuaXNTdGF0ZSgnTVMnKSAmJiBMaWJDb25zdGFudHMuaW50ZXJpbUhvbWVQYWdlID09ICd0cnVlJykpKXtcbiAgICAgIHRoaXMuc2hvd1Byb2ZpbGVQb3B1cCA9IHRydWU7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcG9wb3ZlciA9IGF3YWl0IHRoaXMucG9wdXAuY3JlYXRlKHtcbiAgICAgIGNvbXBvbmVudDogTXlQcm9maWxlUGFnZSxcbiAgICAgIHRyYW5zbHVjZW50OiB0cnVlLFxuICAgICAgYmFja2Ryb3BEaXNtaXNzOiB0cnVlLFxuICAgICAgZXZlbnQ6IGV2ZW50LFxuICAgICAgY3NzQ2xhc3M6ICdoZWFkZXItcG9wb3ZlcidcbiAgICB9KTtcblxuICAgIHJldHVybiBhd2FpdCBwb3BvdmVyLnByZXNlbnQoKTtcbiAgfVxuXG4gIGFzeW5jIHByZXNlbnRNeU5vdGlmaWNhdGlvblBvcG92ZXIoZXZlbnQpIHtcbiAgICBjb25zdCBwb3BvdmVyID0gYXdhaXQgdGhpcy5wb3B1cC5jcmVhdGUoe1xuICAgICAgY29tcG9uZW50OiBNeU5vdGlmaWNhdGlvbnNQYWdlLFxuICAgICAgdHJhbnNsdWNlbnQ6IHRydWUsXG4gICAgICBiYWNrZHJvcERpc21pc3M6IHRydWUsXG4gICAgICBldmVudDogZXZlbnQsXG4gICAgICBjc3NDbGFzczogJ2hlYWRlci1wb3BvdmVyJ1xuICAgIH0pO1xuXG4gICAgcG9wb3Zlci5vbkRpZERpc21pc3MoKS50aGVuKCgpID0+IHtcbiAgICAgIHRoaXMubnMudXBkYXRlUmVhZEZsYWcoKTtcbiAgICB9KVxuXG4gICAgcmV0dXJuIGF3YWl0IHBvcG92ZXIucHJlc2VudCgpO1xuICB9XG5cbiAgbG9nb3V0KCl7XG4gICAgdGhpcy5uYXYubmF2aWdhdGVSb290KCcvbGFuZGluZycpO1xuICAgIHRoaXMubHMubG9nb3V0KCk7XG4gIH1cblxuICBvcGVuV2Vla2xpZXMoKXtcbiAgICBpZih0aGlzLmxlZ2FjeU1lbnUgPT0gJ3RydWUnICYmIHRoaXMuaXNNUygpICYmIHRoaXMuaW50ZXJpbUhvbWVQYWdlID09ICdmYWxzZScpe1xuICAgICAgdGhpcy5vcGVuUGFnZSgnY3AnLCAndjIvd2Vla2xpZXMnKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wZW5QYWdlKCdjcCcsICd2My93ZWVrbGllcycpXG4gICAgfVxuICB9XG5cbiAgb25DbGlja0Rpc3BsYXlMb2dvKClcbiAge1xuICAgIGlmKHRoaXMuY29udGV4dD09J2F1ZGl0Jyl7XG4gXHQgIGxldCB1c2VyTW9kZWwgPSB0aGlzLmxzLmdldFVzZXIoKTtcbiAgICB2YXIgdGVtcFZhbCA9IEpTT04uc3RyaW5naWZ5KHsgcGFyYW0xOiBcInRheEF1ZGl0XCJ9KTtcbiAgICB2YXIgZW5jVmFsID0gYnRvYSh0ZW1wVmFsKTtcbiAgICB2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgZGF0ZS5zZXRUaW1lKGRhdGUuZ2V0VGltZSgpICsgNjAwMDApO1xuICAgIGNvbnN0IGRvbWFpbiA9IExpYkNvbnN0YW50cy5zc29Eb21haW47XG4gICAgdmFyIGV4cGlyZXMgPSBcImV4cGlyZXM9XCIgKyBkYXRlLnRvVVRDU3RyaW5nKCk7XG4gICAgZG9jdW1lbnQuY29va2llID0gXCJwYXJBcFRvTT1cIiArIGVuY1ZhbCArIFwiO3BhdGg9LztleHBpcmVzPVwiICsgZXhwaXJlcyArIFwiO2RvbWFpbj1cIiArIGRvbWFpbiArIFwiO1NhbWVTaXRlPUxheDtcIjtcbiAgICB3aW5kb3cub3BlbihgJHtMaWJDb25zdGFudHMudGF4VXJsfS9mYWNlcy92aXJ0dWFsL2NvbnRleHRzd2l0Y2gueGh0bWw/YT0ke3VzZXJNb2RlbC5hY2Nlc3NfdG9rZW59JnY9MjI5OSZUQVhBVURJVF9QT1JUQUw9dHJ1ZWAsICdfc2VsZicpO1xuICAgIH1cbiAgfVxuXG4gICBvcGVuQXVkaXREYXNoYm9hcmQoKXtcbiAgICBpZih0aGlzLmNvbnRleHQ9PSdhdWRpdCcpe1xuICAgICAgaWYodGhpcy5scy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpIHx8IHRoaXMubHMuaXNUYXhBdWRpdERpcmVjdG9yKCkpe1xuICAgICAgICB0aGlzLm9wZW5QYWdlKCdhdWRpdCcsJy9kYXNoYm9hcmQnKTtcbiAgICAgIH0gZWxzZSBpZih0aGlzLmxzLmlzVGF4QXVkaXRBdWRpdG9yKCkpe1xuICAgICAgICB0aGlzLm9wZW5QYWdlKCdhdWRpdCcsJy9teXEnKTtcbiAgICAgIH0gZWxzZSBpZih0aGlzLmxzLmlzRW1wbG95ZXIoKSl7XG4gICAgICAgIHRoaXMub3BlblBhZ2UoJ2F1ZGl0JywnLycpOyAvL0FkZCB0aGUgYWN0dWFsIHVybCBmb3IgZW1wbG95ZXIgYXVkaXQgZGFzaGJvYXJkXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb3BlbkF1ZGl0b3JXb3JrTGlzdCgpe1xuICAgIHRoaXMub3BlblBhZ2UoJ2F1ZGl0JywnL2F1ZGl0b3Itd29yay1saXN0Jyk7XG4gIH1cblxuICAgb3BlblF1ZXN0aW9ubmFpcmUoKXtcbiAgICBpZih0aGlzLmxzLmlzVGF4QXVkaXRBdWRpdG9yKCkgfHwgdGhpcy5scy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpKXtcbiAgICAgIHRoaXMub3BlblBhZ2UoJ2F1ZGl0JywnL2F1ZGl0b3ItcXVlc3Rpb25uYWlyZScpO1xuICAgIH0gZWxzZSBpZih0aGlzLmxzLmlzRW1wbG95ZXIoKSl7XG4gICAgICBpZih0aGlzLnNlYXJjaFF1ZXN0aW9ubmFpcmVEYXRhICYmIHRoaXMuc2VhcmNoUXVlc3Rpb25uYWlyZURhdGEubGVuZ3RoID4gMClcbiAgICAgIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFF1ZXN0aW9ubmFpcmVEYXRhID0gdGhpcy5zZWFyY2hRdWVzdGlvbm5haXJlRGF0YTtcbiAgICAgICAgdGhpcy5xcy5zZXRRdWVzdGlvbm5haXJlRGF0YSh0aGlzLnNlbGVjdGVkUXVlc3Rpb25uYWlyZURhdGEpO1xuICAgICAgdGhpcy5vcGVuUGFnZSgnYXVkaXQnLCAnL2F1ZGl0b3ItcXVlc3Rpb25uYWlyZS1mb3JtJywge1xuICAgICAgICBzdGF0ZTogeyBhdWRpdDogdGhpcy5zZWFyY2hRdWVzdGlvbm5haXJlRGF0YSB9XG4gICAgICB9KTsvL0FkZCB0aGUgYWN0dWFsIHVybCBmb3IgZW1wbG95ZXIgcXVlc3Rpb25uYWlyZVxuICAgICAgfVxuICAgICAgZWxzZXtcbiAgICAgICAgdGhpcy51dGlsLnNob3dFcnJvcihcIk5vIGFjdGl2ZSBhdWRpdC4gVGhpcyBpcyBub3QgcmVxdWlyZWQgYXQgdGhpcyBwb2ludC5cIilcbiAgICAgIH1cbiAgICAgIFxuICAgIH1cbiAgfVxuICBvcGVuVXBsb2FkRG9jdW1lbnRzKCl7XG5cbiAgICBpZih0aGlzLmF1ZGl0RG9jdW1lbnRFbXBsb3llclVzZXJNb2RlbCAmJiB0aGlzLmF1ZGl0RG9jdW1lbnRFbXBsb3llclVzZXJNb2RlbC5hdWRpdElkICE9IG51bGwpXG4gICAge1xuICAgICAgdGhpcy5vcGVuUGFnZSgnYXVkaXQnLCAnL2VtcGxveWVyLWRvY3VtZW50cycsIHtcbiAgICAgICAgc3RhdGU6IHsgYXVkaXQ6IHRoaXMuYXVkaXREb2N1bWVudEVtcGxveWVyVXNlck1vZGVsIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICBlbHNle1xuICAgICAgdGhpcy51dGlsLnNob3dFcnJvcihcIk5vIGFjdGl2ZSBhdWRpdC4gVGhpcyBpcyBub3QgcmVxdWlyZWQgYXQgdGhpcyBwb2ludC5cIilcbiAgICB9XG4gIH1cblxuICBvcGVuRW1wbG95ZXJEYXNoYm9hcmQoKVxuICB7XG4gICAgdGhpcy5vcGVuUGFnZSgnYXVkaXQnLCAnL2VtcGxveWVyLWRhc2hib2FyZCcsIHtcbiAgICAgIH0pO1xuICB9XG5cbiAgb3BlblN1cGVydmlzb3JNeVEoKXtcbiAgICBpZih0aGlzLmxzLmlzVGF4QXVkaXRTdXBlcnZpc29yKCkgfHwgdGhpcy5scy5pc1RheEF1ZGl0QXVkaXRvcigpIHx8IHRoaXMubHMuaXNUYXhBdWRpdERpcmVjdG9yKCkpe1xuICAgICAgdGhpcy5vcGVuUGFnZSgnYXVkaXQnLCcvbXlxJyk7XG4gICAgfVxuICB9XG5cbiAgb3BlblN1cGVydmlzb3JJbnF1aXJ5KCl7XG4gICAgIGlmKHRoaXMuY29udGV4dD09J2F1ZGl0Jyl7XG4gICAgICBpZih0aGlzLmxzLmlzVGF4QXVkaXRTdXBlcnZpc29yKCkgfHwgdGhpcy5scy5pc1RheEF1ZGl0RGlyZWN0b3IoKXx8dGhpcy5scy5oYXNSb2xlKCd0YXhhdWRpdGFnZW5jeXN0YWZmJykpe1xuICAgICAgICB0aGlzLm9wZW5QYWdlKCdhdWRpdCcsJy9pbnF1aXJ5Jyk7XG4gICAgICB9IGVsc2UgaWYodGhpcy5scy5pc1RheEF1ZGl0QXVkaXRvcigpKXtcbiAgICAgICAgdGhpcy5vcGVuUGFnZSgnYXVkaXQnLCcvYXVkaXRvci1pbnF1aXJ5Jyk7XG4gICAgICB9XG4gICAgfVxuICAgIC8vdGhpcy5vcGVuUGFnZSgnYXVkaXQnLCcvaW5xdWlyeScpO1xuICB9XG5cbiAgb3BlblRQU0lucXVpcnkoKXtcbiAgICBpZih0aGlzLmxzLmhhc1JvbGUoJ3Rwc3NwZWNpYWxpc3QnKSl7XG4gICAgICB0aGlzLm9wZW5QYWdlKCdhdWRpdCcsJy90cHMtdW5pdmVyc2UnKTtcbiAgICB9XG4gIH1cblxuICBvcGVuVFBBUXVlc3Rpb25uYWlyZSgpe1xuICAgIGlmKHRoaXMubHMuaXNUcGEoKSl7XG4gICAgICB0aGlzLm9wZW5QYWdlKCdhdWRpdCcsJy90cGEtcXVlc3Rpb25uYWlyZScpXG4gICAgfVxuICB9XG5cbiAgb3BlblN1cGVydmlzb3JSZWZlcnJhbHMoKXtcbiAgICBpZih0aGlzLmxzLmlzVGF4QXVkaXRTdXBlcnZpc29yKCkgfHwgdGhpcy5scy5pc1RheEF1ZGl0RGlyZWN0b3IoKSl7XG4gICAgICB0aGlzLm9wZW5QYWdlKCdhdWRpdCcsJy9yZWZlcnJhbHMnKTtcbiAgICB9IGVsc2UgaWYodGhpcy5scy5pc1RheEF1ZGl0QXVkaXRvcigpIHx8IHRoaXMubHMuaXNUcGEoKSB8fCB0aGlzLmxzLmhhc1JvbGUoJ3RheGF1ZGl0YWdlbmN5c3RhZmYnKSl7Ly9BZ2VuY3kgRW1wbG95ZWUgRGVmYXVsdCAtIGNoZWNrIHJvbGUgd2l0aCBjaWp1XG4gICAgICB0aGlzLm9wZW5QYWdlKCdhdWRpdCcsJy9uZXctcmVmZXJyYWwnKTtcbiAgICB9XG4gIH1cblxuICBvcGVuU3VwZXJ2aXNvckNvbmZpZygpe1xuICAgIHRoaXMub3BlblBhZ2UoJ2F1ZGl0JywnL2NvbmZpZycpO1xuICB9XG5cbiAgb3BlblN1cGVydmlzb3JBbmFseXRpY3MoKXtcbiAgICBpZih0aGlzLmxzLmlzVGF4QXVkaXRTdXBlcnZpc29yKCkgfHwgdGhpcy5scy5pc1RheEF1ZGl0RGlyZWN0b3IoKSl7XG4gICAgICB0aGlzLm9wZW5QYWdlKCdhdWRpdCcsJy9hbmFseXRpY3MnKTtcbiAgICB9XG4gICAgaWYodGhpcy5scy5pc1RheEF1ZGl0QXVkaXRvcigpICYmICEodGhpcy5scy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpIHx8IHRoaXMubHMuaXNUYXhBdWRpdERpcmVjdG9yKCkpKXsgXG4gICAgICB0aGlzLm9wZW5QYWdlKCdhdWRpdCcsJy9hdWRpdG9yLWFuYWx5dGljcycpO1xuICAgIH1cbiAgfVxuXG4gIG9wZW5TdXBlcnZpc29yQXNzaWduKCl7XG4gICAgdGhpcy5vcGVuUGFnZSgnYXVkaXQnLCcvYXNzaWduJyk7XG4gIH1cblxuICBvcGVuU3VwZXJ2aXNvclRlYW0oKXtcbiAgICB0aGlzLm9wZW5QYWdlKCdhdWRpdCcsJy90ZWFtJyk7XG4gIH1cblxuXG4gIGxvYWRFbXBsb3llckRldGFpbHMoKVxuICB7XG4gICAgdGhpcy5pc0VtcGxveWVyTG9hZGVkID0gZmFsc2U7XG4gICAgdGhpcy5pc1F1ZXN0aW9ubmFpcmVEYXRhTG9hZGVkID0gZmFsc2U7XG4gICAgbGV0IHVzZXJNb2RlbCA9IHRoaXMubHMuZ2V0VXNlcigpXG5cbiAgICB0aGlzLnFzLnNlYXJjaFF1ZXN0aW9ubmFpcmUobnVsbCwgbnVsbCwgbnVsbCx1c2VyTW9kZWwudXNlcm5hbWUpXG4gICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICBpZiAocmVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5zZWFyY2hRdWVzdGlvbm5haXJlRGF0YSA9IHJlcztcbiAgICAgIH1cbiAgICAgIHRoaXMuaXNRdWVzdGlvbm5haXJlRGF0YUxvYWRlZCA9IHRydWVcbiAgICB9LCAoZXJyKSA9PiB7XG5cbiAgICB9KTtcblxuICAgIHRoaXMucXMuZmluZEVtcGxveWVyRGF0YVdpdGhVc2VySUQodXNlck1vZGVsLnVzZXJuYW1lKVxuICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgaWYgKHJlcylcbiAgICAgIHtcbiAgICAgICAgdGhpcy5hdWRpdERvY3VtZW50RW1wbG95ZXJVc2VyTW9kZWwgPSByZXM7XG4gICAgICB9XG4gICAgICB0aGlzLmlzRW1wbG95ZXJMb2FkZWQgPSB0cnVlOyBcbiAgICB9LCAoZXJyKSA9PiB7XG4gICAgIFxuICAgIH0pXG5cbiAgfVxuICBvcGVuSG9tZSgpe1xuICAgIC8vdGhpcy5uYXYubmF2aWdhdGVSb290KFwiL3dlbGNvbWVcIik7XG4gXHRpZih0aGlzLmNvbnRleHQ9PSdhdWRpdCcpe1xuICAgICAgICBsZXQgdXNlck1vZGVsID0gdGhpcy5scy5nZXRVc2VyKClcbiAgICAgICAgdGhpcy51dGlsLnNob3dMb2FkZXIoKTtcbiAgICAgICAgd2luZG93Lm9wZW4oYCR7TGliQ29uc3RhbnRzLnRheFVybEV4dGVybmFsfS9mYWNlcy92aXJ0dWFsL2NvbnRleHRzd2l0Y2gueGh0bWw/YT0ke3VzZXJNb2RlbC5hY2Nlc3NfdG9rZW59JnI9JHt1c2VyTW9kZWwucmVmcmVzaF90b2tlbn0mdj0yMjk5YCwgJ19zZWxmJyk7XG4gICAgfVxuICAgIGlmKHRoaXMubHMuaXNDbGFpbWFudCgpKXtcbiAgICAgIHRoaXMudXRpbC5vcGVuUGFnZUJ5Q29udGV4dFJvb3QodGhpcy51dGlsLmdldENsYWltYW50QXBwQ29udGV4dFJvb3QoKSwgXCJ3ZWxjb21lXCIsIHRoaXMubmF2KTsgXG4gICAgfSBlbHNlIGlmKHRoaXMubHMuaXNDc3IoKSl7XG4gICAgICB0aGlzLnV0aWwub3BlblBhZ2VCeUNvbnRleHRSb290KHRoaXMudXRpbC5nZXRTZWN1cml0eUFwcENvbnRleHRSb290KCksXCJ3ZWxjb21lXCIsIHRoaXMubmF2KTsgXG4gICAgfSBlbHNlIGlmKHRoaXMubHMuaXNFbXBsb3llcigpKXtcbiAgICAgIHRoaXMub3BlblBhZ2UoJ2F1ZGl0JywnLycpOy8vQWRkIHRoZSBhY3R1YWwgdXJsIGZvciBlbXBsb3llciBxdWVzdGlvbm5haXJlXG4gICAgICAvL3RoaXMubG9hZEVtcGxveWVyRGV0YWlscygpO1xuICAgIH0gXG4gICAgZWxzZSB7XG4gICAgICB0aGlzLm5hdi5uYXZpZ2F0ZVJvb3QoXCIvd2VsY29tZVwiKTtcbiAgICB9XG4gICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcbiAgfVxuXG4gIHNlYXJjaChldmVudCkge1xuICAgIGxldCBkb1NlYXJjaCA9IGZhbHNlO1xuICAgIGxldCBjbGFpbWFudFNlYXJjaCA9IG5ldyBDbGFpbWFudE1vZGVsKCk7XG4gICAgbGV0IHF1ZXJ5ID0gZXZlbnQucXVlcnkgKyAnJztcbiAgICBpZihxdWVyeS5pbmNsdWRlcyhcIiBcIikpe1xuICAgICAgbGV0IGZOYW1lID0gcXVlcnkuc3BsaXQoXCIgXCIpWzBdO1xuICAgICAgbGV0IGxOYW1lID0gcXVlcnkuc3BsaXQoXCIgXCIpWzFdO1xuICAgICAgY2xhaW1hbnRTZWFyY2guZmlyc3ROYW1lID0gZk5hbWU7XG4gICAgICBjbGFpbWFudFNlYXJjaC5sYXN0TmFtZSA9IGxOYW1lO1xuICAgICAgZG9TZWFyY2ggPSB0cnVlO1xuICAgIH1cblxuICAgIGlmKHF1ZXJ5Lmxlbmd0aCA9PSA5ICYmIHRoaXMuaXNOdW1iZXIocXVlcnkpICYmICFkb1NlYXJjaCl7XG4gICAgICBjbGFpbWFudFNlYXJjaC5zc24gPSBxdWVyeTtcbiAgICAgIGRvU2VhcmNoID0gdHJ1ZTtcbiAgICB9ZWxzZSBpZighdGhpcy5pc051bWJlcihxdWVyeSkgJiYgIWRvU2VhcmNoKXtcbiAgICAgIGNsYWltYW50U2VhcmNoLnVzZXJJZCA9IHF1ZXJ5O1xuICAgICAgZG9TZWFyY2ggPSB0cnVlO1xuICAgIH1cbiAgICBcbiAgICBpZihkb1NlYXJjaCl7XG4gICAgICB0aGlzLmNzLnNlYXJjaChjbGFpbWFudFNlYXJjaCkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICAgIHRoaXMucmVzdWx0cyA9IGRhdGE7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzTnVtYmVyKG51bSl7XG4gICAgcmV0dXJuICFpc05hTihudW0pO1xuICB9XG5cbiAgb25TZWxlY3RBY3Rpb24oZXZlbnQgOiBBdXRvQ29tcGxldGVTZWxlY3RFdmVudCl7XG4gICAgdGhpcy5yZXN1bHRzID0gbnVsbDtcbiAgICB0aGlzLnNlYXJjaFRleHQgPSBudWxsO1xuICAgIHRoaXMuY3MuZ2V0Q2xhaW1hbnQoKS5uZXh0KGV2ZW50LnZhbHVlKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMudXRpbC5vcGVuUGFnZUJ5Q29udGV4dFJvb3QodGhpcy51dGlsLmdldFNlY3VyaXR5QXBwQ29udGV4dFJvb3QoKSxcInJlc2V0LXBhc3N3b3JkXCIsIHRoaXMubmF2KTtcbiAgICAgIC8vdGhpcy5uYXYubmF2aWdhdGVGb3J3YXJkKCcvcmVzZXQtcGFzc3dvcmQnKTtcbiAgICB9LCA1MDApXG4gICAgXG4gIH1cblxuICBvcGVuQmVuZWZpdHNBcHAoKXtcbiAgICBsZXQgdXNlck1vZGVsID0gdGhpcy5scy5nZXRVc2VyKClcbiAgICB0aGlzLnV0aWwuc2hvd0xvYWRlcigpO1xuICAgIHdpbmRvdy5vcGVuKGAke0xpYkNvbnN0YW50cy5iZW5lZml0c1VybEV4dGVybmFsfS9mYWNlcy92aXJ0dWFsL2NvbnRleHRzd2l0Y2gueGh0bWw/YT0ke3VzZXJNb2RlbC5hY2Nlc3NfdG9rZW59JnI9JHt1c2VyTW9kZWwucmVmcmVzaF90b2tlbn0mdj0yMjk5YCwgJ19zZWxmJyk7XG4gIH1cblxuICBvcGVuUGFnZShjb250ZXh0Um9vdCwgdXJpLCBleHRyYXM/OiBOYXZpZ2F0aW9uRXh0cmFzKXtcbiAgICBsZXQgY3VycmVudENvbnRleHRSb290ID0gdGhpcy51dGlsLmdldENvbnRleHRSb290KCk7XG4gICAgbGV0IHRhcmdldCA9IGAvJHtjb250ZXh0Um9vdH1gO1xuXG4gICAgaWYoY3VycmVudENvbnRleHRSb290ID09IHRhcmdldCl7XG4gICAgICB0aGlzLm5hdi5uYXZpZ2F0ZVJvb3QoYC8ke3VyaX1gLCBleHRyYXMpO1xuICAgIH1lbHNle1xuICAgICAgdGhpcy51dGlsLm9wZW5QYWdlQnlDb250ZXh0Um9vdCh0YXJnZXQsIHVyaSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0Q2xhc3MobmFtZSl7XG4gICAgbGV0IGN1cnJlbnRSb3V0ZSA9IHRoaXMuci51cmwucmVwbGFjZSgnLycsICcnKTtcbiAgICBjb25zb2xlLmxvZyhjdXJyZW50Um91dGUsIG5hbWUsIGN1cnJlbnRSb3V0ZSA9PSBuYW1lKTtcbiAgICByZXR1cm4gY3VycmVudFJvdXRlID09IG5hbWUgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJztcbiAgfVxuXG4gIG9wZW5Db250ZXh0SGVscCgpe1xuXG4gIH1cblxuICBhc3luYyBjaGFuZ2VMYW5ndWFnZShldmVudCkge1xuICAgIFxuICB9XG59XG4iLCI8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiZGV0ZXJtaW5hdGVcIiBbdmFsdWVdPVwidXRpbC5sb2FkZXIudmFsdWUkIHwgYXN5bmNcIiAqbmdJZj1cIih1dGlsLmxvYWRlci52YWx1ZSQgfCBhc3luYykgIT0gMFwiPlxyXG48L21hdC1wcm9ncmVzcy1iYXI+XHJcbjxpb24tdG9vbGJhcj5cclxuICAgIDxpb24tYnV0dG9ucyBzbG90PVwic3RhcnRcIiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAtNXB4O1wiPlxyXG4gICAgICAgIDxpb24tbWVudS1idXR0b24gYXV0b0hpZGU9XCJmYWxzZVwiIHBUb29sdGlwPVwiTWVudVwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwibHMuaXNMb2dnZWRJbigpICYmICFscy5pc0VtcGxveWVyKClcIiBbbmdDbGFzc109XCJsZWdhY3lNZW51ID09ICdmYWxzZScgJiYgbHMuaXNDbGFpbWFudCgpID8gJ2hpZGUteGwgaGlkZS1sZycgOiAnJ1wiPjwvaW9uLW1lbnUtYnV0dG9uPlxyXG4gICAgPC9pb24tYnV0dG9ucz5cclxuICAgIDxpb24tYnV0dG9ucyBzbG90PVwic3RhcnRcIiBbbmdDbGFzc109XCJkaXNwbGF5TG9nbyA/ICdoZWFkZXJfYnV0dG9uX3doaXRlJyA6ICdoZWFkZXJfYnV0dG9uIGhpZGUteHMgaGlkZS1tZCdcIiAoY2xpY2spPVwib25DbGlja0Rpc3BsYXlMb2dvKClcIj5cclxuICAgICAgICA8aW1nIGFsdD1cImxvZ29cIiBwVG9vbHRpcD1cInt7J1JlRW1wbG95Q1QgTG9nbycgfCB0cmFuc2xhdGV9fVwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiXHJcbiAgICAgICAgIHNyYz1cImFzc2V0cy9pY29uL1JlRW1wbG95e3t1dGlsLmdldFN0YXRlKCl9fS5zdmdcIiBbbmdDbGFzc109XCJkaXNwbGF5TG9nbyA/ICdoZWFkZXJfbG9nbycgOiAnaGVhZGVyX2xvZ28gaGlkZS14cyBoaWRlLW1kJ1wiLz5cclxuICAgIDwvaW9uLWJ1dHRvbnM+XHJcbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cInN0YXJ0XCIgKm5nSWY9XCJscy5pc0xvZ2dlZEluKClcIj5cclxuICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwib3BlbkhvbWUoKVwiIHBUb29sdGlwPVwiSG9tZVwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIFtuZ0NsYXNzXT1cInIudXJsLnJlcGxhY2UoJy8nLCAnJykuaW5jbHVkZXMoJ3dlbGNvbWUnKSA/ICdoZWFkZXItYnV0dG9uJyA6ICcnXCIgKm5nSWY9XCJ0aGlzLmNvbnRleHQhPSdhdWRpdCcgfHwgbHMuaXNFbXBsb3llcigpXCI+SG9tZTwvaW9uLWJ1dHRvbj5cclxuXHJcbiAgICAgICAgPGlvbi1idXR0b24gaWQ9XCJidG5GaWxlV2Vla2xpZXNcIiBwVG9vbHRpcD1cInt7J2hlYWRlci53ZWVrbHkudG9vbHRpcCcgfCB0cmFuc2xhdGV9fVwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIFtuZ0NsYXNzXT1cInIudXJsLnJlcGxhY2UoJy8nLCAnJykuaW5jbHVkZXMoJ3dlZWtsaWVzJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwibHMuaXNDbGFpbWFudCgpICYmIGxlZ2FjeU1lbnUgPT0gJ2ZhbHNlJ1wiIChjbGljayk9XCJvcGVuV2Vla2xpZXMoKVwiIGNsYXNzPVwiaGlkZS14cyBoaWRlLW1kXCI+e3tsZWdhY3lNZW51ID09ICd0cnVlJyA/ICdXZWVrbHknIDogJ1dlZWtseSd9fTwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8aW9uLWJ1dHRvbiBpZD1cImJ0bkZpbGVXZWVrbGllc1wiIHBUb29sdGlwPVwie3snaGVhZGVyLndlZWtseS50b29sdGlwJyB8IHRyYW5zbGF0ZX19XCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgW25nQ2xhc3NdPVwici51cmwucmVwbGFjZSgnLycsICcnKS5pbmNsdWRlcygnd2Vla2xpZXMnKSA/ICdoZWFkZXItYnV0dG9uJyA6ICcnXCIgKm5nSWY9XCJscy5pc0NsYWltYW50KCkgJiYgbGVnYWN5TWVudSA9PSAndHJ1ZScgJiYgIXV0aWwuaXNTdGF0ZSgnTUUnKVwiIChjbGljayk9XCJvcGVuV2Vla2xpZXMoKVwiPnt7bGVnYWN5TWVudSA9PSAndHJ1ZScgPyAnV2Vla2x5JyA6ICdXZWVrbHknfX08L2lvbi1idXR0b24+XHJcbiAgICAgICAgPGlvbi1idXR0b24gaWQ9XCJidG5GaWxlV2Vla2xpZXNcIiBwVG9vbHRpcD1cInt7J2hlYWRlci53ZWVrbHkudG9vbHRpcCcgfCB0cmFuc2xhdGV9fVwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIFtuZ0NsYXNzXT1cInIudXJsLnJlcGxhY2UoJy8nLCAnJykuaW5jbHVkZXMoJ3dlZWtsaWVzJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwibHMuaXNDbGFpbWFudCgpICYmIGxlZ2FjeU1lbnUgPT0gJ3RydWUnICYmIHV0aWwuaXNTdGF0ZSgnTUUnKVwiIChjbGljayk9XCJvcGVuV2Vla2xpZXMoKVwiPnt7bGVnYWN5TWVudSA9PSAndHJ1ZScgPyAnV2Vla2x5IENsYWltJyA6ICdXZWVrbHknfX08L2lvbi1idXR0b24+XHJcbiAgICAgICAgXHJcbiAgICAgICBcclxuICAgICAgICA8aW9uLWJ1dHRvbiBwVG9vbHRpcD1cIkhpc3RvcnlcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBbbmdDbGFzc109XCJyLnVybC5yZXBsYWNlKCcvJywgJycpID09ICdoaXN0b3J5JyA/ICdoZWFkZXItYnV0dG9uJyA6ICcnXCIgKm5nSWY9XCJscy5pc0NsYWltYW50KCkgJiYgbGVnYWN5TWVudSA9PSAnZmFsc2UnICYmIGludGVyaW1Ib21lUGFnZSA9PSAnZmFsc2UnXCIgKGNsaWNrKT1cIm9wZW5QYWdlKCdjcCcsICdoaXN0b3J5JylcIiBjbGFzcz1cImhpZGUteHMgaGlkZS1tZFwiPkhpc3Rvcnk8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgIDxpb24tYnV0dG9uIGlkPVwiYnRuQXVkaXRFbXBsb3llckRhc2hib2FyZFwiIHBUb29sdGlwPVwiRW1wbG95ZXJEYXNoYm9hcmRcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBbbmdDbGFzc109XCJyLnVybC5yZXBsYWNlKCcvJywgJycpLmluY2x1ZGVzKCdlbXBsb3llci1kYXNoYm9hcmQnKSA/ICdoZWFkZXItYnV0dG9uJyA6ICcnXCIgKm5nSWY9XCJscy5pc0VtcGxveWVyKClcIiAoY2xpY2spPVwib3BlbkVtcGxveWVyRGFzaGJvYXJkKClcIj5BdWRpdCBEYXNoYm9hcmQ8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPGlvbi1idXR0b24gaWQ9XCJidG5BdWRpdE15UVwiIHBUb29sdGlwPVwiTXlRXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgW25nQ2xhc3NdPVwici51cmwucmVwbGFjZSgnLycsICcnKS5pbmNsdWRlcygnbXlxJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwidGhpcy5jb250ZXh0PT0nYXVkaXQnICYmIChscy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpIHx8IGxzLmlzVGF4QXVkaXRBdWRpdG9yKCkgfHwgbHMuaXNUYXhBdWRpdERpcmVjdG9yKCkgfHwgbHMuaXNUYXhBdWRpdERpcmVjdG9yKCkpXCIgKGNsaWNrKT1cIm9wZW5TdXBlcnZpc29yTXlRKClcIj5NeVE8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPGlvbi1idXR0b24gaWQ9XCJidG5BdWRpdERhc2hib2FyZFwiIHBUb29sdGlwPVwiRGFzaGJvYXJkXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgW25nQ2xhc3NdPVwici51cmwucmVwbGFjZSgnLycsICcnKS5pbmNsdWRlcygnZGFzaGJvYXJkJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwidGhpcy5jb250ZXh0PT0nYXVkaXQnICYmIChscy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpfHwgbHMuaXNUYXhBdWRpdERpcmVjdG9yKCkpXCIgKGNsaWNrKT1cIm9wZW5BdWRpdERhc2hib2FyZCgpXCI+RGFzaGJvYXJkPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIGlkPVwiYnRuQXVkaXRXb3JrTGlzdFwiIHBUb29sdGlwPVwiV29ya0xpc3RcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBbbmdDbGFzc109XCJyLnVybC5yZXBsYWNlKCcvJywgJycpLmluY2x1ZGVzKCdhdWRpdG9yLXdvcmstbGlzdCcpID8gJ2hlYWRlci1idXR0b24nIDogJydcIiAqbmdJZj1cInRoaXMuY29udGV4dD09J2F1ZGl0JyAmJiAobHMuaXNUYXhBdWRpdEF1ZGl0b3IoKSB8fCBscy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpKVwiIChjbGljayk9XCJvcGVuQXVkaXRvcldvcmtMaXN0KClcIj5Xb3JrIExpc3Q8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPGlvbi1idXR0b24gaWQ9XCJidG5BdWRpdElucXVpcnlcIiBwVG9vbHRpcD1cIklucXVpcnlcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBbbmdDbGFzc109XCJyLnVybC5yZXBsYWNlKCcvJywgJycpLmluY2x1ZGVzKCdpbnF1aXJ5JykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwidGhpcy5jb250ZXh0PT0nYXVkaXQnICYmIChscy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpIHx8IGxzLmlzVGF4QXVkaXRBdWRpdG9yKCkgfHwgbHMuaXNUYXhBdWRpdERpcmVjdG9yKCkpIHx8ICBscy5oYXNSb2xlKCd0YXhhdWRpdGFnZW5jeXN0YWZmJylcIiAoY2xpY2spPVwib3BlblN1cGVydmlzb3JJbnF1aXJ5KClcIj5JbnF1aXJ5PC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIGlkPVwiYnRuQXVkaXRVcGxvYWREb2N1bWVudHNcIiBwVG9vbHRpcD1cIlVwbG9hZCBEb2N1bWVudHNcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBbbmdDbGFzc109XCJyLnVybC5yZXBsYWNlKCcvJywgJycpLmluY2x1ZGVzKCd1cGxvYWQtZG9jdW1lbnRzJykgfHwgci51cmwucmVwbGFjZSgnLycsICcnKS5pbmNsdWRlcygnZW1wbG95ZXItZG9jdW1lbnRzJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwidGhpcy5jb250ZXh0PT0nYXVkaXQnICYmIGxzLmlzRW1wbG95ZXIoKVwiIChjbGljayk9XCJvcGVuVXBsb2FkRG9jdW1lbnRzKClcIiBbZGlzYWJsZWRdPVwiIWlzRW1wbG95ZXJMb2FkZWRcIj5VcGxvYWQgRG9jdW1lbnRzPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIGlkPVwiYnRuQXVkaXRRdWVzdGlvbm5haXJlXCIgcFRvb2x0aXA9XCJRdWVzdGlvbm5haXJlXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgW25nQ2xhc3NdPVwici51cmwucmVwbGFjZSgnLycsICcnKS5pbmNsdWRlcygnYXVkaXRvci1xdWVzdGlvbm5haXJlJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwidGhpcy5jb250ZXh0PT0nYXVkaXQnICYmIChscy5pc1RheEF1ZGl0QXVkaXRvcigpIHx8IGxzLmlzVGF4QXVkaXRTdXBlcnZpc29yKCkpXCIgKGNsaWNrKT1cIm9wZW5RdWVzdGlvbm5haXJlKClcIj5RdWVzdGlvbm5haXJlPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIGlkPVwiYnRuQXVkaXRRdWVzdGlvbm5haXJlXCIgcFRvb2x0aXA9XCJRdWVzdGlvbm5haXJlXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgW25nQ2xhc3NdPVwici51cmwucmVwbGFjZSgnLycsICcnKS5pbmNsdWRlcygnYXVkaXRvci1xdWVzdGlvbm5haXJlJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwidGhpcy5jb250ZXh0PT0nYXVkaXQnICYmIChscy5pc0VtcGxveWVyKCkpXCIgKGNsaWNrKT1cIm9wZW5RdWVzdGlvbm5haXJlKClcIiBbZGlzYWJsZWRdPVwiIWlzUXVlc3Rpb25uYWlyZURhdGFMb2FkZWRcIj5RdWVzdGlvbm5haXJlPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIGlkPVwiYnRuQXVkaXRSZWZlcnJhbHNcIiBwVG9vbHRpcD1cIlJlZmVycmFsc1wiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIFtuZ0NsYXNzXT1cInIudXJsLnJlcGxhY2UoJy8nLCAnJykuaW5jbHVkZXMoJ3JlZmVycmFsJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwidGhpcy5jb250ZXh0PT0nYXVkaXQnICYmIChscy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpIHx8IGxzLmlzVGF4QXVkaXRBdWRpdG9yKCkgfHwgbHMuaXNUYXhBdWRpdERpcmVjdG9yKCkpIHx8ICBscy5oYXNSb2xlKCd0YXhhdWRpdGFnZW5jeXN0YWZmJylcIiAoY2xpY2spPVwib3BlblN1cGVydmlzb3JSZWZlcnJhbHMoKVwiPlJlZmVycmFsczwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8aW9uLWJ1dHRvbiBpZD1cImJ0bkF1ZGl0QXNzaWduXCIgcFRvb2x0aXA9XCJBc3NpZ25cIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBbbmdDbGFzc109XCJyLnVybC5yZXBsYWNlKCcvJywgJycpLmluY2x1ZGVzKCdhc3NpZ24nKSA/ICdoZWFkZXItYnV0dG9uJyA6ICcnXCIgKm5nSWY9XCJ0aGlzLmNvbnRleHQ9PSdhdWRpdCcgJiYgbHMuaXNUYXhBdWRpdFN1cGVydmlzb3IoKVwiIChjbGljayk9XCJvcGVuU3VwZXJ2aXNvckFzc2lnbigpXCI+QXNzaWduPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIGlkPVwiYnRuQXVkaXRUZWFtXCIgcFRvb2x0aXA9XCJUZWFtXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgW25nQ2xhc3NdPVwici51cmwucmVwbGFjZSgnLycsICcnKS5pbmNsdWRlcygndGVhbScpID8gJ2hlYWRlci1idXR0b24nIDogJydcIiAqbmdJZj1cInRoaXMuY29udGV4dD09J2F1ZGl0JyAmJiBscy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpXCIgKGNsaWNrKT1cIm9wZW5TdXBlcnZpc29yVGVhbSgpXCI+VGVhbTwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8aW9uLWJ1dHRvbiBpZD1cImJ0bkF1ZGl0Q29uZmlnXCIgcFRvb2x0aXA9XCJDb25maWdcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBbbmdDbGFzc109XCJyLnVybC5yZXBsYWNlKCcvJywgJycpLmluY2x1ZGVzKCdjb25maWcnKSA/ICdoZWFkZXItYnV0dG9uJyA6ICcnXCIgKm5nSWY9XCJ0aGlzLmNvbnRleHQ9PSdhdWRpdCcgJiYgKGxzLmlzVGF4QXVkaXRTdXBlcnZpc29yKCkgfHwgbHMuaXNUYXhBdWRpdERpcmVjdG9yKCkpXCIgKGNsaWNrKT1cIm9wZW5TdXBlcnZpc29yQ29uZmlnKClcIj5Db25maWc8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPGlvbi1idXR0b24gaWQ9XCJidG5BdWRpdEFuYWx5dGljc1wiIHBUb29sdGlwPVwiQW5hbHl0aWNzXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgW25nQ2xhc3NdPVwici51cmwucmVwbGFjZSgnLycsICcnKS5pbmNsdWRlcygnYW5hbHl0aWNzJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwidGhpcy5jb250ZXh0PT0nYXVkaXQnICYmIChscy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpIHx8IGxzLmlzVGF4QXVkaXRBdWRpdG9yKCkgfHwgbHMuaXNUYXhBdWRpdERpcmVjdG9yKCkpXCIgKGNsaWNrKT1cIm9wZW5TdXBlcnZpc29yQW5hbHl0aWNzKClcIj5BbmFseXRpY3M8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPGlvbi1idXR0b24gaWQ9XCJidG5BdWRpdFRQU0lucXVpcnlcIiBwVG9vbHRpcD1cIklucXVpcnlcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBbbmdDbGFzc109XCJyLnVybC5yZXBsYWNlKCcvJywgJycpLmluY2x1ZGVzKCd0cHMtdW5pdmVyc2UnKSB8fCByLnVybC5yZXBsYWNlKCcvJywgJycpLmluY2x1ZGVzKCd0cHMtaW5xdWlyeScpID8gJ2hlYWRlci1idXR0b24nIDogJydcIiAqbmdJZj1cInRoaXMuY29udGV4dD09J2F1ZGl0JyAmJiB0aGlzLmxzLmhhc1JvbGUoJ3Rwc3NwZWNpYWxpc3QnKSAmJiAoICFscy5pc1RheEF1ZGl0QXVkaXRvcigpICYmICFscy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpKVwiIChjbGljayk9XCJvcGVuVFBTSW5xdWlyeSgpXCI+SW5xdWlyeTwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8aW9uLWJ1dHRvbiBpZD1cImJ0bkF1ZGl0VFBBUXVlc3Rpb25uYWlyZVwiIHBUb29sdGlwPVwiUXVlc3Rpb25uYWlyZVwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIFtuZ0NsYXNzXT1cInIudXJsLnJlcGxhY2UoJy8nLCAnJykuaW5jbHVkZXMoJ3RwYS1xdWVzdGlvbm5haXJlJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwidGhpcy5jb250ZXh0PT0nYXVkaXQnICYmIHRoaXMubHMuaXNUcGEoKSAmJiAhbHMuaXNUYXhBdWRpdEF1ZGl0b3IoKSAmJiAhbHMuaXNUYXhBdWRpdFN1cGVydmlzb3IoKVwiIChjbGljayk9XCJvcGVuVFBBUXVlc3Rpb25uYWlyZSgpXCI+UXVlc3Rpb25uYWlyZTwvaW9uLWJ1dHRvbj5cclxuXHJcbiAgICA8L2lvbi1idXR0b25zPlxyXG5cclxuICAgIFxyXG4gICAgPGRpdiBjbGFzcz1cInRvb2xiYXItY29udGVudCBoaWRlLXhzXCIgKm5nSWY9XCJscy5pc0xvZ2dlZEluKCkgJiYgbHMuaXNDc3IoKSAmJiB0aGlzLmNvbnRleHQgIT0nYXVkaXQnICYmIGNvbnRleHRSb290ID09PSdzcydcIj5cclxuICAgICAgICA8cC1hdXRvQ29tcGxldGUgYXBwZW5kVG89XCJib2R5XCIgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXh0XCIgW3N1Z2dlc3Rpb25zXT1cInJlc3VsdHNcIlxyXG4gICAgICAgICAgICAoY29tcGxldGVNZXRob2QpPVwic2VhcmNoKCRldmVudClcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaCBDbGFpbWFudHNcIiAob25TZWxlY3QpPVwib25TZWxlY3RBY3Rpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIGVtcHR5TWVzc2FnZT1cIk5vIFJlc3VsdHMgRm91bmQuXCIgc2l6ZT1cIjI1XCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtdXNlciBwVGVtcGxhdGU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICA8aW9uLXJvdyBjbGFzcz1cIi5pb24td3JhcFwiID5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplLWF1dG8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpb24tdGV4dD57e3VzZXIuZmlyc3ROYW1lIHwgcHJvcGVyQ2FzZX19IHt7dXNlci5sYXN0TmFtZSB8IHByb3BlckNhc2V9fTwvaW9uLXRleHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tY29sIHNpemUtYXV0bz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi10ZXh0Pnt7dXNlci51c2VySWR9fTwvaW9uLXRleHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tY29sIHNpemUtYXV0bz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi10ZXh0Pnt7dXRpbC5tYXNrU3NuKHVzZXIuc3NuKX19PC9pb24tdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9wLWF1dG9Db21wbGV0ZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIiAqbmdJZj1cImxzLmlzTG9nZ2VkSW4oKVwiID5cclxuICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwicHJlc2VudE15UHJvZmlsZVBvcG92ZXIoJGV2ZW50KVwiIHBUb29sdGlwPVwiQWNjb3VudFwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIFtuZ0NsYXNzXT1cImxlZ2FjeU1lbnUgPT0gJ2ZhbHNlJyAmJiBscy5pc0NsYWltYW50KCkgJiYgc2hvd1Byb2ZpbGVQb3B1cCA/ICdoaWRlLXhzIGhpZGUtbWQgaGVhZGVyLWJ1dHRvbicgOiAobGVnYWN5TWVudSA9PSAnZmFsc2UnICYmIGxzLmlzQ2xhaW1hbnQoKSA/ICdoaWRlLXhzIGhpZGUtbWQnIDogJycpXCI+XHJcbiAgICAgICAgICAgIDxpb24tdGl0bGUgc3R5bGU9XCJmb250LXNpemU6IDIwcHg7IHBhZGRpbmc6IDBweDtcIiBjbGFzcz1cImhpZGUteHNcIj57e2xzLmdldEZ1bGxOYW1lKCkgfCBwcm9wZXJDYXNlfX08L2lvbi10aXRsZT5cclxuICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJlbmRcIiBuYW1lPVwicGVyc29uLWNpcmNsZS1vdXRsaW5lXCI+PC9pb24taWNvbj5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cIm9wZW5QYWdlKCdjcCcsICdkb2N1bWVudHMnKVwiIHBUb29sdGlwPVwiTm90aWNlc1wiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiICpuZ0lmPVwiIWxzLmlzQ3NyKCkgJiYgbGVnYWN5TWVudSA9PSAnZmFsc2UnICYmICF1dGlsLmlzU3RhdGUoJ01FJylcIiBbbmdDbGFzc109XCJyLnVybC5yZXBsYWNlKCcvJywgJycpID09ICdkb2N1bWVudHMnID8gJ2hlYWRlci1idXR0b24gaGlkZS14cyBoaWRlLW1kJyA6ICdoaWRlLXhzIGhpZGUtbWQnXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPSdwaSBwaS1maWxlIGZvbnQtYm9sZCcgc3R5bGU9XCJmb250LXNpemU6IDEuM3JlbTsgIGZvbnQtd2VpZ2h0OiA1MDAgIWltcG9ydGFudDtcIj48L2k+XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJvcGVuUGFnZSgnY3AnLCAnZG9jdW1lbnRzJylcIiBwVG9vbHRpcD1cIk5vdGljZXNcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiAqbmdJZj1cIiFscy5pc0NzcigpICYmIGxlZ2FjeU1lbnUgPT0gJ3RydWUnXCI+XHJcbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiZG9jdW1lbnQtdGV4dC1vdXRsaW5lXCI+PC9pb24taWNvbj5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcblxyXG4gICAgICAgIFxyXG4gICAgICAgIDwhLS0gPGlvbi1idXR0b24gKGNsaWNrKT1cInByZXNlbnRKb2JTZWFyY2hSZXN1bHRQb3B1cCgpXCIgcFRvb2x0aXA9XCJTaG93IGpvYiBzZWFyY2ggcmVzdWx0XCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgW25nQ2xhc3NdPVwibGVnYWN5TWVudSA9PSAnZmFsc2UnICYmIGxzLmlzQ2xhaW1hbnQoKSA/ICdoaWRlLXhzIGhpZGUtbWQnIDogJydcIiAqbmdJZj1cImxzLmlzQ2xhaW1hbnQoKSAmJiBsZWdhY3lNZW51ID09ICdmYWxzZScgJiYgdXRpbC5pc1N0YXRlKCdNUycpXCI+XHJcbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiYnJpZWZjYXNlXCIgZmlsbD1cIm91dGxpbmVcIj48L2lvbi1pY29uPlxyXG4gICAgICAgIDwvaW9uLWJ1dHRvbj4gLS0+XHJcbiAgICAgICAgXHJcbiAgICAgICAgXHJcbiAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cInByZXNlbnRNeU5vdGlmaWNhdGlvblBvcG92ZXIoJGV2ZW50KVwiIHBUb29sdGlwPVwiTm90aWZpY2F0aW9uXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCJcclxuICAgICAgICAgICAgKm5nSWY9XCIhbnMuc2hvd05vdGlmaWNhdGlvbkxvYWRlciAmJiAhdXRpbC5pc1N0YXRlKCdNRScpXCIgW25nQ2xhc3NdPVwibGVnYWN5TWVudSA9PSAnZmFsc2UnICYmIGxzLmlzQ2xhaW1hbnQoKSA/ICdoaWRlLXhzIGhpZGUtbWQnIDogJydcIj5cclxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJub3RpZmljYXRpb25zLW91dGxpbmVcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICA8aW9uLWJhZGdlIGNvbG9yPVwiZGFya1wiICpuZ0lmPVwibnMubm90aWZpY2F0aW9uQ291bnQuZ2V0VmFsdWUoKSA+IDBcIj5cclxuICAgICAgICAgICAgICAgIDxpb24tbGFiZWw+e3tucy5ub3RpZmljYXRpb25Db3VudC5nZXRWYWx1ZSgpfX08L2lvbi1sYWJlbD5cclxuICAgICAgICAgICAgPC9pb24tYmFkZ2U+XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiY3Jlc2NlbnRcIiAqbmdJZj1cIm5zLnNob3dOb3RpZmljYXRpb25Mb2FkZXJcIj48L2lvbi1zcGlubmVyPlxyXG5cclxuICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwidGhpcy5ocy5zaG93KClcIiBwVG9vbHRpcD1cIkhlbHBcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiAqbmdJZj1cImxzLmlzQ2xhaW1hbnQoKSAmJiBsZWdhY3lNZW51ID09ICdmYWxzZScgJiYgKGhzLnNob3VsZERpc3BsYXlIZWxwQnV0dG9uKCkgfCBhc3luYylcIj5cclxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJoZWxwLWNpcmNsZS1vdXRsaW5lXCI+PC9pb24taWNvbj5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICA8L2lvbi1idXR0b25zPlxyXG5cclxuICAgIDxpb24tYnV0dG9ucyBzbG90PVwic2Vjb25kYXJ5XCIgKm5nSWY9XCIhbHMuaXNMb2dnZWRJbigpICYmIGxzLmdldFVzZXIoKVwiPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJsb2dvdXQoKVwiIHBUb29sdGlwPVwiTG9nb3V0XCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCI+XHJcbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwibG9nLW91dC1zaGFycFwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgPC9pb24tYnV0dG9ucz5cclxuXHJcbiAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cImVuZFwiICpuZ0lmPVwic2hvd0xhbmd1YWdlT3B0aW9uID09PSAndHJ1ZScgJiYgKCFscy5nZXRVc2VyKCkgJiYgbGVnYWN5TWVudSA9PSAnZmFsc2UnKVwiPlxyXG4gICAgICAgIDxwLW1lbnUgI21lbnUgW3BvcHVwXT1cInRydWVcIiBbbW9kZWxdPVwiaXRlbXNcIiBhcHBlbmRUbz1cImJvZHlcIj48L3AtbWVudT5cclxuICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwibWVudS50b2dnbGUoJGV2ZW50KVwiIHBUb29sdGlwPVwiTGFuZ3VhZ2VcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIj5cclxuICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwibGFuZ3VhZ2VcIiBzbG90PVwiZW5kXCI+PC9pb24taWNvbj5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgIDwvaW9uLWJ1dHRvbnM+XHJcblxyXG48L2lvbi10b29sYmFyPlxyXG48aW9uLXRvb2xiYXIgY29sb3I9XCJsaWdodFwiIGlkPVwic2Vjb25kVG9vbGJhclwiICpuZ0lmPVwic2Vjb25kVG9vbGJhclwiPlxyXG4gICAgPGlvbi1idXR0b25zIHNsb3Q9XCJzdGFydFwiPlxyXG4gICAgICAgIDxpb24tYmFjay1idXR0b24gcFRvb2x0aXA9XCJCYWNrXCIgYWx0PVwiQmFja1wiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIFtkZWZhdWx0SHJlZl09XCJiYWNrUGFnZSA/IGJhY2tQYWdlIDogJy93ZWxjb21lJ1wiPjwvaW9uLWJhY2stYnV0dG9uPlxyXG4gICAgICAgIDxpb24tdGl0bGUgY29sb3I9XCJwcmltYXJ5XCIgKm5nSWY9XCJ0aXRsZVwiIHN0eWxlPVwiZm9udC1zaXplOiAxOHB4XCI+e3t0aXRsZX19PC9pb24tdGl0bGU+XHJcbiAgICA8L2lvbi1idXR0b25zPlxyXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIj5cclxuICAgICAgICA8aW9uLXRpdGxlIGNvbG9yPVwicHJpbWFyeVwiIHN0eWxlPVwiZm9udC1zaXplOiB4eC1zbWFsbDsgZmxvYXQ6IHJpZ2h0OyBwYWRkaW5nLXJpZ2h0OiA4cHg7XCIgKm5nSWY9XCJwYWdlSWRcIj5cclxuICAgICAgICAgICAge3twYWdlSWR9fTwvaW9uLXRpdGxlPlxyXG4gICAgPC9pb24tYnV0dG9ucz5cclxuPC9pb24tdG9vbGJhcj5cclxuPHAtdG9hc3Q+XHJcbiAgICA8bmctdGVtcGxhdGUgbGV0LW1lc3NhZ2UgcFRlbXBsYXRlPVwibWVzc2FnZVwiPlxyXG4gICAgICAgIDxpICpuZ0lmPVwibWVzc2FnZS5zZXZlcml0eSA9PT0gJ2Vycm9yJ1wiIGNsYXNzPVwicGkgcGktdGltZXMtY2lyY2xlXCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDE0cHg7IGZvbnQtc2l6ZTogMzhweCBcIj48L2k+XHJcbiAgICAgICAgPGkgKm5nSWY9XCJtZXNzYWdlLnNldmVyaXR5ID09PSAnc3VjY2VzcydcIiBjbGFzcz1cInBpIHBpLWNoZWNrLWNpcmNsZVwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxNHB4OyBmb250LXNpemU6IDM4cHggXCI+PC9pPlxyXG4gICAgICAgIDxpICpuZ0lmPVwibWVzc2FnZS5zZXZlcml0eSA9PT0gJ3dhcm4nXCIgY2xhc3M9XCJwaSBwaS1leGNsYW1hdGlvbi1jaXJjbGVcInN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxNHB4OyBmb250LXNpemU6IDM4cHggXCI+PC9pPlxyXG4gICAgICAgIDxpICpuZ0lmPVwibWVzc2FnZS5zZXZlcml0eSA9PT0gJ2luZm8nXCIgY2xhc3M9XCJwaSBwaS1pbmZvLWNpcmNsZVwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxNHB4OyBmb250LXNpemU6IDM4cHggXCI+PC9pPlxyXG5cclxuICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwiJzxzdHJvbmcgc3R5bGU9XFwnZm9udC1zaXplOiAyMnB4O2ZvbnQtd2VpZ2h0OiBib2xkO1xcJz4nICsgbWVzc2FnZS5zdW1tYXJ5ICsgJzwvc3Ryb25nPjxicj48YnI+JyArIFxyXG4gICAgICAgICAgICAnPHNwYW4gc3R5bGU9XFwnZm9udC1zaXplOiAxOHB4O1xcJz4nICsgbWVzc2FnZS5kZXRhaWwgKyAnPC9zcGFuPidcIj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L3AtdG9hc3Q+XHJcblxyXG48bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1Byb2ZpbGVQb3B1cFwiPlxyXG4gICAgPGFwcC1wcm9maWxlICpuZ0lmPVwic2hvd1Byb2ZpbGVQb3B1cFwiIChvbkNhbmNlbCk9XCJzaG93UHJvZmlsZVBvcHVwID0gIXNob3dQcm9maWxlUG9wdXBcIj48L2FwcC1wcm9maWxlPlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxhcHAtam9iLXNlYXJjaC1yZXN1bHQtcGFnZSAqbmdJZj1cInNob3dqb2JTZWFyY2hSZXN1bHRQb3B1cFwiIChvbkNhbmNlbCk9XCJzaG93am9iU2VhcmNoUmVzdWx0UG9wdXAgPSAhc2hvd2pvYlNlYXJjaFJlc3VsdFBvcHVwXCI+PC9hcHAtam9iLXNlYXJjaC1yZXN1bHQtcGFnZT5cclxuXHJcblxyXG5cclxuIl19
@@ -27,7 +27,7 @@ export class IdleDetectorComponent {
27
27
  this.is.setupSessionTimeoutObserver();
28
28
  }
29
29
  logout() {
30
- this.ls.logout();
30
+ this.ls.logout('UCPO');
31
31
  this.r.navigateByUrl('login');
32
32
  this.is.reset();
33
33
  }
@@ -62,4 +62,4 @@ export class IdleDetectorComponent {
62
62
  args: [{ selector: 'app-idle-detector', template: "<p-dialog [visible]=\"is.showSessionTimeoutWarning.getValue()\" modal=\"true\"\r\n showHeader=\"false\" closable=\"false\" styleClass=\"app-box\" appendTo=\"body\" position=\"top\">\r\n \r\n <ng-template pTemplate=\"header\">\r\n <h4 class=\"heading ion-padding-left\" style=\"padding-left: 18px;\">{{'Idle Session Warning!' | translate}}</h4>\r\n </ng-template>\r\n \r\n <div class=\"ion-padding-top full-height\">\r\n <div class=\"ion-text-justify\">\r\n No Recent Activity.\r\n <br /> <br />\r\n Select CONTINUE to remain active in the application or you will be logged out in {{is.counter.getValue()}} seconds.\r\n </div>\r\n </div>\r\n <p-footer>\r\n <ion-row>\r\n <ion-col class=\"ion-text-center\">\r\n <ion-button shape=\"round\" type=\"submit\" (click)=\"is.stay()\" color=\"success\" class=\"ion-paddight-right\">\r\n <ion-icon slot=\"start\" name=\"log-in-outline\"></ion-icon>\r\n CONTINUE\r\n </ion-button>\r\n &nbsp;\r\n <ion-button shape=\"round\" type=\"reset\" (click)=\"logout()\" color=\"medium\"\r\n class=\"ion-paddight-left\">\r\n <ion-icon slot=\"start\" name=\"log-out-outline\"></ion-icon>\r\n Logout\r\n </ion-button>\r\n </ion-col>\r\n </ion-row>\r\n </p-footer>\r\n</p-dialog>", styles: [".heading{font-family:var(--app-font-light);color:var(--ion-color-medium-gray);font-size:23px}\n"] }]
63
63
  }], () => [{ type: i1.IdleService }, { type: i2.LoginService }, { type: i3.Router }], null); })();
64
64
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(IdleDetectorComponent, { className: "IdleDetectorComponent", filePath: "lib\\components\\idle-detector\\idle-detector.component.ts", lineNumber: 11 }); })();
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRsZS1kZXRlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvaWRsZS1kZXRlY3Rvci9pZGxlLWRldGVjdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9pZGxlLWRldGVjdG9yL2lkbGUtZGV0ZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7OztJQ0k5Qyw2QkFBaUU7SUFBQSxZQUF1Qzs7SUFBQSxpQkFBSzs7SUFBNUMsZUFBdUM7SUFBdkMsbUVBQXVDOztBRE01RyxNQUFNLE9BQU8scUJBQXFCO0lBRWhDLFlBQW1CLEVBQWdCLEVBQVUsRUFBZ0IsRUFBVSxDQUFTO1FBQTdELE9BQUUsR0FBRixFQUFFLENBQWM7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFjO1FBQVUsTUFBQyxHQUFELENBQUMsQ0FBUTtJQUFJLENBQUM7SUFFckYsUUFBUTtRQUNOLElBQUksQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsRUFBRSxDQUFDLDJCQUEyQixFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDbEIsQ0FBQztzRkFiVSxxQkFBcUI7b0VBQXJCLHFCQUFxQjtZQ1ZsQyxtQ0FDMEY7WUFFeEYsc0ZBRWM7WUFFZCw4QkFBeUMsYUFBQTtZQUVyQyxxQ0FDQTtZQUFBLHFCQUFNLFNBQUE7WUFDTixZQUNGO1lBQUEsaUJBQU0sRUFBQTtZQUVSLGdDQUFVLGNBQUEsa0JBQUEscUJBQUE7WUFHb0MsdUdBQVMsYUFBUyxJQUFDO1lBQ3pELCtCQUF3RDtZQUN4RCwyQkFDRjtZQUFBLGlCQUFhO1lBQ2IseUJBQ0E7WUFBQSxzQ0FDNEI7WUFEVyx1R0FBUyxZQUFRLElBQUM7WUFFdkQsK0JBQXlEO1lBQ3pELHlCQUNGO1lBQUEsaUJBQWEsRUFBQSxFQUFBLEVBQUEsRUFBQTs7WUExQlgscUVBQW1EO1lBV3ZELGVBQ0Y7WUFERSxvSkFDRjs7O2lGREZTLHFCQUFxQjtjQUxqQyxTQUFTOzJCQUNFLG1CQUFtQjs7a0ZBSWxCLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSWRsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9pZGxlL2lkbGUuc2VydmljZSc7XG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2dpbi9sb2dpbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWlkbGUtZGV0ZWN0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vaWRsZS1kZXRlY3Rvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2lkbGUtZGV0ZWN0b3IuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgSWRsZURldGVjdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgaXMgOiBJZGxlU2VydmljZSwgcHJpdmF0ZSBsczogTG9naW5TZXJ2aWNlLCBwcml2YXRlIHI6IFJvdXRlcikgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pcy5zZXR1cElkYWxUaW1lb3V0KCk7XG4gICAgdGhpcy5pcy5zZXR1cFNlc3Npb25UaW1lb3V0T2JzZXJ2ZXIoKTtcbiAgfVxuXG4gIGxvZ291dCgpIHtcbiAgICB0aGlzLmxzLmxvZ291dCgpO1xuICAgIHRoaXMuci5uYXZpZ2F0ZUJ5VXJsKCdsb2dpbicpO1xuICAgIHRoaXMuaXMucmVzZXQoKTtcbiAgfVxuXG59XG4iLCI8cC1kaWFsb2cgW3Zpc2libGVdPVwiaXMuc2hvd1Nlc3Npb25UaW1lb3V0V2FybmluZy5nZXRWYWx1ZSgpXCIgbW9kYWw9XCJ0cnVlXCJcclxuICBzaG93SGVhZGVyPVwiZmFsc2VcIiBjbG9zYWJsZT1cImZhbHNlXCIgc3R5bGVDbGFzcz1cImFwcC1ib3hcIiBhcHBlbmRUbz1cImJvZHlcIiBwb3NpdGlvbj1cInRvcFwiPlxyXG4gIFxyXG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cclxuICAgIDxoNCBjbGFzcz1cImhlYWRpbmcgaW9uLXBhZGRpbmctbGVmdFwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiAxOHB4O1wiPnt7J0lkbGUgU2Vzc2lvbiBXYXJuaW5nIScgfCB0cmFuc2xhdGV9fTwvaDQ+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuICBcclxuICA8ZGl2IGNsYXNzPVwiaW9uLXBhZGRpbmctdG9wIGZ1bGwtaGVpZ2h0XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaW9uLXRleHQtanVzdGlmeVwiPlxyXG4gICAgICBObyBSZWNlbnQgQWN0aXZpdHkuXHJcbiAgICAgIDxiciAvPiA8YnIgLz5cclxuICAgICAgU2VsZWN0IENPTlRJTlVFIHRvIHJlbWFpbiBhY3RpdmUgaW4gdGhlIGFwcGxpY2F0aW9uIG9yIHlvdSB3aWxsIGJlIGxvZ2dlZCBvdXQgaW4ge3tpcy5jb3VudGVyLmdldFZhbHVlKCl9fSBzZWNvbmRzLlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPHAtZm9vdGVyPlxyXG4gICAgPGlvbi1yb3c+XHJcbiAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIHR5cGU9XCJzdWJtaXRcIiAoY2xpY2spPVwiaXMuc3RheSgpXCIgY29sb3I9XCJzdWNjZXNzXCIgY2xhc3M9XCJpb24tcGFkZGlnaHQtcmlnaHRcIj5cclxuICAgICAgICAgIDxpb24taWNvbiBzbG90PVwic3RhcnRcIiBuYW1lPVwibG9nLWluLW91dGxpbmVcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgQ09OVElOVUVcclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgJm5ic3A7XHJcbiAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIHR5cGU9XCJyZXNldFwiIChjbGljayk9XCJsb2dvdXQoKVwiIGNvbG9yPVwibWVkaXVtXCJcclxuICAgICAgICAgIGNsYXNzPVwiaW9uLXBhZGRpZ2h0LWxlZnRcIj5cclxuICAgICAgICAgIDxpb24taWNvbiBzbG90PVwic3RhcnRcIiBuYW1lPVwibG9nLW91dC1vdXRsaW5lXCI+PC9pb24taWNvbj5cclxuICAgICAgICAgIExvZ291dFxyXG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgPC9pb24tY29sPlxyXG4gICAgPC9pb24tcm93PlxyXG4gIDwvcC1mb290ZXI+XHJcbjwvcC1kaWFsb2c+Il19
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRsZS1kZXRlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvaWRsZS1kZXRlY3Rvci9pZGxlLWRldGVjdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9pZGxlLWRldGVjdG9yL2lkbGUtZGV0ZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7OztJQ0k5Qyw2QkFBaUU7SUFBQSxZQUF1Qzs7SUFBQSxpQkFBSzs7SUFBNUMsZUFBdUM7SUFBdkMsbUVBQXVDOztBRE01RyxNQUFNLE9BQU8scUJBQXFCO0lBRWhDLFlBQW1CLEVBQWdCLEVBQVUsRUFBZ0IsRUFBVSxDQUFTO1FBQTdELE9BQUUsR0FBRixFQUFFLENBQWM7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFjO1FBQVUsTUFBQyxHQUFELENBQUMsQ0FBUTtJQUFJLENBQUM7SUFFckYsUUFBUTtRQUNOLElBQUksQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsRUFBRSxDQUFDLDJCQUEyQixFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2xCLENBQUM7c0ZBYlUscUJBQXFCO29FQUFyQixxQkFBcUI7WUNWbEMsbUNBQzBGO1lBRXhGLHNGQUVjO1lBRWQsOEJBQXlDLGFBQUE7WUFFckMscUNBQ0E7WUFBQSxxQkFBTSxTQUFBO1lBQ04sWUFDRjtZQUFBLGlCQUFNLEVBQUE7WUFFUixnQ0FBVSxjQUFBLGtCQUFBLHFCQUFBO1lBR29DLHVHQUFTLGFBQVMsSUFBQztZQUN6RCwrQkFBd0Q7WUFDeEQsMkJBQ0Y7WUFBQSxpQkFBYTtZQUNiLHlCQUNBO1lBQUEsc0NBQzRCO1lBRFcsdUdBQVMsWUFBUSxJQUFDO1lBRXZELCtCQUF5RDtZQUN6RCx5QkFDRjtZQUFBLGlCQUFhLEVBQUEsRUFBQSxFQUFBLEVBQUE7O1lBMUJYLHFFQUFtRDtZQVd2RCxlQUNGO1lBREUsb0pBQ0Y7OztpRkRGUyxxQkFBcUI7Y0FMakMsU0FBUzsyQkFDRSxtQkFBbUI7O2tGQUlsQixxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElkbGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaWRsZS9pZGxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9naW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9naW4vbG9naW4uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1pZGxlLWRldGVjdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2lkbGUtZGV0ZWN0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pZGxlLWRldGVjdG9yLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIElkbGVEZXRlY3RvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGlzIDogSWRsZVNlcnZpY2UsIHByaXZhdGUgbHM6IExvZ2luU2VydmljZSwgcHJpdmF0ZSByOiBSb3V0ZXIpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaXMuc2V0dXBJZGFsVGltZW91dCgpO1xuICAgIHRoaXMuaXMuc2V0dXBTZXNzaW9uVGltZW91dE9ic2VydmVyKCk7XG4gIH1cblxuICBsb2dvdXQoKSB7XG4gICAgdGhpcy5scy5sb2dvdXQoJ1VDUE8nKTtcbiAgICB0aGlzLnIubmF2aWdhdGVCeVVybCgnbG9naW4nKTtcbiAgICB0aGlzLmlzLnJlc2V0KCk7XG4gIH1cblxufVxuIiwiPHAtZGlhbG9nIFt2aXNpYmxlXT1cImlzLnNob3dTZXNzaW9uVGltZW91dFdhcm5pbmcuZ2V0VmFsdWUoKVwiIG1vZGFsPVwidHJ1ZVwiXHJcbiAgc2hvd0hlYWRlcj1cImZhbHNlXCIgY2xvc2FibGU9XCJmYWxzZVwiIHN0eWxlQ2xhc3M9XCJhcHAtYm94XCIgYXBwZW5kVG89XCJib2R5XCIgcG9zaXRpb249XCJ0b3BcIj5cclxuICBcclxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XHJcbiAgICA8aDQgY2xhc3M9XCJoZWFkaW5nIGlvbi1wYWRkaW5nLWxlZnRcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogMThweDtcIj57eydJZGxlIFNlc3Npb24gV2FybmluZyEnIHwgdHJhbnNsYXRlfX08L2g0PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgXHJcbiAgPGRpdiBjbGFzcz1cImlvbi1wYWRkaW5nLXRvcCBmdWxsLWhlaWdodFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImlvbi10ZXh0LWp1c3RpZnlcIj5cclxuICAgICAgTm8gUmVjZW50IEFjdGl2aXR5LlxyXG4gICAgICA8YnIgLz4gPGJyIC8+XHJcbiAgICAgIFNlbGVjdCBDT05USU5VRSB0byByZW1haW4gYWN0aXZlIGluIHRoZSBhcHBsaWNhdGlvbiBvciB5b3Ugd2lsbCBiZSBsb2dnZWQgb3V0IGluIHt7aXMuY291bnRlci5nZXRWYWx1ZSgpfX0gc2Vjb25kcy5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxwLWZvb3Rlcj5cclxuICAgIDxpb24tcm93PlxyXG4gICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi10ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiB0eXBlPVwic3VibWl0XCIgKGNsaWNrKT1cImlzLnN0YXkoKVwiIGNvbG9yPVwic3VjY2Vzc1wiIGNsYXNzPVwiaW9uLXBhZGRpZ2h0LXJpZ2h0XCI+XHJcbiAgICAgICAgICA8aW9uLWljb24gc2xvdD1cInN0YXJ0XCIgbmFtZT1cImxvZy1pbi1vdXRsaW5lXCI+PC9pb24taWNvbj5cclxuICAgICAgICAgIENPTlRJTlVFXHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICZuYnNwO1xyXG4gICAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiB0eXBlPVwicmVzZXRcIiAoY2xpY2spPVwibG9nb3V0KClcIiBjb2xvcj1cIm1lZGl1bVwiXHJcbiAgICAgICAgICBjbGFzcz1cImlvbi1wYWRkaWdodC1sZWZ0XCI+XHJcbiAgICAgICAgICA8aW9uLWljb24gc2xvdD1cInN0YXJ0XCIgbmFtZT1cImxvZy1vdXQtb3V0bGluZVwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICBMb2dvdXRcclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgIDwvaW9uLWNvbD5cclxuICAgIDwvaW9uLXJvdz5cclxuICA8L3AtZm9vdGVyPlxyXG48L3AtZGlhbG9nPiJdfQ==
@@ -85,6 +85,14 @@ export class HttpHeaderInterceptor {
85
85
  .append('X-Custom-Param-Cid', this.claimantContextService.getClaimantId())
86
86
  });
87
87
  }
88
+ console.log("REQUEST" + request.url.includes('/oauth/token'));
89
+ if (request.url.includes('/oauth/token')) {
90
+ if (window.location.pathname.includes('/ss/login') || window.location.href.includes('ss/login')) {
91
+ request = request.clone({
92
+ headers: request.headers.append('X-App-Source', 'security-webapp')
93
+ });
94
+ }
95
+ }
88
96
  return next.handle(request);
89
97
  }
90
98
  static { this.ɵfac = function HttpHeaderInterceptor_Factory(t) { return new (t || HttpHeaderInterceptor)(i0.ɵɵinject(i1.LoginService), i0.ɵɵinject(i2.UtilService), i0.ɵɵinject(i3.LoggerService), i0.ɵɵinject(i4.CaptchaService), i0.ɵɵinject(i5.FingerprintService), i0.ɵɵinject(i6.ClaimantContextService)); }; }
@@ -96,4 +104,4 @@ export class HttpHeaderInterceptor {
96
104
  providedIn: 'root'
97
105
  }]
98
106
  }], () => [{ type: i1.LoginService }, { type: i2.UtilService }, { type: i3.LoggerService }, { type: i4.CaptchaService }, { type: i5.FingerprintService }, { type: i6.ClaimantContextService }], null); })();
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1oZWFkZXIuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2ludGVyY2VwdG9ycy9oZWFkZXItaW50ZXJjZXB0b3IvaHR0cC1oZWFkZXIuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU8zQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7O0FBUXpELE1BQU0sT0FBTyxxQkFBcUI7SUFFaEMsWUFBbUIsWUFBMkIsRUFBUyxJQUFpQixFQUFVLE1BQXFCLEVBQ25GLGNBQThCLEVBQVUsa0JBQXNDLEVBQVUsc0JBQThDO1FBRHZJLGlCQUFZLEdBQVosWUFBWSxDQUFlO1FBQVMsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDbkYsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVUsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUFVLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7SUFFMUosQ0FBQztJQUVELFNBQVMsQ0FBQyxPQUF5QixFQUFFLElBQWlCO1FBQ3BELHVEQUF1RDtRQUN2RCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyx3REFBd0QsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNuRix5QkFBeUI7UUFDekIsSUFBSSxXQUFXLEdBQWUsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMxRCxJQUFJLFdBQVcsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDO1lBQ3BDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQztZQUNwQyxDQUFDLE9BQU8sQ0FBQyxHQUFH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Q0FBQyxLQUFLLENBQUM7Z0JBQ3RCLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztxQkFDakIsTUFBTSxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDO2FBQ3ZFLENBQUMsQ0FBQztTQUNOO1FBRUQsSUFBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsRUFBQztZQUNuRSxPQUFPLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFDdEIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO3FCQUNqQixNQUFNLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQ3hFLENBQUMsQ0FBQztTQUNOO1FBRUQsSUFBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLEVBQUUsRUFBQztZQUMxRSxPQUFPLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFDdEIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO3FCQUNqQixNQUFNLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGFBQWEsRUFBRSxDQUFDO2FBQy9FLENBQUMsQ0FBQztTQUNOO1FBQ0gsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlCLENBQUM7c0ZBckZVLHFCQUFxQjt1RUFBckIscUJBQXFCLFdBQXJCLHFCQUFxQixtQkFGcEIsTUFBTTs7aUZBRVAscUJBQXFCO2NBSGpDLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBJbnRlcmNlcHRvciwgSHR0cFJlcXVlc3QsIEh0dHBIYW5kbGVyLCBIdHRwRXZlbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBVc2VyTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvVXNlck1vZGVsJztcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXRpbC91dGlsLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9naW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9naW4vbG9naW4uc2VydmljZSc7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7IExpYkNvbnN0YW50cyB9IGZyb20gJy4uLy4uL21vZGVscy9MaWJDb25zdGFudHMnO1xuaW1wb3J0IHsgQ2FwdGNoYVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jYXB0Y2hhL2NhcHRjaGEuc2VydmljZSc7XG5pbXBvcnQgeyBGaW5nZXJwcmludFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mcGpzL2ZpbmdlcnByaW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xhaW1hbnRDb250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NsYWltYW50LWNvbnRleHQvY2xhaW1hbnQtY29udGV4dC5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSHR0cEhlYWRlckludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9ye1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBsb2dpblNlcnZpY2UgOiBMb2dpblNlcnZpY2UsIHB1YmxpYyB1dGlsOiBVdGlsU2VydmljZSwgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlclNlcnZpY2UsIFxuICAgICAgICAgICAgICBwcml2YXRlIGNhcHRjaGFTZXJ2aWNlOiBDYXB0Y2hhU2VydmljZSwgcHJpdmF0ZSBmaW5nZXJwcmludFNlcnZpY2U6IEZpbmdlcnByaW50U2VydmljZSwgcHJpdmF0ZSBjbGFpbWFudENvbnRleHRTZXJ2aWNlOiBDbGFpbWFudENvbnRleHRTZXJ2aWNlKSB7IFxuXG4gIH1cblxuICBpbnRlcmNlcHQocmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XG4gICAgLy8gYWRkIGF1dGhvcml6YXRpb24gaGVhZGVyIHdpdGggand0IHRva2VuIGlmIGF2YWlsYWJsZVxuICAgIHRoaXMubG9nZ2VyLmxvZygnW0h0dHBIZWFkZXJJbnRlcmNlcHRvcl0gSW5zaWRlIEludGVyY2VwdG9yIGJlZm9yZSAtLT4gJywgcmVxdWVzdCk7XG4gICAgLy90aGlzLnV0aWwuc2hvd0xvYWRlcigpO1xuICAgIGxldCBjdXJyZW50VXNlciA6IFVzZXJNb2RlbCA9IHRoaXMubG9naW5TZXJ2aWNlLmdldFVzZXIoKTtcbiAgICBpZiAoY3VycmVudFVzZXIgJiYgIShyZXF1ZXN0LnVybC5pbmNsdWRlcyhcIi9vYXV0aC90b2tlblwiKSB8fCBcbiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LnVybC5pbmNsdWRlcygnL2NoZWNrX3Rva2VuJykgfHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgKHJlcXVlc3QudXJsLmluY2x1ZGVzKCcvdHJlbmRzJykgJiYgcmVxdWVzdC5tZXRob2QudG9Mb2NhbGVMb3dlckNhc2UoKSA9PSAnZ2V0JykpKSB7XG4gICAgICByZXF1ZXN0ID0gcmVxdWVzdC5jbG9uZSh7XG4gICAgICAgIGhlYWRlcnM6IHJlcXVlc3QuaGVhZGVyc1xuICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZCgnQXV0aG9yaXphdGlvbicsIGBCZWFyZXIgJHtjdXJyZW50VXNlci5hY2Nlc3NfdG9rZW59YClcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZighKGN1cnJlbnRVc2VyICYmIGN1cnJlbnRVc2VyLnVzZXJuYW1lKSAmJiAocmVxdWVzdC51cmwuaW5jbHVkZXMoXCIvb2F1dGgvdG9rZW5cIikgfHwgcmVxdWVzdC51cmwuaW5jbHVkZXMoJy9jaGVja190b2tlbicpKSApe1xuICAgICAgaWYoIXJlcXVlc3QuaGVhZGVycy5nZXQoJ0F1dGhvcml6YXRpb24nKSl7XG4gICAgICAgIHJlcXVlc3QgPSByZXF1ZXN0LmNsb25lKHtcbiAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IGZhbHNlLFxuICAgICAgICAgIGhlYWRlcnM6IHJlcXVlc3QuaGVhZGVyc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKCdBdXRob3JpemF0aW9uJywgYEJhc2ljIGAgKyBidG9hKGAke0xpYkNvbnN0YW50cy5vYXV0aENsaWVudFVzZXJ9OiR7TGliQ29uc3RhbnRzLm9hdXRoQ2xpZW50U2VjcmV0fWApKVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAgIGxldCB2YWx1ZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdsYW5ndWFnZScpO1xuICAgICAgbGV0IGxhbmd1YWdlID0gdmFsdWUgIT0gbnVsbCA/IHZhbHVlIDogJ2VuJztcbiAgICAgIHJlcXVlc3QgPSByZXF1ZXN0LmNsb25lKHtcbiAgICAgICAgaGVhZGVyczogcmVxdWVzdC5oZWFkZXJzLmFwcGVuZCgnQWNjZXB0LUxhbmd1YWdlJywgbGFuZ3VhZ2UpXG4gICAgICB9KTtcbiAgXG4gICAgICBpZih0aGlzLmZpbmdlcnByaW50U2VydmljZS5nZXRCcm93c2VyRmluZ2VycHJpbnQoKSl7XG4gICAgICAgIHJlcXVlc3QgPSByZXF1ZXN0LmNsb25lKHtcbiAgICAgICAgICBoZWFkZXJzOiByZXF1ZXN0LmhlYWRlcnNcbiAgICAgICAgICAgICAgICAuYXBwZW5kKCdYLUN1c3RvbS1GaW5nZXJwcmludCcsIHRoaXMuZmluZ2VycHJpbnRTZXJ2aWNlLmdldEJyb3dzZXJGaW5nZXJwcmludCgpKVxuICAgICAgICAgIH0pO1xuICAgICAgfVxuICBcbiAgICAgIGlmKHRoaXMuZmluZ2VycHJpbnRTZXJ2aWNlLmdldFJlcXVlc3RJZCgpKXtcbiAgICAgICAgcmVxdWVzdCA9IHJlcXVlc3QuY2xvbmUoe1xuICAgICAgICAgIGhlYWRlcnM6IHJlcXVlc3QuaGVhZGVyc1xuICAgICAgICAgICAgICAgIC5hcHBlbmQoJ1gtQ3VzdG9tLUlQUVMtUmVxdWVzdElkJywgdGhpcy5maW5nZXJwcmludFNlcnZpY2UuZ2V0UmVxdWVzdElkKCkpXG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBcbiAgICAgIGlmKHRoaXMuY2FwdGNoYVNlcnZpY2UuZ2V0Q2FwdGNoYSgpKXtcbiAgICAgICAgcmVxdWVzdCA9IHJlcXVlc3QuY2xvbmUoe1xuICAgICAgICAgIGhlYWRlcnM6IHJlcXVlc3QuaGVhZGVyc1xuICAgICAgICAgICAgICAgIC5hcHBlbmQoJ1gtQ3VzdG9tLUNhcHRjaGEnLCB0aGlzLmNhcHRjaGFTZXJ2aWNlLmdldENhcHRjaGEoKSlcbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgXG4gICAgICBpZih0aGlzLmNhcHRjaGFTZXJ2aWNlLmdldEludmlzaWJlbENhcHRjaGEoKSl7XG4gICAgICAgIHJlcXVlc3QgPSByZXF1ZXN0LmNsb25lKHtcbiAgICAgICAgICBoZWFkZXJzOiByZXF1ZXN0LmhlYWRlcnNcbiAgICAgICAgICAgICAgICAuYXBwZW5kKCdYLUN1c3RvbS1DYXB0Y2hhLXYzJywgdGhpcy5jYXB0Y2hhU2VydmljZS5nZXRJbnZpc2liZWxDYXB0Y2hhKCkpXG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gIFxuICAgICAgaWYodGhpcy5sb2dpblNlcnZpY2UuZ2V0QXV0aGNvZGUoKSl7XG4gICAgICAgIHJlcXVlc3QgPSByZXF1ZXN0LmNsb25lKHtcbiAgICAgICAgICBoZWFkZXJzOiByZXF1ZXN0LmhlYWRlcnNcbiAgICAgICAgICAgICAgICAuYXBwZW5kKCdYLUN1c3RvbS1BdXRoY29kZScsIHRoaXMubG9naW5TZXJ2aWNlLmdldEF1dGhjb2RlKCkgKyAnJylcbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgXG4gICAgICBpZih0aGlzLmxvZ2luU2VydmljZS5pc0NzcigpICYmIHRoaXMuY2xhaW1hbnRDb250ZXh0U2VydmljZS5nZXRTc24oKSl7XG4gICAgICAgIHJlcXVlc3QgPSByZXF1ZXN0LmNsb25lKHtcbiAgICAgICAgICBoZWFkZXJzOiByZXF1ZXN0LmhlYWRlcnNcbiAgICAgICAgICAgICAgICAuYXBwZW5kKCdYLUN1c3RvbS1QYXJhbS1Tb2MnLCB0aGlzLmNsYWltYW50Q29udGV4dFNlcnZpY2UuZ2V0U3NuKCkpXG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gIFxuICAgICAgaWYodGhpcy5sb2dpblNlcnZpY2UuaXNDc3IoKSAmJiB0aGlzLmNsYWltYW50Q29udGV4dFNlcnZpY2UuZ2V0Q2xhaW1hbnRJZCgpKXtcbiAgICAgICAgcmVxdWVzdCA9IHJlcXVlc3QuY2xvbmUoe1xuICAgICAgICAgIGhlYWRlcnM6IHJlcXVlc3QuaGVhZGVyc1xuICAgICAgICAgICAgICAgIC5hcHBlbmQoJ1gtQ3VzdG9tLVBhcmFtLUNpZCcsIHRoaXMuY2xhaW1hbnRDb250ZXh0U2VydmljZS5nZXRDbGFpbWFudElkKCkpXG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcXVlc3QpO1xuICB9XG59XG4iXX0=
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1oZWFkZXIuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2ludGVyY2VwdG9ycy9oZWFkZXItaW50ZXJjZXB0b3IvaHR0cC1oZWFkZXIuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU8zQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7O0FBUXpELE1BQU0sT0FBTyxxQkFBcUI7SUFFaEMsWUFBbUIsWUFBMkIsRUFBUyxJQUFpQixFQUFVLE1BQXFCLEVBQ25GLGNBQThCLEVBQVUsa0JBQXNDLEVBQVUsc0JBQThDO1FBRHZJLGlCQUFZLEdBQVosWUFBWSxDQUFlO1FBQVMsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDbkYsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVUsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUFVLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7SUFFMUosQ0FBQztJQUVELFNBQVMsQ0FBQyxPQUF5QixFQUFFLElBQWlCO1FBQ3BELHVEQUF1RDtRQUN2RCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyx3REFBd0QsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNuRix5QkFBeUI7UUFDekIsSUFBSSxXQUFXLEdBQWUsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMxRCxJQUFJLFdBQVcsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDO1lBQ3BDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQztZQUNwQyxDQUFDLE9BQU8sQ0FBQyxHQUFH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Q0FBQyxLQUFLLENBQUM7b0JBQy9CLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsaUJBQWlCLENBQUM7aUJBQzFELENBQUMsQ0FBQzthQUNKO1NBQ0Y7UUFFRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsQ0FBQztzRkFqR1UscUJBQXFCO3VFQUFyQixxQkFBcUIsV0FBckIscUJBQXFCLG1CQUZwQixNQUFNOztpRkFFUCxxQkFBcUI7Y0FIakMsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cEludGVyY2VwdG9yLCBIdHRwUmVxdWVzdCwgSHR0cEhhbmRsZXIsIEh0dHBFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFVzZXJNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9Vc2VyTW9kZWwnO1xuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2dpbi9sb2dpbi5zZXJ2aWNlJztcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2dnZXIvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGliQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0xpYkNvbnN0YW50cyc7XG5pbXBvcnQgeyBDYXB0Y2hhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NhcHRjaGEvY2FwdGNoYS5zZXJ2aWNlJztcbmltcG9ydCB7IEZpbmdlcnByaW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZwanMvZmluZ2VycHJpbnQuc2VydmljZSc7XG5pbXBvcnQgeyBDbGFpbWFudENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2xhaW1hbnQtY29udGV4dC9jbGFpbWFudC1jb250ZXh0LnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBIdHRwSGVhZGVySW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3J7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGxvZ2luU2VydmljZSA6IExvZ2luU2VydmljZSwgcHVibGljIHV0aWw6IFV0aWxTZXJ2aWNlLCBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyU2VydmljZSwgXG4gICAgICAgICAgICAgIHByaXZhdGUgY2FwdGNoYVNlcnZpY2U6IENhcHRjaGFTZXJ2aWNlLCBwcml2YXRlIGZpbmdlcnByaW50U2VydmljZTogRmluZ2VycHJpbnRTZXJ2aWNlLCBwcml2YXRlIGNsYWltYW50Q29udGV4dFNlcnZpY2U6IENsYWltYW50Q29udGV4dFNlcnZpY2UpIHsgXG5cbiAgfVxuXG4gIGludGVyY2VwdChyZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcbiAgICAvLyBhZGQgYXV0aG9yaXphdGlvbiBoZWFkZXIgd2l0aCBqd3QgdG9rZW4gaWYgYXZhaWxhYmxlXG4gICAgdGhpcy5sb2dnZXIubG9nKCdbSHR0cEhlYWRlckludGVyY2VwdG9yXSBJbnNpZGUgSW50ZXJjZXB0b3IgYmVmb3JlIC0tPiAnLCByZXF1ZXN0KTtcbiAgICAvL3RoaXMudXRpbC5zaG93TG9hZGVyKCk7XG4gICAgbGV0IGN1cnJlbnRVc2VyIDogVXNlck1vZGVsID0gdGhpcy5sb2dpblNlcnZpY2UuZ2V0VXNlcigpO1xuICAgIGlmIChjdXJyZW50VXNlciAmJiAhKHJlcXVlc3QudXJsLmluY2x1ZGVzKFwiL29hdXRoL3Rva2VuXCIpIHx8IFxuICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QudXJsLmluY2x1ZGVzKCcvY2hlY2tfdG9rZW4nKSB8fCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAocmVxdWVzdC51cmwuaW5jbHVkZXMoJy90cmVuZHMnKSAmJiByZXF1ZXN0Lm1ldGhvZC50b0xvY2FsZUxvd2VyQ2FzZSgpID09ICdnZXQnKSkpIHtcbiAgICAgIHJlcXVlc3QgPSByZXF1ZXN0LmNsb25lKHtcbiAgICAgICAgaGVhZGVyczogcmVxdWVzdC5oZWFkZXJzXG4gICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKCdBdXRob3JpemF0aW9uJywgYEJlYXJlciAke2N1cnJlbnRVc2VyLmFjY2Vzc190b2tlbn1gKVxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmKCEoY3VycmVudFVzZXIgJiYgY3VycmVudFVzZXIudXNlcm5hbWUpICYmIChyZXF1ZXN0LnVybC5pbmNsdWRlcyhcIi9vYXV0aC90b2tlblwiKSB8fCByZXF1ZXN0LnVybC5pbmNsdWRlcygnL2NoZWNrX3Rva2VuJykpICl7XG4gICAgICBpZighcmVxdWVzdC5oZWFkZXJzLmdldCgnQXV0aG9yaXphdGlvbicpKXtcbiAgICAgICAgcmVxdWVzdCA9IHJlcXVlc3QuY2xvbmUoe1xuICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogZmFsc2UsXG4gICAgICAgICAgaGVhZGVyczogcmVxdWVzdC5oZWFkZXJzXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoJ0F1dGhvcml6YXRpb24nLCBgQmFzaWMgYCArIGJ0b2EoYCR7TGliQ29uc3RhbnRzLm9hdXRoQ2xpZW50VXNlcn06JHtMaWJDb25zdGFudHMub2F1dGhDbGllbnRTZWNyZXR9YCkpXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgICAgbGV0IHZhbHVlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xhbmd1YWdlJyk7XG4gICAgICBsZXQgbGFuZ3VhZ2UgPSB2YWx1ZSAhPSBudWxsID8gdmFsdWUgOiAnZW4nO1xuICAgICAgcmVxdWVzdCA9IHJlcXVlc3QuY2xvbmUoe1xuICAgICAgICBoZWFkZXJzOiByZXF1ZXN0LmhlYWRlcnMuYXBwZW5kKCdBY2NlcHQtTGFuZ3VhZ2UnLCBsYW5ndWFnZSlcbiAgICAgIH0pO1xuICBcbiAgICAgIGlmKHRoaXMuZmluZ2VycHJpbnRTZXJ2aWNlLmdldEJyb3dzZXJGaW5nZXJwcmludCgpKXtcbiAgICAgICAgcmVxdWVzdCA9IHJlcXVlc3QuY2xvbmUoe1xuICAgICAgICAgIGhlYWRlcnM6IHJlcXVlc3QuaGVhZGVyc1xuICAgICAgICAgICAgICAgIC5hcHBlbmQoJ1gtQ3VzdG9tLUZpbmdlcnByaW50JywgdGhpcy5maW5nZXJwcmludFNlcnZpY2UuZ2V0QnJvd3NlckZpbmdlcnByaW50KCkpXG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gIFxuICAgICAgaWYodGhpcy5maW5nZXJwcmludFNlcnZpY2UuZ2V0UmVxdWVzdElkKCkpe1xuICAgICAgICByZXF1ZXN0ID0gcmVxdWVzdC5jbG9uZSh7XG4gICAgICAgICAgaGVhZGVyczogcmVxdWVzdC5oZWFkZXJzXG4gICAgICAgICAgICAgICAgLmFwcGVuZCgnWC1DdXN0b20tSVBRUy1SZXF1ZXN0SWQnLCB0aGlzLmZpbmdlcnByaW50U2VydmljZS5nZXRSZXF1ZXN0SWQoKSlcbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgaWYodGhpcy5jYXB0Y2hhU2VydmljZS5nZXRDYXB0Y2hhKCkpe1xuICAgICAgICByZXF1ZXN0ID0gcmVxdWVzdC5jbG9uZSh7XG4gICAgICAgICAgaGVhZGVyczogcmVxdWVzdC5oZWFkZXJzXG4gICAgICAgICAgICAgICAgLmFwcGVuZCgnWC1DdXN0b20tQ2FwdGNoYScsIHRoaXMuY2FwdGNoYVNlcnZpY2UuZ2V0Q2FwdGNoYSgpKVxuICAgICAgICAgIH0pO1xuICAgICAgfVxuICBcbiAgICAgIGlmKHRoaXMuY2FwdGNoYVNlcnZpY2UuZ2V0SW52aXNpYmVsQ2FwdGNoYSgpKXtcbiAgICAgICAgcmVxdWVzdCA9IHJlcXVlc3QuY2xvbmUoe1xuICAgICAgICAgIGhlYWRlcnM6IHJlcXVlc3QuaGVhZGVyc1xuICAgICAgICAgICAgICAgIC5hcHBlbmQoJ1gtQ3VzdG9tLUNhcHRjaGEtdjMnLCB0aGlzLmNhcHRjaGFTZXJ2aWNlLmdldEludmlzaWJlbENhcHRjaGEoKSlcbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgXG4gICAgICBpZih0aGlzLmxvZ2luU2VydmljZS5nZXRBdXRoY29kZSgpKXtcbiAgICAgICAgcmVxdWVzdCA9IHJlcXVlc3QuY2xvbmUoe1xuICAgICAgICAgIGhlYWRlcnM6IHJlcXVlc3QuaGVhZGVyc1xuICAgICAgICAgICAgICAgIC5hcHBlbmQoJ1gtQ3VzdG9tLUF1dGhjb2RlJywgdGhpcy5sb2dpblNlcnZpY2UuZ2V0QXV0aGNvZGUoKSArICcnKVxuICAgICAgICAgIH0pO1xuICAgICAgfVxuICBcbiAgICAgIGlmKHRoaXMubG9naW5TZXJ2aWNlLmlzQ3NyKCkgJiYgdGhpcy5jbGFpbWFudENvbnRleHRTZXJ2aWNlLmdldFNzbigpKXtcbiAgICAgICAgcmVxdWVzdCA9IHJlcXVlc3QuY2xvbmUoe1xuICAgICAgICAgIGhlYWRlcnM6IHJlcXVlc3QuaGVhZGVyc1xuICAgICAgICAgICAgICAgIC5hcHBlbmQoJ1gtQ3VzdG9tLVBhcmFtLVNvYycsIHRoaXMuY2xhaW1hbnRDb250ZXh0U2VydmljZS5nZXRTc24oKSlcbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgXG4gICAgICBpZih0aGlzLmxvZ2luU2VydmljZS5pc0NzcigpICYmIHRoaXMuY2xhaW1hbnRDb250ZXh0U2VydmljZS5nZXRDbGFpbWFudElkKCkpe1xuICAgICAgICByZXF1ZXN0ID0gcmVxdWVzdC5jbG9uZSh7XG4gICAgICAgICAgaGVhZGVyczogcmVxdWVzdC5oZWFkZXJzXG4gICAgICAgICAgICAgICAgLmFwcGVuZCgnWC1DdXN0b20tUGFyYW0tQ2lkJywgdGhpcy5jbGFpbWFudENvbnRleHRTZXJ2aWNlLmdldENsYWltYW50SWQoKSlcbiAgICAgICAgICB9KTtcbiAgICAgIH1cblxuY29uc29sZS5sb2coXCJSRVFVRVNUXCIrcmVxdWVzdC51cmwuaW5jbHVkZXMoJy9vYXV0aC90b2tlbicpKVxuXG4gICAgaWYgKHJlcXVlc3QudXJsLmluY2x1ZGVzKCcvb2F1dGgvdG9rZW4nKSkge1xuXHRcbiAgICBpZiAod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLmluY2x1ZGVzKCcvc3MvbG9naW4nKSB8fCB3aW5kb3cubG9jYXRpb24uaHJlZi5pbmNsdWRlcygnc3MvbG9naW4nKSkge1xuICAgICAgICByZXF1ZXN0ID0gcmVxdWVzdC5jbG9uZSh7XG5cdGhlYWRlcnM6IHJlcXVlc3QuaGVhZGVycy5hcHBlbmQoJ1gtQXBwLVNvdXJjZScsICdzZWN1cml0eS13ZWJhcHAnKVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxdWVzdCk7XG4gIH1cbn1cbiJdfQ==
@@ -45,7 +45,7 @@ export class IdleService {
45
45
  this.counter.next(this.time - val);
46
46
  });
47
47
  this.counterEndSubscription = this.timer.subscribe(val => {
48
- this.logout();
48
+ this.ls.logout('SETI');
49
49
  });
50
50
  });
51
51
  // sets the ping interval to 15 seconds
@@ -156,4 +156,4 @@ export class IdleService {
156
156
  providedIn: 'root'
157
157
  }]
158
158
  }], () => [{ type: i1.LoggerService }, { type: i2.Idle }, { type: i3.LoginService }, { type: i4.NavController }, { type: i5.Keepalive }], null); })();
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9pZGxlL2lkbGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSx3QkFBd0IsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUUvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBZ0IsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7QUFJekQ7Ozs7O0dBS0c7QUFJSCxNQUFNLE9BQU8sV0FBVztJQWV0QixZQUFxQixNQUFxQixFQUFTLElBQVUsRUFBVSxFQUFpQixFQUFVLEdBQWtCLEVBQVUsU0FBb0I7UUFBN0gsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUFTLFNBQUksR0FBSixJQUFJLENBQU07UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFlO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFiM0ksa0JBQWEsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJO1FBQ3BDLFVBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNO1FBQ3BDLFNBQUksR0FBRyxHQUFHLENBQUM7UUFDSixjQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3JELFlBQU8sR0FBNkIsSUFBSSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEUs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QUFDO1FBQ2pCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsSUFBRyxJQUFJLENBQUMsbUJBQW1CLEVBQUM7WUFDMUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3hDO1FBQ0QsSUFBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUM7WUFDN0IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQzNDO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFZLEVBQUUsUUFBaUI7UUFDeEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsUUFBUSxDQUFDLENBQUM7UUFDOUMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzRFQWhKVSxXQUFXO3VFQUFYLFdBQVcsV0FBWCxXQUFXLG1CQUZWLE1BQU07O2lGQUVQLFdBQVc7Y0FIdkIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IERFRkFVTFRfSU5URVJSVVBUU09VUkNFUywgSWRsZSB9IGZyb20gJ0BuZy1pZGxlL2NvcmUnO1xuaW1wb3J0IHsgS2VlcGFsaXZlIH0gZnJvbSAnQG5nLWlkbGUva2VlcGFsaXZlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgaW50ZXJ2YWwsIFN1YnNjcmlwdGlvbiwgdGltZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBMaWJDb25zdGFudHMgfSBmcm9tICcuLi8uLi9tb2RlbHMvTGliQ29uc3RhbnRzJztcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi9sb2dnZXIvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9naW5TZXJ2aWNlIH0gZnJvbSAnLi4vbG9naW4vbG9naW4uc2VydmljZSc7XG5cbi8qKlxuICogVGhpcyBzZXJ2aWNlIHdpbGwgYXV0b21hdGljYWxseSBleHRlbmQgdXNlcidzIHNlc3Npb24gYnkgcmVmcmVzaGluZyBhY2Nlc3NfdG9rZW4gaWYgdGhlIHZhbGlkaXR5IG9mIGFjY2VzcyB0b2tlbiBpcyBsZXNzIHRoYW4gMTIwcyBhbmQgXG4gKiB1c2VyIGlzIG5vdCBpZGxlIG9uIHRoZSBzY3JlZW4uXG4gKiBcbiAqIEBhdXRob3IgUHJlcmFrIFRpd2FyaVxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBJZGxlU2VydmljZSB7XG4gIHByaXZhdGUgc2Vzc2lvblZhbGlkaXR5VGlsbCA6IERhdGU7XG4gIHB1YmxpYyB0aW1lckludGVydmFsID0gaW50ZXJ2YWwoMTAwMCk7IC8vMXNcbiAgcHVibGljIHRpbWVyID0gdGltZXIoMTIwMDAwKTsgLy8zMHMgXG4gIHRpbWUgPSAxMjA7XG4gIHB1YmxpYyBjb3VudERvd24gPSB0aGlzLnRpbWVySW50ZXJ2YWwucGlwZSh0YWtlKHRoaXMudGltZSkpO1xuICBwdWJsaWMgY291bnRlciA6IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCgwKTtcbiAgbGFzdFBpbmc/OiBEYXRlID0gbnVsbDtcblxuICBjb3VudGVyU3Vic2NyaXB0aW9uIDogU3Vic2NyaXB0aW9uO1xuICBjb3VudGVyRW5kU3Vic2NyaXB0aW9uIDogU3Vic2NyaXB0aW9uO1xuICBzZXNzaW9uVmFsaWRpdHlzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBwdWJsaWMgc2hvd1Nlc3Npb25UaW1lb3V0V2FybmluZyA6IEJlaGF2aW9yU3ViamVjdDxCb29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKCBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyU2VydmljZSAscHVibGljIGlkbGU6IElkbGUsIHByaXZhdGUgbHMgOiBMb2dpblNlcnZpY2UsIHByaXZhdGUgbmF2OiBOYXZDb250cm9sbGVyLCBwcml2YXRlIGtlZXBhbGl2ZTogS2VlcGFsaXZlKSB7IFxuICAgIHRoaXMubG9nZ2VyLmxvZygnW0lkbGVTZXJ2aWNlXSBJZGxlU2VydmljZSBJbml0aWFsaXplZCcpO1xuICB9XG5cbiAgc2V0dXBJZGFsVGltZW91dCgpe1xuICAgIC8vIHNldHMgYW4gaWRsZSB0aW1lb3V0IG9mIDE4MCBzZWNvbmRzXG4gICAgdGhpcy5pZGxlLnNldElkbGUoTGliQ29uc3RhbnRzLmlkbGVUaW1lKTtcbiAgICAvLyBzZXRzIGEgdGltZW91dCBwZXJpb2Qgb2YgMTIwIHNlY29uZHMuIGFmdGVyIDMwMCBzZWNvbmRzIG9mIGluYWN0aXZpdHksIHRoZSB1c2VyIHdpbGwgYmUgY29uc2lkZXJlZCB0aW1lZCBvdXQuXG4gICAgdGhpcy5pZGxlLnNldFRpbWVvdXQoTGliQ29uc3RhbnRzLnRpbWVPdXRQZXJpb2QpO1xuICAgIC8vIHNldHMgdGhlIGRlZmF1bHQgaW50ZXJydXB0cywgaW4gdGhpcyBjYXNlLCB0aGluZ3MgbGlrZSBjbGlja3MsIHNjcm9sbHMsIHRvdWNoZXMgdG8gdGhlIGRvY3VtZW50XG4gICAgdGhpcy5pZGxlLnNldEludGVycnVwdHMoREVGQVVMVF9JTlRFUlJVUFRTT1VSQ0VTKTtcblxuICAgIHRoaXMuaWRsZS5vbklkbGVTdGFydC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuc2hvd1Nlc3Npb25UaW1lb3V0V2FybmluZy5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmNvdW50ZXJTdWJzY3JpcHRpb24gPSB0aGlzLmNvdW50RG93bi5zdWJzY3JpYmUodmFsID0+e1xuICAgICAgICAgIHRoaXMuY291bnRlci5uZXh0KHRoaXMudGltZSAtIHZhbCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY291bnRlckVuZFN1YnNjcmlwdGlvbiA9IHRoaXMudGltZXIuc3Vic2NyaWJlKHZhbCA9PiB7XG4gICAgICAgICAgdGhpcy5sb2dvdXQoKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICAvLyBzZXRzIHRoZSBwaW5nIGludGVydmFsIHRvIDE1IHNlY29uZHNcbiAgICB0aGlzLmtlZXBhbGl2ZS5pbnRlcnZhbCgxNSk7XG5cbiAgICB0aGlzLmtlZXBhbGl2ZS5vblBpbmcuc3Vic2NyaWJlKCgpID0+IHRoaXMubGFzdFBpbmcgPSBuZXcgRGF0ZSgpKTtcblxuICAgIHRoaXMubHMuZ2V0VXNlckJzKCkuc3Vic2NyaWJlKHVzZXIgPT4ge1xuICAgICAgaWYodXNlcil7XG4gICAgICAgIHRoaXMubG9nZ2VyLmxvZygnSWRsZVNlcnZpY2Ugd2F0Y2hpbmcnKTtcbiAgICAgICAgdGhpcy5zZXNzaW9uVmFsaWRpdHlUaWxsID0gdGhpcy5hZGRTZWNvbmRzKG5ldyBEYXRlKCksIHVzZXIuZXhwaXJlc19pbik7XG4gICAgICAgIHRoaXMuaWRsZS53YXRjaCgpXG4gICAgICB9ZWxzZSB7XG4gICAgICAgIHRoaXMuaWRsZS5zdG9wKCk7XG4gICAgICAgIHRoaXMubG9nZ2VyLmxvZygnSWRsZVNlcnZpY2Ugc3RvcHBlZCcpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmVzZXQoKSB7XG4gICAgdGhpcy5pZGxlLndhdGNoKCk7XG4gICAgdGhpcy5zaG93U2Vzc2lvblRpbWVvdXRXYXJuaW5nLm5leHQoZmFsc2UpO1xuICAgIGlmKHRoaXMuY291bnRlclN1YnNjcmlwdGlvbil7XG4gICAgICB0aGlzLmNvdW50ZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYodGhpcy5jb3VudGVyRW5kU3Vic2NyaXB0aW9uKXtcbiAgICAgIHRoaXMuY291bnRlckVuZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICB0aGlzLnNldHVwU2Vzc2lvbk9ic2VydmVyKCk7XG4gICAgdGhpcy5jaGVja1Nlc3Npb25WYWxpZGl0eSgpO1xuICB9XG5cbiAgc3RheSgpIHtcbiAgICAvL3RoaXMuY2hpbGRNb2RhbC5oaWRlKCk7XG4gICAgdGhpcy5yZXNldCgpO1xuICB9XG4gIFxuXG4gIHNldHVwU2Vzc2lvblRpbWVvdXRPYnNlcnZlcigpe1xuICAgIHRoaXMubHMuZ2V0VXNlckJzKCkuc3Vic2NyaWJlKHVzZXIgPT4ge1xuICAgICAgaWYodXNlcil7XG4gICAgICAgIHRoaXMubG9nZ2VyLmxvZygnW0lkbGVTZXJ2aWNlXSBTdWJzY3JpYmluZyBTZXNzaW9uIE9ic2VydmVyJyk7XG4gICAgICAgIHRoaXMuc2Vzc2lvblZhbGlkaXR5VGlsbCA9IHRoaXMuYWRkU2Vjb25kcyhuZXcgRGF0ZSgpLCB1c2VyLmV4cGlyZXNfaW4pO1xuICAgICAgICB0aGlzLnNldHVwU2Vzc2lvbk9ic2VydmVyKCk7XG4gICAgICB9ZWxzZSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmxvZygnW0lkbGVTZXJ2aWNlXSBVbnN1YnNjcmliaW5nIFNlc3Npb24gT2JzZXJ2ZXInKTtcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgc2V0dXBTZXNzaW9uT2JzZXJ2ZXIoKXtcbiAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XG4gICAgY29uc3Qgc291cmNlID0gaW50ZXJ2YWwoMTUwMDApO1xuICAgIHRoaXMuc2Vzc2lvblZhbGlkaXR5c3Vic2NyaXB0aW9uID0gc291cmNlLnN1YnNjcmliZSh2YWwgPT4gdGhpcy5jaGVja1Nlc3Npb25WYWxpZGl0eSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgdW5zdWJzY3JpYmUoKSB7XG4gICAgaWYgKHRoaXMuc2Vzc2lvblZhbGlkaXR5c3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnNlc3Npb25WYWxpZGl0eXN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIGNoZWNrU2Vzc2lvblZhbGlkaXR5KCl7XG4gICAgbGV0IGlzSWRsZSA9IHRoaXMuaWRsZS5pc0lkbGluZygpO1xuICAgIGlmKCFpc0lkbGUpe1xuICAgICAgbGV0IHRva2VuRXhwVGltZSA9IHRoaXMuc2Vzc2lvblZhbGlkaXR5VGlsbDtcbiAgICAgIGxldCBub3cgPSBuZXcgRGF0ZSgpO1xuICAgICAgbGV0IGRpZmZJblNlYyA9IE1hdGguY2VpbCgodG9rZW5FeHBUaW1lLmdldFRpbWUoKSAtIG5vdy5nZXRUaW1lKCkpLzEwMDApO1xuICAgICAgdGhpcy5sb2dnZXIubG9nKCdbSWRsZVNlcnZpY2VdIGRpZmZJblNlYycsIGRpZmZJblNlYyk7XG4gICAgICBpZihkaWZmSW5TZWMgPCAxMjApe1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMubG9nZ2VyLmxvZygnW0lkbGVTZXJ2aWNlXSBJbml0aWF0aW5nIFJlZnJlc2ggVG9rZW4gYXMgc2Vzc2lvbiBpcyBhY3RpdmUgYW5kIHVzZXIgaXMgYWN0aXZlJyk7XG4gICAgICAgIHRoaXMubHNcbiAgICAgICAgICAgIC5yZWZyZXNoVG9rZW4odGhpcy5scy5nZXRVc2VyKCkucmVmcmVzaF90b2tlbilcbiAgICAgICAgICAgIC50aGVuKGFzeW5jIHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5scy5zZXRVc2VyKHJlcykudGhlbihyZXMgPT4gcmVzKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcignW0lkbGVTZXJ2aWNlXSBlcnJvciB3aGlsZSByZWZyZXNoaW5nIHRva2VuJywgZXJyKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgIH1lbHNle1xuICAgICAgICB0aGlzLmxvZ2dlci5sb2coJ1tJZGxlU2VydmljZV0gTk9UIEluaXRpYXRpbmcgUmVmcmVzaCBUb2tlbiBhcyBzZXNzaW9uIGlzIGFjdGl2ZScpO1xuICAgICAgfVxuICAgIH1lbHNlIHtcbiAgICAgIHRoaXMubG9nZ2VyLmxvZygnW0lkbGVTZXJ2aWNlXSBOT1QgSW5pdGlhdGluZyBSZWZyZXNoIFRva2VuIGFzIHNlc3Npb24gaXMgaWRsZSBhbmQgaXQgd2lsbCBiZSB0aW1lb3V0IGF1dG9tYXRpY2FsbHkuJyk7XG4gICAgfVxuICB9XG5cbiAgbG9nb3V0KCkge1xuICAgIC8vdGhpcy5jaGlsZE1vZGFsLmhpZGUoKTtcbiAgICB0aGlzLmxzLmxvZ291dCgpO1xuICAgIHRoaXMubmF2Lm5hdmlnYXRlUm9vdCgnL2xvZ2luJyk7XG4gICAgdGhpcy5zaG93U2Vzc2lvblRpbWVvdXRXYXJuaW5nLm5leHQoZmFsc2UpO1xuICAgIGlmKHRoaXMuY291bnRlclN1YnNjcmlwdGlvbil7XG4gICAgICB0aGlzLmNvdW50ZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYodGhpcy5jb3VudGVyRW5kU3Vic2NyaXB0aW9uKXtcbiAgICAgIHRoaXMuY291bnRlckVuZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIGFkZFNlY29uZHMoZGF0ZSA6ICBEYXRlLCBzZWNUb0FkZCA6IG51bWJlcil7XG4gICAgZGF0ZS5zZXRTZWNvbmRzKGRhdGUuZ2V0U2Vjb25kcygpICsgc2VjVG9BZGQpO1xuICAgIHJldHVybiBkYXRlO1xuICB9XG59XG4iXX0=
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9pZGxlL2lkbGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSx3QkFBd0IsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUUvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBZ0IsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7QUFJekQ7Ozs7O0dBS0c7QUFJSCxNQUFNLE9BQU8sV0FBVztJQWV0QixZQUFxQixNQUFxQixFQUFTLElBQVUsRUFBVSxFQUFpQixFQUFVLEdBQWtCLEVBQVUsU0FBb0I7UUFBN0gsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUFTLFNBQUksR0FBSixJQUFJLENBQU07UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFlO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFiM0ksa0JBQWEsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJO1FBQ3BDLFVBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNO1FBQ3BDLFNBQUksR0FBRyxHQUFHLENBQUM7UUFDSixjQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3JELFlBQU8sR0FBNkIsSUFBSSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEUs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QUFFLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQyxJQUFHLElBQUksQ0FBQyxtQkFBbUIsRUFBQztZQUMxQixJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDeEM7UUFDRCxJQUFHLElBQUksQ0FBQyxzQkFBc0IsRUFBQztZQUM3QixJQUFJLENBQUMsc0JBQXNCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDM0M7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQVksRUFBRSxRQUFpQjtRQUN4QyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQztRQUM5QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7NEVBaEpVLFdBQVc7dUVBQVgsV0FBVyxXQUFYLFdBQVcsbUJBRlYsTUFBTTs7aUZBRVAsV0FBVztjQUh2QixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgREVGQVVMVF9JTlRFUlJVUFRTT1VSQ0VTLCBJZGxlIH0gZnJvbSAnQG5nLWlkbGUvY29yZSc7XG5pbXBvcnQgeyBLZWVwYWxpdmUgfSBmcm9tICdAbmctaWRsZS9rZWVwYWxpdmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBpbnRlcnZhbCwgU3Vic2NyaXB0aW9uLCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IExpYkNvbnN0YW50cyB9IGZyb20gJy4uLy4uL21vZGVscy9MaWJDb25zdGFudHMnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tICcuLi9sb2dpbi9sb2dpbi5zZXJ2aWNlJztcblxuLyoqXG4gKiBUaGlzIHNlcnZpY2Ugd2lsbCBhdXRvbWF0aWNhbGx5IGV4dGVuZCB1c2VyJ3Mgc2Vzc2lvbiBieSByZWZyZXNoaW5nIGFjY2Vzc190b2tlbiBpZiB0aGUgdmFsaWRpdHkgb2YgYWNjZXNzIHRva2VuIGlzIGxlc3MgdGhhbiAxMjBzIGFuZCBcbiAqIHVzZXIgaXMgbm90IGlkbGUgb24gdGhlIHNjcmVlbi5cbiAqIFxuICogQGF1dGhvciBQcmVyYWsgVGl3YXJpXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIElkbGVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBzZXNzaW9uVmFsaWRpdHlUaWxsIDogRGF0ZTtcbiAgcHVibGljIHRpbWVySW50ZXJ2YWwgPSBpbnRlcnZhbCgxMDAwKTsgLy8xc1xuICBwdWJsaWMgdGltZXIgPSB0aW1lcigxMjAwMDApOyAvLzMwcyBcbiAgdGltZSA9IDEyMDtcbiAgcHVibGljIGNvdW50RG93biA9IHRoaXMudGltZXJJbnRlcnZhbC5waXBlKHRha2UodGhpcy50aW1lKSk7XG4gIHB1YmxpYyBjb3VudGVyIDogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KDApO1xuICBsYXN0UGluZz86IERhdGUgPSBudWxsO1xuXG4gIGNvdW50ZXJTdWJzY3JpcHRpb24gOiBTdWJzY3JpcHRpb247XG4gIGNvdW50ZXJFbmRTdWJzY3JpcHRpb24gOiBTdWJzY3JpcHRpb247XG4gIHNlc3Npb25WYWxpZGl0eXN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIHB1YmxpYyBzaG93U2Vzc2lvblRpbWVvdXRXYXJuaW5nIDogQmVoYXZpb3JTdWJqZWN0PEJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgY29uc3RydWN0b3IoIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlICxwdWJsaWMgaWRsZTogSWRsZSwgcHJpdmF0ZSBscyA6IExvZ2luU2VydmljZSwgcHJpdmF0ZSBuYXY6IE5hdkNvbnRyb2xsZXIsIHByaXZhdGUga2VlcGFsaXZlOiBLZWVwYWxpdmUpIHsgXG4gICAgdGhpcy5sb2dnZXIubG9nKCdbSWRsZVNlcnZpY2VdIElkbGVTZXJ2aWNlIEluaXRpYWxpemVkJyk7XG4gIH1cblxuICBzZXR1cElkYWxUaW1lb3V0KCl7XG4gICAgLy8gc2V0cyBhbiBpZGxlIHRpbWVvdXQgb2YgMTgwIHNlY29uZHNcbiAgICB0aGlzLmlkbGUuc2V0SWRsZShMaWJDb25zdGFudHMuaWRsZVRpbWUpO1xuICAgIC8vIHNldHMgYSB0aW1lb3V0IHBlcmlvZCBvZiAxMjAgc2Vjb25kcy4gYWZ0ZXIgMzAwIHNlY29uZHMgb2YgaW5hY3Rpdml0eSwgdGhlIHVzZXIgd2lsbCBiZSBjb25zaWRlcmVkIHRpbWVkIG91dC5cbiAgICB0aGlzLmlkbGUuc2V0VGltZW91dChMaWJDb25zdGFudHMudGltZU91dFBlcmlvZCk7XG4gICAgLy8gc2V0cyB0aGUgZGVmYXVsdCBpbnRlcnJ1cHRzLCBpbiB0aGlzIGNhc2UsIHRoaW5ncyBsaWtlIGNsaWNrcywgc2Nyb2xscywgdG91Y2hlcyB0byB0aGUgZG9jdW1lbnRcbiAgICB0aGlzLmlkbGUuc2V0SW50ZXJydXB0cyhERUZBVUxUX0lOVEVSUlVQVFNPVVJDRVMpO1xuXG4gICAgdGhpcy5pZGxlLm9uSWRsZVN0YXJ0LnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5zaG93U2Vzc2lvblRpbWVvdXRXYXJuaW5nLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuY291bnRlclN1YnNjcmlwdGlvbiA9IHRoaXMuY291bnREb3duLnN1YnNjcmliZSh2YWwgPT57XG4gICAgICAgICAgdGhpcy5jb3VudGVyLm5leHQodGhpcy50aW1lIC0gdmFsKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5jb3VudGVyRW5kU3Vic2NyaXB0aW9uID0gdGhpcy50aW1lci5zdWJzY3JpYmUodmFsID0+IHtcbiAgICAgICAgICB0aGlzLmxzLmxvZ291dCgnU0VUSScpO1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgIC8vIHNldHMgdGhlIHBpbmcgaW50ZXJ2YWwgdG8gMTUgc2Vjb25kc1xuICAgIHRoaXMua2VlcGFsaXZlLmludGVydmFsKDE1KTtcblxuICAgIHRoaXMua2VlcGFsaXZlLm9uUGluZy5zdWJzY3JpYmUoKCkgPT4gdGhpcy5sYXN0UGluZyA9IG5ldyBEYXRlKCkpO1xuXG4gICAgdGhpcy5scy5nZXRVc2VyQnMoKS5zdWJzY3JpYmUodXNlciA9PiB7XG4gICAgICBpZih1c2VyKXtcbiAgICAgICAgdGhpcy5sb2dnZXIubG9nKCdJZGxlU2VydmljZSB3YXRjaGluZycpO1xuICAgICAgICB0aGlzLnNlc3Npb25WYWxpZGl0eVRpbGwgPSB0aGlzLmFkZFNlY29uZHMobmV3IERhdGUoKSwgdXNlci5leHBpcmVzX2luKTtcbiAgICAgICAgdGhpcy5pZGxlLndhdGNoKClcbiAgICAgIH1lbHNlIHtcbiAgICAgICAgdGhpcy5pZGxlLnN0b3AoKTtcbiAgICAgICAgdGhpcy5sb2dnZXIubG9nKCdJZGxlU2VydmljZSBzdG9wcGVkJyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXNldCgpIHtcbiAgICB0aGlzLmlkbGUud2F0Y2goKTtcbiAgICB0aGlzLnNob3dTZXNzaW9uVGltZW91dFdhcm5pbmcubmV4dChmYWxzZSk7XG4gICAgaWYodGhpcy5jb3VudGVyU3Vic2NyaXB0aW9uKXtcbiAgICAgIHRoaXMuY291bnRlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBpZih0aGlzLmNvdW50ZXJFbmRTdWJzY3JpcHRpb24pe1xuICAgICAgdGhpcy5jb3VudGVyRW5kU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIHRoaXMuc2V0dXBTZXNzaW9uT2JzZXJ2ZXIoKTtcbiAgICB0aGlzLmNoZWNrU2Vzc2lvblZhbGlkaXR5KCk7XG4gIH1cblxuICBzdGF5KCkge1xuICAgIC8vdGhpcy5jaGlsZE1vZGFsLmhpZGUoKTtcbiAgICB0aGlzLnJlc2V0KCk7XG4gIH1cbiAgXG5cbiAgc2V0dXBTZXNzaW9uVGltZW91dE9ic2VydmVyKCl7XG4gICAgdGhpcy5scy5nZXRVc2VyQnMoKS5zdWJzY3JpYmUodXNlciA9PiB7XG4gICAgICBpZih1c2VyKXtcbiAgICAgICAgdGhpcy5sb2dnZXIubG9nKCdbSWRsZVNlcnZpY2VdIFN1YnNjcmliaW5nIFNlc3Npb24gT2JzZXJ2ZXInKTtcbiAgICAgICAgdGhpcy5zZXNzaW9uVmFsaWRpdHlUaWxsID0gdGhpcy5hZGRTZWNvbmRzKG5ldyBEYXRlKCksIHVzZXIuZXhwaXJlc19pbik7XG4gICAgICAgIHRoaXMuc2V0dXBTZXNzaW9uT2JzZXJ2ZXIoKTtcbiAgICAgIH1lbHNlIHtcbiAgICAgICAgdGhpcy5sb2dnZXIubG9nKCdbSWRsZVNlcnZpY2VdIFVuc3Vic2NyaWJpbmcgU2Vzc2lvbiBPYnNlcnZlcicpO1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBzZXR1cFNlc3Npb25PYnNlcnZlcigpe1xuICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcbiAgICBjb25zdCBzb3VyY2UgPSBpbnRlcnZhbCgxNTAwMCk7XG4gICAgdGhpcy5zZXNzaW9uVmFsaWRpdHlzdWJzY3JpcHRpb24gPSBzb3VyY2Uuc3Vic2NyaWJlKHZhbCA9PiB0aGlzLmNoZWNrU2Vzc2lvblZhbGlkaXR5KCkpO1xuICB9XG5cbiAgcHJpdmF0ZSB1bnN1YnNjcmliZSgpIHtcbiAgICBpZiAodGhpcy5zZXNzaW9uVmFsaWRpdHlzdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc2Vzc2lvblZhbGlkaXR5c3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgY2hlY2tTZXNzaW9uVmFsaWRpdHkoKXtcbiAgICBsZXQgaXNJZGxlID0gdGhpcy5pZGxlLmlzSWRsaW5nKCk7XG4gICAgaWYoIWlzSWRsZSl7XG4gICAgICBsZXQgdG9rZW5FeHBUaW1lID0gdGhpcy5zZXNzaW9uVmFsaWRpdHlUaWxsO1xuICAgICAgbGV0IG5vdyA9IG5ldyBEYXRlKCk7XG4gICAgICBsZXQgZGlmZkluU2VjID0gTWF0aC5jZWlsKCh0b2tlbkV4cFRpbWUuZ2V0VGltZSgpIC0gbm93LmdldFRpbWUoKSkvMTAwMCk7XG4gICAgICB0aGlzLmxvZ2dlci5sb2coJ1tJZGxlU2VydmljZV0gZGlmZkluU2VjJywgZGlmZkluU2VjKTtcbiAgICAgIGlmKGRpZmZJblNlYyA8IDEyMCl7XG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5sb2dnZXIubG9nKCdbSWRsZVNlcnZpY2VdIEluaXRpYXRpbmcgUmVmcmVzaCBUb2tlbiBhcyBzZXNzaW9uIGlzIGFjdGl2ZSBhbmQgdXNlciBpcyBhY3RpdmUnKTtcbiAgICAgICAgdGhpcy5sc1xuICAgICAgICAgICAgLnJlZnJlc2hUb2tlbih0aGlzLmxzLmdldFVzZXIoKS5yZWZyZXNoX3Rva2VuKVxuICAgICAgICAgICAgLnRoZW4oYXN5bmMgcmVzID0+IHtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmxzLnNldFVzZXIocmVzKS50aGVuKHJlcyA9PiByZXMpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaChlcnIgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKCdbSWRsZVNlcnZpY2VdIGVycm9yIHdoaWxlIHJlZnJlc2hpbmcgdG9rZW4nLCBlcnIpO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgfWVsc2V7XG4gICAgICAgIHRoaXMubG9nZ2VyLmxvZygnW0lkbGVTZXJ2aWNlXSBOT1QgSW5pdGlhdGluZyBSZWZyZXNoIFRva2VuIGFzIHNlc3Npb24gaXMgYWN0aXZlJyk7XG4gICAgICB9XG4gICAgfWVsc2Uge1xuICAgICAgdGhpcy5sb2dnZXIubG9nKCdbSWRsZVNlcnZpY2VdIE5PVCBJbml0aWF0aW5nIFJlZnJlc2ggVG9rZW4gYXMgc2Vzc2lvbiBpcyBpZGxlIGFuZCBpdCB3aWxsIGJlIHRpbWVvdXQgYXV0b21hdGljYWxseS4nKTtcbiAgICB9XG4gIH1cblxuICBsb2dvdXQoKSB7XG4gICAgLy90aGlzLmNoaWxkTW9kYWwuaGlkZSgpO1xuICAgIHRoaXMubHMubG9nb3V0KCk7XG4gICAgdGhpcy5uYXYubmF2aWdhdGVSb290KCcvbG9naW4nKTtcbiAgICB0aGlzLnNob3dTZXNzaW9uVGltZW91dFdhcm5pbmcubmV4dChmYWxzZSk7XG4gICAgaWYodGhpcy5jb3VudGVyU3Vic2NyaXB0aW9uKXtcbiAgICAgIHRoaXMuY291bnRlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBpZih0aGlzLmNvdW50ZXJFbmRTdWJzY3JpcHRpb24pe1xuICAgICAgdGhpcy5jb3VudGVyRW5kU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgYWRkU2Vjb25kcyhkYXRlIDogIERhdGUsIHNlY1RvQWRkIDogbnVtYmVyKXtcbiAgICBkYXRlLnNldFNlY29uZHMoZGF0ZS5nZXRTZWNvbmRzKCkgKyBzZWNUb0FkZCk7XG4gICAgcmV0dXJuIGRhdGU7XG4gIH1cbn1cbiJdfQ==