@reusa/ngx-reusa-app-lib 0.0.1375 → 0.0.1377

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.
@@ -355,7 +355,7 @@ export class WeeklyWorkSearchJournalComponent extends BasePage {
355
355
  }
356
356
  else {
357
357
  if (count < 1) {
358
- return 'You need to add at least 3 activities for the week, at least one with a filed application or resume';
358
+ return 'You need to add at least 3 activities for the week. <b>One must be Applied for work.</b>';
359
359
  }
360
360
  else if (count < 2 && hiredRecordCount < 1 && joapActivitiesCount < 1) {
361
361
  return 'You need 2 more activities for the week, at least one with a filed application or resume';
@@ -391,4 +391,4 @@ export class WeeklyWorkSearchJournalComponent extends BasePage {
391
391
  args: [{ selector: 'app-weekly-work-search-journal', template: "<div *ngIf=\"!isLoading && errorMsg\" class=\"ion-text-center ion-padding-top\" style=\"padding-top: 50px;\">\r\n <ion-icon name=\"alert-circle-outline\" style=\"font-size: 60px; color: var(--ion-color-danger);\"></ion-icon>\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(errorMsg)\"\r\n style=\"color: var(--ion-color-danger); font-size: larger;\" class=\"ion-text-center ion-padding\"></div>\r\n</div>\r\n\r\n<div *ngIf=\"!isLoading && !errorMsg\">\r\n <ion-grid>\r\n <ion-row>\r\n <ion-col size=\"12\" offsetXl=\"1\">\r\n <h1 class=\"app-heading\">{{'work.search.journal.heading' | translate:dynamicParam }}</h1>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n <!-- There can be below combinations:\r\n 1. Waiting week is NOT served (With or without worksearch waived) - highest priority (Waiting week message)\r\n 2. Waiting week is served & Work search is waived - Worksearch waiver message\r\n 3. Waiting week is served and work search is NOT waived -->\r\n <div *ngIf=\"!isWaitingWeekServed\">\r\n <ion-grid class=\"ion-padding-top\">\r\n <ion-row>\r\n <ion-col ion-col size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"10\" sizeLg=\"6\" sizeXl=\"5\" offsetLg=\"3\"\r\n offsetXl={{offSetValue}} offsetMd=\"1\">\r\n <span>{{'no.work.search.required' | translate}}</span>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </div>\r\n <div *ngIf=\"isMS() && isWorkSearchWaived && isWaitingWeekServed\">\r\n <ion-grid class=\"ion-padding-top\">\r\n <ion-row *ngIf=\"this.waiverReason\">\r\n <ion-col ion-col size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"10\" sizeLg=\"6\" sizeXl=\"5\" offsetLg=\"3\"\r\n offsetXl={{offSetValue}} offsetMd=\"1\">\r\n <span>{{ this.waiverReason}}</span>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </div>\r\n <div *ngIf=\"(!isWorkSearchWaived || (!isMS() && isWorkSearchWaived)) && isWaitingWeekServed\">\r\n <ion-grid>\r\n <ion-row>\r\n <ion-col size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"10\" sizeLg=\"6\" sizeXl=\"5\" offsetLg=\"3\"\r\n offsetXl={{offSetValue}} offsetMd=\"1\">\r\n <br />\r\n <ion-row>\r\n <ion-col size=\"6\">\r\n <h1 *ngIf=\"isME()\" style=\"position: fixed; margin-top: -45px;\" class=\"heading\">\r\n {{'work.search.activities' | translate }}</h1>\r\n <app-work-search-counter [count]=\"journals.length\"\r\n [hiredRecordCount]=\"retrieveHiredRecordCount()\"\r\n [msg]=\"getWorkSearchMessage()\"></app-work-search-counter>\r\n </ion-col>\r\n <ion-col class=\"journal-text\" style=\"padding-top: 75px; padding-right: 0px;\" size=\"5\">\r\n <b>+ Add</b> activity\r\n </ion-col>\r\n <ion-col class=\"journal-button\" style=\"padding-top: 60px;\" size=\"1\">\r\n <ion-button style=\"padding: 0px 0px;\" fill=\"outline\" size=\"small\" (click)=\"add()\"\r\n class=\"action-button\">\r\n <fa-icon [icon]=\"['fal', 'plus']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n </ion-col>\r\n </ion-row>\r\n <div style=\"margin-bottom: 5px;\"></div>\r\n <section *ngIf=\"journals.length === 0\">\r\n <p-table [value]=\"[{}]\" styleClass=\"p-datatable-striped app-datatable\">\r\n <ng-template pTemplate=\"header\">\r\n <tr class=\"row-border\">\r\n <th style=\"height: 75px;\"></th>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </section>\r\n <p-table [value]=\"journals\" styleClass=\"p-datatable-striped app-datatable\" [loading]=\"isLoading\">\r\n <ng-template pTemplate=\"body\" let-record>\r\n <tr class=\"row-border\">\r\n <td>{{record.workSearchDate | date:'M/d/yyyy'}}</td>\r\n <td style=\"white-space: pre;\">{{record | formatWorksearchRecord}}</td>\r\n <td class=\"ion-text-right\">\r\n <ion-button fill=\"outline\" size=\"small\" (click)=\"edit(record)\"\r\n class=\"action-button\">\r\n <fa-icon [icon]=\"['fal', 'edit']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n <ion-button fill=\"outline\" size=\"small\" (click)=\"delete(record)\"\r\n class=\"action-button\">\r\n <fa-icon [icon]=\"['fal', 'trash-alt']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </ion-col>\r\n <ion-col size=\"12\" sizeXl=\"5\" offsetXl=\"1\" sizeLg=\"6\" style=\"text-align: center;\" *ngIf=\"!isMS()\">\r\n <h4 class=\"heading\">{{'work.search.journal.weekly.header' | translate}}</h4><br />\r\n <div>\r\n <div [innerHtml]=\"'work.search.journal.weekly.placeholder' | translate \"></div>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </div>\r\n <!-- <app-work-search-employer-ct *ngIf=\"showAddWsRecors && isCT()\" (success)=\"addWsRecord($event)\"\r\n (onClose)=\"closeWsRecord()\" [journal]=\"true\" [sunDate]=\"sunDate\" [satDate]=\"satDate\"\r\n [satDateString]=\"satDateString\" [sunDateString]=\"sunDateString\" [data]=\"journal\"></app-work-search-employer-ct> -->\r\n <app-work-search-employer-me *ngIf=\"showAddWsRecors && isME()\" (success)=\"addWsRecord($event)\"\r\n (onClose)=\"closeWsRecord()\" [journal]=\"true\" [sunDate]=\"sunDate\" [satDate]=\"satDate\"\r\n [satDateString]=\"satDateString\" [sunDateString]=\"sunDateString\" [data]=\"journal\"></app-work-search-employer-me>\r\n <app-work-search-employer-ms *ngIf=\"showAddWsRecors && isMS()\" (success)=\"addWsRecord($event)\"\r\n (onClose)=\"closeWsRecord()\" [journal]=\"true\" [sunDate]=\"sunDate\" [satDate]=\"satDate\"\r\n [satDateString]=\"satDateString\" [sunDateString]=\"sunDateString\" [data]=\"journal\"></app-work-search-employer-ms>\r\n</div>", styles: ["ion-col{padding:12px}.row-border{background:#fff 0% 0% no-repeat padding-box;border:.5px solid #707070;border-bottom:.5px solid #707070;opacity:1}.journal-text,.journal-button{text-align:right}@media (min-width: 344px) and (max-width: 391px){.journal-text{padding-top:100px!important}.journal-button{padding-top:80px!important}}\n"] }]
392
392
  }], () => [{ type: i1.WorkSearchService }, { type: i2.UtilService }, { type: i3.AlertController }, { type: i4.ReviewService }, { type: i5.DomSanitizer }], null); })();
