vcomply-workflow-engine 6.1.49 → 6.1.51
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/constants/common.constants.mjs +2 -1
- package/esm2022/lib/pipes/pipes.module.mjs +10 -5
- package/esm2022/lib/pipes/responsibility-checked.pipe.mjs +19 -0
- package/esm2022/lib/services/common.service.mjs +15 -1
- package/esm2022/lib/sharedComponents/assessment-list/assessment-list.component.mjs +3 -3
- package/esm2022/lib/sharedComponents/assessment-preview/preview/preview.component.mjs +6 -3
- package/esm2022/lib/sharedComponents/frequency/frequency-container/frequency-container.component.mjs +5 -3
- package/esm2022/lib/sharedComponents/frequency/frequency-on-completion-of/frequency-on-completion-of.component.mjs +9 -12
- package/esm2022/lib/sharedComponents/frequency/frequency-responsibility-list/frequency-responsibility-list.component.mjs +53 -23
- package/esm2022/lib/sharedComponents/frequency/frequency-responsibility-list/sub-responsibility/sub-responsibility.component.mjs +7 -3
- package/esm2022/lib/sharedComponents/frequency/frequency.service.mjs +8 -4
- package/esm2022/lib/ui-kit/avatar-v2/avatar-v2.component.mjs +1 -2
- package/esm2022/lib/workflow-compliance/workflow-compliance.component.mjs +18 -3
- package/esm2022/lib/workflow-engine-container/workflow-engine-container.component.mjs +1 -2
- package/esm2022/lib/workflow-policy/workflow-policy.component.mjs +1 -1
- package/esm2022/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.mjs +1 -1
- package/fesm2022/vcomply-workflow-engine.mjs +126 -39
- package/fesm2022/vcomply-workflow-engine.mjs.map +1 -1
- package/lib/constants/common.constants.d.ts +1 -0
- package/lib/pipes/pipes.module.d.ts +3 -2
- package/lib/pipes/responsibility-checked.pipe.d.ts +7 -0
- package/lib/services/common.service.d.ts +9 -0
- package/lib/sharedComponents/assessment-preview/preview/preview.component.d.ts +2 -1
- package/lib/sharedComponents/frequency/frequency-container/frequency-container.component.d.ts +2 -1
- package/lib/sharedComponents/frequency/frequency-on-completion-of/frequency-on-completion-of.component.d.ts +2 -2
- package/lib/sharedComponents/frequency/frequency-responsibility-list/frequency-responsibility-list.component.d.ts +5 -2
- package/lib/sharedComponents/frequency/frequency-responsibility-list/sub-responsibility/sub-responsibility.component.d.ts +2 -1
- package/lib/workflow-compliance/workflow-compliance.component.d.ts +2 -0
- package/lib/workflow-risk/workflow-risk.component.d.ts +1 -1
- package/package.json +1 -1
|
@@ -7,11 +7,9 @@ import * as i3 from "@angular/common";
|
|
|
7
7
|
import * as i4 from "../../../ui-kit/tooltip/tooltip.directive";
|
|
8
8
|
import * as i5 from "../../../ui-kit/popover/popover.component";
|
|
9
9
|
import * as i6 from "../../../ui-kit/popover/popover.directive";
|
|
10
|
-
import * as i7 from "../../../
|
|
11
|
-
import * as i8 from "
|
|
12
|
-
import * as i9 from "
|
|
13
|
-
import * as i10 from "../frequency-due-date/frequency-due-date.component";
|
|
14
|
-
import * as i11 from "../frequency-responsibility-list/frequency-responsibility-list.component";
|
|
10
|
+
import * as i7 from "../../../ui-kit/time-picker/time-picker/time-picker.component";
|
|
11
|
+
import * as i8 from "../frequency-due-date/frequency-due-date.component";
|
|
12
|
+
import * as i9 from "../frequency-responsibility-list/frequency-responsibility-list.component";
|
|
15
13
|
export class FrequencyOnCompletionOfComponent {
|
|
16
14
|
constructor(frequencyService) {
|
|
17
15
|
this.frequencyService = frequencyService;
|
|
@@ -35,7 +33,6 @@ export class FrequencyOnCompletionOfComponent {
|
|
|
35
33
|
this.isSelectedData = false;
|
|
36
34
|
}
|
|
37
35
|
ngOnInit() {
|
|
38
|
-
this.featureFlag_on_completion_of = this.feature.isFeatureEnabled('ff_frequency_on_completion_of');
|
|
39
36
|
this.frequencyInfo = Object.assign(this.frequencyService.frequencyInfo);
|
|
40
37
|
this.getCompletionReports();
|
|
41
38
|
this.getOnCompletionFrequency();
|
|
@@ -49,7 +46,7 @@ export class FrequencyOnCompletionOfComponent {
|
|
|
49
46
|
this.onCompletionOfFailed = this.frequencyData.failed;
|
|
50
47
|
this.onCompletionOfWindow = this.frequencyData.window;
|
|
51
48
|
this.onCompletionOfTime = this.frequencyData.failedTime;
|
|
52
|
-
this.selectedResponsibilityDetails = this.
|
|
49
|
+
this.selectedResponsibilityDetails = this.frequencyData.onCompletionResponsibility;
|
|
53
50
|
this.getOnCompletionFrequency();
|
|
54
51
|
this.isSelectedData = this.selectedResponsibilityDetails
|
|
55
52
|
? Object.keys(this.selectedResponsibilityDetails)?.length > 0
|
|
@@ -69,7 +66,6 @@ export class FrequencyOnCompletionOfComponent {
|
|
|
69
66
|
this.getOnCompletionFrequency();
|
|
70
67
|
}
|
|
71
68
|
onResponsibilitySelection(event) {
|
|
72
|
-
console.log(event, "event");
|
|
73
69
|
this.selectedResponsibilityDetails = event;
|
|
74
70
|
this.getOnCompletionFrequency();
|
|
75
71
|
}
|
|
@@ -116,7 +112,6 @@ export class FrequencyOnCompletionOfComponent {
|
|
|
116
112
|
assignee: this.selectedResponsibilityDetails?.responsibility?.assigneeDetails[0]?.assignee,
|
|
117
113
|
responsibilityCenter: this.selectedResponsibilityDetails?.responsibility?.assigneeDetails[0]?.responsibilityCenter
|
|
118
114
|
};
|
|
119
|
-
console.log(this.frequencyInfo, "frequencyInfo");
|
|
120
115
|
this.frequencyDetails.emit(this.frequencyInfo);
|
|
121
116
|
}
|
|
122
117
|
openRadioResponsibility(event) {
|
|
@@ -143,15 +138,17 @@ export class FrequencyOnCompletionOfComponent {
|
|
|
143
138
|
this.onTimeChanged(selectedValue);
|
|
144
139
|
}
|
|
145
140
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FrequencyOnCompletionOfComponent, deps: [{ token: i1.FrequencyService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
146
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FrequencyOnCompletionOfComponent, selector: "app-frequency-on-completion-of", inputs: { mode: "mode", feature: "feature", startDate: "startDate", frequencyData: "frequencyData" }, outputs: { frequencyDetails: "frequencyDetails", radioForm: "radioForm" }, ngImport: i0, template: "<div class=\"frequency-completion\" *ngIf=\"mode !== 'policy' || backButton\">\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n DUE DATE FREQUENCY:\n </div>\n <div class=\"frequency-completion-inner\">\n <div class=\"frequency-completion-top vx-p-3 vx-d-flex vx-align-center\">\n <input class=\"countNum\" type=\"number\" [(ngModel)]=\"onCompletionOfInput\" (change)=\"inputValueChange($event)\"\n onkeydown=\"return event.keyCode !== 190\" min=\"0\" oninput=\"this.value = Math.abs(this.value)\" />\n <div class=\"vx-fs-13 vx-paragraph-txt\">day after completion of</div>\n </div>\n <div class=\"frequency-completion-bottom vx-p-3\">\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n RESPONSIBILITY\n </div>\n <div class=\"vx-d-flex vx-align-center\">\n <ng-container>\n <div *ngIf=\"!selectedResponsibilityDetails?.responsibility?.title\"\n [class.disabled]=\"placeholder === 'Loading...'\"\n class=\"select-box vx-fs-11 vx-paragraph-txt vx-p-2 vx-pl-3 vx-pr-3 vx-mr-3 vx-d-flex vx-align-center vx-justify-between vx-w-100\"\n (click)=\"openRadioResponsibility($event)\">\n {{\n placeholder === \"Loading...\"\n ? \"Loading...\"\n : \"Select a Responsibility\"\n }}\n <i class=\"icons vx-fs-10\"></i>\n </div>\n <div *ngIf=\"selectedResponsibilityDetails?.responsibility?.title as respName\"\n class=\"after-select-box vx-p-1 vx-mr-3 vx-d-flex vx-align-center vx-justify-between vx-w-100\">\n <div class=\"select-chip vx-fs-12 vx-paragraph-txt vx-p-1 vx-pl-2 vx-pr-2 vx-d-flex vx-align-center\">\n <i class=\"icons cross vx-fs-14 vx-mr-1\" (click)=\"remove()\"></i>\n <span [appTooltip]=\"respName\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{\n respName }}</span>\n </div>\n <button\n class=\"edit-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-d-flex vx-align-center\"\n (click)=\"openRadioResponsibility($event)\">\n <i class=\"icons vx-mr-1\" (click)=\"openRadioResponsibility($event)\"></i>\n EDIT\n </button>\n </div>\n <app-frequency-responsibility-list *ngIf=\"openRadio\" [feature]=\"feature\" [selectedResponsibilityDetails]=\"\n selectedResponsibilityDetails ? selectedResponsibilityDetails : {}\n \" (backButton)=\"openRadioResponsibility($event)\"\n (selectedResponsibility)=\"onResponsibilitySelection($event)\"></app-frequency-responsibility-list>\n </ng-container>\n\n <div class=\"time-picker-group vx-d-flex\" *ngIf=\"!openRadio\">\n <div class=\"time-field\" appPopover (click)=\"timePicker.popover()\" placement=\"right\">\n <input class=\"input\" [placeholder]=\"onCompletionOfTime | uppercase\" readonly />\n <div class=\"clock-icon vx-d-flex vx-align-center vx-justify-center\">\n <i class=\"icons vx-fs-12 vx-paragraph-txt\"></i>\n </div>\n </div>\n <app-popover #timePicker [dontCloseonClick]=\"true\">\n <app-time-picker [time]=\"onCompletionOfTime\" (onTimeSelection)=\"\n timeSelection($event); timePicker.closePopover('top')\n \"></app-time-picker>\n </app-popover>\n </div>\n </div>\n </div>\n </div>\n <app-frequency-due-date [id]=\"3\" [pageName]=\"'onCompletion'\" [mode]=\"mode\" [isDeactivated]=\"false\"\n [completedValue]=\"onCompletionOfWindow\" [notCompletedValue]=\"onCompletionOfFailed\"\n (valueChange)=\"onValueChange($event)\"></app-frequency-due-date>\n</div>\n\n<div *ngIf=\"mode === 'policy'\" class=\"frequency-on-completion-of\">\n <div class=\"frequency-on-completion-of-message\">\n <input type=\"number\" [(ngModel)]=\"onCompletionOfInput\" (change)=\"inputValueChange($event)\"\n onkeydown=\"return event.keyCode !== 190\" min=\"0\" oninput=\"this.value = Math.abs(this.value)\" />\n <p>{{ onCompletionOfInput > 1 ? \"days\" : \"day\" }} after completion of</p>\n </div>\n <div class=\"frequency-on-completion-of-row\">\n <div class=\"responsibility\">\n <cs-select [class.disabled]=\"placeholder === 'Loading...'\" [(ngModel)]=\"selectedResponsibilityDetails\"\n (valueChanged)=\"onResponsibilitySelection($event)\" [placeholder]=\"placeholder\">\n <cs-option *ngFor=\"\n let responsibility of onCompletionOfResponsibility;\n let i = index\n \" [value]=\"responsibility\" [optionTooltip]=\"responsibility?.ReportName\">{{ responsibility?.ReportName\n }}</cs-option>\n </cs-select>\n </div>\n <div class=\"time\">\n <input type=\"text\" readonly aria-label=\"12hr format\" [(ngModel)]=\"onCompletionOfTime\" placeholder=\"Select Time\" />\n </div>\n </div>\n <app-frequency-due-date [id]=\"3\" [pageName]=\"'onCompletion'\" [mode]=\"mode\" [isDeactivated]=\"false\"\n [completedValue]=\"onCompletionOfWindow\" [notCompletedValue]=\"onCompletionOfFailed\"\n (valueChange)=\"onValueChange($event)\"></app-frequency-due-date>\n</div>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/header/header.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/button/button.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/popover/popover.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .frequency-completion-inner{border-radius:.25rem;border:1px solid #f1f1f1}::ng-deep .frequency-completion-top input.countNum{-moz-appearance:textfield;border:none;border-bottom:1px solid #DBDBDB;color:#161b2f;display:inline-block;font-size:13px;text-align:center;width:2.75rem;padding:.125rem;margin:0 .5rem 0 0;outline:none}::ng-deep .frequency-completion-top input.countNum::-webkit-inner-spin-button,::ng-deep .frequency-completion-top input.countNum::-webkit-outer-spin-button{-webkit-appearance:none}::ng-deep .frequency-completion-bottom{border-top:1px solid #f1f1f1}::ng-deep .frequency-completion-bottom .select-box{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2rem}::ng-deep .frequency-completion-bottom .select-box.disabled{pointer-events:none;opacity:.5}::ng-deep .frequency-completion-bottom .after-select-box{background:#f8f8f8;border-radius:.25rem;border:1px solid #f1f1f1;height:2rem}::ng-deep .frequency-completion-bottom .after-select-box .select-chip{background:#fff;border-radius:.125rem;box-shadow:0 2px 4px #1e5dd31a}::ng-deep .frequency-completion-bottom .after-select-box .select-chip .cross{cursor:pointer}::ng-deep .frequency-completion-bottom .after-select-box .select-chip span{display:block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:30rem}::ng-deep .frequency-completion-bottom .after-select-box button.edit-btn{background:#fff;border-radius:.125rem;border:1px solid #f1f1f1;height:1.5rem}::ng-deep .frequency-completion-bottom cs-select{width:100%;margin-right:.75rem}::ng-deep .frequency-completion-bottom cs-select .selection-wrap .input-group input.value{height:2rem!important;font-size:11px!important}::ng-deep .frequency-completion-bottom .time-picker-group{background:#fff;border-radius:.25rem;display:flex;position:relative}::ng-deep .frequency-completion-bottom .time-picker-group input{background:transparent;border-radius:.25rem;border:1px solid #DBDBDB;color:#747576;font-size:13px;font-weight:400;width:6.25rem;padding:0 .75rem;margin:0;height:2rem;outline:none;position:relative;z-index:1;cursor:pointer}::ng-deep .frequency-completion-bottom .time-picker-group input::placeholder{color:#747576}::ng-deep .frequency-completion-bottom .time-picker-group .time-field{position:relative;cursor:pointer}::ng-deep .frequency-completion-bottom .time-picker-group .time-field.disable{background:#f1f1f1;border-radius:.25rem}::ng-deep .frequency-completion-bottom .time-picker-group .time-field .clock-icon{height:2rem;width:.75rem;position:absolute;right:.75rem;top:0}::ng-deep .selection-wrap .input-group i{top:12px!important}\n"], dependencies: [{ kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i5.PopoverComponent, selector: "app-popover", inputs: ["dontCloseonClick"], outputs: ["closePopoverEvent"] }, { kind: "directive", type: i6.PopoverDirective, selector: "[appPopover]", inputs: ["refrence", "placement"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.CsSelectComponent, selector: "cs-select", inputs: ["dropdownLabel", "dropdownSubLabel", "isRequired", "placeholder", "setMaxWidth"], outputs: ["valueChanged"] }, { kind: "component", type: i8.CsOptionComponent, selector: "cs-option", inputs: ["value", "color", "backgroundColor", "optionTooltip"] }, { kind: "component", type: i9.TimePickerComponent, selector: "app-time-picker", inputs: ["time"], outputs: ["onTimeSelection"] }, { kind: "component", type: i10.FrequencyDueDateComponent, selector: "app-frequency-due-date", inputs: ["mode", "pageType", "completedRequired", "notCompletedRequired", "completedValue", "notCompletedValue", "deactivateValue", "isDeactivated", "id", "pageName"], outputs: ["valueChange"] }, { kind: "component", type: i11.FrequencyResponsibilityListComponent, selector: "app-frequency-responsibility-list", inputs: ["onCompletionOfResponsibility", "selectedResponsibilityDetails"], outputs: ["backButton", "selectedResponsibility"] }, { kind: "pipe", type: i3.UpperCasePipe, name: "uppercase" }] }); }
|
|
141
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FrequencyOnCompletionOfComponent, selector: "app-frequency-on-completion-of", inputs: { mode: "mode", feature: "feature", onCompletionResponsibility: "onCompletionResponsibility", startDate: "startDate", frequencyData: "frequencyData" }, outputs: { frequencyDetails: "frequencyDetails", radioForm: "radioForm" }, ngImport: i0, template: "<div class=\"frequency-completion\" *ngIf=\"mode !== 'policy' || backButton\">\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n DUE DATE FREQUENCY:\n </div>\n <div class=\"frequency-completion-inner\">\n <div class=\"frequency-completion-top vx-p-3 vx-d-flex vx-align-center\">\n <input class=\"countNum\" type=\"number\" [(ngModel)]=\"onCompletionOfInput\" (change)=\"inputValueChange($event)\"\n onkeydown=\"return event.keyCode !== 190\" min=\"0\" oninput=\"this.value = Math.abs(this.value)\" />\n <div class=\"vx-fs-13 vx-paragraph-txt\">day after completion of</div>\n </div>\n <div class=\"frequency-completion-bottom vx-p-3\">\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n RESPONSIBILITY\n </div>\n <div class=\"vx-d-flex vx-align-center\">\n <ng-container>\n <div *ngIf=\"!onCompletionResponsibility.title\" [class.disabled]=\"placeholder === 'Loading...'\"\n class=\"select-box vx-fs-11 vx-paragraph-txt vx-p-2 vx-pl-3 vx-pr-3 vx-mr-3 vx-d-flex vx-align-center vx-justify-between vx-w-100\"\n (click)=\"openRadioResponsibility($event)\">\n {{\n placeholder === \"Loading...\"\n ? \"Loading...\"\n : \"Select a Responsibility\"\n }}\n <i class=\"icons vx-fs-10\"></i>\n </div>\n <div *ngIf=\"onCompletionResponsibility?.title as respName\"\n class=\"after-select-box vx-p-1 vx-mr-3 vx-d-flex vx-align-center vx-justify-between vx-w-100\">\n <div class=\"select-chip vx-fs-12 vx-paragraph-txt vx-p-1 vx-pl-2 vx-pr-2 vx-d-flex vx-align-center\">\n <i class=\"icons cross vx-fs-14 vx-mr-1\" (click)=\"remove()\"></i>\n <span [appTooltip]=\"respName\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{\n respName }}</span>\n </div>\n <button\n class=\"edit-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-d-flex vx-align-center\"\n (click)=\"openRadioResponsibility($event)\">\n <i class=\"icons vx-mr-1\" (click)=\"openRadioResponsibility($event)\"></i>\n EDIT\n </button>\n </div>\n <app-frequency-responsibility-list *ngIf=\"openRadio\" [feature]=\"feature\" [selectedResponsibilityDetails]=\"\n onCompletionResponsibility\n \" (backButton)=\"openRadioResponsibility($event)\"\n (selectedResponsibility)=\"onResponsibilitySelection($event)\"></app-frequency-responsibility-list>\n </ng-container>\n\n <div class=\"time-picker-group vx-d-flex\" *ngIf=\"!openRadio\">\n <div class=\"time-field\" appPopover (click)=\"timePicker.popover()\" placement=\"right\">\n <input class=\"input\" [placeholder]=\"onCompletionOfTime | uppercase\" readonly />\n <div class=\"clock-icon vx-d-flex vx-align-center vx-justify-center\">\n <i class=\"icons vx-fs-12 vx-paragraph-txt\"></i>\n </div>\n </div>\n <app-popover #timePicker [dontCloseonClick]=\"true\">\n <app-time-picker [time]=\"onCompletionOfTime\" (onTimeSelection)=\"\n timeSelection($event); timePicker.closePopover('top')\n \"></app-time-picker>\n </app-popover>\n </div>\n </div>\n </div>\n </div>\n <app-frequency-due-date [id]=\"3\" [pageName]=\"'onCompletion'\" [mode]=\"mode\" [isDeactivated]=\"false\"\n [completedValue]=\"onCompletionOfWindow\" [notCompletedValue]=\"onCompletionOfFailed\"\n (valueChange)=\"onValueChange($event)\"></app-frequency-due-date>\n</div>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/header/header.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/button/button.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/popover/popover.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .frequency-completion-inner{border-radius:.25rem;border:1px solid #f1f1f1}::ng-deep .frequency-completion-top input.countNum{-moz-appearance:textfield;border:none;border-bottom:1px solid #DBDBDB;color:#161b2f;display:inline-block;font-size:13px;text-align:center;width:2.75rem;padding:.125rem;margin:0 .5rem 0 0;outline:none}::ng-deep .frequency-completion-top input.countNum::-webkit-inner-spin-button,::ng-deep .frequency-completion-top input.countNum::-webkit-outer-spin-button{-webkit-appearance:none}::ng-deep .frequency-completion-bottom{border-top:1px solid #f1f1f1}::ng-deep .frequency-completion-bottom .select-box{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2rem}::ng-deep .frequency-completion-bottom .select-box.disabled{pointer-events:none;opacity:.5}::ng-deep .frequency-completion-bottom .after-select-box{background:#f8f8f8;border-radius:.25rem;border:1px solid #f1f1f1;height:2rem}::ng-deep .frequency-completion-bottom .after-select-box .select-chip{background:#fff;border-radius:.125rem;box-shadow:0 2px 4px #1e5dd31a}::ng-deep .frequency-completion-bottom .after-select-box .select-chip .cross{cursor:pointer}::ng-deep .frequency-completion-bottom .after-select-box .select-chip span{display:block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:30rem}::ng-deep .frequency-completion-bottom .after-select-box button.edit-btn{background:#fff;border-radius:.125rem;border:1px solid #f1f1f1;height:1.5rem}::ng-deep .frequency-completion-bottom cs-select{width:100%;margin-right:.75rem}::ng-deep .frequency-completion-bottom cs-select .selection-wrap .input-group input.value{height:2rem!important;font-size:11px!important}::ng-deep .frequency-completion-bottom .time-picker-group{background:#fff;border-radius:.25rem;display:flex;position:relative}::ng-deep .frequency-completion-bottom .time-picker-group input{background:transparent;border-radius:.25rem;border:1px solid #DBDBDB;color:#747576;font-size:13px;font-weight:400;width:6.25rem;padding:0 .75rem;margin:0;height:2rem;outline:none;position:relative;z-index:1;cursor:pointer}::ng-deep .frequency-completion-bottom .time-picker-group input::placeholder{color:#747576}::ng-deep .frequency-completion-bottom .time-picker-group .time-field{position:relative;cursor:pointer}::ng-deep .frequency-completion-bottom .time-picker-group .time-field.disable{background:#f1f1f1;border-radius:.25rem}::ng-deep .frequency-completion-bottom .time-picker-group .time-field .clock-icon{height:2rem;width:.75rem;position:absolute;right:.75rem;top:0}::ng-deep .selection-wrap .input-group i{top:12px!important}\n"], dependencies: [{ kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i5.PopoverComponent, selector: "app-popover", inputs: ["dontCloseonClick"], outputs: ["closePopoverEvent"] }, { kind: "directive", type: i6.PopoverDirective, selector: "[appPopover]", inputs: ["refrence", "placement"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.TimePickerComponent, selector: "app-time-picker", inputs: ["time"], outputs: ["onTimeSelection"] }, { kind: "component", type: i8.FrequencyDueDateComponent, selector: "app-frequency-due-date", inputs: ["mode", "pageType", "completedRequired", "notCompletedRequired", "completedValue", "notCompletedValue", "deactivateValue", "isDeactivated", "id", "pageName"], outputs: ["valueChange"] }, { kind: "component", type: i9.FrequencyResponsibilityListComponent, selector: "app-frequency-responsibility-list", inputs: ["onCompletionOfResponsibility", "selectedResponsibilityDetails"], outputs: ["backButton", "selectedResponsibility"] }, { kind: "pipe", type: i3.UpperCasePipe, name: "uppercase" }] }); }
|
|
147
142
|
}
|
|
148
143
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FrequencyOnCompletionOfComponent, decorators: [{
|
|
149
144
|
type: Component,
|
|
150
|
-
args: [{ selector: 'app-frequency-on-completion-of', template: "<div class=\"frequency-completion\" *ngIf=\"mode !== 'policy' || backButton\">\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n DUE DATE FREQUENCY:\n </div>\n <div class=\"frequency-completion-inner\">\n <div class=\"frequency-completion-top vx-p-3 vx-d-flex vx-align-center\">\n <input class=\"countNum\" type=\"number\" [(ngModel)]=\"onCompletionOfInput\" (change)=\"inputValueChange($event)\"\n onkeydown=\"return event.keyCode !== 190\" min=\"0\" oninput=\"this.value = Math.abs(this.value)\" />\n <div class=\"vx-fs-13 vx-paragraph-txt\">day after completion of</div>\n </div>\n <div class=\"frequency-completion-bottom vx-p-3\">\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n RESPONSIBILITY\n </div>\n <div class=\"vx-d-flex vx-align-center\">\n <ng-container>\n <div *ngIf=\"!
|
|
145
|
+
args: [{ selector: 'app-frequency-on-completion-of', template: "<div class=\"frequency-completion\" *ngIf=\"mode !== 'policy' || backButton\">\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n DUE DATE FREQUENCY:\n </div>\n <div class=\"frequency-completion-inner\">\n <div class=\"frequency-completion-top vx-p-3 vx-d-flex vx-align-center\">\n <input class=\"countNum\" type=\"number\" [(ngModel)]=\"onCompletionOfInput\" (change)=\"inputValueChange($event)\"\n onkeydown=\"return event.keyCode !== 190\" min=\"0\" oninput=\"this.value = Math.abs(this.value)\" />\n <div class=\"vx-fs-13 vx-paragraph-txt\">day after completion of</div>\n </div>\n <div class=\"frequency-completion-bottom vx-p-3\">\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\n RESPONSIBILITY\n </div>\n <div class=\"vx-d-flex vx-align-center\">\n <ng-container>\n <div *ngIf=\"!onCompletionResponsibility.title\" [class.disabled]=\"placeholder === 'Loading...'\"\n class=\"select-box vx-fs-11 vx-paragraph-txt vx-p-2 vx-pl-3 vx-pr-3 vx-mr-3 vx-d-flex vx-align-center vx-justify-between vx-w-100\"\n (click)=\"openRadioResponsibility($event)\">\n {{\n placeholder === \"Loading...\"\n ? \"Loading...\"\n : \"Select a Responsibility\"\n }}\n <i class=\"icons vx-fs-10\"></i>\n </div>\n <div *ngIf=\"onCompletionResponsibility?.title as respName\"\n class=\"after-select-box vx-p-1 vx-mr-3 vx-d-flex vx-align-center vx-justify-between vx-w-100\">\n <div class=\"select-chip vx-fs-12 vx-paragraph-txt vx-p-1 vx-pl-2 vx-pr-2 vx-d-flex vx-align-center\">\n <i class=\"icons cross vx-fs-14 vx-mr-1\" (click)=\"remove()\"></i>\n <span [appTooltip]=\"respName\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{\n respName }}</span>\n </div>\n <button\n class=\"edit-btn vx-fs-11 vx-fw-500 vx-txt-blue vx-tt-uppercase vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-d-flex vx-align-center\"\n (click)=\"openRadioResponsibility($event)\">\n <i class=\"icons vx-mr-1\" (click)=\"openRadioResponsibility($event)\"></i>\n EDIT\n </button>\n </div>\n <app-frequency-responsibility-list *ngIf=\"openRadio\" [feature]=\"feature\" [selectedResponsibilityDetails]=\"\n onCompletionResponsibility\n \" (backButton)=\"openRadioResponsibility($event)\"\n (selectedResponsibility)=\"onResponsibilitySelection($event)\"></app-frequency-responsibility-list>\n </ng-container>\n\n <div class=\"time-picker-group vx-d-flex\" *ngIf=\"!openRadio\">\n <div class=\"time-field\" appPopover (click)=\"timePicker.popover()\" placement=\"right\">\n <input class=\"input\" [placeholder]=\"onCompletionOfTime | uppercase\" readonly />\n <div class=\"clock-icon vx-d-flex vx-align-center vx-justify-center\">\n <i class=\"icons vx-fs-12 vx-paragraph-txt\"></i>\n </div>\n </div>\n <app-popover #timePicker [dontCloseonClick]=\"true\">\n <app-time-picker [time]=\"onCompletionOfTime\" (onTimeSelection)=\"\n timeSelection($event); timePicker.closePopover('top')\n \"></app-time-picker>\n </app-popover>\n </div>\n </div>\n </div>\n </div>\n <app-frequency-due-date [id]=\"3\" [pageName]=\"'onCompletion'\" [mode]=\"mode\" [isDeactivated]=\"false\"\n [completedValue]=\"onCompletionOfWindow\" [notCompletedValue]=\"onCompletionOfFailed\"\n (valueChange)=\"onValueChange($event)\"></app-frequency-due-date>\n</div>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/header/header.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/button/button.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/popover/popover.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .frequency-completion-inner{border-radius:.25rem;border:1px solid #f1f1f1}::ng-deep .frequency-completion-top input.countNum{-moz-appearance:textfield;border:none;border-bottom:1px solid #DBDBDB;color:#161b2f;display:inline-block;font-size:13px;text-align:center;width:2.75rem;padding:.125rem;margin:0 .5rem 0 0;outline:none}::ng-deep .frequency-completion-top input.countNum::-webkit-inner-spin-button,::ng-deep .frequency-completion-top input.countNum::-webkit-outer-spin-button{-webkit-appearance:none}::ng-deep .frequency-completion-bottom{border-top:1px solid #f1f1f1}::ng-deep .frequency-completion-bottom .select-box{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2rem}::ng-deep .frequency-completion-bottom .select-box.disabled{pointer-events:none;opacity:.5}::ng-deep .frequency-completion-bottom .after-select-box{background:#f8f8f8;border-radius:.25rem;border:1px solid #f1f1f1;height:2rem}::ng-deep .frequency-completion-bottom .after-select-box .select-chip{background:#fff;border-radius:.125rem;box-shadow:0 2px 4px #1e5dd31a}::ng-deep .frequency-completion-bottom .after-select-box .select-chip .cross{cursor:pointer}::ng-deep .frequency-completion-bottom .after-select-box .select-chip span{display:block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:30rem}::ng-deep .frequency-completion-bottom .after-select-box button.edit-btn{background:#fff;border-radius:.125rem;border:1px solid #f1f1f1;height:1.5rem}::ng-deep .frequency-completion-bottom cs-select{width:100%;margin-right:.75rem}::ng-deep .frequency-completion-bottom cs-select .selection-wrap .input-group input.value{height:2rem!important;font-size:11px!important}::ng-deep .frequency-completion-bottom .time-picker-group{background:#fff;border-radius:.25rem;display:flex;position:relative}::ng-deep .frequency-completion-bottom .time-picker-group input{background:transparent;border-radius:.25rem;border:1px solid #DBDBDB;color:#747576;font-size:13px;font-weight:400;width:6.25rem;padding:0 .75rem;margin:0;height:2rem;outline:none;position:relative;z-index:1;cursor:pointer}::ng-deep .frequency-completion-bottom .time-picker-group input::placeholder{color:#747576}::ng-deep .frequency-completion-bottom .time-picker-group .time-field{position:relative;cursor:pointer}::ng-deep .frequency-completion-bottom .time-picker-group .time-field.disable{background:#f1f1f1;border-radius:.25rem}::ng-deep .frequency-completion-bottom .time-picker-group .time-field .clock-icon{height:2rem;width:.75rem;position:absolute;right:.75rem;top:0}::ng-deep .selection-wrap .input-group i{top:12px!important}\n"] }]
|
|
151
146
|
}], ctorParameters: function () { return [{ type: i1.FrequencyService }]; }, propDecorators: { mode: [{
|
|
152
147
|
type: Input
|
|
153
148
|
}], feature: [{
|
|
154
149
|
type: Input
|
|
150
|
+
}], onCompletionResponsibility: [{
|
|
151
|
+
type: Input
|
|
155
152
|
}], startDate: [{
|
|
156
153
|
type: Input
|
|
157
154
|
}], frequencyData: [{
|
|
@@ -161,4 +158,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
161
158
|
}], radioForm: [{
|
|
162
159
|
type: Output
|
|
163
160
|
}] } });
|
|
164
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YvZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YvZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFPakUsTUFBTSxPQUFPLGdDQUFnQztJQTBCM0MsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUF6QjdDLFNBQUksR0FBUSxFQUFFLENBQUM7UUFFeEIsaUJBQVksR0FBVyxZQUFZLENBQUM7UUFDcEMsd0JBQW1CLEdBQUcsQ0FBQyxDQUFDO1FBQ3hCLHlCQUFvQixHQUFHLENBQUMsQ0FBQztRQUN6Qix5QkFBb0IsR0FBRyxDQUFDLENBQUM7UUFDekIsdUJBQWtCLEdBQUcsWUFBWSxDQUFDO1FBQ2xDLGlDQUE0QixHQUFlLEVBQUUsQ0FBQztRQUM5Qyx3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFDNUIsMkJBQXNCLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLGdCQUFXLEdBQUcsWUFBWSxDQUFDO1FBRTNCLGtDQUE2QixHQUFRLEVBQUUsQ0FBQztRQUUvQixjQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFFbkQscUJBQWdCLEdBQVEsZUFBZSxDQUFDO1FBRTlCLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDM0MsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDOUMsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUUzQixlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLG1CQUFjLEdBQVksS0FBSyxDQUFDO0lBRXlCLENBQUM7SUFFMUQsUUFBUTtRQUNOLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUMvRCwrQkFBK0IsQ0FDaEMsQ0FBQztRQUNGLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsNkJBQTZCO1lBQ3RELENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxFQUFFLE1BQU0sR0FBRyxDQUFDO1lBQzdELENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDWixDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQztRQUN0RCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7UUFDdEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDO1FBQ3hELElBQUksQ0FBQyw2QkFBNkIsR0FBRyxJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUN6RSxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FDakUsQ0FBQztRQUNGLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLDZCQUE2QjtZQUN0RCxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsRUFBRSxNQUFNLEdBQUcsQ0FBQztZQUM3RCxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ1osQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFhO1FBQ3pCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDaEMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFVO1FBQ3RCLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxXQUFXLEVBQUU7WUFDOUIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7U0FDekM7YUFBTTtZQUNMLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1NBQ3pDO1FBQ0QsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELHlCQUF5QixDQUFDLEtBQVU7UUFDbEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLDZCQUE2QixHQUFHLEtBQUssQ0FBQztRQUMzQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLFdBQVcsR0FBRyx5QkFBeUIsQ0FBQztRQUM3QyxJQUFJLENBQUMsNEJBQTRCLEdBQUcsRUFBRSxDQUFDO1FBRXZDLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSx5QkFBeUIsRUFBRTtZQUNqRCxJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUNwQyxJQUFJLENBQUMsYUFBYSxFQUFFLHlCQUF5QixDQUM5QyxDQUFDO1NBQ0g7UUFFRCxJQUNFLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxJQUFJLEVBQUU7WUFDaEMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFDeEQ7WUFDQSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztTQUMxQjtJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFVO1FBQ3pCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0RCxJQUFJLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxDQUFDLEVBQUU7WUFDaEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsQ0FBQztTQUM5QjtRQUNELElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCx3QkFBd0I7UUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXO1lBQzVCLElBQUksQ0FBQyxtQkFBbUI7Z0JBQ3hCLEdBQUc7Z0JBQ0gsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztnQkFDL0MsdUJBQXVCO2dCQUN2QixDQUFDLElBQUksQ0FBQyw0QkFBNEI7b0JBQ2xDLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxjQUFjLEVBQUUsS0FBSztvQkFDdkQsQ0FBQyxDQUFDLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxjQUFjLEVBQUUsS0FBSztvQkFDM0QsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ1YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPO1lBQ3hCLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztRQUM3RCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksR0FBRyxhQUFhLENBQUM7UUFDeEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1FBQzNELElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztRQUN0RCxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7UUFDeEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUNwRSxJQUFJLENBQUMsa0JBQWtCLENBQ3hCLENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEdBQUc7WUFDaEMsUUFBUSxFQUFFLElBQUksQ0FBQyxtQkFBbUI7WUFDbEMsY0FBYyxFQUFFLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxjQUFjLEVBQUUsRUFBRTtZQUN0RSxRQUFRLEVBQUUsSUFBSSxDQUFDLDZCQUE2QixFQUFFLGNBQWMsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUTtZQUMxRixvQkFBb0IsRUFBRSxJQUFJLENBQUMsNkJBQTZCLEVBQUUsY0FBYyxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBRSxvQkFBb0I7U0FDbkgsQ0FBQTtRQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsdUJBQXVCLENBQUMsS0FBVTtRQUNoQyxJQUFJLEtBQUssS0FBSyxvQkFBb0IsRUFBRTtZQUNsQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztTQUN4QjthQUFNO1lBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7U0FDekI7UUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsNkJBQTZCLEdBQUcsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLDZCQUE2QjtZQUN0RCxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsRUFBRSxNQUFNLEdBQUcsQ0FBQztZQUM3RCxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ1YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxhQUFhLENBQUMsS0FBVTtRQUN0QixNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDO1FBQzFDLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDcEMsQ0FBQzsrR0EzSlUsZ0NBQWdDO21HQUFoQyxnQ0FBZ0MsdVBDWDdDLHN4S0E0Rk07OzRGRGpGTyxnQ0FBZ0M7a0JBTDVDLFNBQVM7K0JBQ0UsZ0NBQWdDO3VHQUtqQyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQWFHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFHSSxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZyZXF1ZW5jeVNlcnZpY2UgfSBmcm9tICcuLi9mcmVxdWVuY3kuc2VydmljZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudC9tb21lbnQnO1xuaW1wb3J0IHsgZWxlbWVudEF0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgREVGQVVMVF9USU1FIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL3RpbWUuY29uc3RhbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZyZXF1ZW5jeS1vbi1jb21wbGV0aW9uLW9mJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZyZXF1ZW5jeS1vbi1jb21wbGV0aW9uLW9mLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YuY29tcG9uZW50Lmxlc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRnJlcXVlbmN5T25Db21wbGV0aW9uT2ZDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBtb2RlOiBhbnkgPSAnJztcbiAgQElucHV0KCkgZmVhdHVyZTogYW55O1xuICBERUZBVUxUX1RJTUU6IHN0cmluZyA9IERFRkFVTFRfVElNRTtcbiAgb25Db21wbGV0aW9uT2ZJbnB1dCA9IDE7XG4gIG9uQ29tcGxldGlvbk9mV2luZG93ID0gMztcbiAgb25Db21wbGV0aW9uT2ZGYWlsZWQgPSA1O1xuICBvbkNvbXBsZXRpb25PZlRpbWUgPSBERUZBVUxUX1RJTUU7XG4gIG9uQ29tcGxldGlvbk9mUmVzcG9uc2liaWxpdHk6IEFycmF5PGFueT4gPSBbXTtcbiAgaXNMaWZlY3ljbGVNb2RpZmllZCA9IGZhbHNlO1xuICBzZWxlY3RlZFJlc3BvbnNpYmlsaXR5ID0gMDtcbiAgcGxhY2Vob2xkZXIgPSAnTG9hZGluZy4uLic7XG4gIGZyZXF1ZW5jeUluZm86IGFueTtcbiAgc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHM6IGFueSA9IHt9O1xuXG4gIEBJbnB1dCgpIHN0YXJ0RGF0ZSA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApO1xuICBASW5wdXQoKSBmcmVxdWVuY3lEYXRhOiBhbnk7XG4gIGxpZmVjeWNsZURldGFpbHM6IGFueSA9ICcwMDAwLTAwLTAwfn4wJztcblxuICBAT3V0cHV0KCkgZnJlcXVlbmN5RGV0YWlscyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgcmFkaW9Gb3JtID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIG9wZW5SYWRpbzogYm9vbGVhbiA9IGZhbHNlO1xuICBmZWF0dXJlRmxhZ19vbl9jb21wbGV0aW9uX29mOiBhbnk7XG4gIGJhY2tCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNTZWxlY3RlZERhdGE6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZyZXF1ZW5jeVNlcnZpY2U6IEZyZXF1ZW5jeVNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mZWF0dXJlRmxhZ19vbl9jb21wbGV0aW9uX29mID0gdGhpcy5mZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoXG4gICAgICAnZmZfZnJlcXVlbmN5X29uX2NvbXBsZXRpb25fb2YnXG4gICAgKTtcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8gPSBPYmplY3QuYXNzaWduKHRoaXMuZnJlcXVlbmN5U2VydmljZS5mcmVxdWVuY3lJbmZvKTtcbiAgICB0aGlzLmdldENvbXBsZXRpb25SZXBvcnRzKCk7XG4gICAgdGhpcy5nZXRPbkNvbXBsZXRpb25GcmVxdWVuY3koKTtcbiAgICB0aGlzLmlzU2VsZWN0ZWREYXRhID0gdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlsc1xuICAgICAgPyBPYmplY3Qua2V5cyh0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzKT8ubGVuZ3RoID4gMFxuICAgICAgOiBmYWxzZTtcbiAgfVxuXG4gIHBvcHVsYXRlRnJlcXVlbmN5KCkge1xuICAgIGNvbnN0IGZyZXF1ZW5jeVNlbGVjdGVkID0gdGhpcy5mcmVxdWVuY3lEYXRhLnBhdHRlcm4uc3BsaXQoJ34nKTtcbiAgICB0aGlzLm9uQ29tcGxldGlvbk9mSW5wdXQgPSBwYXJzZUludChmcmVxdWVuY3lTZWxlY3RlZFszXSk7XG4gICAgdGhpcy5vbkNvbXBsZXRpb25PZkZhaWxlZCA9IHRoaXMuZnJlcXVlbmN5RGF0YS5mYWlsZWQ7XG4gICAgdGhpcy5vbkNvbXBsZXRpb25PZldpbmRvdyA9IHRoaXMuZnJlcXVlbmN5RGF0YS53aW5kb3c7XG4gICAgdGhpcy5vbkNvbXBsZXRpb25PZlRpbWUgPSB0aGlzLmZyZXF1ZW5jeURhdGEuZmFpbGVkVGltZTtcbiAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzID0gdGhpcy5vbkNvbXBsZXRpb25PZlJlc3BvbnNpYmlsaXR5LmZpbmQoXG4gICAgICAocmVzOiBhbnkpID0+IHJlcy5SZXBvcnRJZCA9PT0gdGhpcy5mcmVxdWVuY3lEYXRhLnNlbGVjdGVkUmVwb3J0XG4gICAgKTtcbiAgICB0aGlzLmdldE9uQ29tcGxldGlvbkZyZXF1ZW5jeSgpO1xuICAgIHRoaXMuaXNTZWxlY3RlZERhdGEgPSB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzXG4gICAgICA/IE9iamVjdC5rZXlzKHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHMpPy5sZW5ndGggPiAwXG4gICAgICA6IGZhbHNlO1xuICB9XG5cbiAgb25UaW1lQ2hhbmdlZChldmVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5vbkNvbXBsZXRpb25PZlRpbWUgPSBldmVudDtcbiAgICB0aGlzLmdldE9uQ29tcGxldGlvbkZyZXF1ZW5jeSgpO1xuICB9XG5cbiAgb25WYWx1ZUNoYW5nZShldmVudDogYW55KSB7XG4gICAgaWYgKGV2ZW50LnR5cGUgPT09ICdjb21wbGV0ZWQnKSB7XG4gICAgICB0aGlzLm9uQ29tcGxldGlvbk9mV2luZG93ID0gZXZlbnQudmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub25Db21wbGV0aW9uT2ZGYWlsZWQgPSBldmVudC52YWx1ZTtcbiAgICB9XG4gICAgdGhpcy5nZXRPbkNvbXBsZXRpb25GcmVxdWVuY3koKTtcbiAgfVxuXG4gIG9uUmVzcG9uc2liaWxpdHlTZWxlY3Rpb24oZXZlbnQ6IGFueSkge1xuICAgIGNvbnNvbGUubG9nKGV2ZW50LCBcImV2ZW50XCIpO1xuICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHMgPSBldmVudDtcbiAgICB0aGlzLmdldE9uQ29tcGxldGlvbkZyZXF1ZW5jeSgpO1xuICB9XG5cbiAgZ2V0Q29tcGxldGlvblJlcG9ydHMoKSB7XG4gICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5ID0gMDtcbiAgICB0aGlzLnBsYWNlaG9sZGVyID0gJ1NlbGVjdCBhIFJlc3BvbnNpYmlsaXR5JztcbiAgICB0aGlzLm9uQ29tcGxldGlvbk9mUmVzcG9uc2liaWxpdHkgPSBbXTtcblxuICAgIGlmICh0aGlzLmZyZXF1ZW5jeURhdGE/Lm9uQ29tcGxldGlvblJlcG9ydERldGFpbHMpIHtcbiAgICAgIHRoaXMub25Db21wbGV0aW9uT2ZSZXNwb25zaWJpbGl0eS5wdXNoKFxuICAgICAgICB0aGlzLmZyZXF1ZW5jeURhdGE/Lm9uQ29tcGxldGlvblJlcG9ydERldGFpbHNcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgdGhpcy5mcmVxdWVuY3lEYXRhLnBhdHRlcm4gIT0gJycgJiZcbiAgICAgIHBhcnNlSW50KHRoaXMuZnJlcXVlbmN5RGF0YS5wYXR0ZXJuLnNwbGl0KCd+JylbMF0pID09PSA2XG4gICAgKSB7XG4gICAgICB0aGlzLnBvcHVsYXRlRnJlcXVlbmN5KCk7XG4gICAgfVxuICB9XG5cbiAgaW5wdXRWYWx1ZUNoYW5nZShldmVudDogYW55KSB7XG4gICAgdGhpcy5vbkNvbXBsZXRpb25PZklucHV0ID0gTnVtYmVyKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgaWYgKHRoaXMub25Db21wbGV0aW9uT2ZJbnB1dCA8IDEpIHtcbiAgICAgIHRoaXMub25Db21wbGV0aW9uT2ZJbnB1dCA9IDE7XG4gICAgfVxuICAgIHRoaXMuZ2V0T25Db21wbGV0aW9uRnJlcXVlbmN5KCk7XG4gIH1cblxuICBnZXRPbkNvbXBsZXRpb25GcmVxdWVuY3koKSB7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnBsYWNlaG9sZGVyID1cbiAgICAgIHRoaXMub25Db21wbGV0aW9uT2ZJbnB1dCArXG4gICAgICAnICcgK1xuICAgICAgKHRoaXMub25Db21wbGV0aW9uT2ZJbnB1dCA+IDEgPyAnZGF5cycgOiAnZGF5JykgK1xuICAgICAgJyBhZnRlciBjb21wbGV0aW9uIG9mICcgK1xuICAgICAgKHRoaXMub25Db21wbGV0aW9uT2ZSZXNwb25zaWJpbGl0eSAmJlxuICAgICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscz8ucmVzcG9uc2liaWxpdHk/LnRpdGxlXG4gICAgICAgID8gdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscz8ucmVzcG9uc2liaWxpdHk/LnRpdGxlXG4gICAgICAgIDogJycpO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5wYXR0ZXJuID1cbiAgICAgIDYgKyAnficgKyAnMCcgKyAnficgKyAnMCcgKyAnficgKyB0aGlzLm9uQ29tcGxldGlvbk9mSW5wdXQ7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmNhc2UgPSAnb25fY29tcGxldGUnO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5mYWlsZWRBZnRlciA9IHRoaXMub25Db21wbGV0aW9uT2ZGYWlsZWQ7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLndpbmRvdyA9IHRoaXMub25Db21wbGV0aW9uT2ZXaW5kb3c7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnRpbWVJbjEyaHIgPSB0aGlzLm9uQ29tcGxldGlvbk9mVGltZTtcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8udGltZUluMjRIciA9IHRoaXMuZnJlcXVlbmN5U2VydmljZS50aW1lRnJvbTEyaFRvMjRoKFxuICAgICAgdGhpcy5vbkNvbXBsZXRpb25PZlRpbWVcbiAgICApO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5mYWlsZWRfdGltZV91dGMgPSAwO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5vbkNvbXBsZXRpb24gPSB7XG4gICAgICBkdWVBZnRlcjogdGhpcy5vbkNvbXBsZXRpb25PZklucHV0LFxuICAgICAgcmVzcG9uc2liaWxpdHk6IHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHM/LnJlc3BvbnNpYmlsaXR5Py5pZCxcbiAgICAgIGFzc2lnbmVlOiB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzPy5yZXNwb25zaWJpbGl0eT8uYXNzaWduZWVEZXRhaWxzWzBdPy5hc3NpZ25lZSxcbiAgICAgIHJlc3BvbnNpYmlsaXR5Q2VudGVyOiB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzPy5yZXNwb25zaWJpbGl0eT8uYXNzaWduZWVEZXRhaWxzWzBdPy5yZXNwb25zaWJpbGl0eUNlbnRlclxuICAgIH1cbiAgICBjb25zb2xlLmxvZyh0aGlzLmZyZXF1ZW5jeUluZm8sIFwiZnJlcXVlbmN5SW5mb1wiKTtcbiAgICB0aGlzLmZyZXF1ZW5jeURldGFpbHMuZW1pdCh0aGlzLmZyZXF1ZW5jeUluZm8pO1xuICB9XG5cbiAgb3BlblJhZGlvUmVzcG9uc2liaWxpdHkoZXZlbnQ6IGFueSkge1xuICAgIGlmIChldmVudCA9PT0gJ2JhY2tUb09uQ29tcGxldGlvbicpIHtcbiAgICAgIHRoaXMuYmFja0J1dHRvbiA9IHRydWU7XG4gICAgICB0aGlzLm9wZW5SYWRpbyA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wZW5SYWRpbyA9IHRydWU7XG4gICAgICB0aGlzLmJhY2tCdXR0b24gPSBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5yYWRpb0Zvcm0uZW1pdCh0aGlzLm9wZW5SYWRpbyk7XG4gIH1cblxuICByZW1vdmUoKSB7XG4gICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscyA9IHt9O1xuICAgIHRoaXMuaXNTZWxlY3RlZERhdGEgPSB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzXG4gICAgICA/IE9iamVjdC5rZXlzKHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHMpPy5sZW5ndGggPiAwXG4gICAgICA6IGZhbHNlO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5yZXBvcnRJZCA9IDA7XG4gICAgdGhpcy5mcmVxdWVuY3lEZXRhaWxzLmVtaXQodGhpcy5mcmVxdWVuY3lJbmZvKTtcbiAgfVxuXG4gIHRpbWVTZWxlY3Rpb24oZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IHNlbGVjdGVkVmFsdWUgPSBldmVudC5zZWxlY3RlZFZhbHVlO1xuICAgIHRoaXMub25UaW1lQ2hhbmdlZChzZWxlY3RlZFZhbHVlKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1jb21wbGV0aW9uXCIgKm5nSWY9XCJtb2RlICE9PSAncG9saWN5JyB8fCBiYWNrQnV0dG9uXCI+XG4gIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1tYi0xXCI+XG4gICAgRFVFIERBVEUgRlJFUVVFTkNZOlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1jb21wbGV0aW9uLWlubmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1jb21wbGV0aW9uLXRvcCB2eC1wLTMgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgPGlucHV0IGNsYXNzPVwiY291bnROdW1cIiB0eXBlPVwibnVtYmVyXCIgWyhuZ01vZGVsKV09XCJvbkNvbXBsZXRpb25PZklucHV0XCIgKGNoYW5nZSk9XCJpbnB1dFZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICBvbmtleWRvd249XCJyZXR1cm4gZXZlbnQua2V5Q29kZSAhPT0gMTkwXCIgbWluPVwiMFwiIG9uaW5wdXQ9XCJ0aGlzLnZhbHVlID0gTWF0aC5hYnModGhpcy52YWx1ZSlcIiAvPlxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZzLTEzIHZ4LXBhcmFncmFwaC10eHRcIj5kYXkgYWZ0ZXIgY29tcGxldGlvbiBvZjwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktY29tcGxldGlvbi1ib3R0b20gdngtcC0zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTEgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC10dC11cHBlcmNhc2UgdngtbWItMVwiPlxuICAgICAgICBSRVNQT05TSUJJTElUWVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwidngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCIhc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHM/LnJlc3BvbnNpYmlsaXR5Py50aXRsZVwiXG4gICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwicGxhY2Vob2xkZXIgPT09ICdMb2FkaW5nLi4uJ1wiXG4gICAgICAgICAgICBjbGFzcz1cInNlbGVjdC1ib3ggdngtZnMtMTEgdngtcGFyYWdyYXBoLXR4dCB2eC1wLTIgdngtcGwtMyB2eC1wci0zIHZ4LW1yLTMgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtdy0xMDBcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5SYWRpb1Jlc3BvbnNpYmlsaXR5KCRldmVudClcIj5cbiAgICAgICAgICAgIHt7XG4gICAgICAgICAgICBwbGFjZWhvbGRlciA9PT0gXCJMb2FkaW5nLi4uXCJcbiAgICAgICAgICAgID8gXCJMb2FkaW5nLi4uXCJcbiAgICAgICAgICAgIDogXCJTZWxlY3QgYSBSZXNwb25zaWJpbGl0eVwiXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1mcy0xMFwiPiYjeGU5ZTg7PC9pPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscz8ucmVzcG9uc2liaWxpdHk/LnRpdGxlIGFzIHJlc3BOYW1lXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYWZ0ZXItc2VsZWN0LWJveCB2eC1wLTEgdngtbXItMyB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC13LTEwMFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdC1jaGlwIHZ4LWZzLTEyIHZ4LXBhcmFncmFwaC10eHQgdngtcC0xIHZ4LXBsLTIgdngtcHItMiB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTQgdngtbXItMVwiIChjbGljayk9XCJyZW1vdmUoKVwiPiYjeGU5YWU7PC9pPlxuICAgICAgICAgICAgICA8c3BhbiBbYXBwVG9vbHRpcF09XCJyZXNwTmFtZVwiIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCIgZGVsYXk9XCIwXCIgdHlwZT1cImJsYWNrXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiPnt7XG4gICAgICAgICAgICAgICAgcmVzcE5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJlZGl0LWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHh0LWJsdWUgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1wbC0xIHZ4LXByLTEgdngtbS0wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib3BlblJhZGlvUmVzcG9uc2liaWxpdHkoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIHZ4LW1yLTFcIiAoY2xpY2spPVwib3BlblJhZGlvUmVzcG9uc2liaWxpdHkoJGV2ZW50KVwiPiYjeGU5MGM7PC9pPlxuICAgICAgICAgICAgICBFRElUXG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8YXBwLWZyZXF1ZW5jeS1yZXNwb25zaWJpbGl0eS1saXN0ICpuZ0lmPVwib3BlblJhZGlvXCIgW2ZlYXR1cmVdPVwiZmVhdHVyZVwiIFtzZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlsc109XCJcbiAgICAgICAgICAgICAgc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHMgPyBzZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscyA6IHt9XG4gICAgICAgICAgICBcIiAoYmFja0J1dHRvbik9XCJvcGVuUmFkaW9SZXNwb25zaWJpbGl0eSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChzZWxlY3RlZFJlc3BvbnNpYmlsaXR5KT1cIm9uUmVzcG9uc2liaWxpdHlTZWxlY3Rpb24oJGV2ZW50KVwiPjwvYXBwLWZyZXF1ZW5jeS1yZXNwb25zaWJpbGl0eS1saXN0PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwidGltZS1waWNrZXItZ3JvdXAgdngtZC1mbGV4XCIgKm5nSWY9XCIhb3BlblJhZGlvXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWUtZmllbGRcIiBhcHBQb3BvdmVyIChjbGljayk9XCJ0aW1lUGlja2VyLnBvcG92ZXIoKVwiIHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJpbnB1dFwiIFtwbGFjZWhvbGRlcl09XCJvbkNvbXBsZXRpb25PZlRpbWUgfCB1cHBlcmNhc2VcIiByZWFkb25seSAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNsb2NrLWljb24gdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIHZ4LWZzLTEyIHZ4LXBhcmFncmFwaC10eHRcIj4mI3hlOTU1OzwvaT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxhcHAtcG9wb3ZlciAjdGltZVBpY2tlciBbZG9udENsb3Nlb25DbGlja109XCJ0cnVlXCI+XG4gICAgICAgICAgICA8YXBwLXRpbWUtcGlja2VyIFt0aW1lXT1cIm9uQ29tcGxldGlvbk9mVGltZVwiIChvblRpbWVTZWxlY3Rpb24pPVwiXG4gICAgICAgICAgICAgICAgdGltZVNlbGVjdGlvbigkZXZlbnQpOyB0aW1lUGlja2VyLmNsb3NlUG9wb3ZlcigndG9wJylcbiAgICAgICAgICAgICAgXCI+PC9hcHAtdGltZS1waWNrZXI+XG4gICAgICAgICAgPC9hcHAtcG9wb3Zlcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxhcHAtZnJlcXVlbmN5LWR1ZS1kYXRlIFtpZF09XCIzXCIgW3BhZ2VOYW1lXT1cIidvbkNvbXBsZXRpb24nXCIgW21vZGVdPVwibW9kZVwiIFtpc0RlYWN0aXZhdGVkXT1cImZhbHNlXCJcbiAgICBbY29tcGxldGVkVmFsdWVdPVwib25Db21wbGV0aW9uT2ZXaW5kb3dcIiBbbm90Q29tcGxldGVkVmFsdWVdPVwib25Db21wbGV0aW9uT2ZGYWlsZWRcIlxuICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIj48L2FwcC1mcmVxdWVuY3ktZHVlLWRhdGU+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cIm1vZGUgPT09ICdwb2xpY3knXCIgY2xhc3M9XCJmcmVxdWVuY3ktb24tY29tcGxldGlvbi1vZlwiPlxuICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YtbWVzc2FnZVwiPlxuICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgWyhuZ01vZGVsKV09XCJvbkNvbXBsZXRpb25PZklucHV0XCIgKGNoYW5nZSk9XCJpbnB1dFZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgb25rZXlkb3duPVwicmV0dXJuIGV2ZW50LmtleUNvZGUgIT09IDE5MFwiIG1pbj1cIjBcIiBvbmlucHV0PVwidGhpcy52YWx1ZSA9IE1hdGguYWJzKHRoaXMudmFsdWUpXCIgLz5cbiAgICA8cD57eyBvbkNvbXBsZXRpb25PZklucHV0ID4gMSA/IFwiZGF5c1wiIDogXCJkYXlcIiB9fSBhZnRlciBjb21wbGV0aW9uIG9mPC9wPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1vbi1jb21wbGV0aW9uLW9mLXJvd1wiPlxuICAgIDxkaXYgY2xhc3M9XCJyZXNwb25zaWJpbGl0eVwiPlxuICAgICAgPGNzLXNlbGVjdCBbY2xhc3MuZGlzYWJsZWRdPVwicGxhY2Vob2xkZXIgPT09ICdMb2FkaW5nLi4uJ1wiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHNcIlxuICAgICAgICAodmFsdWVDaGFuZ2VkKT1cIm9uUmVzcG9uc2liaWxpdHlTZWxlY3Rpb24oJGV2ZW50KVwiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiPlxuICAgICAgICA8Y3Mtb3B0aW9uICpuZ0Zvcj1cIlxuICAgICAgICAgICAgbGV0IHJlc3BvbnNpYmlsaXR5IG9mIG9uQ29tcGxldGlvbk9mUmVzcG9uc2liaWxpdHk7XG4gICAgICAgICAgICBsZXQgaSA9IGluZGV4XG4gICAgICAgICAgXCIgW3ZhbHVlXT1cInJlc3BvbnNpYmlsaXR5XCIgW29wdGlvblRvb2x0aXBdPVwicmVzcG9uc2liaWxpdHk/LlJlcG9ydE5hbWVcIj57eyByZXNwb25zaWJpbGl0eT8uUmVwb3J0TmFtZVxuICAgICAgICAgIH19PC9jcy1vcHRpb24+XG4gICAgICA8L2NzLXNlbGVjdD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwidGltZVwiPlxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcmVhZG9ubHkgYXJpYS1sYWJlbD1cIjEyaHIgZm9ybWF0XCIgWyhuZ01vZGVsKV09XCJvbkNvbXBsZXRpb25PZlRpbWVcIiBwbGFjZWhvbGRlcj1cIlNlbGVjdCBUaW1lXCIgLz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxhcHAtZnJlcXVlbmN5LWR1ZS1kYXRlIFtpZF09XCIzXCIgW3BhZ2VOYW1lXT1cIidvbkNvbXBsZXRpb24nXCIgW21vZGVdPVwibW9kZVwiIFtpc0RlYWN0aXZhdGVkXT1cImZhbHNlXCJcbiAgICBbY29tcGxldGVkVmFsdWVdPVwib25Db21wbGV0aW9uT2ZXaW5kb3dcIiBbbm90Q29tcGxldGVkVmFsdWVdPVwib25Db21wbGV0aW9uT2ZGYWlsZWRcIlxuICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIj48L2FwcC1mcmVxdWVuY3ktZHVlLWRhdGU+XG48L2Rpdj4iXX0=
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YvZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YvZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7Ozs7Ozs7Ozs7O0FBT2pFLE1BQU0sT0FBTyxnQ0FBZ0M7SUEwQjNDLFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBekI3QyxTQUFJLEdBQVEsRUFBRSxDQUFDO1FBR3hCLGlCQUFZLEdBQVcsWUFBWSxDQUFDO1FBQ3BDLHdCQUFtQixHQUFHLENBQUMsQ0FBQztRQUN4Qix5QkFBb0IsR0FBRyxDQUFDLENBQUM7UUFDekIseUJBQW9CLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLHVCQUFrQixHQUFHLFlBQVksQ0FBQztRQUNsQyxpQ0FBNEIsR0FBZSxFQUFFLENBQUM7UUFDOUMsd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBQzVCLDJCQUFzQixHQUFHLENBQUMsQ0FBQztRQUMzQixnQkFBVyxHQUFHLFlBQVksQ0FBQztRQUUzQixrQ0FBNkIsR0FBUSxFQUFFLENBQUM7UUFFL0IsY0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBRW5ELHFCQUFnQixHQUFRLGVBQWUsQ0FBQztRQUU5QixxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQzNDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQzlDLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUM1QixtQkFBYyxHQUFZLEtBQUssQ0FBQztJQUV5QixDQUFDO0lBRTFELFFBQVE7UUFDTixJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLDZCQUE2QjtZQUN0RCxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsRUFBRSxNQUFNLEdBQUcsQ0FBQztZQUM3RCxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ1osQ0FBQztJQUVELGlCQUFpQjtRQUNmLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7UUFDdEQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO1FBQ3RELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQztRQUN4RCxJQUFJLENBQUMsNkJBQTZCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQywwQkFBMEIsQ0FBQztRQUNuRixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyw2QkFBNkI7WUFDdEQsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLDZCQUE2QixDQUFDLEVBQUUsTUFBTSxHQUFHLENBQUM7WUFDN0QsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNaLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBYTtRQUN6QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBVTtRQUN0QixJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssV0FBVyxFQUFFO1lBQzlCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1NBQ3pDO2FBQU07WUFDTCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztTQUN6QztRQUNELElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxLQUFVO1FBQ2xDLElBQUksQ0FBQyw2QkFBNkIsR0FBRyxLQUFLLENBQUM7UUFDM0MsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixJQUFJLENBQUMsc0JBQXNCLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxXQUFXLEdBQUcseUJBQXlCLENBQUM7UUFDN0MsSUFBSSxDQUFDLDRCQUE0QixHQUFHLEVBQUUsQ0FBQztRQUV2QyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUseUJBQXlCLEVBQUU7WUFDakQsSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FDcEMsSUFBSSxDQUFDLGFBQWEsRUFBRSx5QkFBeUIsQ0FDOUMsQ0FBQztTQUNIO1FBRUQsSUFDRSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sSUFBSSxFQUFFO1lBQ2hDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQ3hEO1lBQ0EsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBVTtRQUN6QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEQsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxDQUFDLENBQUM7U0FDOUI7UUFDRCxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsd0JBQXdCO1FBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVztZQUM1QixJQUFJLENBQUMsbUJBQW1CO2dCQUN4QixHQUFHO2dCQUNILENBQUMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBQy9DLHVCQUF1QjtnQkFDdkIsQ0FBQyxJQUFJLENBQUMsNEJBQTRCO29CQUNsQyxJQUFJLENBQUMsNkJBQTZCLEVBQUUsY0FBYyxFQUFFLEtBQUs7b0JBQ3ZELENBQUMsQ0FBQyxJQUFJLENBQUMsNkJBQTZCLEVBQUUsY0FBYyxFQUFFLEtBQUs7b0JBQzNELENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNWLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTztZQUN4QixDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUM7UUFDN0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztRQUMzRCxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUM7UUFDdEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1FBQ3hELElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FDcEUsSUFBSSxDQUFDLGtCQUFrQixDQUN4QixDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxHQUFHO1lBQ2hDLFFBQVEsRUFBRSxJQUFJLENBQUMsbUJBQW1CO1lBQ2xDLGNBQWMsRUFBRSxJQUFJLENBQUMsNkJBQTZCLEVBQUUsY0FBYyxFQUFFLEVBQUU7WUFDdEUsUUFBUSxFQUFFLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxjQUFjLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVE7WUFDMUYsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLDZCQUE2QixFQUFFLGNBQWMsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsb0JBQW9CO1NBQ25ILENBQUE7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsdUJBQXVCLENBQUMsS0FBVTtRQUNoQyxJQUFJLEtBQUssS0FBSyxvQkFBb0IsRUFBRTtZQUNsQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztTQUN4QjthQUFNO1lBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7U0FDekI7UUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsNkJBQTZCLEdBQUcsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLDZCQUE2QjtZQUN0RCxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsRUFBRSxNQUFNLEdBQUcsQ0FBQztZQUM3RCxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ1YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxhQUFhLENBQUMsS0FBVTtRQUN0QixNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDO1FBQzFDLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDcEMsQ0FBQzsrR0FwSlUsZ0NBQWdDO21HQUFoQyxnQ0FBZ0MsaVRDWDdDLDR1SEFpRU07OzRGRHRETyxnQ0FBZ0M7a0JBTDVDLFNBQVM7K0JBQ0UsZ0NBQWdDO3VHQUtqQyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLDBCQUEwQjtzQkFBbEMsS0FBSztnQkFhRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0ksZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGcmVxdWVuY3lTZXJ2aWNlIH0gZnJvbSAnLi4vZnJlcXVlbmN5LnNlcnZpY2UnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQvbW9tZW50JztcbmltcG9ydCB7IGVsZW1lbnRBdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IERFRkFVTFRfVElNRSB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy90aW1lLmNvbnN0YW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1mcmVxdWVuY3ktb24tY29tcGxldGlvbi1vZicsXG4gIHRlbXBsYXRlVXJsOiAnLi9mcmVxdWVuY3ktb24tY29tcGxldGlvbi1vZi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZyZXF1ZW5jeS1vbi1jb21wbGV0aW9uLW9mLmNvbXBvbmVudC5sZXNzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZyZXF1ZW5jeU9uQ29tcGxldGlvbk9mQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgbW9kZTogYW55ID0gJyc7XG4gIEBJbnB1dCgpIGZlYXR1cmU6IGFueTtcbiAgQElucHV0KCkgb25Db21wbGV0aW9uUmVzcG9uc2liaWxpdHk6IGFueTtcbiAgREVGQVVMVF9USU1FOiBzdHJpbmcgPSBERUZBVUxUX1RJTUU7XG4gIG9uQ29tcGxldGlvbk9mSW5wdXQgPSAxO1xuICBvbkNvbXBsZXRpb25PZldpbmRvdyA9IDM7XG4gIG9uQ29tcGxldGlvbk9mRmFpbGVkID0gNTtcbiAgb25Db21wbGV0aW9uT2ZUaW1lID0gREVGQVVMVF9USU1FO1xuICBvbkNvbXBsZXRpb25PZlJlc3BvbnNpYmlsaXR5OiBBcnJheTxhbnk+ID0gW107XG4gIGlzTGlmZWN5Y2xlTW9kaWZpZWQgPSBmYWxzZTtcbiAgc2VsZWN0ZWRSZXNwb25zaWJpbGl0eSA9IDA7XG4gIHBsYWNlaG9sZGVyID0gJ0xvYWRpbmcuLi4nO1xuICBmcmVxdWVuY3lJbmZvOiBhbnk7XG4gIHNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzOiBhbnkgPSB7fTtcblxuICBASW5wdXQoKSBzdGFydERhdGUgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTtcbiAgQElucHV0KCkgZnJlcXVlbmN5RGF0YTogYW55O1xuICBsaWZlY3ljbGVEZXRhaWxzOiBhbnkgPSAnMDAwMC0wMC0wMH5+MCc7XG5cbiAgQE91dHB1dCgpIGZyZXF1ZW5jeURldGFpbHMgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIHJhZGlvRm9ybSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBvcGVuUmFkaW86IGJvb2xlYW4gPSBmYWxzZTtcbiAgYmFja0J1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1NlbGVjdGVkRGF0YTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZnJlcXVlbmN5U2VydmljZTogRnJlcXVlbmN5U2VydmljZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8gPSBPYmplY3QuYXNzaWduKHRoaXMuZnJlcXVlbmN5U2VydmljZS5mcmVxdWVuY3lJbmZvKTtcbiAgICB0aGlzLmdldENvbXBsZXRpb25SZXBvcnRzKCk7XG4gICAgdGhpcy5nZXRPbkNvbXBsZXRpb25GcmVxdWVuY3koKTtcbiAgICB0aGlzLmlzU2VsZWN0ZWREYXRhID0gdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlsc1xuICAgICAgPyBPYmplY3Qua2V5cyh0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzKT8ubGVuZ3RoID4gMFxuICAgICAgOiBmYWxzZTtcbiAgfVxuXG4gIHBvcHVsYXRlRnJlcXVlbmN5KCkge1xuICAgIGNvbnN0IGZyZXF1ZW5jeVNlbGVjdGVkID0gdGhpcy5mcmVxdWVuY3lEYXRhLnBhdHRlcm4uc3BsaXQoJ34nKTtcbiAgICB0aGlzLm9uQ29tcGxldGlvbk9mSW5wdXQgPSBwYXJzZUludChmcmVxdWVuY3lTZWxlY3RlZFszXSk7XG4gICAgdGhpcy5vbkNvbXBsZXRpb25PZkZhaWxlZCA9IHRoaXMuZnJlcXVlbmN5RGF0YS5mYWlsZWQ7XG4gICAgdGhpcy5vbkNvbXBsZXRpb25PZldpbmRvdyA9IHRoaXMuZnJlcXVlbmN5RGF0YS53aW5kb3c7XG4gICAgdGhpcy5vbkNvbXBsZXRpb25PZlRpbWUgPSB0aGlzLmZyZXF1ZW5jeURhdGEuZmFpbGVkVGltZTtcbiAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzID0gdGhpcy5mcmVxdWVuY3lEYXRhLm9uQ29tcGxldGlvblJlc3BvbnNpYmlsaXR5O1xuICAgIHRoaXMuZ2V0T25Db21wbGV0aW9uRnJlcXVlbmN5KCk7XG4gICAgdGhpcy5pc1NlbGVjdGVkRGF0YSA9IHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHNcbiAgICAgID8gT2JqZWN0LmtleXModGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscyk/Lmxlbmd0aCA+IDBcbiAgICAgIDogZmFsc2U7XG4gIH1cblxuICBvblRpbWVDaGFuZ2VkKGV2ZW50OiBzdHJpbmcpIHtcbiAgICB0aGlzLm9uQ29tcGxldGlvbk9mVGltZSA9IGV2ZW50O1xuICAgIHRoaXMuZ2V0T25Db21wbGV0aW9uRnJlcXVlbmN5KCk7XG4gIH1cblxuICBvblZhbHVlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ2NvbXBsZXRlZCcpIHtcbiAgICAgIHRoaXMub25Db21wbGV0aW9uT2ZXaW5kb3cgPSBldmVudC52YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vbkNvbXBsZXRpb25PZkZhaWxlZCA9IGV2ZW50LnZhbHVlO1xuICAgIH1cbiAgICB0aGlzLmdldE9uQ29tcGxldGlvbkZyZXF1ZW5jeSgpO1xuICB9XG5cbiAgb25SZXNwb25zaWJpbGl0eVNlbGVjdGlvbihldmVudDogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscyA9IGV2ZW50O1xuICAgIHRoaXMuZ2V0T25Db21wbGV0aW9uRnJlcXVlbmN5KCk7XG4gIH1cblxuICBnZXRDb21wbGV0aW9uUmVwb3J0cygpIHtcbiAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHkgPSAwO1xuICAgIHRoaXMucGxhY2Vob2xkZXIgPSAnU2VsZWN0IGEgUmVzcG9uc2liaWxpdHknO1xuICAgIHRoaXMub25Db21wbGV0aW9uT2ZSZXNwb25zaWJpbGl0eSA9IFtdO1xuXG4gICAgaWYgKHRoaXMuZnJlcXVlbmN5RGF0YT8ub25Db21wbGV0aW9uUmVwb3J0RGV0YWlscykge1xuICAgICAgdGhpcy5vbkNvbXBsZXRpb25PZlJlc3BvbnNpYmlsaXR5LnB1c2goXG4gICAgICAgIHRoaXMuZnJlcXVlbmN5RGF0YT8ub25Db21wbGV0aW9uUmVwb3J0RGV0YWlsc1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLmZyZXF1ZW5jeURhdGEucGF0dGVybiAhPSAnJyAmJlxuICAgICAgcGFyc2VJbnQodGhpcy5mcmVxdWVuY3lEYXRhLnBhdHRlcm4uc3BsaXQoJ34nKVswXSkgPT09IDZcbiAgICApIHtcbiAgICAgIHRoaXMucG9wdWxhdGVGcmVxdWVuY3koKTtcbiAgICB9XG4gIH1cblxuICBpbnB1dFZhbHVlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLm9uQ29tcGxldGlvbk9mSW5wdXQgPSBOdW1iZXIoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICBpZiAodGhpcy5vbkNvbXBsZXRpb25PZklucHV0IDwgMSkge1xuICAgICAgdGhpcy5vbkNvbXBsZXRpb25PZklucHV0ID0gMTtcbiAgICB9XG4gICAgdGhpcy5nZXRPbkNvbXBsZXRpb25GcmVxdWVuY3koKTtcbiAgfVxuXG4gIGdldE9uQ29tcGxldGlvbkZyZXF1ZW5jeSgpIHtcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ucGxhY2Vob2xkZXIgPVxuICAgICAgdGhpcy5vbkNvbXBsZXRpb25PZklucHV0ICtcbiAgICAgICcgJyArXG4gICAgICAodGhpcy5vbkNvbXBsZXRpb25PZklucHV0ID4gMSA/ICdkYXlzJyA6ICdkYXknKSArXG4gICAgICAnIGFmdGVyIGNvbXBsZXRpb24gb2YgJyArXG4gICAgICAodGhpcy5vbkNvbXBsZXRpb25PZlJlc3BvbnNpYmlsaXR5ICYmXG4gICAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzPy5yZXNwb25zaWJpbGl0eT8udGl0bGVcbiAgICAgICAgPyB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzPy5yZXNwb25zaWJpbGl0eT8udGl0bGVcbiAgICAgICAgOiAnJyk7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnBhdHRlcm4gPVxuICAgICAgNiArICd+JyArICcwJyArICd+JyArICcwJyArICd+JyArIHRoaXMub25Db21wbGV0aW9uT2ZJbnB1dDtcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uY2FzZSA9ICdvbl9jb21wbGV0ZSc7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmZhaWxlZEFmdGVyID0gdGhpcy5vbkNvbXBsZXRpb25PZkZhaWxlZDtcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ud2luZG93ID0gdGhpcy5vbkNvbXBsZXRpb25PZldpbmRvdztcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8udGltZUluMTJociA9IHRoaXMub25Db21wbGV0aW9uT2ZUaW1lO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby50aW1lSW4yNEhyID0gdGhpcy5mcmVxdWVuY3lTZXJ2aWNlLnRpbWVGcm9tMTJoVG8yNGgoXG4gICAgICB0aGlzLm9uQ29tcGxldGlvbk9mVGltZVxuICAgICk7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmZhaWxlZF90aW1lX3V0YyA9IDA7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLm9uQ29tcGxldGlvbiA9IHtcbiAgICAgIGR1ZUFmdGVyOiB0aGlzLm9uQ29tcGxldGlvbk9mSW5wdXQsXG4gICAgICByZXNwb25zaWJpbGl0eTogdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscz8ucmVzcG9uc2liaWxpdHk/LmlkLFxuICAgICAgYXNzaWduZWU6IHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHM/LnJlc3BvbnNpYmlsaXR5Py5hc3NpZ25lZURldGFpbHNbMF0/LmFzc2lnbmVlLFxuICAgICAgcmVzcG9uc2liaWxpdHlDZW50ZXI6IHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHM/LnJlc3BvbnNpYmlsaXR5Py5hc3NpZ25lZURldGFpbHNbMF0/LnJlc3BvbnNpYmlsaXR5Q2VudGVyXG4gICAgfVxuICAgIHRoaXMuZnJlcXVlbmN5RGV0YWlscy5lbWl0KHRoaXMuZnJlcXVlbmN5SW5mbyk7XG4gIH1cblxuICBvcGVuUmFkaW9SZXNwb25zaWJpbGl0eShldmVudDogYW55KSB7XG4gICAgaWYgKGV2ZW50ID09PSAnYmFja1RvT25Db21wbGV0aW9uJykge1xuICAgICAgdGhpcy5iYWNrQnV0dG9uID0gdHJ1ZTtcbiAgICAgIHRoaXMub3BlblJhZGlvID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlblJhZGlvID0gdHJ1ZTtcbiAgICAgIHRoaXMuYmFja0J1dHRvbiA9IGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLnJhZGlvRm9ybS5lbWl0KHRoaXMub3BlblJhZGlvKTtcbiAgfVxuXG4gIHJlbW92ZSgpIHtcbiAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzID0ge307XG4gICAgdGhpcy5pc1NlbGVjdGVkRGF0YSA9IHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHNcbiAgICAgID8gT2JqZWN0LmtleXModGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscyk/Lmxlbmd0aCA+IDBcbiAgICAgIDogZmFsc2U7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnJlcG9ydElkID0gMDtcbiAgICB0aGlzLmZyZXF1ZW5jeURldGFpbHMuZW1pdCh0aGlzLmZyZXF1ZW5jeUluZm8pO1xuICB9XG5cbiAgdGltZVNlbGVjdGlvbihldmVudDogYW55KSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZSA9IGV2ZW50LnNlbGVjdGVkVmFsdWU7XG4gICAgdGhpcy5vblRpbWVDaGFuZ2VkKHNlbGVjdGVkVmFsdWUpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWNvbXBsZXRpb25cIiAqbmdJZj1cIm1vZGUgIT09ICdwb2xpY3knIHx8IGJhY2tCdXR0b25cIj5cbiAgPGRpdiBjbGFzcz1cInZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LW1iLTFcIj5cbiAgICBEVUUgREFURSBGUkVRVUVOQ1k6XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWNvbXBsZXRpb24taW5uZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWNvbXBsZXRpb24tdG9wIHZ4LXAtMyB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XG4gICAgICA8aW5wdXQgY2xhc3M9XCJjb3VudE51bVwiIHR5cGU9XCJudW1iZXJcIiBbKG5nTW9kZWwpXT1cIm9uQ29tcGxldGlvbk9mSW5wdXRcIiAoY2hhbmdlKT1cImlucHV0VmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIG9ua2V5ZG93bj1cInJldHVybiBldmVudC5rZXlDb2RlICE9PSAxOTBcIiBtaW49XCIwXCIgb25pbnB1dD1cInRoaXMudmFsdWUgPSBNYXRoLmFicyh0aGlzLnZhbHVlKVwiIC8+XG4gICAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTMgdngtcGFyYWdyYXBoLXR4dFwiPmRheSBhZnRlciBjb21wbGV0aW9uIG9mPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1jb21wbGV0aW9uLWJvdHRvbSB2eC1wLTNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1tYi0xXCI+XG4gICAgICAgIFJFU1BPTlNJQklMSVRZXG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXI+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIiFvbkNvbXBsZXRpb25SZXNwb25zaWJpbGl0eS50aXRsZVwiIFtjbGFzcy5kaXNhYmxlZF09XCJwbGFjZWhvbGRlciA9PT0gJ0xvYWRpbmcuLi4nXCJcbiAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0LWJveCB2eC1mcy0xMSB2eC1wYXJhZ3JhcGgtdHh0IHZ4LXAtMiB2eC1wbC0zIHZ4LXByLTMgdngtbXItMyB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC13LTEwMFwiXG4gICAgICAgICAgICAoY2xpY2spPVwib3BlblJhZGlvUmVzcG9uc2liaWxpdHkoJGV2ZW50KVwiPlxuICAgICAgICAgICAge3tcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyID09PSBcIkxvYWRpbmcuLi5cIlxuICAgICAgICAgICAgPyBcIkxvYWRpbmcuLi5cIlxuICAgICAgICAgICAgOiBcIlNlbGVjdCBhIFJlc3BvbnNpYmlsaXR5XCJcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIHZ4LWZzLTEwXCI+JiN4ZTllODs8L2k+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIm9uQ29tcGxldGlvblJlc3BvbnNpYmlsaXR5Py50aXRsZSBhcyByZXNwTmFtZVwiXG4gICAgICAgICAgICBjbGFzcz1cImFmdGVyLXNlbGVjdC1ib3ggdngtcC0xIHZ4LW1yLTMgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtdy0xMDBcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3QtY2hpcCB2eC1mcy0xMiB2eC1wYXJhZ3JhcGgtdHh0IHZ4LXAtMSB2eC1wbC0yIHZ4LXByLTIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTE0IHZ4LW1yLTFcIiAoY2xpY2spPVwicmVtb3ZlKClcIj4mI3hlOWFlOzwvaT5cbiAgICAgICAgICAgICAgPHNwYW4gW2FwcFRvb2x0aXBdPVwicmVzcE5hbWVcIiBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiIGRlbGF5PVwiMFwiIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj57e1xuICAgICAgICAgICAgICAgIHJlc3BOYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiZWRpdC1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXR4dC1ibHVlIHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtcGwtMSB2eC1wci0xIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5SYWRpb1Jlc3BvbnNpYmlsaXR5KCRldmVudClcIj5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1tci0xXCIgKGNsaWNrKT1cIm9wZW5SYWRpb1Jlc3BvbnNpYmlsaXR5KCRldmVudClcIj4mI3hlOTBjOzwvaT5cbiAgICAgICAgICAgICAgRURJVFxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGFwcC1mcmVxdWVuY3ktcmVzcG9uc2liaWxpdHktbGlzdCAqbmdJZj1cIm9wZW5SYWRpb1wiIFtmZWF0dXJlXT1cImZlYXR1cmVcIiBbc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHNdPVwiXG4gICAgICAgICAgb25Db21wbGV0aW9uUmVzcG9uc2liaWxpdHlcbiAgICAgICAgICAgIFwiIChiYWNrQnV0dG9uKT1cIm9wZW5SYWRpb1Jlc3BvbnNpYmlsaXR5KCRldmVudClcIlxuICAgICAgICAgICAgKHNlbGVjdGVkUmVzcG9uc2liaWxpdHkpPVwib25SZXNwb25zaWJpbGl0eVNlbGVjdGlvbigkZXZlbnQpXCI+PC9hcHAtZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3Q+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lLXBpY2tlci1ncm91cCB2eC1kLWZsZXhcIiAqbmdJZj1cIiFvcGVuUmFkaW9cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGltZS1maWVsZFwiIGFwcFBvcG92ZXIgKGNsaWNrKT1cInRpbWVQaWNrZXIucG9wb3ZlcigpXCIgcGxhY2VtZW50PVwicmlnaHRcIj5cbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImlucHV0XCIgW3BsYWNlaG9sZGVyXT1cIm9uQ29tcGxldGlvbk9mVGltZSB8IHVwcGVyY2FzZVwiIHJlYWRvbmx5IC8+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xvY2staWNvbiB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgdngtZnMtMTIgdngtcGFyYWdyYXBoLXR4dFwiPiYjeGU5NTU7PC9pPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGFwcC1wb3BvdmVyICN0aW1lUGlja2VyIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cbiAgICAgICAgICAgIDxhcHAtdGltZS1waWNrZXIgW3RpbWVdPVwib25Db21wbGV0aW9uT2ZUaW1lXCIgKG9uVGltZVNlbGVjdGlvbik9XCJcbiAgICAgICAgICAgICAgICB0aW1lU2VsZWN0aW9uKCRldmVudCk7IHRpbWVQaWNrZXIuY2xvc2VQb3BvdmVyKCd0b3AnKVxuICAgICAgICAgICAgICBcIj48L2FwcC10aW1lLXBpY2tlcj5cbiAgICAgICAgICA8L2FwcC1wb3BvdmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGFwcC1mcmVxdWVuY3ktZHVlLWRhdGUgW2lkXT1cIjNcIiBbcGFnZU5hbWVdPVwiJ29uQ29tcGxldGlvbidcIiBbbW9kZV09XCJtb2RlXCIgW2lzRGVhY3RpdmF0ZWRdPVwiZmFsc2VcIlxuICAgIFtjb21wbGV0ZWRWYWx1ZV09XCJvbkNvbXBsZXRpb25PZldpbmRvd1wiIFtub3RDb21wbGV0ZWRWYWx1ZV09XCJvbkNvbXBsZXRpb25PZkZhaWxlZFwiXG4gICAgKHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiPjwvYXBwLWZyZXF1ZW5jeS1kdWUtZGF0ZT5cbjwvZGl2PiJdfQ==
|