@uiapplibct/ngx-reusa-app-lib 0.0.27 → 0.0.29

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.
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1oZWFkZXIuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2ludGVyY2VwdG9ycy9oZWFkZXItaW50ZXJjZXB0b3IvaHR0cC1oZWFkZXIuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU8zQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7O0FBUXpELE1BQU0sT0FBTyxxQkFBcUI7SUFFaEMsWUFBbUIsWUFBMkIsRUFBUyxJQUFpQixFQUFVLE1BQXFCLEVBQ25GLGNBQThCLEVBQVUsa0JBQXNDLEVBQVUsc0JBQThDO1FBRHZJLGlCQUFZLEdBQVosWUFBWSxDQUFlO1FBQVMsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDbkYsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVUsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUFVLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7SUFFMUosQ0FBQztJQUVELFNBQVMsQ0FBQyxPQUF5QixFQUFFLElBQWlCO1FBQ3BELHVEQUF1RDtRQUN2RCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyx3REFBd0QsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNuRix5QkFBeUI7UUFDekIsSUFBSSxXQUFXLEdBQWUsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMxRCxJQUFJLFdBQVcsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDO1lBQ3BDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQztZQUNwQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3RHLE9BQU8sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO2dCQUN0QixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87cUJBQ1AsTUFBTSxDQUFDLGVBQWUsRUFBRSxVQUFVLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUMvRSxDQUFDLENBQUM7U0FDSjtRQUNELElBQUcsQ0FBQyxDQUFDLFdBQVcsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFFO1lBQzNILElBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBQztnQkFDdkMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7b0JBQ3RCLGVBQWUsRUFBRSxLQUFLO29CQUN0QixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87eUJBQ1AsTUFBTSxDQUFDLGVBQWUsRUFBRSxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsWUFBWSxDQUFDLGVBQWUsSUFBSSxZQUFZLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO2lCQUMvSCxDQUFDLENBQUM7YUFDSjtTQUNGO1FBRUMsSUFBSSxLQUFLLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM3QyxJQUFJLFFBQVEsR0FBRyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUM1QyxPQUFPLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUN0QixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxDQUFDO1NBQzdELENBQUMsQ0FBQztRQUVILElBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHFCQUFxQixFQUFFLEVBQUM7WUFDakQsT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7Z0JBQ3RCLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztxQkFDakIsTUFBTSxDQUFDLHNCQUFzQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO2FBQ3JGLENBQUMsQ0FBQztTQUNOO1FBRUQsSUFBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLEVBQUM7WUFDeEMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7Z0JBQ3RCLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztxQkFDakIsTUFBTSxDQUFDLHlCQUF5QixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUMvRSxDQUFDLENBQUM7U0FDTjtRQUVELElBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsRUFBQztZQUNsQyxPQUFPLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFDdEIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO3FCQUNqQixNQUFNLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNsRSxDQUFDLENBQUM7U0FDTjtRQUVELElBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsRUFBRSxFQUFDO1lBQzNDLE9BQU8sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO2dCQUN0QixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87cUJBQ2pCLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLG1CQUFtQixFQUFFLENBQUM7YUFDOUUsQ0FBQyxDQUFDO1NBQ047UUFFRCxJQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLEVBQUM7WUFDakMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7Z0JBQ3RCLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztxQkFDakIsTUFBTSxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDO2FBQ3ZFLENBQUMsQ0FBQztTQUNOO1FBRUQsSUFBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsRUFBQztZQUNuRSxPQUFPLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFDdEIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO3FCQUNqQixNQUFNLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQ3hFLENBQUMsQ0FBQztTQUNOO1FBRUQsSUFBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLEVBQUUsRUFBQztZQUMxRSxPQUFPLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFDdEIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO3FCQUNqQixNQUFNLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGFBQWEsRUFBRSxDQUFDO2FBQy9FLENBQUMsQ0FBQztTQUNOO1FBQ0gsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlCLENBQUM7c0ZBckZVLHFCQUFxQjt1RUFBckIscUJBQXFCLFdBQXJCLHFCQUFxQixtQkFGcEIsTUFBTTs7aUZBRVAscUJBQXFCO2NBSGpDLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBJbnRlcmNlcHRvciwgSHR0cFJlcXVlc3QsIEh0dHBIYW5kbGVyLCBIdHRwRXZlbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBVc2VyTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvVXNlck1vZGVsJztcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXRpbC91dGlsLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9naW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9naW4vbG9naW4uc2VydmljZSc7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7IExpYkNvbnN0YW50cyB9IGZyb20gJy4uLy4uL21vZGVscy9MaWJDb25zdGFudHMnO1xuaW1wb3J0IHsgQ2FwdGNoYVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jYXB0Y2hhL2NhcHRjaGEuc2VydmljZSc7XG5pbXBvcnQgeyBGaW5nZXJwcmludFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mcGpzL2ZpbmdlcnByaW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xhaW1hbnRDb250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NsYWltYW50LWNvbnRleHQvY2xhaW1hbnQtY29udGV4dC5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSHR0cEhlYWRlckludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9ye1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBsb2dpblNlcnZpY2UgOiBMb2dpblNlcnZpY2UsIHB1YmxpYyB1dGlsOiBVdGlsU2VydmljZSwgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlclNlcnZpY2UsIFxuICAgICAgICAgICAgICBwcml2YXRlIGNhcHRjaGFTZXJ2aWNlOiBDYXB0Y2hhU2VydmljZSwgcHJpdmF0ZSBmaW5nZXJwcmludFNlcnZpY2U6IEZpbmdlcnByaW50U2VydmljZSwgcHJpdmF0ZSBjbGFpbWFudENvbnRleHRTZXJ2aWNlOiBDbGFpbWFudENvbnRleHRTZXJ2aWNlKSB7IFxuXG4gIH1cblxuICBpbnRlcmNlcHQocmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XG4gICAgLy8gYWRkIGF1dGhvcml6YXRpb24gaGVhZGVyIHdpdGggand0IHRva2VuIGlmIGF2YWlsYWJsZVxuICAgIHRoaXMubG9nZ2VyLmxvZygnW0h0dHBIZWFkZXJJbnRlcmNlcHRvcl0gSW5zaWRlIEludGVyY2VwdG9yIGJlZm9yZSAtLT4gJywgcmVxdWVzdCk7XG4gICAgLy90aGlzLnV0aWwuc2hvd0xvYWRlcigpO1xuICAgIGxldCBjdXJyZW50VXNlciA6IFVzZXJNb2RlbCA9IHRoaXMubG9naW5TZXJ2aWNlLmdldFVzZXIoKTtcbiAgICBpZiAoY3VycmVudFVzZXIgJiYgIShyZXF1ZXN0LnVybC5pbmNsdWRlcyhcIi9vYXV0aC90b2tlblwiKSB8fCBcbiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LnVybC5pbmNsdWRlcygnL2NoZWNrX3Rva2VuJykgfHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgKHJlcXVlc3QudXJsLmluY2x1ZGVzKCcvdHJlbmRzJykgJiYgcmVxdWVzdC5tZXRob2QudG9Mb2NhbGVMb3dlckNhc2UoKSA9PSAnZ2V0JykpKSB7XG4gICAgICByZXF1ZXN0ID0gcmVxdWVzdC5jbG9uZSh7XG4gICAgICAgIGhlYWRlcnM6IHJlcXVlc3QuaGVhZGVyc1xuICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZCgnQXV0aG9yaXphdGlvbicsIGBCZWFyZXIgJHtjdXJyZW50VXNlci5hY2Nlc3NfdG9rZW59YClcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZighKGN1cnJlbnRVc2VyICYmIGN1cnJlbnRVc2VyLnVzZXJuYW1lKSAmJiAocmVxdWVzdC51cmwuaW5jbHVkZXMoXCIvb2F1dGgvdG9rZW5cIikgfHwgcmVxdWVzdC51cmwuaW5jbHVkZXMoJy9jaGVja190b2tlbicpKSApe1xuICAgICAgaWYoIXJlcXVlc3QuaGVhZGVycy5nZXQoJ0F1dGhvcml6YXRpb24nKSl7XG4gICAgICAgIHJlcXVlc3QgPSByZXF1ZXN0LmNsb25lKHtcbiAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IGZhbHNlLFxuICAgICAgICAgIGhlYWRlcnM6IHJlcXVlc3QuaGVhZGVyc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKCdBdXRob3JpemF0aW9uJywgYEJhc2ljIGAgKyBidG9hKGAke0xpYkNvbnN0YW50cy5vYXV0aENsaWVudFVzZXJ9OiR7TGliQ29uc3RhbnRzLm9hdXRoQ2xpZW50U2VjcmV0fWApKVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAgIGxldCB2YWx1ZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdsYW5ndWFnZScpO1xuICAgICAgbGV0IGxhbmd1YWdlID0gdmFsdWUgIT0gbnVsbCA/IHZhbHVlIDogJ2VuJztcbiAgICAgIHJlcXVlc3QgPSByZXF1ZXN0LmNsb25lKHtcbiAgICAgICAgaGVhZGVyczogcmVxdWVzdC5oZWFkZXJzLmFwcGVuZCgnQWNjZXB0LUxhbmd1YWdlJywgbGFuZ3VhZ2UpXG4gICAgICB9KTtcbiAgXG4gICAgICBpZih0aGlzLmZpbmdlcnByaW50U2VydmljZS5nZXRCcm93c2VyRmluZ2VycHJpbnQoKSl7XG4gICAgICAgIHJlcXVlc3QgPSByZXF1ZXN0LmNsb25lKHtcbiAgICAgICAgICBoZWFkZXJzOiByZXF1ZXN0LmhlYWRlcnNcbiAgICAgICAgICAgICAgICAuYXBwZW5kKCdYLUN1c3RvbS1GaW5nZXJwcmludCcsIHRoaXMuZmluZ2VycHJpbnRTZXJ2aWNlLmdldEJyb3dzZXJGaW5nZXJwcmludCgpKVxuICAgICAgICAgIH0pO1xuICAgICAgfVxuICBcbiAgICAgIGlmKHRoaXMuZmluZ2VycHJpbnRTZXJ2aWNlLmdldFJlcXVlc3RJZCgpKXtcbiAgICAgICAgcmVxdWVzdCA9IHJlcXVlc3QuY2xvbmUoe1xuICAgICAgICAgIGhlYWRlcnM6IHJlcXVlc3QuaGVhZGVyc1xuICAgICAgICAgICAgICAgIC5hcHBlbmQoJ1gtQ3VzdG9tLUlQUVMtUmVxdWVzdElkJywgdGhpcy5maW5nZXJwcmludFNlcnZpY2UuZ2V0UmVxdWVzdElkKCkpXG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBcbiAgICAgIGlmKHRoaXMuY2FwdGNoYVNlcnZpY2UuZ2V0Q2FwdGNoYSgpKXtcbiAgICAgICAgcmVxdWVzdCA9IHJlcXVlc3QuY2xvbmUoe1xuICAgICAgICAgIGhlYWRlcnM6IHJlcXVlc3QuaGVhZGVyc1xuICAgICAgICAgICAgICAgIC5hcHBlbmQoJ1gtQ3VzdG9tLUNhcHRjaGEnLCB0aGlzLmNhcHRjaGFTZXJ2aWNlLmdldENhcHRjaGEoKSlcbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgXG4gICAgICBpZih0aGlzLmNhcHRjaGFTZXJ2aWNlLmdldEludmlzaWJlbENhcHRjaGEoKSl7XG4gICAgICAgIHJlcXVlc3QgPSByZXF1ZXN0LmNsb25lKHtcbiAgICAgICAgICBoZWFkZXJzOiByZXF1ZXN0LmhlYWRlcnNcbiAgICAgICAgICAgICAgICAuYXBwZW5kKCdYLUN1c3RvbS1DYXB0Y2hhLXYzJywgdGhpcy5jYXB0Y2hhU2VydmljZS5nZXRJbnZpc2liZWxDYXB0Y2hhKCkpXG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gIFxuICAgICAgaWYodGhpcy5sb2dpblNlcnZpY2UuZ2V0QXV0aGNvZGUoKSl7XG4gICAgICAgIHJlcXVlc3QgPSByZXF1ZXN0LmNsb25lKHtcbiAgICAgICAgICBoZWFkZXJzOiByZXF1ZXN0LmhlYWRlcnNcbiAgICAgICAgICAgICAgICAuYXBwZW5kKCdYLUN1c3RvbS1BdXRoY29kZScsIHRoaXMubG9naW5TZXJ2aWNlLmdldEF1dGhjb2RlKCkgKyAnJylcbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgXG4gICAgICBpZih0aGlzLmxvZ2luU2VydmljZS5pc0NzcigpICYmIHRoaXMuY2xhaW1hbnRDb250ZXh0U2VydmljZS5nZXRTc24oKSl7XG4gICAgICAgIHJlcXVlc3QgPSByZXF1ZXN0LmNsb25lKHtcbiAgICAgICAgICBoZWFkZXJzOiByZXF1ZXN0LmhlYWRlcnNcbiAgICAgICAgICAgICAgICAuYXBwZW5kKCdYLUN1c3RvbS1QYXJhbS1Tb2MnLCB0aGlzLmNsYWltYW50Q29udGV4dFNlcnZpY2UuZ2V0U3NuKCkpXG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gIFxuICAgICAgaWYodGhpcy5sb2dpblNlcnZpY2UuaXNDc3IoKSAmJiB0aGlzLmNsYWltYW50Q29udGV4dFNlcnZpY2UuZ2V0Q2xhaW1hbnRJZCgpKXtcbiAgICAgICAgcmVxdWVzdCA9IHJlcXVlc3QuY2xvbmUoe1xuICAgICAgICAgIGhlYWRlcnM6IHJlcXVlc3QuaGVhZGVyc1xuICAgICAgICAgICAgICAgIC5hcHBlbmQoJ1gtQ3VzdG9tLVBhcmFtLUNpZCcsIHRoaXMuY2xhaW1hbnRDb250ZXh0U2VydmljZS5nZXRDbGFpbWFudElkKCkpXG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcXVlc3QpO1xuICB9XG59XG4iXX0=
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1oZWFkZXIuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2ludGVyY2VwdG9ycy9oZWFkZXItaW50ZXJjZXB0b3IvaHR0cC1oZWFkZXIuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU8zQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7O0FBUXpELE1BQU0sT0FBTyxxQkFBcUI7SUFFaEMsWUFBbUIsWUFBMkIsRUFBUyxJQUFpQixFQUFVLE1BQXFCLEVBQ25GLGNBQThCLEVBQVUsa0JBQXNDLEVBQVUsc0JBQThDO1FBRHZJLGlCQUFZLEdBQVosWUFBWSxDQUFlO1FBQVMsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDbkYsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVUsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUFVLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7SUFFMUosQ0FBQztJQUVELFNBQVMsQ0FBQyxPQUF5QixFQUFFLElBQWlCO1FBQ3BELHVEQUF1RDtRQUN2RCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyx3REFBd0QsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNuRix5QkFBeUI7UUFDekIsSUFBSSxXQUFXLEdBQWUsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMxRCxJQUFJLFdBQVcsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDO1lBQ3BDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQztZQUNwQyxDQUFDLE9BQU8sQ0FBQyxHQUFH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Q0FBQyxLQUFLLENBQUM7b0JBQ3ZCLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsaUJBQWlCLENBQUM7aUJBQ2pFLENBQUMsQ0FBQzthQUNKO1NBQ0Y7UUFFRixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsQ0FBQztzRkFqR1UscUJBQXFCO3VFQUFyQixxQkFBcUIsV0FBckIscUJBQXFCLG1CQUZwQixNQUFNOztpRkFFUCxxQkFBcUI7Y0FIakMsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cEludGVyY2VwdG9yLCBIdHRwUmVxdWVzdCwgSHR0cEhhbmRsZXIsIEh0dHBFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFVzZXJNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9Vc2VyTW9kZWwnO1xuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2dpbi9sb2dpbi5zZXJ2aWNlJztcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2dnZXIvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGliQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0xpYkNvbnN0YW50cyc7XG5pbXBvcnQgeyBDYXB0Y2hhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NhcHRjaGEvY2FwdGNoYS5zZXJ2aWNlJztcbmltcG9ydCB7IEZpbmdlcnByaW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZwanMvZmluZ2VycHJpbnQuc2VydmljZSc7XG5pbXBvcnQgeyBDbGFpbWFudENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2xhaW1hbnQtY29udGV4dC9jbGFpbWFudC1jb250ZXh0LnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBIdHRwSGVhZGVySW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3J7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGxvZ2luU2VydmljZSA6IExvZ2luU2VydmljZSwgcHVibGljIHV0aWw6IFV0aWxTZXJ2aWNlLCBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyU2VydmljZSwgXG4gICAgICAgICAgICAgIHByaXZhdGUgY2FwdGNoYVNlcnZpY2U6IENhcHRjaGFTZXJ2aWNlLCBwcml2YXRlIGZpbmdlcnByaW50U2VydmljZTogRmluZ2VycHJpbnRTZXJ2aWNlLCBwcml2YXRlIGNsYWltYW50Q29udGV4dFNlcnZpY2U6IENsYWltYW50Q29udGV4dFNlcnZpY2UpIHsgXG5cbiAgfVxuXG4gIGludGVyY2VwdChyZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcbiAgICAvLyBhZGQgYXV0aG9yaXphdGlvbiBoZWFkZXIgd2l0aCBqd3QgdG9rZW4gaWYgYXZhaWxhYmxlXG4gICAgdGhpcy5sb2dnZXIubG9nKCdbSHR0cEhlYWRlckludGVyY2VwdG9yXSBJbnNpZGUgSW50ZXJjZXB0b3IgYmVmb3JlIC0tPiAnLCByZXF1ZXN0KTtcbiAgICAvL3RoaXMudXRpbC5zaG93TG9hZGVyKCk7XG4gICAgbGV0IGN1cnJlbnRVc2VyIDogVXNlck1vZGVsID0gdGhpcy5sb2dpblNlcnZpY2UuZ2V0VXNlcigpO1xuICAgIGlmIChjdXJyZW50VXNlciAmJiAhKHJlcXVlc3QudXJsLmluY2x1ZGVzKFwiL29hdXRoL3Rva2VuXCIpIHx8IFxuICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QudXJsLmluY2x1ZGVzKCcvY2hlY2tfdG9rZW4nKSB8fCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAocmVxdWVzdC51cmwuaW5jbHVkZXMoJy90cmVuZHMnKSAmJiByZXF1ZXN0Lm1ldGhvZC50b0xvY2FsZUxvd2VyQ2FzZSgpID09ICdnZXQnKSkpIHtcbiAgICAgIHJlcXVlc3QgPSByZXF1ZXN0LmNsb25lKHtcbiAgICAgICAgaGVhZGVyczogcmVxdWVzdC5oZWFkZXJzXG4gICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKCdBdXRob3JpemF0aW9uJywgYEJlYXJlciAke2N1cnJlbnRVc2VyLmFjY2Vzc190b2tlbn1gKVxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmKCEoY3VycmVudFVzZXIgJiYgY3VycmVudFVzZXIudXNlcm5hbWUpICYmIChyZXF1ZXN0LnVybC5pbmNsdWRlcyhcIi9vYXV0aC90b2tlblwiKSB8fCByZXF1ZXN0LnVybC5pbmNsdWRlcygnL2NoZWNrX3Rva2VuJykpICl7XG4gICAgICBpZighcmVxdWVzdC5oZWFkZXJzLmdldCgnQXV0aG9yaXphdGlvbicpKXtcbiAgICAgICAgcmVxdWVzdCA9IHJlcXVlc3QuY2xvbmUoe1xuICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogZmFsc2UsXG4gICAgICAgICAgaGVhZGVyczogcmVxdWVzdC5oZWFkZXJzXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoJ0F1dGhvcml6YXRpb24nLCBgQmFzaWMgYCArIGJ0b2EoYCR7TGliQ29uc3RhbnRzLm9hdXRoQ2xpZW50VXNlcn06JHtMaWJDb25zdGFudHMub2F1dGhDbGllbnRTZWNyZXR9YCkpXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgICAgbGV0IHZhbHVlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xhbmd1YWdlJyk7XG4gICAgICBsZXQgbGFuZ3VhZ2UgPSB2YWx1ZSAhPSBudWxsID8gdmFsdWUgOiAnZW4nO1xuICAgICAgcmVxdWVzdCA9IHJlcXVlc3QuY2xvbmUoe1xuICAgICAgICBoZWFkZXJzOiByZXF1ZXN0LmhlYWRlcnMuYXBwZW5kKCdBY2NlcHQtTGFuZ3VhZ2UnLCBsYW5ndWFnZSlcbiAgICAgIH0pO1xuICBcbiAgICAgIGlmKHRoaXMuZmluZ2VycHJpbnRTZXJ2aWNlLmdldEJyb3dzZXJGaW5nZXJwcmludCgpKXtcbiAgICAgICAgcmVxdWVzdCA9IHJlcXVlc3QuY2xvbmUoe1xuICAgICAgICAgIGhlYWRlcnM6IHJlcXVlc3QuaGVhZGVyc1xuICAgICAgICAgICAgICAgIC5hcHBlbmQoJ1gtQ3VzdG9tLUZpbmdlcnByaW50JywgdGhpcy5maW5nZXJwcmludFNlcnZpY2UuZ2V0QnJvd3NlckZpbmdlcnByaW50KCkpXG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gIFxuICAgICAgaWYodGhpcy5maW5nZXJwcmludFNlcnZpY2UuZ2V0UmVxdWVzdElkKCkpe1xuICAgICAgICByZXF1ZXN0ID0gcmVxdWVzdC5jbG9uZSh7XG4gICAgICAgICAgaGVhZGVyczogcmVxdWVzdC5oZWFkZXJzXG4gICAgICAgICAgICAgICAgLmFwcGVuZCgnWC1DdXN0b20tSVBRUy1SZXF1ZXN0SWQnLCB0aGlzLmZpbmdlcnByaW50U2VydmljZS5nZXRSZXF1ZXN0SWQoKSlcbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgaWYodGhpcy5jYXB0Y2hhU2VydmljZS5nZXRDYXB0Y2hhKCkpe1xuICAgICAgICByZXF1ZXN0ID0gcmVxdWVzdC5jbG9uZSh7XG4gICAgICAgICAgaGVhZGVyczogcmVxdWVzdC5oZWFkZXJzXG4gICAgICAgICAgICAgICAgLmFwcGVuZCgnWC1DdXN0b20tQ2FwdGNoYScsIHRoaXMuY2FwdGNoYVNlcnZpY2UuZ2V0Q2FwdGNoYSgpKVxuICAgICAgICAgIH0pO1xuICAgICAgfVxuICBcbiAgICAgIGlmKHRoaXMuY2FwdGNoYVNlcnZpY2UuZ2V0SW52aXNpYmVsQ2FwdGNoYSgpKXtcbiAgICAgICAgcmVxdWVzdCA9IHJlcXVlc3QuY2xvbmUoe1xuICAgICAgICAgIGhlYWRlcnM6IHJlcXVlc3QuaGVhZGVyc1xuICAgICAgICAgICAgICAgIC5hcHBlbmQoJ1gtQ3VzdG9tLUNhcHRjaGEtdjMnLCB0aGlzLmNhcHRjaGFTZXJ2aWNlLmdldEludmlzaWJlbENhcHRjaGEoKSlcbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgXG4gICAgICBpZih0aGlzLmxvZ2luU2VydmljZS5nZXRBdXRoY29kZSgpKXtcbiAgICAgICAgcmVxdWVzdCA9IHJlcXVlc3QuY2xvbmUoe1xuICAgICAgICAgIGhlYWRlcnM6IHJlcXVlc3QuaGVhZGVyc1xuICAgICAgICAgICAgICAgIC5hcHBlbmQoJ1gtQ3VzdG9tLUF1dGhjb2RlJywgdGhpcy5sb2dpblNlcnZpY2UuZ2V0QXV0aGNvZGUoKSArICcnKVxuICAgICAgICAgIH0pO1xuICAgICAgfVxuICBcbiAgICAgIGlmKHRoaXMubG9naW5TZXJ2aWNlLmlzQ3NyKCkgJiYgdGhpcy5jbGFpbWFudENvbnRleHRTZXJ2aWNlLmdldFNzbigpKXtcbiAgICAgICAgcmVxdWVzdCA9IHJlcXVlc3QuY2xvbmUoe1xuICAgICAgICAgIGhlYWRlcnM6IHJlcXVlc3QuaGVhZGVyc1xuICAgICAgICAgICAgICAgIC5hcHBlbmQoJ1gtQ3VzdG9tLVBhcmFtLVNvYycsIHRoaXMuY2xhaW1hbnRDb250ZXh0U2VydmljZS5nZXRTc24oKSlcbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgXG4gICAgICBpZih0aGlzLmxvZ2luU2VydmljZS5pc0NzcigpICYmIHRoaXMuY2xhaW1hbnRDb250ZXh0U2VydmljZS5nZXRDbGFpbWFudElkKCkpe1xuICAgICAgICByZXF1ZXN0ID0gcmVxdWVzdC5jbG9uZSh7XG4gICAgICAgICAgaGVhZGVyczogcmVxdWVzdC5oZWFkZXJzXG4gICAgICAgICAgICAgICAgLmFwcGVuZCgnWC1DdXN0b20tUGFyYW0tQ2lkJywgdGhpcy5jbGFpbWFudENvbnRleHRTZXJ2aWNlLmdldENsYWltYW50SWQoKSlcbiAgICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICBjb25zb2xlLmxvZyhcIlJFUVVFU1RcIityZXF1ZXN0LnVybC5pbmNsdWRlcygnL29hdXRoL3Rva2VuJykpXG5cbiAgICAgaWYgKHJlcXVlc3QudXJsLmluY2x1ZGVzKCcvb2F1dGgvdG9rZW4nKSkge1xuXHRcbiAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5pbmNsdWRlcygnL3NzL2xvZ2luJykgfHwgd2luZG93LmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoJ3NzL2xvZ2luJykpIHtcbiAgICAgICAgcmVxdWVzdCA9IHJlcXVlc3QuY2xvbmUoe1xuXHQgICAgICAgIGhlYWRlcnM6IHJlcXVlc3QuaGVhZGVycy5hcHBlbmQoJ1gtQXBwLVNvdXJjZScsICdzZWN1cml0eS13ZWJhcHAnKVxuICAgICAgICAgfSk7XG4gICAgICAgfVxuICAgICB9XG5cbiAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxdWVzdCk7XG4gIH1cbn1cbiJdfQ==
@@ -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==
@@ -209,9 +209,10 @@ export class LoginService {
209
209
  let cookie = `${cookieName}=${value}; expires=${expiration + '.000'}; path=/; domain=${LibConstants.ssoDomain}`;
210
210
  document.cookie = cookie;
211
211
  }
