@james_jayaraj/test-npm 1.2.3 → 1.2.5

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.
@@ -1,4 +1,4 @@
1
- import { Component, Output, EventEmitter, ViewChild } from '@angular/core';
1
+ import { Component, Output, EventEmitter, ViewChild, Input } from '@angular/core';
2
2
  import { config, errorconfig } from '../environments/config';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "../services/common";
@@ -15,11 +15,13 @@ export class ReissuePopupComponent {
15
15
  this.submitEvent = new EventEmitter();
16
16
  this.AddressSendToAddType = "SMS";
17
17
  this.rxEmailFlag = true;
18
+ this.isResend = false;
18
19
  this.MobileNo = this.commonServices.patientDetails.phone;
19
20
  this.Email = this.commonServices.isScriptToPharmacy == 1 && this.commonServices.pharmacyEmail != null && this.commonServices.pharmacyEmail != "" ? this.commonServices.pharmacyEmail : this.commonServices.patientDetails.email;
20
21
  this.commonServices.isScriptToPharmacy == 1 ? this.AddressSendToAddType = "Email" : this.AddressSendToAddType = "SMS";
21
22
  }
22
23
  ngOnInit() {
24
+ this.isResend = this.modaldata?.isResend || false;
23
25
  try {
24
26
  document.documentElement.style.setProperty('--eprescription_popup_width', '450px');
25
27
  }
@@ -161,10 +163,10 @@ export class ReissuePopupComponent {
161
163
  }
162
164
  }
163
165
  ReissuePopupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ReissuePopupComponent, deps: [{ token: i0.ElementRef }, { token: i1.CommonServices }, { token: i0.ChangeDetectorRef }, { token: i2.ApiService }], target: i0.ɵɵFactoryTarget.Component });
