@uiapplib/ngx-ui-web-lib 0.0.37 → 0.0.38
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.
- package/esm2022/lib/components/add-employer/add-employer.component.mjs +18 -12
- package/esm2022/lib/components/dua-request-popup/dua-request-popup.component.mjs +3 -2
- package/esm2022/lib/components/questionnaire/account-success/account-success.page.mjs +4 -4
- package/fesm2022/uiapplib-ngx-ui-web-lib.mjs +22 -15
- package/fesm2022/uiapplib-ngx-ui-web-lib.mjs.map +1 -1
- package/lib/components/dua-request-popup/dua-request-popup.component.d.ts.map +1 -1
- package/package.json +3 -2
|
@@ -675,22 +675,25 @@ function AddEmployerComponent_ion_row_35_ion_col_2_Template(rf, ctx) { if (rf &
|
|
|
675
675
|
} }
|
|
676
676
|
function AddEmployerComponent_ion_row_35_ion_col_3_Template(rf, ctx) { if (rf & 1) {
|
|
677
677
|
i0.ɵɵelementStart(0, "ion-col", 91)(1, "div", 16)(2, "label", 92);
|
|
678
|
-
i0.ɵɵtext(3
|
|
678
|
+
i0.ɵɵtext(3);
|
|
679
|
+
i0.ɵɵpipe(4, "date");
|
|
679
680
|
i0.ɵɵelementEnd();
|
|
680
|
-
i0.ɵɵelement(
|
|
681
|
+
i0.ɵɵelement(5, "p-inputNumber", 93)(6, "app-error", 9);
|
|
681
682
|
i0.ɵɵelementEnd()();
|
|
682
683
|
} if (rf & 2) {
|
|
683
684
|
const ctx_r114 = i0.ɵɵnextContext(2);
|
|
684
685
|
const _r0 = i0.ɵɵreference(5);
|
|
685
|
-
i0.ɵɵadvance(
|
|
686
|
+
i0.ɵɵadvance(3);
|
|
687
|
+
i0.ɵɵtextInterpolate1("Total Wages Earned since ", i0.ɵɵpipeBind2(4, 8, ctx_r114.bpStartDateToDisplay, "MMMM d, yyyy"), "");
|
|
688
|
+
i0.ɵɵadvance(2);
|
|
686
689
|
i0.ɵɵproperty("formControl", ctx_r114.grossWages)("max", 999999.99);
|
|
687
690
|
i0.ɵɵadvance(1);
|
|
688
691
|
i0.ɵɵclassMap("app-grid");
|
|
689
|
-
i0.ɵɵproperty("field", ctx_r114.grossWages)("form", _r0)("errDef", i0.ɵɵpureFunction0(
|
|
692
|
+
i0.ɵɵproperty("field", ctx_r114.grossWages)("form", _r0)("errDef", i0.ɵɵpureFunction0(11, _c4));
|
|
690
693
|
} }
|
|
691
694
|
function AddEmployerComponent_ion_row_35_Template(rf, ctx) { if (rf & 1) {
|
|
692
695
|
i0.ɵɵelementStart(0, "ion-row");
|
|
693
|
-
i0.ɵɵtemplate(1, AddEmployerComponent_ion_row_35_ion_col_1_Template, 7, 11, "ion-col", 82)(2, AddEmployerComponent_ion_row_35_ion_col_2_Template, 7, 12, "ion-col", 83)(3, AddEmployerComponent_ion_row_35_ion_col_3_Template,
|
|
696
|
+
i0.ɵɵtemplate(1, AddEmployerComponent_ion_row_35_ion_col_1_Template, 7, 11, "ion-col", 82)(2, AddEmployerComponent_ion_row_35_ion_col_2_Template, 7, 12, "ion-col", 83)(3, AddEmployerComponent_ion_row_35_ion_col_3_Template, 7, 12, "ion-col", 84);
|
|
694
697
|
i0.ɵɵelementEnd();
|
|
695
698
|
} if (rf & 2) {
|
|
696
699
|
const ctx_r26 = i0.ɵɵnextContext();
|
|
@@ -1031,18 +1034,21 @@ function AddEmployerComponent_ion_row_58_Template(rf, ctx) { if (rf & 1) {
|
|
|
1031
1034
|
} }
|
|
1032
1035
|
function AddEmployerComponent_ion_row_59_Template(rf, ctx) { if (rf & 1) {
|
|
1033
1036
|
i0.ɵɵelementStart(0, "ion-row")(1, "ion-col", 91)(2, "div", 16)(3, "label", 92);
|
|
1034
|
-
i0.ɵɵtext(4
|
|
1037
|
+
i0.ɵɵtext(4);
|
|
1038
|
+
i0.ɵɵpipe(5, "date");
|
|
1035
1039
|
i0.ɵɵelementEnd();
|
|
1036
|
-
i0.ɵɵelement(
|
|
1040
|
+
i0.ɵɵelement(6, "p-inputNumber", 93)(7, "app-error", 9);
|
|
1037
1041
|
i0.ɵɵelementEnd()()();
|
|
1038
1042
|
} if (rf & 2) {
|
|
1039
1043
|
const ctx_r45 = i0.ɵɵnextContext();
|
|
1040
1044
|
const _r0 = i0.ɵɵreference(5);
|
|
1041
|
-
i0.ɵɵadvance(
|
|
1045
|
+
i0.ɵɵadvance(4);
|
|
1046
|
+
i0.ɵɵtextInterpolate1("Total Wages Earned since ", i0.ɵɵpipeBind2(5, 8, ctx_r45.bpStartDateToDisplay, "MMMM d, yyyy"), "");
|
|
1047
|
+
i0.ɵɵadvance(2);
|
|
1042
1048
|
i0.ɵɵproperty("formControl", ctx_r45.grossWages)("max", 999999.99);
|
|
1043
1049
|
i0.ɵɵadvance(1);
|
|
1044
1050
|
i0.ɵɵclassMap("app-grid");
|
|
1045
|
-
i0.ɵɵproperty("field", ctx_r45.grossWages)("form", _r0)("errDef", i0.ɵɵpureFunction0(
|
|
1051
|
+
i0.ɵɵproperty("field", ctx_r45.grossWages)("form", _r0)("errDef", i0.ɵɵpureFunction0(11, _c4));
|
|
1046
1052
|
} }
|
|
1047
1053
|
function AddEmployerComponent_div_60_Template(rf, ctx) { if (rf & 1) {
|
|
1048
1054
|
i0.ɵɵelementStart(0, "div", 16)(1, "label", 123);
|
|
@@ -3534,7 +3540,7 @@ export class AddEmployerComponent {
|
|
|
3534
3540
|
i0.ɵɵelementStart(54, "section", 11);
|
|
3535
3541
|
i0.ɵɵtemplate(55, AddEmployerComponent_ion_row_55_Template, 3, 0, "ion-row", 12)(56, AddEmployerComponent_ion_row_56_Template, 3, 0, "ion-row", 12);
|
|
3536
3542
|
i0.ɵɵelementEnd();
|
|
3537
|
-
i0.ɵɵtemplate(57, AddEmployerComponent_ion_row_57_Template, 6, 6, "ion-row", 8)(58, AddEmployerComponent_ion_row_58_Template, 8, 9, "ion-row", 8)(59, AddEmployerComponent_ion_row_59_Template,
|
|
3543
|
+
i0.ɵɵtemplate(57, AddEmployerComponent_ion_row_57_Template, 6, 6, "ion-row", 8)(58, AddEmployerComponent_ion_row_58_Template, 8, 9, "ion-row", 8)(59, AddEmployerComponent_ion_row_59_Template, 8, 12, "ion-row", 8)(60, AddEmployerComponent_div_60_Template, 12, 17, "div", 6)(61, AddEmployerComponent_div_61_Template, 7, 13, "div", 6)(62, AddEmployerComponent_div_62_Template, 7, 11, "div", 6)(63, AddEmployerComponent_ion_row_63_Template, 22, 33, "ion-row", 8)(64, AddEmployerComponent_ion_row_64_Template, 22, 40, "ion-row", 8)(65, AddEmployerComponent_div_65_Template, 9, 14, "div", 6)(66, AddEmployerComponent_div_66_Template, 7, 13, "div", 6)(67, AddEmployerComponent_div_67_Template, 12, 17, "div", 6)(68, AddEmployerComponent_div_68_Template, 7, 13, "div", 6)(69, AddEmployerComponent_div_69_Template, 7, 11, "div", 6)(70, AddEmployerComponent_div_70_Template, 6, 10, "div", 6)(71, AddEmployerComponent_div_71_Template, 7, 11, "div", 6)(72, AddEmployerComponent_div_72_Template, 7, 11, "div", 6)(73, AddEmployerComponent_div_73_Template, 6, 10, "div", 6)(74, AddEmployerComponent_div_74_Template, 7, 11, "div", 6)(75, AddEmployerComponent_div_75_Template, 9, 14, "div", 6)(76, AddEmployerComponent_div_76_Template, 8, 15, "div", 6)(77, AddEmployerComponent_div_77_Template, 7, 11, "div", 6)(78, AddEmployerComponent_div_78_Template, 6, 10, "div", 6)(79, AddEmployerComponent_div_79_Template, 7, 11, "div", 6)(80, AddEmployerComponent_div_80_Template, 37, 54, "div", 8)(81, AddEmployerComponent_ion_row_81_Template, 11, 16, "ion-row", 8)(82, AddEmployerComponent_div_82_Template, 17, 12, "div", 8);
|
|
3538
3544
|
i0.ɵɵelementEnd()()();
|
|
3539
3545
|
i0.ɵɵelementStart(83, "ion-row")(84, "ion-col", 13)(85, "ion-button", 14);
|
|
3540
3546
|
i0.ɵɵlistener("click", function AddEmployerComponent_Template_ion_button_click_85_listener() { return ctx.onModelCancel(false); });
|
|
@@ -3700,7 +3706,7 @@ export class AddEmployerComponent {
|
|
|
3700
3706
|
}
|
|
3701
3707
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AddEmployerComponent, [{
|
|
3702
3708
|
type: Component,
|
|
3703
|
-
args: [{ selector: 'app-add-employer', template: "<p-dialog visible=\"true\" modal=\"true\" position=\"top\" appendTo=\"body\" [showHeader]=\"false\" [draggable]=\"false\"\r\n [resizable]=\"false\" [style]=\"{width: '80vw'}\"\r\n [breakpoints]=\"{'1200px': '660px', '992px': '660px', '768px': '100vw', '576px': '100vw'}\">\r\n <h4 style=\"color: var(--ion-color-grey); padding-left: 20px;\"> {{\"induction.confirm.employment.heading\"|translate}}\r\n </h4>\r\n\r\n\r\n <form [formGroup]=\"addEmployerForm\" #addEmployerFormDirective=\"ngForm\">\r\n <ion-grid>\r\n <ion-row>\r\n <ion-col class=\"ion-padding\" size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"12\" sizeLg=\"10\" sizeXl=\"6\">\r\n <div class=\"p-fluid p-formgrid\">\r\n <div class=\"field\" *ngIf=\"isBasePeriodEmployer\">\r\n {{customerName}}\r\n <div *ngIf=\"aliasName != null\">\r\n {{\"induction.confirm.employment.dba\"|translate}} {{aliasName}}</div>\r\n <br>\r\n <div *ngIf=\"isBasePeriodEmployer && osaBpEmployerFlag.value ==='0'\">\r\n <span style=\"font-size: 12px;\"> {{mailingAddressDisplay}}\r\n </span>\r\n </div>\r\n <div *ngIf=\"isCSR && osaBpEmployerFlag.value ==='0'\">\r\n <br>\r\n {{\"induction.confirm.employment.employer.wages\"|translate}}\r\n </div>\r\n <div class=\"field\" *ngIf=\"isCSR\">\r\n <p-table [value]=\"employerProvidedWages\" styleClass=\"p-datatable-striped app-datatable ion-padding-top\"\r\n [columns]=\"employerProvidedWages\">\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th *ngFor=\"let col of columns\">\r\n <b>{{ col.qtrYearDisplayString }}</b>\r\n </th>\r\n </tr>\r\n <tr>\r\n <td *ngFor=\"let col of columns\">\r\n {{col.wageAmount | currency}}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"isBasePeriodEmployer && workFlag.value == 'N'\">\r\n <label for=\"workFlag\">{{\"induction.confirm.employment.workflag.no\"|translate}}<br /> <br />\r\n {{\"induction.confirm.employment.workflag.no.line2\"|translate}}</label>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"!isBasePeriodEmployer\">\r\n <label for=\"employerType\">{{\"induction.add.employment.employer.type\"|translate}}</label>\r\n <div style=\"inline-size: inherit;\">\r\n <p-selectButton id=\"employerType\" unselectable=\"true\" [options]=\"employerTypeOptions\" optionLabel=\"text\"\r\n optionValue=\"value\" [formControl]=\"employerType\"\r\n (onOptionClick)=\"onToggleChangeEmployerType($event)\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='employerType' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"!isBasePeriodEmployer && employerType.value==='REG'\">\r\n <label for=\"employerName\">{{\"induction.add.employment.employer.name\"|translate}}</label>\r\n <app-search-employer [formControl]=\"employerName\" empType=\"REG\" (onFound)=\"setEmployer($event)\"\r\n (onEmpty)=\"resetEmployer($event)\"></app-search-employer>\r\n <app-error [class]=\"'app-grid'\" [field]='employerName' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" style=\"width: inherit !important;\" *ngIf=\"employerType.value==='FED'\">\r\n <label for=\"fedEmployerName\">{{\"induction.add.employment.employer.fed.name\"|translate}}</label>\r\n <app-search-employer [formControl]=\"fedEmployerName\" empType=\"FED\" (onFound)=\"setFedEmployer($event)\"\r\n (onEmpty)=\"resetFedEmployer($event)\"></app-search-employer>\r\n <app-error [class]=\"'app-grid'\" [field]='fedEmployerName' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"employerType.value==='MIL' && this.currentState != 'ME'\">\r\n <label for=\"serviceBranch\">{{\"induction.add.employment.mil.service.branch\"|translate}}</label>\r\n <app-dropdown [options]=\"militaryServiceOptions\" [formControl]=\"serviceBranch\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"serviceBranch\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='serviceBranch' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n \r\n <!-- Maine includes Space Force -->\r\n <div class=\"field\" *ngIf=\"employerType.value==='MIL' && this.currentState === 'ME'\">\r\n <label for=\"serviceBranch\">{{\"induction.add.employment.mil.service.branch\"|translate}}</label>\r\n <app-dropdown [options]=\"militaryServiceOptionsWithSpace\" [formControl]=\"serviceBranch\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"serviceBranch\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='serviceBranch' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <ion-row *ngIf=\"employerType.value==='MIL'\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"startDateMil\">{{\"induction.add.employment.mil.startdate\"|translate}}</label>\r\n <p-calendar iconAriaLabel=\"startDateMil\" [showIcon]=\"true\" inputId=\"startDateMil\"\r\n [formControl]=\"startDateMil\" [maxDate]=\"dateTime\" [yearNavigator]=\"true\" yearRange=\"1901:2050\"\r\n appendTo=\"body\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\" (onBlur)=\"validate($event)\"\r\n (onSelect)=\"validate($event)\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\"\r\n [minDate]=\"minWorkStartDate\">\r\n </p-calendar>\r\n <app-error [class]=\"'app-grid'\" [field]='startDateMil' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"endDateMil\">{{\"induction.add.employment.mil.enddate\"|translate}}</label>\r\n <p-calendar iconAriaLabel=\"endDateMil\" [showIcon]=\"true\" inputId=\"endDateMil\" [maxDate]=\"dateTime\"\r\n [minDate]=\"minDate\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\" [yearNavigator]=\"true\"\r\n appendTo=\"body\" yearRange=\"1901:2050\" dataType=\"string\" [formControl]=\"endDateMil\"\r\n [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\"></p-calendar>\r\n <app-error [class]=\"'app-grid'\" [field]='endDateMil' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <ion-row *ngIf=\"employerType.value==='FED' && hideFicCode\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"ficCode\">{{\"induction.add.employment.fed.fic.code\"|translate}}</label>\r\n <input id=\"ficCode\" type=\"input\" pInputText [formControl]=\"ficCode\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='ficCode' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"ficDestinationName\">{{\"induction.add.employment.fed.fic.destination\"|translate}}</label>\r\n <input id=\"ficDestinationName\" type=\"input\" pInputText [formControl]=\"ficDestinationName\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='ficDestinationName' [form]=\"addEmployerFormDirective\"\r\n [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <ion-row *ngIf=\"!isBasePeriodEmployer && employerType.value==='REG'\">\r\n <ion-col style=\"padding-left: 0px; padding-right: 0px;\">\r\n <app-address #address1 [formControl]=\"address\" [countyRequired]=\"false\" [fromPopup]=\"true\">\r\n </app-address>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"isBasePeriodEmployer && osaBpEmployerFlag.value ==='1' && employerType.value==='REG'\">\r\n <ion-col style=\"padding-left: 0px; padding-right: 0px;\">\r\n <app-address #address3 [formControl]=\"address\" [countyRequired]=\"false\" [fromPopup]=\"true\">\r\n </app-address>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <app-address #address2 [formControl]=\"address\" countyRequired=\"false\" [fromPopup]=\"true\"> </app-address>\r\n <app-error [class]=\"'app-grid'\" [field]='address' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n addressValidationFlag: 'Please provide, a valid address.'\r\n }\"></app-error>\r\n </div>\r\n\r\n \r\n <div class=\"field\"\r\n *ngIf=\"(((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer) && employerType.value==='REG')\">\r\n <label for=\"employerTelephoneNumber\">{{\"induction.confirm.employment.employer.phone\"|translate}}</label>\r\n\r\n <p-inputMask mask=\"999-999-9999\" id=\"employerTelephoneNumber\" [formControl]=\"employerTelephoneNumber\"\r\n placeholder=\"999-999-9999\"></p-inputMask>\r\n\r\n\r\n <app-error [class]=\"'app-grid'\" [field]='employerTelephoneNumber' [form]=\"addEmployerFormDirective\"\r\n [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n\r\n <ion-row *ngIf=\"(!isBasePeriodEmployer && employerType.value==='REG')\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"workCity\">{{\"induction.add.employment.work.location.city\"|translate}} </label>\r\n <input id=\"workCity\" type=\"input\" pInputText [formControl]=\"workCity\" maxlength=\"30\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='workCity' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"workState\">{{\"induction.add.employment.work.location.state\"|translate}}</label>\r\n <app-dropdown [options]=\"statesOptions\" [formControl]=\"workState\" optionLabel=\"text\" appendTo=\"body\"\r\n [autoDisplayFirst]=\"false\" inputId=\"workState\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='workState' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <label for=\"fedWorkCountry\">{{\"induction.add.employment.fed.work.location.country\"|translate}}</label>\r\n <app-dropdown [options]=\"workCountryOptions\" [formControl]=\"fedWorkCountry\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"fedWorkCountry\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='fedWorkCountry' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <ion-row *ngIf=\"employerType.value==='FED'\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"fedWorkCity\">{{\"induction.add.employment.work.location.city\"|translate}}</label>\r\n <input id=\"fedWorkCity\" type=\"input\" pInputText [formControl]=\"fedWorkCity\" maxlength=\"30\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='fedWorkCity' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col>\r\n <ion-col style=\"padding: 0px;\" *ngIf=\"showWorkState === true\">\r\n <div class=\"field\">\r\n <label for=\"fedWorkState\">{{\"induction.add.employment.work.location.state\"|translate}}</label>\r\n <app-dropdown [options]=\"statesOptions\" [formControl]=\"fedWorkState\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"fedWorkState\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='fedWorkState' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n\r\n\r\n\r\n\r\n\r\n <ion-row *ngIf=\"employerType.value==='FED'\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"startDateFed\">{{\"induction.add.employment.fed.startdate\"|translate}}</label>\r\n <p-calendar iconAriaLabel=\"startDateFed\" [showIcon]=\"true\" [maxDate]=\"dateTime\" inputId=\"startDateFed\"\r\n [formControl]=\"startDateFed\" [yearNavigator]=\"true\" yearRange=\"1901:2050\" appendTo=\"body\"\r\n dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\" (onBlur)=\"validate($event)\"\r\n (onSelect)=\"validate($event)\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\"\r\n [minDate]=\"minWorkStartDate\">\r\n </p-calendar>\r\n <app-error [class]=\"'app-grid'\" [field]='startDateFed' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"endDateFed\">{{\"induction.add.employment.fed.enddate\"|translate}}</label>\r\n <p-calendar iconAriaLabel=\"endDateFed\" [showIcon]=\"true\" inputId=\"endDateFed\" [maxDate]=\"dateTime\"\r\n [minDate]=\"minDate\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\" [yearNavigator]=\"true\"\r\n appendTo=\"body\" yearRange=\"1901:2050\" dataType=\"string\" [formControl]=\"endDateFed\"\r\n [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\"></p-calendar>\r\n <app-error [class]=\"'app-grid'\" [field]='endDateFed' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <label for=\"fedJobTileOrPosition\">{{\"induction.add.employment.fed.jobtitle\"|translate}}</label>\r\n <input id=\"fedJobTileOrPosition\" type=\"input\" pInputText [formControl]=\"fedJobTileOrPosition\"\r\n maxlength=\"100\" appStripInvisibleChars/>\r\n <!-- <p-autoComplete [formControl]=\"fedJobTileOrPosition\" [suggestions]=\"fedJobTileOptions\" \r\n (completeMethod)=\"filterFedJobTileOrPosition($event)\" field=\"jobTitle\" [dropdown]=\"false\" \r\n placeholder=\"Start... typing job title\" minLength=3 forceSelection=\"true\">\r\n <ng-template let-value pTemplate=\"item\">\r\n <div>\r\n <div>{{value.jobTitle}}</div>\r\n </div>\r\n </ng-template>\r\n </p-autoComplete> -->\r\n\r\n <app-error [class]=\"'app-grid'\" [field]='fedJobTileOrPosition' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <label for=\"sfEightflag\">{{\"induction.add.employment.fed.sfeight\"|translate}} </label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton id=\"sfEightflag\" unselectable=\"true\" [options]=\"radioOptions\"\r\n [formControl]=\"sfEightflag\" optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n </div>\r\n <app-error [class]=\"'app-grid'\" [field]='sfEightflag' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <ion-row *ngIf=\"(((isBasePeriodEmployer && workFlag.value==='Y') \r\n || !isBasePeriodEmployer) && employerType.value==='REG')\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"startDate\">{{\"induction.confirm.employment.startdate\"|translate}}</label>\r\n <p-calendar iconAriaLabel=\"startDate\" [showIcon]=\"true\" inputId=\"startDate\" [maxDate]=\"dateTime\"\r\n [formControl]=\"startDate\" [yearNavigator]=\"true\" yearRange=\"1901:2050\" [minDate]=\"minWorkStartDate\"\r\n appendTo=\"body\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\" (onBlur)=\"validate($event)\"\r\n (onSelect)=\"validate($event)\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [class]=\"'app-grid'\" [field]='startDate' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"endDate\">{{\"induction.confirm.employment.enddate\"|translate}}</label>\r\n <p-calendar iconAriaLabel=\"endDate\" [showIcon]=\"true\" inputId=\"endDate\" [minDate]=\"minDate\"\r\n [maxDate]=\"dateTime\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\" [yearNavigator]=\"true\"\r\n appendTo=\"body\" yearRange=\"1901:2050\" dataType=\"string\" [formControl]=\"endDate\"\r\n (onBlur)=\"validateWagesDisplay($event)\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\"\r\n (onSelect)=\"validateWagesDisplay($event)\"></p-calendar>\r\n <app-error [class]=\"'app-grid'\" [field]='endDate' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <div class=\"field\" *ngIf=\"(((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer) \r\n && (employerType.value==='REG' || employerType.value==='FED') && this.currentState == 'CT')\">\r\n <label for=\"separationDateFlag\">{{\"induction.confirm.employment.separationDateFlag\"|translate}}</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton id=\"separationDateFlag\" unselectable=\"true\" [options]=\"radioOptions\"\r\n [formControl]=\"separationDateFlag\" optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='separationDateFlag' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field\"\r\n *ngIf=\"(((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer)\r\n && (employerType.value==='REG' || employerType.value==='FED') && this.currentState == 'CT' && separationDateFlag.value==='Y' )\">\r\n <label for=\"separationDate\">{{\"induction.confirm.employment.separationDate\"|translate}}</label>\r\n <div>\r\n <p-calendar [showIcon]=\"true\" inputId=\"separationDate\" [formControl]=\"separationDate\"\r\n [yearNavigator]=\"true\" appendTo=\"body\" yearRange=\"1901:2050\" dateFormat=\"mm/dd/yy\"\r\n placeholder=\"mm/dd/yyyy\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [class]=\"'app-grid'\" [field]='separationDate' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <ion-row *ngIf=\"(displayVerificationOfWages.value && !isBasePeriodEmployer && employerType.value==='REG')\">\r\n <!-- <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"numberEmployed\">{{\"induction.add.employment.reg.employees.no\" | translate}} </label>\r\n <p-inputNumber [id]=\"numberEmployed\" [useGrouping]=\"false\" [formControl]=\"numberEmployed\"\r\n maxlength=\"9\"></p-inputNumber>\r\n <app-error [class]=\"'app-grid'\" [field]='numberEmployed' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col> --> \r\n </ion-row>\r\n\r\n\r\n\r\n <!-- <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <label for=\"claimantEmployedWithEmpr\">Were you employed while a spouse of a US military member stationed at\r\n a foreign military base?</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton unselectable=\"true\" [options]=\"yesNoNaOptions\" [formControl]=\"claimantEmployedWithEmpr\" optionLabel=\"text\"\r\n optionValue=\"value\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='claimantEmployedWithEmpr' [form]=\"addEmployerFormDirective\"\r\n [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div> -->\r\n\r\n\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <label for=\"performedService\">{{\"induction.add.employment.fed.civilian.work\"|translate}}</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton id=\"performedService\" unselectable=\"true\" [options]=\"radioOptions\"\r\n [formControl]=\"performedService\" optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='performedService' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field\"\r\n *ngIf=\"((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer) && employerType.value==='REG'\">\r\n <label for=\"jobTileOrPosition\">{{\"induction.confirm.employment.jobtitle\"|translate}}</label>\r\n <input id=\"jobTileOrPosition\" type=\"input\" pInputText [formControl]=\"jobTileOrPosition\" maxlength=\"100\" />\r\n <!-- <p-autoComplete [formControl]=\"jobTileOrPosition\" [suggestions]=\"jobTileOrPositionOptions\" \r\n (completeMethod)=\"filterJobTileOrPosition($event)\" field=\"jobTitle\" (onClear)=\"onClearAction($event)\" \r\n [dropdown]=\"false\" placeholder=\"Start... typing job title\" minLength=3 forceSelection=\"true\">\r\n <ng-template let-value pTemplate=\"item\">\r\n <div>\r\n <div>{{value.jobTitle}}</div>\r\n </div>\r\n </ng-template>\r\n </p-autoComplete> -->\r\n\r\n <app-error [class]=\"'app-grid'\" [field]='jobTileOrPosition' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <ion-row *ngIf=\"((employerType.value==='REG' || employerType.value==='FED') && !isBasePeriodEmployer)\">\r\n <ion-col style=\"padding-right:5px; padding-left: 0px; padding-top: 0px;\" *ngIf=\"!isBasePeriodEmployer\">\r\n <div class=\"field\">\r\n <label for=\"payRate\">{{\"induction.add.employment.payrate\"|translate}}</label>\r\n <p-inputNumber inputId=\"payRate\" [formControl]=\"payRate\" mode=\"currency\" currency=\"USD\"\r\n [max]=\"999999.99\" maxlength=\"12\" locale=\"en-US\"></p-inputNumber>\r\n <app-error [class]=\"'app-grid'\" [field]='payRate' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n\r\n <ion-col style=\"padding-right:5px;padding-top: 0px;\" *ngIf=\"!isBasePeriodEmployer\">\r\n <div class=\"field\">\r\n <label for=\"payRateFrequency\">{{\"induction.add.employment.per\"|translate}}</label>\r\n <app-dropdown [options]=\"payRateOptions\" [formControl]=\"payRateFrequency\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"payRateFrequency\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='payRateFrequency' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n\r\n <ion-col *ngIf=\"this.currentState != 'MS' && displayVerificationOfWages.value && !isBasePeriodEmployer\" style=\"padding-top: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"grossWages\" style=\"inline-size: max-content;\">Total Wages Earned</label>\r\n <p-inputNumber [formControl]=\"grossWages\" mode=\"currency\" currency=\"USD\" maxlength=\"12\"\r\n [max]=\"999999.99\" locale=\"en-US\">\r\n </p-inputNumber>\r\n <app-error [class]=\"'app-grid'\" [field]='grossWages' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <ion-row *ngIf=\"(employerType.value==='REG' || employerType.value==='FED')\">\r\n <ion-col style=\"padding-right:5px; padding-left: 0px;\"\r\n *ngIf=\"(isBasePeriodEmployer && workFlag.value==='Y')\">\r\n <div class=\"field\">\r\n <label for=\"payRate\">{{\"induction.confirm.employment.payrate\"|translate}}</label>\r\n <p-inputNumber [formControl]=\"payRate\" mode=\"currency\" currency=\"USD\" [max]=\"999999.99\" maxlength=\"12\"\r\n locale=\"en-US\"></p-inputNumber>\r\n <app-error [class]=\"'app-grid'\" [field]='payRate' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n\r\n <ion-col style=\"padding-right:5px;\" *ngIf=\"(isBasePeriodEmployer && workFlag.value==='Y')\">\r\n <div class=\"field\">\r\n <label for=\"payRateFrequency\">{{\"induction.confirm.employment.per\"|translate}}</label>\r\n <app-dropdown [options]=\"payRateOptions\" [formControl]=\"payRateFrequency\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"payRateFrequency\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='payRateFrequency' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <div class=\"field\" *ngIf=\"((this.currentState === 'CT' && (employerType.value==='REG' || employerType.value==='FED'))\r\n && ((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer))\">\r\n <label for=\"hrsWeek\">{{\"induction.confirm.employment.hrsweek\"|translate}}</label>\r\n <p-inputNumber [formControl]=\"hrsWeek\" [max]=\"999\" maxlength=\"3\" locale=\"en-US\"></p-inputNumber>\r\n <app-error [class]=\"'app-grid'\" [field]='hrsWeek' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"((this.currentState === 'CT' && (employerType.value==='REG' || employerType.value==='FED'))\r\n && ((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer))\">\r\n <label for=\"shift\">{{\"induction.confirm.employment.shift\"|translate}}</label>\r\n <p-checkbox [name]=\"'shift-group'\" [value]=\"choice.value\" [label]=\"choice.text\"\r\n *ngFor=\"let choice of shiftOptions\" [formControl]=\"shift\" styleClass=\"app-p-checkbox\"></p-checkbox>\r\n <app-error [class]=\"'app-grid'\" [field]='shift' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n\r\n <div class=\"field\" *ngIf=\"((this.currentState === 'CT' && (employerType.value==='REG' || employerType.value==='FED'))\r\n && ((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer))\">\r\n <label for=\"didWork\">{{\"induction.confirm.employment.didwork\"|translate}}</label>\r\n <app-dropdown [options]=\"didWorkOptions\" [formControl]=\"didWork\" optionLabel=\"text\" appendTo=\"body\"\r\n [autoDisplayFirst]=\"false\" inputId=\"didWork\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='didWork' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n\r\n\r\n <div class=\"field\" *ngIf=\"((this.currentState === 'CT' && (employerType.value==='REG' || employerType.value==='FED'))\r\n && ((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer))\">\r\n <label for=\"workWeek\">{{\"induction.confirm.employment.workweek\"|translate}}</label>\r\n <p-checkbox [name]=\"'workWeek-group'\" [value]=\"choice.value\" [label]=\"choice.text\"\r\n *ngFor=\"let choice of workWeekOptions\" [formControl]=\"workWeek\"\r\n styleClass=\"app-p-checkbox\"></p-checkbox>\r\n <app-error [class]=\"'app-grid'\" [field]='workWeek' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n\r\n <div class=\"field\" *ngIf=\"employerType.value && (((isBasePeriodEmployer && workFlag.value==='Y') \r\n || !isBasePeriodEmployer) && employerType.value!='MIL')\">\r\n <label for=\"reasonSeparation\">\r\n <div *ngIf=\"employerType.value==='REG' \">{{\"induction.confirm.employment.reason.separation\"|translate}}\r\n </div>\r\n <div *ngIf=\"employerType.value==='FED' \">{{\"induction.add.employment.fed.reason.separation\"|translate}}\r\n </div>\r\n </label>\r\n\r\n <app-dropdown [options]=\"employmentStatusOptionsAll\" [formControl]=\"reasonSeparation\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"reasonSeparation\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='reasonSeparation' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <!-- add for quit and discharge -->\r\n <div class=\"field\" *ngIf=\"(((isBasePeriodEmployer && workFlag.value==='Y') \r\n || !isBasePeriodEmployer) && reasonSeparation.value && reasonSeparation.value.value === 'DCFI' \r\n && employerType.value!='MIL')\">\r\n <label\r\n for=\"dischargeDetail\">{{\"induction.confirm.employment.reason.separation.discharge\"|translate}}</label>\r\n <app-dropdown [options]=\"dischargeReasonOptionsAll\" [formControl]=\"dischargeDetail\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"dischargeDetail\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='dischargeDetail' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"(((isBasePeriodEmployer && workFlag.value==='Y') \r\n || !isBasePeriodEmployer) && reasonSeparation.value && reasonSeparation.value.value === 'VOLQ' \r\n && employerType.value!='MIL')\">\r\n <label for=\"volQuitDetails\">{{\"induction.confirm.employment.reason.separation.quit\"|translate}}</label>\r\n <app-dropdown [options]=\"volQuitReasonOptionsAll\" [formControl]=\"volQuitDetails\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"volQuitDetails\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='volQuitDetails' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"employerType.value==='MIL' \">\r\n <label for=\"milPensionFlag\">{{\"induction.add.employment.mil.pension\"|translate}}\r\n <br> {{\"induction.add.employment.mil.pension.disclaimer\"|translate}}\r\n </label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton id=\"milPensionFlag\" unselectable=\"true\" [options]=\"radioOptions\"\r\n [formControl]=\"milPensionFlag\" optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='milPensionFlag' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\"\r\n *ngIf=\"employerType.value==='MIL' && this.milPensionFlag.value === 'Y' && this.currentState != 'ME'\">\r\n <label for=\"milPensionRecvDate\">{{\"induction.add.employment.mil.pension.date\"|translate}}</label>\r\n <div>\r\n <p-calendar [showIcon]=\"true\" inputId=\"milPensionRecvDate\" [formControl]=\"milPensionRecvDate\"\r\n [yearNavigator]=\"true\" appendTo=\"body\" yearRange=\"1901:2050\" dateFormat=\"mm/dd/yy\"\r\n placeholder=\"mm/dd/yyyy\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [class]=\"'app-grid'\" [field]='milPensionRecvDate' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"employerType.value==='MIL' \">\r\n <label for=\"dd214Flag\">{{\"induction.add.employment.mil.dd214\"|translate}}\r\n </label><br>\r\n <div style=\"inline-size: min-content; display: inline-flex;\">\r\n <p-selectButton id=\"dd214Flag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"dd214Flag\"\r\n optionLabel=\"text\" optionValue=\"value\" (onOptionClick)=\"putMilValidation($event)\"></p-selectButton>\r\n </div>\r\n </div>\r\n <app-error [class]=\"'app-grid'\" [field]='dd214Flag' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n\r\n <ion-col class=\"ion-padding\" size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"6\" sizeLg=\"6\" sizeXl=\"6\">\r\n <div class=\"p-fluid p-formgrid\">\r\n\r\n <section class=\"pad-space\"> \r\n <ion-row *ngIf=\"!isBasePeriodEmployer\" class=\"ion-hide-sm-down\">\r\n <ion-col>\r\n <div class=\"field\"></div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"!isBasePeriodEmployer\" class=\"ion-hide-sm-down\">\r\n <ion-col>\r\n <div class=\"field\"></div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"!isBasePeriodEmployer\" class=\"ion-hide-sm-down\">\r\n <ion-col>\r\n <div class=\"field\"></div>\r\n </ion-col>\r\n </ion-row>\r\n </section>\r\n\r\n <section class=\"pad-space\"> \r\n <ion-row *ngIf=\"isBasePeriodEmployer\" class=\"ion-hide-sm-down\">\r\n <ion-col>\r\n <div class=\"field\"></div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"isBasePeriodEmployer\" class=\"ion-hide-sm-down\">\r\n <ion-col>\r\n <div class=\"field\"></div>\r\n </ion-col>\r\n </ion-row>\r\n </section>\r\n <ion-row *ngIf=\"employerType.value==='MIL' && dd214Flag.value==='Y'\">\r\n <ion-col style=\"border-style: solid;\r\n border-width: 1px;\">\r\n <div [innerHTML]=\"paraOne | translate\">\r\n </div>\r\n <!-- <app-file-uploader [formControl]=\"dd214File\" [uploadedFileForEdit]=\"dd214File.value\"></app-file-uploader> -->\r\n <!-- <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(paraTwo | translate)\">\r\n </div> -->\r\n <!-- <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(paraThree | translate)\">\r\n </div>\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(paraFour | translate)\">\r\n </div>\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(paraFive | translate)\">\r\n </div> -->\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(paraSix| translate)\" style=\"padding-left: 15px;\">\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <ion-row *ngIf=\"employerType.value==='MIL' && dd214Flag.value==='N'\">\r\n <ion-col style=\"border-style: solid;\r\n border-width: 1px;\">\r\n <div [innerHTML]=\"noParaOne | translate\">\r\n </div>\r\n <!-- <app-file-uploader [formControl]=\"dd214File\" [uploadedFileForEdit]=\"dd214File.value\"></app-file-uploader> -->\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(noParaTwo | translate)\">\r\n </div>\r\n <!-- <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(noParaThree | translate)\">\r\n </div> -->\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(noParaFour | translate)\"\r\n style=\"padding-left: 15px;\">\r\n </div>\r\n <!-- <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(noParaFive | translate)\">\r\n </div> -->\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"(this.currentState != 'MS' && employerType.value==='REG' && osaBpEmployerFlag.value ==='1')\">\r\n <ion-col style=\"padding-top: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"grossWages\" style=\"inline-size: max-content;\">Total Wages Earned</label>\r\n <p-inputNumber [formControl]=\"grossWages\" mode=\"currency\" currency=\"USD\" maxlength=\"12\"\r\n [max]=\"999999.99\" locale=\"en-US\">\r\n </p-inputNumber>\r\n <app-error [class]=\"'app-grid'\" [field]='grossWages' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED' \">\r\n <label for=\"fedPensionFlag\">{{\"induction.add.employment.fed.pension\"|translate}}\r\n <br> {{\"induction.add.employment.fed.pension.disclaimer\"|translate}}\r\n </label>\r\n <div style=\"inline-size: min-content; display:flex\">\r\n <p-selectButton id=\"fedPensionFlag\" unselectable=\"true\" [options]=\"radioOptions\"\r\n [formControl]=\"fedPensionFlag\" optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-overlay-info overlayText=\"{{'induction.add.employment.fed.pension.info'| translate}}\"\r\n style=\"margin-top: 2px; margin-left: 6px;\"></app-overlay-info>\r\n </div>\r\n <app-error [class]=\"'app-grid'\" [field]='fedPensionFlag' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\"\r\n *ngIf=\"employerType.value==='FED' && this.fedPensionFlag.value === 'Y' && this.currentState != 'ME'\">\r\n <label for=\"fedPensionRecvDate\">{{\"induction.add.employment.fed.pension.date\"|translate}}</label>\r\n <div>\r\n <p-calendar [showIcon]=\"true\" inputId=\"fedPensionRecvDate\" [formControl]=\"fedPensionRecvDate\"\r\n [yearNavigator]=\"true\" appendTo=\"body\" yearRange=\"1901:2050\" dateFormat=\"mm/dd/yy\"\r\n placeholder=\"mm/dd/yyyy\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [class]=\"'app-grid'\" [field]='fedPensionRecvDate' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED' && this.currentState === 'ME' \">\r\n <label for=\"sevPayFlag\">{{\"induction.add.employment.fed.severance\"|translate}}</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton id=\"sevPayFlag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"sevPayFlag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='sevPayFlag' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n\r\n <ion-row *ngIf=\"employerType.value==='FED' && sevPayFlag.value==='Y'\">\r\n <ion-col style=\"padding-right:5px;\">\r\n <div class=\"field\">\r\n <label for=\"weeklyAmount\">{{\"induction.add.employment.fed.severance.weekly.amt\"|translate}}</label>\r\n <p-inputNumber [formControl]=\"weeklyAmount\" mode=\"currency\" currency=\"USD\" maxlength=\"12\"\r\n [max]=\"999999.99\" locale=\"en-US\" inputId=\"weeklyAmount\">\r\n </p-inputNumber>\r\n <app-error [class]=\"'app-grid'\" [field]='weeklyAmount' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n\r\n <ion-col style=\"padding-right:5px;\">\r\n <div class=\"field\">\r\n <label for=\"numberOfWeeks\">{{\"induction.add.employment.fed.severance.weeks\"|translate}}</label>\r\n <p-inputNumber inputId=\"numberOfWeeks\" [useGrouping]=\"false\" [formControl]=\"numberOfWeeks\"\r\n maxlength=\"4\">\r\n </p-inputNumber>\r\n <app-error [class]=\"'app-grid'\" [field]='numberOfWeeks' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n\r\n <ion-col>\r\n <div class=\"field\">\r\n <label for=\"sevPayAmount\">{{\"induction.add.employment.fed.severance.entitlement\"|translate}}</label>\r\n <p-inputNumber [formControl]=\"sevPayAmount\" mode=\"currency\" currency=\"USD\" maxlength=\"12\"\r\n [max]=\"999999.99\" locale=\"en-US\" inputId=\"sevPayAmount\">\r\n </p-inputNumber>\r\n <app-error [class]=\"'app-grid'\" [field]='sevPayAmount' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <ion-row *ngIf=\"employerType.value==='FED' && sevPayFlag.value==='Y'\">\r\n <ion-col style=\"padding-right:5px;\">\r\n <div class=\"field\">\r\n <label for=\"sevPayStartDate\">{{\"induction.add.employment.fed.severance.start.date\"|translate}}</label>\r\n <p-calendar [showIcon]=\"true\" inputId=\"sevPayStartDate\" (onBlur)=\"validate($event)\"\r\n (onSelect)=\"validate($event)\" [formControl]=\"sevPayStartDate\" [yearNavigator]=\"true\"\r\n yearRange=\"1901:2050\" appendTo=\"body\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\"\r\n dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [class]=\"'app-grid'\" [field]='sevPayStartDate' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n\r\n <ion-col style=\"padding-right:5px;\">\r\n <div class=\"field\">\r\n <label for=\"sevPayEndDate\">{{\"induction.add.employment.fed.severance.end.date\"|translate}}</label>\r\n <p-calendar [showIcon]=\"true\" inputId=\"sevPayEndDate\" [formControl]=\"sevPayEndDate\"\r\n [yearNavigator]=\"true\" yearRange=\"1901:2050\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\"\r\n appendTo=\"body\" [minDate]=\"minDate\" dataType=\"string\" [showOnFocus]=\"false\"\r\n (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [class]=\"'app-grid'\" [field]='sevPayEndDate' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n\r\n <ion-col>\r\n <div class=\"field\">\r\n <label\r\n for=\"sevPayPaymentStartDate\">{{\"induction.add.employment.fed.severance.pay.date\"|translate}}</label>\r\n <p-calendar [showIcon]=\"true\" inputId=\"sevPayPaymentStartDate\" [formControl]=\"sevPayPaymentStartDate\"\r\n [yearNavigator]=\"true\" appendTo=\"body\" yearRange=\"1901:2050\" dateFormat=\"mm/dd/yy\"\r\n placeholder=\"mm/dd/yyyy\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [class]=\"'app-grid'\" [field]='sevPayPaymentStartDate' [form]=\"addEmployerFormDirective\"\r\n [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n\r\n <div class=\"field\" *ngIf=\"(isBasePeriodEmployer && workFlag.value==='Y' && employerType.value==='REG')\">\r\n <label for=\"pensionFlag\">{{\"induction.confirm.employment.pension\"|translate}}</label>\r\n <div style=\"inline-size: min-content; display:flex\">\r\n <p-selectButton id=\"pensionFlag\" unselectable=\"true\" [options]=\"radioOptions\"\r\n [formControl]=\"pensionFlag\" optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-overlay-info overlayText=\"{{'induction.confirm.employment.pension.info'| translate}}\"\r\n style=\"margin-top: 2px; margin-left: 6px;\"></app-overlay-info>\r\n <app-error [class]=\"'app-grid'\" [field]='pensionFlag' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"(isBasePeriodEmployer && workFlag.value==='Y' && pensionFlag.value==='Y' \r\n && employerType.value==='REG' && this.currentState != 'ME')\">\r\n <label for=\"pensionRecvDate\">{{\"induction.confirm.employment.pension.date\"|translate}}</label>\r\n <div>\r\n <p-calendar [showIcon]=\"true\" inputId=\"pensionRecvDate\" [formControl]=\"pensionRecvDate\"\r\n [yearNavigator]=\"true\" appendTo=\"body\" yearRange=\"1901:2050\" dateFormat=\"mm/dd/yy\"\r\n placeholder=\"mm/dd/yyyy\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [class]=\"'app-grid'\" [field]='pensionRecvDate' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"(!isBasePeriodEmployer && employerType.value==='REG')\">\r\n <label for=\"regPensionFlag\">{{\"induction.add.employment.reg.pension\"|translate}} <br />\r\n {{\"induction.add.employment.reg.pension.disclaimer\"|translate}}</label>\r\n <div style=\"inline-size: min-content; display:flex\">\r\n <p-selectButton id=\"regPensionFlag\" unselectable=\"true\" [options]=\"radioOptions\"\r\n [formControl]=\"regPensionFlag\" optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-overlay-info overlayText=\"{{'induction.add.employment.reg.pension.info'| translate}}\"\r\n style=\"margin-top: 2px; margin-left: 6px;\"></app-overlay-info>\r\n </div>\r\n <app-error [class]=\"'app-grid'\" [field]='regPensionFlag' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"(!isBasePeriodEmployer && employerType.value==='REG' \r\n && regPensionFlag.value==='Y' && this.currentState != 'ME')\">\r\n <label for=\"regPensionRecvDate\">{{\"induction.add.employment.reg.pension.date\"|translate}}</label>\r\n <div>\r\n <p-calendar [showIcon]=\"true\" inputId=\"regPensionRecvDate\" [formControl]=\"regPensionRecvDate\"\r\n [yearNavigator]=\"true\" appendTo=\"body\" yearRange=\"1901:2050\" dateFormat=\"mm/dd/yy\"\r\n placeholder=\"mm/dd/yyyy\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [class]=\"'app-grid'\" [field]='regPensionRecvDate' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <!-- REG DismissalPayFlag -->\r\n <div class=\"field\" *ngIf=\"(((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer) \r\n && (employerType.value==='REG' ) && this.currentState == 'CT')\">\r\n <label for=\"regDissmisalFlag\">{{\"induction.confirm.employment.dissmisalFlag\"|translate}}</label>\r\n <div style=\"inline-size: min-content; display:flex\">\r\n <p-selectButton id=\"regDissmisalFlag\" unselectable=\"true\" [options]=\"radioOptions\"\r\n [formControl]=\"regDissmisalFlag\" optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n </div>\r\n <app-error [class]=\"'app-grid'\" [field]='regDissmisalFlag' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <!-- REG dismissalCheckBox-->\r\n <div class=\"field\"\r\n *ngIf=\"((this.currentState === 'CT' && (employerType.value==='REG'))\r\n && ((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer)) && this.regDissmisalFlag.value==='Y'\">\r\n <label for=\"regDissmisalCheckBox\">{{\"induction.confirm.employment.dissmisalCheckBox\"|translate}}</label>\r\n <p-checkbox [name]=\"'regDissmisalCheckBox-group'\" [value]=\"choice.value\" [label]=\"choice.text\"\r\n *ngFor=\"let choice of dissmisalCheckBoxOptions\" [formControl]=\"regDissmisalCheckBox\"\r\n styleClass=\"app-p-checkbox\"></p-checkbox>\r\n <app-error [class]=\"'app-grid'\" [field]='regDissmisalCheckBox' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <!-- REG LaidOffFlag-->\r\n <div class=\"field\" *ngIf=\"(((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer) \r\n && (employerType.value==='REG' ) && this.currentState == 'CT')\">\r\n <label for=\"regLaidOffFlag\">{{\"induction.confirm.employment.laidOffFlag\"|translate}}</label>\r\n <div style=\"inline-size: min-content; display:flex\">\r\n <p-selectButton id=\"regLaidOffFlag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"regLaidOffFlag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n </div>\r\n <app-error [class]=\"'app-grid'\" [field]='regLaidOffFlag' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <!-- FED DismissalPayFlag -->\r\n <div class=\"field\" *ngIf=\"(((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer) \r\n && (employerType.value==='FED' ) && this.currentState == 'CT')\">\r\n <label for=\"fedDissmisalFlag\">{{\"induction.confirm.employment.dissmisalFlag\"|translate}}</label>\r\n <div style=\"inline-size: min-content; display:flex\">\r\n <p-selectButton id=\"fedDissmisalFlag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"fedDissmisalFlag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n </div>\r\n <app-error [class]=\"'app-grid'\" [field]='fedDissmisalFlag' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <!-- FED dismissalCheckBox -->\r\n <div class=\"field\"\r\n *ngIf=\"((this.currentState === 'CT' && (employerType.value==='FED'))\r\n && ((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer)) && this.fedDissmisalFlag.value==='Y'\">\r\n <label for=\"fedDissmisalCheckBox\">{{\"induction.confirm.employment.dissmisalCheckBox\"|translate}}</label>\r\n <p-checkbox [name]=\"'fedDissmisalCheckBox-group'\" [value]=\"choice.value\" [label]=\"choice.text\"\r\n *ngFor=\"let choice of dissmisalCheckBoxOptions\" [formControl]=\"fedDissmisalCheckBox\"\r\n styleClass=\"app-p-checkbox\"></p-checkbox>\r\n <app-error [class]=\"'app-grid'\" [field]='fedDissmisalCheckBox' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <!-- FED LaidOffFlag-->\r\n <div class=\"field\" *ngIf=\"(((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer) \r\n && (employerType.value==='FED' ) && this.currentState == 'CT')\">\r\n <label for=\"fedLaidOffFlag\">{{\"induction.confirm.employment.laidOffFlag\"|translate}}</label>\r\n <div style=\"inline-size: min-content; display:flex\">\r\n <p-selectButton id=\"fedLaidOffFlag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"fedLaidOffFlag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n </div>\r\n <app-error [class]=\"'app-grid'\" [field]='fedLaidOffFlag' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n\r\n <div class=\"field\" *ngIf=\"((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer)\r\n && employerType.value==='REG' && this.currentState != 'CT'\">\r\n <label\r\n for=\"isClmtPaidWhileLow\">{{\"induction.confirm.employment.employer.pay.return.to.work\"|translate}}</label>\r\n <div style=\"inline-size: min-content; display:flex;\">\r\n <p-selectButton id=\"isClmtPaidWhileLow\" unselectable=\"true\" [options]=\"radioOptions\"\r\n [formControl]=\"isClmtPaidWhileLow\" optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-overlay-info\r\n overlayText=\"{{'induction.add.employment.reg.employerPayReturnToWorkInfo'| translate}}\"\r\n style=\"margin-top: 2px; margin-left: 6px;\"></app-overlay-info>\r\n </div>\r\n <app-error [class]=\"'app-grid'\" [field]='isClmtPaidWhileLow' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\"\r\n *ngIf=\"((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer)&& employerType.value==='REG' && currentState ==='ME'\">\r\n <label for=\"hasShortTermDisability\">{{\"induction.confirm.employment.shorttermdisability\"|translate}}\r\n {{bpStartDateToDisplay | date:'MMMM d, yyyy'}} ?</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton id=\"hasShortTermDisability\" unselectable=\"true\" [options]=\"radioOptions\"\r\n [formControl]=\"hasShortTermDisability\" optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='hasShortTermDisability' [form]=\"addEmployerFormDirective\"\r\n [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field\"\r\n *ngIf=\"((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer)&& employerType.value==='REG' && currentState==='ME'\">\r\n <label for=\"hasRecvRemuneration\">{{\"induction.confirm.employment.remuneration.pay\"|translate}}</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton id=\"hasRecvRemuneration\" unselectable=\"true\" [options]=\"radioOptions\"\r\n [formControl]=\"hasRecvRemuneration\" optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='hasRecvRemuneration' [form]=\"addEmployerFormDirective\"\r\n [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field\"\r\n *ngIf=\"((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer) && employerType.value==='REG' && currentState==='ME' && hasRecvRemuneration.value==='Y' && osaBpEmployerFlag.value==='0'\">\r\n <label for=\"remunerationTypes\">{{\"induction.confirm.employment.remuneration.types\"|translate}}</label>\r\n <p-checkbox [name]=\"'remunerationtypes-group'\" [value]=\"choice.value\" [label]=\"choice.text\"\r\n *ngFor=\"let choice of remunerationTypeOptions\" [formControl]=\"remunerationTypes\"\r\n styleClass=\"app-p-checkbox\"></p-checkbox>\r\n <app-error [class]=\"'app-grid'\" [field]='remunerationTypes' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\"\r\n *ngIf=\"((isBasePeriodEmployer && workFlag.value==='Y' && schoolFlag ==='1') || !isBasePeriodEmployer)&& employerType.value==='REG' && currentState ==='ME'\">\r\n <label for=\"vacation\">{{\"induction.confirm.employment.vacation.break\"|translate}}</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton id=\"vacation\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"vacation\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='vacation' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"workState.value && workState.value.value===this.currentState && displayVerificationOfWages.value && !isBasePeriodEmployer && employerType.value==='REG'\">\r\n <div class=\"field\">\r\n <h4>{{\"induction.add.employment.reg.verification.wages.header\"|translate}}</h4>\r\n </div>\r\n <div class=\"field\">\r\n <label>{{\"induction.add.employment.reg.verification.wages.subheader\"|translate}}</label>\r\n </div>\r\n\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"workType\">{{\"induction.add.employment.reg.work.type\" | translate}}</label>\r\n <input id=\"workType\" type=\"input\" pInputText [formControl]=\"workType\" maxlength=\"50\" />\r\n <app-error [class]=\"'app-grid'\" [field]='workType' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n\r\n <div class=\"field\">\r\n <label for=\"paymentType\">{{\"induction.add.employment.reg.verification.wages.paymode\"|translate}}</label>\r\n <p-selectButton id=\"paymentType\" unselectable=\"true\" [options]=\"payMethodOptions\"\r\n [formControl]=\"paymentType\" optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='paymentType' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"docsReceived\">{{\"induction.add.employment.reg.verification.wages.docs\"|translate}}</label>\r\n <p-selectButton id=\"docsReceived\" unselectable=\"true\" [options]=\"wageProofOptions\"\r\n [formControl]=\"docsReceived\" optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='docsReceived' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"otherSSNFlag\">{{\"induction.add.employment.reg.verification.wages.other.ssn.flag\"|translate}}\r\n {{bpStartDateToDisplay | date:'MMMM d, yyyy'}} ?\r\n </label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton id=\"otherSSNFlag\" unselectable=\"true\" [options]=\"radioOptions\"\r\n [formControl]=\"otherSSNFlag\" optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='otherSSNFlag' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"this.otherSSNFlag.value === 'Y'\">\r\n <label for=\"otherSSN\">{{\"induction.add.employment.reg.verification.wages.other.ssn\"|translate}}</label>\r\n <p-inputMask mask=\"999-99-9999\" id=\"otherSSN\" [formControl]=\"otherSSN\" placeholder=\"999-99-9999\">\r\n </p-inputMask>\r\n <app-error [class]=\"'app-grid'\" [field]='otherSSN' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <!-- <div class=\"field\">\r\n <label for=\"hiredBy\">Manager's Name & Title</label>\r\n <input id=\"hiredBy\" type=\"input\" pInputText [formControl]=\"hiredBy\" maxlength=\"40\"/>\r\n <app-error [class]=\"'app-grid'\" [field]='hiredBy' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error> \r\n </div> -->\r\n </div>\r\n\r\n <ion-row\r\n *ngIf=\"workState.value && workState.value.value=== this.currentState && displayVerificationOfWages.value && !isBasePeriodEmployer && employerType.value==='REG'\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label\r\n for=\"otherNameFlag\">{{\"induction.add.employment.reg.verification.wages.other.name.flag\"|translate}}\r\n {{bpStartDateToDisplay | date:'MMMM d, yyyy'}} ?\r\n </label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton id=\"otherNameFlag\" unselectable=\"true\" [options]=\"radioOptions\"\r\n [formControl]=\"otherNameFlag\" optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='otherNameFlag' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"this.otherNameFlag.value === 'Y'\">\r\n <label\r\n for=\"otherName\">{{\"induction.add.employment.reg.verification.wages.other.name\"|translate}}</label>\r\n <input id=\"otherName\" type=\"input\" pInputText [formControl]=\"otherName\" maxlength=\"30\" />\r\n <app-error [class]=\"'app-grid'\" [field]='otherName' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <!-- <ion-row *ngIf=\"workState.value && workState.value.value==='MS' && displayVerificationOfWages.value && !isBasePeriodEmployer && employerType.value==='REG'\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"fein\">FEIN</label>\r\n <p-inputNumber [id]=\"fein\" [useGrouping]=\"false\" [formControl]=\"fein\" maxlength=\"9\"></p-inputNumber>\r\n <app-error [class]=\"'app-grid'\" [field]='fein' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"doingBusinessAs\">Doing Business As/Trade Name</label>\r\n <input id=\"doingBusinessAs\" type=\"input\" pInputText [formControl]=\"doingBusinessAs\" maxlength=\"100\"/>\r\n <app-error [class]=\"'app-grid'\" [field]='doingBusinessAs' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row> -->\r\n\r\n <!--<ion-row *ngIf=\"workState.value && workState.value.value===this.currentState && displayVerificationOfWages.value \r\n && !isBasePeriodEmployer && employerType.value==='REG' && false\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"businessNature\">{{\"induction.add.employment.reg.verification.nature\"|translate}}</label>\r\n <input id=\"businessNature\" type=\"input\" pInputText [formControl]=\"businessNature\" maxlength=\"250\"/>\r\n <app-error [class]=\"'app-grid'\" [field]='businessNature' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>-->\r\n <div *ngIf=\"((workState.value && workState.value.value===currentState && employerType && displayVerificationOfWages.value && !isBasePeriodEmployer && employerType.value==='REG') \r\n || (employerType.value==='FED' && isNewClaim)) && (employerType.value!='MIL')\">\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <label><b>{{\"induction.add.employment.fed.verification.wages\"|translate}}</b></label>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='REG'\">\r\n <label><b>{{\"induction.add.employment.reg.verification.wages\"|translate}}</b></label>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <label>{{\"induction.add.employment.fed.verification.wages.statement\"|translate}}</label>\r\n </div>\r\n <div class=\"field\">\r\n <table rules=rows>\r\n <tr>\r\n <th style=\"text-align: center;\">{{\"induction.add.employment.reg.verification.wages.col1\"|translate}}\r\n </th>\r\n <th>{{\"induction.add.employment.reg.verification.wages.col2\"|translate}}</th>\r\n </tr>\r\n <ng-container formArrayName=\"wageAmountArray\">\r\n <ng-container *ngFor=\"let wageAmountForm of wageAmountArray.controls; let i = index\"\r\n [formGroupName]=\"i\">\r\n <tr\r\n *ngIf=\"((employerType.value==='FED') || (employerType.value==='REG' && wageAmountForm.value.displayForAll===true) )\" class=\"quarterText\">\r\n <td>\r\n {{wageAmountForm.value.qtrYearDisplayString}}\r\n </td>\r\n <td>\r\n <p-inputNumber [inputId]=\"'wageAmount' + i\" ariaLabel=\"wageAmount\"\r\n formControlName=\"wageAmount\" mode=\"currency\" [min]=\"0.00\" [max]=\"999999.99\" maxlength=\"12\"\r\n currency=\"USD\" locale=\"en-US\">\r\n </p-inputNumber>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n <tr *ngIf=\"wageAmountArray.errors?.requireCheckboxToBeChecked\">\r\n <td colspan=\"2\">\r\n <app-error [class]=\"'app-grid'\" [field]='wageAmountArray' [form]=\"addEmployerFormDirective\"\r\n [errDef]=\"{ \r\n requireCheckboxToBeChecked: 'at least one amount must be greater than zero'\r\n }\"></app-error>\r\n </td>\r\n </tr>\r\n\r\n </ng-container>\r\n </table>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(statement1 | translate)\"></div>\r\n <!-- <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(statement2 | translate)\"></div> -->\r\n <!-- <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(statement3 | translate)\"></div> -->\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(statement4 | translate)\"\r\n style=\"padding-left: 15px;\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <ion-row>\r\n <ion-col class=\"ion-text-right\">\r\n <ion-button shape=\"round\" style=\"width: 80px;\" fill=\"outline\" (click)=\"onModelCancel(false)\"\r\n type=\"reset\">{{\"induction.employment.button.cancel\"|translate}} </ion-button>\r\n <ion-button shape=\"round\" style=\"width: 80px;\" (click)=\"save()\" type=\"submit\" *ngIf=\"isBasePeriodEmployer\">\r\n {{\"induction.employment.button.save\"|translate}} </ion-button>\r\n <ion-button shape=\"round\" style=\"width: 80px;\" (click)=\"add()\" type=\"submit\" *ngIf=\"!isBasePeriodEmployer\">\r\n {{\"induction.employment.button.add\"|translate}} </ion-button>\r\n </ion-col>\r\n </ion-row>\r\n\r\n </ion-grid>\r\n </form>\r\n</p-dialog>", styles: [".p-fluid .p-buttonset{display:flex}.p-selectbutton .p-button{width:50px!important}table,th,td{border:1px solid grey;border-collapse:collapse;padding:5px}table th{background-color:#f1f1f1}table{width:100%}.pad-space{display:block}@media (min-width: 768px) and (max-width: 1025px){.pad-space{display:none}}@media screen and (max-width: 1265px){.quarterText{width:max-content!important;white-space:nowrap}}\n"] }]
|
|
3709
|
+
args: [{ selector: 'app-add-employer', template: "<p-dialog visible=\"true\" modal=\"true\" position=\"top\" appendTo=\"body\" [showHeader]=\"false\" [draggable]=\"false\"\r\n [resizable]=\"false\" [style]=\"{width: '80vw'}\"\r\n [breakpoints]=\"{'1200px': '660px', '992px': '660px', '768px': '100vw', '576px': '100vw'}\">\r\n <h4 style=\"color: var(--ion-color-grey); padding-left: 20px;\"> {{\"induction.confirm.employment.heading\"|translate}}\r\n </h4>\r\n\r\n\r\n <form [formGroup]=\"addEmployerForm\" #addEmployerFormDirective=\"ngForm\">\r\n <ion-grid>\r\n <ion-row>\r\n <ion-col class=\"ion-padding\" size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"12\" sizeLg=\"10\" sizeXl=\"6\">\r\n <div class=\"p-fluid p-formgrid\">\r\n <div class=\"field\" *ngIf=\"isBasePeriodEmployer\">\r\n {{customerName}}\r\n <div *ngIf=\"aliasName != null\">\r\n {{\"induction.confirm.employment.dba\"|translate}} {{aliasName}}</div>\r\n <br>\r\n <div *ngIf=\"isBasePeriodEmployer && osaBpEmployerFlag.value ==='0'\">\r\n <span style=\"font-size: 12px;\"> {{mailingAddressDisplay}}\r\n </span>\r\n </div>\r\n <div *ngIf=\"isCSR && osaBpEmployerFlag.value ==='0'\">\r\n <br>\r\n {{\"induction.confirm.employment.employer.wages\"|translate}}\r\n </div>\r\n <div class=\"field\" *ngIf=\"isCSR\">\r\n <p-table [value]=\"employerProvidedWages\" styleClass=\"p-datatable-striped app-datatable ion-padding-top\"\r\n [columns]=\"employerProvidedWages\">\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th *ngFor=\"let col of columns\">\r\n <b>{{ col.qtrYearDisplayString }}</b>\r\n </th>\r\n </tr>\r\n <tr>\r\n <td *ngFor=\"let col of columns\">\r\n {{col.wageAmount | currency}}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"isBasePeriodEmployer && workFlag.value == 'N'\">\r\n <label for=\"workFlag\">{{\"induction.confirm.employment.workflag.no\"|translate}}<br /> <br />\r\n {{\"induction.confirm.employment.workflag.no.line2\"|translate}}</label>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"!isBasePeriodEmployer\">\r\n <label for=\"employerType\">{{\"induction.add.employment.employer.type\"|translate}}</label>\r\n <div style=\"inline-size: inherit;\">\r\n <p-selectButton id=\"employerType\" unselectable=\"true\" [options]=\"employerTypeOptions\" optionLabel=\"text\"\r\n optionValue=\"value\" [formControl]=\"employerType\"\r\n (onOptionClick)=\"onToggleChangeEmployerType($event)\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='employerType' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"!isBasePeriodEmployer && employerType.value==='REG'\">\r\n <label for=\"employerName\">{{\"induction.add.employment.employer.name\"|translate}}</label>\r\n <app-search-employer [formControl]=\"employerName\" empType=\"REG\" (onFound)=\"setEmployer($event)\"\r\n (onEmpty)=\"resetEmployer($event)\"></app-search-employer>\r\n <app-error [class]=\"'app-grid'\" [field]='employerName' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" style=\"width: inherit !important;\" *ngIf=\"employerType.value==='FED'\">\r\n <label for=\"fedEmployerName\">{{\"induction.add.employment.employer.fed.name\"|translate}}</label>\r\n <app-search-employer [formControl]=\"fedEmployerName\" empType=\"FED\" (onFound)=\"setFedEmployer($event)\"\r\n (onEmpty)=\"resetFedEmployer($event)\"></app-search-employer>\r\n <app-error [class]=\"'app-grid'\" [field]='fedEmployerName' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"employerType.value==='MIL' && this.currentState != 'ME'\">\r\n <label for=\"serviceBranch\">{{\"induction.add.employment.mil.service.branch\"|translate}}</label>\r\n <app-dropdown [options]=\"militaryServiceOptions\" [formControl]=\"serviceBranch\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"serviceBranch\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='serviceBranch' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n \r\n <!-- Maine includes Space Force -->\r\n <div class=\"field\" *ngIf=\"employerType.value==='MIL' && this.currentState === 'ME'\">\r\n <label for=\"serviceBranch\">{{\"induction.add.employment.mil.service.branch\"|translate}}</label>\r\n <app-dropdown [options]=\"militaryServiceOptionsWithSpace\" [formControl]=\"serviceBranch\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"serviceBranch\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='serviceBranch' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <ion-row *ngIf=\"employerType.value==='MIL'\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"startDateMil\">{{\"induction.add.employment.mil.startdate\"|translate}}</label>\r\n <p-calendar iconAriaLabel=\"startDateMil\" [showIcon]=\"true\" inputId=\"startDateMil\"\r\n [formControl]=\"startDateMil\" [maxDate]=\"dateTime\" [yearNavigator]=\"true\" yearRange=\"1901:2050\"\r\n appendTo=\"body\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\" (onBlur)=\"validate($event)\"\r\n (onSelect)=\"validate($event)\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\"\r\n [minDate]=\"minWorkStartDate\">\r\n </p-calendar>\r\n <app-error [class]=\"'app-grid'\" [field]='startDateMil' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"endDateMil\">{{\"induction.add.employment.mil.enddate\"|translate}}</label>\r\n <p-calendar iconAriaLabel=\"endDateMil\" [showIcon]=\"true\" inputId=\"endDateMil\" [maxDate]=\"dateTime\"\r\n [minDate]=\"minDate\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\" [yearNavigator]=\"true\"\r\n appendTo=\"body\" yearRange=\"1901:2050\" dataType=\"string\" [formControl]=\"endDateMil\"\r\n [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\"></p-calendar>\r\n <app-error [class]=\"'app-grid'\" [field]='endDateMil' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <ion-row *ngIf=\"employerType.value==='FED' && hideFicCode\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"ficCode\">{{\"induction.add.employment.fed.fic.code\"|translate}}</label>\r\n <input id=\"ficCode\" type=\"input\" pInputText [formControl]=\"ficCode\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='ficCode' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"ficDestinationName\">{{\"induction.add.employment.fed.fic.destination\"|translate}}</label>\r\n <input id=\"ficDestinationName\" type=\"input\" pInputText [formControl]=\"ficDestinationName\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='ficDestinationName' [form]=\"addEmployerFormDirective\"\r\n [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <ion-row *ngIf=\"!isBasePeriodEmployer && employerType.value==='REG'\">\r\n <ion-col style=\"padding-left: 0px; padding-right: 0px;\">\r\n <app-address #address1 [formControl]=\"address\" [countyRequired]=\"false\" [fromPopup]=\"true\">\r\n </app-address>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"isBasePeriodEmployer && osaBpEmployerFlag.value ==='1' && employerType.value==='REG'\">\r\n <ion-col style=\"padding-left: 0px; padding-right: 0px;\">\r\n <app-address #address3 [formControl]=\"address\" [countyRequired]=\"false\" [fromPopup]=\"true\">\r\n </app-address>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <app-address #address2 [formControl]=\"address\" countyRequired=\"false\" [fromPopup]=\"true\"> </app-address>\r\n <app-error [class]=\"'app-grid'\" [field]='address' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n addressValidationFlag: 'Please provide, a valid address.'\r\n }\"></app-error>\r\n </div>\r\n\r\n \r\n <div class=\"field\"\r\n *ngIf=\"(((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer) && employerType.value==='REG')\">\r\n <label for=\"employerTelephoneNumber\">{{\"induction.confirm.employment.employer.phone\"|translate}}</label>\r\n\r\n <p-inputMask mask=\"999-999-9999\" id=\"employerTelephoneNumber\" [formControl]=\"employerTelephoneNumber\"\r\n placeholder=\"999-999-9999\"></p-inputMask>\r\n\r\n\r\n <app-error [class]=\"'app-grid'\" [field]='employerTelephoneNumber' [form]=\"addEmployerFormDirective\"\r\n [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n\r\n <ion-row *ngIf=\"(!isBasePeriodEmployer && employerType.value==='REG')\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"workCity\">{{\"induction.add.employment.work.location.city\"|translate}} </label>\r\n <input id=\"workCity\" type=\"input\" pInputText [formControl]=\"workCity\" maxlength=\"30\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='workCity' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"workState\">{{\"induction.add.employment.work.location.state\"|translate}}</label>\r\n <app-dropdown [options]=\"statesOptions\" [formControl]=\"workState\" optionLabel=\"text\" appendTo=\"body\"\r\n [autoDisplayFirst]=\"false\" inputId=\"workState\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='workState' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <label for=\"fedWorkCountry\">{{\"induction.add.employment.fed.work.location.country\"|translate}}</label>\r\n <app-dropdown [options]=\"workCountryOptions\" [formControl]=\"fedWorkCountry\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"fedWorkCountry\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='fedWorkCountry' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <ion-row *ngIf=\"employerType.value==='FED'\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"fedWorkCity\">{{\"induction.add.employment.work.location.city\"|translate}}</label>\r\n <input id=\"fedWorkCity\" type=\"input\" pInputText [formControl]=\"fedWorkCity\" maxlength=\"30\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='fedWorkCity' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col>\r\n <ion-col style=\"padding: 0px;\" *ngIf=\"showWorkState === true\">\r\n <div class=\"field\">\r\n <label for=\"fedWorkState\">{{\"induction.add.employment.work.location.state\"|translate}}</label>\r\n <app-dropdown [options]=\"statesOptions\" [formControl]=\"fedWorkState\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"fedWorkState\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='fedWorkState' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n\r\n\r\n\r\n\r\n\r\n <ion-row *ngIf=\"employerType.value==='FED'\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"startDateFed\">{{\"induction.add.employment.fed.startdate\"|translate}}</label>\r\n <p-calendar iconAriaLabel=\"startDateFed\" [showIcon]=\"true\" [maxDate]=\"dateTime\" inputId=\"startDateFed\"\r\n [formControl]=\"startDateFed\" [yearNavigator]=\"true\" yearRange=\"1901:2050\" appendTo=\"body\"\r\n dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\" (onBlur)=\"validate($event)\"\r\n (onSelect)=\"validate($event)\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\"\r\n [minDate]=\"minWorkStartDate\">\r\n </p-calendar>\r\n <app-error [class]=\"'app-grid'\" [field]='startDateFed' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"endDateFed\">{{\"induction.add.employment.fed.enddate\"|translate}}</label>\r\n <p-calendar iconAriaLabel=\"endDateFed\" [showIcon]=\"true\" inputId=\"endDateFed\" [maxDate]=\"dateTime\"\r\n [minDate]=\"minDate\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\" [yearNavigator]=\"true\"\r\n appendTo=\"body\" yearRange=\"1901:2050\" dataType=\"string\" [formControl]=\"endDateFed\"\r\n [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\"></p-calendar>\r\n <app-error [class]=\"'app-grid'\" [field]='endDateFed' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <label for=\"fedJobTileOrPosition\">{{\"induction.add.employment.fed.jobtitle\"|translate}}</label>\r\n <input id=\"fedJobTileOrPosition\" type=\"input\" pInputText [formControl]=\"fedJobTileOrPosition\"\r\n maxlength=\"100\" appStripInvisibleChars/>\r\n <!-- <p-autoComplete [formControl]=\"fedJobTileOrPosition\" [suggestions]=\"fedJobTileOptions\" \r\n (completeMethod)=\"filterFedJobTileOrPosition($event)\" field=\"jobTitle\" [dropdown]=\"false\" \r\n placeholder=\"Start... typing job title\" minLength=3 forceSelection=\"true\">\r\n <ng-template let-value pTemplate=\"item\">\r\n <div>\r\n <div>{{value.jobTitle}}</div>\r\n </div>\r\n </ng-template>\r\n </p-autoComplete> -->\r\n\r\n <app-error [class]=\"'app-grid'\" [field]='fedJobTileOrPosition' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <label for=\"sfEightflag\">{{\"induction.add.employment.fed.sfeight\"|translate}} </label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton id=\"sfEightflag\" unselectable=\"true\" [options]=\"radioOptions\"\r\n [formControl]=\"sfEightflag\" optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n </div>\r\n <app-error [class]=\"'app-grid'\" [field]='sfEightflag' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <ion-row *ngIf=\"(((isBasePeriodEmployer && workFlag.value==='Y') \r\n || !isBasePeriodEmployer) && employerType.value==='REG')\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"startDate\">{{\"induction.confirm.employment.startdate\"|translate}}</label>\r\n <p-calendar iconAriaLabel=\"startDate\" [showIcon]=\"true\" inputId=\"startDate\" [maxDate]=\"dateTime\"\r\n [formControl]=\"startDate\" [yearNavigator]=\"true\" yearRange=\"1901:2050\" [minDate]=\"minWorkStartDate\"\r\n appendTo=\"body\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\" (onBlur)=\"validate($event)\"\r\n (onSelect)=\"validate($event)\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [class]=\"'app-grid'\" [field]='startDate' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"endDate\">{{\"induction.confirm.employment.enddate\"|translate}}</label>\r\n <p-calendar iconAriaLabel=\"endDate\" [showIcon]=\"true\" inputId=\"endDate\" [minDate]=\"minDate\"\r\n [maxDate]=\"dateTime\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\" [yearNavigator]=\"true\"\r\n appendTo=\"body\" yearRange=\"1901:2050\" dataType=\"string\" [formControl]=\"endDate\"\r\n (onBlur)=\"validateWagesDisplay($event)\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\"\r\n (onSelect)=\"validateWagesDisplay($event)\"></p-calendar>\r\n <app-error [class]=\"'app-grid'\" [field]='endDate' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <div class=\"field\" *ngIf=\"(((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer) \r\n && (employerType.value==='REG' || employerType.value==='FED') && this.currentState == 'CT')\">\r\n <label for=\"separationDateFlag\">{{\"induction.confirm.employment.separationDateFlag\"|translate}}</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton id=\"separationDateFlag\" unselectable=\"true\" [options]=\"radioOptions\"\r\n [formControl]=\"separationDateFlag\" optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='separationDateFlag' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field\"\r\n *ngIf=\"(((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer)\r\n && (employerType.value==='REG' || employerType.value==='FED') && this.currentState == 'CT' && separationDateFlag.value==='Y' )\">\r\n <label for=\"separationDate\">{{\"induction.confirm.employment.separationDate\"|translate}}</label>\r\n <div>\r\n <p-calendar [showIcon]=\"true\" inputId=\"separationDate\" [formControl]=\"separationDate\"\r\n [yearNavigator]=\"true\" appendTo=\"body\" yearRange=\"1901:2050\" dateFormat=\"mm/dd/yy\"\r\n placeholder=\"mm/dd/yyyy\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [class]=\"'app-grid'\" [field]='separationDate' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <ion-row *ngIf=\"(displayVerificationOfWages.value && !isBasePeriodEmployer && employerType.value==='REG')\">\r\n <!-- <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"numberEmployed\">{{\"induction.add.employment.reg.employees.no\" | translate}} </label>\r\n <p-inputNumber [id]=\"numberEmployed\" [useGrouping]=\"false\" [formControl]=\"numberEmployed\"\r\n maxlength=\"9\"></p-inputNumber>\r\n <app-error [class]=\"'app-grid'\" [field]='numberEmployed' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col> --> \r\n </ion-row>\r\n\r\n\r\n\r\n <!-- <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <label for=\"claimantEmployedWithEmpr\">Were you employed while a spouse of a US military member stationed at\r\n a foreign military base?</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton unselectable=\"true\" [options]=\"yesNoNaOptions\" [formControl]=\"claimantEmployedWithEmpr\" optionLabel=\"text\"\r\n optionValue=\"value\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='claimantEmployedWithEmpr' [form]=\"addEmployerFormDirective\"\r\n [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div> -->\r\n\r\n\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <label for=\"performedService\">{{\"induction.add.employment.fed.civilian.work\"|translate}}</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton id=\"performedService\" unselectable=\"true\" [options]=\"radioOptions\"\r\n [formControl]=\"performedService\" optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='performedService' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field\"\r\n *ngIf=\"((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer) && employerType.value==='REG'\">\r\n <label for=\"jobTileOrPosition\">{{\"induction.confirm.employment.jobtitle\"|translate}}</label>\r\n <input id=\"jobTileOrPosition\" type=\"input\" pInputText [formControl]=\"jobTileOrPosition\" maxlength=\"100\" />\r\n <!-- <p-autoComplete [formControl]=\"jobTileOrPosition\" [suggestions]=\"jobTileOrPositionOptions\" \r\n (completeMethod)=\"filterJobTileOrPosition($event)\" field=\"jobTitle\" (onClear)=\"onClearAction($event)\" \r\n [dropdown]=\"false\" placeholder=\"Start... typing job title\" minLength=3 forceSelection=\"true\">\r\n <ng-template let-value pTemplate=\"item\">\r\n <div>\r\n <div>{{value.jobTitle}}</div>\r\n </div>\r\n </ng-template>\r\n </p-autoComplete> -->\r\n\r\n <app-error [class]=\"'app-grid'\" [field]='jobTileOrPosition' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <ion-row *ngIf=\"((employerType.value==='REG' || employerType.value==='FED') && !isBasePeriodEmployer)\">\r\n <ion-col style=\"padding-right:5px; padding-left: 0px; padding-top: 0px;\" *ngIf=\"!isBasePeriodEmployer\">\r\n <div class=\"field\">\r\n <label for=\"payRate\">{{\"induction.add.employment.payrate\"|translate}}</label>\r\n <p-inputNumber inputId=\"payRate\" [formControl]=\"payRate\" mode=\"currency\" currency=\"USD\"\r\n [max]=\"999999.99\" maxlength=\"12\" locale=\"en-US\"></p-inputNumber>\r\n <app-error [class]=\"'app-grid'\" [field]='payRate' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n\r\n <ion-col style=\"padding-right:5px;padding-top: 0px;\" *ngIf=\"!isBasePeriodEmployer\">\r\n <div class=\"field\">\r\n <label for=\"payRateFrequency\">{{\"induction.add.employment.per\"|translate}}</label>\r\n <app-dropdown [options]=\"payRateOptions\" [formControl]=\"payRateFrequency\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"payRateFrequency\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='payRateFrequency' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n\r\n <ion-col *ngIf=\"this.currentState != 'MS' && displayVerificationOfWages.value && !isBasePeriodEmployer\" style=\"padding-top: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"grossWages\" style=\"inline-size: max-content;\">Total Wages Earned since {{bpStartDateToDisplay | date:'MMMM d, yyyy'}}</label>\r\n <p-inputNumber [formControl]=\"grossWages\" mode=\"currency\" currency=\"USD\" maxlength=\"12\"\r\n [max]=\"999999.99\" locale=\"en-US\">\r\n </p-inputNumber>\r\n <app-error [class]=\"'app-grid'\" [field]='grossWages' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <ion-row *ngIf=\"(employerType.value==='REG' || employerType.value==='FED')\">\r\n <ion-col style=\"padding-right:5px; padding-left: 0px;\"\r\n *ngIf=\"(isBasePeriodEmployer && workFlag.value==='Y')\">\r\n <div class=\"field\">\r\n <label for=\"payRate\">{{\"induction.confirm.employment.payrate\"|translate}}</label>\r\n <p-inputNumber [formControl]=\"payRate\" mode=\"currency\" currency=\"USD\" [max]=\"999999.99\" maxlength=\"12\"\r\n locale=\"en-US\"></p-inputNumber>\r\n <app-error [class]=\"'app-grid'\" [field]='payRate' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n\r\n <ion-col style=\"padding-right:5px;\" *ngIf=\"(isBasePeriodEmployer && workFlag.value==='Y')\">\r\n <div class=\"field\">\r\n <label for=\"payRateFrequency\">{{\"induction.confirm.employment.per\"|translate}}</label>\r\n <app-dropdown [options]=\"payRateOptions\" [formControl]=\"payRateFrequency\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"payRateFrequency\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='payRateFrequency' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <div class=\"field\" *ngIf=\"((this.currentState === 'CT' && (employerType.value==='REG' || employerType.value==='FED'))\r\n && ((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer))\">\r\n <label for=\"hrsWeek\">{{\"induction.confirm.employment.hrsweek\"|translate}}</label>\r\n <p-inputNumber [formControl]=\"hrsWeek\" [max]=\"999\" maxlength=\"3\" locale=\"en-US\"></p-inputNumber>\r\n <app-error [class]=\"'app-grid'\" [field]='hrsWeek' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"((this.currentState === 'CT' && (employerType.value==='REG' || employerType.value==='FED'))\r\n && ((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer))\">\r\n <label for=\"shift\">{{\"induction.confirm.employment.shift\"|translate}}</label>\r\n <p-checkbox [name]=\"'shift-group'\" [value]=\"choice.value\" [label]=\"choice.text\"\r\n *ngFor=\"let choice of shiftOptions\" [formControl]=\"shift\" styleClass=\"app-p-checkbox\"></p-checkbox>\r\n <app-error [class]=\"'app-grid'\" [field]='shift' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n\r\n <div class=\"field\" *ngIf=\"((this.currentState === 'CT' && (employerType.value==='REG' || employerType.value==='FED'))\r\n && ((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer))\">\r\n <label for=\"didWork\">{{\"induction.confirm.employment.didwork\"|translate}}</label>\r\n <app-dropdown [options]=\"didWorkOptions\" [formControl]=\"didWork\" optionLabel=\"text\" appendTo=\"body\"\r\n [autoDisplayFirst]=\"false\" inputId=\"didWork\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='didWork' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n\r\n\r\n <div class=\"field\" *ngIf=\"((this.currentState === 'CT' && (employerType.value==='REG' || employerType.value==='FED'))\r\n && ((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer))\">\r\n <label for=\"workWeek\">{{\"induction.confirm.employment.workweek\"|translate}}</label>\r\n <p-checkbox [name]=\"'workWeek-group'\" [value]=\"choice.value\" [label]=\"choice.text\"\r\n *ngFor=\"let choice of workWeekOptions\" [formControl]=\"workWeek\"\r\n styleClass=\"app-p-checkbox\"></p-checkbox>\r\n <app-error [class]=\"'app-grid'\" [field]='workWeek' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n\r\n <div class=\"field\" *ngIf=\"employerType.value && (((isBasePeriodEmployer && workFlag.value==='Y') \r\n || !isBasePeriodEmployer) && employerType.value!='MIL')\">\r\n <label for=\"reasonSeparation\">\r\n <div *ngIf=\"employerType.value==='REG' \">{{\"induction.confirm.employment.reason.separation\"|translate}}\r\n </div>\r\n <div *ngIf=\"employerType.value==='FED' \">{{\"induction.add.employment.fed.reason.separation\"|translate}}\r\n </div>\r\n </label>\r\n\r\n <app-dropdown [options]=\"employmentStatusOptionsAll\" [formControl]=\"reasonSeparation\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"reasonSeparation\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='reasonSeparation' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <!-- add for quit and discharge -->\r\n <div class=\"field\" *ngIf=\"(((isBasePeriodEmployer && workFlag.value==='Y') \r\n || !isBasePeriodEmployer) && reasonSeparation.value && reasonSeparation.value.value === 'DCFI' \r\n && employerType.value!='MIL')\">\r\n <label\r\n for=\"dischargeDetail\">{{\"induction.confirm.employment.reason.separation.discharge\"|translate}}</label>\r\n <app-dropdown [options]=\"dischargeReasonOptionsAll\" [formControl]=\"dischargeDetail\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"dischargeDetail\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='dischargeDetail' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"(((isBasePeriodEmployer && workFlag.value==='Y') \r\n || !isBasePeriodEmployer) && reasonSeparation.value && reasonSeparation.value.value === 'VOLQ' \r\n && employerType.value!='MIL')\">\r\n <label for=\"volQuitDetails\">{{\"induction.confirm.employment.reason.separation.quit\"|translate}}</label>\r\n <app-dropdown [options]=\"volQuitReasonOptionsAll\" [formControl]=\"volQuitDetails\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"volQuitDetails\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='volQuitDetails' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"employerType.value==='MIL' \">\r\n <label for=\"milPensionFlag\">{{\"induction.add.employment.mil.pension\"|translate}}\r\n <br> {{\"induction.add.employment.mil.pension.disclaimer\"|translate}}\r\n </label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton id=\"milPensionFlag\" unselectable=\"true\" [options]=\"radioOptions\"\r\n [formControl]=\"milPensionFlag\" optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='milPensionFlag' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\"\r\n *ngIf=\"employerType.value==='MIL' && this.milPensionFlag.value === 'Y' && this.currentState != 'ME'\">\r\n <label for=\"milPensionRecvDate\">{{\"induction.add.employment.mil.pension.date\"|translate}}</label>\r\n <div>\r\n <p-calendar [showIcon]=\"true\" inputId=\"milPensionRecvDate\" [formControl]=\"milPensionRecvDate\"\r\n [yearNavigator]=\"true\" appendTo=\"body\" yearRange=\"1901:2050\" dateFormat=\"mm/dd/yy\"\r\n placeholder=\"mm/dd/yyyy\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [class]=\"'app-grid'\" [field]='milPensionRecvDate' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"employerType.value==='MIL' \">\r\n <label for=\"dd214Flag\">{{\"induction.add.employment.mil.dd214\"|translate}}\r\n </label><br>\r\n <div style=\"inline-size: min-content; display: inline-flex;\">\r\n <p-selectButton id=\"dd214Flag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"dd214Flag\"\r\n optionLabel=\"text\" optionValue=\"value\" (onOptionClick)=\"putMilValidation($event)\"></p-selectButton>\r\n </div>\r\n </div>\r\n <app-error [class]=\"'app-grid'\" [field]='dd214Flag' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n\r\n <ion-col class=\"ion-padding\" size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"6\" sizeLg=\"6\" sizeXl=\"6\">\r\n <div class=\"p-fluid p-formgrid\">\r\n\r\n <section class=\"pad-space\"> \r\n <ion-row *ngIf=\"!isBasePeriodEmployer\" class=\"ion-hide-sm-down\">\r\n <ion-col>\r\n <div class=\"field\"></div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"!isBasePeriodEmployer\" class=\"ion-hide-sm-down\">\r\n <ion-col>\r\n <div class=\"field\"></div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"!isBasePeriodEmployer\" class=\"ion-hide-sm-down\">\r\n <ion-col>\r\n <div class=\"field\"></div>\r\n </ion-col>\r\n </ion-row>\r\n </section>\r\n\r\n <section class=\"pad-space\"> \r\n <ion-row *ngIf=\"isBasePeriodEmployer\" class=\"ion-hide-sm-down\">\r\n <ion-col>\r\n <div class=\"field\"></div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"isBasePeriodEmployer\" class=\"ion-hide-sm-down\">\r\n <ion-col>\r\n <div class=\"field\"></div>\r\n </ion-col>\r\n </ion-row>\r\n </section>\r\n <ion-row *ngIf=\"employerType.value==='MIL' && dd214Flag.value==='Y'\">\r\n <ion-col style=\"border-style: solid;\r\n border-width: 1px;\">\r\n <div [innerHTML]=\"paraOne | translate\">\r\n </div>\r\n <!-- <app-file-uploader [formControl]=\"dd214File\" [uploadedFileForEdit]=\"dd214File.value\"></app-file-uploader> -->\r\n <!-- <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(paraTwo | translate)\">\r\n </div> -->\r\n <!-- <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(paraThree | translate)\">\r\n </div>\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(paraFour | translate)\">\r\n </div>\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(paraFive | translate)\">\r\n </div> -->\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(paraSix| translate)\" style=\"padding-left: 15px;\">\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <ion-row *ngIf=\"employerType.value==='MIL' && dd214Flag.value==='N'\">\r\n <ion-col style=\"border-style: solid;\r\n border-width: 1px;\">\r\n <div [innerHTML]=\"noParaOne | translate\">\r\n </div>\r\n <!-- <app-file-uploader [formControl]=\"dd214File\" [uploadedFileForEdit]=\"dd214File.value\"></app-file-uploader> -->\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(noParaTwo | translate)\">\r\n </div>\r\n <!-- <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(noParaThree | translate)\">\r\n </div> -->\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(noParaFour | translate)\"\r\n style=\"padding-left: 15px;\">\r\n </div>\r\n <!-- <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(noParaFive | translate)\">\r\n </div> -->\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"(this.currentState != 'MS' && employerType.value==='REG' && osaBpEmployerFlag.value ==='1')\">\r\n <ion-col style=\"padding-top: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"grossWages\" style=\"inline-size: max-content;\">Total Wages Earned since {{bpStartDateToDisplay | date:'MMMM d, yyyy'}}</label>\r\n <p-inputNumber [formControl]=\"grossWages\" mode=\"currency\" currency=\"USD\" maxlength=\"12\"\r\n [max]=\"999999.99\" locale=\"en-US\">\r\n </p-inputNumber>\r\n <app-error [class]=\"'app-grid'\" [field]='grossWages' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED' \">\r\n <label for=\"fedPensionFlag\">{{\"induction.add.employment.fed.pension\"|translate}}\r\n <br> {{\"induction.add.employment.fed.pension.disclaimer\"|translate}}\r\n </label>\r\n <div style=\"inline-size: min-content; display:flex\">\r\n <p-selectButton id=\"fedPensionFlag\" unselectable=\"true\" [options]=\"radioOptions\"\r\n [formControl]=\"fedPensionFlag\" optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-overlay-info overlayText=\"{{'induction.add.employment.fed.pension.info'| translate}}\"\r\n style=\"margin-top: 2px; margin-left: 6px;\"></app-overlay-info>\r\n </div>\r\n <app-error [class]=\"'app-grid'\" [field]='fedPensionFlag' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\"\r\n *ngIf=\"employerType.value==='FED' && this.fedPensionFlag.value === 'Y' && this.currentState != 'ME'\">\r\n <label for=\"fedPensionRecvDate\">{{\"induction.add.employment.fed.pension.date\"|translate}}</label>\r\n <div>\r\n <p-calendar [showIcon]=\"true\" inputId=\"fedPensionRecvDate\" [formControl]=\"fedPensionRecvDate\"\r\n [yearNavigator]=\"true\" appendTo=\"body\" yearRange=\"1901:2050\" dateFormat=\"mm/dd/yy\"\r\n placeholder=\"mm/dd/yyyy\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [class]=\"'app-grid'\" [field]='fedPensionRecvDate' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED' && this.currentState === 'ME' \">\r\n <label for=\"sevPayFlag\">{{\"induction.add.employment.fed.severance\"|translate}}</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton id=\"sevPayFlag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"sevPayFlag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='sevPayFlag' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n\r\n <ion-row *ngIf=\"employerType.value==='FED' && sevPayFlag.value==='Y'\">\r\n <ion-col style=\"padding-right:5px;\">\r\n <div class=\"field\">\r\n <label for=\"weeklyAmount\">{{\"induction.add.employment.fed.severance.weekly.amt\"|translate}}</label>\r\n <p-inputNumber [formControl]=\"weeklyAmount\" mode=\"currency\" currency=\"USD\" maxlength=\"12\"\r\n [max]=\"999999.99\" locale=\"en-US\" inputId=\"weeklyAmount\">\r\n </p-inputNumber>\r\n <app-error [class]=\"'app-grid'\" [field]='weeklyAmount' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n\r\n <ion-col style=\"padding-right:5px;\">\r\n <div class=\"field\">\r\n <label for=\"numberOfWeeks\">{{\"induction.add.employment.fed.severance.weeks\"|translate}}</label>\r\n <p-inputNumber inputId=\"numberOfWeeks\" [useGrouping]=\"false\" [formControl]=\"numberOfWeeks\"\r\n maxlength=\"4\">\r\n </p-inputNumber>\r\n <app-error [class]=\"'app-grid'\" [field]='numberOfWeeks' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n\r\n <ion-col>\r\n <div class=\"field\">\r\n <label for=\"sevPayAmount\">{{\"induction.add.employment.fed.severance.entitlement\"|translate}}</label>\r\n <p-inputNumber [formControl]=\"sevPayAmount\" mode=\"currency\" currency=\"USD\" maxlength=\"12\"\r\n [max]=\"999999.99\" locale=\"en-US\" inputId=\"sevPayAmount\">\r\n </p-inputNumber>\r\n <app-error [class]=\"'app-grid'\" [field]='sevPayAmount' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <ion-row *ngIf=\"employerType.value==='FED' && sevPayFlag.value==='Y'\">\r\n <ion-col style=\"padding-right:5px;\">\r\n <div class=\"field\">\r\n <label for=\"sevPayStartDate\">{{\"induction.add.employment.fed.severance.start.date\"|translate}}</label>\r\n <p-calendar [showIcon]=\"true\" inputId=\"sevPayStartDate\" (onBlur)=\"validate($event)\"\r\n (onSelect)=\"validate($event)\" [formControl]=\"sevPayStartDate\" [yearNavigator]=\"true\"\r\n yearRange=\"1901:2050\" appendTo=\"body\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\"\r\n dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [class]=\"'app-grid'\" [field]='sevPayStartDate' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n\r\n <ion-col style=\"padding-right:5px;\">\r\n <div class=\"field\">\r\n <label for=\"sevPayEndDate\">{{\"induction.add.employment.fed.severance.end.date\"|translate}}</label>\r\n <p-calendar [showIcon]=\"true\" inputId=\"sevPayEndDate\" [formControl]=\"sevPayEndDate\"\r\n [yearNavigator]=\"true\" yearRange=\"1901:2050\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\"\r\n appendTo=\"body\" [minDate]=\"minDate\" dataType=\"string\" [showOnFocus]=\"false\"\r\n (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [class]=\"'app-grid'\" [field]='sevPayEndDate' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n\r\n <ion-col>\r\n <div class=\"field\">\r\n <label\r\n for=\"sevPayPaymentStartDate\">{{\"induction.add.employment.fed.severance.pay.date\"|translate}}</label>\r\n <p-calendar [showIcon]=\"true\" inputId=\"sevPayPaymentStartDate\" [formControl]=\"sevPayPaymentStartDate\"\r\n [yearNavigator]=\"true\" appendTo=\"body\" yearRange=\"1901:2050\" dateFormat=\"mm/dd/yy\"\r\n placeholder=\"mm/dd/yyyy\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [class]=\"'app-grid'\" [field]='sevPayPaymentStartDate' [form]=\"addEmployerFormDirective\"\r\n [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n\r\n <div class=\"field\" *ngIf=\"(isBasePeriodEmployer && workFlag.value==='Y' && employerType.value==='REG')\">\r\n <label for=\"pensionFlag\">{{\"induction.confirm.employment.pension\"|translate}}</label>\r\n <div style=\"inline-size: min-content; display:flex\">\r\n <p-selectButton id=\"pensionFlag\" unselectable=\"true\" [options]=\"radioOptions\"\r\n [formControl]=\"pensionFlag\" optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-overlay-info overlayText=\"{{'induction.confirm.employment.pension.info'| translate}}\"\r\n style=\"margin-top: 2px; margin-left: 6px;\"></app-overlay-info>\r\n <app-error [class]=\"'app-grid'\" [field]='pensionFlag' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"(isBasePeriodEmployer && workFlag.value==='Y' && pensionFlag.value==='Y' \r\n && employerType.value==='REG' && this.currentState != 'ME')\">\r\n <label for=\"pensionRecvDate\">{{\"induction.confirm.employment.pension.date\"|translate}}</label>\r\n <div>\r\n <p-calendar [showIcon]=\"true\" inputId=\"pensionRecvDate\" [formControl]=\"pensionRecvDate\"\r\n [yearNavigator]=\"true\" appendTo=\"body\" yearRange=\"1901:2050\" dateFormat=\"mm/dd/yy\"\r\n placeholder=\"mm/dd/yyyy\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [class]=\"'app-grid'\" [field]='pensionRecvDate' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"(!isBasePeriodEmployer && employerType.value==='REG')\">\r\n <label for=\"regPensionFlag\">{{\"induction.add.employment.reg.pension\"|translate}} <br />\r\n {{\"induction.add.employment.reg.pension.disclaimer\"|translate}}</label>\r\n <div style=\"inline-size: min-content; display:flex\">\r\n <p-selectButton id=\"regPensionFlag\" unselectable=\"true\" [options]=\"radioOptions\"\r\n [formControl]=\"regPensionFlag\" optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-overlay-info overlayText=\"{{'induction.add.employment.reg.pension.info'| translate}}\"\r\n style=\"margin-top: 2px; margin-left: 6px;\"></app-overlay-info>\r\n </div>\r\n <app-error [class]=\"'app-grid'\" [field]='regPensionFlag' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"(!isBasePeriodEmployer && employerType.value==='REG' \r\n && regPensionFlag.value==='Y' && this.currentState != 'ME')\">\r\n <label for=\"regPensionRecvDate\">{{\"induction.add.employment.reg.pension.date\"|translate}}</label>\r\n <div>\r\n <p-calendar [showIcon]=\"true\" inputId=\"regPensionRecvDate\" [formControl]=\"regPensionRecvDate\"\r\n [yearNavigator]=\"true\" appendTo=\"body\" yearRange=\"1901:2050\" dateFormat=\"mm/dd/yy\"\r\n placeholder=\"mm/dd/yyyy\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [class]=\"'app-grid'\" [field]='regPensionRecvDate' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <!-- REG DismissalPayFlag -->\r\n <div class=\"field\" *ngIf=\"(((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer) \r\n && (employerType.value==='REG' ) && this.currentState == 'CT')\">\r\n <label for=\"regDissmisalFlag\">{{\"induction.confirm.employment.dissmisalFlag\"|translate}}</label>\r\n <div style=\"inline-size: min-content; display:flex\">\r\n <p-selectButton id=\"regDissmisalFlag\" unselectable=\"true\" [options]=\"radioOptions\"\r\n [formControl]=\"regDissmisalFlag\" optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n </div>\r\n <app-error [class]=\"'app-grid'\" [field]='regDissmisalFlag' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <!-- REG dismissalCheckBox-->\r\n <div class=\"field\"\r\n *ngIf=\"((this.currentState === 'CT' && (employerType.value==='REG'))\r\n && ((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer)) && this.regDissmisalFlag.value==='Y'\">\r\n <label for=\"regDissmisalCheckBox\">{{\"induction.confirm.employment.dissmisalCheckBox\"|translate}}</label>\r\n <p-checkbox [name]=\"'regDissmisalCheckBox-group'\" [value]=\"choice.value\" [label]=\"choice.text\"\r\n *ngFor=\"let choice of dissmisalCheckBoxOptions\" [formControl]=\"regDissmisalCheckBox\"\r\n styleClass=\"app-p-checkbox\"></p-checkbox>\r\n <app-error [class]=\"'app-grid'\" [field]='regDissmisalCheckBox' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <!-- REG LaidOffFlag-->\r\n <div class=\"field\" *ngIf=\"(((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer) \r\n && (employerType.value==='REG' ) && this.currentState == 'CT')\">\r\n <label for=\"regLaidOffFlag\">{{\"induction.confirm.employment.laidOffFlag\"|translate}}</label>\r\n <div style=\"inline-size: min-content; display:flex\">\r\n <p-selectButton id=\"regLaidOffFlag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"regLaidOffFlag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n </div>\r\n <app-error [class]=\"'app-grid'\" [field]='regLaidOffFlag' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <!-- FED DismissalPayFlag -->\r\n <div class=\"field\" *ngIf=\"(((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer) \r\n && (employerType.value==='FED' ) && this.currentState == 'CT')\">\r\n <label for=\"fedDissmisalFlag\">{{\"induction.confirm.employment.dissmisalFlag\"|translate}}</label>\r\n <div style=\"inline-size: min-content; display:flex\">\r\n <p-selectButton id=\"fedDissmisalFlag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"fedDissmisalFlag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n </div>\r\n <app-error [class]=\"'app-grid'\" [field]='fedDissmisalFlag' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <!-- FED dismissalCheckBox -->\r\n <div class=\"field\"\r\n *ngIf=\"((this.currentState === 'CT' && (employerType.value==='FED'))\r\n && ((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer)) && this.fedDissmisalFlag.value==='Y'\">\r\n <label for=\"fedDissmisalCheckBox\">{{\"induction.confirm.employment.dissmisalCheckBox\"|translate}}</label>\r\n <p-checkbox [name]=\"'fedDissmisalCheckBox-group'\" [value]=\"choice.value\" [label]=\"choice.text\"\r\n *ngFor=\"let choice of dissmisalCheckBoxOptions\" [formControl]=\"fedDissmisalCheckBox\"\r\n styleClass=\"app-p-checkbox\"></p-checkbox>\r\n <app-error [class]=\"'app-grid'\" [field]='fedDissmisalCheckBox' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <!-- FED LaidOffFlag-->\r\n <div class=\"field\" *ngIf=\"(((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer) \r\n && (employerType.value==='FED' ) && this.currentState == 'CT')\">\r\n <label for=\"fedLaidOffFlag\">{{\"induction.confirm.employment.laidOffFlag\"|translate}}</label>\r\n <div style=\"inline-size: min-content; display:flex\">\r\n <p-selectButton id=\"fedLaidOffFlag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"fedLaidOffFlag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n </div>\r\n <app-error [class]=\"'app-grid'\" [field]='fedLaidOffFlag' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n\r\n <div class=\"field\" *ngIf=\"((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer)\r\n && employerType.value==='REG' && this.currentState != 'CT'\">\r\n <label\r\n for=\"isClmtPaidWhileLow\">{{\"induction.confirm.employment.employer.pay.return.to.work\"|translate}}</label>\r\n <div style=\"inline-size: min-content; display:flex;\">\r\n <p-selectButton id=\"isClmtPaidWhileLow\" unselectable=\"true\" [options]=\"radioOptions\"\r\n [formControl]=\"isClmtPaidWhileLow\" optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-overlay-info\r\n overlayText=\"{{'induction.add.employment.reg.employerPayReturnToWorkInfo'| translate}}\"\r\n style=\"margin-top: 2px; margin-left: 6px;\"></app-overlay-info>\r\n </div>\r\n <app-error [class]=\"'app-grid'\" [field]='isClmtPaidWhileLow' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\"\r\n *ngIf=\"((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer)&& employerType.value==='REG' && currentState ==='ME'\">\r\n <label for=\"hasShortTermDisability\">{{\"induction.confirm.employment.shorttermdisability\"|translate}}\r\n {{bpStartDateToDisplay | date:'MMMM d, yyyy'}} ?</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton id=\"hasShortTermDisability\" unselectable=\"true\" [options]=\"radioOptions\"\r\n [formControl]=\"hasShortTermDisability\" optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='hasShortTermDisability' [form]=\"addEmployerFormDirective\"\r\n [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field\"\r\n *ngIf=\"((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer)&& employerType.value==='REG' && currentState==='ME'\">\r\n <label for=\"hasRecvRemuneration\">{{\"induction.confirm.employment.remuneration.pay\"|translate}}</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton id=\"hasRecvRemuneration\" unselectable=\"true\" [options]=\"radioOptions\"\r\n [formControl]=\"hasRecvRemuneration\" optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='hasRecvRemuneration' [form]=\"addEmployerFormDirective\"\r\n [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field\"\r\n *ngIf=\"((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer) && employerType.value==='REG' && currentState==='ME' && hasRecvRemuneration.value==='Y' && osaBpEmployerFlag.value==='0'\">\r\n <label for=\"remunerationTypes\">{{\"induction.confirm.employment.remuneration.types\"|translate}}</label>\r\n <p-checkbox [name]=\"'remunerationtypes-group'\" [value]=\"choice.value\" [label]=\"choice.text\"\r\n *ngFor=\"let choice of remunerationTypeOptions\" [formControl]=\"remunerationTypes\"\r\n styleClass=\"app-p-checkbox\"></p-checkbox>\r\n <app-error [class]=\"'app-grid'\" [field]='remunerationTypes' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\"\r\n *ngIf=\"((isBasePeriodEmployer && workFlag.value==='Y' && schoolFlag ==='1') || !isBasePeriodEmployer)&& employerType.value==='REG' && currentState ==='ME'\">\r\n <label for=\"vacation\">{{\"induction.confirm.employment.vacation.break\"|translate}}</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton id=\"vacation\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"vacation\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='vacation' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"workState.value && workState.value.value===this.currentState && displayVerificationOfWages.value && !isBasePeriodEmployer && employerType.value==='REG'\">\r\n <div class=\"field\">\r\n <h4>{{\"induction.add.employment.reg.verification.wages.header\"|translate}}</h4>\r\n </div>\r\n <div class=\"field\">\r\n <label>{{\"induction.add.employment.reg.verification.wages.subheader\"|translate}}</label>\r\n </div>\r\n\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"workType\">{{\"induction.add.employment.reg.work.type\" | translate}}</label>\r\n <input id=\"workType\" type=\"input\" pInputText [formControl]=\"workType\" maxlength=\"50\" />\r\n <app-error [class]=\"'app-grid'\" [field]='workType' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n\r\n <div class=\"field\">\r\n <label for=\"paymentType\">{{\"induction.add.employment.reg.verification.wages.paymode\"|translate}}</label>\r\n <p-selectButton id=\"paymentType\" unselectable=\"true\" [options]=\"payMethodOptions\"\r\n [formControl]=\"paymentType\" optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='paymentType' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"docsReceived\">{{\"induction.add.employment.reg.verification.wages.docs\"|translate}}</label>\r\n <p-selectButton id=\"docsReceived\" unselectable=\"true\" [options]=\"wageProofOptions\"\r\n [formControl]=\"docsReceived\" optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='docsReceived' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"otherSSNFlag\">{{\"induction.add.employment.reg.verification.wages.other.ssn.flag\"|translate}}\r\n {{bpStartDateToDisplay | date:'MMMM d, yyyy'}} ?\r\n </label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton id=\"otherSSNFlag\" unselectable=\"true\" [options]=\"radioOptions\"\r\n [formControl]=\"otherSSNFlag\" optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='otherSSNFlag' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"this.otherSSNFlag.value === 'Y'\">\r\n <label for=\"otherSSN\">{{\"induction.add.employment.reg.verification.wages.other.ssn\"|translate}}</label>\r\n <p-inputMask mask=\"999-99-9999\" id=\"otherSSN\" [formControl]=\"otherSSN\" placeholder=\"999-99-9999\">\r\n </p-inputMask>\r\n <app-error [class]=\"'app-grid'\" [field]='otherSSN' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <!-- <div class=\"field\">\r\n <label for=\"hiredBy\">Manager's Name & Title</label>\r\n <input id=\"hiredBy\" type=\"input\" pInputText [formControl]=\"hiredBy\" maxlength=\"40\"/>\r\n <app-error [class]=\"'app-grid'\" [field]='hiredBy' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error> \r\n </div> -->\r\n </div>\r\n\r\n <ion-row\r\n *ngIf=\"workState.value && workState.value.value=== this.currentState && displayVerificationOfWages.value && !isBasePeriodEmployer && employerType.value==='REG'\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label\r\n for=\"otherNameFlag\">{{\"induction.add.employment.reg.verification.wages.other.name.flag\"|translate}}\r\n {{bpStartDateToDisplay | date:'MMMM d, yyyy'}} ?\r\n </label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton id=\"otherNameFlag\" unselectable=\"true\" [options]=\"radioOptions\"\r\n [formControl]=\"otherNameFlag\" optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='otherNameFlag' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"this.otherNameFlag.value === 'Y'\">\r\n <label\r\n for=\"otherName\">{{\"induction.add.employment.reg.verification.wages.other.name\"|translate}}</label>\r\n <input id=\"otherName\" type=\"input\" pInputText [formControl]=\"otherName\" maxlength=\"30\" />\r\n <app-error [class]=\"'app-grid'\" [field]='otherName' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <!-- <ion-row *ngIf=\"workState.value && workState.value.value==='MS' && displayVerificationOfWages.value && !isBasePeriodEmployer && employerType.value==='REG'\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"fein\">FEIN</label>\r\n <p-inputNumber [id]=\"fein\" [useGrouping]=\"false\" [formControl]=\"fein\" maxlength=\"9\"></p-inputNumber>\r\n <app-error [class]=\"'app-grid'\" [field]='fein' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"doingBusinessAs\">Doing Business As/Trade Name</label>\r\n <input id=\"doingBusinessAs\" type=\"input\" pInputText [formControl]=\"doingBusinessAs\" maxlength=\"100\"/>\r\n <app-error [class]=\"'app-grid'\" [field]='doingBusinessAs' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row> -->\r\n\r\n <!--<ion-row *ngIf=\"workState.value && workState.value.value===this.currentState && displayVerificationOfWages.value \r\n && !isBasePeriodEmployer && employerType.value==='REG' && false\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"businessNature\">{{\"induction.add.employment.reg.verification.nature\"|translate}}</label>\r\n <input id=\"businessNature\" type=\"input\" pInputText [formControl]=\"businessNature\" maxlength=\"250\"/>\r\n <app-error [class]=\"'app-grid'\" [field]='businessNature' [form]=\"addEmployerFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>-->\r\n <div *ngIf=\"((workState.value && workState.value.value===currentState && employerType && displayVerificationOfWages.value && !isBasePeriodEmployer && employerType.value==='REG') \r\n || (employerType.value==='FED' && isNewClaim)) && (employerType.value!='MIL')\">\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <label><b>{{\"induction.add.employment.fed.verification.wages\"|translate}}</b></label>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='REG'\">\r\n <label><b>{{\"induction.add.employment.reg.verification.wages\"|translate}}</b></label>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <label>{{\"induction.add.employment.fed.verification.wages.statement\"|translate}}</label>\r\n </div>\r\n <div class=\"field\">\r\n <table rules=rows>\r\n <tr>\r\n <th style=\"text-align: center;\">{{\"induction.add.employment.reg.verification.wages.col1\"|translate}}\r\n </th>\r\n <th>{{\"induction.add.employment.reg.verification.wages.col2\"|translate}}</th>\r\n </tr>\r\n <ng-container formArrayName=\"wageAmountArray\">\r\n <ng-container *ngFor=\"let wageAmountForm of wageAmountArray.controls; let i = index\"\r\n [formGroupName]=\"i\">\r\n <tr\r\n *ngIf=\"((employerType.value==='FED') || (employerType.value==='REG' && wageAmountForm.value.displayForAll===true) )\" class=\"quarterText\">\r\n <td>\r\n {{wageAmountForm.value.qtrYearDisplayString}}\r\n </td>\r\n <td>\r\n <p-inputNumber [inputId]=\"'wageAmount' + i\" ariaLabel=\"wageAmount\"\r\n formControlName=\"wageAmount\" mode=\"currency\" [min]=\"0.00\" [max]=\"999999.99\" maxlength=\"12\"\r\n currency=\"USD\" locale=\"en-US\">\r\n </p-inputNumber>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n <tr *ngIf=\"wageAmountArray.errors?.requireCheckboxToBeChecked\">\r\n <td colspan=\"2\">\r\n <app-error [class]=\"'app-grid'\" [field]='wageAmountArray' [form]=\"addEmployerFormDirective\"\r\n [errDef]=\"{ \r\n requireCheckboxToBeChecked: 'at least one amount must be greater than zero'\r\n }\"></app-error>\r\n </td>\r\n </tr>\r\n\r\n </ng-container>\r\n </table>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(statement1 | translate)\"></div>\r\n <!-- <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(statement2 | translate)\"></div> -->\r\n <!-- <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(statement3 | translate)\"></div> -->\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(statement4 | translate)\"\r\n style=\"padding-left: 15px;\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <ion-row>\r\n <ion-col class=\"ion-text-right\">\r\n <ion-button shape=\"round\" style=\"width: 80px;\" fill=\"outline\" (click)=\"onModelCancel(false)\"\r\n type=\"reset\">{{\"induction.employment.button.cancel\"|translate}} </ion-button>\r\n <ion-button shape=\"round\" style=\"width: 80px;\" (click)=\"save()\" type=\"submit\" *ngIf=\"isBasePeriodEmployer\">\r\n {{\"induction.employment.button.save\"|translate}} </ion-button>\r\n <ion-button shape=\"round\" style=\"width: 80px;\" (click)=\"add()\" type=\"submit\" *ngIf=\"!isBasePeriodEmployer\">\r\n {{\"induction.employment.button.add\"|translate}} </ion-button>\r\n </ion-col>\r\n </ion-row>\r\n\r\n </ion-grid>\r\n </form>\r\n</p-dialog>", styles: [".p-fluid .p-buttonset{display:flex}.p-selectbutton .p-button{width:50px!important}table,th,td{border:1px solid grey;border-collapse:collapse;padding:5px}table th{background-color:#f1f1f1}table{width:100%}.pad-space{display:block}@media (min-width: 768px) and (max-width: 1025px){.pad-space{display:none}}@media screen and (max-width: 1265px){.quarterText{width:max-content!important;white-space:nowrap}}\n"] }]
|
|
3704
3710
|
}], () => [{ type: i1.UntypedFormBuilder }, { type: i2.ValidationService }, { type: i3.UtilService }, { type: i4.FilterService }, { type: i5.LoggerService }, { type: i6.DomSanitizer }, { type: i7.ClaimService }, { type: i8.LoginService }, { type: i0.ElementRef }, { type: i9.ActivatedRoute }, { type: i10.EmployerService }], { address1: [{
|
|
3705
3711
|
type: ViewChild,
|
|
3706
3712
|
args: ['address1']
|
|
@@ -3729,4 +3735,4 @@ export class AddEmployerComponent {
|
|
|
3729
3735
|
type: Output
|
|
3730
3736
|
}] }); })();
|
|
3731
3737
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AddEmployerComponent, { className: "AddEmployerComponent", filePath: "lib\\components\\add-employer\\add-employer.component.ts", lineNumber: 29 }); })();
|
|
3732
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWVtcGxveWVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9hZGQtZW1wbG95ZXIvYWRkLWVtcGxveWVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9hZGQtZW1wbG95ZXIvYWRkLWVtcGxveWVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFpQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEksT0FBTyxFQUF3RixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdsSSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFNcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBT2hFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztJQ0ozRSwyQkFBK0I7SUFDN0IsWUFBOEQ7O0lBQUEsaUJBQU07OztJQUFwRSxlQUE4RDtJQUE5RCxnSEFBOEQ7OztJQUVoRSwyQkFBb0UsZUFBQTtJQUNsQyxZQUNoQztJQUFBLGlCQUFPLEVBQUE7OztJQUR5QixlQUNoQztJQURnQyw4REFDaEM7OztJQUVGLDJCQUFxRDtJQUNuRCxxQkFBSTtJQUNKLFlBQ0Y7O0lBQUEsaUJBQU07O0lBREosZUFDRjtJQURFLG9HQUNGOzs7SUFNUSwwQkFBZ0MsUUFBQTtJQUMzQixZQUE4QjtJQUFBLGlCQUFJLEVBQUE7OztJQUFsQyxlQUE4QjtJ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QyxJQUFJLENBQUMsb0JBQW9CLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEtBQUssR0FBRyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDM00saUJBQWlCLEVBQUUsQ0FBQyxHQUFHLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssS0FBSyxHQUFHLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxLQUFLLEdBQUcsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDdFIsZ0JBQWdCLEVBQUUsQ0FBQyxHQUFHLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDdEwsb0JBQW9CLEVBQUMsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUEsQ0FBQyxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNyTyxrQkFBa0IsRUFBRSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBRSxDQUFDLENBQUMsQ0FBQztZQUM3UixzQkFBc0IsRUFBRSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMVMsZ0JBQWdCLEVBQUUsQ0FBQyxHQUFHLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBRSxDQUFDLENBQUMsQ0FBQztZQUN2UixrQkFBa0IsRUFBRSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBRSxDQUFDLENBQUMsQ0FBQztZQUM3UixzQkFBc0IsRUFBRSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMVMsZ0JBQWdCLEVB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aUI7a0JBRHZCLEtBQUs7WUFJQyxvQkFBb0I7a0JBRDFCLEtBQUs7WUFJQyxVQUFVO2tCQURoQixLQUFLO1lBSUMsR0FBRztrQkFEVCxLQUFLO1lBTU4sZUFBZTtrQkFEZCxNQUFNOztrRkFqR0ksb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBVbnR5cGVkRm9ybUFycmF5LCBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAsIE5nRm9ybSwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZpbHRlclNlcnZpY2UsIFNlbGVjdEl0ZW1Hcm91cCB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7RG9tU2FuaXRpemVyfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9DbGFpbUFwcEVtcGxveWVyRGV0YWlsc01vZGVsJztcbmltcG9ydCB7IENvbWJvT3B0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvQ29tYm9Nb2RlbCc7XG5pbXBvcnQgeyBFbXBsb3llckRldGFpbFNlYXJjaFJlc3VsdCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0VtcGxveWVyRGV0YWlsU2VhcmNoUmVzdWx0JztcbmltcG9ydCB7IFF0clllYXJFbXBsb3llcldhZ2VNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL1F0clllYXJFbXBsb3llcldhZ2VNb2RlbCc7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7IFZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcXVlc3Rpb25uYWlyZS92YWxpZGF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBWYWxpZGF0b3JzIH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbnMvQXBwVmFsaWRhdG9ycyc7XG5pbXBvcnQgeyBBZGRyZXNzQ29tcG9uZW50TW9kZWwsIENob2ljZXNNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9BZGRyZXNzQ29tcG9uZW50TW9kZWwnO1xuaW1wb3J0IHsgQ2xhaW1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2xhaW1zL2NsYWltcy5zZXJ2aWNlJztcbmltcG9ydCB7IEFkZHJlc3NDb21wb25lbnQgfSBmcm9tICcuLi9hZGRyZXNzL2FkZHJlc3MuY29tcG9uZW50JztcbmltcG9ydCB7IExvZ2luU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvZ2luL2xvZ2luLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgS2V5VmFsdWVNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0tleVZhbHVlTW9kZWwnO1xuaW1wb3J0IHsgUmVhc29uU2VwYXJhdGlvblJlcXVlc3RNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9SZWFzb25TZXBhcmF0aW9uUmVxdWVzdE1vZGVsJztcbmltcG9ydCB7IEVtcGxveWVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2VtcGxveWVyL2VtcGxveWVyLXNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvQ2xhaW1BcHBFbXBSZXNwb25zZU1vZGVsJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtYWRkLWVtcGxveWVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC1lbXBsb3llci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FkZC1lbXBsb3llci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBBZGRFbXBsb3llckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uQ2hhbmdlcyB7XG5cbiAgQFZpZXdDaGlsZCgnYWRkcmVzczEnKSBhZGRyZXNzMTogQWRkcmVzc0NvbXBvbmVudDsgXG4gIEBWaWV3Q2hpbGQoJ2FkZHJlc3MyJykgYWRkcmVzczI6IEFkZHJlc3NDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ2FkZHJlc3MzJykgYWRkcmVzczM6IEFkZHJlc3NDb21wb25lbnQ7IFxuXG4gIEBWaWV3Q2hpbGQoJ2FkZEVtcGxveWVyRm9ybURpcmVjdGl2ZScsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBwdWJsaWMgYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlOiBOZ0Zvcm07XG4gIHB1YmxpYyBlbXBsb3llclR5cGVPcHRpb25zID0gQ29tYm9PcHRpb24uRU1QTE9ZRVJfVFlQRTtcbiAgcHVibGljIGNvdW50cnlPcHRpb25zID0gQ29tYm9PcHRpb24uQ09VTlRSWTtcbiAgcHVibGljIGNvdW50cnlGZWRPcHRpb25zID0gQ29tYm9PcHRpb24uQ09VTlRSWTtcbiAgcHVibGljIHBheVJhdGVPcHRpb25zID0gQ29tYm9PcHRpb24uUEFZX1BFUklPRDtcbiAgcHVibGljIHN0YXRlT3B0aW9uczogYW55ID0gW107XG4gIHB1YmxpYyBmZWRTdGF0ZU9wdGlvbnM6IGFueSA9IFtdO1xuICBwdWJsaWMgam9iVGlsZU9yUG9zaXRpb25PcHRpb25zOiBhbnkgPVtdO1xuICBwdWJsaWMgZmVkSm9iVGlsZU9wdGlvbnM6IGFueSA9W107XG4gIHB1YmxpYyByYWRpb09wdGlvbnMgPSBDb21ib09wdGlvbi5ZRVNfTk87XG4gIHB1YmxpYyB3b3JrT3B0aW9ucyA9IENvbWJvT3B0aW9uLldPUktfRk9SX0VNUEw7XG4gIHB1YmxpYyB5ZXNOb05hT3B0aW9ucyA9IENvbWJvT3B0aW9uLllFU19OT19OQTtcbiAgcHVibGljIHBheU1ldGhvZE9wdGlvbnMgPSBDb21ib09wdGlvbi5QQVlNRU5UX01FVEhPRDtcbiAgcHVibGljIHdhZ2VQcm9vZk9wdGlvbnMgPSBDb21ib09wdGlvbi5XQUdFX1BST09GO1xuICBwdWJsaWMgZGlzY2hhcmdlUmVhc29uT3B0aW9uczogQ2hvaWNlc01vZGVsW10gPSBbXTtcbiAgcHVibGljIHZvbFF1aXRSZWFzb25PcHRpb25zOiBDaG9pY2VzTW9kZWxbXSA9IFtdO1xuICBwdWJsaWMgc3RhdGVzT3B0aW9ucztcbiAgcHVibGljIHBheVBlcmlvZCA9IENvbWJvT3B0aW9uLlBBWV9QRVJJT0Q7XG4gIHB1YmxpYyBlbXBsb3ltZW50U3RhdHVzT3B0aW9uczogQ2hvaWNlc01vZGVsW10gPSBbXTtcbiAgcHVibGljIHdvcmtDb3VudHJ5T3B0aW9ucyA9IENvbWJvT3B0aW9uLldPUktfQ09VTlRSWTtcbiAgcHVibGljIG1pbGl0YXJ5U2VydmljZU9wdGlvbnMgPSBDb21ib09wdGlvbi5NSUxJVEFSWV9TRVJWSUNFO1xuICBwdWJsaWMgbWlsaXRhcnlTZXJ2aWNlT3B0aW9uc1dpdGhTcGFjZSA9IENvbWJvT3B0aW9uLk1JTElUQVJZX1NFUlZJQ0VfVVNTRjtcbiAgcHVibGljIHJlbXVuZXJhdGlvblR5cGVPcHRpb25zID0gQ29tYm9PcHRpb24uUkVNVU5FUkFUSU9OX1RZUEVTO1xuICBwdWJsaWMgc2hpZnRPcHRpb25zPUNvbWJvT3B0aW9uLlNISUZUO1xuICBwdWJsaWMgZGlkV29ya09wdGlvbnM9Q29tYm9PcHRpb24uRElEV09SSztcbiAgcHVibGljIHdvcmtXZWVrT3B0aW9ucz1Db21ib09wdGlvbi5XT1JLV0VFSztcbiAgcHVibGljIGRpc3NtaXNhbENoZWNrQm94T3B0aW9ucz1Db21ib09wdGlvbi5ESVNTTUlTQUxQQVlPUFRJT05TO1xuICBwdWJsaWMgYWRkRW1wbG95ZXJGb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuICBwdWJsaWMgZGlzcGxheTogYm9vbGVhbjtcbiAgcHVibGljIGJhc2VQZXJpb2RTdGFydERhdGU6IERhdGU7XG4gIHB1YmxpYyBiYXNlUGVyaW9kRW5kRGF0ZTogRGF0ZTtcbiAgcHVibGljIGJwU3RhcnREYXRlVG9EaXNwbGF5OiBEYXRlO1xuICBwdWJsaWMgbWluRGF0ZTogRGF0ZTtcbiAgcHVibGljIG1pblN0YXJ0RGF0ZTogRGF0ZTtcbiAgcHVibGljIHF1YXJ0ZXJSYW5nZU9uZT86IHN0cmluZztcbiAgcHVibGljIHF1YXJ0ZXJSYW5nZVR3bz86IHN0cmluZztcbiAgcHVibGljIHF1YXJ0ZXJSYW5nZVRocmVlPzogc3RyaW5nO1xuICBwdWJsaWMgcXVhcnRlclJhbmdlRm91cj86IHN0cmluZztcbiAgcHVibGljIGN1cnJlbnRRdWFydGVyUmFuZ2U/OiBzdHJpbmc7XG4gIHB1YmxpYyBxdWFydGVyUmFuZ2VGaXZlPzogc3RyaW5nO1xuICBwdWJsaWMgZGF0ZVRpbWUgPSBuZXcgRGF0ZSgpO1xuICAvL3B1YmxpYyBncm91cGVkUmVhc29ucz0gQ29tYm9PcHRpb24uR1JPVVBfUkVBU09OUztcbiAgcHVibGljIG1pbldvcmtTdGFydERhdGUgOiBEYXRlO1xuICBwdWJsaWMgbWluV2Vla0ZvckNoYXJnZWFiaWxpdHkgOiBudW1iZXI7XG5cbiAgcHVibGljIGRpc2NoYXJnZVJlYXNvbk9wdGlvbnNBbGw6IENob2ljZXNNb2RlbFtdID0gW107XG4gIHB1YmxpYyB2b2xRdWl0UmVhc29uT3B0aW9uc0FsbDogQ2hvaWNlc01vZGVsW10gPSBbXTtcbiAgcHVibGljIGVtcGxveW1lbnRTdGF0dXNPcHRpb25zQWxsOiBDaG9pY2VzTW9kZWxbXSA9IFtdO1xuXG4gIHB1YmxpYyBzZjhJbmZvPVwiU0YtOFwiO1xuXG4gIHB1YmxpYyBzdGF0ZW1lbnQxID1cImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQud2FnZS5wcm9vZi5zdGF0ZW1lbnQxXCI7XG4gIHB1YmxpYyBzdGF0ZW1lbnQyID1cImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQud2FnZS5wcm9vZi5zdGF0ZW1lbnQyXCI7XG4gIHB1YmxpYyBzdGF0ZW1lbnQzID1cImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQud2FnZS5wcm9vZi5zdGF0ZW1lbnQzXCI7XG4gIHB1YmxpYyBzdGF0ZW1lbnQ0ID1cImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQud2FnZS5wcm9vZi5zdGF0ZW1lbnQ0XCI7IFxuICBwdWJsaWMgcGFyYU9uZSA9XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQubWlsLmRkMjE0Lnllcy5wYXJhLm9uZVwiO1xuICBwdWJsaWMgcGFyYVR3bz1cImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5taWwuZGQyMTQueWVzLnBhcmEudHdvXCI7XG4gIHB1YmxpYyBwYXJhVGhyZWU9XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQubWlsLmRkMjE0Lnllcy5wYXJhLnRocmVlXCI7XG4gIHB1YmxpYyBwYXJhRm91cj1cImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5taWwuZGQyMTQueWVzLnBhcmEuZm91clwiO1xuICBwdWJsaWMgcGFyYUZpdmU9XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQubWlsLmRkMjE0Lnllcy5wYXJhLmZpdmVcIjtcbiAgcHVibGljIHBhcmFTaXg9XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQubWlsLmRkMjE0Lnllcy5wYXJhLnNpeFwiO1xuXG4gIHB1YmxpYyBub1BhcmFPbmUgPVwiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5kZDIxNC5uby5wYXJhLm9uZVwiO1xuICBwdWJsaWMgbm9QYXJhVHdvPVwiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5kZDIxNC5uby5wYXJhLnR3b1wiO1xuICBwdWJsaWMgbm9QYXJhVGhyZWU9XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQubWlsLmRkMjE0Lm5vLnBhcmEudGhyZWVcIjtcbiAgcHVibGljIG5vUGFyYUZvdXI9XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQubWlsLmRkMjE0Lm5vLnBhcmEuZm91clwiO1xuICBwdWJsaWMgbm9QYXJhRml2ZT1cImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5taWwuZGQyMTQubm8ucGFyYS5maXZlXCI7XG5cbiAgcHVibGljIGVtcGxveWVyUHJvdmlkZWRXYWdlczogUXRyWWVhckVtcGxveWVyV2FnZU1vZGVsW107XG5cbiAgQE91dHB1dCgpXG4gIG1vZGVsQ2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBPdXRwdXQoKVxuICBzdWNjZXNzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcmVjb3JkSW5kZXhUb0VkaXQ6IG51bWJlcjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaXNCYXNlUGVyaW9kRW1wbG95ZXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaXNOZXdDbGFpbTogYm9vbGVhbjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZG9iOiBEYXRlO1xuXG4gIHB1YmxpYyBoaWRlRmljQ29kZTogdHJ1ZTtcblxuICBAT3V0cHV0KCkgXG4gIGJhc2VQZXJpb2RJbmRleDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSAgIG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwdWJsaWMgY3VycmVudFN0YXRlIDogc3RyaW5nO1xuXG4gIHB1YmxpYyBjdXN0b21lck5hbWU6IHN0cmluZztcbiAgcHVibGljIGFsaWFzTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgbWFpbGluZ0FkZHJlc3NEaXNwbGF5OiBzdHJpbmc7XG4gIHB1YmxpYyBzY2hvb2xGbGFnOnN0cmluZztcbiAgcHVibGljIHNwb3J0c0ZsYWc6c3RyaW5nO1xuICBwdWJsaWMgY2xhaW1UeXBlRHVhOnN0cmluZztcbiAgcHVibGljIHNzblZhbGlkV29ya1NoYXJlOnN0cmluZztcbiAgcHVibGljIGlzT3NhRW1wbG95ZXI6c3RyaW5nID0gXCIwXCI7XG4gIHB1YmxpYyBlbXBsb3llclR5cGVQcmVTZXQgOiBzdHJpbmcgPSBcIlJFR1wiO1xuICBwdWJsaWMgaXNDU1I6Ym9vbGVhbjtcbiAgcHVibGljIHNob3dXb3JrU3RhdGU6IGJvb2xlYW4gPSB0cnVlO1xuICBwdWJsaWMgcmVhc29uU2VwYXJhdGlvblZhbHVlOiBzdHJpbmc7XG4gIHByaXZhdGUgb25DaGFuZ2U6IEZ1bmN0aW9uID0gKHZhbHVlOiBTdHJpbmcpID0+IHtcblxuICB9O1xuICBwcml2YXRlIG9uVG91Y2g6IEZ1bmN0aW9uID0gKCkgPT4ge1xuXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHVibGljIGZvcm1CdWlsZGVyOiBVbnR5cGVkRm9ybUJ1aWxkZXIsIHB1YmxpYyB2YWxpZGF0aW9uU2VydmljZTogVmFsaWRhdGlvblNlcnZpY2UsIFxuICAgIHB1YmxpYyB1dGlsOiBVdGlsU2VydmljZSxwcml2YXRlIGZpbHRlclNlcnZpY2U6IEZpbHRlclNlcnZpY2UscHJpdmF0ZSBsb2dnZXI6IExvZ2dlclNlcnZpY2UsIFxuICAgIHB1YmxpYyBzYW5pdGl6ZXI6IERvbVNhbml0aXplciwgcHVibGljIGNsYWltc1NlcnZpY2UgOiBDbGFpbVNlcnZpY2UsIHB1YmxpYyBsczogTG9naW5TZXJ2aWNlLFxuICAgIHB1YmxpYyBlbDogRWxlbWVudFJlZiwgcHJpdmF0ZSBhcjogQWN0aXZhdGVkUm91dGUsIHB1YmxpYyBlbXBsb3llclNlcnZpY2U6IEVtcGxveWVyU2VydmljZSkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG5cbiAgICB0aGlzLnNldFdvcmtTdGFydERhdGUoKTtcblxuICAgIGNvbnN0IGN1cnJlbnRTdGF0ZSA9IENvbWJvT3B0aW9uLlVTX1NUQVRFUy5maW5kKHN0YXRlID0+IHN0YXRlLnZhbHVlID09IHRoaXMudXRpbC5nZXRTdGF0ZSgpKVxuICAgIHRoaXMuc3RhdGVzT3B0aW9ucyA9IFtjdXJyZW50U3RhdGUsIC4uLkNvbWJvT3B0aW9uLlVTX1NUQVRFUy5maWx0ZXIoc3RhdGUgPT4gc3RhdGUudmFsdWUgIT0gdGhpcy51dGlsLmdldFN0YXRlKCkpXTtcblxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdpc0Jhc2VQZXJpb2RFbXBsb3llciBpcyA9ICcsIHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdpc05ld0NsYWltID0gJywgdGhpcy5pc05ld0NsYWltKTtcbiAgICB0aGlzLmN1cnJlbnRTdGF0ZSA9IHRoaXMudXRpbC5nZXRTdGF0ZSgpO1xuICAgIHRoaXMubG9hZE1hc3RlckRhdGEoKTtcbiAgICB0aGlzLmlzQ1NSID0gdGhpcy5scy5pc0NzcigpO1xuICAgXG4gICAgaWYodGhpcy5jdXJyZW50U3RhdGU9PSdDVCcpe1xuICAgICAgdGhpcy5wYXlQZXJpb2QgPSBDb21ib09wdGlvbi5QQVlfUEVSSU9EX0NUO1xuICAgICAgdGhpcy5wYXlSYXRlT3B0aW9ucyA9IENvbWJvT3B0aW9uLlBBWV9QRVJJT0RfQ1Q7XG4gICAgfVxuICAgIGxldCBlc206IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWw7XG4gICAgbGV0IHF0cldhZ2VMaXN0OiBRdHJZZWFyRW1wbG95ZXJXYWdlTW9kZWxbXTtcbiAgICBsZXQgcHJvY2Vzc3R5cGUgPSB0aGlzLmFyLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KCdwcm9jZXNzdHlwZScpO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwiY2FsbCBzZXJ2aWNlID1cIiwgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKSk7XG4gICAgaWYgKHRoaXMucmVjb3JkSW5kZXhUb0VkaXQgPT0gdW5kZWZpbmVkIHx8IHRoaXMucmVjb3JkSW5kZXhUb0VkaXQgPT0gbnVsbCkge1xuICAgICAgZXNtID0gbmV3IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWwoKTtcbiAgICAgIHF0cldhZ2VMaXN0ID0gdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKT8ucXRyWWVhcldhZ2VMaXN0R2VuZXJpYztcbiAgICAgIGlmICh0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpLmRpc2FzdGVyQWN0aXZlRmxhZyAhPSAnMCcpIHtcbiAgICAgICAgaWYgKHByb2Nlc3N0eXBlID09PSAnYWljLXJlb3BlbicpIHtcbiAgICAgICAgICB0aGlzLmNsYWltVHlwZUR1YSA9ICcxJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmNsYWltVHlwZUR1YSA9IHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkuY2xhaW1UeXBlRHVhO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNsYWltVHlwZUR1YSA9ICcwJztcbiAgICAgIH0gICAgICBcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3JlY29yZEluZGV4VG9FZGl0JywgdGhpcy5yZWNvcmRJbmRleFRvRWRpdClcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpJywgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKSk7XG5cbiAgICAgIGVzbSA9IHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkuYnBFbXBMaXN0W3RoaXMucmVjb3JkSW5kZXhUb0VkaXRdO1xuICAgICAgcXRyV2FnZUxpc3Q9ZXNtLndhZ2VBbW91bnRBcnJheTtcbiAgICAgIHRoaXMuY3VzdG9tZXJOYW1lID0gZXNtLmVtcGxveWVyRGF0YS5kaXNwbGF5TmFtZTtcbiAgICAgIGlmKGVzbS5lbXBsb3llckRhdGEudHJhZGVOYW1lKXtcbiAgICAgICAgdGhpcy5hbGlhc05hbWUgPSBlc20uZW1wbG95ZXJEYXRhLnRyYWRlTmFtZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYWxpYXNOYW1lID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIGlmKGVzbS5vc2FCcEVtcGxveWVyRmxhZyl7XG4gICAgICAgIHRoaXMuaXNPc2FFbXBsb3llciA9IGVzbS5vc2FCcEVtcGxveWVyRmxhZztcbiAgICAgIH1cbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwiaXNPc2FFbXBsb3llciA9PT09PT09IFwiICwgdGhpcy5pc09zYUVtcGxveWVyKTtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwiZW1wbG95ZXJUeXBlID09PT09PT0gXCIgLCBlc20uZW1wbG95ZXJUeXBlKTtcbiAgICAgIHRoaXMuZW1wbG95ZXJUeXBlUHJlU2V0ID0gZXNtLmVtcGxveWVyVHlwZTtcbiAgICAgIHRoaXMubWFpbGluZ0FkZHJlc3NEaXNwbGF5ID0gZXNtLmVtcGxveWVyRGF0YS5tYWlsaW5nQWRkcmVzc0Rpc3BsYXk7XG4gICAgICB0aGlzLnNjaG9vbEZsYWcgPSBlc20uZW1wbG95ZXJEYXRhLnNjaG9vbEZsYWc7XG4gICAgICB0aGlzLnNwb3J0c0ZsYWcgPSBlc20uZW1wbG95ZXJEYXRhLnNwb3J0c0ZsYWc7XG4gICAgICBpZiAocHJvY2Vzc3R5cGUgPT09ICdhaWMtcmVvcGVuJykge1xuICAgICAgICB0aGlzLmNsYWltVHlwZUR1YSA9ICcxJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY2xhaW1UeXBlRHVhID0gdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKS5jbGFpbVR5cGVEdWE7XG4gICAgICB9XG4gICAgICB0aGlzLnNzblZhbGlkV29ya1NoYXJlID0gZXNtLmVtcGxveWVyRGF0YS5zc25WYWxpZFdvcmtTaGFyZTtcbiAgICAgIGlmKHRoaXMuaXNDU1IgPT09IHRydWUgJiYgZXNtLmVtcGxveWVyUHJvdmlkZWRXYWdlcyAmJiBlc20uZW1wbG95ZXJQcm92aWRlZFdhZ2VzLndhZ2VzTGlzdFF0cldpc2Upe1xuICAgICAgICB0aGlzLmVtcGxveWVyUHJvdmlkZWRXYWdlcyA9IGVzbS5lbXBsb3llclByb3ZpZGVkV2FnZXMud2FnZXNMaXN0UXRyV2lzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmdldFJlYXNvblNlcGVyYXRpb25CYXNlZE9uQ29uZGl0aW9uKHRoaXMuc2Nob29sRmxhZywgdGhpcy5zcG9ydHNGbGFnLCB0aGlzLmNsYWltVHlwZUR1YSwgdGhpcy5zc25WYWxpZFdvcmtTaGFyZSlcblxuICAgIHRoaXMuYmFzZVBlcmlvZFN0YXJ0RGF0ZSA9IHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkuYmFzZVBlcmlvZFN0YXJ0RGF0ZTtcbiAgICB0aGlzLmJhc2VQZXJpb2RFbmREYXRlID0gdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKS5iYXNlUGVyaW9kRW5kRGF0ZTtcbiAgICB0aGlzLmJwU3RhcnREYXRlVG9EaXNwbGF5ID0gbmV3IERhdGUodGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKS5icFN0YXJ0RGF0ZVRvRGlzcGxheSk7XG4gICAgdGhpcy5taW5XZWVrRm9yQ2hhcmdlYWJpbGl0eSA9IHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkubWluV2Vla0ZvckNoYXJnZWFiaWxpdHk7XG5cbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcInRoaXMubWluV29ya1N0YXJ0RGF0ZSBhcyBpbnB1dFwiLCB0aGlzLm1pbldvcmtTdGFydERhdGUpO1xuICAgIGlmKHRoaXMubWluV29ya1N0YXJ0RGF0ZSl7XG4gICAgICB0aGlzLmJwU3RhcnREYXRlVG9EaXNwbGF5ID0gdGhpcy5taW5Xb3JrU3RhcnREYXRlO1xuICAgIH0gZWxzZXtcbiAgICAgIHRoaXMubWluV29ya1N0YXJ0RGF0ZSA9IHRoaXMuZG9iO1xuICAgIH1cbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcInRoaXMubWluV29ya1N0YXJ0RGF0ZSBwb3N0IHNldHVwIFwiLCB0aGlzLm1pbldvcmtTdGFydERhdGUpO1xuICAgIHRoaXMuY2xhaW1zU2VydmljZS5sb2FkTWFzdGVyRGF0YSgpO1xuICAgIHRoaXMuYWRkRW1wbG95ZXJGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAnZW1wbG95ZXJUeXBlJzogW2VzbS5lbXBsb3llclR5cGUgIT0gbnVsbCA/IGVzbS5lbXBsb3llclR5cGUgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKCF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSldLFxuICAgICAgJ2VtcGxveWVyTmFtZSc6IFtlc20uZW1wbG95ZXJOYW1lICE9IG51bGwgPyBlc20uZW1wbG95ZXJOYW1lIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICghdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ1JFRycpKV0sXG4gICAgICAnZmVkRW1wbG95ZXJOYW1lJzogW2VzbS5mZWRFbXBsb3llck5hbWUgIT0gbnVsbCA/IGVzbS5mZWRFbXBsb3llck5hbWUgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnRkVEJykpXSxcbiAgICAgICdlbXBsb3llclRlbGVwaG9uZU51bWJlcic6IFtlc20uZW1wbG95ZXJUZWxlcGhvbmVOdW1iZXIgIT0gbnVsbCA/IGVzbS5lbXBsb3llclRlbGVwaG9uZU51bWJlciA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAoKCh0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMud29ya0ZsYWcudmFsdWUgPT09ICdZJykgfHwgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpICYmIHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnUkVHJykpXSxcbiAgICAgICdlbmREYXRlJzogW2VzbS5lbmREYXRlICE9IG51bGwgPyBlc20uZW5kRGF0ZSA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAoKCh0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMud29ya0ZsYWcudmFsdWUgPT09ICdZJykgfHwgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpICYmIHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnUkVHJykpXSxcbiAgICAgICdzdGFydERhdGUnOiBbZXNtLnN0YXJ0RGF0ZSAhPSBudWxsID8gZXNtLnN0YXJ0RGF0ZSA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAoKCh0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMud29ya0ZsYWcudmFsdWUgPT09ICdZJykgfHwgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpICYmIHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnUkVHJykpXSxcbiAgICAgICdqb2JUaWxlT3JQb3NpdGlvbic6IFtlc20uam9iVGlsZU9yUG9zaXRpb24gIT0gbnVsbCA/IGVzbS5qb2JUaWxlT3JQb3NpdGlvbiA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAoKHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy53b3JrRmxhZy52YWx1ZSA9PT0gJ1knKSB8fCAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcikgJiYgdGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdSRUcnKV0sXG4gICAgICAncmVhc29uU2VwYXJhdGlvbic6IFtlc20ucmVhc29uU2VwYXJhdGlvbiAhPSBudWxsID8gZXNtLnJlYXNvblNlcGFyYXRpb24gOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy53b3JrRmxhZy52YWx1ZSA9PT0gJ1knKSB8fCAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiAodGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdSRUcnIHx8IHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnRkVEJykpXSxcbiAgICAgICdkaXNjaGFyZ2VEZXRhaWwnOiBbZXNtLmRpc2NoYXJnZURldGFpbCAhPSBudWxsID8gZXNtLmRpc2NoYXJnZURldGFpbCA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAoKCgodGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLndvcmtGbGFnLnZhbHVlID09PSAnWScpIHx8ICghdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcikpICYmIHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlIT0nTUlMJyAmJiB0aGlzLnJlYXNvblNlcGFyYXRpb24udmFsdWUgJiYgdGhpcy5yZWFzb25TZXBhcmF0aW9uLnZhbHVlLnZhbHVlID09PSAnRENGSScpKSldLFxuICAgICAgJ3ZvbFF1aXREZXRhaWxzJzogW2VzbS52b2xRdWl0RGV0YWlscyAhPSBudWxsID8gZXNtLnZvbFF1aXREZXRhaWxzIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICgoKCh0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMud29ya0ZsYWcudmFsdWUgPT09ICdZJykgfHwgKCF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSkgJiYgdGhpcy5lbXBsb3llclR5cGUudmFsdWUhPSdNSUwnICYmIHRoaXMucmVhc29uU2VwYXJhdGlvbi52YWx1ZSAmJiB0aGlzLnJlYXNvblNlcGFyYXRpb24udmFsdWUudmFsdWUgPT09ICdWT0xRJykpKV0sXG4gICAgICAncGF5UmF0ZSc6IFtlc20ucGF5UmF0ZSAhPSBudWxsID8gZXNtLnBheVJhdGUgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKCh0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMud29ya0ZsYWcudmFsdWUgPT09ICdZJykgfHwgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpICYmIHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnUkVHJyldLFxuICAgICAgJ3BheVJhdGVGcmVxdWVuY3knOiBbZXNtLnBheVJhdGVGcmVxdWVuY3kgIT0gbnVsbCA/IGVzbS5wYXlSYXRlRnJlcXVlbmN5IDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICgoKHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy53b3JrRmxhZy52YWx1ZSA9PT0gJ1knKSB8fCAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcikgJiYgKHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnUkVHJyB8fCB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ0ZFRCcpKSldLFxuICAgICAgJ2hyc1dlZWsnOiBbZXNtLmhyc1dlZWsgIT0gbnVsbCA/IGVzbS5ocnNXZWVrIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmN1cnJlbnRTdGF0ZSA9PT0gJ0NUJyAmJiAoKCh0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMud29ya0ZsYWcudmFsdWUgPT09ICdZJykgfHwgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpICYmICh0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ1JFRycgfHwgdGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdGRUQnKSkpKV0sXG4gICAgICAnc2hpZnQnOiBbZXNtLnNoaWZ0ICE9IG51bGwgPyBlc20uc2hpZnQgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuY3VycmVudFN0YXRlID09PSAnQ1QnICYmICgoKHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy53b3JrRmxhZy52YWx1ZSA9PT0gJ1knKSB8fCAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcikgJiYgKHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnUkVHJyB8fCB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ0ZFRCcpKSkpXSxcbiAgICAgICd3b3JrV2Vlayc6IFtlc20ud29ya1dlZWsgIT0gbnVsbCA/IGVzbS53b3JrV2VlayA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5jdXJyZW50U3RhdGUgPT09ICdDVCcgJiYgKCgodGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLndvcmtGbGFnLnZhbHVlID09PSAnWScpIHx8ICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSAmJiAodGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdSRUcnIHx8IHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnRkVEJykpKSldLFxuICAgICAgJ2RpZFdvcmsnOiBbZXNtLmRpZFdvcmsgIT0gbnVsbCA/IGVzbS5kaWRXb3JrIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmN1cnJlbnRTdGF0ZSA9PT0gJ0NUJyAmJiAoKCh0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMud29ya0ZsYWcudmFsdWUgPT09ICdZJykgfHwgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpICYmICh0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ1JFRycgfHwgdGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdGRUQnKSkpKV0sXG4gICAgICAnc2VwYXJhdGlvbkRhdGVGbGFnJzogW2VzbS5zZXBhcmF0aW9uRGF0ZUZsYWcgIT0gbnVsbCA/IGVzbS5zZXBhcmF0aW9uRGF0ZUZsYWcgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuY3VycmVudFN0YXRlID09PSAnQ1QnICYmICgoKHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy53b3JrRmxhZy52YWx1ZSA9PT0gJ1knKSB8fCAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcikgJiYgKHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnUkVHJyB8fCB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ0ZFRCcpKSkpXSxcbiAgICAgICdzZXBhcmF0aW9uRGF0ZSc6ICBbZXNtLnNlcGFyYXRpb25EYXRlICE9IG51bGwgPyBlc20uc2VwYXJhdGlvbkRhdGUgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuY3VycmVudFN0YXRlID09PSAnQ1QnICYmICgoKHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy53b3JrRmxhZy52YWx1ZSA9PT0gJ1knKSB8fCAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcikgJiYgKHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnUkVHJyB8fCB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ0ZFRCcpICYmIHRoaXMuc2VwYXJhdGlvbkRhdGVGbGFnLnZhbHVlPT09J1knKSkpXSxcbiAgICAgICdwZW5zaW9uRmxhZyc6IFtlc20ucGVuc2lvbkZsYWcgIT0gbnVsbCA/IGVzbS5wZW5zaW9uRmxhZyA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLndvcmtGbGFnLnZhbHVlID09PSAnWScgJiYgdGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdSRUcnKSldLFxuICAgICAgJ3BlbnNpb25SZWN2RGF0ZSc6IFtlc20ucGVuc2lvblJlY3ZEYXRlICE9IG51bGwgPyBlc20ucGVuc2lvblJlY3ZEYXRlIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMud29ya0ZsYWcudmFsdWUgPT09ICdZJyAmJiB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ1JFRycgJiYgdGhpcy5wZW5zaW9uRmxhZy52YWx1ZSA9PT0gJ1knICYmIHRoaXMuY3VycmVudFN0YXRlICE9ICdNRScpKV0sXG4gICAgICAncmVnUGVuc2lvbkZsYWcnOiBbZXNtLnJlZ1BlbnNpb25GbGFnICE9IG51bGwgPyBlc20ucmVnUGVuc2lvbkZsYWcgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKCF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnUkVHJykpXSxcbiAgICAgICdyZWdQZW5zaW9uUmVjdkRhdGUnOltlc20ucmVnUGVuc2lvblJlY3ZEYXRlICE9IG51bGwgPyBlc20ucmVnUGVuc2lvblJlY3ZEYXRlOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKCF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnUkVHJyAmJiB0aGlzLnJlZ1BlbnNpb25GbGFnLnZhbHVlID09PSAnWScpKV0sICAgICAgXG4gICAgICAncmVnRGlzc21pc2FsRmxhZyc6IFtlc20ucmVnRGlzc21pc2FsRmxhZyAhPSBudWxsID8gZXNtLnJlZ0Rpc3NtaXNhbEZsYWcgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuY3VycmVudFN0YXRlID09PSAnQ1QnICYmICgoKHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy53b3JrRmxhZy52YWx1ZSA9PT0gJ1knKSB8fCAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcikgJiYgdGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdSRUcnICkpKV0sXG4gICAgICAncmVnRGlzc21pc2FsQ2hlY2tCb3gnOiBbZXNtLnJlZ0Rpc3NtaXNhbENoZWNrQm94ICE9IG51bGwgPyBlc20ucmVnRGlzc21pc2FsQ2hlY2tCb3ggOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuY3VycmVudFN0YXRlID09PSAnQ1QnICYmICgoKHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy53b3JrRmxhZy52YWx1ZSA9PT0gJ1knKSB8fCAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcikgJiYgKHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnUkVHJykpKSldLFxuICAgICAgJ3JlZ0xhaWRPZmZGbGFnJzogW2VzbS5yZWdMYWlkT2ZmRmxhZyAhPSBudWxsID8gZXNtLnJlZ0xhaWRPZmZGbGFnIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmN1cnJlbnRTdGF0ZSA9PT0gJ0NUJyAmJiAoKCh0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMud29ya0ZsYWcudmFsdWUgPT09ICdZJykgfHwgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpICYmIHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnUkVHJyApKSldLFxuICAgICAgJ2ZlZERpc3NtaXNhbEZsYWcnOiBbZXNtLmZlZERpc3NtaXNhbEZsYWcgIT0gbnVsbCA/IGVzbS5mZWREaXNzbWlzYWxGbGFnIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmN1cnJlbnRTdGF0ZSA9PT0gJ0NUJyAmJiAoKCh0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMud29ya0ZsYWcudmFsdWUgPT09ICdZJykgfHwgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpICYmIHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnRkVEJyApKSldLFxuICAgICAgJ2ZlZERpc3NtaXNhbENoZWNrQm94JzogW2VzbS5mZWREaXNzbWlzYWxDaGVja0JveCAhPSBudWxsID8gZXNtLmZlZERpc3NtaXNhbENoZWNrQm94IDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmN1cnJlbnRTdGF0ZSA9PT0gJ0NUJyAmJiAoKCh0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMud29ya0ZsYWcudmFsdWUgPT09ICdZJykgfHwgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpICYmICh0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ0ZFRCcpKSkpXSxcbiAgICAgICdmZWRMYWlkT2ZmRmxhZyc6IFtlc20uZmVkTGFpZE9mZkZsYWcgIT0gbnVsbCA/IGVzbS5mZWRMYWlkT2ZmRmxhZyA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5jdXJyZW50U3RhdGUgPT09ICdDVCcgJiYgKCgodGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLndvcmtGbGFnLnZhbHVlID09PSAnWScpIHx8ICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSAmJiB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ0ZFRCcgKSkpXSxcbiAgICAgICdpc0NsbXRQYWlkV2hpbGVMb3cnOiBbZXNtLmlzQ2xtdFBhaWRXaGlsZUxvdyAhPSBudWxsID8gZXNtLmlzQ2xtdFBhaWRXaGlsZUxvdyA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAoKHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy53b3JrRmxhZy52YWx1ZSA9PT0gJ1knKSB8fCAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcikgJiYgdGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdSRUcnICYmIHRoaXMuY3VycmVudFN0YXRlICE9ICdDVCcpIF0sXG4gICAgICAnaGFzU2hvcnRUZXJtRGlzYWJpbGl0eSc6IFtlc20uaGFzU2hvcnRUZXJtRGlzYWJpbGl0eSAhPSBudWxsID8gZXNtLmhhc1Nob3J0VGVybURpc2FiaWxpdHkgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKCh0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMud29ya0ZsYWcudmFsdWUgPT09ICdZJykgfHwgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpICYmIHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnUkVHJyAmJiB0aGlzLmN1cnJlbnRTdGF0ZSA9PT0gJ01FJyldLFxuICAgICAgJ2hhc1JlY3ZSZW11bmVyYXRpb24nOiBbZXNtLmhhc1JlY3ZSZW11bmVyYXRpb24gIT0gbnVsbCA/IGVzbS5oYXNSZWN2UmVtdW5lcmF0aW9uIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICgodGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLndvcmtGbGFnLnZhbHVlID09PSAnWScpIHx8ICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSAmJiB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ1JFRycgJiYgdGhpcy5jdXJyZW50U3RhdGUgPT09ICdNRScpXSxcbiAgICAgICdyZW11bmVyYXRpb25UeXBlcyc6IFtlc20ucmVtdW5lcmF0aW9uVHlwZXMgIT0gbnVsbCA/IGVzbS5yZW11bmVyYXRpb25UeXBlcyA6IG51bGxdLFxuICAgICAgJ3ZhY2F0aW9uJzogW2VzbS52YWNhdGlvbiAhPSBudWxsID8gZXNtLnZhY2F0aW9uIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICgodGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLndvcmtGbGFnLnZhbHVlID09PSAnWScgJiYgdGhpcy5zY2hvb2xGbGFnID09PScxJykgfHwgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpICYmIHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnUkVHJyAmJiB0aGlzLmN1cnJlbnRTdGF0ZSA9PT0gJ01FJyldLFxuICAgICAgXG4gICAgICAnZ3Jvc3NXYWdlcyc6IFtlc20uZ3Jvc3NXYWdlcyAhPSBudWxsID8gZXNtLmdyb3NzV2FnZXMgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMudmFsdWUgfHwgdGhpcy5pc09zYUVtcGxveWVyID09PScxJykgJiYgdGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdSRUcnICYmICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMuY3VycmVudFN0YXRlICE9ICdNUycpXSxcbiAgICAgIC8vJ3BhaWRCeSc6IFtlc20ucGFpZEJ5ICE9IG51bGwgPyBlc20ucGFpZEJ5IDogbnVsbCxBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuaXNDbG10UGFpZFdoaWxlTG93LnZhbHVlPT09J1knKSldLFxuICAgICAgJ3BheW1lbnRUeXBlJzogW2VzbS5wYXltZW50VHlwZSAhPSBudWxsID8gZXNtLnBheW1lbnRUeXBlIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzLnZhbHVlICYmIHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnUkVHJyAmJiAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcikpXSxcbiAgICAgICdkb2NzUmVjZWl2ZWQnOiBbZXNtLmRvY3NSZWNlaXZlZCAhPSBudWxsID8gZXNtLmRvY3NSZWNlaXZlZCA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZSAmJiB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ1JFRycgJiYgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpKV0sXG4gICAgICAnb3RoZXJTU05GbGFnJzogW2VzbS5vdGhlclNTTkZsYWcgIT0gbnVsbCA/IGVzbS5vdGhlclNTTkZsYWcgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMudmFsdWUgJiYgdGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdSRUcnICYmICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSldLFxuICAgICAgJ290aGVyU1NOJzogW2VzbS5vdGhlclNTTiAhPSBudWxsID8gZXNtLm90aGVyU1NOIDogbnVsbCAsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAoIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdSRUcnICYmIHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMudmFsdWUgJiYgdGhpcy5vdGhlclNTTkZsYWcudmFsdWUgPT09ICdZJykpXSxcbiAgICAgICdvdGhlck5hbWVGbGFnJzogW2VzbS5vdGhlck5hbWVGbGFnICE9IG51bGwgPyBlc20ub3RoZXJOYW1lRmxhZyA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZSAmJiB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ1JFRycgJiYgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpKV0sXG4gICAgICAnb3RoZXJOYW1lJzogW2VzbS5vdGhlck5hbWUgIT0gbnVsbCA/IGVzbS5vdGhlck5hbWUgOiBudWxsICwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICghdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ1JFRycgJiYgdGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZSAmJiB0aGlzLm90aGVyTmFtZUZsYWcudmFsdWUgPT09ICdZJykpXSxcbiAgICAgIC8vJ2RvaW5nQnVzaW5lc3NBcyc6IFtlc20uZG9pbmdCdXNpbmVzc0FzICE9IG51bGwgPyBlc20uZG9pbmdCdXNpbmVzc0FzIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzLnZhbHVlICYmICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICAmJiB0aGlzLndvcmtTdGF0ZS52YWx1ZSAmJiB0aGlzLndvcmtTdGF0ZS52YWx1ZS52YWx1ZT09PSdNUycpKV0sXG4gICAgICAnd29ya1N0YXRlJzogW2VzbS53b3JrU3RhdGUgIT0gbnVsbCA/IGVzbS53b3JrU3RhdGUgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKCF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnUkVHJykpXSxcbiAgICAgICd3b3JrQ2l0eSc6IFtlc20ud29ya0NpdHkgIT0gbnVsbCA/IGVzbS53b3JrQ2l0eSA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAoIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdSRUcnKSldLFxuICAgICAgLy8nbnVtYmVyRW1wbG95ZWQnOiBbZXNtLm51bWJlckVtcGxveWVkICE9IG51bGwgPyBlc20ubnVtYmVyRW1wbG95ZWQgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMudmFsdWUgJiYgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpKV0sXG4gICAgICAnd29ya1R5cGUnOiBbZXNtLndvcmtUeXBlICE9IG51bGwgPyBlc20ud29ya1R5cGUgOiBudWxsXSxcbiAgICAgIC8vICdmZWluJzogW2VzbS5mZWluICE9IG51bGwgPyBlc20uZmVpbiA6IG51bGxdLFxuICAgICAvLyAnaGlyZWRCeSc6IFtlc20uaGlyZWRCeSAhPSBudWxsID8gZXNtLmhpcmVkQnkgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMudmFsdWUgJiYgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgICYmIHRoaXMud29ya1N0YXRlLnZhbHVlICYmIHRoaXMud29ya1N0YXRlLnZhbHVlLnZhbHVlPT09J01TJykpXSxcbiAgICAgIC8vJ2J1c2luZXNzT3duZXInOiBbZXNtLmJ1c2luZXNzT3duZXIgIT0gbnVsbCA/IGVzbS5idXNpbmVzc093bmVyIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzLnZhbHVlICYmICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICAmJiB0aGlzLndvcmtTdGF0ZS52YWx1ZSAmJiB0aGlzLndvcmtTdGF0ZS52YWx1ZS52YWx1ZT09PSdNUycpKV0sXG4gICAgICAvLydidXNpbmVzc05hdHVyZSc6IFtlc20uYnVzaW5lc3NOYXR1cmUgIT0gbnVsbCA/IGVzbS5idXNpbmVzc05hdHVyZSA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZSAmJiB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ1JFRycgICYmICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSldLFxuICAgICAgJ3dvcmtGbGFnJzogW2VzbS53b3JrRmxhZyAhPSBudWxsID8gZXNtLndvcmtGbGFnIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpXSxcbiAgICAgIC8vJ3F1aXRyZWFzb24nOiBbZXNtLnF1aXRyZWFzb24gIT0gbnVsbCA/IGVzbS5xdWl0cmVhc29uIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICgoKCh0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMud29ya0ZsYWcudmFsdWUgPT09ICdZJykgfHwgKCF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSkgJiYgdGhpcy5yZWFzb25TZXBhcmF0aW9uLnZhbHVlICYmIHRoaXMucmVhc29uU2VwYXJhdGlvbi52YWx1ZS52YWx1ZSA9PT0gJ1ZPTFEnKSkpXSxcbiAgICAgICdkaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcyc6IFtlc20uZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMgIT0gbnVsbCA/IGVzbS5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcyA6IG51bGxdLFxuICAgICAgJ2ZpY0Rlc3RpbmF0aW9uQ29kZSc6IFtlc20uZmljRGVzdGluYXRpb25Db2RlICE9IG51bGwgPyBlc20uZmljRGVzdGluYXRpb25Db2RlIDogbnVsbF0sXG4gICAgICAnZmljQ29kZSc6IFtlc20uZmljQ29kZSAhPSBudWxsID8gZXNtLmZpY0NvZGUgOiBudWxsXSxcbiAgICAgICdmaWNEZXN0aW5hdGlvbk5hbWUnOiBbZXNtLmZpY0Rlc3RpbmF0aW9uTmFtZSAhPSBudWxsID8gZXNtLmZpY0Rlc3RpbmF0aW9uTmFtZSA6IG51bGxdLFxuICAgICAgJ2ZpY0Rlc3RpbmF0aW9uSWQnOiBbZXNtLmZpY0Rlc3RpbmF0aW9uSWQgIT0gbnVsbCA/IGVzbS5maWNEZXN0aW5hdGlvbklkIDogbnVsbF0sXG4gICAgICAnc2ZFaWdodGZsYWcnOiBbZXNtLnNmRWlnaHRmbGFnICE9IG51bGwgPyBlc20uc2ZFaWdodGZsYWcgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnRkVEJykpXSxcbiAgICAgICdmZWRXb3JrQ2l0eSc6IFtlc20uZmVkV29ya0NpdHkgIT0gbnVsbCA/IGVzbS5mZWRXb3JrQ2l0eSA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdGRUQnKSldLFxuICAgICAgJ2ZlZFdvcmtTdGF0ZSc6IFtlc20uZmVkV29ya1N0YXRlICE9IG51bGwgPyBlc20uZmVkV29ya1N0YXRlIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ0ZFRCcpKV0sXG4gICAgICAnZmVkV29ya0NvdW50cnknOiBbZXNtLmZlZFdvcmtDb3VudHJ5ICE9IG51bGwgPyBlc20uZmVkV29ya0NvdW50cnkgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnRkVEJykpXSxcbiAgICAgICdzdGFydERhdGVGZWQnOiBbZXNtLnN0YXJ0RGF0ZUZlZCAhPSBudWxsID8gZXNtLnN0YXJ0RGF0ZUZlZCA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdGRUQnKSldLFxuICAgICAgJ2VuZERhdGVGZWQnOiBbZXNtLmVuZERhdGVGZWQgIT0gbnVsbCA/IGVzbS5lbmREYXRlRmVkIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ0ZFRCcpKV0sXG4gICAgICAnZmVkSm9iVGlsZU9yUG9zaXRpb24nOiBbZXNtLmZlZEpvYlRpbGVPclBvc2l0aW9uICE9IG51bGwgPyBlc20uZmVkSm9iVGlsZU9yUG9zaXRpb24gOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnRkVEJykpXSxcbiAgICAgIC8vJ2NsYWltYW50RW1wbG95ZWRXaXRoRW1wcic6IFtlc20uY2xhaW1hbnRFbXBsb3llZFdpdGhFbXByICE9IG51bGwgPyBlc20uY2xhaW1hbnRFbXBsb3llZFdpdGhFbXByIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ0ZFRCcpKV0sXG4gICAgICAncGVyZm9ybWVkU2VydmljZSc6IFtlc20ucGVyZm9ybWVkU2VydmljZSAhPSBudWxsID8gZXNtLnBlcmZvcm1lZFNlcnZpY2UgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnRkVEJykpXSxcbiAgICAgICdmZWRQZW5zaW9uRmxhZyc6IFtlc20uZmVkUGVuc2lvbkZsYWcgIT0gbnVsbCA/IGVzbS5mZWRQZW5zaW9uRmxhZyA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdGRUQnKSldLFxuICAgICAgJ2ZlZFBlbnNpb25SZWN2RGF0ZSc6W2VzbS5mZWRQZW5zaW9uUmVjdkRhdGUgIT0gbnVsbCA/IGVzbS5mZWRQZW5zaW9uUmVjdkRhdGU6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdGRUQnICYmIHRoaXMuZmVkUGVuc2lvbkZsYWcudmFsdWUgPT09ICdZJyAgJiYgdGhpcy5jdXJyZW50U3RhdGUgIT0gJ01FJykpXSxcbiAgICAgICdzZXZQYXlGbGFnJzogW2VzbS5zZXZQYXlGbGFnICE9IG51bGwgPyBlc20uc2V2UGF5RmxhZyA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdGRUQnICYmIHRoaXMuY3VycmVudFN0YXRlID09PSAnTUUnKSldLFxuICAgICAgJ3dlZWtseUFtb3VudCc6IFtlc20uc2V2UGF5RmxhZyAhPSBudWxsID8gZXNtLndlZWtseUFtb3VudCA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdGRUQnICYmIHRoaXMuc2V2UGF5RmxhZy52YWx1ZSA9PT0gJ1knKSldLFxuICAgICAgJ251bWJlck9mV2Vla3MnOiBbZXNtLnNldlBheUZsYWcgIT0gbnVsbCA/IGVzbS5udW1iZXJPZldlZWtzIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ0ZFRCcgJiYgdGhpcy5zZXZQYXlGbGFnLnZhbHVlID09PSAnWScpKV0sXG4gICAgICAnc2V2UGF5QW1vdW50JzogW2VzbS5zZXZQYXlGbGFnICE9IG51bGwgPyBlc20uc2V2UGF5QW1vdW50IDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ0ZFRCcgJiYgdGhpcy5zZXZQYXlGbGFnLnZhbHVlID09PSAnWScpKV0sXG4gICAgICAnc2V2UGF5U3RhcnREYXRlJzogW2VzbS5zZXZQYXlTdGFydERhdGUgIT0gbnVsbCA/IGVzbS5zZXZQYXlTdGFydERhdGUgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnRkVEJyAmJiB0aGlzLnNldlBheUZsYWcudmFsdWUgPT09ICdZJykpXSxcbiAgICAgICdzZXZQYXlFbmREYXRlJzogW2VzbS5zZXZQYXlFbmREYXRlICE9IG51bGwgPyBlc20uc2V2UGF5RW5kRGF0ZSA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdGRUQnICYmIHRoaXMuc2V2UGF5RmxhZy52YWx1ZSA9PT0gJ1knKSldLFxuICAgICAgJ3NldlBheVBheW1lbnRTdGFydERhdGUnOiBbZXNtLnNldlBheVBheW1lbnRTdGFydERhdGUgIT0gbnVsbCA/IGVzbS5zZXZQYXlQYXltZW50U3RhcnREYXRlIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ0ZFRCcgJiYgdGhpcy5zZXZQYXlGbGFnLnZhbHVlID09PSAnWScpKV0sXG4gICAgICAncmVnRW1wbG95ZXJGb3VuZCc6IFtlc20ucmVnRW1wbG95ZXJGb3VuZCAhPSBudWxsID8gZXNtLnJlZ0VtcGxveWVyRm91bmQgOiBudWxsXSxcbiAgICAgICdlbXBsb3llcklkJzogW2VzbS5lbXBsb3llcklkICE9IG51bGwgPyBlc20uZW1wbG95ZXJJZCA6IG51bGxdLFxuICAgICAgJ3NlcnZpY2VCcmFuY2gnOiBbZXNtLnNlcnZpY2VCcmFuY2ggIT0gbnVsbCA/IGVzbS5zZXJ2aWNlQnJhbmNoIDogbnVsbF0sXG4gICAgICAnc3RhcnREYXRlTWlsJzogW2VzbS5zdGFydERhdGVNaWwgIT0gbnVsbCA/IGVzbS5zdGFydERhdGVNaWwgOiBudWxsXSxcbiAgICAgICdlbmREYXRlTWlsJzogW2VzbS5lbmREYXRlTWlsICE9IG51bGwgPyBlc20uZW5kRGF0ZU1pbCA6IG51bGxdLFxuICAgICAgJ2RkMjE0RmxhZyc6IFtlc20uZGQyMTRGbGFnICE9IG51bGwgPyBlc20uZGQyMTRGbGFnIDogbnVsbF0sXG4gICAgICAnbGFzdFBheUdyYWRlJzogW2VzbS5sYXN0UGF5R3JhZGUgIT0gbnVsbCA/IGVzbS5sYXN0UGF5R3JhZGUgOiBudWxsXSxcbiAgICAgICdsYXN0ZHV0eSc6IFtlc20ubGFzdGR1dHkgIT0gbnVsbCA/IGVzbS5sYXN0ZHV0eSA6IG51bGxdLFxuICAgICAgJ3BsYWNlU2VwYXJhdGVkJzogW2VzbS5wbGFjZVNlcGFyYXRlZCAhPSBudWxsID8gZXNtLnBsYWNlU2VwYXJhdGVkIDogbnVsbF0sXG4gICAgICAnbm9MZWF2ZURheXMnOiBbZXNtLm5vTGVhdmVEYXlzICE9IG51bGwgPyBlc20ubm9MZWF2ZURheXMgOiBudWxsXSxcbiAgICAgICdjb21wbGV0ZWRGdWxsVGVybUZsYWcnOiBbZXNtLmNvbXBsZXRlZEZ1bGxUZXJtRmxhZyAhPSBudWxsID8gZXNtLmNvbXBsZXRlZEZ1bGxUZXJtRmxhZyA6IG51bGxdLFxuICAgICAgJ3Jlc2VydmVPckd1YXJkRmxhZyc6IFtlc20ucmVzZXJ2ZU9yR3VhcmRGbGFnICE9IG51bGwgPyBlc20ucmVzZXJ2ZU9yR3VhcmRGbGFnIDogbnVsbF0sXG4gICAgICAnbWlsUGVuc2lvbkZsYWcnOiBbZXNtLm1pbFBlbnNpb25GbGFnICE9IG51bGwgPyBlc20ubWlsUGVuc2lvbkZsYWcgOiBudWxsXSxcbiAgICAgICdtaWxQZW5zaW9uUmVjdkRhdGUnOltlc20ubWlsUGVuc2lvblJlY3ZEYXRlICE9IG51bGwgPyBlc20ubWlsUGVuc2lvblJlY3ZEYXRlIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ01JTCcgJiYgdGhpcy5taWxQZW5zaW9uRmxhZy52YWx1ZSA9PT0gJ1knICYmIHRoaXMuY3VycmVudFN0YXRlICE9ICdNRScpKV0sXG4gICAgICAnYWRkcmVzc0xpbmUxJzogW2VzbS5hZGRyZXNzTGluZTEgIT0gbnVsbCA/IGVzbS5hZGRyZXNzTGluZTEgOiBudWxsXSxcbiAgICAgICdhZGRyZXNzTGluZTInOiBbZXNtLmFkZHJlc3NMaW5lMiAhPSBudWxsID8gZXNtLmFkZHJlc3NMaW5lMiA6IG51bGxdLFxuICAgICAgJ2FkZHJlc3NMaW5lMyc6IFtlc20uYWRkcmVzc0xpbmUzICE9IG51bGwgPyBlc20uYWRkcmVzc0xpbmUzIDogbnVsbF0sXG4gICAgICAncmVzZXJ2ZUJyYW5jaCc6W2VzbS5yZXNlcnZlQnJhbmNoICE9IG51bGwgPyBlc20ucmVzZXJ2ZUJyYW5jaCA6IG51bGxdLFxuICAgICAgJ3N0YXJ0RGF0ZVJlc2VydmUnOltlc20uc3RhcnREYXRlUmVzZXJ2ZSAhPSBudWxsID8gZXNtLnN0YXJ0RGF0ZVJlc2VydmUgOiBudWxsXSxcbiAgICAgICdlbmREYXRlUmVzZXJ2ZSc6W2VzbS5lbmREYXRlUmVzZXJ2ZSAhPSBudWxsID8gZXNtLmVuZERhdGVSZXNlcnZlIDogbnVsbF0sXG4gICAgICAnZGQyMTRGaWxlJzpbZXNtLmRkMjE0RmlsZSAhPSBudWxsID8gZXNtLmRkMjE0RmlsZSA6IG51bGxdLFxuICAgICAgJ2FkZHJlc3MnOltlc20uYWRkcmVzcyAhPSBudWxsID8gZXNtLmFkZHJlc3MgOiBudWxsXSxcbiAgICAgIHdhZ2VBbW91bnRBcnJheTogdGhpcy5mb3JtQnVpbGRlci5hcnJheShbXSksXG4gICAgICB0ZXN0RW1wIDogW2VzbS5lbXBsb3llclByb3ZpZGVkV2FnZXMgJiYgZXNtLmVtcGxveWVyUHJvdmlkZWRXYWdlcy53YWdlc0xpc3RRdHJXaXNlICE9IG51bGwgPyBlc20uZW1wbG95ZXJQcm92aWRlZFdhZ2VzLndhZ2VzTGlzdFF0cldpc2UgOiBudWxsXSxcbiAgICAgICdvc2FCcEVtcGxveWVyRmxhZyc6W2VzbS5vc2FCcEVtcGxveWVyRmxhZyAhPW51bGwgPyBlc20ub3NhQnBFbXBsb3llckZsYWcgOiBcIjBcIl0sXG4gICAgICAnZGlzcGxheVNlYXNvbmFsRW1wJzpbZXNtLmRpc3BsYXlTZWFzb25hbEVtcCAhPSBudWxsID8gZXNtLmRpc3BsYXlTZWFzb25hbEVtcCA6IHRydWVdLFxuICAgICAgJ3NjaG9vbEZsYWdFbXAnOiBbZXNtLmVtcGxveWVyRGF0YSAhPSBudWxsICYmIGVzbS5lbXBsb3llckRhdGEuc2Nob29sRmxhZyAhPW51bGwgPyBlc20uZW1wbG95ZXJEYXRhLnNjaG9vbEZsYWcgOiBcIjBcIl1cbiAgICB9KTtcblxuICAgIGlmKGVzbS5hZGRyZXNzPy5zdGF0ZT8udmFsdWUgPT09IG51bGwgJiYgZXNtLmFkZHJlc3M/LnN0YXRlPy50ZXh0ID09PSBudWxsKXtcbiAgICAgIGVzbS5hZGRyZXNzLnN0YXRlID0gbnVsbDtcbiAgICB9XG4gICAgaWYoZXNtLmFkZHJlc3M/LmNvdW50cnk/LnZhbHVlID09PSBudWxsICYmIGVzbS5hZGRyZXNzPy5jb3VudHJ5Py50ZXh0ID09PSBudWxsKXtcbiAgICAgIGVzbS5hZGRyZXNzLmNvdW50cnkgPSBudWxsO1xuICAgIH1cblxuICAgIGlmKHRoaXMuY3VycmVudFN0YXRlID09ICdNUycpe1xuICAgICAgdGhpcy5lbXBsb3llclR5cGUuc2V0VmFsdWUodGhpcy5lbXBsb3llclR5cGVQcmVTZXQpO1xuICAgIH1cbiAgICB0aGlzLnNldFJlcXVpcmVkVmFsaWRhdGlvbigpOyBcbiAgICBcbiAgICB0aGlzLnJlYXNvblNlcGFyYXRpb25WYWx1ZSA9IGVzbS5yZWFzb25TZXBhcmF0aW9uPy52YWx1ZTtcbiAgICBsZXQgZW1wU3RhdCA9IHRoaXMuZW1wbG95bWVudFN0YXR1c09wdGlvbnNBbGwuZmlsdGVyKHN0YXQgPT4gc3RhdC52YWx1ZSA9PSBlc20ucmVhc29uU2VwYXJhdGlvbj8udmFsdWUpWzBdO1xuICAgIHRoaXMucmVhc29uU2VwYXJhdGlvbi5zZXRWYWx1ZShlbXBTdGF0KTtcblxuICAgIGlmKCF0aGlzLnBheVJhdGVGcmVxdWVuY3kudmFsdWUpeyAgICAgIFxuICAgICAgaWYodGhpcy5jdXJyZW50U3RhdGUgPT09ICdDVCcpe1xuICAgICAgICB0aGlzLnBheVJhdGVGcmVxdWVuY3kuc2V0VmFsdWUodGhpcy5wYXlSYXRlT3B0aW9ucy5maWx0ZXIocCA9PiBwLnRleHQ9PSdIb3VyJylbMF0pO1xuICAgICAgfWVsc2V7XG4gICAgICAgIHRoaXMucGF5UmF0ZUZyZXF1ZW5jeS5wYXRjaFZhbHVlKHRoaXMucGF5UmF0ZU9wdGlvbnMuZmlsdGVyKHAgPT4gcC50ZXh0PT0naG91cicpWzBdKTtcbiAgICAgIH1cbiAgICB9ZWxzZXtcbiAgICAgIGlmKHRoaXMuY3VycmVudFN0YXRlID09PSAnQ1QnKXtcbiAgICAgICAgdGhpcy5wYXlSYXRlRnJlcXVlbmN5LnNldFZhbHVlKHRoaXMucGF5UmF0ZU9wdGlvbnMuZmlsdGVyKHAgPT4gcC52YWx1ZT09ZXNtLnBheVJhdGVGcmVxdWVuY3k/LnZhbHVlKVswXSk7XG4gICAgICB9ZWxzZXtcbiAgICAgICAgdGhpcy5wYXlSYXRlRnJlcXVlbmN5LnBhdGNoVmFsdWUodGhpcy5wYXlSYXRlT3B0aW9ucy5maWx0ZXIocCA9PiBwLnZhbHVlPT1lc20ucGF5UmF0ZUZyZXF1ZW5jeT8udmFsdWUpWzBdKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlKSB7XG4gICAgICBpZiAocXRyV2FnZUxpc3QpIHtcbiAgICAgICAgY29uc3Qgc29ydGVkUXVhcnRlciA9IHF0cldhZ2VMaXN0LnNvcnQoKGEsIGIpID0+IGEuZGlzcGxheU9yZGVyIC0gYi5kaXNwbGF5T3JkZXIpO1xuICAgICAgICBmb3IgKHZhciBxdHJXYWdlIG9mIHNvcnRlZFF1YXJ0ZXIpIHtcbiAgICAgICAgICB0aGlzLndhZ2VBbW91bnRBcnJheS5wdXNoKHRoaXMud2FnZUFycmF5KHF0cldhZ2UpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYodGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZSB8fCAodGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT0gJ0ZFRCcgJiYgdGhpcy5pc05ld0NsYWltKSkge1xuICAgICAgICB0aGlzLnNldFdhZ2VWYWxpZGF0aW9uKCk7XG4gICAgICB9XG4gICAgfTtcblxuICB9XG4gIHNldFdvcmtTdGFydERhdGUoKSB7XG4gICAgbGV0IGRhdGEgPSB0aGlzLmFyLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KCdkYXRhJyk7XG4gICAgaWYoZGF0YSl7XG4gICAgICBsZXQgcGFyc2VkRGF0YSA6IEtleVZhbHVlTW9kZWxbXSA9IEpTT04ucGFyc2UoYXRvYihkYXRhKSk7XG4gICAgICBpZihBcnJheS5pc0FycmF5KHBhcnNlZERhdGEpKXtcbiAgICAgICAgbGV0IGxhc3RDd2UgPSBwYXJzZWREYXRhLmZpbHRlcihrID0+IGsua2V5ID09ICdsYXN0Q3dlRGF0ZScpO1xuICAgICAgICBpZihsYXN0Q3dlLmxlbmd0aCA+IDAgJiYgbGFzdEN3ZVswXS5rZXkgPT0gJ2xhc3RDd2VEYXRlJyAmJiAhdGhpcy5pc05ld0NsYWltKXtcbiAgICAgICAgICB0aGlzLm1pbldvcmtTdGFydERhdGUgPSBuZXcgRGF0ZShsYXN0Q3dlWzBdLnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldFJlYXNvblNlcGVyYXRpb25CYXNlZE9uQ29uZGl0aW9uKHNjaG9vbEZsYWc6IHN0cmluZyA9IFwiMFwiLCBzcG9ydHNGbGFnOiBzdHJpbmcgPSBcIjBcIiwgY2xhaW1UeXBlRHVhID0gXCIwXCIsIHNzblZhbGlkV29ya1NoYXJlID0gXCIwXCIpIHtcbiAgICBsZXQgbW9kZWwgPSBuZXcgUmVhc29uU2VwYXJhdGlvblJlcXVlc3RNb2RlbCgpO1xuICAgIG1vZGVsLnNjaG9vbEZsYWcgPSBzY2hvb2xGbGFnO1xuICAgIG1vZGVsLnNwb3J0c0ZsYWcgPSBzcG9ydHNGbGFnO1xuICAgIG1vZGVsLmNsYWltVHlwZUR1YSA9IGNsYWltVHlwZUR1YTtcbiAgICBtb2RlbC5zc25WYWxpZFdvcmtTaGFyZSA9IHNzblZhbGlkV29ya1NoYXJlO1xuICAgIHRoaXMuY2xhaW1zU2VydmljZS5jbGVhckZpbHRlcmVkUmVhc29uU2VwYXJhdGlvbigpO1xuICAgIHRoaXMuY2xhaW1zU2VydmljZS5sb2FkRmlsdGVyZWRSZWFzb25TZXBhcmF0aW9uKG1vZGVsKTtcbiAgfVxuXG4gIGxvYWRNYXN0ZXJEYXRhKCkge1xuXG4gICAgdGhpcy5jbGFpbXNTZXJ2aWNlLmdldEZpbHRlcmVkUmVhc29uU2VwYXJhdGlvbigpLnN1YnNjcmliZShcbiAgICAgIHZhbHVlID0+IHtcbiAgICAgICAgdGhpcy5lbXBsb3ltZW50U3RhdHVzT3B0aW9uc0FsbC5sZW5ndGggPSAwO1xuICAgICAgICB2YWx1ZS5mb3JFYWNoKGFyciA9PiB0aGlzLmVtcGxveW1lbnRTdGF0dXNPcHRpb25zQWxsLnB1c2goYXJyKSk7XG4gICAgICAgIGlmICh0aGlzLnJlYXNvblNlcGFyYXRpb25WYWx1ZSkge1xuICAgICAgICAgIGxldCBlbXBTdGF0ID0gdGhpcy5lbXBsb3ltZW50U3RhdHVzT3B0aW9uc0FsbC5maWx0ZXIoc3RhdCA9PiBzdGF0LnZhbHVlID09IHRoaXMucmVhc29uU2VwYXJhdGlvblZhbHVlKVswXTtcbiAgICAgICAgICB0aGlzLnJlYXNvblNlcGFyYXRpb24uc2V0VmFsdWUoZW1wU3RhdCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApO1xuXG4gICAgdGhpcy5jbGFpbXNTZXJ2aWNlLmdldERpc2NoYXJnZVJlYXNvbnMoKS5zdWJzY3JpYmUoXG4gICAgICB2YWx1ZSA9PiB7XG4gICAgICAgIHZhbHVlLmZvckVhY2goYXJyID0+ICB0aGlzLmRpc2NoYXJnZVJlYXNvbk9wdGlvbnNBbGwucHVzaChhcnIpKTtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgdGhpcy5jbGFpbXNTZXJ2aWNlLmdldFF1aXRSZWFzb25zKCkuc3Vic2NyaWJlKFxuICAgICAgdmFsdWUgPT4ge1xuICAgICAgICB2YWx1ZS5mb3JFYWNoKGFyciA9PiAgdGhpcy52b2xRdWl0UmVhc29uT3B0aW9uc0FsbC5wdXNoKGFycikpO1xuICAgICAgfVxuICAgICk7XG5cbiAgICBpZih0aGlzLmVtcGxveW1lbnRTdGF0dXNPcHRpb25zIT0gbnVsbClcbiAgICAgIHJldHVybiB0cnVlXG4gIH1cblxuICB3YWdlQXJyYXkocXRyV2FnZTpRdHJZZWFyRW1wbG95ZXJXYWdlTW9kZWwpOiBVbnR5cGVkRm9ybUdyb3VwIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICB3YWdlQW1vdW50OiBbcXRyV2FnZS53YWdlQW1vdW50IT1udWxsP3F0cldhZ2Uud2FnZUFtb3VudDpudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKCgodGhpcy5lbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJykgfHwgKHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycgJiYgcXRyV2FnZS5kaXNwbGF5Rm9yQWxsICYmIHRoaXMud29ya1N0YXRlLnZhbHVlICYmIHRoaXMud29ya1N0YXRlLnZhbHVlLnZhbHVlPT09dGhpcy5jdXJyZW50U3RhdGUpICkpKV0sXG4gICAgICBxdWFydGVyOiBbcXRyV2FnZS5xdWFydGVyIT1udWxsP3F0cldhZ2UucXVhcnRlcjpudWxsXSxcbiAgICAgIHllYXI6IFtxdHJXYWdlLnllYXIhPW51bGw/cXRyV2FnZS55ZWFyOm51bGxdLFxuICAgICAgcXRyWWVhckRpc3BsYXlTdHJpbmc6IFtxdHJXYWdlLnF0clllYXJEaXNwbGF5U3RyaW5nIT1udWxsP3F0cldhZ2UucXRyWWVhckRpc3BsYXlTdHJpbmc6bnVsbF0sXG4gICAgICBkaXNwbGF5T3JkZXI6IFtxdHJXYWdlLmRpc3BsYXlPcmRlciE9bnVsbD9xdHJXYWdlLmRpc3BsYXlPcmRlcjpudWxsXSxcbiAgICAgIGRpc3BsYXlGb3JBbGw6IFtxdHJXYWdlLmRpc3BsYXlGb3JBbGwhPW51bGw/cXRyV2FnZS5kaXNwbGF5Rm9yQWxsOm51bGxdLFxuICAgIH0pXG4gfVxuXG4gIGdldCB3YWdlQW1vdW50QXJyYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzW1wid2FnZUFtb3VudEFycmF5XCJdIGFzIFVudHlwZWRGb3JtQXJyYXk7XG4gIH1cblxuICBnZXQgdGVzdEVtcCgpe1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1tcInRlc3RFbXBcIl0gO1xuICB9XG4gIHNldFJlcXVpcmVkVmFsaWRhdGlvbigpIHtcbiAgICB0aGlzLnNldlBheUZsYWcudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWwgPT4ge1xuICAgICAgaWYodmFsPT09J1knICYmIHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnRkVEJyAmJiB0aGlzLnNldlBheUZsYWcudmFsdWUgPT09ICdZJyAmJiB0aGlzLmN1cnJlbnRTdGF0ZSA9PT0gJ01FJyl7XG4gICAgICAgIHRoaXMuc2V0VmFsaWRhdGlvbk9uU2VydkZpZWxkcygpO1xuICAgICAgfWVsc2V7XG4gICAgICAgIHRoaXMucmVtb3ZlVmFsaWRhdGlvbk9uU2VydkZpZWxkcygpO1xuICAgICAgfVxuICAgICB9XG4gICAgKTtcblxuICAgIHRoaXMud29ya1N0YXRlLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsID0+IHtcbiAgICAgIGlmKHZhbCAmJiB2YWwudmFsdWU9PT10aGlzLmN1cnJlbnRTdGF0ZSAmJiB0aGlzLmRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzLnZhbHVlICYmICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKXtcbiAgICAgICAgdGhpcy5zZXRWYWxpZGF0aW9uT25WZXJpZmljYXRpb25PZldhZ2VzRmllbGRzKCk7XG4gICAgICB9ZWxzZXtcbiAgICAgICAgdGhpcy5yZW1vdmVWYWxpZGF0aW9uT25WZXJpZmljYXRpb25PZldhZ2VzRmllbGRzKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmZlZFdvcmtDb3VudHJ5LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsID0+IHtcbiAgICAgIGlmICh2YWwgJiYgdmFsLnZhbHVlID09PSAnVVMnIHx8IHZhbCAmJiB2YWwudmFsdWUgPT09ICdDQScgKSB7XG4gICAgICAgIHRoaXMuc2hvd1dvcmtTdGF0ZSA9IHRydWU7IFxuICAgICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5mZWRXb3JrU3RhdGUpO1xuICAgICAgICAgIFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zaG93V29ya1N0YXRlID0gZmFsc2U7IFxuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZmVkV29ya1N0YXRlKTtcbiAgICAgICAgdGhpcy5mZWRXb3JrU3RhdGUuc2V0VmFsdWUobnVsbCk7XG4gICAgICB9XG4gICAgICBpZih2YWwgJiYgdmFsLnZhbHVlID09PSAnVVMnICYmICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKXtcbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuZmVkV29ya1N0YXRlKTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZmVkV29ya1N0YXRlKTtcbiAgICAgICAgdGhpcy5mZWRXb3JrU3RhdGUuc2V0VmFsdWUobnVsbCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmVuZERhdGUudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSAodmFsID0+IHtcbiAgICAgIGlmKHRoaXMud29ya1N0YXRlLnZhbHVlPy52YWx1ZSA9PSB0aGlzLmN1cnJlbnRTdGF0ZSAmJiB0aGlzLmRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzLnZhbHVlICYmICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSB7XG4gICAgICAgIHRoaXMuc2V0VmFsaWRhdGlvbk9uVmVyaWZpY2F0aW9uT2ZXYWdlc0ZpZWxkcygpO1xuICAgICAgfWVsc2V7XG4gICAgICAgIHRoaXMucmVtb3ZlVmFsaWRhdGlvbk9uVmVyaWZpY2F0aW9uT2ZXYWdlc0ZpZWxkcygpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5yZWFzb25TZXBhcmF0aW9uLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsID0+IHtcbiAgICAgIGlmKHZhbCkge1xuICAgICAgICBpZih2YWwudmFsdWUgPT09ICdEQ0ZJJyl7XG4gICAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuZGlzY2hhcmdlRGV0YWlsKTtcbiAgICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMudm9sUXVpdERldGFpbHMpO1xuICAgICAgICAgIHRoaXMudm9sUXVpdERldGFpbHMuc2V0VmFsdWUobnVsbCk7XG4gICAgICAgIH0gZWxzZSBpZih0aGlzLnJlYXNvblNlcGFyYXRpb24udmFsdWUudmFsdWUgPT09ICdWT0xRJyl7XG4gICAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMudm9sUXVpdERldGFpbHMpO1xuICAgICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5kaXNjaGFyZ2VEZXRhaWwpO1xuICAgICAgICAgIHRoaXMuZGlzY2hhcmdlRGV0YWlsLnNldFZhbHVlKG51bGwpO1xuICAgICAgICB9IGVsc2UgaWYgKCh0aGlzLmN1cnJlbnRTdGF0ZSA9PT0gJ0NUJyAmJiB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ1JFRycpICYmICh2YWwudmFsdWUgPT09ICdXUlBUJyB8fCB2YWwudmFsdWUgPT09ICdFV0ZUJykpIHtcbiAgICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW5kRGF0ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoKHRoaXMuY3VycmVudFN0YXRlID09PSAnQ1QnICYmIHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnRkVEJykgJiYgKHZhbC52YWx1ZSA9PT0gJ1dSUFQnIHx8IHZhbC52YWx1ZSA9PT0gJ0VXRlQnKSkge1xuICAgICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5lbmREYXRlRmVkKTtcbiAgICAgICAgfSBcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmRpc2NoYXJnZURldGFpbCk7XG4gICAgICAgICAgdGhpcy5kaXNjaGFyZ2VEZXRhaWwuc2V0VmFsdWUobnVsbCk7XG4gICAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnZvbFF1aXREZXRhaWxzKTtcbiAgICAgICAgICB0aGlzLnZvbFF1aXREZXRhaWxzLnNldFZhbHVlKG51bGwpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLnBlbnNpb25GbGFnLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsID0+IHtcbiAgICAgIGlmKHZhbD09PSdZJyAmJiB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ1JFRycgJiYgdGhpcy53b3JrRmxhZy52YWx1ZSA9PT0gJ1knICYmIHRoaXMucGVuc2lvbkZsYWcudmFsdWUgPT09ICdZJyAmJiB0aGlzLmN1cnJlbnRTdGF0ZSAhPSAnTUUnKXtcbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMucGVuc2lvblJlY3ZEYXRlKTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICB0aGlzLnBlbnNpb25SZWN2RGF0ZS5zZXRWYWx1ZShudWxsKTtcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnBlbnNpb25SZWN2RGF0ZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmZlZFBlbnNpb25GbGFnLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsID0+IHtcbiAgICAgIGlmKHZhbD09PSdZJyAmJiB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ0ZFRCcgJiYgdGhpcy5mZWRQZW5zaW9uRmxhZy52YWx1ZSA9PT0gJ1knICYmIHRoaXMuY3VycmVudFN0YXRlICE9ICdNRScgKXtcbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuZmVkUGVuc2lvblJlY3ZEYXRlKTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICB0aGlzLmZlZFBlbnNpb25SZWN2RGF0ZS5zZXRWYWx1ZShudWxsKTtcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmZlZFBlbnNpb25SZWN2RGF0ZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLnJlZ1BlbnNpb25GbGFnLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsID0+IHtcbiAgICAgIGlmKHZhbD09PSdZJyAmJiB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ1JFRycgJiYgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgICYmIHRoaXMucmVnUGVuc2lvbkZsYWcudmFsdWUgPT09ICdZJyAmJiB0aGlzLmN1cnJlbnRTdGF0ZSAhPSAnTUUnKXtcbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMucmVnUGVuc2lvblJlY3ZEYXRlKTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICB0aGlzLnJlZ1BlbnNpb25SZWN2RGF0ZS5zZXRWYWx1ZShudWxsKTtcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnJlZ1BlbnNpb25SZWN2RGF0ZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLm1pbFBlbnNpb25GbGFnLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsID0+IHtcbiAgICAgIGlmKHZhbD09PSdZJyAmJiB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ01JTCcgJiYgdGhpcy5taWxQZW5zaW9uRmxhZy52YWx1ZSA9PT0gJ1knICYmIHRoaXMuY3VycmVudFN0YXRlICE9ICdNRScgKXtcbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMubWlsUGVuc2lvblJlY3ZEYXRlKTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICB0aGlzLm1pbFBlbnNpb25SZWN2RGF0ZS5zZXRWYWx1ZShudWxsKTtcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLm1pbFBlbnNpb25SZWN2RGF0ZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmhhc1JlY3ZSZW11bmVyYXRpb24udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWwgPT4ge1xuICAgICAgaWYodmFsPT09J1knICYmIHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnUkVHJyAmJiB0aGlzLmhhc1JlY3ZSZW11bmVyYXRpb24udmFsdWUgPT09ICdZJyAmJiB0aGlzLmN1cnJlbnRTdGF0ZSA9PT0gJ01FJyAmJiB0aGlzLmlzT3NhRW1wbG95ZXIgPT09ICcwJyl7XG4gICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnJlbXVuZXJhdGlvblR5cGVzKTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICB0aGlzLnJlbXVuZXJhdGlvblR5cGVzLnNldFZhbHVlKG51bGwpO1xuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMucmVtdW5lcmF0aW9uVHlwZXMpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5zZXBhcmF0aW9uRGF0ZUZsYWcudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWwgPT4ge1xuICAgICAgaWYodmFsPT09J1knICYmICh0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ1JFRycgfHwgdGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdGRUQnKSBcbiAgICAgICAgJiYgKHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy53b3JrRmxhZy52YWx1ZT09PSdZJyB8fCAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcilcbiAgICAgICAgJiYgdGhpcy5zZXBhcmF0aW9uRGF0ZUZsYWcudmFsdWUgPT09ICdZJyAmJiB0aGlzLmN1cnJlbnRTdGF0ZSA9PSAnQ1QnKXtcbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuc2VwYXJhdGlvbkRhdGUpO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIHRoaXMuc2VwYXJhdGlvbkRhdGUuc2V0VmFsdWUobnVsbCk7XG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5zZXBhcmF0aW9uRGF0ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5yZWdEaXNzbWlzYWxGbGFnLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsID0+IHtcbiAgICAgIGlmKHZhbD09PSdZJyAmJiB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ1JFRycgJiYgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgICYmIHRoaXMucmVnRGlzc21pc2FsRmxhZy52YWx1ZSA9PT0gJ1knICYmIHRoaXMuY3VycmVudFN0YXRlICE9ICdDVCcpe1xuICAgICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5yZWdEaXNzbWlzYWxDaGVja0JveCk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5yZWdEaXNzbWlzYWxDaGVja0JveC5zZXRWYWx1ZShudWxsKTtcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnJlZ0Rpc3NtaXNhbENoZWNrQm94KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmZlZERpc3NtaXNhbEZsYWcudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWwgPT4ge1xuICAgICAgaWYodmFsPT09J1knICYmIHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnRkVEJyAmJiAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAgJiYgdGhpcy5mZWREaXNzbWlzYWxGbGFnLnZhbHVlID09PSAnWScgJiYgdGhpcy5jdXJyZW50U3RhdGUgIT0gJ0NUJyl7XG4gICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmZlZERpc3NtaXNhbENoZWNrQm94KTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICAgdGhpcy5mZWREaXNzbWlzYWxDaGVja0JveC5zZXRWYWx1ZShudWxsKTtcbiAgICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5mZWREaXNzbWlzYWxDaGVja0JveCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbCA9PiB7XG4gICAgICBpZiAodmFsID09PSAnRkVEJykge1xuICAgICAgICB0aGlzLnJlbW92ZVZhbGlkYXRpb25PblJlZ3VsYXJGaWVsZHMoKVxuICAgICAgICB0aGlzLnJlbW92ZVZhbGlkYXRpb25Pbk1pbGl0YXJ5RmllbGRzKCk7XG4gICAgICAgIHRoaXMuc2V0VmFsaWRhdGlvbk9uRmVkZXJhbEZpZWxkcygpO1xuICAgICAgfVxuICAgICAgaWYgKHZhbCA9PT0gJ1JFRycpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVWYWxpZGF0aW9uT25GZWRlcmFsRmllbGRzKCk7XG4gICAgICAgIHRoaXMucmVtb3ZlVmFsaWRhdGlvbk9uTWlsaXRhcnlGaWVsZHMoKTtcbiAgICAgICAgdGhpcy5zZXRWYWxpZGF0aW9uT25SZWd1bGFyRmllbGRzKCk7XG4gICAgICB9XG5cbiAgICAgIGlmICh2YWwgPT09ICdNSUwnKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlVmFsaWRhdGlvbk9uRmVkZXJhbEZpZWxkcygpO1xuICAgICAgICB0aGlzLnJlbW92ZVZhbGlkYXRpb25PblJlZ3VsYXJGaWVsZHMoKTtcbiAgICAgICAgdGhpcy5zZXRWYWxpZGF0aW9uT25NaWxpdGFyeUZpZWxkcygpO1xuICAgICAgfVxuXG4gICAgfSk7XG5cbiAgICB0aGlzLm90aGVyU1NORmxhZy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbCA9PiB7XG4gICAgICBpZih2YWwgJiYgdmFsID09ICdZJyl7XG4gICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLm90aGVyU1NOKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5vdGhlclNTTik7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLm90aGVyTmFtZUZsYWcudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWwgPT4ge1xuICAgICAgaWYodmFsICYmIHZhbCA9PSAnWScpe1xuICAgICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5vdGhlck5hbWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLm90aGVyTmFtZSk7XG4gICAgICB9XG4gICAgfSkgICAgXG4gIH1cblxuICBzZXRWYWxpZGF0aW9uT25TZXJ2RmllbGRzKCl7XG4gICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMud2Vla2x5QW1vdW50KTtcbiAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5udW1iZXJPZldlZWtzKTtcbiAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5zZXZQYXlBbW91bnQpO1xuICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnNldlBheVN0YXJ0RGF0ZSk7XG4gICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuc2V2UGF5RW5kRGF0ZSk7XG4gICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuc2V2UGF5UGF5bWVudFN0YXJ0RGF0ZSk7XG4gIH1cblxuICByZW1vdmVWYWxpZGF0aW9uT25TZXJ2RmllbGRzKCkge1xuICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy53ZWVrbHlBbW91bnQpO1xuICAgIHRoaXMud2Vla2x5QW1vdW50LnNldFZhbHVlKCcnKTtcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMubnVtYmVyT2ZXZWVrcyk7XG4gICAgdGhpcy5udW1iZXJPZldlZWtzLnNldFZhbHVlKCcnKTtcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuc2V2UGF5QW1vdW50KTtcbiAgICB0aGlzLnNldlBheUFtb3VudC5zZXRWYWx1ZSgnJyk7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnNldlBheVN0YXJ0RGF0ZSk7XG4gICAgdGhpcy5zZXZQYXlTdGFydERhdGUuc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnNldlBheUVuZERhdGUpO1xuICAgIHRoaXMuc2V2UGF5RW5kRGF0ZS5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuc2V2UGF5UGF5bWVudFN0YXJ0RGF0ZSk7XG4gICAgdGhpcy5zZXZQYXlQYXltZW50U3RhcnREYXRlLnNldFZhbHVlKG51bGwpO1xuICB9XG5cbiAgc2V0VmFsaWRhdGlvbk9uVmVyaWZpY2F0aW9uT2ZXYWdlc0ZpZWxkcygpIHtcbiAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5wYXltZW50VHlwZSk7XG4gICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMud29ya1R5cGUpO1xuICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmRvY3NSZWNlaXZlZCk7XG4gICAvLyB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5kb2luZ0J1c2luZXNzQXMpO1xuICAgLy8gdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuaGlyZWRCeSk7XG4gICAgLy90aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5idXNpbmVzc05hdHVyZSk7XG4gICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMub3RoZXJOYW1lRmxhZyk7XG4gICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMub3RoZXJTU05GbGFnKTtcbiAgICB0aGlzLnNldFdhZ2VWYWxpZGF0aW9uKCk7XG4gIH1cblxuICBzZXRXYWdlVmFsaWRhdGlvbigpIHtcbiAgICB0aGlzLnV0aWwuc2V0VmFsaWRhdGlvbih0aGlzLndhZ2VBbW91bnRBcnJheSwgQXBwVmFsaWRhdG9ycy5hdExlYXN0T25lTm9uWmVyb1ZhbHVlVmFsaWRhdG9yKDEsICd3YWdlQW1vdW50JykpO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdzZXR0aW5nIHZhbGlkYXRpb24gZm9yIGZlZCBlbXBsb3llcicpO1xuICB9XG5cbiAgcmVtb3ZlV2FnZVZhbGlkYXRpb24oKSB7XG4gICAgaWYodGhpcy5lbXBsb3llclR5cGUudmFsdWUgIT0gJ0ZFRCcpe1xuICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLndhZ2VBbW91bnRBcnJheSk7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygncmVtb3ZpbmcgdmFsaWRhdGlvbiBmb3IgZmVkIGVtcGxveWVyJyk7XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlVmFsaWRhdGlvbk9uVmVyaWZpY2F0aW9uT2ZXYWdlc0ZpZWxkcygpIHtcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMucGF5bWVudFR5cGUpO1xuICAgIHRoaXMucGF5bWVudFR5cGUuc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmRvY3NSZWNlaXZlZCk7XG4gICAgdGhpcy5kb2NzUmVjZWl2ZWQuc2V0VmFsdWUobnVsbCk7XG4gICAvLyB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZG9pbmdCdXNpbmVzc0FzKTtcbiAgIC8vIHRoaXMuZG9pbmdCdXNpbmVzc0FzLnNldFZhbHVlKG51bGwpO1xuICAgLy8gdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmhpcmVkQnkpO1xuICAgLy8gdGhpcy5oaXJlZEJ5LnNldFZhbHVlKG51bGwpO1xuICAgIC8vdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmJ1c2luZXNzTmF0dXJlKTtcbiAgICAvL3RoaXMuYnVzaW5lc3NOYXR1cmUuc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLm90aGVyTmFtZUZsYWcpO1xuICAgIHRoaXMub3RoZXJOYW1lRmxhZy5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMub3RoZXJTU05GbGFnKTtcbiAgICB0aGlzLm90aGVyU1NORmxhZy5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMub3RoZXJOYW1lKTtcbiAgICB0aGlzLm90aGVyTmFtZS5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMub3RoZXJTU04pO1xuICAgIHRoaXMub3RoZXJTU04uc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy5yZW1vdmVXYWdlVmFsaWRhdGlvbigpO1xuICB9XG5cbiAgc2V0VmFsaWRhdGlvbk9uUmVndWxhckZpZWxkcygpIHtcbiAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3RoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMudmFsdWUnLCB0aGlzLmRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzLnZhbHVlLCAnIHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXInLCB0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKTtcblxuICAgIGlmKCgodGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLndvcmtGbGFnLnZhbHVlID09PSAnWScpIHx8ICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSl7XG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5yZWFzb25TZXBhcmF0aW9uKTtcbiAgICB9XG5cbiAgICBpZiAoKCgodGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLndvcmtGbGFnLnZhbHVlID09PSAnWScpIHx8ICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSAmJiB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ1JFRycpKSB7XG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5wYXlSYXRlRnJlcXVlbmN5KTtcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnBheVJhdGUpOyAgICAgIFxuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuam9iVGlsZU9yUG9zaXRpb24pOyAgICAgIFxuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuZW5kRGF0ZSk7XG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5lbXBsb3llclRlbGVwaG9uZU51bWJlcik7XG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5lbXBsb3llck5hbWUpO1xuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuc3RhcnREYXRlKTtcbiAgICAgIGlmKHRoaXMuY3VycmVudFN0YXRlID09PSAnTUUnKXtcbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMudmFjYXRpb24pO1xuICAgICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5oYXNTaG9ydFRlcm1EaXNhYmlsaXR5KTtcbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuaGFzUmVjdlJlbXVuZXJhdGlvbik7XG4gICAgICB9XG4gICAgICBpZih0aGlzLmN1cnJlbnRTdGF0ZSA9PT0gJ0NUJyl7XG4gICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmhyc1dlZWspO1xuICAgICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5zaGlmdCk7ICBcbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMud29ya1dlZWspOyBcbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuZGlkV29yayk7ICAgIFxuICAgICAgICBpZih0aGlzLnNlcGFyYXRpb25EYXRlRmxhZy52YWx1ZSA9PT0gJ1knKXtcbiAgICAgICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5zZXBhcmF0aW9uRGF0ZSk7XG4gICAgICAgIH0gIFxuICAgICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5yZWdEaXNzbWlzYWxGbGFnKTtcbiAgICAgICAgaWYodGhpcy5yZWdEaXNzbWlzYWxGbGFnLnZhbHVlID09PSAnWScpe1xuICAgICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnJlZ0Rpc3NtaXNhbENoZWNrQm94KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5yZWdMYWlkT2ZmRmxhZyk7XG4gICAgICB9XG4gICAgICBpZih0aGlzLmN1cnJlbnRTdGF0ZSAhPSAnQ1QnKXtcbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuaXNDbG10UGFpZFdoaWxlTG93KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZigodGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLndvcmtGbGFnLnZhbHVlID09PSAnWScgJiYgdGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdSRUcnKSl7XG4gICAgICBpZih0aGlzLnBlbnNpb25GbGFnLnZhbHVlID09PSAnWScpe1xuICAgICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5wZW5zaW9uUmVjdkRhdGUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ1JFRycpIHtcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLndvcmtTdGF0ZSk7XG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy53b3JrQ2l0eSk7XG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5yZWdQZW5zaW9uRmxhZyk7XG4gICAgICBpZih0aGlzLnJlZ1BlbnNpb25GbGFnLnZhbHVlID09PSAnWScpe1xuICAgICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5yZWdQZW5zaW9uUmVjdkRhdGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJlbW92ZVZhbGlkYXRpb25PblJlZ3VsYXJGaWVsZHMoKSB7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnBlbnNpb25GbGFnKTtcbiAgICB0aGlzLnBlbnNpb25GbGFnLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5wZW5zaW9uUmVjdkRhdGUpO1xuICAgIHRoaXMucGVuc2lvblJlY3ZEYXRlLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5wYXlSYXRlRnJlcXVlbmN5KTtcbiAgICB0aGlzLnBheVJhdGVGcmVxdWVuY3kuc2V0VmFsdWUodGhpcy5wYXlSYXRlT3B0aW9ucy5maWx0ZXIocCA9PiBwLnRleHQ9PSdob3VyJylbMF0pO1xuICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5wYXlSYXRlKTtcbiAgICB0aGlzLnBheVJhdGUuc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmpvYlRpbGVPclBvc2l0aW9uKTtcbiAgICB0aGlzLmpvYlRpbGVPclBvc2l0aW9uLnNldFZhbHVlKG51bGwpOyAgICBcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW5kRGF0ZSk7XG4gICAgdGhpcy5lbmREYXRlLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5lbXBsb3llclRlbGVwaG9uZU51bWJlcik7XG4gICAgdGhpcy5lbXBsb3llclRlbGVwaG9uZU51bWJlci5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW1wbG95ZXJOYW1lKTtcbiAgICB0aGlzLmVtcGxveWVyTmFtZS5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuc3RhcnREYXRlKTtcbiAgICB0aGlzLnN0YXJ0RGF0ZS5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMud29ya1N0YXRlKTtcbiAgICB0aGlzLndvcmtTdGF0ZS5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMud29ya0NpdHkpO1xuICAgIHRoaXMud29ya0NpdHkuc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnJlZ1BlbnNpb25GbGFnKTtcbiAgICB0aGlzLnJlZ1BlbnNpb25GbGFnLnNldFZhbHVlKG51bGwpO1xuXHQgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5yZWdQZW5zaW9uUmVjdkRhdGUpO1xuICAgIHRoaXMucmVnUGVuc2lvblJlY3ZEYXRlLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5vdGhlck5hbWUpO1xuICAgIHRoaXMub3RoZXJOYW1lLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5vdGhlck5hbWVGbGFnKTtcbiAgICB0aGlzLm90aGVyTmFtZUZsYWcuc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLm90aGVyU1NOKTtcbiAgICB0aGlzLm90aGVyU1NOLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5vdGhlclNTTkZsYWcpO1xuICAgIHRoaXMub3RoZXJTU05GbGFnLnNldFZhbHVlKG51bGwpO1xuICAgIGlmKHRoaXMuY3VycmVudFN0YXRlID09PSAnTUUnKXtcbiAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy52YWNhdGlvbik7XG4gICAgICB0aGlzLnZhY2F0aW9uLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmhhc1Nob3J0VGVybURpc2FiaWxpdHkpO1xuICAgICAgdGhpcy5oYXNTaG9ydFRlcm1EaXNhYmlsaXR5LnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmhhc1JlY3ZSZW11bmVyYXRpb24pO1xuICAgICAgdGhpcy5oYXNSZWN2UmVtdW5lcmF0aW9uLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnJlbXVuZXJhdGlvblR5cGVzKTtcbiAgICAgIHRoaXMucmVtdW5lcmF0aW9uVHlwZXMuc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICAgIGlmKHRoaXMuY3VycmVudFN0YXRlID09PSAnQ1QnKXtcbiAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5ocnNXZWVrKTtcbiAgICAgIHRoaXMuaHJzV2Vlay5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5zaGlmdCk7XG4gICAgICB0aGlzLnNoaWZ0LnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLndvcmtXZWVrKTtcbiAgICAgIHRoaXMud29ya1dlZWsuc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZGlkV29yayk7XG4gICAgICB0aGlzLmRpZFdvcmsuc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLnBheVJhdGVGcmVxdWVuY3kuc2V0VmFsdWUodGhpcy5wYXlSYXRlT3B0aW9ucy5maWx0ZXIocCA9PiBwLnRleHQ9PSdIb3VyJylbMF0pO1xuICAgICAgdGhpcy5zZXBhcmF0aW9uRGF0ZUZsYWcuc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMucmVnRGlzc21pc2FsRmxhZyk7XG4gICAgICB0aGlzLnJlZ0Rpc3NtaXNhbEZsYWcuc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMucmVnRGlzc21pc2FsQ2hlY2tCb3gpO1xuICAgICAgdGhpcy5yZWdEaXNzbWlzYWxDaGVja0JveC5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5yZWdMYWlkT2ZmRmxhZyk7XG4gICAgICB0aGlzLnJlZ0xhaWRPZmZGbGFnLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnNlcGFyYXRpb25EYXRlKTtcbiAgICAgIHRoaXMuc2VwYXJhdGlvbkRhdGUuc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICAgIGlmKHRoaXMuY3VycmVudFN0YXRlICE9ICdDVCcpe1xuICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmlzQ2xtdFBhaWRXaGlsZUxvdyk7XG4gICAgICB0aGlzLmlzQ2xtdFBhaWRXaGlsZUxvdy5zZXRWYWx1ZShudWxsKTtcbiAgICB9XG5cbiAgfVxuXG4gIHNldFZhbGlkYXRpb25PbkZlZGVyYWxGaWVsZHMoKSB7XG4gICAvLyB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5jbGFpbWFudEVtcGxveWVkV2l0aEVtcHIpO1xuICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnJlYXNvblNlcGFyYXRpb24pO1xuICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmVuZERhdGVGZWQpO1xuICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmZlZEVtcGxveWVyTmFtZSk7XG4gICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuZmVkSm9iVGlsZU9yUG9zaXRpb24pO1xuICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmZlZFBlbnNpb25GbGFnKTtcbiAgICBpZih0aGlzLmZlZFBlbnNpb25GbGFnLnZhbHVlID09PSAnWScpe1xuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuZmVkUGVuc2lvblJlY3ZEYXRlKTtcbiAgICB9XG4gICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuZmVkV29ya0NpdHkpO1xuICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmZlZFdvcmtDb3VudHJ5KTtcbiAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5mZWRXb3JrU3RhdGUpO1xuICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnBlcmZvcm1lZFNlcnZpY2UpO1xuICAgIGlmKHRoaXMuY3VycmVudFN0YXRlID09PSAnTUUnKSB7XG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5zZXZQYXlGbGFnKTtcbiAgICB9XG4gICAgaWYodGhpcy5jdXJyZW50U3RhdGUgPT09ICdDVCcpe1xuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuaHJzV2Vlayk7ICAgXG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5zaGlmdCk7ICBcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLndvcmtXZWVrKTsgIFxuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuZGlkV29yayk7ICBcbiAgICAgIGlmKHRoaXMuc2VwYXJhdGlvbkRhdGVGbGFnLnZhbHVlID09PSAnWScpe1xuICAgICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5zZXBhcmF0aW9uRGF0ZSk7XG4gICAgICB9ICBcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmZlZERpc3NtaXNhbEZsYWcpO1xuICAgICAgICBpZih0aGlzLmZlZERpc3NtaXNhbEZsYWcudmFsdWUgPT09ICdZJyl7XG4gICAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuZmVkRGlzc21pc2FsQ2hlY2tCb3gpO1xuICAgICAgICB9IFxuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuZmVkTGFpZE9mZkZsYWcpO1xuICAgIH1cbiAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5zZkVpZ2h0ZmxhZyk7XG4gICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuc3RhcnREYXRlRmVkKTtcbiAgICB0aGlzLnV0aWwuc2V0VmFsaWRhdGlvbih0aGlzLmZlZEVtcGxveWVyTmFtZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcblxuICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnBheVJhdGVGcmVxdWVuY3kpO1xuICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnBheVJhdGUpO1xuICAgIGlmKHRoaXMuaXNOZXdDbGFpbSl7XG4gICAgICB0aGlzLnNldFdhZ2VWYWxpZGF0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlVmFsaWRhdGlvbk9uRmVkZXJhbEZpZWxkcygpIHtcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuc3RhcnREYXRlRmVkKTtcbiAgICB0aGlzLnN0YXJ0RGF0ZUZlZC5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuc2ZFaWdodGZsYWcpO1xuICAgIHRoaXMuc2ZFaWdodGZsYWcuc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnNldlBheUZsYWcpO1xuICAgIHRoaXMuc2V2UGF5RmxhZy5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMucGVyZm9ybWVkU2VydmljZSk7XG4gICAgdGhpcy5wZXJmb3JtZWRTZXJ2aWNlLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5mZWRXb3JrU3RhdGUpO1xuICAgIHRoaXMuZmVkV29ya1N0YXRlLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5mZWRXb3JrQ291bnRyeSk7XG4gICAgdGhpcy5mZWRXb3JrQ291bnRyeS5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZmVkV29ya0NpdHkpO1xuICAgIHRoaXMuZmVkV29ya0NpdHkuc2V0VmFsdWUobnVsbCk7XG5cbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZmVkUGVuc2lvbkZsYWcpO1xuICAgIHRoaXMuZmVkUGVuc2lvbkZsYWcuc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmZlZFBlbnNpb25SZWN2RGF0ZSk7XG4gICAgdGhpcy5mZWRQZW5zaW9uUmVjdkRhdGUuc2V0VmFsdWUobnVsbCk7XG5cbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZmVkSm9iVGlsZU9yUG9zaXRpb24pO1xuICAgIHRoaXMuZmVkSm9iVGlsZU9yUG9zaXRpb24uc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmZlZEVtcGxveWVyTmFtZSk7XG4gICAgdGhpcy5mZWRFbXBsb3llck5hbWUuc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVuZERhdGVGZWQpO1xuICAgIHRoaXMuZW5kRGF0ZUZlZC5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLnJlbW92ZVdhZ2VWYWxpZGF0aW9uKCk7XG5cbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMucGF5UmF0ZSk7XG4gICAgdGhpcy5wYXlSYXRlLnNldFZhbHVlKG51bGwpO1xuICAgIFxuICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5wYXlSYXRlRnJlcXVlbmN5KTtcbiAgICB0aGlzLnBheVJhdGVGcmVxdWVuY3kuc2V0VmFsdWUodGhpcy5wYXlSYXRlT3B0aW9ucy5maWx0ZXIocCA9PiBwLnRleHQ9PSdob3VyJylbMF0pO1xuICAgLy8gdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmNsYWltYW50RW1wbG95ZWRXaXRoRW1wcik7XG4gICAgLy90aGlzLmNsYWltYW50RW1wbG95ZWRXaXRoRW1wci5zZXRWYWx1ZShudWxsKVxuICAgIGlmKHRoaXMuY3VycmVudFN0YXRlID09PSAnQ1QnKXtcbiAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5ocnNXZWVrKTtcbiAgICAgIHRoaXMuaHJzV2Vlay5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5zaGlmdCk7XG4gICAgICB0aGlzLnNoaWZ0LnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLndvcmtXZWVrKTtcbiAgICAgIHRoaXMud29ya1dlZWsuc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZGlkV29yayk7XG4gICAgICB0aGlzLmRpZFdvcmsuc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLnBheVJhdGVGcmVxdWVuY3kuc2V0VmFsdWUodGhpcy5wYXlSYXRlT3B0aW9ucy5maWx0ZXIocCA9PiBwLnRleHQ9PSdIb3VyJylbMF0pO1xuICAgICAgdGhpcy5zZXBhcmF0aW9uRGF0ZUZsYWcuc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuc2VwYXJhdGlvbkRhdGUpO1xuICAgICAgdGhpcy5zZXBhcmF0aW9uRGF0ZS5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5mZWREaXNzbWlzYWxGbGFnKTtcbiAgICAgIHRoaXMuZmVkRGlzc21pc2FsRmxhZy5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5mZWREaXNzbWlzYWxDaGVja0JveCk7XG4gICAgICB0aGlzLmZlZERpc3NtaXNhbENoZWNrQm94LnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmZlZExhaWRPZmZGbGFnKTtcbiAgICAgIHRoaXMuZmVkTGFpZE9mZkZsYWcuc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgc2V0VmFsaWRhdGlvbk9uTWlsaXRhcnlGaWVsZHMoKSB7XG4gICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuc2VydmljZUJyYW5jaCk7XG4gICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuc3RhcnREYXRlTWlsKTtcbiAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5lbmREYXRlTWlsKTtcbiAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5kZDIxNEZsYWcpO1xuICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLm1pbFBlbnNpb25GbGFnKTtcbiAgICBpZih0aGlzLm1pbFBlbnNpb25GbGFnLnZhbHVlID09PSAnWScpe1xuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMubWlsUGVuc2lvblJlY3ZEYXRlKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZGQyMTRGbGFnLnZhbHVlID09PSAnTicpIHtcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmxhc3RQYXlHcmFkZSk7XG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5sYXN0ZHV0eSk7XG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5wbGFjZVNlcGFyYXRlZCk7XG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5ub0xlYXZlRGF5cyk7XG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5jb21wbGV0ZWRGdWxsVGVybUZsYWcpO1xuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMucmVzZXJ2ZU9yR3VhcmRGbGFnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZGQyMTRGbGFnLnZhbHVlID09PSAnWScpIHt9XG5cbiAgICBpZiAodGhpcy5yZXNlcnZlT3JHdWFyZEZsYWcudmFsdWUgPT09ICdZJykge1xuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMucmVzZXJ2ZUJyYW5jaCk7XG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5zdGFydERhdGVSZXNlcnZlKTtcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmVuZERhdGVSZXNlcnZlKTtcbiAgICB9XG4gICAgLy9taWxpdGFyeSBkb2VzIG5vdCBoYXZlIHJlYXNvbiBvZiBzZXBhcmF0aW9uXG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnJlYXNvblNlcGFyYXRpb24pO1xuICAgIHRoaXMucmVhc29uU2VwYXJhdGlvbi5zZXRWYWx1ZShudWxsKTtcbiAgfVxuXG4gIHJlbW92ZVZhbGlkYXRpb25Pbk1pbGl0YXJ5RmllbGRzKCkge1xuICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5zZXJ2aWNlQnJhbmNoKTtcbiAgICB0aGlzLnNlcnZpY2VCcmFuY2guc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnN0YXJ0RGF0ZU1pbCk7XG4gICAgdGhpcy5zdGFydERhdGVNaWwuc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVuZERhdGVNaWwpO1xuICAgIHRoaXMuZW5kRGF0ZU1pbC5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZGQyMTRGbGFnKTtcbiAgICB0aGlzLmRkMjE0RmxhZy5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMubGFzdFBheUdyYWRlKTtcbiAgICB0aGlzLmxhc3RQYXlHcmFkZS5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMubGFzdGR1dHkpO1xuICAgIHRoaXMubGFzdGR1dHkuc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnBsYWNlU2VwYXJhdGVkKTtcbiAgICB0aGlzLnBsYWNlU2VwYXJhdGVkLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5ub0xlYXZlRGF5cyk7XG4gICAgdGhpcy5ub0xlYXZlRGF5cy5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuY29tcGxldGVkRnVsbFRlcm1GbGFnKTtcbiAgICB0aGlzLmNvbXBsZXRlZEZ1bGxUZXJtRmxhZy5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMucmVzZXJ2ZU9yR3VhcmRGbGFnKTtcbiAgICB0aGlzLnJlc2VydmVPckd1YXJkRmxhZy5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMubWlsUGVuc2lvbkZsYWcpO1xuICAgIHRoaXMubWlsUGVuc2lvbkZsYWcuc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnJlc2VydmVCcmFuY2gpO1xuICAgIHRoaXMucmVzZXJ2ZUJyYW5jaC5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuc3RhcnREYXRlUmVzZXJ2ZSk7XG4gICAgdGhpcy5zdGFydERhdGVSZXNlcnZlLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5lbmREYXRlUmVzZXJ2ZSk7XG4gICAgdGhpcy5lbmREYXRlUmVzZXJ2ZS5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMubWlsUGVuc2lvblJlY3ZEYXRlKTtcbiAgICB0aGlzLm1pbFBlbnNpb25SZWN2RGF0ZS5zZXRWYWx1ZShudWxsKTtcbiAgfVxuXG4gIGdldCBlbXBsb3llclR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydlbXBsb3llclR5cGUnXTtcbiAgfVxuICBnZXQgZW1wbG95ZXJOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZW1wbG95ZXJOYW1lJ107XG4gIH1cblxuICBnZXQgZW1wbG95ZXJUZWxlcGhvbmVOdW1iZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydlbXBsb3llclRlbGVwaG9uZU51bWJlciddO1xuICB9XG5cbiAgZ2V0IHN0YXJ0RGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3N0YXJ0RGF0ZSddO1xuICB9XG5cbiAgZ2V0IGVuZERhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydlbmREYXRlJ107XG4gIH1cblxuICBnZXQgam9iVGlsZU9yUG9zaXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydqb2JUaWxlT3JQb3NpdGlvbiddO1xuICB9XG5cbiAgZ2V0IHJlYXNvblNlcGFyYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydyZWFzb25TZXBhcmF0aW9uJ107XG4gIH1cblxuICBnZXQgZGlzY2hhcmdlRGV0YWlsKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZGlzY2hhcmdlRGV0YWlsJ107XG4gIH1cblxuICBnZXQgdm9sUXVpdERldGFpbHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWyd2b2xRdWl0RGV0YWlscyddO1xuICB9XG5cbiAgZ2V0IHBheVJhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydwYXlSYXRlJ107XG4gIH1cblxuICBnZXQgZ3Jvc3NXYWdlcygpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2dyb3NzV2FnZXMnXTtcbiAgfVxuXG4gIGdldCBwYXlSYXRlRnJlcXVlbmN5KCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncGF5UmF0ZUZyZXF1ZW5jeSddO1xuICB9XG5cbiAgZ2V0IGhyc1dlZWsoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydocnNXZWVrJ107XG4gIH1cblxuICBnZXQgc2hpZnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydzaGlmdCddO1xuICB9XG5cbiAgZ2V0IHdvcmtXZWVrKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snd29ya1dlZWsnXTtcbiAgfVxuICBnZXQgcmVnRGlzc21pc2FsQ2hlY2tCb3goKXtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3JlZ0Rpc3NtaXNhbENoZWNrQm94J107XG4gIH1cbiAgZ2V0IGZlZERpc3NtaXNhbENoZWNrQm94KCl7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydmZWREaXNzbWlzYWxDaGVja0JveCddO1xuICB9XG4gIGdldCBmZWRMYWlkT2ZmRmxhZygpe1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZmVkTGFpZE9mZkZsYWcnXTtcbiAgfVxuXG4gIGdldCBkaWRXb3JrKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZGlkV29yayddO1xuICB9XG5cbiAgZ2V0IHNlcGFyYXRpb25EYXRlRmxhZygpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3NlcGFyYXRpb25EYXRlRmxhZyddO1xuICB9XG4gIGdldCByZWdEaXNzbWlzYWxGbGFnKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncmVnRGlzc21pc2FsRmxhZyddO1xuICB9XG4gIGdldCBmZWREaXNzbWlzYWxGbGFnKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZmVkRGlzc21pc2FsRmxhZyddO1xuICB9XG4gIGdldCByZWdMYWlkT2ZmRmxhZygpe1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncmVnTGFpZE9mZkZsYWcnXTtcbiAgfVxuXG4gIGdldCBzZXBhcmF0aW9uRGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3NlcGFyYXRpb25EYXRlJ107XG4gIH1cblxuICBnZXQgcGVuc2lvbkZsYWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydwZW5zaW9uRmxhZyddO1xuICB9XG4gIFxuICBnZXQgcGVuc2lvblJlY3ZEYXRlKCl7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydwZW5zaW9uUmVjdkRhdGUnXTtcbiAgfVxuXG4gIGdldCByZWdQZW5zaW9uRmxhZygpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3JlZ1BlbnNpb25GbGFnJ107XG4gIH1cbiAgXG4gIGdldCByZWdQZW5zaW9uUmVjdkRhdGUoKXtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3JlZ1BlbnNpb25SZWN2RGF0ZSddO1xuICB9XG5cbiAgZ2V0IGlzQ2xtdFBhaWRXaGlsZUxvdygpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2lzQ2xtdFBhaWRXaGlsZUxvdyddO1xuICB9XG5cbiAgZ2V0IGhhc1Nob3J0VGVybURpc2FiaWxpdHkoKXtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2hhc1Nob3J0VGVybURpc2FiaWxpdHknXTtcbiAgfVxuXG4gIGdldCBoYXNSZWN2UmVtdW5lcmF0aW9uKCl7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydoYXNSZWN2UmVtdW5lcmF0aW9uJ107XG4gIH1cblxuICBnZXQgcmVtdW5lcmF0aW9uVHlwZXMoKXtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3JlbXVuZXJhdGlvblR5cGVzJ107XG4gIH1cblxuICBnZXQgdmFjYXRpb24oKXtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3ZhY2F0aW9uJ107XG4gIH1cbiAgLy8gZ2V0IHBhaWRCeSgpIHtcbiAgLy8gICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3BhaWRCeSddO1xuICAvLyB9XG5cbiAgZ2V0IHBheW1lbnRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncGF5bWVudFR5cGUnXTtcbiAgfVxuXG4gIGdldCBkb2NzUmVjZWl2ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydkb2NzUmVjZWl2ZWQnXTtcbiAgfVxuXG4gIGdldCBvdGhlclNTTkZsYWcoKXtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ290aGVyU1NORmxhZyddO1xuICB9XG5cbiAgZ2V0IG90aGVyU1NOKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snb3RoZXJTU04nXTtcbiAgfVxuXG4gIGdldCBvdGhlck5hbWVGbGFnKCl7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydvdGhlck5hbWVGbGFnJ107XG4gIH1cblxuICBnZXQgb3RoZXJOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snb3RoZXJOYW1lJ107XG4gIH1cblxuICBnZXQgZG9pbmdCdXNpbmVzc0FzKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZG9pbmdCdXNpbmVzc0FzJ107XG4gIH1cblxuICBnZXQgd29ya0ZsYWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWyd3b3JrRmxhZyddO1xuICB9XG5cbiAgLy8gZ2V0IHF1aXRyZWFzb24oKSB7XG4gIC8vICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydxdWl0cmVhc29uJ107XG4gIC8vIH1cblxuICBnZXQgd29ya0NpdHkoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWyd3b3JrQ2l0eSddO1xuICB9XG5cbiAgZ2V0IHdvcmtTdGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3dvcmtTdGF0ZSddO1xuICB9XG5cbiAgLypnZXQgaGlyZWRCeSgpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2hpcmVkQnknXTtcbiAgfVxuXG4gIGdldCBmZWluKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZmVpbiddO1xuICB9Ki9cblxuICBnZXQgd29ya1R5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWyd3b3JrVHlwZSddO1xuICB9XG5cbiAgLypnZXQgbnVtYmVyRW1wbG95ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydudW1iZXJFbXBsb3llZCddO1xuICB9Ki9cblxuICAvKmdldCBidXNpbmVzc05hdHVyZSgpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2J1c2luZXNzTmF0dXJlJ107XG4gIH0qL1xuXG4gIGdldCBkaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcygpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2Rpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzJ107XG4gIH1cblxuICAvLyBnZXQgd2FnZVF1YXJ0ZXIxKCkge1xuICAvLyAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snd2FnZVF1YXJ0ZXIxJ107XG4gIC8vIH1cblxuICAvLyBnZXQgd2FnZVF1YXJ0ZXIyKCkge1xuICAvLyAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snd2FnZVF1YXJ0ZXIyJ107XG4gIC8vIH1cblxuXG4gIC8vIGdldCB3YWdlUXVhcnRlcjMoKSB7XG4gIC8vICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWyd3YWdlUXVhcnRlcjMnXTtcbiAgLy8gfVxuXG5cblxuICAvLyBnZXQgd2FnZVF1YXJ0ZXI0KCkge1xuICAvLyAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snd2FnZVF1YXJ0ZXI0J107XG4gIC8vIH1cblxuICBnZXQgZmljQ29kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2ZpY0NvZGUnXTtcbiAgfVxuXG4gIGdldCBmaWNEZXN0aW5hdGlvbkNvZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydmaWNEZXN0aW5hdGlvbkNvZGUnXTtcbiAgfVxuXG4gIGdldCBmaWNEZXN0aW5hdGlvbklkKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZmljRGVzdGluYXRpb25JZCddO1xuICB9XG4gICAgICBcbiAgXG4gIC8vIGdldCBmb3JtZXJseUtub3duQXMoKSB7XG4gIC8vICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydmb3JtZXJseUtub3duQXMnXTtcbiAgLy8gfVxuXG4gIGdldCBzZkVpZ2h0ZmxhZygpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3NmRWlnaHRmbGFnJ107XG4gIH1cblxuICBnZXQgZmVkV29ya0NpdHkoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydmZWRXb3JrQ2l0eSddO1xuICB9XG5cbiAgZ2V0IGZlZFdvcmtTdGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2ZlZFdvcmtTdGF0ZSddO1xuICB9XG5cblxuICBnZXQgZmVkV29ya0NvdW50cnkoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydmZWRXb3JrQ291bnRyeSddO1xuICB9XG5cblxuICBnZXQgc3RhcnREYXRlRmVkKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snc3RhcnREYXRlRmVkJ107XG4gIH1cblxuICBnZXQgZW5kRGF0ZUZlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2VuZERhdGVGZWQnXTtcbiAgfVxuXG4gIGdldCBmZWRKb2JUaWxlT3JQb3NpdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2ZlZEpvYlRpbGVPclBvc2l0aW9uJ107XG4gIH1cblxuICAvKiBnZXQgY2xhaW1hbnRFbXBsb3llZFdpdGhFbXByKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snY2xhaW1hbnRFbXBsb3llZFdpdGhFbXByJ107XG4gIH0gKi9cblxuICBnZXQgcGVyZm9ybWVkU2VydmljZSgpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3BlcmZvcm1lZFNlcnZpY2UnXTtcbiAgfVxuXG4gIGdldCBmZWRQZW5zaW9uRmxhZygpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2ZlZFBlbnNpb25GbGFnJ107XG4gIH1cblxuICBnZXQgZmVkUGVuc2lvblJlY3ZEYXRlKCl7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydmZWRQZW5zaW9uUmVjdkRhdGUnXTtcbiAgfVxuXG4gIGdldCBzZXZQYXlGbGFnKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snc2V2UGF5RmxhZyddO1xuICB9XG5cbiAgZ2V0IHdlZWtseUFtb3VudCgpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3dlZWtseUFtb3VudCddO1xuICB9XG5cbiAgZ2V0IG51bWJlck9mV2Vla3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydudW1iZXJPZldlZWtzJ107XG4gIH1cblxuICBnZXQgc2V2UGF5QW1vdW50KCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snc2V2UGF5QW1vdW50J107XG4gIH1cblxuXG4gIGdldCBzZXZQYXlTdGFydERhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydzZXZQYXlTdGFydERhdGUnXTtcbiAgfVxuXG5cbiAgZ2V0IHNldlBheUVuZERhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydzZXZQYXlFbmREYXRlJ107XG4gIH1cblxuICBnZXQgc2V2UGF5UGF5bWVudFN0YXJ0RGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3NldlBheVBheW1lbnRTdGFydERhdGUnXTtcbiAgfVxuXG4gIGdldCByZWdFbXBsb3llckZvdW5kKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncmVnRW1wbG95ZXJGb3VuZCddO1xuICB9XG5cbiAgZ2V0IGVtcGxveWVySWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydlbXBsb3llcklkJ107XG4gIH1cblxuICBnZXQgZmVkRW1wbG95ZXJOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZmVkRW1wbG95ZXJOYW1lJ107XG4gIH1cbiAgZ2V0IHNlcnZpY2VCcmFuY2goKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydzZXJ2aWNlQnJhbmNoJ107XG4gIH1cblxuICBnZXQgc3RhcnREYXRlTWlsKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snc3RhcnREYXRlTWlsJ107XG4gIH1cblxuICBnZXQgZW5kRGF0ZU1pbCgpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2VuZERhdGVNaWwnXTtcbiAgfVxuXG4gIGdldCBkZDIxNEZsYWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydkZDIxNEZsYWcnXTtcbiAgfVxuXG4gIGdldCBsYXN0UGF5R3JhZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydsYXN0UGF5R3JhZGUnXTtcbiAgfVxuXG4gIGdldCBsYXN0ZHV0eSgpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2xhc3RkdXR5J107XG4gIH1cblxuICBnZXQgcGxhY2VTZXBhcmF0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydwbGFjZVNlcGFyYXRlZCddO1xuICB9XG5cbiAgZ2V0IG5vTGVhdmVEYXlzKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snbm9MZWF2ZURheXMnXTtcbiAgfVxuXG4gIGdldCBjb21wbGV0ZWRGdWxsVGVybUZsYWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydjb21wbGV0ZWRGdWxsVGVybUZsYWcnXTtcbiAgfVxuXG4gIGdldCByZXNlcnZlT3JHdWFyZEZsYWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydyZXNlcnZlT3JHdWFyZEZsYWcnXTtcbiAgfVxuXG4gIGdldCBtaWxQZW5zaW9uRmxhZygpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ21pbFBlbnNpb25GbGFnJ107XG4gIH1cblxuICBnZXQgbWlsUGVuc2lvblJlY3ZEYXRlKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snbWlsUGVuc2lvblJlY3ZEYXRlJ107XG4gIH1cblxuICBnZXQgYWRkcmVzc0xpbmUxKCl7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydhZGRyZXNzTGluZTEnXTtcbiAgfVxuXG4gIGdldCBhZGRyZXNzTGluZTIoKXtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2FkZHJlc3NMaW5lMiddO1xuICB9XG5cbiAgZ2V0IGFkZHJlc3NMaW5lMygpe1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snYWRkcmVzc0xpbmUzJ107XG4gIH1cblxuICBnZXQgZmljRGVzdGluYXRpb25OYW1lKCl7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydmaWNEZXN0aW5hdGlvbk5hbWUnXTtcbiAgfVxuXG4gIGdldCByZXNlcnZlQnJhbmNoKCl7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydyZXNlcnZlQnJhbmNoJ107XG4gIH1cblxuICBnZXQgc3RhcnREYXRlUmVzZXJ2ZSgpe1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snc3RhcnREYXRlUmVzZXJ2ZSddO1xuICB9XG5cbiAgZ2V0IGVuZERhdGVSZXNlcnZlKCl7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydlbmREYXRlUmVzZXJ2ZSddO1xuICB9XG4gIFxuICBnZXQgZGQyMTRGaWxlKCl7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydkZDIxNEZpbGUnXTtcbiAgfVxuXG4gIGdldCBhZGRyZXNzKCl7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydhZGRyZXNzJ107XG4gIH1cblxuICBnZXQgb3NhQnBFbXBsb3llckZsYWcoKXtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ29zYUJwRW1wbG95ZXJGbGFnJ107XG4gIH1cblxuICBnZXQgZGlzcGxheVNlYXNvbmFsRW1wKCl7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydkaXNwbGF5U2Vhc29uYWxFbXAnXTtcbiAgfVxuXG4gIGdldCBzY2hvb2xGbGFnRW1wKCl7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydzY2hvb2xGbGFnRW1wJ107XG4gIH1cblxuICBvblRvZ2dsZUNoYW5nZUVtcGxveWVyVHlwZShvYmo6IGFueSkge1xuICAgIGlmKHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCcpe1xuICAgICAgICB0aGlzLmFkZHJlc3MuZGlzYWJsZSgpO1xuICAgICAgfVxuICAgIHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsID0+IHtcbiAgICAgIHRoaXMucGF5UmF0ZUZyZXF1ZW5jeS5zZXRWYWx1ZSh0aGlzLnBheVJhdGVPcHRpb25zLmZpbHRlcihwID0+IHAudGV4dD09J2hvdXInKVswXSk7XG4gICAgICB0aGlzLnJlYXNvblNlcGFyYXRpb24uc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmFkZHJlc3MuZW5hYmxlKCk7XG4gICAgICB0aGlzLmFkZHJlc3Muc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmZpY0NvZGUuc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmZpY0Rlc3RpbmF0aW9uQ29kZS5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMuYWRkcmVzc0xpbmUxLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5hZGRyZXNzTGluZTIuc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmFkZHJlc3NMaW5lMy5zZXRWYWx1ZShudWxsKTtcbiAgICAgIGlmKHRoaXMuY3VycmVudFN0YXRlID09PSAnQ1QnKXtcbiAgICAgICAgdGhpcy5wYXlSYXRlRnJlcXVlbmN5LnNldFZhbHVlKHRoaXMucGF5UmF0ZU9wdGlvbnMuZmlsdGVyKHAgPT4gcC50ZXh0PT0nSG91cicpWzBdKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZ2V0UmVhc29uU2VwZXJhdGlvbkJhc2VkT25Db25kaXRpb24oKTtcbiAgICB9KVxuICB9XG5cbiBcblxuICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XG4gICAgLy90aGlzLmVtcE5hbWUgPSBvYmo7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoID0gZm47XG4gIH1cbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuXG4gIH1cblxuICBvbk1vZGVsQ2FuY2VsKGNhbmNlbDogYm9vbGVhbikge1xuICAgIHRoaXMubW9kZWxDYW5jZWwuZW1pdChjYW5jZWwpO1xuICB9XG5cbiAgc2V0RW1wbG95ZXIoZW1wbG95ZXI6IEVtcGxveWVyRGV0YWlsU2VhcmNoUmVzdWx0KSB7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ3NldEVtcGxveWVyIGNhbGxlZCcsIGVtcGxveWVyLCBcInR5cGVcIiwgdGhpcy5lbXBsb3llclR5cGUsICd0aGlzLmFkZEVtcGxveWVyRm9ybScsdGhpcy5hZGRFbXBsb3llckZvcm0pO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdlbXBsb3llci5zdGF0ZScsIGVtcGxveWVyLnN0YXRlKVxuICAgIGlmKHRoaXMuY3VycmVudFN0YXRlID09PSAnQ1QnKSB7XG4gICAgICB0aGlzLmVtcGxveWVyU2VydmljZS5nZXRFbXBsb3llckRhdGFCeUlkKGVtcGxveWVyLmVtcGxveWVySWQpLnN1YnNjcmliZShcbiAgICAgICAgcmVzcG9uc2UgPT4ge1xuICAgICAgICAgIHRoaXMuZ2V0UmVhc29uU2VwZXJhdGlvbkJhc2VkT25Db25kaXRpb24ocmVzcG9uc2Uuc2Nob29sRmxhZywgcmVzcG9uc2Uuc3BvcnRzRmxhZyk7XG4gICAgICB9XG4gICAgKTtcbiAgICB9XG4gICAgdGhpcy5hZGRyZXNzLnNldFZhbHVlKHtjb3VudHJ5OmVtcGxveWVyLmNvdW50cnksIGNpdHk6ZW1wbG95ZXIuY2l0eVxuICAgICwgemlwOmVtcGxveWVyLnppcCxzdHJlZXRBZGRyZXNzOmVtcGxveWVyLmFkZHJlc3NEaXNwbGF5VmFsLHN0YXRlOmVtcGxveWVyLnN0YXRlLFxuICAgIG9wdGlvbmFsQWRkcmVzczpudWxsLGNvdW50eTpudWxsLHRvd246bnVsbFxuICAgIH0pO1xuICAgIHRoaXMuYWRkcmVzcy5kaXNhYmxlKCk7XG4gICAgdGhpcy5lbXBsb3llcklkLnNldFZhbHVlKGVtcGxveWVyLmVtcGxveWVySWQpO1xuICAgIHRoaXMuYWRkcmVzc0xpbmUxLnNldFZhbHVlKGVtcGxveWVyLmFkZHJlc3NMaW5lMSk7XG4gICAgdGhpcy5hZGRyZXNzTGluZTIuc2V0VmFsdWUoZW1wbG95ZXIuYWRkcmVzc0xpbmUyKTtcbiAgICB0aGlzLmFkZHJlc3NMaW5lMy5zZXRWYWx1ZShlbXBsb3llci5hZGRyZXNzTGluZTMpO1xuICAgIHRoaXMucmVnRW1wbG95ZXJGb3VuZC5zZXRWYWx1ZSh0cnVlKTtcbiAgfVxuXG4gIHNldEZlZEVtcGxveWVyKGVtcGxveWVyOiBFbXBsb3llckRldGFpbFNlYXJjaFJlc3VsdCl7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ3NldEZlZEVtcGxveWVyIGNhbGxlZCcsIGVtcGxveWVyLCBcInppcCBcIiwgZW1wbG95ZXIuemlwKTtcbiAgICB0aGlzLmdldFJlYXNvblNlcGVyYXRpb25CYXNlZE9uQ29uZGl0aW9uKCk7ICAgICAgICAgICAgXG4gICAgdGhpcy5maWNDb2RlLnNldFZhbHVlKGVtcGxveWVyLmZpY0NvZGUpO1xuICAgIHRoaXMuZmljQ29kZS5kaXNhYmxlKCk7XG4gICAgdGhpcy5maWNEZXN0aW5hdGlvbk5hbWUuc2V0VmFsdWUoZW1wbG95ZXIuZmljRGVzdGluYXRpb25OYW1lKTtcbiAgICB0aGlzLmZpY0Rlc3RpbmF0aW9uSWQuc2V0VmFsdWUoZW1wbG95ZXIuZmljRGVzdGluYXRpb25JZCk7XG4gICAgdGhpcy5maWNEZXN0aW5hdGlvbk5hbWUuZGlzYWJsZSgpO1xuICAgIHRoaXMuZmljRGVzdGluYXRpb25Db2RlLnNldFZhbHVlKGVtcGxveWVyLmZpY0Rlc3RpbmF0aW9uQ29kZSk7XG4gICAgdGhpcy5hZGRyZXNzLnNldFZhbHVlKHtjb3VudHJ5OmVtcGxveWVyLmNvdW50cnksIGNpdHk6ZW1wbG95ZXIuY2l0eVxuICAgICAgLCB6aXA6ZW1wbG95ZXIuemlwLHN0cmVldEFkZHJlc3M6ZW1wbG95ZXIuYWRkcmVzc0xpbmUxLHN0YXRlOmVtcGxveWVyLnN0YXRlLFxuICAgICAgb3B0aW9uYWxBZGRyZXNzOmVtcGxveWVyLmFkZHJlc3NMaW5lMixjb3VudHk6bnVsbCx0b3duOm51bGxcbiAgICAgIH0pO1xuICAgIHRoaXMuYWRkcmVzcy5kaXNhYmxlKCk7XG4gICAgdGhpcy5lbXBsb3llcklkLnNldFZhbHVlKGVtcGxveWVyLmVtcGxveWVySWQpO1xuICAgIHRoaXMuYWRkcmVzc0xpbmUxLnNldFZhbHVlKGVtcGxveWVyLmFkZHJlc3NMaW5lMSk7XG4gICAgdGhpcy5hZGRyZXNzTGluZTIuc2V0VmFsdWUoZW1wbG95ZXIuYWRkcmVzc0xpbmUyKTtcbiAgICB0aGlzLmFkZHJlc3NMaW5lMy5zZXRWYWx1ZShlbXBsb3llci5hZGRyZXNzTGluZTMpO1xuICAgIHRoaXMucmVnRW1wbG95ZXJGb3VuZC5zZXRWYWx1ZShmYWxzZSk7XG4gIH1cblxuICByZXNldEZlZEVtcGxveWVyKGVtcGxveWVyOiBFbXBsb3llckRldGFpbFNlYXJjaFJlc3VsdCl7XG4gICAgdGhpcy5hZGRyZXNzLmRpc2FibGUoKTtcbiAgICB0aGlzLmFkZHJlc3Muc2V0VmFsdWUoe2NvdW50cnk6bnVsbCwgY2l0eTpudWxsXG4gICAgICAsIHppcDpudWxsLHN0cmVldEFkZHJlc3M6bnVsbCxzdGF0ZTpudWxsLFxuICAgICAgb3B0aW9uYWxBZGRyZXNzOm51bGwsY291bnR5Om51bGwsdG93bjpudWxsXG4gICAgICB9KTtcbiAgICB0aGlzLnJlZ0VtcGxveWVyRm91bmQuc2V0VmFsdWUoZmFsc2UpO1xuICB9XG5cbiAgcmVzZXRFbXBsb3llcihlbXBsb3llcjogRW1wbG95ZXJEZXRhaWxTZWFyY2hSZXN1bHQpIHtcbiAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3Jlc2V0RW1wbG95ZXIgY2FsbGVkJywgZW1wbG95ZXIpO1xuICAgICB0aGlzLmFkZHJlc3MuZW5hYmxlKCk7XG4gICAgIHRoaXMuYWRkcmVzcy5zZXRWYWx1ZSh7Y291bnRyeTpudWxsLCBjaXR5Om51bGxcbiAgICAgICwgemlwOm51bGwsc3RyZWV0QWRkcmVzczpudWxsLHN0YXRlOm51bGwsXG4gICAgICBvcHRpb25hbEFkZHJlc3M6bnVsbCxjb3VudHk6bnVsbCx0b3duOm51bGxcbiAgICAgIH0pO1xuICAgIHRoaXMucmVnRW1wbG95ZXJGb3VuZC5zZXRWYWx1ZShmYWxzZSk7XG4gIH1cblxuXG4gIHB1dE1pbFJlc0JyYW5jaFZhbGlkYXRpb24oZXZlbnQpe1xuICAgIGlmIChldmVudC5vcHRpb24udmFsdWUgPT09ICdZJykge1xuICAgICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5yZXNlcnZlQnJhbmNoKTtcbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuc3RhcnREYXRlUmVzZXJ2ZSk7XG4gICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmVuZERhdGVSZXNlcnZlKTtcbiAgICB9XG4gICAgZWxzZXtcbiAgICAgIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydyZXNlcnZlQnJhbmNoJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMucmVzZXJ2ZUJyYW5jaCk7XG4gICAgICB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snc3RhcnREYXRlUmVzZXJ2ZSddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnN0YXJ0RGF0ZVJlc2VydmUpO1xuICAgICAgdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2VuZERhdGVSZXNlcnZlJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW5kRGF0ZVJlc2VydmUpO1xuICAgIH1cbiAgfVxuXG4gIHB1dE1pbFZhbGlkYXRpb24oZXZlbnQpe1xuICAgIC8qaWYgKGV2ZW50Lm9wdGlvbi52YWx1ZSA9PT0gJ04nKSB7XG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5sYXN0UGF5R3JhZGUpO1xuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMubGFzdGR1dHkpO1xuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMucGxhY2VTZXBhcmF0ZWQpO1xuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMubm9MZWF2ZURheXMpO1xuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuY29tcGxldGVkRnVsbFRlcm1GbGFnKTtcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnJlc2VydmVPckd1YXJkRmxhZyk7XG4gICAgfVxuICAgIGVsc2V7XG4gICAgICB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snbGFzdFBheUdyYWRlJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snbGFzdGR1dHknXS5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydwbGFjZVNlcGFyYXRlZCddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ25vTGVhdmVEYXlzJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snY29tcGxldGVkRnVsbFRlcm1GbGFnJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncmVzZXJ2ZU9yR3VhcmRGbGFnJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMubGFzdFBheUdyYWRlKTtcbiAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5sYXN0ZHV0eSk7XG4gICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMucGxhY2VTZXBhcmF0ZWQpO1xuICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLm5vTGVhdmVEYXlzKTtcbiAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5jb21wbGV0ZWRGdWxsVGVybUZsYWcpO1xuICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnJlc2VydmVPckd1YXJkRmxhZyk7XG4gICAgfSovXG4gIH1cblxuICBvbk9wdGlvbkNoYW5nZShldmVudCkge1xuICAgIGlmIChldmVudC5vcHRpb24udmFsdWUgPT09ICdZJykge1xuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuZW1wbG95ZXJUZWxlcGhvbmVOdW1iZXIpO1xuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuc3RhcnREYXRlKTtcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmVuZERhdGUpO1xuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuam9iVGlsZU9yUG9zaXRpb24pO1xuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMucmVhc29uU2VwYXJhdGlvbik7XG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5wYXlSYXRlKTtcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnBheVJhdGVGcmVxdWVuY3kpO1xuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMucGVuc2lvbkZsYWcpO1xuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuaXNDbG10UGFpZFdoaWxlTG93KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2VtcGxveWVyVGVsZXBob25lTnVtYmVyJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snc3RhcnREYXRlJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZW5kRGF0ZSddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2pvYlRpbGVPclBvc2l0aW9uJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncmVhc29uU2VwYXJhdGlvbiddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3BheVJhdGUnXS5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydwYXlSYXRlRnJlcXVlbmN5J10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncGVuc2lvbkZsYWcnXS5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydpc0NsbXRQYWlkV2hpbGVMb3cnXS5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5lbXBsb3llclRlbGVwaG9uZU51bWJlcik7XG4gICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuc3RhcnREYXRlKTtcbiAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5lbmREYXRlKTtcbiAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5qb2JUaWxlT3JQb3NpdGlvbik7XG4gICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMucmVhc29uU2VwYXJhdGlvbik7XG4gICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMucGF5UmF0ZSk7XG4gICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMucGF5UmF0ZUZyZXF1ZW5jeSk7XG4gICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMucGVuc2lvbkZsYWcpO1xuICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmlzQ2xtdFBhaWRXaGlsZUxvdyk7XG4gICAgfVxuICB9XG5cbiAgc2F2ZSgpe1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd0aGlzLnNhdmUudmFsdWUnLCB0aGlzLmFkZEVtcGxveWVyRm9ybSk7XG4gICAgaWYodGhpcy53b3JrRmxhZy52YWx1ZT09PSdOJyl7XG4gICAgICBpZiAodGhpcy5hZGRFbXBsb3llckZvcm0udmFsaWQpIHtcbiAgICAgIHRoaXMuYWRkRW1wbG95ZXJGb3JtLnZhbHVlLmlzRW1wbG95ZXJFZGl0ZWQgPSB0cnVlO1xuICAgICAgdGhpcy5zdWNjZXNzLmVtaXQodGhpcy5hZGRFbXBsb3llckZvcm0udmFsdWUpO1xuICAgICAgdGhpcy5kaXNwbGF5ID0gZmFsc2U7XG4gICAgfVxuICAgIH1lbHNle1xuICAgICAgdGhpcy5hZGQoKTtcbiAgICB9XG4gIH1cblxuICBhZGQoKSB7XG5cbiAgICBjb25zdCBpbnZhbGlkID0gW107XG4gICAgICBjb25zdCBjb250cm9scyA9IHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzO1xuICAgICAgZm9yIChjb25zdCBuYW1lIGluIGNvbnRyb2xzKSB7XG4gICAgICAgICAgaWYgKGNvbnRyb2xzW25hbWVdLmludmFsaWQpIHtcbiAgICAgICAgICAgICAgaW52YWxpZC5wdXNoKG5hbWUpO1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcImludmFsaWRbXVwiLCBpbnZhbGlkKSA7XG4gICAgICAgIFxuXHQgIGlmKCghdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciB8fCB0aGlzLm9zYUJwRW1wbG95ZXJGbGFnLnZhbHVlPT09JzEnKSAmJiB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSAhPSAnTUlMJykge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3ZhbGlkYXRlIGFkZHJlc3MgY29tcG9uZW50Jyk7XG4gICAgIFx0dGhpcy52YWxpZGF0ZUFkZHJlc3MoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuYWRkRW1wbG95ZXJGb3JtLnZhbGlkKSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndGhpcy5hZGQudmFsdWUnLCB0aGlzLmFkZEVtcGxveWVyRm9ybSk7IFxuICAgICAgdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2ZpY0NvZGUnXS5lbmFibGUoKTtcbiAgICAgIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydmaWNEZXN0aW5hdGlvbk5hbWUnXS5lbmFibGUoKTtcbiAgICAgIHRoaXMuYWRkcmVzcy5lbmFibGUoKTtcbiAgICAgIHRoaXMuYWRkRW1wbG95ZXJGb3JtLnZhbHVlLmlzRW1wbG95ZXJFZGl0ZWQgPSB0cnVlO1xuICAgICAgdGhpcy5zdWNjZXNzLmVtaXQodGhpcy5hZGRFbXBsb3llckZvcm0udmFsdWUpO1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXCJhZGQgZm9ybSBkZXRhaWxzIGFkZCgpLSBcIiwgdGhpcy5hZGRFbXBsb3llckZvcm0pO1xuICAgICAgdGhpcy5kaXNwbGF5ID0gZmFsc2U7XG4gICAgfSBlbHNle1xuICAgICAgdGhpcy51dGlsLmZvY3VzT25TdWJtaXQodGhpcy5lbClcbiAgICB9XG5cbiAgfVxuXG4gIHZhbGlkYXRlQWRkcmVzcygpIHtcbiAgICBsZXQgYWRkcmVzc0NvbXBWYWx1ZTogQWRkcmVzc0NvbXBvbmVudE1vZGVsO1xuICAgIGFkZHJlc3NDb21wVmFsdWUgPSB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snYWRkcmVzcyddLnZhbHVlO1xuICAgIGlmIChhZGRyZXNzQ29tcFZhbHVlKSB7XG4gICAgICBpZiAoIWFkZHJlc3NDb21wVmFsdWUuY2l0eSB8fCAhYWRkcmVzc0NvbXBWYWx1ZS5zdGF0ZSB8fFxuICAgICAgICAhYWRkcmVzc0NvbXBWYWx1ZVsnemlwJ10gfHwgIWFkZHJlc3NDb21wVmFsdWUuY291bnRyeSB8fFxuICAgICAgICAhYWRkcmVzc0NvbXBWYWx1ZVsnc3RyZWV0QWRkcmVzcyddXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2FkZHJlc3MnXS5zZXRFcnJvcnMoeyBhZGRyZXNzVmFsaWRhdGlvbkZsYWc6IHRydWUgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydhZGRyZXNzJ10uc2V0RXJyb3JzKHsgYWRkcmVzc1ZhbGlkYXRpb25GbGFnOiB0cnVlIH0pO1xuICAgIH1cbiAgICBpZih0aGlzLmFkZHJlc3MxKXtcbiAgICAgIHRoaXMuYWRkcmVzczEuc3VibWl0KCk7XG4gICAgfVxuICAgIGlmKHRoaXMuYWRkcmVzczIpe1xuICAgICAgdGhpcy5hZGRyZXNzMi5zdWJtaXQoKTtcbiAgICB9XG4gICAgaWYodGhpcy5hZGRyZXNzMyl7XG4gICAgICB0aGlzLmFkZHJlc3MzLnN1Ym1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIGZpbHRlckNvdW50cnkoZXZlbnQpIHtcbiAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ2V2ZW50JywgZXZlbnQpXG4gICAgbGV0IGZpbHRlcmVkOiBhbnlbXSA9IFtdO1xuICAgIGxldCBxdWVyeSA9IGV2ZW50LnF1ZXJ5O1xuICAgIHRoaXMuY291bnRyeU9wdGlvbnMgPSBDb21ib09wdGlvbi5DT1VOVFJZO1xuICAgIC8vdGhpcy5zdGF0ZS5zZXRWYWx1ZShudWxsKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuY291bnRyeU9wdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGxldCBjb3VudHJ5ID0gdGhpcy5jb3VudHJ5T3B0aW9uc1tpXTtcbiAgICAgIGlmIChjb3VudHJ5LnRleHQudG9Mb3dlckNhc2UoKS5pbmRleE9mKHF1ZXJ5LnRvTG93ZXJDYXNlKCkpID09IDApIHtcbiAgICAgICAgZmlsdGVyZWQucHVzaChjb3VudHJ5KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5jb3VudHJ5T3B0aW9ucyA9IGZpbHRlcmVkO1xuICB9XG5cbiAgZmlsdGVyRmVkQ291bnRyeShldmVudCkge1xuICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnZXZlbnQnLCBldmVudClcbiAgICBsZXQgZmlsdGVyZWQ6IGFueVtdID0gW107XG4gICAgbGV0IHF1ZXJ5ID0gZXZlbnQucXVlcnk7XG4gICAgdGhpcy5jb3VudHJ5RmVkT3B0aW9ucyA9IENvbWJvT3B0aW9uLkNPVU5UUlk7XG4gICAgLy90aGlzLnN0YXRlLnNldFZhbHVlKG51bGwpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5jb3VudHJ5RmVkT3B0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgbGV0IGNvdW50cnkgPSB0aGlzLmNvdW50cnlGZWRPcHRpb25zW2ldO1xuICAgICAgaWYgKGNvdW50cnkudGV4dC50b0xvd2VyQ2FzZSgpLmluZGV4T2YocXVlcnkudG9Mb3dlckNhc2UoKSkgPT0gMCkge1xuICAgICAgICBmaWx0ZXJlZC5wdXNoKGNvdW50cnkpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmNvdW50cnlGZWRPcHRpb25zID0gZmlsdGVyZWQ7XG4gIH1cblxuICBzZXRGZWRXb3JrU3RhdGVWYWx1ZXMoZXZlbnQpe1xuICAgIGlmKGV2ZW50LnZhbHVlID09PSAnVVMnKXtcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmZlZFdvcmtTdGF0ZSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmZlZFdvcmtTdGF0ZSk7XG4gICAgICB0aGlzLmZlZFdvcmtTdGF0ZS5zZXRWYWx1ZShudWxsKTtcbiAgICB9XG4gIH1cblxuICBmaWx0ZXJXb3JrQ291bnRyeShldmVudCkge1xuICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnZXZlbnQnLCBldmVudClcbiAgICBsZXQgZmlsdGVyZWQ6IGFueVtdID0gW107XG4gICAgbGV0IHF1ZXJ5ID0gZXZlbnQucXVlcnk7XG4gICAgdGhpcy53b3JrQ291bnRyeU9wdGlvbnMgPSBDb21ib09wdGlvbi5XT1JLX0NPVU5UUlk7XG4gICAgLy90aGlzLnN0YXRlLnNldFZhbHVlKG51bGwpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy53b3JrQ291bnRyeU9wdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGxldCBjb3VudHJ5ID0gdGhpcy53b3JrQ291bnRyeU9wdGlvbnNbaV07XG4gICAgICBpZiAoY291bnRyeS50ZXh0LnRvTG93ZXJDYXNlKCkuaW5kZXhPZihxdWVyeS50b0xvd2VyQ2FzZSgpKSA9PSAwKSB7XG4gICAgICAgIGZpbHRlcmVkLnB1c2goY291bnRyeSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMud29ya0NvdW50cnlPcHRpb25zID0gZmlsdGVyZWQ7XG4gIH1cblxuXG4gIGZpbHRlck1pbGl0YXJ5U2VydmljZU9wdGlvbnMoZXZlbnQpIHtcblxuICAgIGxldCBmaWx0ZXJlZDogYW55W10gPSBbXTtcbiAgICBsZXQgcXVlcnkgPSBldmVudC5xdWVyeTtcbiAgICB0aGlzLm1pbGl0YXJ5U2VydmljZU9wdGlvbnMgPSBDb21ib09wdGlvbi5NSUxJVEFSWV9TRVJWSUNFO1xuICAgIC8vdGhpcy5zdGF0ZS5zZXRWYWx1ZShudWxsKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubWlsaXRhcnlTZXJ2aWNlT3B0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgbGV0IG9wdGlvbnMgPSB0aGlzLm1pbGl0YXJ5U2VydmljZU9wdGlvbnNbaV07XG4gICAgICBpZiAob3B0aW9ucy50ZXh0LnRvTG93ZXJDYXNlKCkuaW5kZXhPZihxdWVyeS50b0xvd2VyQ2FzZSgpKSA9PSAwKSB7XG4gICAgICAgIGZpbHRlcmVkLnB1c2gob3B0aW9ucyk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMubWlsaXRhcnlTZXJ2aWNlT3B0aW9ucyA9IGZpbHRlcmVkO1xuXG4gIH1cblxuICBmaWx0ZXJNaWxpdGFyeVNlcnZpY2VPcHRpb25zV2l0aFNwYWNlKGV2ZW50KSB7XG4gICAgbGV0IGZpbHRlcmVkOiBhbnlbXSA9IFtdO1xuICAgIGxldCBxdWVyeSA9IGV2ZW50LnF1ZXJ5O1xuICAgIHRoaXMubWlsaXRhcnlTZXJ2aWNlT3B0aW9uc1dpdGhTcGFjZSA9IENvbWJvT3B0aW9uLk1JTElUQVJZX1NFUlZJQ0VfVVNTRjtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubWlsaXRhcnlTZXJ2aWNlT3B0aW9uc1dpdGhTcGFjZS5sZW5ndGg7IGkrKykge1xuICAgICAgbGV0IG9wdGlvbnMgPSB0aGlzLm1pbGl0YXJ5U2VydmljZU9wdGlvbnNXaXRoU3BhY2VbaV07XG4gICAgICBpZiAob3B0aW9ucy50ZXh0LnRvTG93ZXJDYXNlKCkuaW5kZXhPZihxdWVyeS50b0xvd2VyQ2FzZSgpKSA9PSAwKSB7XG4gICAgICAgIGZpbHRlcmVkLnB1c2gob3B0aW9ucyk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMubWlsaXRhcnlTZXJ2aWNlT3B0aW9uc1dpdGhTcGFjZSA9IGZpbHRlcmVkO1xuICB9XG5cbiAgZmlsdGVyUGF5UmF0ZShldmVudCkge1xuICAgIGxldCBmaWx0ZXJlZDogYW55W10gPSBbXTtcbiAgICBsZXQgcXVlcnkgPSBldmVudC5xdWVyeTtcbiAgICB0aGlzLnBheVJhdGVPcHRpb25zID0gQ29tYm9PcHRpb24uUEFZX1BFUklPRFxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5wYXlSYXRlT3B0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgbGV0IHBheSA9IHRoaXMucGF5UmF0ZU9wdGlvbnNbaV07XG4gICAgICBpZiAocGF5LnRleHQudG9Mb3dlckNhc2UoKS5pbmRleE9mKHF1ZXJ5LnRvTG93ZXJDYXNlKCkpID09IDApIHtcbiAgICAgICAgZmlsdGVyZWQucHVzaChwYXkpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnBheVJhdGVPcHRpb25zID0gZmlsdGVyZWQ7XG4gIH1cblxuICBmaWx0ZXJSZWFzb25TZXBhcmF0aW9uKGV2ZW50KSB7XG4gICAgbGV0IGZpbHRlcmVkOiBhbnlbXSA9IFtdO1xuICAgIGxldCBxdWVyeSA9IGV2ZW50LnF1ZXJ5OyAgICBcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZW1wbG95bWVudFN0YXR1c09wdGlvbnNBbGwubGVuZ3RoOyBpKyspIHtcbiAgICAgIGxldCBzZXBSZWFzb24gPSB0aGlzLmVtcGxveW1lbnRTdGF0dXNPcHRpb25zQWxsW2ldO1xuICAgICAgaWYgKHNlcFJlYXNvbi50ZXh0LnRvTG93ZXJDYXNlKCkuaW5kZXhPZihxdWVyeS50b0xvd2VyQ2FzZSgpKSA9PSAwKSB7XG4gICAgICAgIGZpbHRlcmVkLnB1c2goc2VwUmVhc29uKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5lbXBsb3ltZW50U3RhdHVzT3B0aW9ucyA9IGZpbHRlcmVkOyAgXG4gIFxuICB9XG5cbiAgZmlsdGVyVXNTdGF0ZShldmVudCkge1xuICAgIGxldCBmaWx0ZXJlZDogYW55W10gPSBbXTtcbiAgICBsZXQgcXVlcnkgPSBldmVudC5xdWVyeTtcbiAgICB0aGlzLnN0YXRlc09wdGlvbnMgPSBDb21ib09wdGlvbi5VU19TVEFURVM7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YXRlc09wdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGxldCBzdGF0ZSA9IHRoaXMuc3RhdGVzT3B0aW9uc1tpXTtcbiAgICAgIGlmIChzdGF0ZS50ZXh0LnRvTG93ZXJDYXNlKCkuaW5kZXhPZihxdWVyeS50b0xvd2VyQ2FzZSgpKSA9PSAwKSB7XG4gICAgICAgIGZpbHRlcmVkLnB1c2goc3RhdGUpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnN0YXRlc09wdGlvbnMgPSBmaWx0ZXJlZDtcbiAgfVxuXG4gIC8qY2hlY2tGb3JTdGF0ZShzZWxlY3RlZFN0YXRlVmFsdWUpe1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdzZWxlY3RlZFN0YXRlVmFsdWUnLHNlbGVjdGVkU3RhdGVWYWx1ZS52YWx1ZSk7XG4gICAgbGV0IGJwU3RhcnREYXRlOiBEYXRlID0gbmV3IERhdGUodGhpcy5iYXNlUGVyaW9kU3RhcnREYXRlKTtcbiAgICBsZXQgYnBFbmREYXRlOiBEYXRlID0gbmV3IERhdGUodGhpcy5iYXNlUGVyaW9kRW5kRGF0ZSk7XG4gICAgbGV0IHN0YXJ0ZURhdGVWYWw6IERhdGUgPSBuZXcgRGF0ZSh0aGlzLnN0YXJ0RGF0ZS52YWx1ZSk7XG4gICAgbGV0IGVuZERhdGVWYWw6IERhdGUgPSBuZXcgRGF0ZSh0aGlzLmVuZERhdGUudmFsdWUpXG4gICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdicFN0YXJ0RGF0ZSAnLCBicFN0YXJ0RGF0ZSwgJ3N0YXJ0ZURhdGVWYWwgJywgc3RhcnRlRGF0ZVZhbCk7XG4gICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdlbmREYXRlVmFsICcsIGVuZERhdGVWYWwsICdicEVuZERhdGUgJywgYnBFbmREYXRlKTtcbiAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3N0YXJ0ZURhdGVWYWwgPj0gYnBFbmREYXRlICcsIHN0YXJ0ZURhdGVWYWwgPj0gYnBFbmREYXRlKTtcbiAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ2VuZERhdGVWYWw8PSBicEVuZERhdGUgJywgZW5kRGF0ZVZhbDw9IGJwRW5kRGF0ZSk7XG4gICAgaWYgKHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnUkVHJyAmJiBzZWxlY3RlZFN0YXRlVmFsdWUudmFsdWU9PT10aGlzLmN1cnJlbnRTdGF0ZSkge1xuICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwiSW5zaWRlIElGXCIpXG4gICAgICBpZiAoc3RhcnRlRGF0ZVZhbC5nZXRUaW1lKCkgPCBicEVuZERhdGUuZ2V0VGltZSgpICYmIGVuZERhdGVWYWwuZ2V0VGltZSgpPiBicFN0YXJ0RGF0ZS5nZXRUaW1lKCkpIHtcbiAgICAgICAgdGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy5zZXRWYWx1ZSh0cnVlKTtcbiAgICAgICAgdGhpcy5zZXRWYWxpZGF0aW9uT25WZXJpZmljYXRpb25PZldhZ2VzRmllbGRzKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzLnNldFZhbHVlKGZhbHNlKTtcbiAgICAgICAgdGhpcy5yZW1vdmVWYWxpZGF0aW9uT25WZXJpZmljYXRpb25PZldhZ2VzRmllbGRzKCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdkaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcyA9ICcsIHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMpOyAgIFxuICB9Ki9cblxuXG4gIC8qZmlsdGVySm9iVGlsZU9yUG9zaXRpb24oZXZlbnQpIHtcbiAgICBsZXQgZmlsdGVyZWQ6IEF1dG9jb2Rlck1vZGVsW10gPSBbXTtcbiAgICBsZXQgcXVlcnkgPSBldmVudC5xdWVyeTtcbiAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmdldChgL2NsYWltcy1zZXJ2aWNlL2NsYWltL2pvYnRpdGxlL2AgKyBgJHtxdWVyeX1gKS5zdWJzY3JpYmUoXG4gICAgICByZXMgPT4ge1xuICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3JlcycsIHJlcyk7XG4gICAgICAgIHRoaXMuam9iVGlsZU9yUG9zaXRpb25PcHRpb25zID0gcmVzO1xuICAgICAgfSk7XG4gIH1cblxuICBmaWx0ZXJGZWRKb2JUaWxlT3JQb3NpdGlvbihldmVudCkge1xuICAgIGxldCBmaWx0ZXJlZDogQXV0b2NvZGVyTW9kZWxbXSA9IFtdO1xuICAgIGxldCBxdWVyeSA9IGV2ZW50LnF1ZXJ5O1xuICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuZ2V0KGAvY2xhaW1zLXNlcnZpY2UvY2xhaW0vam9idGl0bGUvYCArIGAke3F1ZXJ5fWApLnN1YnNjcmliZShcbiAgICAgIHJlcyA9PiB7XG4gICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygncmVzJywgcmVzKTtcbiAgICAgICAgdGhpcy5mZWRKb2JUaWxlT3B0aW9ucyA9IHJlcztcbiAgICAgIH0pO1xuICB9Ki9cblxuICAvKmZpbHRlckRpc2NoYXJnZVJlYXNvbnMoZXZlbnQpIHtcbiAgICBsZXQgZmlsdGVyZWQ6IGFueVtdID0gW107XG4gICAgbGV0IHF1ZXJ5ID0gZXZlbnQucXVlcnk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmRpc2NoYXJnZVJlYXNvbk9wdGlvbnNBbGwubGVuZ3RoOyBpKyspIHtcbiAgICAgIGxldCBzZXBSZWFzb24gPSB0aGlzLmRpc2NoYXJnZVJlYXNvbk9wdGlvbnNBbGxbaV07XG4gICAgICBpZiAoc2VwUmVhc29uLnRleHQudG9Mb3dlckNhc2UoKS5pbmRleE9mKHF1ZXJ5LnRvTG93ZXJDYXNlKCkpID09IDApIHtcbiAgICAgICAgZmlsdGVyZWQucHVzaChzZXBSZWFzb24pO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmRpc2NoYXJnZVJlYXNvbk9wdGlvbnMgPSBmaWx0ZXJlZDtcbiAgfVxuXG4gIGZpbHRlclZvbHVudGFyeVJlYXNvbihldmVudCkge1xuICAgIGxldCBmaWx0ZXJlZDogYW55W10gPSBbXTtcbiAgICBsZXQgcXVlcnkgPSBldmVudC5xdWVyeTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudm9sUXVpdFJlYXNvbk9wdGlvbnNBbGwubGVuZ3RoOyBpKyspIHtcbiAgICAgIGxldCBzZXBSZWFzb24gPSB0aGlzLnZvbFF1aXRSZWFzb25PcHRpb25zQWxsW2ldO1xuICAgICAgaWYgKHNlcFJlYXNvbi50ZXh0LnRvTG93ZXJDYXNlKCkuaW5kZXhPZihxdWVyeS50b0xvd2VyQ2FzZSgpKSA9PSAwKSB7XG4gICAgICAgIGZpbHRlcmVkLnB1c2goc2VwUmVhc29uKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy52b2xRdWl0UmVhc29uT3B0aW9ucyA9IGZpbHRlcmVkO1xuICB9Ki9cblxuICB2YWxpZGF0ZShldmVudCkge1xuICAgIGlmKGV2ZW50LnRhcmdldD8udmFsdWUpe1xuICAgICAgdGhpcy5taW5EYXRlID0gbmV3IERhdGUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICB9IGVsc2UgaWYoIGV2ZW50IGluc3RhbmNlb2YgRGF0ZSl7XG4gICAgICB0aGlzLm1pbkRhdGUgPSBldmVudDtcbiAgICB9XG4gICAgdGhpcy5lbmREYXRlLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd0aGlzLmJhc2VQZXJpb2RTdGFydERhdGUnLCB0aGlzLmJhc2VQZXJpb2RTdGFydERhdGUpICBcbiAgfVxuXG4gIHZhbGlkYXRlV2FnZXNEaXNwbGF5KGV2ZW50KXtcbiAgICBsZXQgYnBTdGFydERhdGU6IERhdGUgPSBuZXcgRGF0ZSh0aGlzLmJhc2VQZXJpb2RTdGFydERhdGUpO1xuICAgIGxldCBicEVuZERhdGU6IERhdGUgPSBuZXcgRGF0ZSh0aGlzLmJhc2VQZXJpb2RFbmREYXRlKTtcbiAgICBsZXQgc3RhcnRlRGF0ZVZhbDogRGF0ZSA9IG5ldyBEYXRlKHRoaXMuc3RhcnREYXRlLnZhbHVlKTtcbiAgICBsZXQgZW5kRGF0ZVZhbDogRGF0ZSA9IGV2ZW50LnRhcmdldD8udmFsdWUgPyBuZXcgRGF0ZShldmVudC50YXJnZXQudmFsdWUpIDogZXZlbnQ7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ2JwU3RhcnREYXRlICcsIGJwU3RhcnREYXRlLCAnc3RhcnRlRGF0ZVZhbCAnLCBzdGFydGVEYXRlVmFsKTtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnZW5kRGF0ZVZhbCAnLCBlbmREYXRlVmFsLCAnYnBFbmREYXRlICcsIGJwRW5kRGF0ZSk7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ3N0YXJ0ZURhdGVWYWwgYmVmb3JlIGJwRW5kRGF0ZSAnLCBzdGFydGVEYXRlVmFsIDwgYnBFbmREYXRlKTtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnZW5kRGF0ZVZhbCBhZnRlciBicFN0YXJ0RGF0ZSAnLCBlbmREYXRlVmFsID4gYnBTdGFydERhdGUpO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd0aGlzLndvcmtTdGF0ZSAnLCB0aGlzLndvcmtTdGF0ZSk7XG4gICAgaWYgKHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnUkVHJyAmJiB0aGlzLndvcmtTdGF0ZS52YWx1ZSBcbiAgICAgICAgJiYgdGhpcy53b3JrU3RhdGUudmFsdWUudmFsdWUgPT09IHRoaXMuY3VycmVudFN0YXRlICYmIHRoaXMuaXNOZXdDbGFpbSkge1xuICAgICAgICBpZiAoKHN0YXJ0ZURhdGVWYWwuZ2V0VGltZSgpIDwgYnBFbmREYXRlLmdldFRpbWUoKSAmJiBlbmREYXRlVmFsLmdldFRpbWUoKT4gYnBTdGFydERhdGUuZ2V0VGltZSgpKSB8fCB0aGlzLndvcmtTdGF0ZS52YWx1ZS52YWx1ZSA9PSAnTUUnKSB7XG4gICAgICAgICAgdGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy5zZXRWYWx1ZSh0cnVlKTtcbiAgICAgICAgICBpZighdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcil7XG4gICAgICAgICAgICB0aGlzLnNldFZhbGlkYXRpb25PblZlcmlmaWNhdGlvbk9mV2FnZXNGaWVsZHMoKTtcbiAgICAgICAgICB9ZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZVZhbGlkYXRpb25PblZlcmlmaWNhdGlvbk9mV2FnZXNGaWVsZHMoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy5zZXRWYWx1ZShmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnUkVHJyAmJiB0aGlzLndvcmtTdGF0ZS52YWx1ZSBcbiAgICAgICAgJiYgdGhpcy53b3JrU3RhdGUudmFsdWUudmFsdWUgIT0gdGhpcy5jdXJyZW50U3RhdGUgJiYgdGhpcy5pc05ld0NsYWltKXtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcIk9TQSBjb25kaXRpb24gbWV0XCIpO1xuICAgICAgICAgIHRoaXMub3NhQnBFbXBsb3llckZsYWcuc2V0VmFsdWUoXCIxXCIpO1xuICAgICAgICBpZih0aGlzLmN1cnJlbnRTdGF0ZSAhPSAnTVMnKSB7XG4gICAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuZ3Jvc3NXYWdlcyk7XG4gICAgICAgIH1cbiAgICB9IGVsc2UgaWYodGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdSRUcnICYmIHRoaXMud29ya1N0YXRlLnZhbHVlIFxuICAgICAgICAgJiYgdGhpcy53b3JrU3RhdGUudmFsdWUudmFsdWUgPT09IHRoaXMuY3VycmVudFN0YXRlICYmICF0aGlzLmlzTmV3Q2xhaW0gJiYgdGhpcy5jdXJyZW50U3RhdGUgPT09ICdNRSdcbiAgICAgICAgICYmIHRoaXMucmVnRW1wbG95ZXJGb3VuZC52YWx1ZSA9PT0gbnVsbCAmJiBzdGFydGVEYXRlVmFsICE9bnVsbCAmJiBlbmREYXRlVmFsICE9IG51bGwpXG4gICAgICAgICAge1xuICAgICAgICAgICAgbGV0IHdlZWtzQmV0d2VlblN0YXJ0RW5kRGF0ZTogbnVtYmVyID0gdGhpcy5udW1iZXJPZldlZWtzQmV0d2VlbkRhdGVzKHN0YXJ0ZURhdGVWYWwsIGVuZERhdGVWYWwpO1xuICAgICAgICAgICAgaWYod2Vla3NCZXR3ZWVuU3RhcnRFbmREYXRlICsgMSA+IHRoaXMubWluV2Vla0ZvckNoYXJnZWFiaWxpdHkpXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy5zZXRWYWx1ZSh0cnVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFZhbGlkYXRpb25PblZlcmlmaWNhdGlvbk9mV2FnZXNGaWVsZHMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLmRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzLnNldFZhbHVlKGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICAvKmZpbHRlckdyb3VwZWRSZWFzb24oZXZlbnQpIHtcbiAgICBsZXQgcXVlcnkgPSBldmVudC5xdWVyeTtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygncXVlcnknLHF1ZXJ5KTtcbiAgICBsZXQgZmlsdGVyZWRHcm91cHMgPSBbXTtcbiAgICB0aGlzLmdyb3VwZWRSZWFzb25zPSBDb21ib09wdGlvbi5HUk9VUF9SRUFTT05TO1xuXG4gICAgZm9yIChsZXQgb3B0Z3JvdXAgb2YgdGhpcy5ncm91cGVkUmVhc29ucykge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ29wdGdyb3VwLml0ZW1zJyxvcHRncm91cC5pdGVtcyk7XG4gICAgICBsZXQgZmlsdGVyZWRTdWJPcHRpb25zID0gdGhpcy5maWx0ZXJTZXJ2aWNlLmZpbHRlcihcbiAgICAgICAgb3B0Z3JvdXAuaXRlbXMsXG4gICAgICAgIFtcImxhYmVsXCJdLFxuICAgICAgICBxdWVyeSxcbiAgICAgICAgXCJjb250YWluc1wiXG4gICAgICApO1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ2ZpbHRlcmVkU3ViT3B0aW9ucycsZmlsdGVyZWRTdWJPcHRpb25zKTtcbiAgICAgIGlmIChmaWx0ZXJlZFN1Yk9wdGlvbnMgJiYgZmlsdGVyZWRTdWJPcHRpb25zLmxlbmd0aCkge1xuICAgICAgICBmaWx0ZXJlZEdyb3Vwcy5wdXNoKHtcbiAgICAgICAgICBsYWJlbDogb3B0Z3JvdXAubGFiZWwsXG4gICAgICAgICAgdmFsdWU6IG9wdGdyb3VwLnZhbHVlLFxuICAgICAgICAgIGl0ZW1zOiBmaWx0ZXJlZFN1Yk9wdGlvbnNcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5ncm91cGVkUmVhc29ucyA9IGZpbHRlcmVkR3JvdXBzO1xuICB9Ki9cblxuICBvbkNsZWFyQWN0aW9uKGV2ZW50KSB7XG4gICAgdGhpcy5vbkNoYW5nZShudWxsKTtcbiAgfVxuXG4gIGRhdGVJbnB1dChldmVudCl7XG4gICAgbGV0IGN1cnJlbnRWYWx1ZSA6IHN0cmluZyA9IGV2ZW50LnNyY0VsZW1lbnQudmFsdWU7XG4gICAgaWYoY3VycmVudFZhbHVlKXtcbiAgICAgICAgaWYoY3VycmVudFZhbHVlLmxlbmd0aCA9PSAyICYmIGN1cnJlbnRWYWx1ZS5jaGFyQXQoMikgIT0gJy8nKXtcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IGN1cnJlbnRWYWx1ZSArIFwiL1wiO1xuICAgICAgICB9XG4gICAgICAgIGlmKGN1cnJlbnRWYWx1ZS5sZW5ndGggPT0gNSAmJiBjdXJyZW50VmFsdWUuY2hhckF0KDUpICE9ICcvJyl7XG4gICAgICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSBjdXJyZW50VmFsdWUgKyBcIi9cIjtcbiAgICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG51bWJlck9mV2Vla3NCZXR3ZWVuRGF0ZXMoc3RhcnREYXRlOiBEYXRlLCBlbmREYXRlOiBEYXRlKTogbnVtYmVyXG4gIHtcbiAgICBjb25zdCB0aW1lRGlmZiA9IGVuZERhdGUuZ2V0VGltZSgpIC0gc3RhcnREYXRlLmdldFRpbWUoKTtcbiAgICBcbiAgICBjb25zdCBkYXlzRGlmZiA9IHRpbWVEaWZmIC8gKDEwMDAgKiAzNjAwICogMjQpO1xuXG4gICAgY29uc3Qgd2Vla3MgPSBkYXlzRGlmZiAvIDc7XG5cbiAgICByZXR1cm4gTWF0aC5mbG9vcih3ZWVrcyk7ICBcbiAgfVxuXG5cbn1cbiIsIjxwLWRpYWxvZyB2aXNpYmxlPVwidHJ1ZVwiIG1vZGFsPVwidHJ1ZVwiIHBvc2l0aW9uPVwidG9wXCIgYXBwZW5kVG89XCJib2R5XCIgW3Nob3dIZWFkZXJdPVwiZmFsc2VcIiBbZHJhZ2dhYmxlXT1cImZhbHNlXCJcclxuICBbcmVzaXphYmxlXT1cImZhbHNlXCIgW3N0eWxlXT1cInt3aWR0aDogJzgwdncnfVwiXHJcbiAgW2JyZWFrcG9pbnRzXT1cInsnMTIwMHB4JzogJzY2MHB4JywgJzk5MnB4JzogJzY2MHB4JywgJzc2OHB4JzogJzEwMHZ3JywgJzU3NnB4JzogJzEwMHZ3J31cIj5cclxuICA8aDQgc3R5bGU9XCJjb2xvcjogdmFyKC0taW9uLWNvbG9yLWdyZXkpOyBwYWRkaW5nLWxlZnQ6IDIwcHg7XCI+IHt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LmhlYWRpbmdcInx0cmFuc2xhdGV9fVxyXG4gIDwvaDQ+XHJcblxyXG5cclxuICA8Zm9ybSBbZm9ybUdyb3VwXT1cImFkZEVtcGxveWVyRm9ybVwiICNhZGRFbXBsb3llckZvcm1EaXJlY3RpdmU9XCJuZ0Zvcm1cIj5cclxuICAgIDxpb24tZ3JpZD5cclxuICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tcGFkZGluZ1wiIHNpemU9XCIxMlwiIHNpemVTbT1cIjEyXCIgc2l6ZVhzPVwiMTJcIiBzaXplTWQ9XCIxMlwiIHNpemVMZz1cIjEwXCIgc2l6ZVhsPVwiNlwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInAtZmx1aWQgcC1mb3JtZ3JpZFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImlzQmFzZVBlcmlvZEVtcGxveWVyXCI+XHJcbiAgICAgICAgICAgICAge3tjdXN0b21lck5hbWV9fVxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJhbGlhc05hbWUgIT0gbnVsbFwiPlxyXG4gICAgICAgICAgICAgICAge3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQuZGJhXCJ8dHJhbnNsYXRlfX0ge3thbGlhc05hbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgb3NhQnBFbXBsb3llckZsYWcudmFsdWUgPT09JzAnXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZTogMTJweDtcIj4ge3ttYWlsaW5nQWRkcmVzc0Rpc3BsYXl9fVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc0NTUiAmJiBvc2FCcEVtcGxveWVyRmxhZy52YWx1ZSA9PT0nMCdcIj5cclxuICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgIHt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LmVtcGxveWVyLndhZ2VzXCJ8dHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImlzQ1NSXCI+XHJcbiAgICAgICAgICAgICAgICA8cC10YWJsZSBbdmFsdWVdPVwiZW1wbG95ZXJQcm92aWRlZFdhZ2VzXCIgc3R5bGVDbGFzcz1cInAtZGF0YXRhYmxlLXN0cmlwZWQgYXBwLWRhdGF0YWJsZSBpb24tcGFkZGluZy10b3BcIlxyXG4gICAgICAgICAgICAgICAgICBbY29sdW1uc109XCJlbXBsb3llclByb3ZpZGVkV2FnZXNcIj5cclxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiIGxldC1jb2x1bW5zPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0aCAqbmdGb3I9XCJsZXQgY29sIG9mIGNvbHVtbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGI+e3sgY29sLnF0clllYXJEaXNwbGF5U3RyaW5nIH19PC9iPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZCAqbmdGb3I9XCJsZXQgY29sIG9mIGNvbHVtbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3tjb2wud2FnZUFtb3VudCB8IGN1cnJlbmN5fX1cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvcC10YWJsZT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHdvcmtGbGFnLnZhbHVlID09ICdOJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ3b3JrRmxhZ1wiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LndvcmtmbGFnLm5vXCJ8dHJhbnNsYXRlfX08YnIgLz4gPGJyIC8+XHJcbiAgICAgICAgICAgICAgICB7e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC53b3JrZmxhZy5uby5saW5lMlwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIiFpc0Jhc2VQZXJpb2RFbXBsb3llclwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJlbXBsb3llclR5cGVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmVtcGxveWVyLnR5cGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImlubGluZS1zaXplOiBpbmhlcml0O1wiPlxyXG4gICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIGlkPVwiZW1wbG95ZXJUeXBlXCIgdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cImVtcGxveWVyVHlwZU9wdGlvbnNcIiBvcHRpb25MYWJlbD1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICBvcHRpb25WYWx1ZT1cInZhbHVlXCIgW2Zvcm1Db250cm9sXT1cImVtcGxveWVyVHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgIChvbk9wdGlvbkNsaWNrKT1cIm9uVG9nZ2xlQ2hhbmdlRW1wbG95ZXJUeXBlKCRldmVudClcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2VtcGxveWVyVHlwZScgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIiFpc0Jhc2VQZXJpb2RFbXBsb3llciAmJiBlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJlbXBsb3llck5hbWVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmVtcGxveWVyLm5hbWVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGFwcC1zZWFyY2gtZW1wbG95ZXIgW2Zvcm1Db250cm9sXT1cImVtcGxveWVyTmFtZVwiIGVtcFR5cGU9XCJSRUdcIiAob25Gb3VuZCk9XCJzZXRFbXBsb3llcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIChvbkVtcHR5KT1cInJlc2V0RW1wbG95ZXIoJGV2ZW50KVwiPjwvYXBwLXNlYXJjaC1lbXBsb3llcj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZW1wbG95ZXJOYW1lJyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiBzdHlsZT1cIndpZHRoOiBpbmhlcml0ICFpbXBvcnRhbnQ7XCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmZWRFbXBsb3llck5hbWVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmVtcGxveWVyLmZlZC5uYW1lXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxhcHAtc2VhcmNoLWVtcGxveWVyIFtmb3JtQ29udHJvbF09XCJmZWRFbXBsb3llck5hbWVcIiBlbXBUeXBlPVwiRkVEXCIgKG9uRm91bmQpPVwic2V0RmVkRW1wbG95ZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAob25FbXB0eSk9XCJyZXNldEZlZEVtcGxveWVyKCRldmVudClcIj48L2FwcC1zZWFyY2gtZW1wbG95ZXI+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2ZlZEVtcGxveWVyTmFtZScgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nTUlMJyAmJiB0aGlzLmN1cnJlbnRTdGF0ZSAhPSAnTUUnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInNlcnZpY2VCcmFuY2hcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5zZXJ2aWNlLmJyYW5jaFwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8YXBwLWRyb3Bkb3duIFtvcHRpb25zXT1cIm1pbGl0YXJ5U2VydmljZU9wdGlvbnNcIiBbZm9ybUNvbnRyb2xdPVwic2VydmljZUJyYW5jaFwiIG9wdGlvbkxhYmVsPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIGlucHV0SWQ9XCJzZXJ2aWNlQnJhbmNoXCI+PC9hcHAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3NlcnZpY2VCcmFuY2gnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDwhLS0gTWFpbmUgaW5jbHVkZXMgU3BhY2UgRm9yY2UgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J01JTCcgJiYgdGhpcy5jdXJyZW50U3RhdGUgPT09ICdNRSdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwic2VydmljZUJyYW5jaFwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQubWlsLnNlcnZpY2UuYnJhbmNoXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxhcHAtZHJvcGRvd24gW29wdGlvbnNdPVwibWlsaXRhcnlTZXJ2aWNlT3B0aW9uc1dpdGhTcGFjZVwiIFtmb3JtQ29udHJvbF09XCJzZXJ2aWNlQnJhbmNoXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgaW5wdXRJZD1cInNlcnZpY2VCcmFuY2hcIj48L2FwcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nc2VydmljZUJyYW5jaCcgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nTUlMJ1wiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJzdGFydERhdGVNaWxcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5zdGFydGRhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWNhbGVuZGFyIGljb25BcmlhTGFiZWw9XCJzdGFydERhdGVNaWxcIiBbc2hvd0ljb25dPVwidHJ1ZVwiIGlucHV0SWQ9XCJzdGFydERhdGVNaWxcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJzdGFydERhdGVNaWxcIiBbbWF4RGF0ZV09XCJkYXRlVGltZVwiIFt5ZWFyTmF2aWdhdG9yXT1cInRydWVcIiB5ZWFyUmFuZ2U9XCIxOTAxOjIwNTBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiIGRhdGVGb3JtYXQ9XCJtbS9kZC95eVwiIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIChvbkJsdXIpPVwidmFsaWRhdGUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG9uU2VsZWN0KT1cInZhbGlkYXRlKCRldmVudClcIiBkYXRhVHlwZT1cInN0cmluZ1wiIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICBbbWluRGF0ZV09XCJtaW5Xb3JrU3RhcnREYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvcC1jYWxlbmRhcj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3N0YXJ0RGF0ZU1pbCcgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMVwiPjwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZW5kRGF0ZU1pbFwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQubWlsLmVuZGRhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWNhbGVuZGFyIGljb25BcmlhTGFiZWw9XCJlbmREYXRlTWlsXCIgW3Nob3dJY29uXT1cInRydWVcIiBpbnB1dElkPVwiZW5kRGF0ZU1pbFwiIFttYXhEYXRlXT1cImRhdGVUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCIgZGF0ZUZvcm1hdD1cIm1tL2RkL3l5XCIgcGxhY2Vob2xkZXI9XCJtbS9kZC95eXl5XCIgW3llYXJOYXZpZ2F0b3JdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgeWVhclJhbmdlPVwiMTkwMToyMDUwXCIgZGF0YVR5cGU9XCJzdHJpbmdcIiBbZm9ybUNvbnRyb2xdPVwiZW5kRGF0ZU1pbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Nob3dPbkZvY3VzXT1cImZhbHNlXCIgKG9uSW5wdXQpPVwiZGF0ZUlucHV0KCRldmVudClcIj48L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdlbmREYXRlTWlsJyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcblxyXG4gICAgICAgICAgICA8aW9uLXJvdyAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnICYmIGhpZGVGaWNDb2RlXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZpY0NvZGVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC5maWMuY29kZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwiZmljQ29kZVwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cImZpY0NvZGVcIiBhcHBTdHJpcEludmlzaWJsZUNoYXJzLz5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2ZpY0NvZGUnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjFcIj48L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZpY0Rlc3RpbmF0aW9uTmFtZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLmZpYy5kZXN0aW5hdGlvblwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwiZmljRGVzdGluYXRpb25OYW1lXCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwiZmljRGVzdGluYXRpb25OYW1lXCIgYXBwU3RyaXBJbnZpc2libGVDaGFycy8+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdmaWNEZXN0aW5hdGlvbk5hbWUnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCIhaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRydcIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmctbGVmdDogMHB4OyBwYWRkaW5nLXJpZ2h0OiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWFkZHJlc3MgI2FkZHJlc3MxIFtmb3JtQ29udHJvbF09XCJhZGRyZXNzXCIgW2NvdW50eVJlcXVpcmVkXT1cImZhbHNlXCIgW2Zyb21Qb3B1cF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICA8L2FwcC1hZGRyZXNzPlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICA8aW9uLXJvdyAqbmdJZj1cImlzQmFzZVBlcmlvZEVtcGxveWVyICYmIG9zYUJwRW1wbG95ZXJGbGFnLnZhbHVlID09PScxJyAmJiBlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJ1wiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZy1sZWZ0OiAwcHg7IHBhZGRpbmctcmlnaHQ6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxhcHAtYWRkcmVzcyAjYWRkcmVzczMgW2Zvcm1Db250cm9sXT1cImFkZHJlc3NcIiBbY291bnR5UmVxdWlyZWRdPVwiZmFsc2VcIiBbZnJvbVBvcHVwXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgIDwvYXBwLWFkZHJlc3M+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnXCI+XHJcbiAgICAgICAgICAgICAgPGFwcC1hZGRyZXNzICNhZGRyZXNzMiBbZm9ybUNvbnRyb2xdPVwiYWRkcmVzc1wiIGNvdW50eVJlcXVpcmVkPVwiZmFsc2VcIiBbZnJvbVBvcHVwXT1cInRydWVcIj4gPC9hcHAtYWRkcmVzcz5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nYWRkcmVzcycgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgYWRkcmVzc1ZhbGlkYXRpb25GbGFnOiAnUGxlYXNlIHByb3ZpZGUsIGEgdmFsaWQgYWRkcmVzcy4nXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiKCgoaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgd29ya0ZsYWcudmFsdWU9PT0nWScpIHx8ICFpc0Jhc2VQZXJpb2RFbXBsb3llcikgJiYgIGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnKVwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJlbXBsb3llclRlbGVwaG9uZU51bWJlclwiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LmVtcGxveWVyLnBob25lXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8cC1pbnB1dE1hc2sgbWFzaz1cIjk5OS05OTktOTk5OVwiIGlkPVwiZW1wbG95ZXJUZWxlcGhvbmVOdW1iZXJcIiBbZm9ybUNvbnRyb2xdPVwiZW1wbG95ZXJUZWxlcGhvbmVOdW1iZXJcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCI5OTktOTk5LTk5OTlcIj48L3AtaW5wdXRNYXNrPlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2VtcGxveWVyVGVsZXBob25lTnVtYmVyJyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIlxyXG4gICAgICAgICAgICAgICAgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiKCFpc0Jhc2VQZXJpb2RFbXBsb3llciAgJiYgZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycpXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIndvcmtDaXR5XCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC53b3JrLmxvY2F0aW9uLmNpdHlcInx0cmFuc2xhdGV9fSA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJ3b3JrQ2l0eVwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cIndvcmtDaXR5XCIgbWF4bGVuZ3RoPVwiMzBcIiBhcHBTdHJpcEludmlzaWJsZUNoYXJzLz5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3dvcmtDaXR5JyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxXCI+PC9pb24tY29sPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ3b3JrU3RhdGVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LndvcmsubG9jYXRpb24uc3RhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZHJvcGRvd24gW29wdGlvbnNdPVwic3RhdGVzT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJ3b3JrU3RhdGVcIiBvcHRpb25MYWJlbD1cInRleHRcIiBhcHBlbmRUbz1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgaW5wdXRJZD1cIndvcmtTdGF0ZVwiPjwvYXBwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nd29ya1N0YXRlJyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZlZFdvcmtDb3VudHJ5XCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQud29yay5sb2NhdGlvbi5jb3VudHJ5XCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxhcHAtZHJvcGRvd24gW29wdGlvbnNdPVwid29ya0NvdW50cnlPcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cImZlZFdvcmtDb3VudHJ5XCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgaW5wdXRJZD1cImZlZFdvcmtDb3VudHJ5XCI+PC9hcHAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2ZlZFdvcmtDb3VudHJ5JyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8aW9uLXJvdyAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZlZFdvcmtDaXR5XCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC53b3JrLmxvY2F0aW9uLmNpdHlcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImZlZFdvcmtDaXR5XCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwiZmVkV29ya0NpdHlcIiBtYXhsZW5ndGg9XCIzMFwiIGFwcFN0cmlwSW52aXNpYmxlQ2hhcnMvPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZmVkV29ya0NpdHknIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjFcIj48L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCIgKm5nSWY9XCJzaG93V29ya1N0YXRlID09PSB0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZlZFdvcmtTdGF0ZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQud29yay5sb2NhdGlvbi5zdGF0ZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1kcm9wZG93biBbb3B0aW9uc109XCJzdGF0ZXNPcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cImZlZFdvcmtTdGF0ZVwiIG9wdGlvbkxhYmVsPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBpbnB1dElkPVwiZmVkV29ya1N0YXRlXCI+PC9hcHAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdmZWRXb3JrU3RhdGUnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJ1wiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJzdGFydERhdGVGZWRcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC5zdGFydGRhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWNhbGVuZGFyIGljb25BcmlhTGFiZWw9XCJzdGFydERhdGVGZWRcIiBbc2hvd0ljb25dPVwidHJ1ZVwiIFttYXhEYXRlXT1cImRhdGVUaW1lXCIgaW5wdXRJZD1cInN0YXJ0RGF0ZUZlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInN0YXJ0RGF0ZUZlZFwiIFt5ZWFyTmF2aWdhdG9yXT1cInRydWVcIiB5ZWFyUmFuZ2U9XCIxOTAxOjIwNTBcIiBhcHBlbmRUbz1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGVGb3JtYXQ9XCJtbS9kZC95eVwiIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIChvbkJsdXIpPVwidmFsaWRhdGUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG9uU2VsZWN0KT1cInZhbGlkYXRlKCRldmVudClcIiBkYXRhVHlwZT1cInN0cmluZ1wiIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICBbbWluRGF0ZV09XCJtaW5Xb3JrU3RhcnREYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvcC1jYWxlbmRhcj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3N0YXJ0RGF0ZUZlZCcgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMVwiPjwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZW5kRGF0ZUZlZFwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLmVuZGRhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWNhbGVuZGFyIGljb25BcmlhTGFiZWw9XCJlbmREYXRlRmVkXCIgW3Nob3dJY29uXT1cInRydWVcIiBpbnB1dElkPVwiZW5kRGF0ZUZlZFwiIFttYXhEYXRlXT1cImRhdGVUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCIgZGF0ZUZvcm1hdD1cIm1tL2RkL3l5XCIgcGxhY2Vob2xkZXI9XCJtbS9kZC95eXl5XCIgW3llYXJOYXZpZ2F0b3JdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgeWVhclJhbmdlPVwiMTkwMToyMDUwXCIgZGF0YVR5cGU9XCJzdHJpbmdcIiBbZm9ybUNvbnRyb2xdPVwiZW5kRGF0ZUZlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Nob3dPbkZvY3VzXT1cImZhbHNlXCIgKG9uSW5wdXQpPVwiZGF0ZUlucHV0KCRldmVudClcIj48L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdlbmREYXRlRmVkJyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZlZEpvYlRpbGVPclBvc2l0aW9uXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQuam9idGl0bGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGlucHV0IGlkPVwiZmVkSm9iVGlsZU9yUG9zaXRpb25cIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJmZWRKb2JUaWxlT3JQb3NpdGlvblwiXHJcbiAgICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIxMDBcIiBhcHBTdHJpcEludmlzaWJsZUNoYXJzLz5cclxuICAgICAgICAgICAgICA8IS0tICA8cC1hdXRvQ29tcGxldGUgW2Zvcm1Db250cm9sXT1cImZlZEpvYlRpbGVPclBvc2l0aW9uXCIgW3N1Z2dlc3Rpb25zXT1cImZlZEpvYlRpbGVPcHRpb25zXCIgXHJcbiAgICAgICAgICAgICAgICAoY29tcGxldGVNZXRob2QpPVwiZmlsdGVyRmVkSm9iVGlsZU9yUG9zaXRpb24oJGV2ZW50KVwiIGZpZWxkPVwiam9iVGl0bGVcIiBbZHJvcGRvd25dPVwiZmFsc2VcIiBcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU3RhcnQuLi4gdHlwaW5nIGpvYiB0aXRsZVwiIG1pbkxlbmd0aD0zIGZvcmNlU2VsZWN0aW9uPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC12YWx1ZSBwVGVtcGxhdGU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj57e3ZhbHVlLmpvYlRpdGxlfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgIDwvcC1hdXRvQ29tcGxldGU+IC0tPlxyXG5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZmVkSm9iVGlsZU9yUG9zaXRpb24nIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwic2ZFaWdodGZsYWdcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC5zZmVpZ2h0XCJ8dHJhbnNsYXRlfX0gPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiaW5saW5lLXNpemU6IG1pbi1jb250ZW50O1wiPlxyXG4gICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIGlkPVwic2ZFaWdodGZsYWdcIiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicmFkaW9PcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInNmRWlnaHRmbGFnXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3NmRWlnaHRmbGFnJyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiKCgoaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgd29ya0ZsYWcudmFsdWU9PT0nWScpIFxyXG4gICAgICAgICAgICAgICAgICAgIHx8ICFpc0Jhc2VQZXJpb2RFbXBsb3llcikgJiYgZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycpXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInN0YXJ0RGF0ZVwiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LnN0YXJ0ZGF0ZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtY2FsZW5kYXIgaWNvbkFyaWFMYWJlbD1cInN0YXJ0RGF0ZVwiIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cInN0YXJ0RGF0ZVwiIFttYXhEYXRlXT1cImRhdGVUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwic3RhcnREYXRlXCIgW3llYXJOYXZpZ2F0b3JdPVwidHJ1ZVwiIHllYXJSYW5nZT1cIjE5MDE6MjA1MFwiIFttaW5EYXRlXT1cIm1pbldvcmtTdGFydERhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiIGRhdGVGb3JtYXQ9XCJtbS9kZC95eVwiIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIChvbkJsdXIpPVwidmFsaWRhdGUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG9uU2VsZWN0KT1cInZhbGlkYXRlKCRldmVudClcIiBkYXRhVHlwZT1cInN0cmluZ1wiIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvcC1jYWxlbmRhcj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3N0YXJ0RGF0ZScgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMVwiPjwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZW5kRGF0ZVwiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LmVuZGRhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWNhbGVuZGFyIGljb25BcmlhTGFiZWw9XCJlbmREYXRlXCIgW3Nob3dJY29uXT1cInRydWVcIiBpbnB1dElkPVwiZW5kRGF0ZVwiIFttaW5EYXRlXT1cIm1pbkRhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFttYXhEYXRlXT1cImRhdGVUaW1lXCIgZGF0ZUZvcm1hdD1cIm1tL2RkL3l5XCIgcGxhY2Vob2xkZXI9XCJtbS9kZC95eXl5XCIgW3llYXJOYXZpZ2F0b3JdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgeWVhclJhbmdlPVwiMTkwMToyMDUwXCIgZGF0YVR5cGU9XCJzdHJpbmdcIiBbZm9ybUNvbnRyb2xdPVwiZW5kRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG9uQmx1cik9XCJ2YWxpZGF0ZVdhZ2VzRGlzcGxheSgkZXZlbnQpXCIgW3Nob3dPbkZvY3VzXT1cImZhbHNlXCIgKG9uSW5wdXQpPVwiZGF0ZUlucHV0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIChvblNlbGVjdCk9XCJ2YWxpZGF0ZVdhZ2VzRGlzcGxheSgkZXZlbnQpXCI+PC9wLWNhbGVuZGFyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZW5kRGF0ZScgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCIoKChpc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB3b3JrRmxhZy52YWx1ZT09PSdZJykgfHwgIWlzQmFzZVBlcmlvZEVtcGxveWVyKSBcclxuICAgICAgICAgICAgICAmJiAoZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycgfHwgZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCcpICYmIHRoaXMuY3VycmVudFN0YXRlID09ICdDVCcpXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInNlcGFyYXRpb25EYXRlRmxhZ1wiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LnNlcGFyYXRpb25EYXRlRmxhZ1wifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiaW5saW5lLXNpemU6IG1pbi1jb250ZW50O1wiPlxyXG4gICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIGlkPVwic2VwYXJhdGlvbkRhdGVGbGFnXCIgdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJzZXBhcmF0aW9uRGF0ZUZsYWdcIiBvcHRpb25MYWJlbD1cInRleHRcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdzZXBhcmF0aW9uRGF0ZUZsYWcnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCIoKChpc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB3b3JrRmxhZy52YWx1ZT09PSdZJykgfHwgIWlzQmFzZVBlcmlvZEVtcGxveWVyKVxyXG4gICAgICAgICAgICAgICAmJiAoZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycgfHwgZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCcpICYmIHRoaXMuY3VycmVudFN0YXRlID09ICdDVCcgICYmIHNlcGFyYXRpb25EYXRlRmxhZy52YWx1ZT09PSdZJyApXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInNlcGFyYXRpb25EYXRlXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQuc2VwYXJhdGlvbkRhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxwLWNhbGVuZGFyIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cInNlcGFyYXRpb25EYXRlXCIgW2Zvcm1Db250cm9sXT1cInNlcGFyYXRpb25EYXRlXCJcclxuICAgICAgICAgICAgICAgICAgW3llYXJOYXZpZ2F0b3JdPVwidHJ1ZVwiIGFwcGVuZFRvPVwiYm9keVwiIHllYXJSYW5nZT1cIjE5MDE6MjA1MFwiIGRhdGVGb3JtYXQ9XCJtbS9kZC95eVwiXHJcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIGRhdGFUeXBlPVwic3RyaW5nXCIgW3Nob3dPbkZvY3VzXT1cImZhbHNlXCIgKG9uSW5wdXQpPVwiZGF0ZUlucHV0KCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgIDwvcC1jYWxlbmRhcj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdzZXBhcmF0aW9uRGF0ZScgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8aW9uLXJvdyAqbmdJZj1cIihkaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZSAmJiAhaXNCYXNlUGVyaW9kRW1wbG95ZXIgICYmIGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnKVwiPlxyXG4gICAgICAgICAgICAgIDwhLS0gPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIm51bWJlckVtcGxveWVkXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcuZW1wbG95ZWVzLm5vXCIgfCB0cmFuc2xhdGV9fSA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBbaWRdPVwibnVtYmVyRW1wbG95ZWRcIiBbdXNlR3JvdXBpbmddPVwiZmFsc2VcIiBbZm9ybUNvbnRyb2xdPVwibnVtYmVyRW1wbG95ZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIG1heGxlbmd0aD1cIjlcIj48L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdudW1iZXJFbXBsb3llZCcgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMVwiPjwvaW9uLWNvbD4gLS0+ICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiY2xhaW1hbnRFbXBsb3llZFdpdGhFbXByXCI+V2VyZSB5b3UgZW1wbG95ZWQgd2hpbGUgYSBzcG91c2Ugb2YgYSBVUyBtaWxpdGFyeSBtZW1iZXIgc3RhdGlvbmVkIGF0XHJcbiAgICAgICAgICAgICAgICBhIGZvcmVpZ24gbWlsaXRhcnkgYmFzZT88L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7XCI+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInllc05vTmFPcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cImNsYWltYW50RW1wbG95ZWRXaXRoRW1wclwiIG9wdGlvbkxhYmVsPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2NsYWltYW50RW1wbG95ZWRXaXRoRW1wcicgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuXHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInBlcmZvcm1lZFNlcnZpY2VcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC5jaXZpbGlhbi53b3JrXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7XCI+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gaWQ9XCJwZXJmb3JtZWRTZXJ2aWNlXCIgdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJwZXJmb3JtZWRTZXJ2aWNlXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ncGVyZm9ybWVkU2VydmljZScgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cIigoaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgd29ya0ZsYWcudmFsdWU9PT0nWScpIHx8ICFpc0Jhc2VQZXJpb2RFbXBsb3llcikgICYmIGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImpvYlRpbGVPclBvc2l0aW9uXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQuam9idGl0bGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGlucHV0IGlkPVwiam9iVGlsZU9yUG9zaXRpb25cIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJqb2JUaWxlT3JQb3NpdGlvblwiIG1heGxlbmd0aD1cIjEwMFwiIC8+XHJcbiAgICAgICAgICAgICAgPCEtLSA8cC1hdXRvQ29tcGxldGUgW2Zvcm1Db250cm9sXT1cImpvYlRpbGVPclBvc2l0aW9uXCIgW3N1Z2dlc3Rpb25zXT1cImpvYlRpbGVPclBvc2l0aW9uT3B0aW9uc1wiIFxyXG4gICAgICAgICAgICAgICAgKGNvbXBsZXRlTWV0aG9kKT1cImZpbHRlckpvYlRpbGVPclBvc2l0aW9uKCRldmVudClcIiBmaWVsZD1cImpvYlRpdGxlXCIgKG9uQ2xlYXIpPVwib25DbGVhckFjdGlvbigkZXZlbnQpXCIgXHJcbiAgICAgICAgICAgICAgICAgW2Ryb3Bkb3duXT1cImZhbHNlXCIgcGxhY2Vob2xkZXI9XCJTdGFydC4uLiB0eXBpbmcgam9iIHRpdGxlXCIgbWluTGVuZ3RoPTMgZm9yY2VTZWxlY3Rpb249XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXZhbHVlIHBUZW1wbGF0ZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2Pnt7dmFsdWUuam9iVGl0bGV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPC9wLWF1dG9Db21wbGV0ZT4gLS0+XHJcblxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdqb2JUaWxlT3JQb3NpdGlvbicgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCIoKGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnIHx8IGVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnKSAmJiAhaXNCYXNlUGVyaW9kRW1wbG95ZXIpXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OjVweDsgcGFkZGluZy1sZWZ0OiAwcHg7IHBhZGRpbmctdG9wOiAwcHg7XCIgKm5nSWY9XCIhaXNCYXNlUGVyaW9kRW1wbG95ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicGF5UmF0ZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucGF5cmF0ZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtaW5wdXROdW1iZXIgaW5wdXRJZD1cInBheVJhdGVcIiBbZm9ybUNvbnRyb2xdPVwicGF5UmF0ZVwiIG1vZGU9XCJjdXJyZW5jeVwiIGN1cnJlbmN5PVwiVVNEXCJcclxuICAgICAgICAgICAgICAgICAgICBbbWF4XT1cIjk5OTk5OS45OVwiIG1heGxlbmd0aD1cIjEyXCIgbG9jYWxlPVwiZW4tVVNcIj48L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdwYXlSYXRlJyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmctcmlnaHQ6NXB4O3BhZGRpbmctdG9wOiAwcHg7XCIgKm5nSWY9XCIhaXNCYXNlUGVyaW9kRW1wbG95ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicGF5UmF0ZUZyZXF1ZW5jeVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucGVyXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWRyb3Bkb3duIFtvcHRpb25zXT1cInBheVJhdGVPcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cInBheVJhdGVGcmVxdWVuY3lcIiBvcHRpb25MYWJlbD1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgaW5wdXRJZD1cInBheVJhdGVGcmVxdWVuY3lcIj48L2FwcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3BheVJhdGVGcmVxdWVuY3knIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcblxyXG4gICAgICAgICAgICAgIDxpb24tY29sICpuZ0lmPVwidGhpcy5jdXJyZW50U3RhdGUgIT0gJ01TJyAmJiBkaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZSAmJiAhaXNCYXNlUGVyaW9kRW1wbG95ZXJcIiBzdHlsZT1cInBhZGRpbmctdG9wOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImdyb3NzV2FnZXNcIiBzdHlsZT1cImlubGluZS1zaXplOiBtYXgtY29udGVudDtcIj5Ub3RhbCBXYWdlcyBFYXJuZWQ8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBbZm9ybUNvbnRyb2xdPVwiZ3Jvc3NXYWdlc1wiIG1vZGU9XCJjdXJyZW5jeVwiIGN1cnJlbmN5PVwiVVNEXCIgbWF4bGVuZ3RoPVwiMTJcIlxyXG4gICAgICAgICAgICAgICAgICAgIFttYXhdPVwiOTk5OTk5Ljk5XCIgbG9jYWxlPVwiZW4tVVNcIj5cclxuICAgICAgICAgICAgICAgICAgPC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZ3Jvc3NXYWdlcycgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCIoZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycgfHwgZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCcpXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OjVweDsgcGFkZGluZy1sZWZ0OiAwcHg7XCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiKGlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHdvcmtGbGFnLnZhbHVlPT09J1knKVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJwYXlSYXRlXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQucGF5cmF0ZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtaW5wdXROdW1iZXIgW2Zvcm1Db250cm9sXT1cInBheVJhdGVcIiBtb2RlPVwiY3VycmVuY3lcIiBjdXJyZW5jeT1cIlVTRFwiIFttYXhdPVwiOTk5OTk5Ljk5XCIgbWF4bGVuZ3RoPVwiMTJcIlxyXG4gICAgICAgICAgICAgICAgICAgIGxvY2FsZT1cImVuLVVTXCI+PC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ncGF5UmF0ZScgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OjVweDtcIiAqbmdJZj1cIihpc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB3b3JrRmxhZy52YWx1ZT09PSdZJylcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicGF5UmF0ZUZyZXF1ZW5jeVwiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LnBlclwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1kcm9wZG93biBbb3B0aW9uc109XCJwYXlSYXRlT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJwYXlSYXRlRnJlcXVlbmN5XCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIGlucHV0SWQ9XCJwYXlSYXRlRnJlcXVlbmN5XCI+PC9hcHAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdwYXlSYXRlRnJlcXVlbmN5JyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIigodGhpcy5jdXJyZW50U3RhdGUgPT09ICdDVCcgJiYgKGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnIHx8IGVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnKSlcclxuICAgICAgICAgICAgICYmICgoaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgd29ya0ZsYWcudmFsdWU9PT0nWScpIHx8ICFpc0Jhc2VQZXJpb2RFbXBsb3llcikpXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImhyc1dlZWtcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5ocnN3ZWVrXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIFtmb3JtQ29udHJvbF09XCJocnNXZWVrXCIgW21heF09XCI5OTlcIiBtYXhsZW5ndGg9XCIzXCIgbG9jYWxlPVwiZW4tVVNcIj48L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2hyc1dlZWsnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiKCh0aGlzLmN1cnJlbnRTdGF0ZSA9PT0gJ0NUJyAmJiAoZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycgfHwgZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCcpKVxyXG4gICAgICAgICAgICAgJiYgKChpc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB3b3JrRmxhZy52YWx1ZT09PSdZJykgfHwgIWlzQmFzZVBlcmlvZEVtcGxveWVyKSlcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwic2hpZnRcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5zaGlmdFwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8cC1jaGVja2JveCBbbmFtZV09XCInc2hpZnQtZ3JvdXAnXCIgW3ZhbHVlXT1cImNob2ljZS52YWx1ZVwiIFtsYWJlbF09XCJjaG9pY2UudGV4dFwiXHJcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgY2hvaWNlIG9mIHNoaWZ0T3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJzaGlmdFwiIHN0eWxlQ2xhc3M9XCJhcHAtcC1jaGVja2JveFwiPjwvcC1jaGVja2JveD5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nc2hpZnQnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIigodGhpcy5jdXJyZW50U3RhdGUgPT09ICdDVCcgJiYgKGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnIHx8IGVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnKSlcclxuICAgICAgICAgICAgICAmJiAoKGlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHdvcmtGbGFnLnZhbHVlPT09J1knKSB8fCAhaXNCYXNlUGVyaW9kRW1wbG95ZXIpKVwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJkaWRXb3JrXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQuZGlkd29ya1wifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8YXBwLWRyb3Bkb3duIFtvcHRpb25zXT1cImRpZFdvcmtPcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cImRpZFdvcmtcIiBvcHRpb25MYWJlbD1cInRleHRcIiBhcHBlbmRUbz1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBpbnB1dElkPVwiZGlkV29ya1wiPjwvYXBwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdkaWRXb3JrJyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIigodGhpcy5jdXJyZW50U3RhdGUgPT09ICdDVCcgJiYgKGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnIHx8IGVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnKSlcclxuICAgICAgICAgICAgICYmICgoaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgd29ya0ZsYWcudmFsdWU9PT0nWScpIHx8ICFpc0Jhc2VQZXJpb2RFbXBsb3llcikpXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIndvcmtXZWVrXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQud29ya3dlZWtcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPHAtY2hlY2tib3ggW25hbWVdPVwiJ3dvcmtXZWVrLWdyb3VwJ1wiIFt2YWx1ZV09XCJjaG9pY2UudmFsdWVcIiBbbGFiZWxdPVwiY2hvaWNlLnRleHRcIlxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNob2ljZSBvZiB3b3JrV2Vla09wdGlvbnNcIiBbZm9ybUNvbnRyb2xdPVwid29ya1dlZWtcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGVDbGFzcz1cImFwcC1wLWNoZWNrYm94XCI+PC9wLWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd3b3JrV2VlaycgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlICYmICgoKGlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHdvcmtGbGFnLnZhbHVlPT09J1knKSBcclxuICAgICAgICAgICAgICAgICAgICB8fCAhaXNCYXNlUGVyaW9kRW1wbG95ZXIpICYmIGVtcGxveWVyVHlwZS52YWx1ZSE9J01JTCcpXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInJlYXNvblNlcGFyYXRpb25cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyBcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5yZWFzb24uc2VwYXJhdGlvblwifHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJyBcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC5yZWFzb24uc2VwYXJhdGlvblwifHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8YXBwLWRyb3Bkb3duIFtvcHRpb25zXT1cImVtcGxveW1lbnRTdGF0dXNPcHRpb25zQWxsXCIgW2Zvcm1Db250cm9sXT1cInJlYXNvblNlcGFyYXRpb25cIiBvcHRpb25MYWJlbD1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBpbnB1dElkPVwicmVhc29uU2VwYXJhdGlvblwiPjwvYXBwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdyZWFzb25TZXBhcmF0aW9uJyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwhLS0gYWRkIGZvciBxdWl0IGFuZCBkaXNjaGFyZ2UgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiKCgoaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgd29ya0ZsYWcudmFsdWU9PT0nWScpIFxyXG4gICAgICAgICAgICAgICAgfHwgIWlzQmFzZVBlcmlvZEVtcGxveWVyKSAmJiByZWFzb25TZXBhcmF0aW9uLnZhbHVlICYmIHJlYXNvblNlcGFyYXRpb24udmFsdWUudmFsdWUgPT09ICdEQ0ZJJyBcclxuICAgICAgICAgICAgICAgICYmIGVtcGxveWVyVHlwZS52YWx1ZSE9J01JTCcpXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICBmb3I9XCJkaXNjaGFyZ2VEZXRhaWxcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5yZWFzb24uc2VwYXJhdGlvbi5kaXNjaGFyZ2VcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGFwcC1kcm9wZG93biBbb3B0aW9uc109XCJkaXNjaGFyZ2VSZWFzb25PcHRpb25zQWxsXCIgW2Zvcm1Db250cm9sXT1cImRpc2NoYXJnZURldGFpbFwiIG9wdGlvbkxhYmVsPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIGlucHV0SWQ9XCJkaXNjaGFyZ2VEZXRhaWxcIj48L2FwcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZGlzY2hhcmdlRGV0YWlsJyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIigoKGlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHdvcmtGbGFnLnZhbHVlPT09J1knKSBcclxuICAgICAgICAgICAgICB8fCAhaXNCYXNlUGVyaW9kRW1wbG95ZXIpICYmIHJlYXNvblNlcGFyYXRpb24udmFsdWUgJiYgcmVhc29uU2VwYXJhdGlvbi52YWx1ZS52YWx1ZSA9PT0gJ1ZPTFEnIFxyXG4gICAgICAgICAgICAgICYmIGVtcGxveWVyVHlwZS52YWx1ZSE9J01JTCcpXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInZvbFF1aXREZXRhaWxzXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQucmVhc29uLnNlcGFyYXRpb24ucXVpdFwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8YXBwLWRyb3Bkb3duIFtvcHRpb25zXT1cInZvbFF1aXRSZWFzb25PcHRpb25zQWxsXCIgW2Zvcm1Db250cm9sXT1cInZvbFF1aXREZXRhaWxzXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgaW5wdXRJZD1cInZvbFF1aXREZXRhaWxzXCI+PC9hcHAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3ZvbFF1aXREZXRhaWxzJyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdNSUwnIFwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJtaWxQZW5zaW9uRmxhZ1wiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQubWlsLnBlbnNpb25cInx0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgICAgPGJyPiB7e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5wZW5zaW9uLmRpc2NsYWltZXJcInx0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImlubGluZS1zaXplOiBtaW4tY29udGVudDtcIj5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBpZD1cIm1pbFBlbnNpb25GbGFnXCIgdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJtaWxQZW5zaW9uRmxhZ1wiIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J21pbFBlbnNpb25GbGFnJyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nTUlMJyAmJiB0aGlzLm1pbFBlbnNpb25GbGFnLnZhbHVlID09PSAnWScgJiYgdGhpcy5jdXJyZW50U3RhdGUgIT0gJ01FJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJtaWxQZW5zaW9uUmVjdkRhdGVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5wZW5zaW9uLmRhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxwLWNhbGVuZGFyIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cIm1pbFBlbnNpb25SZWN2RGF0ZVwiIFtmb3JtQ29udHJvbF09XCJtaWxQZW5zaW9uUmVjdkRhdGVcIlxyXG4gICAgICAgICAgICAgICAgICBbeWVhck5hdmlnYXRvcl09XCJ0cnVlXCIgYXBwZW5kVG89XCJib2R5XCIgeWVhclJhbmdlPVwiMTkwMToyMDUwXCIgZGF0ZUZvcm1hdD1cIm1tL2RkL3l5XCJcclxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJtbS9kZC95eXl5XCIgZGF0YVR5cGU9XCJzdHJpbmdcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgPC9wLWNhbGVuZGFyPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J21pbFBlbnNpb25SZWN2RGF0ZScgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdNSUwnIFwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJkZDIxNEZsYWdcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5kZDIxNFwifHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD48YnI+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImlubGluZS1zaXplOiBtaW4tY29udGVudDsgZGlzcGxheTogaW5saW5lLWZsZXg7XCI+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gaWQ9XCJkZDIxNEZsYWdcIiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicmFkaW9PcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cImRkMjE0RmxhZ1wiXHJcbiAgICAgICAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIiAob25PcHRpb25DbGljayk9XCJwdXRNaWxWYWxpZGF0aW9uKCRldmVudClcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2RkMjE0RmxhZycgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvaW9uLWNvbD5cclxuXHJcbiAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tcGFkZGluZ1wiIHNpemU9XCIxMlwiIHNpemVTbT1cIjEyXCIgc2l6ZVhzPVwiMTJcIiBzaXplTWQ9XCI2XCIgc2l6ZUxnPVwiNlwiIHNpemVYbD1cIjZcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIHAtZm9ybWdyaWRcIj5cclxuXHJcbiAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwicGFkLXNwYWNlXCI+IFxyXG4gICAgICAgICAgICA8aW9uLXJvdyAqbmdJZj1cIiFpc0Jhc2VQZXJpb2RFbXBsb3llclwiIGNsYXNzPVwiaW9uLWhpZGUtc20tZG93blwiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiIWlzQmFzZVBlcmlvZEVtcGxveWVyXCIgY2xhc3M9XCJpb24taGlkZS1zbS1kb3duXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj48L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCIhaXNCYXNlUGVyaW9kRW1wbG95ZXJcIiBjbGFzcz1cImlvbi1oaWRlLXNtLWRvd25cIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgPC9zZWN0aW9uPlxyXG5cclxuICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwicGFkLXNwYWNlXCI+IFxyXG4gICAgICAgICAgICA8aW9uLXJvdyAqbmdJZj1cImlzQmFzZVBlcmlvZEVtcGxveWVyXCIgY2xhc3M9XCJpb24taGlkZS1zbS1kb3duXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj48L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJpc0Jhc2VQZXJpb2RFbXBsb3llclwiIGNsYXNzPVwiaW9uLWhpZGUtc20tZG93blwiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J01JTCcgJiYgZGQyMTRGbGFnLnZhbHVlPT09J1knXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci13aWR0aDogMXB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cInBhcmFPbmUgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8YXBwLWZpbGUtdXBsb2FkZXIgW2Zvcm1Db250cm9sXT1cImRkMjE0RmlsZVwiIFt1cGxvYWRlZEZpbGVGb3JFZGl0XT1cImRkMjE0RmlsZS52YWx1ZVwiPjwvYXBwLWZpbGUtdXBsb2FkZXI+IC0tPlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8ZGl2IFtpbm5lckhUTUxdPVwic2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHBhcmFUd28gfCB0cmFuc2xhdGUpXCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxkaXYgW2lubmVySFRNTF09XCJzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwocGFyYVRocmVlIHwgdHJhbnNsYXRlKVwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwic2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHBhcmFGb3VyIHwgdHJhbnNsYXRlKVwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwic2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHBhcmFGaXZlIHwgdHJhbnNsYXRlKVwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cInNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChwYXJhU2l4fCB0cmFuc2xhdGUpXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDE1cHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuXHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J01JTCcgJiYgZGQyMTRGbGFnLnZhbHVlPT09J04nXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAxcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwibm9QYXJhT25lIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGFwcC1maWxlLXVwbG9hZGVyIFtmb3JtQ29udHJvbF09XCJkZDIxNEZpbGVcIiBbdXBsb2FkZWRGaWxlRm9yRWRpdF09XCJkZDIxNEZpbGUudmFsdWVcIj48L2FwcC1maWxlLXVwbG9hZGVyPiAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwobm9QYXJhVHdvIHwgdHJhbnNsYXRlKVwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxkaXYgW2lubmVySFRNTF09XCJzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwobm9QYXJhVGhyZWUgfCB0cmFuc2xhdGUpXCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwic2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKG5vUGFyYUZvdXIgfCB0cmFuc2xhdGUpXCJcclxuICAgICAgICAgICAgICAgICAgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDE1cHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBbaW5uZXJIVE1MXT1cInNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChub1BhcmFGaXZlIHwgdHJhbnNsYXRlKVwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICA8aW9uLXJvdyAqbmdJZj1cIih0aGlzLmN1cnJlbnRTdGF0ZSAhPSAnTVMnICYmIGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnICYmIG9zYUJwRW1wbG95ZXJGbGFnLnZhbHVlID09PScxJylcIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmctdG9wOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImdyb3NzV2FnZXNcIiBzdHlsZT1cImlubGluZS1zaXplOiBtYXgtY29udGVudDtcIj5Ub3RhbCBXYWdlcyBFYXJuZWQ8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBbZm9ybUNvbnRyb2xdPVwiZ3Jvc3NXYWdlc1wiIG1vZGU9XCJjdXJyZW5jeVwiIGN1cnJlbmN5PVwiVVNEXCIgbWF4bGVuZ3RoPVwiMTJcIlxyXG4gICAgICAgICAgICAgICAgICAgIFttYXhdPVwiOTk5OTk5Ljk5XCIgbG9jYWxlPVwiZW4tVVNcIj5cclxuICAgICAgICAgICAgICAgICAgPC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZ3Jvc3NXYWdlcycgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJyBcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZmVkUGVuc2lvbkZsYWdcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC5wZW5zaW9uXCJ8dHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgICAgIDxicj4ge3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQucGVuc2lvbi5kaXNjbGFpbWVyXCJ8dHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7IGRpc3BsYXk6ZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIGlkPVwiZmVkUGVuc2lvbkZsYWdcIiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicmFkaW9PcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZlZFBlbnNpb25GbGFnXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBvdmVybGF5VGV4dD1cInt7J2luZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQucGVuc2lvbi5pbmZvJ3wgdHJhbnNsYXRlfX1cIlxyXG4gICAgICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi10b3A6IDJweDsgbWFyZ2luLWxlZnQ6IDZweDtcIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2ZlZFBlbnNpb25GbGFnJyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJyAmJiB0aGlzLmZlZFBlbnNpb25GbGFnLnZhbHVlID09PSAnWScgJiYgdGhpcy5jdXJyZW50U3RhdGUgIT0gJ01FJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmZWRQZW5zaW9uUmVjdkRhdGVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC5wZW5zaW9uLmRhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxwLWNhbGVuZGFyIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cImZlZFBlbnNpb25SZWN2RGF0ZVwiIFtmb3JtQ29udHJvbF09XCJmZWRQZW5zaW9uUmVjdkRhdGVcIlxyXG4gICAgICAgICAgICAgICAgICBbeWVhck5hdmlnYXRvcl09XCJ0cnVlXCIgYXBwZW5kVG89XCJib2R5XCIgeWVhclJhbmdlPVwiMTkwMToyMDUwXCIgZGF0ZUZvcm1hdD1cIm1tL2RkL3l5XCJcclxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJtbS9kZC95eXl5XCIgZGF0YVR5cGU9XCJzdHJpbmdcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgPC9wLWNhbGVuZGFyPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2ZlZFBlbnNpb25SZWN2RGF0ZScgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnICYmIHRoaXMuY3VycmVudFN0YXRlID09PSAnTUUnIFwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJzZXZQYXlGbGFnXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQuc2V2ZXJhbmNlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7XCI+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gaWQ9XCJzZXZQYXlGbGFnXCIgdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJzZXZQYXlGbGFnXCJcclxuICAgICAgICAgICAgICAgICAgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nc2V2UGF5RmxhZycgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCcgJiYgc2V2UGF5RmxhZy52YWx1ZT09PSdZJ1wiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZy1yaWdodDo1cHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIndlZWtseUFtb3VudFwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLnNldmVyYW5jZS53ZWVrbHkuYW10XCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBbZm9ybUNvbnRyb2xdPVwid2Vla2x5QW1vdW50XCIgbW9kZT1cImN1cnJlbmN5XCIgY3VycmVuY3k9XCJVU0RcIiBtYXhsZW5ndGg9XCIxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgW21heF09XCI5OTk5OTkuOTlcIiBsb2NhbGU9XCJlbi1VU1wiIGlucHV0SWQ9XCJ3ZWVrbHlBbW91bnRcIj5cclxuICAgICAgICAgICAgICAgICAgPC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nd2Vla2x5QW1vdW50JyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmctcmlnaHQ6NXB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJudW1iZXJPZldlZWtzXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQuc2V2ZXJhbmNlLndlZWtzXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBpbnB1dElkPVwibnVtYmVyT2ZXZWVrc1wiIFt1c2VHcm91cGluZ109XCJmYWxzZVwiIFtmb3JtQ29udHJvbF09XCJudW1iZXJPZldlZWtzXCJcclxuICAgICAgICAgICAgICAgICAgICBtYXhsZW5ndGg9XCI0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvcC1pbnB1dE51bWJlcj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J251bWJlck9mV2Vla3MnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcblxyXG4gICAgICAgICAgICAgIDxpb24tY29sPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJzZXZQYXlBbW91bnRcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC5zZXZlcmFuY2UuZW50aXRsZW1lbnRcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIFtmb3JtQ29udHJvbF09XCJzZXZQYXlBbW91bnRcIiBtb2RlPVwiY3VycmVuY3lcIiBjdXJyZW5jeT1cIlVTRFwiIG1heGxlbmd0aD1cIjEyXCJcclxuICAgICAgICAgICAgICAgICAgICBbbWF4XT1cIjk5OTk5OS45OVwiIGxvY2FsZT1cImVuLVVTXCIgaW5wdXRJZD1cInNldlBheUFtb3VudFwiPlxyXG4gICAgICAgICAgICAgICAgICA8L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdzZXZQYXlBbW91bnQnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuXHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCcgJiYgc2V2UGF5RmxhZy52YWx1ZT09PSdZJ1wiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZy1yaWdodDo1cHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInNldlBheVN0YXJ0RGF0ZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLnNldmVyYW5jZS5zdGFydC5kYXRlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBbc2hvd0ljb25dPVwidHJ1ZVwiIGlucHV0SWQ9XCJzZXZQYXlTdGFydERhdGVcIiAob25CbHVyKT1cInZhbGlkYXRlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIChvblNlbGVjdCk9XCJ2YWxpZGF0ZSgkZXZlbnQpXCIgW2Zvcm1Db250cm9sXT1cInNldlBheVN0YXJ0RGF0ZVwiIFt5ZWFyTmF2aWdhdG9yXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIHllYXJSYW5nZT1cIjE5MDE6MjA1MFwiIGFwcGVuZFRvPVwiYm9keVwiIGRhdGVGb3JtYXQ9XCJtbS9kZC95eVwiIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YVR5cGU9XCJzdHJpbmdcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdzZXZQYXlTdGFydERhdGUnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcblxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZy1yaWdodDo1cHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInNldlBheUVuZERhdGVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC5zZXZlcmFuY2UuZW5kLmRhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWNhbGVuZGFyIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cInNldlBheUVuZERhdGVcIiBbZm9ybUNvbnRyb2xdPVwic2V2UGF5RW5kRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3llYXJOYXZpZ2F0b3JdPVwidHJ1ZVwiIHllYXJSYW5nZT1cIjE5MDE6MjA1MFwiIGRhdGVGb3JtYXQ9XCJtbS9kZC95eVwiIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgW21pbkRhdGVdPVwibWluRGF0ZVwiIGRhdGFUeXBlPVwic3RyaW5nXCIgW3Nob3dPbkZvY3VzXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdzZXZQYXlFbmREYXRlJyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG5cclxuICAgICAgICAgICAgICA8aW9uLWNvbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgICAgICBmb3I9XCJzZXZQYXlQYXltZW50U3RhcnREYXRlXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQuc2V2ZXJhbmNlLnBheS5kYXRlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBbc2hvd0ljb25dPVwidHJ1ZVwiIGlucHV0SWQ9XCJzZXZQYXlQYXltZW50U3RhcnREYXRlXCIgW2Zvcm1Db250cm9sXT1cInNldlBheVBheW1lbnRTdGFydERhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt5ZWFyTmF2aWdhdG9yXT1cInRydWVcIiBhcHBlbmRUbz1cImJvZHlcIiB5ZWFyUmFuZ2U9XCIxOTAxOjIwNTBcIiBkYXRlRm9ybWF0PVwibW0vZGQveXlcIlxyXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIGRhdGFUeXBlPVwic3RyaW5nXCIgW3Nob3dPbkZvY3VzXT1cImZhbHNlXCIgKG9uSW5wdXQpPVwiZGF0ZUlucHV0KCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgPC9wLWNhbGVuZGFyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nc2V2UGF5UGF5bWVudFN0YXJ0RGF0ZScgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgICBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcblxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCIoaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgd29ya0ZsYWcudmFsdWU9PT0nWScgJiYgZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycpXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInBlbnNpb25GbGFnXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQucGVuc2lvblwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiaW5saW5lLXNpemU6IG1pbi1jb250ZW50OyBkaXNwbGF5OmZsZXhcIj5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBpZD1cInBlbnNpb25GbGFnXCIgdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJwZW5zaW9uRmxhZ1wiIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBvdmVybGF5VGV4dD1cInt7J2luZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQucGVuc2lvbi5pbmZvJ3wgdHJhbnNsYXRlfX1cIlxyXG4gICAgICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi10b3A6IDJweDsgbWFyZ2luLWxlZnQ6IDZweDtcIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ncGVuc2lvbkZsYWcnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiKGlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHdvcmtGbGFnLnZhbHVlPT09J1knICYmIHBlbnNpb25GbGFnLnZhbHVlPT09J1knIFxyXG4gICAgICAgICAgICAmJiBlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyAmJiB0aGlzLmN1cnJlbnRTdGF0ZSAhPSAnTUUnKVwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJwZW5zaW9uUmVjdkRhdGVcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5wZW5zaW9uLmRhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxwLWNhbGVuZGFyIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cInBlbnNpb25SZWN2RGF0ZVwiIFtmb3JtQ29udHJvbF09XCJwZW5zaW9uUmVjdkRhdGVcIlxyXG4gICAgICAgICAgICAgICAgICBbeWVhck5hdmlnYXRvcl09XCJ0cnVlXCIgYXBwZW5kVG89XCJib2R5XCIgeWVhclJhbmdlPVwiMTkwMToyMDUwXCIgZGF0ZUZvcm1hdD1cIm1tL2RkL3l5XCJcclxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJtbS9kZC95eXl5XCIgZGF0YVR5cGU9XCJzdHJpbmdcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgPC9wLWNhbGVuZGFyPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3BlbnNpb25SZWN2RGF0ZScgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIighaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycpXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInJlZ1BlbnNpb25GbGFnXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcucGVuc2lvblwifHRyYW5zbGF0ZX19IDxiciAvPlxyXG4gICAgICAgICAgICAgICAge3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcucGVuc2lvbi5kaXNjbGFpbWVyXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7IGRpc3BsYXk6ZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIGlkPVwicmVnUGVuc2lvbkZsYWdcIiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicmFkaW9PcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInJlZ1BlbnNpb25GbGFnXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBvdmVybGF5VGV4dD1cInt7J2luZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcucGVuc2lvbi5pbmZvJ3wgdHJhbnNsYXRlfX1cIlxyXG4gICAgICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi10b3A6IDJweDsgbWFyZ2luLWxlZnQ6IDZweDtcIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3JlZ1BlbnNpb25GbGFnJyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIighaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycgXHJcbiAgICAgICAgICAgICYmIHJlZ1BlbnNpb25GbGFnLnZhbHVlPT09J1knICYmIHRoaXMuY3VycmVudFN0YXRlICE9ICdNRScpXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInJlZ1BlbnNpb25SZWN2RGF0ZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucmVnLnBlbnNpb24uZGF0ZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPHAtY2FsZW5kYXIgW3Nob3dJY29uXT1cInRydWVcIiBpbnB1dElkPVwicmVnUGVuc2lvblJlY3ZEYXRlXCIgW2Zvcm1Db250cm9sXT1cInJlZ1BlbnNpb25SZWN2RGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFt5ZWFyTmF2aWdhdG9yXT1cInRydWVcIiBhcHBlbmRUbz1cImJvZHlcIiB5ZWFyUmFuZ2U9XCIxOTAxOjIwNTBcIiBkYXRlRm9ybWF0PVwibW0vZGQveXlcIlxyXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIm1tL2RkL3l5eXlcIiBkYXRhVHlwZT1cInN0cmluZ1wiIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICA8L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ncmVnUGVuc2lvblJlY3ZEYXRlJyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCEtLSBSRUcgRGlzbWlzc2FsUGF5RmxhZyAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCIoKChpc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB3b3JrRmxhZy52YWx1ZT09PSdZJykgfHwgIWlzQmFzZVBlcmlvZEVtcGxveWVyKSBcclxuICAgICAgICAgICAgICAgICYmIChlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyApICYmIHRoaXMuY3VycmVudFN0YXRlID09ICdDVCcpXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInJlZ0Rpc3NtaXNhbEZsYWdcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5kaXNzbWlzYWxGbGFnXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7IGRpc3BsYXk6ZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIGlkPVwicmVnRGlzc21pc2FsRmxhZ1wiIHVuc2VsZWN0YWJsZT1cInRydWVcIiBbb3B0aW9uc109XCJyYWRpb09wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwicmVnRGlzc21pc2FsRmxhZ1wiIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdyZWdEaXNzbWlzYWxGbGFnJyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8IS0tIFJFRyBkaXNtaXNzYWxDaGVja0JveC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiKCh0aGlzLmN1cnJlbnRTdGF0ZSA9PT0gJ0NUJyAmJiAoZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycpKVxyXG4gICAgICAgICAgICAmJiAoKGlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHdvcmtGbGFnLnZhbHVlPT09J1knKSB8fCAhaXNCYXNlUGVyaW9kRW1wbG95ZXIpKSAmJiB0aGlzLnJlZ0Rpc3NtaXNhbEZsYWcudmFsdWU9PT0nWSdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicmVnRGlzc21pc2FsQ2hlY2tCb3hcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5kaXNzbWlzYWxDaGVja0JveFwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8cC1jaGVja2JveCBbbmFtZV09XCIncmVnRGlzc21pc2FsQ2hlY2tCb3gtZ3JvdXAnXCIgW3ZhbHVlXT1cImNob2ljZS52YWx1ZVwiIFtsYWJlbF09XCJjaG9pY2UudGV4dFwiXHJcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgY2hvaWNlIG9mIGRpc3NtaXNhbENoZWNrQm94T3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJyZWdEaXNzbWlzYWxDaGVja0JveFwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZUNsYXNzPVwiYXBwLXAtY2hlY2tib3hcIj48L3AtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3JlZ0Rpc3NtaXNhbENoZWNrQm94JyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIFJFRyBMYWlkT2ZmRmxhZy0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIigoKGlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHdvcmtGbGFnLnZhbHVlPT09J1knKSB8fCAhaXNCYXNlUGVyaW9kRW1wbG95ZXIpIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICYmIChlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyApICYmIHRoaXMuY3VycmVudFN0YXRlID09ICdDVCcpXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInJlZ0xhaWRPZmZGbGFnXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQubGFpZE9mZkZsYWdcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImlubGluZS1zaXplOiBtaW4tY29udGVudDsgZGlzcGxheTpmbGV4XCI+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gaWQ9XCJyZWdMYWlkT2ZmRmxhZ1wiIHVuc2VsZWN0YWJsZT1cInRydWVcIiBbb3B0aW9uc109XCJyYWRpb09wdGlvbnNcIiBbZm9ybUNvbnRyb2xdPVwicmVnTGFpZE9mZkZsYWdcIlxyXG4gICAgICAgICAgICAgICAgICBvcHRpb25MYWJlbD1cInRleHRcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ncmVnTGFpZE9mZkZsYWcnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgIDwhLS0gRkVEIERpc21pc3NhbFBheUZsYWcgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiKCgoaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgd29ya0ZsYWcudmFsdWU9PT0nWScpIHx8ICFpc0Jhc2VQZXJpb2RFbXBsb3llcikgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICYmIChlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJyApICYmIHRoaXMuY3VycmVudFN0YXRlID09ICdDVCcpXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZlZERpc3NtaXNhbEZsYWdcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5kaXNzbWlzYWxGbGFnXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7IGRpc3BsYXk6ZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIGlkPVwiZmVkRGlzc21pc2FsRmxhZ1wiIHVuc2VsZWN0YWJsZT1cInRydWVcIiBbb3B0aW9uc109XCJyYWRpb09wdGlvbnNcIiBbZm9ybUNvbnRyb2xdPVwiZmVkRGlzc21pc2FsRmxhZ1wiXHJcbiAgICAgICAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdmZWREaXNzbWlzYWxGbGFnJyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIEZFRCAgZGlzbWlzc2FsQ2hlY2tCb3ggLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCIoKHRoaXMuY3VycmVudFN0YXRlID09PSAnQ1QnICYmIChlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJykpXHJcbiAgICAgICAgICAgICAgICAgICAgICAmJiAoKGlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHdvcmtGbGFnLnZhbHVlPT09J1knKSB8fCAhaXNCYXNlUGVyaW9kRW1wbG95ZXIpKSAmJiB0aGlzLmZlZERpc3NtaXNhbEZsYWcudmFsdWU9PT0nWSdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZmVkRGlzc21pc2FsQ2hlY2tCb3hcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5kaXNzbWlzYWxDaGVja0JveFwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8cC1jaGVja2JveCBbbmFtZV09XCInZmVkRGlzc21pc2FsQ2hlY2tCb3gtZ3JvdXAnXCIgW3ZhbHVlXT1cImNob2ljZS52YWx1ZVwiIFtsYWJlbF09XCJjaG9pY2UudGV4dFwiXHJcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgY2hvaWNlIG9mIGRpc3NtaXNhbENoZWNrQm94T3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJmZWREaXNzbWlzYWxDaGVja0JveFwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZUNsYXNzPVwiYXBwLXAtY2hlY2tib3hcIj48L3AtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2ZlZERpc3NtaXNhbENoZWNrQm94JyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwhLS0gRkVEICBMYWlkT2ZmRmxhZy0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIigoKGlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHdvcmtGbGFnLnZhbHVlPT09J1knKSB8fCAhaXNCYXNlUGVyaW9kRW1wbG95ZXIpIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmJiAoZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCcgKSAmJiB0aGlzLmN1cnJlbnRTdGF0ZSA9PSAnQ1QnKVwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmZWRMYWlkT2ZmRmxhZ1wiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LmxhaWRPZmZGbGFnXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7IGRpc3BsYXk6ZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIGlkPVwiZmVkTGFpZE9mZkZsYWdcIiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicmFkaW9PcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cImZlZExhaWRPZmZGbGFnXCJcclxuICAgICAgICAgICAgICAgICAgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2ZlZExhaWRPZmZGbGFnJyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiKChpc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB3b3JrRmxhZy52YWx1ZT09PSdZJykgfHwgIWlzQmFzZVBlcmlvZEVtcGxveWVyKVxyXG4gICAgICAgICAgICAgICYmIGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnICYmIHRoaXMuY3VycmVudFN0YXRlICE9ICdDVCdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgIGZvcj1cImlzQ2xtdFBhaWRXaGlsZUxvd1wiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LmVtcGxveWVyLnBheS5yZXR1cm4udG8ud29ya1wifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiaW5saW5lLXNpemU6IG1pbi1jb250ZW50OyBkaXNwbGF5OmZsZXg7XCI+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gaWQ9XCJpc0NsbXRQYWlkV2hpbGVMb3dcIiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicmFkaW9PcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImlzQ2xtdFBhaWRXaGlsZUxvd1wiIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1vdmVybGF5LWluZm9cclxuICAgICAgICAgICAgICAgICAgb3ZlcmxheVRleHQ9XCJ7eydpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucmVnLmVtcGxveWVyUGF5UmV0dXJuVG9Xb3JrSW5mbyd8IHRyYW5zbGF0ZX19XCJcclxuICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tdG9wOiAycHg7IG1hcmdpbi1sZWZ0OiA2cHg7XCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdpc0NsbXRQYWlkV2hpbGVMb3cnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCIoKGlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHdvcmtGbGFnLnZhbHVlPT09J1knKSB8fCAhaXNCYXNlUGVyaW9kRW1wbG95ZXIpJiYgZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycgJiYgY3VycmVudFN0YXRlID09PSdNRSdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiaGFzU2hvcnRUZXJtRGlzYWJpbGl0eVwiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LnNob3J0dGVybWRpc2FiaWxpdHlcInx0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgICAge3ticFN0YXJ0RGF0ZVRvRGlzcGxheSB8IGRhdGU6J01NTU0gZCwgeXl5eSd9fSA/PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiaW5saW5lLXNpemU6IG1pbi1jb250ZW50O1wiPlxyXG4gICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIGlkPVwiaGFzU2hvcnRUZXJtRGlzYWJpbGl0eVwiIHVuc2VsZWN0YWJsZT1cInRydWVcIiBbb3B0aW9uc109XCJyYWRpb09wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiaGFzU2hvcnRUZXJtRGlzYWJpbGl0eVwiIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2hhc1Nob3J0VGVybURpc2FiaWxpdHknIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCIoKGlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHdvcmtGbGFnLnZhbHVlPT09J1knKSB8fCAhaXNCYXNlUGVyaW9kRW1wbG95ZXIpJiYgZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycgJiYgY3VycmVudFN0YXRlPT09J01FJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJoYXNSZWN2UmVtdW5lcmF0aW9uXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQucmVtdW5lcmF0aW9uLnBheVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiaW5saW5lLXNpemU6IG1pbi1jb250ZW50O1wiPlxyXG4gICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIGlkPVwiaGFzUmVjdlJlbXVuZXJhdGlvblwiIHVuc2VsZWN0YWJsZT1cInRydWVcIiBbb3B0aW9uc109XCJyYWRpb09wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiaGFzUmVjdlJlbXVuZXJhdGlvblwiIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2hhc1JlY3ZSZW11bmVyYXRpb24nIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCIoKGlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHdvcmtGbGFnLnZhbHVlPT09J1knKSB8fCAhaXNCYXNlUGVyaW9kRW1wbG95ZXIpICYmIGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnICYmIGN1cnJlbnRTdGF0ZT09PSdNRScgJiYgaGFzUmVjdlJlbXVuZXJhdGlvbi52YWx1ZT09PSdZJyAmJiBvc2FCcEVtcGxveWVyRmxhZy52YWx1ZT09PScwJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJyZW11bmVyYXRpb25UeXBlc1wiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LnJlbXVuZXJhdGlvbi50eXBlc1wifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8cC1jaGVja2JveCBbbmFtZV09XCIncmVtdW5lcmF0aW9udHlwZXMtZ3JvdXAnXCIgW3ZhbHVlXT1cImNob2ljZS52YWx1ZVwiIFtsYWJlbF09XCJjaG9pY2UudGV4dFwiXHJcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgY2hvaWNlIG9mIHJlbXVuZXJhdGlvblR5cGVPcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cInJlbXVuZXJhdGlvblR5cGVzXCJcclxuICAgICAgICAgICAgICAgIHN0eWxlQ2xhc3M9XCJhcHAtcC1jaGVja2JveFwiPjwvcC1jaGVja2JveD5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ncmVtdW5lcmF0aW9uVHlwZXMnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCIoKGlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHdvcmtGbGFnLnZhbHVlPT09J1knICYmIHNjaG9vbEZsYWcgPT09JzEnKSB8fCAhaXNCYXNlUGVyaW9kRW1wbG95ZXIpJiYgZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycgJiYgY3VycmVudFN0YXRlID09PSdNRSdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwidmFjYXRpb25cIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC52YWNhdGlvbi5icmVha1wifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiaW5saW5lLXNpemU6IG1pbi1jb250ZW50O1wiPlxyXG4gICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIGlkPVwidmFjYXRpb25cIiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicmFkaW9PcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cInZhY2F0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ndmFjYXRpb24nIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAqbmdJZj1cIndvcmtTdGF0ZS52YWx1ZSAmJiB3b3JrU3RhdGUudmFsdWUudmFsdWU9PT10aGlzLmN1cnJlbnRTdGF0ZSAmJiBkaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZSAmJiAhaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRydcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxoND57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy52ZXJpZmljYXRpb24ud2FnZXMuaGVhZGVyXCJ8dHJhbnNsYXRlfX08L2g0PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucmVnLnZlcmlmaWNhdGlvbi53YWdlcy5zdWJoZWFkZXJcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ3b3JrVHlwZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucmVnLndvcmsudHlwZVwiIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJ3b3JrVHlwZVwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cIndvcmtUeXBlXCIgbWF4bGVuZ3RoPVwiNTBcIiAvPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nd29ya1R5cGUnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInBheW1lbnRUeXBlXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcudmVyaWZpY2F0aW9uLndhZ2VzLnBheW1vZGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gaWQ9XCJwYXltZW50VHlwZVwiIHVuc2VsZWN0YWJsZT1cInRydWVcIiBbb3B0aW9uc109XCJwYXlNZXRob2RPcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInBheW1lbnRUeXBlXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ncGF5bWVudFR5cGUnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZG9jc1JlY2VpdmVkXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcudmVyaWZpY2F0aW9uLndhZ2VzLmRvY3NcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gaWQ9XCJkb2NzUmVjZWl2ZWRcIiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwid2FnZVByb29mT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJkb2NzUmVjZWl2ZWRcIiBvcHRpb25MYWJlbD1cInRleHRcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdkb2NzUmVjZWl2ZWQnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwib3RoZXJTU05GbGFnXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcudmVyaWZpY2F0aW9uLndhZ2VzLm90aGVyLnNzbi5mbGFnXCJ8dHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgICAgICAge3ticFN0YXJ0RGF0ZVRvRGlzcGxheSB8IGRhdGU6J01NTU0gZCwgeXl5eSd9fSA/XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImlubGluZS1zaXplOiBtaW4tY29udGVudDtcIj5cclxuICAgICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIGlkPVwib3RoZXJTU05GbGFnXCIgdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cIm90aGVyU1NORmxhZ1wiIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nb3RoZXJTU05GbGFnJyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cInRoaXMub3RoZXJTU05GbGFnLnZhbHVlID09PSAnWSdcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJvdGhlclNTTlwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucmVnLnZlcmlmaWNhdGlvbi53YWdlcy5vdGhlci5zc25cInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8cC1pbnB1dE1hc2sgbWFzaz1cIjk5OS05OS05OTk5XCIgaWQ9XCJvdGhlclNTTlwiIFtmb3JtQ29udHJvbF09XCJvdGhlclNTTlwiIHBsYWNlaG9sZGVyPVwiOTk5LTk5LTk5OTlcIj5cclxuICAgICAgICAgICAgICAgIDwvcC1pbnB1dE1hc2s+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nb3RoZXJTU04nIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiaGlyZWRCeVwiPk1hbmFnZXIncyBOYW1lICYgVGl0bGU8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJoaXJlZEJ5XCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwiaGlyZWRCeVwiIG1heGxlbmd0aD1cIjQwXCIvPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0naGlyZWRCeScgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj4gICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8aW9uLXJvd1xyXG4gICAgICAgICAgICAgICpuZ0lmPVwid29ya1N0YXRlLnZhbHVlICYmIHdvcmtTdGF0ZS52YWx1ZS52YWx1ZT09PSB0aGlzLmN1cnJlbnRTdGF0ZSAmJiBkaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZSAmJiAhaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRydcIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgICAgICBmb3I9XCJvdGhlck5hbWVGbGFnXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcudmVyaWZpY2F0aW9uLndhZ2VzLm90aGVyLm5hbWUuZmxhZ1wifHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgICAgICAgICAge3ticFN0YXJ0RGF0ZVRvRGlzcGxheSB8IGRhdGU6J01NTU0gZCwgeXl5eSd9fSA/XHJcbiAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIGlkPVwib3RoZXJOYW1lRmxhZ1wiIHVuc2VsZWN0YWJsZT1cInRydWVcIiBbb3B0aW9uc109XCJyYWRpb09wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cIm90aGVyTmFtZUZsYWdcIiBvcHRpb25MYWJlbD1cInRleHRcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nb3RoZXJOYW1lRmxhZycgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJ0aGlzLm90aGVyTmFtZUZsYWcudmFsdWUgPT09ICdZJ1wiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgICAgICBmb3I9XCJvdGhlck5hbWVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy52ZXJpZmljYXRpb24ud2FnZXMub3RoZXIubmFtZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwib3RoZXJOYW1lXCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwib3RoZXJOYW1lXCIgbWF4bGVuZ3RoPVwiMzBcIiAvPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nb3RoZXJOYW1lJyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gPGlvbi1yb3cgKm5nSWY9XCJ3b3JrU3RhdGUudmFsdWUgJiYgd29ya1N0YXRlLnZhbHVlLnZhbHVlPT09J01TJyAmJiBkaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZSAmJiAhaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRydcIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZmVpblwiPkZFSU48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBbaWRdPVwiZmVpblwiIFt1c2VHcm91cGluZ109XCJmYWxzZVwiIFtmb3JtQ29udHJvbF09XCJmZWluXCIgbWF4bGVuZ3RoPVwiOVwiPjwvcC1pbnB1dE51bWJlcj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2ZlaW4nIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjFcIj48L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImRvaW5nQnVzaW5lc3NBc1wiPkRvaW5nIEJ1c2luZXNzIEFzL1RyYWRlIE5hbWU8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJkb2luZ0J1c2luZXNzQXNcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJkb2luZ0J1c2luZXNzQXNcIiBtYXhsZW5ndGg9XCIxMDBcIi8+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdkb2luZ0J1c2luZXNzQXMnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz4gLS0+XHJcblxyXG4gICAgICAgICAgICA8IS0tPGlvbi1yb3cgKm5nSWY9XCJ3b3JrU3RhdGUudmFsdWUgJiYgd29ya1N0YXRlLnZhbHVlLnZhbHVlPT09dGhpcy5jdXJyZW50U3RhdGUgJiYgZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMudmFsdWUgXHJcbiAgICAgICAgICAgICAgICAmJiAhaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycgJiYgZmFsc2VcIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiYnVzaW5lc3NOYXR1cmVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy52ZXJpZmljYXRpb24ubmF0dXJlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJidXNpbmVzc05hdHVyZVwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cImJ1c2luZXNzTmF0dXJlXCIgbWF4bGVuZ3RoPVwiMjUwXCIvPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nYnVzaW5lc3NOYXR1cmUnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz4tLT5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIigod29ya1N0YXRlLnZhbHVlICYmIHdvcmtTdGF0ZS52YWx1ZS52YWx1ZT09PWN1cnJlbnRTdGF0ZSAmJiBlbXBsb3llclR5cGUgJiYgZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMudmFsdWUgJiYgIWlzQmFzZVBlcmlvZEVtcGxveWVyICYmIGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnKSBcclxuICAgICAgICAgICAgICAgICAgICB8fCAoZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCcgJiYgaXNOZXdDbGFpbSkpICYmIChlbXBsb3llclR5cGUudmFsdWUhPSdNSUwnKVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCdcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbD48Yj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC52ZXJpZmljYXRpb24ud2FnZXNcInx0cmFuc2xhdGV9fTwvYj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRydcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbD48Yj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy52ZXJpZmljYXRpb24ud2FnZXNcInx0cmFuc2xhdGV9fTwvYj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCdcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbD57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC52ZXJpZmljYXRpb24ud2FnZXMuc3RhdGVtZW50XCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPHRhYmxlIHJ1bGVzPXJvd3M+XHJcbiAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcudmVyaWZpY2F0aW9uLndhZ2VzLmNvbDFcInx0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRoPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucmVnLnZlcmlmaWNhdGlvbi53YWdlcy5jb2wyXCJ8dHJhbnNsYXRlfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIGZvcm1BcnJheU5hbWU9XCJ3YWdlQW1vdW50QXJyYXlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB3YWdlQW1vdW50Rm9ybSBvZiB3YWdlQW1vdW50QXJyYXkuY29udHJvbHM7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Hcm91cE5hbWVdPVwiaVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiKChlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJykgfHwgKGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnICYmIHdhZ2VBbW91bnRGb3JtLnZhbHVlLmRpc3BsYXlGb3JBbGw9PT10cnVlKSApXCIgY2xhc3M9XCJxdWFydGVyVGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAge3t3YWdlQW1vdW50Rm9ybS52YWx1ZS5xdHJZZWFyRGlzcGxheVN0cmluZ319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBbaW5wdXRJZF09XCInd2FnZUFtb3VudCcgKyBpXCIgYXJpYUxhYmVsPVwid2FnZUFtb3VudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ3YWdlQW1vdW50XCIgbW9kZT1cImN1cnJlbmN5XCIgW21pbl09XCIwLjAwXCIgW21heF09XCI5OTk5OTkuOTlcIiBtYXhsZW5ndGg9XCIxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeT1cIlVTRFwiIGxvY2FsZT1cImVuLVVTXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8dHIgKm5nSWY9XCJ3YWdlQW1vdW50QXJyYXkuZXJyb3JzPy5yZXF1aXJlQ2hlY2tib3hUb0JlQ2hlY2tlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49XCIyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd3YWdlQW1vdW50QXJyYXknIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlQ2hlY2tib3hUb0JlQ2hlY2tlZDogJ2F0IGxlYXN0IG9uZSBhbW91bnQgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVybydcclxuICAgICAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwic2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHN0YXRlbWVudDEgfCB0cmFuc2xhdGUpXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxkaXYgW2lubmVySFRNTF09XCJzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoc3RhdGVtZW50MiB8IHRyYW5zbGF0ZSlcIj48L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxkaXYgW2lubmVySFRNTF09XCJzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoc3RhdGVtZW50MyB8IHRyYW5zbGF0ZSlcIj48L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwic2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHN0YXRlbWVudDQgfCB0cmFuc2xhdGUpXCJcclxuICAgICAgICAgICAgICAgICAgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDE1cHg7XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICA8L2lvbi1yb3c+XHJcblxyXG4gICAgICA8aW9uLXJvdz5cclxuICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi10ZXh0LXJpZ2h0XCI+XHJcbiAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgc3R5bGU9XCJ3aWR0aDogODBweDtcIiBmaWxsPVwib3V0bGluZVwiIChjbGljayk9XCJvbk1vZGVsQ2FuY2VsKGZhbHNlKVwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJyZXNldFwiPnt7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC5idXR0b24uY2FuY2VsXCJ8dHJhbnNsYXRlfX0gPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIHN0eWxlPVwid2lkdGg6IDgwcHg7XCIgKGNsaWNrKT1cInNhdmUoKVwiIHR5cGU9XCJzdWJtaXRcIiAqbmdJZj1cImlzQmFzZVBlcmlvZEVtcGxveWVyXCI+XHJcbiAgICAgICAgICAgIHt7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC5idXR0b24uc2F2ZVwifHRyYW5zbGF0ZX19IDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiBzdHlsZT1cIndpZHRoOiA4MHB4O1wiIChjbGljayk9XCJhZGQoKVwiIHR5cGU9XCJzdWJtaXRcIiAqbmdJZj1cIiFpc0Jhc2VQZXJpb2RFbXBsb3llclwiPlxyXG4gICAgICAgICAgICB7e1wiaW5kdWN0aW9uLmVtcGxveW1lbnQuYnV0dG9uLmFkZFwifHRyYW5zbGF0ZX19IDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgIDwvaW9uLXJvdz5cclxuXHJcbiAgICA8L2lvbi1ncmlkPlxyXG4gIDwvZm9ybT5cclxuPC9wLWRpYWxvZz4iXX0=
|
|
3738
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWVtcGxveWVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9hZGQtZW1wbG95ZXIvYWRkLWVtcGxveWVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9hZGQtZW1wbG95ZXIvYWRkLWVtcGxveWVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFpQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEksT0FBTyxFQUF3RixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdsSSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFNcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBT2hFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztJQ0ozRSwyQkFBK0I7SUFDN0IsWUFBOEQ7O0lBQUEsaUJBQU07OztJQUFwRSxlQUE4RDtJQUE5RCxnSEFBOEQ7OztJQUVoRSwyQkFBb0UsZUFBQTtJQUNsQyxZQUNoQztJQUFBLGlCQUFPLEVBQUE7OztJQUR5QixlQUNoQztJQURnQyw4REFDaEM7OztJQUVGLDJCQUFxRDtJQUNuRCxxQkFBSTtJQUNKLFlBQ0Y7O0lBQUEsaUJBQU07O0lBREosZUFDRjtJQURFLG9HQUNGOzs7SUFNUSwwQkFBZ0MsUUFBQTtJQUMzQixZQUE4QjtJQUFBLGlCQUFJLEVBQUE7OztJQUFsQyxlQUE4QjtJ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bUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUUsQ0FBQyxDQUFDLENBQUM7WUFDdlIsa0JBQWtCLEVBQUUsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUUsQ0FBQyxDQUFDLENBQUM7WUFDN1Isc0JBQXNCLEVBQUUsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFTLGdCQUFnQixFQUFFLENBQUMsR0FBRyxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUUsQ0FBQyxDQUFDLENBQUM7WUFDdlIsb0JBQW9CLEVBQUUsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxLQUFLLEtBQUssSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxDQUFFO1lBQzlSLHdCQUF3QixFQUFFLENBQUMsR0FBRyxDQUFDLHNCQUFzQixJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxJQUFJLENBQUMsQ0FBQztZQUMxUyxxQkFBcUIsRUFBRSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLENBQUM7WUFDalMsbUJBQW1CLEVBQUUsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNuRixVQUFVLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxLQUFLLEdBQUcsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxZ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Z0IsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELGdDQUFnQztRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxl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QXdFeEQsV0FBVztrQkFEVixNQUFNO1lBSVAsT0FBTztrQkFETixNQUFNO1lBSUEsaUJBQWlCO2tCQUR2QixLQUFLO1lBSUMsb0JBQW9CO2tCQUQxQixLQUFLO1lBSUMsVUFBVTtrQkFEaEIsS0FBSztZQUlDLEdBQUc7a0JBRFQsS0FBSztZQU1OLGVBQWU7a0JBRGQsTUFBTTs7a0ZBakdJLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVW50eXBlZEZvcm1BcnJheSwgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwLCBOZ0Zvcm0sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGaWx0ZXJTZXJ2aWNlLCBTZWxlY3RJdGVtR3JvdXAgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQge0RvbVNhbml0aXplcn0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBDbGFpbUFwcEVtcGxveWVyRGV0YWlsc01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbCc7XG5pbXBvcnQgeyBDb21ib09wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0NvbWJvTW9kZWwnO1xuaW1wb3J0IHsgRW1wbG95ZXJEZXRhaWxTZWFyY2hSZXN1bHQgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9FbXBsb3llckRldGFpbFNlYXJjaFJlc3VsdCc7XG5pbXBvcnQgeyBRdHJZZWFyRW1wbG95ZXJXYWdlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9RdHJZZWFyRW1wbG95ZXJXYWdlTW9kZWwnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3F1ZXN0aW9ubmFpcmUvdmFsaWRhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXRpbC91dGlsLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBwVmFsaWRhdG9ycyB9IGZyb20gJy4uLy4uL3ZhbGlkYXRpb25zL0FwcFZhbGlkYXRvcnMnO1xuaW1wb3J0IHsgQWRkcmVzc0NvbXBvbmVudE1vZGVsLCBDaG9pY2VzTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvQWRkcmVzc0NvbXBvbmVudE1vZGVsJztcbmltcG9ydCB7IENsYWltU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NsYWltcy9jbGFpbXMuc2VydmljZSc7XG5pbXBvcnQgeyBBZGRyZXNzQ29tcG9uZW50IH0gZnJvbSAnLi4vYWRkcmVzcy9hZGRyZXNzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2dpbi9sb2dpbi5zZXJ2aWNlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEtleVZhbHVlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9LZXlWYWx1ZU1vZGVsJztcbmltcG9ydCB7IFJlYXNvblNlcGFyYXRpb25SZXF1ZXN0TW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvUmVhc29uU2VwYXJhdGlvblJlcXVlc3RNb2RlbCc7XG5pbXBvcnQgeyBFbXBsb3llclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lbXBsb3llci9lbXBsb3llci1zZXJ2aWNlJztcbmltcG9ydCB7IENsYWltQXBwRW1wUmVzcG9uc2VNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0NsYWltQXBwRW1wUmVzcG9uc2VNb2RlbCc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWFkZC1lbXBsb3llcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGQtZW1wbG95ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hZGQtZW1wbG95ZXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQWRkRW1wbG95ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkNoYW5nZXMge1xuXG4gIEBWaWV3Q2hpbGQoJ2FkZHJlc3MxJykgYWRkcmVzczE6IEFkZHJlc3NDb21wb25lbnQ7IFxuICBAVmlld0NoaWxkKCdhZGRyZXNzMicpIGFkZHJlc3MyOiBBZGRyZXNzQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdhZGRyZXNzMycpIGFkZHJlc3MzOiBBZGRyZXNzQ29tcG9uZW50OyBcblxuICBAVmlld0NoaWxkKCdhZGRFbXBsb3llckZvcm1EaXJlY3RpdmUnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgcHVibGljIGFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZTogTmdGb3JtO1xuICBwdWJsaWMgZW1wbG95ZXJUeXBlT3B0aW9ucyA9IENvbWJvT3B0aW9uLkVNUExPWUVSX1RZUEU7XG4gIHB1YmxpYyBjb3VudHJ5T3B0aW9ucyA9IENvbWJvT3B0aW9uLkNPVU5UUlk7XG4gIHB1YmxpYyBjb3VudHJ5RmVkT3B0aW9ucyA9IENvbWJvT3B0aW9uLkNPVU5UUlk7XG4gIHB1YmxpYyBwYXlSYXRlT3B0aW9ucyA9IENvbWJvT3B0aW9uLlBBWV9QRVJJT0Q7XG4gIHB1YmxpYyBzdGF0ZU9wdGlvbnM6IGFueSA9IFtdO1xuICBwdWJsaWMgZmVkU3RhdGVPcHRpb25zOiBhbnkgPSBbXTtcbiAgcHVibGljIGpvYlRpbGVPclBvc2l0aW9uT3B0aW9uczogYW55ID1bXTtcbiAgcHVibGljIGZlZEpvYlRpbGVPcHRpb25zOiBhbnkgPVtdO1xuICBwdWJsaWMgcmFkaW9PcHRpb25zID0gQ29tYm9PcHRpb24uWUVTX05PO1xuICBwdWJsaWMgd29ya09wdGlvbnMgPSBDb21ib09wdGlvbi5XT1JLX0ZPUl9FTVBMO1xuICBwdWJsaWMgeWVzTm9OYU9wdGlvbnMgPSBDb21ib09wdGlvbi5ZRVNfTk9fTkE7XG4gIHB1YmxpYyBwYXlNZXRob2RPcHRpb25zID0gQ29tYm9PcHRpb24uUEFZTUVOVF9NRVRIT0Q7XG4gIHB1YmxpYyB3YWdlUHJvb2ZPcHRpb25zID0gQ29tYm9PcHRpb24uV0FHRV9QUk9PRjtcbiAgcHVibGljIGRpc2NoYXJnZVJlYXNvbk9wdGlvbnM6IENob2ljZXNNb2RlbFtdID0gW107XG4gIHB1YmxpYyB2b2xRdWl0UmVhc29uT3B0aW9uczogQ2hvaWNlc01vZGVsW10gPSBbXTtcbiAgcHVibGljIHN0YXRlc09wdGlvbnM7XG4gIHB1YmxpYyBwYXlQZXJpb2QgPSBDb21ib09wdGlvbi5QQVlfUEVSSU9EO1xuICBwdWJsaWMgZW1wbG95bWVudFN0YXR1c09wdGlvbnM6IENob2ljZXNNb2RlbFtdID0gW107XG4gIHB1YmxpYyB3b3JrQ291bnRyeU9wdGlvbnMgPSBDb21ib09wdGlvbi5XT1JLX0NPVU5UUlk7XG4gIHB1YmxpYyBtaWxpdGFyeVNlcnZpY2VPcHRpb25zID0gQ29tYm9PcHRpb24uTUlMSVRBUllfU0VSVklDRTtcbiAgcHVibGljIG1pbGl0YXJ5U2VydmljZU9wdGlvbnNXaXRoU3BhY2UgPSBDb21ib09wdGlvbi5NSUxJVEFSWV9TRVJWSUNFX1VTU0Y7XG4gIHB1YmxpYyByZW11bmVyYXRpb25UeXBlT3B0aW9ucyA9IENvbWJvT3B0aW9uLlJFTVVORVJBVElPTl9UWVBFUztcbiAgcHVibGljIHNoaWZ0T3B0aW9ucz1Db21ib09wdGlvbi5TSElGVDtcbiAgcHVibGljIGRpZFdvcmtPcHRpb25zPUNvbWJvT3B0aW9uLkRJRFdPUks7XG4gIHB1YmxpYyB3b3JrV2Vla09wdGlvbnM9Q29tYm9PcHRpb24uV09SS1dFRUs7XG4gIHB1YmxpYyBkaXNzbWlzYWxDaGVja0JveE9wdGlvbnM9Q29tYm9PcHRpb24uRElTU01JU0FMUEFZT1BUSU9OUztcbiAgcHVibGljIGFkZEVtcGxveWVyRm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgcHVibGljIGRpc3BsYXk6IGJvb2xlYW47XG4gIHB1YmxpYyBiYXNlUGVyaW9kU3RhcnREYXRlOiBEYXRlO1xuICBwdWJsaWMgYmFzZVBlcmlvZEVuZERhdGU6IERhdGU7XG4gIHB1YmxpYyBicFN0YXJ0RGF0ZVRvRGlzcGxheTogRGF0ZTtcbiAgcHVibGljIG1pbkRhdGU6IERhdGU7XG4gIHB1YmxpYyBtaW5TdGFydERhdGU6IERhdGU7XG4gIHB1YmxpYyBxdWFydGVyUmFuZ2VPbmU/OiBzdHJpbmc7XG4gIHB1YmxpYyBxdWFydGVyUmFuZ2VUd28/OiBzdHJpbmc7XG4gIHB1YmxpYyBxdWFydGVyUmFuZ2VUaHJlZT86IHN0cmluZztcbiAgcHVibGljIHF1YXJ0ZXJSYW5nZUZvdXI/OiBzdHJpbmc7XG4gIHB1YmxpYyBjdXJyZW50UXVhcnRlclJhbmdlPzogc3RyaW5nO1xuICBwdWJsaWMgcXVhcnRlclJhbmdlRml2ZT86IHN0cmluZztcbiAgcHVibGljIGRhdGVUaW1lID0gbmV3IERhdGUoKTtcbiAgLy9wdWJsaWMgZ3JvdXBlZFJlYXNvbnM9IENvbWJvT3B0aW9uLkdST1VQX1JFQVNPTlM7XG4gIHB1YmxpYyBtaW5Xb3JrU3RhcnREYXRlIDogRGF0ZTtcbiAgcHVibGljIG1pbldlZWtGb3JDaGFyZ2VhYmlsaXR5IDogbnVtYmVyO1xuXG4gIHB1YmxpYyBkaXNjaGFyZ2VSZWFzb25PcHRpb25zQWxsOiBDaG9pY2VzTW9kZWxbXSA9IFtdO1xuICBwdWJsaWMgdm9sUXVpdFJlYXNvbk9wdGlvbnNBbGw6IENob2ljZXNNb2RlbFtdID0gW107XG4gIHB1YmxpYyBlbXBsb3ltZW50U3RhdHVzT3B0aW9uc0FsbDogQ2hvaWNlc01vZGVsW10gPSBbXTtcblxuICBwdWJsaWMgc2Y4SW5mbz1cIlNGLThcIjtcblxuICBwdWJsaWMgc3RhdGVtZW50MSA9XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLndhZ2UucHJvb2Yuc3RhdGVtZW50MVwiO1xuICBwdWJsaWMgc3RhdGVtZW50MiA9XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLndhZ2UucHJvb2Yuc3RhdGVtZW50MlwiO1xuICBwdWJsaWMgc3RhdGVtZW50MyA9XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLndhZ2UucHJvb2Yuc3RhdGVtZW50M1wiO1xuICBwdWJsaWMgc3RhdGVtZW50NCA9XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLndhZ2UucHJvb2Yuc3RhdGVtZW50NFwiOyBcbiAgcHVibGljIHBhcmFPbmUgPVwiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5kZDIxNC55ZXMucGFyYS5vbmVcIjtcbiAgcHVibGljIHBhcmFUd289XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQubWlsLmRkMjE0Lnllcy5wYXJhLnR3b1wiO1xuICBwdWJsaWMgcGFyYVRocmVlPVwiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5kZDIxNC55ZXMucGFyYS50aHJlZVwiO1xuICBwdWJsaWMgcGFyYUZvdXI9XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQubWlsLmRkMjE0Lnllcy5wYXJhLmZvdXJcIjtcbiAgcHVibGljIHBhcmFGaXZlPVwiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5kZDIxNC55ZXMucGFyYS5maXZlXCI7XG4gIHB1YmxpYyBwYXJhU2l4PVwiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5kZDIxNC55ZXMucGFyYS5zaXhcIjtcblxuICBwdWJsaWMgbm9QYXJhT25lID1cImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5taWwuZGQyMTQubm8ucGFyYS5vbmVcIjtcbiAgcHVibGljIG5vUGFyYVR3bz1cImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5taWwuZGQyMTQubm8ucGFyYS50d29cIjtcbiAgcHVibGljIG5vUGFyYVRocmVlPVwiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5kZDIxNC5uby5wYXJhLnRocmVlXCI7XG4gIHB1YmxpYyBub1BhcmFGb3VyPVwiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5kZDIxNC5uby5wYXJhLmZvdXJcIjtcbiAgcHVibGljIG5vUGFyYUZpdmU9XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQubWlsLmRkMjE0Lm5vLnBhcmEuZml2ZVwiO1xuXG4gIHB1YmxpYyBlbXBsb3llclByb3ZpZGVkV2FnZXM6IFF0clllYXJFbXBsb3llcldhZ2VNb2RlbFtdO1xuXG4gIEBPdXRwdXQoKVxuICBtb2RlbENhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBAT3V0cHV0KClcbiAgc3VjY2VzczogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJlY29yZEluZGV4VG9FZGl0OiBudW1iZXI7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGlzQmFzZVBlcmlvZEVtcGxveWVyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGlzTmV3Q2xhaW06IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgcHVibGljIGRvYjogRGF0ZTtcblxuICBwdWJsaWMgaGlkZUZpY0NvZGU6IHRydWU7XG5cbiAgQE91dHB1dCgpIFxuICBiYXNlUGVyaW9kSW5kZXg6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gICBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHVibGljIGN1cnJlbnRTdGF0ZSA6IHN0cmluZztcblxuICBwdWJsaWMgY3VzdG9tZXJOYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBhbGlhc05hbWU6IHN0cmluZztcbiAgcHVibGljIG1haWxpbmdBZGRyZXNzRGlzcGxheTogc3RyaW5nO1xuICBwdWJsaWMgc2Nob29sRmxhZzpzdHJpbmc7XG4gIHB1YmxpYyBzcG9ydHNGbGFnOnN0cmluZztcbiAgcHVibGljIGNsYWltVHlwZUR1YTpzdHJpbmc7XG4gIHB1YmxpYyBzc25WYWxpZFdvcmtTaGFyZTpzdHJpbmc7XG4gIHB1YmxpYyBpc09zYUVtcGxveWVyOnN0cmluZyA9IFwiMFwiO1xuICBwdWJsaWMgZW1wbG95ZXJUeXBlUHJlU2V0IDogc3RyaW5nID0gXCJSRUdcIjtcbiAgcHVibGljIGlzQ1NSOmJvb2xlYW47XG4gIHB1YmxpYyBzaG93V29ya1N0YXRlOiBib29sZWFuID0gdHJ1ZTtcbiAgcHVibGljIHJlYXNvblNlcGFyYXRpb25WYWx1ZTogc3RyaW5nO1xuICBwcml2YXRlIG9uQ2hhbmdlOiBGdW5jdGlvbiA9ICh2YWx1ZTogU3RyaW5nKSA9PiB7XG5cbiAgfTtcbiAgcHJpdmF0ZSBvblRvdWNoOiBGdW5jdGlvbiA9ICgpID0+IHtcblxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyLCBwdWJsaWMgdmFsaWRhdGlvblNlcnZpY2U6IFZhbGlkYXRpb25TZXJ2aWNlLCBcbiAgICBwdWJsaWMgdXRpbDogVXRpbFNlcnZpY2UscHJpdmF0ZSBmaWx0ZXJTZXJ2aWNlOiBGaWx0ZXJTZXJ2aWNlLHByaXZhdGUgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLCBcbiAgICBwdWJsaWMgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsIHB1YmxpYyBjbGFpbXNTZXJ2aWNlIDogQ2xhaW1TZXJ2aWNlLCBwdWJsaWMgbHM6IExvZ2luU2VydmljZSxcbiAgICBwdWJsaWMgZWw6IEVsZW1lbnRSZWYsIHByaXZhdGUgYXI6IEFjdGl2YXRlZFJvdXRlLCBwdWJsaWMgZW1wbG95ZXJTZXJ2aWNlOiBFbXBsb3llclNlcnZpY2UpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuXG4gICAgdGhpcy5zZXRXb3JrU3RhcnREYXRlKCk7XG5cbiAgICBjb25zdCBjdXJyZW50U3RhdGUgPSBDb21ib09wdGlvbi5VU19TVEFURVMuZmluZChzdGF0ZSA9PiBzdGF0ZS52YWx1ZSA9PSB0aGlzLnV0aWwuZ2V0U3RhdGUoKSlcbiAgICB0aGlzLnN0YXRlc09wdGlvbnMgPSBbY3VycmVudFN0YXRlLCAuLi5Db21ib09wdGlvbi5VU19TVEFURVMuZmlsdGVyKHN0YXRlID0+IHN0YXRlLnZhbHVlICE9IHRoaXMudXRpbC5nZXRTdGF0ZSgpKV07XG5cbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnaXNCYXNlUGVyaW9kRW1wbG95ZXIgaXMgPSAnLCB0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKTtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnaXNOZXdDbGFpbSA9ICcsIHRoaXMuaXNOZXdDbGFpbSk7XG4gICAgdGhpcy5jdXJyZW50U3RhdGUgPSB0aGlzLnV0aWwuZ2V0U3RhdGUoKTtcbiAgICB0aGlzLmxvYWRNYXN0ZXJEYXRhKCk7XG4gICAgdGhpcy5pc0NTUiA9IHRoaXMubHMuaXNDc3IoKTtcbiAgIFxuICAgIGlmKHRoaXMuY3VycmVudFN0YXRlPT0nQ1QnKXtcbiAgICAgIHRoaXMucGF5UGVyaW9kID0gQ29tYm9PcHRpb24uUEFZX1BFUklPRF9DVDtcbiAgICAgIHRoaXMucGF5UmF0ZU9wdGlvbnMgPSBDb21ib09wdGlvbi5QQVlfUEVSSU9EX0NUO1xuICAgIH1cbiAgICBsZXQgZXNtOiBDbGFpbUFwcEVtcGxveWVyRGV0YWlsc01vZGVsO1xuICAgIGxldCBxdHJXYWdlTGlzdDogUXRyWWVhckVtcGxveWVyV2FnZU1vZGVsW107XG4gICAgbGV0IHByb2Nlc3N0eXBlID0gdGhpcy5hci5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldCgncHJvY2Vzc3R5cGUnKTtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcImNhbGwgc2VydmljZSA9XCIsIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkpO1xuICAgIGlmICh0aGlzLnJlY29yZEluZGV4VG9FZGl0ID09IHVuZGVmaW5lZCB8fCB0aGlzLnJlY29yZEluZGV4VG9FZGl0ID09IG51bGwpIHtcbiAgICAgIGVzbSA9IG5ldyBDbGFpbUFwcEVtcGxveWVyRGV0YWlsc01vZGVsKCk7XG4gICAgICBxdHJXYWdlTGlzdCA9IHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCk/LnF0clllYXJXYWdlTGlzdEdlbmVyaWM7XG4gICAgICBpZiAodGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKS5kaXNhc3RlckFjdGl2ZUZsYWcgIT0gJzAnKSB7XG4gICAgICAgIGlmIChwcm9jZXNzdHlwZSA9PT0gJ2FpYy1yZW9wZW4nKSB7XG4gICAgICAgICAgdGhpcy5jbGFpbVR5cGVEdWEgPSAnMSc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5jbGFpbVR5cGVEdWEgPSB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpLmNsYWltVHlwZUR1YTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jbGFpbVR5cGVEdWEgPSAnMCc7XG4gICAgICB9ICAgICAgXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdyZWNvcmRJbmRleFRvRWRpdCcsIHRoaXMucmVjb3JkSW5kZXhUb0VkaXQpXG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKScsIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkpO1xuXG4gICAgICBlc20gPSB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpLmJwRW1wTGlzdFt0aGlzLnJlY29yZEluZGV4VG9FZGl0XTtcbiAgICAgIHF0cldhZ2VMaXN0PWVzbS53YWdlQW1vdW50QXJyYXk7XG4gICAgICB0aGlzLmN1c3RvbWVyTmFtZSA9IGVzbS5lbXBsb3llckRhdGEuZGlzcGxheU5hbWU7XG4gICAgICBpZihlc20uZW1wbG95ZXJEYXRhLnRyYWRlTmFtZSl7XG4gICAgICAgIHRoaXMuYWxpYXNOYW1lID0gZXNtLmVtcGxveWVyRGF0YS50cmFkZU5hbWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmFsaWFzTmFtZSA9IG51bGw7XG4gICAgICB9XG4gICAgICBpZihlc20ub3NhQnBFbXBsb3llckZsYWcpe1xuICAgICAgICB0aGlzLmlzT3NhRW1wbG95ZXIgPSBlc20ub3NhQnBFbXBsb3llckZsYWc7XG4gICAgICB9XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcImlzT3NhRW1wbG95ZXIgPT09PT09PSBcIiAsIHRoaXMuaXNPc2FFbXBsb3llcik7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcImVtcGxveWVyVHlwZSA9PT09PT09IFwiICwgZXNtLmVtcGxveWVyVHlwZSk7XG4gICAgICB0aGlzLmVtcGxveWVyVHlwZVByZVNldCA9IGVzbS5lbXBsb3llclR5cGU7XG4gICAgICB0aGlzLm1haWxpbmdBZGRyZXNzRGlzcGxheSA9IGVzbS5lbXBsb3llckRhdGEubWFpbGluZ0FkZHJlc3NEaXNwbGF5O1xuICAgICAgdGhpcy5zY2hvb2xGbGFnID0gZXNtLmVtcGxveWVyRGF0YS5zY2hvb2xGbGFnO1xuICAgICAgdGhpcy5zcG9ydHNGbGFnID0gZXNtLmVtcGxveWVyRGF0YS5zcG9ydHNGbGFnO1xuICAgICAgaWYgKHByb2Nlc3N0eXBlID09PSAnYWljLXJlb3BlbicpIHtcbiAgICAgICAgdGhpcy5jbGFpbVR5cGVEdWEgPSAnMSc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNsYWltVHlwZUR1YSA9IHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkuY2xhaW1UeXBlRHVhO1xuICAgICAgfVxuICAgICAgdGhpcy5zc25WYWxpZFdvcmtTaGFyZSA9IGVzbS5lbXBsb3llckRhdGEuc3NuVmFsaWRXb3JrU2hhcmU7XG4gICAgICBpZih0aGlzLmlzQ1NSID09PSB0cnVlICYmIGVzbS5lbXBsb3llclByb3ZpZGVkV2FnZXMgJiYgZXNtLmVtcGxveWVyUHJvdmlkZWRXYWdlcy53YWdlc0xpc3RRdHJXaXNlKXtcbiAgICAgICAgdGhpcy5lbXBsb3llclByb3ZpZGVkV2FnZXMgPSBlc20uZW1wbG95ZXJQcm92aWRlZFdhZ2VzLndhZ2VzTGlzdFF0cldpc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5nZXRSZWFzb25TZXBlcmF0aW9uQmFzZWRPbkNvbmRpdGlvbih0aGlzLnNjaG9vbEZsYWcsIHRoaXMuc3BvcnRzRmxhZywgdGhpcy5jbGFpbVR5cGVEdWEsIHRoaXMuc3NuVmFsaWRXb3JrU2hhcmUpXG5cbiAgICB0aGlzLmJhc2VQZXJpb2RTdGFydERhdGUgPSB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpLmJhc2VQZXJpb2RTdGFydERhdGU7XG4gICAgdGhpcy5iYXNlUGVyaW9kRW5kRGF0ZSA9IHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkuYmFzZVBlcmlvZEVuZERhdGU7XG4gICAgdGhpcy5icFN0YXJ0RGF0ZVRvRGlzcGxheSA9IG5ldyBEYXRlKHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkuYnBTdGFydERhdGVUb0Rpc3BsYXkpO1xuICAgIHRoaXMubWluV2Vla0ZvckNoYXJnZWFiaWxpdHkgPSB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpLm1pbldlZWtGb3JDaGFyZ2VhYmlsaXR5O1xuXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXCJ0aGlzLm1pbldvcmtTdGFydERhdGUgYXMgaW5wdXRcIiwgdGhpcy5taW5Xb3JrU3RhcnREYXRlKTtcbiAgICBpZih0aGlzLm1pbldvcmtTdGFydERhdGUpe1xuICAgICAgdGhpcy5icFN0YXJ0RGF0ZVRvRGlzcGxheSA9IHRoaXMubWluV29ya1N0YXJ0RGF0ZTtcbiAgICB9IGVsc2V7XG4gICAgICB0aGlzLm1pbldvcmtTdGFydERhdGUgPSB0aGlzLmRvYjtcbiAgICB9XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXCJ0aGlzLm1pbldvcmtTdGFydERhdGUgcG9zdCBzZXR1cCBcIiwgdGhpcy5taW5Xb3JrU3RhcnREYXRlKTtcbiAgICB0aGlzLmNsYWltc1NlcnZpY2UubG9hZE1hc3RlckRhdGEoKTtcbiAgICB0aGlzLmFkZEVtcGxveWVyRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgJ2VtcGxveWVyVHlwZSc6IFtlc20uZW1wbG95ZXJUeXBlICE9IG51bGwgPyBlc20uZW1wbG95ZXJUeXBlIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICghdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcikpXSxcbiAgICAgICdlbXBsb3llck5hbWUnOiBbZXNtLmVtcGxveWVyTmFtZSAhPSBudWxsID8gZXNtLmVtcGxveWVyTmFtZSA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAoIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdSRUcnKSldLFxuICAgICAgJ2ZlZEVtcGxveWVyTmFtZSc6IFtlc20uZmVkRW1wbG95ZXJOYW1lICE9IG51bGwgPyBlc20uZmVkRW1wbG95ZXJOYW1lIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ0ZFRCcpKV0sXG4gICAgICAnZW1wbG95ZXJUZWxlcGhvbmVOdW1iZXInOiBbZXNtLmVtcGxveWVyVGVsZXBob25lTnVtYmVyICE9IG51bGwgPyBlc20uZW1wbG95ZXJUZWxlcGhvbmVOdW1iZXIgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKCgodGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLndvcmtGbGFnLnZhbHVlID09PSAnWScpIHx8ICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSAmJiB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ1JFRycpKV0sXG4gICAgICAnZW5kRGF0ZSc6IFtlc20uZW5kRGF0ZSAhPSBudWxsID8gZXNtLmVuZERhdGUgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKCgodGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLndvcmtGbGFnLnZhbHVlID09PSAnWScpIHx8ICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSAmJiB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ1JFRycpKV0sXG4gICAgICAnc3RhcnREYXRlJzogW2VzbS5zdGFydERhdGUgIT0gbnVsbCA/IGVzbS5zdGFydERhdGUgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKCgodGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLndvcmtGbGFnLnZhbHVlID09PSAnWScpIHx8ICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSAmJiB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ1JFRycpKV0sXG4gICAgICAnam9iVGlsZU9yUG9zaXRpb24nOiBbZXNtLmpvYlRpbGVPclBvc2l0aW9uICE9IG51bGwgPyBlc20uam9iVGlsZU9yUG9zaXRpb24gOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKCh0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMud29ya0ZsYWcudmFsdWUgPT09ICdZJykgfHwgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpICYmIHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnUkVHJyldLFxuICAgICAgJ3JlYXNvblNlcGFyYXRpb24nOiBbZXNtLnJlYXNvblNlcGFyYXRpb24gIT0gbnVsbCA/IGVzbS5yZWFzb25TZXBhcmF0aW9uIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMud29ya0ZsYWcudmFsdWUgPT09ICdZJykgfHwgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgKHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnUkVHJyB8fCB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ0ZFRCcpKV0sXG4gICAgICAnZGlzY2hhcmdlRGV0YWlsJzogW2VzbS5kaXNjaGFyZ2VEZXRhaWwgIT0gbnVsbCA/IGVzbS5kaXNjaGFyZ2VEZXRhaWwgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKCgoKHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy53b3JrRmxhZy52YWx1ZSA9PT0gJ1knKSB8fCAoIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpKSAmJiB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSE9J01JTCcgJiYgdGhpcy5yZWFzb25TZXBhcmF0aW9uLnZhbHVlICYmIHRoaXMucmVhc29uU2VwYXJhdGlvbi52YWx1ZS52YWx1ZSA9PT0gJ0RDRkknKSkpXSxcbiAgICAgICd2b2xRdWl0RGV0YWlscyc6IFtlc20udm9sUXVpdERldGFpbHMgIT0gbnVsbCA/IGVzbS52b2xRdWl0RGV0YWlscyA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAoKCgodGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLndvcmtGbGFnLnZhbHVlID09PSAnWScpIHx8ICghdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcikpICYmIHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlIT0nTUlMJyAmJiB0aGlzLnJlYXNvblNlcGFyYXRpb24udmFsdWUgJiYgdGhpcy5yZWFzb25TZXBhcmF0aW9uLnZhbHVlLnZhbHVlID09PSAnVk9MUScpKSldLFxuICAgICAgJ3BheVJhdGUnOiBbZXNtLnBheVJhdGUgIT0gbnVsbCA/IGVzbS5wYXlSYXRlIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICgodGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLndvcmtGbGFnLnZhbHVlID09PSAnWScpIHx8ICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSAmJiB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ1JFRycpXSxcbiAgICAgICdwYXlSYXRlRnJlcXVlbmN5JzogW2VzbS5wYXlSYXRlRnJlcXVlbmN5ICE9IG51bGwgPyBlc20ucGF5UmF0ZUZyZXF1ZW5jeSA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAoKCh0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMud29ya0ZsYWcudmFsdWUgPT09ICdZJykgfHwgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpICYmICh0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ1JFRycgfHwgdGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdGRUQnKSkpXSxcbiAgICAgICdocnNXZWVrJzogW2VzbS5ocnNXZWVrICE9IG51bGwgPyBlc20uaHJzV2VlayA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5jdXJyZW50U3RhdGUgPT09ICdDVCcgJiYgKCgodGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLndvcmtGbGFnLnZhbHVlID09PSAnWScpIHx8ICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSAmJiAodGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdSRUcnIHx8IHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnRkVEJykpKSldLFxuICAgICAgJ3NoaWZ0JzogW2VzbS5zaGlmdCAhPSBudWxsID8gZXNtLnNoaWZ0IDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmN1cnJlbnRTdGF0ZSA9PT0gJ0NUJyAmJiAoKCh0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMud29ya0ZsYWcudmFsdWUgPT09ICdZJykgfHwgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpICYmICh0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ1JFRycgfHwgdGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdGRUQnKSkpKV0sXG4gICAgICAnd29ya1dlZWsnOiBbZXNtLndvcmtXZWVrICE9IG51bGwgPyBlc20ud29ya1dlZWsgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuY3VycmVudFN0YXRlID09PSAnQ1QnICYmICgoKHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy53b3JrRmxhZy52YWx1ZSA9PT0gJ1knKSB8fCAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcikgJiYgKHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnUkVHJyB8fCB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ0ZFRCcpKSkpXSxcbiAgICAgICdkaWRXb3JrJzogW2VzbS5kaWRXb3JrICE9IG51bGwgPyBlc20uZGlkV29yayA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5jdXJyZW50U3RhdGUgPT09ICdDVCcgJiYgKCgodGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLndvcmtGbGFnLnZhbHVlID09PSAnWScpIHx8ICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSAmJiAodGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdSRUcnIHx8IHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnRkVEJykpKSldLFxuICAgICAgJ3NlcGFyYXRpb25EYXRlRmxhZyc6IFtlc20uc2VwYXJhdGlvbkRhdGVGbGFnICE9IG51bGwgPyBlc20uc2VwYXJhdGlvbkRhdGVGbGFnIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmN1cnJlbnRTdGF0ZSA9PT0gJ0NUJyAmJiAoKCh0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMud29ya0ZsYWcudmFsdWUgPT09ICdZJykgfHwgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpICYmICh0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ1JFRycgfHwgdGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdGRUQnKSkpKV0sXG4gICAgICAnc2VwYXJhdGlvbkRhdGUnOiAgW2VzbS5zZXBhcmF0aW9uRGF0ZSAhPSBudWxsID8gZXNtLnNlcGFyYXRpb25EYXRlIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmN1cnJlbnRTdGF0ZSA9PT0gJ0NUJyAmJiAoKCh0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMud29ya0ZsYWcudmFsdWUgPT09ICdZJykgfHwgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpICYmICh0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ1JFRycgfHwgdGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdGRUQnKSAmJiB0aGlzLnNlcGFyYXRpb25EYXRlRmxhZy52YWx1ZT09PSdZJykpKV0sXG4gICAgICAncGVuc2lvbkZsYWcnOiBbZXNtLnBlbnNpb25GbGFnICE9IG51bGwgPyBlc20ucGVuc2lvbkZsYWcgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy53b3JrRmxhZy52YWx1ZSA9PT0gJ1knICYmIHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnUkVHJykpXSxcbiAgICAgICdwZW5zaW9uUmVjdkRhdGUnOiBbZXNtLnBlbnNpb25SZWN2RGF0ZSAhPSBudWxsID8gZXNtLnBlbnNpb25SZWN2RGF0ZSA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLndvcmtGbGFnLnZhbHVlID09PSAnWScgJiYgdGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdSRUcnICYmIHRoaXMucGVuc2lvbkZsYWcudmFsdWUgPT09ICdZJyAmJiB0aGlzLmN1cnJlbnRTdGF0ZSAhPSAnTUUnKSldLFxuICAgICAgJ3JlZ1BlbnNpb25GbGFnJzogW2VzbS5yZWdQZW5zaW9uRmxhZyAhPSBudWxsID8gZXNtLnJlZ1BlbnNpb25GbGFnIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICghdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ1JFRycpKV0sXG4gICAgICAncmVnUGVuc2lvblJlY3ZEYXRlJzpbZXNtLnJlZ1BlbnNpb25SZWN2RGF0ZSAhPSBudWxsID8gZXNtLnJlZ1BlbnNpb25SZWN2RGF0ZTogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICghdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ1JFRycgJiYgdGhpcy5yZWdQZW5zaW9uRmxhZy52YWx1ZSA9PT0gJ1knKSldLCAgICAgIFxuICAgICAgJ3JlZ0Rpc3NtaXNhbEZsYWcnOiBbZXNtLnJlZ0Rpc3NtaXNhbEZsYWcgIT0gbnVsbCA/IGVzbS5yZWdEaXNzbWlzYWxGbGFnIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmN1cnJlbnRTdGF0ZSA9PT0gJ0NUJyAmJiAoKCh0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMud29ya0ZsYWcudmFsdWUgPT09ICdZJykgfHwgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpICYmIHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnUkVHJyApKSldLFxuICAgICAgJ3JlZ0Rpc3NtaXNhbENoZWNrQm94JzogW2VzbS5yZWdEaXNzbWlzYWxDaGVja0JveCAhPSBudWxsID8gZXNtLnJlZ0Rpc3NtaXNhbENoZWNrQm94IDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmN1cnJlbnRTdGF0ZSA9PT0gJ0NUJyAmJiAoKCh0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMud29ya0ZsYWcudmFsdWUgPT09ICdZJykgfHwgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpICYmICh0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ1JFRycpKSkpXSxcbiAgICAgICdyZWdMYWlkT2ZmRmxhZyc6IFtlc20ucmVnTGFpZE9mZkZsYWcgIT0gbnVsbCA/IGVzbS5yZWdMYWlkT2ZmRmxhZyA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5jdXJyZW50U3RhdGUgPT09ICdDVCcgJiYgKCgodGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLndvcmtGbGFnLnZhbHVlID09PSAnWScpIHx8ICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSAmJiB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ1JFRycgKSkpXSxcbiAgICAgICdmZWREaXNzbWlzYWxGbGFnJzogW2VzbS5mZWREaXNzbWlzYWxGbGFnICE9IG51bGwgPyBlc20uZmVkRGlzc21pc2FsRmxhZyA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5jdXJyZW50U3RhdGUgPT09ICdDVCcgJiYgKCgodGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLndvcmtGbGFnLnZhbHVlID09PSAnWScpIHx8ICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSAmJiB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ0ZFRCcgKSkpXSxcbiAgICAgICdmZWREaXNzbWlzYWxDaGVja0JveCc6IFtlc20uZmVkRGlzc21pc2FsQ2hlY2tCb3ggIT0gbnVsbCA/IGVzbS5mZWREaXNzbWlzYWxDaGVja0JveCA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5jdXJyZW50U3RhdGUgPT09ICdDVCcgJiYgKCgodGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLndvcmtGbGFnLnZhbHVlID09PSAnWScpIHx8ICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSAmJiAodGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdGRUQnKSkpKV0sXG4gICAgICAnZmVkTGFpZE9mZkZsYWcnOiBbZXNtLmZlZExhaWRPZmZGbGFnICE9IG51bGwgPyBlc20uZmVkTGFpZE9mZkZsYWcgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuY3VycmVudFN0YXRlID09PSAnQ1QnICYmICgoKHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy53b3JrRmxhZy52YWx1ZSA9PT0gJ1knKSB8fCAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcikgJiYgdGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdGRUQnICkpKV0sXG4gICAgICAnaXNDbG10UGFpZFdoaWxlTG93JzogW2VzbS5pc0NsbXRQYWlkV2hpbGVMb3cgIT0gbnVsbCA/IGVzbS5pc0NsbXRQYWlkV2hpbGVMb3cgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKCh0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMud29ya0ZsYWcudmFsdWUgPT09ICdZJykgfHwgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpICYmIHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnUkVHJyAmJiB0aGlzLmN1cnJlbnRTdGF0ZSAhPSAnQ1QnKSBdLFxuICAgICAgJ2hhc1Nob3J0VGVybURpc2FiaWxpdHknOiBbZXNtLmhhc1Nob3J0VGVybURpc2FiaWxpdHkgIT0gbnVsbCA/IGVzbS5oYXNTaG9ydFRlcm1EaXNhYmlsaXR5IDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICgodGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLndvcmtGbGFnLnZhbHVlID09PSAnWScpIHx8ICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSAmJiB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ1JFRycgJiYgdGhpcy5jdXJyZW50U3RhdGUgPT09ICdNRScpXSxcbiAgICAgICdoYXNSZWN2UmVtdW5lcmF0aW9uJzogW2VzbS5oYXNSZWN2UmVtdW5lcmF0aW9uICE9IG51bGwgPyBlc20uaGFzUmVjdlJlbXVuZXJhdGlvbiA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAoKHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy53b3JrRmxhZy52YWx1ZSA9PT0gJ1knKSB8fCAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcikgJiYgdGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdSRUcnICYmIHRoaXMuY3VycmVudFN0YXRlID09PSAnTUUnKV0sXG4gICAgICAncmVtdW5lcmF0aW9uVHlwZXMnOiBbZXNtLnJlbXVuZXJhdGlvblR5cGVzICE9IG51bGwgPyBlc20ucmVtdW5lcmF0aW9uVHlwZXMgOiBudWxsXSxcbiAgICAgICd2YWNhdGlvbic6IFtlc20udmFjYXRpb24gIT0gbnVsbCA/IGVzbS52YWNhdGlvbiA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAoKHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy53b3JrRmxhZy52YWx1ZSA9PT0gJ1knICYmIHRoaXMuc2Nob29sRmxhZyA9PT0nMScpIHx8ICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSAmJiB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ1JFRycgJiYgdGhpcy5jdXJyZW50U3RhdGUgPT09ICdNRScpXSxcbiAgICAgIFxuICAgICAgJ2dyb3NzV2FnZXMnOiBbZXNtLmdyb3NzV2FnZXMgIT0gbnVsbCA/IGVzbS5ncm9zc1dhZ2VzIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzLnZhbHVlIHx8IHRoaXMuaXNPc2FFbXBsb3llciA9PT0nMScpICYmIHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnUkVHJyAmJiAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLmN1cnJlbnRTdGF0ZSAhPSAnTVMnKV0sXG4gICAgICAvLydwYWlkQnknOiBbZXNtLnBhaWRCeSAhPSBudWxsID8gZXNtLnBhaWRCeSA6IG51bGwsQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmlzQ2xtdFBhaWRXaGlsZUxvdy52YWx1ZT09PSdZJykpXSxcbiAgICAgICdwYXltZW50VHlwZSc6IFtlc20ucGF5bWVudFR5cGUgIT0gbnVsbCA/IGVzbS5wYXltZW50VHlwZSA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZSAmJiB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ1JFRycgJiYgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpKV0sXG4gICAgICAnZG9jc1JlY2VpdmVkJzogW2VzbS5kb2NzUmVjZWl2ZWQgIT0gbnVsbCA/IGVzbS5kb2NzUmVjZWl2ZWQgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMudmFsdWUgJiYgdGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdSRUcnICYmICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSldLFxuICAgICAgJ290aGVyU1NORmxhZyc6IFtlc20ub3RoZXJTU05GbGFnICE9IG51bGwgPyBlc20ub3RoZXJTU05GbGFnIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzLnZhbHVlICYmIHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnUkVHJyAmJiAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcikpXSxcbiAgICAgICdvdGhlclNTTic6IFtlc20ub3RoZXJTU04gIT0gbnVsbCA/IGVzbS5vdGhlclNTTiA6IG51bGwgLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKCF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnUkVHJyAmJiB0aGlzLmRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzLnZhbHVlICYmIHRoaXMub3RoZXJTU05GbGFnLnZhbHVlID09PSAnWScpKV0sXG4gICAgICAnb3RoZXJOYW1lRmxhZyc6IFtlc20ub3RoZXJOYW1lRmxhZyAhPSBudWxsID8gZXNtLm90aGVyTmFtZUZsYWcgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMudmFsdWUgJiYgdGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdSRUcnICYmICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSldLFxuICAgICAgJ290aGVyTmFtZSc6IFtlc20ub3RoZXJOYW1lICE9IG51bGwgPyBlc20ub3RoZXJOYW1lIDogbnVsbCAsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAoIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdSRUcnICYmIHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMudmFsdWUgJiYgdGhpcy5vdGhlck5hbWVGbGFnLnZhbHVlID09PSAnWScpKV0sXG4gICAgICAvLydkb2luZ0J1c2luZXNzQXMnOiBbZXNtLmRvaW5nQnVzaW5lc3NBcyAhPSBudWxsID8gZXNtLmRvaW5nQnVzaW5lc3NBcyA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZSAmJiAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAgJiYgdGhpcy53b3JrU3RhdGUudmFsdWUgJiYgdGhpcy53b3JrU3RhdGUudmFsdWUudmFsdWU9PT0nTVMnKSldLFxuICAgICAgJ3dvcmtTdGF0ZSc6IFtlc20ud29ya1N0YXRlICE9IG51bGwgPyBlc20ud29ya1N0YXRlIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICghdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ1JFRycpKV0sXG4gICAgICAnd29ya0NpdHknOiBbZXNtLndvcmtDaXR5ICE9IG51bGwgPyBlc20ud29ya0NpdHkgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKCF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnUkVHJykpXSxcbiAgICAgIC8vJ251bWJlckVtcGxveWVkJzogW2VzbS5udW1iZXJFbXBsb3llZCAhPSBudWxsID8gZXNtLm51bWJlckVtcGxveWVkIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzLnZhbHVlICYmICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSldLFxuICAgICAgJ3dvcmtUeXBlJzogW2VzbS53b3JrVHlwZSAhPSBudWxsID8gZXNtLndvcmtUeXBlIDogbnVsbF0sXG4gICAgICAvLyAnZmVpbic6IFtlc20uZmVpbiAhPSBudWxsID8gZXNtLmZlaW4gOiBudWxsXSxcbiAgICAgLy8gJ2hpcmVkQnknOiBbZXNtLmhpcmVkQnkgIT0gbnVsbCA/IGVzbS5oaXJlZEJ5IDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzLnZhbHVlICYmICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICAmJiB0aGlzLndvcmtTdGF0ZS52YWx1ZSAmJiB0aGlzLndvcmtTdGF0ZS52YWx1ZS52YWx1ZT09PSdNUycpKV0sXG4gICAgICAvLydidXNpbmVzc093bmVyJzogW2VzbS5idXNpbmVzc093bmVyICE9IG51bGwgPyBlc20uYnVzaW5lc3NPd25lciA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZSAmJiAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAgJiYgdGhpcy53b3JrU3RhdGUudmFsdWUgJiYgdGhpcy53b3JrU3RhdGUudmFsdWUudmFsdWU9PT0nTVMnKSldLFxuICAgICAgLy8nYnVzaW5lc3NOYXR1cmUnOiBbZXNtLmJ1c2luZXNzTmF0dXJlICE9IG51bGwgPyBlc20uYnVzaW5lc3NOYXR1cmUgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMudmFsdWUgJiYgdGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdSRUcnICAmJiAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcikpXSxcbiAgICAgICd3b3JrRmxhZyc6IFtlc20ud29ya0ZsYWcgIT0gbnVsbCA/IGVzbS53b3JrRmxhZyA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKV0sXG4gICAgICAvLydxdWl0cmVhc29uJzogW2VzbS5xdWl0cmVhc29uICE9IG51bGwgPyBlc20ucXVpdHJlYXNvbiA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAoKCgodGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLndvcmtGbGFnLnZhbHVlID09PSAnWScpIHx8ICghdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcikpICYmIHRoaXMucmVhc29uU2VwYXJhdGlvbi52YWx1ZSAmJiB0aGlzLnJlYXNvblNlcGFyYXRpb24udmFsdWUudmFsdWUgPT09ICdWT0xRJykpKV0sXG4gICAgICAnZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMnOiBbZXNtLmRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzICE9IG51bGwgPyBlc20uZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMgOiBudWxsXSxcbiAgICAgICdmaWNEZXN0aW5hdGlvbkNvZGUnOiBbZXNtLmZpY0Rlc3RpbmF0aW9uQ29kZSAhPSBudWxsID8gZXNtLmZpY0Rlc3RpbmF0aW9uQ29kZSA6IG51bGxdLFxuICAgICAgJ2ZpY0NvZGUnOiBbZXNtLmZpY0NvZGUgIT0gbnVsbCA/IGVzbS5maWNDb2RlIDogbnVsbF0sXG4gICAgICAnZmljRGVzdGluYXRpb25OYW1lJzogW2VzbS5maWNEZXN0aW5hdGlvbk5hbWUgIT0gbnVsbCA/IGVzbS5maWNEZXN0aW5hdGlvbk5hbWUgOiBudWxsXSxcbiAgICAgICdmaWNEZXN0aW5hdGlvbklkJzogW2VzbS5maWNEZXN0aW5hdGlvbklkICE9IG51bGwgPyBlc20uZmljRGVzdGluYXRpb25JZCA6IG51bGxdLFxuICAgICAgJ3NmRWlnaHRmbGFnJzogW2VzbS5zZkVpZ2h0ZmxhZyAhPSBudWxsID8gZXNtLnNmRWlnaHRmbGFnIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ0ZFRCcpKV0sXG4gICAgICAnZmVkV29ya0NpdHknOiBbZXNtLmZlZFdvcmtDaXR5ICE9IG51bGwgPyBlc20uZmVkV29ya0NpdHkgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnRkVEJykpXSxcbiAgICAgICdmZWRXb3JrU3RhdGUnOiBbZXNtLmZlZFdvcmtTdGF0ZSAhPSBudWxsID8gZXNtLmZlZFdvcmtTdGF0ZSA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdGRUQnKSldLFxuICAgICAgJ2ZlZFdvcmtDb3VudHJ5JzogW2VzbS5mZWRXb3JrQ291bnRyeSAhPSBudWxsID8gZXNtLmZlZFdvcmtDb3VudHJ5IDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ0ZFRCcpKV0sXG4gICAgICAnc3RhcnREYXRlRmVkJzogW2VzbS5zdGFydERhdGVGZWQgIT0gbnVsbCA/IGVzbS5zdGFydERhdGVGZWQgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnRkVEJykpXSxcbiAgICAgICdlbmREYXRlRmVkJzogW2VzbS5lbmREYXRlRmVkICE9IG51bGwgPyBlc20uZW5kRGF0ZUZlZCA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdGRUQnKSldLFxuICAgICAgJ2ZlZEpvYlRpbGVPclBvc2l0aW9uJzogW2VzbS5mZWRKb2JUaWxlT3JQb3NpdGlvbiAhPSBudWxsID8gZXNtLmZlZEpvYlRpbGVPclBvc2l0aW9uIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ0ZFRCcpKV0sXG4gICAgICAvLydjbGFpbWFudEVtcGxveWVkV2l0aEVtcHInOiBbZXNtLmNsYWltYW50RW1wbG95ZWRXaXRoRW1wciAhPSBudWxsID8gZXNtLmNsYWltYW50RW1wbG95ZWRXaXRoRW1wciA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdGRUQnKSldLFxuICAgICAgJ3BlcmZvcm1lZFNlcnZpY2UnOiBbZXNtLnBlcmZvcm1lZFNlcnZpY2UgIT0gbnVsbCA/IGVzbS5wZXJmb3JtZWRTZXJ2aWNlIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ0ZFRCcpKV0sXG4gICAgICAnZmVkUGVuc2lvbkZsYWcnOiBbZXNtLmZlZFBlbnNpb25GbGFnICE9IG51bGwgPyBlc20uZmVkUGVuc2lvbkZsYWcgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnRkVEJykpXSxcbiAgICAgICdmZWRQZW5zaW9uUmVjdkRhdGUnOltlc20uZmVkUGVuc2lvblJlY3ZEYXRlICE9IG51bGwgPyBlc20uZmVkUGVuc2lvblJlY3ZEYXRlOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnRkVEJyAmJiB0aGlzLmZlZFBlbnNpb25GbGFnLnZhbHVlID09PSAnWScgICYmIHRoaXMuY3VycmVudFN0YXRlICE9ICdNRScpKV0sXG4gICAgICAnc2V2UGF5RmxhZyc6IFtlc20uc2V2UGF5RmxhZyAhPSBudWxsID8gZXNtLnNldlBheUZsYWcgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnRkVEJyAmJiB0aGlzLmN1cnJlbnRTdGF0ZSA9PT0gJ01FJykpXSxcbiAgICAgICd3ZWVrbHlBbW91bnQnOiBbZXNtLnNldlBheUZsYWcgIT0gbnVsbCA/IGVzbS53ZWVrbHlBbW91bnQgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnRkVEJyAmJiB0aGlzLnNldlBheUZsYWcudmFsdWUgPT09ICdZJykpXSxcbiAgICAgICdudW1iZXJPZldlZWtzJzogW2VzbS5zZXZQYXlGbGFnICE9IG51bGwgPyBlc20ubnVtYmVyT2ZXZWVrcyA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdGRUQnICYmIHRoaXMuc2V2UGF5RmxhZy52YWx1ZSA9PT0gJ1knKSldLFxuICAgICAgJ3NldlBheUFtb3VudCc6IFtlc20uc2V2UGF5RmxhZyAhPSBudWxsID8gZXNtLnNldlBheUFtb3VudCA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdGRUQnICYmIHRoaXMuc2V2UGF5RmxhZy52YWx1ZSA9PT0gJ1knKSldLFxuICAgICAgJ3NldlBheVN0YXJ0RGF0ZSc6IFtlc20uc2V2UGF5U3RhcnREYXRlICE9IG51bGwgPyBlc20uc2V2UGF5U3RhcnREYXRlIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ0ZFRCcgJiYgdGhpcy5zZXZQYXlGbGFnLnZhbHVlID09PSAnWScpKV0sXG4gICAgICAnc2V2UGF5RW5kRGF0ZSc6IFtlc20uc2V2UGF5RW5kRGF0ZSAhPSBudWxsID8gZXNtLnNldlBheUVuZERhdGUgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnRkVEJyAmJiB0aGlzLnNldlBheUZsYWcudmFsdWUgPT09ICdZJykpXSxcbiAgICAgICdzZXZQYXlQYXltZW50U3RhcnREYXRlJzogW2VzbS5zZXZQYXlQYXltZW50U3RhcnREYXRlICE9IG51bGwgPyBlc20uc2V2UGF5UGF5bWVudFN0YXJ0RGF0ZSA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdGRUQnICYmIHRoaXMuc2V2UGF5RmxhZy52YWx1ZSA9PT0gJ1knKSldLFxuICAgICAgJ3JlZ0VtcGxveWVyRm91bmQnOiBbZXNtLnJlZ0VtcGxveWVyRm91bmQgIT0gbnVsbCA/IGVzbS5yZWdFbXBsb3llckZvdW5kIDogbnVsbF0sXG4gICAgICAnZW1wbG95ZXJJZCc6IFtlc20uZW1wbG95ZXJJZCAhPSBudWxsID8gZXNtLmVtcGxveWVySWQgOiBudWxsXSxcbiAgICAgICdzZXJ2aWNlQnJhbmNoJzogW2VzbS5zZXJ2aWNlQnJhbmNoICE9IG51bGwgPyBlc20uc2VydmljZUJyYW5jaCA6IG51bGxdLFxuICAgICAgJ3N0YXJ0RGF0ZU1pbCc6IFtlc20uc3RhcnREYXRlTWlsICE9IG51bGwgPyBlc20uc3RhcnREYXRlTWlsIDogbnVsbF0sXG4gICAgICAnZW5kRGF0ZU1pbCc6IFtlc20uZW5kRGF0ZU1pbCAhPSBudWxsID8gZXNtLmVuZERhdGVNaWwgOiBudWxsXSxcbiAgICAgICdkZDIxNEZsYWcnOiBbZXNtLmRkMjE0RmxhZyAhPSBudWxsID8gZXNtLmRkMjE0RmxhZyA6IG51bGxdLFxuICAgICAgJ2xhc3RQYXlHcmFkZSc6IFtlc20ubGFzdFBheUdyYWRlICE9IG51bGwgPyBlc20ubGFzdFBheUdyYWRlIDogbnVsbF0sXG4gICAgICAnbGFzdGR1dHknOiBbZXNtLmxhc3RkdXR5ICE9IG51bGwgPyBlc20ubGFzdGR1dHkgOiBudWxsXSxcbiAgICAgICdwbGFjZVNlcGFyYXRlZCc6IFtlc20ucGxhY2VTZXBhcmF0ZWQgIT0gbnVsbCA/IGVzbS5wbGFjZVNlcGFyYXRlZCA6IG51bGxdLFxuICAgICAgJ25vTGVhdmVEYXlzJzogW2VzbS5ub0xlYXZlRGF5cyAhPSBudWxsID8gZXNtLm5vTGVhdmVEYXlzIDogbnVsbF0sXG4gICAgICAnY29tcGxldGVkRnVsbFRlcm1GbGFnJzogW2VzbS5jb21wbGV0ZWRGdWxsVGVybUZsYWcgIT0gbnVsbCA/IGVzbS5jb21wbGV0ZWRGdWxsVGVybUZsYWcgOiBudWxsXSxcbiAgICAgICdyZXNlcnZlT3JHdWFyZEZsYWcnOiBbZXNtLnJlc2VydmVPckd1YXJkRmxhZyAhPSBudWxsID8gZXNtLnJlc2VydmVPckd1YXJkRmxhZyA6IG51bGxdLFxuICAgICAgJ21pbFBlbnNpb25GbGFnJzogW2VzbS5taWxQZW5zaW9uRmxhZyAhPSBudWxsID8gZXNtLm1pbFBlbnNpb25GbGFnIDogbnVsbF0sXG4gICAgICAnbWlsUGVuc2lvblJlY3ZEYXRlJzpbZXNtLm1pbFBlbnNpb25SZWN2RGF0ZSAhPSBudWxsID8gZXNtLm1pbFBlbnNpb25SZWN2RGF0ZSA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdNSUwnICYmIHRoaXMubWlsUGVuc2lvbkZsYWcudmFsdWUgPT09ICdZJyAmJiB0aGlzLmN1cnJlbnRTdGF0ZSAhPSAnTUUnKSldLFxuICAgICAgJ2FkZHJlc3NMaW5lMSc6IFtlc20uYWRkcmVzc0xpbmUxICE9IG51bGwgPyBlc20uYWRkcmVzc0xpbmUxIDogbnVsbF0sXG4gICAgICAnYWRkcmVzc0xpbmUyJzogW2VzbS5hZGRyZXNzTGluZTIgIT0gbnVsbCA/IGVzbS5hZGRyZXNzTGluZTIgOiBudWxsXSxcbiAgICAgICdhZGRyZXNzTGluZTMnOiBbZXNtLmFkZHJlc3NMaW5lMyAhPSBudWxsID8gZXNtLmFkZHJlc3NMaW5lMyA6IG51bGxdLFxuICAgICAgJ3Jlc2VydmVCcmFuY2gnOltlc20ucmVzZXJ2ZUJyYW5jaCAhPSBudWxsID8gZXNtLnJlc2VydmVCcmFuY2ggOiBudWxsXSxcbiAgICAgICdzdGFydERhdGVSZXNlcnZlJzpbZXNtLnN0YXJ0RGF0ZVJlc2VydmUgIT0gbnVsbCA/IGVzbS5zdGFydERhdGVSZXNlcnZlIDogbnVsbF0sXG4gICAgICAnZW5kRGF0ZVJlc2VydmUnOltlc20uZW5kRGF0ZVJlc2VydmUgIT0gbnVsbCA/IGVzbS5lbmREYXRlUmVzZXJ2ZSA6IG51bGxdLFxuICAgICAgJ2RkMjE0RmlsZSc6W2VzbS5kZDIxNEZpbGUgIT0gbnVsbCA/IGVzbS5kZDIxNEZpbGUgOiBudWxsXSxcbiAgICAgICdhZGRyZXNzJzpbZXNtLmFkZHJlc3MgIT0gbnVsbCA/IGVzbS5hZGRyZXNzIDogbnVsbF0sXG4gICAgICB3YWdlQW1vdW50QXJyYXk6IHRoaXMuZm9ybUJ1aWxkZXIuYXJyYXkoW10pLFxuICAgICAgdGVzdEVtcCA6IFtlc20uZW1wbG95ZXJQcm92aWRlZFdhZ2VzICYmIGVzbS5lbXBsb3llclByb3ZpZGVkV2FnZXMud2FnZXNMaXN0UXRyV2lzZSAhPSBudWxsID8gZXNtLmVtcGxveWVyUHJvdmlkZWRXYWdlcy53YWdlc0xpc3RRdHJXaXNlIDogbnVsbF0sXG4gICAgICAnb3NhQnBFbXBsb3llckZsYWcnOltlc20ub3NhQnBFbXBsb3llckZsYWcgIT1udWxsID8gZXNtLm9zYUJwRW1wbG95ZXJGbGFnIDogXCIwXCJdLFxuICAgICAgJ2Rpc3BsYXlTZWFzb25hbEVtcCc6W2VzbS5kaXNwbGF5U2Vhc29uYWxFbXAgIT0gbnVsbCA/IGVzbS5kaXNwbGF5U2Vhc29uYWxFbXAgOiB0cnVlXSxcbiAgICAgICdzY2hvb2xGbGFnRW1wJzogW2VzbS5lbXBsb3llckRhdGEgIT0gbnVsbCAmJiBlc20uZW1wbG95ZXJEYXRhLnNjaG9vbEZsYWcgIT1udWxsID8gZXNtLmVtcGxveWVyRGF0YS5zY2hvb2xGbGFnIDogXCIwXCJdXG4gICAgfSk7XG5cbiAgICBpZihlc20uYWRkcmVzcz8uc3RhdGU/LnZhbHVlID09PSBudWxsICYmIGVzbS5hZGRyZXNzPy5zdGF0ZT8udGV4dCA9PT0gbnVsbCl7XG4gICAgICBlc20uYWRkcmVzcy5zdGF0ZSA9IG51bGw7XG4gICAgfVxuICAgIGlmKGVzbS5hZGRyZXNzPy5jb3VudHJ5Py52YWx1ZSA9PT0gbnVsbCAmJiBlc20uYWRkcmVzcz8uY291bnRyeT8udGV4dCA9PT0gbnVsbCl7XG4gICAgICBlc20uYWRkcmVzcy5jb3VudHJ5ID0gbnVsbDtcbiAgICB9XG5cbiAgICBpZih0aGlzLmN1cnJlbnRTdGF0ZSA9PSAnTVMnKXtcbiAgICAgIHRoaXMuZW1wbG95ZXJUeXBlLnNldFZhbHVlKHRoaXMuZW1wbG95ZXJUeXBlUHJlU2V0KTtcbiAgICB9XG4gICAgdGhpcy5zZXRSZXF1aXJlZFZhbGlkYXRpb24oKTsgXG4gICAgXG4gICAgdGhpcy5yZWFzb25TZXBhcmF0aW9uVmFsdWUgPSBlc20ucmVhc29uU2VwYXJhdGlvbj8udmFsdWU7XG4gICAgbGV0IGVtcFN0YXQgPSB0aGlzLmVtcGxveW1lbnRTdGF0dXNPcHRpb25zQWxsLmZpbHRlcihzdGF0ID0+IHN0YXQudmFsdWUgPT0gZXNtLnJlYXNvblNlcGFyYXRpb24/LnZhbHVlKVswXTtcbiAgICB0aGlzLnJlYXNvblNlcGFyYXRpb24uc2V0VmFsdWUoZW1wU3RhdCk7XG5cbiAgICBpZighdGhpcy5wYXlSYXRlRnJlcXVlbmN5LnZhbHVlKXsgICAgICBcbiAgICAgIGlmKHRoaXMuY3VycmVudFN0YXRlID09PSAnQ1QnKXtcbiAgICAgICAgdGhpcy5wYXlSYXRlRnJlcXVlbmN5LnNldFZhbHVlKHRoaXMucGF5UmF0ZU9wdGlvbnMuZmlsdGVyKHAgPT4gcC50ZXh0PT0nSG91cicpWzBdKTtcbiAgICAgIH1lbHNle1xuICAgICAgICB0aGlzLnBheVJhdGVGcmVxdWVuY3kucGF0Y2hWYWx1ZSh0aGlzLnBheVJhdGVPcHRpb25zLmZpbHRlcihwID0+IHAudGV4dD09J2hvdXInKVswXSk7XG4gICAgICB9XG4gICAgfWVsc2V7XG4gICAgICBpZih0aGlzLmN1cnJlbnRTdGF0ZSA9PT0gJ0NUJyl7XG4gICAgICAgIHRoaXMucGF5UmF0ZUZyZXF1ZW5jeS5zZXRWYWx1ZSh0aGlzLnBheVJhdGVPcHRpb25zLmZpbHRlcihwID0+IHAudmFsdWU9PWVzbS5wYXlSYXRlRnJlcXVlbmN5Py52YWx1ZSlbMF0pO1xuICAgICAgfWVsc2V7XG4gICAgICAgIHRoaXMucGF5UmF0ZUZyZXF1ZW5jeS5wYXRjaFZhbHVlKHRoaXMucGF5UmF0ZU9wdGlvbnMuZmlsdGVyKHAgPT4gcC52YWx1ZT09ZXNtLnBheVJhdGVGcmVxdWVuY3k/LnZhbHVlKVswXSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZSkge1xuICAgICAgaWYgKHF0cldhZ2VMaXN0KSB7XG4gICAgICAgIGNvbnN0IHNvcnRlZFF1YXJ0ZXIgPSBxdHJXYWdlTGlzdC5zb3J0KChhLCBiKSA9PiBhLmRpc3BsYXlPcmRlciAtIGIuZGlzcGxheU9yZGVyKTtcbiAgICAgICAgZm9yICh2YXIgcXRyV2FnZSBvZiBzb3J0ZWRRdWFydGVyKSB7XG4gICAgICAgICAgdGhpcy53YWdlQW1vdW50QXJyYXkucHVzaCh0aGlzLndhZ2VBcnJheShxdHJXYWdlKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmKHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMudmFsdWUgfHwgKHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09ICdGRUQnICYmIHRoaXMuaXNOZXdDbGFpbSkpIHtcbiAgICAgICAgdGhpcy5zZXRXYWdlVmFsaWRhdGlvbigpO1xuICAgICAgfVxuICAgIH07XG5cbiAgfVxuICBzZXRXb3JrU3RhcnREYXRlKCkge1xuICAgIGxldCBkYXRhID0gdGhpcy5hci5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldCgnZGF0YScpO1xuICAgIGlmKGRhdGEpe1xuICAgICAgbGV0IHBhcnNlZERhdGEgOiBLZXlWYWx1ZU1vZGVsW10gPSBKU09OLnBhcnNlKGF0b2IoZGF0YSkpO1xuICAgICAgaWYoQXJyYXkuaXNBcnJheShwYXJzZWREYXRhKSl7XG4gICAgICAgIGxldCBsYXN0Q3dlID0gcGFyc2VkRGF0YS5maWx0ZXIoayA9PiBrLmtleSA9PSAnbGFzdEN3ZURhdGUnKTtcbiAgICAgICAgaWYobGFzdEN3ZS5sZW5ndGggPiAwICYmIGxhc3RDd2VbMF0ua2V5ID09ICdsYXN0Q3dlRGF0ZScgJiYgIXRoaXMuaXNOZXdDbGFpbSl7XG4gICAgICAgICAgdGhpcy5taW5Xb3JrU3RhcnREYXRlID0gbmV3IERhdGUobGFzdEN3ZVswXS52YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXRSZWFzb25TZXBlcmF0aW9uQmFzZWRPbkNvbmRpdGlvbihzY2hvb2xGbGFnOiBzdHJpbmcgPSBcIjBcIiwgc3BvcnRzRmxhZzogc3RyaW5nID0gXCIwXCIsIGNsYWltVHlwZUR1YSA9IFwiMFwiLCBzc25WYWxpZFdvcmtTaGFyZSA9IFwiMFwiKSB7XG4gICAgbGV0IG1vZGVsID0gbmV3IFJlYXNvblNlcGFyYXRpb25SZXF1ZXN0TW9kZWwoKTtcbiAgICBtb2RlbC5zY2hvb2xGbGFnID0gc2Nob29sRmxhZztcbiAgICBtb2RlbC5zcG9ydHNGbGFnID0gc3BvcnRzRmxhZztcbiAgICBtb2RlbC5jbGFpbVR5cGVEdWEgPSBjbGFpbVR5cGVEdWE7XG4gICAgbW9kZWwuc3NuVmFsaWRXb3JrU2hhcmUgPSBzc25WYWxpZFdvcmtTaGFyZTtcbiAgICB0aGlzLmNsYWltc1NlcnZpY2UuY2xlYXJGaWx0ZXJlZFJlYXNvblNlcGFyYXRpb24oKTtcbiAgICB0aGlzLmNsYWltc1NlcnZpY2UubG9hZEZpbHRlcmVkUmVhc29uU2VwYXJhdGlvbihtb2RlbCk7XG4gIH1cblxuICBsb2FkTWFzdGVyRGF0YSgpIHtcblxuICAgIHRoaXMuY2xhaW1zU2VydmljZS5nZXRGaWx0ZXJlZFJlYXNvblNlcGFyYXRpb24oKS5zdWJzY3JpYmUoXG4gICAgICB2YWx1ZSA9PiB7XG4gICAgICAgIHRoaXMuZW1wbG95bWVudFN0YXR1c09wdGlvbnNBbGwubGVuZ3RoID0gMDtcbiAgICAgICAgdmFsdWUuZm9yRWFjaChhcnIgPT4gdGhpcy5lbXBsb3ltZW50U3RhdHVzT3B0aW9uc0FsbC5wdXNoKGFycikpO1xuICAgICAgICBpZiAodGhpcy5yZWFzb25TZXBhcmF0aW9uVmFsdWUpIHtcbiAgICAgICAgICBsZXQgZW1wU3RhdCA9IHRoaXMuZW1wbG95bWVudFN0YXR1c09wdGlvbnNBbGwuZmlsdGVyKHN0YXQgPT4gc3RhdC52YWx1ZSA9PSB0aGlzLnJlYXNvblNlcGFyYXRpb25WYWx1ZSlbMF07XG4gICAgICAgICAgdGhpcy5yZWFzb25TZXBhcmF0aW9uLnNldFZhbHVlKGVtcFN0YXQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcblxuICAgIHRoaXMuY2xhaW1zU2VydmljZS5nZXREaXNjaGFyZ2VSZWFzb25zKCkuc3Vic2NyaWJlKFxuICAgICAgdmFsdWUgPT4ge1xuICAgICAgICB2YWx1ZS5mb3JFYWNoKGFyciA9PiAgdGhpcy5kaXNjaGFyZ2VSZWFzb25PcHRpb25zQWxsLnB1c2goYXJyKSk7XG4gICAgICB9XG4gICAgKTtcblxuICAgIHRoaXMuY2xhaW1zU2VydmljZS5nZXRRdWl0UmVhc29ucygpLnN1YnNjcmliZShcbiAgICAgIHZhbHVlID0+IHtcbiAgICAgICAgdmFsdWUuZm9yRWFjaChhcnIgPT4gIHRoaXMudm9sUXVpdFJlYXNvbk9wdGlvbnNBbGwucHVzaChhcnIpKTtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgaWYodGhpcy5lbXBsb3ltZW50U3RhdHVzT3B0aW9ucyE9IG51bGwpXG4gICAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgd2FnZUFycmF5KHF0cldhZ2U6UXRyWWVhckVtcGxveWVyV2FnZU1vZGVsKTogVW50eXBlZEZvcm1Hcm91cCB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgd2FnZUFtb3VudDogW3F0cldhZ2Uud2FnZUFtb3VudCE9bnVsbD9xdHJXYWdlLndhZ2VBbW91bnQ6bnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICgoKHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCcpIHx8ICh0aGlzLmVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnICYmIHF0cldhZ2UuZGlzcGxheUZvckFsbCAmJiB0aGlzLndvcmtTdGF0ZS52YWx1ZSAmJiB0aGlzLndvcmtTdGF0ZS52YWx1ZS52YWx1ZT09PXRoaXMuY3VycmVudFN0YXRlKSApKSldLFxuICAgICAgcXVhcnRlcjogW3F0cldhZ2UucXVhcnRlciE9bnVsbD9xdHJXYWdlLnF1YXJ0ZXI6bnVsbF0sXG4gICAgICB5ZWFyOiBbcXRyV2FnZS55ZWFyIT1udWxsP3F0cldhZ2UueWVhcjpudWxsXSxcbiAgICAgIHF0clllYXJEaXNwbGF5U3RyaW5nOiBbcXRyV2FnZS5xdHJZZWFyRGlzcGxheVN0cmluZyE9bnVsbD9xdHJXYWdlLnF0clllYXJEaXNwbGF5U3RyaW5nOm51bGxdLFxuICAgICAgZGlzcGxheU9yZGVyOiBbcXRyV2FnZS5kaXNwbGF5T3JkZXIhPW51bGw/cXRyV2FnZS5kaXNwbGF5T3JkZXI6bnVsbF0sXG4gICAgICBkaXNwbGF5Rm9yQWxsOiBbcXRyV2FnZS5kaXNwbGF5Rm9yQWxsIT1udWxsP3F0cldhZ2UuZGlzcGxheUZvckFsbDpudWxsXSxcbiAgICB9KVxuIH1cblxuICBnZXQgd2FnZUFtb3VudEFycmF5KCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1tcIndhZ2VBbW91bnRBcnJheVwiXSBhcyBVbnR5cGVkRm9ybUFycmF5O1xuICB9XG5cbiAgZ2V0IHRlc3RFbXAoKXtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbXCJ0ZXN0RW1wXCJdIDtcbiAgfVxuICBzZXRSZXF1aXJlZFZhbGlkYXRpb24oKSB7XG4gICAgdGhpcy5zZXZQYXlGbGFnLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsID0+IHtcbiAgICAgIGlmKHZhbD09PSdZJyAmJiB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ0ZFRCcgJiYgdGhpcy5zZXZQYXlGbGFnLnZhbHVlID09PSAnWScgJiYgdGhpcy5jdXJyZW50U3RhdGUgPT09ICdNRScpe1xuICAgICAgICB0aGlzLnNldFZhbGlkYXRpb25PblNlcnZGaWVsZHMoKTtcbiAgICAgIH1lbHNle1xuICAgICAgICB0aGlzLnJlbW92ZVZhbGlkYXRpb25PblNlcnZGaWVsZHMoKTtcbiAgICAgIH1cbiAgICAgfVxuICAgICk7XG5cbiAgICB0aGlzLndvcmtTdGF0ZS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbCA9PiB7XG4gICAgICBpZih2YWwgJiYgdmFsLnZhbHVlPT09dGhpcy5jdXJyZW50U3RhdGUgJiYgdGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZSAmJiAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcil7XG4gICAgICAgIHRoaXMuc2V0VmFsaWRhdGlvbk9uVmVyaWZpY2F0aW9uT2ZXYWdlc0ZpZWxkcygpO1xuICAgICAgfWVsc2V7XG4gICAgICAgIHRoaXMucmVtb3ZlVmFsaWRhdGlvbk9uVmVyaWZpY2F0aW9uT2ZXYWdlc0ZpZWxkcygpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5mZWRXb3JrQ291bnRyeS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbCA9PiB7XG4gICAgICBpZiAodmFsICYmIHZhbC52YWx1ZSA9PT0gJ1VTJyB8fCB2YWwgJiYgdmFsLnZhbHVlID09PSAnQ0EnICkge1xuICAgICAgICB0aGlzLnNob3dXb3JrU3RhdGUgPSB0cnVlOyBcbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuZmVkV29ya1N0YXRlKTtcbiAgICAgICAgICBcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2hvd1dvcmtTdGF0ZSA9IGZhbHNlOyBcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmZlZFdvcmtTdGF0ZSk7XG4gICAgICAgIHRoaXMuZmVkV29ya1N0YXRlLnNldFZhbHVlKG51bGwpO1xuICAgICAgfVxuICAgICAgaWYodmFsICYmIHZhbC52YWx1ZSA9PT0gJ1VTJyAmJiAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcil7XG4gICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmZlZFdvcmtTdGF0ZSk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmZlZFdvcmtTdGF0ZSk7XG4gICAgICAgIHRoaXMuZmVkV29ya1N0YXRlLnNldFZhbHVlKG51bGwpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5lbmREYXRlLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUgKHZhbCA9PiB7XG4gICAgICBpZih0aGlzLndvcmtTdGF0ZS52YWx1ZT8udmFsdWUgPT0gdGhpcy5jdXJyZW50U3RhdGUgJiYgdGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZSAmJiAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcikge1xuICAgICAgICB0aGlzLnNldFZhbGlkYXRpb25PblZlcmlmaWNhdGlvbk9mV2FnZXNGaWVsZHMoKTtcbiAgICAgIH1lbHNle1xuICAgICAgICB0aGlzLnJlbW92ZVZhbGlkYXRpb25PblZlcmlmaWNhdGlvbk9mV2FnZXNGaWVsZHMoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMucmVhc29uU2VwYXJhdGlvbi52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbCA9PiB7XG4gICAgICBpZih2YWwpIHtcbiAgICAgICAgaWYodmFsLnZhbHVlID09PSAnRENGSScpe1xuICAgICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmRpc2NoYXJnZURldGFpbCk7XG4gICAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnZvbFF1aXREZXRhaWxzKTtcbiAgICAgICAgICB0aGlzLnZvbFF1aXREZXRhaWxzLnNldFZhbHVlKG51bGwpO1xuICAgICAgICB9IGVsc2UgaWYodGhpcy5yZWFzb25TZXBhcmF0aW9uLnZhbHVlLnZhbHVlID09PSAnVk9MUScpe1xuICAgICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnZvbFF1aXREZXRhaWxzKTtcbiAgICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZGlzY2hhcmdlRGV0YWlsKTtcbiAgICAgICAgICB0aGlzLmRpc2NoYXJnZURldGFpbC5zZXRWYWx1ZShudWxsKTtcbiAgICAgICAgfSBlbHNlIGlmICgodGhpcy5jdXJyZW50U3RhdGUgPT09ICdDVCcgJiYgdGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdSRUcnKSAmJiAodmFsLnZhbHVlID09PSAnV1JQVCcgfHwgdmFsLnZhbHVlID09PSAnRVdGVCcpKSB7XG4gICAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVuZERhdGUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCh0aGlzLmN1cnJlbnRTdGF0ZSA9PT0gJ0NUJyAmJiB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ0ZFRCcpICYmICh2YWwudmFsdWUgPT09ICdXUlBUJyB8fCB2YWwudmFsdWUgPT09ICdFV0ZUJykpIHtcbiAgICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW5kRGF0ZUZlZCk7XG4gICAgICAgIH0gXG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5kaXNjaGFyZ2VEZXRhaWwpO1xuICAgICAgICAgIHRoaXMuZGlzY2hhcmdlRGV0YWlsLnNldFZhbHVlKG51bGwpO1xuICAgICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy52b2xRdWl0RGV0YWlscyk7XG4gICAgICAgICAgdGhpcy52b2xRdWl0RGV0YWlscy5zZXRWYWx1ZShudWxsKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5wZW5zaW9uRmxhZy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbCA9PiB7XG4gICAgICBpZih2YWw9PT0nWScgJiYgdGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdSRUcnICYmIHRoaXMud29ya0ZsYWcudmFsdWUgPT09ICdZJyAmJiB0aGlzLnBlbnNpb25GbGFnLnZhbHVlID09PSAnWScgJiYgdGhpcy5jdXJyZW50U3RhdGUgIT0gJ01FJyl7XG4gICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnBlbnNpb25SZWN2RGF0ZSk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5wZW5zaW9uUmVjdkRhdGUuc2V0VmFsdWUobnVsbCk7XG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5wZW5zaW9uUmVjdkRhdGUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5mZWRQZW5zaW9uRmxhZy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbCA9PiB7XG4gICAgICBpZih2YWw9PT0nWScgJiYgdGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdGRUQnICYmIHRoaXMuZmVkUGVuc2lvbkZsYWcudmFsdWUgPT09ICdZJyAmJiB0aGlzLmN1cnJlbnRTdGF0ZSAhPSAnTUUnICl7XG4gICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmZlZFBlbnNpb25SZWN2RGF0ZSk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5mZWRQZW5zaW9uUmVjdkRhdGUuc2V0VmFsdWUobnVsbCk7XG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5mZWRQZW5zaW9uUmVjdkRhdGUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5yZWdQZW5zaW9uRmxhZy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbCA9PiB7XG4gICAgICBpZih2YWw9PT0nWScgJiYgdGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdSRUcnICYmICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICAmJiB0aGlzLnJlZ1BlbnNpb25GbGFnLnZhbHVlID09PSAnWScgJiYgdGhpcy5jdXJyZW50U3RhdGUgIT0gJ01FJyl7XG4gICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnJlZ1BlbnNpb25SZWN2RGF0ZSk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5yZWdQZW5zaW9uUmVjdkRhdGUuc2V0VmFsdWUobnVsbCk7XG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5yZWdQZW5zaW9uUmVjdkRhdGUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5taWxQZW5zaW9uRmxhZy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbCA9PiB7XG4gICAgICBpZih2YWw9PT0nWScgJiYgdGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdNSUwnICYmIHRoaXMubWlsUGVuc2lvbkZsYWcudmFsdWUgPT09ICdZJyAmJiB0aGlzLmN1cnJlbnRTdGF0ZSAhPSAnTUUnICl7XG4gICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLm1pbFBlbnNpb25SZWN2RGF0ZSk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5taWxQZW5zaW9uUmVjdkRhdGUuc2V0VmFsdWUobnVsbCk7XG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5taWxQZW5zaW9uUmVjdkRhdGUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5oYXNSZWN2UmVtdW5lcmF0aW9uLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsID0+IHtcbiAgICAgIGlmKHZhbD09PSdZJyAmJiB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ1JFRycgJiYgdGhpcy5oYXNSZWN2UmVtdW5lcmF0aW9uLnZhbHVlID09PSAnWScgJiYgdGhpcy5jdXJyZW50U3RhdGUgPT09ICdNRScgJiYgdGhpcy5pc09zYUVtcGxveWVyID09PSAnMCcpe1xuICAgICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5yZW11bmVyYXRpb25UeXBlcyk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW11bmVyYXRpb25UeXBlcy5zZXRWYWx1ZShudWxsKTtcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnJlbXVuZXJhdGlvblR5cGVzKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuc2VwYXJhdGlvbkRhdGVGbGFnLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsID0+IHtcbiAgICAgIGlmKHZhbD09PSdZJyAmJiAodGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdSRUcnIHx8IHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnRkVEJykgXG4gICAgICAgICYmICh0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMud29ya0ZsYWcudmFsdWU9PT0nWScgfHwgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpXG4gICAgICAgICYmIHRoaXMuc2VwYXJhdGlvbkRhdGVGbGFnLnZhbHVlID09PSAnWScgJiYgdGhpcy5jdXJyZW50U3RhdGUgPT0gJ0NUJyl7XG4gICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnNlcGFyYXRpb25EYXRlKTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICB0aGlzLnNlcGFyYXRpb25EYXRlLnNldFZhbHVlKG51bGwpO1xuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuc2VwYXJhdGlvbkRhdGUpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMucmVnRGlzc21pc2FsRmxhZy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbCA9PiB7XG4gICAgICBpZih2YWw9PT0nWScgJiYgdGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdSRUcnICYmICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICAmJiB0aGlzLnJlZ0Rpc3NtaXNhbEZsYWcudmFsdWUgPT09ICdZJyAmJiB0aGlzLmN1cnJlbnRTdGF0ZSAhPSAnQ1QnKXtcbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMucmVnRGlzc21pc2FsQ2hlY2tCb3gpO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIHRoaXMucmVnRGlzc21pc2FsQ2hlY2tCb3guc2V0VmFsdWUobnVsbCk7XG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5yZWdEaXNzbWlzYWxDaGVja0JveCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5mZWREaXNzbWlzYWxGbGFnLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsID0+IHtcbiAgICAgIGlmKHZhbD09PSdZJyAmJiB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ0ZFRCcgJiYgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgICYmIHRoaXMuZmVkRGlzc21pc2FsRmxhZy52YWx1ZSA9PT0gJ1knICYmIHRoaXMuY3VycmVudFN0YXRlICE9ICdDVCcpe1xuICAgICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5mZWREaXNzbWlzYWxDaGVja0JveCk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgIHRoaXMuZmVkRGlzc21pc2FsQ2hlY2tCb3guc2V0VmFsdWUobnVsbCk7XG4gICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZmVkRGlzc21pc2FsQ2hlY2tCb3gpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5lbXBsb3llclR5cGUudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWwgPT4ge1xuICAgICAgaWYgKHZhbCA9PT0gJ0ZFRCcpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVWYWxpZGF0aW9uT25SZWd1bGFyRmllbGRzKClcbiAgICAgICAgdGhpcy5yZW1vdmVWYWxpZGF0aW9uT25NaWxpdGFyeUZpZWxkcygpO1xuICAgICAgICB0aGlzLnNldFZhbGlkYXRpb25PbkZlZGVyYWxGaWVsZHMoKTtcbiAgICAgIH1cbiAgICAgIGlmICh2YWwgPT09ICdSRUcnKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlVmFsaWRhdGlvbk9uRmVkZXJhbEZpZWxkcygpO1xuICAgICAgICB0aGlzLnJlbW92ZVZhbGlkYXRpb25Pbk1pbGl0YXJ5RmllbGRzKCk7XG4gICAgICAgIHRoaXMuc2V0VmFsaWRhdGlvbk9uUmVndWxhckZpZWxkcygpO1xuICAgICAgfVxuXG4gICAgICBpZiAodmFsID09PSAnTUlMJykge1xuICAgICAgICB0aGlzLnJlbW92ZVZhbGlkYXRpb25PbkZlZGVyYWxGaWVsZHMoKTtcbiAgICAgICAgdGhpcy5yZW1vdmVWYWxpZGF0aW9uT25SZWd1bGFyRmllbGRzKCk7XG4gICAgICAgIHRoaXMuc2V0VmFsaWRhdGlvbk9uTWlsaXRhcnlGaWVsZHMoKTtcbiAgICAgIH1cblxuICAgIH0pO1xuXG4gICAgdGhpcy5vdGhlclNTTkZsYWcudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWwgPT4ge1xuICAgICAgaWYodmFsICYmIHZhbCA9PSAnWScpe1xuICAgICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5vdGhlclNTTik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMub3RoZXJTU04pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5vdGhlck5hbWVGbGFnLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsID0+IHtcbiAgICAgIGlmKHZhbCAmJiB2YWwgPT0gJ1knKXtcbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMub3RoZXJOYW1lKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5vdGhlck5hbWUpO1xuICAgICAgfVxuICAgIH0pICAgIFxuICB9XG5cbiAgc2V0VmFsaWRhdGlvbk9uU2VydkZpZWxkcygpe1xuICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLndlZWtseUFtb3VudCk7XG4gICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMubnVtYmVyT2ZXZWVrcyk7XG4gICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuc2V2UGF5QW1vdW50KTtcbiAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5zZXZQYXlTdGFydERhdGUpO1xuICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnNldlBheUVuZERhdGUpO1xuICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnNldlBheVBheW1lbnRTdGFydERhdGUpO1xuICB9XG5cbiAgcmVtb3ZlVmFsaWRhdGlvbk9uU2VydkZpZWxkcygpIHtcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMud2Vla2x5QW1vdW50KTtcbiAgICB0aGlzLndlZWtseUFtb3VudC5zZXRWYWx1ZSgnJyk7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLm51bWJlck9mV2Vla3MpO1xuICAgIHRoaXMubnVtYmVyT2ZXZWVrcy5zZXRWYWx1ZSgnJyk7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnNldlBheUFtb3VudCk7XG4gICAgdGhpcy5zZXZQYXlBbW91bnQuc2V0VmFsdWUoJycpO1xuICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5zZXZQYXlTdGFydERhdGUpO1xuICAgIHRoaXMuc2V2UGF5U3RhcnREYXRlLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5zZXZQYXlFbmREYXRlKTtcbiAgICB0aGlzLnNldlBheUVuZERhdGUuc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnNldlBheVBheW1lbnRTdGFydERhdGUpO1xuICAgIHRoaXMuc2V2UGF5UGF5bWVudFN0YXJ0RGF0ZS5zZXRWYWx1ZShudWxsKTtcbiAgfVxuXG4gIHNldFZhbGlkYXRpb25PblZlcmlmaWNhdGlvbk9mV2FnZXNGaWVsZHMoKSB7XG4gICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMucGF5bWVudFR5cGUpO1xuICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLndvcmtUeXBlKTtcbiAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5kb2NzUmVjZWl2ZWQpO1xuICAgLy8gdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuZG9pbmdCdXNpbmVzc0FzKTtcbiAgIC8vIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmhpcmVkQnkpO1xuICAgIC8vdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuYnVzaW5lc3NOYXR1cmUpO1xuICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLm90aGVyTmFtZUZsYWcpO1xuICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLm90aGVyU1NORmxhZyk7XG4gICAgdGhpcy5zZXRXYWdlVmFsaWRhdGlvbigpO1xuICB9XG5cbiAgc2V0V2FnZVZhbGlkYXRpb24oKSB7XG4gICAgdGhpcy51dGlsLnNldFZhbGlkYXRpb24odGhpcy53YWdlQW1vdW50QXJyYXksIEFwcFZhbGlkYXRvcnMuYXRMZWFzdE9uZU5vblplcm9WYWx1ZVZhbGlkYXRvcigxLCAnd2FnZUFtb3VudCcpKTtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1Zygnc2V0dGluZyB2YWxpZGF0aW9uIGZvciBmZWQgZW1wbG95ZXInKTtcbiAgfVxuXG4gIHJlbW92ZVdhZ2VWYWxpZGF0aW9uKCkge1xuICAgIGlmKHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlICE9ICdGRUQnKXtcbiAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy53YWdlQW1vdW50QXJyYXkpO1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3JlbW92aW5nIHZhbGlkYXRpb24gZm9yIGZlZCBlbXBsb3llcicpO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZVZhbGlkYXRpb25PblZlcmlmaWNhdGlvbk9mV2FnZXNGaWVsZHMoKSB7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnBheW1lbnRUeXBlKTtcbiAgICB0aGlzLnBheW1lbnRUeXBlLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5kb2NzUmVjZWl2ZWQpO1xuICAgIHRoaXMuZG9jc1JlY2VpdmVkLnNldFZhbHVlKG51bGwpO1xuICAgLy8gdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmRvaW5nQnVzaW5lc3NBcyk7XG4gICAvLyB0aGlzLmRvaW5nQnVzaW5lc3NBcy5zZXRWYWx1ZShudWxsKTtcbiAgIC8vIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5oaXJlZEJ5KTtcbiAgIC8vIHRoaXMuaGlyZWRCeS5zZXRWYWx1ZShudWxsKTtcbiAgICAvL3RoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5idXNpbmVzc05hdHVyZSk7XG4gICAgLy90aGlzLmJ1c2luZXNzTmF0dXJlLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5vdGhlck5hbWVGbGFnKTtcbiAgICB0aGlzLm90aGVyTmFtZUZsYWcuc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLm90aGVyU1NORmxhZyk7XG4gICAgdGhpcy5vdGhlclNTTkZsYWcuc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLm90aGVyTmFtZSk7XG4gICAgdGhpcy5vdGhlck5hbWUuc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLm90aGVyU1NOKTtcbiAgICB0aGlzLm90aGVyU1NOLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMucmVtb3ZlV2FnZVZhbGlkYXRpb24oKTtcbiAgfVxuXG4gIHNldFZhbGlkYXRpb25PblJlZ3VsYXJGaWVsZHMoKSB7XG4gICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd0aGlzLmRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzLnZhbHVlJywgdGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZSwgJyB0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyJywgdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcik7XG5cbiAgICBpZigoKHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy53b3JrRmxhZy52YWx1ZSA9PT0gJ1knKSB8fCAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcikpe1xuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMucmVhc29uU2VwYXJhdGlvbik7XG4gICAgfVxuXG4gICAgaWYgKCgoKHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy53b3JrRmxhZy52YWx1ZSA9PT0gJ1knKSB8fCAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcikgJiYgdGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdSRUcnKSkge1xuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMucGF5UmF0ZUZyZXF1ZW5jeSk7XG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5wYXlSYXRlKTsgICAgICBcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmpvYlRpbGVPclBvc2l0aW9uKTsgICAgICBcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmVuZERhdGUpO1xuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuZW1wbG95ZXJUZWxlcGhvbmVOdW1iZXIpO1xuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuZW1wbG95ZXJOYW1lKTtcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnN0YXJ0RGF0ZSk7XG4gICAgICBpZih0aGlzLmN1cnJlbnRTdGF0ZSA9PT0gJ01FJyl7XG4gICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnZhY2F0aW9uKTtcbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuaGFzU2hvcnRUZXJtRGlzYWJpbGl0eSk7XG4gICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmhhc1JlY3ZSZW11bmVyYXRpb24pO1xuICAgICAgfVxuICAgICAgaWYodGhpcy5jdXJyZW50U3RhdGUgPT09ICdDVCcpe1xuICAgICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5ocnNXZWVrKTtcbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuc2hpZnQpOyAgXG4gICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLndvcmtXZWVrKTsgXG4gICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmRpZFdvcmspOyAgICBcbiAgICAgICAgaWYodGhpcy5zZXBhcmF0aW9uRGF0ZUZsYWcudmFsdWUgPT09ICdZJyl7XG4gICAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuc2VwYXJhdGlvbkRhdGUpO1xuICAgICAgICB9ICBcbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMucmVnRGlzc21pc2FsRmxhZyk7XG4gICAgICAgIGlmKHRoaXMucmVnRGlzc21pc2FsRmxhZy52YWx1ZSA9PT0gJ1knKXtcbiAgICAgICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5yZWdEaXNzbWlzYWxDaGVja0JveCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMucmVnTGFpZE9mZkZsYWcpO1xuICAgICAgfVxuICAgICAgaWYodGhpcy5jdXJyZW50U3RhdGUgIT0gJ0NUJyl7XG4gICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmlzQ2xtdFBhaWRXaGlsZUxvdyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYoKHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy53b3JrRmxhZy52YWx1ZSA9PT0gJ1knICYmIHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnUkVHJykpe1xuICAgICAgaWYodGhpcy5wZW5zaW9uRmxhZy52YWx1ZSA9PT0gJ1knKXtcbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMucGVuc2lvblJlY3ZEYXRlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdSRUcnKSB7XG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy53b3JrU3RhdGUpO1xuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMud29ya0NpdHkpO1xuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMucmVnUGVuc2lvbkZsYWcpO1xuICAgICAgaWYodGhpcy5yZWdQZW5zaW9uRmxhZy52YWx1ZSA9PT0gJ1knKXtcbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMucmVnUGVuc2lvblJlY3ZEYXRlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZW1vdmVWYWxpZGF0aW9uT25SZWd1bGFyRmllbGRzKCkge1xuICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5wZW5zaW9uRmxhZyk7XG4gICAgdGhpcy5wZW5zaW9uRmxhZy5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMucGVuc2lvblJlY3ZEYXRlKTtcbiAgICB0aGlzLnBlbnNpb25SZWN2RGF0ZS5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMucGF5UmF0ZUZyZXF1ZW5jeSk7XG4gICAgdGhpcy5wYXlSYXRlRnJlcXVlbmN5LnNldFZhbHVlKHRoaXMucGF5UmF0ZU9wdGlvbnMuZmlsdGVyKHAgPT4gcC50ZXh0PT0naG91cicpWzBdKTtcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMucGF5UmF0ZSk7XG4gICAgdGhpcy5wYXlSYXRlLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5qb2JUaWxlT3JQb3NpdGlvbik7XG4gICAgdGhpcy5qb2JUaWxlT3JQb3NpdGlvbi5zZXRWYWx1ZShudWxsKTsgICAgXG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVuZERhdGUpO1xuICAgIHRoaXMuZW5kRGF0ZS5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW1wbG95ZXJUZWxlcGhvbmVOdW1iZXIpO1xuICAgIHRoaXMuZW1wbG95ZXJUZWxlcGhvbmVOdW1iZXIuc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVtcGxveWVyTmFtZSk7XG4gICAgdGhpcy5lbXBsb3llck5hbWUuc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnN0YXJ0RGF0ZSk7XG4gICAgdGhpcy5zdGFydERhdGUuc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLndvcmtTdGF0ZSk7XG4gICAgdGhpcy53b3JrU3RhdGUuc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLndvcmtDaXR5KTtcbiAgICB0aGlzLndvcmtDaXR5LnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5yZWdQZW5zaW9uRmxhZyk7XG4gICAgdGhpcy5yZWdQZW5zaW9uRmxhZy5zZXRWYWx1ZShudWxsKTtcblx0ICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMucmVnUGVuc2lvblJlY3ZEYXRlKTtcbiAgICB0aGlzLnJlZ1BlbnNpb25SZWN2RGF0ZS5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMub3RoZXJOYW1lKTtcbiAgICB0aGlzLm90aGVyTmFtZS5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMub3RoZXJOYW1lRmxhZyk7XG4gICAgdGhpcy5vdGhlck5hbWVGbGFnLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5vdGhlclNTTik7XG4gICAgdGhpcy5vdGhlclNTTi5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMub3RoZXJTU05GbGFnKTtcbiAgICB0aGlzLm90aGVyU1NORmxhZy5zZXRWYWx1ZShudWxsKTtcbiAgICBpZih0aGlzLmN1cnJlbnRTdGF0ZSA9PT0gJ01FJyl7XG4gICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMudmFjYXRpb24pO1xuICAgICAgdGhpcy52YWNhdGlvbi5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5oYXNTaG9ydFRlcm1EaXNhYmlsaXR5KTtcbiAgICAgIHRoaXMuaGFzU2hvcnRUZXJtRGlzYWJpbGl0eS5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5oYXNSZWN2UmVtdW5lcmF0aW9uKTtcbiAgICAgIHRoaXMuaGFzUmVjdlJlbXVuZXJhdGlvbi5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5yZW11bmVyYXRpb25UeXBlcyk7XG4gICAgICB0aGlzLnJlbXVuZXJhdGlvblR5cGVzLnNldFZhbHVlKG51bGwpO1xuICAgIH1cbiAgICBpZih0aGlzLmN1cnJlbnRTdGF0ZSA9PT0gJ0NUJyl7XG4gICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuaHJzV2Vlayk7XG4gICAgICB0aGlzLmhyc1dlZWsuc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuc2hpZnQpO1xuICAgICAgdGhpcy5zaGlmdC5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy53b3JrV2Vlayk7XG4gICAgICB0aGlzLndvcmtXZWVrLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmRpZFdvcmspO1xuICAgICAgdGhpcy5kaWRXb3JrLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5wYXlSYXRlRnJlcXVlbmN5LnNldFZhbHVlKHRoaXMucGF5UmF0ZU9wdGlvbnMuZmlsdGVyKHAgPT4gcC50ZXh0PT0nSG91cicpWzBdKTtcbiAgICAgIHRoaXMuc2VwYXJhdGlvbkRhdGVGbGFnLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnJlZ0Rpc3NtaXNhbEZsYWcpO1xuICAgICAgdGhpcy5yZWdEaXNzbWlzYWxGbGFnLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnJlZ0Rpc3NtaXNhbENoZWNrQm94KTtcbiAgICAgIHRoaXMucmVnRGlzc21pc2FsQ2hlY2tCb3guc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMucmVnTGFpZE9mZkZsYWcpO1xuICAgICAgdGhpcy5yZWdMYWlkT2ZmRmxhZy5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5zZXBhcmF0aW9uRGF0ZSk7XG4gICAgICB0aGlzLnNlcGFyYXRpb25EYXRlLnNldFZhbHVlKG51bGwpO1xuICAgIH1cbiAgICBpZih0aGlzLmN1cnJlbnRTdGF0ZSAhPSAnQ1QnKXtcbiAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5pc0NsbXRQYWlkV2hpbGVMb3cpO1xuICAgICAgdGhpcy5pc0NsbXRQYWlkV2hpbGVMb3cuc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuXG4gIH1cblxuICBzZXRWYWxpZGF0aW9uT25GZWRlcmFsRmllbGRzKCkge1xuICAgLy8gdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuY2xhaW1hbnRFbXBsb3llZFdpdGhFbXByKTtcbiAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5yZWFzb25TZXBhcmF0aW9uKTtcbiAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5lbmREYXRlRmVkKTtcbiAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5mZWRFbXBsb3llck5hbWUpO1xuICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmZlZEpvYlRpbGVPclBvc2l0aW9uKTtcbiAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5mZWRQZW5zaW9uRmxhZyk7XG4gICAgaWYodGhpcy5mZWRQZW5zaW9uRmxhZy52YWx1ZSA9PT0gJ1knKXtcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmZlZFBlbnNpb25SZWN2RGF0ZSk7XG4gICAgfVxuICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmZlZFdvcmtDaXR5KTtcbiAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5mZWRXb3JrQ291bnRyeSk7XG4gICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuZmVkV29ya1N0YXRlKTtcbiAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5wZXJmb3JtZWRTZXJ2aWNlKTtcbiAgICBpZih0aGlzLmN1cnJlbnRTdGF0ZSA9PT0gJ01FJykge1xuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuc2V2UGF5RmxhZyk7XG4gICAgfVxuICAgIGlmKHRoaXMuY3VycmVudFN0YXRlID09PSAnQ1QnKXtcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmhyc1dlZWspOyAgIFxuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuc2hpZnQpOyAgXG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy53b3JrV2Vlayk7ICBcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmRpZFdvcmspOyAgXG4gICAgICBpZih0aGlzLnNlcGFyYXRpb25EYXRlRmxhZy52YWx1ZSA9PT0gJ1knKXtcbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuc2VwYXJhdGlvbkRhdGUpO1xuICAgICAgfSAgXG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5mZWREaXNzbWlzYWxGbGFnKTtcbiAgICAgICAgaWYodGhpcy5mZWREaXNzbWlzYWxGbGFnLnZhbHVlID09PSAnWScpe1xuICAgICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmZlZERpc3NtaXNhbENoZWNrQm94KTtcbiAgICAgICAgfSBcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmZlZExhaWRPZmZGbGFnKTtcbiAgICB9XG4gICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuc2ZFaWdodGZsYWcpO1xuICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnN0YXJ0RGF0ZUZlZCk7XG4gICAgdGhpcy51dGlsLnNldFZhbGlkYXRpb24odGhpcy5mZWRFbXBsb3llck5hbWUsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG5cbiAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5wYXlSYXRlRnJlcXVlbmN5KTtcbiAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5wYXlSYXRlKTtcbiAgICBpZih0aGlzLmlzTmV3Q2xhaW0pe1xuICAgICAgdGhpcy5zZXRXYWdlVmFsaWRhdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZVZhbGlkYXRpb25PbkZlZGVyYWxGaWVsZHMoKSB7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnN0YXJ0RGF0ZUZlZCk7XG4gICAgdGhpcy5zdGFydERhdGVGZWQuc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnNmRWlnaHRmbGFnKTtcbiAgICB0aGlzLnNmRWlnaHRmbGFnLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5zZXZQYXlGbGFnKTtcbiAgICB0aGlzLnNldlBheUZsYWcuc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnBlcmZvcm1lZFNlcnZpY2UpO1xuICAgIHRoaXMucGVyZm9ybWVkU2VydmljZS5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZmVkV29ya1N0YXRlKTtcbiAgICB0aGlzLmZlZFdvcmtTdGF0ZS5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZmVkV29ya0NvdW50cnkpO1xuICAgIHRoaXMuZmVkV29ya0NvdW50cnkuc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmZlZFdvcmtDaXR5KTtcbiAgICB0aGlzLmZlZFdvcmtDaXR5LnNldFZhbHVlKG51bGwpO1xuXG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmZlZFBlbnNpb25GbGFnKTtcbiAgICB0aGlzLmZlZFBlbnNpb25GbGFnLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5mZWRQZW5zaW9uUmVjdkRhdGUpO1xuICAgIHRoaXMuZmVkUGVuc2lvblJlY3ZEYXRlLnNldFZhbHVlKG51bGwpO1xuXG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmZlZEpvYlRpbGVPclBvc2l0aW9uKTtcbiAgICB0aGlzLmZlZEpvYlRpbGVPclBvc2l0aW9uLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5mZWRFbXBsb3llck5hbWUpO1xuICAgIHRoaXMuZmVkRW1wbG95ZXJOYW1lLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5lbmREYXRlRmVkKTtcbiAgICB0aGlzLmVuZERhdGVGZWQuc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy5yZW1vdmVXYWdlVmFsaWRhdGlvbigpO1xuXG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnBheVJhdGUpO1xuICAgIHRoaXMucGF5UmF0ZS5zZXRWYWx1ZShudWxsKTtcbiAgICBcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMucGF5UmF0ZUZyZXF1ZW5jeSk7XG4gICAgdGhpcy5wYXlSYXRlRnJlcXVlbmN5LnNldFZhbHVlKHRoaXMucGF5UmF0ZU9wdGlvbnMuZmlsdGVyKHAgPT4gcC50ZXh0PT0naG91cicpWzBdKTtcbiAgIC8vIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5jbGFpbWFudEVtcGxveWVkV2l0aEVtcHIpO1xuICAgIC8vdGhpcy5jbGFpbWFudEVtcGxveWVkV2l0aEVtcHIuc2V0VmFsdWUobnVsbClcbiAgICBpZih0aGlzLmN1cnJlbnRTdGF0ZSA9PT0gJ0NUJyl7XG4gICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuaHJzV2Vlayk7XG4gICAgICB0aGlzLmhyc1dlZWsuc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuc2hpZnQpO1xuICAgICAgdGhpcy5zaGlmdC5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy53b3JrV2Vlayk7XG4gICAgICB0aGlzLndvcmtXZWVrLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmRpZFdvcmspO1xuICAgICAgdGhpcy5kaWRXb3JrLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5wYXlSYXRlRnJlcXVlbmN5LnNldFZhbHVlKHRoaXMucGF5UmF0ZU9wdGlvbnMuZmlsdGVyKHAgPT4gcC50ZXh0PT0nSG91cicpWzBdKTtcbiAgICAgIHRoaXMuc2VwYXJhdGlvbkRhdGVGbGFnLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnNlcGFyYXRpb25EYXRlKTtcbiAgICAgIHRoaXMuc2VwYXJhdGlvbkRhdGUuc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZmVkRGlzc21pc2FsRmxhZyk7XG4gICAgICB0aGlzLmZlZERpc3NtaXNhbEZsYWcuc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZmVkRGlzc21pc2FsQ2hlY2tCb3gpO1xuICAgICAgdGhpcy5mZWREaXNzbWlzYWxDaGVja0JveC5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5mZWRMYWlkT2ZmRmxhZyk7XG4gICAgICB0aGlzLmZlZExhaWRPZmZGbGFnLnNldFZhbHVlKG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIHNldFZhbGlkYXRpb25Pbk1pbGl0YXJ5RmllbGRzKCkge1xuICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnNlcnZpY2VCcmFuY2gpO1xuICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnN0YXJ0RGF0ZU1pbCk7XG4gICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuZW5kRGF0ZU1pbCk7XG4gICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuZGQyMTRGbGFnKTtcbiAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5taWxQZW5zaW9uRmxhZyk7XG4gICAgaWYodGhpcy5taWxQZW5zaW9uRmxhZy52YWx1ZSA9PT0gJ1knKXtcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLm1pbFBlbnNpb25SZWN2RGF0ZSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmRkMjE0RmxhZy52YWx1ZSA9PT0gJ04nKSB7XG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5sYXN0UGF5R3JhZGUpO1xuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMubGFzdGR1dHkpO1xuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMucGxhY2VTZXBhcmF0ZWQpO1xuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMubm9MZWF2ZURheXMpO1xuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuY29tcGxldGVkRnVsbFRlcm1GbGFnKTtcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnJlc2VydmVPckd1YXJkRmxhZyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmRkMjE0RmxhZy52YWx1ZSA9PT0gJ1knKSB7fVxuXG4gICAgaWYgKHRoaXMucmVzZXJ2ZU9yR3VhcmRGbGFnLnZhbHVlID09PSAnWScpIHtcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnJlc2VydmVCcmFuY2gpO1xuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuc3RhcnREYXRlUmVzZXJ2ZSk7XG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5lbmREYXRlUmVzZXJ2ZSk7XG4gICAgfVxuICAgIC8vbWlsaXRhcnkgZG9lcyBub3QgaGF2ZSByZWFzb24gb2Ygc2VwYXJhdGlvblxuICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5yZWFzb25TZXBhcmF0aW9uKTtcbiAgICB0aGlzLnJlYXNvblNlcGFyYXRpb24uc2V0VmFsdWUobnVsbCk7XG4gIH1cblxuICByZW1vdmVWYWxpZGF0aW9uT25NaWxpdGFyeUZpZWxkcygpIHtcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuc2VydmljZUJyYW5jaCk7XG4gICAgdGhpcy5zZXJ2aWNlQnJhbmNoLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5zdGFydERhdGVNaWwpO1xuICAgIHRoaXMuc3RhcnREYXRlTWlsLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5lbmREYXRlTWlsKTtcbiAgICB0aGlzLmVuZERhdGVNaWwuc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmRkMjE0RmxhZyk7XG4gICAgdGhpcy5kZDIxNEZsYWcuc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmxhc3RQYXlHcmFkZSk7XG4gICAgdGhpcy5sYXN0UGF5R3JhZGUuc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmxhc3RkdXR5KTtcbiAgICB0aGlzLmxhc3RkdXR5LnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5wbGFjZVNlcGFyYXRlZCk7XG4gICAgdGhpcy5wbGFjZVNlcGFyYXRlZC5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMubm9MZWF2ZURheXMpO1xuICAgIHRoaXMubm9MZWF2ZURheXMuc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmNvbXBsZXRlZEZ1bGxUZXJtRmxhZyk7XG4gICAgdGhpcy5jb21wbGV0ZWRGdWxsVGVybUZsYWcuc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnJlc2VydmVPckd1YXJkRmxhZyk7XG4gICAgdGhpcy5yZXNlcnZlT3JHdWFyZEZsYWcuc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLm1pbFBlbnNpb25GbGFnKTtcbiAgICB0aGlzLm1pbFBlbnNpb25GbGFnLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5yZXNlcnZlQnJhbmNoKTtcbiAgICB0aGlzLnJlc2VydmVCcmFuY2guc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnN0YXJ0RGF0ZVJlc2VydmUpO1xuICAgIHRoaXMuc3RhcnREYXRlUmVzZXJ2ZS5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW5kRGF0ZVJlc2VydmUpO1xuICAgIHRoaXMuZW5kRGF0ZVJlc2VydmUuc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLm1pbFBlbnNpb25SZWN2RGF0ZSk7XG4gICAgdGhpcy5taWxQZW5zaW9uUmVjdkRhdGUuc2V0VmFsdWUobnVsbCk7XG4gIH1cblxuICBnZXQgZW1wbG95ZXJUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZW1wbG95ZXJUeXBlJ107XG4gIH1cbiAgZ2V0IGVtcGxveWVyTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2VtcGxveWVyTmFtZSddO1xuICB9XG5cbiAgZ2V0IGVtcGxveWVyVGVsZXBob25lTnVtYmVyKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZW1wbG95ZXJUZWxlcGhvbmVOdW1iZXInXTtcbiAgfVxuXG4gIGdldCBzdGFydERhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydzdGFydERhdGUnXTtcbiAgfVxuXG4gIGdldCBlbmREYXRlKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZW5kRGF0ZSddO1xuICB9XG5cbiAgZ2V0IGpvYlRpbGVPclBvc2l0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snam9iVGlsZU9yUG9zaXRpb24nXTtcbiAgfVxuXG4gIGdldCByZWFzb25TZXBhcmF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncmVhc29uU2VwYXJhdGlvbiddO1xuICB9XG5cbiAgZ2V0IGRpc2NoYXJnZURldGFpbCgpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2Rpc2NoYXJnZURldGFpbCddO1xuICB9XG5cbiAgZ2V0IHZvbFF1aXREZXRhaWxzKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sndm9sUXVpdERldGFpbHMnXTtcbiAgfVxuXG4gIGdldCBwYXlSYXRlKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncGF5UmF0ZSddO1xuICB9XG5cbiAgZ2V0IGdyb3NzV2FnZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydncm9zc1dhZ2VzJ107XG4gIH1cblxuICBnZXQgcGF5UmF0ZUZyZXF1ZW5jeSgpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3BheVJhdGVGcmVxdWVuY3knXTtcbiAgfVxuXG4gIGdldCBocnNXZWVrKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snaHJzV2VlayddO1xuICB9XG5cbiAgZ2V0IHNoaWZ0KCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snc2hpZnQnXTtcbiAgfVxuXG4gIGdldCB3b3JrV2VlaygpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3dvcmtXZWVrJ107XG4gIH1cbiAgZ2V0IHJlZ0Rpc3NtaXNhbENoZWNrQm94KCl7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydyZWdEaXNzbWlzYWxDaGVja0JveCddO1xuICB9XG4gIGdldCBmZWREaXNzbWlzYWxDaGVja0JveCgpe1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZmVkRGlzc21pc2FsQ2hlY2tCb3gnXTtcbiAgfVxuICBnZXQgZmVkTGFpZE9mZkZsYWcoKXtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2ZlZExhaWRPZmZGbGFnJ107XG4gIH1cblxuICBnZXQgZGlkV29yaygpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2RpZFdvcmsnXTtcbiAgfVxuXG4gIGdldCBzZXBhcmF0aW9uRGF0ZUZsYWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydzZXBhcmF0aW9uRGF0ZUZsYWcnXTtcbiAgfVxuICBnZXQgcmVnRGlzc21pc2FsRmxhZygpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3JlZ0Rpc3NtaXNhbEZsYWcnXTtcbiAgfVxuICBnZXQgZmVkRGlzc21pc2FsRmxhZygpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2ZlZERpc3NtaXNhbEZsYWcnXTtcbiAgfVxuICBnZXQgcmVnTGFpZE9mZkZsYWcoKXtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3JlZ0xhaWRPZmZGbGFnJ107XG4gIH1cblxuICBnZXQgc2VwYXJhdGlvbkRhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydzZXBhcmF0aW9uRGF0ZSddO1xuICB9XG5cbiAgZ2V0IHBlbnNpb25GbGFnKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncGVuc2lvbkZsYWcnXTtcbiAgfVxuICBcbiAgZ2V0IHBlbnNpb25SZWN2RGF0ZSgpe1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncGVuc2lvblJlY3ZEYXRlJ107XG4gIH1cblxuICBnZXQgcmVnUGVuc2lvbkZsYWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydyZWdQZW5zaW9uRmxhZyddO1xuICB9XG4gIFxuICBnZXQgcmVnUGVuc2lvblJlY3ZEYXRlKCl7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydyZWdQZW5zaW9uUmVjdkRhdGUnXTtcbiAgfVxuXG4gIGdldCBpc0NsbXRQYWlkV2hpbGVMb3coKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydpc0NsbXRQYWlkV2hpbGVMb3cnXTtcbiAgfVxuXG4gIGdldCBoYXNTaG9ydFRlcm1EaXNhYmlsaXR5KCl7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydoYXNTaG9ydFRlcm1EaXNhYmlsaXR5J107XG4gIH1cblxuICBnZXQgaGFzUmVjdlJlbXVuZXJhdGlvbigpe1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snaGFzUmVjdlJlbXVuZXJhdGlvbiddO1xuICB9XG5cbiAgZ2V0IHJlbXVuZXJhdGlvblR5cGVzKCl7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydyZW11bmVyYXRpb25UeXBlcyddO1xuICB9XG5cbiAgZ2V0IHZhY2F0aW9uKCl7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWyd2YWNhdGlvbiddO1xuICB9XG4gIC8vIGdldCBwYWlkQnkoKSB7XG4gIC8vICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydwYWlkQnknXTtcbiAgLy8gfVxuXG4gIGdldCBwYXltZW50VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3BheW1lbnRUeXBlJ107XG4gIH1cblxuICBnZXQgZG9jc1JlY2VpdmVkKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZG9jc1JlY2VpdmVkJ107XG4gIH1cblxuICBnZXQgb3RoZXJTU05GbGFnKCl7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydvdGhlclNTTkZsYWcnXTtcbiAgfVxuXG4gIGdldCBvdGhlclNTTigpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ290aGVyU1NOJ107XG4gIH1cblxuICBnZXQgb3RoZXJOYW1lRmxhZygpe1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snb3RoZXJOYW1lRmxhZyddO1xuICB9XG5cbiAgZ2V0IG90aGVyTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ290aGVyTmFtZSddO1xuICB9XG5cbiAgZ2V0IGRvaW5nQnVzaW5lc3NBcygpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2RvaW5nQnVzaW5lc3NBcyddO1xuICB9XG5cbiAgZ2V0IHdvcmtGbGFnKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snd29ya0ZsYWcnXTtcbiAgfVxuXG4gIC8vIGdldCBxdWl0cmVhc29uKCkge1xuICAvLyAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncXVpdHJlYXNvbiddO1xuICAvLyB9XG5cbiAgZ2V0IHdvcmtDaXR5KCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snd29ya0NpdHknXTtcbiAgfVxuXG4gIGdldCB3b3JrU3RhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWyd3b3JrU3RhdGUnXTtcbiAgfVxuXG4gIC8qZ2V0IGhpcmVkQnkoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydoaXJlZEJ5J107XG4gIH1cblxuICBnZXQgZmVpbigpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2ZlaW4nXTtcbiAgfSovXG5cbiAgZ2V0IHdvcmtUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snd29ya1R5cGUnXTtcbiAgfVxuXG4gIC8qZ2V0IG51bWJlckVtcGxveWVkKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snbnVtYmVyRW1wbG95ZWQnXTtcbiAgfSovXG5cbiAgLypnZXQgYnVzaW5lc3NOYXR1cmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydidXNpbmVzc05hdHVyZSddO1xuICB9Ki9cblxuICBnZXQgZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydkaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcyddO1xuICB9XG5cbiAgLy8gZ2V0IHdhZ2VRdWFydGVyMSgpIHtcbiAgLy8gICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3dhZ2VRdWFydGVyMSddO1xuICAvLyB9XG5cbiAgLy8gZ2V0IHdhZ2VRdWFydGVyMigpIHtcbiAgLy8gICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3dhZ2VRdWFydGVyMiddO1xuICAvLyB9XG5cblxuICAvLyBnZXQgd2FnZVF1YXJ0ZXIzKCkge1xuICAvLyAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snd2FnZVF1YXJ0ZXIzJ107XG4gIC8vIH1cblxuXG5cbiAgLy8gZ2V0IHdhZ2VRdWFydGVyNCgpIHtcbiAgLy8gICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3dhZ2VRdWFydGVyNCddO1xuICAvLyB9XG5cbiAgZ2V0IGZpY0NvZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydmaWNDb2RlJ107XG4gIH1cblxuICBnZXQgZmljRGVzdGluYXRpb25Db2RlKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZmljRGVzdGluYXRpb25Db2RlJ107XG4gIH1cblxuICBnZXQgZmljRGVzdGluYXRpb25JZCgpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2ZpY0Rlc3RpbmF0aW9uSWQnXTtcbiAgfVxuICAgICAgXG4gIFxuICAvLyBnZXQgZm9ybWVybHlLbm93bkFzKCkge1xuICAvLyAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZm9ybWVybHlLbm93bkFzJ107XG4gIC8vIH1cblxuICBnZXQgc2ZFaWdodGZsYWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydzZkVpZ2h0ZmxhZyddO1xuICB9XG5cbiAgZ2V0IGZlZFdvcmtDaXR5KCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZmVkV29ya0NpdHknXTtcbiAgfVxuXG4gIGdldCBmZWRXb3JrU3RhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydmZWRXb3JrU3RhdGUnXTtcbiAgfVxuXG5cbiAgZ2V0IGZlZFdvcmtDb3VudHJ5KCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZmVkV29ya0NvdW50cnknXTtcbiAgfVxuXG5cbiAgZ2V0IHN0YXJ0RGF0ZUZlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3N0YXJ0RGF0ZUZlZCddO1xuICB9XG5cbiAgZ2V0IGVuZERhdGVGZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydlbmREYXRlRmVkJ107XG4gIH1cblxuICBnZXQgZmVkSm9iVGlsZU9yUG9zaXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydmZWRKb2JUaWxlT3JQb3NpdGlvbiddO1xuICB9XG5cbiAgLyogZ2V0IGNsYWltYW50RW1wbG95ZWRXaXRoRW1wcigpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2NsYWltYW50RW1wbG95ZWRXaXRoRW1wciddO1xuICB9ICovXG5cbiAgZ2V0IHBlcmZvcm1lZFNlcnZpY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydwZXJmb3JtZWRTZXJ2aWNlJ107XG4gIH1cblxuICBnZXQgZmVkUGVuc2lvbkZsYWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydmZWRQZW5zaW9uRmxhZyddO1xuICB9XG5cbiAgZ2V0IGZlZFBlbnNpb25SZWN2RGF0ZSgpe1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZmVkUGVuc2lvblJlY3ZEYXRlJ107XG4gIH1cblxuICBnZXQgc2V2UGF5RmxhZygpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3NldlBheUZsYWcnXTtcbiAgfVxuXG4gIGdldCB3ZWVrbHlBbW91bnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWyd3ZWVrbHlBbW91bnQnXTtcbiAgfVxuXG4gIGdldCBudW1iZXJPZldlZWtzKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snbnVtYmVyT2ZXZWVrcyddO1xuICB9XG5cbiAgZ2V0IHNldlBheUFtb3VudCgpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3NldlBheUFtb3VudCddO1xuICB9XG5cblxuICBnZXQgc2V2UGF5U3RhcnREYXRlKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snc2V2UGF5U3RhcnREYXRlJ107XG4gIH1cblxuXG4gIGdldCBzZXZQYXlFbmREYXRlKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snc2V2UGF5RW5kRGF0ZSddO1xuICB9XG5cbiAgZ2V0IHNldlBheVBheW1lbnRTdGFydERhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydzZXZQYXlQYXltZW50U3RhcnREYXRlJ107XG4gIH1cblxuICBnZXQgcmVnRW1wbG95ZXJGb3VuZCgpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3JlZ0VtcGxveWVyRm91bmQnXTtcbiAgfVxuXG4gIGdldCBlbXBsb3llcklkKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZW1wbG95ZXJJZCddO1xuICB9XG5cbiAgZ2V0IGZlZEVtcGxveWVyTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2ZlZEVtcGxveWVyTmFtZSddO1xuICB9XG4gIGdldCBzZXJ2aWNlQnJhbmNoKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snc2VydmljZUJyYW5jaCddO1xuICB9XG5cbiAgZ2V0IHN0YXJ0RGF0ZU1pbCgpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3N0YXJ0RGF0ZU1pbCddO1xuICB9XG5cbiAgZ2V0IGVuZERhdGVNaWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydlbmREYXRlTWlsJ107XG4gIH1cblxuICBnZXQgZGQyMTRGbGFnKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZGQyMTRGbGFnJ107XG4gIH1cblxuICBnZXQgbGFzdFBheUdyYWRlKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snbGFzdFBheUdyYWRlJ107XG4gIH1cblxuICBnZXQgbGFzdGR1dHkoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydsYXN0ZHV0eSddO1xuICB9XG5cbiAgZ2V0IHBsYWNlU2VwYXJhdGVkKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncGxhY2VTZXBhcmF0ZWQnXTtcbiAgfVxuXG4gIGdldCBub0xlYXZlRGF5cygpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ25vTGVhdmVEYXlzJ107XG4gIH1cblxuICBnZXQgY29tcGxldGVkRnVsbFRlcm1GbGFnKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snY29tcGxldGVkRnVsbFRlcm1GbGFnJ107XG4gIH1cblxuICBnZXQgcmVzZXJ2ZU9yR3VhcmRGbGFnKCkge1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncmVzZXJ2ZU9yR3VhcmRGbGFnJ107XG4gIH1cblxuICBnZXQgbWlsUGVuc2lvbkZsYWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydtaWxQZW5zaW9uRmxhZyddO1xuICB9XG5cbiAgZ2V0IG1pbFBlbnNpb25SZWN2RGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ21pbFBlbnNpb25SZWN2RGF0ZSddO1xuICB9XG5cbiAgZ2V0IGFkZHJlc3NMaW5lMSgpe1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snYWRkcmVzc0xpbmUxJ107XG4gIH1cblxuICBnZXQgYWRkcmVzc0xpbmUyKCl7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydhZGRyZXNzTGluZTInXTtcbiAgfVxuXG4gIGdldCBhZGRyZXNzTGluZTMoKXtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2FkZHJlc3NMaW5lMyddO1xuICB9XG5cbiAgZ2V0IGZpY0Rlc3RpbmF0aW9uTmFtZSgpe1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZmljRGVzdGluYXRpb25OYW1lJ107XG4gIH1cblxuICBnZXQgcmVzZXJ2ZUJyYW5jaCgpe1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncmVzZXJ2ZUJyYW5jaCddO1xuICB9XG5cbiAgZ2V0IHN0YXJ0RGF0ZVJlc2VydmUoKXtcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3N0YXJ0RGF0ZVJlc2VydmUnXTtcbiAgfVxuXG4gIGdldCBlbmREYXRlUmVzZXJ2ZSgpe1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZW5kRGF0ZVJlc2VydmUnXTtcbiAgfVxuICBcbiAgZ2V0IGRkMjE0RmlsZSgpe1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZGQyMTRGaWxlJ107XG4gIH1cblxuICBnZXQgYWRkcmVzcygpe1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snYWRkcmVzcyddO1xuICB9XG5cbiAgZ2V0IG9zYUJwRW1wbG95ZXJGbGFnKCl7XG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydvc2FCcEVtcGxveWVyRmxhZyddO1xuICB9XG5cbiAgZ2V0IGRpc3BsYXlTZWFzb25hbEVtcCgpe1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZGlzcGxheVNlYXNvbmFsRW1wJ107XG4gIH1cblxuICBnZXQgc2Nob29sRmxhZ0VtcCgpe1xuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snc2Nob29sRmxhZ0VtcCddO1xuICB9XG5cbiAgb25Ub2dnbGVDaGFuZ2VFbXBsb3llclR5cGUob2JqOiBhbnkpIHtcbiAgICBpZih0aGlzLmVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnKXtcbiAgICAgICAgdGhpcy5hZGRyZXNzLmRpc2FibGUoKTtcbiAgICAgIH1cbiAgICB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbCA9PiB7XG4gICAgICB0aGlzLnBheVJhdGVGcmVxdWVuY3kuc2V0VmFsdWUodGhpcy5wYXlSYXRlT3B0aW9ucy5maWx0ZXIocCA9PiBwLnRleHQ9PSdob3VyJylbMF0pO1xuICAgICAgdGhpcy5yZWFzb25TZXBhcmF0aW9uLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5hZGRyZXNzLmVuYWJsZSgpO1xuICAgICAgdGhpcy5hZGRyZXNzLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5maWNDb2RlLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5maWNEZXN0aW5hdGlvbkNvZGUuc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmFkZHJlc3NMaW5lMS5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMuYWRkcmVzc0xpbmUyLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5hZGRyZXNzTGluZTMuc2V0VmFsdWUobnVsbCk7XG4gICAgICBpZih0aGlzLmN1cnJlbnRTdGF0ZSA9PT0gJ0NUJyl7XG4gICAgICAgIHRoaXMucGF5UmF0ZUZyZXF1ZW5jeS5zZXRWYWx1ZSh0aGlzLnBheVJhdGVPcHRpb25zLmZpbHRlcihwID0+IHAudGV4dD09J0hvdXInKVswXSk7XG4gICAgICB9XG4gICAgICB0aGlzLmdldFJlYXNvblNlcGVyYXRpb25CYXNlZE9uQ29uZGl0aW9uKCk7XG4gICAgfSlcbiAgfVxuXG4gXG5cbiAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xuICAgIC8vdGhpcy5lbXBOYW1lID0gb2JqO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xuICB9XG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcblxuICB9XG5cbiAgb25Nb2RlbENhbmNlbChjYW5jZWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLm1vZGVsQ2FuY2VsLmVtaXQoY2FuY2VsKTtcbiAgfVxuXG4gIHNldEVtcGxveWVyKGVtcGxveWVyOiBFbXBsb3llckRldGFpbFNlYXJjaFJlc3VsdCkge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdzZXRFbXBsb3llciBjYWxsZWQnLCBlbXBsb3llciwgXCJ0eXBlXCIsIHRoaXMuZW1wbG95ZXJUeXBlLCAndGhpcy5hZGRFbXBsb3llckZvcm0nLHRoaXMuYWRkRW1wbG95ZXJGb3JtKTtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnZW1wbG95ZXIuc3RhdGUnLCBlbXBsb3llci5zdGF0ZSlcbiAgICBpZih0aGlzLmN1cnJlbnRTdGF0ZSA9PT0gJ0NUJykge1xuICAgICAgdGhpcy5lbXBsb3llclNlcnZpY2UuZ2V0RW1wbG95ZXJEYXRhQnlJZChlbXBsb3llci5lbXBsb3llcklkKS5zdWJzY3JpYmUoXG4gICAgICAgIHJlc3BvbnNlID0+IHtcbiAgICAgICAgICB0aGlzLmdldFJlYXNvblNlcGVyYXRpb25CYXNlZE9uQ29uZGl0aW9uKHJlc3BvbnNlLnNjaG9vbEZsYWcsIHJlc3BvbnNlLnNwb3J0c0ZsYWcpO1xuICAgICAgfVxuICAgICk7XG4gICAgfVxuICAgIHRoaXMuYWRkcmVzcy5zZXRWYWx1ZSh7Y291bnRyeTplbXBsb3llci5jb3VudHJ5LCBjaXR5OmVtcGxveWVyLmNpdHlcbiAgICAsIHppcDplbXBsb3llci56aXAsc3RyZWV0QWRkcmVzczplbXBsb3llci5hZGRyZXNzRGlzcGxheVZhbCxzdGF0ZTplbXBsb3llci5zdGF0ZSxcbiAgICBvcHRpb25hbEFkZHJlc3M6bnVsbCxjb3VudHk6bnVsbCx0b3duOm51bGxcbiAgICB9KTtcbiAgICB0aGlzLmFkZHJlc3MuZGlzYWJsZSgpO1xuICAgIHRoaXMuZW1wbG95ZXJJZC5zZXRWYWx1ZShlbXBsb3llci5lbXBsb3llcklkKTtcbiAgICB0aGlzLmFkZHJlc3NMaW5lMS5zZXRWYWx1ZShlbXBsb3llci5hZGRyZXNzTGluZTEpO1xuICAgIHRoaXMuYWRkcmVzc0xpbmUyLnNldFZhbHVlKGVtcGxveWVyLmFkZHJlc3NMaW5lMik7XG4gICAgdGhpcy5hZGRyZXNzTGluZTMuc2V0VmFsdWUoZW1wbG95ZXIuYWRkcmVzc0xpbmUzKTtcbiAgICB0aGlzLnJlZ0VtcGxveWVyRm91bmQuc2V0VmFsdWUodHJ1ZSk7XG4gIH1cblxuICBzZXRGZWRFbXBsb3llcihlbXBsb3llcjogRW1wbG95ZXJEZXRhaWxTZWFyY2hSZXN1bHQpe1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdzZXRGZWRFbXBsb3llciBjYWxsZWQnLCBlbXBsb3llciwgXCJ6aXAgXCIsIGVtcGxveWVyLnppcCk7XG4gICAgdGhpcy5nZXRSZWFzb25TZXBlcmF0aW9uQmFzZWRPbkNvbmRpdGlvbigpOyAgICAgICAgICAgIFxuICAgIHRoaXMuZmljQ29kZS5zZXRWYWx1ZShlbXBsb3llci5maWNDb2RlKTtcbiAgICB0aGlzLmZpY0NvZGUuZGlzYWJsZSgpO1xuICAgIHRoaXMuZmljRGVzdGluYXRpb25OYW1lLnNldFZhbHVlKGVtcGxveWVyLmZpY0Rlc3RpbmF0aW9uTmFtZSk7XG4gICAgdGhpcy5maWNEZXN0aW5hdGlvbklkLnNldFZhbHVlKGVtcGxveWVyLmZpY0Rlc3RpbmF0aW9uSWQpO1xuICAgIHRoaXMuZmljRGVzdGluYXRpb25OYW1lLmRpc2FibGUoKTtcbiAgICB0aGlzLmZpY0Rlc3RpbmF0aW9uQ29kZS5zZXRWYWx1ZShlbXBsb3llci5maWNEZXN0aW5hdGlvbkNvZGUpO1xuICAgIHRoaXMuYWRkcmVzcy5zZXRWYWx1ZSh7Y291bnRyeTplbXBsb3llci5jb3VudHJ5LCBjaXR5OmVtcGxveWVyLmNpdHlcbiAgICAgICwgemlwOmVtcGxveWVyLnppcCxzdHJlZXRBZGRyZXNzOmVtcGxveWVyLmFkZHJlc3NMaW5lMSxzdGF0ZTplbXBsb3llci5zdGF0ZSxcbiAgICAgIG9wdGlvbmFsQWRkcmVzczplbXBsb3llci5hZGRyZXNzTGluZTIsY291bnR5Om51bGwsdG93bjpudWxsXG4gICAgICB9KTtcbiAgICB0aGlzLmFkZHJlc3MuZGlzYWJsZSgpO1xuICAgIHRoaXMuZW1wbG95ZXJJZC5zZXRWYWx1ZShlbXBsb3llci5lbXBsb3llcklkKTtcbiAgICB0aGlzLmFkZHJlc3NMaW5lMS5zZXRWYWx1ZShlbXBsb3llci5hZGRyZXNzTGluZTEpO1xuICAgIHRoaXMuYWRkcmVzc0xpbmUyLnNldFZhbHVlKGVtcGxveWVyLmFkZHJlc3NMaW5lMik7XG4gICAgdGhpcy5hZGRyZXNzTGluZTMuc2V0VmFsdWUoZW1wbG95ZXIuYWRkcmVzc0xpbmUzKTtcbiAgICB0aGlzLnJlZ0VtcGxveWVyRm91bmQuc2V0VmFsdWUoZmFsc2UpO1xuICB9XG5cbiAgcmVzZXRGZWRFbXBsb3llcihlbXBsb3llcjogRW1wbG95ZXJEZXRhaWxTZWFyY2hSZXN1bHQpe1xuICAgIHRoaXMuYWRkcmVzcy5kaXNhYmxlKCk7XG4gICAgdGhpcy5hZGRyZXNzLnNldFZhbHVlKHtjb3VudHJ5Om51bGwsIGNpdHk6bnVsbFxuICAgICAgLCB6aXA6bnVsbCxzdHJlZXRBZGRyZXNzOm51bGwsc3RhdGU6bnVsbCxcbiAgICAgIG9wdGlvbmFsQWRkcmVzczpudWxsLGNvdW50eTpudWxsLHRvd246bnVsbFxuICAgICAgfSk7XG4gICAgdGhpcy5yZWdFbXBsb3llckZvdW5kLnNldFZhbHVlKGZhbHNlKTtcbiAgfVxuXG4gIHJlc2V0RW1wbG95ZXIoZW1wbG95ZXI6IEVtcGxveWVyRGV0YWlsU2VhcmNoUmVzdWx0KSB7XG4gICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdyZXNldEVtcGxveWVyIGNhbGxlZCcsIGVtcGxveWVyKTtcbiAgICAgdGhpcy5hZGRyZXNzLmVuYWJsZSgpO1xuICAgICB0aGlzLmFkZHJlc3Muc2V0VmFsdWUoe2NvdW50cnk6bnVsbCwgY2l0eTpudWxsXG4gICAgICAsIHppcDpudWxsLHN0cmVldEFkZHJlc3M6bnVsbCxzdGF0ZTpudWxsLFxuICAgICAgb3B0aW9uYWxBZGRyZXNzOm51bGwsY291bnR5Om51bGwsdG93bjpudWxsXG4gICAgICB9KTtcbiAgICB0aGlzLnJlZ0VtcGxveWVyRm91bmQuc2V0VmFsdWUoZmFsc2UpO1xuICB9XG5cblxuICBwdXRNaWxSZXNCcmFuY2hWYWxpZGF0aW9uKGV2ZW50KXtcbiAgICBpZiAoZXZlbnQub3B0aW9uLnZhbHVlID09PSAnWScpIHtcbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMucmVzZXJ2ZUJyYW5jaCk7XG4gICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnN0YXJ0RGF0ZVJlc2VydmUpO1xuICAgICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5lbmREYXRlUmVzZXJ2ZSk7XG4gICAgfVxuICAgIGVsc2V7XG4gICAgICB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncmVzZXJ2ZUJyYW5jaCddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnJlc2VydmVCcmFuY2gpO1xuICAgICAgdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3N0YXJ0RGF0ZVJlc2VydmUnXS5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5zdGFydERhdGVSZXNlcnZlKTtcbiAgICAgIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydlbmREYXRlUmVzZXJ2ZSddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVuZERhdGVSZXNlcnZlKTtcbiAgICB9XG4gIH1cblxuICBwdXRNaWxWYWxpZGF0aW9uKGV2ZW50KXtcbiAgICAvKmlmIChldmVudC5vcHRpb24udmFsdWUgPT09ICdOJykge1xuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMubGFzdFBheUdyYWRlKTtcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmxhc3RkdXR5KTtcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnBsYWNlU2VwYXJhdGVkKTtcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLm5vTGVhdmVEYXlzKTtcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmNvbXBsZXRlZEZ1bGxUZXJtRmxhZyk7XG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5yZXNlcnZlT3JHdWFyZEZsYWcpO1xuICAgIH1cbiAgICBlbHNle1xuICAgICAgdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2xhc3RQYXlHcmFkZSddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2xhc3RkdXR5J10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncGxhY2VTZXBhcmF0ZWQnXS5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydub0xlYXZlRGF5cyddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2NvbXBsZXRlZEZ1bGxUZXJtRmxhZyddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3Jlc2VydmVPckd1YXJkRmxhZyddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmxhc3RQYXlHcmFkZSk7XG4gICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMubGFzdGR1dHkpO1xuICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnBsYWNlU2VwYXJhdGVkKTtcbiAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5ub0xlYXZlRGF5cyk7XG4gICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuY29tcGxldGVkRnVsbFRlcm1GbGFnKTtcbiAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5yZXNlcnZlT3JHdWFyZEZsYWcpO1xuICAgIH0qL1xuICB9XG5cbiAgb25PcHRpb25DaGFuZ2UoZXZlbnQpIHtcbiAgICBpZiAoZXZlbnQub3B0aW9uLnZhbHVlID09PSAnWScpIHtcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmVtcGxveWVyVGVsZXBob25lTnVtYmVyKTtcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnN0YXJ0RGF0ZSk7XG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5lbmREYXRlKTtcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmpvYlRpbGVPclBvc2l0aW9uKTtcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnJlYXNvblNlcGFyYXRpb24pO1xuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMucGF5UmF0ZSk7XG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5wYXlSYXRlRnJlcXVlbmN5KTtcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnBlbnNpb25GbGFnKTtcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmlzQ2xtdFBhaWRXaGlsZUxvdyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydlbXBsb3llclRlbGVwaG9uZU51bWJlciddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3N0YXJ0RGF0ZSddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2VuZERhdGUnXS5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydqb2JUaWxlT3JQb3NpdGlvbiddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3JlYXNvblNlcGFyYXRpb24nXS5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydwYXlSYXRlJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncGF5UmF0ZUZyZXF1ZW5jeSddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3BlbnNpb25GbGFnJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snaXNDbG10UGFpZFdoaWxlTG93J10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW1wbG95ZXJUZWxlcGhvbmVOdW1iZXIpO1xuICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnN0YXJ0RGF0ZSk7XG4gICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW5kRGF0ZSk7XG4gICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuam9iVGlsZU9yUG9zaXRpb24pO1xuICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnJlYXNvblNlcGFyYXRpb24pO1xuICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnBheVJhdGUpO1xuICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnBheVJhdGVGcmVxdWVuY3kpO1xuICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnBlbnNpb25GbGFnKTtcbiAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5pc0NsbXRQYWlkV2hpbGVMb3cpO1xuICAgIH1cbiAgfVxuXG4gIHNhdmUoKXtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndGhpcy5zYXZlLnZhbHVlJywgdGhpcy5hZGRFbXBsb3llckZvcm0pO1xuICAgIGlmKHRoaXMud29ya0ZsYWcudmFsdWU9PT0nTicpe1xuICAgICAgaWYgKHRoaXMuYWRkRW1wbG95ZXJGb3JtLnZhbGlkKSB7XG4gICAgICB0aGlzLmFkZEVtcGxveWVyRm9ybS52YWx1ZS5pc0VtcGxveWVyRWRpdGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuc3VjY2Vzcy5lbWl0KHRoaXMuYWRkRW1wbG95ZXJGb3JtLnZhbHVlKTtcbiAgICAgIHRoaXMuZGlzcGxheSA9IGZhbHNlO1xuICAgIH1cbiAgICB9ZWxzZXtcbiAgICAgIHRoaXMuYWRkKCk7XG4gICAgfVxuICB9XG5cbiAgYWRkKCkge1xuXG4gICAgY29uc3QgaW52YWxpZCA9IFtdO1xuICAgICAgY29uc3QgY29udHJvbHMgPSB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9scztcbiAgICAgIGZvciAoY29uc3QgbmFtZSBpbiBjb250cm9scykge1xuICAgICAgICAgIGlmIChjb250cm9sc1tuYW1lXS5pbnZhbGlkKSB7XG4gICAgICAgICAgICAgIGludmFsaWQucHVzaChuYW1lKTtcbiAgICAgICAgICB9XG4gICAgICB9XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXCJpbnZhbGlkW11cIiwgaW52YWxpZCkgO1xuICAgICAgICBcblx0ICBpZigoIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgfHwgdGhpcy5vc2FCcEVtcGxveWVyRmxhZy52YWx1ZT09PScxJykgJiYgdGhpcy5lbXBsb3llclR5cGUudmFsdWUgIT0gJ01JTCcpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd2YWxpZGF0ZSBhZGRyZXNzIGNvbXBvbmVudCcpO1xuICAgICBcdHRoaXMudmFsaWRhdGVBZGRyZXNzKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmFkZEVtcGxveWVyRm9ybS52YWxpZCkge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3RoaXMuYWRkLnZhbHVlJywgdGhpcy5hZGRFbXBsb3llckZvcm0pOyBcbiAgICAgIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydmaWNDb2RlJ10uZW5hYmxlKCk7XG4gICAgICB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZmljRGVzdGluYXRpb25OYW1lJ10uZW5hYmxlKCk7XG4gICAgICB0aGlzLmFkZHJlc3MuZW5hYmxlKCk7XG4gICAgICB0aGlzLmFkZEVtcGxveWVyRm9ybS52YWx1ZS5pc0VtcGxveWVyRWRpdGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuc3VjY2Vzcy5lbWl0KHRoaXMuYWRkRW1wbG95ZXJGb3JtLnZhbHVlKTtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwiYWRkIGZvcm0gZGV0YWlscyBhZGQoKS0gXCIsIHRoaXMuYWRkRW1wbG95ZXJGb3JtKTtcbiAgICAgIHRoaXMuZGlzcGxheSA9IGZhbHNlO1xuICAgIH0gZWxzZXtcbiAgICAgIHRoaXMudXRpbC5mb2N1c09uU3VibWl0KHRoaXMuZWwpXG4gICAgfVxuXG4gIH1cblxuICB2YWxpZGF0ZUFkZHJlc3MoKSB7XG4gICAgbGV0IGFkZHJlc3NDb21wVmFsdWU6IEFkZHJlc3NDb21wb25lbnRNb2RlbDtcbiAgICBhZGRyZXNzQ29tcFZhbHVlID0gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2FkZHJlc3MnXS52YWx1ZTtcbiAgICBpZiAoYWRkcmVzc0NvbXBWYWx1ZSkge1xuICAgICAgaWYgKCFhZGRyZXNzQ29tcFZhbHVlLmNpdHkgfHwgIWFkZHJlc3NDb21wVmFsdWUuc3RhdGUgfHxcbiAgICAgICAgIWFkZHJlc3NDb21wVmFsdWVbJ3ppcCddIHx8ICFhZGRyZXNzQ29tcFZhbHVlLmNvdW50cnkgfHxcbiAgICAgICAgIWFkZHJlc3NDb21wVmFsdWVbJ3N0cmVldEFkZHJlc3MnXVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydhZGRyZXNzJ10uc2V0RXJyb3JzKHsgYWRkcmVzc1ZhbGlkYXRpb25GbGFnOiB0cnVlIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snYWRkcmVzcyddLnNldEVycm9ycyh7IGFkZHJlc3NWYWxpZGF0aW9uRmxhZzogdHJ1ZSB9KTtcbiAgICB9XG4gICAgaWYodGhpcy5hZGRyZXNzMSl7XG4gICAgICB0aGlzLmFkZHJlc3MxLnN1Ym1pdCgpO1xuICAgIH1cbiAgICBpZih0aGlzLmFkZHJlc3MyKXtcbiAgICAgIHRoaXMuYWRkcmVzczIuc3VibWl0KCk7XG4gICAgfVxuICAgIGlmKHRoaXMuYWRkcmVzczMpe1xuICAgICAgdGhpcy5hZGRyZXNzMy5zdWJtaXQoKTtcbiAgICB9XG4gIH1cblxuICBmaWx0ZXJDb3VudHJ5KGV2ZW50KSB7XG4gICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdldmVudCcsIGV2ZW50KVxuICAgIGxldCBmaWx0ZXJlZDogYW55W10gPSBbXTtcbiAgICBsZXQgcXVlcnkgPSBldmVudC5xdWVyeTtcbiAgICB0aGlzLmNvdW50cnlPcHRpb25zID0gQ29tYm9PcHRpb24uQ09VTlRSWTtcbiAgICAvL3RoaXMuc3RhdGUuc2V0VmFsdWUobnVsbCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmNvdW50cnlPcHRpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBsZXQgY291bnRyeSA9IHRoaXMuY291bnRyeU9wdGlvbnNbaV07XG4gICAgICBpZiAoY291bnRyeS50ZXh0LnRvTG93ZXJDYXNlKCkuaW5kZXhPZihxdWVyeS50b0xvd2VyQ2FzZSgpKSA9PSAwKSB7XG4gICAgICAgIGZpbHRlcmVkLnB1c2goY291bnRyeSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY291bnRyeU9wdGlvbnMgPSBmaWx0ZXJlZDtcbiAgfVxuXG4gIGZpbHRlckZlZENvdW50cnkoZXZlbnQpIHtcbiAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ2V2ZW50JywgZXZlbnQpXG4gICAgbGV0IGZpbHRlcmVkOiBhbnlbXSA9IFtdO1xuICAgIGxldCBxdWVyeSA9IGV2ZW50LnF1ZXJ5O1xuICAgIHRoaXMuY291bnRyeUZlZE9wdGlvbnMgPSBDb21ib09wdGlvbi5DT1VOVFJZO1xuICAgIC8vdGhpcy5zdGF0ZS5zZXRWYWx1ZShudWxsKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuY291bnRyeUZlZE9wdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGxldCBjb3VudHJ5ID0gdGhpcy5jb3VudHJ5RmVkT3B0aW9uc1tpXTtcbiAgICAgIGlmIChjb3VudHJ5LnRleHQudG9Mb3dlckNhc2UoKS5pbmRleE9mKHF1ZXJ5LnRvTG93ZXJDYXNlKCkpID09IDApIHtcbiAgICAgICAgZmlsdGVyZWQucHVzaChjb3VudHJ5KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5jb3VudHJ5RmVkT3B0aW9ucyA9IGZpbHRlcmVkO1xuICB9XG5cbiAgc2V0RmVkV29ya1N0YXRlVmFsdWVzKGV2ZW50KXtcbiAgICBpZihldmVudC52YWx1ZSA9PT0gJ1VTJyl7XG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5mZWRXb3JrU3RhdGUpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5mZWRXb3JrU3RhdGUpO1xuICAgICAgdGhpcy5mZWRXb3JrU3RhdGUuc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgZmlsdGVyV29ya0NvdW50cnkoZXZlbnQpIHtcbiAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ2V2ZW50JywgZXZlbnQpXG4gICAgbGV0IGZpbHRlcmVkOiBhbnlbXSA9IFtdO1xuICAgIGxldCBxdWVyeSA9IGV2ZW50LnF1ZXJ5O1xuICAgIHRoaXMud29ya0NvdW50cnlPcHRpb25zID0gQ29tYm9PcHRpb24uV09SS19DT1VOVFJZO1xuICAgIC8vdGhpcy5zdGF0ZS5zZXRWYWx1ZShudWxsKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMud29ya0NvdW50cnlPcHRpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBsZXQgY291bnRyeSA9IHRoaXMud29ya0NvdW50cnlPcHRpb25zW2ldO1xuICAgICAgaWYgKGNvdW50cnkudGV4dC50b0xvd2VyQ2FzZSgpLmluZGV4T2YocXVlcnkudG9Mb3dlckNhc2UoKSkgPT0gMCkge1xuICAgICAgICBmaWx0ZXJlZC5wdXNoKGNvdW50cnkpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLndvcmtDb3VudHJ5T3B0aW9ucyA9IGZpbHRlcmVkO1xuICB9XG5cblxuICBmaWx0ZXJNaWxpdGFyeVNlcnZpY2VPcHRpb25zKGV2ZW50KSB7XG5cbiAgICBsZXQgZmlsdGVyZWQ6IGFueVtdID0gW107XG4gICAgbGV0IHF1ZXJ5ID0gZXZlbnQucXVlcnk7XG4gICAgdGhpcy5taWxpdGFyeVNlcnZpY2VPcHRpb25zID0gQ29tYm9PcHRpb24uTUlMSVRBUllfU0VSVklDRTtcbiAgICAvL3RoaXMuc3RhdGUuc2V0VmFsdWUobnVsbCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLm1pbGl0YXJ5U2VydmljZU9wdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGxldCBvcHRpb25zID0gdGhpcy5taWxpdGFyeVNlcnZpY2VPcHRpb25zW2ldO1xuICAgICAgaWYgKG9wdGlvbnMudGV4dC50b0xvd2VyQ2FzZSgpLmluZGV4T2YocXVlcnkudG9Mb3dlckNhc2UoKSkgPT0gMCkge1xuICAgICAgICBmaWx0ZXJlZC5wdXNoKG9wdGlvbnMpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLm1pbGl0YXJ5U2VydmljZU9wdGlvbnMgPSBmaWx0ZXJlZDtcblxuICB9XG5cbiAgZmlsdGVyTWlsaXRhcnlTZXJ2aWNlT3B0aW9uc1dpdGhTcGFjZShldmVudCkge1xuICAgIGxldCBmaWx0ZXJlZDogYW55W10gPSBbXTtcbiAgICBsZXQgcXVlcnkgPSBldmVudC5xdWVyeTtcbiAgICB0aGlzLm1pbGl0YXJ5U2VydmljZU9wdGlvbnNXaXRoU3BhY2UgPSBDb21ib09wdGlvbi5NSUxJVEFSWV9TRVJWSUNFX1VTU0Y7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLm1pbGl0YXJ5U2VydmljZU9wdGlvbnNXaXRoU3BhY2UubGVuZ3RoOyBpKyspIHtcbiAgICAgIGxldCBvcHRpb25zID0gdGhpcy5taWxpdGFyeVNlcnZpY2VPcHRpb25zV2l0aFNwYWNlW2ldO1xuICAgICAgaWYgKG9wdGlvbnMudGV4dC50b0xvd2VyQ2FzZSgpLmluZGV4T2YocXVlcnkudG9Mb3dlckNhc2UoKSkgPT0gMCkge1xuICAgICAgICBmaWx0ZXJlZC5wdXNoKG9wdGlvbnMpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLm1pbGl0YXJ5U2VydmljZU9wdGlvbnNXaXRoU3BhY2UgPSBmaWx0ZXJlZDtcbiAgfVxuXG4gIGZpbHRlclBheVJhdGUoZXZlbnQpIHtcbiAgICBsZXQgZmlsdGVyZWQ6IGFueVtdID0gW107XG4gICAgbGV0IHF1ZXJ5ID0gZXZlbnQucXVlcnk7XG4gICAgdGhpcy5wYXlSYXRlT3B0aW9ucyA9IENvbWJvT3B0aW9uLlBBWV9QRVJJT0RcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucGF5UmF0ZU9wdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGxldCBwYXkgPSB0aGlzLnBheVJhdGVPcHRpb25zW2ldO1xuICAgICAgaWYgKHBheS50ZXh0LnRvTG93ZXJDYXNlKCkuaW5kZXhPZihxdWVyeS50b0xvd2VyQ2FzZSgpKSA9PSAwKSB7XG4gICAgICAgIGZpbHRlcmVkLnB1c2gocGF5KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5wYXlSYXRlT3B0aW9ucyA9IGZpbHRlcmVkO1xuICB9XG5cbiAgZmlsdGVyUmVhc29uU2VwYXJhdGlvbihldmVudCkge1xuICAgIGxldCBmaWx0ZXJlZDogYW55W10gPSBbXTtcbiAgICBsZXQgcXVlcnkgPSBldmVudC5xdWVyeTsgICAgXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmVtcGxveW1lbnRTdGF0dXNPcHRpb25zQWxsLmxlbmd0aDsgaSsrKSB7XG4gICAgICBsZXQgc2VwUmVhc29uID0gdGhpcy5lbXBsb3ltZW50U3RhdHVzT3B0aW9uc0FsbFtpXTtcbiAgICAgIGlmIChzZXBSZWFzb24udGV4dC50b0xvd2VyQ2FzZSgpLmluZGV4T2YocXVlcnkudG9Mb3dlckNhc2UoKSkgPT0gMCkge1xuICAgICAgICBmaWx0ZXJlZC5wdXNoKHNlcFJlYXNvbik7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuZW1wbG95bWVudFN0YXR1c09wdGlvbnMgPSBmaWx0ZXJlZDsgIFxuICBcbiAgfVxuXG4gIGZpbHRlclVzU3RhdGUoZXZlbnQpIHtcbiAgICBsZXQgZmlsdGVyZWQ6IGFueVtdID0gW107XG4gICAgbGV0IHF1ZXJ5ID0gZXZlbnQucXVlcnk7XG4gICAgdGhpcy5zdGF0ZXNPcHRpb25zID0gQ29tYm9PcHRpb24uVVNfU1RBVEVTO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5zdGF0ZXNPcHRpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBsZXQgc3RhdGUgPSB0aGlzLnN0YXRlc09wdGlvbnNbaV07XG4gICAgICBpZiAoc3RhdGUudGV4dC50b0xvd2VyQ2FzZSgpLmluZGV4T2YocXVlcnkudG9Mb3dlckNhc2UoKSkgPT0gMCkge1xuICAgICAgICBmaWx0ZXJlZC5wdXNoKHN0YXRlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zdGF0ZXNPcHRpb25zID0gZmlsdGVyZWQ7XG4gIH1cblxuICAvKmNoZWNrRm9yU3RhdGUoc2VsZWN0ZWRTdGF0ZVZhbHVlKXtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1Zygnc2VsZWN0ZWRTdGF0ZVZhbHVlJyxzZWxlY3RlZFN0YXRlVmFsdWUudmFsdWUpO1xuICAgIGxldCBicFN0YXJ0RGF0ZTogRGF0ZSA9IG5ldyBEYXRlKHRoaXMuYmFzZVBlcmlvZFN0YXJ0RGF0ZSk7XG4gICAgbGV0IGJwRW5kRGF0ZTogRGF0ZSA9IG5ldyBEYXRlKHRoaXMuYmFzZVBlcmlvZEVuZERhdGUpO1xuICAgIGxldCBzdGFydGVEYXRlVmFsOiBEYXRlID0gbmV3IERhdGUodGhpcy5zdGFydERhdGUudmFsdWUpO1xuICAgIGxldCBlbmREYXRlVmFsOiBEYXRlID0gbmV3IERhdGUodGhpcy5lbmREYXRlLnZhbHVlKVxuICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnYnBTdGFydERhdGUgJywgYnBTdGFydERhdGUsICdzdGFydGVEYXRlVmFsICcsIHN0YXJ0ZURhdGVWYWwpO1xuICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnZW5kRGF0ZVZhbCAnLCBlbmREYXRlVmFsLCAnYnBFbmREYXRlICcsIGJwRW5kRGF0ZSk7XG4gICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdzdGFydGVEYXRlVmFsID49IGJwRW5kRGF0ZSAnLCBzdGFydGVEYXRlVmFsID49IGJwRW5kRGF0ZSk7XG4gICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdlbmREYXRlVmFsPD0gYnBFbmREYXRlICcsIGVuZERhdGVWYWw8PSBicEVuZERhdGUpO1xuICAgIGlmICh0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ1JFRycgJiYgc2VsZWN0ZWRTdGF0ZVZhbHVlLnZhbHVlPT09dGhpcy5jdXJyZW50U3RhdGUpIHtcbiAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcIkluc2lkZSBJRlwiKVxuICAgICAgaWYgKHN0YXJ0ZURhdGVWYWwuZ2V0VGltZSgpIDwgYnBFbmREYXRlLmdldFRpbWUoKSAmJiBlbmREYXRlVmFsLmdldFRpbWUoKT4gYnBTdGFydERhdGUuZ2V0VGltZSgpKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMuc2V0VmFsdWUodHJ1ZSk7XG4gICAgICAgIHRoaXMuc2V0VmFsaWRhdGlvbk9uVmVyaWZpY2F0aW9uT2ZXYWdlc0ZpZWxkcygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy5zZXRWYWx1ZShmYWxzZSk7XG4gICAgICAgIHRoaXMucmVtb3ZlVmFsaWRhdGlvbk9uVmVyaWZpY2F0aW9uT2ZXYWdlc0ZpZWxkcygpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMgPSAnLCB0aGlzLmRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzKTsgICBcbiAgfSovXG5cblxuICAvKmZpbHRlckpvYlRpbGVPclBvc2l0aW9uKGV2ZW50KSB7XG4gICAgbGV0IGZpbHRlcmVkOiBBdXRvY29kZXJNb2RlbFtdID0gW107XG4gICAgbGV0IHF1ZXJ5ID0gZXZlbnQucXVlcnk7XG4gICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5nZXQoYC9jbGFpbXMtc2VydmljZS9jbGFpbS9qb2J0aXRsZS9gICsgYCR7cXVlcnl9YCkuc3Vic2NyaWJlKFxuICAgICAgcmVzID0+IHtcbiAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdyZXMnLCByZXMpO1xuICAgICAgICB0aGlzLmpvYlRpbGVPclBvc2l0aW9uT3B0aW9ucyA9IHJlcztcbiAgICAgIH0pO1xuICB9XG5cbiAgZmlsdGVyRmVkSm9iVGlsZU9yUG9zaXRpb24oZXZlbnQpIHtcbiAgICBsZXQgZmlsdGVyZWQ6IEF1dG9jb2Rlck1vZGVsW10gPSBbXTtcbiAgICBsZXQgcXVlcnkgPSBldmVudC5xdWVyeTtcbiAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmdldChgL2NsYWltcy1zZXJ2aWNlL2NsYWltL2pvYnRpdGxlL2AgKyBgJHtxdWVyeX1gKS5zdWJzY3JpYmUoXG4gICAgICByZXMgPT4ge1xuICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3JlcycsIHJlcyk7XG4gICAgICAgIHRoaXMuZmVkSm9iVGlsZU9wdGlvbnMgPSByZXM7XG4gICAgICB9KTtcbiAgfSovXG5cbiAgLypmaWx0ZXJEaXNjaGFyZ2VSZWFzb25zKGV2ZW50KSB7XG4gICAgbGV0IGZpbHRlcmVkOiBhbnlbXSA9IFtdO1xuICAgIGxldCBxdWVyeSA9IGV2ZW50LnF1ZXJ5O1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5kaXNjaGFyZ2VSZWFzb25PcHRpb25zQWxsLmxlbmd0aDsgaSsrKSB7XG4gICAgICBsZXQgc2VwUmVhc29uID0gdGhpcy5kaXNjaGFyZ2VSZWFzb25PcHRpb25zQWxsW2ldO1xuICAgICAgaWYgKHNlcFJlYXNvbi50ZXh0LnRvTG93ZXJDYXNlKCkuaW5kZXhPZihxdWVyeS50b0xvd2VyQ2FzZSgpKSA9PSAwKSB7XG4gICAgICAgIGZpbHRlcmVkLnB1c2goc2VwUmVhc29uKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5kaXNjaGFyZ2VSZWFzb25PcHRpb25zID0gZmlsdGVyZWQ7XG4gIH1cblxuICBmaWx0ZXJWb2x1bnRhcnlSZWFzb24oZXZlbnQpIHtcbiAgICBsZXQgZmlsdGVyZWQ6IGFueVtdID0gW107XG4gICAgbGV0IHF1ZXJ5ID0gZXZlbnQucXVlcnk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnZvbFF1aXRSZWFzb25PcHRpb25zQWxsLmxlbmd0aDsgaSsrKSB7XG4gICAgICBsZXQgc2VwUmVhc29uID0gdGhpcy52b2xRdWl0UmVhc29uT3B0aW9uc0FsbFtpXTtcbiAgICAgIGlmIChzZXBSZWFzb24udGV4dC50b0xvd2VyQ2FzZSgpLmluZGV4T2YocXVlcnkudG9Mb3dlckNhc2UoKSkgPT0gMCkge1xuICAgICAgICBmaWx0ZXJlZC5wdXNoKHNlcFJlYXNvbik7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMudm9sUXVpdFJlYXNvbk9wdGlvbnMgPSBmaWx0ZXJlZDtcbiAgfSovXG5cbiAgdmFsaWRhdGUoZXZlbnQpIHtcbiAgICBpZihldmVudC50YXJnZXQ/LnZhbHVlKXtcbiAgICAgIHRoaXMubWluRGF0ZSA9IG5ldyBEYXRlKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgfSBlbHNlIGlmKCBldmVudCBpbnN0YW5jZW9mIERhdGUpe1xuICAgICAgdGhpcy5taW5EYXRlID0gZXZlbnQ7XG4gICAgfVxuICAgIHRoaXMuZW5kRGF0ZS5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndGhpcy5iYXNlUGVyaW9kU3RhcnREYXRlJywgdGhpcy5iYXNlUGVyaW9kU3RhcnREYXRlKSAgXG4gIH1cblxuICB2YWxpZGF0ZVdhZ2VzRGlzcGxheShldmVudCl7XG4gICAgbGV0IGJwU3RhcnREYXRlOiBEYXRlID0gbmV3IERhdGUodGhpcy5iYXNlUGVyaW9kU3RhcnREYXRlKTtcbiAgICBsZXQgYnBFbmREYXRlOiBEYXRlID0gbmV3IERhdGUodGhpcy5iYXNlUGVyaW9kRW5kRGF0ZSk7XG4gICAgbGV0IHN0YXJ0ZURhdGVWYWw6IERhdGUgPSBuZXcgRGF0ZSh0aGlzLnN0YXJ0RGF0ZS52YWx1ZSk7XG4gICAgbGV0IGVuZERhdGVWYWw6IERhdGUgPSBldmVudC50YXJnZXQ/LnZhbHVlID8gbmV3IERhdGUoZXZlbnQudGFyZ2V0LnZhbHVlKSA6IGV2ZW50O1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdicFN0YXJ0RGF0ZSAnLCBicFN0YXJ0RGF0ZSwgJ3N0YXJ0ZURhdGVWYWwgJywgc3RhcnRlRGF0ZVZhbCk7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ2VuZERhdGVWYWwgJywgZW5kRGF0ZVZhbCwgJ2JwRW5kRGF0ZSAnLCBicEVuZERhdGUpO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdzdGFydGVEYXRlVmFsIGJlZm9yZSBicEVuZERhdGUgJywgc3RhcnRlRGF0ZVZhbCA8IGJwRW5kRGF0ZSk7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ2VuZERhdGVWYWwgYWZ0ZXIgYnBTdGFydERhdGUgJywgZW5kRGF0ZVZhbCA+IGJwU3RhcnREYXRlKTtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndGhpcy53b3JrU3RhdGUgJywgdGhpcy53b3JrU3RhdGUpO1xuICAgIGlmICh0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ1JFRycgJiYgdGhpcy53b3JrU3RhdGUudmFsdWUgXG4gICAgICAgICYmIHRoaXMud29ya1N0YXRlLnZhbHVlLnZhbHVlID09PSB0aGlzLmN1cnJlbnRTdGF0ZSAmJiB0aGlzLmlzTmV3Q2xhaW0pIHtcbiAgICAgICAgaWYgKChzdGFydGVEYXRlVmFsLmdldFRpbWUoKSA8IGJwRW5kRGF0ZS5nZXRUaW1lKCkgJiYgZW5kRGF0ZVZhbC5nZXRUaW1lKCk+IGJwU3RhcnREYXRlLmdldFRpbWUoKSkgfHwgdGhpcy53b3JrU3RhdGUudmFsdWUudmFsdWUgPT0gJ01FJykge1xuICAgICAgICAgIHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMuc2V0VmFsdWUodHJ1ZSk7XG4gICAgICAgICAgaWYoIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpe1xuICAgICAgICAgICAgdGhpcy5zZXRWYWxpZGF0aW9uT25WZXJpZmljYXRpb25PZldhZ2VzRmllbGRzKCk7XG4gICAgICAgICAgfWVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVWYWxpZGF0aW9uT25WZXJpZmljYXRpb25PZldhZ2VzRmllbGRzKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMuc2V0VmFsdWUoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ1JFRycgJiYgdGhpcy53b3JrU3RhdGUudmFsdWUgXG4gICAgICAgICYmIHRoaXMud29ya1N0YXRlLnZhbHVlLnZhbHVlICE9IHRoaXMuY3VycmVudFN0YXRlICYmIHRoaXMuaXNOZXdDbGFpbSl7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXCJPU0EgY29uZGl0aW9uIG1ldFwiKTtcbiAgICAgICAgICB0aGlzLm9zYUJwRW1wbG95ZXJGbGFnLnNldFZhbHVlKFwiMVwiKTtcbiAgICAgICAgaWYodGhpcy5jdXJyZW50U3RhdGUgIT0gJ01TJykge1xuICAgICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmdyb3NzV2FnZXMpO1xuICAgICAgICB9XG4gICAgfSBlbHNlIGlmKHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnUkVHJyAmJiB0aGlzLndvcmtTdGF0ZS52YWx1ZSBcbiAgICAgICAgICYmIHRoaXMud29ya1N0YXRlLnZhbHVlLnZhbHVlID09PSB0aGlzLmN1cnJlbnRTdGF0ZSAmJiAhdGhpcy5pc05ld0NsYWltICYmIHRoaXMuY3VycmVudFN0YXRlID09PSAnTUUnXG4gICAgICAgICAmJiB0aGlzLnJlZ0VtcGxveWVyRm91bmQudmFsdWUgPT09IG51bGwgJiYgc3RhcnRlRGF0ZVZhbCAhPW51bGwgJiYgZW5kRGF0ZVZhbCAhPSBudWxsKVxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGxldCB3ZWVrc0JldHdlZW5TdGFydEVuZERhdGU6IG51bWJlciA9IHRoaXMubnVtYmVyT2ZXZWVrc0JldHdlZW5EYXRlcyhzdGFydGVEYXRlVmFsLCBlbmREYXRlVmFsKTtcbiAgICAgICAgICAgIGlmKHdlZWtzQmV0d2VlblN0YXJ0RW5kRGF0ZSArIDEgPiB0aGlzLm1pbldlZWtGb3JDaGFyZ2VhYmlsaXR5KVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMuc2V0VmFsdWUodHJ1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRWYWxpZGF0aW9uT25WZXJpZmljYXRpb25PZldhZ2VzRmllbGRzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy5zZXRWYWx1ZShmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgLypmaWx0ZXJHcm91cGVkUmVhc29uKGV2ZW50KSB7XG4gICAgbGV0IHF1ZXJ5ID0gZXZlbnQucXVlcnk7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ3F1ZXJ5JyxxdWVyeSk7XG4gICAgbGV0IGZpbHRlcmVkR3JvdXBzID0gW107XG4gICAgdGhpcy5ncm91cGVkUmVhc29ucz0gQ29tYm9PcHRpb24uR1JPVVBfUkVBU09OUztcblxuICAgIGZvciAobGV0IG9wdGdyb3VwIG9mIHRoaXMuZ3JvdXBlZFJlYXNvbnMpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdvcHRncm91cC5pdGVtcycsb3B0Z3JvdXAuaXRlbXMpO1xuICAgICAgbGV0IGZpbHRlcmVkU3ViT3B0aW9ucyA9IHRoaXMuZmlsdGVyU2VydmljZS5maWx0ZXIoXG4gICAgICAgIG9wdGdyb3VwLml0ZW1zLFxuICAgICAgICBbXCJsYWJlbFwiXSxcbiAgICAgICAgcXVlcnksXG4gICAgICAgIFwiY29udGFpbnNcIlxuICAgICAgKTtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdmaWx0ZXJlZFN1Yk9wdGlvbnMnLGZpbHRlcmVkU3ViT3B0aW9ucyk7XG4gICAgICBpZiAoZmlsdGVyZWRTdWJPcHRpb25zICYmIGZpbHRlcmVkU3ViT3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgZmlsdGVyZWRHcm91cHMucHVzaCh7XG4gICAgICAgICAgbGFiZWw6IG9wdGdyb3VwLmxhYmVsLFxuICAgICAgICAgIHZhbHVlOiBvcHRncm91cC52YWx1ZSxcbiAgICAgICAgICBpdGVtczogZmlsdGVyZWRTdWJPcHRpb25zXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuZ3JvdXBlZFJlYXNvbnMgPSBmaWx0ZXJlZEdyb3VwcztcbiAgfSovXG5cbiAgb25DbGVhckFjdGlvbihldmVudCkge1xuICAgIHRoaXMub25DaGFuZ2UobnVsbCk7XG4gIH1cblxuICBkYXRlSW5wdXQoZXZlbnQpe1xuICAgIGxldCBjdXJyZW50VmFsdWUgOiBzdHJpbmcgPSBldmVudC5zcmNFbGVtZW50LnZhbHVlO1xuICAgIGlmKGN1cnJlbnRWYWx1ZSl7XG4gICAgICAgIGlmKGN1cnJlbnRWYWx1ZS5sZW5ndGggPT0gMiAmJiBjdXJyZW50VmFsdWUuY2hhckF0KDIpICE9ICcvJyl7XG4gICAgICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSBjdXJyZW50VmFsdWUgKyBcIi9cIjtcbiAgICAgICAgfVxuICAgICAgICBpZihjdXJyZW50VmFsdWUubGVuZ3RoID09IDUgJiYgY3VycmVudFZhbHVlLmNoYXJBdCg1KSAhPSAnLycpe1xuICAgICAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gY3VycmVudFZhbHVlICsgXCIvXCI7XG4gICAgICAgIH1cbiAgICB9XG4gIH1cblxuICBudW1iZXJPZldlZWtzQmV0d2VlbkRhdGVzKHN0YXJ0RGF0ZTogRGF0ZSwgZW5kRGF0ZTogRGF0ZSk6IG51bWJlclxuICB7XG4gICAgY29uc3QgdGltZURpZmYgPSBlbmREYXRlLmdldFRpbWUoKSAtIHN0YXJ0RGF0ZS5nZXRUaW1lKCk7XG4gICAgXG4gICAgY29uc3QgZGF5c0RpZmYgPSB0aW1lRGlmZiAvICgxMDAwICogMzYwMCAqIDI0KTtcblxuICAgIGNvbnN0IHdlZWtzID0gZGF5c0RpZmYgLyA3O1xuXG4gICAgcmV0dXJuIE1hdGguZmxvb3Iod2Vla3MpOyAgXG4gIH1cblxuXG59XG4iLCI8cC1kaWFsb2cgdmlzaWJsZT1cInRydWVcIiBtb2RhbD1cInRydWVcIiBwb3NpdGlvbj1cInRvcFwiIGFwcGVuZFRvPVwiYm9keVwiIFtzaG93SGVhZGVyXT1cImZhbHNlXCIgW2RyYWdnYWJsZV09XCJmYWxzZVwiXHJcbiAgW3Jlc2l6YWJsZV09XCJmYWxzZVwiIFtzdHlsZV09XCJ7d2lkdGg6ICc4MHZ3J31cIlxyXG4gIFticmVha3BvaW50c109XCJ7JzEyMDBweCc6ICc2NjBweCcsICc5OTJweCc6ICc2NjBweCcsICc3NjhweCc6ICcxMDB2dycsICc1NzZweCc6ICcxMDB2dyd9XCI+XHJcbiAgPGg0IHN0eWxlPVwiY29sb3I6IHZhcigtLWlvbi1jb2xvci1ncmV5KTsgcGFkZGluZy1sZWZ0OiAyMHB4O1wiPiB7e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5oZWFkaW5nXCJ8dHJhbnNsYXRlfX1cclxuICA8L2g0PlxyXG5cclxuXHJcbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJhZGRFbXBsb3llckZvcm1cIiAjYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlPVwibmdGb3JtXCI+XHJcbiAgICA8aW9uLWdyaWQ+XHJcbiAgICAgIDxpb24tcm93PlxyXG4gICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXBhZGRpbmdcIiBzaXplPVwiMTJcIiBzaXplU209XCIxMlwiIHNpemVYcz1cIjEyXCIgc2l6ZU1kPVwiMTJcIiBzaXplTGc9XCIxMFwiIHNpemVYbD1cIjZcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIHAtZm9ybWdyaWRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJpc0Jhc2VQZXJpb2RFbXBsb3llclwiPlxyXG4gICAgICAgICAgICAgIHt7Y3VzdG9tZXJOYW1lfX1cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYWxpYXNOYW1lICE9IG51bGxcIj5cclxuICAgICAgICAgICAgICAgIHt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LmRiYVwifHRyYW5zbGF0ZX19IHt7YWxpYXNOYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzQmFzZVBlcmlvZEVtcGxveWVyICYmIG9zYUJwRW1wbG95ZXJGbGFnLnZhbHVlID09PScwJ1wiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJmb250LXNpemU6IDEycHg7XCI+IHt7bWFpbGluZ0FkZHJlc3NEaXNwbGF5fX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNDU1IgJiYgb3NhQnBFbXBsb3llckZsYWcudmFsdWUgPT09JzAnXCI+XHJcbiAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICB7e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5lbXBsb3llci53YWdlc1wifHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJpc0NTUlwiPlxyXG4gICAgICAgICAgICAgICAgPHAtdGFibGUgW3ZhbHVlXT1cImVtcGxveWVyUHJvdmlkZWRXYWdlc1wiIHN0eWxlQ2xhc3M9XCJwLWRhdGF0YWJsZS1zdHJpcGVkIGFwcC1kYXRhdGFibGUgaW9uLXBhZGRpbmctdG9wXCJcclxuICAgICAgICAgICAgICAgICAgW2NvbHVtbnNdPVwiZW1wbG95ZXJQcm92aWRlZFdhZ2VzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIiBsZXQtY29sdW1ucz5cclxuICAgICAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGggKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxiPnt7IGNvbC5xdHJZZWFyRGlzcGxheVN0cmluZyB9fTwvYj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGQgKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7Y29sLndhZ2VBbW91bnQgfCBjdXJyZW5jeX19XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8L3AtdGFibGU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJpc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB3b3JrRmxhZy52YWx1ZSA9PSAnTidcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwid29ya0ZsYWdcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC53b3JrZmxhZy5ub1wifHRyYW5zbGF0ZX19PGJyIC8+IDxiciAvPlxyXG4gICAgICAgICAgICAgICAge3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQud29ya2ZsYWcubm8ubGluZTJcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCIhaXNCYXNlUGVyaW9kRW1wbG95ZXJcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZW1wbG95ZXJUeXBlXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5lbXBsb3llci50eXBlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogaW5oZXJpdDtcIj5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBpZD1cImVtcGxveWVyVHlwZVwiIHVuc2VsZWN0YWJsZT1cInRydWVcIiBbb3B0aW9uc109XCJlbXBsb3llclR5cGVPcHRpb25zXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIFtmb3JtQ29udHJvbF09XCJlbXBsb3llclR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAob25PcHRpb25DbGljayk9XCJvblRvZ2dsZUNoYW5nZUVtcGxveWVyVHlwZSgkZXZlbnQpXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdlbXBsb3llclR5cGUnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCIhaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRydcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZW1wbG95ZXJOYW1lXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5lbXBsb3llci5uYW1lXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxhcHAtc2VhcmNoLWVtcGxveWVyIFtmb3JtQ29udHJvbF09XCJlbXBsb3llck5hbWVcIiBlbXBUeXBlPVwiUkVHXCIgKG9uRm91bmQpPVwic2V0RW1wbG95ZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAob25FbXB0eSk9XCJyZXNldEVtcGxveWVyKCRldmVudClcIj48L2FwcC1zZWFyY2gtZW1wbG95ZXI+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2VtcGxveWVyTmFtZScgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgc3R5bGU9XCJ3aWR0aDogaW5oZXJpdCAhaW1wb3J0YW50O1wiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZmVkRW1wbG95ZXJOYW1lXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5lbXBsb3llci5mZWQubmFtZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8YXBwLXNlYXJjaC1lbXBsb3llciBbZm9ybUNvbnRyb2xdPVwiZmVkRW1wbG95ZXJOYW1lXCIgZW1wVHlwZT1cIkZFRFwiIChvbkZvdW5kKT1cInNldEZlZEVtcGxveWVyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgKG9uRW1wdHkpPVwicmVzZXRGZWRFbXBsb3llcigkZXZlbnQpXCI+PC9hcHAtc2VhcmNoLWVtcGxveWVyPlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdmZWRFbXBsb3llck5hbWUnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J01JTCcgJiYgdGhpcy5jdXJyZW50U3RhdGUgIT0gJ01FJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJzZXJ2aWNlQnJhbmNoXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5taWwuc2VydmljZS5icmFuY2hcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGFwcC1kcm9wZG93biBbb3B0aW9uc109XCJtaWxpdGFyeVNlcnZpY2VPcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cInNlcnZpY2VCcmFuY2hcIiBvcHRpb25MYWJlbD1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBpbnB1dElkPVwic2VydmljZUJyYW5jaFwiPjwvYXBwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdzZXJ2aWNlQnJhbmNoJyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8IS0tIE1haW5lIGluY2x1ZGVzIFNwYWNlIEZvcmNlIC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdNSUwnICYmIHRoaXMuY3VycmVudFN0YXRlID09PSAnTUUnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInNlcnZpY2VCcmFuY2hcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5zZXJ2aWNlLmJyYW5jaFwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8YXBwLWRyb3Bkb3duIFtvcHRpb25zXT1cIm1pbGl0YXJ5U2VydmljZU9wdGlvbnNXaXRoU3BhY2VcIiBbZm9ybUNvbnRyb2xdPVwic2VydmljZUJyYW5jaFwiIG9wdGlvbkxhYmVsPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIGlucHV0SWQ9XCJzZXJ2aWNlQnJhbmNoXCI+PC9hcHAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3NlcnZpY2VCcmFuY2gnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J01JTCdcIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwic3RhcnREYXRlTWlsXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5taWwuc3RhcnRkYXRlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBpY29uQXJpYUxhYmVsPVwic3RhcnREYXRlTWlsXCIgW3Nob3dJY29uXT1cInRydWVcIiBpbnB1dElkPVwic3RhcnREYXRlTWlsXCJcclxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwic3RhcnREYXRlTWlsXCIgW21heERhdGVdPVwiZGF0ZVRpbWVcIiBbeWVhck5hdmlnYXRvcl09XCJ0cnVlXCIgeWVhclJhbmdlPVwiMTkwMToyMDUwXCJcclxuICAgICAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiBkYXRlRm9ybWF0PVwibW0vZGQveXlcIiBwbGFjZWhvbGRlcj1cIm1tL2RkL3l5eXlcIiAob25CbHVyKT1cInZhbGlkYXRlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIChvblNlbGVjdCk9XCJ2YWxpZGF0ZSgkZXZlbnQpXCIgZGF0YVR5cGU9XCJzdHJpbmdcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW21pbkRhdGVdPVwibWluV29ya1N0YXJ0RGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdzdGFydERhdGVNaWwnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjFcIj48L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImVuZERhdGVNaWxcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5lbmRkYXRlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBpY29uQXJpYUxhYmVsPVwiZW5kRGF0ZU1pbFwiIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cImVuZERhdGVNaWxcIiBbbWF4RGF0ZV09XCJkYXRlVGltZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW21pbkRhdGVdPVwibWluRGF0ZVwiIGRhdGVGb3JtYXQ9XCJtbS9kZC95eVwiIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIFt5ZWFyTmF2aWdhdG9yXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiIHllYXJSYW5nZT1cIjE5MDE6MjA1MFwiIGRhdGFUeXBlPVwic3RyaW5nXCIgW2Zvcm1Db250cm9sXT1cImVuZERhdGVNaWxcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCI+PC9wLWNhbGVuZGFyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZW5kRGF0ZU1pbCcgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJyAmJiBoaWRlRmljQ29kZVwiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmaWNDb2RlXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQuZmljLmNvZGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImZpY0NvZGVcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJmaWNDb2RlXCIgYXBwU3RyaXBJbnZpc2libGVDaGFycy8+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdmaWNDb2RlJyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxXCI+PC9pb24tY29sPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmaWNEZXN0aW5hdGlvbk5hbWVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC5maWMuZGVzdGluYXRpb25cInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImZpY0Rlc3RpbmF0aW9uTmFtZVwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cImZpY0Rlc3RpbmF0aW9uTmFtZVwiIGFwcFN0cmlwSW52aXNpYmxlQ2hhcnMvPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZmljRGVzdGluYXRpb25OYW1lJyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuXHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiIWlzQmFzZVBlcmlvZEVtcGxveWVyICYmIGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDBweDsgcGFkZGluZy1yaWdodDogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1hZGRyZXNzICNhZGRyZXNzMSBbZm9ybUNvbnRyb2xdPVwiYWRkcmVzc1wiIFtjb3VudHlSZXF1aXJlZF09XCJmYWxzZVwiIFtmcm9tUG9wdXBdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPC9hcHAtYWRkcmVzcz5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJpc0Jhc2VQZXJpb2RFbXBsb3llciAmJiBvc2FCcEVtcGxveWVyRmxhZy52YWx1ZSA9PT0nMScgJiYgZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRydcIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmctbGVmdDogMHB4OyBwYWRkaW5nLXJpZ2h0OiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWFkZHJlc3MgI2FkZHJlc3MzIFtmb3JtQ29udHJvbF09XCJhZGRyZXNzXCIgW2NvdW50eVJlcXVpcmVkXT1cImZhbHNlXCIgW2Zyb21Qb3B1cF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICA8L2FwcC1hZGRyZXNzPlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJ1wiPlxyXG4gICAgICAgICAgICAgIDxhcHAtYWRkcmVzcyAjYWRkcmVzczIgW2Zvcm1Db250cm9sXT1cImFkZHJlc3NcIiBjb3VudHlSZXF1aXJlZD1cImZhbHNlXCIgW2Zyb21Qb3B1cF09XCJ0cnVlXCI+IDwvYXBwLWFkZHJlc3M+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2FkZHJlc3MnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIGFkZHJlc3NWYWxpZGF0aW9uRmxhZzogJ1BsZWFzZSBwcm92aWRlLCBhIHZhbGlkIGFkZHJlc3MuJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cIigoKGlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHdvcmtGbGFnLnZhbHVlPT09J1knKSB8fCAhaXNCYXNlUGVyaW9kRW1wbG95ZXIpICYmICBlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJylcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZW1wbG95ZXJUZWxlcGhvbmVOdW1iZXJcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5lbXBsb3llci5waG9uZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPHAtaW5wdXRNYXNrIG1hc2s9XCI5OTktOTk5LTk5OTlcIiBpZD1cImVtcGxveWVyVGVsZXBob25lTnVtYmVyXCIgW2Zvcm1Db250cm9sXT1cImVtcGxveWVyVGVsZXBob25lTnVtYmVyXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiOTk5LTk5OS05OTk5XCI+PC9wLWlucHV0TWFzaz5cclxuXHJcblxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdlbXBsb3llclRlbGVwaG9uZU51bWJlcicgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCJcclxuICAgICAgICAgICAgICAgIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICAgICAgICA8aW9uLXJvdyAqbmdJZj1cIighaXNCYXNlUGVyaW9kRW1wbG95ZXIgICYmIGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnKVwiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ3b3JrQ2l0eVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQud29yay5sb2NhdGlvbi5jaXR5XCJ8dHJhbnNsYXRlfX0gPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwid29ya0NpdHlcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJ3b3JrQ2l0eVwiIG1heGxlbmd0aD1cIjMwXCIgYXBwU3RyaXBJbnZpc2libGVDaGFycy8+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd3b3JrQ2l0eScgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMVwiPjwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwid29ya1N0YXRlXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC53b3JrLmxvY2F0aW9uLnN0YXRlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWRyb3Bkb3duIFtvcHRpb25zXT1cInN0YXRlc09wdGlvbnNcIiBbZm9ybUNvbnRyb2xdPVwid29ya1N0YXRlXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgYXBwZW5kVG89XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIGlucHV0SWQ9XCJ3b3JrU3RhdGVcIj48L2FwcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3dvcmtTdGF0ZScgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmZWRXb3JrQ291bnRyeVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLndvcmsubG9jYXRpb24uY291bnRyeVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8YXBwLWRyb3Bkb3duIFtvcHRpb25zXT1cIndvcmtDb3VudHJ5T3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJmZWRXb3JrQ291bnRyeVwiIG9wdGlvbkxhYmVsPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIGlucHV0SWQ9XCJmZWRXb3JrQ291bnRyeVwiPjwvYXBwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdmZWRXb3JrQ291bnRyeScgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJ1wiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmZWRXb3JrQ2l0eVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQud29yay5sb2NhdGlvbi5jaXR5XCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJmZWRXb3JrQ2l0eVwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cImZlZFdvcmtDaXR5XCIgbWF4bGVuZ3RoPVwiMzBcIiBhcHBTdHJpcEludmlzaWJsZUNoYXJzLz5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2ZlZFdvcmtDaXR5JyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxXCI+PC9pb24tY29sPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZzogMHB4O1wiICpuZ0lmPVwic2hvd1dvcmtTdGF0ZSA9PT0gdHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmZWRXb3JrU3RhdGVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LndvcmsubG9jYXRpb24uc3RhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZHJvcGRvd24gW29wdGlvbnNdPVwic3RhdGVzT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJmZWRXb3JrU3RhdGVcIiBvcHRpb25MYWJlbD1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgaW5wdXRJZD1cImZlZFdvcmtTdGF0ZVwiPjwvYXBwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZmVkV29ya1N0YXRlJyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCdcIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwic3RhcnREYXRlRmVkXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQuc3RhcnRkYXRlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBpY29uQXJpYUxhYmVsPVwic3RhcnREYXRlRmVkXCIgW3Nob3dJY29uXT1cInRydWVcIiBbbWF4RGF0ZV09XCJkYXRlVGltZVwiIGlucHV0SWQ9XCJzdGFydERhdGVGZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJzdGFydERhdGVGZWRcIiBbeWVhck5hdmlnYXRvcl09XCJ0cnVlXCIgeWVhclJhbmdlPVwiMTkwMToyMDUwXCIgYXBwZW5kVG89XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICBkYXRlRm9ybWF0PVwibW0vZGQveXlcIiBwbGFjZWhvbGRlcj1cIm1tL2RkL3l5eXlcIiAob25CbHVyKT1cInZhbGlkYXRlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIChvblNlbGVjdCk9XCJ2YWxpZGF0ZSgkZXZlbnQpXCIgZGF0YVR5cGU9XCJzdHJpbmdcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW21pbkRhdGVdPVwibWluV29ya1N0YXJ0RGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdzdGFydERhdGVGZWQnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjFcIj48L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImVuZERhdGVGZWRcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC5lbmRkYXRlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBpY29uQXJpYUxhYmVsPVwiZW5kRGF0ZUZlZFwiIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cImVuZERhdGVGZWRcIiBbbWF4RGF0ZV09XCJkYXRlVGltZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW21pbkRhdGVdPVwibWluRGF0ZVwiIGRhdGVGb3JtYXQ9XCJtbS9kZC95eVwiIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIFt5ZWFyTmF2aWdhdG9yXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiIHllYXJSYW5nZT1cIjE5MDE6MjA1MFwiIGRhdGFUeXBlPVwic3RyaW5nXCIgW2Zvcm1Db250cm9sXT1cImVuZERhdGVGZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCI+PC9wLWNhbGVuZGFyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZW5kRGF0ZUZlZCcgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmZWRKb2JUaWxlT3JQb3NpdGlvblwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLmpvYnRpdGxlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxpbnB1dCBpZD1cImZlZEpvYlRpbGVPclBvc2l0aW9uXCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwiZmVkSm9iVGlsZU9yUG9zaXRpb25cIlxyXG4gICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMTAwXCIgYXBwU3RyaXBJbnZpc2libGVDaGFycy8+XHJcbiAgICAgICAgICAgICAgPCEtLSAgPHAtYXV0b0NvbXBsZXRlIFtmb3JtQ29udHJvbF09XCJmZWRKb2JUaWxlT3JQb3NpdGlvblwiIFtzdWdnZXN0aW9uc109XCJmZWRKb2JUaWxlT3B0aW9uc1wiIFxyXG4gICAgICAgICAgICAgICAgKGNvbXBsZXRlTWV0aG9kKT1cImZpbHRlckZlZEpvYlRpbGVPclBvc2l0aW9uKCRldmVudClcIiBmaWVsZD1cImpvYlRpdGxlXCIgW2Ryb3Bkb3duXT1cImZhbHNlXCIgXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlN0YXJ0Li4uIHR5cGluZyBqb2IgdGl0bGVcIiBtaW5MZW5ndGg9MyBmb3JjZVNlbGVjdGlvbj1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtdmFsdWUgcFRlbXBsYXRlPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+e3t2YWx1ZS5qb2JUaXRsZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICA8L3AtYXV0b0NvbXBsZXRlPiAtLT5cclxuXHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2ZlZEpvYlRpbGVPclBvc2l0aW9uJyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInNmRWlnaHRmbGFnXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQuc2ZlaWdodFwifHRyYW5zbGF0ZX19IDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImlubGluZS1zaXplOiBtaW4tY29udGVudDtcIj5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBpZD1cInNmRWlnaHRmbGFnXCIgdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJzZkVpZ2h0ZmxhZ1wiIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdzZkVpZ2h0ZmxhZycgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8aW9uLXJvdyAqbmdJZj1cIigoKGlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHdvcmtGbGFnLnZhbHVlPT09J1knKSBcclxuICAgICAgICAgICAgICAgICAgICB8fCAhaXNCYXNlUGVyaW9kRW1wbG95ZXIpICYmIGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnKVwiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJzdGFydERhdGVcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5zdGFydGRhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWNhbGVuZGFyIGljb25BcmlhTGFiZWw9XCJzdGFydERhdGVcIiBbc2hvd0ljb25dPVwidHJ1ZVwiIGlucHV0SWQ9XCJzdGFydERhdGVcIiBbbWF4RGF0ZV09XCJkYXRlVGltZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInN0YXJ0RGF0ZVwiIFt5ZWFyTmF2aWdhdG9yXT1cInRydWVcIiB5ZWFyUmFuZ2U9XCIxOTAxOjIwNTBcIiBbbWluRGF0ZV09XCJtaW5Xb3JrU3RhcnREYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiBkYXRlRm9ybWF0PVwibW0vZGQveXlcIiBwbGFjZWhvbGRlcj1cIm1tL2RkL3l5eXlcIiAob25CbHVyKT1cInZhbGlkYXRlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIChvblNlbGVjdCk9XCJ2YWxpZGF0ZSgkZXZlbnQpXCIgZGF0YVR5cGU9XCJzdHJpbmdcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdzdGFydERhdGUnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjFcIj48L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImVuZERhdGVcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5lbmRkYXRlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBpY29uQXJpYUxhYmVsPVwiZW5kRGF0ZVwiIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cImVuZERhdGVcIiBbbWluRGF0ZV09XCJtaW5EYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICBbbWF4RGF0ZV09XCJkYXRlVGltZVwiIGRhdGVGb3JtYXQ9XCJtbS9kZC95eVwiIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIFt5ZWFyTmF2aWdhdG9yXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiIHllYXJSYW5nZT1cIjE5MDE6MjA1MFwiIGRhdGFUeXBlPVwic3RyaW5nXCIgW2Zvcm1Db250cm9sXT1cImVuZERhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIChvbkJsdXIpPVwidmFsaWRhdGVXYWdlc0Rpc3BsYXkoJGV2ZW50KVwiIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAob25TZWxlY3QpPVwidmFsaWRhdGVXYWdlc0Rpc3BsYXkoJGV2ZW50KVwiPjwvcC1jYWxlbmRhcj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2VuZERhdGUnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiKCgoaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgd29ya0ZsYWcudmFsdWU9PT0nWScpIHx8ICFpc0Jhc2VQZXJpb2RFbXBsb3llcikgXHJcbiAgICAgICAgICAgICAgJiYgKGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnIHx8IGVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnKSAmJiB0aGlzLmN1cnJlbnRTdGF0ZSA9PSAnQ1QnKVwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJzZXBhcmF0aW9uRGF0ZUZsYWdcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5zZXBhcmF0aW9uRGF0ZUZsYWdcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImlubGluZS1zaXplOiBtaW4tY29udGVudDtcIj5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBpZD1cInNlcGFyYXRpb25EYXRlRmxhZ1wiIHVuc2VsZWN0YWJsZT1cInRydWVcIiBbb3B0aW9uc109XCJyYWRpb09wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwic2VwYXJhdGlvbkRhdGVGbGFnXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nc2VwYXJhdGlvbkRhdGVGbGFnJyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiKCgoaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgd29ya0ZsYWcudmFsdWU9PT0nWScpIHx8ICFpc0Jhc2VQZXJpb2RFbXBsb3llcilcclxuICAgICAgICAgICAgICAgJiYgKGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnIHx8IGVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnKSAmJiB0aGlzLmN1cnJlbnRTdGF0ZSA9PSAnQ1QnICAmJiBzZXBhcmF0aW9uRGF0ZUZsYWcudmFsdWU9PT0nWScgKVwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJzZXBhcmF0aW9uRGF0ZVwiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LnNlcGFyYXRpb25EYXRlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBbc2hvd0ljb25dPVwidHJ1ZVwiIGlucHV0SWQ9XCJzZXBhcmF0aW9uRGF0ZVwiIFtmb3JtQ29udHJvbF09XCJzZXBhcmF0aW9uRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFt5ZWFyTmF2aWdhdG9yXT1cInRydWVcIiBhcHBlbmRUbz1cImJvZHlcIiB5ZWFyUmFuZ2U9XCIxOTAxOjIwNTBcIiBkYXRlRm9ybWF0PVwibW0vZGQveXlcIlxyXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIm1tL2RkL3l5eXlcIiBkYXRhVHlwZT1cInN0cmluZ1wiIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICA8L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nc2VwYXJhdGlvbkRhdGUnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCIoZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMudmFsdWUgJiYgIWlzQmFzZVBlcmlvZEVtcGxveWVyICAmJiBlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJylcIj5cclxuICAgICAgICAgICAgICA8IS0tIDxpb24tY29sIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJudW1iZXJFbXBsb3llZFwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucmVnLmVtcGxveWVlcy5ub1wiIHwgdHJhbnNsYXRlfX0gPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtaW5wdXROdW1iZXIgW2lkXT1cIm51bWJlckVtcGxveWVkXCIgW3VzZUdyb3VwaW5nXT1cImZhbHNlXCIgW2Zvcm1Db250cm9sXT1cIm51bWJlckVtcGxveWVkXCJcclxuICAgICAgICAgICAgICAgICAgICBtYXhsZW5ndGg9XCI5XCI+PC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nbnVtYmVyRW1wbG95ZWQnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjFcIj48L2lvbi1jb2w+IC0tPiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuXHJcblxyXG5cclxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImNsYWltYW50RW1wbG95ZWRXaXRoRW1wclwiPldlcmUgeW91IGVtcGxveWVkIHdoaWxlIGEgc3BvdXNlIG9mIGEgVVMgbWlsaXRhcnkgbWVtYmVyIHN0YXRpb25lZCBhdFxyXG4gICAgICAgICAgICAgICAgYSBmb3JlaWduIG1pbGl0YXJ5IGJhc2U/PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiaW5saW5lLXNpemU6IG1pbi1jb250ZW50O1wiPlxyXG4gICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIHVuc2VsZWN0YWJsZT1cInRydWVcIiBbb3B0aW9uc109XCJ5ZXNOb05hT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJjbGFpbWFudEVtcGxveWVkV2l0aEVtcHJcIiBvcHRpb25MYWJlbD1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICBvcHRpb25WYWx1ZT1cInZhbHVlXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdjbGFpbWFudEVtcGxveWVkV2l0aEVtcHInIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XHJcblxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJwZXJmb3JtZWRTZXJ2aWNlXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQuY2l2aWxpYW4ud29ya1wifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiaW5saW5lLXNpemU6IG1pbi1jb250ZW50O1wiPlxyXG4gICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIGlkPVwicGVyZm9ybWVkU2VydmljZVwiIHVuc2VsZWN0YWJsZT1cInRydWVcIiBbb3B0aW9uc109XCJyYWRpb09wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwicGVyZm9ybWVkU2VydmljZVwiIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3BlcmZvcm1lZFNlcnZpY2UnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCIoKGlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHdvcmtGbGFnLnZhbHVlPT09J1knKSB8fCAhaXNCYXNlUGVyaW9kRW1wbG95ZXIpICAmJiBlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJqb2JUaWxlT3JQb3NpdGlvblwiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LmpvYnRpdGxlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxpbnB1dCBpZD1cImpvYlRpbGVPclBvc2l0aW9uXCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwiam9iVGlsZU9yUG9zaXRpb25cIiBtYXhsZW5ndGg9XCIxMDBcIiAvPlxyXG4gICAgICAgICAgICAgIDwhLS0gPHAtYXV0b0NvbXBsZXRlIFtmb3JtQ29udHJvbF09XCJqb2JUaWxlT3JQb3NpdGlvblwiIFtzdWdnZXN0aW9uc109XCJqb2JUaWxlT3JQb3NpdGlvbk9wdGlvbnNcIiBcclxuICAgICAgICAgICAgICAgIChjb21wbGV0ZU1ldGhvZCk9XCJmaWx0ZXJKb2JUaWxlT3JQb3NpdGlvbigkZXZlbnQpXCIgZmllbGQ9XCJqb2JUaXRsZVwiIChvbkNsZWFyKT1cIm9uQ2xlYXJBY3Rpb24oJGV2ZW50KVwiIFxyXG4gICAgICAgICAgICAgICAgIFtkcm9wZG93bl09XCJmYWxzZVwiIHBsYWNlaG9sZGVyPVwiU3RhcnQuLi4gdHlwaW5nIGpvYiB0aXRsZVwiIG1pbkxlbmd0aD0zIGZvcmNlU2VsZWN0aW9uPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC12YWx1ZSBwVGVtcGxhdGU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj57e3ZhbHVlLmpvYlRpdGxlfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgIDwvcC1hdXRvQ29tcGxldGU+IC0tPlxyXG5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nam9iVGlsZU9yUG9zaXRpb24nIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiKChlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyB8fCBlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJykgJiYgIWlzQmFzZVBlcmlvZEVtcGxveWVyKVwiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZy1yaWdodDo1cHg7IHBhZGRpbmctbGVmdDogMHB4OyBwYWRkaW5nLXRvcDogMHB4O1wiICpuZ0lmPVwiIWlzQmFzZVBlcmlvZEVtcGxveWVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInBheVJhdGVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnBheXJhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIGlucHV0SWQ9XCJwYXlSYXRlXCIgW2Zvcm1Db250cm9sXT1cInBheVJhdGVcIiBtb2RlPVwiY3VycmVuY3lcIiBjdXJyZW5jeT1cIlVTRFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW21heF09XCI5OTk5OTkuOTlcIiBtYXhsZW5ndGg9XCIxMlwiIGxvY2FsZT1cImVuLVVTXCI+PC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ncGF5UmF0ZScgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OjVweDtwYWRkaW5nLXRvcDogMHB4O1wiICpuZ0lmPVwiIWlzQmFzZVBlcmlvZEVtcGxveWVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInBheVJhdGVGcmVxdWVuY3lcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnBlclwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1kcm9wZG93biBbb3B0aW9uc109XCJwYXlSYXRlT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJwYXlSYXRlRnJlcXVlbmN5XCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIGlucHV0SWQ9XCJwYXlSYXRlRnJlcXVlbmN5XCI+PC9hcHAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdwYXlSYXRlRnJlcXVlbmN5JyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCAqbmdJZj1cInRoaXMuY3VycmVudFN0YXRlICE9ICdNUycgJiYgZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMudmFsdWUgJiYgIWlzQmFzZVBlcmlvZEVtcGxveWVyXCIgc3R5bGU9XCJwYWRkaW5nLXRvcDogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJncm9zc1dhZ2VzXCIgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWF4LWNvbnRlbnQ7XCI+VG90YWwgV2FnZXMgRWFybmVkIHNpbmNlIHt7YnBTdGFydERhdGVUb0Rpc3BsYXkgfCBkYXRlOidNTU1NIGQsIHl5eXknfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBbZm9ybUNvbnRyb2xdPVwiZ3Jvc3NXYWdlc1wiIG1vZGU9XCJjdXJyZW5jeVwiIGN1cnJlbmN5PVwiVVNEXCIgbWF4bGVuZ3RoPVwiMTJcIlxyXG4gICAgICAgICAgICAgICAgICAgIFttYXhdPVwiOTk5OTk5Ljk5XCIgbG9jYWxlPVwiZW4tVVNcIj5cclxuICAgICAgICAgICAgICAgICAgPC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZ3Jvc3NXYWdlcycgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCIoZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycgfHwgZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCcpXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OjVweDsgcGFkZGluZy1sZWZ0OiAwcHg7XCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiKGlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHdvcmtGbGFnLnZhbHVlPT09J1knKVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJwYXlSYXRlXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQucGF5cmF0ZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtaW5wdXROdW1iZXIgW2Zvcm1Db250cm9sXT1cInBheVJhdGVcIiBtb2RlPVwiY3VycmVuY3lcIiBjdXJyZW5jeT1cIlVTRFwiIFttYXhdPVwiOTk5OTk5Ljk5XCIgbWF4bGVuZ3RoPVwiMTJcIlxyXG4gICAgICAgICAgICAgICAgICAgIGxvY2FsZT1cImVuLVVTXCI+PC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ncGF5UmF0ZScgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OjVweDtcIiAqbmdJZj1cIihpc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB3b3JrRmxhZy52YWx1ZT09PSdZJylcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicGF5UmF0ZUZyZXF1ZW5jeVwiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LnBlclwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1kcm9wZG93biBbb3B0aW9uc109XCJwYXlSYXRlT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJwYXlSYXRlRnJlcXVlbmN5XCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIGlucHV0SWQ9XCJwYXlSYXRlRnJlcXVlbmN5XCI+PC9hcHAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdwYXlSYXRlRnJlcXVlbmN5JyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIigodGhpcy5jdXJyZW50U3RhdGUgPT09ICdDVCcgJiYgKGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnIHx8IGVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnKSlcclxuICAgICAgICAgICAgICYmICgoaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgd29ya0ZsYWcudmFsdWU9PT0nWScpIHx8ICFpc0Jhc2VQZXJpb2RFbXBsb3llcikpXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImhyc1dlZWtcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5ocnN3ZWVrXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIFtmb3JtQ29udHJvbF09XCJocnNXZWVrXCIgW21heF09XCI5OTlcIiBtYXhsZW5ndGg9XCIzXCIgbG9jYWxlPVwiZW4tVVNcIj48L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2hyc1dlZWsnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiKCh0aGlzLmN1cnJlbnRTdGF0ZSA9PT0gJ0NUJyAmJiAoZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycgfHwgZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCcpKVxyXG4gICAgICAgICAgICAgJiYgKChpc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB3b3JrRmxhZy52YWx1ZT09PSdZJykgfHwgIWlzQmFzZVBlcmlvZEVtcGxveWVyKSlcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwic2hpZnRcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5zaGlmdFwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8cC1jaGVja2JveCBbbmFtZV09XCInc2hpZnQtZ3JvdXAnXCIgW3ZhbHVlXT1cImNob2ljZS52YWx1ZVwiIFtsYWJlbF09XCJjaG9pY2UudGV4dFwiXHJcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgY2hvaWNlIG9mIHNoaWZ0T3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJzaGlmdFwiIHN0eWxlQ2xhc3M9XCJhcHAtcC1jaGVja2JveFwiPjwvcC1jaGVja2JveD5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nc2hpZnQnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIigodGhpcy5jdXJyZW50U3RhdGUgPT09ICdDVCcgJiYgKGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnIHx8IGVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnKSlcclxuICAgICAgICAgICAgICAmJiAoKGlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHdvcmtGbGFnLnZhbHVlPT09J1knKSB8fCAhaXNCYXNlUGVyaW9kRW1wbG95ZXIpKVwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJkaWRXb3JrXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQuZGlkd29ya1wifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8YXBwLWRyb3Bkb3duIFtvcHRpb25zXT1cImRpZFdvcmtPcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cImRpZFdvcmtcIiBvcHRpb25MYWJlbD1cInRleHRcIiBhcHBlbmRUbz1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBpbnB1dElkPVwiZGlkV29ya1wiPjwvYXBwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdkaWRXb3JrJyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIigodGhpcy5jdXJyZW50U3RhdGUgPT09ICdDVCcgJiYgKGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnIHx8IGVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnKSlcclxuICAgICAgICAgICAgICYmICgoaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgd29ya0ZsYWcudmFsdWU9PT0nWScpIHx8ICFpc0Jhc2VQZXJpb2RFbXBsb3llcikpXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIndvcmtXZWVrXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQud29ya3dlZWtcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPHAtY2hlY2tib3ggW25hbWVdPVwiJ3dvcmtXZWVrLWdyb3VwJ1wiIFt2YWx1ZV09XCJjaG9pY2UudmFsdWVcIiBbbGFiZWxdPVwiY2hvaWNlLnRleHRcIlxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNob2ljZSBvZiB3b3JrV2Vla09wdGlvbnNcIiBbZm9ybUNvbnRyb2xdPVwid29ya1dlZWtcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGVDbGFzcz1cImFwcC1wLWNoZWNrYm94XCI+PC9wLWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd3b3JrV2VlaycgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlICYmICgoKGlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHdvcmtGbGFnLnZhbHVlPT09J1knKSBcclxuICAgICAgICAgICAgICAgICAgICB8fCAhaXNCYXNlUGVyaW9kRW1wbG95ZXIpICYmIGVtcGxveWVyVHlwZS52YWx1ZSE9J01JTCcpXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInJlYXNvblNlcGFyYXRpb25cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyBcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5yZWFzb24uc2VwYXJhdGlvblwifHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJyBcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC5yZWFzb24uc2VwYXJhdGlvblwifHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8YXBwLWRyb3Bkb3duIFtvcHRpb25zXT1cImVtcGxveW1lbnRTdGF0dXNPcHRpb25zQWxsXCIgW2Zvcm1Db250cm9sXT1cInJlYXNvblNlcGFyYXRpb25cIiBvcHRpb25MYWJlbD1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBpbnB1dElkPVwicmVhc29uU2VwYXJhdGlvblwiPjwvYXBwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdyZWFzb25TZXBhcmF0aW9uJyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwhLS0gYWRkIGZvciBxdWl0IGFuZCBkaXNjaGFyZ2UgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiKCgoaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgd29ya0ZsYWcudmFsdWU9PT0nWScpIFxyXG4gICAgICAgICAgICAgICAgfHwgIWlzQmFzZVBlcmlvZEVtcGxveWVyKSAmJiByZWFzb25TZXBhcmF0aW9uLnZhbHVlICYmIHJlYXNvblNlcGFyYXRpb24udmFsdWUudmFsdWUgPT09ICdEQ0ZJJyBcclxuICAgICAgICAgICAgICAgICYmIGVtcGxveWVyVHlwZS52YWx1ZSE9J01JTCcpXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICBmb3I9XCJkaXNjaGFyZ2VEZXRhaWxcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5yZWFzb24uc2VwYXJhdGlvbi5kaXNjaGFyZ2VcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGFwcC1kcm9wZG93biBbb3B0aW9uc109XCJkaXNjaGFyZ2VSZWFzb25PcHRpb25zQWxsXCIgW2Zvcm1Db250cm9sXT1cImRpc2NoYXJnZURldGFpbFwiIG9wdGlvbkxhYmVsPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIGlucHV0SWQ9XCJkaXNjaGFyZ2VEZXRhaWxcIj48L2FwcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZGlzY2hhcmdlRGV0YWlsJyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIigoKGlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHdvcmtGbGFnLnZhbHVlPT09J1knKSBcclxuICAgICAgICAgICAgICB8fCAhaXNCYXNlUGVyaW9kRW1wbG95ZXIpICYmIHJlYXNvblNlcGFyYXRpb24udmFsdWUgJiYgcmVhc29uU2VwYXJhdGlvbi52YWx1ZS52YWx1ZSA9PT0gJ1ZPTFEnIFxyXG4gICAgICAgICAgICAgICYmIGVtcGxveWVyVHlwZS52YWx1ZSE9J01JTCcpXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInZvbFF1aXREZXRhaWxzXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQucmVhc29uLnNlcGFyYXRpb24ucXVpdFwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8YXBwLWRyb3Bkb3duIFtvcHRpb25zXT1cInZvbFF1aXRSZWFzb25PcHRpb25zQWxsXCIgW2Zvcm1Db250cm9sXT1cInZvbFF1aXREZXRhaWxzXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgaW5wdXRJZD1cInZvbFF1aXREZXRhaWxzXCI+PC9hcHAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3ZvbFF1aXREZXRhaWxzJyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdNSUwnIFwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJtaWxQZW5zaW9uRmxhZ1wiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQubWlsLnBlbnNpb25cInx0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgICAgPGJyPiB7e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5wZW5zaW9uLmRpc2NsYWltZXJcInx0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImlubGluZS1zaXplOiBtaW4tY29udGVudDtcIj5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBpZD1cIm1pbFBlbnNpb25GbGFnXCIgdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJtaWxQZW5zaW9uRmxhZ1wiIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J21pbFBlbnNpb25GbGFnJyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nTUlMJyAmJiB0aGlzLm1pbFBlbnNpb25GbGFnLnZhbHVlID09PSAnWScgJiYgdGhpcy5jdXJyZW50U3RhdGUgIT0gJ01FJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJtaWxQZW5zaW9uUmVjdkRhdGVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5wZW5zaW9uLmRhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxwLWNhbGVuZGFyIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cIm1pbFBlbnNpb25SZWN2RGF0ZVwiIFtmb3JtQ29udHJvbF09XCJtaWxQZW5zaW9uUmVjdkRhdGVcIlxyXG4gICAgICAgICAgICAgICAgICBbeWVhck5hdmlnYXRvcl09XCJ0cnVlXCIgYXBwZW5kVG89XCJib2R5XCIgeWVhclJhbmdlPVwiMTkwMToyMDUwXCIgZGF0ZUZvcm1hdD1cIm1tL2RkL3l5XCJcclxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJtbS9kZC95eXl5XCIgZGF0YVR5cGU9XCJzdHJpbmdcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgPC9wLWNhbGVuZGFyPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J21pbFBlbnNpb25SZWN2RGF0ZScgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdNSUwnIFwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJkZDIxNEZsYWdcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5kZDIxNFwifHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD48YnI+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImlubGluZS1zaXplOiBtaW4tY29udGVudDsgZGlzcGxheTogaW5saW5lLWZsZXg7XCI+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gaWQ9XCJkZDIxNEZsYWdcIiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicmFkaW9PcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cImRkMjE0RmxhZ1wiXHJcbiAgICAgICAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIiAob25PcHRpb25DbGljayk9XCJwdXRNaWxWYWxpZGF0aW9uKCRldmVudClcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2RkMjE0RmxhZycgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvaW9uLWNvbD5cclxuXHJcbiAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tcGFkZGluZ1wiIHNpemU9XCIxMlwiIHNpemVTbT1cIjEyXCIgc2l6ZVhzPVwiMTJcIiBzaXplTWQ9XCI2XCIgc2l6ZUxnPVwiNlwiIHNpemVYbD1cIjZcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIHAtZm9ybWdyaWRcIj5cclxuXHJcbiAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwicGFkLXNwYWNlXCI+IFxyXG4gICAgICAgICAgICA8aW9uLXJvdyAqbmdJZj1cIiFpc0Jhc2VQZXJpb2RFbXBsb3llclwiIGNsYXNzPVwiaW9uLWhpZGUtc20tZG93blwiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiIWlzQmFzZVBlcmlvZEVtcGxveWVyXCIgY2xhc3M9XCJpb24taGlkZS1zbS1kb3duXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj48L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCIhaXNCYXNlUGVyaW9kRW1wbG95ZXJcIiBjbGFzcz1cImlvbi1oaWRlLXNtLWRvd25cIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgPC9zZWN0aW9uPlxyXG5cclxuICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwicGFkLXNwYWNlXCI+IFxyXG4gICAgICAgICAgICA8aW9uLXJvdyAqbmdJZj1cImlzQmFzZVBlcmlvZEVtcGxveWVyXCIgY2xhc3M9XCJpb24taGlkZS1zbS1kb3duXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj48L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJpc0Jhc2VQZXJpb2RFbXBsb3llclwiIGNsYXNzPVwiaW9uLWhpZGUtc20tZG93blwiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J01JTCcgJiYgZGQyMTRGbGFnLnZhbHVlPT09J1knXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci13aWR0aDogMXB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cInBhcmFPbmUgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8YXBwLWZpbGUtdXBsb2FkZXIgW2Zvcm1Db250cm9sXT1cImRkMjE0RmlsZVwiIFt1cGxvYWRlZEZpbGVGb3JFZGl0XT1cImRkMjE0RmlsZS52YWx1ZVwiPjwvYXBwLWZpbGUtdXBsb2FkZXI+IC0tPlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8ZGl2IFtpbm5lckhUTUxdPVwic2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHBhcmFUd28gfCB0cmFuc2xhdGUpXCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxkaXYgW2lubmVySFRNTF09XCJzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwocGFyYVRocmVlIHwgdHJhbnNsYXRlKVwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwic2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHBhcmFGb3VyIHwgdHJhbnNsYXRlKVwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwic2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHBhcmFGaXZlIHwgdHJhbnNsYXRlKVwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cInNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChwYXJhU2l4fCB0cmFuc2xhdGUpXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDE1cHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuXHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J01JTCcgJiYgZGQyMTRGbGFnLnZhbHVlPT09J04nXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAxcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwibm9QYXJhT25lIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGFwcC1maWxlLXVwbG9hZGVyIFtmb3JtQ29udHJvbF09XCJkZDIxNEZpbGVcIiBbdXBsb2FkZWRGaWxlRm9yRWRpdF09XCJkZDIxNEZpbGUudmFsdWVcIj48L2FwcC1maWxlLXVwbG9hZGVyPiAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwobm9QYXJhVHdvIHwgdHJhbnNsYXRlKVwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxkaXYgW2lubmVySFRNTF09XCJzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwobm9QYXJhVGhyZWUgfCB0cmFuc2xhdGUpXCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwic2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKG5vUGFyYUZvdXIgfCB0cmFuc2xhdGUpXCJcclxuICAgICAgICAgICAgICAgICAgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDE1cHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBbaW5uZXJIVE1MXT1cInNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChub1BhcmFGaXZlIHwgdHJhbnNsYXRlKVwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICA8aW9uLXJvdyAqbmdJZj1cIih0aGlzLmN1cnJlbnRTdGF0ZSAhPSAnTVMnICYmIGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnICYmIG9zYUJwRW1wbG95ZXJGbGFnLnZhbHVlID09PScxJylcIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmctdG9wOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImdyb3NzV2FnZXNcIiBzdHlsZT1cImlubGluZS1zaXplOiBtYXgtY29udGVudDtcIj5Ub3RhbCBXYWdlcyBFYXJuZWQgc2luY2Uge3ticFN0YXJ0RGF0ZVRvRGlzcGxheSB8IGRhdGU6J01NTU0gZCwgeXl5eSd9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIFtmb3JtQ29udHJvbF09XCJncm9zc1dhZ2VzXCIgbW9kZT1cImN1cnJlbmN5XCIgY3VycmVuY3k9XCJVU0RcIiBtYXhsZW5ndGg9XCIxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgW21heF09XCI5OTk5OTkuOTlcIiBsb2NhbGU9XCJlbi1VU1wiPlxyXG4gICAgICAgICAgICAgICAgICA8L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdncm9zc1dhZ2VzJyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnIFwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmZWRQZW5zaW9uRmxhZ1wiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLnBlbnNpb25cInx0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgICAgPGJyPiB7e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC5wZW5zaW9uLmRpc2NsYWltZXJcInx0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImlubGluZS1zaXplOiBtaW4tY29udGVudDsgZGlzcGxheTpmbGV4XCI+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gaWQ9XCJmZWRQZW5zaW9uRmxhZ1wiIHVuc2VsZWN0YWJsZT1cInRydWVcIiBbb3B0aW9uc109XCJyYWRpb09wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZmVkUGVuc2lvbkZsYWdcIiBvcHRpb25MYWJlbD1cInRleHRcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIG92ZXJsYXlUZXh0PVwie3snaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC5wZW5zaW9uLmluZm8nfCB0cmFuc2xhdGV9fVwiXHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLXRvcDogMnB4OyBtYXJnaW4tbGVmdDogNnB4O1wiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZmVkUGVuc2lvbkZsYWcnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnICYmIHRoaXMuZmVkUGVuc2lvbkZsYWcudmFsdWUgPT09ICdZJyAmJiB0aGlzLmN1cnJlbnRTdGF0ZSAhPSAnTUUnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZlZFBlbnNpb25SZWN2RGF0ZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLnBlbnNpb24uZGF0ZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPHAtY2FsZW5kYXIgW3Nob3dJY29uXT1cInRydWVcIiBpbnB1dElkPVwiZmVkUGVuc2lvblJlY3ZEYXRlXCIgW2Zvcm1Db250cm9sXT1cImZlZFBlbnNpb25SZWN2RGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFt5ZWFyTmF2aWdhdG9yXT1cInRydWVcIiBhcHBlbmRUbz1cImJvZHlcIiB5ZWFyUmFuZ2U9XCIxOTAxOjIwNTBcIiBkYXRlRm9ybWF0PVwibW0vZGQveXlcIlxyXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIm1tL2RkL3l5eXlcIiBkYXRhVHlwZT1cInN0cmluZ1wiIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICA8L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZmVkUGVuc2lvblJlY3ZEYXRlJyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCcgJiYgdGhpcy5jdXJyZW50U3RhdGUgPT09ICdNRScgXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInNldlBheUZsYWdcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC5zZXZlcmFuY2VcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImlubGluZS1zaXplOiBtaW4tY29udGVudDtcIj5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBpZD1cInNldlBheUZsYWdcIiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicmFkaW9PcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cInNldlBheUZsYWdcIlxyXG4gICAgICAgICAgICAgICAgICBvcHRpb25MYWJlbD1cInRleHRcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdzZXZQYXlGbGFnJyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJyAmJiBzZXZQYXlGbGFnLnZhbHVlPT09J1knXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OjVweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwid2Vla2x5QW1vdW50XCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQuc2V2ZXJhbmNlLndlZWtseS5hbXRcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIFtmb3JtQ29udHJvbF09XCJ3ZWVrbHlBbW91bnRcIiBtb2RlPVwiY3VycmVuY3lcIiBjdXJyZW5jeT1cIlVTRFwiIG1heGxlbmd0aD1cIjEyXCJcclxuICAgICAgICAgICAgICAgICAgICBbbWF4XT1cIjk5OTk5OS45OVwiIGxvY2FsZT1cImVuLVVTXCIgaW5wdXRJZD1cIndlZWtseUFtb3VudFwiPlxyXG4gICAgICAgICAgICAgICAgICA8L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd3ZWVrbHlBbW91bnQnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcblxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZy1yaWdodDo1cHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIm51bWJlck9mV2Vla3NcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC5zZXZlcmFuY2Uud2Vla3NcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIGlucHV0SWQ9XCJudW1iZXJPZldlZWtzXCIgW3VzZUdyb3VwaW5nXT1cImZhbHNlXCIgW2Zvcm1Db250cm9sXT1cIm51bWJlck9mV2Vla3NcIlxyXG4gICAgICAgICAgICAgICAgICAgIG1heGxlbmd0aD1cIjRcIj5cclxuICAgICAgICAgICAgICAgICAgPC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nbnVtYmVyT2ZXZWVrcycgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInNldlBheUFtb3VudFwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLnNldmVyYW5jZS5lbnRpdGxlbWVudFwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtaW5wdXROdW1iZXIgW2Zvcm1Db250cm9sXT1cInNldlBheUFtb3VudFwiIG1vZGU9XCJjdXJyZW5jeVwiIGN1cnJlbmN5PVwiVVNEXCIgbWF4bGVuZ3RoPVwiMTJcIlxyXG4gICAgICAgICAgICAgICAgICAgIFttYXhdPVwiOTk5OTk5Ljk5XCIgbG9jYWxlPVwiZW4tVVNcIiBpbnB1dElkPVwic2V2UGF5QW1vdW50XCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvcC1pbnB1dE51bWJlcj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3NldlBheUFtb3VudCcgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJyAmJiBzZXZQYXlGbGFnLnZhbHVlPT09J1knXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OjVweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwic2V2UGF5U3RhcnREYXRlXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQuc2V2ZXJhbmNlLnN0YXJ0LmRhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWNhbGVuZGFyIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cInNldlBheVN0YXJ0RGF0ZVwiIChvbkJsdXIpPVwidmFsaWRhdGUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG9uU2VsZWN0KT1cInZhbGlkYXRlKCRldmVudClcIiBbZm9ybUNvbnRyb2xdPVwic2V2UGF5U3RhcnREYXRlXCIgW3llYXJOYXZpZ2F0b3JdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeWVhclJhbmdlPVwiMTkwMToyMDUwXCIgYXBwZW5kVG89XCJib2R5XCIgZGF0ZUZvcm1hdD1cIm1tL2RkL3l5XCIgcGxhY2Vob2xkZXI9XCJtbS9kZC95eXl5XCJcclxuICAgICAgICAgICAgICAgICAgICBkYXRhVHlwZT1cInN0cmluZ1wiIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvcC1jYWxlbmRhcj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3NldlBheVN0YXJ0RGF0ZScgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OjVweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwic2V2UGF5RW5kRGF0ZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLnNldmVyYW5jZS5lbmQuZGF0ZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtY2FsZW5kYXIgW3Nob3dJY29uXT1cInRydWVcIiBpbnB1dElkPVwic2V2UGF5RW5kRGF0ZVwiIFtmb3JtQ29udHJvbF09XCJzZXZQYXlFbmREYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICBbeWVhck5hdmlnYXRvcl09XCJ0cnVlXCIgeWVhclJhbmdlPVwiMTkwMToyMDUwXCIgZGF0ZUZvcm1hdD1cIm1tL2RkL3l5XCIgcGxhY2Vob2xkZXI9XCJtbS9kZC95eXl5XCJcclxuICAgICAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiBbbWluRGF0ZV09XCJtaW5EYXRlXCIgZGF0YVR5cGU9XCJzdHJpbmdcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvcC1jYWxlbmRhcj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3NldlBheUVuZERhdGUnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcblxyXG4gICAgICAgICAgICAgIDxpb24tY29sPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgICAgICAgIGZvcj1cInNldlBheVBheW1lbnRTdGFydERhdGVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC5zZXZlcmFuY2UucGF5LmRhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWNhbGVuZGFyIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cInNldlBheVBheW1lbnRTdGFydERhdGVcIiBbZm9ybUNvbnRyb2xdPVwic2V2UGF5UGF5bWVudFN0YXJ0RGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3llYXJOYXZpZ2F0b3JdPVwidHJ1ZVwiIGFwcGVuZFRvPVwiYm9keVwiIHllYXJSYW5nZT1cIjE5MDE6MjA1MFwiIGRhdGVGb3JtYXQ9XCJtbS9kZC95eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJtbS9kZC95eXl5XCIgZGF0YVR5cGU9XCJzdHJpbmdcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdzZXZQYXlQYXltZW50U3RhcnREYXRlJyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuXHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIihpc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB3b3JrRmxhZy52YWx1ZT09PSdZJyAmJiBlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJylcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicGVuc2lvbkZsYWdcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5wZW5zaW9uXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7IGRpc3BsYXk6ZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIGlkPVwicGVuc2lvbkZsYWdcIiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicmFkaW9PcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInBlbnNpb25GbGFnXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIG92ZXJsYXlUZXh0PVwie3snaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5wZW5zaW9uLmluZm8nfCB0cmFuc2xhdGV9fVwiXHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLXRvcDogMnB4OyBtYXJnaW4tbGVmdDogNnB4O1wiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdwZW5zaW9uRmxhZycgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCIoaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgd29ya0ZsYWcudmFsdWU9PT0nWScgJiYgcGVuc2lvbkZsYWcudmFsdWU9PT0nWScgXHJcbiAgICAgICAgICAgICYmIGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnICYmIHRoaXMuY3VycmVudFN0YXRlICE9ICdNRScpXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInBlbnNpb25SZWN2RGF0ZVwiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LnBlbnNpb24uZGF0ZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPHAtY2FsZW5kYXIgW3Nob3dJY29uXT1cInRydWVcIiBpbnB1dElkPVwicGVuc2lvblJlY3ZEYXRlXCIgW2Zvcm1Db250cm9sXT1cInBlbnNpb25SZWN2RGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFt5ZWFyTmF2aWdhdG9yXT1cInRydWVcIiBhcHBlbmRUbz1cImJvZHlcIiB5ZWFyUmFuZ2U9XCIxOTAxOjIwNTBcIiBkYXRlRm9ybWF0PVwibW0vZGQveXlcIlxyXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIm1tL2RkL3l5eXlcIiBkYXRhVHlwZT1cInN0cmluZ1wiIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICA8L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ncGVuc2lvblJlY3ZEYXRlJyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiKCFpc0Jhc2VQZXJpb2RFbXBsb3llciAmJiBlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJylcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicmVnUGVuc2lvbkZsYWdcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy5wZW5zaW9uXCJ8dHJhbnNsYXRlfX0gPGJyIC8+XHJcbiAgICAgICAgICAgICAgICB7e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy5wZW5zaW9uLmRpc2NsYWltZXJcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImlubGluZS1zaXplOiBtaW4tY29udGVudDsgZGlzcGxheTpmbGV4XCI+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gaWQ9XCJyZWdQZW5zaW9uRmxhZ1wiIHVuc2VsZWN0YWJsZT1cInRydWVcIiBbb3B0aW9uc109XCJyYWRpb09wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwicmVnUGVuc2lvbkZsYWdcIiBvcHRpb25MYWJlbD1cInRleHRcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIG92ZXJsYXlUZXh0PVwie3snaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy5wZW5zaW9uLmluZm8nfCB0cmFuc2xhdGV9fVwiXHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLXRvcDogMnB4OyBtYXJnaW4tbGVmdDogNnB4O1wiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ncmVnUGVuc2lvbkZsYWcnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiKCFpc0Jhc2VQZXJpb2RFbXBsb3llciAmJiBlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyBcclxuICAgICAgICAgICAgJiYgcmVnUGVuc2lvbkZsYWcudmFsdWU9PT0nWScgJiYgdGhpcy5jdXJyZW50U3RhdGUgIT0gJ01FJylcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicmVnUGVuc2lvblJlY3ZEYXRlXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcucGVuc2lvbi5kYXRlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBbc2hvd0ljb25dPVwidHJ1ZVwiIGlucHV0SWQ9XCJyZWdQZW5zaW9uUmVjdkRhdGVcIiBbZm9ybUNvbnRyb2xdPVwicmVnUGVuc2lvblJlY3ZEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgW3llYXJOYXZpZ2F0b3JdPVwidHJ1ZVwiIGFwcGVuZFRvPVwiYm9keVwiIHllYXJSYW5nZT1cIjE5MDE6MjA1MFwiIGRhdGVGb3JtYXQ9XCJtbS9kZC95eVwiXHJcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIGRhdGFUeXBlPVwic3RyaW5nXCIgW3Nob3dPbkZvY3VzXT1cImZhbHNlXCIgKG9uSW5wdXQpPVwiZGF0ZUlucHV0KCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgIDwvcC1jYWxlbmRhcj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdyZWdQZW5zaW9uUmVjdkRhdGUnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIFJFRyBEaXNtaXNzYWxQYXlGbGFnIC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIigoKGlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHdvcmtGbGFnLnZhbHVlPT09J1knKSB8fCAhaXNCYXNlUGVyaW9kRW1wbG95ZXIpIFxyXG4gICAgICAgICAgICAgICAgJiYgKGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnICkgJiYgdGhpcy5jdXJyZW50U3RhdGUgPT0gJ0NUJylcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicmVnRGlzc21pc2FsRmxhZ1wiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LmRpc3NtaXNhbEZsYWdcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImlubGluZS1zaXplOiBtaW4tY29udGVudDsgZGlzcGxheTpmbGV4XCI+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gaWQ9XCJyZWdEaXNzbWlzYWxGbGFnXCIgdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJyZWdEaXNzbWlzYWxGbGFnXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3JlZ0Rpc3NtaXNhbEZsYWcnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gUkVHIGRpc21pc3NhbENoZWNrQm94LS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCIoKHRoaXMuY3VycmVudFN0YXRlID09PSAnQ1QnICYmIChlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJykpXHJcbiAgICAgICAgICAgICYmICgoaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgd29ya0ZsYWcudmFsdWU9PT0nWScpIHx8ICFpc0Jhc2VQZXJpb2RFbXBsb3llcikpICYmIHRoaXMucmVnRGlzc21pc2FsRmxhZy52YWx1ZT09PSdZJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJyZWdEaXNzbWlzYWxDaGVja0JveFwiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LmRpc3NtaXNhbENoZWNrQm94XCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxwLWNoZWNrYm94IFtuYW1lXT1cIidyZWdEaXNzbWlzYWxDaGVja0JveC1ncm91cCdcIiBbdmFsdWVdPVwiY2hvaWNlLnZhbHVlXCIgW2xhYmVsXT1cImNob2ljZS50ZXh0XCJcclxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjaG9pY2Ugb2YgZGlzc21pc2FsQ2hlY2tCb3hPcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cInJlZ0Rpc3NtaXNhbENoZWNrQm94XCJcclxuICAgICAgICAgICAgICAgIHN0eWxlQ2xhc3M9XCJhcHAtcC1jaGVja2JveFwiPjwvcC1jaGVja2JveD5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ncmVnRGlzc21pc2FsQ2hlY2tCb3gnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwhLS0gUkVHIExhaWRPZmZGbGFnLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiKCgoaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgd29ya0ZsYWcudmFsdWU9PT0nWScpIHx8ICFpc0Jhc2VQZXJpb2RFbXBsb3llcikgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJiYgKGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnICkgJiYgdGhpcy5jdXJyZW50U3RhdGUgPT0gJ0NUJylcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicmVnTGFpZE9mZkZsYWdcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5sYWlkT2ZmRmxhZ1wifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiaW5saW5lLXNpemU6IG1pbi1jb250ZW50OyBkaXNwbGF5OmZsZXhcIj5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBpZD1cInJlZ0xhaWRPZmZGbGFnXCIgdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJyZWdMYWlkT2ZmRmxhZ1wiXHJcbiAgICAgICAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdyZWdMYWlkT2ZmRmxhZycgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgPCEtLSBGRUQgRGlzbWlzc2FsUGF5RmxhZyAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCIoKChpc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB3b3JrRmxhZy52YWx1ZT09PSdZJykgfHwgIWlzQmFzZVBlcmlvZEVtcGxveWVyKSBcclxuICAgICAgICAgICAgICAgICAgICAgICAgJiYgKGVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnICkgJiYgdGhpcy5jdXJyZW50U3RhdGUgPT0gJ0NUJylcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZmVkRGlzc21pc2FsRmxhZ1wiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LmRpc3NtaXNhbEZsYWdcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImlubGluZS1zaXplOiBtaW4tY29udGVudDsgZGlzcGxheTpmbGV4XCI+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gaWQ9XCJmZWREaXNzbWlzYWxGbGFnXCIgdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJmZWREaXNzbWlzYWxGbGFnXCJcclxuICAgICAgICAgICAgICAgICAgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2ZlZERpc3NtaXNhbEZsYWcnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwhLS0gRkVEICBkaXNtaXNzYWxDaGVja0JveCAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cIigodGhpcy5jdXJyZW50U3RhdGUgPT09ICdDVCcgJiYgKGVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnKSlcclxuICAgICAgICAgICAgICAgICAgICAgICYmICgoaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgd29ya0ZsYWcudmFsdWU9PT0nWScpIHx8ICFpc0Jhc2VQZXJpb2RFbXBsb3llcikpICYmIHRoaXMuZmVkRGlzc21pc2FsRmxhZy52YWx1ZT09PSdZJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmZWREaXNzbWlzYWxDaGVja0JveFwiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LmRpc3NtaXNhbENoZWNrQm94XCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxwLWNoZWNrYm94IFtuYW1lXT1cIidmZWREaXNzbWlzYWxDaGVja0JveC1ncm91cCdcIiBbdmFsdWVdPVwiY2hvaWNlLnZhbHVlXCIgW2xhYmVsXT1cImNob2ljZS50ZXh0XCJcclxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjaG9pY2Ugb2YgZGlzc21pc2FsQ2hlY2tCb3hPcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cImZlZERpc3NtaXNhbENoZWNrQm94XCJcclxuICAgICAgICAgICAgICAgIHN0eWxlQ2xhc3M9XCJhcHAtcC1jaGVja2JveFwiPjwvcC1jaGVja2JveD5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZmVkRGlzc21pc2FsQ2hlY2tCb3gnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCEtLSBGRUQgIExhaWRPZmZGbGFnLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiKCgoaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgd29ya0ZsYWcudmFsdWU9PT0nWScpIHx8ICFpc0Jhc2VQZXJpb2RFbXBsb3llcikgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICYmIChlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJyApICYmIHRoaXMuY3VycmVudFN0YXRlID09ICdDVCcpXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZlZExhaWRPZmZGbGFnXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQubGFpZE9mZkZsYWdcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImlubGluZS1zaXplOiBtaW4tY29udGVudDsgZGlzcGxheTpmbGV4XCI+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gaWQ9XCJmZWRMYWlkT2ZmRmxhZ1wiIHVuc2VsZWN0YWJsZT1cInRydWVcIiBbb3B0aW9uc109XCJyYWRpb09wdGlvbnNcIiBbZm9ybUNvbnRyb2xdPVwiZmVkTGFpZE9mZkZsYWdcIlxyXG4gICAgICAgICAgICAgICAgICBvcHRpb25MYWJlbD1cInRleHRcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZmVkTGFpZE9mZkZsYWcnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCIoKGlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHdvcmtGbGFnLnZhbHVlPT09J1knKSB8fCAhaXNCYXNlUGVyaW9kRW1wbG95ZXIpXHJcbiAgICAgICAgICAgICAgJiYgZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycgJiYgdGhpcy5jdXJyZW50U3RhdGUgIT0gJ0NUJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgICAgZm9yPVwiaXNDbG10UGFpZFdoaWxlTG93XCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQuZW1wbG95ZXIucGF5LnJldHVybi50by53b3JrXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7IGRpc3BsYXk6ZmxleDtcIj5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBpZD1cImlzQ2xtdFBhaWRXaGlsZUxvd1wiIHVuc2VsZWN0YWJsZT1cInRydWVcIiBbb3B0aW9uc109XCJyYWRpb09wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiaXNDbG10UGFpZFdoaWxlTG93XCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mb1xyXG4gICAgICAgICAgICAgICAgICBvdmVybGF5VGV4dD1cInt7J2luZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcuZW1wbG95ZXJQYXlSZXR1cm5Ub1dvcmtJbmZvJ3wgdHJhbnNsYXRlfX1cIlxyXG4gICAgICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi10b3A6IDJweDsgbWFyZ2luLWxlZnQ6IDZweDtcIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2lzQ2xtdFBhaWRXaGlsZUxvdycgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cIigoaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgd29ya0ZsYWcudmFsdWU9PT0nWScpIHx8ICFpc0Jhc2VQZXJpb2RFbXBsb3llcikmJiBlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyAmJiBjdXJyZW50U3RhdGUgPT09J01FJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJoYXNTaG9ydFRlcm1EaXNhYmlsaXR5XCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQuc2hvcnR0ZXJtZGlzYWJpbGl0eVwifHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgICAgICB7e2JwU3RhcnREYXRlVG9EaXNwbGF5IHwgZGF0ZTonTU1NTSBkLCB5eXl5J319ID88L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7XCI+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gaWQ9XCJoYXNTaG9ydFRlcm1EaXNhYmlsaXR5XCIgdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJoYXNTaG9ydFRlcm1EaXNhYmlsaXR5XCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0naGFzU2hvcnRUZXJtRGlzYWJpbGl0eScgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cIigoaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgd29ya0ZsYWcudmFsdWU9PT0nWScpIHx8ICFpc0Jhc2VQZXJpb2RFbXBsb3llcikmJiBlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyAmJiBjdXJyZW50U3RhdGU9PT0nTUUnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImhhc1JlY3ZSZW11bmVyYXRpb25cIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5yZW11bmVyYXRpb24ucGF5XCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7XCI+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gaWQ9XCJoYXNSZWN2UmVtdW5lcmF0aW9uXCIgdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJoYXNSZWN2UmVtdW5lcmF0aW9uXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0naGFzUmVjdlJlbXVuZXJhdGlvbicgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cIigoaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgd29ya0ZsYWcudmFsdWU9PT0nWScpIHx8ICFpc0Jhc2VQZXJpb2RFbXBsb3llcikgJiYgZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycgJiYgY3VycmVudFN0YXRlPT09J01FJyAmJiBoYXNSZWN2UmVtdW5lcmF0aW9uLnZhbHVlPT09J1knICYmIG9zYUJwRW1wbG95ZXJGbGFnLnZhbHVlPT09JzAnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInJlbXVuZXJhdGlvblR5cGVzXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQucmVtdW5lcmF0aW9uLnR5cGVzXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxwLWNoZWNrYm94IFtuYW1lXT1cIidyZW11bmVyYXRpb250eXBlcy1ncm91cCdcIiBbdmFsdWVdPVwiY2hvaWNlLnZhbHVlXCIgW2xhYmVsXT1cImNob2ljZS50ZXh0XCJcclxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjaG9pY2Ugb2YgcmVtdW5lcmF0aW9uVHlwZU9wdGlvbnNcIiBbZm9ybUNvbnRyb2xdPVwicmVtdW5lcmF0aW9uVHlwZXNcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGVDbGFzcz1cImFwcC1wLWNoZWNrYm94XCI+PC9wLWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdyZW11bmVyYXRpb25UeXBlcycgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cIigoaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgd29ya0ZsYWcudmFsdWU9PT0nWScgJiYgc2Nob29sRmxhZyA9PT0nMScpIHx8ICFpc0Jhc2VQZXJpb2RFbXBsb3llcikmJiBlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyAmJiBjdXJyZW50U3RhdGUgPT09J01FJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ2YWNhdGlvblwiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LnZhY2F0aW9uLmJyZWFrXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7XCI+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gaWQ9XCJ2YWNhdGlvblwiIHVuc2VsZWN0YWJsZT1cInRydWVcIiBbb3B0aW9uc109XCJyYWRpb09wdGlvbnNcIiBbZm9ybUNvbnRyb2xdPVwidmFjYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICBvcHRpb25MYWJlbD1cInRleHRcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd2YWNhdGlvbicgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwid29ya1N0YXRlLnZhbHVlICYmIHdvcmtTdGF0ZS52YWx1ZS52YWx1ZT09PXRoaXMuY3VycmVudFN0YXRlICYmIGRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzLnZhbHVlICYmICFpc0Jhc2VQZXJpb2RFbXBsb3llciAmJiBlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJ1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPGg0Pnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucmVnLnZlcmlmaWNhdGlvbi53YWdlcy5oZWFkZXJcInx0cmFuc2xhdGV9fTwvaDQ+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWw+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcudmVyaWZpY2F0aW9uLndhZ2VzLnN1YmhlYWRlclwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIndvcmtUeXBlXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcud29yay50eXBlXCIgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cIndvcmtUeXBlXCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwid29ya1R5cGVcIiBtYXhsZW5ndGg9XCI1MFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd3b3JrVHlwZScgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicGF5bWVudFR5cGVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy52ZXJpZmljYXRpb24ud2FnZXMucGF5bW9kZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBpZD1cInBheW1lbnRUeXBlXCIgdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInBheU1ldGhvZE9wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwicGF5bWVudFR5cGVcIiBvcHRpb25MYWJlbD1cInRleHRcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdwYXltZW50VHlwZScgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJkb2NzUmVjZWl2ZWRcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy52ZXJpZmljYXRpb24ud2FnZXMuZG9jc1wifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBpZD1cImRvY3NSZWNlaXZlZFwiIHVuc2VsZWN0YWJsZT1cInRydWVcIiBbb3B0aW9uc109XCJ3YWdlUHJvb2ZPcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImRvY3NSZWNlaXZlZFwiIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2RvY3NSZWNlaXZlZCcgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJvdGhlclNTTkZsYWdcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy52ZXJpZmljYXRpb24ud2FnZXMub3RoZXIuc3NuLmZsYWdcInx0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgICAgICB7e2JwU3RhcnREYXRlVG9EaXNwbGF5IHwgZGF0ZTonTU1NTSBkLCB5eXl5J319ID9cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiaW5saW5lLXNpemU6IG1pbi1jb250ZW50O1wiPlxyXG4gICAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gaWQ9XCJvdGhlclNTTkZsYWdcIiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicmFkaW9PcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwib3RoZXJTU05GbGFnXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdvdGhlclNTTkZsYWcnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwidGhpcy5vdGhlclNTTkZsYWcudmFsdWUgPT09ICdZJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIm90aGVyU1NOXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcudmVyaWZpY2F0aW9uLndhZ2VzLm90aGVyLnNzblwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxwLWlucHV0TWFzayBtYXNrPVwiOTk5LTk5LTk5OTlcIiBpZD1cIm90aGVyU1NOXCIgW2Zvcm1Db250cm9sXT1cIm90aGVyU1NOXCIgcGxhY2Vob2xkZXI9XCI5OTktOTktOTk5OVwiPlxyXG4gICAgICAgICAgICAgICAgPC9wLWlucHV0TWFzaz5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdvdGhlclNTTicgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJoaXJlZEJ5XCI+TWFuYWdlcidzIE5hbWUgJiBUaXRsZTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImhpcmVkQnlcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJoaXJlZEJ5XCIgbWF4bGVuZ3RoPVwiNDBcIi8+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdoaXJlZEJ5JyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPiAgICAgICAgICAgICBcclxuICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxpb24tcm93XHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJ3b3JrU3RhdGUudmFsdWUgJiYgd29ya1N0YXRlLnZhbHVlLnZhbHVlPT09IHRoaXMuY3VycmVudFN0YXRlICYmIGRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzLnZhbHVlICYmICFpc0Jhc2VQZXJpb2RFbXBsb3llciAmJiBlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJ1wiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgICAgICAgIGZvcj1cIm90aGVyTmFtZUZsYWdcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy52ZXJpZmljYXRpb24ud2FnZXMub3RoZXIubmFtZS5mbGFnXCJ8dHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgICAgICAgICB7e2JwU3RhcnREYXRlVG9EaXNwbGF5IHwgZGF0ZTonTU1NTSBkLCB5eXl5J319ID9cclxuICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImlubGluZS1zaXplOiBtaW4tY29udGVudDtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gaWQ9XCJvdGhlck5hbWVGbGFnXCIgdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwib3RoZXJOYW1lRmxhZ1wiIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdvdGhlck5hbWVGbGFnJyBbZm9ybV09XCJhZGRFbXBsb3llckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cInRoaXMub3RoZXJOYW1lRmxhZy52YWx1ZSA9PT0gJ1knXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgICAgICAgIGZvcj1cIm90aGVyTmFtZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucmVnLnZlcmlmaWNhdGlvbi53YWdlcy5vdGhlci5uYW1lXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJvdGhlck5hbWVcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJvdGhlck5hbWVcIiBtYXhsZW5ndGg9XCIzMFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdvdGhlck5hbWUnIFtmb3JtXT1cImFkZEVtcGxveWVyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG5cclxuICAgICAgICAgICAgPCEtLSA8aW9uLXJvdyAqbmdJZj1cIndvcmtTdGF0ZS52YWx1ZSAmJiB3b3JrU3RhdGUudmFsdWUudmFsdWU9PT0nTVMnICYmIGRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzLnZhbHVlICYmICFpc0Jhc2VQZXJpb2RFbXBsb3llciAmJiBlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJ1wiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmZWluXCI+RkVJTjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIFtpZF09XCJmZWluXCIgW3VzZUdyb3VwaW5nXT1cImZhbHNlXCIgW2Zvcm1Db250cm9sXT1cImZlaW5cIiBtYXhsZW5ndGg9XCI5XCI+PC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZmVpbicgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMVwiPjwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZG9pbmdCdXNpbmVzc0FzXCI+RG9pbmcgQnVzaW5lc3MgQXMvVHJhZGUgTmFtZTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImRvaW5nQnVzaW5lc3NBc1wiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cImRvaW5nQnVzaW5lc3NBc1wiIG1heGxlbmd0aD1cIjEwMFwiLz5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2RvaW5nQnVzaW5lc3NBcycgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PiAtLT5cclxuXHJcbiAgICAgICAgICAgIDwhLS08aW9uLXJvdyAqbmdJZj1cIndvcmtTdGF0ZS52YWx1ZSAmJiB3b3JrU3RhdGUudmFsdWUudmFsdWU9PT10aGlzLmN1cnJlbnRTdGF0ZSAmJiBkaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZSBcclxuICAgICAgICAgICAgICAgICYmICFpc0Jhc2VQZXJpb2RFbXBsb3llciAmJiBlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyAmJiBmYWxzZVwiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJidXNpbmVzc05hdHVyZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucmVnLnZlcmlmaWNhdGlvbi5uYXR1cmVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImJ1c2luZXNzTmF0dXJlXCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwiYnVzaW5lc3NOYXR1cmVcIiBtYXhsZW5ndGg9XCIyNTBcIi8+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdidXNpbmVzc05hdHVyZScgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93Pi0tPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiKCh3b3JrU3RhdGUudmFsdWUgJiYgd29ya1N0YXRlLnZhbHVlLnZhbHVlPT09Y3VycmVudFN0YXRlICYmIGVtcGxveWVyVHlwZSAmJiBkaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZSAmJiAhaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycpIFxyXG4gICAgICAgICAgICAgICAgICAgIHx8IChlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJyAmJiBpc05ld0NsYWltKSkgJiYgKGVtcGxveWVyVHlwZS52YWx1ZSE9J01JTCcpXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsPjxiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLnZlcmlmaWNhdGlvbi53YWdlc1wifHRyYW5zbGF0ZX19PC9iPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsPjxiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucmVnLnZlcmlmaWNhdGlvbi53YWdlc1wifHRyYW5zbGF0ZX19PC9iPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLnZlcmlmaWNhdGlvbi53YWdlcy5zdGF0ZW1lbnRcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8dGFibGUgcnVsZXM9cm93cz5cclxuICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy52ZXJpZmljYXRpb24ud2FnZXMuY29sMVwifHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICA8dGg+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcudmVyaWZpY2F0aW9uLndhZ2VzLmNvbDJcInx0cmFuc2xhdGV9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgZm9ybUFycmF5TmFtZT1cIndhZ2VBbW91bnRBcnJheVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHdhZ2VBbW91bnRGb3JtIG9mIHdhZ2VBbW91bnRBcnJheS5jb250cm9sczsgbGV0IGkgPSBpbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbZm9ybUdyb3VwTmFtZV09XCJpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dHJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIoKGVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnKSB8fCAoZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycgJiYgd2FnZUFtb3VudEZvcm0udmFsdWUuZGlzcGxheUZvckFsbD09PXRydWUpIClcIiBjbGFzcz1cInF1YXJ0ZXJUZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB7e3dhZ2VBbW91bnRGb3JtLnZhbHVlLnF0clllYXJEaXNwbGF5U3RyaW5nfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIFtpbnB1dElkXT1cIid3YWdlQW1vdW50JyArIGlcIiBhcmlhTGFiZWw9XCJ3YWdlQW1vdW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIndhZ2VBbW91bnRcIiBtb2RlPVwiY3VycmVuY3lcIiBbbWluXT1cIjAuMDBcIiBbbWF4XT1cIjk5OTk5OS45OVwiIG1heGxlbmd0aD1cIjEyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbmN5PVwiVVNEXCIgbG9jYWxlPVwiZW4tVVNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ciAqbmdJZj1cIndhZ2VBbW91bnRBcnJheS5lcnJvcnM/LnJlcXVpcmVDaGVja2JveFRvQmVDaGVja2VkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3dhZ2VBbW91bnRBcnJheScgW2Zvcm1dPVwiYWRkRW1wbG95ZXJGb3JtRGlyZWN0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVDaGVja2JveFRvQmVDaGVja2VkOiAnYXQgbGVhc3Qgb25lIGFtb3VudCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCdcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoc3RhdGVtZW50MSB8IHRyYW5zbGF0ZSlcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBbaW5uZXJIVE1MXT1cInNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChzdGF0ZW1lbnQyIHwgdHJhbnNsYXRlKVwiPjwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBbaW5uZXJIVE1MXT1cInNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChzdGF0ZW1lbnQzIHwgdHJhbnNsYXRlKVwiPjwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoc3RhdGVtZW50NCB8IHRyYW5zbGF0ZSlcIlxyXG4gICAgICAgICAgICAgICAgICBzdHlsZT1cInBhZGRpbmctbGVmdDogMTVweDtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgIDwvaW9uLXJvdz5cclxuXHJcbiAgICAgIDxpb24tcm93PlxyXG4gICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXRleHQtcmlnaHRcIj5cclxuICAgICAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiBzdHlsZT1cIndpZHRoOiA4MHB4O1wiIGZpbGw9XCJvdXRsaW5lXCIgKGNsaWNrKT1cIm9uTW9kZWxDYW5jZWwoZmFsc2UpXCJcclxuICAgICAgICAgICAgdHlwZT1cInJlc2V0XCI+e3tcImluZHVjdGlvbi5lbXBsb3ltZW50LmJ1dHRvbi5jYW5jZWxcInx0cmFuc2xhdGV9fSA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgc3R5bGU9XCJ3aWR0aDogODBweDtcIiAoY2xpY2spPVwic2F2ZSgpXCIgdHlwZT1cInN1Ym1pdFwiICpuZ0lmPVwiaXNCYXNlUGVyaW9kRW1wbG95ZXJcIj5cclxuICAgICAgICAgICAge3tcImluZHVjdGlvbi5lbXBsb3ltZW50LmJ1dHRvbi5zYXZlXCJ8dHJhbnNsYXRlfX0gPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIHN0eWxlPVwid2lkdGg6IDgwcHg7XCIgKGNsaWNrKT1cImFkZCgpXCIgdHlwZT1cInN1Ym1pdFwiICpuZ0lmPVwiIWlzQmFzZVBlcmlvZEVtcGxveWVyXCI+XHJcbiAgICAgICAgICAgIHt7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC5idXR0b24uYWRkXCJ8dHJhbnNsYXRlfX0gPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgPC9pb24tcm93PlxyXG5cclxuICAgIDwvaW9uLWdyaWQ+XHJcbiAgPC9mb3JtPlxyXG48L3AtZGlhbG9nPiJdfQ==
|