@reusa/ngx-reusa-app-lib 0.0.1300 → 0.0.1301
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-participant/add-participant.component.mjs +14 -10
- package/esm2022/lib/components/address/address.component.mjs +26 -8
- package/esm2022/lib/components/address-suggestion/address-suggestion.component.mjs +29 -10
- package/esm2022/lib/components/history-page/history-page.component.mjs +9 -6
- package/esm2022/lib/components/proof-of-anything/proof-of-anything.component.mjs +8 -2
- package/esm2022/lib/components/questionnaire/dynamic-form-question.component.mjs +7 -6
- package/esm2022/lib/components/questionnaire/dynamic-form.component.mjs +40 -36
- package/esm2022/lib/models/fileupload/FileObjectArray.mjs +1 -1
- package/fesm2022/reusa-ngx-reusa-app-lib.mjs +124 -70
- package/fesm2022/reusa-ngx-reusa-app-lib.mjs.map +1 -1
- package/lib/components/add-participant/add-participant.component.d.ts +1 -0
- package/lib/components/add-participant/add-participant.component.d.ts.map +1 -1
- package/lib/components/address/address.component.d.ts +6 -3
- package/lib/components/address/address.component.d.ts.map +1 -1
- package/lib/components/address-suggestion/address-suggestion.component.d.ts +5 -2
- package/lib/components/address-suggestion/address-suggestion.component.d.ts.map +1 -1
- package/lib/components/history-page/history-page.component.d.ts +1 -0
- package/lib/components/history-page/history-page.component.d.ts.map +1 -1
- package/lib/components/proof-of-anything/proof-of-anything.component.d.ts +2 -1
- package/lib/components/proof-of-anything/proof-of-anything.component.d.ts.map +1 -1
- package/lib/components/questionnaire/dynamic-form-question.component.d.ts +2 -1
- package/lib/components/questionnaire/dynamic-form-question.component.d.ts.map +1 -1
- package/lib/models/fileupload/FileObjectArray.d.ts +1 -0
- package/lib/models/fileupload/FileObjectArray.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Component, ViewChild, Input } from '@angular/core';
|
|
2
2
|
import { FormGroup, Validators, FormControl, NG_VALUE_ACCESSOR, } from '@angular/forms';
|
|
3
|
+
import { LibConstants } from '../../models/LibConstants';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
import * as i1 from "@angular/forms";
|
|
5
6
|
import * as i2 from "../../services/util/util.service";
|
|
@@ -131,18 +132,20 @@ function AddParticipantComponent_form_6_div_16_Template(rf, ctx) { if (rf & 1) {
|
|
|
131
132
|
} if (rf & 2) {
|
|
132
133
|
const ctx_r16 = i0.ɵɵnextContext(2);
|
|
133
134
|
i0.ɵɵadvance(3);
|
|
134
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4,
|
|
135
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 17, "add.participant.lawyer.name"));
|
|
135
136
|
i0.ɵɵadvance(2);
|
|
136
137
|
i0.ɵɵpropertyInterpolate("placeholder", (ctx_r16.role.value == null ? null : ctx_r16.role.value.value) == "ATNY" ? "Attorney Name" : "Representatative Name");
|
|
137
138
|
i0.ɵɵadvance(1);
|
|
138
139
|
i0.ɵɵclassMap("app-grid");
|
|
139
|
-
i0.ɵɵproperty("field", ctx_r16.name)("form", ctx_r16.userForm)("errDef", i0.ɵɵpureFunction0(
|
|
140
|
+
i0.ɵɵproperty("field", ctx_r16.name)("form", ctx_r16.userForm)("errDef", i0.ɵɵpureFunction0(21, _c5));
|
|
140
141
|
i0.ɵɵadvance(3);
|
|
141
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(10,
|
|
142
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(10, 19, "add.participant.lawyer.phone"));
|
|
142
143
|
i0.ɵɵadvance(3);
|
|
143
144
|
i0.ɵɵclassMap("app-grid block mb-2");
|
|
144
|
-
i0.ɵɵproperty("field", ctx_r16.phone)("form", ctx_r16.userForm)("errDef", i0.ɵɵpureFunction0(
|
|
145
|
-
i0.ɵɵadvance(
|
|
145
|
+
i0.ɵɵproperty("field", ctx_r16.phone)("form", ctx_r16.userForm)("errDef", i0.ɵɵpureFunction0(22, _c5));
|
|
146
|
+
i0.ɵɵadvance(3);
|
|
147
|
+
i0.ɵɵproperty("enableAddressValidation", ctx_r16.isAddressValidationEnabled)("inputId", "address")("standaloneAddressForm", true);
|
|
148
|
+
i0.ɵɵadvance(2);
|
|
146
149
|
i0.ɵɵproperty("ngIf", !ctx_r16.util.isState("ME"));
|
|
147
150
|
} }
|
|
148
151
|
function AddParticipantComponent_form_6_div_17_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -201,7 +204,7 @@ function AddParticipantComponent_form_6_Template(rf, ctx) { if (rf & 1) {
|
|
|
201
204
|
i0.ɵɵelement(14, "p-selectButton", 17);
|
|
202
205
|
i0.ɵɵtemplate(15, AddParticipantComponent_form_6_span_15_Template, 3, 3, "span", 18);
|
|
203
206
|
i0.ɵɵelementEnd();
|
|
204
|
-
i0.ɵɵtemplate(16, AddParticipantComponent_form_6_div_16_Template, 23,
|
|
207
|
+
i0.ɵɵtemplate(16, AddParticipantComponent_form_6_div_16_Template, 23, 23, "div", 19)(17, AddParticipantComponent_form_6_div_17_Template, 18, 18, "div", 20);
|
|
205
208
|
i0.ɵɵelementEnd();
|
|
206
209
|
} if (rf & 2) {
|
|
207
210
|
const ctx_r4 = i0.ɵɵnextContext();
|
|
@@ -232,6 +235,7 @@ export class AddParticipantComponent {
|
|
|
232
235
|
this.visible = false;
|
|
233
236
|
this.indexToEdit = null;
|
|
234
237
|
this.roles = [];
|
|
238
|
+
this.isAddressValidationEnabled = LibConstants.isAddressValidationEnabled == 'true';
|
|
235
239
|
this.participantList = [];
|
|
236
240
|
this.userForm = this.fb.group({
|
|
237
241
|
name: new FormControl(null, Validators.required),
|
|
@@ -415,7 +419,7 @@ export class AddParticipantComponent {
|
|
|
415
419
|
provide: NG_VALUE_ACCESSOR,
|
|
416
420
|
useExisting: AddParticipantComponent,
|
|
417
421
|
multi: true
|
|
418
|
-
}])], decls: 7, vars: 3, consts: [[3, "rowHover", "value"], ["dt", ""], ["pTemplate", "header"], ["pTemplate", "body"], ["pTemplate", "footer"], [1, "align"], ["style", "margin-left:16px", 3, "formGroup", "ngSubmit", 4, "ngIf"], ["fill", "outline", "size", "small", 1, "action-button", 3, "click"], [1, "action-icon", 3, "icon"], [3, "innerHtml"], [1, "col-offset-4", "action-button"], ["fill", "outline", "size", "small", "shape", "square", 1, "action-button", 3, "click"], [2, "margin-left", "16px", 3, "formGroup", "ngSubmit"], ["participantForm", "ngForm"], [1, "field-grid"], [1, "heading"], [2, "padding-left", "0px"], ["optionLabel", "name", "formControlName", "role", "required", "", "optionDisabled", "disabledRole", 3, "options"], ["class", "help-block", 4, "ngIf"], ["class", "formgrid grid", "style", "margin-top:10px", 4, "ngIf"], ["class", "formgrid grid", 4, "ngIf"], [1, "help-block"], [1, "formgrid", "grid", 2, "margin-top", "10px"], [1, "field", "col-4", "md:col-2"], [2, "margin", "4px"], ["type", "text", "pInputText", "", "formControlName", "name", 1, "text-base", "text-color", "surface-overlay", "p-2", "border-1", "border-solid", "surface-border", "border-round", "appearance-none", "outline-none", "focus:border-primary", "w-full", 3, "placeholder"], [3, "field", "form", "errDef"], [1, "field", "col-4", "md:col-9"], [1, "block", "mb-2"], ["mask", "999-999-9999", "placeholder", "999-999-9999", "formControlName", "phone", "unmask", "true"], [1, "field", "col-4", "md:col-9", "field-grid"], ["formControlName", "address"], ["participantAddress", ""], ["class", "field col-4 md:col-9 field-grid", 4, "ngIf"], ["fill", "outline", "shape", "round", 1, "col-offset-3", 3, "click"], ["fill", "outline", "shape", "round", "type", "submit", 1, "col-offset-1", 3, "click"], [2, "padding", "10px 0 0 2px"], [1, "formgrid", "grid"], [2, "margin", "10px 0px"], ["type", "text", "pInputText", "", "formControlName", "name", "placeholder", "Witness Name", 1, "text-base", "text-color", "surface-overlay", "p-2", "border-1", "border-solid", "surface-border", "border-round", "appearance-none", "outline-none", "focus:border-primary", "w-full"], [1, "field", "col-4", "md:col-9", 2, "padding-top", "12px"], [1, "field", "col-12", "md:col-9", 2, "margin-top", "20px"], ["type", "submit", "fill", "outline", "shape", "round", 1, "col-offset-1", 3, "click"]], template: function AddParticipantComponent_Template(rf, ctx) { if (rf & 1) {
|
|
422
|
+
}])], decls: 7, vars: 3, consts: [[3, "rowHover", "value"], ["dt", ""], ["pTemplate", "header"], ["pTemplate", "body"], ["pTemplate", "footer"], [1, "align"], ["style", "margin-left:16px", 3, "formGroup", "ngSubmit", 4, "ngIf"], ["fill", "outline", "size", "small", 1, "action-button", 3, "click"], [1, "action-icon", 3, "icon"], [3, "innerHtml"], [1, "col-offset-4", "action-button"], ["fill", "outline", "size", "small", "shape", "square", 1, "action-button", 3, "click"], [2, "margin-left", "16px", 3, "formGroup", "ngSubmit"], ["participantForm", "ngForm"], [1, "field-grid"], [1, "heading"], [2, "padding-left", "0px"], ["optionLabel", "name", "formControlName", "role", "required", "", "optionDisabled", "disabledRole", 3, "options"], ["class", "help-block", 4, "ngIf"], ["class", "formgrid grid", "style", "margin-top:10px", 4, "ngIf"], ["class", "formgrid grid", 4, "ngIf"], [1, "help-block"], [1, "formgrid", "grid", 2, "margin-top", "10px"], [1, "field", "col-4", "md:col-2"], [2, "margin", "4px"], ["type", "text", "pInputText", "", "formControlName", "name", 1, "text-base", "text-color", "surface-overlay", "p-2", "border-1", "border-solid", "surface-border", "border-round", "appearance-none", "outline-none", "focus:border-primary", "w-full", 3, "placeholder"], [3, "field", "form", "errDef"], [1, "field", "col-4", "md:col-9"], [1, "block", "mb-2"], ["mask", "999-999-9999", "placeholder", "999-999-9999", "formControlName", "phone", "unmask", "true"], [1, "field", "col-4", "md:col-9", "field-grid"], ["formControlName", "address", 3, "enableAddressValidation", "inputId", "standaloneAddressForm"], ["participantAddress", ""], ["class", "field col-4 md:col-9 field-grid", 4, "ngIf"], ["fill", "outline", "shape", "round", 1, "col-offset-3", 3, "click"], ["fill", "outline", "shape", "round", "type", "submit", 1, "col-offset-1", 3, "click"], [2, "padding", "10px 0 0 2px"], [1, "formgrid", "grid"], [2, "margin", "10px 0px"], ["type", "text", "pInputText", "", "formControlName", "name", "placeholder", "Witness Name", 1, "text-base", "text-color", "surface-overlay", "p-2", "border-1", "border-solid", "surface-border", "border-round", "appearance-none", "outline-none", "focus:border-primary", "w-full"], [1, "field", "col-4", "md:col-9", 2, "padding-top", "12px"], [1, "field", "col-12", "md:col-9", 2, "margin-top", "20px"], ["type", "submit", "fill", "outline", "shape", "round", 1, "col-offset-1", 3, "click"]], template: function AddParticipantComponent_Template(rf, ctx) { if (rf & 1) {
|
|
419
423
|
i0.ɵɵelementStart(0, "p-table", 0, 1);
|
|
420
424
|
i0.ɵɵtemplate(2, AddParticipantComponent_ng_template_2_Template, 11, 9, "ng-template", 2)(3, AddParticipantComponent_ng_template_3_Template, 15, 7, "ng-template", 3)(4, AddParticipantComponent_ng_template_4_Template, 9, 5, "ng-template", 4);
|
|
421
425
|
i0.ɵɵelementEnd();
|
|
@@ -434,7 +438,7 @@ export class AddParticipantComponent {
|
|
|
434
438
|
provide: NG_VALUE_ACCESSOR,
|
|
435
439
|
useExisting: AddParticipantComponent,
|
|
436
440
|
multi: true
|
|
437
|
-
}], template: "<p-table #dt [rowHover]=\"true\" [value]=\"participantList\" >\r\n <ng-template pTemplate=\"header\" let-columns >\r\n <tr >\r\n <th> {{\"add.participant.header.participantRole\"|translate}}</th>\r\n <th>{{\"add.participant.header.name\"|translate}}</th>\r\n <th> {{\"add.participant.header.phone\"|translate}}</th>\r\n <th></th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-participant let-rowIndex=\"rowIndex\">\r\n <tr >\r\n\r\n <td ><span>{{participant.role.name}}</span></td>\r\n <td><span>{{participant.name}}</span></td>\r\n <td><span>{{participant.phone}}</span></td>\r\n <td>\r\n <ion-button fill=\"outline\" (click)=\"editItem(participant)\" size=\"small\" class=\"action-button\">\r\n <fa-icon [icon]=\"['fal', 'edit']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n <ion-button (click)=\"removeItem(participant)\" fill=\"outline\" size=\"small\" class=\"action-button\">\r\n <fa-icon [icon]=\"['fal', 'trash-alt']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"footer\" let-columns>\r\n <tr>\r\n <td><span [innerHtml]=\"'add.participant.footer.addElement'|translate\"></span></td>\r\n <td></td>\r\n <td></td>\r\n <td class=\"col-offset-4 action-button\">\r\n <ion-button (click)=\"addRole()\" fill=\"outline\" size=\"small\" shape=\"square\" class=\"action-button\">\r\n <fa-icon [icon]=\"['fal', 'plus']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n</p-table>\r\n<div class=\"align\">\r\n<form [formGroup]=\"userForm\" *ngIf=\"visible\" (ngSubmit)=\"onSubmit()\" #participantForm=\"ngForm\" style=\"margin-left:16px\">\r\n <div class=\"field-grid\">\r\n <br>\r\n <h1 class=\"heading\">{{\"add.participant.header.heading\"|translate}}</h1>\r\n <br>\r\n </div>\r\n <div class=\"field-grid\"><label> {{isAppealLevelSecond =='N' ? (\"add.participant.header.question\"|translate) : (\"add.participant.header.appealLevel2Question\"|translate)}}</label></div>\r\n \r\n <div style=\"padding-left: 0px;\">\r\n <p-selectButton [options]=\"roles\" optionLabel=\"name\" formControlName=\"role\" required optionDisabled=\"disabledRole\"\r\n [class.has-error]=\"role.dirty && role.invalid\">\r\n </p-selectButton>\r\n <span class=\"help-block\" *ngIf=\"role.dirty && role.invalid\">{{\"induction.required\"| translate}}</span>\r\n </div>\r\n <div class=\"formgrid grid\" *ngIf=\"role.value?.value =='ATNY' || role.value?.value=='RPRT'\" style=\"margin-top:10px\">\r\n <div class=\"field col-4 md:col-2\"><label style=\"margin:4px\">{{\"add.participant.lawyer.name\"|translate}}</label>\r\n <input type=\"text\" pInputText formControlName=\"name\" placeholder=\"{{role.value?.value =='ATNY' ? 'Attorney Name' : 'Representatative Name'}}\"\r\n class=\"text-base text-color surface-overlay p-2 border-1 border-solid surface-border border-round appearance-none outline-none focus:border-primary w-full\"/>\r\n <app-error [class]=\"'app-grid'\" [field]='name' [form]=\"userForm\" [errDef]=\"{ \r\n required: 'Required.'}\">\r\n </app-error>\r\n </div>\r\n\r\n <div class=\"field col-4 md:col-9\"><span\r\n class=\"block mb-2\">{{\"add.participant.lawyer.phone\"|translate}}</span>\r\n <p-inputMask mask=\"999-999-9999\" placeholder=\"999-999-9999\" formControlName=\"phone\" unmask=\"true\"></p-inputMask>\r\n <app-error [class]=\"'app-grid block mb-2'\" [field]='phone' [form]=\"userForm\" [errDef]=\"{ \r\n required: 'Required.'}\">\r\n </app-error>\r\n </div>\r\n <br />\r\n\r\n <div class=\"field col-4 md:col-9 field-grid\">\r\n <app-address #participantAddress formControlName=\"address\"></app-address>\r\n <div *ngIf=\"!util.isState('ME')\" class=\"field col-4 md:col-9 field-grid\"><label style=\"padding: 10px 0 0 2px\">{{\"add.participant.footer.declaration\"|translate}}</label></div>\r\n </div>\r\n <div class=\"field col-4 md:col-9\">\r\n <ion-button (click)=\"close()\" fill=\"outline\" shape=\"round\" class=\"col-offset-3\">Clear</ion-button>\r\n <ion-button (click)=\"onSubmit()\" fill=\"outline\" shape=\"round\" type=\"submit\" class=\"col-offset-1\">Save</ion-button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"formgrid grid\" *ngIf=\"role.value?.value =='WITN'\">\r\n <div class=\"field col-4 md:col-2\"><label style=\"margin:10px 0px\">{{\"add.participant.observer.name\"|translate}}</label>\r\n <input type=\"text\" pInputText formControlName=\"name\" placeholder=\"Witness Name\"\r\n class=\"text-base text-color surface-overlay p-2 border-1 border-solid surface-border border-round appearance-none outline-none focus:border-primary w-full\">\r\n <app-error [class]=\"'app-grid'\" [field]='name' [form]=\"userForm\" [errDef]=\"{ \r\n required: 'Required.'}\">\r\n </app-error>\r\n </div>\r\n\r\n <div class=\"field col-4 md:col-9\" style=\"padding-top:12px\">\r\n <span class=\"block mb-2\">{{\"add.participant.observer.phone\"|translate}}</span>\r\n <p-inputMask mask=\"999-999-9999\" placeholder=\"999-999-9999\" formControlName=\"phone\" unmask=\"true\"></p-inputMask>\r\n <app-error [class]=\"'app-grid block mb-2'\" [field]='phone' [form]=\"userForm\" [errDef]=\"{ \r\n required: 'Required.'}\">\r\n </app-error>\r\n </div>\r\n <div class=\"field col-12 md:col-9\" style=\"margin-top: 20px;\">\r\n <ion-button (click)=\"close()\" fill=\"outline\" shape=\"round\" class=\"col-offset-3\">Clear</ion-button>\r\n\r\n <ion-button (click)=\"onSubmit()\" type=\"submit\" fill=\"outline\" shape=\"round\" class=\"col-offset-1\">Save</ion-button>\r\n </div>\r\n </div>\r\n</form>\r\n</div>", styles: [".help-block{color:red}p-table{margin:0 -16px}.align{margin:0 -16px}:host ::ng-deep p-selectbutton.ng-dirty.ng-invalid>.p-selectbutton>.p-button{border:1px solid red!important;color:red!important}:host ::ng-deep .p-selectbutton .p-button{margin-top:15px!important}:host ::ng-deep .p-datatable.app-datatable .p-datatable-thead>tr>th,:host ::ng-deep .p-datatable.app-datatable .p-datatable-tfoot>tr>td{padding-left:17px!important}:host ::ng-deep th{width:300px;font-weight:700!important}\n"] }]
|
|
441
|
+
}], template: "<p-table #dt [rowHover]=\"true\" [value]=\"participantList\" >\r\n <ng-template pTemplate=\"header\" let-columns >\r\n <tr >\r\n <th> {{\"add.participant.header.participantRole\"|translate}}</th>\r\n <th>{{\"add.participant.header.name\"|translate}}</th>\r\n <th> {{\"add.participant.header.phone\"|translate}}</th>\r\n <th></th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-participant let-rowIndex=\"rowIndex\">\r\n <tr >\r\n\r\n <td ><span>{{participant.role.name}}</span></td>\r\n <td><span>{{participant.name}}</span></td>\r\n <td><span>{{participant.phone}}</span></td>\r\n <td>\r\n <ion-button fill=\"outline\" (click)=\"editItem(participant)\" size=\"small\" class=\"action-button\">\r\n <fa-icon [icon]=\"['fal', 'edit']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n <ion-button (click)=\"removeItem(participant)\" fill=\"outline\" size=\"small\" class=\"action-button\">\r\n <fa-icon [icon]=\"['fal', 'trash-alt']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"footer\" let-columns>\r\n <tr>\r\n <td><span [innerHtml]=\"'add.participant.footer.addElement'|translate\"></span></td>\r\n <td></td>\r\n <td></td>\r\n <td class=\"col-offset-4 action-button\">\r\n <ion-button (click)=\"addRole()\" fill=\"outline\" size=\"small\" shape=\"square\" class=\"action-button\">\r\n <fa-icon [icon]=\"['fal', 'plus']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n</p-table>\r\n<div class=\"align\">\r\n<form [formGroup]=\"userForm\" *ngIf=\"visible\" (ngSubmit)=\"onSubmit()\" #participantForm=\"ngForm\" style=\"margin-left:16px\">\r\n <div class=\"field-grid\">\r\n <br>\r\n <h1 class=\"heading\">{{\"add.participant.header.heading\"|translate}}</h1>\r\n <br>\r\n </div>\r\n <div class=\"field-grid\"><label> {{isAppealLevelSecond =='N' ? (\"add.participant.header.question\"|translate) : (\"add.participant.header.appealLevel2Question\"|translate)}}</label></div>\r\n \r\n <div style=\"padding-left: 0px;\">\r\n <p-selectButton [options]=\"roles\" optionLabel=\"name\" formControlName=\"role\" required optionDisabled=\"disabledRole\"\r\n [class.has-error]=\"role.dirty && role.invalid\">\r\n </p-selectButton>\r\n <span class=\"help-block\" *ngIf=\"role.dirty && role.invalid\">{{\"induction.required\"| translate}}</span>\r\n </div>\r\n <div class=\"formgrid grid\" *ngIf=\"role.value?.value =='ATNY' || role.value?.value=='RPRT'\" style=\"margin-top:10px\">\r\n <div class=\"field col-4 md:col-2\"><label style=\"margin:4px\">{{\"add.participant.lawyer.name\"|translate}}</label>\r\n <input type=\"text\" pInputText formControlName=\"name\" placeholder=\"{{role.value?.value =='ATNY' ? 'Attorney Name' : 'Representatative Name'}}\"\r\n class=\"text-base text-color surface-overlay p-2 border-1 border-solid surface-border border-round appearance-none outline-none focus:border-primary w-full\"/>\r\n <app-error [class]=\"'app-grid'\" [field]='name' [form]=\"userForm\" [errDef]=\"{ \r\n required: 'Required.'}\">\r\n </app-error>\r\n </div>\r\n\r\n <div class=\"field col-4 md:col-9\"><span\r\n class=\"block mb-2\">{{\"add.participant.lawyer.phone\"|translate}}</span>\r\n <p-inputMask mask=\"999-999-9999\" placeholder=\"999-999-9999\" formControlName=\"phone\" unmask=\"true\"></p-inputMask>\r\n <app-error [class]=\"'app-grid block mb-2'\" [field]='phone' [form]=\"userForm\" [errDef]=\"{ \r\n required: 'Required.'}\">\r\n </app-error>\r\n </div>\r\n <br />\r\n\r\n <div class=\"field col-4 md:col-9 field-grid\">\r\n <app-address #participantAddress [enableAddressValidation]=\"isAddressValidationEnabled\" [inputId]=\"'address'\" [standaloneAddressForm]=\"true\" formControlName=\"address\"></app-address>\r\n <div *ngIf=\"!util.isState('ME')\" class=\"field col-4 md:col-9 field-grid\"><label style=\"padding: 10px 0 0 2px\">{{\"add.participant.footer.declaration\"|translate}}</label></div>\r\n </div>\r\n <div class=\"field col-4 md:col-9\">\r\n <ion-button (click)=\"close()\" fill=\"outline\" shape=\"round\" class=\"col-offset-3\">Clear</ion-button>\r\n <ion-button (click)=\"onSubmit()\" fill=\"outline\" shape=\"round\" type=\"submit\" class=\"col-offset-1\">Save</ion-button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"formgrid grid\" *ngIf=\"role.value?.value =='WITN'\">\r\n <div class=\"field col-4 md:col-2\"><label style=\"margin:10px 0px\">{{\"add.participant.observer.name\"|translate}}</label>\r\n <input type=\"text\" pInputText formControlName=\"name\" placeholder=\"Witness Name\"\r\n class=\"text-base text-color surface-overlay p-2 border-1 border-solid surface-border border-round appearance-none outline-none focus:border-primary w-full\">\r\n <app-error [class]=\"'app-grid'\" [field]='name' [form]=\"userForm\" [errDef]=\"{ \r\n required: 'Required.'}\">\r\n </app-error>\r\n </div>\r\n\r\n <div class=\"field col-4 md:col-9\" style=\"padding-top:12px\">\r\n <span class=\"block mb-2\">{{\"add.participant.observer.phone\"|translate}}</span>\r\n <p-inputMask mask=\"999-999-9999\" placeholder=\"999-999-9999\" formControlName=\"phone\" unmask=\"true\"></p-inputMask>\r\n <app-error [class]=\"'app-grid block mb-2'\" [field]='phone' [form]=\"userForm\" [errDef]=\"{ \r\n required: 'Required.'}\">\r\n </app-error>\r\n </div>\r\n <div class=\"field col-12 md:col-9\" style=\"margin-top: 20px;\">\r\n <ion-button (click)=\"close()\" fill=\"outline\" shape=\"round\" class=\"col-offset-3\">Clear</ion-button>\r\n\r\n <ion-button (click)=\"onSubmit()\" type=\"submit\" fill=\"outline\" shape=\"round\" class=\"col-offset-1\">Save</ion-button>\r\n </div>\r\n </div>\r\n</form>\r\n</div>", styles: [".help-block{color:red}p-table{margin:0 -16px}.align{margin:0 -16px}:host ::ng-deep p-selectbutton.ng-dirty.ng-invalid>.p-selectbutton>.p-button{border:1px solid red!important;color:red!important}:host ::ng-deep .p-selectbutton .p-button{margin-top:15px!important}:host ::ng-deep .p-datatable.app-datatable .p-datatable-thead>tr>th,:host ::ng-deep .p-datatable.app-datatable .p-datatable-tfoot>tr>td{padding-left:17px!important}:host ::ng-deep th{width:300px;font-weight:700!important}\n"] }]
|
|
438
442
|
}], () => [{ type: i1.FormBuilder }, { type: i2.UtilService }, { type: i3.ValidationService }, { type: i4.AppealService }], { participantAddress: [{
|
|
439
443
|
type: ViewChild,
|
|
440
444
|
args: ['participantAddress', { static: false }]
|
|
@@ -444,5 +448,5 @@ export class AddParticipantComponent {
|
|
|
444
448
|
}], dynamicParam: [{
|
|
445
449
|
type: Input
|
|
446
450
|
}] }); })();
|
|
447
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AddParticipantComponent, { className: "AddParticipantComponent", filePath: "lib\\components\\add-participant\\add-participant.component.ts", lineNumber:
|
|
448
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXBhcnRpY2lwYW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9hZGQtcGFydGljaXBhbnQvYWRkLXBhcnRpY2lwYW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9hZGQtcGFydGljaXBhbnQvYWRkLXBhcnRpY2lwYW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLFNBQVMsRUFBQyxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUFlLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFnQyxpQkFBaUIsR0FBRyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7SUNDL0gsMEJBQUssU0FBQTtJQUNFLFlBQXNEOztJQUFBLGlCQUFLO0lBQ2hFLDBCQUFJO0lBQUEsWUFBMkM7O0lBQUEsaUJBQUs7SUFDcEQsMEJBQUk7SUFBQyxZQUE0Qzs7SUFBQSxpQkFBSztJQUN0RCxzQkFBUztJQUNYLGlCQUFLOztJQUpFLGVBQXNEO0lBQXRELDhGQUFzRDtJQUN2RCxlQUEyQztJQUEzQyx5RUFBMkM7SUFDMUMsZUFBNEM7SUFBNUMsb0ZBQTRDOzs7Ozs7SUFLbkQsMEJBQUssU0FBQSxXQUFBO0lBRVEsWUFBeUI7SUFBQSxpQkFBTyxFQUFBO0lBQzNDLDBCQUFJLFdBQUE7SUFBTSxZQUFvQjtJQUFBLGlCQUFPLEVBQUE7SUFDckMsMEJBQUksV0FBQTtJQUFNLFlBQXFCO0lBQUEsaUJBQU8sRUFBQTtJQUN0QywyQkFBSSxxQkFBQTtJQUN5QixtUEFBUyxlQUFBLCtCQUFxQixDQUFBLElBQUM7SUFDeEQsOEJBQWdFO0lBQ2xFLGlCQUFhO0lBQ2Isc0NBQWlHO0lBQXJGLG9QQUFTLGVBQUEsa0NBQXVCLENBQUEsSUFBQztJQUMzQyw4QkFBcUU7SUFDdkUsaUJBQWEsRUFBQSxFQUFBOzs7SUFUSixlQUF5QjtJQUF6Qiw4Q0FBeUI7SUFDMUIsZUFBb0I7SUFBcEIseUNBQW9CO0lBQ3BCLGVBQXFCO0lBQXJCLDBDQUFxQjtJQUdsQixlQUF3QjtJQUF4QixpREFBd0I7SUFHeEIsZUFBNkI7SUFBN0IsaURBQTZCOzs7OztJQU01QywwQkFBSSxTQUFBO0lBQ0UsMEJBQXlFOztJQUFBLGlCQUFLO0lBQ2xGLHFCQUFTLFNBQUE7SUFFVCw4QkFBdUMscUJBQUE7SUFDekIsa0xBQVMsZUFBQSxpQkFBUyxDQUFBLElBQUM7SUFDN0IsNkJBQWdFO0lBQ2xFLGlCQUFhLEVBQUEsRUFBQTs7SUFOTCxlQUEyRDtJQUEzRCx3R0FBMkQ7SUFLeEQsZUFBd0I7SUFBeEIsaURBQXdCOzs7SUFtQnZDLGdDQUE0RDtJQUFBLFlBQW1DOztJQUFBLGlCQUFPOztJQUExQyxlQUFtQztJQUFuQyxnRUFBbUM7OztJQXNCN0YsK0JBQXlFLGdCQUFBO0lBQXFDLFlBQWtEOztJQUFBLGlCQUFRLEVBQUE7O0lBQTFELGVBQWtEO0lBQWxELGdGQUFrRDs7Ozs7SUFwQnBLLCtCQUFtSCxjQUFBLGdCQUFBO0lBQ3JELFlBQTJDOztJQUFBLGlCQUFRO0lBQzdHLDRCQUMrSixvQkFBQTtJQUlqSyxpQkFBTTtJQUVOLCtCQUFrQyxlQUFBO0lBQ1gsWUFBNEM7O0lBQUEsaUJBQU87SUFDeEUsbUNBQWdILHFCQUFBO0lBSWxILGlCQUFNO0lBQ04sc0JBQU07SUFFTixnQ0FBNkM7SUFDM0MsdUNBQXlFO0lBQ3pFLHlGQUE4SztJQUNoTCxpQkFBTTtJQUNOLGdDQUFrQyxzQkFBQTtJQUNwQixvTEFBUyxlQUFBLGVBQU8sQ0FBQSxJQUFDO0lBQW1ELHNCQUFLO0lBQUEsaUJBQWE7SUFDbEcsdUNBQWlHO0lBQXJGLG9MQUFTLGVBQUEsa0JBQVUsQ0FBQSxJQUFDO0lBQWlFLHFCQUFJO0lBQUEsaUJBQWEsRUFBQSxFQUFBOzs7SUF2QnhELGVBQTJDO0lBQTNDLDBFQUEyQztJQUNoRCxlQUF3RjtJQUF4Riw2SkFBd0Y7SUFFbEksZUFBb0I7SUFBcEIseUJBQW9CO0lBQUMsb0NBQWMsMEJBQUEsdUNBQUE7SUFNekIsZUFBNEM7SUFBNUMsNEVBQTRDO0lBRXRELGVBQStCO0lBQS9CLG9DQUErQjtJQUFDLHFDQUFlLDBCQUFBLHVDQUFBO0lBUXBELGVBQXlCO0lBQXpCLGtEQUF5Qjs7OztJQVFuQywrQkFBOEQsY0FBQSxnQkFBQTtJQUNLLFlBQTZDOztJQUFBLGlCQUFRO0lBQ3BILDRCQUM4SixvQkFBQTtJQUloSyxpQkFBTTtJQUVOLCtCQUEyRCxlQUFBO0lBQ2hDLFlBQThDOztJQUFBLGlCQUFPO0lBQzlFLG1DQUFnSCxxQkFBQTtJQUlsSCxpQkFBTTtJQUNOLGdDQUE2RCxzQkFBQTtJQUMvQyxvTEFBUyxlQUFBLGVBQU8sQ0FBQSxJQUFDO0lBQW1ELHNCQUFLO0lBQUEsaUJBQWE7SUFFbEcsdUNBQWlHO0lBQXJGLG9MQUFTLGVBQUEsa0JBQVUsQ0FBQSxJQUFDO0lBQWlFLHFCQUFJO0lBQUEsaUJBQWEsRUFBQSxFQUFBOzs7SUFsQm5ELGVBQTZDO0lBQTdDLDRFQUE2QztJQUdqRyxlQUFvQjtJQUFwQix5QkFBb0I7SUFBQyxvQ0FBYywwQkFBQSx1Q0FBQTtJQU1yQixlQUE4QztJQUE5Qyw4RUFBOEM7SUFFNUQsZUFBK0I7SUFBL0Isb0NBQStCO0lBQUMscUNBQWUsMEJBQUEsdUNBQUE7Ozs7SUF0RGhFLG9DQUF3SDtJQUEzRSwyS0FBWSxlQUFBLGtCQUFVLENBQUEsSUFBQztJQUNsRSwrQkFBd0I7SUFDdEIscUJBQUk7SUFDSiw4QkFBb0I7SUFBQSxZQUE4Qzs7SUFBQSxpQkFBSztJQUN2RSxxQkFBSTtJQUNOLGlCQUFNO0lBQ04sK0JBQXdCLFlBQUE7SUFBUSxhQUF5STs7O0lBQUEsaUJBQVEsRUFBQTtJQUVqTCxnQ0FBZ0M7SUFDOUIsc0NBRWlCO0lBQ2pCLG9GQUFzRztJQUN4RyxpQkFBTTtJQUNOLG9GQTBCTSx1RUFBQTtJQXdCUixpQkFBTzs7O0lBaEVELDJDQUFzQjtJQUdKLGVBQThDO0lBQTlDLDRFQUE4QztJQUdwQyxlQUF5STtJQUF6SSxxTUFBeUk7SUFJckssZUFBOEM7SUFBOUMscUVBQThDO0lBRGhDLHNDQUFpQjtJQUdQLGVBQWdDO0lBQWhDLCtEQUFnQztJQUVoQyxlQUE2RDtJQUE3RCx1S0FBNkQ7SUE0QjdELGVBQWdDO0lBQWhDLDZGQUFnQzs7QUQ3RDlELE1BQU0sT0FBTyx1QkFBdUI7SUE0QmxDLFlBQW9CLEVBQWUsRUFBUyxJQUFpQixFQUFTLEVBQXFCLEVBQVMsYUFBNEI7UUFBNUcsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUFTLFNBQUksR0FBSixJQUFJLENBQWE7UUFBUyxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUFTLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBM0JoSSxvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUlyQixjQUFTLEdBQUcsR0FBRyxFQUFFLEdBQUMsQ0FBQyxDQUFBO1FBRW5CLGlCQUFZLEdBQW1CLEVBQUUsQ0FBQztRQVFsQyxZQUFPLEdBQVksS0FBSyxDQUFDO1FBRWxCLGdCQUFXLEdBQUUsSUFBSSxDQUFBO1FBRXhCLFVBQUssR0FBUyxFQUFFLENBQUM7UUFhZixJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztRQUUxQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQzVCLElBQUksRUFBRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUNoRCxLQUFLLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDakQsSUFBSSxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ2hELE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUM7U0FDL0IsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUNELFdBQVc7UUFDVCxLQUFJLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxZQUFZO1lBQ2hDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQVU7UUFDcEIsSUFBSSxLQUFLLEVBQUM7WUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM5QjtJQUNGLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUM1QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUM1QixDQUFDO0lBQ0QsaUJBQWlCLENBQUMsU0FBYztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQTtRQUNmLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBR00sT0FBTztRQUNaLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNoRDthQUFNO1lBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUE7U0FDdEI7SUFFSCxDQUFDO0lBQ0Qsc0JBQXNCO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUEsRUFBRTtZQUNwQyxJQUFHLEdBQUcsRUFBQztnQkFDTCxJQUFHLEdBQUcsQ0FBQyxLQUFLLElBQUksTUFBTSxFQUFDO29CQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztpQkFDOUM7Z0JBQ0QsSUFBRyxHQUFHLENBQUMsS0FBSyxJQUFJLE1BQU0sRUFBQztvQkFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7aUJBQzlDO2dCQUNELElBQUcsR0FBRyxDQUFDLEtBQUssSUFBSSxNQUFNLEVBQUM7b0JBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztpQkFDekM7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUNDLFFBQVEsQ0FBQyxXQUFXO1FBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzdCLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxXQUFXLEdBQUUsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUNELEtBQUs7UUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBRXhCLENBQUM7SUFDRCxVQUFVLENBQUMsV0FBVztRQUNwQixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDMUIsSUFBSSxhQUFhLEdBQW1ELFdBQVcsQ0FBQztRQUNoRixJQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFHLE1BQU0sRUFBRTtZQUNwQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7U0FDcEM7YUFBTSxJQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFHLE1BQU0sRUFBRTtZQUMzQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7U0FDcEM7SUFDSCxDQUFDO0lBQ0QsT0FBTztRQUNMLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQy9CLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUM7WUFDekIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ2xDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUE7WUFDM0IsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtTQUUxQzthQUFNO1lBQ0wsSUFBRyxJQUFJLENBQUMsV0FBVyxJQUFHLElBQUksRUFBRTtnQkFDMUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7YUFDN0Q7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUE7Z0JBQ25CLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQy9DLHlGQUF5RjtnQkFDekYscURBQXFEO2dCQUNyRCxJQUFJLFNBQVMsR0FBUyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQTtnQkFDakQsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO29CQUMzQixJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksU0FBUyxDQUFDLEtBQUssSUFBSSxTQUFTLENBQUMsS0FBSyxJQUFJLE1BQU0sRUFBRTt3QkFDOUQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7cUJBQzFCO2lCQUNGO2FBQ0Y7WUFDRCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQTtZQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQzlCO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRUQscUJBQXFCLENBQUMsU0FBb0I7UUFDeEMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzlDLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckMsSUFBSSxPQUFPLFlBQVksV0FBVyxFQUFFO2dCQUNsQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7YUFDekM7aUJBQU0sSUFBSSxPQUFPLFlBQVksU0FBUyxFQUFFO2dCQUN2QyxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDckM7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFDRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFJRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsS0FBSyxDQUFBO0lBQ1osQ0FBQztJQUVELFFBQVE7UUFFUCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2xFLElBQUksY0FBYyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN6RCx3REFBd0Q7UUFDekQscURBQXFEO1FBQ25ELElBQUksY0FBYyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxhQUFhLENBQUMsNkJBQTZCLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLFNBQVMsQ0FDbEcsR0FBRyxDQUFDLEVBQUU7Z0JBQ0osSUFBSSxJQUFJLEdBQStCLEdBQUcsQ0FBQztnQkFDM0MsSUFBSSxJQUFJLEdBQVcsQ0FBQyxDQUFDO2dCQUNyQixJQUFJLElBQUksRUFBRTtvQkFDUixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO2lCQUN0QztZQUNILENBQUMsRUFDRCxHQUFHLENBQUMsRUFBRTtnQkFDSixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN6QixDQUFDLENBQ0YsQ0FBQztTQUNIO1FBSUQsSUFBRyxJQUFJLENBQUMsbUJBQW1CLElBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzNELElBQUksQ0FBQyxLQUFLLEdBQUc7Z0JBQ1gsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRTtnQkFDeEQsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFO2FBQy9ELENBQUE7U0FDRjthQUFNO1lBQ0wsSUFBSSxDQUFDLEtBQUssR0FBRztnQkFDWCxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFO2dCQUN4RCxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUU7Z0JBQzlELEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUU7YUFDeEQsQ0FBQTtTQUNGO0lBQ0gsQ0FBQztJQUVELG1CQUFtQixDQUFDLEdBQVcsRUFBRSxJQUFnQztRQUMvRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxNQUFNLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDMUcsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBQy9CLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ2pDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt3RkE3TlUsdUJBQXVCO29FQUF2Qix1QkFBdUI7Ozs7Ozs7d0ZBUHRCLENBQUM7b0JBQ1QsT0FBTyxFQUFFLGlCQUFpQjtvQkFDMUIsV0FBVyxFQUFFLHVCQUF1QjtvQkFDcEMsS0FBSyxFQUFFLElBQUk7aUJBQ1osQ0FBQztZQ2pCTixxQ0FBMEQ7WUFDeEQseUZBT2MsNEVBQUEsMkVBQUE7WUE2QmhCLGlCQUFVO1lBQ1YsOEJBQW1CO1lBQ25CLDRFQWdFTztZQUNQLGlCQUFNOztZQXhHTywrQkFBaUIsOEJBQUE7WUF1Q0EsZUFBYTtZQUFiLGtDQUFhOzs7aUZEbkI5Qix1QkFBdUI7Y0FYbkMsU0FBUzsyQkFDRSxxQkFBcUIsYUFHbkIsQ0FBQzt3QkFDVCxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixXQUFXLHlCQUF5Qjt3QkFDcEMsS0FBSyxFQUFFLElBQUk7cUJBQ1osQ0FBQztrSUFhRyxrQkFBa0I7a0JBRHhCLFNBQVM7bUJBQUMsb0JBQW9CLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1lBSTNDLGVBQWU7a0JBRHJCLFNBQVM7bUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1lBVXhDLFlBQVk7a0JBRGxCLEtBQUs7O2tGQXJCSyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQsSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMsIEZvcm1Db250cm9sLCBOZ0Zvcm0sIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiwgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7ICBVdGlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3V0aWwvdXRpbC5zZXJ2aWNlJztcbmltcG9ydCB7IEFkZHJlc3NDb21wb25lbnQgfSBmcm9tICcuLi9hZGRyZXNzL2FkZHJlc3MuY29tcG9uZW50JztcbmltcG9ydCB7IFZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcXVlc3Rpb25uYWlyZS92YWxpZGF0aW9uLnNlcnZpY2UnXG5pbXBvcnQgeyBBcHBlYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXBwZWFsL2FwcGVhbC5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcGVhbFBhcnRpY2lwYW50TW9kZWwsIEFwcGVhbFBhcnRpY2lwYW50TW9kZWxMaXN0LCBSb2xlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvQXBwZWFsUGFydGljaXBhbnRNb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1hZGQtcGFydGljaXBhbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWRkLXBhcnRpY2lwYW50LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWRkLXBhcnRpY2lwYW50LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOlt7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBBZGRQYXJ0aWNpcGFudENvbXBvbmVudCxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfV1cbn0pXG5cbmV4cG9ydCBjbGFzcyBBZGRQYXJ0aWNpcGFudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uRGVzdHJveSB7XG4gIGZvcm1Db250cm9sTmFtZSA9ICcnO1xuXG4gIG9uQ2hhbmdlOiBGdW5jdGlvbjtcblxuICBvblRvdWNoZWQgPSAoKSA9Pnt9XG5cbiAgb25DaGFuZ2VTdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIEBWaWV3Q2hpbGQoJ3BhcnRpY2lwYW50QWRkcmVzcycsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBwdWJsaWMgcGFydGljaXBhbnRBZGRyZXNzOiBBZGRyZXNzQ29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoJ3BhcnRpY2lwYW50Rm9ybScsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBwdWJsaWMgcGFydGljaXBhbnRGb3JtOiBOZ0Zvcm07XG5cbiAgdmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0FwcGVhbExldmVsU2Vjb25kOiBzdHJpbmc7XG4gIHB1YmxpYyBpbmRleFRvRWRpdD0gbnVsbFxuXG4gIHJvbGVzOiBhbnlbXT0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIGR5bmFtaWNQYXJhbTogYW55O1xuXG4gIHVzZXJGb3JtOiBGb3JtR3JvdXA7XG4gIHBhcnRpY2lwYW50TGlzdDogYW55W107XG4gIGxvZ2dlcjogYW55O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLCBwdWJsaWMgdXRpbDogVXRpbFNlcnZpY2UsIHB1YmxpYyB2czogVmFsaWRhdGlvblNlcnZpY2UsIHB1YmxpYyBhcHBlYWxTZXJ2aWNlOiBBcHBlYWxTZXJ2aWNlKSB7XG5cbiAgICBcblxuICAgIHRoaXMucGFydGljaXBhbnRMaXN0ID0gW107XG5cbiAgICB0aGlzLnVzZXJGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBuYW1lOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBwaG9uZTogbmV3IEZvcm1Db250cm9sKG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgcm9sZTogbmV3IEZvcm1Db250cm9sKG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgYWRkcmVzczogbmV3IEZvcm1Db250cm9sKG51bGwpLFxuICAgIH0pO1xuICAgIHRoaXMuc2VsZWN0QnV0dG9uVmFsaWRhdGlvbigpO1xuICB9XG4gIG5nT25EZXN0cm95KCl7XG4gICAgZm9yKGxldCBzdWIgb2YgdGhpcy5vbkNoYW5nZVN1YnMpXG4gICAgc3ViLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpe1xuICAgaWYgKHZhbHVlKXtcbiAgICB0aGlzLnVzZXJGb3JtLnNldFZhbHVlKHZhbHVlKTtcbiAgIH1cbiAgfVxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpe1xuICAgbGV0IHN1YiA9IHRoaXMudnMucGFydGljaXBhbnRzLnN1YnNjcmliZShmbilcbiAgIHRoaXMub25DaGFuZ2VTdWJzLnB1c2goc3ViKVxuICB9XG4gIHJlZ2lzdGVyT25Ub3VjaGVkKG9uVG91Y2hlZDogYW55KXtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IG9uVG91Y2hlZDtcbiAgfVxuICBzZXR2YWx1ZSgpe1xuICAgIHRoaXMub25DaGFuZ2UoKVxuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gIH1cbiAgXG5cbiAgcHVibGljIGFkZEl0ZW0oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudXNlckZvcm0udmFsaWQpIHtcbiAgICAgIHRoaXMucGFydGljaXBhbnRMaXN0LnB1c2godGhpcy51c2VyRm9ybS52YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudXNlckZvcm0uaW52YWxpZFxuICAgIH1cblxuICB9XG4gIHNlbGVjdEJ1dHRvblZhbGlkYXRpb24oKXtcbiAgdGhpcy5yb2xlLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsPT57XG4gICAgaWYodmFsKXtcbiAgICAgIGlmKHZhbC52YWx1ZSA9PSAnQVROWScpe1xuICAgICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5hZGRyZXNzKTtcbiAgICAgIH1cbiAgICAgIGlmKHZhbC52YWx1ZSA9PSAnUlBSVCcpe1xuICAgICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5hZGRyZXNzKTtcbiAgICAgIH1cbiAgICAgIGlmKHZhbC52YWx1ZSA9PSAnV0lUTicpe1xuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuYWRkcmVzcyk7XG4gICAgICB9XG4gICAgfVxuICB9KVxufVxuICBlZGl0SXRlbShwYXJ0aWNpcGFudCkge1xuICAgIHRoaXMudmlzaWJsZSA9ICF0aGlzLnZpc2libGU7XG4gICAgbGV0IGluZGV4ID0gdGhpcy5wYXJ0aWNpcGFudExpc3QuaW5kZXhPZihwYXJ0aWNpcGFudCk7XG4gICAgdGhpcy5pbmRleFRvRWRpdCA9aW5kZXg7XG4gICAgdGhpcy5wYXJ0aWNpcGFudExpc3RbaW5kZXhdID0gdGhpcy51c2VyRm9ybS5wYXRjaFZhbHVlKHBhcnRpY2lwYW50KTtcbiAgfVxuICByZXNldCgpIHtcbiAgICB0aGlzLnVzZXJGb3JtLnJlc2V0KCk7XG5cbiAgfVxuICByZW1vdmVJdGVtKHBhcnRpY2lwYW50KSB7XG4gICAgbGV0IGluZGV4ID0gdGhpcy5wYXJ0aWNpcGFudExpc3QuaW5kZXhPZihwYXJ0aWNpcGFudCk7XG4gICAgdGhpcy5wYXJ0aWNpcGFudExpc3Quc3BsaWNlKGluZGV4LCAxKTtcbiAgICB0aGlzLnB1Ymxpc2hQYXJ0aWNpcGFudCgpO1xuICAgIHZhciByZW1vdmVkT2JqZWN0IDogeyBuYW1lPzogc3RyaW5nOyByb2xlPzogUm9sZTsgYWRkcmVzcz86IGFueSB9ID0gcGFydGljaXBhbnQ7XG4gICAgaWYocmVtb3ZlZE9iamVjdC5yb2xlLnZhbHVlPT0gJ0FUTlknKSB7XG4gICAgICB0aGlzLnJvbGVzWzBdLmRpc2FibGVkUm9sZSA9IGZhbHNlO1xuICAgIH0gZWxzZSBpZihyZW1vdmVkT2JqZWN0LnJvbGUudmFsdWU9PSAnUlBSVCcpIHtcbiAgICAgIHRoaXMucm9sZXNbMV0uZGlzYWJsZWRSb2xlID0gZmFsc2U7XG4gICAgfVxuICB9XG4gIGFkZFJvbGUoKSB7XG4gICAgdGhpcy52aXNpYmxlID0gIXRoaXMudmlzaWJsZTtcbiAgfVxuXG4gIG9uU3VibWl0KCkge1xuICAgIGlmKHRoaXMucGFydGljaXBhbnRBZGRyZXNzKXtcbiAgICAgIHRoaXMucGFydGljaXBhbnRBZGRyZXNzLnN1Ym1pdCgpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMudXNlckZvcm0udmFsaWQpIHtcbiAgICAgIHRoaXMudXNlckZvcm0ubWFya0FzRGlydHkoKVxuICAgICAgdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHModGhpcy51c2VyRm9ybSlcblxuICAgIH0gZWxzZSB7XG4gICAgICBpZih0aGlzLmluZGV4VG9FZGl0IT0gbnVsbCkge1xuICAgICAgICB0aGlzLnBhcnRpY2lwYW50TGlzdFt0aGlzLmluZGV4VG9FZGl0XT0gdGhpcy51c2VyRm9ybS52YWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudXNlckZvcm0udmFsaWRcbiAgICAgICAgdGhpcy5wYXJ0aWNpcGFudExpc3QucHVzaCh0aGlzLnVzZXJGb3JtLnZhbHVlKTtcbiAgICAgICAgLy8gYmFzZWQgb24gcmVxdWlyZW1lbnQsIG9ubHkgb25lIGF0dG9ybmV5ICYgcmVwcmVudGF0aXZlIHNob3VsZCBiZSBwYXJ0aWNpcGFudCBsaXN0IGFuZCBcbiAgICAgICAgLy8gYW55IG51bWJlciBvZiB3aXRuZXNzIGNhbiBoYXZlIGluIHBhcnRpY2lwYW50IGxpc3RcbiAgICAgICAgbGV0IHNhdmVkUm9sZTogUm9sZSA9IHRoaXMudXNlckZvcm0udmFsdWVbJ3JvbGUnXVxuICAgICAgICBmb3IgKHZhciByb2xlIG9mIHRoaXMucm9sZXMpIHtcbiAgICAgICAgICBpZiAocm9sZS52YWx1ZSA9PSBzYXZlZFJvbGUudmFsdWUgJiYgc2F2ZWRSb2xlLnZhbHVlICE9ICdXSVROJykge1xuICAgICAgICAgICAgcm9sZS5kaXNhYmxlZFJvbGUgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5wdWJsaXNoUGFydGljaXBhbnQoKVxuICAgICAgdGhpcy51c2VyRm9ybS5yZXNldCgpO1xuICAgICAgdGhpcy52aXNpYmxlID0gIXRoaXMudmlzaWJsZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaXNoUGFydGljaXBhbnQoKXtcbiAgICB0aGlzLnZzLnBhcnRpY2lwYW50cy5uZXh0KHRoaXMucGFydGljaXBhbnRMaXN0Lmxlbmd0aCA+IDAgPyB0aGlzLnBhcnRpY2lwYW50TGlzdCA6IG51bGwpO1xuICB9XG5cbiAgdmFsaWRhdGVBbGxGb3JtRmllbGRzKGZvcm1Hcm91cDogRm9ybUdyb3VwKSB7XG4gICAgT2JqZWN0LmtleXMoZm9ybUdyb3VwLmNvbnRyb2xzKS5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGZpZWxkKTtcbiAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wpIHtcbiAgICAgICAgY29udHJvbC5tYXJrQXNEaXJ0eSh7IG9ubHlTZWxmOiB0cnVlIH0pO1xuICAgICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG4gICAgICAgIHRoaXMudmFsaWRhdGVBbGxGb3JtRmllbGRzKGNvbnRyb2wpO1xuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBnZXQgcm9sZSgpIHtcbiAgICByZXR1cm4gdGhpcy51c2VyRm9ybS5jb250cm9sc1sncm9sZSddO1xuICB9XG5cbiAgZ2V0IG5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMudXNlckZvcm0uY29udHJvbHNbJ25hbWUnXTtcbiAgfVxuICBnZXQgYWRkcmVzcygpIHtcbiAgICByZXR1cm4gdGhpcy51c2VyRm9ybS5jb250cm9sc1snYWRkcmVzcyddO1xuICB9XG5cbiAgZ2V0IHBob25lKCkge1xuICAgIHJldHVybiB0aGlzLnVzZXJGb3JtLmNvbnRyb2xzWydwaG9uZSddO1xuICB9XG5cblxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMudXNlckZvcm0ucmVzZXQoKTtcbiAgICB0aGlzLmNsb3NlXG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgIFxuICAgdGhpcy5pc0FwcGVhbExldmVsU2Vjb25kID0gdGhpcy5keW5hbWljUGFyYW1bJ2hpZEFwcGVhbERlY2lzaW9uJ107XG4gICBsZXQgcGFyZW50QXBwZWFsSWQgPSB0aGlzLmR5bmFtaWNQYXJhbVsncGFyZW50QXBwZWFsSWQnXTtcbiAgIC8vIExvYWRlcnNlcnZpY2UgaXMgbm90IGdldHRpbmcgY2FsbGVkIGZvciBhcHBlYWwgcG9wIHVwXG4gIC8vYmVjYXN1ZSBvZiB0aGlzIGlzc3VlLCBXZSBuZWVkIHRvIHVzZSB0aGlzIGFwcHJvYWNoXG4gICAgaWYgKHBhcmVudEFwcGVhbElkKSB7XG4gICAgICB0aGlzLmFwcGVhbFNlcnZpY2UuZmV0Y2hBcHBlYWxQYXJ0aWNpcGFudERldGFpbHMocGFyZW50QXBwZWFsSWQsIHRoaXMuaXNBcHBlYWxMZXZlbFNlY29uZCkuc3Vic2NyaWJlKFxuICAgICAgICByZXMgPT4ge1xuICAgICAgICAgIGxldCB0ZW1wOiBBcHBlYWxQYXJ0aWNpcGFudE1vZGVsTGlzdCA9IHJlcztcbiAgICAgICAgICBsZXQgc2l6ZTogbnVtYmVyID0gMDtcbiAgICAgICAgICBpZiAodGVtcCkge1xuICAgICAgICAgICAgdGhpcy5pbml0UGFydGljaXBhbnRMaXN0KHNpemUsIHRlbXApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZXJyID0+IHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhlcnIpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgXG5cdFx0XG5cbiAgICBpZih0aGlzLmlzQXBwZWFsTGV2ZWxTZWNvbmQ9PSdZJyB8fCB0aGlzLnV0aWwuaXNTdGF0ZSgnTUUnKSkge1xuICAgICAgdGhpcy5yb2xlcyA9IFtcbiAgICAgICAgeyBuYW1lOiAnQXR0b3JuZXknLCB2YWx1ZTogJ0FUTlknLCBkaXNhYmxlZFJvbGU6IGZhbHNlIH0sXG4gICAgICAgIHsgbmFtZTogJ1JlcHJlc2VudGF0aXZlJywgdmFsdWU6ICdSUFJUJywgZGlzYWJsZWRSb2xlOiBmYWxzZSB9LFxuICAgICAgXVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJvbGVzID0gW1xuICAgICAgICB7IG5hbWU6ICdBdHRvcm5leScsIHZhbHVlOiAnQVROWScsIGRpc2FibGVkUm9sZTogZmFsc2UgfSxcbiAgICAgICAgeyBuYW1lOiAnUmVwcmVzZW50YXRpdmUnLCB2YWx1ZTogJ1JQUlQnLCBkaXNhYmxlZFJvbGU6IGZhbHNlIH0sXG4gICAgICAgIHsgbmFtZTogJ1dpdG5lc3MnLCB2YWx1ZTogJ1dJVE4nLCBkaXNhYmxlZFJvbGU6IGZhbHNlIH0sXG4gICAgICBdXG4gICAgfVxuICB9XG5cbiAgaW5pdFBhcnRpY2lwYW50TGlzdChsZW46IG51bWJlciwgdGVtcDogQXBwZWFsUGFydGljaXBhbnRNb2RlbExpc3QpIHtcbiAgICB0ZW1wLmFkZFBhcnRpY2lwYW50Q29tcC5maWx0ZXIocGFydCA9PiAocGFydC5yb2xlLnZhbHVlID09ICdSUFJUJyB8fCBwYXJ0LnJvbGUudmFsdWUgPT0gJ0FUTlknKSkubWFwKHBhcnQgPT4ge1xuICAgICAgcGFydC5yb2xlLmRpc2FibGVkUm9sZSA9IGZhbHNlO1xuICAgICAgdGhpcy5wYXJ0aWNpcGFudExpc3QucHVzaChwYXJ0KVxuICAgIH0pO1xuICB9XG59XG4iLCI8cC10YWJsZSAjZHQgW3Jvd0hvdmVyXT1cInRydWVcIiBbdmFsdWVdPVwicGFydGljaXBhbnRMaXN0XCIgPlxyXG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIiBsZXQtY29sdW1ucyA+XHJcbiAgICA8dHIgPlxyXG4gICAgICA8dGg+IHt7XCJhZGQucGFydGljaXBhbnQuaGVhZGVyLnBhcnRpY2lwYW50Um9sZVwifHRyYW5zbGF0ZX19PC90aD5cclxuICAgICAgPHRoPnt7XCJhZGQucGFydGljaXBhbnQuaGVhZGVyLm5hbWVcInx0cmFuc2xhdGV9fTwvdGg+XHJcbiAgICAgIDx0aD4ge3tcImFkZC5wYXJ0aWNpcGFudC5oZWFkZXIucGhvbmVcInx0cmFuc2xhdGV9fTwvdGg+XHJcbiAgICAgIDx0aD48L3RoPlxyXG4gICAgPC90cj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LXBhcnRpY2lwYW50IGxldC1yb3dJbmRleD1cInJvd0luZGV4XCI+XHJcbiAgICA8dHIgPlxyXG5cclxuICAgICAgPHRkID48c3Bhbj57e3BhcnRpY2lwYW50LnJvbGUubmFtZX19PC9zcGFuPjwvdGQ+XHJcbiAgICAgIDx0ZD48c3Bhbj57e3BhcnRpY2lwYW50Lm5hbWV9fTwvc3Bhbj48L3RkPlxyXG4gICAgICA8dGQ+PHNwYW4+e3twYXJ0aWNpcGFudC5waG9uZX19PC9zcGFuPjwvdGQ+XHJcbiAgICAgIDx0ZD5cclxuICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwib3V0bGluZVwiIChjbGljayk9XCJlZGl0SXRlbShwYXJ0aWNpcGFudClcIiAgc2l6ZT1cInNtYWxsXCIgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCI+XHJcbiAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhbCcsICdlZGl0J11cIiBjbGFzcz1cImFjdGlvbi1pY29uXCI+PC9mYS1pY29uPlxyXG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwicmVtb3ZlSXRlbShwYXJ0aWNpcGFudClcIiBmaWxsPVwib3V0bGluZVwiICBzaXplPVwic21hbGxcIiBjbGFzcz1cImFjdGlvbi1idXR0b25cIj5cclxuICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFsJywgJ3RyYXNoLWFsdCddXCIgY2xhc3M9XCJhY3Rpb24taWNvblwiPjwvZmEtaWNvbj5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICA8L3RyPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImZvb3RlclwiIGxldC1jb2x1bW5zPlxyXG4gICAgPHRyPlxyXG4gICAgICA8dGQ+PHNwYW4gW2lubmVySHRtbF09XCInYWRkLnBhcnRpY2lwYW50LmZvb3Rlci5hZGRFbGVtZW50J3x0cmFuc2xhdGVcIj48L3NwYW4+PC90ZD5cclxuICAgICAgPHRkPjwvdGQ+XHJcbiAgICAgIDx0ZD48L3RkPlxyXG4gICAgICA8dGQgY2xhc3M9XCJjb2wtb2Zmc2V0LTQgYWN0aW9uLWJ1dHRvblwiPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJhZGRSb2xlKClcIiBmaWxsPVwib3V0bGluZVwiIHNpemU9XCJzbWFsbFwiIHNoYXBlPVwic3F1YXJlXCIgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCI+XHJcbiAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhbCcsICdwbHVzJ11cIiBjbGFzcz1cImFjdGlvbi1pY29uXCI+PC9mYS1pY29uPlxyXG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgPC90ZD5cclxuICAgIDwvdHI+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9wLXRhYmxlPlxyXG48ZGl2IGNsYXNzPVwiYWxpZ25cIj5cclxuPGZvcm0gW2Zvcm1Hcm91cF09XCJ1c2VyRm9ybVwiICpuZ0lmPVwidmlzaWJsZVwiIChuZ1N1Ym1pdCk9XCJvblN1Ym1pdCgpXCIgI3BhcnRpY2lwYW50Rm9ybT1cIm5nRm9ybVwiIHN0eWxlPVwibWFyZ2luLWxlZnQ6MTZweFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJmaWVsZC1ncmlkXCI+XHJcbiAgICA8YnI+XHJcbiAgICA8aDEgY2xhc3M9XCJoZWFkaW5nXCI+e3tcImFkZC5wYXJ0aWNpcGFudC5oZWFkZXIuaGVhZGluZ1wifHRyYW5zbGF0ZX19PC9oMT5cclxuICAgIDxicj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiZmllbGQtZ3JpZFwiPjxsYWJlbD4ge3tpc0FwcGVhbExldmVsU2Vjb25kID09J04nID8gKFwiYWRkLnBhcnRpY2lwYW50LmhlYWRlci5xdWVzdGlvblwifHRyYW5zbGF0ZSkgOiAoXCJhZGQucGFydGljaXBhbnQuaGVhZGVyLmFwcGVhbExldmVsMlF1ZXN0aW9uXCJ8dHJhbnNsYXRlKX19PC9sYWJlbD48L2Rpdj5cclxuICBcclxuICA8ZGl2IHN0eWxlPVwicGFkZGluZy1sZWZ0OiAwcHg7XCI+XHJcbiAgICA8cC1zZWxlY3RCdXR0b24gW29wdGlvbnNdPVwicm9sZXNcIiBvcHRpb25MYWJlbD1cIm5hbWVcIiBmb3JtQ29udHJvbE5hbWU9XCJyb2xlXCIgcmVxdWlyZWQgb3B0aW9uRGlzYWJsZWQ9XCJkaXNhYmxlZFJvbGVcIlxyXG4gICAgICBbY2xhc3MuaGFzLWVycm9yXT1cInJvbGUuZGlydHkgJiYgcm9sZS5pbnZhbGlkXCI+XHJcbiAgICA8L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJoZWxwLWJsb2NrXCIgKm5nSWY9XCJyb2xlLmRpcnR5ICYmIHJvbGUuaW52YWxpZFwiPnt7XCJpbmR1Y3Rpb24ucmVxdWlyZWRcInwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImZvcm1ncmlkIGdyaWRcIiAqbmdJZj1cInJvbGUudmFsdWU/LnZhbHVlID09J0FUTlknIHx8IHJvbGUudmFsdWU/LnZhbHVlPT0nUlBSVCdcIiBzdHlsZT1cIm1hcmdpbi10b3A6MTBweFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC00IG1kOmNvbC0yXCI+PGxhYmVsIHN0eWxlPVwibWFyZ2luOjRweFwiPnt7XCJhZGQucGFydGljaXBhbnQubGF3eWVyLm5hbWVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBJbnB1dFRleHQgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIHBsYWNlaG9sZGVyPVwie3tyb2xlLnZhbHVlPy52YWx1ZSA9PSdBVE5ZJyA/ICdBdHRvcm5leSBOYW1lJyA6ICdSZXByZXNlbnRhdGF0aXZlIE5hbWUnfX1cIlxyXG4gICAgICAgIGNsYXNzPVwidGV4dC1iYXNlIHRleHQtY29sb3Igc3VyZmFjZS1vdmVybGF5IHAtMiBib3JkZXItMSBib3JkZXItc29saWQgc3VyZmFjZS1ib3JkZXIgYm9yZGVyLXJvdW5kIGFwcGVhcmFuY2Utbm9uZSBvdXRsaW5lLW5vbmUgZm9jdXM6Ym9yZGVyLXByaW1hcnkgdy1mdWxsXCIvPlxyXG4gICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nbmFtZScgW2Zvcm1dPVwidXNlckZvcm1cIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLid9XCI+XHJcbiAgICAgIDwvYXBwLWVycm9yPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC00IG1kOmNvbC05XCI+PHNwYW5cclxuICAgICAgICBjbGFzcz1cImJsb2NrIG1iLTJcIj57e1wiYWRkLnBhcnRpY2lwYW50Lmxhd3llci5waG9uZVwifHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICA8cC1pbnB1dE1hc2sgbWFzaz1cIjk5OS05OTktOTk5OVwiIHBsYWNlaG9sZGVyPVwiOTk5LTk5OS05OTk5XCIgZm9ybUNvbnRyb2xOYW1lPVwicGhvbmVcIiB1bm1hc2s9XCJ0cnVlXCI+PC9wLWlucHV0TWFzaz5cclxuICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkIGJsb2NrIG1iLTInXCIgW2ZpZWxkXT0ncGhvbmUnIFtmb3JtXT1cInVzZXJGb3JtXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJ31cIj5cclxuICAgICAgPC9hcHAtZXJyb3I+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxiciAvPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtNCBtZDpjb2wtOSBmaWVsZC1ncmlkXCI+XHJcbiAgICAgIDxhcHAtYWRkcmVzcyAjcGFydGljaXBhbnRBZGRyZXNzIGZvcm1Db250cm9sTmFtZT1cImFkZHJlc3NcIj48L2FwcC1hZGRyZXNzPlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiIXV0aWwuaXNTdGF0ZSgnTUUnKVwiIGNsYXNzPVwiZmllbGQgY29sLTQgbWQ6Y29sLTkgZmllbGQtZ3JpZFwiPjxsYWJlbCBzdHlsZT1cInBhZGRpbmc6IDEwcHggMCAwIDJweFwiPnt7XCJhZGQucGFydGljaXBhbnQuZm9vdGVyLmRlY2xhcmF0aW9uXCJ8dHJhbnNsYXRlfX08L2xhYmVsPjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTQgbWQ6Y29sLTlcIj5cclxuICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cImNsb3NlKClcIiBmaWxsPVwib3V0bGluZVwiIHNoYXBlPVwicm91bmRcIiBjbGFzcz1cImNvbC1vZmZzZXQtM1wiPkNsZWFyPC9pb24tYnV0dG9uPlxyXG4gICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwib25TdWJtaXQoKVwiIGZpbGw9XCJvdXRsaW5lXCIgc2hhcGU9XCJyb3VuZFwiIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImNvbC1vZmZzZXQtMVwiPlNhdmU8L2lvbi1idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImZvcm1ncmlkIGdyaWRcIiAqbmdJZj1cInJvbGUudmFsdWU/LnZhbHVlID09J1dJVE4nXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTQgbWQ6Y29sLTJcIj48bGFiZWwgc3R5bGU9XCJtYXJnaW46MTBweCAwcHhcIj57e1wiYWRkLnBhcnRpY2lwYW50Lm9ic2VydmVyLm5hbWVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBJbnB1dFRleHQgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIHBsYWNlaG9sZGVyPVwiV2l0bmVzcyBOYW1lXCJcclxuICAgICAgICBjbGFzcz1cInRleHQtYmFzZSB0ZXh0LWNvbG9yIHN1cmZhY2Utb3ZlcmxheSBwLTIgYm9yZGVyLTEgYm9yZGVyLXNvbGlkIHN1cmZhY2UtYm9yZGVyIGJvcmRlci1yb3VuZCBhcHBlYXJhbmNlLW5vbmUgb3V0bGluZS1ub25lIGZvY3VzOmJvcmRlci1wcmltYXJ5IHctZnVsbFwiPlxyXG4gICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nbmFtZScgW2Zvcm1dPVwidXNlckZvcm1cIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLid9XCI+XHJcbiAgICAgIDwvYXBwLWVycm9yPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC00IG1kOmNvbC05XCIgc3R5bGU9XCJwYWRkaW5nLXRvcDoxMnB4XCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiYmxvY2sgbWItMlwiPnt7XCJhZGQucGFydGljaXBhbnQub2JzZXJ2ZXIucGhvbmVcInx0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgPHAtaW5wdXRNYXNrIG1hc2s9XCI5OTktOTk5LTk5OTlcIiBwbGFjZWhvbGRlcj1cIjk5OS05OTktOTk5OVwiIGZvcm1Db250cm9sTmFtZT1cInBob25lXCIgdW5tYXNrPVwidHJ1ZVwiPjwvcC1pbnB1dE1hc2s+XHJcbiAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCBibG9jayBtYi0yJ1wiIFtmaWVsZF09J3Bob25lJyBbZm9ybV09XCJ1c2VyRm9ybVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLid9XCI+XHJcbiAgICAgIDwvYXBwLWVycm9yPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTEyIG1kOmNvbC05XCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAyMHB4O1wiPlxyXG4gICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiY2xvc2UoKVwiIGZpbGw9XCJvdXRsaW5lXCIgc2hhcGU9XCJyb3VuZFwiIGNsYXNzPVwiY29sLW9mZnNldC0zXCI+Q2xlYXI8L2lvbi1idXR0b24+XHJcblxyXG4gICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwib25TdWJtaXQoKVwiIHR5cGU9XCJzdWJtaXRcIiBmaWxsPVwib3V0bGluZVwiIHNoYXBlPVwicm91bmRcIiBjbGFzcz1cImNvbC1vZmZzZXQtMVwiPlNhdmU8L2lvbi1idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9mb3JtPlxyXG48L2Rpdj4iXX0=
|
|
451
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AddParticipantComponent, { className: "AddParticipantComponent", filePath: "lib\\components\\add-participant\\add-participant.component.ts", lineNumber: 22 }); })();
|
|
452
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXBhcnRpY2lwYW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9hZGQtcGFydGljaXBhbnQvYWRkLXBhcnRpY2lwYW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9hZGQtcGFydGljaXBhbnQvYWRkLXBhcnRpY2lwYW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLFNBQVMsRUFBQyxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUFlLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFnQyxpQkFBaUIsR0FBRyxNQUFNLGdCQUFnQixDQUFDO0FBT25JLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7O0lDTnJELDBCQUFLLFNBQUE7SUFDRSxZQUFzRDs7SUFBQSxpQkFBSztJQUNoRSwwQkFBSTtJQUFBLFlBQTJDOztJQUFBLGlCQUFLO0lBQ3BELDBCQUFJO0lBQUMsWUFBNEM7O0lBQUEsaUJBQUs7SUFDdEQsc0JBQVM7SUFDWCxpQkFBSzs7SUFKRSxlQUFzRDtJQUF0RCw4RkFBc0Q7SUFDdkQsZUFBMkM7SUFBM0MseUVBQTJDO0lBQzFDLGVBQTRDO0lBQTVDLG9GQUE0Qzs7Ozs7O0lBS25ELDBCQUFLLFNBQUEsV0FBQTtJQUVRLFlBQXlCO0lBQUEsaUJBQU8sRUFBQTtJQUMzQywwQkFBSSxXQUFBO0lBQU0sWUFBb0I7SUFBQSxpQkFBTyxFQUFBO0lBQ3JDLDBCQUFJLFdBQUE7SUFBTSxZQUFxQjtJQUFBLGlCQUFPLEVBQUE7SUFDdEMsMkJBQUkscUJBQUE7SUFDeUIsbVBBQVMsZUFBQSwr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Q0FBQTtRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7d0ZBL05VLHVCQUF1QjtvRUFBdkIsdUJBQXVCOzs7Ozs7O3dGQVB0QixDQUFDO29CQUNULE9BQU8sRUFBRSxpQkFBaUI7b0JBQzFCLFdBQVcsRUFBRSx1QkFBdUI7b0JBQ3BDLEtBQUssRUFBRSxJQUFJO2lCQUNaLENBQUM7WUNsQk4scUNBQTBEO1lBQ3hELHlGQU9jLDRFQUFBLDJFQUFBO1lBNkJoQixpQkFBVTtZQUNWLDhCQUFtQjtZQUNuQiw0RUFnRU87WUFDUCxpQkFBTTs7WUF4R08sK0JBQWlCLDhCQUFBO1lBdUNBLGVBQWE7WUFBYixrQ0FBYTs7O2lGRGxCOUIsdUJBQXVCO2NBWG5DLFNBQVM7MkJBQ0UscUJBQXFCLGFBR25CLENBQUM7d0JBQ1QsT0FBTyxFQUFFLGlCQUFpQjt3QkFDMUIsV0FBVyx5QkFBeUI7d0JBQ3BDLEtBQUssRUFBRSxJQUFJO3FCQUNaLENBQUM7a0lBYUcsa0JBQWtCO2tCQUR4QixTQUFTO21CQUFDLG9CQUFvQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUkzQyxlQUFlO2tCQURyQixTQUFTO21CQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQVV4QyxZQUFZO2tCQURsQixLQUFLOztrRkFyQkssdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkLElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzLCBGb3JtQ29udHJvbCwgTmdGb3JtLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IsIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyAgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XG5pbXBvcnQgeyBBZGRyZXNzQ29tcG9uZW50IH0gZnJvbSAnLi4vYWRkcmVzcy9hZGRyZXNzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3F1ZXN0aW9ubmFpcmUvdmFsaWRhdGlvbi5zZXJ2aWNlJ1xuaW1wb3J0IHsgQXBwZWFsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FwcGVhbC9hcHBlYWwuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBlYWxQYXJ0aWNpcGFudE1vZGVsLCBBcHBlYWxQYXJ0aWNpcGFudE1vZGVsTGlzdCwgUm9sZSB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0FwcGVhbFBhcnRpY2lwYW50TW9kZWwnO1xuaW1wb3J0IHsgTGliQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0xpYkNvbnN0YW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1hZGQtcGFydGljaXBhbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWRkLXBhcnRpY2lwYW50LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWRkLXBhcnRpY2lwYW50LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOlt7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBBZGRQYXJ0aWNpcGFudENvbXBvbmVudCxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfV1cbn0pXG5cbmV4cG9ydCBjbGFzcyBBZGRQYXJ0aWNpcGFudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uRGVzdHJveSB7XG4gIGZvcm1Db250cm9sTmFtZSA9ICcnO1xuXG4gIG9uQ2hhbmdlOiBGdW5jdGlvbjtcblxuICBvblRvdWNoZWQgPSAoKSA9Pnt9XG5cbiAgb25DaGFuZ2VTdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIEBWaWV3Q2hpbGQoJ3BhcnRpY2lwYW50QWRkcmVzcycsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBwdWJsaWMgcGFydGljaXBhbnRBZGRyZXNzOiBBZGRyZXNzQ29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoJ3BhcnRpY2lwYW50Rm9ybScsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBwdWJsaWMgcGFydGljaXBhbnRGb3JtOiBOZ0Zvcm07XG5cbiAgdmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0FwcGVhbExldmVsU2Vjb25kOiBzdHJpbmc7XG4gIHB1YmxpYyBpbmRleFRvRWRpdD0gbnVsbFxuXG4gIHJvbGVzOiBhbnlbXT0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIGR5bmFtaWNQYXJhbTogYW55O1xuXG4gIHVzZXJGb3JtOiBGb3JtR3JvdXA7XG4gIHBhcnRpY2lwYW50TGlzdDogYW55W107XG4gIGxvZ2dlcjogYW55O1xuICBwdWJsaWMgaXNBZGRyZXNzVmFsaWRhdGlvbkVuYWJsZWQgPSBMaWJDb25zdGFudHMuaXNBZGRyZXNzVmFsaWRhdGlvbkVuYWJsZWQgPT0gJ3RydWUnO1xuXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsIHB1YmxpYyB1dGlsOiBVdGlsU2VydmljZSwgcHVibGljIHZzOiBWYWxpZGF0aW9uU2VydmljZSwgcHVibGljIGFwcGVhbFNlcnZpY2U6IEFwcGVhbFNlcnZpY2UpIHtcblxuICAgIFxuXG4gICAgdGhpcy5wYXJ0aWNpcGFudExpc3QgPSBbXTtcblxuICAgIHRoaXMudXNlckZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIG5hbWU6IG5ldyBGb3JtQ29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIHBob25lOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICByb2xlOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBhZGRyZXNzOiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXG4gICAgfSk7XG4gICAgdGhpcy5zZWxlY3RCdXR0b25WYWxpZGF0aW9uKCk7XG4gIH1cbiAgbmdPbkRlc3Ryb3koKXtcbiAgICBmb3IobGV0IHN1YiBvZiB0aGlzLm9uQ2hhbmdlU3VicylcbiAgICBzdWIudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSl7XG4gICBpZiAodmFsdWUpe1xuICAgIHRoaXMudXNlckZvcm0uc2V0VmFsdWUodmFsdWUpO1xuICAgfVxuICB9XG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSl7XG4gICBsZXQgc3ViID0gdGhpcy52cy5wYXJ0aWNpcGFudHMuc3Vic2NyaWJlKGZuKVxuICAgdGhpcy5vbkNoYW5nZVN1YnMucHVzaChzdWIpXG4gIH1cbiAgcmVnaXN0ZXJPblRvdWNoZWQob25Ub3VjaGVkOiBhbnkpe1xuICAgIHRoaXMub25Ub3VjaGVkID0gb25Ub3VjaGVkO1xuICB9XG4gIHNldHZhbHVlKCl7XG4gICAgdGhpcy5vbkNoYW5nZSgpXG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfVxuICBcblxuICBwdWJsaWMgYWRkSXRlbSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy51c2VyRm9ybS52YWxpZCkge1xuICAgICAgdGhpcy5wYXJ0aWNpcGFudExpc3QucHVzaCh0aGlzLnVzZXJGb3JtLnZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy51c2VyRm9ybS5pbnZhbGlkXG4gICAgfVxuXG4gIH1cbiAgc2VsZWN0QnV0dG9uVmFsaWRhdGlvbigpe1xuICB0aGlzLnJvbGUudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWw9PntcbiAgICBpZih2YWwpe1xuICAgICAgaWYodmFsLnZhbHVlID09ICdBVE5ZJyl7XG4gICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmFkZHJlc3MpO1xuICAgICAgfVxuICAgICAgaWYodmFsLnZhbHVlID09ICdSUFJUJyl7XG4gICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmFkZHJlc3MpO1xuICAgICAgfVxuICAgICAgaWYodmFsLnZhbHVlID09ICdXSVROJyl7XG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5hZGRyZXNzKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pXG59XG4gIGVkaXRJdGVtKHBhcnRpY2lwYW50KSB7XG4gICAgdGhpcy52aXNpYmxlID0gIXRoaXMudmlzaWJsZTtcbiAgICBsZXQgaW5kZXggPSB0aGlzLnBhcnRpY2lwYW50TGlzdC5pbmRleE9mKHBhcnRpY2lwYW50KTtcbiAgICB0aGlzLmluZGV4VG9FZGl0ID1pbmRleDtcbiAgICB0aGlzLnBhcnRpY2lwYW50TGlzdFtpbmRleF0gPSB0aGlzLnVzZXJGb3JtLnBhdGNoVmFsdWUocGFydGljaXBhbnQpO1xuICB9XG4gIHJlc2V0KCkge1xuICAgIHRoaXMudXNlckZvcm0ucmVzZXQoKTtcblxuICB9XG4gIHJlbW92ZUl0ZW0ocGFydGljaXBhbnQpIHtcbiAgICBsZXQgaW5kZXggPSB0aGlzLnBhcnRpY2lwYW50TGlzdC5pbmRleE9mKHBhcnRpY2lwYW50KTtcbiAgICB0aGlzLnBhcnRpY2lwYW50TGlzdC5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHRoaXMucHVibGlzaFBhcnRpY2lwYW50KCk7XG4gICAgdmFyIHJlbW92ZWRPYmplY3QgOiB7IG5hbWU/OiBzdHJpbmc7IHJvbGU/OiBSb2xlOyBhZGRyZXNzPzogYW55IH0gPSBwYXJ0aWNpcGFudDtcbiAgICBpZihyZW1vdmVkT2JqZWN0LnJvbGUudmFsdWU9PSAnQVROWScpIHtcbiAgICAgIHRoaXMucm9sZXNbMF0uZGlzYWJsZWRSb2xlID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmKHJlbW92ZWRPYmplY3Qucm9sZS52YWx1ZT09ICdSUFJUJykge1xuICAgICAgdGhpcy5yb2xlc1sxXS5kaXNhYmxlZFJvbGUgPSBmYWxzZTtcbiAgICB9XG4gIH1cbiAgYWRkUm9sZSgpIHtcbiAgICB0aGlzLnZpc2libGUgPSAhdGhpcy52aXNpYmxlO1xuICB9XG5cbiAgb25TdWJtaXQoKSB7XG4gICAgaWYodGhpcy5wYXJ0aWNpcGFudEFkZHJlc3Mpe1xuICAgICAgdGhpcy5wYXJ0aWNpcGFudEFkZHJlc3Muc3VibWl0KCk7XG4gICAgfVxuICAgIGlmICghdGhpcy51c2VyRm9ybS52YWxpZCkge1xuICAgICAgdGhpcy51c2VyRm9ybS5tYXJrQXNEaXJ0eSgpXG4gICAgICB0aGlzLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyh0aGlzLnVzZXJGb3JtKVxuXG4gICAgfSBlbHNlIHtcbiAgICAgIGlmKHRoaXMuaW5kZXhUb0VkaXQhPSBudWxsKSB7XG4gICAgICAgIHRoaXMucGFydGljaXBhbnRMaXN0W3RoaXMuaW5kZXhUb0VkaXRdPSB0aGlzLnVzZXJGb3JtLnZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy51c2VyRm9ybS52YWxpZFxuICAgICAgICB0aGlzLnBhcnRpY2lwYW50TGlzdC5wdXNoKHRoaXMudXNlckZvcm0udmFsdWUpO1xuICAgICAgICAvLyBiYXNlZCBvbiByZXF1aXJlbWVudCwgb25seSBvbmUgYXR0b3JuZXkgJiByZXByZW50YXRpdmUgc2hvdWxkIGJlIHBhcnRpY2lwYW50IGxpc3QgYW5kIFxuICAgICAgICAvLyBhbnkgbnVtYmVyIG9mIHdpdG5lc3MgY2FuIGhhdmUgaW4gcGFydGljaXBhbnQgbGlzdFxuICAgICAgICBsZXQgc2F2ZWRSb2xlOiBSb2xlID0gdGhpcy51c2VyRm9ybS52YWx1ZVsncm9sZSddXG4gICAgICAgIGZvciAodmFyIHJvbGUgb2YgdGhpcy5yb2xlcykge1xuICAgICAgICAgIGlmIChyb2xlLnZhbHVlID09IHNhdmVkUm9sZS52YWx1ZSAmJiBzYXZlZFJvbGUudmFsdWUgIT0gJ1dJVE4nKSB7XG4gICAgICAgICAgICByb2xlLmRpc2FibGVkUm9sZSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLnB1Ymxpc2hQYXJ0aWNpcGFudCgpXG4gICAgICB0aGlzLnVzZXJGb3JtLnJlc2V0KCk7XG4gICAgICB0aGlzLnZpc2libGUgPSAhdGhpcy52aXNpYmxlO1xuICAgIH1cbiAgfVxuXG4gIHB1Ymxpc2hQYXJ0aWNpcGFudCgpe1xuICAgIHRoaXMudnMucGFydGljaXBhbnRzLm5leHQodGhpcy5wYXJ0aWNpcGFudExpc3QubGVuZ3RoID4gMCA/IHRoaXMucGFydGljaXBhbnRMaXN0IDogbnVsbCk7XG4gIH1cblxuICB2YWxpZGF0ZUFsbEZvcm1GaWVsZHMoZm9ybUdyb3VwOiBGb3JtR3JvdXApIHtcbiAgICBPYmplY3Qua2V5cyhmb3JtR3JvdXAuY29udHJvbHMpLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgY29uc3QgY29udHJvbCA9IGZvcm1Hcm91cC5nZXQoZmllbGQpO1xuICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbCkge1xuICAgICAgICBjb250cm9sLm1hcmtBc0RpcnR5KHsgb25seVNlbGY6IHRydWUgfSk7XG4gICAgICB9IGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcbiAgICAgICAgdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHMoY29udHJvbCk7XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGdldCByb2xlKCkge1xuICAgIHJldHVybiB0aGlzLnVzZXJGb3JtLmNvbnRyb2xzWydyb2xlJ107XG4gIH1cblxuICBnZXQgbmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy51c2VyRm9ybS5jb250cm9sc1snbmFtZSddO1xuICB9XG4gIGdldCBhZGRyZXNzKCkge1xuICAgIHJldHVybiB0aGlzLnVzZXJGb3JtLmNvbnRyb2xzWydhZGRyZXNzJ107XG4gIH1cblxuICBnZXQgcGhvbmUoKSB7XG4gICAgcmV0dXJuIHRoaXMudXNlckZvcm0uY29udHJvbHNbJ3Bob25lJ107XG4gIH1cblxuXG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy51c2VyRm9ybS5yZXNldCgpO1xuICAgIHRoaXMuY2xvc2VcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgXG4gICB0aGlzLmlzQXBwZWFsTGV2ZWxTZWNvbmQgPSB0aGlzLmR5bmFtaWNQYXJhbVsnaGlkQXBwZWFsRGVjaXNpb24nXTtcbiAgIGxldCBwYXJlbnRBcHBlYWxJZCA9IHRoaXMuZHluYW1pY1BhcmFtWydwYXJlbnRBcHBlYWxJZCddO1xuICAgLy8gTG9hZGVyc2VydmljZSBpcyBub3QgZ2V0dGluZyBjYWxsZWQgZm9yIGFwcGVhbCBwb3AgdXBcbiAgLy9iZWNhc3VlIG9mIHRoaXMgaXNzdWUsIFdlIG5lZWQgdG8gdXNlIHRoaXMgYXBwcm9hY2hcbiAgICBpZiAocGFyZW50QXBwZWFsSWQpIHtcbiAgICAgIHRoaXMuYXBwZWFsU2VydmljZS5mZXRjaEFwcGVhbFBhcnRpY2lwYW50RGV0YWlscyhwYXJlbnRBcHBlYWxJZCwgdGhpcy5pc0FwcGVhbExldmVsU2Vjb25kKS5zdWJzY3JpYmUoXG4gICAgICAgIHJlcyA9PiB7XG4gICAgICAgICAgbGV0IHRlbXA6IEFwcGVhbFBhcnRpY2lwYW50TW9kZWxMaXN0ID0gcmVzO1xuICAgICAgICAgIGxldCBzaXplOiBudW1iZXIgPSAwO1xuICAgICAgICAgIGlmICh0ZW1wKSB7XG4gICAgICAgICAgICB0aGlzLmluaXRQYXJ0aWNpcGFudExpc3Qoc2l6ZSwgdGVtcCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGVycik7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICBcblx0XHRcblxuICAgIGlmKHRoaXMuaXNBcHBlYWxMZXZlbFNlY29uZD09J1knIHx8IHRoaXMudXRpbC5pc1N0YXRlKCdNRScpKSB7XG4gICAgICB0aGlzLnJvbGVzID0gW1xuICAgICAgICB7IG5hbWU6ICdBdHRvcm5leScsIHZhbHVlOiAnQVROWScsIGRpc2FibGVkUm9sZTogZmFsc2UgfSxcbiAgICAgICAgeyBuYW1lOiAnUmVwcmVzZW50YXRpdmUnLCB2YWx1ZTogJ1JQUlQnLCBkaXNhYmxlZFJvbGU6IGZhbHNlIH0sXG4gICAgICBdXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucm9sZXMgPSBbXG4gICAgICAgIHsgbmFtZTogJ0F0dG9ybmV5JywgdmFsdWU6ICdBVE5ZJywgZGlzYWJsZWRSb2xlOiBmYWxzZSB9LFxuICAgICAgICB7IG5hbWU6ICdSZXByZXNlbnRhdGl2ZScsIHZhbHVlOiAnUlBSVCcsIGRpc2FibGVkUm9sZTogZmFsc2UgfSxcbiAgICAgICAgeyBuYW1lOiAnV2l0bmVzcycsIHZhbHVlOiAnV0lUTicsIGRpc2FibGVkUm9sZTogZmFsc2UgfSxcbiAgICAgIF1cbiAgICB9XG4gIH1cblxuICBpbml0UGFydGljaXBhbnRMaXN0KGxlbjogbnVtYmVyLCB0ZW1wOiBBcHBlYWxQYXJ0aWNpcGFudE1vZGVsTGlzdCkge1xuICAgIHRlbXAuYWRkUGFydGljaXBhbnRDb21wLmZpbHRlcihwYXJ0ID0+IChwYXJ0LnJvbGUudmFsdWUgPT0gJ1JQUlQnIHx8IHBhcnQucm9sZS52YWx1ZSA9PSAnQVROWScpKS5tYXAocGFydCA9PiB7XG4gICAgICBwYXJ0LnJvbGUuZGlzYWJsZWRSb2xlID0gZmFsc2U7XG4gICAgICB0aGlzLnBhcnRpY2lwYW50TGlzdC5wdXNoKHBhcnQpXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxwLXRhYmxlICNkdCBbcm93SG92ZXJdPVwidHJ1ZVwiIFt2YWx1ZV09XCJwYXJ0aWNpcGFudExpc3RcIiA+XHJcbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiIGxldC1jb2x1bW5zID5cclxuICAgIDx0ciA+XHJcbiAgICAgIDx0aD4ge3tcImFkZC5wYXJ0aWNpcGFudC5oZWFkZXIucGFydGljaXBhbnRSb2xlXCJ8dHJhbnNsYXRlfX08L3RoPlxyXG4gICAgICA8dGg+e3tcImFkZC5wYXJ0aWNpcGFudC5oZWFkZXIubmFtZVwifHRyYW5zbGF0ZX19PC90aD5cclxuICAgICAgPHRoPiB7e1wiYWRkLnBhcnRpY2lwYW50LmhlYWRlci5waG9uZVwifHRyYW5zbGF0ZX19PC90aD5cclxuICAgICAgPHRoPjwvdGg+XHJcbiAgICA8L3RyPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImJvZHlcIiBsZXQtcGFydGljaXBhbnQgbGV0LXJvd0luZGV4PVwicm93SW5kZXhcIj5cclxuICAgIDx0ciA+XHJcblxyXG4gICAgICA8dGQgPjxzcGFuPnt7cGFydGljaXBhbnQucm9sZS5uYW1lfX08L3NwYW4+PC90ZD5cclxuICAgICAgPHRkPjxzcGFuPnt7cGFydGljaXBhbnQubmFtZX19PC9zcGFuPjwvdGQ+XHJcbiAgICAgIDx0ZD48c3Bhbj57e3BhcnRpY2lwYW50LnBob25lfX08L3NwYW4+PC90ZD5cclxuICAgICAgPHRkPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJvdXRsaW5lXCIgKGNsaWNrKT1cImVkaXRJdGVtKHBhcnRpY2lwYW50KVwiICBzaXplPVwic21hbGxcIiBjbGFzcz1cImFjdGlvbi1idXR0b25cIj5cclxuICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFsJywgJ2VkaXQnXVwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj48L2ZhLWljb24+XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJyZW1vdmVJdGVtKHBhcnRpY2lwYW50KVwiIGZpbGw9XCJvdXRsaW5lXCIgIHNpemU9XCJzbWFsbFwiIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiPlxyXG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiWydmYWwnLCAndHJhc2gtYWx0J11cIiBjbGFzcz1cImFjdGlvbi1pY29uXCI+PC9mYS1pY29uPlxyXG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgPC90ZD5cclxuICAgIDwvdHI+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZm9vdGVyXCIgbGV0LWNvbHVtbnM+XHJcbiAgICA8dHI+XHJcbiAgICAgIDx0ZD48c3BhbiBbaW5uZXJIdG1sXT1cIidhZGQucGFydGljaXBhbnQuZm9vdGVyLmFkZEVsZW1lbnQnfHRyYW5zbGF0ZVwiPjwvc3Bhbj48L3RkPlxyXG4gICAgICA8dGQ+PC90ZD5cclxuICAgICAgPHRkPjwvdGQ+XHJcbiAgICAgIDx0ZCBjbGFzcz1cImNvbC1vZmZzZXQtNCBhY3Rpb24tYnV0dG9uXCI+XHJcbiAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cImFkZFJvbGUoKVwiIGZpbGw9XCJvdXRsaW5lXCIgc2l6ZT1cInNtYWxsXCIgc2hhcGU9XCJzcXVhcmVcIiBjbGFzcz1cImFjdGlvbi1idXR0b25cIj5cclxuICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFsJywgJ3BsdXMnXVwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj48L2ZhLWljb24+XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICA8L3RkPlxyXG4gICAgPC90cj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L3AtdGFibGU+XHJcbjxkaXYgY2xhc3M9XCJhbGlnblwiPlxyXG48Zm9ybSBbZm9ybUdyb3VwXT1cInVzZXJGb3JtXCIgKm5nSWY9XCJ2aXNpYmxlXCIgKG5nU3VibWl0KT1cIm9uU3VibWl0KClcIiAjcGFydGljaXBhbnRGb3JtPVwibmdGb3JtXCIgc3R5bGU9XCJtYXJnaW4tbGVmdDoxNnB4XCI+XHJcbiAgPGRpdiBjbGFzcz1cImZpZWxkLWdyaWRcIj5cclxuICAgIDxicj5cclxuICAgIDxoMSBjbGFzcz1cImhlYWRpbmdcIj57e1wiYWRkLnBhcnRpY2lwYW50LmhlYWRlci5oZWFkaW5nXCJ8dHJhbnNsYXRlfX08L2gxPlxyXG4gICAgPGJyPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJmaWVsZC1ncmlkXCI+PGxhYmVsPiB7e2lzQXBwZWFsTGV2ZWxTZWNvbmQgPT0nTicgPyAoXCJhZGQucGFydGljaXBhbnQuaGVhZGVyLnF1ZXN0aW9uXCJ8dHJhbnNsYXRlKSA6IChcImFkZC5wYXJ0aWNpcGFudC5oZWFkZXIuYXBwZWFsTGV2ZWwyUXVlc3Rpb25cInx0cmFuc2xhdGUpfX08L2xhYmVsPjwvZGl2PlxyXG4gIFxyXG4gIDxkaXYgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDBweDtcIj5cclxuICAgIDxwLXNlbGVjdEJ1dHRvbiBbb3B0aW9uc109XCJyb2xlc1wiIG9wdGlvbkxhYmVsPVwibmFtZVwiIGZvcm1Db250cm9sTmFtZT1cInJvbGVcIiByZXF1aXJlZCBvcHRpb25EaXNhYmxlZD1cImRpc2FibGVkUm9sZVwiXHJcbiAgICAgIFtjbGFzcy5oYXMtZXJyb3JdPVwicm9sZS5kaXJ0eSAmJiByb2xlLmludmFsaWRcIj5cclxuICAgIDwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICA8c3BhbiBjbGFzcz1cImhlbHAtYmxvY2tcIiAqbmdJZj1cInJvbGUuZGlydHkgJiYgcm9sZS5pbnZhbGlkXCI+e3tcImluZHVjdGlvbi5yZXF1aXJlZFwifCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiZm9ybWdyaWQgZ3JpZFwiICpuZ0lmPVwicm9sZS52YWx1ZT8udmFsdWUgPT0nQVROWScgfHwgcm9sZS52YWx1ZT8udmFsdWU9PSdSUFJUJ1wiIHN0eWxlPVwibWFyZ2luLXRvcDoxMHB4XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTQgbWQ6Y29sLTJcIj48bGFiZWwgc3R5bGU9XCJtYXJnaW46NHB4XCI+e3tcImFkZC5wYXJ0aWNpcGFudC5sYXd5ZXIubmFtZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcElucHV0VGV4dCBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgcGxhY2Vob2xkZXI9XCJ7e3JvbGUudmFsdWU/LnZhbHVlID09J0FUTlknID8gJ0F0dG9ybmV5IE5hbWUnIDogJ1JlcHJlc2VudGF0YXRpdmUgTmFtZSd9fVwiXHJcbiAgICAgICAgY2xhc3M9XCJ0ZXh0LWJhc2UgdGV4dC1jb2xvciBzdXJmYWNlLW92ZXJsYXkgcC0yIGJvcmRlci0xIGJvcmRlci1zb2xpZCBzdXJmYWNlLWJvcmRlciBib3JkZXItcm91bmQgYXBwZWFyYW5jZS1ub25lIG91dGxpbmUtbm9uZSBmb2N1czpib3JkZXItcHJpbWFyeSB3LWZ1bGxcIi8+XHJcbiAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSduYW1lJyBbZm9ybV09XCJ1c2VyRm9ybVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJ31cIj5cclxuICAgICAgPC9hcHAtZXJyb3I+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTQgbWQ6Y29sLTlcIj48c3BhblxyXG4gICAgICAgIGNsYXNzPVwiYmxvY2sgbWItMlwiPnt7XCJhZGQucGFydGljaXBhbnQubGF3eWVyLnBob25lXCJ8dHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgIDxwLWlucHV0TWFzayBtYXNrPVwiOTk5LTk5OS05OTk5XCIgcGxhY2Vob2xkZXI9XCI5OTktOTk5LTk5OTlcIiBmb3JtQ29udHJvbE5hbWU9XCJwaG9uZVwiIHVubWFzaz1cInRydWVcIj48L3AtaW5wdXRNYXNrPlxyXG4gICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQgYmxvY2sgbWItMidcIiBbZmllbGRdPSdwaG9uZScgW2Zvcm1dPVwidXNlckZvcm1cIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgcmVxdWlyZWQ6ICdSZXF1aXJlZC4nfVwiPlxyXG4gICAgICA8L2FwcC1lcnJvcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGJyIC8+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC00IG1kOmNvbC05IGZpZWxkLWdyaWRcIj5cclxuICAgICAgPGFwcC1hZGRyZXNzICNwYXJ0aWNpcGFudEFkZHJlc3MgW2VuYWJsZUFkZHJlc3NWYWxpZGF0aW9uXT1cImlzQWRkcmVzc1ZhbGlkYXRpb25FbmFibGVkXCIgW2lucHV0SWRdPVwiJ2FkZHJlc3MnXCIgW3N0YW5kYWxvbmVBZGRyZXNzRm9ybV09XCJ0cnVlXCIgZm9ybUNvbnRyb2xOYW1lPVwiYWRkcmVzc1wiPjwvYXBwLWFkZHJlc3M+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCIhdXRpbC5pc1N0YXRlKCdNRScpXCIgY2xhc3M9XCJmaWVsZCBjb2wtNCBtZDpjb2wtOSBmaWVsZC1ncmlkXCI+PGxhYmVsIHN0eWxlPVwicGFkZGluZzogMTBweCAwIDAgMnB4XCI+e3tcImFkZC5wYXJ0aWNpcGFudC5mb290ZXIuZGVjbGFyYXRpb25cInx0cmFuc2xhdGV9fTwvbGFiZWw+PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtNCBtZDpjb2wtOVwiPlxyXG4gICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiY2xvc2UoKVwiIGZpbGw9XCJvdXRsaW5lXCIgc2hhcGU9XCJyb3VuZFwiIGNsYXNzPVwiY29sLW9mZnNldC0zXCI+Q2xlYXI8L2lvbi1idXR0b24+XHJcbiAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJvblN1Ym1pdCgpXCIgZmlsbD1cIm91dGxpbmVcIiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiY29sLW9mZnNldC0xXCI+U2F2ZTwvaW9uLWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiZm9ybWdyaWQgZ3JpZFwiICpuZ0lmPVwicm9sZS52YWx1ZT8udmFsdWUgPT0nV0lUTidcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtNCBtZDpjb2wtMlwiPjxsYWJlbCBzdHlsZT1cIm1hcmdpbjoxMHB4IDBweFwiPnt7XCJhZGQucGFydGljaXBhbnQub2JzZXJ2ZXIubmFtZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcElucHV0VGV4dCBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgcGxhY2Vob2xkZXI9XCJXaXRuZXNzIE5hbWVcIlxyXG4gICAgICAgIGNsYXNzPVwidGV4dC1iYXNlIHRleHQtY29sb3Igc3VyZmFjZS1vdmVybGF5IHAtMiBib3JkZXItMSBib3JkZXItc29saWQgc3VyZmFjZS1ib3JkZXIgYm9yZGVyLXJvdW5kIGFwcGVhcmFuY2Utbm9uZSBvdXRsaW5lLW5vbmUgZm9jdXM6Ym9yZGVyLXByaW1hcnkgdy1mdWxsXCI+XHJcbiAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSduYW1lJyBbZm9ybV09XCJ1c2VyRm9ybVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJ31cIj5cclxuICAgICAgPC9hcHAtZXJyb3I+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTQgbWQ6Y29sLTlcIiBzdHlsZT1cInBhZGRpbmctdG9wOjEycHhcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJibG9jayBtYi0yXCI+e3tcImFkZC5wYXJ0aWNpcGFudC5vYnNlcnZlci5waG9uZVwifHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICA8cC1pbnB1dE1hc2sgbWFzaz1cIjk5OS05OTktOTk5OVwiIHBsYWNlaG9sZGVyPVwiOTk5LTk5OS05OTk5XCIgZm9ybUNvbnRyb2xOYW1lPVwicGhvbmVcIiB1bm1hc2s9XCJ0cnVlXCI+PC9wLWlucHV0TWFzaz5cclxuICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkIGJsb2NrIG1iLTInXCIgW2ZpZWxkXT0ncGhvbmUnIFtmb3JtXT1cInVzZXJGb3JtXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJ31cIj5cclxuICAgICAgPC9hcHAtZXJyb3I+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtMTIgbWQ6Y29sLTlcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDIwcHg7XCI+XHJcbiAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJjbG9zZSgpXCIgZmlsbD1cIm91dGxpbmVcIiBzaGFwZT1cInJvdW5kXCIgY2xhc3M9XCJjb2wtb2Zmc2V0LTNcIj5DbGVhcjwvaW9uLWJ1dHRvbj5cclxuXHJcbiAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJvblN1Ym1pdCgpXCIgdHlwZT1cInN1Ym1pdFwiIGZpbGw9XCJvdXRsaW5lXCIgc2hhcGU9XCJyb3VuZFwiIGNsYXNzPVwiY29sLW9mZnNldC0xXCI+U2F2ZTwvaW9uLWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Zvcm0+XHJcbjwvZGl2PiJdfQ==
|