164
- ReissuePopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ReissuePopupComponent, selector: "app-reissue-popup", outputs: { closeEvent: "closeEvent", submitEvent: "submitEvent" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["rxwidgets"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"ReactModalPortal e_prescription_box\">\r\n <div class=\"ReactModal__Overlay ReactModal__Overlay--after-open open_popup\">\r\n <div class=\"ReactModal__Content ReactModal__Content--after-open popup_header e_prescription_popup_inner_box\"\r\n tabindex=\"-1\" role=\"dialog\" aria-modal=\"true\">\r\n <p class=\"rx_record_change_popup\">Confirm Patient Contact Details</p><button type=\"button\"\r\n class=\"rx_record_popup_close\" (click)=\"close(1)\" [disabled]=\"this.commonServices.prescribeMedLoader\">X</button>\r\n <div class=\"content\">\r\n <hr class=\"m-0\">\r\n <div class=\"mdl-cell mdl-cell--12-col mdl-cell--8-col-tablet mdl-cell--4-col-phone new_rx_mobile_fullwidth\">\r\n <div class=\"details_width_flex\"><label class=\"label\">Send Token Via<span class=\"text_content\">*</span></label>\r\n </div>\r\n <div class=\"rx_new_popup_checkbox\">\r\n <div class=\"rx_new_radiobox_button rx-btn rx_radio_overall\">\r\n <label class=\"rx_radio_label\"><input [disabled]=\"this.commonServices.isScriptToPharmacy==1\" type=\"radio\" class=\"mdl-radio__button custom-radio-button\"\r\n name=\"AddressSendToAddType\" [value]=\"'SMS'\" (click)=\"radioChange(1)\"\r\n [checked]=\"AddressSendToAddType.toLowerCase() == 'sms'\" /><span\r\n class=\"mdl-radio__label radio_txt\">SMS</span></label>\r\n\r\n <label class=\"rx_radio_label\"><input type=\"radio\"\r\n [checked]=\"AddressSendToAddType.toLowerCase() == 'email'\" (click)=\"radioChange(2)\"\r\n class=\"mdl-radio__button d-inline radio custom-radio-button\" name=\"AddressSendToAddType\"\r\n [value]=\"'Email'\"><span class=\"mdl-radio__label radio_txt\">E-Mail</span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"AddressSendToAddType.toLowerCase() == 'sms'\"\r\n class=\"mdl-cell mdl-cell--12-col mdl-cell--8-col-tablet mdl-cell--4-col-phone mobilenumber-input addpatient-details-col \">\r\n <div class=\"mdl-textfield mdl-js-textfield first-row-input\">\r\n <div class=\"details_width_flex\"><label for=\"mobile-number\" class=\"no_txt_clr\">Mobile\r\n Number</label></div>\r\n <div class=\"details_flag_number\">\r\n <div class=\"img-w\"><span class=\"addpatient-country-flag\"><img\r\n src=\"https://passets.hola.health/rx-widgets/rx-australia.png\"></span>\r\n </div>\r\n <div class=\"details_mobileNo_input\"><input autocomplete=\"off\" class=\"mdl-textfield__input input_textfield\"\r\n type=\"tel\" id=\"mobile-number\" (keypress)=\"checkMobile($event)\" placeholder=\"04 123 45678\"\r\n [(ngModel)]=\"MobileNo\" style=\"text-decoration: none; border-bottom: none;\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"AddressSendToAddType.toLowerCase() == 'email'\"\r\n class=\"mdl-cell mdl-cell--12-col mdl-cell--8-col-tablet mdl-cell--4-col-phone mobilenumber-input addpatient-details-col \">\r\n <div class=\"mdl-textfield mdl-js-textfield first-row-input\">\r\n <div class=\"details_width_flex\"><label for=\"mobile-number\" class=\"no_txt_clr\">Email\r\n </label></div>\r\n <div class=\"details_flag_number\">\r\n <div class=\"details_mobileNo_input\"><input autocomplete=\"off\" class=\"mdl-textfield__input input_textfield\"\r\n type=\"email\" id=\"mobile-number\" placeholder=\"text@gmail.com\" [(ngModel)]=\"Email\"\r\n style=\"text-decoration: none; border-bottom: none;\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <hr class=\"m-0\"><br>\r\n <div class=\"btn-bottom\">\r\n <div class=\"btn-outer\"><button class=\"mdl-button mdl-js-button rx_record_change_popup_cancel cancel_send\"\r\n (click)=\"close(1)\" [disabled]=\"this.commonServices.prescribeMedLoader\">Cancel</button>\r\n </div>\r\n <div class=\"btn-send\">\r\n <!-- <button class=\"mdl-button mdl-js-button rx_record_change_popup_submit\" (click)=\"close(2)\">Re-Issue</button> -->\r\n <button class=\"mdl-button mdl-js-button rx_record_change_popup_submit\"\r\n style=\"position: relative;width: 110px;padding: 0;height: 38px !important;\"\r\n [disabled]=\"this.commonServices.prescribeMedLoader\" (click)=\"close(2)\">\r\n <ng-container *ngIf=\"this.commonServices.prescribeMedLoader\">\r\n <p class=\"rx_loader_button m-v4\"\r\n style=\"position: absolute;margin: 0; top: 8px;left: 40%;width: 20px; height: 20px;\">\r\n </p>\r\n </ng-container>\r\n <ng-container *ngIf=\"!this.commonServices.prescribeMedLoader\">\r\n Re-Issue\r\n </ng-container><i class=\"fa fa-angle-down\" style=\"margin-left: 5px; color: #fff\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-template #rxwidgets> </ng-template>", styles: [".details_width_flex{width:100%;display:flex}.details_width_flex,.details_width_flex label{font-size:15px!important;font-family:Roboto Medium!important;font-weight:600}@media (min-width: 480px) and (max-width: 839px){.mdl-cell--8-col,.mdl-cell--8-col-tablet.mdl-cell--8-col-tablet{width:calc(100% - 16px)}}@media only screen and (max-width: 767px){.new_rx_mobile_fullwidth.mdl-cell{width:calc(100% - 16px)!important}}@media (min-width: 480px) and (max-width: 839px){.mdl-cell--12-col,.mdl-cell--12-col-tablet.mdl-cell--12-col-tablet{width:calc(100% - 16px)}}@media (min-width: 480px) and (max-width: 839px){.mdl-cell{margin:8px;width:calc(50% - 16px)}}.mdl-cell{box-sizing:border-box}@media only screen and (max-width: 767px){.mdl-cell{width:100%!important}}.details_flag_number{border:1.5px solid #d7d7d7;margin-top:5px;padding:6px;flex-direction:row;display:flex;border-radius:4px}div span.addpatient-country-flag img{height:100%;width:100%}.mdl-textfield{position:relative;font-size:16px;display:inline-block;box-sizing:border-box;width:300px;max-width:100%;margin:0;padding:20px 0}div.first-row-input{padding:0!important;width:100%}.details_mobileNo_input{font-size:15px!important;font-family:Roboto Medium!important}.mdl-textfield__input{border:none;border-bottom:1px solid rgba(0,0,0,.12);display:block;font-size:16px;font-family:Helvetica,Arial,sans-serif;margin:0;padding:4px 0;width:100%;background:0 0;text-align:left;color:inherit}.details_mobileNo_input input{font-size:15px!important;font-family:Roboto Medium!important;color:#5a5a5a}.mdl-textfield__input{outline:none}.details_mobileNo_input{padding-left:10px;width:100%}.mdl-button{background:0 0;border:none;border-radius:2px;color:#000;position:relative;height:36px;margin:3;min-width:64px;padding:0 16px;display:inline-block;font-family:Roboto,Helvetica,Arial,sans-serif;font-size:15px;font-weight:700;text-transform:uppercase;letter-spacing:0;overflow:hidden;will-change:box-shadow;transition:box-shadow .2s cubic-bezier(.4,0,1,1),background-color .2s cubic-bezier(.4,0,.2,1),color .2s cubic-bezier(.4,0,.2,1);outline:none;cursor:pointer;text-decoration:none;text-align:center;line-height:36px;vertical-align:middle}.cancel_send{padding:0 27px!important}.radio_txt{vertical-align:super}.content{margin-bottom:20px;margin-top:10px}.label{color:#000}.text_content{color:red;font-size:16px}.rx-btn{padding:.375rem 0rem!important}.no_txt_clr{color:#000}.img-w{width:40px}.btn-bottom{float:right}.btn-outer,.btn-send{display:inline-block;margin-right:5px}.rx_loader_button{border:2px solid #f3f3f3;border-radius:50%;border-top:2px solid #005760;width:35px;height:35px;animation:spin 1s linear infinite}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
166
+ ReissuePopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ReissuePopupComponent, selector: "app-reissue-popup", inputs: { modaldata: "modaldata" }, outputs: { closeEvent: "closeEvent", submitEvent: "submitEvent" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["rxwidgets"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"ReactModalPortal e_prescription_box\">\r\n <div class=\"ReactModal__Overlay ReactModal__Overlay--after-open open_popup\">\r\n <div class=\"ReactModal__Content ReactModal__Content--after-open popup_header e_prescription_popup_inner_box\"\r\n tabindex=\"-1\" role=\"dialog\" aria-modal=\"true\">\r\n <p class=\"rx_record_change_popup\">Confirm Patient Contact Details</p><button type=\"button\"\r\n class=\"rx_record_popup_close\" (click)=\"close(1)\" [disabled]=\"this.commonServices.prescribeMedLoader\">X</button>\r\n <div class=\"content\">\r\n <hr class=\"m-0\">\r\n <div class=\"mdl-cell mdl-cell--12-col mdl-cell--8-col-tablet mdl-cell--4-col-phone new_rx_mobile_fullwidth\">\r\n <div class=\"details_width_flex\"><label class=\"label\">Send Token Via<span class=\"text_content\">*</span></label>\r\n </div>\r\n <div class=\"rx_new_popup_checkbox\">\r\n <div class=\"rx_new_radiobox_button rx-btn rx_radio_overall\">\r\n <label class=\"rx_radio_label\" *ngIf=\"!isResend\"><input [disabled]=\"this.commonServices.isScriptToPharmacy==1\" type=\"radio\" class=\"mdl-radio__button custom-radio-button\"\r\n name=\"AddressSendToAddType\" [value]=\"'SMS'\" (click)=\"radioChange(1)\"\r\n [checked]=\"AddressSendToAddType.toLowerCase() == 'sms'\" /><span\r\n class=\"mdl-radio__label radio_txt\">SMS</span></label>\r\n\r\n <label class=\"rx_radio_label\"><input type=\"radio\"\r\n [checked]=\"AddressSendToAddType.toLowerCase() == 'email'\" (click)=\"radioChange(2)\"\r\n class=\"mdl-radio__button d-inline radio custom-radio-button\" name=\"AddressSendToAddType\"\r\n [value]=\"'Email'\"><span class=\"mdl-radio__label radio_txt\">E-Mail</span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"AddressSendToAddType.toLowerCase() == 'sms'\"\r\n class=\"mdl-cell mdl-cell--12-col mdl-cell--8-col-tablet mdl-cell--4-col-phone mobilenumber-input addpatient-details-col \">\r\n <div class=\"mdl-textfield mdl-js-textfield first-row-input\">\r\n <div class=\"details_width_flex\"><label for=\"mobile-number\" class=\"no_txt_clr\">Mobile\r\n Number</label></div>\r\n <div class=\"details_flag_number\">\r\n <div class=\"img-w\"><span class=\"addpatient-country-flag\"><img\r\n src=\"https://passets.hola.health/rx-widgets/rx-australia.png\"></span>\r\n </div>\r\n <div class=\"details_mobileNo_input\"><input autocomplete=\"off\" class=\"mdl-textfield__input input_textfield\"\r\n type=\"tel\" id=\"mobile-number\" (keypress)=\"checkMobile($event)\" placeholder=\"04 123 45678\"\r\n [(ngModel)]=\"MobileNo\" style=\"text-decoration: none; border-bottom: none;\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"AddressSendToAddType.toLowerCase() == 'email'\"\r\n class=\"mdl-cell mdl-cell--12-col mdl-cell--8-col-tablet mdl-cell--4-col-phone mobilenumber-input addpatient-details-col \">\r\n <div class=\"mdl-textfield mdl-js-textfield first-row-input\">\r\n <div class=\"details_width_flex\"><label for=\"mobile-number\" class=\"no_txt_clr\">Email\r\n </label></div>\r\n <div class=\"details_flag_number\">\r\n <div class=\"details_mobileNo_input\"><input autocomplete=\"off\" class=\"mdl-textfield__input input_textfield\"\r\n type=\"email\" id=\"mobile-number\" placeholder=\"text@gmail.com\" [(ngModel)]=\"Email\"\r\n style=\"text-decoration: none; border-bottom: none;\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <hr class=\"m-0\"><br>\r\n <div class=\"btn-bottom\">\r\n <div class=\"btn-outer\"><button class=\"mdl-button mdl-js-button rx_record_change_popup_cancel cancel_send\"\r\n (click)=\"close(1)\" [disabled]=\"this.commonServices.prescribeMedLoader\">Cancel</button>\r\n </div>\r\n <div class=\"btn-send\">\r\n <!-- <button class=\"mdl-button mdl-js-button rx_record_change_popup_submit\" (click)=\"close(2)\">Re-Issue</button> -->\r\n <button class=\"mdl-button mdl-js-button rx_record_change_popup_submit\"\r\n style=\"position: relative;width: 110px;padding: 0;height: 38px !important;\"\r\n [disabled]=\"this.commonServices.prescribeMedLoader\" (click)=\"close(2)\">\r\n <ng-container *ngIf=\"this.commonServices.prescribeMedLoader\">\r\n <p class=\"rx_loader_button m-v4\"\r\n style=\"position: absolute;margin: 0; top: 8px;left: 40%;width: 20px; height: 20px;\">\r\n </p>\r\n </ng-container>\r\n <ng-container *ngIf=\"!this.commonServices.prescribeMedLoader\">\r\n {{!isResend ? 'Re-Issue' : 'Resend'}}\r\n </ng-container><i class=\"fa fa-angle-down\" style=\"margin-left: 5px; color: #fff\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-template #rxwidgets> </ng-template>", styles: [".details_width_flex{width:100%;display:flex}.details_width_flex,.details_width_flex label{font-size:15px!important;font-family:Roboto Medium!important;font-weight:600}@media (min-width: 480px) and (max-width: 839px){.mdl-cell--8-col,.mdl-cell--8-col-tablet.mdl-cell--8-col-tablet{width:calc(100% - 16px)}}@media only screen and (max-width: 767px){.new_rx_mobile_fullwidth.mdl-cell{width:calc(100% - 16px)!important}}@media (min-width: 480px) and (max-width: 839px){.mdl-cell--12-col,.mdl-cell--12-col-tablet.mdl-cell--12-col-tablet{width:calc(100% - 16px)}}@media (min-width: 480px) and (max-width: 839px){.mdl-cell{margin:8px;width:calc(50% - 16px)}}.mdl-cell{box-sizing:border-box}@media only screen and (max-width: 767px){.mdl-cell{width:100%!important}}.details_flag_number{border:1.5px solid #d7d7d7;margin-top:5px;padding:6px;flex-direction:row;display:flex;border-radius:4px}div span.addpatient-country-flag img{height:100%;width:100%}.mdl-textfield{position:relative;font-size:16px;display:inline-block;box-sizing:border-box;width:300px;max-width:100%;margin:0;padding:20px 0}div.first-row-input{padding:0!important;width:100%}.details_mobileNo_input{font-size:15px!important;font-family:Roboto Medium!important}.mdl-textfield__input{border:none;border-bottom:1px solid rgba(0,0,0,.12);display:block;font-size:16px;font-family:Helvetica,Arial,sans-serif;margin:0;padding:4px 0;width:100%;background:0 0;text-align:left;color:inherit}.details_mobileNo_input input{font-size:15px!important;font-family:Roboto Medium!important;color:#5a5a5a}.mdl-textfield__input{outline:none}.details_mobileNo_input{padding-left:10px;width:100%}.mdl-button{background:0 0;border:none;border-radius:2px;color:#000;position:relative;height:36px;margin:3;min-width:64px;padding:0 16px;display:inline-block;font-family:Roboto,Helvetica,Arial,sans-serif;font-size:15px;font-weight:700;text-transform:uppercase;letter-spacing:0;overflow:hidden;will-change:box-shadow;transition:box-shadow .2s cubic-bezier(.4,0,1,1),background-color .2s cubic-bezier(.4,0,.2,1),color .2s cubic-bezier(.4,0,.2,1);outline:none;cursor:pointer;text-decoration:none;text-align:center;line-height:36px;vertical-align:middle}.cancel_send{padding:0 27px!important}.radio_txt{vertical-align:super}.content{margin-bottom:20px;margin-top:10px}.label{color:#000}.text_content{color:red;font-size:16px}.rx-btn{padding:.375rem 0rem!important}.no_txt_clr{color:#000}.img-w{width:40px}.btn-bottom{float:right}.btn-outer,.btn-send{display:inline-block;margin-right:5px}.rx_loader_button{border:2px solid #f3f3f3;border-radius:50%;border-top:2px solid #005760;width:35px;height:35px;animation:spin 1s linear infinite}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
165
167
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ReissuePopupComponent, decorators: [{
166
168
  type: Component,
167
- args: [{ selector: 'app-reissue-popup', template: "<div class=\"ReactModalPortal e_prescription_box\">\r\n <div class=\"ReactModal__Overlay ReactModal__Overlay--after-open open_popup\">\r\n <div class=\"ReactModal__Content ReactModal__Content--after-open popup_header e_prescription_popup_inner_box\"\r\n tabindex=\"-1\" role=\"dialog\" aria-modal=\"true\">\r\n <p class=\"rx_record_change_popup\">Confirm Patient Contact Details</p><button type=\"button\"\r\n class=\"rx_record_popup_close\" (click)=\"close(1)\" [disabled]=\"this.commonServices.prescribeMedLoader\">X</button>\r\n <div class=\"content\">\r\n <hr class=\"m-0\">\r\n <div class=\"mdl-cell mdl-cell--12-col mdl-cell--8-col-tablet mdl-cell--4-col-phone new_rx_mobile_fullwidth\">\r\n <div class=\"details_width_flex\"><label class=\"label\">Send Token Via<span class=\"text_content\">*</span></label>\r\n </div>\r\n <div class=\"rx_new_popup_checkbox\">\r\n <div class=\"rx_new_radiobox_button rx-btn rx_radio_overall\">\r\n <label class=\"rx_radio_label\"><input [disabled]=\"this.commonServices.isScriptToPharmacy==1\" type=\"radio\" class=\"mdl-radio__button custom-radio-button\"\r\n name=\"AddressSendToAddType\" [value]=\"'SMS'\" (click)=\"radioChange(1)\"\r\n [checked]=\"AddressSendToAddType.toLowerCase() == 'sms'\" /><span\r\n class=\"mdl-radio__label radio_txt\">SMS</span></label>\r\n\r\n <label class=\"rx_radio_label\"><input type=\"radio\"\r\n [checked]=\"AddressSendToAddType.toLowerCase() == 'email'\" (click)=\"radioChange(2)\"\r\n class=\"mdl-radio__button d-inline radio custom-radio-button\" name=\"AddressSendToAddType\"\r\n [value]=\"'Email'\"><span class=\"mdl-radio__label radio_txt\">E-Mail</span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"AddressSendToAddType.toLowerCase() == 'sms'\"\r\n class=\"mdl-cell mdl-cell--12-col mdl-cell--8-col-tablet mdl-cell--4-col-phone mobilenumber-input addpatient-details-col \">\r\n <div class=\"mdl-textfield mdl-js-textfield first-row-input\">\r\n <div class=\"details_width_flex\"><label for=\"mobile-number\" class=\"no_txt_clr\">Mobile\r\n Number</label></div>\r\n <div class=\"details_flag_number\">\r\n <div class=\"img-w\"><span class=\"addpatient-country-flag\"><img\r\n src=\"https://passets.hola.health/rx-widgets/rx-australia.png\"></span>\r\n </div>\r\n <div class=\"details_mobileNo_input\"><input autocomplete=\"off\" class=\"mdl-textfield__input input_textfield\"\r\n type=\"tel\" id=\"mobile-number\" (keypress)=\"checkMobile($event)\" placeholder=\"04 123 45678\"\r\n [(ngModel)]=\"MobileNo\" style=\"text-decoration: none; border-bottom: none;\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"AddressSendToAddType.toLowerCase() == 'email'\"\r\n class=\"mdl-cell mdl-cell--12-col mdl-cell--8-col-tablet mdl-cell--4-col-phone mobilenumber-input addpatient-details-col \">\r\n <div class=\"mdl-textfield mdl-js-textfield first-row-input\">\r\n <div class=\"details_width_flex\"><label for=\"mobile-number\" class=\"no_txt_clr\">Email\r\n </label></div>\r\n <div class=\"details_flag_number\">\r\n <div class=\"details_mobileNo_input\"><input autocomplete=\"off\" class=\"mdl-textfield__input input_textfield\"\r\n type=\"email\" id=\"mobile-number\" placeholder=\"text@gmail.com\" [(ngModel)]=\"Email\"\r\n style=\"text-decoration: none; border-bottom: none;\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <hr class=\"m-0\"><br>\r\n <div class=\"btn-bottom\">\r\n <div class=\"btn-outer\"><button class=\"mdl-button mdl-js-button rx_record_change_popup_cancel cancel_send\"\r\n (click)=\"close(1)\" [disabled]=\"this.commonServices.prescribeMedLoader\">Cancel</button>\r\n </div>\r\n <div class=\"btn-send\">\r\n <!-- <button class=\"mdl-button mdl-js-button rx_record_change_popup_submit\" (click)=\"close(2)\">Re-Issue</button> -->\r\n <button class=\"mdl-button mdl-js-button rx_record_change_popup_submit\"\r\n style=\"position: relative;width: 110px;padding: 0;height: 38px !important;\"\r\n [disabled]=\"this.commonServices.prescribeMedLoader\" (click)=\"close(2)\">\r\n <ng-container *ngIf=\"this.commonServices.prescribeMedLoader\">\r\n <p class=\"rx_loader_button m-v4\"\r\n style=\"position: absolute;margin: 0; top: 8px;left: 40%;width: 20px; height: 20px;\">\r\n </p>\r\n </ng-container>\r\n <ng-container *ngIf=\"!this.commonServices.prescribeMedLoader\">\r\n Re-Issue\r\n </ng-container><i class=\"fa fa-angle-down\" style=\"margin-left: 5px; color: #fff\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-template #rxwidgets> </ng-template>", styles: [".details_width_flex{width:100%;display:flex}.details_width_flex,.details_width_flex label{font-size:15px!important;font-family:Roboto Medium!important;font-weight:600}@media (min-width: 480px) and (max-width: 839px){.mdl-cell--8-col,.mdl-cell--8-col-tablet.mdl-cell--8-col-tablet{width:calc(100% - 16px)}}@media only screen and (max-width: 767px){.new_rx_mobile_fullwidth.mdl-cell{width:calc(100% - 16px)!important}}@media (min-width: 480px) and (max-width: 839px){.mdl-cell--12-col,.mdl-cell--12-col-tablet.mdl-cell--12-col-tablet{width:calc(100% - 16px)}}@media (min-width: 480px) and (max-width: 839px){.mdl-cell{margin:8px;width:calc(50% - 16px)}}.mdl-cell{box-sizing:border-box}@media only screen and (max-width: 767px){.mdl-cell{width:100%!important}}.details_flag_number{border:1.5px solid #d7d7d7;margin-top:5px;padding:6px;flex-direction:row;display:flex;border-radius:4px}div span.addpatient-country-flag img{height:100%;width:100%}.mdl-textfield{position:relative;font-size:16px;display:inline-block;box-sizing:border-box;width:300px;max-width:100%;margin:0;padding:20px 0}div.first-row-input{padding:0!important;width:100%}.details_mobileNo_input{font-size:15px!important;font-family:Roboto Medium!important}.mdl-textfield__input{border:none;border-bottom:1px solid rgba(0,0,0,.12);display:block;font-size:16px;font-family:Helvetica,Arial,sans-serif;margin:0;padding:4px 0;width:100%;background:0 0;text-align:left;color:inherit}.details_mobileNo_input input{font-size:15px!important;font-family:Roboto Medium!important;color:#5a5a5a}.mdl-textfield__input{outline:none}.details_mobileNo_input{padding-left:10px;width:100%}.mdl-button{background:0 0;border:none;border-radius:2px;color:#000;position:relative;height:36px;margin:3;min-width:64px;padding:0 16px;display:inline-block;font-family:Roboto,Helvetica,Arial,sans-serif;font-size:15px;font-weight:700;text-transform:uppercase;letter-spacing:0;overflow:hidden;will-change:box-shadow;transition:box-shadow .2s cubic-bezier(.4,0,1,1),background-color .2s cubic-bezier(.4,0,.2,1),color .2s cubic-bezier(.4,0,.2,1);outline:none;cursor:pointer;text-decoration:none;text-align:center;line-height:36px;vertical-align:middle}.cancel_send{padding:0 27px!important}.radio_txt{vertical-align:super}.content{margin-bottom:20px;margin-top:10px}.label{color:#000}.text_content{color:red;font-size:16px}.rx-btn{padding:.375rem 0rem!important}.no_txt_clr{color:#000}.img-w{width:40px}.btn-bottom{float:right}.btn-outer,.btn-send{display:inline-block;margin-right:5px}.rx_loader_button{border:2px solid #f3f3f3;border-radius:50%;border-top:2px solid #005760;width:35px;height:35px;animation:spin 1s linear infinite}\n"] }]
169
+ args: [{ selector: 'app-reissue-popup', template: "<div class=\"ReactModalPortal e_prescription_box\">\r\n <div class=\"ReactModal__Overlay ReactModal__Overlay--after-open open_popup\">\r\n <div class=\"ReactModal__Content ReactModal__Content--after-open popup_header e_prescription_popup_inner_box\"\r\n tabindex=\"-1\" role=\"dialog\" aria-modal=\"true\">\r\n <p class=\"rx_record_change_popup\">Confirm Patient Contact Details</p><button type=\"button\"\r\n class=\"rx_record_popup_close\" (click)=\"close(1)\" [disabled]=\"this.commonServices.prescribeMedLoader\">X</button>\r\n <div class=\"content\">\r\n <hr class=\"m-0\">\r\n <div class=\"mdl-cell mdl-cell--12-col mdl-cell--8-col-tablet mdl-cell--4-col-phone new_rx_mobile_fullwidth\">\r\n <div class=\"details_width_flex\"><label class=\"label\">Send Token Via<span class=\"text_content\">*</span></label>\r\n </div>\r\n <div class=\"rx_new_popup_checkbox\">\r\n <div class=\"rx_new_radiobox_button rx-btn rx_radio_overall\">\r\n <label class=\"rx_radio_label\" *ngIf=\"!isResend\"><input [disabled]=\"this.commonServices.isScriptToPharmacy==1\" type=\"radio\" class=\"mdl-radio__button custom-radio-button\"\r\n name=\"AddressSendToAddType\" [value]=\"'SMS'\" (click)=\"radioChange(1)\"\r\n [checked]=\"AddressSendToAddType.toLowerCase() == 'sms'\" /><span\r\n class=\"mdl-radio__label radio_txt\">SMS</span></label>\r\n\r\n <label class=\"rx_radio_label\"><input type=\"radio\"\r\n [checked]=\"AddressSendToAddType.toLowerCase() == 'email'\" (click)=\"radioChange(2)\"\r\n class=\"mdl-radio__button d-inline radio custom-radio-button\" name=\"AddressSendToAddType\"\r\n [value]=\"'Email'\"><span class=\"mdl-radio__label radio_txt\">E-Mail</span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"AddressSendToAddType.toLowerCase() == 'sms'\"\r\n class=\"mdl-cell mdl-cell--12-col mdl-cell--8-col-tablet mdl-cell--4-col-phone mobilenumber-input addpatient-details-col \">\r\n <div class=\"mdl-textfield mdl-js-textfield first-row-input\">\r\n <div class=\"details_width_flex\"><label for=\"mobile-number\" class=\"no_txt_clr\">Mobile\r\n Number</label></div>\r\n <div class=\"details_flag_number\">\r\n <div class=\"img-w\"><span class=\"addpatient-country-flag\"><img\r\n src=\"https://passets.hola.health/rx-widgets/rx-australia.png\"></span>\r\n </div>\r\n <div class=\"details_mobileNo_input\"><input autocomplete=\"off\" class=\"mdl-textfield__input input_textfield\"\r\n type=\"tel\" id=\"mobile-number\" (keypress)=\"checkMobile($event)\" placeholder=\"04 123 45678\"\r\n [(ngModel)]=\"MobileNo\" style=\"text-decoration: none; border-bottom: none;\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"AddressSendToAddType.toLowerCase() == 'email'\"\r\n class=\"mdl-cell mdl-cell--12-col mdl-cell--8-col-tablet mdl-cell--4-col-phone mobilenumber-input addpatient-details-col \">\r\n <div class=\"mdl-textfield mdl-js-textfield first-row-input\">\r\n <div class=\"details_width_flex\"><label for=\"mobile-number\" class=\"no_txt_clr\">Email\r\n </label></div>\r\n <div class=\"details_flag_number\">\r\n <div class=\"details_mobileNo_input\"><input autocomplete=\"off\" class=\"mdl-textfield__input input_textfield\"\r\n type=\"email\" id=\"mobile-number\" placeholder=\"text@gmail.com\" [(ngModel)]=\"Email\"\r\n style=\"text-decoration: none; border-bottom: none;\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <hr class=\"m-0\"><br>\r\n <div class=\"btn-bottom\">\r\n <div class=\"btn-outer\"><button class=\"mdl-button mdl-js-button rx_record_change_popup_cancel cancel_send\"\r\n (click)=\"close(1)\" [disabled]=\"this.commonServices.prescribeMedLoader\">Cancel</button>\r\n </div>\r\n <div class=\"btn-send\">\r\n <!-- <button class=\"mdl-button mdl-js-button rx_record_change_popup_submit\" (click)=\"close(2)\">Re-Issue</button> -->\r\n <button class=\"mdl-button mdl-js-button rx_record_change_popup_submit\"\r\n style=\"position: relative;width: 110px;padding: 0;height: 38px !important;\"\r\n [disabled]=\"this.commonServices.prescribeMedLoader\" (click)=\"close(2)\">\r\n <ng-container *ngIf=\"this.commonServices.prescribeMedLoader\">\r\n <p class=\"rx_loader_button m-v4\"\r\n style=\"position: absolute;margin: 0; top: 8px;left: 40%;width: 20px; height: 20px;\">\r\n </p>\r\n </ng-container>\r\n <ng-container *ngIf=\"!this.commonServices.prescribeMedLoader\">\r\n {{!isResend ? 'Re-Issue' : 'Resend'}}\r\n </ng-container><i class=\"fa fa-angle-down\" style=\"margin-left: 5px; color: #fff\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-template #rxwidgets> </ng-template>", styles: [".details_width_flex{width:100%;display:flex}.details_width_flex,.details_width_flex label{font-size:15px!important;font-family:Roboto Medium!important;font-weight:600}@media (min-width: 480px) and (max-width: 839px){.mdl-cell--8-col,.mdl-cell--8-col-tablet.mdl-cell--8-col-tablet{width:calc(100% - 16px)}}@media only screen and (max-width: 767px){.new_rx_mobile_fullwidth.mdl-cell{width:calc(100% - 16px)!important}}@media (min-width: 480px) and (max-width: 839px){.mdl-cell--12-col,.mdl-cell--12-col-tablet.mdl-cell--12-col-tablet{width:calc(100% - 16px)}}@media (min-width: 480px) and (max-width: 839px){.mdl-cell{margin:8px;width:calc(50% - 16px)}}.mdl-cell{box-sizing:border-box}@media only screen and (max-width: 767px){.mdl-cell{width:100%!important}}.details_flag_number{border:1.5px solid #d7d7d7;margin-top:5px;padding:6px;flex-direction:row;display:flex;border-radius:4px}div span.addpatient-country-flag img{height:100%;width:100%}.mdl-textfield{position:relative;font-size:16px;display:inline-block;box-sizing:border-box;width:300px;max-width:100%;margin:0;padding:20px 0}div.first-row-input{padding:0!important;width:100%}.details_mobileNo_input{font-size:15px!important;font-family:Roboto Medium!important}.mdl-textfield__input{border:none;border-bottom:1px solid rgba(0,0,0,.12);display:block;font-size:16px;font-family:Helvetica,Arial,sans-serif;margin:0;padding:4px 0;width:100%;background:0 0;text-align:left;color:inherit}.details_mobileNo_input input{font-size:15px!important;font-family:Roboto Medium!important;color:#5a5a5a}.mdl-textfield__input{outline:none}.details_mobileNo_input{padding-left:10px;width:100%}.mdl-button{background:0 0;border:none;border-radius:2px;color:#000;position:relative;height:36px;margin:3;min-width:64px;padding:0 16px;display:inline-block;font-family:Roboto,Helvetica,Arial,sans-serif;font-size:15px;font-weight:700;text-transform:uppercase;letter-spacing:0;overflow:hidden;will-change:box-shadow;transition:box-shadow .2s cubic-bezier(.4,0,1,1),background-color .2s cubic-bezier(.4,0,.2,1),color .2s cubic-bezier(.4,0,.2,1);outline:none;cursor:pointer;text-decoration:none;text-align:center;line-height:36px;vertical-align:middle}.cancel_send{padding:0 27px!important}.radio_txt{vertical-align:super}.content{margin-bottom:20px;margin-top:10px}.label{color:#000}.text_content{color:red;font-size:16px}.rx-btn{padding:.375rem 0rem!important}.no_txt_clr{color:#000}.img-w{width:40px}.btn-bottom{float:right}.btn-outer,.btn-send{display:inline-block;margin-right:5px}.rx_loader_button{border:2px solid #f3f3f3;border-radius:50%;border-top:2px solid #005760;width:35px;height:35px;animation:spin 1s linear infinite}\n"] }]
168
170
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.CommonServices }, { type: i0.ChangeDetectorRef }, { type: i2.ApiService }]; }, propDecorators: { closeEvent: [{
169
171
  type: Output
170
172
  }], submitEvent: [{
@@ -172,5 +174,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
172
174
  }], content: [{
173
175
  type: ViewChild,
174
176
  args: ['rxwidgets', { static: true }]
177
+ }], modaldata: [{
178
+ type: Input
175
179
  }] } });
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVpc3N1ZS1wb3B1cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ob2xhLXJ4L3NyYy9saWIvcmVpc3N1ZS1wb3B1cC9yZWlzc3VlLXBvcHVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2hvbGEtcngvc3JjL2xpYi9yZWlzc3VlLXBvcHVwL3JlaXNzdWUtcG9wdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBOEMsTUFBTSxlQUFlLENBQUM7QUFFL0gsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7O0FBTzdELE1BQU0sT0FBTyxxQkFBcUI7SUFRaEMsWUFBb0IsVUFBc0IsRUFBUyxjQUE4QixFQUFVLFlBQStCLEVBQVUsVUFBc0I7UUFBdEksZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFTLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFtQjtRQUFVLGVBQVUsR0FBVixVQUFVLENBQVk7UUFQaEosZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDaEMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTNDLHlCQUFvQixHQUFHLEtBQUssQ0FBQTtRQUc1QixnQkFBVyxHQUFHLElBQUksQ0FBQztRQUVqQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztRQUN6RCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLGFB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LEVBQUUsSUFBSSxRQUFRLEdBQUcsRUFBRTtnQkFDaEMsT0FBTyxLQUFLLENBQUM7WUFDZixPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsT0FBTyxFQUFPLEVBQUU7WUFDZCxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLHVCQUF1QixFQUFFLGFBQWEsQ0FBQyxDQUFDO1NBQ3RHO0lBQ0gsQ0FBQzs7a0hBaEpVLHFCQUFxQjtzR0FBckIscUJBQXFCLGdQQ1RsQyxrdUtBK0UyQzsyRkR0RTlCLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxtQkFBbUI7dUxBS25CLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDbUMsT0FBTztzQkFBaEQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQsIFRlbXBsYXRlUmVmLCBFbGVtZW50UmVmLCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25TZXJ2aWNlcyB9IGZyb20gJy4uL3NlcnZpY2VzL2NvbW1vbic7XHJcbmltcG9ydCB7IGNvbmZpZywgZXJyb3Jjb25maWcgfSBmcm9tICcuLi9lbnZpcm9ubWVudHMvY29uZmlnJztcclxuaW1wb3J0IHsgQXBpU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2FwaS5zZXJ2aWNlJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtcmVpc3N1ZS1wb3B1cCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JlaXNzdWUtcG9wdXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3JlaXNzdWUtcG9wdXAuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZWlzc3VlUG9wdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBPdXRwdXQoKSBjbG9zZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBzdWJtaXRFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAVmlld0NoaWxkKCdyeHdpZGdldHMnLCB7IHN0YXRpYzogdHJ1ZSB9KSBjb250ZW50ITogVGVtcGxhdGVSZWY8YW55PjtcclxuICBBZGRyZXNzU2VuZFRvQWRkVHlwZSA9IFwiU01TXCJcclxuICBNb2JpbGVObzogYW55O1xyXG4gIEVtYWlsOiBhbnk7XHJcbiAgcnhFbWFpbEZsYWcgPSB0cnVlO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHVibGljIGNvbW1vblNlcnZpY2VzOiBDb21tb25TZXJ2aWNlcywgcHJpdmF0ZSBjaGFuZ2VkZXRlY3Q6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIGFwaVNlcnZpY2U6IEFwaVNlcnZpY2UpIHtcclxuICAgIHRoaXMuTW9iaWxlTm8gPSB0aGlzLmNvbW1vblNlcnZpY2VzLnBhdGllbnREZXRhaWxzLnBob25lO1xyXG4gICAgdGhpcy5FbWFpbCA9IHRoaXMuY29tbW9uU2VydmljZXMuaXNTY3JpcHRUb1BoYXJtYWN5ID09IDEgJiYgdGhpcy5jb21tb25TZXJ2aWNlcy5waGFybWFjeUVtYWlsICE9IG51bGwgJiYgdGhpcy5jb21tb25TZXJ2aWNlcy5waGFybWFjeUVtYWlsICE9IFwiXCI/IHRoaXMuY29tbW9uU2VydmljZXMucGhhcm1hY3lFbWFpbCA6IHRoaXMuY29tbW9uU2VydmljZXMucGF0aWVudERldGFpbHMuZW1haWw7XHJcbiAgICB0aGlzLmNvbW1vblNlcnZpY2VzLmlzU2NyaXB0VG9QaGFybWFjeSA9PSAxID8gdGhpcy5BZGRyZXNzU2VuZFRvQWRkVHlwZSA9IFwiRW1haWxcIiA6IHRoaXMuQWRkcmVzc1NlbmRUb0FkZFR5cGUgPSBcIlNNU1wiXHJcbiAgfVxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWVwcmVzY3JpcHRpb25fcG9wdXBfd2lkdGgnLCAnNDUwcHgnKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChleDogYW55KSB7XHJcbiAgICAgIHRoaXMuY29tbW9uU2VydmljZXMuc2V0bG9ndmFsdWUoZmFsc2UsIGV4Lm1lc3NhZ2UsIGV4LnN0YWNrLCBcIlJlaXNzdWVQb3B1cENvbXBvbmVudFwiLCBcIm5nT25Jbml0XCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xvc2UoaW5kZXg6IGFueSk6IGFueSB7XHJcbiAgICB2YXIgcGF5bG9hZCA9IHt9O1xyXG4gICAgdHJ5IHtcclxuICAgICAgaWYgKGluZGV4ICE9IDEpIHtcclxuICAgICAgICBpZiAodGhpcy5BZGRyZXNzU2VuZFRvQWRkVHlwZS50b0xvd2VyQ2FzZSgpID09IFwic21zXCIpIHtcclxuICAgICAgICAgIGlmICh0aGlzLmNvbW1vblNlcnZpY2VzLklzTnVsbE9yRW1wdHkodGhpcy5Nb2JpbGVOby50cmltKCkpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29tbW9uU2VydmljZXMudG9hc3RvcGVuKGVycm9yY29uZmlnLmVycm9yXzU3Lm1lc3NhZ2UsIFwiZXJyb3JcIiwgZXJyb3Jjb25maWcuZXJyb3JfNTcuY29kZSk7XHJcbiAgICAgICAgICAgIHRoaXMuY29tbW9uU2VydmljZXMuZXJyb3JSZXNwb25zZShlcnJvcmNvbmZpZy5lcnJvcl81Ny5jb2RlLCBlcnJvcmNvbmZpZy5lcnJvcl81Ny5tZXNzYWdlKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdmFyIHZhbGlkYnkgPSB0aGlzLmNvbW1vblNlcnZpY2VzLnZhbGlkQnlNb2JpbGVObyh0aGlzLk1vYmlsZU5vLnRyaW0oKSk7XHJcbiAgICAgICAgICBpZiAodmFsaWRieSA9PSAxKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29tbW9uU2VydmljZXMudG9hc3RvcGVuKGVycm9yY29uZmlnLmVycm9yXzU3Lm1lc3NhZ2UsIFwiZXJyb3JcIiwgZXJyb3Jjb25maWcuZXJyb3JfNTcuY29kZSk7XHJcbiAgICAgICAgICAgIHRoaXMuY29tbW9uU2VydmljZXMuZXJyb3JSZXNwb25zZShlcnJvcmNvbmZpZy5lcnJvcl81Ny5jb2RlLCBlcnJvcmNvbmZpZy5lcnJvcl81Ny5tZXNzYWdlKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHZhbGlkYnkgPT0gMykge1xyXG4gICAgICAgICAgICB0aGlzLmNvbW1vblNlcnZpY2VzLnRvYXN0b3BlbihlcnJvcmNvbmZpZy5lcnJvcl81OC5tZXNzYWdlLCBcImVycm9yXCIsIGVycm9yY29uZmlnLmVycm9yXzU4LmNvZGUpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbW1vblNlcnZpY2VzLmVycm9yUmVzcG9uc2UoZXJyb3Jjb25maWcuZXJyb3JfNTguY29kZSwgZXJyb3Jjb25maWcuZXJyb3JfNTgubWVzc2FnZSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh2YWxpZGJ5ID09IDIpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuTW9iaWxlTm8uY2hhckF0KDApICE9ICcwJykgeyB0aGlzLk1vYmlsZU5vID0gXCIwXCIgKyB0aGlzLk1vYmlsZU5vOyB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmNvbW1vblNlcnZpY2VzLnRvYXN0b3BlbihlcnJvcmNvbmZpZy5lcnJvcl81OC5tZXNzYWdlLCBcImVycm9yXCIsIGVycm9yY29uZmlnLmVycm9yXzU4LmNvZGUpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbW1vblNlcnZpY2VzLmVycm9yUmVzcG9uc2UoZXJyb3Jjb25maWcuZXJyb3JfNTguY29kZSwgZXJyb3Jjb25maWcuZXJyb3JfNTgubWVzc2FnZSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuRW1haWwgPSBcIlwiO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5BZGRyZXNzU2VuZFRvQWRkVHlwZS50b0xvd2VyQ2FzZSgpID09IFwiZW1haWxcIikge1xyXG4gICAgICAgICAgaWYgKHRoaXMuY29tbW9uU2VydmljZXMuSXNOdWxsT3JFbXB0eSh0aGlzLkVtYWlsLnRyaW0oKSkpIHtcclxuICAgICAgICAgICAgdGhpcy5jb21tb25TZXJ2aWNlcy50b2FzdG9wZW4oZXJyb3Jjb25maWcuZXJyb3JfNTkubWVzc2FnZSwgXCJlcnJvclwiLCBlcnJvcmNvbmZpZy5lcnJvcl81OS5jb2RlKTtcclxuICAgICAgICAgICAgdGhpcy5jb21tb25TZXJ2aWNlcy5lcnJvclJlc3BvbnNlKGVycm9yY29uZmlnLmVycm9yXzU5LmNvZGUsIGVycm9yY29uZmlnLmVycm9yXzU5Lm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoIXRoaXMuY29tbW9uU2VydmljZXMudmFsaWRCeUVtYWlsTm8odGhpcy5FbWFpbC50cmltKCkpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29tbW9uU2VydmljZXMudG9hc3RvcGVuKGVycm9yY29uZmlnLmVycm9yXzYwLm1lc3NhZ2UsIFwiZXJyb3JcIiwgZXJyb3Jjb25maWcuZXJyb3JfNjAuY29kZSk7XHJcbiAgICAgICAgICAgIHRoaXMuY29tbW9uU2VydmljZXMuZXJyb3JSZXNwb25zZShlcnJvcmNvbmZpZy5lcnJvcl82MC5jb2RlLCBlcnJvcmNvbmZpZy5lcnJvcl82MC5tZXNzYWdlKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5Nb2JpbGVObyA9IFwiXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBhZGRyZXNzVmFsdWUgPSB0aGlzLkFkZHJlc3NTZW5kVG9BZGRUeXBlLnRvTG93ZXJDYXNlKCkgPT0gXCJzbXNcIiA/IHRoaXMuTW9iaWxlTm8udHJpbSgpIDogdGhpcy5FbWFpbC50cmltKCk7XHJcbiAgICAgICAgdGhpcy5jb21tb25TZXJ2aWNlcy5wcmVzY3JpYmVNZWRMb2FkZXIgPSB0cnVlOyB0aGlzLmNoYW5nZWRldGVjdC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgcGF5bG9hZCA9IHtcclxuICAgICAgICAgIHJlcXVlc3RfdHlwZTogXCJwYXJhbWV0ZXJcIixcclxuICAgICAgICAgIHJ4SWQ6IHRoaXMuY29tbW9uU2VydmljZXMucnhpZCxcclxuICAgICAgICAgIGFkZHJlc3NUeXBlOiB0aGlzLkFkZHJlc3NTZW5kVG9BZGRUeXBlLFxyXG4gICAgICAgICAgYWRkcmVzc1ZhbHVlOiBhZGRyZXNzVmFsdWVcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5hcGlTZXJ2aWNlLkdldChjb25maWcuUEhZU0lDSUFOLlJYX1JFX0lTU1VFICsgdGhpcy5jb21tb25TZXJ2aWNlcy5yeGlkICsgXCImYWRkcmVzc1R5cGU9XCIgKyB0aGlzLkFkZHJlc3NTZW5kVG9BZGRUeXBlICsgXCImYWRkcmVzc1ZhbHVlPVwiICsgYWRkcmVzc1ZhbHVlKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5jb21tb25TZXJ2aWNlcy5Jc051bGxPckVtcHR5KHJlcykpIHtcclxuICAgICAgICAgICAgICB0aGlzLmNvbW1vblNlcnZpY2VzLnByZXNjcmliZU1lZExvYWRlciA9IGZhbHNlOyB0aGlzLmNoYW5nZWRldGVjdC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb21tb25TZXJ2aWNlcy5zZXRsb2d2YWx1ZShmYWxzZSwgXCJcIiwgXCJcIiwgXCJSZWlzc3VlUG9wdXBDb21wb25lbnRcIiwgXCJjbG9zZVwiLCBwYXlsb2FkKTtcclxuICAgICAgICAgICAgICB0aGlzLmNvbW1vblNlcnZpY2VzLnRvYXN0b3BlbihlcnJvcmNvbmZpZy5lcnJvcl82NC5tZXNzYWdlLCAnZXJyb3InLCBlcnJvcmNvbmZpZy5lcnJvcl82NC5jb2RlKTtcclxuICAgICAgICAgICAgICB0aGlzLmNvbW1vblNlcnZpY2VzLmVycm9yUmVzcG9uc2UoZXJyb3Jjb25maWcuZXJyb3JfNjQuY29kZSwgZXJyb3Jjb25maWcuZXJyb3JfNjQubWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChyZXMucmVzcG9uc2VfY29kZSA9PSAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb21tb25TZXJ2aWNlcy50b2FzdG9wZW4ocmVzLnJlc3BvbnNlX21lc3NhZ2UsICdzdWNjZXNzJyk7XHJcbiAgICAgICAgICAgICAgdGhpcy5jbG9zZUV2ZW50LmVtaXQocmVzKTtcclxuICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZW1vdmUoKTtcclxuICAgICAgICAgICAgICB0aGlzLmNvbW1vblNlcnZpY2VzLnByZXNjcmliZU1lZExvYWRlciA9IGZhbHNlOyB0aGlzLmNoYW5nZWRldGVjdC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb21tb25TZXJ2aWNlcy5zZXRsb2d2YWx1ZShmYWxzZSwgcmVzLnJlc3BvbnNlX21lc3NhZ2UsIHJlcy5yZXNwb25zZV9tZXNzYWdlLCBcIlJlaXNzdWVQb3B1cENvbXBvbmVudFwiLCBcImNsb3NlXCIsIHBheWxvYWQpO1xyXG4gICAgICAgICAgICAgIHRoaXMuY29tbW9uU2VydmljZXMucHJlc2NyaWJlTWVkTG9hZGVyID0gZmFsc2U7IHRoaXMuY2hhbmdlZGV0ZWN0LmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgICB0aGlzLmNvbW1vblNlcnZpY2VzLnRvYXN0b3BlbihyZXMucmVzcG9uc2VfbWVzc2FnZSwgJ2Vycm9yJywgcmVzLmVycm9yX2NvZGUpO1xyXG4gICAgICAgICAgICAgIHRoaXMuY29tbW9uU2VydmljZXMuZXJyb3JSZXNwb25zZShyZXMuZXJyb3JfY29kZSwgcmVzLnJlc3BvbnNlX21lc3NhZ2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjYXRjaCAoZXg6IGFueSkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbW1vblNlcnZpY2VzLnByZXNjcmliZU1lZExvYWRlciA9IGZhbHNlOyB0aGlzLmNoYW5nZWRldGVjdC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgIHRoaXMuY29tbW9uU2VydmljZXMuc2V0bG9ndmFsdWUoZmFsc2UsIGV4Lm1lc3NhZ2UsIGV4LnN0YWNrLCBcIlJlaXNzdWVQb3B1cENvbXBvbmVudFwiLCBcImNsb3NlXCIsIHBheWxvYWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sIGVycm9yID0+IHtcclxuICAgICAgICAgIHRoaXMuY29tbW9uU2VydmljZXMucHJlc2NyaWJlTWVkTG9hZGVyID0gZmFsc2U7IHRoaXMuY2hhbmdlZGV0ZWN0LmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgIHRoaXMuY29tbW9uU2VydmljZXMuc2V0bG9ndmFsdWUoZmFsc2UsIGVycm9yLm1lc3NhZ2UsIGVycm9yLnN0YWNrLCBcIlJlaXNzdWVQb3B1cENvbXBvbmVudFwiLCBcImNsb3NlXCIsIHBheWxvYWQpO1xyXG4gICAgICAgICAgdGhpcy5jb21tb25TZXJ2aWNlcy50b2FzdG9wZW4oZXJyb3Jjb25maWcuZXJyb3JfNjUubWVzc2FnZSArIGVycm9yLCBcImVycm9yXCIsIGVycm9yY29uZmlnLmVycm9yXzY1LmNvZGUpO1xyXG4gICAgICAgICAgdGhpcy5jb21tb25TZXJ2aWNlcy5lcnJvclJlc3BvbnNlKGVycm9yY29uZmlnLmVycm9yXzY1LmNvZGUsIGVycm9yY29uZmlnLmVycm9yXzY1Lm1lc3NhZ2UgKyBlcnJvcik7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jb21tb25TZXJ2aWNlcy5wcmVzY3JpYmVNZWRMb2FkZXIgPSBmYWxzZTsgdGhpcy5jaGFuZ2VkZXRlY3QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIHRoaXMuY2xvc2VFdmVudC5lbWl0KG51bGwpO1xyXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnJlbW92ZSgpO1xyXG4gICAgICAgIHRoaXMuQWRkcmVzc1NlbmRUb0FkZFR5cGUgPSBcIlwiO1xyXG4gICAgICAgIHRoaXMuTW9iaWxlTm8gPSBcIlwiO1xyXG4gICAgICAgIHRoaXMuRW1haWwgPSBcIlwiO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZXg6IGFueSkge1xyXG4gICAgICB0aGlzLmNvbW1vblNlcnZpY2VzLnNldGxvZ3ZhbHVlKGZhbHNlLCBleC5tZXNzYWdlLCBleC5zdGFjaywgXCJSZWlzc3VlUG9wdXBDb21wb25lbnRcIiwgXCJjbG9zZVwiLCBwYXlsb2FkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJhZGlvQ2hhbmdlKGluZGV4OiBudW1iZXIpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGlmIChpbmRleCA9PSAxKSB7XHJcbiAgICAgICAgdGhpcy5BZGRyZXNzU2VuZFRvQWRkVHlwZSA9IFwiU01TXCJcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLkFkZHJlc3NTZW5kVG9BZGRUeXBlID0gXCJFbWFpbFwiXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jaGFuZ2VkZXRlY3QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGV4OiBhbnkpIHtcclxuICAgICAgdGhpcy5jb21tb25TZXJ2aWNlcy5zZXRsb2d2YWx1ZShmYWxzZSwgZXgubWVzc2FnZSwgZXguc3RhY2ssIFwiUmVpc3N1ZVBvcHVwQ29tcG9uZW50XCIsIFwicmFkaW9DaGFuZ2VcIik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGVja01vYmlsZShldnQ6IGFueSk6IGFueSB7XHJcbiAgICB0cnkge1xyXG4gICAgICB2YXIgY2hhckNvZGUgPSAoZXZ0LndoaWNoKSA/IGV2dC53aGljaCA6IGV2dC5rZXlDb2RlO1xyXG4gICAgICBpZiAoY2hhckNvZGUgPCA0OCB8fCBjaGFyQ29kZSA+IDU3KVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZXg6IGFueSkge1xyXG4gICAgICB0aGlzLmNvbW1vblNlcnZpY2VzLnNldGxvZ3ZhbHVlKGZhbHNlLCBleC5tZXNzYWdlLCBleC5zdGFjaywgXCJSZWlzc3VlUG9wdXBDb21wb25lbnRcIiwgXCJjaGVja01vYmlsZVwiKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIlJlYWN0TW9kYWxQb3J0YWwgZV9wcmVzY3JpcHRpb25fYm94XCI+XHJcbiAgPGRpdiBjbGFzcz1cIlJlYWN0TW9kYWxfX092ZXJsYXkgUmVhY3RNb2RhbF9fT3ZlcmxheS0tYWZ0ZXItb3BlbiBvcGVuX3BvcHVwXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiUmVhY3RNb2RhbF9fQ29udGVudCBSZWFjdE1vZGFsX19Db250ZW50LS1hZnRlci1vcGVuIHBvcHVwX2hlYWRlciBlX3ByZXNjcmlwdGlvbl9wb3B1cF9pbm5lcl9ib3hcIlxyXG4gICAgICB0YWJpbmRleD1cIi0xXCIgcm9sZT1cImRpYWxvZ1wiIGFyaWEtbW9kYWw9XCJ0cnVlXCI+XHJcbiAgICAgIDxwIGNsYXNzPVwicnhfcmVjb3JkX2NoYW5nZV9wb3B1cFwiPkNvbmZpcm0gUGF0aWVudCBDb250YWN0IERldGFpbHM8L3A+PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBjbGFzcz1cInJ4X3JlY29yZF9wb3B1cF9jbG9zZVwiIChjbGljayk9XCJjbG9zZSgxKVwiIFtkaXNhYmxlZF09XCJ0aGlzLmNvbW1vblNlcnZpY2VzLnByZXNjcmliZU1lZExvYWRlclwiPlg8L2J1dHRvbj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cclxuICAgICAgICA8aHIgY2xhc3M9XCJtLTBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWRsLWNlbGwgbWRsLWNlbGwtLTEyLWNvbCBtZGwtY2VsbC0tOC1jb2wtdGFibGV0IG1kbC1jZWxsLS00LWNvbC1waG9uZSAgbmV3X3J4X21vYmlsZV9mdWxsd2lkdGhcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWxzX3dpZHRoX2ZsZXhcIj48bGFiZWwgY2xhc3M9XCJsYWJlbFwiPlNlbmQgVG9rZW4gVmlhPHNwYW4gY2xhc3M9XCJ0ZXh0X2NvbnRlbnRcIj4qPC9zcGFuPjwvbGFiZWw+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyeF9uZXdfcG9wdXBfY2hlY2tib3hcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJ4X25ld19yYWRpb2JveF9idXR0b24gcngtYnRuIHJ4X3JhZGlvX292ZXJhbGxcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJyeF9yYWRpb19sYWJlbFwiPjxpbnB1dCBbZGlzYWJsZWRdPVwidGhpcy5jb21tb25TZXJ2aWNlcy5pc1NjcmlwdFRvUGhhcm1hY3k9PTFcIiB0eXBlPVwicmFkaW9cIiBjbGFzcz1cIm1kbC1yYWRpb19fYnV0dG9uIGN1c3RvbS1yYWRpby1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICBuYW1lPVwiQWRkcmVzc1NlbmRUb0FkZFR5cGVcIiBbdmFsdWVdPVwiJ1NNUydcIiAoY2xpY2spPVwicmFkaW9DaGFuZ2UoMSlcIlxyXG4gICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJBZGRyZXNzU2VuZFRvQWRkVHlwZS50b0xvd2VyQ2FzZSgpID09ICdzbXMnXCIgLz48c3BhblxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cIm1kbC1yYWRpb19fbGFiZWwgcmFkaW9fdHh0XCI+U01TPC9zcGFuPjwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInJ4X3JhZGlvX2xhYmVsXCI+PGlucHV0IHR5cGU9XCJyYWRpb1wiXHJcbiAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cIkFkZHJlc3NTZW5kVG9BZGRUeXBlLnRvTG93ZXJDYXNlKCkgPT0gJ2VtYWlsJ1wiIChjbGljayk9XCJyYWRpb0NoYW5nZSgyKVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWRsLXJhZGlvX19idXR0b24gZC1pbmxpbmUgcmFkaW8gY3VzdG9tLXJhZGlvLWJ1dHRvblwiIG5hbWU9XCJBZGRyZXNzU2VuZFRvQWRkVHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCInRW1haWwnXCI+PHNwYW4gY2xhc3M9XCJtZGwtcmFkaW9fX2xhYmVsIHJhZGlvX3R4dFwiPkUtTWFpbDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJBZGRyZXNzU2VuZFRvQWRkVHlwZS50b0xvd2VyQ2FzZSgpID09ICdzbXMnXCJcclxuICAgICAgICAgIGNsYXNzPVwibWRsLWNlbGwgbWRsLWNlbGwtLTEyLWNvbCBtZGwtY2VsbC0tOC1jb2wtdGFibGV0IG1kbC1jZWxsLS00LWNvbC1waG9uZSBtb2JpbGVudW1iZXItaW5wdXQgYWRkcGF0aWVudC1kZXRhaWxzLWNvbCBcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZGwtdGV4dGZpZWxkIG1kbC1qcy10ZXh0ZmllbGQgZmlyc3Qtcm93LWlucHV0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWxzX3dpZHRoX2ZsZXhcIj48bGFiZWwgZm9yPVwibW9iaWxlLW51bWJlclwiIGNsYXNzPVwibm9fdHh0X2NsclwiPk1vYmlsZVxyXG4gICAgICAgICAgICAgICAgTnVtYmVyPC9sYWJlbD48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbHNfZmxhZ19udW1iZXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1nLXdcIj48c3BhbiBjbGFzcz1cImFkZHBhdGllbnQtY291bnRyeS1mbGFnXCI+PGltZ1xyXG4gICAgICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vcGFzc2V0cy5ob2xhLmhlYWx0aC9yeC13aWRnZXRzL3J4LWF1c3RyYWxpYS5wbmdcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbHNfbW9iaWxlTm9faW5wdXRcIj48aW5wdXQgYXV0b2NvbXBsZXRlPVwib2ZmXCIgY2xhc3M9XCJtZGwtdGV4dGZpZWxkX19pbnB1dCBpbnB1dF90ZXh0ZmllbGRcIlxyXG4gICAgICAgICAgICAgICAgICB0eXBlPVwidGVsXCIgaWQ9XCJtb2JpbGUtbnVtYmVyXCIgKGtleXByZXNzKT1cImNoZWNrTW9iaWxlKCRldmVudClcIiBwbGFjZWhvbGRlcj1cIjA0IDEyMyA0NTY3OFwiXHJcbiAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiTW9iaWxlTm9cIiBzdHlsZT1cInRleHQtZGVjb3JhdGlvbjogbm9uZTsgYm9yZGVyLWJvdHRvbTogbm9uZTtcIj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIkFkZHJlc3NTZW5kVG9BZGRUeXBlLnRvTG93ZXJDYXNlKCkgPT0gJ2VtYWlsJ1wiXHJcbiAgICAgICAgICBjbGFzcz1cIm1kbC1jZWxsIG1kbC1jZWxsLS0xMi1jb2wgbWRsLWNlbGwtLTgtY29sLXRhYmxldCBtZGwtY2VsbC0tNC1jb2wtcGhvbmUgbW9iaWxlbnVtYmVyLWlucHV0IGFkZHBhdGllbnQtZGV0YWlscy1jb2wgXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWRsLXRleHRmaWVsZCBtZGwtanMtdGV4dGZpZWxkIGZpcnN0LXJvdy1pbnB1dFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsc193aWR0aF9mbGV4XCI+PGxhYmVsIGZvcj1cIm1vYmlsZS1udW1iZXJcIiBjbGFzcz1cIm5vX3R4dF9jbHJcIj5FbWFpbFxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWxzX2ZsYWdfbnVtYmVyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbHNfbW9iaWxlTm9faW5wdXRcIj48aW5wdXQgYXV0b2NvbXBsZXRlPVwib2ZmXCIgY2xhc3M9XCJtZGwtdGV4dGZpZWxkX19pbnB1dCBpbnB1dF90ZXh0ZmllbGRcIlxyXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiZW1haWxcIiBpZD1cIm1vYmlsZS1udW1iZXJcIiBwbGFjZWhvbGRlcj1cInRleHRAZ21haWwuY29tXCIgWyhuZ01vZGVsKV09XCJFbWFpbFwiXHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPVwidGV4dC1kZWNvcmF0aW9uOiBub25lOyBib3JkZXItYm90dG9tOiBub25lO1wiPjwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxociBjbGFzcz1cIm0tMFwiPjxicj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLWJvdHRvbVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi1vdXRlclwiPjxidXR0b24gY2xhc3M9XCJtZGwtYnV0dG9uIG1kbC1qcy1idXR0b24gIHJ4X3JlY29yZF9jaGFuZ2VfcG9wdXBfY2FuY2VsIGNhbmNlbF9zZW5kXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2UoMSlcIiBbZGlzYWJsZWRdPVwidGhpcy5jb21tb25TZXJ2aWNlcy5wcmVzY3JpYmVNZWRMb2FkZXJcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi1zZW5kXCI+XHJcbiAgICAgICAgICAgIDwhLS0gPGJ1dHRvbiBjbGFzcz1cIm1kbC1idXR0b24gbWRsLWpzLWJ1dHRvbiAgcnhfcmVjb3JkX2NoYW5nZV9wb3B1cF9zdWJtaXRcIiAoY2xpY2spPVwiY2xvc2UoMilcIj5SZS1Jc3N1ZTwvYnV0dG9uPiAtLT5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1kbC1idXR0b24gbWRsLWpzLWJ1dHRvbiAgcnhfcmVjb3JkX2NoYW5nZV9wb3B1cF9zdWJtaXRcIlxyXG4gICAgICAgICAgICAgIHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlO3dpZHRoOiAxMTBweDtwYWRkaW5nOiAwO2hlaWdodDogMzhweCAhaW1wb3J0YW50O1wiXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRoaXMuY29tbW9uU2VydmljZXMucHJlc2NyaWJlTWVkTG9hZGVyXCIgKGNsaWNrKT1cImNsb3NlKDIpXCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRoaXMuY29tbW9uU2VydmljZXMucHJlc2NyaWJlTWVkTG9hZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInJ4X2xvYWRlcl9idXR0b24gbS12NFwiXHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlO21hcmdpbjogMDsgdG9wOiA4cHg7bGVmdDogNDAlO3dpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF0aGlzLmNvbW1vblNlcnZpY2VzLnByZXNjcmliZU1lZExvYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgUmUtSXNzdWVcclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj48aSBjbGFzcz1cImZhIGZhLWFuZ2xlLWRvd25cIiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiA1cHg7IGNvbG9yOiAjZmZmXCI+PC9pPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjcnh3aWRnZXRzPiA8L25nLXRlbXBsYXRlPiJdfQ==
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVpc3N1ZS1wb3B1cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ob2xhLXJ4L3NyYy9saWIvcmVpc3N1ZS1wb3B1cC9yZWlzc3VlLXBvcHVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2hvbGEtcngvc3JjL2xpYi9yZWlzc3VlLXBvcHVwL3JlaXNzdWUtcG9wdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBOEMsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXRJLE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7OztBQU83RCxNQUFNLE9BQU8scUJBQXFCO0lBVWhDLFlBQW9CLFVBQXNCLEVBQVMsY0FBOEIsRUFBVSxZQUErQixFQUFVLFVBQXNCO1FBQXRJLGVBQVUsR0FBVixVQUFVLENBQVk7UUFBUyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBbUI7UUFBVSxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBVGhKLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2hDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUczQyx5QkFBb0IsR0FBRyxLQUFLLENBQUE7UUFHNUIsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFDbkIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUV4QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztRQUN6RCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxJ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RyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO1lBQ3JELElBQUksUUFBUSxHQUFHLEVBQUUsSUFBSSxRQUFRLEdBQUcsRUFBRTtnQkFDaEMsT0FBTyxLQUFLLENBQUM7WUFDZixPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsT0FBTyxFQUFPLEVBQUU7WUFDZCxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLHVCQUF1QixFQUFFLGFBQWEsQ0FBQyxDQUFDO1NBQ3RHO0lBQ0gsQ0FBQzs7a0hBbkpVLHFCQUFxQjtzR0FBckIscUJBQXFCLG9SQ1RsQyxteEtBK0UyQzsyRkR0RTlCLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxtQkFBbUI7dUxBS25CLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDbUMsT0FBTztzQkFBaEQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUMvQixTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQsIFRlbXBsYXRlUmVmLCBFbGVtZW50UmVmLCBDaGFuZ2VEZXRlY3RvclJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uU2VydmljZXMgfSBmcm9tICcuLi9zZXJ2aWNlcy9jb21tb24nO1xyXG5pbXBvcnQgeyBjb25maWcsIGVycm9yY29uZmlnIH0gZnJvbSAnLi4vZW52aXJvbm1lbnRzL2NvbmZpZyc7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hcGkuc2VydmljZSc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXJlaXNzdWUtcG9wdXAnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWlzc3VlLXBvcHVwLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9yZWlzc3VlLXBvcHVwLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVpc3N1ZVBvcHVwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAT3V0cHV0KCkgY2xvc2VFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgc3VibWl0RXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQFZpZXdDaGlsZCgncnh3aWRnZXRzJywgeyBzdGF0aWM6IHRydWUgfSkgY29udGVudCE6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQElucHV0KCkgbW9kYWxkYXRhOiBhbnk7XHJcbiAgQWRkcmVzc1NlbmRUb0FkZFR5cGUgPSBcIlNNU1wiXHJcbiAgTW9iaWxlTm86IGFueTtcclxuICBFbWFpbDogYW55O1xyXG4gIHJ4RW1haWxGbGFnID0gdHJ1ZTtcclxuICBpc1Jlc2VuZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHVibGljIGNvbW1vblNlcnZpY2VzOiBDb21tb25TZXJ2aWNlcywgcHJpdmF0ZSBjaGFuZ2VkZXRlY3Q6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIGFwaVNlcnZpY2U6IEFwaVNlcnZpY2UpIHtcclxuICAgIHRoaXMuTW9iaWxlTm8gPSB0aGlzLmNvbW1vblNlcnZpY2VzLnBhdGllbnREZXRhaWxzLnBob25lO1xyXG4gICAgdGhpcy5FbWFpbCA9IHRoaXMuY29tbW9uU2VydmljZXMuaXNTY3JpcHRUb1BoYXJtYWN5ID09IDEgJiYgdGhpcy5jb21tb25TZXJ2aWNlcy5waGFybWFjeUVtYWlsICE9IG51bGwgJiYgdGhpcy5jb21tb25TZXJ2aWNlcy5waGFybWFjeUVtYWlsICE9IFwiXCI/IHRoaXMuY29tbW9uU2VydmljZXMucGhhcm1hY3lFbWFpbCA6IHRoaXMuY29tbW9uU2VydmljZXMucGF0aWVudERldGFpbHMuZW1haWw7XHJcbiAgICB0aGlzLmNvbW1vblNlcnZpY2VzLmlzU2NyaXB0VG9QaGFybWFjeSA9PSAxID8gdGhpcy5BZGRyZXNzU2VuZFRvQWRkVHlwZSA9IFwiRW1haWxcIiA6IHRoaXMuQWRkcmVzc1NlbmRUb0FkZFR5cGUgPSBcIlNNU1wiXHJcbiAgfVxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5pc1Jlc2VuZCA9IHRoaXMubW9kYWxkYXRhPy5pc1Jlc2VuZCB8fCBmYWxzZTtcclxuICAgIHRyeSB7XHJcbiAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1lcHJlc2NyaXB0aW9uX3BvcHVwX3dpZHRoJywgJzQ1MHB4Jyk7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZXg6IGFueSkge1xyXG4gICAgICB0aGlzLmNvbW1vblNlcnZpY2VzLnNldGxvZ3ZhbHVlKGZhbHNlLCBleC5tZXNzYWdlLCBleC5zdGFjaywgXCJSZWlzc3VlUG9wdXBDb21wb25lbnRcIiwgXCJuZ09uSW5pdFwiKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsb3NlKGluZGV4OiBhbnkpOiBhbnkge1xyXG4gICAgdmFyIHBheWxvYWQgPSB7fTtcclxuICAgIHRyeSB7XHJcbiAgICAgIGlmIChpbmRleCAhPSAxKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuQWRkcmVzc1NlbmRUb0FkZFR5cGUudG9Mb3dlckNhc2UoKSA9PSBcInNtc1wiKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5jb21tb25TZXJ2aWNlcy5Jc051bGxPckVtcHR5KHRoaXMuTW9iaWxlTm8udHJpbSgpKSkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbW1vblNlcnZpY2VzLnRvYXN0b3BlbihlcnJvcmNvbmZpZy5lcnJvcl81Ny5tZXNzYWdlLCBcImVycm9yXCIsIGVycm9yY29uZmlnLmVycm9yXzU3LmNvZGUpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbW1vblNlcnZpY2VzLmVycm9yUmVzcG9uc2UoZXJyb3Jjb25maWcuZXJyb3JfNTcuY29kZSwgZXJyb3Jjb25maWcuZXJyb3JfNTcubWVzc2FnZSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHZhciB2YWxpZGJ5ID0gdGhpcy5jb21tb25TZXJ2aWNlcy52YWxpZEJ5TW9iaWxlTm8odGhpcy5Nb2JpbGVOby50cmltKCkpO1xyXG4gICAgICAgICAgaWYgKHZhbGlkYnkgPT0gMSkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbW1vblNlcnZpY2VzLnRvYXN0b3BlbihlcnJvcmNvbmZpZy5lcnJvcl81Ny5tZXNzYWdlLCBcImVycm9yXCIsIGVycm9yY29uZmlnLmVycm9yXzU3LmNvZGUpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbW1vblNlcnZpY2VzLmVycm9yUmVzcG9uc2UoZXJyb3Jjb25maWcuZXJyb3JfNTcuY29kZSwgZXJyb3Jjb25maWcuZXJyb3JfNTcubWVzc2FnZSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh2YWxpZGJ5ID09IDMpIHtcclxuICAgICAgICAgICAgdGhpcy5jb21tb25TZXJ2aWNlcy50b2FzdG9wZW4oZXJyb3Jjb25maWcuZXJyb3JfNTgubWVzc2FnZSwgXCJlcnJvclwiLCBlcnJvcmNvbmZpZy5lcnJvcl81OC5jb2RlKTtcclxuICAgICAgICAgICAgdGhpcy5jb21tb25TZXJ2aWNlcy5lcnJvclJlc3BvbnNlKGVycm9yY29uZmlnLmVycm9yXzU4LmNvZGUsIGVycm9yY29uZmlnLmVycm9yXzU4Lm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodmFsaWRieSA9PSAyKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLk1vYmlsZU5vLmNoYXJBdCgwKSAhPSAnMCcpIHsgdGhpcy5Nb2JpbGVObyA9IFwiMFwiICsgdGhpcy5Nb2JpbGVObzsgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5jb21tb25TZXJ2aWNlcy50b2FzdG9wZW4oZXJyb3Jjb25maWcuZXJyb3JfNTgubWVzc2FnZSwgXCJlcnJvclwiLCBlcnJvcmNvbmZpZy5lcnJvcl81OC5jb2RlKTtcclxuICAgICAgICAgICAgdGhpcy5jb21tb25TZXJ2aWNlcy5lcnJvclJlc3BvbnNlKGVycm9yY29uZmlnLmVycm9yXzU4LmNvZGUsIGVycm9yY29uZmlnLmVycm9yXzU4Lm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLkVtYWlsID0gXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuQWRkcmVzc1NlbmRUb0FkZFR5cGUudG9Mb3dlckNhc2UoKSA9PSBcImVtYWlsXCIpIHtcclxuICAgICAgICAgIGlmICh0aGlzLmNvbW1vblNlcnZpY2VzLklzTnVsbE9yRW1wdHkodGhpcy5FbWFpbC50cmltKCkpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29tbW9uU2VydmljZXMudG9hc3RvcGVuKGVycm9yY29uZmlnLmVycm9yXzU5Lm1lc3NhZ2UsIFwiZXJyb3JcIiwgZXJyb3Jjb25maWcuZXJyb3JfNTkuY29kZSk7XHJcbiAgICAgICAgICAgIHRoaXMuY29tbW9uU2VydmljZXMuZXJyb3JSZXNwb25zZShlcnJvcmNvbmZpZy5lcnJvcl81OS5jb2RlLCBlcnJvcmNvbmZpZy5lcnJvcl81OS5tZXNzYWdlKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKCF0aGlzLmNvbW1vblNlcnZpY2VzLnZhbGlkQnlFbWFpbE5vKHRoaXMuRW1haWwudHJpbSgpKSkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbW1vblNlcnZpY2VzLnRvYXN0b3BlbihlcnJvcmNvbmZpZy5lcnJvcl82MC5tZXNzYWdlLCBcImVycm9yXCIsIGVycm9yY29uZmlnLmVycm9yXzYwLmNvZGUpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbW1vblNlcnZpY2VzLmVycm9yUmVzcG9uc2UoZXJyb3Jjb25maWcuZXJyb3JfNjAuY29kZSwgZXJyb3Jjb25maWcuZXJyb3JfNjAubWVzc2FnZSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuTW9iaWxlTm8gPSBcIlwiO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgYWRkcmVzc1ZhbHVlID0gdGhpcy5BZGRyZXNzU2VuZFRvQWRkVHlwZS50b0xvd2VyQ2FzZSgpID09IFwic21zXCIgPyB0aGlzLk1vYmlsZU5vLnRyaW0oKSA6IHRoaXMuRW1haWwudHJpbSgpO1xyXG4gICAgICAgIHRoaXMuY29tbW9uU2VydmljZXMucHJlc2NyaWJlTWVkTG9hZGVyID0gdHJ1ZTsgdGhpcy5jaGFuZ2VkZXRlY3QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIHBheWxvYWQgPSB7XHJcbiAgICAgICAgICByZXF1ZXN0X3R5cGU6IFwicGFyYW1ldGVyXCIsXHJcbiAgICAgICAgICByeElkOiB0aGlzLmNvbW1vblNlcnZpY2VzLnJ4aWQsXHJcbiAgICAgICAgICBhZGRyZXNzVHlwZTogdGhpcy5BZGRyZXNzU2VuZFRvQWRkVHlwZSxcclxuICAgICAgICAgIGFkZHJlc3NWYWx1ZTogYWRkcmVzc1ZhbHVlXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuYXBpU2VydmljZS5HZXQoY29uZmlnLlBIWVNJQ0lBTi5SWF9SRV9JU1NVRSArIHRoaXMuY29tbW9uU2VydmljZXMucnhpZCArIFwiJmFkZHJlc3NUeXBlPVwiICsgdGhpcy5BZGRyZXNzU2VuZFRvQWRkVHlwZSArIFwiJmFkZHJlc3NWYWx1ZT1cIiArIGFkZHJlc3NWYWx1ZSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuY29tbW9uU2VydmljZXMuSXNOdWxsT3JFbXB0eShyZXMpKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb21tb25TZXJ2aWNlcy5wcmVzY3JpYmVNZWRMb2FkZXIgPSBmYWxzZTsgdGhpcy5jaGFuZ2VkZXRlY3QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICAgIHRoaXMuY29tbW9uU2VydmljZXMuc2V0bG9ndmFsdWUoZmFsc2UsIFwiXCIsIFwiXCIsIFwiUmVpc3N1ZVBvcHVwQ29tcG9uZW50XCIsIFwiY2xvc2VcIiwgcGF5bG9hZCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb21tb25TZXJ2aWNlcy50b2FzdG9wZW4oZXJyb3Jjb25maWcuZXJyb3JfNjQubWVzc2FnZSwgJ2Vycm9yJywgZXJyb3Jjb25maWcuZXJyb3JfNjQuY29kZSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb21tb25TZXJ2aWNlcy5lcnJvclJlc3BvbnNlKGVycm9yY29uZmlnLmVycm9yXzY0LmNvZGUsIGVycm9yY29uZmlnLmVycm9yXzY0Lm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAocmVzLnJlc3BvbnNlX2NvZGUgPT0gMCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuY29tbW9uU2VydmljZXMudG9hc3RvcGVuKHJlcy5yZXNwb25zZV9tZXNzYWdlLCAnc3VjY2VzcycpO1xyXG4gICAgICAgICAgICAgIHRoaXMuY2xvc2VFdmVudC5lbWl0KHJlcyk7XHJcbiAgICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucmVtb3ZlKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb21tb25TZXJ2aWNlcy5wcmVzY3JpYmVNZWRMb2FkZXIgPSBmYWxzZTsgdGhpcy5jaGFuZ2VkZXRlY3QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuY29tbW9uU2VydmljZXMuc2V0bG9ndmFsdWUoZmFsc2UsIHJlcy5yZXNwb25zZV9tZXNzYWdlLCByZXMucmVzcG9uc2VfbWVzc2FnZSwgXCJSZWlzc3VlUG9wdXBDb21wb25lbnRcIiwgXCJjbG9zZVwiLCBwYXlsb2FkKTtcclxuICAgICAgICAgICAgICB0aGlzLmNvbW1vblNlcnZpY2VzLnByZXNjcmliZU1lZExvYWRlciA9IGZhbHNlOyB0aGlzLmNoYW5nZWRldGVjdC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb21tb25TZXJ2aWNlcy50b2FzdG9wZW4ocmVzLnJlc3BvbnNlX21lc3NhZ2UsICdlcnJvcicsIHJlcy5lcnJvcl9jb2RlKTtcclxuICAgICAgICAgICAgICB0aGlzLmNvbW1vblNlcnZpY2VzLmVycm9yUmVzcG9uc2UocmVzLmVycm9yX2NvZGUsIHJlcy5yZXNwb25zZV9tZXNzYWdlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY2F0Y2ggKGV4OiBhbnkpIHtcclxuICAgICAgICAgICAgdGhpcy5jb21tb25TZXJ2aWNlcy5wcmVzY3JpYmVNZWRMb2FkZXIgPSBmYWxzZTsgdGhpcy5jaGFuZ2VkZXRlY3QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbW1vblNlcnZpY2VzLnNldGxvZ3ZhbHVlKGZhbHNlLCBleC5tZXNzYWdlLCBleC5zdGFjaywgXCJSZWlzc3VlUG9wdXBDb21wb25lbnRcIiwgXCJjbG9zZVwiLCBwYXlsb2FkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LCBlcnJvciA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNvbW1vblNlcnZpY2VzLnByZXNjcmliZU1lZExvYWRlciA9IGZhbHNlOyB0aGlzLmNoYW5nZWRldGVjdC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICB0aGlzLmNvbW1vblNlcnZpY2VzLnNldGxvZ3ZhbHVlKGZhbHNlLCBlcnJvci5tZXNzYWdlLCBlcnJvci5zdGFjaywgXCJSZWlzc3VlUG9wdXBDb21wb25lbnRcIiwgXCJjbG9zZVwiLCBwYXlsb2FkKTtcclxuICAgICAgICAgIHRoaXMuY29tbW9uU2VydmljZXMudG9hc3RvcGVuKGVycm9yY29uZmlnLmVycm9yXzY1Lm1lc3NhZ2UgKyBlcnJvciwgXCJlcnJvclwiLCBlcnJvcmNvbmZpZy5lcnJvcl82NS5jb2RlKTtcclxuICAgICAgICAgIHRoaXMuY29tbW9uU2VydmljZXMuZXJyb3JSZXNwb25zZShlcnJvcmNvbmZpZy5lcnJvcl82NS5jb2RlLCBlcnJvcmNvbmZpZy5lcnJvcl82NS5tZXNzYWdlICsgZXJyb3IpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY29tbW9uU2VydmljZXMucHJlc2NyaWJlTWVkTG9hZGVyID0gZmFsc2U7IHRoaXMuY2hhbmdlZGV0ZWN0LmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB0aGlzLmNsb3NlRXZlbnQuZW1pdChudWxsKTtcclxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZW1vdmUoKTtcclxuICAgICAgICB0aGlzLkFkZHJlc3NTZW5kVG9BZGRUeXBlID0gXCJcIjtcclxuICAgICAgICB0aGlzLk1vYmlsZU5vID0gXCJcIjtcclxuICAgICAgICB0aGlzLkVtYWlsID0gXCJcIjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGV4OiBhbnkpIHtcclxuICAgICAgdGhpcy5jb21tb25TZXJ2aWNlcy5zZXRsb2d2YWx1ZShmYWxzZSwgZXgubWVzc2FnZSwgZXguc3RhY2ssIFwiUmVpc3N1ZVBvcHVwQ29tcG9uZW50XCIsIFwiY2xvc2VcIiwgcGF5bG9hZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByYWRpb0NoYW5nZShpbmRleDogbnVtYmVyKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAoaW5kZXggPT0gMSkge1xyXG4gICAgICAgIHRoaXMuQWRkcmVzc1NlbmRUb0FkZFR5cGUgPSBcIlNNU1wiXHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5BZGRyZXNzU2VuZFRvQWRkVHlwZSA9IFwiRW1haWxcIlxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2hhbmdlZGV0ZWN0LmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChleDogYW55KSB7XHJcbiAgICAgIHRoaXMuY29tbW9uU2VydmljZXMuc2V0bG9ndmFsdWUoZmFsc2UsIGV4Lm1lc3NhZ2UsIGV4LnN0YWNrLCBcIlJlaXNzdWVQb3B1cENvbXBvbmVudFwiLCBcInJhZGlvQ2hhbmdlXCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hlY2tNb2JpbGUoZXZ0OiBhbnkpOiBhbnkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgdmFyIGNoYXJDb2RlID0gKGV2dC53aGljaCkgPyBldnQud2hpY2ggOiBldnQua2V5Q29kZTtcclxuICAgICAgaWYgKGNoYXJDb2RlIDwgNDggfHwgY2hhckNvZGUgPiA1NylcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGV4OiBhbnkpIHtcclxuICAgICAgdGhpcy5jb21tb25TZXJ2aWNlcy5zZXRsb2d2YWx1ZShmYWxzZSwgZXgubWVzc2FnZSwgZXguc3RhY2ssIFwiUmVpc3N1ZVBvcHVwQ29tcG9uZW50XCIsIFwiY2hlY2tNb2JpbGVcIik7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJSZWFjdE1vZGFsUG9ydGFsIGVfcHJlc2NyaXB0aW9uX2JveFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJSZWFjdE1vZGFsX19PdmVybGF5IFJlYWN0TW9kYWxfX092ZXJsYXktLWFmdGVyLW9wZW4gb3Blbl9wb3B1cFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIlJlYWN0TW9kYWxfX0NvbnRlbnQgUmVhY3RNb2RhbF9fQ29udGVudC0tYWZ0ZXItb3BlbiBwb3B1cF9oZWFkZXIgZV9wcmVzY3JpcHRpb25fcG9wdXBfaW5uZXJfYm94XCJcclxuICAgICAgdGFiaW5kZXg9XCItMVwiIHJvbGU9XCJkaWFsb2dcIiBhcmlhLW1vZGFsPVwidHJ1ZVwiPlxyXG4gICAgICA8cCBjbGFzcz1cInJ4X3JlY29yZF9jaGFuZ2VfcG9wdXBcIj5Db25maXJtIFBhdGllbnQgQ29udGFjdCBEZXRhaWxzPC9wPjxidXR0b24gdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgY2xhc3M9XCJyeF9yZWNvcmRfcG9wdXBfY2xvc2VcIiAoY2xpY2spPVwiY2xvc2UoMSlcIiBbZGlzYWJsZWRdPVwidGhpcy5jb21tb25TZXJ2aWNlcy5wcmVzY3JpYmVNZWRMb2FkZXJcIj5YPC9idXR0b24+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XHJcbiAgICAgICAgPGhyIGNsYXNzPVwibS0wXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1kbC1jZWxsIG1kbC1jZWxsLS0xMi1jb2wgbWRsLWNlbGwtLTgtY29sLXRhYmxldCBtZGwtY2VsbC0tNC1jb2wtcGhvbmUgIG5ld19yeF9tb2JpbGVfZnVsbHdpZHRoXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsc193aWR0aF9mbGV4XCI+PGxhYmVsIGNsYXNzPVwibGFiZWxcIj5TZW5kIFRva2VuIFZpYTxzcGFuIGNsYXNzPVwidGV4dF9jb250ZW50XCI+Kjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicnhfbmV3X3BvcHVwX2NoZWNrYm94XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyeF9uZXdfcmFkaW9ib3hfYnV0dG9uIHJ4LWJ0biByeF9yYWRpb19vdmVyYWxsXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwicnhfcmFkaW9fbGFiZWxcIiAqbmdJZj1cIiFpc1Jlc2VuZFwiPjxpbnB1dCBbZGlzYWJsZWRdPVwidGhpcy5jb21tb25TZXJ2aWNlcy5pc1NjcmlwdFRvUGhhcm1hY3k9PTFcIiB0eXBlPVwicmFkaW9cIiBjbGFzcz1cIm1kbC1yYWRpb19fYnV0dG9uIGN1c3RvbS1yYWRpby1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICBuYW1lPVwiQWRkcmVzc1NlbmRUb0FkZFR5cGVcIiBbdmFsdWVdPVwiJ1NNUydcIiAoY2xpY2spPVwicmFkaW9DaGFuZ2UoMSlcIlxyXG4gICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJBZGRyZXNzU2VuZFRvQWRkVHlwZS50b0xvd2VyQ2FzZSgpID09ICdzbXMnXCIgLz48c3BhblxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cIm1kbC1yYWRpb19fbGFiZWwgcmFkaW9fdHh0XCI+U01TPC9zcGFuPjwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInJ4X3JhZGlvX2xhYmVsXCI+PGlucHV0IHR5cGU9XCJyYWRpb1wiXHJcbiAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cIkFkZHJlc3NTZW5kVG9BZGRUeXBlLnRvTG93ZXJDYXNlKCkgPT0gJ2VtYWlsJ1wiIChjbGljayk9XCJyYWRpb0NoYW5nZSgyKVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWRsLXJhZGlvX19idXR0b24gZC1pbmxpbmUgcmFkaW8gY3VzdG9tLXJhZGlvLWJ1dHRvblwiIG5hbWU9XCJBZGRyZXNzU2VuZFRvQWRkVHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCInRW1haWwnXCI+PHNwYW4gY2xhc3M9XCJtZGwtcmFkaW9fX2xhYmVsIHJhZGlvX3R4dFwiPkUtTWFpbDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJBZGRyZXNzU2VuZFRvQWRkVHlwZS50b0xvd2VyQ2FzZSgpID09ICdzbXMnXCJcclxuICAgICAgICAgIGNsYXNzPVwibWRsLWNlbGwgbWRsLWNlbGwtLTEyLWNvbCBtZGwtY2VsbC0tOC1jb2wtdGFibGV0IG1kbC1jZWxsLS00LWNvbC1waG9uZSBtb2JpbGVudW1iZXItaW5wdXQgYWRkcGF0aWVudC1kZXRhaWxzLWNvbCBcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZGwtdGV4dGZpZWxkIG1kbC1qcy10ZXh0ZmllbGQgZmlyc3Qtcm93LWlucHV0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWxzX3dpZHRoX2ZsZXhcIj48bGFiZWwgZm9yPVwibW9iaWxlLW51bWJlclwiIGNsYXNzPVwibm9fdHh0X2NsclwiPk1vYmlsZVxyXG4gICAgICAgICAgICAgICAgTnVtYmVyPC9sYWJlbD48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbHNfZmxhZ19udW1iZXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1nLXdcIj48c3BhbiBjbGFzcz1cImFkZHBhdGllbnQtY291bnRyeS1mbGFnXCI+PGltZ1xyXG4gICAgICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vcGFzc2V0cy5ob2xhLmhlYWx0aC9yeC13aWRnZXRzL3J4LWF1c3RyYWxpYS5wbmdcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbHNfbW9iaWxlTm9faW5wdXRcIj48aW5wdXQgYXV0b2NvbXBsZXRlPVwib2ZmXCIgY2xhc3M9XCJtZGwtdGV4dGZpZWxkX19pbnB1dCBpbnB1dF90ZXh0ZmllbGRcIlxyXG4gICAgICAgICAgICAgICAgICB0eXBlPVwidGVsXCIgaWQ9XCJtb2JpbGUtbnVtYmVyXCIgKGtleXByZXNzKT1cImNoZWNrTW9iaWxlKCRldmVudClcIiBwbGFjZWhvbGRlcj1cIjA0IDEyMyA0NTY3OFwiXHJcbiAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiTW9iaWxlTm9cIiBzdHlsZT1cInRleHQtZGVjb3JhdGlvbjogbm9uZTsgYm9yZGVyLWJvdHRvbTogbm9uZTtcIj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIkFkZHJlc3NTZW5kVG9BZGRUeXBlLnRvTG93ZXJDYXNlKCkgPT0gJ2VtYWlsJ1wiXHJcbiAgICAgICAgICBjbGFzcz1cIm1kbC1jZWxsIG1kbC1jZWxsLS0xMi1jb2wgbWRsLWNlbGwtLTgtY29sLXRhYmxldCBtZGwtY2VsbC0tNC1jb2wtcGhvbmUgbW9iaWxlbnVtYmVyLWlucHV0IGFkZHBhdGllbnQtZGV0YWlscy1jb2wgXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWRsLXRleHRmaWVsZCBtZGwtanMtdGV4dGZpZWxkIGZpcnN0LXJvdy1pbnB1dFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsc193aWR0aF9mbGV4XCI+PGxhYmVsIGZvcj1cIm1vYmlsZS1udW1iZXJcIiBjbGFzcz1cIm5vX3R4dF9jbHJcIj5FbWFpbFxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWxzX2ZsYWdfbnVtYmVyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbHNfbW9iaWxlTm9faW5wdXRcIj48aW5wdXQgYXV0b2NvbXBsZXRlPVwib2ZmXCIgY2xhc3M9XCJtZGwtdGV4dGZpZWxkX19pbnB1dCBpbnB1dF90ZXh0ZmllbGRcIlxyXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiZW1haWxcIiBpZD1cIm1vYmlsZS1udW1iZXJcIiBwbGFjZWhvbGRlcj1cInRleHRAZ21haWwuY29tXCIgWyhuZ01vZGVsKV09XCJFbWFpbFwiXHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPVwidGV4dC1kZWNvcmF0aW9uOiBub25lOyBib3JkZXItYm90dG9tOiBub25lO1wiPjwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxociBjbGFzcz1cIm0tMFwiPjxicj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLWJvdHRvbVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi1vdXRlclwiPjxidXR0b24gY2xhc3M9XCJtZGwtYnV0dG9uIG1kbC1qcy1idXR0b24gIHJ4X3JlY29yZF9jaGFuZ2VfcG9wdXBfY2FuY2VsIGNhbmNlbF9zZW5kXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2UoMSlcIiBbZGlzYWJsZWRdPVwidGhpcy5jb21tb25TZXJ2aWNlcy5wcmVzY3JpYmVNZWRMb2FkZXJcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi1zZW5kXCI+XHJcbiAgICAgICAgICAgIDwhLS0gPGJ1dHRvbiBjbGFzcz1cIm1kbC1idXR0b24gbWRsLWpzLWJ1dHRvbiAgcnhfcmVjb3JkX2NoYW5nZV9wb3B1cF9zdWJtaXRcIiAoY2xpY2spPVwiY2xvc2UoMilcIj5SZS1Jc3N1ZTwvYnV0dG9uPiAtLT5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1kbC1idXR0b24gbWRsLWpzLWJ1dHRvbiAgcnhfcmVjb3JkX2NoYW5nZV9wb3B1cF9zdWJtaXRcIlxyXG4gICAgICAgICAgICAgIHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlO3dpZHRoOiAxMTBweDtwYWRkaW5nOiAwO2hlaWdodDogMzhweCAhaW1wb3J0YW50O1wiXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRoaXMuY29tbW9uU2VydmljZXMucHJlc2NyaWJlTWVkTG9hZGVyXCIgKGNsaWNrKT1cImNsb3NlKDIpXCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRoaXMuY29tbW9uU2VydmljZXMucHJlc2NyaWJlTWVkTG9hZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInJ4X2xvYWRlcl9idXR0b24gbS12NFwiXHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlO21hcmdpbjogMDsgdG9wOiA4cHg7bGVmdDogNDAlO3dpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF0aGlzLmNvbW1vblNlcnZpY2VzLnByZXNjcmliZU1lZExvYWRlclwiPlxyXG4gICAgICAgICAgICAgICAge3shaXNSZXNlbmQgPyAnUmUtSXNzdWUnIDogJ1Jlc2VuZCd9fVxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPjxpIGNsYXNzPVwiZmEgZmEtYW5nbGUtZG93blwiIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDVweDsgY29sb3I6ICNmZmZcIj48L2k+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlICNyeHdpZGdldHM+IDwvbmctdGVtcGxhdGU+Il19