tango-app-ui-manage-tickets 3.7.0-beta.54 → 3.7.0-beta.55

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.
@@ -39,6 +39,7 @@ export class AuditReportPopupComponent {
39
39
  category = [];
40
40
  centralOpsData;
41
41
  tangoData;
42
+ tangoAccuracy = '';
42
43
  constructor(modalService, activeModal, service, router, timerService, cd, apiservice, route, toast) {
43
44
  this.modalService = modalService;
44
45
  this.activeModal = activeModal;
@@ -84,9 +85,10 @@ export class AuditReportPopupComponent {
84
85
  this.centralOpsData = findstoreticket.mappingInfo.filter((data) => data.type != "tangoreview")[0];
85
86
  console.log("🚀 ~ TicketclosepopupComponent ~ ngOnInit ~ this.centralOpsData:", this.centralOpsData);
86
87
  }
88
+ this.tangoAccuracy = Math.round((this.Retagcustomercount / this.totalfiles?.totalfiles) * 100);
87
89
  this.tangoData = {
88
90
  revicedFootfall: this.Retagcustomercount,
89
- revicedPerc: Math.round((this.Retagcustomercount / this.totalfiles?.totalfiles) * 100) + "%"
91
+ revicedPerc: this.tangoAccuracy + "%"
90
92
  };
91
93
  }
92
94
  }
@@ -373,15 +375,15 @@ export class AuditReportPopupComponent {
373
375
  this.activeModal.close();
374
376
  }