393
393
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WeeklyWorkSearchJournalComponent, { className: "WeeklyWorkSearchJournalComponent", filePath: "lib\\components\\weekly-work-search-journal\\weekly-work-search-journal.component.ts", lineNumber: 16 }); })();
394
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vla2x5LXdvcmstc2VhcmNoLWpvdXJuYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9jb21wb25lbnRzL3dlZWtseS13b3JrLXNlYXJjaC1qb3VybmFsL3dlZWtseS13b3JrLXNlYXJjaC1qb3VybmFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy93ZWVrbHktd29yay1zZWFyY2gtam91cm5hbC93ZWVrbHktd29yay1zZWFyY2gtam91cm5hbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBSWxELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNKaEQsOEJBQXVHO0lBQ25HLDhCQUEwRyxhQUFBO0lBRzlHLGlCQUFNOzs7SUFGRyxlQUF5RDtJQUF6RCx3R0FBeUQ7OztJQWdCOUQsMkJBQWtDLGtCQUFBLGNBQUEsaUJBQUEsV0FBQTtJQUtaLFlBQXlDOztJQUFBLGlCQUFPLEVBQUEsRUFBQSxFQUFBLEVBQUE7OztJQUR0RCxlQUF3QjtJQUF4Qix3REFBd0I7SUFDbEIsZUFBeUM7SUFBekMscUVBQXlDOzs7SUFPdkQsK0JBQW1DLGlCQUFBLFdBQUE7SUFHckIsWUFBc0I7SUFBQSxpQkFBTyxFQUFBLEVBQUE7OztJQURuQyxlQUF3QjtJQUF4Qix3REFBd0I7SUFDbEIsZUFBc0I7SUFBdEIseUNBQXNCOzs7SUFMNUMsMkJBQWlFLGtCQUFBO0lBRXpELHFHQUtVO0lBQ2QsaUJBQVcsRUFBQTs7O0lBTkcsZUFBdUI7SUFBdkIsMENBQXVCOzs7SUFnQmpCLDhCQUErRTtJQUMzRSxZQUF5Qzs7SUFB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QW1CLEdBQUcsQ0FBQyxFQUFHO2dCQUN4RSxPQUFPLDBGQUEwRixDQUFBO2FBQ2xHO2lCQUFNLElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLElBQUksbUJBQW1CLElBQUksQ0FBQyxFQUFDO2dCQUN2RSxPQUFPLHlDQUF5QyxDQUFBO2FBQ2pEO2lCQUFNLElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLElBQUksbUJBQW1CLEdBQUcsQ0FBQyxFQUFHO2dCQUN4RSxPQUFPLHdGQUF3RixDQUFBO2FBQ2hHO2lCQUFNLElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLElBQUksbUJBQW1CLElBQUksQ0FBQyxFQUFHO2dCQUN6RSxPQUFPLHVDQUF1QyxDQUFBO2FBQy9DO2lCQUFNLElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxJQUFJLG1CQUFtQixHQUFHLENBQUMsRUFBRTtnQkFDMUQsT0FBTyxtRUFBbUUsQ0FBQTthQUMzRTtpQkFDSTtnQkFDSCxPQUFPLDBCQUEwQixDQUFDO2FBQ25DO1NBQ0Y7SUFDSCxDQUFDO2lHQWxNUSxnQ0FBZ0M7b0VBQWhDLGdDQUFnQztZQ2Y3QyxpRkFJTSxxRUFBQTs7WUFKQSxxREFBNEI7WUFNNUIsZUFBNkI7WUFBN0Isc0RBQTZCOzs7aUZEU3RCLGdDQUFnQztjQUw1QyxTQUFTOzJCQUNFLGdDQUFnQzs7a0ZBSS9CLGdDQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBBbGVydENvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXRpbC91dGlsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCYXNlUGFnZSB9IGZyb20gJy4uLy4uL3BhZ2VzL0Jhc2VQYWdlJztcclxuaW1wb3J0IHsgQ29tYm9PcHRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvY29tYm8tbW9kZWwnO1xyXG5pbXBvcnQgeyBXb3JrU2VhcmNoUmVjb3JkTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvd2Vla2x5LWNlcnQvd29yay1zZWFyY2gtcmVjb3JkLXYyLW1vZGVsJztcclxuaW1wb3J0IHsgUmV2aWV3U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3dlZWtseS1jZXJ0L3Jldmlldy5zZXJ2aWNlJ1xyXG5pbXBvcnQgeyBXb3JrU2VhcmNoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3dlZWtseS1jZXJ0L3dvcmstc2VhcmNoLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtd2Vla2x5LXdvcmstc2VhcmNoLWpvdXJuYWwnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi93ZWVrbHktd29yay1zZWFyY2gtam91cm5hbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3dlZWtseS13b3JrLXNlYXJjaC1qb3VybmFsLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgV2Vla2x5V29ya1NlYXJjaEpvdXJuYWxDb21wb25lbnQgZXh0ZW5kcyBCYXNlUGFnZSBpbXBsZW1lbnRzIE9uSW5pdHtcclxuIHB1YmxpYyBqb3VybmFscyA6IFdvcmtTZWFyY2hSZWNvcmRNb2RlbFtdID0gW107XHJcblxyXG4gIHB1YmxpYyBqb3VybmFsIDogV29ya1NlYXJjaFJlY29yZE1vZGVsO1xyXG5cclxuICBwdWJsaWMgc2hvd0FkZFdzUmVjb3JzID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBzYXREYXRlIDogRGF0ZTtcclxuICBwdWJsaWMgc3VuRGF0ZSA6IERhdGU7XHJcbiAgcHVibGljIHNhdERhdGVTdHJpbmc7XHJcbiAgcHVibGljIHN1bkRhdGVTdHJpbmc7XHJcbiAgcHVibGljIGlzTG9hZGluZyA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgZHluYW1pY1BhcmFtIDogYW55O1xyXG4gIHB1YmxpYyBlcnJvck1zZyA6IHN0cmluZztcclxuICBwdWJsaWMgd2FpdmVyUmVhc29uOiBzdHJpbmc7XHJcbiAgcHVibGljIGlzV29ya1NlYXJjaFdhaXZlZCA6IGJvb2xlYW47XHJcbiAgcHVibGljIGlzV2FpdGluZ1dlZWtTZXJ2ZWQgOiBib29sZWFuO1xyXG4gIGNvbXBTdGF0ZSA6IHN0cmluZztcclxuXHJcbiAgcHVibGljIGN1cnJlbnRTdGF0ZTogc3RyaW5nID0gdGhpcy51dGlsLmdldFN0YXRlKCk7XHJcbiAgcHVibGljIG9mZlNldFZhbHVlOiBudW1iZXJcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHdzcyA6IFdvcmtTZWFyY2hTZXJ2aWNlLCBwdWJsaWMgdXRpbDogVXRpbFNlcnZpY2UsIHB1YmxpYyBhYzogQWxlcnRDb250cm9sbGVyLCBwcml2YXRlIHJzIDogUmV2aWV3U2VydmljZSwgcHVibGljIHNhbml0aXplcjogRG9tU2FuaXRpemVyKSB7IFxyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYodGhpcy5jdXJyZW50U3RhdGUgPT09ICdNUycpXHJcbiAgICB7XHJcbiAgICAgIHRoaXMub2ZmU2V0VmFsdWU9NFxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMub2ZmU2V0VmFsdWU9MVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY29tcFN0YXRlID0gdGhpcy51dGlsLmdldFN0YXRlTG93ZXJjYXNlKCk7XHJcbiAgICB0aGlzLmZldGNoSm91cm5hbHMoKTtcclxuICB9XHJcblxyXG4gIGZldGNoSm91cm5hbHMoKSB7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLndzcy5mZXRjaFdvcmtTZWFyY2hKb3VybmFscygpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLnN1bkRhdGUgPSB0aGlzLmdldEVudGVyZWREYXRlKHJlcy5taW5Xb3JrU2VhcmNoRGF0ZVN0cmluZyk7XHJcbiAgICAgICAgICAgICAgdGhpcy5zYXREYXRlID0gdGhpcy5nZXRFbnRlcmVkRGF0ZShyZXMubWF4V29ya1NlYXJjaERhdGVTdHJpbmcpO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2F0RGF0ZVN0cmluZyA9IHJlcy5tYXhXb3JrU2VhcmNoRGF0ZVN0cmluZztcclxuICAgICAgICAgICAgICB0aGlzLnN1bkRhdGVTdHJpbmcgPSByZXMubWluV29ya1NlYXJjaERhdGVTdHJpbmc7XHJcbiAgICAgICAgICAgICAgdGhpcy5qb3VybmFscyA9IHJlcy53b3JrU2VhcmNoUmVjb3JkcztcclxuICAgICAgICAgICAgICB0aGlzLmlzV29ya1NlYXJjaFdhaXZlZCA9IHJlcy5pc1dvcmtTZWFyY2hXYWl2ZWQ7XHJcbiAgICAgICAgICAgICAgdGhpcy53YWl2ZXJSZWFzb24gPSByZXMud2FpdmVyUmVhc29uO1xyXG4gICAgICAgICAgICAgIHRoaXMuaXNXYWl0aW5nV2Vla1NlcnZlZCA9IHJlcy5pc1dhaXRpbmdXZWVrU2VydmVkO1xyXG4gICAgICAgICAgICAgIHRoaXMuZHluYW1pY1BhcmFtID0ge1xyXG4gICAgICAgICAgICAgICAgJ3NhdHVyZGF5X2RhdGUnOiB0aGlzLnNhdERhdGVTdHJpbmcsXHJcbiAgICAgICAgICAgICAgICAnc3VuZGF5X2RhdGUnOiB0aGlzLnN1bkRhdGVTdHJpbmcsXHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9LGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLmVycm9yTXNnID0gZXJyLm1zZztcclxuICAgICAgICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRFbnRlcmVkRGF0ZSh2YWx1ZSl7XHJcbiAgICB2YXIgZGF0ZUFycmF5ID0gdmFsdWUuc3BsaXQoXCIvXCIpO1xyXG4gICAgdmFyIGRkID0gcGFyc2VJbnQodGhpcy51dGlsLnByZXBlZFplcm9JZlNpbmdsZURpZ2l0KGRhdGVBcnJheVsxXSkpO1xyXG4gICAgdmFyIE1NID0gcGFyc2VJbnQodGhpcy51dGlsLnByZXBlZFplcm9JZlNpbmdsZURpZ2l0KGRhdGVBcnJheVswXSkpIC0gMTtcclxuICAgIHZhciB5eXl5ID0gcGFyc2VJbnQodGhpcy51dGlsLnByZXBlZFplcm9JZlNpbmdsZURpZ2l0KGRhdGVBcnJheVsyXSkpO1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKHl5eXksTU0sZGQpO1xyXG4gIH1cclxuXHJcbiBhZGQoKXtcclxuICAgIHRoaXMuam91cm5hbCA9IG51bGw7XHJcbiAgICB0aGlzLnNob3dBZGRXc1JlY29ycyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBjbG9zZVdzUmVjb3JkKCl7XHJcbiAgICB0aGlzLnNob3dBZGRXc1JlY29ycyA9IGZhbHNlO1xyXG4gICAgdGhpcy5qb3VybmFsID0gbnVsbDtcclxuICB9XHJcblxyXG4gIGFkZFdzUmVjb3JkKGV2ZW50IDogV29ya1NlYXJjaFJlY29yZE1vZGVsKXtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMud3NzLnNhdmVXb3JrU2VhcmNoSm91cm5hbChldmVudClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5zaG93QWRkV3NSZWNvcnMgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLmpvdXJuYWwgPSBudWxsO1xyXG4gICAgICAgICAgICAgIGlmKGV2ZW50LmNsYWltYW50V29ya1NlYXJjaEpvdXJuYWxJZCl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnV0aWwuc3VjY2VzcyhcIkFjdGl2aXR5IHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5LlwiKTtcclxuICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgIHRoaXMudXRpbC5zdWNjZXNzKFwiQWN0aXZpdHkgc2F2ZWQgc3VjY2Vzc2Z1bGx5LlwiKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy5mZXRjaEpvdXJuYWxzKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5ycy5zZXRSZXZpZXdBcHAodHJ1ZSk7XHJcbiAgICAgICAgICAgIH0sIGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XHJcbiAgICAgICAgICAgICAgdGhpcy5zaG93QWRkV3NSZWNvcnMgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLmpvdXJuYWwgPSBudWxsO1xyXG4gICAgICAgICAgICB9KTtcclxuICB9XHJcblxyXG4gIGVkaXQod3NSZWNvcmQgOiBXb3JrU2VhcmNoUmVjb3JkTW9kZWwpe1xyXG4gICAgdGhpcy5qb3VybmFsID0gd3NSZWNvcmQ7XHJcbiAgICB0aGlzLnNob3dBZGRXc1JlY29ycyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICByZXRyaWV2ZUhpcmVkUmVjb3JkQ291bnQgKCkgOiBudW1iZXIge1xyXG4gICAgLy9pdGVyYXRlIGpvdXJuYWxcclxuICAgICAgbGV0IGhpcmVkUmVjb3JkQ291bnQgPSAwO1xyXG4gICAgICBmb3IobGV0IGk9MDsgaSA8IHRoaXMuam91cm5hbHMubGVuZ3RoOyBpKyspXHJcbiAgICAgIHtcclxuICAgICAgICBpZih0aGlzLmpvdXJuYWxzW2ldLnNlYXJjaFJlc3VsdCA9PT0gXCJISVJFXCIpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgaGlyZWRSZWNvcmRDb3VudCs9IDE7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBoaXJlZFJlY29yZENvdW50O1xyXG4gIH1cclxuXHJcbiAgcmV0cmlldmVKb2FwQ291bnQgKCkgOiBudW1iZXIge1xyXG4gICAgbGV0IGpvYXBDb3VudCA9MDtcclxuICAgIGZvcihsZXQgaT0wOyBpIDwgdGhpcy5qb3VybmFscy5sZW5ndGg7IGkrKylcclxuICAgIHtcclxuICAgICAgaWYodGhpcy5qb3VybmFsc1tpXS5hY3Rpdml0eVR5cGUgPT09IFwiSk9BUFwiKVxyXG4gICAgICB7XHJcbiAgICAgICAgam9hcENvdW50Kys7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBqb2FwQ291bnQ7XHJcbiAgfVxyXG5cclxuICBhc3luYyBkZWxldGUod3NSZWNvcmQgOiBXb3JrU2VhcmNoUmVjb3JkTW9kZWwpe1xyXG4gICAgY29uc3QgYWxlcnQgPSBhd2FpdCB0aGlzLmFjLmNyZWF0ZSh7XHJcbiAgICAgIGhlYWRlcjogJ0NvbmZpcm0hJyxcclxuICAgICAgbWVzc2FnZTogJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBlbnRyeT8nLFxyXG4gICAgICBidXR0b25zOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdGV4dDogJ0NhbmNlbCcsXHJcbiAgICAgICAgICByb2xlOiAnY2FuY2VsJyxcclxuICAgICAgICAgIGNzc0NsYXNzOiAncHJpbWFyeScsXHJcbiAgICAgICAgICBoYW5kbGVyOiAoKSA9PiB7fVxyXG4gICAgICAgIH0sIHtcclxuICAgICAgICAgIHRleHQ6ICdPa2F5JyxcclxuICAgICAgICAgIGhhbmRsZXI6ICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy53c3MuZGVsZXRlV29ya1NlYXJjaEpvdXJuYWwod3NSZWNvcmQuY2xhaW1hbnRXb3JrU2VhcmNoSm91cm5hbElkKVxyXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAgICAgICByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnV0aWwuc3VjY2VzcyhcIlJlY29yZCBkZWxldGVkIHN1Y2Nlc3NmdWxseS5cIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmV0Y2hKb3VybmFscygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfSxlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIF1cclxuICAgIH0pO1xyXG5cclxuICAgIGF3YWl0IGFsZXJ0LnByZXNlbnQoKTtcclxuICB9XHJcblxyXG4gICAgZ2V0V29ya1NlYXJjaE1lc3NhZ2UoKSB7XHJcbiAgICAgIGxldCBjb3VudCA9IHRoaXMuam91cm5hbHMubGVuZ3RoO1xyXG5cclxuICAgICAgLy9pdGVyYXRlIGpvdXJuYWxcclxuICAgICAgbGV0IGhpcmVkUmVjb3JkQ291bnQgPSB0aGlzLnJldHJpZXZlSGlyZWRSZWNvcmRDb3VudCgpO1xyXG5cclxuICAgICAgbGV0IGpvYXBBY3Rpdml0aWVzQ291bnQgPSB0aGlzLnJldHJpZXZlSm9hcENvdW50KCk7XHJcbiAgICAgIFxyXG4gICAgICBpZih0aGlzLnV0aWwuZ2V0U3RhdGVMb3dlcmNhc2UoKSA9PSAnbWUnKXtcclxuICAgICAgICBpZihjb3VudCA8IDEpe1xyXG4gICAgICAgICAgcmV0dXJuICdBdCBsZWFzdCBvbmUgYWN0aXZpdHkgcmVxdWlyZWQnXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiAnTWluaW11bSByZXF1aXJlbWVudHMgbWV0JztcclxuICAgICAgICB9XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGlmIChjb3VudCA8IDEpIHtcclxuICAgICAgICAgIHJldHVybiAnWW91IG5lZWQgdG8gYWRkIGF0IGxlYXN0IDMgYWN0aXZpdGllcyBmb3IgdGhlIHdlZWssIGF0IGxlYXN0IG9uZSB3aXRoIGEgZmlsZWQgYXBwbGljYXRpb24gb3IgcmVzdW1lJ1xyXG4gICAgICAgIH0gZWxzZSBpZiAoY291bnQgPCAyICYmIGhpcmVkUmVjb3JkQ291bnQgPCAxICYmIGpvYXBBY3Rpdml0aWVzQ291bnQgPCAxICkge1xyXG4gICAgICAgICAgcmV0dXJuICdZb3UgbmVlZCAyIG1vcmUgYWN0aXZpdGllcyBmb3IgdGhlIHdlZWssIGF0IGxlYXN0IG9uZSB3aXRoIGEgZmlsZWQgYXBwbGljYXRpb24gb3IgcmVzdW1lJ1xyXG4gICAgICAgIH0gZWxzZSBpZiAoY291bnQgPCAyICYmIGhpcmVkUmVjb3JkQ291bnQgPCAxICYmIGpvYXBBY3Rpdml0aWVzQ291bnQgPj0gMSl7XHJcbiAgICAgICAgICByZXR1cm4gJ1lvdSBuZWVkIDIgbW9yZSBhY3Rpdml0aWVzIGZvciB0aGUgd2VlaydcclxuICAgICAgICB9IGVsc2UgaWYgKGNvdW50IDwgMyAmJiBoaXJlZFJlY29yZENvdW50IDwgMSAmJiBqb2FwQWN0aXZpdGllc0NvdW50IDwgMSApIHtcclxuICAgICAgICAgIHJldHVybiAnWW91IG5lZWQgMSBtb3JlIGFjdGl2aXR5IGZvciB0aGUgd2VlaywgYXQgbGVhc3Qgb25lIHdpdGggYSBmaWxlZCBhcHBsaWNhdGlvbiBvciByZXN1bWUnXHJcbiAgICAgICAgfSBlbHNlIGlmIChjb3VudCA8IDMgJiYgaGlyZWRSZWNvcmRDb3VudCA8IDEgJiYgam9hcEFjdGl2aXRpZXNDb3VudCA+PSAxICkge1xyXG4gICAgICAgICAgcmV0dXJuICdZb3UgbmVlZCAxIG1vcmUgYWN0aXZpdHkgZm9yIHRoZSB3ZWVrJ1xyXG4gICAgICAgIH0gZWxzZSBpZiAoaGlyZWRSZWNvcmRDb3VudCA8IDEgJiYgam9hcEFjdGl2aXRpZXNDb3VudCA8IDEgKXtcclxuICAgICAgICAgIHJldHVybiAnWW91IG5lZWQgYXQgbGVhc3Qgb25lIGFjdGl2aXR5IHdpdGggYSBmaWxlZCBhcHBsaWNhdGlvbiBvciByZXN1bWUnXHJcbiAgICAgICAgfSAgXHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gJ01pbmltdW0gcmVxdWlyZW1lbnRzIG1ldCc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cIiFpc0xvYWRpbmcgJiYgZXJyb3JNc2dcIiBjbGFzcz1cImlvbi10ZXh0LWNlbnRlciBpb24tcGFkZGluZy10b3BcIiBzdHlsZT1cInBhZGRpbmctdG9wOiA1MHB4O1wiPlxyXG4gICAgPGlvbi1pY29uIG5hbWU9XCJhbGVydC1jaXJjbGUtb3V0bGluZVwiIHN0eWxlPVwiZm9udC1zaXplOiA2MHB4OyBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhbmdlcik7XCI+PC9pb24taWNvbj5cclxuICAgIDxkaXYgW2lubmVySFRNTF09XCJzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoZXJyb3JNc2cpXCJcclxuICAgICAgICBzdHlsZT1cImNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFuZ2VyKTsgZm9udC1zaXplOiBsYXJnZXI7XCIgY2xhc3M9XCJpb24tdGV4dC1jZW50ZXIgaW9uLXBhZGRpbmdcIj48L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48ZGl2ICpuZ0lmPVwiIWlzTG9hZGluZyAmJiAhZXJyb3JNc2dcIj5cclxuICAgIDxpb24tZ3JpZD5cclxuICAgICAgICA8aW9uLXJvdz5cclxuICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjEyXCIgb2Zmc2V0WGw9XCIxXCI+XHJcbiAgICAgICAgICAgICAgICA8aDEgY2xhc3M9XCJhcHAtaGVhZGluZ1wiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwuaGVhZGluZycgfCB0cmFuc2xhdGU6ZHluYW1pY1BhcmFtIH19PC9oMT5cclxuICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgIDwvaW9uLXJvdz5cclxuICAgIDwvaW9uLWdyaWQ+XHJcbiAgICA8IS0tIFRoZXJlIGNhbiBiZSBiZWxvdyBjb21iaW5hdGlvbnM6XHJcbiAgICAgICAxLiBXYWl0aW5nIHdlZWsgaXMgTk9UIHNlcnZlZCAoV2l0aCBvciB3aXRob3V0IHdvcmtzZWFyY2ggd2FpdmVkKSAtIGhpZ2hlc3QgcHJpb3JpdHkgKFdhaXRpbmcgd2VlayBtZXNzYWdlKVxyXG4gICAgICAgMi4gV2FpdGluZyB3ZWVrIGlzIHNlcnZlZCAmIFdvcmsgc2VhcmNoIGlzIHdhaXZlZCAtIFdvcmtzZWFyY2ggd2FpdmVyIG1lc3NhZ2VcclxuICAgICAgIDMuIFdhaXRpbmcgd2VlayBpcyBzZXJ2ZWQgYW5kIHdvcmsgc2VhcmNoIGlzIE5PVCB3YWl2ZWQgIC0tPlxyXG4gICAgPGRpdiAqbmdJZj1cIiFpc1dhaXRpbmdXZWVrU2VydmVkXCI+XHJcbiAgICAgICAgPGlvbi1ncmlkIGNsYXNzPVwiaW9uLXBhZGRpbmctdG9wXCI+XHJcbiAgICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICAgICAgPGlvbi1jb2wgaW9uLWNvbCBzaXplPVwiMTJcIiBzaXplU209XCIxMlwiIHNpemVYcz1cIjEyXCIgc2l6ZU1kPVwiMTBcIiBzaXplTGc9XCI2XCIgc2l6ZVhsPVwiNVwiIG9mZnNldExnPVwiM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0WGw9e3tvZmZTZXRWYWx1ZX19IG9mZnNldE1kPVwiMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7J25vLndvcmsuc2VhcmNoLnJlcXVpcmVkJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgPC9pb24tZ3JpZD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cImlzTVMoKSAmJiBpc1dvcmtTZWFyY2hXYWl2ZWQgJiYgaXNXYWl0aW5nV2Vla1NlcnZlZFwiPlxyXG4gICAgICAgIDxpb24tZ3JpZCBjbGFzcz1cImlvbi1wYWRkaW5nLXRvcFwiPlxyXG4gICAgICAgICAgICA8aW9uLXJvdyAqbmdJZj1cInRoaXMud2FpdmVyUmVhc29uXCI+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWNvbCBpb24tY29sIHNpemU9XCIxMlwiIHNpemVTbT1cIjEyXCIgc2l6ZVhzPVwiMTJcIiBzaXplTWQ9XCIxMFwiIHNpemVMZz1cIjZcIiBzaXplWGw9XCI1XCIgb2Zmc2V0TGc9XCIzXCJcclxuICAgICAgICAgICAgICAgICAgICBvZmZzZXRYbD17e29mZlNldFZhbHVlfX0gb2Zmc2V0TWQ9XCIxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgdGhpcy53YWl2ZXJSZWFzb259fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgIDwvaW9uLWdyaWQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCIoIWlzV29ya1NlYXJjaFdhaXZlZCB8fCAoIWlzTVMoKSAmJiBpc1dvcmtTZWFyY2hXYWl2ZWQpKSAmJiBpc1dhaXRpbmdXZWVrU2VydmVkXCI+XHJcbiAgICAgICAgPGlvbi1ncmlkPlxyXG4gICAgICAgICAgICA8aW9uLXJvdz5cclxuICAgICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxMlwiIHNpemVTbT1cIjEyXCIgc2l6ZVhzPVwiMTJcIiBzaXplTWQ9XCIxMFwiIHNpemVMZz1cIjZcIiBzaXplWGw9XCI1XCIgb2Zmc2V0TGc9XCIzXCJcclxuICAgICAgICAgICAgICAgICAgICBvZmZzZXRYbD17e29mZlNldFZhbHVlfX0gb2Zmc2V0TWQ9XCIxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJyIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCI2XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDEgKm5nSWY9XCJpc01FKClcIiBzdHlsZT1cInBvc2l0aW9uOiBmaXhlZDsgbWFyZ2luLXRvcDogLTQ1cHg7XCIgY2xhc3M9XCJoZWFkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3snd29yay5zZWFyY2guYWN0aXZpdGllcycgfCB0cmFuc2xhdGUgfX08L2gxPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC13b3JrLXNlYXJjaC1jb3VudGVyIFtjb3VudF09XCJqb3VybmFscy5sZW5ndGhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoaXJlZFJlY29yZENvdW50XT1cInJldHJpZXZlSGlyZWRSZWNvcmRDb3VudCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbXNnXT1cImdldFdvcmtTZWFyY2hNZXNzYWdlKClcIj48L2FwcC13b3JrLXNlYXJjaC1jb3VudGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpb24tY29sIGNsYXNzPVwiam91cm5hbC10ZXh0XCIgc3R5bGU9XCJwYWRkaW5nLXRvcDogNzVweDsgcGFkZGluZy1yaWdodDogMHB4O1wiIHNpemU9XCI1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Yj4rIEFkZDwvYj4gYWN0aXZpdHlcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImpvdXJuYWwtYnV0dG9uXCIgc3R5bGU9XCJwYWRkaW5nLXRvcDogNjBweDtcIiBzaXplPVwiMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1idXR0b24gc3R5bGU9XCJwYWRkaW5nOiAwcHggMHB4O1wiIGZpbGw9XCJvdXRsaW5lXCIgc2l6ZT1cInNtYWxsXCIgKGNsaWNrKT1cImFkZCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFjdGlvbi1idXR0b25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhbCcsICdwbHVzJ11cIiBjbGFzcz1cImFjdGlvbi1pY29uXCI+PC9mYS1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiA1cHg7XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gKm5nSWY9XCJqb3VybmFscy5sZW5ndGggPT09IDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHAtdGFibGUgW3ZhbHVlXT1cIlt7fV1cIiBzdHlsZUNsYXNzPVwicC1kYXRhdGFibGUtc3RyaXBlZCBhcHAtZGF0YXRhYmxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwicm93LWJvcmRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJoZWlnaHQ6IDc1cHg7XCI+PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wLXRhYmxlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8cC10YWJsZSBbdmFsdWVdPVwiam91cm5hbHNcIiBzdHlsZUNsYXNzPVwicC1kYXRhdGFibGUtc3RyaXBlZCBhcHAtZGF0YXRhYmxlXCIgW2xvYWRpbmddPVwiaXNMb2FkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LXJlY29yZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInJvdy1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tyZWNvcmQud29ya1NlYXJjaERhdGUgfCBkYXRlOidNL2QveXl5eSd9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPVwid2hpdGUtc3BhY2U6IHByZTtcIj57e3JlY29yZCB8IGZvcm1hdFdvcmtzZWFyY2hSZWNvcmR9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiaW9uLXRleHQtcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cIm91dGxpbmVcIiBzaXplPVwic21hbGxcIiAoY2xpY2spPVwiZWRpdChyZWNvcmQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAnZWRpdCddXCIgY2xhc3M9XCJhY3Rpb24taWNvblwiPjwvZmEtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwib3V0bGluZVwiIHNpemU9XCJzbWFsbFwiIChjbGljayk9XCJkZWxldGUocmVjb3JkKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFjdGlvbi1idXR0b25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFsJywgJ3RyYXNoLWFsdCddXCIgY2xhc3M9XCJhY3Rpb24taWNvblwiPjwvZmEtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcC10YWJsZT5cclxuICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxMlwiIHNpemVYbD1cIjVcIiBvZmZzZXRYbD1cIjFcIiBzaXplTGc9XCI2XCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCIgKm5nSWY9XCIhaXNNUygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwiaGVhZGluZ1wiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwud2Vla2x5LmhlYWRlcicgfCB0cmFuc2xhdGV9fTwvaDQ+PGJyIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbaW5uZXJIdG1sXT1cIid3b3JrLnNlYXJjaC5qb3VybmFsLndlZWtseS5wbGFjZWhvbGRlcicgfCB0cmFuc2xhdGUgXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICA8L2lvbi1ncmlkPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tIDxhcHAtd29yay1zZWFyY2gtZW1wbG95ZXItY3QgKm5nSWY9XCJzaG93QWRkV3NSZWNvcnMgJiYgaXNDVCgpXCIgKHN1Y2Nlc3MpPVwiYWRkV3NSZWNvcmQoJGV2ZW50KVwiXHJcbiAgICAgICAgKG9uQ2xvc2UpPVwiY2xvc2VXc1JlY29yZCgpXCIgW2pvdXJuYWxdPVwidHJ1ZVwiIFtzdW5EYXRlXT1cInN1bkRhdGVcIiBbc2F0RGF0ZV09XCJzYXREYXRlXCJcclxuICAgICAgICBbc2F0RGF0ZVN0cmluZ109XCJzYXREYXRlU3RyaW5nXCIgW3N1bkRhdGVTdHJpbmddPVwic3VuRGF0ZVN0cmluZ1wiIFtkYXRhXT1cImpvdXJuYWxcIj48L2FwcC13b3JrLXNlYXJjaC1lbXBsb3llci1jdD4gLS0+XHJcbiAgICA8YXBwLXdvcmstc2VhcmNoLWVtcGxveWVyLW1lICpuZ0lmPVwic2hvd0FkZFdzUmVjb3JzICYmIGlzTUUoKVwiIChzdWNjZXNzKT1cImFkZFdzUmVjb3JkKCRldmVudClcIlxyXG4gICAgICAgIChvbkNsb3NlKT1cImNsb3NlV3NSZWNvcmQoKVwiIFtqb3VybmFsXT1cInRydWVcIiBbc3VuRGF0ZV09XCJzdW5EYXRlXCIgW3NhdERhdGVdPVwic2F0RGF0ZVwiXHJcbiAgICAgICAgW3NhdERhdGVTdHJpbmddPVwic2F0RGF0ZVN0cmluZ1wiIFtzdW5EYXRlU3RyaW5nXT1cInN1bkRhdGVTdHJpbmdcIiBbZGF0YV09XCJqb3VybmFsXCI+PC9hcHAtd29yay1zZWFyY2gtZW1wbG95ZXItbWU+XHJcbiAgICA8YXBwLXdvcmstc2VhcmNoLWVtcGxveWVyLW1zICpuZ0lmPVwic2hvd0FkZFdzUmVjb3JzICYmIGlzTVMoKVwiIChzdWNjZXNzKT1cImFkZFdzUmVjb3JkKCRldmVudClcIlxyXG4gICAgICAgIChvbkNsb3NlKT1cImNsb3NlV3NSZWNvcmQoKVwiIFtqb3VybmFsXT1cInRydWVcIiBbc3VuRGF0ZV09XCJzdW5EYXRlXCIgW3NhdERhdGVdPVwic2F0RGF0ZVwiXHJcbiAgICAgICAgW3NhdERhdGVTdHJpbmddPVwic2F0RGF0ZVN0cmluZ1wiIFtzdW5EYXRlU3RyaW5nXT1cInN1bkRhdGVTdHJpbmdcIiBbZGF0YV09XCJqb3VybmFsXCI+PC9hcHAtd29yay1zZWFyY2gtZW1wbG95ZXItbXM+XHJcbjwvZGl2PiJdfQ==
394
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vla2x5LXdvcmstc2VhcmNoLWpvdXJuYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9jb21wb25lbnRzL3dlZWtseS13b3JrLXNlYXJjaC1qb3VybmFsL3dlZWtseS13b3JrLXNlYXJjaC1qb3VybmFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy93ZWVrbHktd29yay1zZWFyY2gtam91cm5hbC93ZWVrbHktd29yay1zZWFyY2gtam91cm5hbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBSWxELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNKaEQsOEJBQXVHO0lBQ25HLDhCQUEwRyxhQUFBO0lBRzlHLGlCQUFNOzs7SUFGRyxlQUF5RDtJQUF6RCx3R0FBeUQ7OztJQWdCOUQsMkJBQWtDLGtCQUFBLGNBQUEsaUJBQUEsV0FBQTtJQUtaLFlBQXlDOztJQUFBLGlCQUFPLEVBQUEsRUFBQSxFQUFBLEVBQUE7OztJQUR0RCxlQUF3QjtJQUF4Qix3REFBd0I7SUFDbEIsZUFBeUM7SUFBekMscUVBQXlDOzs7SUFPdkQsK0JBQW1DLGlCQUFBLFdBQUE7SUFHckIsWUFBc0I7SUFBQSxpQkFBTyxFQUFBLEVBQUE7OztJQURuQyxlQUF3QjtJQUF4Qix3REFBd0I7SUFDbEIsZUFBc0I7SUFBdEIseUNBQXNCOzs7SUFMNUMsMkJBQWlFLGtCQUFBO0lBRXpELHFHQUtVO0lBQ2QsaUJBQVcsRUFBQTs7O0lBTkcsZUFBdUI7SUFBdkIsMENBQXVCOzs7SUFnQmpCLDhCQUErRTtJQUMzRSxZQUF5Qzs7SUFB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QW1CLEdBQUcsQ0FBQyxFQUFHO2dCQUN4RSxPQUFPLDBGQUEwRixDQUFBO2FBQ2xHO2lCQUFNLElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLElBQUksbUJBQW1CLElBQUksQ0FBQyxFQUFDO2dCQUN2RSxPQUFPLHlDQUF5QyxDQUFBO2FBQ2pEO2lCQUFNLElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLElBQUksbUJBQW1CLEdBQUcsQ0FBQyxFQUFHO2dCQUN4RSxPQUFPLHdGQUF3RixDQUFBO2FBQ2hHO2lCQUFNLElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLElBQUksbUJBQW1CLElBQUksQ0FBQyxFQUFHO2dCQUN6RSxPQUFPLHVDQUF1QyxDQUFBO2FBQy9DO2lCQUFNLElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxJQUFJLG1CQUFtQixHQUFHLENBQUMsRUFBRTtnQkFDMUQsT0FBTyxtRUFBbUUsQ0FBQTthQUMzRTtpQkFDSTtnQkFDSCxPQUFPLDBCQUEwQixDQUFDO2FBQ25DO1NBQ0Y7SUFDSCxDQUFDO2lHQWxNUSxnQ0FBZ0M7b0VBQWhDLGdDQUFnQztZQ2Y3QyxpRkFJTSxxRUFBQTs7WUFKQSxxREFBNEI7WUFNNUIsZUFBNkI7WUFBN0Isc0RBQTZCOzs7aUZEU3RCLGdDQUFnQztjQUw1QyxTQUFTOzJCQUNFLGdDQUFnQzs7a0ZBSS9CLGdDQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBBbGVydENvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXRpbC91dGlsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCYXNlUGFnZSB9IGZyb20gJy4uLy4uL3BhZ2VzL0Jhc2VQYWdlJztcclxuaW1wb3J0IHsgQ29tYm9PcHRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvY29tYm8tbW9kZWwnO1xyXG5pbXBvcnQgeyBXb3JrU2VhcmNoUmVjb3JkTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvd2Vla2x5LWNlcnQvd29yay1zZWFyY2gtcmVjb3JkLXYyLW1vZGVsJztcclxuaW1wb3J0IHsgUmV2aWV3U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3dlZWtseS1jZXJ0L3Jldmlldy5zZXJ2aWNlJ1xyXG5pbXBvcnQgeyBXb3JrU2VhcmNoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3dlZWtseS1jZXJ0L3dvcmstc2VhcmNoLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtd2Vla2x5LXdvcmstc2VhcmNoLWpvdXJuYWwnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi93ZWVrbHktd29yay1zZWFyY2gtam91cm5hbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3dlZWtseS13b3JrLXNlYXJjaC1qb3VybmFsLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgV2Vla2x5V29ya1NlYXJjaEpvdXJuYWxDb21wb25lbnQgZXh0ZW5kcyBCYXNlUGFnZSBpbXBsZW1lbnRzIE9uSW5pdHtcclxuIHB1YmxpYyBqb3VybmFscyA6IFdvcmtTZWFyY2hSZWNvcmRNb2RlbFtdID0gW107XHJcblxyXG4gIHB1YmxpYyBqb3VybmFsIDogV29ya1NlYXJjaFJlY29yZE1vZGVsO1xyXG5cclxuICBwdWJsaWMgc2hvd0FkZFdzUmVjb3JzID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBzYXREYXRlIDogRGF0ZTtcclxuICBwdWJsaWMgc3VuRGF0ZSA6IERhdGU7XHJcbiAgcHVibGljIHNhdERhdGVTdHJpbmc7XHJcbiAgcHVibGljIHN1bkRhdGVTdHJpbmc7XHJcbiAgcHVibGljIGlzTG9hZGluZyA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgZHluYW1pY1BhcmFtIDogYW55O1xyXG4gIHB1YmxpYyBlcnJvck1zZyA6IHN0cmluZztcclxuICBwdWJsaWMgd2FpdmVyUmVhc29uOiBzdHJpbmc7XHJcbiAgcHVibGljIGlzV29ya1NlYXJjaFdhaXZlZCA6IGJvb2xlYW47XHJcbiAgcHVibGljIGlzV2FpdGluZ1dlZWtTZXJ2ZWQgOiBib29sZWFuO1xyXG4gIGNvbXBTdGF0ZSA6IHN0cmluZztcclxuXHJcbiAgcHVibGljIGN1cnJlbnRTdGF0ZTogc3RyaW5nID0gdGhpcy51dGlsLmdldFN0YXRlKCk7XHJcbiAgcHVibGljIG9mZlNldFZhbHVlOiBudW1iZXJcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHdzcyA6IFdvcmtTZWFyY2hTZXJ2aWNlLCBwdWJsaWMgdXRpbDogVXRpbFNlcnZpY2UsIHB1YmxpYyBhYzogQWxlcnRDb250cm9sbGVyLCBwcml2YXRlIHJzIDogUmV2aWV3U2VydmljZSwgcHVibGljIHNhbml0aXplcjogRG9tU2FuaXRpemVyKSB7IFxyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYodGhpcy5jdXJyZW50U3RhdGUgPT09ICdNUycpXHJcbiAgICB7XHJcbiAgICAgIHRoaXMub2ZmU2V0VmFsdWU9NFxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMub2ZmU2V0VmFsdWU9MVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY29tcFN0YXRlID0gdGhpcy51dGlsLmdldFN0YXRlTG93ZXJjYXNlKCk7XHJcbiAgICB0aGlzLmZldGNoSm91cm5hbHMoKTtcclxuICB9XHJcblxyXG4gIGZldGNoSm91cm5hbHMoKSB7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLndzcy5mZXRjaFdvcmtTZWFyY2hKb3VybmFscygpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLnN1bkRhdGUgPSB0aGlzLmdldEVudGVyZWREYXRlKHJlcy5taW5Xb3JrU2VhcmNoRGF0ZVN0cmluZyk7XHJcbiAgICAgICAgICAgICAgdGhpcy5zYXREYXRlID0gdGhpcy5nZXRFbnRlcmVkRGF0ZShyZXMubWF4V29ya1NlYXJjaERhdGVTdHJpbmcpO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2F0RGF0ZVN0cmluZyA9IHJlcy5tYXhXb3JrU2VhcmNoRGF0ZVN0cmluZztcclxuICAgICAgICAgICAgICB0aGlzLnN1bkRhdGVTdHJpbmcgPSByZXMubWluV29ya1NlYXJjaERhdGVTdHJpbmc7XHJcbiAgICAgICAgICAgICAgdGhpcy5qb3VybmFscyA9IHJlcy53b3JrU2VhcmNoUmVjb3JkcztcclxuICAgICAgICAgICAgICB0aGlzLmlzV29ya1NlYXJjaFdhaXZlZCA9IHJlcy5pc1dvcmtTZWFyY2hXYWl2ZWQ7XHJcbiAgICAgICAgICAgICAgdGhpcy53YWl2ZXJSZWFzb24gPSByZXMud2FpdmVyUmVhc29uO1xyXG4gICAgICAgICAgICAgIHRoaXMuaXNXYWl0aW5nV2Vla1NlcnZlZCA9IHJlcy5pc1dhaXRpbmdXZWVrU2VydmVkO1xyXG4gICAgICAgICAgICAgIHRoaXMuZHluYW1pY1BhcmFtID0ge1xyXG4gICAgICAgICAgICAgICAgJ3NhdHVyZGF5X2RhdGUnOiB0aGlzLnNhdERhdGVTdHJpbmcsXHJcbiAgICAgICAgICAgICAgICAnc3VuZGF5X2RhdGUnOiB0aGlzLnN1bkRhdGVTdHJpbmcsXHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9LGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLmVycm9yTXNnID0gZXJyLm1zZztcclxuICAgICAgICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRFbnRlcmVkRGF0ZSh2YWx1ZSl7XHJcbiAgICB2YXIgZGF0ZUFycmF5ID0gdmFsdWUuc3BsaXQoXCIvXCIpO1xyXG4gICAgdmFyIGRkID0gcGFyc2VJbnQodGhpcy51dGlsLnByZXBlZFplcm9JZlNpbmdsZURpZ2l0KGRhdGVBcnJheVsxXSkpO1xyXG4gICAgdmFyIE1NID0gcGFyc2VJbnQodGhpcy51dGlsLnByZXBlZFplcm9JZlNpbmdsZURpZ2l0KGRhdGVBcnJheVswXSkpIC0gMTtcclxuICAgIHZhciB5eXl5ID0gcGFyc2VJbnQodGhpcy51dGlsLnByZXBlZFplcm9JZlNpbmdsZURpZ2l0KGRhdGVBcnJheVsyXSkpO1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKHl5eXksTU0sZGQpO1xyXG4gIH1cclxuXHJcbiBhZGQoKXtcclxuICAgIHRoaXMuam91cm5hbCA9IG51bGw7XHJcbiAgICB0aGlzLnNob3dBZGRXc1JlY29ycyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBjbG9zZVdzUmVjb3JkKCl7XHJcbiAgICB0aGlzLnNob3dBZGRXc1JlY29ycyA9IGZhbHNlO1xyXG4gICAgdGhpcy5qb3VybmFsID0gbnVsbDtcclxuICB9XHJcblxyXG4gIGFkZFdzUmVjb3JkKGV2ZW50IDogV29ya1NlYXJjaFJlY29yZE1vZGVsKXtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMud3NzLnNhdmVXb3JrU2VhcmNoSm91cm5hbChldmVudClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5zaG93QWRkV3NSZWNvcnMgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLmpvdXJuYWwgPSBudWxsO1xyXG4gICAgICAgICAgICAgIGlmKGV2ZW50LmNsYWltYW50V29ya1NlYXJjaEpvdXJuYWxJZCl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnV0aWwuc3VjY2VzcyhcIkFjdGl2aXR5IHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5LlwiKTtcclxuICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgIHRoaXMudXRpbC5zdWNjZXNzKFwiQWN0aXZpdHkgc2F2ZWQgc3VjY2Vzc2Z1bGx5LlwiKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy5mZXRjaEpvdXJuYWxzKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5ycy5zZXRSZXZpZXdBcHAodHJ1ZSk7XHJcbiAgICAgICAgICAgIH0sIGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XHJcbiAgICAgICAgICAgICAgdGhpcy5zaG93QWRkV3NSZWNvcnMgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLmpvdXJuYWwgPSBudWxsO1xyXG4gICAgICAgICAgICB9KTtcclxuICB9XHJcblxyXG4gIGVkaXQod3NSZWNvcmQgOiBXb3JrU2VhcmNoUmVjb3JkTW9kZWwpe1xyXG4gICAgdGhpcy5qb3VybmFsID0gd3NSZWNvcmQ7XHJcbiAgICB0aGlzLnNob3dBZGRXc1JlY29ycyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICByZXRyaWV2ZUhpcmVkUmVjb3JkQ291bnQgKCkgOiBudW1iZXIge1xyXG4gICAgLy9pdGVyYXRlIGpvdXJuYWxcclxuICAgICAgbGV0IGhpcmVkUmVjb3JkQ291bnQgPSAwO1xyXG4gICAgICBmb3IobGV0IGk9MDsgaSA8IHRoaXMuam91cm5hbHMubGVuZ3RoOyBpKyspXHJcbiAgICAgIHtcclxuICAgICAgICBpZih0aGlzLmpvdXJuYWxzW2ldLnNlYXJjaFJlc3VsdCA9PT0gXCJISVJFXCIpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgaGlyZWRSZWNvcmRDb3VudCs9IDE7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBoaXJlZFJlY29yZENvdW50O1xyXG4gIH1cclxuXHJcbiAgcmV0cmlldmVKb2FwQ291bnQgKCkgOiBudW1iZXIge1xyXG4gICAgbGV0IGpvYXBDb3VudCA9MDtcclxuICAgIGZvcihsZXQgaT0wOyBpIDwgdGhpcy5qb3VybmFscy5sZW5ndGg7IGkrKylcclxuICAgIHtcclxuICAgICAgaWYodGhpcy5qb3VybmFsc1tpXS5hY3Rpdml0eVR5cGUgPT09IFwiSk9BUFwiKVxyXG4gICAgICB7XHJcbiAgICAgICAgam9hcENvdW50Kys7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBqb2FwQ291bnQ7XHJcbiAgfVxyXG5cclxuICBhc3luYyBkZWxldGUod3NSZWNvcmQgOiBXb3JrU2VhcmNoUmVjb3JkTW9kZWwpe1xyXG4gICAgY29uc3QgYWxlcnQgPSBhd2FpdCB0aGlzLmFjLmNyZWF0ZSh7XHJcbiAgICAgIGhlYWRlcjogJ0NvbmZpcm0hJyxcclxuICAgICAgbWVzc2FnZTogJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBlbnRyeT8nLFxyXG4gICAgICBidXR0b25zOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdGV4dDogJ0NhbmNlbCcsXHJcbiAgICAgICAgICByb2xlOiAnY2FuY2VsJyxcclxuICAgICAgICAgIGNzc0NsYXNzOiAncHJpbWFyeScsXHJcbiAgICAgICAgICBoYW5kbGVyOiAoKSA9PiB7fVxyXG4gICAgICAgIH0sIHtcclxuICAgICAgICAgIHRleHQ6ICdPa2F5JyxcclxuICAgICAgICAgIGhhbmRsZXI6ICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy53c3MuZGVsZXRlV29ya1NlYXJjaEpvdXJuYWwod3NSZWNvcmQuY2xhaW1hbnRXb3JrU2VhcmNoSm91cm5hbElkKVxyXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAgICAgICByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnV0aWwuc3VjY2VzcyhcIlJlY29yZCBkZWxldGVkIHN1Y2Nlc3NmdWxseS5cIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmV0Y2hKb3VybmFscygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfSxlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIF1cclxuICAgIH0pO1xyXG5cclxuICAgIGF3YWl0IGFsZXJ0LnByZXNlbnQoKTtcclxuICB9XHJcblxyXG4gICAgZ2V0V29ya1NlYXJjaE1lc3NhZ2UoKSB7XHJcbiAgICAgIGxldCBjb3VudCA9IHRoaXMuam91cm5hbHMubGVuZ3RoO1xyXG5cclxuICAgICAgLy9pdGVyYXRlIGpvdXJuYWxcclxuICAgICAgbGV0IGhpcmVkUmVjb3JkQ291bnQgPSB0aGlzLnJldHJpZXZlSGlyZWRSZWNvcmRDb3VudCgpO1xyXG5cclxuICAgICAgbGV0IGpvYXBBY3Rpdml0aWVzQ291bnQgPSB0aGlzLnJldHJpZXZlSm9hcENvdW50KCk7XHJcbiAgICAgIFxyXG4gICAgICBpZih0aGlzLnV0aWwuZ2V0U3RhdGVMb3dlcmNhc2UoKSA9PSAnbWUnKXtcclxuICAgICAgICBpZihjb3VudCA8IDEpe1xyXG4gICAgICAgICAgcmV0dXJuICdBdCBsZWFzdCBvbmUgYWN0aXZpdHkgcmVxdWlyZWQnXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiAnTWluaW11bSByZXF1aXJlbWVudHMgbWV0JztcclxuICAgICAgICB9XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIGlmIChjb3VudCA8IDEpIHtcclxuICAgICAgICAgIHJldHVybiAnWW91IG5lZWQgdG8gYWRkIGF0IGxlYXN0IDMgYWN0aXZpdGllcyBmb3IgdGhlIHdlZWsuIDxiPk9uZSBtdXN0IGJlIEFwcGxpZWQgZm9yIHdvcmsuPC9iPidcclxuICAgICAgICB9IGVsc2UgaWYgKGNvdW50IDwgMiAmJiBoaXJlZFJlY29yZENvdW50IDwgMSAmJiBqb2FwQWN0aXZpdGllc0NvdW50IDwgMSApIHtcclxuICAgICAgICAgIHJldHVybiAnWW91IG5lZWQgMiBtb3JlIGFjdGl2aXRpZXMgZm9yIHRoZSB3ZWVrLCBhdCBsZWFzdCBvbmUgd2l0aCBhIGZpbGVkIGFwcGxpY2F0aW9uIG9yIHJlc3VtZSdcclxuICAgICAgICB9IGVsc2UgaWYgKGNvdW50IDwgMiAmJiBoaXJlZFJlY29yZENvdW50IDwgMSAmJiBqb2FwQWN0aXZpdGllc0NvdW50ID49IDEpe1xyXG4gICAgICAgICAgcmV0dXJuICdZb3UgbmVlZCAyIG1vcmUgYWN0aXZpdGllcyBmb3IgdGhlIHdlZWsnXHJcbiAgICAgICAgfSBlbHNlIGlmIChjb3VudCA8IDMgJiYgaGlyZWRSZWNvcmRDb3VudCA8IDEgJiYgam9hcEFjdGl2aXRpZXNDb3VudCA8IDEgKSB7XHJcbiAgICAgICAgICByZXR1cm4gJ1lvdSBuZWVkIDEgbW9yZSBhY3Rpdml0eSBmb3IgdGhlIHdlZWssIGF0IGxlYXN0IG9uZSB3aXRoIGEgZmlsZWQgYXBwbGljYXRpb24gb3IgcmVzdW1lJ1xyXG4gICAgICAgIH0gZWxzZSBpZiAoY291bnQgPCAzICYmIGhpcmVkUmVjb3JkQ291bnQgPCAxICYmIGpvYXBBY3Rpdml0aWVzQ291bnQgPj0gMSApIHtcclxuICAgICAgICAgIHJldHVybiAnWW91IG5lZWQgMSBtb3JlIGFjdGl2aXR5IGZvciB0aGUgd2VlaydcclxuICAgICAgICB9IGVsc2UgaWYgKGhpcmVkUmVjb3JkQ291bnQgPCAxICYmIGpvYXBBY3Rpdml0aWVzQ291bnQgPCAxICl7XHJcbiAgICAgICAgICByZXR1cm4gJ1lvdSBuZWVkIGF0IGxlYXN0IG9uZSBhY3Rpdml0eSB3aXRoIGEgZmlsZWQgYXBwbGljYXRpb24gb3IgcmVzdW1lJ1xyXG4gICAgICAgIH0gIFxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuICdNaW5pbXVtIHJlcXVpcmVtZW50cyBtZXQnO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCIhaXNMb2FkaW5nICYmIGVycm9yTXNnXCIgY2xhc3M9XCJpb24tdGV4dC1jZW50ZXIgaW9uLXBhZGRpbmctdG9wXCIgc3R5bGU9XCJwYWRkaW5nLXRvcDogNTBweDtcIj5cclxuICAgIDxpb24taWNvbiBuYW1lPVwiYWxlcnQtY2lyY2xlLW91dGxpbmVcIiBzdHlsZT1cImZvbnQtc2l6ZTogNjBweDsgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYW5nZXIpO1wiPjwvaW9uLWljb24+XHJcbiAgICA8ZGl2IFtpbm5lckhUTUxdPVwic2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGVycm9yTXNnKVwiXHJcbiAgICAgICAgc3R5bGU9XCJjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhbmdlcik7IGZvbnQtc2l6ZTogbGFyZ2VyO1wiIGNsYXNzPVwiaW9uLXRleHQtY2VudGVyIGlvbi1wYWRkaW5nXCI+PC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiAqbmdJZj1cIiFpc0xvYWRpbmcgJiYgIWVycm9yTXNnXCI+XHJcbiAgICA8aW9uLWdyaWQ+XHJcbiAgICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxMlwiIG9mZnNldFhsPVwiMVwiPlxyXG4gICAgICAgICAgICAgICAgPGgxIGNsYXNzPVwiYXBwLWhlYWRpbmdcIj57eyd3b3JrLnNlYXJjaC5qb3VybmFsLmhlYWRpbmcnIHwgdHJhbnNsYXRlOmR5bmFtaWNQYXJhbSB9fTwvaDE+XHJcbiAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICA8L2lvbi1ncmlkPlxyXG4gICAgPCEtLSBUaGVyZSBjYW4gYmUgYmVsb3cgY29tYmluYXRpb25zOlxyXG4gICAgICAgMS4gV2FpdGluZyB3ZWVrIGlzIE5PVCBzZXJ2ZWQgKFdpdGggb3Igd2l0aG91dCB3b3Jrc2VhcmNoIHdhaXZlZCkgLSBoaWdoZXN0IHByaW9yaXR5IChXYWl0aW5nIHdlZWsgbWVzc2FnZSlcclxuICAgICAgIDIuIFdhaXRpbmcgd2VlayBpcyBzZXJ2ZWQgJiBXb3JrIHNlYXJjaCBpcyB3YWl2ZWQgLSBXb3Jrc2VhcmNoIHdhaXZlciBtZXNzYWdlXHJcbiAgICAgICAzLiBXYWl0aW5nIHdlZWsgaXMgc2VydmVkIGFuZCB3b3JrIHNlYXJjaCBpcyBOT1Qgd2FpdmVkICAtLT5cclxuICAgIDxkaXYgKm5nSWY9XCIhaXNXYWl0aW5nV2Vla1NlcnZlZFwiPlxyXG4gICAgICAgIDxpb24tZ3JpZCBjbGFzcz1cImlvbi1wYWRkaW5nLXRvcFwiPlxyXG4gICAgICAgICAgICA8aW9uLXJvdz5cclxuICAgICAgICAgICAgICAgIDxpb24tY29sIGlvbi1jb2wgc2l6ZT1cIjEyXCIgc2l6ZVNtPVwiMTJcIiBzaXplWHM9XCIxMlwiIHNpemVNZD1cIjEwXCIgc2l6ZUxnPVwiNlwiIHNpemVYbD1cIjVcIiBvZmZzZXRMZz1cIjNcIlxyXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldFhsPXt7b2ZmU2V0VmFsdWV9fSBvZmZzZXRNZD1cIjFcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyduby53b3JrLnNlYXJjaC5yZXF1aXJlZCcgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgIDwvaW9uLWdyaWQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJpc01TKCkgJiYgaXNXb3JrU2VhcmNoV2FpdmVkICYmIGlzV2FpdGluZ1dlZWtTZXJ2ZWRcIj5cclxuICAgICAgICA8aW9uLWdyaWQgY2xhc3M9XCJpb24tcGFkZGluZy10b3BcIj5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJ0aGlzLndhaXZlclJlYXNvblwiPlxyXG4gICAgICAgICAgICAgICAgPGlvbi1jb2wgaW9uLWNvbCBzaXplPVwiMTJcIiBzaXplU209XCIxMlwiIHNpemVYcz1cIjEyXCIgc2l6ZU1kPVwiMTBcIiBzaXplTGc9XCI2XCIgc2l6ZVhsPVwiNVwiIG9mZnNldExnPVwiM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0WGw9e3tvZmZTZXRWYWx1ZX19IG9mZnNldE1kPVwiMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IHRoaXMud2FpdmVyUmVhc29ufX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICA8L2lvbi1ncmlkPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiKCFpc1dvcmtTZWFyY2hXYWl2ZWQgfHwgKCFpc01TKCkgJiYgaXNXb3JrU2VhcmNoV2FpdmVkKSkgJiYgaXNXYWl0aW5nV2Vla1NlcnZlZFwiPlxyXG4gICAgICAgIDxpb24tZ3JpZD5cclxuICAgICAgICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMTJcIiBzaXplU209XCIxMlwiIHNpemVYcz1cIjEyXCIgc2l6ZU1kPVwiMTBcIiBzaXplTGc9XCI2XCIgc2l6ZVhsPVwiNVwiIG9mZnNldExnPVwiM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0WGw9e3tvZmZTZXRWYWx1ZX19IG9mZnNldE1kPVwiMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxiciAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgxICpuZ0lmPVwiaXNNRSgpXCIgc3R5bGU9XCJwb3NpdGlvbjogZml4ZWQ7IG1hcmdpbi10b3A6IC00NXB4O1wiIGNsYXNzPVwiaGVhZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7J3dvcmsuc2VhcmNoLmFjdGl2aXRpZXMnIHwgdHJhbnNsYXRlIH19PC9oMT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtd29yay1zZWFyY2gtY291bnRlciBbY291bnRdPVwiam91cm5hbHMubGVuZ3RoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGlyZWRSZWNvcmRDb3VudF09XCJyZXRyaWV2ZUhpcmVkUmVjb3JkQ291bnQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21zZ109XCJnZXRXb3JrU2VhcmNoTWVzc2FnZSgpXCI+PC9hcHAtd29yay1zZWFyY2gtY291bnRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImpvdXJuYWwtdGV4dFwiIHN0eWxlPVwicGFkZGluZy10b3A6IDc1cHg7IHBhZGRpbmctcmlnaHQ6IDBweDtcIiBzaXplPVwiNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGI+KyBBZGQ8L2I+IGFjdGl2aXR5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJqb3VybmFsLWJ1dHRvblwiIHN0eWxlPVwicGFkZGluZy10b3A6IDYwcHg7XCIgc2l6ZT1cIjFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uIHN0eWxlPVwicGFkZGluZzogMHB4IDBweDtcIiBmaWxsPVwib3V0bGluZVwiIHNpemU9XCJzbWFsbFwiIChjbGljayk9XCJhZGQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAncGx1cyddXCIgY2xhc3M9XCJhY3Rpb24taWNvblwiPjwvZmEtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwibWFyZ2luLWJvdHRvbTogNXB4O1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uICpuZ0lmPVwiam91cm5hbHMubGVuZ3RoID09PSAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwLXRhYmxlIFt2YWx1ZV09XCJbe31dXCIgc3R5bGVDbGFzcz1cInAtZGF0YXRhYmxlLXN0cmlwZWQgYXBwLWRhdGF0YWJsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz1cInJvdy1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwiaGVpZ2h0OiA3NXB4O1wiPjwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcC10YWJsZT5cclxuICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAtdGFibGUgW3ZhbHVlXT1cImpvdXJuYWxzXCIgc3R5bGVDbGFzcz1cInAtZGF0YXRhYmxlLXN0cmlwZWQgYXBwLWRhdGF0YWJsZVwiIFtsb2FkaW5nXT1cImlzTG9hZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC1yZWNvcmQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJyb3ctYm9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7cmVjb3JkLndvcmtTZWFyY2hEYXRlIHwgZGF0ZTonTS9kL3l5eXknfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBzdHlsZT1cIndoaXRlLXNwYWNlOiBwcmU7XCI+e3tyZWNvcmQgfCBmb3JtYXRXb3Jrc2VhcmNoUmVjb3JkfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImlvbi10ZXh0LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJvdXRsaW5lXCIgc2l6ZT1cInNtYWxsXCIgKGNsaWNrKT1cImVkaXQocmVjb3JkKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFjdGlvbi1idXR0b25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFsJywgJ2VkaXQnXVwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj48L2ZhLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cIm91dGxpbmVcIiBzaXplPVwic21hbGxcIiAoY2xpY2spPVwiZGVsZXRlKHJlY29yZClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhbCcsICd0cmFzaC1hbHQnXVwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj48L2ZhLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8L3AtdGFibGU+XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMTJcIiBzaXplWGw9XCI1XCIgb2Zmc2V0WGw9XCIxXCIgc2l6ZUxnPVwiNlwiIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiICpuZ0lmPVwiIWlzTVMoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cImhlYWRpbmdcIj57eyd3b3JrLnNlYXJjaC5qb3VybmFsLndlZWtseS5oZWFkZXInIHwgdHJhbnNsYXRlfX08L2g0PjxiciAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2lubmVySHRtbF09XCInd29yay5zZWFyY2guam91cm5hbC53ZWVrbHkucGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlIFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgPC9pb24tZ3JpZD5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLSA8YXBwLXdvcmstc2VhcmNoLWVtcGxveWVyLWN0ICpuZ0lmPVwic2hvd0FkZFdzUmVjb3JzICYmIGlzQ1QoKVwiIChzdWNjZXNzKT1cImFkZFdzUmVjb3JkKCRldmVudClcIlxyXG4gICAgICAgIChvbkNsb3NlKT1cImNsb3NlV3NSZWNvcmQoKVwiIFtqb3VybmFsXT1cInRydWVcIiBbc3VuRGF0ZV09XCJzdW5EYXRlXCIgW3NhdERhdGVdPVwic2F0RGF0ZVwiXHJcbiAgICAgICAgW3NhdERhdGVTdHJpbmddPVwic2F0RGF0ZVN0cmluZ1wiIFtzdW5EYXRlU3RyaW5nXT1cInN1bkRhdGVTdHJpbmdcIiBbZGF0YV09XCJqb3VybmFsXCI+PC9hcHAtd29yay1zZWFyY2gtZW1wbG95ZXItY3Q+IC0tPlxyXG4gICAgPGFwcC13b3JrLXNlYXJjaC1lbXBsb3llci1tZSAqbmdJZj1cInNob3dBZGRXc1JlY29ycyAmJiBpc01FKClcIiAoc3VjY2Vzcyk9XCJhZGRXc1JlY29yZCgkZXZlbnQpXCJcclxuICAgICAgICAob25DbG9zZSk9XCJjbG9zZVdzUmVjb3JkKClcIiBbam91cm5hbF09XCJ0cnVlXCIgW3N1bkRhdGVdPVwic3VuRGF0ZVwiIFtzYXREYXRlXT1cInNhdERhdGVcIlxyXG4gICAgICAgIFtzYXREYXRlU3RyaW5nXT1cInNhdERhdGVTdHJpbmdcIiBbc3VuRGF0ZVN0cmluZ109XCJzdW5EYXRlU3RyaW5nXCIgW2RhdGFdPVwiam91cm5hbFwiPjwvYXBwLXdvcmstc2VhcmNoLWVtcGxveWVyLW1lPlxyXG4gICAgPGFwcC13b3JrLXNlYXJjaC1lbXBsb3llci1tcyAqbmdJZj1cInNob3dBZGRXc1JlY29ycyAmJiBpc01TKClcIiAoc3VjY2Vzcyk9XCJhZGRXc1JlY29yZCgkZXZlbnQpXCJcclxuICAgICAgICAob25DbG9zZSk9XCJjbG9zZVdzUmVjb3JkKClcIiBbam91cm5hbF09XCJ0cnVlXCIgW3N1bkRhdGVdPVwic3VuRGF0ZVwiIFtzYXREYXRlXT1cInNhdERhdGVcIlxyXG4gICAgICAgIFtzYXREYXRlU3RyaW5nXT1cInNhdERhdGVTdHJpbmdcIiBbc3VuRGF0ZVN0cmluZ109XCJzdW5EYXRlU3RyaW5nXCIgW2RhdGFdPVwiam91cm5hbFwiPjwvYXBwLXdvcmstc2VhcmNoLWVtcGxveWVyLW1zPlxyXG48L2Rpdj4iXX0=
@@ -547,7 +547,7 @@ export class WorkSearchQuestionComponentV2 extends BasePage {
547
547
  }