212
- logout() {
212
+ logout(reason = 'UCLO') {
213
+ console.log("REASON" + reason);
213
214
  if (this.user) {
214
- this.util.get('user/logout')
215
+ this.util.get('user/logout?logoutReason=' + reason)
215
216
  .subscribe(res => {
216
217
  this.reset();
217
218
  }, err => {
@@ -359,4 +360,4 @@ export class LoginService {
359
360
  providedIn: 'root'
360
361
  }]
361
362
  }], () => [{ type: i1.UtilService }, { type: i2.Storage }, { type: i3.ClaimantContextService }], null); })();
362
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvc2VydmljZXMvbG9naW4vbG9naW4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUd6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7O0FBU25ELE1BQU0sT0FBTyxZQUFZO0lBWXZCLFdBQVcsQ0FBQyxRQUFpQjtRQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUMzQixDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFlO1FBQzNCLElBQUcsR0FBRyxFQUFDO1lBQ0wsSUFBSSxJQUFJLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUM7WUFDL0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDO1lBQzdCLElBQUksQ0FBQyxR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QUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELHdCQUF3QixDQUFDLEtBQWM7UUFDckMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEtBQUssRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxjQUFjLENBQUMsSUFBYTtRQUMxQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGlCQUFpQixJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxHQUFZO1FBQy9CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEdBQUcsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUVELGlDQUFpQyxDQUFDLE1BQWU7UUFDL0MsSUFBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUk7WUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWMsWUFBWSxNQUFNLEVBQUUsQ0FBQztpQkFDM0MsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDOzZFQTlaVSxZQUFZO3VFQUFaLFlBQVksV0FBWixZQUFZLG1CQUZYLE1BQU07O2lGQUVQLFlBQVk7Y0FIeEIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IExpYkNvbnN0YW50cyB9IGZyb20gJy4uLy4uL21vZGVscy9MaWJDb25zdGFudHMnO1xuaW1wb3J0IHsgT3RwQXV0aE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL090cEF1dGhNb2RlbCc7XG5pbXBvcnQgeyBVc2VyRGV0YWlsc01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL1VzZXJEZXRhaWxzTW9kZWwnO1xuaW1wb3J0IHsgVXNlck1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL1VzZXJNb2RlbCc7XG5pbXBvcnQgeyBVdGlsU2VydmljZSB9IGZyb20gJy4uL3V0aWwvdXRpbC5zZXJ2aWNlJztcbmltcG9ydCB7IFN0b3JhZ2UgfSBmcm9tICdAaW9uaWMvc3RvcmFnZS1hbmd1bGFyJztcbmltcG9ydCB7IE1lbnVJdGVtIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgQ2xhaW1hbnRDb250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NsYWltYW50LWNvbnRleHQvY2xhaW1hbnQtY29udGV4dC5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTG9naW5TZXJ2aWNlIHtcblxuICBvcHRpb25zID0ge307XG5cbiAgcHJpdmF0ZSB1c2VyQnMgOiBCZWhhdmlvclN1YmplY3Q8VXNlck1vZGVsPiA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XG4gIHByaXZhdGUgdXNlcklkSW5Vbml0QnMgOiBCZWhhdmlvclN1YmplY3Q8VXNlck1vZGVsW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcbiAgcHJpdmF0ZSBtZW51QnMgOiBCZWhhdmlvclN1YmplY3Q8TWVudUl0ZW1bXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xuXG4gIHByaXZhdGUgdXNlciA6IFVzZXJNb2RlbDtcblxuICBwcml2YXRlIGF1dGhDb2RlIDogc3RyaW5nO1xuXG4gIHNldEF1dGhDb2RlKGF1dGhjb2RlIDogc3RyaW5nKXtcbiAgICB0aGlzLmF1dGhDb2RlID0gYXV0aGNvZGU7XG4gIH1cblxuICBnZXRBdXRoY29kZSgpe1xuICAgIHJldHVybiB0aGlzLmF1dGhDb2RlO1xuICB9XG5cbiAgZ2V0VXNlcigpIDogVXNlck1vZGVse1xuICAgIHJldHVybiB0aGlzLnVzZXJCcy5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgZ2V0VXNlckJzKCkgOiBCZWhhdmlvclN1YmplY3Q8VXNlck1vZGVsPntcbiAgICByZXR1cm4gdGhpcy51c2VyQnM7XG4gIH1cblxuICBnZXRNZW51QnMoKSA6IEJlaGF2aW9yU3ViamVjdDxNZW51SXRlbVtdPntcbiAgICByZXR1cm4gdGhpcy5tZW51QnM7XG4gIH1cblxuICBhc3luYyBzZXRVc2VyKHJlcyA6IFVzZXJNb2RlbCl7XG4gICAgaWYocmVzKXtcbiAgICAgIGxldCB1c2VyID0gbmV3IFVzZXJNb2RlbCgpO1xuICAgICAgdXNlci5maXJzdE5hbWUgPSByZXMuZmlyc3ROYW1lO1xuICAgICAgdXNlci5sYXN0TmFtZSA9IHJlcy5sYXN0TmFtZTtcbiAgICAgIHVzZXIudXNlcm5hbWUgPSByZXNbJ3VzZXJfbmFtZSddO1xuICAgICAgdXNlci5taWRkbGVOYW1lID0gcmVzLm1pZGRsZU5hbWU7XG4gICAgICB1c2VyLmlzQWN0aXZlID0gcmVzLmlzQWN0aXZlXG4gICAgICB1c2VyLnJvbGVzID0gcmVzLnJvbGVzO1xuICAgICAgdXNlci5mdW5jdGlvbnMgPSByZXMuZnVuY3Rpb25zO1xuICAgICAgdXNlci5kb2IgPSByZXMuZG9iO1xuICAgICAgdXNlci51c2VyVHlwZSA9IHJlcy51c2VyVHlwZTtcbiAgICAgIHVzZXIuZ2VuZGVyID0gcmVzLmdlbmRlcjtcbiAgICAgIHVzZXIuZW1haWxJZD1yZXMuZW1haWxJZDtcbiAgICAgIHVzZXIucGFzc3dvcmRFeHBpcmF0aW9uRGF0ZSA9IHJlcy5wYXNzd29yZEV4cGlyYXRpb25EYXRlO1xuICAgICAgdXNlci5lbWFpbFN0YXR1cyA9IHJlcy5lbWFpbFN0YXR1cztcbiAgICAgIHVzZXIuaXNMb2dnZWRJbiA9IHJlcy5pc0xvZ2dlZEluO1xuICAgICAgdXNlci5jaGFuZ2VQd2QgPSByZXMuY2hhbmdlUHdkO1xuICAgICAgdXNlci5leHBpcmF0aW9uID0gcmVzLmV4cGlyYXRpb247XG4gICAgICB1c2VyLmV4cGlyZXNfaW4gPSByZXMuZXhwaXJlc19pbjtcbiAgICAgIHVzZXIuc3NuID0gcmVzLnNzbjtcbiAgICAgIHVzZXIuY2xhaW1hbnRJZCA9IHJlcy5jbGFpbWFudElkO1xuICAgICAgdXNlci5lbXBsb3llcklkID0gcmVzLmVtcGxveWVySWQ7XG4gICAgICB1c2VyLmNvb2tpZU5hbWUgPSByZXMuY29va2llTmFtZTtcbiAgICAgIHVzZXIuY29va2llVmFsdWUgPSByZXMuY29va2llVmFsdWU7XG4gICAgICB1c2VyLnVzZXJVbml0ID0gcmVzLnVzZXJVbml0O1xuICAgICAgdXNlci5kb21haW5OYW1lID0gcmVzLmRvbWFpbk5hbWU7XG4gICAgICB1c2VyLmlzMkZBUmVxdWlyZWQgPSByZXMuaXMyRkFSZXF1aXJlZDtcbiAgICAgIHVzZXIuZGF5c1RpbGxQYXNzd29yZEV4cGlyZSA9IHJlcy5kYXlzVGlsbFBhc3N3b3JkRXhwaXJlO1xuICAgICAgdXNlci5pc0VtYWlsVmVyaWZpY2F0aW9uUmVxdWlyZWQgPSByZXMuaXNFbWFpbFZlcmlmaWNhdGlvblJlcXVpcmVkO1xuICAgICAgdXNlci5jZWxscGhvbmVObyA9IHJlcy5jZWxscGhvbmVObztcbiAgICAgIHVzZXIuY2VsbHBob25lU3RhdHVzID0gcmVzLmNlbGxwaG9uZVN0YXR1cztcbiAgICAgIHVzZXIuc3VwcG9ydGVkTWZhVHlwZXMgPSByZXMuc3VwcG9ydGVkTWZhVHlwZXM7XG4gICAgICBpZihyZXMuYWNjZXNzX3Rva2VuICYmIHJlcy5yZWZyZXNoX3Rva2VuKXtcbiAgICAgICAgdXNlci5hY2Nlc3NfdG9rZW4gPSByZXMuYWNjZXNzX3Rva2VuO1xuICAgICAgICB1c2VyLnJlZnJlc2hfdG9rZW4gPSByZXMucmVmcmVzaF90b2tlbjtcbiAgICAgICAgYXdhaXQgdGhpcy5zdG9yYWdlLnNldCgnYWNjZXNzX3Rva2VuJywgcmVzLmFjY2Vzc190b2tlbik7XG4gICAgICAgIGF3YWl0IHRoaXMuc3RvcmFnZS5zZXQoJ3JlZnJlc2hfdG9rZW4nLCByZXMucmVmcmVzaF90b2tlbik7XG4gICAgICB9ZWxzZXtcbiAgICAgICAgdXNlci5hY2Nlc3NfdG9rZW4gPSB0aGlzLnVzZXIuYWNjZXNzX3Rva2VuO1xuICAgICAgICB1c2VyLnJlZnJlc2hfdG9rZW4gPSB0aGlzLnVzZXIucmVmcmVzaF90b2tlbjtcbiAgICAgICAgYXdhaXQgdGhpcy5zdG9yYWdlLnNldCgnYWNjZXNzX3Rva2VuJywgdGhpcy51c2VyLmFjY2Vzc190b2tlbik7XG4gICAgICAgIGF3YWl0IHRoaXMuc3RvcmFnZS5zZXQoJ3JlZnJlc2hfdG9rZW4nLCB0aGlzLnVzZXIucmVmcmVzaF90b2tlbik7XG4gICAgICB9XG4gICAgICBhd2FpdCB0aGlzLnN0b3JhZ2Uuc2V0KCd1c2VybmFtZScsIGJ0b2EodXNlci51c2VybmFtZSkpO1xuICAgICAgbGV0IHNob3dfZGlzY2xvc3VyZSA9IGF3YWl0IHRoaXMuc3RvcmFnZS5nZXQoJ3Nob3dfZGlzY2xvc3VyZScpO1xuICAgICAgaWYoc2hvd19kaXNjbG9zdXJlID09IG51bGwgfHwgc2hvd19kaXNjbG9zdXJlID09IHVuZGVmaW5lZCB8fCBzaG93X2Rpc2Nsb3N1cmUgIT0gJ2ZhbHNlJyl7XG4gICAgICAgIGF3YWl0IHRoaXMuc3RvcmFnZS5zZXQoJ3Nob3dfZGlzY2xvc3VyZScsICd0cnVlJyk7XG4gICAgICB9XG4gICAgICB0aGlzLnVzZXIgPSB1c2VyO1xuICAgICAgdGhpcy51c2VyQnMubmV4dCh0aGlzLnVzZXIpO1xuICAgICAgaWYodGhpcy51dGlsLmlzU3RhdGUoJ21zJykpe1xuICAgICAgICBpZighdXNlci5pczJGQVJlcXVpcmVkKXtcbiAgICAgICAgICB0aGlzLmNyZWF0ZUNvb2tpZShMaWJDb25zdGFudHMuc3NvQ29va2llTmFtZSwgYFwiJHt1c2VyLmNvb2tpZVZhbHVlfVwiYCwgdXNlci5leHBpcmF0aW9uKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldEZ1bGxOYW1lKCl7XG4gICAgY29uc3QgbWlkID0gdGhpcy5nZXRVc2VyKCkubWlkZGxlTmFtZTtcbiAgICBjb25zdCBsYXN0ID0gdGhpcy5nZXRVc2VyKCkubGFzdE5hbWU7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VXNlcigpLmZpcnN0TmFtZVxuICAgICAgKyAobWlkICE9IG51bGwgJiYgbWlkICE9PSAnbnVsbCcgJiYgbWlkICE9PSAnJyA/ICcgJyArIG1pZCA6ICcnKVxuICAgICAgKyAobGFzdCAhPSBudWxsICYmIGxhc3QgIT09ICdudWxsJyAmJiBsYXN0ICE9PSAnJyA/ICcgJyArIGxhc3QgOiAnJyk7XG4gIH1cblxuICBnZXRJc1VzZXJQcm9maWxlQ29tcGxldGUoKXtcbiAgICAgIHJldHVybiB0aGlzLmdldFVzZXIoKS51c2VyUHJvZmlsZUNvbXBsZXRlO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHVibGljIHV0aWwgOiBVdGlsU2VydmljZSwgcHJpdmF0ZSBzdG9yYWdlOiBTdG9yYWdlLCBwcml2YXRlIGNsYWltYW50Q29udGV4dFNlcnZpY2UgOiBDbGFpbWFudENvbnRleHRTZXJ2aWNlKSB7IFxuICAgIFxuICB9XG5cbiAgZ2V0VXNlclBlcnNvbmFsRGV0YWlscygpIDogT2JzZXJ2YWJsZTxVc2VyRGV0YWlsc01vZGVsPntcbiAgICByZXR1cm4gdGhpcy51dGlsLmdldDxVc2VyRGV0YWlsc01vZGVsPigndXNlci9kZXRhaWxzLycgKyB0aGlzLnVzZXIudXNlcm5hbWUpO1xuICB9XG5cbiAgZ2VuZXJhdGVPdHAodXNlcklkIDogc3RyaW5nLCB0eXBlIDogc3RyaW5nKXtcbiAgICByZXR1cm4gdGhpcy51dGlsLmdldChgdXNlci92Mi9vdHAvJHt1c2VySWR9P3R5cGU9JHt0eXBlfWApO1xuICB9XG5cbiAgbG9naW4oYXV0aCA6IE90cEF1dGhNb2RlbCl7XG4gICAgbGV0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgLy9cIkFjY2VwdFwiIDogXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIlxuICAgIH0pO1xuICAgIHRoaXMub3B0aW9ucyA9IHsgaGVhZGVyczogaGVhZGVycyB9O1xuXG4gICAgbGV0IGF1dGhEYXRhIDogRm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICBhdXRoRGF0YS5zZXQoJ2dyYW50X3R5cGUnLCAncGFzc3dvcmQnKTtcbiAgICBhdXRoRGF0YS5zZXQoJ3VzZXJuYW1lJywgYXV0aC51c2VySWQpO1xuICAgIGF1dGhEYXRhLnNldCgncGFzc3dvcmQnLCBhdXRoLnBhc3N3b3JkKTtcblxuICAgIHJldHVybiB0aGlzLnV0aWwucG9zdEZvcm1EYXRhPFVzZXJNb2RlbD4oJ29hdXRoL3Rva2VuJywgYXV0aERhdGEsdGhpcy5vcHRpb25zKTtcbiAgfVxuXG4gIGxvZ2luQW5kQ2hlY2tGb3JNRkEoYXV0aCA6IE90cEF1dGhNb2RlbCl7XG4gICAgbGV0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgLy9cIkFjY2VwdFwiIDogXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIlxuICAgIH0pO1xuICAgIHRoaXMub3B0aW9ucyA9IHsgaGVhZGVyczogaGVhZGVycyB9O1xuXG4gICAgbGV0IGF1dGhEYXRhIDogRm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICBhdXRoRGF0YS5zZXQoJ2dyYW50X3R5cGUnLCAnbWZhJyk7XG4gICAgYXV0aERhdGEuc2V0KCd1c2VybmFtZScsIGF1dGgudXNlcklkKTtcbiAgICBhdXRoRGF0YS5zZXQoJ3Bhc3N3b3JkJywgYXV0aC5wYXNzd29yZCk7XG4gICAgaWYoYXV0aC5vdHApe1xuICAgICAgYXV0aERhdGEuc2V0KCdtZmFfY29kZScsIGF1dGgub3RwKTtcbiAgICAgIGF1dGhEYXRhLnNldCgnaXNfdHJ1c3RlZF9kZXZpY2UnLCBhdXRoLmlzdHJ1c3RlZERldmljZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMudXRpbC5wb3N0Rm9ybURhdGE8VXNlck1vZGVsPignb2F1dGgvdG9rZW4nLCBhdXRoRGF0YSx0aGlzLm9wdGlvbnMpO1xuICB9XG5cbiAgYXN5bmMgcmVmcmVzaFRva2VuKHJlZnJlc2hUb2tlbil7XG4gICAgbGV0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgXCJBY2NlcHRcIiA6IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCIsXG4gICAgICAnQXV0aG9yaXphdGlvbic6IGBCYXNpYyBgICsgYnRvYShgJHtMaWJDb25zdGFudHMub2F1dGhDbGllbnRVc2VyfToke0xpYkNvbnN0YW50cy5vYXV0aENsaWVudFNlY3JldH1gKVxuICAgIH0pO1xuICAgIHRoaXMub3B0aW9ucyA9IHsgaGVhZGVyczogaGVhZGVycyB9O1xuXG4gICAgbGV0IGF1dGhEYXRhIDogRm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICBhdXRoRGF0YS5zZXQoJ2dyYW50X3R5cGUnLCAncmVmcmVzaF90b2tlbicpO1xuICAgIGF1dGhEYXRhLnNldCgnY2xpZW50X2lkJywgTGliQ29uc3RhbnRzLm9hdXRoQ2xpZW50VXNlcik7XG4gICAgYXV0aERhdGEuc2V0KCdyZWZyZXNoX3Rva2VuJywgcmVmcmVzaFRva2VuKTtcblxuICAgIHJldHVybiB0aGlzLnV0aWwucG9zdEZvcm1EYXRhPFVzZXJNb2RlbD4oYG9hdXRoL3Rva2VuYCwgYXV0aERhdGEsIHRoaXMub3B0aW9ucykudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyByZWZyZXNoVG9rZW5XaW5ncyhyZWZyZXNoVG9rZW4pe1xuICAgIGxldCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgIFwiQWNjZXB0XCIgOiBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiLFxuICAgICAgJ0F1dGhvcml6YXRpb24nOiBgQmFzaWMgYCArIGJ0b2EoYCR7TGliQ29uc3RhbnRzLm9hdXRoV2luZ3NDbGllbnRVc2VyfToke0xpYkNvbnN0YW50cy5vYXV0aFdpbmdzQ2xpZW50U2VjcmV0fWApXG4gICAgfSk7XG4gICAgdGhpcy5vcHRpb25zID0geyBoZWFkZXJzOiBoZWFkZXJzIH07XG5cbiAgICBsZXQgYXV0aERhdGEgOiBGb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGF1dGhEYXRhLnNldCgnZ3JhbnRfdHlwZScsICdyZWZyZXNoX3Rva2VuJyk7XG4gICAgYXV0aERhdGEuc2V0KCdjbGllbnRfaWQnLCBMaWJDb25zdGFudHMub2F1dGhXaW5nc0NsaWVudFVzZXIpO1xuICAgIGF1dGhEYXRhLnNldCgncmVmcmVzaF90b2tlbicsIHJlZnJlc2hUb2tlbik7XG5cbiAgICByZXR1cm4gdGhpcy51dGlsLnBvc3RGb3JtRGF0YTxVc2VyTW9kZWw+KGBvYXV0aC90b2tlbmAsIGF1dGhEYXRhLCB0aGlzLm9wdGlvbnMpLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlVG9rZW5Qb3N0U3NvVmFsaWRhdGlvbigpe1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnKTtcbiAgICBjb25zdCBib2R5ID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh7XG4gICAgICBncmFudF90eXBlOiAnY3VzdG9tX3NzbydcbiAgICB9KS50b1N0cmluZygpO1xuXG4gICAgcmV0dXJuIHRoaXMudXRpbC5wb3N0Rm9ybURhdGE8VXNlck1vZGVsPignb2F1dGgvdG9rZW4nLCBib2R5LCB7IGhlYWRlcnMsd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgbG9hZFVzZXJJbmZvKCl7XG4gICAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycyh7XG4gICAgICAgIFwiQWNjZXB0XCIgOiBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiXG4gICAgICB9KTtcbiAgICAgIHRoaXMub3B0aW9ucyA9IHsgaGVhZGVyczogaGVhZGVycyB9O1xuICAgICAgbGV0IGF1dGhUb2tlbiA9IGF3YWl0IHRoaXMuZ2V0U3RvcmVkQWNjZXNzVG9wZW4oKTtcbiAgICAgIHJldHVybiB0aGlzLnV0aWwuZ2V0PFVzZXJNb2RlbD4oYG9hdXRoL2NoZWNrX3Rva2VuP3Rva2VuPSR7YXV0aFRva2VufWApLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0U3RvcmVkQWNjZXNzVG9wZW4oKXtcbiAgICBsZXQgYWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLnN0b3JhZ2UuZ2V0KCdhY2Nlc3NfdG9rZW4nKS50aGVuKHJlcyA9PiByZXMpO1xuICAgIHJldHVybiBhY2Nlc3NUb2tlbjtcbiAgfVxuXG4gIGdlbmVyYXRlT3RwVW5yZWdpc3RlcmVkKG1vYmlsZU5vIDogc3RyaW5nKXtcbiAgICByZXR1cm4gdGhpcy51dGlsLmdldCgnYXV0aC9vdHAvbmV3dXNlci8nICsgbW9iaWxlTm8pO1xuICB9XG5cbiAgc2lnblVwKHVzZXJNb2RlbCA6IFVzZXJNb2RlbCl7XG4gICAgcmV0dXJuIHRoaXMudXRpbC5wb3N0KCd1c2VyJywgdXNlck1vZGVsKTtcbiAgfVxuXG4gIHVwZGF0ZVBlcnNvbmFsRGV0YWlscyh1c3JEdGxzIDogVXNlckRldGFpbHNNb2RlbCl7XG4gICAgcmV0dXJuIHRoaXMudXRpbC5wb3N0KCd1c2VyL2RldGFpbHMnLCB1c3JEdGxzKTtcbiAgfVxuXG4gIHJlc2V0KCl7XG4gICAgdGhpcy51c2VyID0gbnVsbDtcbiAgICB0aGlzLnVzZXJCcy5uZXh0KG51bGwpO1xuICAgIHRoaXMubWVudUJzLm5leHQobnVsbCk7XG4gICAgdGhpcy5zdG9yYWdlLnJlbW92ZSgnYWNjZXNzX3Rva2VuJyk7XG4gICAgdGhpcy5zdG9yYWdlLnJlbW92ZSgncmVmcmVzaF90b2tlbicpO1xuICAgIHRoaXMuc3RvcmFnZS5yZW1vdmUoJ3Nob3dfZGlzY2xvc3VyZScpO1xuICAgIHRoaXMuc3RvcmFnZS5yZW1vdmUoJ3VzZXJuYW1lJyk7XG4gICAgdGhpcy5jbGFpbWFudENvbnRleHRTZXJ2aWNlLmNsZWFyQ29udGV4dCgpO1xuICAgIHRoaXMucmVtb3ZlQ29va2llcygpO1xuICB9XG5cbiAgcmVtb3ZlQ29va2llcygpe1xuICAgIHRoaXMuZGVsZXRlQ29va2llKCdhdCcpO1xuICAgIHRoaXMuZGVsZXRlQ29va2llKCdydCcpO1xuICAgIHRoaXMuZGVsZXRlQ29va2llKExpYkNvbnN0YW50cy5zc29Db29raWVOYW1lKTtcbiAgfVxuXG4gIGRlbGV0ZUNvb2tpZShjb29raWVOYW1lKXtcbiAgICBsZXQgY29va2llID0gYCR7Y29va2llTmFtZX09OyBNYXgtQWdlPTA7IHBhdGg9LzsgZG9tYWluPSR7TGliQ29uc3RhbnRzLnNzb0RvbWFpbn1gO1xuICAgIGRvY3VtZW50LmNvb2tpZSA9IGNvb2tpZTtcbiAgfVxuXG4gIGNyZWF0ZUNvb2tpZShjb29raWVOYW1lLCB2YWx1ZSwgZXhwaXJhdGlvbil7XG4gICAgbGV0IGNvb2tpZSA9IGAke2Nvb2tpZU5hbWV9PSR7dmFsdWV9OyBleHBpcmVzPSR7ZXhwaXJhdGlvbiArICcuMDAwJ307IHBhdGg9LzsgZG9tYWluPSR7TGliQ29uc3RhbnRzLnNzb0RvbWFpbn1gO1xuICAgIGRvY3VtZW50LmNvb2tpZSA9IGNvb2tpZTtcbiAgfVxuXG4gIGxvZ291dCgpe1xuICAgIGlmKHRoaXMudXNlcil7XG4gICAgICB0aGlzLnV0aWwuZ2V0KCd1c2VyL2xvZ291dCcpXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICByZXMgPT4ge1xuICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyID0+IHtcbiAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgICAgdGhpcy51dGlsLmVycm9ySGFuZGxlcihlcnIpO1xuICAgICAgICB9XG4gICAgICApXG4gICAgfWVsc2V7XG4gICAgICB0aGlzLnJlc2V0KCk7XG4gICAgfVxuICB9XG5cbiAgaXNMb2dnZWRJbigpe1xuICAgIHJldHVybiB0aGlzLnVzZXIgJiYgdGhpcy51c2VyLmlzTG9nZ2VkSW47XG4gIH1cblxuICBpczJGQVJlcXVpcmVkKCl7XG4gICAgcmV0dXJuIHRoaXMudXNlciAmJiB0aGlzLnVzZXIuaXMyRkFSZXF1aXJlZDtcbiAgfVxuXG4gIHVwZGF0ZVByb2ZpbGUodXNlciA6IFVzZXJNb2RlbCl7XG4gICAgcmV0dXJuIHRoaXMudXRpbC5wb3N0KCd1c2VyL3Byb2ZpbGUnLCB1c2VyKTtcbiAgfVxuXG4gIHVwZGF0ZVBhc3N3b3JkKG9sZFBhc3N3b3JkLCBuZXdQYXNzd29yZCwgY29uZmlybVBhc3N3b3JkKXtcbiAgICBsZXQgcHdkQ2hhbmdlTW9kZWwgOiB7b2xkUGFzc3dvcmQ6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZywgY29uZmlybVBhc3N3b3JkOiBzdHJpbmd9ID0ge29sZFBhc3N3b3JkOiBvbGRQYXNzd29yZCwgcGFzc3dvcmQ6IG5ld1Bhc3N3b3JkLCBjb25maXJtUGFzc3dvcmQ6IGNvbmZpcm1QYXNzd29yZH07XG4gICAgcmV0dXJuIHRoaXMudXRpbC5wb3N0KGB1c2VyL3Bhc3N3b3JkLyR7dGhpcy5nZXRVc2VyKCkudXNlcm5hbWV9YCwgcHdkQ2hhbmdlTW9kZWwpO1xuICB9XG5cbiAgaW5pdGlhdGVGb3Jnb3RQYXNzd29yZCh1c2VySWQgOiBzdHJpbmcpe1xuICAgIHJldHVybiB0aGlzLnV0aWwuZ2V0KGB1c2VyL3Bhc3N3b3JkL3Jlc2V0LyR7dXNlcklkfWApO1xuICB9XG5cbiAgaW5pdGlhdGVGb3Jnb3RQYXNzd29yZFYyKHVzZXJJZCA6IHN0cmluZyl7XG4gICAgcmV0dXJuIHRoaXMudXRpbC5nZXQoYHVzZXIvdjIvcGFzc3dvcmQvcmVzZXQvJHt1c2VySWR9YCk7XG4gIH1cblxuICBoYXNSb2xlKHJvbGVOYW1lIDogc3RyaW5nKSA6IGJvb2xlYW57XG4gICAgcmV0dXJuIHRoaXMudXNlciAmJiB0aGlzLnVzZXIucm9sZXMgJiYgdGhpcy51c2VyLnJvbGVzLmluY2x1ZGVzKHJvbGVOYW1lKTtcbiAgfVxuXG4gIGhhc0Z1bmN0aW9uKGZ1bmN0aW9uTmFtZSA6IHN0cmluZykgOiBib29sZWFue1xuICAgIHJldHVybiB0aGlzLnVzZXIgJiYgdGhpcy51c2VyLmZ1bmN0aW9ucyAmJiB0aGlzLnVzZXIuZnVuY3Rpb25zLmluY2x1ZGVzKGZ1bmN0aW9uTmFtZSk7XG4gIH1cblxuICBoYXNSb2xlcyguLi5yb2xlcyA6IHN0cmluZ1tdKXtcbiAgICBsZXQgaXNQcmVzZW50ID0gZmFsc2U7XG4gICAgZm9yKHZhciBpID0gMCA7IGkgPCByb2xlcy5sZW5ndGggOyBpKyspe1xuICAgICAgaWYodGhpcy5oYXNSb2xlKHJvbGVzW2ldLnRvU3RyaW5nKCkpKXtcbiAgICAgICAgaXNQcmVzZW50ID0gdHJ1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpc1ByZXNlbnQ7XG4gIH1cblxuICBoYXNGdW5jdGlvbnMoLi4uZnVuY3Rpb25zIDogc3RyaW5nW10pe1xuICAgIGxldCBpc1ByZXNlbnQgPSBmYWxzZTtcbiAgICBmb3IodmFyIGkgPSAwIDsgaSA8IGZ1bmN0aW9ucy5sZW5ndGggOyBpKyspe1xuICAgICAgaWYodGhpcy5oYXNGdW5jdGlvbihmdW5jdGlvbnNbaV0pKXtcbiAgICAgICAgaXNQcmVzZW50ID0gdHJ1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpc1ByZXNlbnQ7XG4gIH1cblxuICBjaGVja1JvbGVzKHJvbGVzIDogc3RyaW5nW10pe1xuICAgIGxldCBpc1ByZXNlbnQgPSBmYWxzZTtcbiAgICBmb3IodmFyIGkgPSAwIDsgaSA8IHJvbGVzLmxlbmd0aCA7IGkrKyl7XG4gICAgICBpZih0aGlzLmhhc1JvbGUocm9sZXNbaV0udG9TdHJpbmcoKSkpe1xuICAgICAgICBpc1ByZXNlbnQgPSB0cnVlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGlzUHJlc2VudDtcbiAgfVxuXG4gIGNoZWNrRnVuY3Rpb25zKGZ1bmN0aW9ucyA6IHN0cmluZ1tdKXtcbiAgICBsZXQgaXNQcmVzZW50ID0gZmFsc2U7XG4gICAgZm9yKHZhciBpID0gMCA7IGkgPCBmdW5jdGlvbnMubGVuZ3RoIDsgaSsrKXtcbiAgICAgIGlmKHRoaXMuaGFzRnVuY3Rpb24oZnVuY3Rpb25zW2ldKSl7XG4gICAgICAgIGlzUHJlc2VudCA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaXNQcmVzZW50O1xuICB9XG5cbiAgaXNDc3IoKXtcbiAgICByZXR1cm4gdGhpcy5nZXRVc2VyKCkgJiYgdGhpcy5nZXRVc2VyKCkudXNlclR5cGUgPT09ICdNREVTJ1xuICB9XG5cbiAgaXNUYXhBdWRpdFN1cGVydmlzb3IoKXtcbiAgICByZXR1cm4gdGhpcy5nZXRVc2VyKCkgJiYgdGhpcy5oYXNSb2xlKCd0YXhhdWRpdHN1cGVydmlzb3InKSAmJnRoaXMuZ2V0VXNlcigpLnVzZXJUeXBlID09PSAnTURFUycgXG4gIH1cblxuICBpc1RheEF1ZGl0QXVkaXRvcigpe1xuICAgIHJldHVybiB0aGlzLmdldFVzZXIoKSAmJiB0aGlzLmhhc1JvbGUoJ3RheGF1ZGl0c3BlY2lhbGlzdCcpICYmIHRoaXMuZ2V0VXNlcigpLnVzZXJUeXBlID09PSAnTURFUydcbiAgfVxuXG4gIGlzVGF4QXVkaXREaXJlY3Rvcigpe1xuICAgIHJldHVybiB0aGlzLmdldFVzZXIoKSAmJiB0aGlzLmhhc1JvbGUoJ3RheEF1ZGl0RGlyZWN0b3InKSAmJiB0aGlzLmdldFVzZXIoKS51c2VyVHlwZSA9PT0gJ01ERVMnXG4gIH1cblxuICBpc0VtcGxveWVyKCl7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VXNlcigpICYmIHRoaXMuZ2V0VXNlcigpLnVzZXJUeXBlID09PSAnRU1QTCdcbiAgfVxuXG4gIGlzVHBhKCl7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VXNlcigpICYmIHRoaXMuZ2V0VXNlcigpLnVzZXJUeXBlID09PSAnVFBBJ1xuICB9XG5cbiAgaXNDbGFpbWFudCgpe1xuICAgIHJldHVybiB0aGlzLmdldFVzZXIoKSAmJiB0aGlzLmdldFVzZXIoKS51c2VyVHlwZSA9PT0gJ0NMTVQnXG4gIH1cblxuICBoYXNTc25Bc3NvY2lhdGVkKCkgOiBib29sZWFue1xuICAgIHJldHVybiB0aGlzLmdldFVzZXIoKSAmJiB0aGlzLmdldFVzZXIoKS51c2VyVHlwZSA9PT0gJ0NMTVQnICYmIHRoaXMuZ2V0VXNlcigpLnNzbiAhPT0gdW5kZWZpbmVkIFxuICB9XG5cbiAgZ2V0VXNlck1lbnVzKCl7XG4gICAgcmV0dXJuIHRoaXMudXRpbC5nZXQ8TWVudUl0ZW1bXT4oYG1lbnUvYCk7XG4gIH1cblxuICBtYXJrRmF2KG1lbnVJZCA6IHN0cmluZyl7XG4gICAgcmV0dXJuIHRoaXMudXRpbC5wb3N0PE1lbnVJdGVtW10+KGBtZW51L2Zhdi8ke21lbnVJZH1gLCBudWxsKTtcbiAgfVxuXG4gIHJlbW92ZUZhdihtZW51SWQgOiBzdHJpbmcpe1xuICAgIHJldHVybiB0aGlzLnV0aWwuZGVsZXRlPE1lbnVJdGVtW10+KGBtZW51L2Zhdi8ke21lbnVJZH1gKTtcbiAgfVxuXG4gIGdldEZhdm91cml0ZU1lbnUoKXtcbiAgICByZXR1cm4gdGhpcy51dGlsLmdldDxNZW51SXRlbVtdPihgbWVudS9mYXZgKTtcbiAgfVxuXG4gIGdldFRyZW5kaW5nTWVudSgpe1xuICAgIHJldHVybiB0aGlzLnV0aWwuZ2V0PE1lbnVJdGVtW10+KGBtZW51L3RyZW5kaW5nYCk7XG4gIH1cblxuICB2ZXJpZnlFbWFpbChjb2RlIDogc3RyaW5nKXtcbiAgICByZXR1cm4gdGhpcy51dGlsLnBvc3QoYHVzZXIvZW1haWwvJHtjb2RlfWAsIG51bGwpO1xuICB9XG5cbiAgZ2V0TmV3Q29kZSgpe1xuICAgIHJldHVybiB0aGlzLnV0aWwuZ2V0KGB1c2VyL2VtYWlsYCk7XG4gIH1cblxuICB1cGRhdGVFbWFpbEFuZEdldE5ld0NvZGUoZW1haWwgOiBzdHJpbmcpe1xuICAgIHJldHVybiB0aGlzLnV0aWwucGF0Y2goYHVzZXIvZW1haWwvJHtlbWFpbH1gLCBudWxsKTtcbiAgfVxuXG4gIGdldE5ld0F1dGhDb2RlKHR5cGUgOiBzdHJpbmcpe1xuICAgIHJldHVybiB0aGlzLnV0aWwuZ2V0KGB1c2VyL290cD90eXBlPSR7dHlwZX1gKTtcbiAgfVxuXG4gIGFzc29jaWF0ZVNzblRvVXNlcklkKHNzbiA6IHN0cmluZyl7XG4gICAgcmV0dXJuIHRoaXMudXRpbC5wb3N0KGBjbGFpbWFudC9hc3NvY2lhdGUtc3NuLyR7c3NufWAsIG51bGwpO1xuICB9XG5cbiAgZ2V0VXNlcklkSW5Vbml0QnMoKXtcbiAgICByZXR1cm4gdGhpcy51c2VySWRJblVuaXRCcztcbiAgfVxuXG4gIGxvYWRVc2VySWRzRnJvbVVuaXRPZkxvZ2dlZEluVXNlcih1bml0SWQgOiBzdHJpbmcpe1xuICAgIGlmKHRoaXMudXNlcklkSW5Vbml0QnMuZ2V0VmFsdWUoKSA9PSBudWxsKVxuICAgICAgdGhpcy51dGlsLmdldDxVc2VyTW9kZWxbXT4oYHVzZXIvYWxsLyR7dW5pdElkfWApXG4gICAgICAgICAgLnN1YnNjcmliZShyZXMgPT4gdGhpcy51c2VySWRJblVuaXRCcy5uZXh0KHJlcykpO1xuICB9XG59XG4iXX0=
363
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvc2VydmljZXMvbG9naW4vbG9naW4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUd6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7O0FBU25ELE1BQU0sT0FBTyxZQUFZO0lBWXZCLFdBQVcsQ0FBQyxRQUFpQjtRQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUMzQixDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFlO1FBQzNCLElBQUcsR0FBRyxFQUFDO1lBQ0wsSUFBSSxJQUFJLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUM7WUFDL0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDO1lBQzdCLElBQUksQ0FBQyxR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eyBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTGliQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0xpYkNvbnN0YW50cyc7XG5pbXBvcnQgeyBPdHBBdXRoTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvT3RwQXV0aE1vZGVsJztcbmltcG9ydCB7IFVzZXJEZXRhaWxzTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvVXNlckRldGFpbHNNb2RlbCc7XG5pbXBvcnQgeyBVc2VyTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvVXNlck1vZGVsJztcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vdXRpbC91dGlsLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RvcmFnZSB9IGZyb20gJ0Bpb25pYy9zdG9yYWdlLWFuZ3VsYXInO1xuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBDbGFpbWFudENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2xhaW1hbnQtY29udGV4dC9jbGFpbWFudC1jb250ZXh0LnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBMb2dpblNlcnZpY2Uge1xuXG4gIG9wdGlvbnMgPSB7fTtcblxuICBwcml2YXRlIHVzZXJCcyA6IEJlaGF2aW9yU3ViamVjdDxVc2VyTW9kZWw+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcbiAgcHJpdmF0ZSB1c2VySWRJblVuaXRCcyA6IEJlaGF2aW9yU3ViamVjdDxVc2VyTW9kZWxbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xuICBwcml2YXRlIG1lbnVCcyA6IEJlaGF2aW9yU3ViamVjdDxNZW51SXRlbVtdPiA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XG5cbiAgcHJpdmF0ZSB1c2VyIDogVXNlck1vZGVsO1xuXG4gIHByaXZhdGUgYXV0aENvZGUgOiBzdHJpbmc7XG5cbiAgc2V0QXV0aENvZGUoYXV0aGNvZGUgOiBzdHJpbmcpe1xuICAgIHRoaXMuYXV0aENvZGUgPSBhdXRoY29kZTtcbiAgfVxuXG4gIGdldEF1dGhjb2RlKCl7XG4gICAgcmV0dXJuIHRoaXMuYXV0aENvZGU7XG4gIH1cblxuICBnZXRVc2VyKCkgOiBVc2VyTW9kZWx7XG4gICAgcmV0dXJuIHRoaXMudXNlckJzLmdldFZhbHVlKCk7XG4gIH1cblxuICBnZXRVc2VyQnMoKSA6IEJlaGF2aW9yU3ViamVjdDxVc2VyTW9kZWw+e1xuICAgIHJldHVybiB0aGlzLnVzZXJCcztcbiAgfVxuXG4gIGdldE1lbnVCcygpIDogQmVoYXZpb3JTdWJqZWN0PE1lbnVJdGVtW10+e1xuICAgIHJldHVybiB0aGlzLm1lbnVCcztcbiAgfVxuXG4gIGFzeW5jIHNldFVzZXIocmVzIDogVXNlck1vZGVsKXtcbiAgICBpZihyZXMpe1xuICAgICAgbGV0IHVzZXIgPSBuZXcgVXNlck1vZGVsKCk7XG4gICAgICB1c2VyLmZpcnN0TmFtZSA9IHJlcy5maXJzdE5hbWU7XG4gICAgICB1c2VyLmxhc3ROYW1lID0gcmVzLmxhc3ROYW1lO1xuICAgICAgdXNlci51c2VybmFtZSA9IHJlc1sndXNlcl9uYW1lJ107XG4gICAgICB1c2VyLm1pZGRsZU5hbWUgPSByZXMubWlkZGxlTmFtZTtcbiAgICAgIHVzZXIuaXNBY3RpdmUgPSByZXMuaXNBY3RpdmVcbiAgICAgIHVzZXIucm9sZXMgPSByZXMucm9sZXM7XG4gICAgICB1c2VyLmZ1bmN0aW9ucyA9IHJlcy5mdW5jdGlvbnM7XG4gICAgICB1c2VyLmRvYiA9IHJlcy5kb2I7XG4gICAgICB1c2VyLnVzZXJUeXBlID0gcmVzLnVzZXJUeXBlO1xuICAgICAgdXNlci5nZW5kZXIgPSByZXMuZ2VuZGVyO1xuICAgICAgdXNlci5lbWFpbElkPXJlcy5lbWFpbElkO1xuICAgICAgdXNlci5wYXNzd29yZEV4cGlyYXRpb25EYXRlID0gcmVzLnBhc3N3b3JkRXhwaXJhdGlvbkRhdGU7XG4gICAgICB1c2VyLmVtYWlsU3RhdHVzID0gcmVzLmVtYWlsU3RhdHVzO1xuICAgICAgdXNlci5pc0xvZ2dlZEluID0gcmVzLmlzTG9nZ2VkSW47XG4gICAgICB1c2VyLmNoYW5nZVB3ZCA9IHJlcy5jaGFuZ2VQd2Q7XG4gICAgICB1c2VyLmV4cGlyYXRpb24gPSByZXMuZXhwaXJhdGlvbjtcbiAgICAgIHVzZXIuZXhwaXJlc19pbiA9IHJlcy5leHBpcmVzX2luO1xuICAgICAgdXNlci5zc24gPSByZXMuc3NuO1xuICAgICAgdXNlci5jbGFpbWFudElkID0gcmVzLmNsYWltYW50SWQ7XG4gICAgICB1c2VyLmVtcGxveWVySWQgPSByZXMuZW1wbG95ZXJJZDtcbiAgICAgIHVzZXIuY29va2llTmFtZSA9IHJlcy5jb29raWVOYW1lO1xuICAgICAgdXNlci5jb29raWVWYWx1ZSA9IHJlcy5jb29raWVWYWx1ZTtcbiAgICAgIHVzZXIudXNlclVuaXQgPSByZXMudXNlclVuaXQ7XG4gICAgICB1c2VyLmRvbWFpbk5hbWUgPSByZXMuZG9tYWluTmFtZTtcbiAgICAgIHVzZXIuaXMyRkFSZXF1aXJlZCA9IHJlcy5pczJGQVJlcXVpcmVkO1xuICAgICAgdXNlci5kYXlzVGlsbFBhc3N3b3JkRXhwaXJlID0gcmVzLmRheXNUaWxsUGFzc3dvcmRFeHBpcmU7XG4gICAgICB1c2VyLmlzRW1haWxWZXJpZmljYXRpb25SZXF1aXJlZCA9IHJlcy5pc0VtYWlsVmVyaWZpY2F0aW9uUmVxdWlyZWQ7XG4gICAgICB1c2VyLmNlbGxwaG9uZU5vID0gcmVzLmNlbGxwaG9uZU5vO1xuICAgICAgdXNlci5jZWxscGhvbmVTdGF0dXMgPSByZXMuY2VsbHBob25lU3RhdHVzO1xuICAgICAgdXNlci5zdXBwb3J0ZWRNZmFUeXBlcyA9IHJlcy5zdXBwb3J0ZWRNZmFUeXBlcztcbiAgICAgIGlmKHJlcy5hY2Nlc3NfdG9rZW4gJiYgcmVzLnJlZnJlc2hfdG9rZW4pe1xuICAgICAgICB1c2VyLmFjY2Vzc190b2tlbiA9IHJlcy5hY2Nlc3NfdG9rZW47XG4gICAgICAgIHVzZXIucmVmcmVzaF90b2tlbiA9IHJlcy5yZWZyZXNoX3Rva2VuO1xuICAgICAgICBhd2FpdCB0aGlzLnN0b3JhZ2Uuc2V0KCdhY2Nlc3NfdG9rZW4nLCByZXMuYWNjZXNzX3Rva2VuKTtcbiAgICAgICAgYXdhaXQgdGhpcy5zdG9yYWdlLnNldCgncmVmcmVzaF90b2tlbicsIHJlcy5yZWZyZXNoX3Rva2VuKTtcbiAgICAgIH1lbHNle1xuICAgICAgICB1c2VyLmFjY2Vzc190b2tlbiA9IHRoaXMudXNlci5hY2Nlc3NfdG9rZW47XG4gICAgICAgIHVzZXIucmVmcmVzaF90b2tlbiA9IHRoaXMudXNlci5yZWZyZXNoX3Rva2VuO1xuICAgICAgICBhd2FpdCB0aGlzLnN0b3JhZ2Uuc2V0KCdhY2Nlc3NfdG9rZW4nLCB0aGlzLnVzZXIuYWNjZXNzX3Rva2VuKTtcbiAgICAgICAgYXdhaXQgdGhpcy5zdG9yYWdlLnNldCgncmVmcmVzaF90b2tlbicsIHRoaXMudXNlci5yZWZyZXNoX3Rva2VuKTtcbiAgICAgIH1cbiAgICAgIGF3YWl0IHRoaXMuc3RvcmFnZS5zZXQoJ3VzZXJuYW1lJywgYnRvYSh1c2VyLnVzZXJuYW1lKSk7XG4gICAgICBsZXQgc2hvd19kaXNjbG9zdXJlID0gYXdhaXQgdGhpcy5zdG9yYWdlLmdldCgnc2hvd19kaXNjbG9zdXJlJyk7XG4gICAgICBpZihzaG93X2Rpc2Nsb3N1cmUgPT0gbnVsbCB8fCBzaG93X2Rpc2Nsb3N1cmUgPT0gdW5kZWZpbmVkIHx8IHNob3dfZGlzY2xvc3VyZSAhPSAnZmFsc2UnKXtcbiAgICAgICAgYXdhaXQgdGhpcy5zdG9yYWdlLnNldCgnc2hvd19kaXNjbG9zdXJlJywgJ3RydWUnKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudXNlciA9IHVzZXI7XG4gICAgICB0aGlzLnVzZXJCcy5uZXh0KHRoaXMudXNlcik7XG4gICAgICBpZih0aGlzLnV0aWwuaXNTdGF0ZSgnbXMnKSl7XG4gICAgICAgIGlmKCF1c2VyLmlzMkZBUmVxdWlyZWQpe1xuICAgICAgICAgIHRoaXMuY3JlYXRlQ29va2llKExpYkNvbnN0YW50cy5zc29Db29raWVOYW1lLCBgXCIke3VzZXIuY29va2llVmFsdWV9XCJgLCB1c2VyLmV4cGlyYXRpb24pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0RnVsbE5hbWUoKXtcbiAgICBjb25zdCBtaWQgPSB0aGlzLmdldFVzZXIoKS5taWRkbGVOYW1lO1xuICAgIGNvbnN0IGxhc3QgPSB0aGlzLmdldFVzZXIoKS5sYXN0TmFtZTtcbiAgICByZXR1cm4gdGhpcy5nZXRVc2VyKCkuZmlyc3ROYW1lXG4gICAgICArIChtaWQgIT0gbnVsbCAmJiBtaWQgIT09ICdudWxsJyAmJiBtaWQgIT09ICcnID8gJyAnICsgbWlkIDogJycpXG4gICAgICArIChsYXN0ICE9IG51bGwgJiYgbGFzdCAhPT0gJ251bGwnICYmIGxhc3QgIT09ICcnID8gJyAnICsgbGFzdCA6ICcnKTtcbiAgfVxuXG4gIGdldElzVXNlclByb2ZpbGVDb21wbGV0ZSgpe1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0VXNlcigpLnVzZXJQcm9maWxlQ29tcGxldGU7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdXRpbCA6IFV0aWxTZXJ2aWNlLCBwcml2YXRlIHN0b3JhZ2U6IFN0b3JhZ2UsIHByaXZhdGUgY2xhaW1hbnRDb250ZXh0U2VydmljZSA6IENsYWltYW50Q29udGV4dFNlcnZpY2UpIHsgXG4gICAgXG4gIH1cblxuICBnZXRVc2VyUGVyc29uYWxEZXRhaWxzKCkgOiBPYnNlcnZhYmxlPFVzZXJEZXRhaWxzTW9kZWw+e1xuICAgIHJldHVybiB0aGlzLnV0aWwuZ2V0PFVzZXJEZXRhaWxzTW9kZWw+KCd1c2VyL2RldGFpbHMvJyArIHRoaXMudXNlci51c2VybmFtZSk7XG4gIH1cblxuICBnZW5lcmF0ZU90cCh1c2VySWQgOiBzdHJpbmcsIHR5cGUgOiBzdHJpbmcpe1xuICAgIHJldHVybiB0aGlzLnV0aWwuZ2V0KGB1c2VyL3YyL290cC8ke3VzZXJJZH0/dHlwZT0ke3R5cGV9YCk7XG4gIH1cblxuICBsb2dpbihhdXRoIDogT3RwQXV0aE1vZGVsKXtcbiAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycyh7XG4gICAgICAvL1wiQWNjZXB0XCIgOiBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiXG4gICAgfSk7XG4gICAgdGhpcy5vcHRpb25zID0geyBoZWFkZXJzOiBoZWFkZXJzIH07XG5cbiAgICBsZXQgYXV0aERhdGEgOiBGb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGF1dGhEYXRhLnNldCgnZ3JhbnRfdHlwZScsICdwYXNzd29yZCcpO1xuICAgIGF1dGhEYXRhLnNldCgndXNlcm5hbWUnLCBhdXRoLnVzZXJJZCk7XG4gICAgYXV0aERhdGEuc2V0KCdwYXNzd29yZCcsIGF1dGgucGFzc3dvcmQpO1xuXG4gICAgcmV0dXJuIHRoaXMudXRpbC5wb3N0Rm9ybURhdGE8VXNlck1vZGVsPignb2F1dGgvdG9rZW4nLCBhdXRoRGF0YSx0aGlzLm9wdGlvbnMpO1xuICB9XG5cbiAgbG9naW5BbmRDaGVja0Zvck1GQShhdXRoIDogT3RwQXV0aE1vZGVsKXtcbiAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycyh7XG4gICAgICAvL1wiQWNjZXB0XCIgOiBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiXG4gICAgfSk7XG4gICAgdGhpcy5vcHRpb25zID0geyBoZWFkZXJzOiBoZWFkZXJzIH07XG5cbiAgICBsZXQgYXV0aERhdGEgOiBGb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGF1dGhEYXRhLnNldCgnZ3JhbnRfdHlwZScsICdtZmEnKTtcbiAgICBhdXRoRGF0YS5zZXQoJ3VzZXJuYW1lJywgYXV0aC51c2VySWQpO1xuICAgIGF1dGhEYXRhLnNldCgncGFzc3dvcmQnLCBhdXRoLnBhc3N3b3JkKTtcbiAgICBpZihhdXRoLm90cCl7XG4gICAgICBhdXRoRGF0YS5zZXQoJ21mYV9jb2RlJywgYXV0aC5vdHApO1xuICAgICAgYXV0aERhdGEuc2V0KCdpc190cnVzdGVkX2RldmljZScsIGF1dGguaXN0cnVzdGVkRGV2aWNlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy51dGlsLnBvc3RGb3JtRGF0YTxVc2VyTW9kZWw+KCdvYXV0aC90b2tlbicsIGF1dGhEYXRhLHRoaXMub3B0aW9ucyk7XG4gIH1cblxuICBhc3luYyByZWZyZXNoVG9rZW4ocmVmcmVzaFRva2VuKXtcbiAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycyh7XG4gICAgICBcIkFjY2VwdFwiIDogXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIixcbiAgICAgICdBdXRob3JpemF0aW9uJzogYEJhc2ljIGAgKyBidG9hKGAke0xpYkNvbnN0YW50cy5vYXV0aENsaWVudFVzZXJ9OiR7TGliQ29uc3RhbnRzLm9hdXRoQ2xpZW50U2VjcmV0fWApXG4gICAgfSk7XG4gICAgdGhpcy5vcHRpb25zID0geyBoZWFkZXJzOiBoZWFkZXJzIH07XG5cbiAgICBsZXQgYXV0aERhdGEgOiBGb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGF1dGhEYXRhLnNldCgnZ3JhbnRfdHlwZScsICdyZWZyZXNoX3Rva2VuJyk7XG4gICAgYXV0aERhdGEuc2V0KCdjbGllbnRfaWQnLCBMaWJDb25zdGFudHMub2F1dGhDbGllbnRVc2VyKTtcbiAgICBhdXRoRGF0YS5zZXQoJ3JlZnJlc2hfdG9rZW4nLCByZWZyZXNoVG9rZW4pO1xuXG4gICAgcmV0dXJuIHRoaXMudXRpbC5wb3N0Rm9ybURhdGE8VXNlck1vZGVsPihgb2F1dGgvdG9rZW5gLCBhdXRoRGF0YSwgdGhpcy5vcHRpb25zKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIHJlZnJlc2hUb2tlbldpbmdzKHJlZnJlc2hUb2tlbil7XG4gICAgbGV0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgXCJBY2NlcHRcIiA6IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCIsXG4gICAgICAnQXV0aG9yaXphdGlvbic6IGBCYXNpYyBgICsgYnRvYShgJHtMaWJDb25zdGFudHMub2F1dGhXaW5nc0NsaWVudFVzZXJ9OiR7TGliQ29uc3RhbnRzLm9hdXRoV2luZ3NDbGllbnRTZWNyZXR9YClcbiAgICB9KTtcbiAgICB0aGlzLm9wdGlvbnMgPSB7IGhlYWRlcnM6IGhlYWRlcnMgfTtcblxuICAgIGxldCBhdXRoRGF0YSA6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgYXV0aERhdGEuc2V0KCdncmFudF90eXBlJywgJ3JlZnJlc2hfdG9rZW4nKTtcbiAgICBhdXRoRGF0YS5zZXQoJ2NsaWVudF9pZCcsIExpYkNvbnN0YW50cy5vYXV0aFdpbmdzQ2xpZW50VXNlcik7XG4gICAgYXV0aERhdGEuc2V0KCdyZWZyZXNoX3Rva2VuJywgcmVmcmVzaFRva2VuKTtcblxuICAgIHJldHVybiB0aGlzLnV0aWwucG9zdEZvcm1EYXRhPFVzZXJNb2RlbD4oYG9hdXRoL3Rva2VuYCwgYXV0aERhdGEsIHRoaXMub3B0aW9ucykudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBjcmVhdGVUb2tlblBvc3RTc29WYWxpZGF0aW9uKCl7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcpO1xuICAgIGNvbnN0IGJvZHkgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHtcbiAgICAgIGdyYW50X3R5cGU6ICdjdXN0b21fc3NvJ1xuICAgIH0pLnRvU3RyaW5nKCk7XG5cbiAgICByZXR1cm4gdGhpcy51dGlsLnBvc3RGb3JtRGF0YTxVc2VyTW9kZWw+KCdvYXV0aC90b2tlbicsIGJvZHksIHsgaGVhZGVycyx3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBsb2FkVXNlckluZm8oKXtcbiAgICAgIGxldCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgICAgXCJBY2NlcHRcIiA6IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCJcbiAgICAgIH0pO1xuICAgICAgdGhpcy5vcHRpb25zID0geyBoZWFkZXJzOiBoZWFkZXJzIH07XG4gICAgICBsZXQgYXV0aFRva2VuID0gYXdhaXQgdGhpcy5nZXRTdG9yZWRBY2Nlc3NUb3BlbigpO1xuICAgICAgcmV0dXJuIHRoaXMudXRpbC5nZXQ8VXNlck1vZGVsPihgb2F1dGgvY2hlY2tfdG9rZW4/dG9rZW49JHthdXRoVG9rZW59YCkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhc3luYyBnZXRTdG9yZWRBY2Nlc3NUb3Blbigpe1xuICAgIGxldCBhY2Nlc3NUb2tlbiA9IGF3YWl0IHRoaXMuc3RvcmFnZS5nZXQoJ2FjY2Vzc190b2tlbicpLnRoZW4ocmVzID0+IHJlcyk7XG4gICAgcmV0dXJuIGFjY2Vzc1Rva2VuO1xuICB9XG5cbiAgZ2VuZXJhdGVPdHBVbnJlZ2lzdGVyZWQobW9iaWxlTm8gOiBzdHJpbmcpe1xuICAgIHJldHVybiB0aGlzLnV0aWwuZ2V0KCdhdXRoL290cC9uZXd1c2VyLycgKyBtb2JpbGVObyk7XG4gIH1cblxuICBzaWduVXAodXNlck1vZGVsIDogVXNlck1vZGVsKXtcbiAgICByZXR1cm4gdGhpcy51dGlsLnBvc3QoJ3VzZXInLCB1c2VyTW9kZWwpO1xuICB9XG5cbiAgdXBkYXRlUGVyc29uYWxEZXRhaWxzKHVzckR0bHMgOiBVc2VyRGV0YWlsc01vZGVsKXtcbiAgICByZXR1cm4gdGhpcy51dGlsLnBvc3QoJ3VzZXIvZGV0YWlscycsIHVzckR0bHMpO1xuICB9XG5cbiAgcmVzZXQoKXtcbiAgICB0aGlzLnVzZXIgPSBudWxsO1xuICAgIHRoaXMudXNlckJzLm5leHQobnVsbCk7XG4gICAgdGhpcy5tZW51QnMubmV4dChudWxsKTtcbiAgICB0aGlzLnN0b3JhZ2UucmVtb3ZlKCdhY2Nlc3NfdG9rZW4nKTtcbiAgICB0aGlzLnN0b3JhZ2UucmVtb3ZlKCdyZWZyZXNoX3Rva2VuJyk7XG4gICAgdGhpcy5zdG9yYWdlLnJlbW92ZSgnc2hvd19kaXNjbG9zdXJlJyk7XG4gICAgdGhpcy5zdG9yYWdlLnJlbW92ZSgndXNlcm5hbWUnKTtcbiAgICB0aGlzLmNsYWltYW50Q29udGV4dFNlcnZpY2UuY2xlYXJDb250ZXh0KCk7XG4gICAgdGhpcy5yZW1vdmVDb29raWVzKCk7XG4gIH1cblxuICByZW1vdmVDb29raWVzKCl7XG4gICAgdGhpcy5kZWxldGVDb29raWUoJ2F0Jyk7XG4gICAgdGhpcy5kZWxldGVDb29raWUoJ3J0Jyk7XG4gICAgdGhpcy5kZWxldGVDb29raWUoTGliQ29uc3RhbnRzLnNzb0Nvb2tpZU5hbWUpO1xuICB9XG5cbiAgZGVsZXRlQ29va2llKGNvb2tpZU5hbWUpe1xuICAgIGxldCBjb29raWUgPSBgJHtjb29raWVOYW1lfT07IE1heC1BZ2U9MDsgcGF0aD0vOyBkb21haW49JHtMaWJDb25zdGFudHMuc3NvRG9tYWlufWA7XG4gICAgZG9jdW1lbnQuY29va2llID0gY29va2llO1xuICB9XG5cbiAgY3JlYXRlQ29va2llKGNvb2tpZU5hbWUsIHZhbHVlLCBleHBpcmF0aW9uKXtcbiAgICBsZXQgY29va2llID0gYCR7Y29va2llTmFtZX09JHt2YWx1ZX07IGV4cGlyZXM9JHtleHBpcmF0aW9uICsgJy4wMDAnfTsgcGF0aD0vOyBkb21haW49JHtMaWJDb25zdGFudHMuc3NvRG9tYWlufWA7XG4gICAgZG9jdW1lbnQuY29va2llID0gY29va2llO1xuICB9XG5cbiAgbG9nb3V0KHJlYXNvbjonVUNMTyd8J1VDUE8nfCdTRVRJJz0nVUNMTycpe1xuXHRjb25zb2xlLmxvZyhcIlJFQVNPTlwiK3JlYXNvbilcbiAgICBpZih0aGlzLnVzZXIpe1xuICAgICAgdGhpcy51dGlsLmdldCgndXNlci9sb2dvdXQ/bG9nb3V0UmVhc29uPScrcmVhc29uKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgcmVzID0+IHtcbiAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgIH0sXG4gICAgICAgIGVyciA9PiB7XG4gICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICAgIHRoaXMudXRpbC5lcnJvckhhbmRsZXIoZXJyKTtcbiAgICAgICAgfVxuICAgICAgKVxuICAgIH1lbHNle1xuICAgICAgdGhpcy5yZXNldCgpO1xuICAgIH1cbiAgfVxuXG4gIGlzTG9nZ2VkSW4oKXtcbiAgICByZXR1cm4gdGhpcy51c2VyICYmIHRoaXMudXNlci5pc0xvZ2dlZEluO1xuICB9XG5cbiAgaXMyRkFSZXF1aXJlZCgpe1xuICAgIHJldHVybiB0aGlzLnVzZXIgJiYgdGhpcy51c2VyLmlzMkZBUmVxdWlyZWQ7XG4gIH1cblxuICB1cGRhdGVQcm9maWxlKHVzZXIgOiBVc2VyTW9kZWwpe1xuICAgIHJldHVybiB0aGlzLnV0aWwucG9zdCgndXNlci9wcm9maWxlJywgdXNlcik7XG4gIH1cblxuICB1cGRhdGVQYXNzd29yZChvbGRQYXNzd29yZCwgbmV3UGFzc3dvcmQsIGNvbmZpcm1QYXNzd29yZCl7XG4gICAgbGV0IHB3ZENoYW5nZU1vZGVsIDoge29sZFBhc3N3b3JkOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcsIGNvbmZpcm1QYXNzd29yZDogc3RyaW5nfSA9IHtvbGRQYXNzd29yZDogb2xkUGFzc3dvcmQsIHBhc3N3b3JkOiBuZXdQYXNzd29yZCwgY29uZmlybVBhc3N3b3JkOiBjb25maXJtUGFzc3dvcmR9O1xuICAgIHJldHVybiB0aGlzLnV0aWwucG9zdChgdXNlci9wYXNzd29yZC8ke3RoaXMuZ2V0VXNlcigpLnVzZXJuYW1lfWAsIHB3ZENoYW5nZU1vZGVsKTtcbiAgfVxuXG4gIGluaXRpYXRlRm9yZ290UGFzc3dvcmQodXNlcklkIDogc3RyaW5nKXtcbiAgICByZXR1cm4gdGhpcy51dGlsLmdldChgdXNlci9wYXNzd29yZC9yZXNldC8ke3VzZXJJZH1gKTtcbiAgfVxuXG4gIGluaXRpYXRlRm9yZ290UGFzc3dvcmRWMih1c2VySWQgOiBzdHJpbmcpe1xuICAgIHJldHVybiB0aGlzLnV0aWwuZ2V0KGB1c2VyL3YyL3Bhc3N3b3JkL3Jlc2V0LyR7dXNlcklkfWApO1xuICB9XG5cbiAgaGFzUm9sZShyb2xlTmFtZSA6IHN0cmluZykgOiBib29sZWFue1xuICAgIHJldHVybiB0aGlzLnVzZXIgJiYgdGhpcy51c2VyLnJvbGVzICYmIHRoaXMudXNlci5yb2xlcy5pbmNsdWRlcyhyb2xlTmFtZSk7XG4gIH1cblxuICBoYXNGdW5jdGlvbihmdW5jdGlvbk5hbWUgOiBzdHJpbmcpIDogYm9vbGVhbntcbiAgICByZXR1cm4gdGhpcy51c2VyICYmIHRoaXMudXNlci5mdW5jdGlvbnMgJiYgdGhpcy51c2VyLmZ1bmN0aW9ucy5pbmNsdWRlcyhmdW5jdGlvbk5hbWUpO1xuICB9XG5cbiAgaGFzUm9sZXMoLi4ucm9sZXMgOiBzdHJpbmdbXSl7XG4gICAgbGV0IGlzUHJlc2VudCA9IGZhbHNlO1xuICAgIGZvcih2YXIgaSA9IDAgOyBpIDwgcm9sZXMubGVuZ3RoIDsgaSsrKXtcbiAgICAgIGlmKHRoaXMuaGFzUm9sZShyb2xlc1tpXS50b1N0cmluZygpKSl7XG4gICAgICAgIGlzUHJlc2VudCA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaXNQcmVzZW50O1xuICB9XG5cbiAgaGFzRnVuY3Rpb25zKC4uLmZ1bmN0aW9ucyA6IHN0cmluZ1tdKXtcbiAgICBsZXQgaXNQcmVzZW50ID0gZmFsc2U7XG4gICAgZm9yKHZhciBpID0gMCA7IGkgPCBmdW5jdGlvbnMubGVuZ3RoIDsgaSsrKXtcbiAgICAgIGlmKHRoaXMuaGFzRnVuY3Rpb24oZnVuY3Rpb25zW2ldKSl7XG4gICAgICAgIGlzUHJlc2VudCA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaXNQcmVzZW50O1xuICB9XG5cbiAgY2hlY2tSb2xlcyhyb2xlcyA6IHN0cmluZ1tdKXtcbiAgICBsZXQgaXNQcmVzZW50ID0gZmFsc2U7XG4gICAgZm9yKHZhciBpID0gMCA7IGkgPCByb2xlcy5sZW5ndGggOyBpKyspe1xuICAgICAgaWYodGhpcy5oYXNSb2xlKHJvbGVzW2ldLnRvU3RyaW5nKCkpKXtcbiAgICAgICAgaXNQcmVzZW50ID0gdHJ1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpc1ByZXNlbnQ7XG4gIH1cblxuICBjaGVja0Z1bmN0aW9ucyhmdW5jdGlvbnMgOiBzdHJpbmdbXSl7XG4gICAgbGV0IGlzUHJlc2VudCA9IGZhbHNlO1xuICAgIGZvcih2YXIgaSA9IDAgOyBpIDwgZnVuY3Rpb25zLmxlbmd0aCA7IGkrKyl7XG4gICAgICBpZih0aGlzLmhhc0Z1bmN0aW9uKGZ1bmN0aW9uc1tpXSkpe1xuICAgICAgICBpc1ByZXNlbnQgPSB0cnVlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGlzUHJlc2VudDtcbiAgfVxuXG4gIGlzQ3NyKCl7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VXNlcigpICYmIHRoaXMuZ2V0VXNlcigpLnVzZXJUeXBlID09PSAnTURFUydcbiAgfVxuXG4gIGlzVGF4QXVkaXRTdXBlcnZpc29yKCl7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VXNlcigpICYmIHRoaXMuaGFzUm9sZSgndGF4YXVkaXRzdXBlcnZpc29yJykgJiZ0aGlzLmdldFVzZXIoKS51c2VyVHlwZSA9PT0gJ01ERVMnIFxuICB9XG5cbiAgaXNUYXhBdWRpdEF1ZGl0b3IoKXtcbiAgICByZXR1cm4gdGhpcy5nZXRVc2VyKCkgJiYgdGhpcy5oYXNSb2xlKCd0YXhhdWRpdHNwZWNpYWxpc3QnKSAmJiB0aGlzLmdldFVzZXIoKS51c2VyVHlwZSA9PT0gJ01ERVMnXG4gIH1cblxuICBpc1RheEF1ZGl0RGlyZWN0b3IoKXtcbiAgICByZXR1cm4gdGhpcy5nZXRVc2VyKCkgJiYgdGhpcy5oYXNSb2xlKCd0YXhBdWRpdERpcmVjdG9yJykgJiYgdGhpcy5nZXRVc2VyKCkudXNlclR5cGUgPT09ICdNREVTJ1xuICB9XG5cbiAgaXNFbXBsb3llcigpe1xuICAgIHJldHVybiB0aGlzLmdldFVzZXIoKSAmJiB0aGlzLmdldFVzZXIoKS51c2VyVHlwZSA9PT0gJ0VNUEwnXG4gIH1cblxuICBpc1RwYSgpe1xuICAgIHJldHVybiB0aGlzLmdldFVzZXIoKSAmJiB0aGlzLmdldFVzZXIoKS51c2VyVHlwZSA9PT0gJ1RQQSdcbiAgfVxuXG4gIGlzQ2xhaW1hbnQoKXtcbiAgICByZXR1cm4gdGhpcy5nZXRVc2VyKCkgJiYgdGhpcy5nZXRVc2VyKCkudXNlclR5cGUgPT09ICdDTE1UJ1xuICB9XG5cbiAgaGFzU3NuQXNzb2NpYXRlZCgpIDogYm9vbGVhbntcbiAgICByZXR1cm4gdGhpcy5nZXRVc2VyKCkgJiYgdGhpcy5nZXRVc2VyKCkudXNlclR5cGUgPT09ICdDTE1UJyAmJiB0aGlzLmdldFVzZXIoKS5zc24gIT09IHVuZGVmaW5lZCBcbiAgfVxuXG4gIGdldFVzZXJNZW51cygpe1xuICAgIHJldHVybiB0aGlzLnV0aWwuZ2V0PE1lbnVJdGVtW10+KGBtZW51L2ApO1xuICB9XG5cbiAgbWFya0ZhdihtZW51SWQgOiBzdHJpbmcpe1xuICAgIHJldHVybiB0aGlzLnV0aWwucG9zdDxNZW51SXRlbVtdPihgbWVudS9mYXYvJHttZW51SWR9YCwgbnVsbCk7XG4gIH1cblxuICByZW1vdmVGYXYobWVudUlkIDogc3RyaW5nKXtcbiAgICByZXR1cm4gdGhpcy51dGlsLmRlbGV0ZTxNZW51SXRlbVtdPihgbWVudS9mYXYvJHttZW51SWR9YCk7XG4gIH1cblxuICBnZXRGYXZvdXJpdGVNZW51KCl7XG4gICAgcmV0dXJuIHRoaXMudXRpbC5nZXQ8TWVudUl0ZW1bXT4oYG1lbnUvZmF2YCk7XG4gIH1cblxuICBnZXRUcmVuZGluZ01lbnUoKXtcbiAgICByZXR1cm4gdGhpcy51dGlsLmdldDxNZW51SXRlbVtdPihgbWVudS90cmVuZGluZ2ApO1xuICB9XG5cbiAgdmVyaWZ5RW1haWwoY29kZSA6IHN0cmluZyl7XG4gICAgcmV0dXJuIHRoaXMudXRpbC5wb3N0KGB1c2VyL2VtYWlsLyR7Y29kZX1gLCBudWxsKTtcbiAgfVxuXG4gIGdldE5ld0NvZGUoKXtcbiAgICByZXR1cm4gdGhpcy51dGlsLmdldChgdXNlci9lbWFpbGApO1xuICB9XG5cbiAgdXBkYXRlRW1haWxBbmRHZXROZXdDb2RlKGVtYWlsIDogc3RyaW5nKXtcbiAgICByZXR1cm4gdGhpcy51dGlsLnBhdGNoKGB1c2VyL2VtYWlsLyR7ZW1haWx9YCwgbnVsbCk7XG4gIH1cblxuICBnZXROZXdBdXRoQ29kZSh0eXBlIDogc3RyaW5nKXtcbiAgICByZXR1cm4gdGhpcy51dGlsLmdldChgdXNlci9vdHA/dHlwZT0ke3R5cGV9YCk7XG4gIH1cblxuICBhc3NvY2lhdGVTc25Ub1VzZXJJZChzc24gOiBzdHJpbmcpe1xuICAgIHJldHVybiB0aGlzLnV0aWwucG9zdChgY2xhaW1hbnQvYXNzb2NpYXRlLXNzbi8ke3Nzbn1gLCBudWxsKTtcbiAgfVxuXG4gIGdldFVzZXJJZEluVW5pdEJzKCl7XG4gICAgcmV0dXJuIHRoaXMudXNlcklkSW5Vbml0QnM7XG4gIH1cblxuICBsb2FkVXNlcklkc0Zyb21Vbml0T2ZMb2dnZWRJblVzZXIodW5pdElkIDogc3RyaW5nKXtcbiAgICBpZih0aGlzLnVzZXJJZEluVW5pdEJzLmdldFZhbHVlKCkgPT0gbnVsbClcbiAgICAgIHRoaXMudXRpbC5nZXQ8VXNlck1vZGVsW10+KGB1c2VyL2FsbC8ke3VuaXRJZH1gKVxuICAgICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHRoaXMudXNlcklkSW5Vbml0QnMubmV4dChyZXMpKTtcbiAgfVxufVxuIl19