375
377
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuditReportPopupComponent, deps: [{ token: i1.NgbModal }, { token: i1.NgbActiveModal }, { token: i2.TicketService }, { token: i3.Router }, { token: i4.TimerService }, { token: i0.ChangeDetectorRef }, { token: i5.AuditService }, { token: i3.ActivatedRoute }, { token: i6.ToastService }], target: i0.ɵɵFactoryTarget.Component });
376
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AuditReportPopupComponent, selector: "lib-audit-report-popup", inputs: { selectedType: "selectedType" }, viewQueries: [{ propertyName: "confirmerror", first: true, predicate: ["confirmerror"], descendants: true }], ngImport: i0, template: "<div class=\"modal fade show d-block\" tabindex=\"-1\" role=\"dialog\">\r\n <div class=\"modal-dialog modal-dialog-centered\" role=\"document\">\r\n <div class=\"modal-content merge-ticket-modal\">\r\n\r\n <!-- Header -->\r\n <div class=\"modal-header border-0 pb-0\">\r\n <h5 class=\"modal-title\">Close ticket</h5>\r\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"closepopup()\"></button>\r\n </div>\r\n\r\n <!-- Body -->\r\n <div class=\"modal-body\">\r\n\r\n <!-- Info banner -->\r\n <div class=\"alert merge-info d-flex\">\r\n <div class=\"me-3 mt-1\">\r\n <i class=\"bi bi-info-circle\"></i>\r\n </div>\r\n <div>\r\n \r\n <p class=\"mb-0\">\r\n The ticket will be <b>\u201Cclosed\u201D</b> and updated in the store as a final revision.\r\n Since accuracy is below 85%, it will be marked as an <b>\u201COpen-Accuracy Issue\u201D</b> in Tango. \r\n Please add the cause for the low accuracy.\r\n </p>\r\n </div>\r\n </div>\r\n\r\n <!-- Cards -->\r\n <div class=\"row g-3 mt-2\">\r\n <!-- Central Ops -->\r\n <div class=\"col-12 col-md-6\" *ngIf=\"centralOpsData?.revicedFootfall\">\r\n <div class=\"card h-100\">\r\n <div class=\"card-body\" >\r\n <div class=\"card-title mb-3 fw-semibold\">Central Ops</div>\r\n <div class=\"d-flex justify-content-between align-items-end mb-1\">\r\n <div>\r\n <div class=\"value\">{{centralOpsData?.revicedFootfall}}</div>\r\n <div class=\"label\">Footfall</div>\r\n </div>\r\n <div class=\"text-end\">\r\n <div class=\"value text-primary\">\r\n {{centralOpsData?.revicedPerc}}\r\n <span class=\"arrow\" *ngIf=\"centralOpsData?.revicedFootfall<tangoData?.revicedFootfall\" >\r\n \u2193\r\n </span>\r\n <span class=\"arrow\" *ngIf=\"centralOpsData?.revicedFootfall>tangoData?.revicedFootfall\">\r\n \u2191\r\n </span>\r\n </div>\r\n <div class=\"label\">Accuracy</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Tango -->\r\n <div class=\"col-12 col-md-6\" *ngIf=\"tangoData?.revicedFootfall\">\r\n <div class=\"card h-100\">\r\n <div class=\"card-body\" >\r\n <div class=\"card-title mb-3 fw-semibold\">Tango</div>\r\n <div class=\"d-flex justify-content-between align-items-end mb-1\">\r\n <div>\r\n <div class=\"value\">{{tangoData?.revicedFootfall}}</div>\r\n <div class=\"label\">Footfall</div>\r\n </div>\r\n <div class=\"text-end\">\r\n <div class=\"value text-primary\">\r\n {{tangoData?.revicedPerc}}\r\n <span class=\"arrow\" *ngIf=\"centralOpsData?.revicedFootfall>tangoData?.revicedFootfall\" >\r\n \u2193\r\n </span>\r\n <span class=\"arrow\" *ngIf=\"centralOpsData?.revicedFootfall<tangoData?.revicedFootfall\">\r\n \u2191\r\n </span>\r\n </div>\r\n <div class=\"label\">Accuracy</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Footer -->\r\n <div class=\"modal-footer border-0 pt-0\">\r\n <button type=\"button\" class=\"btn btn-outline-secondary\" (click)=\"closepopup()\">\r\n cancel\r\n </button>\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"nextfile()\">\r\n submit\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".btn.btn-light-primary:hover:not(.btn-active){background-color:#fff!important}.audit-test{font-family:Inter;font-style:normal;font-weight:600!important;font-size:22px!important;line-height:27px;color:#000}.text-gray-500{font-family:Inter;font-style:normal;font-weight:500!important;font-size:14px!important;line-height:17px;color:#5e6278}.ms-25{margin-left:16rem}.text-gray-400{font-family:Inter;font-style:normal;font-weight:500;font-size:14px!important;line-height:17px;letter-spacing:-.02em;color:#676e76}::ng-deep .custom-container .mat-mdc-dialog-container .mdc-dialog__surface{border-radius:10px!important}.svg-icon.svg-icon-2x svg{width:20px!important;height:20px!important}.btn-outline{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);box-shadow:0 1px 2px #1018280d;color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:24px}.merge-ticket-modal{border-radius:16px}.merge-info{border:1px dashed #a9c4ff;background:#f5f9ff;border-radius:10px;font-size:13px;color:#008edf}.merge-info i{font-size:18px}.card{border-radius:12px}.card .value{font-size:24px;font-weight:600}.card .label{font-size:12px;color:#6c757d}.arrow{font-size:16px;margin-left:4px}\n"], dependencies: [{ kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
378
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AuditReportPopupComponent, selector: "lib-audit-report-popup", inputs: { selectedType: "selectedType" }, viewQueries: [{ propertyName: "confirmerror", first: true, predicate: ["confirmerror"], descendants: true }], ngImport: i0, template: "<div class=\"modal fade show d-block\" tabindex=\"-1\" role=\"dialog\">\r\n <div class=\"modal-dialog modal-dialog-centered\" role=\"document\">\r\n <div class=\"modal-content merge-ticket-modal\">\r\n\r\n <!-- Header -->\r\n <div class=\"modal-header border-0 pb-0\">\r\n <h5 class=\"modal-title\">Close ticket</h5>\r\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"closepopup()\"></button>\r\n </div>\r\n\r\n <!-- Body -->\r\n <div class=\"modal-body\">\r\n <div *ngIf=\"tangoAccuracy>85&&centralOpsData?.revicedFootfall\">\r\n <p class=\"mb-0\">The ticket will be <b>\u201Cclosed\u201D</b> and updated in the store as a final revision.</p>\r\n </div>\r\n <div *ngIf=\"tangoAccuracy>85&&!centralOpsData?.revicedFootfall\">\r\n <p class=\"mb-0\">You\u2019re about to close this ticket. Do you want to proceed?</p>\r\n </div>\r\n <!-- Info banner -->\r\n <div class=\"alert merge-info d-flex\" *ngIf=\"tangoAccuracy<85\">\r\n <div class=\"me-3 mt-1\">\r\n <i class=\"bi bi-info-circle\"></i>\r\n </div>\r\n <div>\r\n\r\n <p class=\"mb-0\">\r\n The ticket will be <b>\u201Cclosed\u201D</b> and updated in the store as a final revision.\r\n Since accuracy is below 85%, it will be marked as an <b>\u201COpen-Accuracy Issue\u201D</b> in Tango.\r\n Please add the cause for the low accuracy.\r\n </p>\r\n </div>\r\n\r\n </div>\r\n\r\n <!-- Cards -->\r\n <div class=\"row g-3 mt-2\">\r\n <!-- Central Ops -->\r\n <div class=\"col-12 col-md-6\" *ngIf=\"centralOpsData?.revicedFootfall\">\r\n <div class=\"card h-100\">\r\n <div class=\"card-body\">\r\n <div class=\"card-title mb-3 fw-semibold\">Central Ops</div>\r\n <div class=\"d-flex justify-content-between align-items-end mb-1\">\r\n <div>\r\n <div class=\"value\">{{centralOpsData?.revicedFootfall}}</div>\r\n <div class=\"label\">Footfall</div>\r\n </div>\r\n <div class=\"text-end\">\r\n <div class=\"value text-primary\">\r\n {{centralOpsData?.revicedPerc}}\r\n <span class=\"arrow\"\r\n *ngIf=\"centralOpsData?.revicedFootfall<tangoData?.revicedFootfall\">\r\n \u2193\r\n </span>\r\n <span class=\"arrow\"\r\n *ngIf=\"centralOpsData?.revicedFootfall>tangoData?.revicedFootfall\">\r\n \u2191\r\n </span>\r\n </div>\r\n <div class=\"label\">Accuracy</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Tango -->\r\n <div class=\"col-12 col-md-6\" *ngIf=\"tangoData?.revicedFootfall\">\r\n <div class=\"card h-100\">\r\n <div class=\"card-body\">\r\n <div class=\"card-title mb-3 fw-semibold\">Tango</div>\r\n <div class=\"d-flex justify-content-between align-items-end mb-1\">\r\n <div>\r\n <div class=\"value\">{{tangoData?.revicedFootfall}}</div>\r\n <div class=\"label\">Footfall</div>\r\n </div>\r\n <div class=\"text-end\">\r\n <div class=\"value text-primary\">\r\n {{tangoData?.revicedPerc}}\r\n <span class=\"arrow\"\r\n *ngIf=\"centralOpsData?.revicedFootfall>tangoData?.revicedFootfall\">\r\n \u2193\r\n </span>\r\n <span class=\"arrow\"\r\n *ngIf=\"centralOpsData?.revicedFootfall<tangoData?.revicedFootfall\">\r\n \u2191\r\n </span>\r\n </div>\r\n <div class=\"label\">Accuracy</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Footer -->\r\n <div class=\"modal-footer border-0 pt-0\">\r\n <button type=\"button\" class=\"btn btn-outline-secondary\" (click)=\"closepopup()\">\r\n cancel\r\n </button>\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"nextfile()\">\r\n submit\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".btn.btn-light-primary:hover:not(.btn-active){background-color:#fff!important}.audit-test{font-family:Inter;font-style:normal;font-weight:600!important;font-size:22px!important;line-height:27px;color:#000}.text-gray-500{font-family:Inter;font-style:normal;font-weight:500!important;font-size:14px!important;line-height:17px;color:#5e6278}.ms-25{margin-left:16rem}.text-gray-400{font-family:Inter;font-style:normal;font-weight:500;font-size:14px!important;line-height:17px;letter-spacing:-.02em;color:#676e76}::ng-deep .custom-container .mat-mdc-dialog-container .mdc-dialog__surface{border-radius:10px!important}.svg-icon.svg-icon-2x svg{width:20px!important;height:20px!important}.btn-outline{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);box-shadow:0 1px 2px #1018280d;color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:24px}.merge-ticket-modal{border-radius:16px}.merge-info{border:1px dashed #a9c4ff;background:#f5f9ff;border-radius:10px;font-size:13px;color:#008edf}.merge-info i{font-size:18px}.card{border-radius:12px}.card .value{font-size:24px;font-weight:600}.card .label{font-size:12px;color:#6c757d}.arrow{font-size:16px;margin-left:4px}\n"], dependencies: [{ kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
377
379
  }
378
380
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuditReportPopupComponent, decorators: [{
379
381
  type: Component,
380
- args: [{ selector: 'lib-audit-report-popup', template: "<div class=\"modal fade show d-block\" tabindex=\"-1\" role=\"dialog\">\r\n <div class=\"modal-dialog modal-dialog-centered\" role=\"document\">\r\n <div class=\"modal-content merge-ticket-modal\">\r\n\r\n <!-- Header -->\r\n <div class=\"modal-header border-0 pb-0\">\r\n <h5 class=\"modal-title\">Close ticket</h5>\r\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"closepopup()\"></button>\r\n </div>\r\n\r\n <!-- Body -->\r\n <div class=\"modal-body\">\r\n\r\n <!-- Info banner -->\r\n <div class=\"alert merge-info d-flex\">\r\n <div class=\"me-3 mt-1\">\r\n <i class=\"bi bi-info-circle\"></i>\r\n </div>\r\n <div>\r\n \r\n <p class=\"mb-0\">\r\n The ticket will be <b>\u201Cclosed\u201D</b> and updated in the store as a final revision.\r\n Since accuracy is below 85%, it will be marked as an <b>\u201COpen-Accuracy Issue\u201D</b> in Tango. \r\n Please add the cause for the low accuracy.\r\n </p>\r\n </div>\r\n </div>\r\n\r\n <!-- Cards -->\r\n <div class=\"row g-3 mt-2\">\r\n <!-- Central Ops -->\r\n <div class=\"col-12 col-md-6\" *ngIf=\"centralOpsData?.revicedFootfall\">\r\n <div class=\"card h-100\">\r\n <div class=\"card-body\" >\r\n <div class=\"card-title mb-3 fw-semibold\">Central Ops</div>\r\n <div class=\"d-flex justify-content-between align-items-end mb-1\">\r\n <div>\r\n <div class=\"value\">{{centralOpsData?.revicedFootfall}}</div>\r\n <div class=\"label\">Footfall</div>\r\n </div>\r\n <div class=\"text-end\">\r\n <div class=\"value text-primary\">\r\n {{centralOpsData?.revicedPerc}}\r\n <span class=\"arrow\" *ngIf=\"centralOpsData?.revicedFootfall<tangoData?.revicedFootfall\" >\r\n \u2193\r\n </span>\r\n <span class=\"arrow\" *ngIf=\"centralOpsData?.revicedFootfall>tangoData?.revicedFootfall\">\r\n \u2191\r\n </span>\r\n </div>\r\n <div class=\"label\">Accuracy</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Tango -->\r\n <div class=\"col-12 col-md-6\" *ngIf=\"tangoData?.revicedFootfall\">\r\n <div class=\"card h-100\">\r\n <div class=\"card-body\" >\r\n <div class=\"card-title mb-3 fw-semibold\">Tango</div>\r\n <div class=\"d-flex justify-content-between align-items-end mb-1\">\r\n <div>\r\n <div class=\"value\">{{tangoData?.revicedFootfall}}</div>\r\n <div class=\"label\">Footfall</div>\r\n </div>\r\n <div class=\"text-end\">\r\n <div class=\"value text-primary\">\r\n {{tangoData?.revicedPerc}}\r\n <span class=\"arrow\" *ngIf=\"centralOpsData?.revicedFootfall>tangoData?.revicedFootfall\" >\r\n \u2193\r\n </span>\r\n <span class=\"arrow\" *ngIf=\"centralOpsData?.revicedFootfall<tangoData?.revicedFootfall\">\r\n \u2191\r\n </span>\r\n </div>\r\n <div class=\"label\">Accuracy</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Footer -->\r\n <div class=\"modal-footer border-0 pt-0\">\r\n <button type=\"button\" class=\"btn btn-outline-secondary\" (click)=\"closepopup()\">\r\n cancel\r\n </button>\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"nextfile()\">\r\n submit\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".btn.btn-light-primary:hover:not(.btn-active){background-color:#fff!important}.audit-test{font-family:Inter;font-style:normal;font-weight:600!important;font-size:22px!important;line-height:27px;color:#000}.text-gray-500{font-family:Inter;font-style:normal;font-weight:500!important;font-size:14px!important;line-height:17px;color:#5e6278}.ms-25{margin-left:16rem}.text-gray-400{font-family:Inter;font-style:normal;font-weight:500;font-size:14px!important;line-height:17px;letter-spacing:-.02em;color:#676e76}::ng-deep .custom-container .mat-mdc-dialog-container .mdc-dialog__surface{border-radius:10px!important}.svg-icon.svg-icon-2x svg{width:20px!important;height:20px!important}.btn-outline{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);box-shadow:0 1px 2px #1018280d;color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:24px}.merge-ticket-modal{border-radius:16px}.merge-info{border:1px dashed #a9c4ff;background:#f5f9ff;border-radius:10px;font-size:13px;color:#008edf}.merge-info i{font-size:18px}.card{border-radius:12px}.card .value{font-size:24px;font-weight:600}.card .label{font-size:12px;color:#6c757d}.arrow{font-size:16px;margin-left:4px}\n"] }]
382
+ args: [{ selector: 'lib-audit-report-popup', template: "<div class=\"modal fade show d-block\" tabindex=\"-1\" role=\"dialog\">\r\n <div class=\"modal-dialog modal-dialog-centered\" role=\"document\">\r\n <div class=\"modal-content merge-ticket-modal\">\r\n\r\n <!-- Header -->\r\n <div class=\"modal-header border-0 pb-0\">\r\n <h5 class=\"modal-title\">Close ticket</h5>\r\n <button type=\"button\" class=\"btn-close\" aria-label=\"Close\" (click)=\"closepopup()\"></button>\r\n </div>\r\n\r\n <!-- Body -->\r\n <div class=\"modal-body\">\r\n <div *ngIf=\"tangoAccuracy>85&&centralOpsData?.revicedFootfall\">\r\n <p class=\"mb-0\">The ticket will be <b>\u201Cclosed\u201D</b> and updated in the store as a final revision.</p>\r\n </div>\r\n <div *ngIf=\"tangoAccuracy>85&&!centralOpsData?.revicedFootfall\">\r\n <p class=\"mb-0\">You\u2019re about to close this ticket. Do you want to proceed?</p>\r\n </div>\r\n <!-- Info banner -->\r\n <div class=\"alert merge-info d-flex\" *ngIf=\"tangoAccuracy<85\">\r\n <div class=\"me-3 mt-1\">\r\n <i class=\"bi bi-info-circle\"></i>\r\n </div>\r\n <div>\r\n\r\n <p class=\"mb-0\">\r\n The ticket will be <b>\u201Cclosed\u201D</b> and updated in the store as a final revision.\r\n Since accuracy is below 85%, it will be marked as an <b>\u201COpen-Accuracy Issue\u201D</b> in Tango.\r\n Please add the cause for the low accuracy.\r\n </p>\r\n </div>\r\n\r\n </div>\r\n\r\n <!-- Cards -->\r\n <div class=\"row g-3 mt-2\">\r\n <!-- Central Ops -->\r\n <div class=\"col-12 col-md-6\" *ngIf=\"centralOpsData?.revicedFootfall\">\r\n <div class=\"card h-100\">\r\n <div class=\"card-body\">\r\n <div class=\"card-title mb-3 fw-semibold\">Central Ops</div>\r\n <div class=\"d-flex justify-content-between align-items-end mb-1\">\r\n <div>\r\n <div class=\"value\">{{centralOpsData?.revicedFootfall}}</div>\r\n <div class=\"label\">Footfall</div>\r\n </div>\r\n <div class=\"text-end\">\r\n <div class=\"value text-primary\">\r\n {{centralOpsData?.revicedPerc}}\r\n <span class=\"arrow\"\r\n *ngIf=\"centralOpsData?.revicedFootfall<tangoData?.revicedFootfall\">\r\n \u2193\r\n </span>\r\n <span class=\"arrow\"\r\n *ngIf=\"centralOpsData?.revicedFootfall>tangoData?.revicedFootfall\">\r\n \u2191\r\n </span>\r\n </div>\r\n <div class=\"label\">Accuracy</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Tango -->\r\n <div class=\"col-12 col-md-6\" *ngIf=\"tangoData?.revicedFootfall\">\r\n <div class=\"card h-100\">\r\n <div class=\"card-body\">\r\n <div class=\"card-title mb-3 fw-semibold\">Tango</div>\r\n <div class=\"d-flex justify-content-between align-items-end mb-1\">\r\n <div>\r\n <div class=\"value\">{{tangoData?.revicedFootfall}}</div>\r\n <div class=\"label\">Footfall</div>\r\n </div>\r\n <div class=\"text-end\">\r\n <div class=\"value text-primary\">\r\n {{tangoData?.revicedPerc}}\r\n <span class=\"arrow\"\r\n *ngIf=\"centralOpsData?.revicedFootfall>tangoData?.revicedFootfall\">\r\n \u2193\r\n </span>\r\n <span class=\"arrow\"\r\n *ngIf=\"centralOpsData?.revicedFootfall<tangoData?.revicedFootfall\">\r\n \u2191\r\n </span>\r\n </div>\r\n <div class=\"label\">Accuracy</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Footer -->\r\n <div class=\"modal-footer border-0 pt-0\">\r\n <button type=\"button\" class=\"btn btn-outline-secondary\" (click)=\"closepopup()\">\r\n cancel\r\n </button>\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"nextfile()\">\r\n submit\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".btn.btn-light-primary:hover:not(.btn-active){background-color:#fff!important}.audit-test{font-family:Inter;font-style:normal;font-weight:600!important;font-size:22px!important;line-height:27px;color:#000}.text-gray-500{font-family:Inter;font-style:normal;font-weight:500!important;font-size:14px!important;line-height:17px;color:#5e6278}.ms-25{margin-left:16rem}.text-gray-400{font-family:Inter;font-style:normal;font-weight:500;font-size:14px!important;line-height:17px;letter-spacing:-.02em;color:#676e76}::ng-deep .custom-container .mat-mdc-dialog-container .mdc-dialog__surface{border-radius:10px!important}.svg-icon.svg-icon-2x svg{width:20px!important;height:20px!important}.btn-outline{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);box-shadow:0 1px 2px #1018280d;color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:24px}.merge-ticket-modal{border-radius:16px}.merge-info{border:1px dashed #a9c4ff;background:#f5f9ff;border-radius:10px;font-size:13px;color:#008edf}.merge-info i{font-size:18px}.card{border-radius:12px}.card .value{font-size:24px;font-weight:600}.card .label{font-size:12px;color:#6c757d}.arrow{font-size:16px;margin-left:4px}\n"] }]
381
383
  }], ctorParameters: () => [{ type: i1.NgbModal }, { type: i1.NgbActiveModal }, { type: i2.TicketService }, { type: i3.Router }, { type: i4.TimerService }, { type: i0.ChangeDetectorRef }, { type: i5.AuditService }, { type: i3.ActivatedRoute }, { type: i6.ToastService }], propDecorators: { selectedType: [{
382
384
  type: Input
383
385
  }], confirmerror: [{
384
386
  type: ViewChild,
385
387
  args: ['confirmerror']
386
388
  }] } });
387
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtcmVwb3J0LXBvcHVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS10aWNrZXRzL3NyYy9saWIvY29tcG9uZW50cy9hdWRpdC1yZXBvcnQtcG9wdXAvYXVkaXQtcmVwb3J0LXBvcHVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS10aWNrZXRzL3NyYy9saWIvY29tcG9uZW50cy9hdWRpdC1yZXBvcnQtcG9wdXAvYXVkaXQtcmVwb3J0LXBvcHVwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLEtBQUssRUFBMkMsTUFBTSxlQUFlLENBQUM7QUFHN0csT0FBTyxLQUFLLFFBQVEsTUFBTSxXQUFXLENBQUM7QUFHdEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQWdCLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7QUFTeEQsTUFBTSxPQUFPLHlCQUF5QjtJQXNCakI7SUFDVjtJQUNDO0lBQ0Q7SUFBd0I7SUFBb0M7SUFDNUQ7SUFBa0M7SUFBK0I7SUF4QjFFLGNBQWMsR0FBUSxDQUFDLENBQUM7SUFDeEIsa0JBQWtCLEdBQVEsQ0FBQyxDQUFDO0lBQzVCLGtCQUFrQixHQUFRLENBQUMsQ0FBQztJQUM1QixnQkFBZ0IsQ0FBTTtJQUN0QixhQUFhLENBQU07SUFDbkIsaUJBQWlCLENBQU07SUFDdkIsaUJBQWlCLENBQU07SUFDdkIsVUFBVSxDQUFNO0lBQ2hCLElBQUksR0FBWSxLQUFLLENBQUM7SUFDdEIsVUFBVSxHQUFZLEtBQUssQ0FBQztJQUM1QixRQUFRLEdBQVEsRUFBRSxDQUFDO0lBQ1YsWUFBWSxDQUFNO0lBQ0EsWUFBWSxDQUFNO0lBQzVCLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQzFDLFVB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bnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgSW5wdXQsIHZpZXdDaGlsZCwgT25EZXN0cm95LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ2JNb2RhbCwgTmdiQWN0aXZlTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IEF1ZGl0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2F1ZGl0LnNlcnZpY2UnO1xyXG5pbXBvcnQgKiBhcyBMWlN0cmluZyBmcm9tICdsei1zdHJpbmcnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFRpbWVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RpbWVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUaWNrZXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGlja2V0LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYXVkaXQtcmVwb3J0LXBvcHVwJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYXVkaXQtcmVwb3J0LXBvcHVwLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vYXVkaXQtcmVwb3J0LXBvcHVwLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXVkaXRSZXBvcnRQb3B1cENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgUmV0YWdqdW5rY291bnQ6IGFueSA9IDA7XHJcbiAgUmV0YWdlbXBsb3llZWNvdW50OiBhbnkgPSAwO1xyXG4gIFJldGFnY3VzdG9tZXJjb3VudDogYW55ID0gMDtcclxuICBkZW1vZ3JhcGhpY0NvdW50OiBhbnk7XHJcbiAgcmV0YWdqdW5rZGF0YTogYW55O1xyXG4gIHJldGFnZW1wbG95ZWVkYXRhOiBhbnk7XHJcbiAgcmV0YWdjdXN0b21lcmRhdGE6IGFueTtcclxuICB0b3RhbGZpbGVzOiBhbnk7XHJcbiAgYXV0aDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHN1Ym1pdGF1dGg6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBFcnJvcm1zZzogYW55ID0gJyc7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRUeXBlOiBhbnk7XHJcbiAgQFZpZXdDaGlsZCgnY29uZmlybWVycm9yJykgY29uZmlybWVycm9yOiBhbnk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgdGltZVBhc3NlZDogbnVtYmVyID0gMDtcclxuICBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xyXG4gIGZvcm1hdHRlZFRpbWU6IHN0cmluZyA9ICcwMDowMDowMCc7XHJcbiAgY2F0ZWdvcnk6IGFueSA9IFtdXHJcbiAgY2VudHJhbE9wc0RhdGE6IGFueTtcclxuICB0YW5nb0RhdGE6IGFueTtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCxcclxuICAgIHB1YmxpYyBhY3RpdmVNb2RhbDogTmdiQWN0aXZlTW9kYWwsXHJcbiAgICBwcml2YXRlIHNlcnZpY2U6IFRpY2tldFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgdGltZXJTZXJ2aWNlOiBUaW1lclNlcnZpY2UsIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHVibGljIGFwaXNlcnZpY2U6IEF1ZGl0U2VydmljZSwgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsIHByaXZhdGUgdG9hc3Q6IFRvYXN0U2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgbGV0IGZpbGVkYXRhID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd0b3RhbGZpbGVzJykgfHwgJ3t9JylcclxuICAgIHRoaXMudG90YWxmaWxlcyA9IGZpbGVkYXRhO1xyXG4gICAgdGhpcy5hcGlzZXJ2aWNlLmdldEF1ZGl0Y29uZmlnKGZpbGVkYXRhPy5maWxlZGV0YWlscz8uY2xpZW50SWQpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcz8uY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuY2F0ZWdvcnkgPSByZXMuZGF0YS5mb290ZmFsbERpcmVjdG9yeUNvbmZpZ3MudGFnZ2luZ0xpbWl0YXRpb25cclxuXHJcblxyXG4gICAgICAgICAgdGhpcy5jYXRlZ29yeS5tYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgZmlsdGVyRGF0YSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShkYXRhPy50eXBlKSB8fCAne30nKVxyXG4gICAgICAgICAgICBkYXRhLnZhbHVlID0gZmlsdGVyRGF0YVxyXG4gICAgICAgICAgICBkYXRhLmNvdW50ID0gZGF0YT8udmFsdWU/Lmxlbmd0aFxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwi8J+agCB+IEF1ZGl0UmVwb3J0UG9wdXBDb21wb25lbnQgfiBuZ09uSW5pdCB+IHRoaXMuY2F0ZWdvcnk6XCIsIHRoaXMuY2F0ZWdvcnkpXHJcbiAgICAgICAgICBsZXQgc3RyaW5naWZ5ZGF0YSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2F1ZGl0JykgfHwgJ3t9J1xyXG4gICAgICAgICAgY29uc3QgZGVjb21wcmVzc2VkRGF0YSA9IExaU3RyaW5nLmRlY29tcHJlc3Moc3RyaW5naWZ5ZGF0YSk7XHJcbiAgICAgICAgICB2YXIgY3VzdG9tZXIgPSBKU09OLnBhcnNlKGRlY29tcHJlc3NlZERhdGEgfHwgJ3t9JylcclxuICAgICAgICAgIHRoaXMuUmV0YWdjdXN0b21lcmNvdW50ID0gY3VzdG9tZXIubGVuZ3RoXHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIvCfmoAgfiBBdWRpdFJlcG9ydFBvcHVwQ29tcG9uZW50IH4gbmdPbkluaXQgfiB0aGlzLnRvdGFsZmlsZXM6XCIsIHRoaXMudG90YWxmaWxlcylcclxuICAgICAgICAgIGxldCBpbnB1dCA9IHtcclxuICAgICAgICAgICAgc3RvcmVJZDogdGhpcy50b3RhbGZpbGVzPy5maWxlZGV0YWlscz8uc3RvcmVJZCxcclxuICAgICAgICAgICAgZGF0ZVN0cmluZzogdGhpcy50b3RhbGZpbGVzPy5maWxlZGV0YWlscz8uRGF0ZSxcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuc2VydmljZVxyXG4gICAgICAgICAgICAuY2hlY2tUaWNrZXRFeGlzdHMoaW5wdXQpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXMgJiYgcmVzPy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVzLmRhdGEpXHJcbiAgICAgICAgICAgICAgICAgIGxldCB0aWNrZXRMaXN0ID0gcmVzPy5kYXRhXHJcbiAgICAgICAgICAgICAgICAgIGxldCBmaW5kc3RvcmV0aWNrZXQgPSB0aWNrZXRMaXN0LmZpbHRlcigoZGF0YTogYW55KSA9PiBkYXRhPy5fc291cmNlPy50eXBlID09PSAnc3RvcmUnICYmIGRhdGE/Ll9zb3VyY2U/LnN0YXR1cyAhPSBcIkNsb3NlZFwiKVswXT8uX3NvdXJjZVxyXG4gICAgICAgICAgICAgICAgICBpZiAoZmluZHN0b3JldGlja2V0ICYmIGZpbmRzdG9yZXRpY2tldD8ubWFwcGluZ0luZm8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2VudHJhbE9wc0RhdGEgPSBmaW5kc3RvcmV0aWNrZXQubWFwcGluZ0luZm8uZmlsdGVyKChkYXRhOiBhbnkpID0+IGRhdGEudHlwZSAhPSBcInRhbmdvcmV2aWV3XCIpWzBdXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLwn5qAIH4gVGlja2V0Y2xvc2Vwb3B1cENvbXBvbmVudCB+IG5nT25Jbml0IH4gdGhpcy5jZW50cmFsT3BzRGF0YTpcIiwgdGhpcy5jZW50cmFsT3BzRGF0YSlcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLnRhbmdvRGF0YSA9e1xyXG4gICAgICAgICAgICAgICAgICAgIHJldmljZWRGb290ZmFsbDp0aGlzLlJldGFnY3VzdG9tZXJjb3VudCxcclxuICAgICAgICAgICAgICAgICAgICByZXZpY2VkUGVyYzpNYXRoLnJvdW5kKCh0aGlzLlJldGFnY3VzdG9tZXJjb3VudC90aGlzLnRvdGFsZmlsZXM/LnRvdGFsZmlsZXMpKjEwMCkrXCIlXCJcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuXHJcblxyXG5cclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgdGhpcy5zZXRUaW1lcigpO1xyXG4gIH1cclxuXHJcbiAgc2V0VGltZXIoKSB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMudGltZXJTZXJ2aWNlLmdldFRpbWVQYXNzZWQoKS5zdWJzY3JpYmUodGltZSA9PiB7XHJcbiAgICAgIHRoaXMudGltZVBhc3NlZCA9IHRpbWU7XHJcbiAgICAgIHRoaXMuZm9ybWF0dGVkVGltZSA9IHRoaXMudGltZXJTZXJ2aWNlLmZvcm1hdFRpbWUodGltZSk7XHJcbiAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnRpbWVyU2VydmljZS5zdGFydFRpbWVyKCk7XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLmhhbmRsZUdsb2JhbE1vdXNlRXZlbnQpO1xyXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmhhbmRsZUdsb2JhbE1vdXNlRXZlbnQpO1xyXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIHRoaXMuaGFuZGxlR2xvYmFsTW91c2VFdmVudCk7XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLmhhbmRsZUdsb2JhbE1vdXNlRXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlR2xvYmFsTW91c2VFdmVudCA9ICgpOiB2b2lkID0+IHtcclxuICAgIHRoaXMudGltZXJTZXJ2aWNlLnN0YXJ0VGltZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5oYW5kbGVHbG9iYWxNb3VzZUV2ZW50KTtcclxuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5oYW5kbGVHbG9iYWxNb3VzZUV2ZW50KTtcclxuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCB0aGlzLmhhbmRsZUdsb2JhbE1vdXNlRXZlbnQpO1xyXG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5oYW5kbGVHbG9iYWxNb3VzZUV2ZW50KTtcclxuICAgIHRoaXMudGltZXJTZXJ2aWNlLmNsZWFyVGltZXIoKVxyXG4gIH1cclxuXHJcbiAgY2hhbmdlYnJhbmQoKSB7XHJcbiAgICB0aGlzLmF1dGggPSB0cnVlO1xyXG4gICAgdmFyIHRvdGFsZmlsZTogYW55ID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd0b3RhbGZpbGVzJykgfHwgJ3t9Jyk7XHJcblxyXG4gICAgbGV0IGp1bmtpbWFnZTogYW55ID0gW107XHJcbiAgICBsZXQgZW1wbG95ZWVpbWFnZTogYW55ID0gW107XHJcbiAgICBsZXQgY3VzdG9tZXJpbWFnZTogYW55ID0gW107XHJcblxyXG4gICAgdGhpcy5yZXRhZ2p1bmtkYXRhLm1hcCgoZTogYW55KSA9PiB7XHJcbiAgICAgIGRlbGV0ZSBlLmltZ19wYXRoOyBkZWxldGUgZS5zZWxlY3RlZDsgZGVsZXRlIGUuY291bnQ7XHJcbiAgICAgIGRlbGV0ZSBlLmRyb3BwZWQ7IGRlbGV0ZSBlLm1hcHBlZGlkO1xyXG4gICAgICBqdW5raW1hZ2UucHVzaChlKTtcclxuICAgIH0pXHJcbiAgICB0aGlzLnJldGFnZW1wbG95ZWVkYXRhLm1hcCgoZTogYW55KSA9PiB7XHJcbiAgICAgIGRlbGV0ZSBlLmltZ19wYXRoOyBkZWxldGUgZS5zZWxlY3RlZDsgZGVsZXRlIGUuY291bnQ7XHJcbiAgICAgIGRlbGV0ZSBlLmRyb3BwZWQ7IGRlbGV0ZSBlLm1hcHBlZGlkO1xyXG4gICAgICBlbXBsb3llZWltYWdlLnB1c2goZSk7XHJcbiAgICB9KVxyXG5cclxuICAgIHRoaXMucmV0YWdjdXN0b21lcmRhdGEubWFwKChlOiBhbnkpID0+IHtcclxuXHJcbiAgICAgIGlmIChlLmNvdW50ID4gMSkge1xyXG4gICAgICAgIGRlbGV0ZSBlLmltZ19wYXRoO1xyXG4gICAgICAgIGRlbGV0ZSBlLnNlbGVjdGVkO1xyXG4gICAgICAgIGRlbGV0ZSBlLmRyb3BwZWQ7XHJcbiAgICAgICAgdmFyIHJlc3VsdCA9IGUubWFwcGVkaWQ7XHJcbiAgICAgICAgZS5tYXBwZWRpZCA9IHJlc3VsdFxyXG4gICAgICAgIGUuY291bnQgPSByZXN1bHQubGVuZ3RoXHJcbiAgICAgICAgZS5tYXBwZWRpZC5mb3JFYWNoKChlMTogYW55KSA9PiB7IGRlbGV0ZSBlMS5pbWdfcGF0aCB9KVxyXG4gICAgICAgIGN1c3RvbWVyaW1hZ2UucHVzaChlKVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChlLmRlbW9ncmFwaGljID09PSAnZCcgJiYgZS5jb3VudCA9PT0gMSkge1xyXG4gICAgICAgIGRlbGV0ZSBlLmltZ19wYXRoO1xyXG4gICAgICAgIGRlbGV0ZSBlLnNlbGVjdGVkO1xyXG4gICAgICAgIGRlbGV0ZSBlLmRyb3BwZWQ7XHJcbiAgICAgICAgdmFyIHJlc3VsdCA9IGUubWFwcGVkaWQ7XHJcbiAgICAgICAgZS5tYXBwZWRpZCA9IHJlc3VsdFxyXG4gICAgICAgIGUuY291bnQgPSByZXN1bHQubGVuZ3RoXHJcbiAgICAgICAgZS5tYXBwZWRpZC5mb3JFYWNoKChlMTogYW55KSA9PiB7IGRlbGV0ZSBlMS5pbWdfcGF0aCB9KVxyXG4gICAgICAgIGN1c3RvbWVyaW1hZ2UucHVzaChlKVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgdmFyIG9iajogYW55ID0ge1xyXG4gICAgICBhdWRpdElkOiB0b3RhbGZpbGU/LmF1ZGl0SWQgPyB0b3RhbGZpbGU/LmF1ZGl0SWQgOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5hdWRpdElkLFxyXG4gICAgICBzdG9yZUlkOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5zdG9yZV9pZCxcclxuICAgICAgYXVkaXRUeXBlOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy50eXBlLFxyXG4gICAgICBmaWxlRGF0ZTogdG90YWxmaWxlPy5maWxlZGV0YWlscz8uZmlsZV9kYXRlLFxyXG4gICAgICBiZWZvcmVDb3VudDogdG90YWxmaWxlPy50b3RhbGZpbGVzLFxyXG4gICAgICBqdW5rQ291bnQ6IHRoaXMuUmV0YWdqdW5rY291bnQsXHJcbiAgICAgIGp1bms6IGp1bmtpbWFnZSA/IGp1bmtpbWFnZSA6IFtdLFxyXG4gICAgICBlbXBsb3llZUNvdW50OiB0aGlzLlJldGFnZW1wbG95ZWVjb3VudCxcclxuICAgICAgZW1wbG95ZWU6IGVtcGxveWVlaW1hZ2UgPyBlbXBsb3llZWltYWdlIDogW10sXHJcbiAgICAgIGN1c3RvbWVyQ291bnQ6IHRoaXMuUmV0YWdjdXN0b21lcmNvdW50LFxyXG4gICAgICB6b25lTmFtZTogdG90YWxmaWxlPy5maWxlZGV0YWlscz8uem9uZU5hbWUgPyB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy56b25lTmFtZSA6ICcnLFxyXG4gICAgICBtb2R1bGVUeXBlOiB0aGlzLnNlbGVjdGVkVHlwZSxcclxuICAgICAgY3VzdG9tZXI6IGN1c3RvbWVyaW1hZ2UgPyBjdXN0b21lcmltYWdlIDogW10sXHJcbiAgICAgIHRpbWVTcGVudDogdGhpcy50aW1lUGFzc2VkXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hcGlzZXJ2aWNlLnNhdmVhdWRpdChvYmopLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QocmVzPy5kYXRhPy5yZXN1bHQpXHJcbiAgICAgICAgICB0aGlzLmF1dGggPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudGltZXJTZXJ2aWNlLnJlc2V0VGltZXIoKVxyXG4gICAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgndGltZVNwZW50JylcclxuICAgICAgICAgIHRoaXMuY2xvc2Vwb3B1cCgpXHJcbiAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCdlbXBsb3llZScpXHJcbiAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCdqdW5rJylcclxuICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oJ2F1ZGl0JylcclxuICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oJ3RvdGFsZmlsZXMnKVxyXG4gICAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgncmV0YWcnKVxyXG5cclxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL21hbmFnZS90aWNrZXRzJ10sIHsgcXVlcnlQYXJhbXM6IHsgdHlwZTogJ2Zvb3RmYWxsJyB9IH0pXHJcblxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmF1dGggPSBmYWxzZTtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuRXJyb3Jtc2cgPSByZXMuZXJyb3JcclxuICAgICAgICAgICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKHRoaXMuY29uZmlybWVycm9yKVxyXG4gICAgICAgICAgICBtb2RhbFJlZi5yZXN1bHQudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlc3VsdC5pc0NvbmZpcm1lZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbWFuYWdlL3RpY2tldHMnXSwgeyBxdWVyeVBhcmFtczogeyB0eXBlOiAnZm9vdGZhbGwnIH0gfSlcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGVycj8uZXJyb3I/Lm1lc3NhZ2UgfHwgZXJyPy5lcnJvcj8uZXJyb3IgfHwgZXJyPy5tZXNzYWdlIHx8ICdJbnZhbGlkIHN0YXR1cyBjb2RlOiB1bmRlZmluZWQnO1xyXG4gICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChlcnJvck1lc3NhZ2UpO1xyXG4gICAgICB9LFxyXG5cclxuICAgIH0pXHJcblxyXG4gIH1cclxuXHJcbiAgbmV4dGZpbGUoKSB7XHJcbiAgICB0aGlzLmF1dGggPSB0cnVlO1xyXG4gICAgbGV0IHRvdGFsZmlsZTogYW55ID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd0b3RhbGZpbGVzJykgfHwgJ3t9Jyk7XHJcbiAgICBjb25zb2xlLmxvZyhcIvCfmoAgfiBBdWRpdFJlcG9ydFBvcHVwQ29tcG9uZW50IH4gbmV4dGZpbGUgfiB0b3RhbGZpbGU6XCIsIHRvdGFsZmlsZSlcclxuICAgIGxldCByZXZpc2VkRGV0YWlsOiBhbnkgPSBbXVxyXG4gICAgbGV0IHN0cmluZ2lmeWRhdGEgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdhdWRpdCcpIHx8ICd7fSdcclxuICAgIGNvbnN0IGRlY29tcHJlc3NlZERhdGEgPSBMWlN0cmluZy5kZWNvbXByZXNzKHN0cmluZ2lmeWRhdGEpO1xyXG4gICAgdmFyIGN1c3RvbWVyID0gSlNPTi5wYXJzZShkZWNvbXByZXNzZWREYXRhIHx8ICd7fScpXHJcbiAgICBjdXN0b21lci5tYXAoKGN1c3RvbWVyRGF0YTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChjdXN0b21lckRhdGEuY291bnQgPiAxKSB7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLwn5qAIH4gQXVkaXRSZXBvcnRQb3B1cENvbXBvbmVudCB+IG5leHRmaWxlIH4gY3VzdG9tZXJEYXRhOlwiLCBjdXN0b21lckRhdGEpXHJcbiAgICAgICAgbGV0IGR1cGxpY2F0ZURhdGEgPSBjdXN0b21lckRhdGEubWFwcGVkaWQuZmlsdGVyKChkYXRhOiBhbnkpID0+IGRhdGEuaW1nX25hbWUgIT0gY3VzdG9tZXJEYXRhPy5pbWdfbmFtZSlcclxuICAgICAgICBjb25zb2xlLmxvZyhcIvCfmoAgfiBBdWRpdFJlcG9ydFBvcHVwQ29tcG9uZW50IH4gbmV4dGZpbGUgfiBkdXBsaWNhdGVEYXRhOlwiLCBkdXBsaWNhdGVEYXRhKVxyXG4gICAgICAgIGxldCBkdXBsaWNhdGVJbWFnZTogYW55ID0gW11cclxuICAgICAgICBkdXBsaWNhdGVEYXRhLm1hcCgoZHVwRGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICBkdXBsaWNhdGVJbWFnZS5wdXNoKFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgXCJpZFwiOiBgJHt0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5zdG9yZUlkfV8ke3RvdGFsZmlsZT8uZmlsZWRldGFpbHM/LkRhdGV9XyR7ZHVwRGF0YT8uaW1nX25hbWV9YCxcclxuICAgICAgICAgICAgICBcInRlbXBJZFwiOiBkdXBEYXRhPy5pbWdfbmFtZSxcclxuICAgICAgICAgICAgICBcImZpbGVQYXRoXCI6IGR1cERhdGE/LmltZ19wYXRoLFxyXG4gICAgICAgICAgICAgIFwiaXNDaGVja2VkXCI6IHRydWVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgKVxyXG5cclxuICAgICAgICB9KVxyXG4gICAgICAgIGxldCBuZXdPYmo6IGFueSA9IHtcclxuICAgICAgICAgIFwiaWRcIjogYCR7dG90YWxmaWxlPy5maWxlZGV0YWlscz8uc3RvcmVJZH1fJHt0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5EYXRlfV8ke2N1c3RvbWVyRGF0YT8uaW1nX25hbWV9YCxcclxuICAgICAgICAgIFwiY2xpZW50SWRcIjogdG90YWxmaWxlPy5maWxlZGV0YWlscz8uY2xpZW50SWQsXHJcbiAgICAgICAgICBcInN0b3JlSWRcIjogdG90YWxmaWxlPy5maWxlZGV0YWlscz8uc3RvcmVJZCxcclxuICAgICAgICAgIFwidGVtcElkXCI6IGN1c3RvbWVyRGF0YT8uaW1nX25hbWUsXHJcbiAgICAgICAgICBcImRhdGVTdHJpbmdcIjogdG90YWxmaWxlPy5maWxlZGV0YWlscz8uRGF0ZSxcclxuICAgICAgICAgIFwidGltZVJhbmdlXCI6IFwiMTFBTS0xMlBNXCIsXHJcbiAgICAgICAgICBcInByb2Nlc3NUeXBlXCI6IFwiZm9vdGZhbGxcIixcclxuICAgICAgICAgIFwicmV2b3BzVHlwZVwiOiBcImR1cGxpY2F0ZVwiLFxyXG4gICAgICAgICAgXCJmaWxlUGF0aFwiOiBjdXN0b21lckRhdGE/LmltZ19wYXRoLFxyXG4gICAgICAgICAgXCJzdGF0dXNcIjogXCJzdWJtaXR0ZWRcIixcclxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcclxuICAgICAgICAgIFwiaXNDaGVja2VkXCI6IHRydWUsXHJcbiAgICAgICAgICBcInR5cGVcIjogXCJ0YWdnaW5nLXJlZmxlY3RcIixcclxuICAgICAgICAgIFwicGFyZW50XCI6IG51bGwsXHJcbiAgICAgICAgICBcImlzUGFyZW50XCI6IHRydWUsXHJcbiAgICAgICAgICBcImR1cGxpY2F0ZUltYWdlXCI6IGR1cGxpY2F0ZUltYWdlXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi8J+agCB+IEF1ZGl0UmVwb3J0UG9wdXBDb21wb25lbnQgfiBuZXh0ZmlsZSB+IG5ld09iajpcIiwgbmV3T2JqKVxyXG4gICAgICAgIHJldmlzZWREZXRhaWwucHVzaChuZXdPYmopXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLwn5qAIH4gQXVkaXRSZXBvcnRQb3B1cENvbXBvbmVudCB+IG5leHRmaWxlIH4gY3VzdG9tZXJEYXRhOlwiLCBjdXN0b21lckRhdGEpXHJcbiAgICAgICAgbGV0IG5ld09iajogYW55ID0ge1xyXG4gICAgICAgICAgXCJpZFwiOiBgJHt0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5zdG9yZUlkfV8ke3RvdGFsZmlsZT8uZmlsZWRldGFpbHM/LkRhdGV9XyR7Y3VzdG9tZXJEYXRhPy5pbWdfbmFtZX1gLFxyXG4gICAgICAgICAgXCJjbGllbnRJZFwiOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5jbGllbnRJZCxcclxuICAgICAgICAgIFwic3RvcmVJZFwiOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5zdG9yZUlkLFxyXG4gICAgICAgICAgXCJ0ZW1wSWRcIjogY3VzdG9tZXJEYXRhPy5pbWdfbmFtZSxcclxuICAgICAgICAgIFwiZGF0ZVN0cmluZ1wiOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5EYXRlLFxyXG4gICAgICAgICAgXCJ0aW1lUmFuZ2VcIjogXCIxMUFNLTEyUE1cIixcclxuICAgICAgICAgIFwicHJvY2Vzc1R5cGVcIjogXCJmb290ZmFsbFwiLFxyXG4gICAgICAgICAgXCJyZXZvcHNUeXBlXCI6IFwiZHVwbGljYXRlXCIsXHJcbiAgICAgICAgICBcImZpbGVQYXRoXCI6IGN1c3RvbWVyRGF0YT8uaW1nX3BhdGgsXHJcbiAgICAgICAgICBcInN0YXR1c1wiOiBcInN1Ym1pdHRlZFwiLFxyXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxyXG4gICAgICAgICAgXCJpc0NoZWNrZWRcIjogdHJ1ZSxcclxuICAgICAgICAgIFwidHlwZVwiOiBcInRhZ2dpbmctcmVmbGVjdFwiLFxyXG4gICAgICAgICAgXCJwYXJlbnRcIjogbnVsbCxcclxuICAgICAgICAgIFwiaXNQYXJlbnRcIjogdHJ1ZSxcclxuICAgICAgICAgIFwiZHVwbGljYXRlSW1hZ2VcIjogW11cclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc29sZS5sb2coXCLwn5qAIH4gQXVkaXRSZXBvcnRQb3B1cENvbXBvbmVudCB+IG5leHRmaWxlIH4gbmV3T2JqOlwiLCBuZXdPYmopXHJcbiAgICAgICAgcmV2aXNlZERldGFpbC5wdXNoKG5ld09iailcclxuICAgICAgfVxyXG5cclxuXHJcbiAgICB9KVxyXG4gICAgbGV0IGNvdW50OiBhbnkgPSBbXVxyXG4gICAgdGhpcy5jYXRlZ29yeS5tYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICBjb3VudC5wdXNoKHtcclxuICAgICAgICBuYW1lOiBkYXRhLm5hbWUsXHJcbiAgICAgICAgdmFsdWU6IGRhdGEuY291bnQsXHJcbiAgICAgICAgdHlwZTogZGF0YS50eXBlXHJcbiAgICAgIH0pXHJcbiAgICAgIGxldCBmaWx0ZXJEYXRhID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGRhdGE/LnR5cGUpIHx8ICdbXScpXHJcblxyXG4gICAgICBmaWx0ZXJEYXRhLm1hcCgob3RoZXJEYXRhOiBhbnkpID0+IHtcclxuXHJcbiAgICAgICAgbGV0IG90aGVyT2JqOiBhbnkgPSB7XHJcbiAgICAgICAgICBcImlkXCI6IGAke3RvdGFsZmlsZT8uZmlsZWRldGFpbHM/LnN0b3JlSWR9XyR7dG90YWxmaWxlPy5maWxlZGV0YWlscz8uRGF0ZX1fJHtvdGhlckRhdGE/LmltZ19uYW1lfWAsXHJcbiAgICAgICAgICBcImNsaWVudElkXCI6IHRvdGFsZmlsZT8uZmlsZWRldGFpbHM/LmNsaWVudElkLFxyXG4gICAgICAgICAgXCJzdG9yZUlkXCI6IHRvdGFsZmlsZT8uZmlsZWRldGFpbHM/LnN0b3JlSWQsXHJcbiAgICAgICAgICBcInRlbXBJZFwiOiBvdGhlckRhdGE/LmltZ19uYW1lLFxyXG4gICAgICAgICAgXCJkYXRlU3RyaW5nXCI6IHRvdGFsZmlsZT8uZmlsZWRldGFpbHM/LkRhdGUsXHJcbiAgICAgICAgICBcInByb2Nlc3NUeXBlXCI6IFwiZm9vdGZhbGxcIixcclxuICAgICAgICAgIFwicmV2b3BzVHlwZVwiOiBkYXRhPy50eXBlLFxyXG4gICAgICAgICAgXCJmaWxlUGF0aFwiOiBvdGhlckRhdGE/LmltZ19wYXRoLFxyXG4gICAgICAgICAgXCJzdGF0dXNcIjogXCJzdWJtaXR0ZWRcIixcclxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcclxuICAgICAgICAgIFwiaXNDaGVja2VkXCI6IHRydWUsXHJcbiAgICAgICAgICBcInR5cGVcIjogXCJ0YWdnaW5nLXJlZmxlY3RcIixcclxuICAgICAgICAgIFwicGFyZW50XCI6IG51bGwsXHJcbiAgICAgICAgICBcImlzUGFyZW50XCI6IGZhbHNlLFxyXG4gICAgICAgICAgXCJkdXBsaWNhdGVJbWFnZVwiOiBbXVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXZpc2VkRGV0YWlsLnB1c2gob3RoZXJPYmopXHJcbiAgICAgIH0pXHJcbiAgICB9KVxyXG5cclxuXHJcbiAgICBsZXQgdGlja2V0VHlwZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3RpY2tldFR5cGUnKVxyXG5cclxuICAgIHZhciBvYmo6IGFueSA9IHtcclxuICAgICAgXCJ0eXBlXCI6IFwidGFuZ29yZXZpZXdcIixcclxuICAgICAgXCJtb2RlXCI6IFwid2ViXCIsXHJcbiAgICAgIFwicmV2aWNlZEZvb3RmYWxsXCI6IHRoaXMuUmV0YWdjdXN0b21lcmNvdW50LFxyXG5cclxuICAgICAgXCJyZXZpY2VkUGVyY1wiOiBNYXRoLnJvdW5kKCh0aGlzLlJldGFnY3VzdG9tZXJjb3VudCAvIHRvdGFsZmlsZT8udG90YWxmaWxlcykgKiAxMDApICsgXCIlXCIsXHJcbiAgICAgIGNvdW50OiBjb3VudCxcclxuICAgICAgcmV2aXNlZERldGFpbDogcmV2aXNlZERldGFpbFxyXG4gICAgfVxyXG4gICAgY29uc29sZS5sb2coXCLwn5qAIH4gQXVkaXRSZXBvcnRQb3B1cENvbXBvbmVudCB+IG5leHRmaWxlIH4gb2JqOlwiLCBvYmopXHJcbiAgICAvLyByZXR1cm5cclxuICAgIGxldCBwYXlsb2FkID0ge1xyXG4gICAgICBzdG9yZUlkOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5zdG9yZUlkLFxyXG4gICAgICBcImRhdGVTdHJpbmdcIjogdG90YWxmaWxlPy5maWxlZGV0YWlscz8uRGF0ZSxcclxuICAgICAgdGlja2V0VHlwZTogdGlja2V0VHlwZSxcclxuICAgICAgbWFwcGluZ0luZm86IG9ialxyXG4gICAgfVxyXG4gICAgdGhpcy5hcGlzZXJ2aWNlLnNhdmVhdWRpdChwYXlsb2FkKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuYXV0aCA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy50aW1lclNlcnZpY2UucmVzZXRUaW1lcigpXHJcbiAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCd0aW1lU3BlbnQnKVxyXG4gICAgICAgICAgdGhpcy5jbG9zZXBvcHVwKClcclxuICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oJ2VtcGxveWVlJylcclxuICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oJ2p1bmsnKVxyXG4gICAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgnYXVkaXQnKVxyXG4gICAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgndG90YWxmaWxlcycpXHJcbiAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCdyZXRhZycpXHJcbiAgICAgICAgICB2YXIgb2JqOiBhbnkgPSB7XHJcbiAgICAgICAgICAgIHRvdGFsZmlsZXM6IHtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgb2JqLnRvdGFsZmlsZXMucXVldWVOYW1lID0gdG90YWxmaWxlPy5maWxlZGV0YWlscz8ucXVldWVOYW1lXHJcbiAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCd0b3RhbGZpbGVzJywgSlNPTi5zdHJpbmdpZnkob2JqKSlcclxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL21hbmFnZS90aWNrZXRzJ10sIHsgcXVlcnlQYXJhbXM6IHsgdHlwZTogJ2Zvb3RmYWxsJyB9IH0pXHJcblxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmF1dGggPSBmYWxzZTtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuRXJyb3Jtc2cgPSByZXMuZXJyb3JcclxuICAgICAgICAgICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKHRoaXMuY29uZmlybWVycm9yKVxyXG4gICAgICAgICAgICBtb2RhbFJlZi5yZXN1bHQudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlc3VsdC5pc0NvbmZpcm1lZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbWFuYWdlL3RpY2tldHMnXSwgeyBxdWVyeVBhcmFtczogeyB0eXBlOiAnZm9vdGZhbGwnIH0gfSlcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlcnI/LmVycm9yPy5tZXNzYWdlIHx8IGVycj8uZXJyb3I/LmVycm9yIHx8IGVycj8ubWVzc2FnZSB8fCAnSW52YWxpZCBzdGF0dXMgY29kZTogdW5kZWZpbmVkJztcclxuICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyb3JNZXNzYWdlKTtcclxuICAgICAgfSxcclxuICAgIH0pXHJcblxyXG4gIH1cclxuICBjbG9zZXBvcHVwKCkge1xyXG4gICAgdGhpcy5hY3RpdmVNb2RhbC5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgcmV2aWV3ZGF0YSgpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcIi9tYW5hZ2UvdGlja2V0cy9tYXBwaW5nLWxpc3RcIl0pXHJcbiAgICB0aGlzLmFjdGl2ZU1vZGFsLmNsb3NlKCk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibW9kYWwgZmFkZSBzaG93IGQtYmxvY2tcIiB0YWJpbmRleD1cIi0xXCIgcm9sZT1cImRpYWxvZ1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWRpYWxvZyBtb2RhbC1kaWFsb2ctY2VudGVyZWRcIiByb2xlPVwiZG9jdW1lbnRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudCBtZXJnZS10aWNrZXQtbW9kYWxcIj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gSGVhZGVyIC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyIGJvcmRlci0wIHBiLTBcIj5cclxuICAgICAgICAgICAgICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCI+Q2xvc2UgdGlja2V0PC9oNT5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuLWNsb3NlXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cImNsb3NlcG9wdXAoKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gQm9keSAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cclxuXHJcbiAgICAgICAgICAgICAgICA8IS0tIEluZm8gYmFubmVyIC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFsZXJ0IG1lcmdlLWluZm8gZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lLTMgbXQtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLWluZm8tY2lyY2xlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIm1iLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgdGlja2V0IHdpbGwgYmUgPGI+4oCcY2xvc2Vk4oCdPC9iPiBhbmQgdXBkYXRlZCBpbiB0aGUgc3RvcmUgYXMgYSBmaW5hbCByZXZpc2lvbi5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgU2luY2UgYWNjdXJhY3kgaXMgYmVsb3cgODUlLCBpdCB3aWxsIGJlIG1hcmtlZCBhcyBhbiA8Yj7igJxPcGVuLUFjY3VyYWN5IElzc3Vl4oCdPC9iPiBpbiBUYW5nby4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFBsZWFzZSBhZGQgdGhlIGNhdXNlIGZvciB0aGUgbG93IGFjY3VyYWN5LlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8IS0tIENhcmRzIC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBnLTMgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gQ2VudHJhbCBPcHMgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtbWQtNlwiICpuZ0lmPVwiY2VudHJhbE9wc0RhdGE/LnJldmljZWRGb290ZmFsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBoLTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBtYi0zIGZ3LXNlbWlib2xkXCI+Q2VudHJhbCBPcHM8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWVuZCBtYi0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIj57e2NlbnRyYWxPcHNEYXRhPy5yZXZpY2VkRm9vdGZhbGx9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCI+Rm9vdGZhbGw8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlIHRleHQtcHJpbWFyeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjZW50cmFsT3BzRGF0YT8ucmV2aWNlZFBlcmN9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXJyb3dcIiAqbmdJZj1cImNlbnRyYWxPcHNEYXRhPy5yZXZpY2VkRm9vdGZhbGw8dGFuZ29EYXRhPy5yZXZpY2VkRm9vdGZhbGxcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKGk1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcnJvd1wiICpuZ0lmPVwiY2VudHJhbE9wc0RhdGE/LnJldmljZWRGb290ZmFsbD50YW5nb0RhdGE/LnJldmljZWRGb290ZmFsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDihpFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiPkFjY3VyYWN5PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIFRhbmdvIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLW1kLTZcIiAqbmdJZj1cInRhbmdvRGF0YT8ucmV2aWNlZEZvb3RmYWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGgtMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlIG1iLTMgZnctc2VtaWJvbGRcIj5UYW5nbzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtZW5kIG1iLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPnt7dGFuZ29EYXRhPy5yZXZpY2VkRm9vdGZhbGx9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCI+Rm9vdGZhbGw8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlIHRleHQtcHJpbWFyeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3t0YW5nb0RhdGE/LnJldmljZWRQZXJjfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFycm93XCIgKm5nSWY9XCJjZW50cmFsT3BzRGF0YT8ucmV2aWNlZEZvb3RmYWxsPnRhbmdvRGF0YT8ucmV2aWNlZEZvb3RmYWxsXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDihpNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXJyb3dcIiAqbmdJZj1cImNlbnRyYWxPcHNEYXRhPy5yZXZpY2VkRm9vdGZhbGw8dGFuZ29EYXRhPy5yZXZpY2VkRm9vdGZhbGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4oaRXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIj5BY2N1cmFjeTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gRm9vdGVyIC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyIGJvcmRlci0wIHB0LTBcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeVwiIChjbGljayk9XCJjbG9zZXBvcHVwKClcIj5cclxuICAgICAgICAgICAgICAgICAgICBjYW5jZWxcclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwibmV4dGZpbGUoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHN1Ym1pdFxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
389
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtcmVwb3J0LXBvcHVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS10aWNrZXRzL3NyYy9saWIvY29tcG9uZW50cy9hdWRpdC1yZXBvcnQtcG9wdXAvYXVkaXQtcmVwb3J0LXBvcHVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS10aWNrZXRzL3NyYy9saWIvY29tcG9uZW50cy9hdWRpdC1yZXBvcnQtcG9wdXAvYXVkaXQtcmVwb3J0LXBvcHVwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLEtBQUssRUFBMkMsTUFBTSxlQUFlLENBQUM7QUFHN0csT0FBTyxLQUFLLFFBQVEsTUFBTSxXQUFXLENBQUM7QUFHdEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQWdCLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7QUFTeEQsTUFBTSxPQUFPLHlCQUF5QjtJQXVCakI7SUFDVjtJQUNDO0lBQ0Q7SUFBd0I7SUFBb0M7SUFDNUQ7SUFBa0M7SUFBK0I7SUF6QjFFLGNBQWMsR0FBUSxDQUFDLENBQUM7SUFDeEIsa0JBQWtCLEdBQVEsQ0FBQyxDQUFDO0lBQzVCLGtCQUFrQixHQUFRLENBQUMsQ0FBQztJQUM1QixnQkFBZ0IsQ0FBTTtJQUN0QixhQUFhLENBQU07SUFDbkIsaUJBQWlCLENBQU07SUFDdkIsaUJBQWlCLENBQU07SUFDdkIsVUFBVSxDQUFNO0lBQ2hCLElBQUksR0FBWSxLQUFLLENBQUM7SUFDdEIsVUFBVSxHQUFZLEtBQUssQ0FBQztJQUM1QixRQUFRLEdBQVEsRUFBRSxDQUFDO0lBQ1YsWUFBWSxDQUFNO0lBQ0EsWUFBWSxDQUFNO0lBQzVCLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQzFDLFVB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Qjt5U0FpQnpCLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ3FCLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQsIElucHV0LCB2aWV3Q2hpbGQsIE9uRGVzdHJveSwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiTW9kYWwsIE5nYkFjdGl2ZU1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBBdWRpdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hdWRpdC5zZXJ2aWNlJztcclxuaW1wb3J0ICogYXMgTFpTdHJpbmcgZnJvbSAnbHotc3RyaW5nJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1zaGFyZWQnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUaW1lclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90aW1lci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGlja2V0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RpY2tldC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWF1ZGl0LXJlcG9ydC1wb3B1cCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2F1ZGl0LXJlcG9ydC1wb3B1cC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2F1ZGl0LXJlcG9ydC1wb3B1cC5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1ZGl0UmVwb3J0UG9wdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIFJldGFnanVua2NvdW50OiBhbnkgPSAwO1xyXG4gIFJldGFnZW1wbG95ZWVjb3VudDogYW55ID0gMDtcclxuICBSZXRhZ2N1c3RvbWVyY291bnQ6IGFueSA9IDA7XHJcbiAgZGVtb2dyYXBoaWNDb3VudDogYW55O1xyXG4gIHJldGFnanVua2RhdGE6IGFueTtcclxuICByZXRhZ2VtcGxveWVlZGF0YTogYW55O1xyXG4gIHJldGFnY3VzdG9tZXJkYXRhOiBhbnk7XHJcbiAgdG90YWxmaWxlczogYW55O1xyXG4gIGF1dGg6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzdWJtaXRhdXRoOiBib29sZWFuID0gZmFsc2U7XHJcbiAgRXJyb3Jtc2c6IGFueSA9ICcnO1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkVHlwZTogYW55O1xyXG4gIEBWaWV3Q2hpbGQoJ2NvbmZpcm1lcnJvcicpIGNvbmZpcm1lcnJvcjogYW55O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIHRpbWVQYXNzZWQ6IG51bWJlciA9IDA7XHJcbiAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcclxuICBmb3JtYXR0ZWRUaW1lOiBzdHJpbmcgPSAnMDA6MDA6MDAnO1xyXG4gIGNhdGVnb3J5OiBhbnkgPSBbXVxyXG4gIGNlbnRyYWxPcHNEYXRhOiBhbnk7XHJcbiAgdGFuZ29EYXRhOiBhbnk7XHJcbiAgdGFuZ29BY2N1cmFjeTphbnk9JydcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCxcclxuICAgIHB1YmxpYyBhY3RpdmVNb2RhbDogTmdiQWN0aXZlTW9kYWwsXHJcbiAgICBwcml2YXRlIHNlcnZpY2U6IFRpY2tldFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgdGltZXJTZXJ2aWNlOiBUaW1lclNlcnZpY2UsIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHVibGljIGFwaXNlcnZpY2U6IEF1ZGl0U2VydmljZSwgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsIHByaXZhdGUgdG9hc3Q6IFRvYXN0U2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgbGV0IGZpbGVkYXRhID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd0b3RhbGZpbGVzJykgfHwgJ3t9JylcclxuICAgIHRoaXMudG90YWxmaWxlcyA9IGZpbGVkYXRhO1xyXG4gICAgdGhpcy5hcGlzZXJ2aWNlLmdldEF1ZGl0Y29uZmlnKGZpbGVkYXRhPy5maWxlZGV0YWlscz8uY2xpZW50SWQpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcz8uY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuY2F0ZWdvcnkgPSByZXMuZGF0YS5mb290ZmFsbERpcmVjdG9yeUNvbmZpZ3MudGFnZ2luZ0xpbWl0YXRpb25cclxuXHJcblxyXG4gICAgICAgICAgdGhpcy5jYXRlZ29yeS5tYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgZmlsdGVyRGF0YSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShkYXRhPy50eXBlKSB8fCAne30nKVxyXG4gICAgICAgICAgICBkYXRhLnZhbHVlID0gZmlsdGVyRGF0YVxyXG4gICAgICAgICAgICBkYXRhLmNvdW50ID0gZGF0YT8udmFsdWU/Lmxlbmd0aFxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwi8J+agCB+IEF1ZGl0UmVwb3J0UG9wdXBDb21wb25lbnQgfiBuZ09uSW5pdCB+IHRoaXMuY2F0ZWdvcnk6XCIsIHRoaXMuY2F0ZWdvcnkpXHJcbiAgICAgICAgICBsZXQgc3RyaW5naWZ5ZGF0YSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2F1ZGl0JykgfHwgJ3t9J1xyXG4gICAgICAgICAgY29uc3QgZGVjb21wcmVzc2VkRGF0YSA9IExaU3RyaW5nLmRlY29tcHJlc3Moc3RyaW5naWZ5ZGF0YSk7XHJcbiAgICAgICAgICB2YXIgY3VzdG9tZXIgPSBKU09OLnBhcnNlKGRlY29tcHJlc3NlZERhdGEgfHwgJ3t9JylcclxuICAgICAgICAgIHRoaXMuUmV0YWdjdXN0b21lcmNvdW50ID0gY3VzdG9tZXIubGVuZ3RoXHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIvCfmoAgfiBBdWRpdFJlcG9ydFBvcHVwQ29tcG9uZW50IH4gbmdPbkluaXQgfiB0aGlzLnRvdGFsZmlsZXM6XCIsIHRoaXMudG90YWxmaWxlcylcclxuICAgICAgICAgIGxldCBpbnB1dCA9IHtcclxuICAgICAgICAgICAgc3RvcmVJZDogdGhpcy50b3RhbGZpbGVzPy5maWxlZGV0YWlscz8uc3RvcmVJZCxcclxuICAgICAgICAgICAgZGF0ZVN0cmluZzogdGhpcy50b3RhbGZpbGVzPy5maWxlZGV0YWlscz8uRGF0ZSxcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuc2VydmljZVxyXG4gICAgICAgICAgICAuY2hlY2tUaWNrZXRFeGlzdHMoaW5wdXQpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXMgJiYgcmVzPy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVzLmRhdGEpXHJcbiAgICAgICAgICAgICAgICAgIGxldCB0aWNrZXRMaXN0ID0gcmVzPy5kYXRhXHJcbiAgICAgICAgICAgICAgICAgIGxldCBmaW5kc3RvcmV0aWNrZXQgPSB0aWNrZXRMaXN0LmZpbHRlcigoZGF0YTogYW55KSA9PiBkYXRhPy5fc291cmNlPy50eXBlID09PSAnc3RvcmUnICYmIGRhdGE/Ll9zb3VyY2U/LnN0YXR1cyAhPSBcIkNsb3NlZFwiKVswXT8uX3NvdXJjZVxyXG4gICAgICAgICAgICAgICAgICBpZiAoZmluZHN0b3JldGlja2V0ICYmIGZpbmRzdG9yZXRpY2tldD8ubWFwcGluZ0luZm8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2VudHJhbE9wc0RhdGEgPSBmaW5kc3RvcmV0aWNrZXQubWFwcGluZ0luZm8uZmlsdGVyKChkYXRhOiBhbnkpID0+IGRhdGEudHlwZSAhPSBcInRhbmdvcmV2aWV3XCIpWzBdXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLwn5qAIH4gVGlja2V0Y2xvc2Vwb3B1cENvbXBvbmVudCB+IG5nT25Jbml0IH4gdGhpcy5jZW50cmFsT3BzRGF0YTpcIiwgdGhpcy5jZW50cmFsT3BzRGF0YSlcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLnRhbmdvQWNjdXJhY3kgID0gTWF0aC5yb3VuZCgodGhpcy5SZXRhZ2N1c3RvbWVyY291bnQvdGhpcy50b3RhbGZpbGVzPy50b3RhbGZpbGVzKSoxMDApXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudGFuZ29EYXRhID17XHJcbiAgICAgICAgICAgICAgICAgICAgcmV2aWNlZEZvb3RmYWxsOnRoaXMuUmV0YWdjdXN0b21lcmNvdW50LFxyXG4gICAgICAgICAgICAgICAgICAgIHJldmljZWRQZXJjOnRoaXMudGFuZ29BY2N1cmFjeStcIiVcIlxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG5cclxuXHJcblxyXG5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICB0aGlzLnNldFRpbWVyKCk7XHJcbiAgfVxyXG5cclxuICBzZXRUaW1lcigpIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy50aW1lclNlcnZpY2UuZ2V0VGltZVBhc3NlZCgpLnN1YnNjcmliZSh0aW1lID0+IHtcclxuICAgICAgdGhpcy50aW1lUGFzc2VkID0gdGltZTtcclxuICAgICAgdGhpcy5mb3JtYXR0ZWRUaW1lID0gdGhpcy50aW1lclNlcnZpY2UuZm9ybWF0VGltZSh0aW1lKTtcclxuICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMudGltZXJTZXJ2aWNlLnN0YXJ0VGltZXIoKTtcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMuaGFuZGxlR2xvYmFsTW91c2VFdmVudCk7XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuaGFuZGxlR2xvYmFsTW91c2VFdmVudCk7XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgdGhpcy5oYW5kbGVHbG9iYWxNb3VzZUV2ZW50KTtcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuaGFuZGxlR2xvYmFsTW91c2VFdmVudCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVHbG9iYWxNb3VzZUV2ZW50ID0gKCk6IHZvaWQgPT4ge1xyXG4gICAgdGhpcy50aW1lclNlcnZpY2Uuc3RhcnRUaW1lcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLmhhbmRsZUdsb2JhbE1vdXNlRXZlbnQpO1xyXG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmhhbmRsZUdsb2JhbE1vdXNlRXZlbnQpO1xyXG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIHRoaXMuaGFuZGxlR2xvYmFsTW91c2VFdmVudCk7XHJcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLmhhbmRsZUdsb2JhbE1vdXNlRXZlbnQpO1xyXG4gICAgdGhpcy50aW1lclNlcnZpY2UuY2xlYXJUaW1lcigpXHJcbiAgfVxyXG5cclxuICBjaGFuZ2VicmFuZCgpIHtcclxuICAgIHRoaXMuYXV0aCA9IHRydWU7XHJcbiAgICB2YXIgdG90YWxmaWxlOiBhbnkgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3RvdGFsZmlsZXMnKSB8fCAne30nKTtcclxuXHJcbiAgICBsZXQganVua2ltYWdlOiBhbnkgPSBbXTtcclxuICAgIGxldCBlbXBsb3llZWltYWdlOiBhbnkgPSBbXTtcclxuICAgIGxldCBjdXN0b21lcmltYWdlOiBhbnkgPSBbXTtcclxuXHJcbiAgICB0aGlzLnJldGFnanVua2RhdGEubWFwKChlOiBhbnkpID0+IHtcclxuICAgICAgZGVsZXRlIGUuaW1nX3BhdGg7IGRlbGV0ZSBlLnNlbGVjdGVkOyBkZWxldGUgZS5jb3VudDtcclxuICAgICAgZGVsZXRlIGUuZHJvcHBlZDsgZGVsZXRlIGUubWFwcGVkaWQ7XHJcbiAgICAgIGp1bmtpbWFnZS5wdXNoKGUpO1xyXG4gICAgfSlcclxuICAgIHRoaXMucmV0YWdlbXBsb3llZWRhdGEubWFwKChlOiBhbnkpID0+IHtcclxuICAgICAgZGVsZXRlIGUuaW1nX3BhdGg7IGRlbGV0ZSBlLnNlbGVjdGVkOyBkZWxldGUgZS5jb3VudDtcclxuICAgICAgZGVsZXRlIGUuZHJvcHBlZDsgZGVsZXRlIGUubWFwcGVkaWQ7XHJcbiAgICAgIGVtcGxveWVlaW1hZ2UucHVzaChlKTtcclxuICAgIH0pXHJcblxyXG4gICAgdGhpcy5yZXRhZ2N1c3RvbWVyZGF0YS5tYXAoKGU6IGFueSkgPT4ge1xyXG5cclxuICAgICAgaWYgKGUuY291bnQgPiAxKSB7XHJcbiAgICAgICAgZGVsZXRlIGUuaW1nX3BhdGg7XHJcbiAgICAgICAgZGVsZXRlIGUuc2VsZWN0ZWQ7XHJcbiAgICAgICAgZGVsZXRlIGUuZHJvcHBlZDtcclxuICAgICAgICB2YXIgcmVzdWx0ID0gZS5tYXBwZWRpZDtcclxuICAgICAgICBlLm1hcHBlZGlkID0gcmVzdWx0XHJcbiAgICAgICAgZS5jb3VudCA9IHJlc3VsdC5sZW5ndGhcclxuICAgICAgICBlLm1hcHBlZGlkLmZvckVhY2goKGUxOiBhbnkpID0+IHsgZGVsZXRlIGUxLmltZ19wYXRoIH0pXHJcbiAgICAgICAgY3VzdG9tZXJpbWFnZS5wdXNoKGUpXHJcbiAgICAgIH1cclxuICAgICAgaWYgKGUuZGVtb2dyYXBoaWMgPT09ICdkJyAmJiBlLmNvdW50ID09PSAxKSB7XHJcbiAgICAgICAgZGVsZXRlIGUuaW1nX3BhdGg7XHJcbiAgICAgICAgZGVsZXRlIGUuc2VsZWN0ZWQ7XHJcbiAgICAgICAgZGVsZXRlIGUuZHJvcHBlZDtcclxuICAgICAgICB2YXIgcmVzdWx0ID0gZS5tYXBwZWRpZDtcclxuICAgICAgICBlLm1hcHBlZGlkID0gcmVzdWx0XHJcbiAgICAgICAgZS5jb3VudCA9IHJlc3VsdC5sZW5ndGhcclxuICAgICAgICBlLm1hcHBlZGlkLmZvckVhY2goKGUxOiBhbnkpID0+IHsgZGVsZXRlIGUxLmltZ19wYXRoIH0pXHJcbiAgICAgICAgY3VzdG9tZXJpbWFnZS5wdXNoKGUpXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICB2YXIgb2JqOiBhbnkgPSB7XHJcbiAgICAgIGF1ZGl0SWQ6IHRvdGFsZmlsZT8uYXVkaXRJZCA/IHRvdGFsZmlsZT8uYXVkaXRJZCA6IHRvdGFsZmlsZT8uZmlsZWRldGFpbHM/LmF1ZGl0SWQsXHJcbiAgICAgIHN0b3JlSWQ6IHRvdGFsZmlsZT8uZmlsZWRldGFpbHM/LnN0b3JlX2lkLFxyXG4gICAgICBhdWRpdFR5cGU6IHRvdGFsZmlsZT8uZmlsZWRldGFpbHM/LnR5cGUsXHJcbiAgICAgIGZpbGVEYXRlOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5maWxlX2RhdGUsXHJcbiAgICAgIGJlZm9yZUNvdW50OiB0b3RhbGZpbGU/LnRvdGFsZmlsZXMsXHJcbiAgICAgIGp1bmtDb3VudDogdGhpcy5SZXRhZ2p1bmtjb3VudCxcclxuICAgICAganVuazoganVua2ltYWdlID8ganVua2ltYWdlIDogW10sXHJcbiAgICAgIGVtcGxveWVlQ291bnQ6IHRoaXMuUmV0YWdlbXBsb3llZWNvdW50LFxyXG4gICAgICBlbXBsb3llZTogZW1wbG95ZWVpbWFnZSA/IGVtcGxveWVlaW1hZ2UgOiBbXSxcclxuICAgICAgY3VzdG9tZXJDb3VudDogdGhpcy5SZXRhZ2N1c3RvbWVyY291bnQsXHJcbiAgICAgIHpvbmVOYW1lOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy56b25lTmFtZSA/IHRvdGFsZmlsZT8uZmlsZWRldGFpbHM/LnpvbmVOYW1lIDogJycsXHJcbiAgICAgIG1vZHVsZVR5cGU6IHRoaXMuc2VsZWN0ZWRUeXBlLFxyXG4gICAgICBjdXN0b21lcjogY3VzdG9tZXJpbWFnZSA/IGN1c3RvbWVyaW1hZ2UgOiBbXSxcclxuICAgICAgdGltZVNwZW50OiB0aGlzLnRpbWVQYXNzZWRcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmFwaXNlcnZpY2Uuc2F2ZWF1ZGl0KG9iaikucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldFN1Y2Nlc3NUb2FzdChyZXM/LmRhdGE/LnJlc3VsdClcclxuICAgICAgICAgIHRoaXMuYXV0aCA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy50aW1lclNlcnZpY2UucmVzZXRUaW1lcigpXHJcbiAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCd0aW1lU3BlbnQnKVxyXG4gICAgICAgICAgdGhpcy5jbG9zZXBvcHVwKClcclxuICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oJ2VtcGxveWVlJylcclxuICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oJ2p1bmsnKVxyXG4gICAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgnYXVkaXQnKVxyXG4gICAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgndG90YWxmaWxlcycpXHJcbiAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCdyZXRhZycpXHJcblxyXG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbWFuYWdlL3RpY2tldHMnXSwgeyBxdWVyeVBhcmFtczogeyB0eXBlOiAnZm9vdGZhbGwnIH0gfSlcclxuXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuYXV0aCA9IGZhbHNlO1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDMpIHtcclxuICAgICAgICAgICAgdGhpcy5FcnJvcm1zZyA9IHJlcy5lcnJvclxyXG4gICAgICAgICAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy5jb25maXJtZXJyb3IpXHJcbiAgICAgICAgICAgIG1vZGFsUmVmLnJlc3VsdC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICBpZiAocmVzdWx0LmlzQ29uZmlybWVkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9tYW5hZ2UvdGlja2V0cyddLCB7IHF1ZXJ5UGFyYW1zOiB7IHR5cGU6ICdmb290ZmFsbCcgfSB9KVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gZXJyPy5lcnJvcj8ubWVzc2FnZSB8fCBlcnI/LmVycm9yPy5lcnJvciB8fCBlcnI/Lm1lc3NhZ2UgfHwgJ0ludmFsaWQgc3RhdHVzIGNvZGU6IHVuZGVmaW5lZCc7XHJcbiAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KGVycm9yTWVzc2FnZSk7XHJcbiAgICAgIH0sXHJcblxyXG4gICAgfSlcclxuXHJcbiAgfVxyXG5cclxuICBuZXh0ZmlsZSgpIHtcclxuICAgIHRoaXMuYXV0aCA9IHRydWU7XHJcbiAgICBsZXQgdG90YWxmaWxlOiBhbnkgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3RvdGFsZmlsZXMnKSB8fCAne30nKTtcclxuICAgIGNvbnNvbGUubG9nKFwi8J+agCB+IEF1ZGl0UmVwb3J0UG9wdXBDb21wb25lbnQgfiBuZXh0ZmlsZSB+IHRvdGFsZmlsZTpcIiwgdG90YWxmaWxlKVxyXG4gICAgbGV0IHJldmlzZWREZXRhaWw6IGFueSA9IFtdXHJcbiAgICBsZXQgc3RyaW5naWZ5ZGF0YSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2F1ZGl0JykgfHwgJ3t9J1xyXG4gICAgY29uc3QgZGVjb21wcmVzc2VkRGF0YSA9IExaU3RyaW5nLmRlY29tcHJlc3Moc3RyaW5naWZ5ZGF0YSk7XHJcbiAgICB2YXIgY3VzdG9tZXIgPSBKU09OLnBhcnNlKGRlY29tcHJlc3NlZERhdGEgfHwgJ3t9JylcclxuICAgIGN1c3RvbWVyLm1hcCgoY3VzdG9tZXJEYXRhOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGN1c3RvbWVyRGF0YS5jb3VudCA+IDEpIHtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIvCfmoAgfiBBdWRpdFJlcG9ydFBvcHVwQ29tcG9uZW50IH4gbmV4dGZpbGUgfiBjdXN0b21lckRhdGE6XCIsIGN1c3RvbWVyRGF0YSlcclxuICAgICAgICBsZXQgZHVwbGljYXRlRGF0YSA9IGN1c3RvbWVyRGF0YS5tYXBwZWRpZC5maWx0ZXIoKGRhdGE6IGFueSkgPT4gZGF0YS5pbWdfbmFtZSAhPSBjdXN0b21lckRhdGE/LmltZ19uYW1lKVxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi8J+agCB+IEF1ZGl0UmVwb3J0UG9wdXBDb21wb25lbnQgfiBuZXh0ZmlsZSB+IGR1cGxpY2F0ZURhdGE6XCIsIGR1cGxpY2F0ZURhdGEpXHJcbiAgICAgICAgbGV0IGR1cGxpY2F0ZUltYWdlOiBhbnkgPSBbXVxyXG4gICAgICAgIGR1cGxpY2F0ZURhdGEubWFwKChkdXBEYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgIGR1cGxpY2F0ZUltYWdlLnB1c2goXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBcImlkXCI6IGAke3RvdGFsZmlsZT8uZmlsZWRldGFpbHM/LnN0b3JlSWR9XyR7dG90YWxmaWxlPy5maWxlZGV0YWlscz8uRGF0ZX1fJHtkdXBEYXRhPy5pbWdfbmFtZX1gLFxyXG4gICAgICAgICAgICAgIFwidGVtcElkXCI6IGR1cERhdGE/LmltZ19uYW1lLFxyXG4gICAgICAgICAgICAgIFwiZmlsZVBhdGhcIjogZHVwRGF0YT8uaW1nX3BhdGgsXHJcbiAgICAgICAgICAgICAgXCJpc0NoZWNrZWRcIjogdHJ1ZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICApXHJcblxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgbGV0IG5ld09iajogYW55ID0ge1xyXG4gICAgICAgICAgXCJpZFwiOiBgJHt0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5zdG9yZUlkfV8ke3RvdGFsZmlsZT8uZmlsZWRldGFpbHM/LkRhdGV9XyR7Y3VzdG9tZXJEYXRhPy5pbWdfbmFtZX1gLFxyXG4gICAgICAgICAgXCJjbGllbnRJZFwiOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5jbGllbnRJZCxcclxuICAgICAgICAgIFwic3RvcmVJZFwiOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5zdG9yZUlkLFxyXG4gICAgICAgICAgXCJ0ZW1wSWRcIjogY3VzdG9tZXJEYXRhPy5pbWdfbmFtZSxcclxuICAgICAgICAgIFwiZGF0ZVN0cmluZ1wiOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5EYXRlLFxyXG4gICAgICAgICAgXCJ0aW1lUmFuZ2VcIjogXCIxMUFNLTEyUE1cIixcclxuICAgICAgICAgIFwicHJvY2Vzc1R5cGVcIjogXCJmb290ZmFsbFwiLFxyXG4gICAgICAgICAgXCJyZXZvcHNUeXBlXCI6IFwiZHVwbGljYXRlXCIsXHJcbiAgICAgICAgICBcImZpbGVQYXRoXCI6IGN1c3RvbWVyRGF0YT8uaW1nX3BhdGgsXHJcbiAgICAgICAgICBcInN0YXR1c1wiOiBcInN1Ym1pdHRlZFwiLFxyXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxyXG4gICAgICAgICAgXCJpc0NoZWNrZWRcIjogdHJ1ZSxcclxuICAgICAgICAgIFwidHlwZVwiOiBcInRhZ2dpbmctcmVmbGVjdFwiLFxyXG4gICAgICAgICAgXCJwYXJlbnRcIjogbnVsbCxcclxuICAgICAgICAgIFwiaXNQYXJlbnRcIjogdHJ1ZSxcclxuICAgICAgICAgIFwiZHVwbGljYXRlSW1hZ2VcIjogZHVwbGljYXRlSW1hZ2VcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc29sZS5sb2coXCLwn5qAIH4gQXVkaXRSZXBvcnRQb3B1cENvbXBvbmVudCB+IG5leHRmaWxlIH4gbmV3T2JqOlwiLCBuZXdPYmopXHJcbiAgICAgICAgcmV2aXNlZERldGFpbC5wdXNoKG5ld09iailcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIvCfmoAgfiBBdWRpdFJlcG9ydFBvcHVwQ29tcG9uZW50IH4gbmV4dGZpbGUgfiBjdXN0b21lckRhdGE6XCIsIGN1c3RvbWVyRGF0YSlcclxuICAgICAgICBsZXQgbmV3T2JqOiBhbnkgPSB7XHJcbiAgICAgICAgICBcImlkXCI6IGAke3RvdGFsZmlsZT8uZmlsZWRldGFpbHM/LnN0b3JlSWR9XyR7dG90YWxmaWxlPy5maWxlZGV0YWlscz8uRGF0ZX1fJHtjdXN0b21lckRhdGE/LmltZ19uYW1lfWAsXHJcbiAgICAgICAgICBcImNsaWVudElkXCI6IHRvdGFsZmlsZT8uZmlsZWRldGFpbHM/LmNsaWVudElkLFxyXG4gICAgICAgICAgXCJzdG9yZUlkXCI6IHRvdGFsZmlsZT8uZmlsZWRldGFpbHM/LnN0b3JlSWQsXHJcbiAgICAgICAgICBcInRlbXBJZFwiOiBjdXN0b21lckRhdGE/LmltZ19uYW1lLFxyXG4gICAgICAgICAgXCJkYXRlU3RyaW5nXCI6IHRvdGFsZmlsZT8uZmlsZWRldGFpbHM/LkRhdGUsXHJcbiAgICAgICAgICBcInRpbWVSYW5nZVwiOiBcIjExQU0tMTJQTVwiLFxyXG4gICAgICAgICAgXCJwcm9jZXNzVHlwZVwiOiBcImZvb3RmYWxsXCIsXHJcbiAgICAgICAgICBcInJldm9wc1R5cGVcIjogXCJkdXBsaWNhdGVcIixcclxuICAgICAgICAgIFwiZmlsZVBhdGhcIjogY3VzdG9tZXJEYXRhPy5pbWdfcGF0aCxcclxuICAgICAgICAgIFwic3RhdHVzXCI6IFwic3VibWl0dGVkXCIsXHJcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXHJcbiAgICAgICAgICBcImlzQ2hlY2tlZFwiOiB0cnVlLFxyXG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGFnZ2luZy1yZWZsZWN0XCIsXHJcbiAgICAgICAgICBcInBhcmVudFwiOiBudWxsLFxyXG4gICAgICAgICAgXCJpc1BhcmVudFwiOiB0cnVlLFxyXG4gICAgICAgICAgXCJkdXBsaWNhdGVJbWFnZVwiOiBbXVxyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zb2xlLmxvZyhcIvCfmoAgfiBBdWRpdFJlcG9ydFBvcHVwQ29tcG9uZW50IH4gbmV4dGZpbGUgfiBuZXdPYmo6XCIsIG5ld09iailcclxuICAgICAgICByZXZpc2VkRGV0YWlsLnB1c2gobmV3T2JqKVxyXG4gICAgICB9XHJcblxyXG5cclxuICAgIH0pXHJcbiAgICBsZXQgY291bnQ6IGFueSA9IFtdXHJcbiAgICB0aGlzLmNhdGVnb3J5Lm1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgIGNvdW50LnB1c2goe1xyXG4gICAgICAgIG5hbWU6IGRhdGEubmFtZSxcclxuICAgICAgICB2YWx1ZTogZGF0YS5jb3VudCxcclxuICAgICAgICB0eXBlOiBkYXRhLnR5cGVcclxuICAgICAgfSlcclxuICAgICAgbGV0IGZpbHRlckRhdGEgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oZGF0YT8udHlwZSkgfHwgJ1tdJylcclxuXHJcbiAgICAgIGZpbHRlckRhdGEubWFwKChvdGhlckRhdGE6IGFueSkgPT4ge1xyXG5cclxuICAgICAgICBsZXQgb3RoZXJPYmo6IGFueSA9IHtcclxuICAgICAgICAgIFwiaWRcIjogYCR7dG90YWxmaWxlPy5maWxlZGV0YWlscz8uc3RvcmVJZH1fJHt0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5EYXRlfV8ke290aGVyRGF0YT8uaW1nX25hbWV9YCxcclxuICAgICAgICAgIFwiY2xpZW50SWRcIjogdG90YWxmaWxlPy5maWxlZGV0YWlscz8uY2xpZW50SWQsXHJcbiAgICAgICAgICBcInN0b3JlSWRcIjogdG90YWxmaWxlPy5maWxlZGV0YWlscz8uc3RvcmVJZCxcclxuICAgICAgICAgIFwidGVtcElkXCI6IG90aGVyRGF0YT8uaW1nX25hbWUsXHJcbiAgICAgICAgICBcImRhdGVTdHJpbmdcIjogdG90YWxmaWxlPy5maWxlZGV0YWlscz8uRGF0ZSxcclxuICAgICAgICAgIFwicHJvY2Vzc1R5cGVcIjogXCJmb290ZmFsbFwiLFxyXG4gICAgICAgICAgXCJyZXZvcHNUeXBlXCI6IGRhdGE/LnR5cGUsXHJcbiAgICAgICAgICBcImZpbGVQYXRoXCI6IG90aGVyRGF0YT8uaW1nX3BhdGgsXHJcbiAgICAgICAgICBcInN0YXR1c1wiOiBcInN1Ym1pdHRlZFwiLFxyXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxyXG4gICAgICAgICAgXCJpc0NoZWNrZWRcIjogdHJ1ZSxcclxuICAgICAgICAgIFwidHlwZVwiOiBcInRhZ2dpbmctcmVmbGVjdFwiLFxyXG4gICAgICAgICAgXCJwYXJlbnRcIjogbnVsbCxcclxuICAgICAgICAgIFwiaXNQYXJlbnRcIjogZmFsc2UsXHJcbiAgICAgICAgICBcImR1cGxpY2F0ZUltYWdlXCI6IFtdXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldmlzZWREZXRhaWwucHVzaChvdGhlck9iailcclxuICAgICAgfSlcclxuICAgIH0pXHJcblxyXG5cclxuICAgIGxldCB0aWNrZXRUeXBlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndGlja2V0VHlwZScpXHJcblxyXG4gICAgdmFyIG9iajogYW55ID0ge1xyXG4gICAgICBcInR5cGVcIjogXCJ0YW5nb3Jldmlld1wiLFxyXG4gICAgICBcIm1vZGVcIjogXCJ3ZWJcIixcclxuICAgICAgXCJyZXZpY2VkRm9vdGZhbGxcIjogdGhpcy5SZXRhZ2N1c3RvbWVyY291bnQsXHJcblxyXG4gICAgICBcInJldmljZWRQZXJjXCI6IE1hdGgucm91bmQoKHRoaXMuUmV0YWdjdXN0b21lcmNvdW50IC8gdG90YWxmaWxlPy50b3RhbGZpbGVzKSAqIDEwMCkgKyBcIiVcIixcclxuICAgICAgY291bnQ6IGNvdW50LFxyXG4gICAgICByZXZpc2VkRGV0YWlsOiByZXZpc2VkRGV0YWlsXHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZyhcIvCfmoAgfiBBdWRpdFJlcG9ydFBvcHVwQ29tcG9uZW50IH4gbmV4dGZpbGUgfiBvYmo6XCIsIG9iailcclxuICAgIC8vIHJldHVyblxyXG4gICAgbGV0IHBheWxvYWQgPSB7XHJcbiAgICAgIHN0b3JlSWQ6IHRvdGFsZmlsZT8uZmlsZWRldGFpbHM/LnN0b3JlSWQsXHJcbiAgICAgIFwiZGF0ZVN0cmluZ1wiOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5EYXRlLFxyXG4gICAgICB0aWNrZXRUeXBlOiB0aWNrZXRUeXBlLFxyXG4gICAgICBtYXBwaW5nSW5mbzogb2JqXHJcbiAgICB9XHJcbiAgICB0aGlzLmFwaXNlcnZpY2Uuc2F2ZWF1ZGl0KHBheWxvYWQpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy5hdXRoID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnRpbWVyU2VydmljZS5yZXNldFRpbWVyKClcclxuICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oJ3RpbWVTcGVudCcpXHJcbiAgICAgICAgICB0aGlzLmNsb3NlcG9wdXAoKVxyXG4gICAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgnZW1wbG95ZWUnKVxyXG4gICAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgnanVuaycpXHJcbiAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCdhdWRpdCcpXHJcbiAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCd0b3RhbGZpbGVzJylcclxuICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oJ3JldGFnJylcclxuICAgICAgICAgIHZhciBvYmo6IGFueSA9IHtcclxuICAgICAgICAgICAgdG90YWxmaWxlczoge1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBvYmoudG90YWxmaWxlcy5xdWV1ZU5hbWUgPSB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5xdWV1ZU5hbWVcclxuICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ3RvdGFsZmlsZXMnLCBKU09OLnN0cmluZ2lmeShvYmopKVxyXG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbWFuYWdlL3RpY2tldHMnXSwgeyBxdWVyeVBhcmFtczogeyB0eXBlOiAnZm9vdGZhbGwnIH0gfSlcclxuXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuYXV0aCA9IGZhbHNlO1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDMpIHtcclxuICAgICAgICAgICAgdGhpcy5FcnJvcm1zZyA9IHJlcy5lcnJvclxyXG4gICAgICAgICAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy5jb25maXJtZXJyb3IpXHJcbiAgICAgICAgICAgIG1vZGFsUmVmLnJlc3VsdC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICBpZiAocmVzdWx0LmlzQ29uZmlybWVkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9tYW5hZ2UvdGlja2V0cyddLCB7IHF1ZXJ5UGFyYW1zOiB7IHR5cGU6ICdmb290ZmFsbCcgfSB9KVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGVycj8uZXJyb3I/Lm1lc3NhZ2UgfHwgZXJyPy5lcnJvcj8uZXJyb3IgfHwgZXJyPy5tZXNzYWdlIHx8ICdJbnZhbGlkIHN0YXR1cyBjb2RlOiB1bmRlZmluZWQnO1xyXG4gICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChlcnJvck1lc3NhZ2UpO1xyXG4gICAgICB9LFxyXG4gICAgfSlcclxuXHJcbiAgfVxyXG4gIGNsb3NlcG9wdXAoKSB7XHJcbiAgICB0aGlzLmFjdGl2ZU1vZGFsLmNsb3NlKCk7XHJcbiAgfVxyXG5cclxuICByZXZpZXdkYXRhKCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1wiL21hbmFnZS90aWNrZXRzL21hcHBpbmctbGlzdFwiXSlcclxuICAgIHRoaXMuYWN0aXZlTW9kYWwuY2xvc2UoKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtb2RhbCBmYWRlIHNob3cgZC1ibG9ja1wiIHRhYmluZGV4PVwiLTFcIiByb2xlPVwiZGlhbG9nXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtZGlhbG9nIG1vZGFsLWRpYWxvZy1jZW50ZXJlZFwiIHJvbGU9XCJkb2N1bWVudFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50IG1lcmdlLXRpY2tldC1tb2RhbFwiPlxyXG5cclxuICAgICAgICAgICAgPCEtLSBIZWFkZXIgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgYm9yZGVyLTAgcGItMFwiPlxyXG4gICAgICAgICAgICAgICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIj5DbG9zZSB0aWNrZXQ8L2g1PlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4tY2xvc2VcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwiY2xvc2Vwb3B1cCgpXCI+PC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPCEtLSBCb2R5IC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRhbmdvQWNjdXJhY3k+ODUmJmNlbnRyYWxPcHNEYXRhPy5yZXZpY2VkRm9vdGZhbGxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIm1iLTBcIj5UaGUgdGlja2V0IHdpbGwgYmUgPGI+4oCcY2xvc2Vk4oCdPC9iPiBhbmQgdXBkYXRlZCBpbiB0aGUgc3RvcmUgYXMgYSBmaW5hbCByZXZpc2lvbi48L3A+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0YW5nb0FjY3VyYWN5Pjg1JiYhY2VudHJhbE9wc0RhdGE/LnJldmljZWRGb290ZmFsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwibWItMFwiPllvdeKAmXJlIGFib3V0IHRvIGNsb3NlIHRoaXMgdGlja2V0LiBEbyB5b3Ugd2FudCB0byBwcm9jZWVkPzwvcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCEtLSBJbmZvIGJhbm5lciAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbGVydCBtZXJnZS1pbmZvIGQtZmxleFwiICpuZ0lmPVwidGFuZ29BY2N1cmFjeTw4NVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZS0zIG10LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS1pbmZvLWNpcmNsZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtYi0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgdGlja2V0IHdpbGwgYmUgPGI+4oCcY2xvc2Vk4oCdPC9iPiBhbmQgdXBkYXRlZCBpbiB0aGUgc3RvcmUgYXMgYSBmaW5hbCByZXZpc2lvbi5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpbmNlIGFjY3VyYWN5IGlzIGJlbG93IDg1JSwgaXQgd2lsbCBiZSBtYXJrZWQgYXMgYW4gPGI+4oCcT3Blbi1BY2N1cmFjeSBJc3N1ZeKAnTwvYj4gaW4gVGFuZ28uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQbGVhc2UgYWRkIHRoZSBjYXVzZSBmb3IgdGhlIGxvdyBhY2N1cmFjeS5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDwhLS0gQ2FyZHMgLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGctMyBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBDZW50cmFsIE9wcyAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1tZC02XCIgKm5nSWY9XCJjZW50cmFsT3BzRGF0YT8ucmV2aWNlZEZvb3RmYWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGgtMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGUgbWItMyBmdy1zZW1pYm9sZFwiPkNlbnRyYWwgT3BzPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1lbmQgbWItMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+e3tjZW50cmFsT3BzRGF0YT8ucmV2aWNlZEZvb3RmYWxsfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiPkZvb3RmYWxsPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1lbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZSB0ZXh0LXByaW1hcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NlbnRyYWxPcHNEYXRhPy5yZXZpY2VkUGVyY319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcnJvd1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY2VudHJhbE9wc0RhdGE/LnJldmljZWRGb290ZmFsbDx0YW5nb0RhdGE/LnJldmljZWRGb290ZmFsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDihpNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcnJvd1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY2VudHJhbE9wc0RhdGE/LnJldmljZWRGb290ZmFsbD50YW5nb0RhdGE/LnJldmljZWRGb290ZmFsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDihpFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiPkFjY3VyYWN5PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIFRhbmdvIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLW1kLTZcIiAqbmdJZj1cInRhbmdvRGF0YT8ucmV2aWNlZEZvb3RmYWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGgtMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGUgbWItMyBmdy1zZW1pYm9sZFwiPlRhbmdvPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1lbmQgbWItMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+e3t0YW5nb0RhdGE/LnJldmljZWRGb290ZmFsbH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIj5Gb290ZmFsbDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWUgdGV4dC1wcmltYXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3t0YW5nb0RhdGE/LnJldmljZWRQZXJjfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFycm93XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjZW50cmFsT3BzRGF0YT8ucmV2aWNlZEZvb3RmYWxsPnRhbmdvRGF0YT8ucmV2aWNlZEZvb3RmYWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKGk1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFycm93XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjZW50cmFsT3BzRGF0YT8ucmV2aWNlZEZvb3RmYWxsPHRhbmdvRGF0YT8ucmV2aWNlZEZvb3RmYWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKGkVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCI+QWNjdXJhY3k8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8IS0tIEZvb3RlciAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlciBib3JkZXItMCBwdC0wXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1zZWNvbmRhcnlcIiAoY2xpY2spPVwiY2xvc2Vwb3B1cCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgY2FuY2VsXHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cIm5leHRmaWxlKClcIj5cclxuICAgICAgICAgICAgICAgICAgICBzdWJtaXRcclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=