548
548
  else {
549
549
  if (count < 1) {
550
- return 'You need to add at least 3 activities for the week, at least one with a filed application or resume';
550
+ return 'You need to add at least 3 activities for the week. <b>One must be Applied for work.</b>';
551
551
  }
552
552
  else if (count < 2 && this.hiredRecordCount < 1 && this.joapActivitiesCount < 1) {
553
553
  return 'You need 2 more activities for the week, at least one with a filed application or resume';
@@ -637,4 +637,4 @@ export class WorkSearchQuestionComponentV2 extends BasePage {
637
637
  args: ['wsFormDirective', { static: false }]
638
638
  }] }); })();
639
639
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WorkSearchQuestionComponentV2, { className: "WorkSearchQuestionComponentV2", filePath: "lib\\components\\weekly-work-search-question-v2\\work-search-question.component-v2.ts", lineNumber: 18 }); })();
640
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yay1zZWFyY2gtcXVlc3Rpb24uY29tcG9uZW50LXYyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9jb21wb25lbnRzL3dlZWtseS13b3JrLXNlYXJjaC1xdWVzdGlvbi12Mi93b3JrLXNlYXJjaC1xdWVzdGlvbi5jb21wb25lbnQtdjIudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvd2Vla2x5LXdvcmstc2VhcmNoLXF1ZXN0aW9uLXYyL3dvcmstc2VhcmNoLXF1ZXN0aW9uLmNvbXBvbmVudC12Mi5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBZ0QsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHMUYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUloRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ1JyRSwrQkFBMkMsYUFBQTtJQUNqQixZQUF1RDs7SUFBQSxpQkFBSyxFQUFBOzs7SUFBNUQsZUFBdUQ7SUFBdkQsMEZBQXVEOzs7O0lBSTdFLCtCQUEwQyxjQUFBLGtCQUFBLFNBQUE7SUFHaEMsWUFBd0M7O0lBQUEsaUJBQUssRUFBQTtJQUVuRCxtQ0FBb0Usa0JBQUE7SUFFaEUscUNBRWlCLDJCQUFBOzs7SUFJakIsaUNBQ2tFO0lBQ3BFLGlCQUFVLEVBQUEsRUFBQSxFQUFBOzs7O0lBWk4sZUFBd0M7SUFBeEMsb0VBQXdD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QUFNO1lBSVAsY0FBYztrQkFEYixNQUFNO1lBSVAsdUNBQXVDO2tCQUR0QyxNQUFNO1lBSUEsUUFBUTtrQkFEZCxTQUFTO21CQUFDLFVBQVU7WUFJZCxlQUFlO2tCQURyQixTQUFTO21CQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTs7a0ZBMUJwQyw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIEV2ZW50RW1pdHRlciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwLCBOZ0Zvcm0sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFsZXJ0Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcclxuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XHJcbmltcG9ydCB7IEJhc2VQYWdlIH0gZnJvbSAnLi4vLi4vcGFnZXMvQmFzZVBhZ2UnO1xyXG5pbXBvcnQgeyBXb3JrU2VhcmNoTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvd2Vla2x5LWNlcnQvd29yay1zZWFyY2gtdjItbW9kZWwnO1xyXG5pbXBvcnQgeyBXb3JrU2VhcmNoUmVjb3JkTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvd2Vla2x5LWNlcnQvd29yay1zZWFyY2gtcmVjb3JkLXYyLW1vZGVsJztcclxuaW1wb3J0IHsgV2Vla2x5Q2VydFNlcnZpY2VWMiB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3dlZWtseS1jZXJ0L3dlZWtseS1jZXJ0LXYyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBXb3JrU2VhcmNoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3dlZWtseS1jZXJ0L3dvcmstc2VhcmNoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyByb3dFeHBhbnNpb25UcmlnZ2VyIH0gZnJvbSAnLi4vLi4vYW5uaW1hdGlvbnMvYXBwLWFuaW1hdGlvbnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtd29yay1zZWFyY2gtcXVlc3Rpb24tdjInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi93b3JrLXNlYXJjaC1xdWVzdGlvbi5jb21wb25lbnQtdjIuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vd29yay1zZWFyY2gtcXVlc3Rpb24uY29tcG9uZW50LXYyLnNjc3MnXSxcclxuICBhbmltYXRpb25zOiBbcm93RXhwYW5zaW9uVHJpZ2dlcl1cclxufSlcclxuZXhwb3J0IGNsYXNzIFdvcmtTZWFyY2hRdWVzdGlvbkNvbXBvbmVudFYyIGV4dGVuZHMgQmFzZVBhZ2UgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyByZWFkT25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93Q291bnRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBzdWNjZXNzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgZXJyb3I6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBoYXNIaXJlZFN0YXR1czogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBoYXNXb3JrZWRGdWxsVGltZU9yU3RhcnRlZFdvcmtpbmdTdGF0dXM6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnd3NGb3JtSWQnKVxyXG4gIHB1YmxpYyB3c0Zvcm1JZDtcclxuXHJcbiAgQFZpZXdDaGlsZCgnd3NGb3JtRGlyZWN0aXZlJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgcHVibGljIHdzRm9ybURpcmVjdGl2ZTogTmdGb3JtO1xyXG4gIHB1YmxpYyBzaG93QWRkV3NSZWNvcnMgPSBmYWxzZTtcclxuICBwdWJsaWMgd29ya1NlYXJjaERhdGE6IFdvcmtTZWFyY2hNb2RlbDtcclxuICBwdWJsaWMgd3NGb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG4gIHB1YmxpYyB5ZXNOb09wdGlvbnMgPSBbeyBsYWJlbDogJ1llcycsIHZhbHVlOiAnMScgfSwgeyBsYWJlbDogJ05vJywgdmFsdWU6ICcwJyB9XTtcclxuICBwdWJsaWMgaW5kZXhUb0VkaXQ7XHJcbiAgcHVibGljIHBhcmFtO1xyXG4gIHB1YmxpYyBzaG93V3NRdWVzdGlvbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBqb3VybmFsOiBXb3JrU2VhcmNoUmVjb3JkTW9kZWw7XHJcbiAgcHVibGljIGpvdXJuYWxJZDogYW55O1xyXG4gIGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTtcclxuXHJcbiAgaGlyZWRSZWNvcmRDb3VudDogYW55O1xyXG4gIGpvYXBBY3Rpdml0aWVzQ291bnQ6IGFueTtcclxuICBjb3VudGVyID0gMDtcclxuXHJcbiAgY29tcFN0YXRlOiBzdHJpbmc7XHJcbiAgbXNnOiBzdHJpbmc7XHJcblxyXG4gIHNob3dSZWVtRGlhbG9nID0gZmFsc2U7XHJcbiAgc2hvd1JlZW1BZHZpc29yeSA9IGZhbHNlO1xyXG5yZWFkb25seSByZWVtQWR2aXNvcnlUZXh0ID1cclxuICAnWW91IHNlbGVjdGVkIHRoYXQgeW91IGhhdmUgd29ya2VkIHdpdGggdGhlIENhcmVlckNlbnRlciBmb3IgbXVsdGlwbGUgd2Vla3MuIFdlIGVuY291cmFnZSB5b3UgdG8gY29udGludWUgdXNpbmcgdGhlIENhcmVlckNlbnRlciwgYnV0IHdlIGFsc28gZW5jb3VyYWdlIHlvdSB0byBleHBhbmQgeW91ciB3b3JrIHNlYXJjaCB0byBvdGhlciBhY3Rpdml0aWVzIHN1Y2ggYXMgYXBwbHlpbmcgZm9yIHdvcmsgdXNpbmcgdGhlIE1haW5lIEpvYkxpbmsuIENvbnRpbnVpbmcgdG8gdXNlIG9ubHkgQ2FyZWVyQ2VudGVyIHNlcnZpY2VzIG1heSByZXN1bHQgaW4gYW4gaW4tZGVwdGggcmV2aWV3IG9mIHlvdXIgd29yayBzZWFyY2ggYWN0aXZpdGllcyB0byBmdXJ0aGVyIGFzc2lzdCB5b3UuJztcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHdzczogV29ya1NlYXJjaFNlcnZpY2UsIHB1YmxpYyB3Y1NlcnZpY2U6IFdlZWtseUNlcnRTZXJ2aWNlVjIsIHB1YmxpYyBmYjogVW50eXBlZEZvcm1CdWlsZGVyLCBwcml2YXRlIHV0aWw6IFV0aWxTZXJ2aWNlLCBwdWJsaWMgYWM6IEFsZXJ0Q29udHJvbGxlcikge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5pbml0aWxpemVXU1F1ZXN0aW9ubmFpcmVGb3JtKCk7XHJcbiAgICB0aGlzLnBhcmFtID0ge1xyXG4gICAgICBzdW5kYXlfZGF0ZTogdGhpcy53Y1NlcnZpY2UuZ2V0U3VuZGF5RGF0ZUFzU3RyaW5nKCksXHJcbiAgICAgIHNhdHVyZGF5X2RhdGU6IHRoaXMud2NTZXJ2aWNlLmdldFNhdHVyZGF5RGF0ZUFzU3RyaW5nKClcclxuICAgIH07XHJcbiAgICB0aGlzLmNvbXBTdGF0ZSA9IHRoaXMudXRpbC5nZXRTdGF0ZUxvd2VyY2FzZSgpO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlsaXplV1NRdWVzdGlvbm5haXJlRm9ybSgpIHtcclxuICAgIGlmICh0aGlzLndjU2VydmljZS5nZXRXb3JrU2VhcmNoRGF0YSgpICE9IG51bGwpIHtcclxuICAgICAgdGhpcy53b3JrU2VhcmNoRGF0YSA9IHRoaXMud2NTZXJ2aWNlLmdldFdvcmtTZWFyY2hEYXRhKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLndvcmtTZWFyY2hEYXRhID0gbmV3IFdvcmtTZWFyY2hNb2RlbCgpO1xyXG4gICAgICB0aGlzLndjU2VydmljZS5zZXRXb3JrU2VhcmNoRGF0YSh0aGlzLndvcmtTZWFyY2hEYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLndzRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAnd3NRdWVzdGlvbjEnOiBbdGhpcy53b3JrU2VhcmNoRGF0YS5pc1dvcmtTZWFyY2hQZXJmb3JtZWRGbGFnID8gdGhpcy53b3JrU2VhcmNoRGF0YS5pc1dvcmtTZWFyY2hQZXJmb3JtZWRGbGFnIDogbnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAodGhpcy53Y1NlcnZpY2UuZ2V0V29ya1NlYXJjaFJlY29yZHMoKS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuc2hvd1dzUXVlc3Rpb24gPSBmYWxzZTtcclxuICAgICAgdGhpcy53c1F1ZXN0aW9uMS5zZXRWYWx1ZSgnMScpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuc2hvd1dzUXVlc3Rpb24gPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IHdzUXVlc3Rpb24xKCkge1xyXG4gICAgcmV0dXJuIHRoaXMud3NGb3JtLmNvbnRyb2xzWyd3c1F1ZXN0aW9uMSddO1xyXG4gIH1cclxuXHJcbiAgbnVsbENoZWNrZm9yQWN0aXZpdHlUeXBlKCkge1xyXG4gICAgcmV0dXJuICh0aGlzLndjU2VydmljZS5nZXRXb3JrU2VhcmNoUmVjb3JkcygpKS5tYXAoKHJlY29yZCwgaW5kZXgpID0+XHJcbiAgICAgIChyZWNvcmQuYWN0aXZpdHlUeXBlID09PSBudWxsID8gaW5kZXggKyAxIDogLTEpKS5maWx0ZXIoaW5kZXggPT4gaW5kZXggIT09IC0xKTtcclxuICB9XHJcblxyXG4gIG9wZW5OZXh0UGFnZSgpIHtcclxuICAgIGlmICh0aGlzLmlzTVMoKSkge1xyXG4gICAgICBjb25zdCBwb3NpdGlvbnMgPSB0aGlzLm51bGxDaGVja2ZvckFjdGl2aXR5VHlwZSgpLmpvaW4oXCIsIFwiKTtcclxuICAgICAgaWYgKHRoaXMud3NGb3JtLnZhbGlkKSB7XHJcbiAgICAgICAgdGhpcy53b3JrU2VhcmNoRGF0YS5pc1dvcmtTZWFyY2hQZXJmb3JtZWRGbGFnID0gdGhpcy53c1F1ZXN0aW9uMS52YWx1ZTtcclxuICAgICAgICB0aGlzLndjU2VydmljZS5zZXRXb3JrU2VhcmNoRGF0YSh0aGlzLndvcmtTZWFyY2hEYXRhKTtcclxuICAgICAgICBpZiAodGhpcy53c1F1ZXN0aW9uMS52YWx1ZSA9PSAxICYmIHRoaXMud2NTZXJ2aWNlLmdldFdvcmtTZWFyY2hSZWNvcmRzKCkubGVuZ3RoIDwgMSkge1xyXG4gICAgICAgICAgdGhpcy5zdWNjZXNzLmVtaXQoKTtcclxuICAgICAgICB9IGVsc2UgaWYgKHBvc2l0aW9ucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLm1zZyA9IGBQbGVhc2Ugc2VsZWN0IGFjdGl2aXR5IHR5cGUgZm9yIGVtcGxveWVyIHJlY29yZChzKTogJHtwb3NpdGlvbnN9YDtcclxuICAgICAgICAgIHRoaXMuZXJyb3IuZW1pdCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuc3VjY2Vzcy5lbWl0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZXJyb3IuZW1pdCgpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMud3NRdWVzdGlvbjEpO1xyXG4gICAgICB0aGlzLndzUXVlc3Rpb24xLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICBpZiAodGhpcy53c0Zvcm0udmFsaWQpIHtcclxuICAgICAgICB0aGlzLndjU2VydmljZS5zZXRXb3JrU2VhcmNoRGF0YSh0aGlzLndzRm9ybS52YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5zdWNjZXNzLmVtaXQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3VibWl0Rm9ybSgpIHtcclxuICAgIHRoaXMud3NGb3JtRGlyZWN0aXZlLm9uU3VibWl0KHVuZGVmaW5lZCk7XHJcbiAgfVxyXG5cclxuICBhZGQoKSB7XHJcbiAgICB0aGlzLnNob3dBZGRXc1JlY29ycyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBlZGl0KHdzUmVjb3JkOiBXb3JrU2VhcmNoUmVjb3JkTW9kZWwpIHtcclxuICAgIHRoaXMuam91cm5hbCA9IHdzUmVjb3JkO1xyXG4gICAgdGhpcy5zaG93QWRkV3NSZWNvcnMgPSB0cnVlO1xyXG4gICAgdGhpcy5pbmRleFRvRWRpdCA9IHRoaXMud2NTZXJ2aWNlLmdldFdvcmtTZWFyY2hSZWNvcmRzKCkuaW5kZXhPZih3c1JlY29yZCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBkZWxldGUod3NSZWNvcmQ6IFdvcmtTZWFyY2hSZWNvcmRNb2RlbCkge1xyXG4gICAgdGhpcy5qb3VybmFsSWQgPSB3c1JlY29yZC5jbGFpbWFudFdvcmtTZWFyY2hKb3VybmFsSWQgPz8gbnVsbDtcclxuXHJcbiAgICBjb25zdCBhbGVydCA9IGF3YWl0IHRoaXMuYWMuY3JlYXRlKHtcclxuICAgICAgaGVhZGVyOiAnQ29uZmlybSEnLFxyXG4gICAgICBtZXNzYWdlOiAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIGVudHJ5PycsXHJcbiAgICAgIGJ1dHRvbnM6IFtcclxuICAgICAgICB7IHRleHQ6ICdDYW5jZWwnLCByb2xlOiAnY2FuY2VsJywgY3NzQ2xhc3M6ICdwcmltYXJ5JywgaGFuZGxlcjogKCkgPT4geyB9IH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdGV4dDogJ09rYXknLFxyXG4gICAgICAgICAgaGFuZGxlcjogKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBpZCA9IHdzUmVjb3JkLmNsYWltYW50V29ya1NlYXJjaEpvdXJuYWxJZCA/PyB0aGlzLmpvdXJuYWxJZDtcclxuXHJcbiAgICAgICAgICAgIGlmIChpZCA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLndjU2VydmljZS5nZXRXb3JrU2VhcmNoUmVjb3JkcygpLmluZGV4T2Yod3NSZWNvcmQpO1xyXG4gICAgICAgICAgICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndjU2VydmljZS5nZXRXb3JrU2VhcmNoUmVjb3JkcygpLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoKCh3c1JlY29yZC53b3JrT3JQZXJmb3JtU2VydmljZVR5cGUgJiYgd3NSZWNvcmQud29ya09yUGVyZm9ybVNlcnZpY2VUeXBlID09PSAnRlVMTCcpIHx8XHJcbiAgICAgICAgICAgICAgICAgICh3c1JlY29yZC5zZWFyY2hSZXN1bHQgJiYgd3NSZWNvcmQuc2VhcmNoUmVzdWx0ID09PSAnU1RXSycpKSAmJiB0aGlzLmlzTUUoKSkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmVtaXRXb3JrZWRGdWxsVGltZU9yU3RhcnRlZFdvcmtpbmdTdGF0dXMoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0SGlyZWRTdGF0dXMoKTtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLndjU2VydmljZS5nZXRXb3JrU2VhcmNoUmVjb3Jkc0NvdW50KCkgPT09IDApIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zaG93V3NRdWVzdGlvbiA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuam91cm5hbElkID0gbnVsbDtcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMud3NzLmRlbGV0ZVdvcmtTZWFyY2hKb3VybmFsKGlkKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMudXRpbC5zdWNjZXNzKCdSZWNvcmQgZGVsZXRlZCBzdWNjZXNzZnVsbHkuJyk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMud2NTZXJ2aWNlLmdldFdvcmtTZWFyY2hSZWNvcmRzKCkuaW5kZXhPZih3c1JlY29yZCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLndjU2VydmljZS5nZXRXb3JrU2VhcmNoUmVjb3JkcygpLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZW1pdEhpcmVkU3RhdHVzKCk7XHJcbiAgICAgICAgICAgICAgICAgIGlmICh0aGlzLndjU2VydmljZS5nZXRXb3JrU2VhcmNoUmVjb3Jkc0NvdW50KCkgPT09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3dXc1F1ZXN0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuam91cm5hbElkID09PSBpZCkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmpvdXJuYWxJZCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoKCh3c1JlY29yZC53b3JrT3JQZXJmb3JtU2VydmljZVR5cGUgJiYgd3NSZWNvcmQud29ya09yUGVyZm9ybVNlcnZpY2VUeXBlID09PSAnRlVMTCcpIHx8XHJcbiAgICAgICAgICAgICAgICAgICh3c1JlY29yZC5zZWFyY2hSZXN1bHQgJiYgd3NSZWNvcmQuc2VhcmNoUmVzdWx0ID09PSAnU1RXSycpKSAmJiB0aGlzLmlzTUUoKSkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmVtaXRXb3JrZWRGdWxsVGltZU9yU3RhcnRlZFdvcmtpbmdTdGF0dXMoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgZXJyb3I6IGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmpvdXJuYWxJZCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIF1cclxuICAgIH0pO1xyXG5cclxuICAgIGF3YWl0IGFsZXJ0LnByZXNlbnQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVjb21wdXRlUmVlbUFkdmlzb3J5KCk6IHZvaWQge1xyXG4gIGlmICh0aGlzLnV0aWwuZ2V0U3RhdGVMb3dlcmNhc2UoKSAhPT0gJ21lJykge1xyXG4gICAgdGhpcy5zaG93UmVlbUFkdmlzb3J5ID0gZmFsc2U7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG4gIGNvbnN0IGxpc3QgPSB0aGlzLndjU2VydmljZS5nZXRXb3JrU2VhcmNoUmVjb3JkcygpID8/IFtdO1xyXG4gIGNvbnN0IGxvY2FsUmVlbSA9IGxpc3QuZmlsdGVyKHIgPT4gciAmJiAoci5hY3Rpdml0eVR5cGUgPT09ICdKQkZSJyB8fCByLmFjdGl2aXR5VHlwZSA9PT0gJ0NTVlcnKSkubGVuZ3RoO1xyXG4gIGNvbnN0IHNlcnZlclJlZW0gPSBOdW1iZXIodGhpcy53Y1NlcnZpY2Uud2Vla2x5Q2VydFNlcnZlckRhdGE/LmhpZFJlZW1Xb3JrU2VhcmNoUmVjb3JkQ291bnQgPz8gMCk7XHJcbiAgdGhpcy5zaG93UmVlbUFkdmlzb3J5ID0gKGxvY2FsUmVlbSArIHNlcnZlclJlZW0pID4gMjtcclxufVxyXG5cclxuY2xvc2VSZWVtRGlhbG9nKCkge1xyXG4gIHRoaXMuc2hvd1JlZW1EaWFsb2cgPSBmYWxzZTtcclxufVxyXG5cclxuICBhZGRXc1JlY29yZChldmVudDogV29ya1NlYXJjaFJlY29yZE1vZGVsKSB7XHJcbiAgLy8gcmVhZCBVSS1vbmx5IGZsYWcgZnJvbSBjaGlsZCAobm8gY29tcGlsZSBlcnJvciBldmVuIGlmIG5vdCBvbiB0aGUgbW9kZWwpXHJcbiAgY29uc3QgcmVlbUZsYWcgPSAhIShldmVudCBhcyBhbnkpPy5yZWVtRXhjZWVkZWRGbGFnO1xyXG5cclxuICAgIGlmICh0aGlzLmluZGV4VG9FZGl0IHx8IHRoaXMuaW5kZXhUb0VkaXQgPT09IDApIHtcclxuICAgICAgdGhpcy53Y1NlcnZpY2UuZ2V0V29ya1NlYXJjaFJlY29yZHMoKVt0aGlzLmluZGV4VG9FZGl0XSA9IGV2ZW50O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy53Y1NlcnZpY2UuZ2V0V29ya1NlYXJjaFJlY29yZHMoKS5wdXNoKGV2ZW50KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLndzcy5zYXZlV29ya1NlYXJjaEpvdXJuYWwoZXZlbnQpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIHRoaXMuc2hvd0FkZFdzUmVjb3JzID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKGV2ZW50LmNsYWltYW50V29ya1NlYXJjaEpvdXJuYWxJZCkge1xyXG4gICAgICAgICAgdGhpcy51dGlsLnN1Y2Nlc3MoJ0FjdGl2aXR5IHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5LicpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnV0aWwuc3VjY2VzcygnQWN0aXZpdHkgc2F2ZWQgc3VjY2Vzc2Z1bGx5LicpO1xyXG4gICAgICAgICAgZXZlbnQuY2xhaW1hbnRXb3JrU2VhcmNoSm91cm5hbElkID0gcmVzO1xyXG4gICAgICAgICAgdGhpcy5qb3VybmFsSWQgPSByZXM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuaW5kZXhUb0VkaXQgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuZW1pdEhpcmVkU3RhdHVzKCk7XHJcbiAgICAgICAgaWYgKCgoZXZlbnQud29ya09yUGVyZm9ybVNlcnZpY2VUeXBlICYmIGV2ZW50LndvcmtPclBlcmZvcm1TZXJ2aWNlVHlwZSA9PT0gJ0ZVTEwnKSB8fFxyXG4gICAgICAgICAgKGV2ZW50LnNlYXJjaFJlc3VsdCAmJiBldmVudC5zZWFyY2hSZXN1bHQgPT09ICdTVFdLJykpICYmIHRoaXMuaXNNRSgpKSB7XHJcbiAgICAgICAgICB0aGlzLmVtaXRXb3JrZWRGdWxsVGltZU9yU3RhcnRlZFdvcmtpbmdTdGF0dXModHJ1ZSk7XHJcbiAgICAgICAgfSBlbHNlIGlmKCgoZXZlbnQud29ya09yUGVyZm9ybVNlcnZpY2VUeXBlICYmIGV2ZW50LndvcmtPclBlcmZvcm1TZXJ2aWNlVHlwZSA9PT0gJ1BBUlQnKSB8fFxyXG4gICAgICAgICAgKGV2ZW50LnNlYXJjaFJlc3VsdCAmJiBldmVudC5zZWFyY2hSZXN1bHQgIT0gJ1NUV0snKSkgJiYgdGhpcy5pc01FKCkpe1xyXG4gICAgICAgICAgICB0aGlzLmVtaXRXb3JrZWRGdWxsVGltZU9yU3RhcnRlZFdvcmtpbmdTdGF0dXMoZmFsc2UpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAvLyBrZWVwIGJhbm5lciBpbiBzeW5jIGFmdGVyIHNlcnZlciBzYXZlXHJcbiAgICAgIHRoaXMucmVjb21wdXRlUmVlbUFkdmlzb3J5KCk7XHJcblxyXG4gICAgICBpZiAodGhpcy5pc01FKCkgJiYgcmVlbUZsYWcpIHtcclxuICAgICAgICB0aGlzLnNob3dSZWVtRGlhbG9nID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogZXJyID0+IHtcclxuICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XHJcbiAgICAgICAgdGhpcy5zaG93QWRkV3NSZWNvcnMgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBlbWl0SGlyZWRTdGF0dXMoKSB7XHJcbiAgICB0aGlzLmhhc0hpcmVkU3RhdHVzLmVtaXQodGhpcy53Y1NlcnZpY2UuZ2V0V29ya1NlYXJjaFJlY29yZHNDb3VudFdpdGhIaXJlZFN0YXR1cygpID4gMClcclxuICB9XHJcblxyXG4gIGVtaXRXb3JrZWRGdWxsVGltZU9yU3RhcnRlZFdvcmtpbmdTdGF0dXMoc3RhdHVzOiBib29sZWFuKXtcclxuICAgIHRoaXMuaGFzV29ya2VkRnVsbFRpbWVPclN0YXJ0ZWRXb3JraW5nU3RhdHVzLmVtaXQoc3RhdHVzKTtcclxuICB9XHJcblxyXG4gIGNsb3NlV3NSZWNvcmQoKSB7XHJcbiAgICB0aGlzLnNob3dBZGRXc1JlY29ycyA9IGZhbHNlO1xyXG4gICAgdGhpcy5pbmRleFRvRWRpdCA9IG51bGw7XHJcbiAgfVxyXG5cclxuICByZXRyaWV2ZUpvYXBDb3VudCgpOiBudW1iZXIge1xyXG4gICAgbGV0IGpvdXJuYWxzID0gdGhpcy53Y1NlcnZpY2UuZ2V0V29ya1NlYXJjaFJlY29yZHMoKTtcclxuICAgIGxldCBqb2FwQ291bnQgPSAwO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBqb3VybmFscy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAoam91cm5hbHNbaV0uYWN0aXZpdHlUeXBlID09PSBcIkpPQVBcIikge1xyXG4gICAgICAgIGpvYXBDb3VudCsrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gam9hcENvdW50O1xyXG4gIH1cclxuXHJcbiAgLy8gLS0tLS0tLS0tLSBGSUxURVJFRCBDT1VOVEVSIEhFTFBFUlMgLS0tLS0tLS0tLVxyXG4gIC8qKlxyXG4gICogRXhjbHVkZSAoTUUgb25seSk6XHJcbiAgKiAgLSBVTk9OIHdoZW4gaGFzQ29udGFjdGVkVW5pb24gPT09ICdOJ1xyXG4gICogIC0gV1JLUCB3aGVuIGVtcGxveW1lbnRUeXBlID09PSAnUEFSVCdcclxuICAqL1xyXG4gIHByaXZhdGUgc2hvdWxkQ291bnQocmVjOiBXb3JrU2VhcmNoUmVjb3JkTW9kZWwpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLmNvbXBTdGF0ZSAhPT0gJ21lJykgcmV0dXJuIHRydWU7IC8vIGtlZXAgb3RoZXIgc3RhdGVzIHVuY2hhbmdlZFxyXG4gICAgaWYgKHJlYy5hY3Rpdml0eVR5cGUgPT09ICdVTk9OJyAmJiByZWMuaXNJbkNvbnRhY3RXaXRoVW5pb24gPT09ICdOJykgcmV0dXJuIGZhbHNlO1xyXG4gICAgaWYgKHJlYy5hY3Rpdml0eVR5cGUgPT09ICdXUktQJyAmJiByZWMud29ya09yUGVyZm9ybVNlcnZpY2VUeXBlID09PSAnUEFSVCcpIHJldHVybiBmYWxzZTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRSZWNvcmRzRm9yQ291bnRlcigpOiBXb3JrU2VhcmNoUmVjb3JkTW9kZWxbXSB7XHJcbiAgICByZXR1cm4gdGhpcy53Y1NlcnZpY2UuZ2V0V29ya1NlYXJjaFJlY29yZHMoKS5maWx0ZXIociA9PiB0aGlzLnNob3VsZENvdW50KHIpKTtcclxuICB9XHJcblxyXG4gIGdldENvdW50Rm9yQ291bnRlcigpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0UmVjb3Jkc0ZvckNvdW50ZXIoKS5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICBnZXRIaXJlZENvdW50Rm9yQ291bnRlcigpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0UmVjb3Jkc0ZvckNvdW50ZXIoKVxyXG4gICAgICAuZmlsdGVyKHIgPT4gci5zZWFyY2hSZXN1bHQgPT09ICdIRFJXJyB8fCByLnNlYXJjaFJlc3VsdCA9PT0gJ0hOU0QnKS5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJldHJpZXZlSm9hcENvdW50RmlsdGVyZWQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmdldFJlY29yZHNGb3JDb3VudGVyKCkuZmlsdGVyKHIgPT4gci5hY3Rpdml0eVR5cGUgPT09ICdKT0FQJykubGVuZ3RoO1xyXG4gIH1cclxuICAvLyAtLS0tLS0tLS0tIC9GSUxURVJFRCBDT1VOVEVSIEhFTFBFUlMgLS0tLS0tLS0tLVxyXG5cclxuICBnZXRXb3JrU2VhcmNoTWVzc2FnZSgpIHtcclxuICAgIGNvbnN0IGNvdW50ID0gdGhpcy5nZXRDb3VudEZvckNvdW50ZXIoKTtcclxuICAgIHRoaXMuaGlyZWRSZWNvcmRDb3VudCA9IHRoaXMuZ2V0SGlyZWRDb3VudEZvckNvdW50ZXIoKTtcclxuICAgIHRoaXMuam9hcEFjdGl2aXRpZXNDb3VudCA9IHRoaXMucmV0cmlldmVKb2FwQ291bnRGaWx0ZXJlZCgpO1xyXG5cclxuICAgIGlmICh0aGlzLnV0aWwuZ2V0U3RhdGVMb3dlcmNhc2UoKSA9PSAnY3QnKSB7XHJcbiAgICAgIGlmIChjb3VudCA8IDEpIHtcclxuICAgICAgICByZXR1cm4gJ01pbmltdW0gb2YgdGhyZWUgYWN0aXZpdGllcyByZXF1aXJlZCxhdCBsZWFzdCBvbmUgbXVzdCBiZSBhbiBlbXBsb3llciBjb250YWN0JztcclxuICAgICAgfSBlbHNlIGlmIChjb3VudCA8IDIgJiYgdGhpcy5oaXJlZFJlY29yZENvdW50IDwgMSAmJiB0aGlzLmpvYXBBY3Rpdml0aWVzQ291bnQgPCAxKSB7XHJcbiAgICAgICAgcmV0dXJuICdUd28gbW9yZSBhY3Rpdml0aWVzIHJlcXVpcmVkLCBhdCBsZWFzdCBvbmUgbXVzdCBiZSBhbiBlbXBsb3llciBjb250YWN0JztcclxuICAgICAgfSBlbHNlIGlmIChjb3VudCA8IDIgJiYgdGhpcy5oaXJlZFJlY29yZENvdW50IDwgMSAmJiB0aGlzLmpvYXBBY3Rpdml0aWVzQ291bnQgPj0gMSkge1xyXG4gICAgICAgIHJldHVybiAnVHdvIG1vcmUgYWN0aXZpdGllcyByZXF1aXJlZCc7XHJcbiAgICAgIH0gZWxzZSBpZiAoY291bnQgPCAzICYmIHRoaXMuaGlyZWRSZWNvcmRDb3VudCA8IDEgJiYgdGhpcy5qb2FwQWN0aXZpdGllc0NvdW50IDwgMSkge1xyXG4gICAgICAgIHJldHVybiAnT25lIG1vcmUgYWN0aXZpdHkgcmVxdWlyZWQsIG11c3QgYmUgYW4gZW1wbG95ZXIgY29udGFjdCc7XHJcbiAgICAgIH0gZWxzZSBpZiAoY291bnQgPCAzICYmIHRoaXMuaGlyZWRSZWNvcmRDb3VudCA8IDEgJiYgdGhpcy5qb2FwQWN0aXZpdGllc0NvdW50ID49IDEpIHtcclxuICAgICAgICByZXR1cm4gJ09uZSBtb3JlIGFjdGl2aXR5IHJlcXVpcmVkJztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gJ01pbmltdW0gcmVxdWlyZW1lbnRzIG1ldCc7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy51dGlsLmdldFN0YXRlTG93ZXJjYXNlKCkgPT0gJ21lJykge1xyXG4gICAgICBpZiAoY291bnQgPCAxKSB7XHJcbiAgICAgICAgcmV0dXJuICdBdCBsZWFzdCBvbmUgYWN0aXZpdHkgcmVxdWlyZWQnO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiAnTWluaW11bSByZXF1aXJlbWVudHMgbWV0JztcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKGNvdW50IDwgMSkge1xyXG4gICAgICAgIHJldHVybiAnWW91IG5lZWQgdG8gYWRkIGF0IGxlYXN0IDMgYWN0aXZpdGllcyBmb3IgdGhlIHdlZWssIGF0IGxlYXN0IG9uZSB3aXRoIGEgZmlsZWQgYXBwbGljYXRpb24gb3IgcmVzdW1lJztcclxuICAgICAgfSBlbHNlIGlmIChjb3VudCA8IDIgJiYgdGhpcy5oaXJlZFJlY29yZENvdW50IDwgMSAmJiB0aGlzLmpvYXBBY3Rpdml0aWVzQ291bnQgPCAxKSB7XHJcbiAgICAgICAgcmV0dXJuICdZb3UgbmVlZCAyIG1vcmUgYWN0aXZpdGllcyBmb3IgdGhlIHdlZWssIGF0IGxlYXN0IG9uZSB3aXRoIGEgZmlsZWQgYXBwbGljYXRpb24gb3IgcmVzdW1lJztcclxuICAgICAgfSBlbHNlIGlmIChjb3VudCA8IDIgJiYgdGhpcy5oaXJlZFJlY29yZENvdW50IDwgMSAmJiB0aGlzLmpvYXBBY3Rpdml0aWVzQ291bnQgPj0gMSkge1xyXG4gICAgICAgIHJldHVybiAnWW91IG5lZWQgMiBtb3JlIGFjdGl2aXRpZXMgZm9yIHRoZSB3ZWVrJztcclxuICAgICAgfSBlbHNlIGlmIChjb3VudCA8IDMgJiYgdGhpcy5oaXJlZFJlY29yZENvdW50IDwgMSAmJiB0aGlzLmpvYXBBY3Rpdml0aWVzQ291bnQgPCAxKSB7XHJcbiAgICAgICAgcmV0dXJuICdZb3UgbmVlZCAxIG1vcmUgYWN0aXZpdHkgZm9yIHRoZSB3ZWVrLCBhdCBsZWFzdCBvbmUgd2l0aCBhIGZpbGVkIGFwcGxpY2F0aW9uIG9yIHJlc3VtZSc7XHJcbiAgICAgIH0gZWxzZSBpZiAoY291bnQgPCAzICYmIHRoaXMuaGlyZWRSZWNvcmRDb3VudCA8IDEgJiYgdGhpcy5qb2FwQWN0aXZpdGllc0NvdW50ID49IDEpIHtcclxuICAgICAgICByZXR1cm4gJ1lvdSBuZWVkIDEgbW9yZSBhY3Rpdml0eSBmb3IgdGhlIHdlZWsnO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuaGlyZWRSZWNvcmRDb3VudCA8IDEgJiYgdGhpcy5qb2FwQWN0aXZpdGllc0NvdW50IDwgMSkge1xyXG4gICAgICAgIHJldHVybiAnWW91IG5lZWQgYXQgbGVhc3Qgb25lIGFjdGl2aXR5IHdpdGggYSBmaWxlZCBhcHBsaWNhdGlvbiBvciByZXN1bWUnO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiAnTWluaW11bSByZXF1aXJlbWVudHMgbWV0JztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cIndzRm9ybVwiICN3c0Zvcm1EaXJlY3RpdmU9XCJuZ0Zvcm1cIiAjd3NGb3JtSWQgKG5nU3VibWl0KT1cIm9wZW5OZXh0UGFnZSgpXCI+XHJcbiAgPGRpdiBjbGFzcz1cImlvbi10ZXh0LWxlZnRcIiAqbmdJZj1cIiFpc01TKClcIj5cclxuICAgIDxoMSBjbGFzcz1cImFwcC1oZWFkaW5nXCI+e3snd2Vla2xpZXMudjIud29ya3NlYXJjaC5oZWFkaW5nJyB8IHRyYW5zbGF0ZTpwYXJhbSB9fTwvaDE+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqbmdJZj1cIndjU2VydmljZS5nZXREaXNwbGF5V29ya1NlYXJjaFNjcmVlbigpXCI+XHJcbiAgICA8aW9uLWdyaWQgY2xhc3M9XCJpb24tcGFkZGluZy1zdGFydCBpb24tcGFkZGluZy1lbmRcIiBzdHlsZT1cIm1pbi1oZWlnaHQ6IDUwMHB4O1wiPlxyXG4gICAgICA8c2VjdGlvbiAqbmdJZj1cImlzTVMoKSAmJiBzaG93V3NRdWVzdGlvblwiPlxyXG4gICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjdcIj5cclxuICAgICAgICAgICAgPGg1Pnt7J3dlZWtsaWVzLndvcmtzZWFyY2gucTEnIHwgdHJhbnNsYXRlfX08L2g1PlxyXG4gICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjVcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XCI+XHJcbiAgICAgICAgICAgIDxpb24tcm93IHN0eWxlPVwibWFyZ2luLXRvcDoxMHB4O1wiPlxyXG4gICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBbb3B0aW9uc109XCJ5ZXNOb09wdGlvbnNcIiBvcHRpb25MYWJlbD1cImxhYmVsXCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwid3NRdWVzdGlvbjFcIiBbZGlzYWJsZWRdPSdkaXNhYmxlZCc+XHJcbiAgICAgICAgICAgICAgPC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBjbGFzcz1cIndlZWtsaWVzLW92ZXJsYXlcIlxyXG4gICAgICAgICAgICAgICAgW292ZXJsYXlUZXh0XT1cIid3b3JrLnNlYXJjaC5qb3VybmFsLmFjdGl2aXR5LmlwMjA5NScgfCB0cmFuc2xhdGUgfCB0cnVzdEh0bWxcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDhweDsgcGFkZGluZy1yaWdodDogNnB4OyBwYWRkaW5nLXRvcDogMnB4OyBmbGV4LWdyb3c6IDE7XCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2ZpZWxkXT0nd3NRdWVzdGlvbjEnIFtmb3JtXT1cIndzRm9ybURpcmVjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICBbZXJyRGVmXT1cIntyZXF1aXJlZDogJ1RoaXMgcXVlc3Rpb24gaXMgcmVxdWlyZWQuJ31cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgPC9zZWN0aW9uPlxyXG5cclxuICAgICAgPHNlY3Rpb24gKm5nSWY9XCJpc01TKCkgPyB3c1F1ZXN0aW9uMS52YWx1ZSA9PSAxIDogdHJ1ZVwiPlxyXG4gICAgICAgIDxpb24tcm93ICpuZ0lmPVwic2hvd0NvdW50ZXJcIj5cclxuICAgICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXRleHQtbGVmdFwiIHNpemU9XCI3XCI+XHJcbiAgICAgICAgICAgIDxhcHAtd29yay1zZWFyY2gtY291bnRlciBbY291bnRdPVwiZ2V0Q291bnRGb3JDb3VudGVyKClcIiBbaGlyZWRSZWNvcmRDb3VudF09XCJnZXRIaXJlZENvdW50Rm9yQ291bnRlcigpXCJcclxuICAgICAgICAgICAgICBbbXNnXT1cImdldFdvcmtTZWFyY2hNZXNzYWdlKClcIj5cclxuICAgICAgICAgICAgPC9hcHAtd29yay1zZWFyY2gtY291bnRlcj5cclxuICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgIDxpb24tY29sIGNsYXNzPVwiYWN0aXZpdHktdGV4dFwiXHJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgJ3BhZGRpbmctdG9wJyA6IChoaXJlZFJlY29yZENvdW50PDEgJiYgam9hcEFjdGl2aXRpZXNDb3VudDwxKSA/ICc2NXB4JyA6ICc0MHB4J31cIiBzaXplPVwiNFwiPlxyXG4gICAgICAgICAgICA8Yj4rQWRkPC9iPiBhY3Rpdml0eVxyXG4gICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJhY3Rpdml0eS1idXR0b25cIlxyXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJ7ICdwYWRkaW5nLXRvcCcgOiAoaGlyZWRSZWNvcmRDb3VudDwxICYmIGpvYXBBY3Rpdml0aWVzQ291bnQ8MSkgPyAnNTVweCcgOiAnMjdweCd9XCIgc2l6ZT1cIjFcIj5cclxuICAgICAgICAgICAgPGlvbi1idXR0b24gc3R5bGU9XCJwYWRkaW5nOiAwcHggNXB4OyBoZWlnaHQ6IDM0cHg7IHdpZHRoOiA0NHB4O1wiIGZpbGw9XCJvdXRsaW5lXCIgc2l6ZT1cInNtYWxsXCIgKGNsaWNrKT1cImFkZCgpXCJcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPSdkaXNhYmxlZCcgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCIgYXJpYS1sYWJlbD1cImFkZCB3b3JrIHNlYXJjaCBhY3Rpdml0eVwiPlxyXG4gICAgICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFsJywgJ3BsdXMnXVwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj48L2ZhLWljb24+XHJcbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cIm1hcmdpbi1ib3R0b206IDEwcHg7XCI+PC9kaXY+XHJcbiAgICAgICAgPHNlY3Rpb24gKm5nSWY9XCJ0aGlzLndjU2VydmljZS5nZXRXb3JrU2VhcmNoUmVjb3JkcygpLmxlbmd0aCA8IDFcIj5cclxuICAgICAgICAgIDxwLXRhYmxlIFt2YWx1ZV09XCJbe31dXCIgc3R5bGVDbGFzcz1cInAtZGF0YXRhYmxlLXN0cmlwZWQgYXBwLWRhdGF0YWJsZVwiPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgPHRyIGNsYXNzPVwicm93LWJvcmRlclwiPlxyXG4gICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwiaGVpZ2h0OiA3NXB4O1wiPjwvdGg+XHJcbiAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDwvcC10YWJsZT5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgPHAtdGFibGUgW3ZhbHVlXT1cInRoaXMud2NTZXJ2aWNlLmdldFdvcmtTZWFyY2hSZWNvcmRzKClcIiBzdHlsZUNsYXNzPVwicC1kYXRhdGFibGUtc3RyaXBlZCBhcHAtZGF0YXRhYmxlXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC1yZWNvcmQ+XHJcbiAgICAgICAgICAgIDx0ciBjbGFzcz1cImlvbi10ZXh0LWp1c3RpZnk7IHJvdy1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICA8dGQ+e3socmVjb3JkLndvcmtTZWFyY2hEYXRlIHx8IGN1cnJlbnREYXRlKXwgZGF0ZTonTS9kL3l5eXknfX08L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZCBzdHlsZT1cIndoaXRlLXNwYWNlOiBwcmU7IHdvcmQtd3JhcDogYnJlYWstd29yZDtcIj57e3JlY29yZCB8IGZvcm1hdFdvcmtzZWFyY2hSZWNvcmR9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkICpuZ0lmPVwicmVjb3JkLmFjdGl2aXR5VHlwZSAhPSAnTURFUydcIj5cclxuICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJvdXRsaW5lXCIgc2l6ZT1cInNtYWxsXCIgKGNsaWNrKT1cImVkaXQocmVjb3JkKVwiIFtkaXNhYmxlZF09J2Rpc2FibGVkJ1xyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImFjdGlvbi1idXR0b25cIj5cclxuICAgICAgICAgICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAnZWRpdCddXCIgY2xhc3M9XCJhY3Rpb24taWNvblwiPjwvZmEtaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJvdXRsaW5lXCIgc2l6ZT1cInNtYWxsXCIgKGNsaWNrKT1cImRlbGV0ZShyZWNvcmQpXCIgW2Rpc2FibGVkXT0nZGlzYWJsZWQnXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhbCcsICd0cmFzaC1hbHQnXVwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj48L2ZhLWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9wLXRhYmxlPlxyXG4gICAgICA8L3NlY3Rpb24+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJtc2chPT1udWxsICYmIGlzTVMoKVwiIFtAcm93RXhwYW5zaW9uVHJpZ2dlcl09XCInYWN0aXZlJ1wiIGNsYXNzPVwicm93LWV4cGFuc2lvblwiPlxyXG4gICAgICAgIDxtYXQtZXJyb3I+PHNtYWxsPnt7bXNnIHwgdHJhbnNsYXRlfX08L3NtYWxsPjwvbWF0LWVycm9yPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvaW9uLWdyaWQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgKm5nSWY9XCIhd2NTZXJ2aWNlLmdldERpc3BsYXlXb3JrU2VhcmNoU2NyZWVuKClcIj5cclxuICAgIDxpb24tZ3JpZCBjbGFzcz1cImlvbi1wYWRkaW5nLXRvcFwiPlxyXG4gICAgICA8aW9uLXJvdyAqbmdJZj1cInRoaXMud2NTZXJ2aWNlLndlZWtseUNlcnRTZXJ2ZXJEYXRhLndhaXZlclJlYXNvblwiPlxyXG4gICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgICAgPHNwYW4+e3sgdGhpcy53Y1NlcnZpY2Uud2Vla2x5Q2VydFNlcnZlckRhdGEud2FpdmVyUmVhc29ufX08L3NwYW4+XHJcbiAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICA8L2lvbi1yb3c+XHJcbiAgICAgIDxpb24tcm93ICpuZ0lmPVwiIXRoaXMud2NTZXJ2aWNlLmdldFdhaXRpbmdXZWVrU2VydmVkKClcIj5cclxuICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgIDxzcGFuPnt7ICduby53b3JrLnNlYXJjaC5yZXF1aXJlZCcgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgIDwvaW9uLXJvdz5cclxuICAgIDwvaW9uLWdyaWQ+XHJcbiAgPC9kaXY+XHJcblxyXG48L2Zvcm0+XHJcbjxwLWRpYWxvZyBbdmlzaWJsZV09XCJzaG93UmVlbURpYWxvZ1wiIFttb2RhbF09XCJ0cnVlXCIgYXBwZW5kVG89XCJib2R5XCIgcG9zaXRpb249XCJjZW50ZXJcIiBbYnJlYWtwb2ludHNdPVwie1xyXG4gICAgJzEyMDBweCc6ICc2NjBweCcsXHJcbiAgICAnOTkycHgnOiAgJzY2MHB4JyxcclxuICAgICc3NjhweCc6ICAnNjYwcHgnLFxyXG4gICAgJzU3NnB4JzogICcxMDB2dydcclxuICB9XCIgW3N0eWxlXT1cInsgd2lkdGg6ICc0NXZ3JyB9XCIgW2Jhc2VaSW5kZXhdPVwiNTAwMFwiIFtkcmFnZ2FibGVdPVwiZmFsc2VcIiBbcmVzaXphYmxlXT1cImZhbHNlXCIgY2xvc2VPbkVzY2FwZT1cImZhbHNlXCI+XHJcbiAgPGg0IGNsYXNzPVwiaGVhZGluZ1wiPkNhcmVlckNlbnRlciBhY3Rpdml0eSBhZHZpc29yeTwvaDQ+XHJcbiAgPGlvbi1sYWJlbCBzdHlsZT1cImRpc3BsYXk6IGJsb2NrOyB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7XCI+XHJcbiAgICB7eyByZWVtQWR2aXNvcnlUZXh0IH19XHJcbiAgPC9pb24tbGFiZWw+XHJcbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImZvb3RlclwiPlxyXG4gICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIHNpemU9XCJzbWFsbFwiIHR5cGU9XCJidXR0b25cIiBmaWxsPVwib3V0bGluZVwiIChjbGljayk9XCJjbG9zZVJlZW1EaWFsb2coKVwiPlxyXG4gICAgICBPa1xyXG4gICAgPC9pb24tYnV0dG9uPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvcC1kaWFsb2c+XHJcbjwhLS0gPGFwcC13b3JrLXNlYXJjaC1lbXBsb3llci12MiAqbmdJZj1cInNob3dBZGRXc1JlY29ycyAmJiBpc0NUKClcIiAoc3VjY2Vzcyk9XCJhZGRXc1JlY29yZCgkZXZlbnQpXCJcclxuICAob25DbG9zZSk9XCJjbG9zZVdzUmVjb3JkKClcIiBbcmVjb3JkSW5kZXhUb0VkaXRdPVwiaW5kZXhUb0VkaXRcIj48L2FwcC13b3JrLXNlYXJjaC1lbXBsb3llci12Mj4gLS0+XHJcbjxhcHAtd29yay1zZWFyY2gtZW1wbG95ZXItY3QgKm5nSWY9XCJzaG93QWRkV3NSZWNvcnMgJiYgaXNDVCgpXCIgKHN1Y2Nlc3MpPVwiYWRkV3NSZWNvcmQoJGV2ZW50KVwiXHJcbiAgKG9uQ2xvc2UpPVwiY2xvc2VXc1JlY29yZCgpXCIgW3JlY29yZEluZGV4VG9FZGl0XT1cImluZGV4VG9FZGl0XCI+PC9hcHAtd29yay1zZWFyY2gtZW1wbG95ZXItY3Q+XHJcblxyXG48YXBwLXdvcmstc2VhcmNoLWVtcGxveWVyLW1lICpuZ0lmPVwic2hvd0FkZFdzUmVjb3JzICYmIGlzTUUoKVwiIChzdWNjZXNzKT1cImFkZFdzUmVjb3JkKCRldmVudClcIlxyXG4gIChvbkNsb3NlKT1cImNsb3NlV3NSZWNvcmQoKVwiIFtyZWNvcmRJbmRleFRvRWRpdF09XCJpbmRleFRvRWRpdFwiXHJcbiAgW2V4aXN0aW5nUmVjb3Jkc109XCJ3Y1NlcnZpY2UuZ2V0V29ya1NlYXJjaFJlY29yZHMoKVwiPjwvYXBwLXdvcmstc2VhcmNoLWVtcGxveWVyLW1lPlxyXG5cclxuPGFwcC13b3JrLXNlYXJjaC1lbXBsb3llci1tcyAqbmdJZj1cInNob3dBZGRXc1JlY29ycyAmJiBpc01TKClcIiAoc3VjY2Vzcyk9XCJhZGRXc1JlY29yZCgkZXZlbnQpXCJcclxuICAob25DbG9zZSk9XCJjbG9zZVdzUmVjb3JkKClcIiBbcmVjb3JkSW5kZXhUb0VkaXRdPVwiaW5kZXhUb0VkaXRcIj48L2FwcC13b3JrLXNlYXJjaC1lbXBsb3llci1tcz4iXX0=
640
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yay1zZWFyY2gtcXVlc3Rpb24uY29tcG9uZW50LXYyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9jb21wb25lbnRzL3dlZWtseS13b3JrLXNlYXJjaC1xdWVzdGlvbi12Mi93b3JrLXNlYXJjaC1xdWVzdGlvbi5jb21wb25lbnQtdjIudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvd2Vla2x5LXdvcmstc2VhcmNoLXF1ZXN0aW9uLXYyL3dvcmstc2VhcmNoLXF1ZXN0aW9uLmNvbXBvbmVudC12Mi5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBZ0QsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHMUYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUloRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ1JyRSwrQkFBMkMsYUFBQTtJQUNqQixZQUF1RDs7SUFBQSxpQkFBSyxFQUFBOzs7SUFBNUQsZUFBdUQ7SUFBdkQsMEZBQXVEOzs7O0lBSTdFLCtCQUEwQyxjQUFBLGtCQUFBLFNBQUE7SUFHaEMsWUFBd0M7O0lBQUEsaUJBQUssRUFBQTtJQUVuRCxtQ0FBb0Usa0JBQUE7SUFFaEUscUNBRWlCLDJCQUFBOzs7SUFJakIsaUNBQ2tFO0lBQ3BFLGlCQUFVLEVBQUEsRUFBQSxFQUFBOzs7O0lBWk4sZUFBd0M7SUFBeEMsb0VBQXdD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QUFNO1lBSVAsY0FBYztrQkFEYixNQUFNO1lBSVAsdUNBQXVDO2tCQUR0QyxNQUFNO1lBSUEsUUFBUTtrQkFEZCxTQUFTO21CQUFDLFVBQVU7WUFJZCxlQUFlO2tCQURyQixTQUFTO21CQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTs7a0ZBMUJwQyw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIEV2ZW50RW1pdHRlciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwLCBOZ0Zvcm0sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFsZXJ0Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcclxuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XHJcbmltcG9ydCB7IEJhc2VQYWdlIH0gZnJvbSAnLi4vLi4vcGFnZXMvQmFzZVBhZ2UnO1xyXG5pbXBvcnQgeyBXb3JrU2VhcmNoTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvd2Vla2x5LWNlcnQvd29yay1zZWFyY2gtdjItbW9kZWwnO1xyXG5pbXBvcnQgeyBXb3JrU2VhcmNoUmVjb3JkTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvd2Vla2x5LWNlcnQvd29yay1zZWFyY2gtcmVjb3JkLXYyLW1vZGVsJztcclxuaW1wb3J0IHsgV2Vla2x5Q2VydFNlcnZpY2VWMiB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3dlZWtseS1jZXJ0L3dlZWtseS1jZXJ0LXYyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBXb3JrU2VhcmNoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3dlZWtseS1jZXJ0L3dvcmstc2VhcmNoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyByb3dFeHBhbnNpb25UcmlnZ2VyIH0gZnJvbSAnLi4vLi4vYW5uaW1hdGlvbnMvYXBwLWFuaW1hdGlvbnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtd29yay1zZWFyY2gtcXVlc3Rpb24tdjInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi93b3JrLXNlYXJjaC1xdWVzdGlvbi5jb21wb25lbnQtdjIuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vd29yay1zZWFyY2gtcXVlc3Rpb24uY29tcG9uZW50LXYyLnNjc3MnXSxcclxuICBhbmltYXRpb25zOiBbcm93RXhwYW5zaW9uVHJpZ2dlcl1cclxufSlcclxuZXhwb3J0IGNsYXNzIFdvcmtTZWFyY2hRdWVzdGlvbkNvbXBvbmVudFYyIGV4dGVuZHMgQmFzZVBhZ2UgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyByZWFkT25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93Q291bnRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBzdWNjZXNzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgZXJyb3I6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBoYXNIaXJlZFN0YXR1czogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBoYXNXb3JrZWRGdWxsVGltZU9yU3RhcnRlZFdvcmtpbmdTdGF0dXM6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnd3NGb3JtSWQnKVxyXG4gIHB1YmxpYyB3c0Zvcm1JZDtcclxuXHJcbiAgQFZpZXdDaGlsZCgnd3NGb3JtRGlyZWN0aXZlJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgcHVibGljIHdzRm9ybURpcmVjdGl2ZTogTmdGb3JtO1xyXG4gIHB1YmxpYyBzaG93QWRkV3NSZWNvcnMgPSBmYWxzZTtcclxuICBwdWJsaWMgd29ya1NlYXJjaERhdGE6IFdvcmtTZWFyY2hNb2RlbDtcclxuICBwdWJsaWMgd3NGb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG4gIHB1YmxpYyB5ZXNOb09wdGlvbnMgPSBbeyBsYWJlbDogJ1llcycsIHZhbHVlOiAnMScgfSwgeyBsYWJlbDogJ05vJywgdmFsdWU6ICcwJyB9XTtcclxuICBwdWJsaWMgaW5kZXhUb0VkaXQ7XHJcbiAgcHVibGljIHBhcmFtO1xyXG4gIHB1YmxpYyBzaG93V3NRdWVzdGlvbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBqb3VybmFsOiBXb3JrU2VhcmNoUmVjb3JkTW9kZWw7XHJcbiAgcHVibGljIGpvdXJuYWxJZDogYW55O1xyXG4gIGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTtcclxuXHJcbiAgaGlyZWRSZWNvcmRDb3VudDogYW55O1xyXG4gIGpvYXBBY3Rpdml0aWVzQ291bnQ6IGFueTtcclxuICBjb3VudGVyID0gMDtcclxuXHJcbiAgY29tcFN0YXRlOiBzdHJpbmc7XHJcbiAgbXNnOiBzdHJpbmc7XHJcblxyXG4gIHNob3dSZWVtRGlhbG9nID0gZmFsc2U7XHJcbiAgc2hvd1JlZW1BZHZpc29yeSA9IGZhbHNlO1xyXG5yZWFkb25seSByZWVtQWR2aXNvcnlUZXh0ID1cclxuICAnWW91IHNlbGVjdGVkIHRoYXQgeW91IGhhdmUgd29ya2VkIHdpdGggdGhlIENhcmVlckNlbnRlciBmb3IgbXVsdGlwbGUgd2Vla3MuIFdlIGVuY291cmFnZSB5b3UgdG8gY29udGludWUgdXNpbmcgdGhlIENhcmVlckNlbnRlciwgYnV0IHdlIGFsc28gZW5jb3VyYWdlIHlvdSB0byBleHBhbmQgeW91ciB3b3JrIHNlYXJjaCB0byBvdGhlciBhY3Rpdml0aWVzIHN1Y2ggYXMgYXBwbHlpbmcgZm9yIHdvcmsgdXNpbmcgdGhlIE1haW5lIEpvYkxpbmsuIENvbnRpbnVpbmcgdG8gdXNlIG9ubHkgQ2FyZWVyQ2VudGVyIHNlcnZpY2VzIG1heSByZXN1bHQgaW4gYW4gaW4tZGVwdGggcmV2aWV3IG9mIHlvdXIgd29yayBzZWFyY2ggYWN0aXZpdGllcyB0byBmdXJ0aGVyIGFzc2lzdCB5b3UuJztcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHdzczogV29ya1NlYXJjaFNlcnZpY2UsIHB1YmxpYyB3Y1NlcnZpY2U6IFdlZWtseUNlcnRTZXJ2aWNlVjIsIHB1YmxpYyBmYjogVW50eXBlZEZvcm1CdWlsZGVyLCBwcml2YXRlIHV0aWw6IFV0aWxTZXJ2aWNlLCBwdWJsaWMgYWM6IEFsZXJ0Q29udHJvbGxlcikge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5pbml0aWxpemVXU1F1ZXN0aW9ubmFpcmVGb3JtKCk7XHJcbiAgICB0aGlzLnBhcmFtID0ge1xyXG4gICAgICBzdW5kYXlfZGF0ZTogdGhpcy53Y1NlcnZpY2UuZ2V0U3VuZGF5RGF0ZUFzU3RyaW5nKCksXHJcbiAgICAgIHNhdHVyZGF5X2RhdGU6IHRoaXMud2NTZXJ2aWNlLmdldFNhdHVyZGF5RGF0ZUFzU3RyaW5nKClcclxuICAgIH07XHJcbiAgICB0aGlzLmNvbXBTdGF0ZSA9IHRoaXMudXRpbC5nZXRTdGF0ZUxvd2VyY2FzZSgpO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlsaXplV1NRdWVzdGlvbm5haXJlRm9ybSgpIHtcclxuICAgIGlmICh0aGlzLndjU2VydmljZS5nZXRXb3JrU2VhcmNoRGF0YSgpICE9IG51bGwpIHtcclxuICAgICAgdGhpcy53b3JrU2VhcmNoRGF0YSA9IHRoaXMud2NTZXJ2aWNlLmdldFdvcmtTZWFyY2hEYXRhKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLndvcmtTZWFyY2hEYXRhID0gbmV3IFdvcmtTZWFyY2hNb2RlbCgpO1xyXG4gICAgICB0aGlzLndjU2VydmljZS5zZXRXb3JrU2VhcmNoRGF0YSh0aGlzLndvcmtTZWFyY2hEYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLndzRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAnd3NRdWVzdGlvbjEnOiBbdGhpcy53b3JrU2VhcmNoRGF0YS5pc1dvcmtTZWFyY2hQZXJmb3JtZWRGbGFnID8gdGhpcy53b3JrU2VhcmNoRGF0YS5pc1dvcmtTZWFyY2hQZXJmb3JtZWRGbGFnIDogbnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAodGhpcy53Y1NlcnZpY2UuZ2V0V29ya1NlYXJjaFJlY29yZHMoKS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuc2hvd1dzUXVlc3Rpb24gPSBmYWxzZTtcclxuICAgICAgdGhpcy53c1F1ZXN0aW9uMS5zZXRWYWx1ZSgnMScpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuc2hvd1dzUXVlc3Rpb24gPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IHdzUXVlc3Rpb24xKCkge1xyXG4gICAgcmV0dXJuIHRoaXMud3NGb3JtLmNvbnRyb2xzWyd3c1F1ZXN0aW9uMSddO1xyXG4gIH1cclxuXHJcbiAgbnVsbENoZWNrZm9yQWN0aXZpdHlUeXBlKCkge1xyXG4gICAgcmV0dXJuICh0aGlzLndjU2VydmljZS5nZXRXb3JrU2VhcmNoUmVjb3JkcygpKS5tYXAoKHJlY29yZCwgaW5kZXgpID0+XHJcbiAgICAgIChyZWNvcmQuYWN0aXZpdHlUeXBlID09PSBudWxsID8gaW5kZXggKyAxIDogLTEpKS5maWx0ZXIoaW5kZXggPT4gaW5kZXggIT09IC0xKTtcclxuICB9XHJcblxyXG4gIG9wZW5OZXh0UGFnZSgpIHtcclxuICAgIGlmICh0aGlzLmlzTVMoKSkge1xyXG4gICAgICBjb25zdCBwb3NpdGlvbnMgPSB0aGlzLm51bGxDaGVja2ZvckFjdGl2aXR5VHlwZSgpLmpvaW4oXCIsIFwiKTtcclxuICAgICAgaWYgKHRoaXMud3NGb3JtLnZhbGlkKSB7XHJcbiAgICAgICAgdGhpcy53b3JrU2VhcmNoRGF0YS5pc1dvcmtTZWFyY2hQZXJmb3JtZWRGbGFnID0gdGhpcy53c1F1ZXN0aW9uMS52YWx1ZTtcclxuICAgICAgICB0aGlzLndjU2VydmljZS5zZXRXb3JrU2VhcmNoRGF0YSh0aGlzLndvcmtTZWFyY2hEYXRhKTtcclxuICAgICAgICBpZiAodGhpcy53c1F1ZXN0aW9uMS52YWx1ZSA9PSAxICYmIHRoaXMud2NTZXJ2aWNlLmdldFdvcmtTZWFyY2hSZWNvcmRzKCkubGVuZ3RoIDwgMSkge1xyXG4gICAgICAgICAgdGhpcy5zdWNjZXNzLmVtaXQoKTtcclxuICAgICAgICB9IGVsc2UgaWYgKHBvc2l0aW9ucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLm1zZyA9IGBQbGVhc2Ugc2VsZWN0IGFjdGl2aXR5IHR5cGUgZm9yIGVtcGxveWVyIHJlY29yZChzKTogJHtwb3NpdGlvbnN9YDtcclxuICAgICAgICAgIHRoaXMuZXJyb3IuZW1pdCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuc3VjY2Vzcy5lbWl0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZXJyb3IuZW1pdCgpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMud3NRdWVzdGlvbjEpO1xyXG4gICAgICB0aGlzLndzUXVlc3Rpb24xLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICBpZiAodGhpcy53c0Zvcm0udmFsaWQpIHtcclxuICAgICAgICB0aGlzLndjU2VydmljZS5zZXRXb3JrU2VhcmNoRGF0YSh0aGlzLndzRm9ybS52YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5zdWNjZXNzLmVtaXQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3VibWl0Rm9ybSgpIHtcclxuICAgIHRoaXMud3NGb3JtRGlyZWN0aXZlLm9uU3VibWl0KHVuZGVmaW5lZCk7XHJcbiAgfVxyXG5cclxuICBhZGQoKSB7XHJcbiAgICB0aGlzLnNob3dBZGRXc1JlY29ycyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBlZGl0KHdzUmVjb3JkOiBXb3JrU2VhcmNoUmVjb3JkTW9kZWwpIHtcclxuICAgIHRoaXMuam91cm5hbCA9IHdzUmVjb3JkO1xyXG4gICAgdGhpcy5zaG93QWRkV3NSZWNvcnMgPSB0cnVlO1xyXG4gICAgdGhpcy5pbmRleFRvRWRpdCA9IHRoaXMud2NTZXJ2aWNlLmdldFdvcmtTZWFyY2hSZWNvcmRzKCkuaW5kZXhPZih3c1JlY29yZCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBkZWxldGUod3NSZWNvcmQ6IFdvcmtTZWFyY2hSZWNvcmRNb2RlbCkge1xyXG4gICAgdGhpcy5qb3VybmFsSWQgPSB3c1JlY29yZC5jbGFpbWFudFdvcmtTZWFyY2hKb3VybmFsSWQgPz8gbnVsbDtcclxuXHJcbiAgICBjb25zdCBhbGVydCA9IGF3YWl0IHRoaXMuYWMuY3JlYXRlKHtcclxuICAgICAgaGVhZGVyOiAnQ29uZmlybSEnLFxyXG4gICAgICBtZXNzYWdlOiAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIGVudHJ5PycsXHJcbiAgICAgIGJ1dHRvbnM6IFtcclxuICAgICAgICB7IHRleHQ6ICdDYW5jZWwnLCByb2xlOiAnY2FuY2VsJywgY3NzQ2xhc3M6ICdwcmltYXJ5JywgaGFuZGxlcjogKCkgPT4geyB9IH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdGV4dDogJ09rYXknLFxyXG4gICAgICAgICAgaGFuZGxlcjogKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBpZCA9IHdzUmVjb3JkLmNsYWltYW50V29ya1NlYXJjaEpvdXJuYWxJZCA/PyB0aGlzLmpvdXJuYWxJZDtcclxuXHJcbiAgICAgICAgICAgIGlmIChpZCA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLndjU2VydmljZS5nZXRXb3JrU2VhcmNoUmVjb3JkcygpLmluZGV4T2Yod3NSZWNvcmQpO1xyXG4gICAgICAgICAgICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndjU2VydmljZS5nZXRXb3JrU2VhcmNoUmVjb3JkcygpLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoKCh3c1JlY29yZC53b3JrT3JQZXJmb3JtU2VydmljZVR5cGUgJiYgd3NSZWNvcmQud29ya09yUGVyZm9ybVNlcnZpY2VUeXBlID09PSAnRlVMTCcpIHx8XHJcbiAgICAgICAgICAgICAgICAgICh3c1JlY29yZC5zZWFyY2hSZXN1bHQgJiYgd3NSZWNvcmQuc2VhcmNoUmVzdWx0ID09PSAnU1RXSycpKSAmJiB0aGlzLmlzTUUoKSkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmVtaXRXb3JrZWRGdWxsVGltZU9yU3RhcnRlZFdvcmtpbmdTdGF0dXMoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0SGlyZWRTdGF0dXMoKTtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLndjU2VydmljZS5nZXRXb3JrU2VhcmNoUmVjb3Jkc0NvdW50KCkgPT09IDApIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zaG93V3NRdWVzdGlvbiA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuam91cm5hbElkID0gbnVsbDtcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMud3NzLmRlbGV0ZVdvcmtTZWFyY2hKb3VybmFsKGlkKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMudXRpbC5zdWNjZXNzKCdSZWNvcmQgZGVsZXRlZCBzdWNjZXNzZnVsbHkuJyk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMud2NTZXJ2aWNlLmdldFdvcmtTZWFyY2hSZWNvcmRzKCkuaW5kZXhPZih3c1JlY29yZCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLndjU2VydmljZS5nZXRXb3JrU2VhcmNoUmVjb3JkcygpLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZW1pdEhpcmVkU3RhdHVzKCk7XHJcbiAgICAgICAgICAgICAgICAgIGlmICh0aGlzLndjU2VydmljZS5nZXRXb3JrU2VhcmNoUmVjb3Jkc0NvdW50KCkgPT09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3dXc1F1ZXN0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuam91cm5hbElkID09PSBpZCkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmpvdXJuYWxJZCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoKCh3c1JlY29yZC53b3JrT3JQZXJmb3JtU2VydmljZVR5cGUgJiYgd3NSZWNvcmQud29ya09yUGVyZm9ybVNlcnZpY2VUeXBlID09PSAnRlVMTCcpIHx8XHJcbiAgICAgICAgICAgICAgICAgICh3c1JlY29yZC5zZWFyY2hSZXN1bHQgJiYgd3NSZWNvcmQuc2VhcmNoUmVzdWx0ID09PSAnU1RXSycpKSAmJiB0aGlzLmlzTUUoKSkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmVtaXRXb3JrZWRGdWxsVGltZU9yU3RhcnRlZFdvcmtpbmdTdGF0dXMoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgZXJyb3I6IGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmpvdXJuYWxJZCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIF1cclxuICAgIH0pO1xyXG5cclxuICAgIGF3YWl0IGFsZXJ0LnByZXNlbnQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVjb21wdXRlUmVlbUFkdmlzb3J5KCk6IHZvaWQge1xyXG4gIGlmICh0aGlzLnV0aWwuZ2V0U3RhdGVMb3dlcmNhc2UoKSAhPT0gJ21lJykge1xyXG4gICAgdGhpcy5zaG93UmVlbUFkdmlzb3J5ID0gZmFsc2U7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG4gIGNvbnN0IGxpc3QgPSB0aGlzLndjU2VydmljZS5nZXRXb3JrU2VhcmNoUmVjb3JkcygpID8/IFtdO1xyXG4gIGNvbnN0IGxvY2FsUmVlbSA9IGxpc3QuZmlsdGVyKHIgPT4gciAmJiAoci5hY3Rpdml0eVR5cGUgPT09ICdKQkZSJyB8fCByLmFjdGl2aXR5VHlwZSA9PT0gJ0NTVlcnKSkubGVuZ3RoO1xyXG4gIGNvbnN0IHNlcnZlclJlZW0gPSBOdW1iZXIodGhpcy53Y1NlcnZpY2Uud2Vla2x5Q2VydFNlcnZlckRhdGE/LmhpZFJlZW1Xb3JrU2VhcmNoUmVjb3JkQ291bnQgPz8gMCk7XHJcbiAgdGhpcy5zaG93UmVlbUFkdmlzb3J5ID0gKGxvY2FsUmVlbSArIHNlcnZlclJlZW0pID4gMjtcclxufVxyXG5cclxuY2xvc2VSZWVtRGlhbG9nKCkge1xyXG4gIHRoaXMuc2hvd1JlZW1EaWFsb2cgPSBmYWxzZTtcclxufVxyXG5cclxuICBhZGRXc1JlY29yZChldmVudDogV29ya1NlYXJjaFJlY29yZE1vZGVsKSB7XHJcbiAgLy8gcmVhZCBVSS1vbmx5IGZsYWcgZnJvbSBjaGlsZCAobm8gY29tcGlsZSBlcnJvciBldmVuIGlmIG5vdCBvbiB0aGUgbW9kZWwpXHJcbiAgY29uc3QgcmVlbUZsYWcgPSAhIShldmVudCBhcyBhbnkpPy5yZWVtRXhjZWVkZWRGbGFnO1xyXG5cclxuICAgIGlmICh0aGlzLmluZGV4VG9FZGl0IHx8IHRoaXMuaW5kZXhUb0VkaXQgPT09IDApIHtcclxuICAgICAgdGhpcy53Y1NlcnZpY2UuZ2V0V29ya1NlYXJjaFJlY29yZHMoKVt0aGlzLmluZGV4VG9FZGl0XSA9IGV2ZW50O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy53Y1NlcnZpY2UuZ2V0V29ya1NlYXJjaFJlY29yZHMoKS5wdXNoKGV2ZW50KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLndzcy5zYXZlV29ya1NlYXJjaEpvdXJuYWwoZXZlbnQpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIHRoaXMuc2hvd0FkZFdzUmVjb3JzID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKGV2ZW50LmNsYWltYW50V29ya1NlYXJjaEpvdXJuYWxJZCkge1xyXG4gICAgICAgICAgdGhpcy51dGlsLnN1Y2Nlc3MoJ0FjdGl2aXR5IHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5LicpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnV0aWwuc3VjY2VzcygnQWN0aXZpdHkgc2F2ZWQgc3VjY2Vzc2Z1bGx5LicpO1xyXG4gICAgICAgICAgZXZlbnQuY2xhaW1hbnRXb3JrU2VhcmNoSm91cm5hbElkID0gcmVzO1xyXG4gICAgICAgICAgdGhpcy5qb3VybmFsSWQgPSByZXM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuaW5kZXhUb0VkaXQgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuZW1pdEhpcmVkU3RhdHVzKCk7XHJcbiAgICAgICAgaWYgKCgoZXZlbnQud29ya09yUGVyZm9ybVNlcnZpY2VUeXBlICYmIGV2ZW50LndvcmtPclBlcmZvcm1TZXJ2aWNlVHlwZSA9PT0gJ0ZVTEwnKSB8fFxyXG4gICAgICAgICAgKGV2ZW50LnNlYXJjaFJlc3VsdCAmJiBldmVudC5zZWFyY2hSZXN1bHQgPT09ICdTVFdLJykpICYmIHRoaXMuaXNNRSgpKSB7XHJcbiAgICAgICAgICB0aGlzLmVtaXRXb3JrZWRGdWxsVGltZU9yU3RhcnRlZFdvcmtpbmdTdGF0dXModHJ1ZSk7XHJcbiAgICAgICAgfSBlbHNlIGlmKCgoZXZlbnQud29ya09yUGVyZm9ybVNlcnZpY2VUeXBlICYmIGV2ZW50LndvcmtPclBlcmZvcm1TZXJ2aWNlVHlwZSA9PT0gJ1BBUlQnKSB8fFxyXG4gICAgICAgICAgKGV2ZW50LnNlYXJjaFJlc3VsdCAmJiBldmVudC5zZWFyY2hSZXN1bHQgIT0gJ1NUV0snKSkgJiYgdGhpcy5pc01FKCkpe1xyXG4gICAgICAgICAgICB0aGlzLmVtaXRXb3JrZWRGdWxsVGltZU9yU3RhcnRlZFdvcmtpbmdTdGF0dXMoZmFsc2UpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAvLyBrZWVwIGJhbm5lciBpbiBzeW5jIGFmdGVyIHNlcnZlciBzYXZlXHJcbiAgICAgIHRoaXMucmVjb21wdXRlUmVlbUFkdmlzb3J5KCk7XHJcblxyXG4gICAgICBpZiAodGhpcy5pc01FKCkgJiYgcmVlbUZsYWcpIHtcclxuICAgICAgICB0aGlzLnNob3dSZWVtRGlhbG9nID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogZXJyID0+IHtcclxuICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XHJcbiAgICAgICAgdGhpcy5zaG93QWRkV3NSZWNvcnMgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBlbWl0SGlyZWRTdGF0dXMoKSB7XHJcbiAgICB0aGlzLmhhc0hpcmVkU3RhdHVzLmVtaXQodGhpcy53Y1NlcnZpY2UuZ2V0V29ya1NlYXJjaFJlY29yZHNDb3VudFdpdGhIaXJlZFN0YXR1cygpID4gMClcclxuICB9XHJcblxyXG4gIGVtaXRXb3JrZWRGdWxsVGltZU9yU3RhcnRlZFdvcmtpbmdTdGF0dXMoc3RhdHVzOiBib29sZWFuKXtcclxuICAgIHRoaXMuaGFzV29ya2VkRnVsbFRpbWVPclN0YXJ0ZWRXb3JraW5nU3RhdHVzLmVtaXQoc3RhdHVzKTtcclxuICB9XHJcblxyXG4gIGNsb3NlV3NSZWNvcmQoKSB7XHJcbiAgICB0aGlzLnNob3dBZGRXc1JlY29ycyA9IGZhbHNlO1xyXG4gICAgdGhpcy5pbmRleFRvRWRpdCA9IG51bGw7XHJcbiAgfVxyXG5cclxuICByZXRyaWV2ZUpvYXBDb3VudCgpOiBudW1iZXIge1xyXG4gICAgbGV0IGpvdXJuYWxzID0gdGhpcy53Y1NlcnZpY2UuZ2V0V29ya1NlYXJjaFJlY29yZHMoKTtcclxuICAgIGxldCBqb2FwQ291bnQgPSAwO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBqb3VybmFscy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAoam91cm5hbHNbaV0uYWN0aXZpdHlUeXBlID09PSBcIkpPQVBcIikge1xyXG4gICAgICAgIGpvYXBDb3VudCsrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gam9hcENvdW50O1xyXG4gIH1cclxuXHJcbiAgLy8gLS0tLS0tLS0tLSBGSUxURVJFRCBDT1VOVEVSIEhFTFBFUlMgLS0tLS0tLS0tLVxyXG4gIC8qKlxyXG4gICogRXhjbHVkZSAoTUUgb25seSk6XHJcbiAgKiAgLSBVTk9OIHdoZW4gaGFzQ29udGFjdGVkVW5pb24gPT09ICdOJ1xyXG4gICogIC0gV1JLUCB3aGVuIGVtcGxveW1lbnRUeXBlID09PSAnUEFSVCdcclxuICAqL1xyXG4gIHByaXZhdGUgc2hvdWxkQ291bnQocmVjOiBXb3JrU2VhcmNoUmVjb3JkTW9kZWwpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLmNvbXBTdGF0ZSAhPT0gJ21lJykgcmV0dXJuIHRydWU7IC8vIGtlZXAgb3RoZXIgc3RhdGVzIHVuY2hhbmdlZFxyXG4gICAgaWYgKHJlYy5hY3Rpdml0eVR5cGUgPT09ICdVTk9OJyAmJiByZWMuaXNJbkNvbnRhY3RXaXRoVW5pb24gPT09ICdOJykgcmV0dXJuIGZhbHNlO1xyXG4gICAgaWYgKHJlYy5hY3Rpdml0eVR5cGUgPT09ICdXUktQJyAmJiByZWMud29ya09yUGVyZm9ybVNlcnZpY2VUeXBlID09PSAnUEFSVCcpIHJldHVybiBmYWxzZTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRSZWNvcmRzRm9yQ291bnRlcigpOiBXb3JrU2VhcmNoUmVjb3JkTW9kZWxbXSB7XHJcbiAgICByZXR1cm4gdGhpcy53Y1NlcnZpY2UuZ2V0V29ya1NlYXJjaFJlY29yZHMoKS5maWx0ZXIociA9PiB0aGlzLnNob3VsZENvdW50KHIpKTtcclxuICB9XHJcblxyXG4gIGdldENvdW50Rm9yQ291bnRlcigpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0UmVjb3Jkc0ZvckNvdW50ZXIoKS5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICBnZXRIaXJlZENvdW50Rm9yQ291bnRlcigpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0UmVjb3Jkc0ZvckNvdW50ZXIoKVxyXG4gICAgICAuZmlsdGVyKHIgPT4gci5zZWFyY2hSZXN1bHQgPT09ICdIRFJXJyB8fCByLnNlYXJjaFJlc3VsdCA9PT0gJ0hOU0QnKS5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJldHJpZXZlSm9hcENvdW50RmlsdGVyZWQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmdldFJlY29yZHNGb3JDb3VudGVyKCkuZmlsdGVyKHIgPT4gci5hY3Rpdml0eVR5cGUgPT09ICdKT0FQJykubGVuZ3RoO1xyXG4gIH1cclxuICAvLyAtLS0tLS0tLS0tIC9GSUxURVJFRCBDT1VOVEVSIEhFTFBFUlMgLS0tLS0tLS0tLVxyXG5cclxuICBnZXRXb3JrU2VhcmNoTWVzc2FnZSgpIHtcclxuICAgIGNvbnN0IGNvdW50ID0gdGhpcy5nZXRDb3VudEZvckNvdW50ZXIoKTtcclxuICAgIHRoaXMuaGlyZWRSZWNvcmRDb3VudCA9IHRoaXMuZ2V0SGlyZWRDb3VudEZvckNvdW50ZXIoKTtcclxuICAgIHRoaXMuam9hcEFjdGl2aXRpZXNDb3VudCA9IHRoaXMucmV0cmlldmVKb2FwQ291bnRGaWx0ZXJlZCgpO1xyXG5cclxuICAgIGlmICh0aGlzLnV0aWwuZ2V0U3RhdGVMb3dlcmNhc2UoKSA9PSAnY3QnKSB7XHJcbiAgICAgIGlmIChjb3VudCA8IDEpIHtcclxuICAgICAgICByZXR1cm4gJ01pbmltdW0gb2YgdGhyZWUgYWN0aXZpdGllcyByZXF1aXJlZCxhdCBsZWFzdCBvbmUgbXVzdCBiZSBhbiBlbXBsb3llciBjb250YWN0JztcclxuICAgICAgfSBlbHNlIGlmIChjb3VudCA8IDIgJiYgdGhpcy5oaXJlZFJlY29yZENvdW50IDwgMSAmJiB0aGlzLmpvYXBBY3Rpdml0aWVzQ291bnQgPCAxKSB7XHJcbiAgICAgICAgcmV0dXJuICdUd28gbW9yZSBhY3Rpdml0aWVzIHJlcXVpcmVkLCBhdCBsZWFzdCBvbmUgbXVzdCBiZSBhbiBlbXBsb3llciBjb250YWN0JztcclxuICAgICAgfSBlbHNlIGlmIChjb3VudCA8IDIgJiYgdGhpcy5oaXJlZFJlY29yZENvdW50IDwgMSAmJiB0aGlzLmpvYXBBY3Rpdml0aWVzQ291bnQgPj0gMSkge1xyXG4gICAgICAgIHJldHVybiAnVHdvIG1vcmUgYWN0aXZpdGllcyByZXF1aXJlZCc7XHJcbiAgICAgIH0gZWxzZSBpZiAoY291bnQgPCAzICYmIHRoaXMuaGlyZWRSZWNvcmRDb3VudCA8IDEgJiYgdGhpcy5qb2FwQWN0aXZpdGllc0NvdW50IDwgMSkge1xyXG4gICAgICAgIHJldHVybiAnT25lIG1vcmUgYWN0aXZpdHkgcmVxdWlyZWQsIG11c3QgYmUgYW4gZW1wbG95ZXIgY29udGFjdCc7XHJcbiAgICAgIH0gZWxzZSBpZiAoY291bnQgPCAzICYmIHRoaXMuaGlyZWRSZWNvcmRDb3VudCA8IDEgJiYgdGhpcy5qb2FwQWN0aXZpdGllc0NvdW50ID49IDEpIHtcclxuICAgICAgICByZXR1cm4gJ09uZSBtb3JlIGFjdGl2aXR5IHJlcXVpcmVkJztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gJ01pbmltdW0gcmVxdWlyZW1lbnRzIG1ldCc7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy51dGlsLmdldFN0YXRlTG93ZXJjYXNlKCkgPT0gJ21lJykge1xyXG4gICAgICBpZiAoY291bnQgPCAxKSB7XHJcbiAgICAgICAgcmV0dXJuICdBdCBsZWFzdCBvbmUgYWN0aXZpdHkgcmVxdWlyZWQnO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiAnTWluaW11bSByZXF1aXJlbWVudHMgbWV0JztcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKGNvdW50IDwgMSkge1xyXG4gICAgICAgIHJldHVybiAnWW91IG5lZWQgdG8gYWRkIGF0IGxlYXN0IDMgYWN0aXZpdGllcyBmb3IgdGhlIHdlZWsuIDxiPk9uZSBtdXN0IGJlIEFwcGxpZWQgZm9yIHdvcmsuPC9iPic7XHJcbiAgICAgIH0gZWxzZSBpZiAoY291bnQgPCAyICYmIHRoaXMuaGlyZWRSZWNvcmRDb3VudCA8IDEgJiYgdGhpcy5qb2FwQWN0aXZpdGllc0NvdW50IDwgMSkge1xyXG4gICAgICAgIHJldHVybiAnWW91IG5lZWQgMiBtb3JlIGFjdGl2aXRpZXMgZm9yIHRoZSB3ZWVrLCBhdCBsZWFzdCBvbmUgd2l0aCBhIGZpbGVkIGFwcGxpY2F0aW9uIG9yIHJlc3VtZSc7XHJcbiAgICAgIH0gZWxzZSBpZiAoY291bnQgPCAyICYmIHRoaXMuaGlyZWRSZWNvcmRDb3VudCA8IDEgJiYgdGhpcy5qb2FwQWN0aXZpdGllc0NvdW50ID49IDEpIHtcclxuICAgICAgICByZXR1cm4gJ1lvdSBuZWVkIDIgbW9yZSBhY3Rpdml0aWVzIGZvciB0aGUgd2Vlayc7XHJcbiAgICAgIH0gZWxzZSBpZiAoY291bnQgPCAzICYmIHRoaXMuaGlyZWRSZWNvcmRDb3VudCA8IDEgJiYgdGhpcy5qb2FwQWN0aXZpdGllc0NvdW50IDwgMSkge1xyXG4gICAgICAgIHJldHVybiAnWW91IG5lZWQgMSBtb3JlIGFjdGl2aXR5IGZvciB0aGUgd2VlaywgYXQgbGVhc3Qgb25lIHdpdGggYSBmaWxlZCBhcHBsaWNhdGlvbiBvciByZXN1bWUnO1xyXG4gICAgICB9IGVsc2UgaWYgKGNvdW50IDwgMyAmJiB0aGlzLmhpcmVkUmVjb3JkQ291bnQgPCAxICYmIHRoaXMuam9hcEFjdGl2aXRpZXNDb3VudCA+PSAxKSB7XHJcbiAgICAgICAgcmV0dXJuICdZb3UgbmVlZCAxIG1vcmUgYWN0aXZpdHkgZm9yIHRoZSB3ZWVrJztcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmhpcmVkUmVjb3JkQ291bnQgPCAxICYmIHRoaXMuam9hcEFjdGl2aXRpZXNDb3VudCA8IDEpIHtcclxuICAgICAgICByZXR1cm4gJ1lvdSBuZWVkIGF0IGxlYXN0IG9uZSBhY3Rpdml0eSB3aXRoIGEgZmlsZWQgYXBwbGljYXRpb24gb3IgcmVzdW1lJztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gJ01pbmltdW0gcmVxdWlyZW1lbnRzIG1ldCc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJ3c0Zvcm1cIiAjd3NGb3JtRGlyZWN0aXZlPVwibmdGb3JtXCIgI3dzRm9ybUlkIChuZ1N1Ym1pdCk9XCJvcGVuTmV4dFBhZ2UoKVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJpb24tdGV4dC1sZWZ0XCIgKm5nSWY9XCIhaXNNUygpXCI+XHJcbiAgICA8aDEgY2xhc3M9XCJhcHAtaGVhZGluZ1wiPnt7J3dlZWtsaWVzLnYyLndvcmtzZWFyY2guaGVhZGluZycgfCB0cmFuc2xhdGU6cGFyYW0gfX08L2gxPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgKm5nSWY9XCJ3Y1NlcnZpY2UuZ2V0RGlzcGxheVdvcmtTZWFyY2hTY3JlZW4oKVwiPlxyXG4gICAgPGlvbi1ncmlkIGNsYXNzPVwiaW9uLXBhZGRpbmctc3RhcnQgaW9uLXBhZGRpbmctZW5kXCIgc3R5bGU9XCJtaW4taGVpZ2h0OiA1MDBweDtcIj5cclxuICAgICAgPHNlY3Rpb24gKm5nSWY9XCJpc01TKCkgJiYgc2hvd1dzUXVlc3Rpb25cIj5cclxuICAgICAgICA8aW9uLXJvdz5cclxuICAgICAgICAgIDxpb24tY29sIHNpemU9XCI3XCI+XHJcbiAgICAgICAgICAgIDxoNT57eyd3ZWVrbGllcy53b3Jrc2VhcmNoLnExJyB8IHRyYW5zbGF0ZX19PC9oNT5cclxuICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgIDxpb24tY29sIHNpemU9XCI1XCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1wiPlxyXG4gICAgICAgICAgICA8aW9uLXJvdyBzdHlsZT1cIm1hcmdpbi10b3A6MTBweDtcIj5cclxuICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gW29wdGlvbnNdPVwieWVzTm9PcHRpb25zXCIgb3B0aW9uTGFiZWw9XCJsYWJlbFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cIndzUXVlc3Rpb24xXCIgW2Rpc2FibGVkXT0nZGlzYWJsZWQnPlxyXG4gICAgICAgICAgICAgIDwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gY2xhc3M9XCJ3ZWVrbGllcy1vdmVybGF5XCJcclxuICAgICAgICAgICAgICAgIFtvdmVybGF5VGV4dF09XCInd29yay5zZWFyY2guam91cm5hbC5hY3Rpdml0eS5pcDIwOTUnIHwgdHJhbnNsYXRlIHwgdHJ1c3RIdG1sXCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA4cHg7IHBhZGRpbmctcmlnaHQ6IDZweDsgcGFkZGluZy10b3A6IDJweDsgZmxleC1ncm93OiAxO1wiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmaWVsZF09J3dzUXVlc3Rpb24xJyBbZm9ybV09XCJ3c0Zvcm1EaXJlY3RpdmVcIlxyXG4gICAgICAgICAgICAgICAgW2VyckRlZl09XCJ7cmVxdWlyZWQ6ICdUaGlzIHF1ZXN0aW9uIGlzIHJlcXVpcmVkLid9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgIDwvc2VjdGlvbj5cclxuXHJcbiAgICAgIDxzZWN0aW9uICpuZ0lmPVwiaXNNUygpID8gd3NRdWVzdGlvbjEudmFsdWUgPT0gMSA6IHRydWVcIj5cclxuICAgICAgICA8aW9uLXJvdyAqbmdJZj1cInNob3dDb3VudGVyXCI+XHJcbiAgICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi10ZXh0LWxlZnRcIiBzaXplPVwiN1wiPlxyXG4gICAgICAgICAgICA8YXBwLXdvcmstc2VhcmNoLWNvdW50ZXIgW2NvdW50XT1cImdldENvdW50Rm9yQ291bnRlcigpXCIgW2hpcmVkUmVjb3JkQ291bnRdPVwiZ2V0SGlyZWRDb3VudEZvckNvdW50ZXIoKVwiXHJcbiAgICAgICAgICAgICAgW21zZ109XCJnZXRXb3JrU2VhcmNoTWVzc2FnZSgpXCI+XHJcbiAgICAgICAgICAgIDwvYXBwLXdvcmstc2VhcmNoLWNvdW50ZXI+XHJcbiAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImFjdGl2aXR5LXRleHRcIlxyXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJ7ICdwYWRkaW5nLXRvcCcgOiAoaGlyZWRSZWNvcmRDb3VudDwxICYmIGpvYXBBY3Rpdml0aWVzQ291bnQ8MSkgPyAnNjVweCcgOiAnNDBweCd9XCIgc2l6ZT1cIjRcIj5cclxuICAgICAgICAgICAgPGI+K0FkZDwvYj4gYWN0aXZpdHlcclxuICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgIDxpb24tY29sIGNsYXNzPVwiYWN0aXZpdHktYnV0dG9uXCJcclxuICAgICAgICAgICAgW25nU3R5bGVdPVwieyAncGFkZGluZy10b3AnIDogKGhpcmVkUmVjb3JkQ291bnQ8MSAmJiBqb2FwQWN0aXZpdGllc0NvdW50PDEpID8gJzU1cHgnIDogJzI3cHgnfVwiIHNpemU9XCIxXCI+XHJcbiAgICAgICAgICAgIDxpb24tYnV0dG9uIHN0eWxlPVwicGFkZGluZzogMHB4IDVweDsgaGVpZ2h0OiAzNHB4OyB3aWR0aDogNDRweDtcIiBmaWxsPVwib3V0bGluZVwiIHNpemU9XCJzbWFsbFwiIChjbGljayk9XCJhZGQoKVwiXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT0nZGlzYWJsZWQnIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiIGFyaWEtbGFiZWw9XCJhZGQgd29yayBzZWFyY2ggYWN0aXZpdHlcIj5cclxuICAgICAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhbCcsICdwbHVzJ11cIiBjbGFzcz1cImFjdGlvbi1pY29uXCI+PC9mYS1pY29uPlxyXG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAxMHB4O1wiPjwvZGl2PlxyXG4gICAgICAgIDxzZWN0aW9uICpuZ0lmPVwidGhpcy53Y1NlcnZpY2UuZ2V0V29ya1NlYXJjaFJlY29yZHMoKS5sZW5ndGggPCAxXCI+XHJcbiAgICAgICAgICA8cC10YWJsZSBbdmFsdWVdPVwiW3t9XVwiIHN0eWxlQ2xhc3M9XCJwLWRhdGF0YWJsZS1zdHJpcGVkIGFwcC1kYXRhdGFibGVcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxyXG4gICAgICAgICAgICAgIDx0ciBjbGFzcz1cInJvdy1ib3JkZXJcIj5cclxuICAgICAgICAgICAgICAgIDx0aCBzdHlsZT1cImhlaWdodDogNzVweDtcIj48L3RoPlxyXG4gICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8L3AtdGFibGU+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgIDxwLXRhYmxlIFt2YWx1ZV09XCJ0aGlzLndjU2VydmljZS5nZXRXb3JrU2VhcmNoUmVjb3JkcygpXCIgc3R5bGVDbGFzcz1cInAtZGF0YXRhYmxlLXN0cmlwZWQgYXBwLWRhdGF0YWJsZVwiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImJvZHlcIiBsZXQtcmVjb3JkPlxyXG4gICAgICAgICAgICA8dHIgY2xhc3M9XCJpb24tdGV4dC1qdXN0aWZ5OyByb3ctYm9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgPHRkPnt7KHJlY29yZC53b3JrU2VhcmNoRGF0ZSB8fCBjdXJyZW50RGF0ZSl8IGRhdGU6J00vZC95eXl5J319PC90ZD5cclxuICAgICAgICAgICAgICA8dGQgc3R5bGU9XCJ3aGl0ZS1zcGFjZTogcHJlOyB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XCI+e3tyZWNvcmQgfCBmb3JtYXRXb3Jrc2VhcmNoUmVjb3JkfX08L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZCAqbmdJZj1cInJlY29yZC5hY3Rpdml0eVR5cGUgIT0gJ01ERVMnXCI+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwib3V0bGluZVwiIHNpemU9XCJzbWFsbFwiIChjbGljayk9XCJlZGl0KHJlY29yZClcIiBbZGlzYWJsZWRdPSdkaXNhYmxlZCdcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFsJywgJ2VkaXQnXVwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj48L2ZhLWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwib3V0bGluZVwiIHNpemU9XCJzbWFsbFwiIChjbGljayk9XCJkZWxldGUocmVjb3JkKVwiIFtkaXNhYmxlZF09J2Rpc2FibGVkJ1xyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImFjdGlvbi1idXR0b25cIj5cclxuICAgICAgICAgICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAndHJhc2gtYWx0J11cIiBjbGFzcz1cImFjdGlvbi1pY29uXCI+PC9mYS1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvcC10YWJsZT5cclxuICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwibXNnIT09bnVsbCAmJiBpc01TKClcIiBbQHJvd0V4cGFuc2lvblRyaWdnZXJdPVwiJ2FjdGl2ZSdcIiBjbGFzcz1cInJvdy1leHBhbnNpb25cIj5cclxuICAgICAgICA8bWF0LWVycm9yPjxzbWFsbD57e21zZyB8IHRyYW5zbGF0ZX19PC9zbWFsbD48L21hdC1lcnJvcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2lvbi1ncmlkPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2ICpuZ0lmPVwiIXdjU2VydmljZS5nZXREaXNwbGF5V29ya1NlYXJjaFNjcmVlbigpXCI+XHJcbiAgICA8aW9uLWdyaWQgY2xhc3M9XCJpb24tcGFkZGluZy10b3BcIj5cclxuICAgICAgPGlvbi1yb3cgKm5nSWY9XCJ0aGlzLndjU2VydmljZS53ZWVrbHlDZXJ0U2VydmVyRGF0YS53YWl2ZXJSZWFzb25cIj5cclxuICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgIDxzcGFuPnt7IHRoaXMud2NTZXJ2aWNlLndlZWtseUNlcnRTZXJ2ZXJEYXRhLndhaXZlclJlYXNvbn19PC9zcGFuPlxyXG4gICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgPC9pb24tcm93PlxyXG4gICAgICA8aW9uLXJvdyAqbmdJZj1cIiF0aGlzLndjU2VydmljZS5nZXRXYWl0aW5nV2Vla1NlcnZlZCgpXCI+XHJcbiAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICA8c3Bhbj57eyAnbm8ud29yay5zZWFyY2gucmVxdWlyZWQnIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICA8L2lvbi1yb3c+XHJcbiAgICA8L2lvbi1ncmlkPlxyXG4gIDwvZGl2PlxyXG5cclxuPC9mb3JtPlxyXG48cC1kaWFsb2cgW3Zpc2libGVdPVwic2hvd1JlZW1EaWFsb2dcIiBbbW9kYWxdPVwidHJ1ZVwiIGFwcGVuZFRvPVwiYm9keVwiIHBvc2l0aW9uPVwiY2VudGVyXCIgW2JyZWFrcG9pbnRzXT1cIntcclxuICAgICcxMjAwcHgnOiAnNjYwcHgnLFxyXG4gICAgJzk5MnB4JzogICc2NjBweCcsXHJcbiAgICAnNzY4cHgnOiAgJzY2MHB4JyxcclxuICAgICc1NzZweCc6ICAnMTAwdncnXHJcbiAgfVwiIFtzdHlsZV09XCJ7IHdpZHRoOiAnNDV2dycgfVwiIFtiYXNlWkluZGV4XT1cIjUwMDBcIiBbZHJhZ2dhYmxlXT1cImZhbHNlXCIgW3Jlc2l6YWJsZV09XCJmYWxzZVwiIGNsb3NlT25Fc2NhcGU9XCJmYWxzZVwiPlxyXG4gIDxoNCBjbGFzcz1cImhlYWRpbmdcIj5DYXJlZXJDZW50ZXIgYWN0aXZpdHkgYWR2aXNvcnk8L2g0PlxyXG4gIDxpb24tbGFiZWwgc3R5bGU9XCJkaXNwbGF5OiBibG9jazsgd2hpdGUtc3BhY2U6IHByZS1saW5lO1wiPlxyXG4gICAge3sgcmVlbUFkdmlzb3J5VGV4dCB9fVxyXG4gIDwvaW9uLWxhYmVsPlxyXG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJmb290ZXJcIj5cclxuICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiBzaXplPVwic21hbGxcIiB0eXBlPVwiYnV0dG9uXCIgZmlsbD1cIm91dGxpbmVcIiAoY2xpY2spPVwiY2xvc2VSZWVtRGlhbG9nKClcIj5cclxuICAgICAgT2tcclxuICAgIDwvaW9uLWJ1dHRvbj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L3AtZGlhbG9nPlxyXG48IS0tIDxhcHAtd29yay1zZWFyY2gtZW1wbG95ZXItdjIgKm5nSWY9XCJzaG93QWRkV3NSZWNvcnMgJiYgaXNDVCgpXCIgKHN1Y2Nlc3MpPVwiYWRkV3NSZWNvcmQoJGV2ZW50KVwiXHJcbiAgKG9uQ2xvc2UpPVwiY2xvc2VXc1JlY29yZCgpXCIgW3JlY29yZEluZGV4VG9FZGl0XT1cImluZGV4VG9FZGl0XCI+PC9hcHAtd29yay1zZWFyY2gtZW1wbG95ZXItdjI+IC0tPlxyXG48YXBwLXdvcmstc2VhcmNoLWVtcGxveWVyLWN0ICpuZ0lmPVwic2hvd0FkZFdzUmVjb3JzICYmIGlzQ1QoKVwiIChzdWNjZXNzKT1cImFkZFdzUmVjb3JkKCRldmVudClcIlxyXG4gIChvbkNsb3NlKT1cImNsb3NlV3NSZWNvcmQoKVwiIFtyZWNvcmRJbmRleFRvRWRpdF09XCJpbmRleFRvRWRpdFwiPjwvYXBwLXdvcmstc2VhcmNoLWVtcGxveWVyLWN0PlxyXG5cclxuPGFwcC13b3JrLXNlYXJjaC1lbXBsb3llci1tZSAqbmdJZj1cInNob3dBZGRXc1JlY29ycyAmJiBpc01FKClcIiAoc3VjY2Vzcyk9XCJhZGRXc1JlY29yZCgkZXZlbnQpXCJcclxuICAob25DbG9zZSk9XCJjbG9zZVdzUmVjb3JkKClcIiBbcmVjb3JkSW5kZXhUb0VkaXRdPVwiaW5kZXhUb0VkaXRcIlxyXG4gIFtleGlzdGluZ1JlY29yZHNdPVwid2NTZXJ2aWNlLmdldFdvcmtTZWFyY2hSZWNvcmRzKClcIj48L2FwcC13b3JrLXNlYXJjaC1lbXBsb3llci1tZT5cclxuXHJcbjxhcHAtd29yay1zZWFyY2gtZW1wbG95ZXItbXMgKm5nSWY9XCJzaG93QWRkV3NSZWNvcnMgJiYgaXNNUygpXCIgKHN1Y2Nlc3MpPVwiYWRkV3NSZWNvcmQoJGV2ZW50KVwiXHJcbiAgKG9uQ2xvc2UpPVwiY2xvc2VXc1JlY29yZCgpXCIgW3JlY29yZEluZGV4VG9FZGl0XT1cImluZGV4VG9FZGl0XCI+PC9hcHAtd29yay1zZWFyY2gtZW1wbG95ZXItbXM+Il19