vcomply-workflow-engine 3.4.26 → 3.4.28
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/esm2020/lib/constants/time.constants.mjs +2 -0
- package/esm2020/lib/log-an-issue/log-an-issue.component.mjs +8 -6
- package/esm2020/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.mjs +4 -3
- package/esm2020/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.mjs +4 -3
- package/esm2020/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.mjs +4 -3
- package/esm2020/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.mjs +4 -3
- package/esm2020/lib/sharedComponents/frequency/frequency-on-completion-of/frequency-on-completion-of.component.mjs +17 -8
- package/esm2020/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.mjs +15 -6
- package/esm2020/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.mjs +4 -3
- package/esm2020/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.mjs +4 -3
- package/esm2020/lib/sharedComponents/frequency/frequency-random/frequency-random.component.mjs +3 -2
- package/esm2020/lib/sharedComponents/frequency/frequency-top/frequency-top.component.mjs +14 -6
- package/esm2020/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.mjs +4 -3
- package/esm2020/lib/sharedComponents/frequency/frequency.service.mjs +3 -2
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-one-time/frequency-dialog-one-time.component.mjs +3 -3
- package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-top/frequency-dialog-top.component.mjs +5 -3
- package/esm2020/lib/ui-kit/time-picker/constants/constant.mjs +5 -0
- package/esm2020/lib/ui-kit/time-picker/time-picker/time-picker.component.mjs +194 -0
- package/esm2020/lib/ui-kit/time-picker/time-picker.module.mjs +24 -0
- package/esm2020/lib/workflow-compliance/workflow-compliance.component.mjs +8 -7
- package/esm2020/lib/workflow-engine.module.mjs +7 -3
- package/esm2020/lib/workflow-policy/workflow-policy.component.mjs +5 -4
- package/fesm2015/vcomply-workflow-engine.mjs +293 -57
- package/fesm2015/vcomply-workflow-engine.mjs.map +1 -1
- package/fesm2020/vcomply-workflow-engine.mjs +292 -57
- package/fesm2020/vcomply-workflow-engine.mjs.map +1 -1
- package/lib/constants/time.constants.d.ts +1 -0
- package/lib/log-an-issue/log-an-issue.component.d.ts +1 -0
- package/lib/sharedComponents/frequency/frequency-on-completion-of/frequency-on-completion-of.component.d.ts +2 -0
- package/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.d.ts +2 -0
- package/lib/sharedComponents/frequency/frequency-top/frequency-top.component.d.ts +2 -0
- package/lib/sharedComponents/frequency-dialog/frequency-dialog-top/frequency-dialog-top.component.d.ts +1 -0
- package/lib/ui-kit/time-picker/constants/constant.d.ts +4 -0
- package/lib/ui-kit/time-picker/time-picker/time-picker.component.d.ts +25 -0
- package/lib/ui-kit/time-picker/time-picker.module.d.ts +8 -0
- package/lib/workflow-engine.module.d.ts +2 -1
- package/package.json +2 -2
|
@@ -1,21 +1,26 @@
|
|
|
1
1
|
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
2
|
+
import { DEFAULT_TIME } from '../../../constants/time.constants';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
import * as i1 from "../frequency.service";
|
|
4
5
|
import * as i2 from "@angular/forms";
|
|
5
6
|
import * as i3 from "@angular/common";
|
|
6
7
|
import * as i4 from "../../../ui-kit/tooltip/tooltip.directive";
|
|
7
|
-
import * as i5 from "../../../
|
|
8
|
-
import * as i6 from "../../../
|
|
9
|
-
import * as i7 from "
|
|
10
|
-
import * as i8 from "
|
|
8
|
+
import * as i5 from "../../../ui-kit/popover/popover.component";
|
|
9
|
+
import * as i6 from "../../../ui-kit/popover/popover.directive";
|
|
10
|
+
import * as i7 from "../../../formgroup/select/cs-select/cs-select.component";
|
|
11
|
+
import * as i8 from "../../../formgroup/select/cs-option/cs-option.component";
|
|
12
|
+
import * as i9 from "../../../ui-kit/time-picker/time-picker/time-picker.component";
|
|
13
|
+
import * as i10 from "../frequency-due-date/frequency-due-date.component";
|
|
14
|
+
import * as i11 from "../frequency-responsibility-list/frequency-responsibility-list.component";
|
|
11
15
|
export class FrequencyOnCompletionOfComponent {
|
|
12
16
|
constructor(frequencyService) {
|
|
13
17
|
this.frequencyService = frequencyService;
|
|
14
18
|
this.mode = '';
|
|
19
|
+
this.DEFAULT_TIME = DEFAULT_TIME;
|
|
15
20
|
this.onCompletionOfInput = 1;
|
|
16
21
|
this.onCompletionOfWindow = 3;
|
|
17
22
|
this.onCompletionOfFailed = 5;
|
|
18
|
-
this.onCompletionOfTime =
|
|
23
|
+
this.onCompletionOfTime = DEFAULT_TIME;
|
|
19
24
|
this.onCompletionOfResponsibility = [];
|
|
20
25
|
this.isLifecycleModified = false;
|
|
21
26
|
this.selectedResponsibility = 0;
|
|
@@ -139,12 +144,16 @@ export class FrequencyOnCompletionOfComponent {
|
|
|
139
144
|
this.frequencyInfo.reportId = 0;
|
|
140
145
|
this.frequencyDetails.emit(this.frequencyInfo);
|
|
141
146
|
}
|
|
147
|
+
timeSelection(event) {
|
|
148
|
+
const selectedValue = event.selectedValue;
|
|
149
|
+
this.onTimeChanged(selectedValue);
|
|
150
|
+
}
|
|
142
151
|
}
|
|
143
152
|
FrequencyOnCompletionOfComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FrequencyOnCompletionOfComponent, deps: [{ token: i1.FrequencyService }], target: i0.ɵɵFactoryTarget.Component });
|
|
144
|
-
FrequencyOnCompletionOfComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", 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\">\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">DUE DATE FREQUENCY:</div>\r\n <div class=\"frequency-completion-inner\">\r\n <div class=\"frequency-completion-top vx-p-3 vx-d-flex vx-align-center\">\r\n <input class=\"countNum\" type=\"number\" [(ngModel)]=\"onCompletionOfInput\" (change)=\"inputValueChange($event)\" onkeydown=\"return event.keyCode !== 190\" min=\"0\" oninput=\"this.value = Math.abs(this.value)\">\r\n <div class=\"vx-fs-13 vx-paragraph-txt\">day after completion of</div>\r\n </div>\r\n <div class=\"frequency-completion-bottom vx-p-3\">\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">RESPONSIBILITY</div>\r\n <div class=\"vx-d-flex vx-align-center\">\r\n <ng-container *ngIf=\"featureFlag_on_completion_of\">\r\n <div *ngIf=\"featureFlag_on_completion_of && !isSelectedData\" [class.disabled]=\"placeholder === 'Loading...'\" 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\" (click)=\"openRadioResponsibility($event)\" >\r\n {{placeholder === 'Loading...' ? 'Loading...' : 'Select a Responsibility'}}\r\n <i class=\"icons vx-fs-10\"></i>\r\n\r\n </div>\r\n <div *ngIf=\"featureFlag_on_completion_of && isSelectedData\" class=\"after-select-box vx-p-1 vx-mr-3 vx-d-flex vx-align-center vx-justify-between vx-w-100\">\r\n <div *ngIf=\"isSelectedData\" class=\"select-chip vx-fs-12 vx-paragraph-txt vx-p-1 vx-pl-2 vx-pr-2 vx-d-flex vx-align-center\">\r\n <i *ngIf=\"isSelectedData\" class=\"icons cross vx-fs-14 vx-mr-1\" (click)=\"remove()\" ></i>\r\n <span [appTooltip]=\"selectedResponsibilityDetails?.ReportName\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{selectedResponsibilityDetails?.ReportName}}</span>\r\n </div>\r\n <button 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\" (click)=\"openRadioResponsibility($event)\" ><i class=\"icons vx-mr-1\" (click)=\"openRadioResponsibility($event)\"></i> EDIT</button>\r\n </div>\r\n <app-frequency-responsibility-list *ngIf=\"openRadio\"\r\n [feature]=\"feature\"\r\n [selectedResponsibilityDetails]=\"selectedResponsibilityDetails ? selectedResponsibilityDetails : {}\"\r\n (backButton) = \"openRadioResponsibility($event)\"\r\n (selectedResponsibility)=\"onResponsibilitySelection($event)\"></app-frequency-responsibility-list>\r\n </ng-container>\r\n <ng-container *ngIf=\"!featureFlag_on_completion_of\">\r\n <cs-select [class.disabled]=\"placeholder === 'Loading...'\" [(ngModel)]=\"selectedResponsibilityDetails\" (valueChanged)=\"onResponsibilitySelection($event)\" [placeholder]=\"placeholder\">\r\n <cs-option *ngFor=\"let responsibility of onCompletionOfResponsibility; let i = index;\" [value]=\"responsibility\" [optionTooltip]=\"responsibility?.ReportName\">{{responsibility?.ReportName}}</cs-option>\r\n </cs-select>\r\n </ng-container>\r\n\r\n <div class=\"time-picker-group vx-d-flex\" *ngIf=\"!openRadio\" >\r\n <div class=\"time-field\" [class.disable]=\"true\">\r\n <input class=\"input\" placeholder=\"11:59 PM\" readonly />\r\n <div class=\"clock-icon vx-d-flex vx-align-center vx-justify-center\"><i class=\"icons vx-fs-12 vx-paragraph-txt\"></i></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <app-frequency-due-date\r\n [id] = '3'\r\n [pageName]=\"'onCompletion'\"\r\n [mode]=\"mode\"\r\n [isDeactivated]=\"false\"\r\n [completedValue]=\"onCompletionOfWindow\"\r\n [notCompletedValue]=\"onCompletionOfFailed\"\r\n (valueChange)=\"onValueChange($event)\"\r\n ></app-frequency-due-date>\r\n</div>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n<div *ngIf=\"mode === 'policy'\" class=\"frequency-on-completion-of\">\r\n <div class=\"frequency-on-completion-of-message\">\r\n <input type=\"number\" [(ngModel)]=\"onCompletionOfInput\" (change)=\"inputValueChange($event)\" onkeydown=\"return event.keyCode !== 190\" min=\"0\" oninput=\"this.value = Math.abs(this.value)\">\r\n <p>{{onCompletionOfInput > 1 ?'days': 'day'}} after completion of</p>\r\n </div>\r\n <div class=\"frequency-on-completion-of-row\">\r\n <div class=\"responsibility\">\r\n <cs-select [class.disabled]=\"placeholder === 'Loading...'\" [(ngModel)]=\"selectedResponsibilityDetails\" (valueChanged)=\"onResponsibilitySelection($event)\" [placeholder]=\"placeholder\">\r\n <cs-option *ngFor=\"let responsibility of onCompletionOfResponsibility; let i = index;\" [value]=\"responsibility\" [optionTooltip]=\"responsibility?.ReportName\">{{responsibility?.ReportName}}</cs-option>\r\n </cs-select>\r\n </div>\r\n <div class=\"time\">\r\n <input type=\"text\" readonly aria-label=\"12hr format\" [(ngModel)]=\"onCompletionOfTime\" placeholder=\"Select Time\">\r\n <!-- <i class=\"icons\"></i> -->\r\n <!-- <ngx-material-timepicker (timeChanged)=\"onTimeChanged($event)\" #dailyTime></ngx-material-timepicker> -->\r\n </div>\r\n </div>\r\n <app-frequency-due-date\r\n [id] = '3'\r\n [pageName]=\"'onCompletion'\"\r\n [mode]=\"mode\"\r\n [isDeactivated]=\"false\"\r\n [completedValue]=\"onCompletionOfWindow\"\r\n [notCompletedValue]=\"onCompletionOfFailed\"\r\n (valueChange)=\"onValueChange($event)\"\r\n ></app-frequency-due-date>\r\n</div>\r\n\r\n", 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}::ng-deep .frequency-completion-bottom .time-picker-group input::placeholder{color:#747576}::ng-deep .frequency-completion-bottom .time-picker-group .time-field{position:relative}::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: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.CsSelectComponent, selector: "cs-select", inputs: ["dropdownLabel", "dropdownSubLabel", "isRequired", "placeholder", "setMaxWidth"], outputs: ["valueChanged"] }, { kind: "component", type: i6.CsOptionComponent, selector: "cs-option", inputs: ["value", "color", "backgroundColor", "optionTooltip"] }, { kind: "component", type: i7.FrequencyDueDateComponent, selector: "app-frequency-due-date", inputs: ["mode", "pageType", "completedRequired", "notCompletedRequired", "completedValue", "notCompletedValue", "deactivateValue", "isDeactivated", "id", "pageName"], outputs: ["valueChange"] }, { kind: "component", type: i8.FrequencyResponsibilityListComponent, selector: "app-frequency-responsibility-list", inputs: ["onCompletionOfResponsibility", "feature", "selectedResponsibilityDetails"], outputs: ["backButton", "selectedResponsibility"] }] });
|
|
153
|
+
FrequencyOnCompletionOfComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", 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\">\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\r\n DUE DATE FREQUENCY:\r\n </div>\r\n <div class=\"frequency-completion-inner\">\r\n <div class=\"frequency-completion-top vx-p-3 vx-d-flex vx-align-center\">\r\n <input\r\n class=\"countNum\"\r\n type=\"number\"\r\n [(ngModel)]=\"onCompletionOfInput\"\r\n (change)=\"inputValueChange($event)\"\r\n onkeydown=\"return event.keyCode !== 190\"\r\n min=\"0\"\r\n oninput=\"this.value = Math.abs(this.value)\"\r\n />\r\n <div class=\"vx-fs-13 vx-paragraph-txt\">day after completion of</div>\r\n </div>\r\n <div class=\"frequency-completion-bottom vx-p-3\">\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\r\n RESPONSIBILITY\r\n </div>\r\n <div class=\"vx-d-flex vx-align-center\">\r\n <ng-container *ngIf=\"featureFlag_on_completion_of\">\r\n <div\r\n *ngIf=\"featureFlag_on_completion_of && !isSelectedData\"\r\n [class.disabled]=\"placeholder === 'Loading...'\"\r\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\"\r\n (click)=\"openRadioResponsibility($event)\"\r\n >\r\n {{\r\n placeholder === \"Loading...\"\r\n ? \"Loading...\"\r\n : \"Select a Responsibility\"\r\n }}\r\n <i class=\"icons vx-fs-10\"></i>\r\n </div>\r\n <div\r\n *ngIf=\"featureFlag_on_completion_of && isSelectedData\"\r\n class=\"after-select-box vx-p-1 vx-mr-3 vx-d-flex vx-align-center vx-justify-between vx-w-100\"\r\n >\r\n <div\r\n *ngIf=\"isSelectedData\"\r\n class=\"select-chip vx-fs-12 vx-paragraph-txt vx-p-1 vx-pl-2 vx-pr-2 vx-d-flex vx-align-center\"\r\n >\r\n <i\r\n *ngIf=\"isSelectedData\"\r\n class=\"icons cross vx-fs-14 vx-mr-1\"\r\n (click)=\"remove()\"\r\n ></i\r\n >\r\n <span\r\n [appTooltip]=\"selectedResponsibilityDetails?.ReportName\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"true\"\r\n >{{ selectedResponsibilityDetails?.ReportName }}</span\r\n >\r\n </div>\r\n <button\r\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\"\r\n (click)=\"openRadioResponsibility($event)\"\r\n >\r\n <i class=\"icons vx-mr-1\" (click)=\"openRadioResponsibility($event)\"\r\n ></i\r\n >\r\n EDIT\r\n </button>\r\n </div>\r\n <app-frequency-responsibility-list\r\n *ngIf=\"openRadio\"\r\n [feature]=\"feature\"\r\n [selectedResponsibilityDetails]=\"\r\n selectedResponsibilityDetails ? selectedResponsibilityDetails : {}\r\n \"\r\n (backButton)=\"openRadioResponsibility($event)\"\r\n (selectedResponsibility)=\"onResponsibilitySelection($event)\"\r\n ></app-frequency-responsibility-list>\r\n </ng-container>\r\n <ng-container *ngIf=\"!featureFlag_on_completion_of\">\r\n <cs-select\r\n [class.disabled]=\"placeholder === 'Loading...'\"\r\n [(ngModel)]=\"selectedResponsibilityDetails\"\r\n (valueChanged)=\"onResponsibilitySelection($event)\"\r\n [placeholder]=\"placeholder\"\r\n >\r\n <cs-option\r\n *ngFor=\"\r\n let responsibility of onCompletionOfResponsibility;\r\n let i = index\r\n \"\r\n [value]=\"responsibility\"\r\n [optionTooltip]=\"responsibility?.ReportName\"\r\n >{{ responsibility?.ReportName }}</cs-option\r\n >\r\n </cs-select>\r\n </ng-container>\r\n\r\n <div class=\"time-picker-group vx-d-flex\" *ngIf=\"!openRadio\">\r\n <div\r\n class=\"time-field\"\r\n appPopover\r\n (click)=\"timePicker.popover()\"\r\n placement=\"right\"\r\n >\r\n <input\r\n class=\"input\"\r\n [placeholder]=\"onCompletionOfTime | uppercase\"\r\n readonly\r\n />\r\n <div class=\"clock-icon vx-d-flex vx-align-center vx-justify-center\">\r\n <i class=\"icons vx-fs-12 vx-paragraph-txt\"></i>\r\n </div>\r\n </div>\r\n <app-popover #timePicker [dontCloseonClick]=\"true\">\r\n <app-time-picker\r\n [time]=\"onCompletionOfTime\"\r\n (onTimeSelection)=\"\r\n timeSelection($event); timePicker.closePopover('top')\r\n \"\r\n ></app-time-picker>\r\n </app-popover>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <app-frequency-due-date\r\n [id]=\"3\"\r\n [pageName]=\"'onCompletion'\"\r\n [mode]=\"mode\"\r\n [isDeactivated]=\"false\"\r\n [completedValue]=\"onCompletionOfWindow\"\r\n [notCompletedValue]=\"onCompletionOfFailed\"\r\n (valueChange)=\"onValueChange($event)\"\r\n ></app-frequency-due-date>\r\n</div>\r\n\r\n<div *ngIf=\"mode === 'policy'\" class=\"frequency-on-completion-of\">\r\n <div class=\"frequency-on-completion-of-message\">\r\n <input\r\n type=\"number\"\r\n [(ngModel)]=\"onCompletionOfInput\"\r\n (change)=\"inputValueChange($event)\"\r\n onkeydown=\"return event.keyCode !== 190\"\r\n min=\"0\"\r\n oninput=\"this.value = Math.abs(this.value)\"\r\n />\r\n <p>{{ onCompletionOfInput > 1 ? \"days\" : \"day\" }} after completion of</p>\r\n </div>\r\n <div class=\"frequency-on-completion-of-row\">\r\n <div class=\"responsibility\">\r\n <cs-select\r\n [class.disabled]=\"placeholder === 'Loading...'\"\r\n [(ngModel)]=\"selectedResponsibilityDetails\"\r\n (valueChanged)=\"onResponsibilitySelection($event)\"\r\n [placeholder]=\"placeholder\"\r\n >\r\n <cs-option\r\n *ngFor=\"\r\n let responsibility of onCompletionOfResponsibility;\r\n let i = index\r\n \"\r\n [value]=\"responsibility\"\r\n [optionTooltip]=\"responsibility?.ReportName\"\r\n >{{ responsibility?.ReportName }}</cs-option\r\n >\r\n </cs-select>\r\n </div>\r\n <div class=\"time\">\r\n <input\r\n type=\"text\"\r\n readonly\r\n aria-label=\"12hr format\"\r\n [(ngModel)]=\"onCompletionOfTime\"\r\n placeholder=\"Select Time\"\r\n />\r\n <!-- <i class=\"icons\"></i> -->\r\n <!-- <ngx-material-timepicker (timeChanged)=\"onTimeChanged($event)\" #dailyTime></ngx-material-timepicker> -->\r\n </div>\r\n </div>\r\n <app-frequency-due-date\r\n [id]=\"3\"\r\n [pageName]=\"'onCompletion'\"\r\n [mode]=\"mode\"\r\n [isDeactivated]=\"false\"\r\n [completedValue]=\"onCompletionOfWindow\"\r\n [notCompletedValue]=\"onCompletionOfFailed\"\r\n (valueChange)=\"onValueChange($event)\"\r\n ></app-frequency-due-date>\r\n</div>\r\n", 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"] }, { 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", "feature", "selectedResponsibilityDetails"], outputs: ["backButton", "selectedResponsibility"] }, { kind: "pipe", type: i3.UpperCasePipe, name: "uppercase" }] });
|
|
145
154
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FrequencyOnCompletionOfComponent, decorators: [{
|
|
146
155
|
type: Component,
|
|
147
|
-
args: [{ selector: 'app-frequency-on-completion-of', template: "<div class=\"frequency-completion\" *ngIf=\"mode !== 'policy'|| backButton\">\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">DUE DATE FREQUENCY:</div>\r\n <div class=\"frequency-completion-inner\">\r\n <div class=\"frequency-completion-top vx-p-3 vx-d-flex vx-align-center\">\r\n <input class=\"countNum\" type=\"number\" [(ngModel)]=\"onCompletionOfInput\" (change)=\"inputValueChange($event)\" onkeydown=\"return event.keyCode !== 190\" min=\"0\" oninput=\"this.value = Math.abs(this.value)\">\r\n <div class=\"vx-fs-13 vx-paragraph-txt\">day after completion of</div>\r\n </div>\r\n <div class=\"frequency-completion-bottom vx-p-3\">\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">RESPONSIBILITY</div>\r\n <div class=\"vx-d-flex vx-align-center\">\r\n <ng-container *ngIf=\"featureFlag_on_completion_of\">\r\n <div *ngIf=\"featureFlag_on_completion_of && !isSelectedData\" [class.disabled]=\"placeholder === 'Loading...'\" 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\" (click)=\"openRadioResponsibility($event)\" >\r\n {{placeholder === 'Loading...' ? 'Loading...' : 'Select a Responsibility'}}\r\n <i class=\"icons vx-fs-10\"></i>\r\n\r\n </div>\r\n <div *ngIf=\"featureFlag_on_completion_of && isSelectedData\" class=\"after-select-box vx-p-1 vx-mr-3 vx-d-flex vx-align-center vx-justify-between vx-w-100\">\r\n <div *ngIf=\"isSelectedData\" class=\"select-chip vx-fs-12 vx-paragraph-txt vx-p-1 vx-pl-2 vx-pr-2 vx-d-flex vx-align-center\">\r\n <i *ngIf=\"isSelectedData\" class=\"icons cross vx-fs-14 vx-mr-1\" (click)=\"remove()\" ></i>\r\n <span [appTooltip]=\"selectedResponsibilityDetails?.ReportName\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{selectedResponsibilityDetails?.ReportName}}</span>\r\n </div>\r\n <button 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\" (click)=\"openRadioResponsibility($event)\" ><i class=\"icons vx-mr-1\" (click)=\"openRadioResponsibility($event)\"></i> EDIT</button>\r\n </div>\r\n <app-frequency-responsibility-list *ngIf=\"openRadio\"\r\n [feature]=\"feature\"\r\n [selectedResponsibilityDetails]=\"selectedResponsibilityDetails ? selectedResponsibilityDetails : {}\"\r\n (backButton) = \"openRadioResponsibility($event)\"\r\n (selectedResponsibility)=\"onResponsibilitySelection($event)\"></app-frequency-responsibility-list>\r\n </ng-container>\r\n <ng-container *ngIf=\"!featureFlag_on_completion_of\">\r\n <cs-select [class.disabled]=\"placeholder === 'Loading...'\" [(ngModel)]=\"selectedResponsibilityDetails\" (valueChanged)=\"onResponsibilitySelection($event)\" [placeholder]=\"placeholder\">\r\n <cs-option *ngFor=\"let responsibility of onCompletionOfResponsibility; let i = index;\" [value]=\"responsibility\" [optionTooltip]=\"responsibility?.ReportName\">{{responsibility?.ReportName}}</cs-option>\r\n </cs-select>\r\n </ng-container>\r\n\r\n <div class=\"time-picker-group vx-d-flex\" *ngIf=\"!openRadio\" >\r\n <div class=\"time-field\" [class.disable]=\"true\">\r\n <input class=\"input\" placeholder=\"11:59 PM\" readonly />\r\n <div class=\"clock-icon vx-d-flex vx-align-center vx-justify-center\"><i class=\"icons vx-fs-12 vx-paragraph-txt\"></i></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <app-frequency-due-date\r\n [id] = '3'\r\n [pageName]=\"'onCompletion'\"\r\n [mode]=\"mode\"\r\n [isDeactivated]=\"false\"\r\n [completedValue]=\"onCompletionOfWindow\"\r\n [notCompletedValue]=\"onCompletionOfFailed\"\r\n (valueChange)=\"onValueChange($event)\"\r\n ></app-frequency-due-date>\r\n</div>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n<div *ngIf=\"mode === 'policy'\" class=\"frequency-on-completion-of\">\r\n <div class=\"frequency-on-completion-of-message\">\r\n <input type=\"number\" [(ngModel)]=\"onCompletionOfInput\" (change)=\"inputValueChange($event)\" onkeydown=\"return event.keyCode !== 190\" min=\"0\" oninput=\"this.value = Math.abs(this.value)\">\r\n <p>{{onCompletionOfInput > 1 ?'days': 'day'}} after completion of</p>\r\n </div>\r\n <div class=\"frequency-on-completion-of-row\">\r\n <div class=\"responsibility\">\r\n <cs-select [class.disabled]=\"placeholder === 'Loading...'\" [(ngModel)]=\"selectedResponsibilityDetails\" (valueChanged)=\"onResponsibilitySelection($event)\" [placeholder]=\"placeholder\">\r\n <cs-option *ngFor=\"let responsibility of onCompletionOfResponsibility; let i = index;\" [value]=\"responsibility\" [optionTooltip]=\"responsibility?.ReportName\">{{responsibility?.ReportName}}</cs-option>\r\n </cs-select>\r\n </div>\r\n <div class=\"time\">\r\n <input type=\"text\" readonly aria-label=\"12hr format\" [(ngModel)]=\"onCompletionOfTime\" placeholder=\"Select Time\">\r\n <!-- <i class=\"icons\"></i> -->\r\n <!-- <ngx-material-timepicker (timeChanged)=\"onTimeChanged($event)\" #dailyTime></ngx-material-timepicker> -->\r\n </div>\r\n </div>\r\n <app-frequency-due-date\r\n [id] = '3'\r\n [pageName]=\"'onCompletion'\"\r\n [mode]=\"mode\"\r\n [isDeactivated]=\"false\"\r\n [completedValue]=\"onCompletionOfWindow\"\r\n [notCompletedValue]=\"onCompletionOfFailed\"\r\n (valueChange)=\"onValueChange($event)\"\r\n ></app-frequency-due-date>\r\n</div>\r\n\r\n", 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}::ng-deep .frequency-completion-bottom .time-picker-group input::placeholder{color:#747576}::ng-deep .frequency-completion-bottom .time-picker-group .time-field{position:relative}::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"] }]
|
|
156
|
+
args: [{ selector: 'app-frequency-on-completion-of', template: "<div class=\"frequency-completion\" *ngIf=\"mode !== 'policy' || backButton\">\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\r\n DUE DATE FREQUENCY:\r\n </div>\r\n <div class=\"frequency-completion-inner\">\r\n <div class=\"frequency-completion-top vx-p-3 vx-d-flex vx-align-center\">\r\n <input\r\n class=\"countNum\"\r\n type=\"number\"\r\n [(ngModel)]=\"onCompletionOfInput\"\r\n (change)=\"inputValueChange($event)\"\r\n onkeydown=\"return event.keyCode !== 190\"\r\n min=\"0\"\r\n oninput=\"this.value = Math.abs(this.value)\"\r\n />\r\n <div class=\"vx-fs-13 vx-paragraph-txt\">day after completion of</div>\r\n </div>\r\n <div class=\"frequency-completion-bottom vx-p-3\">\r\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">\r\n RESPONSIBILITY\r\n </div>\r\n <div class=\"vx-d-flex vx-align-center\">\r\n <ng-container *ngIf=\"featureFlag_on_completion_of\">\r\n <div\r\n *ngIf=\"featureFlag_on_completion_of && !isSelectedData\"\r\n [class.disabled]=\"placeholder === 'Loading...'\"\r\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\"\r\n (click)=\"openRadioResponsibility($event)\"\r\n >\r\n {{\r\n placeholder === \"Loading...\"\r\n ? \"Loading...\"\r\n : \"Select a Responsibility\"\r\n }}\r\n <i class=\"icons vx-fs-10\"></i>\r\n </div>\r\n <div\r\n *ngIf=\"featureFlag_on_completion_of && isSelectedData\"\r\n class=\"after-select-box vx-p-1 vx-mr-3 vx-d-flex vx-align-center vx-justify-between vx-w-100\"\r\n >\r\n <div\r\n *ngIf=\"isSelectedData\"\r\n class=\"select-chip vx-fs-12 vx-paragraph-txt vx-p-1 vx-pl-2 vx-pr-2 vx-d-flex vx-align-center\"\r\n >\r\n <i\r\n *ngIf=\"isSelectedData\"\r\n class=\"icons cross vx-fs-14 vx-mr-1\"\r\n (click)=\"remove()\"\r\n ></i\r\n >\r\n <span\r\n [appTooltip]=\"selectedResponsibilityDetails?.ReportName\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"true\"\r\n >{{ selectedResponsibilityDetails?.ReportName }}</span\r\n >\r\n </div>\r\n <button\r\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\"\r\n (click)=\"openRadioResponsibility($event)\"\r\n >\r\n <i class=\"icons vx-mr-1\" (click)=\"openRadioResponsibility($event)\"\r\n ></i\r\n >\r\n EDIT\r\n </button>\r\n </div>\r\n <app-frequency-responsibility-list\r\n *ngIf=\"openRadio\"\r\n [feature]=\"feature\"\r\n [selectedResponsibilityDetails]=\"\r\n selectedResponsibilityDetails ? selectedResponsibilityDetails : {}\r\n \"\r\n (backButton)=\"openRadioResponsibility($event)\"\r\n (selectedResponsibility)=\"onResponsibilitySelection($event)\"\r\n ></app-frequency-responsibility-list>\r\n </ng-container>\r\n <ng-container *ngIf=\"!featureFlag_on_completion_of\">\r\n <cs-select\r\n [class.disabled]=\"placeholder === 'Loading...'\"\r\n [(ngModel)]=\"selectedResponsibilityDetails\"\r\n (valueChanged)=\"onResponsibilitySelection($event)\"\r\n [placeholder]=\"placeholder\"\r\n >\r\n <cs-option\r\n *ngFor=\"\r\n let responsibility of onCompletionOfResponsibility;\r\n let i = index\r\n \"\r\n [value]=\"responsibility\"\r\n [optionTooltip]=\"responsibility?.ReportName\"\r\n >{{ responsibility?.ReportName }}</cs-option\r\n >\r\n </cs-select>\r\n </ng-container>\r\n\r\n <div class=\"time-picker-group vx-d-flex\" *ngIf=\"!openRadio\">\r\n <div\r\n class=\"time-field\"\r\n appPopover\r\n (click)=\"timePicker.popover()\"\r\n placement=\"right\"\r\n >\r\n <input\r\n class=\"input\"\r\n [placeholder]=\"onCompletionOfTime | uppercase\"\r\n readonly\r\n />\r\n <div class=\"clock-icon vx-d-flex vx-align-center vx-justify-center\">\r\n <i class=\"icons vx-fs-12 vx-paragraph-txt\"></i>\r\n </div>\r\n </div>\r\n <app-popover #timePicker [dontCloseonClick]=\"true\">\r\n <app-time-picker\r\n [time]=\"onCompletionOfTime\"\r\n (onTimeSelection)=\"\r\n timeSelection($event); timePicker.closePopover('top')\r\n \"\r\n ></app-time-picker>\r\n </app-popover>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <app-frequency-due-date\r\n [id]=\"3\"\r\n [pageName]=\"'onCompletion'\"\r\n [mode]=\"mode\"\r\n [isDeactivated]=\"false\"\r\n [completedValue]=\"onCompletionOfWindow\"\r\n [notCompletedValue]=\"onCompletionOfFailed\"\r\n (valueChange)=\"onValueChange($event)\"\r\n ></app-frequency-due-date>\r\n</div>\r\n\r\n<div *ngIf=\"mode === 'policy'\" class=\"frequency-on-completion-of\">\r\n <div class=\"frequency-on-completion-of-message\">\r\n <input\r\n type=\"number\"\r\n [(ngModel)]=\"onCompletionOfInput\"\r\n (change)=\"inputValueChange($event)\"\r\n onkeydown=\"return event.keyCode !== 190\"\r\n min=\"0\"\r\n oninput=\"this.value = Math.abs(this.value)\"\r\n />\r\n <p>{{ onCompletionOfInput > 1 ? \"days\" : \"day\" }} after completion of</p>\r\n </div>\r\n <div class=\"frequency-on-completion-of-row\">\r\n <div class=\"responsibility\">\r\n <cs-select\r\n [class.disabled]=\"placeholder === 'Loading...'\"\r\n [(ngModel)]=\"selectedResponsibilityDetails\"\r\n (valueChanged)=\"onResponsibilitySelection($event)\"\r\n [placeholder]=\"placeholder\"\r\n >\r\n <cs-option\r\n *ngFor=\"\r\n let responsibility of onCompletionOfResponsibility;\r\n let i = index\r\n \"\r\n [value]=\"responsibility\"\r\n [optionTooltip]=\"responsibility?.ReportName\"\r\n >{{ responsibility?.ReportName }}</cs-option\r\n >\r\n </cs-select>\r\n </div>\r\n <div class=\"time\">\r\n <input\r\n type=\"text\"\r\n readonly\r\n aria-label=\"12hr format\"\r\n [(ngModel)]=\"onCompletionOfTime\"\r\n placeholder=\"Select Time\"\r\n />\r\n <!-- <i class=\"icons\"></i> -->\r\n <!-- <ngx-material-timepicker (timeChanged)=\"onTimeChanged($event)\" #dailyTime></ngx-material-timepicker> -->\r\n </div>\r\n </div>\r\n <app-frequency-due-date\r\n [id]=\"3\"\r\n [pageName]=\"'onCompletion'\"\r\n [mode]=\"mode\"\r\n [isDeactivated]=\"false\"\r\n [completedValue]=\"onCompletionOfWindow\"\r\n [notCompletedValue]=\"onCompletionOfFailed\"\r\n (valueChange)=\"onValueChange($event)\"\r\n ></app-frequency-due-date>\r\n</div>\r\n", 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"] }]
|
|
148
157
|
}], ctorParameters: function () { return [{ type: i1.FrequencyService }]; }, propDecorators: { mode: [{
|
|
149
158
|
type: Input
|
|
150
159
|
}], feature: [{
|
|
@@ -158,4 +167,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
158
167
|
}], radioForm: [{
|
|
159
168
|
type: Output
|
|
160
169
|
}] } });
|
|
161
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YvZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YvZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7OztBQVUvRSxNQUFNLE9BQU8sZ0NBQWdDO0lBeUIzQyxZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQXhCN0MsU0FBSSxHQUFRLEVBQUUsQ0FBQztRQUV4Qix3QkFBbUIsR0FBRyxDQUFDLENBQUM7UUFDeEIseUJBQW9CLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLHlCQUFvQixHQUFHLENBQUMsQ0FBQztRQUN6Qix1QkFBa0IsR0FBRyxVQUFVLENBQUM7UUFDaEMsaUNBQTRCLEdBQWUsRUFBRSxDQUFDO1FBQzlDLHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQUM1QiwyQkFBc0IsR0FBRyxDQUFDLENBQUM7UUFDM0IsZ0JBQVcsR0FBRyxZQUFZLENBQUM7UUFFM0Isa0NBQTZCLEdBQVEsRUFBRSxDQUFDO1FBRS9CLGNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxH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QWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZyZXF1ZW5jeVNlcnZpY2UgfSBmcm9tICcuLi9mcmVxdWVuY3kuc2VydmljZSc7XHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50L21vbWVudCc7XHJcbmltcG9ydCB7IGVsZW1lbnRBdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWZyZXF1ZW5jeS1vbi1jb21wbGV0aW9uLW9mJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZyZXF1ZW5jeS1vbi1jb21wbGV0aW9uLW9mLmNvbXBvbmVudC5sZXNzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGcmVxdWVuY3lPbkNvbXBsZXRpb25PZkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgbW9kZTogYW55ID0gJyc7XHJcbiAgQElucHV0KCkgZmVhdHVyZTogYW55O1xyXG4gIG9uQ29tcGxldGlvbk9mSW5wdXQgPSAxO1xyXG4gIG9uQ29tcGxldGlvbk9mV2luZG93ID0gMztcclxuICBvbkNvbXBsZXRpb25PZkZhaWxlZCA9IDU7XHJcbiAgb25Db21wbGV0aW9uT2ZUaW1lID0gJzExOjU5IHBtJztcclxuICBvbkNvbXBsZXRpb25PZlJlc3BvbnNpYmlsaXR5OiBBcnJheTxhbnk+ID0gW107XHJcbiAgaXNMaWZlY3ljbGVNb2RpZmllZCA9IGZhbHNlO1xyXG4gIHNlbGVjdGVkUmVzcG9uc2liaWxpdHkgPSAwO1xyXG4gIHBsYWNlaG9sZGVyID0gJ0xvYWRpbmcuLi4nO1xyXG4gIGZyZXF1ZW5jeUluZm86IGFueTtcclxuICBzZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlsczogYW55ID0ge307XHJcblxyXG4gIEBJbnB1dCgpIHN0YXJ0RGF0ZSA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApO1xyXG4gIEBJbnB1dCgpIGZyZXF1ZW5jeURhdGE6IGFueTtcclxuICBsaWZlY3ljbGVEZXRhaWxzOiBhbnkgPSAnMDAwMC0wMC0wMH5+MCc7XHJcblxyXG4gIEBPdXRwdXQoKSBmcmVxdWVuY3lEZXRhaWxzID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIHJhZGlvRm9ybSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIG9wZW5SYWRpbzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGZlYXR1cmVGbGFnX29uX2NvbXBsZXRpb25fb2Y6IGFueTtcclxuICBiYWNrQnV0dG9uOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNTZWxlY3RlZERhdGE6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmcmVxdWVuY3lTZXJ2aWNlOiBGcmVxdWVuY3lTZXJ2aWNlKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZmVhdHVyZUZsYWdfb25fY29tcGxldGlvbl9vZiA9IHRoaXMuZmVhdHVyZS5pc0ZlYXR1cmVFbmFibGVkKFxyXG4gICAgICAnZmZfZnJlcXVlbmN5X29uX2NvbXBsZXRpb25fb2YnXHJcbiAgICApO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvID0gT2JqZWN0LmFzc2lnbih0aGlzLmZyZXF1ZW5jeVNlcnZpY2UuZnJlcXVlbmN5SW5mbyk7XHJcbiAgICB0aGlzLmdldENvbXBsZXRpb25SZXBvcnRzKCk7XHJcbiAgICB0aGlzLmdldE9uQ29tcGxldGlvbkZyZXF1ZW5jeSgpO1xyXG4gICAgdGhpcy5pc1NlbGVjdGVkRGF0YSA9IHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHNcclxuICAgICAgPyBPYmplY3Qua2V5cyh0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzKT8ubGVuZ3RoID4gMFxyXG4gICAgICA6IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcG9wdWxhdGVGcmVxdWVuY3koKSB7XHJcbiAgICBjb25zdCBmcmVxdWVuY3lTZWxlY3RlZCA9IHRoaXMuZnJlcXVlbmN5RGF0YS5wYXR0ZXJuLnNwbGl0KCd+Jyk7XHJcbiAgICB0aGlzLm9uQ29tcGxldGlvbk9mSW5wdXQgPSBwYXJzZUludChmcmVxdWVuY3lTZWxlY3RlZFszXSk7XHJcbiAgICB0aGlzLm9uQ29tcGxldGlvbk9mRmFpbGVkID0gdGhpcy5mcmVxdWVuY3lEYXRhLmZhaWxlZDtcclxuICAgIHRoaXMub25Db21wbGV0aW9uT2ZXaW5kb3cgPSB0aGlzLmZyZXF1ZW5jeURhdGEud2luZG93O1xyXG4gICAgdGhpcy5vbkNvbXBsZXRpb25PZlRpbWUgPSB0aGlzLmZyZXF1ZW5jeURhdGEuZmFpbGVkVGltZTtcclxuICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHMgPSB0aGlzLm9uQ29tcGxldGlvbk9mUmVzcG9uc2liaWxpdHkuZmluZChcclxuICAgICAgKHJlczogYW55KSA9PiByZXMuUmVwb3J0SWQgPT09IHRoaXMuZnJlcXVlbmN5RGF0YS5zZWxlY3RlZFJlcG9ydFxyXG4gICAgKTtcclxuICAgIHRoaXMuZ2V0T25Db21wbGV0aW9uRnJlcXVlbmN5KCk7XHJcbiAgICB0aGlzLmlzU2VsZWN0ZWREYXRhID0gdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlsc1xyXG4gICAgICA/IE9iamVjdC5rZXlzKHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHMpPy5sZW5ndGggPiAwXHJcbiAgICAgIDogZmFsc2U7XHJcbiAgfVxyXG5cclxuICBvblRpbWVDaGFuZ2VkKGV2ZW50OiBzdHJpbmcpIHtcclxuICAgIHRoaXMub25Db21wbGV0aW9uT2ZUaW1lID0gZXZlbnQ7XHJcbiAgICB0aGlzLmdldE9uQ29tcGxldGlvbkZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgb25WYWx1ZUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ2NvbXBsZXRlZCcpIHtcclxuICAgICAgdGhpcy5vbkNvbXBsZXRpb25PZldpbmRvdyA9IGV2ZW50LnZhbHVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5vbkNvbXBsZXRpb25PZkZhaWxlZCA9IGV2ZW50LnZhbHVlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRPbkNvbXBsZXRpb25GcmVxdWVuY3koKTtcclxuICB9XHJcblxyXG4gIG9uUmVzcG9uc2liaWxpdHlTZWxlY3Rpb24oZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuZmVhdHVyZUZsYWdfb25fY29tcGxldGlvbl9vZikge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzID0gZXZlbnQ7XHJcbiAgICAgIHRoaXMuaXNTZWxlY3RlZERhdGEgPSB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzXHJcbiAgICAgICAgPyBPYmplY3Qua2V5cyh0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzKT8ubGVuZ3RoID4gMFxyXG4gICAgICAgIDogZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZW9mIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHMgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgIHRoaXMuZnJlcXVlbmN5SW5mby5yZXBvcnRJZCA9XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscz8uUmVwb3J0SWQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZyZXF1ZW5jeUluZm8ucmVwb3J0SWQgPSAwO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRPbkNvbXBsZXRpb25GcmVxdWVuY3koKTtcclxuICB9XHJcblxyXG4gIGdldENvbXBsZXRpb25SZXBvcnRzKCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5ID0gMDtcclxuICAgIHRoaXMucGxhY2Vob2xkZXIgPSAnU2VsZWN0IGEgUmVzcG9uc2liaWxpdHknO1xyXG4gICAgdGhpcy5vbkNvbXBsZXRpb25PZlJlc3BvbnNpYmlsaXR5ID0gW107XHJcblxyXG4gICAgaWYgKHRoaXMuZnJlcXVlbmN5RGF0YT8ub25Db21wbGV0aW9uUmVwb3J0RGV0YWlscykge1xyXG4gICAgICB0aGlzLm9uQ29tcGxldGlvbk9mUmVzcG9uc2liaWxpdHkucHVzaChcclxuICAgICAgICB0aGlzLmZyZXF1ZW5jeURhdGE/Lm9uQ29tcGxldGlvblJlcG9ydERldGFpbHNcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuZnJlcXVlbmN5RGF0YS5wYXR0ZXJuICE9ICcnICYmXHJcbiAgICAgIHBhcnNlSW50KHRoaXMuZnJlcXVlbmN5RGF0YS5wYXR0ZXJuLnNwbGl0KCd+JylbMF0pID09PSA2XHJcbiAgICApIHtcclxuICAgICAgdGhpcy5wb3B1bGF0ZUZyZXF1ZW5jeSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW5wdXRWYWx1ZUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLm9uQ29tcGxldGlvbk9mSW5wdXQgPSBOdW1iZXIoZXZlbnQudGFyZ2V0LnZhbHVlKTtcclxuICAgIGlmICh0aGlzLm9uQ29tcGxldGlvbk9mSW5wdXQgPCAxKSB7XHJcbiAgICAgIHRoaXMub25Db21wbGV0aW9uT2ZJbnB1dCA9IDE7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdldE9uQ29tcGxldGlvbkZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0T25Db21wbGV0aW9uRnJlcXVlbmN5KCkge1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnBsYWNlaG9sZGVyID1cclxuICAgICAgdGhpcy5vbkNvbXBsZXRpb25PZklucHV0ICtcclxuICAgICAgJyAnICtcclxuICAgICAgKHRoaXMub25Db21wbGV0aW9uT2ZJbnB1dCA+IDEgPyAnZGF5cycgOiAnZGF5JykgK1xyXG4gICAgICAnIGFmdGVyIGNvbXBsZXRpb24gb2YgJyArXHJcbiAgICAgICh0aGlzLm9uQ29tcGxldGlvbk9mUmVzcG9uc2liaWxpdHkgJiZcclxuICAgICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscz8ucmVwb3J0X25hbWVcclxuICAgICAgICA/IHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHM/LnJlcG9ydF9uYW1lXHJcbiAgICAgICAgOiAnJyk7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ucGF0dGVybiA9XHJcbiAgICAgIDYgKyAnficgKyAnMCcgKyAnficgKyAnMCcgKyAnficgKyB0aGlzLm9uQ29tcGxldGlvbk9mSW5wdXQ7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uY2FzZSA9ICdvbkNvbXBsZXRpb25PZic7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uZmFpbGVkQWZ0ZXIgPSB0aGlzLm9uQ29tcGxldGlvbk9mRmFpbGVkO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLndpbmRvdyA9IHRoaXMub25Db21wbGV0aW9uT2ZXaW5kb3c7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8udGltZUluMTJociA9IHRoaXMub25Db21wbGV0aW9uT2ZUaW1lO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnRpbWVJbjI0SHIgPSB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UudGltZUZyb20xMmhUbzI0aChcclxuICAgICAgdGhpcy5vbkNvbXBsZXRpb25PZlRpbWVcclxuICAgICk7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uZmFpbGVkX3RpbWVfdXRjID0gMDtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5yZXBvcnRJZCA9XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHM/LlJlcG9ydElkID8/IDA7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeURldGFpbHMuZW1pdCh0aGlzLmZyZXF1ZW5jeUluZm8pO1xyXG4gIH1cclxuXHJcbiAgb3BlblJhZGlvUmVzcG9uc2liaWxpdHkoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKGV2ZW50ID09PSAnYmFja1RvT25Db21wbGV0aW9uJykge1xyXG4gICAgICB0aGlzLmJhY2tCdXR0b24gPSB0cnVlO1xyXG4gICAgICB0aGlzLm9wZW5SYWRpbyA9IGZhbHNlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5vcGVuUmFkaW8gPSB0cnVlO1xyXG4gICAgICB0aGlzLmJhY2tCdXR0b24gPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHRoaXMucmFkaW9Gb3JtLmVtaXQodGhpcy5vcGVuUmFkaW8pO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlKCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscyA9IHt9O1xyXG4gICAgdGhpcy5pc1NlbGVjdGVkRGF0YSA9IHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHNcclxuICAgICAgPyBPYmplY3Qua2V5cyh0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzKT8ubGVuZ3RoID4gMFxyXG4gICAgICA6IGZhbHNlO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnJlcG9ydElkID0gMDtcclxuICAgIHRoaXMuZnJlcXVlbmN5RGV0YWlscy5lbWl0KHRoaXMuZnJlcXVlbmN5SW5mbyk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktY29tcGxldGlvblwiICAqbmdJZj1cIm1vZGUgIT09ICdwb2xpY3knfHwgYmFja0J1dHRvblwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LW1iLTFcIj5EVUUgREFURSBGUkVRVUVOQ1k6PC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWNvbXBsZXRpb24taW5uZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWNvbXBsZXRpb24tdG9wIHZ4LXAtMyB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImNvdW50TnVtXCIgdHlwZT1cIm51bWJlclwiIFsobmdNb2RlbCldPVwib25Db21wbGV0aW9uT2ZJbnB1dFwiIChjaGFuZ2UpPVwiaW5wdXRWYWx1ZUNoYW5nZSgkZXZlbnQpXCIgb25rZXlkb3duPVwicmV0dXJuIGV2ZW50LmtleUNvZGUgIT09IDE5MFwiIG1pbj1cIjBcIiBvbmlucHV0PVwidGhpcy52YWx1ZSA9IE1hdGguYWJzKHRoaXMudmFsdWUpXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMyB2eC1wYXJhZ3JhcGgtdHh0XCI+ZGF5IGFmdGVyIGNvbXBsZXRpb24gb2Y8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWNvbXBsZXRpb24tYm90dG9tIHZ4LXAtM1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTEgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC10dC11cHBlcmNhc2UgdngtbWItMVwiPlJFU1BPTlNJQklMSVRZPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmVhdHVyZUZsYWdfb25fY29tcGxldGlvbl9vZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmZWF0dXJlRmxhZ19vbl9jb21wbGV0aW9uX29mICYmICFpc1NlbGVjdGVkRGF0YVwiIFtjbGFzcy5kaXNhYmxlZF09XCJwbGFjZWhvbGRlciA9PT0gJ0xvYWRpbmcuLi4nXCIgY2xhc3M9XCJzZWxlY3QtYm94IHZ4LWZzLTExIHZ4LXBhcmFncmFwaC10eHQgdngtcC0yIHZ4LXBsLTMgdngtcHItMyB2eC1tci0zIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuIHZ4LXctMTAwXCIgKGNsaWNrKT1cIm9wZW5SYWRpb1Jlc3BvbnNpYmlsaXR5KCRldmVudClcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7cGxhY2Vob2xkZXIgPT09ICdMb2FkaW5nLi4uJyA/ICdMb2FkaW5nLi4uJyA6ICdTZWxlY3QgYSBSZXNwb25zaWJpbGl0eSd9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIHZ4LWZzLTEwXCI+JiN4ZTllODs8L2k+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmZWF0dXJlRmxhZ19vbl9jb21wbGV0aW9uX29mICYmIGlzU2VsZWN0ZWREYXRhXCIgY2xhc3M9XCJhZnRlci1zZWxlY3QtYm94IHZ4LXAtMSB2eC1tci0zIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuIHZ4LXctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc1NlbGVjdGVkRGF0YVwiIGNsYXNzPVwic2VsZWN0LWNoaXAgdngtZnMtMTIgdngtcGFyYWdyYXBoLXR4dCB2eC1wLTEgdngtcGwtMiB2eC1wci0yIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpICAqbmdJZj1cImlzU2VsZWN0ZWREYXRhXCIgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xNCB2eC1tci0xXCIgKGNsaWNrKT1cInJlbW92ZSgpXCIgPiYjeGU5YWU7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2FwcFRvb2x0aXBdPVwic2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHM/LlJlcG9ydE5hbWVcIiBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiIGRlbGF5PVwiMFwiIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj57e3NlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzPy5SZXBvcnROYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiZWRpdC1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXR4dC1ibHVlIHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtcGwtMSB2eC1wci0xIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCIgKGNsaWNrKT1cIm9wZW5SYWRpb1Jlc3BvbnNpYmlsaXR5KCRldmVudClcIiA+PGkgY2xhc3M9XCJpY29ucyB2eC1tci0xXCIgKGNsaWNrKT1cIm9wZW5SYWRpb1Jlc3BvbnNpYmlsaXR5KCRldmVudClcIj4mI3hlOTBjOzwvaT4gRURJVDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxhcHAtZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QgKm5nSWY9XCJvcGVuUmFkaW9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZmVhdHVyZV09XCJmZWF0dXJlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlsc109XCJzZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscyA/IHNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzIDoge31cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGJhY2tCdXR0b24pID0gXCJvcGVuUmFkaW9SZXNwb25zaWJpbGl0eSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZFJlc3BvbnNpYmlsaXR5KT1cIm9uUmVzcG9uc2liaWxpdHlTZWxlY3Rpb24oJGV2ZW50KVwiPjwvYXBwLWZyZXF1ZW5jeS1yZXNwb25zaWJpbGl0eS1saXN0PlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWZlYXR1cmVGbGFnX29uX2NvbXBsZXRpb25fb2ZcIj5cclxuICAgICAgICAgICAgICAgICAgICA8Y3Mtc2VsZWN0IFtjbGFzcy5kaXNhYmxlZF09XCJwbGFjZWhvbGRlciA9PT0gJ0xvYWRpbmcuLi4nXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlsc1wiICh2YWx1ZUNoYW5nZWQpPVwib25SZXNwb25zaWJpbGl0eVNlbGVjdGlvbigkZXZlbnQpXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjcy1vcHRpb24gICpuZ0Zvcj1cImxldCByZXNwb25zaWJpbGl0eSBvZiBvbkNvbXBsZXRpb25PZlJlc3BvbnNpYmlsaXR5OyBsZXQgaSAgPSBpbmRleDtcIiBbdmFsdWVdPVwicmVzcG9uc2liaWxpdHlcIiBbb3B0aW9uVG9vbHRpcF09XCJyZXNwb25zaWJpbGl0eT8uUmVwb3J0TmFtZVwiPnt7cmVzcG9uc2liaWxpdHk/LlJlcG9ydE5hbWV9fTwvY3Mtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvY3Mtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWUtcGlja2VyLWdyb3VwIHZ4LWQtZmxleFwiICpuZ0lmPVwiIW9wZW5SYWRpb1wiID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGltZS1maWVsZFwiIFtjbGFzcy5kaXNhYmxlXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiaW5wdXRcIiBwbGFjZWhvbGRlcj1cIjExOjU5IFBNXCIgcmVhZG9ubHkgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNsb2NrLWljb24gdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlclwiPjxpIGNsYXNzPVwiaWNvbnMgdngtZnMtMTIgdngtcGFyYWdyYXBoLXR4dFwiPiYjeGU5NTU7PC9pPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8YXBwLWZyZXF1ZW5jeS1kdWUtZGF0ZVxyXG4gICAgICAgIFtpZF0gPSAnMydcclxuICAgICAgICBbcGFnZU5hbWVdPVwiJ29uQ29tcGxldGlvbidcIlxyXG4gICAgICAgIFttb2RlXT1cIm1vZGVcIlxyXG4gICAgICAgIFtpc0RlYWN0aXZhdGVkXT1cImZhbHNlXCJcclxuICAgICAgICBbY29tcGxldGVkVmFsdWVdPVwib25Db21wbGV0aW9uT2ZXaW5kb3dcIlxyXG4gICAgICAgIFtub3RDb21wbGV0ZWRWYWx1ZV09XCJvbkNvbXBsZXRpb25PZkZhaWxlZFwiXHJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICA+PC9hcHAtZnJlcXVlbmN5LWR1ZS1kYXRlPlxyXG48L2Rpdj5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbjxkaXYgKm5nSWY9XCJtb2RlID09PSAncG9saWN5J1wiIGNsYXNzPVwiZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2ZcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktb24tY29tcGxldGlvbi1vZi1tZXNzYWdlXCI+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIiBbKG5nTW9kZWwpXT1cIm9uQ29tcGxldGlvbk9mSW5wdXRcIiAoY2hhbmdlKT1cImlucHV0VmFsdWVDaGFuZ2UoJGV2ZW50KVwiIG9ua2V5ZG93bj1cInJldHVybiBldmVudC5rZXlDb2RlICE9PSAxOTBcIiBtaW49XCIwXCIgb25pbnB1dD1cInRoaXMudmFsdWUgPSBNYXRoLmFicyh0aGlzLnZhbHVlKVwiPlxyXG4gICAgICAgIDxwPnt7b25Db21wbGV0aW9uT2ZJbnB1dCA+IDEgPydkYXlzJzogJ2RheSd9fSBhZnRlciBjb21wbGV0aW9uIG9mPC9wPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2Ytcm93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJlc3BvbnNpYmlsaXR5XCI+XHJcbiAgICAgICAgICAgIDxjcy1zZWxlY3QgW2NsYXNzLmRpc2FibGVkXT1cInBsYWNlaG9sZGVyID09PSAnTG9hZGluZy4uLidcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzXCIgKHZhbHVlQ2hhbmdlZCk9XCJvblJlc3BvbnNpYmlsaXR5U2VsZWN0aW9uKCRldmVudClcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxjcy1vcHRpb24gICpuZ0Zvcj1cImxldCByZXNwb25zaWJpbGl0eSBvZiBvbkNvbXBsZXRpb25PZlJlc3BvbnNpYmlsaXR5OyBsZXQgaSAgPSBpbmRleDtcIiBbdmFsdWVdPVwicmVzcG9uc2liaWxpdHlcIiBbb3B0aW9uVG9vbHRpcF09XCJyZXNwb25zaWJpbGl0eT8uUmVwb3J0TmFtZVwiPnt7cmVzcG9uc2liaWxpdHk/LlJlcG9ydE5hbWV9fTwvY3Mtb3B0aW9uPlxyXG4gICAgICAgICAgICA8L2NzLXNlbGVjdD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGltZVwiPlxyXG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiByZWFkb25seSBhcmlhLWxhYmVsPVwiMTJociBmb3JtYXRcIiBbKG5nTW9kZWwpXT1cIm9uQ29tcGxldGlvbk9mVGltZVwiIHBsYWNlaG9sZGVyPVwiU2VsZWN0IFRpbWVcIj5cclxuICAgICAgICAgICAgPCEtLSA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTk1NTs8L2k+IC0tPlxyXG4gICAgICAgICAgICA8IS0tIDxuZ3gtbWF0ZXJpYWwtdGltZXBpY2tlciAodGltZUNoYW5nZWQpPVwib25UaW1lQ2hhbmdlZCgkZXZlbnQpXCIgI2RhaWx5VGltZT48L25neC1tYXRlcmlhbC10aW1lcGlja2VyPiAtLT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGFwcC1mcmVxdWVuY3ktZHVlLWRhdGVcclxuICAgICAgICBbaWRdID0gJzMnXHJcbiAgICAgICAgW3BhZ2VOYW1lXT1cIidvbkNvbXBsZXRpb24nXCJcclxuICAgICAgICBbbW9kZV09XCJtb2RlXCJcclxuICAgICAgICBbaXNEZWFjdGl2YXRlZF09XCJmYWxzZVwiXHJcbiAgICAgICAgW2NvbXBsZXRlZFZhbHVlXT1cIm9uQ29tcGxldGlvbk9mV2luZG93XCJcclxuICAgICAgICBbbm90Q29tcGxldGVkVmFsdWVdPVwib25Db21wbGV0aW9uT2ZGYWlsZWRcIlxyXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgPjwvYXBwLWZyZXF1ZW5jeS1kdWUtZGF0ZT5cclxuPC9kaXY+XHJcblxyXG4iXX0=
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YvZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YvZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFPakUsTUFBTSxPQUFPLGdDQUFnQztJQTBCM0MsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUF6QjdDLFNBQUksR0FBUSxFQUFFLENBQUM7UUFFeEIsaUJBQVksR0FBVyxZQUFZLENBQUM7UUFDcEMsd0JBQW1CLEdBQUcsQ0FBQyxDQUFDO1FBQ3hCLHlCQUFvQixHQUFHLENBQUMsQ0FBQztRQUN6Qix5QkFBb0IsR0FBRyxDQUFDLENBQUM7UUFDekIsdUJBQWtCLEdBQUcsWUFBWSxDQUFDO1FBQ2xDLGlDQUE0QixHQUFlLEVBQUUsQ0FBQztRQUM5Qyx3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFDNUIsMkJBQXNCLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLGdCQUFXLEdBQUcsWUFBWSxDQUFDO1FB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Qyx1UENYN0MsOCtPQThMQTsyRkRuTGEsZ0NBQWdDO2tCQUw1QyxTQUFTOytCQUNFLGdDQUFnQzt1R0FLakMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFhRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0ksZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZyZXF1ZW5jeVNlcnZpY2UgfSBmcm9tICcuLi9mcmVxdWVuY3kuc2VydmljZSc7XHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50L21vbWVudCc7XHJcbmltcG9ydCB7IGVsZW1lbnRBdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgREVGQVVMVF9USU1FIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL3RpbWUuY29uc3RhbnRzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWZyZXF1ZW5jeS1vbi1jb21wbGV0aW9uLW9mJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZyZXF1ZW5jeS1vbi1jb21wbGV0aW9uLW9mLmNvbXBvbmVudC5sZXNzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGcmVxdWVuY3lPbkNvbXBsZXRpb25PZkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgbW9kZTogYW55ID0gJyc7XHJcbiAgQElucHV0KCkgZmVhdHVyZTogYW55O1xyXG4gIERFRkFVTFRfVElNRTogc3RyaW5nID0gREVGQVVMVF9USU1FO1xyXG4gIG9uQ29tcGxldGlvbk9mSW5wdXQgPSAxO1xyXG4gIG9uQ29tcGxldGlvbk9mV2luZG93ID0gMztcclxuICBvbkNvbXBsZXRpb25PZkZhaWxlZCA9IDU7XHJcbiAgb25Db21wbGV0aW9uT2ZUaW1lID0gREVGQVVMVF9USU1FO1xyXG4gIG9uQ29tcGxldGlvbk9mUmVzcG9uc2liaWxpdHk6IEFycmF5PGFueT4gPSBbXTtcclxuICBpc0xpZmVjeWNsZU1vZGlmaWVkID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWRSZXNwb25zaWJpbGl0eSA9IDA7XHJcbiAgcGxhY2Vob2xkZXIgPSAnTG9hZGluZy4uLic7XHJcbiAgZnJlcXVlbmN5SW5mbzogYW55O1xyXG4gIHNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzOiBhbnkgPSB7fTtcclxuXHJcbiAgQElucHV0KCkgc3RhcnREYXRlID0gTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCk7XHJcbiAgQElucHV0KCkgZnJlcXVlbmN5RGF0YTogYW55O1xyXG4gIGxpZmVjeWNsZURldGFpbHM6IGFueSA9ICcwMDAwLTAwLTAwfn4wJztcclxuXHJcbiAgQE91dHB1dCgpIGZyZXF1ZW5jeURldGFpbHMgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgcmFkaW9Gb3JtID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgb3BlblJhZGlvOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZmVhdHVyZUZsYWdfb25fY29tcGxldGlvbl9vZjogYW55O1xyXG4gIGJhY2tCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc1NlbGVjdGVkRGF0YTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZyZXF1ZW5jeVNlcnZpY2U6IEZyZXF1ZW5jeVNlcnZpY2UpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5mZWF0dXJlRmxhZ19vbl9jb21wbGV0aW9uX29mID0gdGhpcy5mZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoXHJcbiAgICAgICdmZl9mcmVxdWVuY3lfb25fY29tcGxldGlvbl9vZidcclxuICAgICk7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8gPSBPYmplY3QuYXNzaWduKHRoaXMuZnJlcXVlbmN5U2VydmljZS5mcmVxdWVuY3lJbmZvKTtcclxuICAgIHRoaXMuZ2V0Q29tcGxldGlvblJlcG9ydHMoKTtcclxuICAgIHRoaXMuZ2V0T25Db21wbGV0aW9uRnJlcXVlbmN5KCk7XHJcbiAgICB0aGlzLmlzU2VsZWN0ZWREYXRhID0gdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlsc1xyXG4gICAgICA/IE9iamVjdC5rZXlzKHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHMpPy5sZW5ndGggPiAwXHJcbiAgICAgIDogZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwb3B1bGF0ZUZyZXF1ZW5jeSgpIHtcclxuICAgIGNvbnN0IGZyZXF1ZW5jeVNlbGVjdGVkID0gdGhpcy5mcmVxdWVuY3lEYXRhLnBhdHRlcm4uc3BsaXQoJ34nKTtcclxuICAgIHRoaXMub25Db21wbGV0aW9uT2ZJbnB1dCA9IHBhcnNlSW50KGZyZXF1ZW5jeVNlbGVjdGVkWzNdKTtcclxuICAgIHRoaXMub25Db21wbGV0aW9uT2ZGYWlsZWQgPSB0aGlzLmZyZXF1ZW5jeURhdGEuZmFpbGVkO1xyXG4gICAgdGhpcy5vbkNvbXBsZXRpb25PZldpbmRvdyA9IHRoaXMuZnJlcXVlbmN5RGF0YS53aW5kb3c7XHJcbiAgICB0aGlzLm9uQ29tcGxldGlvbk9mVGltZSA9IHRoaXMuZnJlcXVlbmN5RGF0YS5mYWlsZWRUaW1lO1xyXG4gICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscyA9IHRoaXMub25Db21wbGV0aW9uT2ZSZXNwb25zaWJpbGl0eS5maW5kKFxyXG4gICAgICAocmVzOiBhbnkpID0+IHJlcy5SZXBvcnRJZCA9PT0gdGhpcy5mcmVxdWVuY3lEYXRhLnNlbGVjdGVkUmVwb3J0XHJcbiAgICApO1xyXG4gICAgdGhpcy5nZXRPbkNvbXBsZXRpb25GcmVxdWVuY3koKTtcclxuICAgIHRoaXMuaXNTZWxlY3RlZERhdGEgPSB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzXHJcbiAgICAgID8gT2JqZWN0LmtleXModGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscyk/Lmxlbmd0aCA+IDBcclxuICAgICAgOiBmYWxzZTtcclxuICB9XHJcblxyXG4gIG9uVGltZUNoYW5nZWQoZXZlbnQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5vbkNvbXBsZXRpb25PZlRpbWUgPSBldmVudDtcclxuICAgIHRoaXMuZ2V0T25Db21wbGV0aW9uRnJlcXVlbmN5KCk7XHJcbiAgfVxyXG5cclxuICBvblZhbHVlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudC50eXBlID09PSAnY29tcGxldGVkJykge1xyXG4gICAgICB0aGlzLm9uQ29tcGxldGlvbk9mV2luZG93ID0gZXZlbnQudmFsdWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm9uQ29tcGxldGlvbk9mRmFpbGVkID0gZXZlbnQudmFsdWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdldE9uQ29tcGxldGlvbkZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgb25SZXNwb25zaWJpbGl0eVNlbGVjdGlvbihldmVudDogYW55KSB7XHJcbiAgICBpZiAodGhpcy5mZWF0dXJlRmxhZ19vbl9jb21wbGV0aW9uX29mKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHMgPSBldmVudDtcclxuICAgICAgdGhpcy5pc1NlbGVjdGVkRGF0YSA9IHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHNcclxuICAgICAgICA/IE9iamVjdC5rZXlzKHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHMpPy5sZW5ndGggPiAwXHJcbiAgICAgICAgOiBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmICh0eXBlb2YgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscyA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgdGhpcy5mcmVxdWVuY3lJbmZvLnJlcG9ydElkID1cclxuICAgICAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzPy5SZXBvcnRJZDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZnJlcXVlbmN5SW5mby5yZXBvcnRJZCA9IDA7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdldE9uQ29tcGxldGlvbkZyZXF1ZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29tcGxldGlvblJlcG9ydHMoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHkgPSAwO1xyXG4gICAgdGhpcy5wbGFjZWhvbGRlciA9ICdTZWxlY3QgYSBSZXNwb25zaWJpbGl0eSc7XHJcbiAgICB0aGlzLm9uQ29tcGxldGlvbk9mUmVzcG9uc2liaWxpdHkgPSBbXTtcclxuXHJcbiAgICBpZiAodGhpcy5mcmVxdWVuY3lEYXRhPy5vbkNvbXBsZXRpb25SZXBvcnREZXRhaWxzKSB7XHJcbiAgICAgIHRoaXMub25Db21wbGV0aW9uT2ZSZXNwb25zaWJpbGl0eS5wdXNoKFxyXG4gICAgICAgIHRoaXMuZnJlcXVlbmN5RGF0YT8ub25Db21wbGV0aW9uUmVwb3J0RGV0YWlsc1xyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5mcmVxdWVuY3lEYXRhLnBhdHRlcm4gIT0gJycgJiZcclxuICAgICAgcGFyc2VJbnQodGhpcy5mcmVxdWVuY3lEYXRhLnBhdHRlcm4uc3BsaXQoJ34nKVswXSkgPT09IDZcclxuICAgICkge1xyXG4gICAgICB0aGlzLnBvcHVsYXRlRnJlcXVlbmN5KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbnB1dFZhbHVlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMub25Db21wbGV0aW9uT2ZJbnB1dCA9IE51bWJlcihldmVudC50YXJnZXQudmFsdWUpO1xyXG4gICAgaWYgKHRoaXMub25Db21wbGV0aW9uT2ZJbnB1dCA8IDEpIHtcclxuICAgICAgdGhpcy5vbkNvbXBsZXRpb25PZklucHV0ID0gMTtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0T25Db21wbGV0aW9uRnJlcXVlbmN5KCk7XHJcbiAgfVxyXG5cclxuICBnZXRPbkNvbXBsZXRpb25GcmVxdWVuY3koKSB7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ucGxhY2Vob2xkZXIgPVxyXG4gICAgICB0aGlzLm9uQ29tcGxldGlvbk9mSW5wdXQgK1xyXG4gICAgICAnICcgK1xyXG4gICAgICAodGhpcy5vbkNvbXBsZXRpb25PZklucHV0ID4gMSA/ICdkYXlzJyA6ICdkYXknKSArXHJcbiAgICAgICcgYWZ0ZXIgY29tcGxldGlvbiBvZiAnICtcclxuICAgICAgKHRoaXMub25Db21wbGV0aW9uT2ZSZXNwb25zaWJpbGl0eSAmJlxyXG4gICAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzPy5yZXBvcnRfbmFtZVxyXG4gICAgICAgID8gdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscz8ucmVwb3J0X25hbWVcclxuICAgICAgICA6ICcnKTtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5wYXR0ZXJuID1cclxuICAgICAgNiArICd+JyArICcwJyArICd+JyArICcwJyArICd+JyArIHRoaXMub25Db21wbGV0aW9uT2ZJbnB1dDtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5jYXNlID0gJ29uQ29tcGxldGlvbk9mJztcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5mYWlsZWRBZnRlciA9IHRoaXMub25Db21wbGV0aW9uT2ZGYWlsZWQ7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ud2luZG93ID0gdGhpcy5vbkNvbXBsZXRpb25PZldpbmRvdztcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby50aW1lSW4xMmhyID0gdGhpcy5vbkNvbXBsZXRpb25PZlRpbWU7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8udGltZUluMjRIciA9IHRoaXMuZnJlcXVlbmN5U2VydmljZS50aW1lRnJvbTEyaFRvMjRoKFxyXG4gICAgICB0aGlzLm9uQ29tcGxldGlvbk9mVGltZVxyXG4gICAgKTtcclxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5mYWlsZWRfdGltZV91dGMgPSAwO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnJlcG9ydElkID1cclxuICAgICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscz8uUmVwb3J0SWQgPz8gMDtcclxuICAgIHRoaXMuZnJlcXVlbmN5RGV0YWlscy5lbWl0KHRoaXMuZnJlcXVlbmN5SW5mbyk7XHJcbiAgfVxyXG5cclxuICBvcGVuUmFkaW9SZXNwb25zaWJpbGl0eShldmVudDogYW55KSB7XHJcbiAgICBpZiAoZXZlbnQgPT09ICdiYWNrVG9PbkNvbXBsZXRpb24nKSB7XHJcbiAgICAgIHRoaXMuYmFja0J1dHRvbiA9IHRydWU7XHJcbiAgICAgIHRoaXMub3BlblJhZGlvID0gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm9wZW5SYWRpbyA9IHRydWU7XHJcbiAgICAgIHRoaXMuYmFja0J1dHRvbiA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yYWRpb0Zvcm0uZW1pdCh0aGlzLm9wZW5SYWRpbyk7XHJcbiAgfVxyXG5cclxuICByZW1vdmUoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzID0ge307XHJcbiAgICB0aGlzLmlzU2VsZWN0ZWREYXRhID0gdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlsc1xyXG4gICAgICA/IE9iamVjdC5rZXlzKHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHMpPy5sZW5ndGggPiAwXHJcbiAgICAgIDogZmFsc2U7XHJcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ucmVwb3J0SWQgPSAwO1xyXG4gICAgdGhpcy5mcmVxdWVuY3lEZXRhaWxzLmVtaXQodGhpcy5mcmVxdWVuY3lJbmZvKTtcclxuICB9XHJcblxyXG4gIHRpbWVTZWxlY3Rpb24oZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZSA9IGV2ZW50LnNlbGVjdGVkVmFsdWU7XHJcbiAgICB0aGlzLm9uVGltZUNoYW5nZWQoc2VsZWN0ZWRWYWx1ZSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktY29tcGxldGlvblwiICpuZ0lmPVwibW9kZSAhPT0gJ3BvbGljeScgfHwgYmFja0J1dHRvblwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1tYi0xXCI+XHJcbiAgICBEVUUgREFURSBGUkVRVUVOQ1k6XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1jb21wbGV0aW9uLWlubmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWNvbXBsZXRpb24tdG9wIHZ4LXAtMyB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgIGNsYXNzPVwiY291bnROdW1cIlxyXG4gICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgIFsobmdNb2RlbCldPVwib25Db21wbGV0aW9uT2ZJbnB1dFwiXHJcbiAgICAgICAgKGNoYW5nZSk9XCJpbnB1dFZhbHVlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgIG9ua2V5ZG93bj1cInJldHVybiBldmVudC5rZXlDb2RlICE9PSAxOTBcIlxyXG4gICAgICAgIG1pbj1cIjBcIlxyXG4gICAgICAgIG9uaW5wdXQ9XCJ0aGlzLnZhbHVlID0gTWF0aC5hYnModGhpcy52YWx1ZSlcIlxyXG4gICAgICAvPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTMgdngtcGFyYWdyYXBoLXR4dFwiPmRheSBhZnRlciBjb21wbGV0aW9uIG9mPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktY29tcGxldGlvbi1ib3R0b20gdngtcC0zXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1tYi0xXCI+XHJcbiAgICAgICAgUkVTUE9OU0lCSUxJVFlcclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZlYXR1cmVGbGFnX29uX2NvbXBsZXRpb25fb2ZcIj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgKm5nSWY9XCJmZWF0dXJlRmxhZ19vbl9jb21wbGV0aW9uX29mICYmICFpc1NlbGVjdGVkRGF0YVwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJwbGFjZWhvbGRlciA9PT0gJ0xvYWRpbmcuLi4nXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3QtYm94IHZ4LWZzLTExIHZ4LXBhcmFncmFwaC10eHQgdngtcC0yIHZ4LXBsLTMgdngtcHItMyB2eC1tci0zIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuIHZ4LXctMTAwXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5SYWRpb1Jlc3BvbnNpYmlsaXR5KCRldmVudClcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyID09PSBcIkxvYWRpbmcuLi5cIlxyXG4gICAgICAgICAgICAgICAgPyBcIkxvYWRpbmcuLi5cIlxyXG4gICAgICAgICAgICAgICAgOiBcIlNlbGVjdCBhIFJlc3BvbnNpYmlsaXR5XCJcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1mcy0xMFwiPiYjeGU5ZTg7PC9pPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICpuZ0lmPVwiZmVhdHVyZUZsYWdfb25fY29tcGxldGlvbl9vZiAmJiBpc1NlbGVjdGVkRGF0YVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYWZ0ZXItc2VsZWN0LWJveCB2eC1wLTEgdngtbXItMyB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC13LTEwMFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAqbmdJZj1cImlzU2VsZWN0ZWREYXRhXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cInNlbGVjdC1jaGlwIHZ4LWZzLTEyIHZ4LXBhcmFncmFwaC10eHQgdngtcC0xIHZ4LXBsLTIgdngtcHItMiB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImlzU2VsZWN0ZWREYXRhXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTQgdngtbXItMVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlKClcIlxyXG4gICAgICAgICAgICAgICAgPiYjeGU5YWU7PC9pXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJzZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscz8uUmVwb3J0TmFtZVwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXHJcbiAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgPnt7IHNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzPy5SZXBvcnROYW1lIH19PC9zcGFuXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZWRpdC1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXR4dC1ibHVlIHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtcGwtMSB2eC1wci0xIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwib3BlblJhZGlvUmVzcG9uc2liaWxpdHkoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIHZ4LW1yLTFcIiAoY2xpY2spPVwib3BlblJhZGlvUmVzcG9uc2liaWxpdHkoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICA+JiN4ZTkwYzs8L2lcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgRURJVFxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGFwcC1mcmVxdWVuY3ktcmVzcG9uc2liaWxpdHktbGlzdFxyXG4gICAgICAgICAgICAqbmdJZj1cIm9wZW5SYWRpb1wiXHJcbiAgICAgICAgICAgIFtmZWF0dXJlXT1cImZlYXR1cmVcIlxyXG4gICAgICAgICAgICBbc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHNdPVwiXHJcbiAgICAgICAgICAgICAgc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHMgPyBzZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscyA6IHt9XHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgIChiYWNrQnV0dG9uKT1cIm9wZW5SYWRpb1Jlc3BvbnNpYmlsaXR5KCRldmVudClcIlxyXG4gICAgICAgICAgICAoc2VsZWN0ZWRSZXNwb25zaWJpbGl0eSk9XCJvblJlc3BvbnNpYmlsaXR5U2VsZWN0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgPjwvYXBwLWZyZXF1ZW5jeS1yZXNwb25zaWJpbGl0eS1saXN0PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZmVhdHVyZUZsYWdfb25fY29tcGxldGlvbl9vZlwiPlxyXG4gICAgICAgICAgPGNzLXNlbGVjdFxyXG4gICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwicGxhY2Vob2xkZXIgPT09ICdMb2FkaW5nLi4uJ1wiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHNcIlxyXG4gICAgICAgICAgICAodmFsdWVDaGFuZ2VkKT1cIm9uUmVzcG9uc2liaWxpdHlTZWxlY3Rpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxjcy1vcHRpb25cclxuICAgICAgICAgICAgICAqbmdGb3I9XCJcclxuICAgICAgICAgICAgICAgIGxldCByZXNwb25zaWJpbGl0eSBvZiBvbkNvbXBsZXRpb25PZlJlc3BvbnNpYmlsaXR5O1xyXG4gICAgICAgICAgICAgICAgbGV0IGkgPSBpbmRleFxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cInJlc3BvbnNpYmlsaXR5XCJcclxuICAgICAgICAgICAgICBbb3B0aW9uVG9vbHRpcF09XCJyZXNwb25zaWJpbGl0eT8uUmVwb3J0TmFtZVwiXHJcbiAgICAgICAgICAgICAgPnt7IHJlc3BvbnNpYmlsaXR5Py5SZXBvcnROYW1lIH19PC9jcy1vcHRpb25cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgPC9jcy1zZWxlY3Q+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lLXBpY2tlci1ncm91cCB2eC1kLWZsZXhcIiAqbmdJZj1cIiFvcGVuUmFkaW9cIj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJ0aW1lLWZpZWxkXCJcclxuICAgICAgICAgICAgYXBwUG9wb3ZlclxyXG4gICAgICAgICAgICAoY2xpY2spPVwidGltZVBpY2tlci5wb3BvdmVyKClcIlxyXG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXRcIlxyXG4gICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJvbkNvbXBsZXRpb25PZlRpbWUgfCB1cHBlcmNhc2VcIlxyXG4gICAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbG9jay1pY29uIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIHZ4LWZzLTEyIHZ4LXBhcmFncmFwaC10eHRcIj4mI3hlOTU1OzwvaT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxhcHAtcG9wb3ZlciAjdGltZVBpY2tlciBbZG9udENsb3Nlb25DbGlja109XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDxhcHAtdGltZS1waWNrZXJcclxuICAgICAgICAgICAgICBbdGltZV09XCJvbkNvbXBsZXRpb25PZlRpbWVcIlxyXG4gICAgICAgICAgICAgIChvblRpbWVTZWxlY3Rpb24pPVwiXHJcbiAgICAgICAgICAgICAgICB0aW1lU2VsZWN0aW9uKCRldmVudCk7IHRpbWVQaWNrZXIuY2xvc2VQb3BvdmVyKCd0b3AnKVxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgID48L2FwcC10aW1lLXBpY2tlcj5cclxuICAgICAgICAgIDwvYXBwLXBvcG92ZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGFwcC1mcmVxdWVuY3ktZHVlLWRhdGVcclxuICAgIFtpZF09XCIzXCJcclxuICAgIFtwYWdlTmFtZV09XCInb25Db21wbGV0aW9uJ1wiXHJcbiAgICBbbW9kZV09XCJtb2RlXCJcclxuICAgIFtpc0RlYWN0aXZhdGVkXT1cImZhbHNlXCJcclxuICAgIFtjb21wbGV0ZWRWYWx1ZV09XCJvbkNvbXBsZXRpb25PZldpbmRvd1wiXHJcbiAgICBbbm90Q29tcGxldGVkVmFsdWVdPVwib25Db21wbGV0aW9uT2ZGYWlsZWRcIlxyXG4gICAgKHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgPjwvYXBwLWZyZXF1ZW5jeS1kdWUtZGF0ZT5cclxuPC9kaXY+XHJcblxyXG48ZGl2ICpuZ0lmPVwibW9kZSA9PT0gJ3BvbGljeSdcIiBjbGFzcz1cImZyZXF1ZW5jeS1vbi1jb21wbGV0aW9uLW9mXCI+XHJcbiAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1vbi1jb21wbGV0aW9uLW9mLW1lc3NhZ2VcIj5cclxuICAgIDxpbnB1dFxyXG4gICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJvbkNvbXBsZXRpb25PZklucHV0XCJcclxuICAgICAgKGNoYW5nZSk9XCJpbnB1dFZhbHVlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICBvbmtleWRvd249XCJyZXR1cm4gZXZlbnQua2V5Q29kZSAhPT0gMTkwXCJcclxuICAgICAgbWluPVwiMFwiXHJcbiAgICAgIG9uaW5wdXQ9XCJ0aGlzLnZhbHVlID0gTWF0aC5hYnModGhpcy52YWx1ZSlcIlxyXG4gICAgLz5cclxuICAgIDxwPnt7IG9uQ29tcGxldGlvbk9mSW5wdXQgPiAxID8gXCJkYXlzXCIgOiBcImRheVwiIH19IGFmdGVyIGNvbXBsZXRpb24gb2Y8L3A+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1vbi1jb21wbGV0aW9uLW9mLXJvd1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJlc3BvbnNpYmlsaXR5XCI+XHJcbiAgICAgIDxjcy1zZWxlY3RcclxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwicGxhY2Vob2xkZXIgPT09ICdMb2FkaW5nLi4uJ1wiXHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlsc1wiXHJcbiAgICAgICAgKHZhbHVlQ2hhbmdlZCk9XCJvblJlc3BvbnNpYmlsaXR5U2VsZWN0aW9uKCRldmVudClcIlxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICAgID5cclxuICAgICAgICA8Y3Mtb3B0aW9uXHJcbiAgICAgICAgICAqbmdGb3I9XCJcclxuICAgICAgICAgICAgbGV0IHJlc3BvbnNpYmlsaXR5IG9mIG9uQ29tcGxldGlvbk9mUmVzcG9uc2liaWxpdHk7XHJcbiAgICAgICAgICAgIGxldCBpID0gaW5kZXhcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgICBbdmFsdWVdPVwicmVzcG9uc2liaWxpdHlcIlxyXG4gICAgICAgICAgW29wdGlvblRvb2x0aXBdPVwicmVzcG9uc2liaWxpdHk/LlJlcG9ydE5hbWVcIlxyXG4gICAgICAgICAgPnt7IHJlc3BvbnNpYmlsaXR5Py5SZXBvcnROYW1lIH19PC9jcy1vcHRpb25cclxuICAgICAgICA+XHJcbiAgICAgIDwvY3Mtc2VsZWN0PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGltZVwiPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICBhcmlhLWxhYmVsPVwiMTJociBmb3JtYXRcIlxyXG4gICAgICAgIFsobmdNb2RlbCldPVwib25Db21wbGV0aW9uT2ZUaW1lXCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBUaW1lXCJcclxuICAgICAgLz5cclxuICAgICAgPCEtLSA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTk1NTs8L2k+IC0tPlxyXG4gICAgICA8IS0tIDxuZ3gtbWF0ZXJpYWwtdGltZXBpY2tlciAodGltZUNoYW5nZWQpPVwib25UaW1lQ2hhbmdlZCgkZXZlbnQpXCIgI2RhaWx5VGltZT48L25neC1tYXRlcmlhbC10aW1lcGlja2VyPiAtLT5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxhcHAtZnJlcXVlbmN5LWR1ZS1kYXRlXHJcbiAgICBbaWRdPVwiM1wiXHJcbiAgICBbcGFnZU5hbWVdPVwiJ29uQ29tcGxldGlvbidcIlxyXG4gICAgW21vZGVdPVwibW9kZVwiXHJcbiAgICBbaXNEZWFjdGl2YXRlZF09XCJmYWxzZVwiXHJcbiAgICBbY29tcGxldGVkVmFsdWVdPVwib25Db21wbGV0aW9uT2ZXaW5kb3dcIlxyXG4gICAgW25vdENvbXBsZXRlZFZhbHVlXT1cIm9uQ29tcGxldGlvbk9mRmFpbGVkXCJcclxuICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxyXG4gID48L2FwcC1mcmVxdWVuY3ktZHVlLWRhdGU+XHJcbjwvZGl2PlxyXG4iXX0=
|